{"version":3,"file":"index.mjs","sources":["../playcanvas-stable.min.js","../__modules__.js","../__settings__.js","../__loading__.js"],"sourcesContent":["/**\n * @license\n * PlayCanvas Engine v2.22.4 revision b5b9839 (RELEASE)\n * Copyright 2011-2026 PlayCanvas Ltd. All rights reserved.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar __require = /* @__PURE__ */ ((x3) => typeof require !== \"undefined\" ? require : typeof Proxy !== \"undefined\" ? new Proxy(x3, {\n\tget: (a, b) => (typeof require !== \"undefined\" ? require : a)[b]\n}) : x3)(function(x3) {\n\tif (typeof require !== \"undefined\") return require.apply(this, arguments);\n\tthrow Error('Dynamic require of \"' + x3 + '\" is not supported');\n});\n\nvar TRACEID_RENDER_FRAME = \"RenderFrame\";\nvar TRACEID_RENDER_FRAME_TIME = \"RenderFrameTime\";\nvar TRACEID_RENDER_PASS = \"RenderPass\";\nvar TRACEID_RENDER_PASS_DETAIL = \"RenderPassDetail\";\nvar TRACEID_RENDER_ACTION = \"RenderAction\";\nvar TRACEID_RENDER_TARGET_ALLOC = \"RenderTargetAlloc\";\nvar TRACEID_TEXTURE_ALLOC = \"TextureAlloc\";\nvar TRACEID_SHADER_ALLOC = \"ShaderAlloc\";\nvar TRACEID_SHADER_COMPILE = \"ShaderCompile\";\nvar TRACEID_VRAM_TEXTURE = \"VRAM.Texture\";\nvar TRACEID_VRAM_VB = \"VRAM.Vb\";\nvar TRACEID_VRAM_IB = \"VRAM.Ib\";\nvar TRACEID_VRAM_SB = \"VRAM.Sb\";\nvar TRACEID_BINDGROUP_ALLOC = \"BindGroupAlloc\";\nvar TRACEID_BINDGROUPFORMAT_ALLOC = \"BindGroupFormatAlloc\";\nvar TRACEID_RENDERPIPELINE_ALLOC = \"RenderPipelineAlloc\";\nvar TRACEID_COMPUTEPIPELINE_ALLOC = \"ComputePipelineAlloc\";\nvar TRACEID_PIPELINELAYOUT_ALLOC = \"PipelineLayoutAlloc\";\nvar TRACEID_ELEMENT = \"Element\";\nvar TRACEID_TEXTURES = \"Textures\";\nvar TRACEID_BUFFERS = \"Buffers\";\nvar TRACEID_ASSETS = \"Assets\";\nvar TRACEID_RENDER_QUEUE = \"RenderQueue\";\nvar TRACEID_OCTREE_RESOURCES = \"OctreeResources\";\nvar TRACEID_GPU_TIMINGS = \"GpuTimings\";\n\nvar version = \"2.22.4\";\nvar revision = \"b5b9839\";\nfunction extend(target2, ex) {\n\tfor (const prop in ex) {\n\t\tconst copy = ex[prop];\n\t\tif (Array.isArray(copy)) {\n\t\t\ttarget2[prop] = extend([], copy);\n\t\t} else if (copy && typeof copy === \"object\") {\n\t\t\ttarget2[prop] = extend({}, copy);\n\t\t} else {\n\t\t\ttarget2[prop] = copy;\n\t\t}\n\t}\n\treturn target2;\n}\n\nvar guid = {\n\tcreate() {\n\t\treturn \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, (c2) => {\n\t\t\tconst r = Math.random() * 16 | 0;\n\t\t\tconst v6 = c2 === \"x\" ? r : r & 3 | 8;\n\t\t\treturn v6.toString(16);\n\t\t});\n\t}\n};\n\nvar path = {\n\tdelimiter: \"/\",\n\tjoin(...sections) {\n\t\tlet result = sections[0];\n\t\tfor (let i2 = 0; i2 < sections.length - 1; i2++) {\n\t\t\tconst one = sections[i2];\n\t\t\tconst two = sections[i2 + 1];\n\t\t\tif (two[0] === path.delimiter) {\n\t\t\t\tresult = two;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (one && two && one[one.length - 1] !== path.delimiter && two[0] !== path.delimiter) {\n\t\t\t\tresult += path.delimiter + two;\n\t\t\t} else {\n\t\t\t\tresult += two;\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t},\n\tnormalize(pathname) {\n\t\tconst lead = pathname.startsWith(path.delimiter);\n\t\tconst trail = pathname.endsWith(path.delimiter);\n\t\tconst parts = pathname.split(\"/\");\n\t\tlet result = \"\";\n\t\tlet cleaned = [];\n\t\tfor (let i2 = 0; i2 < parts.length; i2++) {\n\t\t\tif (parts[i2] === \"\") continue;\n\t\t\tif (parts[i2] === \".\") continue;\n\t\t\tif (parts[i2] === \"..\" && cleaned.length > 0) {\n\t\t\t\tcleaned = cleaned.slice(0, cleaned.length - 2);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (i2 > 0) cleaned.push(path.delimiter);\n\t\t\tcleaned.push(parts[i2]);\n\t\t}\n\t\tresult = cleaned.join(\"\");\n\t\tif (!lead && result[0] === path.delimiter) {\n\t\t\tresult = result.slice(1);\n\t\t}\n\t\tif (trail && result[result.length - 1] !== path.delimiter) {\n\t\t\tresult += path.delimiter;\n\t\t}\n\t\treturn result;\n\t},\n\tsplit(pathname) {\n\t\tconst lastDelimiterIndex = pathname.lastIndexOf(path.delimiter);\n\t\tif (lastDelimiterIndex !== -1) {\n\t\t\treturn [pathname.substring(0, lastDelimiterIndex), pathname.substring(lastDelimiterIndex + 1)];\n\t\t}\n\t\treturn [\"\", pathname];\n\t},\n\tgetBasename(pathname) {\n\t\treturn path.split(pathname)[1];\n\t},\n\tgetDirectory(pathname) {\n\t\treturn path.split(pathname)[0];\n\t},\n\tgetExtension(pathname) {\n\t\tconst ext = pathname.split(\"?\")[0].split(\".\").pop();\n\t\tif (ext !== pathname) {\n\t\t\treturn `.${ext}`;\n\t\t}\n\t\treturn \"\";\n\t},\n\tisRelativePath(pathname) {\n\t\treturn pathname.charAt(0) !== \"/\" && pathname.match(/:\\/\\//) === null;\n\t},\n\textractPath(pathname) {\n\t\tlet result = \"\";\n\t\tconst parts = pathname.split(\"/\");\n\t\tlet i2 = 0;\n\t\tif (parts.length > 1) {\n\t\t\tif (path.isRelativePath(pathname)) {\n\t\t\t\tif (parts[0] === \".\") {\n\t\t\t\t\tfor (i2 = 0; i2 < parts.length - 1; ++i2) {\n\t\t\t\t\t\tresult += i2 === 0 ? parts[i2] : `/${parts[i2]}`;\n\t\t\t\t\t}\n\t\t\t\t} else if (parts[0] === \"..\") {\n\t\t\t\t\tfor (i2 = 0; i2 < parts.length - 1; ++i2) {\n\t\t\t\t\t\tresult += i2 === 0 ? parts[i2] : `/${parts[i2]}`;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tresult = \".\";\n\t\t\t\t\tfor (i2 = 0; i2 < parts.length - 1; ++i2) {\n\t\t\t\t\t\tresult += `/${parts[i2]}`;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (i2 = 0; i2 < parts.length - 1; ++i2) {\n\t\t\t\t\tresult += i2 === 0 ? parts[i2] : `/${parts[i2]}`;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n};\n\nvar ua = typeof navigator !== \"undefined\" ? navigator.userAgent : \"\";\nvar environment = typeof window !== \"undefined\" ? \"browser\" : typeof global !== \"undefined\" ? \"node\" : \"worker\";\nvar platformName = /android/i.test(ua) ? \"android\" : /ip(?:[ao]d|hone)/i.test(ua) ? \"ios\" : /windows/i.test(ua) ? \"windows\" : /mac os/i.test(ua) ? \"osx\" : /linux/i.test(ua) ? \"linux\" : /cros/i.test(ua) ? \"cros\" : null;\nvar browserName = environment !== \"browser\" ? null : /Chrome\\/|Chromium\\/|Edg.*\\//.test(ua) ? \"chrome\" : (\n\t// chrome, chromium, edge\n\t/Safari\\//.test(ua) ? \"safari\" : (\n\t\t// safari, ios chrome/firefox\n\t\t/Firefox\\//.test(ua) ? \"firefox\" : \"other\"\n\t)\n);\nvar xbox = /xbox/i.test(ua);\nvar visionos = /Macintosh/i.test(ua) && typeof navigator !== \"undefined\" && navigator.maxTouchPoints > 0 && !/iPhone|iPad|iPod/i.test(ua);\nvar touch = environment === \"browser\" && (\"ontouchstart\" in window || \"maxTouchPoints\" in navigator && navigator.maxTouchPoints > 0);\nvar gamepads = environment === \"browser\" && (!!navigator.getGamepads || !!navigator.webkitGetGamepads);\nvar workers = typeof Worker !== \"undefined\";\nvar platform = {\n\tname: platformName,\n\tenvironment,\n\tglobal: (typeof globalThis !== \"undefined\" && globalThis) ?? (environment === \"browser\" && window) ?? (environment === \"node\" && global) ?? (environment === \"worker\" && self),\n\tbrowser: environment === \"browser\",\n\tworker: environment === \"worker\",\n\tdesktop: [\"windows\", \"osx\", \"linux\", \"cros\"].includes(platformName),\n\tmobile: [\"android\", \"ios\"].includes(platformName),\n\tios: platformName === \"ios\",\n\tandroid: platformName === \"android\",\n\tvisionos,\n\txbox,\n\tgamepads,\n\ttouch,\n\tworkers,\n\tbrowserName\n};\n\nvar ASCII_LOWERCASE = \"abcdefghijklmnopqrstuvwxyz\";\nvar ASCII_UPPERCASE = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\";\nvar ASCII_LETTERS = ASCII_LOWERCASE + ASCII_UPPERCASE;\nvar HIGH_SURROGATE_BEGIN = 55296;\nvar HIGH_SURROGATE_END = 56319;\nvar LOW_SURROGATE_BEGIN = 56320;\nvar LOW_SURROGATE_END = 57343;\nvar ZERO_WIDTH_JOINER = 8205;\nvar REGIONAL_INDICATOR_BEGIN = 127462;\nvar REGIONAL_INDICATOR_END = 127487;\nvar FITZPATRICK_MODIFIER_BEGIN = 127995;\nvar FITZPATRICK_MODIFIER_END = 127999;\nvar DIACRITICAL_MARKS_BEGIN = 8400;\nvar DIACRITICAL_MARKS_END = 8447;\nvar VARIATION_MODIFIER_BEGIN = 65024;\nvar VARIATION_MODIFIER_END = 65039;\nfunction getCodePointData(string2, i2 = 0) {\n\tconst size = string2.length;\n\tif (i2 < 0 || i2 >= size) {\n\t\treturn null;\n\t}\n\tconst first = string2.charCodeAt(i2);\n\tif (size > 1 && first >= HIGH_SURROGATE_BEGIN && first <= HIGH_SURROGATE_END) {\n\t\tconst second = string2.charCodeAt(i2 + 1);\n\t\tif (second >= LOW_SURROGATE_BEGIN && second <= LOW_SURROGATE_END) {\n\t\t\treturn {\n\t\t\t\tcode: (first - HIGH_SURROGATE_BEGIN) * 1024 + second - LOW_SURROGATE_BEGIN + 65536,\n\t\t\t\tlong: true\n\t\t\t};\n\t\t}\n\t}\n\treturn {\n\t\tcode: first,\n\t\tlong: false\n\t};\n}\nfunction isCodeBetween(string2, begin, end) {\n\tif (!string2) {\n\t\treturn false;\n\t}\n\tconst codeData = getCodePointData(string2);\n\tif (codeData) {\n\t\tconst code = codeData.code;\n\t\treturn code >= begin && code <= end;\n\t}\n\treturn false;\n}\nfunction numCharsToTakeForNextSymbol(string2, index) {\n\tif (index === string2.length - 1) {\n\t\treturn 1;\n\t}\n\tif (isCodeBetween(string2[index], HIGH_SURROGATE_BEGIN, HIGH_SURROGATE_END)) {\n\t\tconst first = string2.substring(index, index + 2);\n\t\tconst second = string2.substring(index + 2, index + 4);\n\t\tif (isCodeBetween(second, FITZPATRICK_MODIFIER_BEGIN, FITZPATRICK_MODIFIER_END) || isCodeBetween(first, REGIONAL_INDICATOR_BEGIN, REGIONAL_INDICATOR_END) && isCodeBetween(second, REGIONAL_INDICATOR_BEGIN, REGIONAL_INDICATOR_END)) {\n\t\t\treturn 4;\n\t\t}\n\t\tif (isCodeBetween(second, VARIATION_MODIFIER_BEGIN, VARIATION_MODIFIER_END)) {\n\t\t\treturn 3;\n\t\t}\n\t\treturn 2;\n\t}\n\tif (isCodeBetween(string2[index + 1], VARIATION_MODIFIER_BEGIN, VARIATION_MODIFIER_END)) {\n\t\treturn 2;\n\t}\n\treturn 1;\n}\nvar string = {\n\tASCII_LOWERCASE,\n\tASCII_UPPERCASE,\n\tASCII_LETTERS,\n\tformat(s2, ...args) {\n\t\tfor (let i2 = 0; i2 < args.length; i2++) {\n\t\t\ts2 = s2.replace(`{${i2}}`, args[i2]);\n\t\t}\n\t\treturn s2;\n\t},\n\tgetCodePoint(string2, i2) {\n\t\tconst codePointData = getCodePointData(string2, i2);\n\t\treturn codePointData && codePointData.code;\n\t},\n\tgetCodePoints(string2) {\n\t\tif (typeof string2 !== \"string\") {\n\t\t\tthrow new TypeError(\"Not a string\");\n\t\t}\n\t\tlet i2 = 0;\n\t\tconst arr = [];\n\t\tlet codePoint;\n\t\twhile (!!(codePoint = getCodePointData(string2, i2))) {\n\t\t\tarr.push(codePoint.code);\n\t\t\ti2 += codePoint.long ? 2 : 1;\n\t\t}\n\t\treturn arr;\n\t},\n\tgetSymbols(string2) {\n\t\tif (typeof string2 !== \"string\") {\n\t\t\tthrow new TypeError(\"Not a string\");\n\t\t}\n\t\tlet index = 0;\n\t\tconst length = string2.length;\n\t\tconst output = [];\n\t\tlet take = 0;\n\t\tlet ch;\n\t\twhile (index < length) {\n\t\t\ttake += numCharsToTakeForNextSymbol(string2, index + take);\n\t\t\tch = string2[index + take];\n\t\t\tif (isCodeBetween(ch, DIACRITICAL_MARKS_BEGIN, DIACRITICAL_MARKS_END)) {\n\t\t\t\tch = string2[index + take++];\n\t\t\t}\n\t\t\tif (isCodeBetween(ch, VARIATION_MODIFIER_BEGIN, VARIATION_MODIFIER_END)) {\n\t\t\t\tch = string2[index + take++];\n\t\t\t}\n\t\t\tif (ch && ch.charCodeAt(0) === ZERO_WIDTH_JOINER) {\n\t\t\t\tch = string2[index + take++];\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst char = string2.substring(index, index + take);\n\t\t\toutput.push(char);\n\t\t\tindex += take;\n\t\t\ttake = 0;\n\t\t}\n\t\treturn output;\n\t},\n\tfromCodePoint(...args) {\n\t\treturn args.map((codePoint) => {\n\t\t\tif (codePoint > 65535) {\n\t\t\t\tcodePoint -= 65536;\n\t\t\t\treturn String.fromCharCode(\n\t\t\t\t\t(codePoint >> 10) + 55296,\n\t\t\t\t\tcodePoint % 1024 + 56320\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn String.fromCharCode(codePoint);\n\t\t}).join(\"\");\n\t}\n};\n\nvar Tracing = class _Tracing {\n\tstatic _traceChannels = /* @__PURE__ */ new Set();\n\tstatic stack = false;\n\tstatic set(channel, enabled = true) {\n\t}\n\tstatic get(channel) {\n\t\treturn _Tracing._traceChannels.has(channel);\n\t}\n};\n\nvar EventHandle = class {\n\thandler;\n\tname;\n\tcallback;\n\tscope;\n\t_once;\n\t_removed = false;\n\tconstructor(handler, name, callback, scope, once = false) {\n\t\tthis.handler = handler;\n\t\tthis.name = name;\n\t\tthis.callback = callback;\n\t\tthis.scope = scope;\n\t\tthis._once = once;\n\t}\n\toff() {\n\t\tif (this._removed) return;\n\t\tthis.handler.offByHandle(this);\n\t}\n\ton(name, callback, scope = this) {\n\t\treturn this.handler._addCallback(name, callback, scope, false);\n\t}\n\tonce(name, callback, scope = this) {\n\t\treturn this.handler._addCallback(name, callback, scope, true);\n\t}\n\tset removed(value) {\n\t\tif (!value) return;\n\t\tthis._removed = true;\n\t}\n\tget removed() {\n\t\treturn this._removed;\n\t}\n\t// don't stringify EventHandle to JSON by JSON.stringify\n\ttoJSON(key) {\n\t\treturn void 0;\n\t}\n};\n\nvar EventHandler = class {\n\t_callbacks = /* @__PURE__ */ new Map();\n\t_callbackActive = /* @__PURE__ */ new Map();\n\tinitEventHandler() {\n\t\tthis._callbacks = /* @__PURE__ */ new Map();\n\t\tthis._callbackActive = /* @__PURE__ */ new Map();\n\t}\n\t_addCallback(name, callback, scope, once) {\n\t\tif (!this._callbacks.has(name)) {\n\t\t\tthis._callbacks.set(name, []);\n\t\t}\n\t\tif (this._callbackActive.has(name)) {\n\t\t\tconst callbackActive = this._callbackActive.get(name);\n\t\t\tif (callbackActive && callbackActive === this._callbacks.get(name)) {\n\t\t\t\tthis._callbackActive.set(name, callbackActive.slice());\n\t\t\t}\n\t\t}\n\t\tconst evt = new EventHandle(this, name, callback, scope, once);\n\t\tthis._callbacks.get(name).push(evt);\n\t\treturn evt;\n\t}\n\ton(name, callback, scope = this) {\n\t\treturn this._addCallback(name, callback, scope, false);\n\t}\n\tonce(name, callback, scope = this) {\n\t\treturn this._addCallback(name, callback, scope, true);\n\t}\n\toff(name, callback, scope) {\n\t\tif (name) {\n\t\t\tif (this._callbackActive.has(name) && this._callbackActive.get(name) === this._callbacks.get(name)) {\n\t\t\t\tthis._callbackActive.set(name, this._callbackActive.get(name).slice());\n\t\t\t}\n\t\t} else {\n\t\t\tfor (const [key, callbacks] of this._callbackActive) {\n\t\t\t\tif (!this._callbacks.has(key)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (this._callbacks.get(key) !== callbacks) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tthis._callbackActive.set(key, callbacks.slice());\n\t\t\t}\n\t\t}\n\t\tif (!name) {\n\t\t\tfor (const callbacks of this._callbacks.values()) {\n\t\t\t\tfor (let i2 = 0; i2 < callbacks.length; i2++) {\n\t\t\t\t\tcallbacks[i2].removed = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._callbacks.clear();\n\t\t} else if (!callback) {\n\t\t\tconst callbacks = this._callbacks.get(name);\n\t\t\tif (callbacks) {\n\t\t\t\tfor (let i2 = 0; i2 < callbacks.length; i2++) {\n\t\t\t\t\tcallbacks[i2].removed = true;\n\t\t\t\t}\n\t\t\t\tthis._callbacks.delete(name);\n\t\t\t}\n\t\t} else {\n\t\t\tconst callbacks = this._callbacks.get(name);\n\t\t\tif (!callbacks) {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t\tfor (let i2 = 0; i2 < callbacks.length; i2++) {\n\t\t\t\tif (callbacks[i2].callback !== callback) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (scope && callbacks[i2].scope !== scope) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tcallbacks[i2].removed = true;\n\t\t\t\tcallbacks.splice(i2, 1);\n\t\t\t\ti2--;\n\t\t\t}\n\t\t\tif (callbacks.length === 0) {\n\t\t\t\tthis._callbacks.delete(name);\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\toffByHandle(handle) {\n\t\tconst name = handle.name;\n\t\thandle.removed = true;\n\t\tif (this._callbackActive.has(name) && this._callbackActive.get(name) === this._callbacks.get(name)) {\n\t\t\tthis._callbackActive.set(name, this._callbackActive.get(name).slice());\n\t\t}\n\t\tconst callbacks = this._callbacks.get(name);\n\t\tif (!callbacks) {\n\t\t\treturn this;\n\t\t}\n\t\tconst ind = callbacks.indexOf(handle);\n\t\tif (ind !== -1) {\n\t\t\tcallbacks.splice(ind, 1);\n\t\t\tif (callbacks.length === 0) {\n\t\t\t\tthis._callbacks.delete(name);\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\tfire(name, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) {\n\t\tif (!name) {\n\t\t\treturn this;\n\t\t}\n\t\tconst callbacksInitial = this._callbacks.get(name);\n\t\tif (!callbacksInitial) {\n\t\t\treturn this;\n\t\t}\n\t\tlet callbacks;\n\t\tif (!this._callbackActive.has(name)) {\n\t\t\tthis._callbackActive.set(name, callbacksInitial);\n\t\t} else if (this._callbackActive.get(name) !== callbacksInitial) {\n\t\t\tcallbacks = callbacksInitial.slice();\n\t\t}\n\t\tfor (let i2 = 0; (callbacks || this._callbackActive.get(name)) && i2 < (callbacks || this._callbackActive.get(name)).length; i2++) {\n\t\t\tconst evt = (callbacks || this._callbackActive.get(name))[i2];\n\t\t\tif (!evt.callback) continue;\n\t\t\tevt.callback.call(evt.scope, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);\n\t\t\tif (evt._once) {\n\t\t\t\tconst existingCallback = this._callbacks.get(name);\n\t\t\t\tconst ind = existingCallback ? existingCallback.indexOf(evt) : -1;\n\t\t\t\tif (ind !== -1) {\n\t\t\t\t\tif (this._callbackActive.get(name) === existingCallback) {\n\t\t\t\t\t\tthis._callbackActive.set(name, this._callbackActive.get(name).slice());\n\t\t\t\t\t}\n\t\t\t\t\tconst callbacks2 = this._callbacks.get(name);\n\t\t\t\t\tif (!callbacks2) continue;\n\t\t\t\t\tcallbacks2[ind].removed = true;\n\t\t\t\t\tcallbacks2.splice(ind, 1);\n\t\t\t\t\tif (callbacks2.length === 0) {\n\t\t\t\t\t\tthis._callbacks.delete(name);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (!callbacks) {\n\t\t\tthis._callbackActive.delete(name);\n\t\t}\n\t\treturn this;\n\t}\n\thasEvent(name) {\n\t\treturn !!this._callbacks.get(name)?.length;\n\t}\n};\n\nvar IndexedList = class {\n\t_list = [];\n\t_index = {};\n\tpush(key, item) {\n\t\tif (this._index[key]) {\n\t\t\tthrow Error(`Key already in index ${key}`);\n\t\t}\n\t\tconst location = this._list.push(item) - 1;\n\t\tthis._index[key] = location;\n\t}\n\thas(key) {\n\t\treturn this._index[key] !== void 0;\n\t}\n\tget(key) {\n\t\tconst location = this._index[key];\n\t\tif (location !== void 0) {\n\t\t\treturn this._list[location];\n\t\t}\n\t\treturn null;\n\t}\n\tremove(key) {\n\t\tconst location = this._index[key];\n\t\tif (location !== void 0) {\n\t\t\tthis._list.splice(location, 1);\n\t\t\tdelete this._index[key];\n\t\t\tfor (key in this._index) {\n\t\t\t\tconst idx = this._index[key];\n\t\t\t\tif (idx > location) {\n\t\t\t\t\tthis._index[key] = idx - 1;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tlist() {\n\t\treturn this._list;\n\t}\n\tclear() {\n\t\tthis._list.length = 0;\n\t\tfor (const prop in this._index) {\n\t\t\tdelete this._index[prop];\n\t\t}\n\t}\n};\n\nvar cachedResult = (func) => {\n\tconst uninitToken = {};\n\tlet result = uninitToken;\n\treturn () => {\n\t\tif (result === uninitToken) {\n\t\t\tresult = func();\n\t\t}\n\t\treturn result;\n\t};\n};\nvar Impl = class _Impl {\n\tstatic modules = {};\n\t// returns true if the running host supports wasm modules (all browsers except IE)\n\tstatic wasmSupported = cachedResult(() => {\n\t\ttry {\n\t\t\tif (typeof WebAssembly === \"object\" && typeof WebAssembly.instantiate === \"function\") {\n\t\t\t\tconst module2 = new WebAssembly.Module(Uint8Array.of(0, 97, 115, 109, 1, 0, 0, 0));\n\t\t\t\tif (module2 instanceof WebAssembly.Module) {\n\t\t\t\t\treturn new WebAssembly.Instance(module2) instanceof WebAssembly.Instance;\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t}\n\t\treturn false;\n\t});\n\t// load a script\n\tstatic loadScript(url, callback) {\n\t\tconst s2 = document.createElement(\"script\");\n\t\ts2.setAttribute(\"src\", url);\n\t\ts2.onload = () => {\n\t\t\tcallback(null);\n\t\t};\n\t\ts2.onerror = () => {\n\t\t\tcallback(`Failed to load script='${url}'`);\n\t\t};\n\t\tdocument.body.appendChild(s2);\n\t}\n\t// load a wasm module\n\tstatic loadWasm(moduleName, config, callback) {\n\t\tconst loadUrl = _Impl.wasmSupported() && config.glueUrl && config.wasmUrl ? config.glueUrl : config.fallbackUrl;\n\t\tif (loadUrl) {\n\t\t\t_Impl.loadScript(loadUrl, (err2) => {\n\t\t\t\tif (err2) {\n\t\t\t\t\tcallback(err2, null);\n\t\t\t\t} else {\n\t\t\t\t\tconst module2 = window[moduleName];\n\t\t\t\t\twindow[moduleName] = void 0;\n\t\t\t\t\tmodule2({\n\t\t\t\t\t\tlocateFile: () => config.wasmUrl,\n\t\t\t\t\t\tonAbort: () => {\n\t\t\t\t\t\t\tcallback(\"wasm module aborted.\");\n\t\t\t\t\t\t}\n\t\t\t\t\t}).then((instance) => {\n\t\t\t\t\t\tcallback(null, instance);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tcallback(\"No supported wasm modules found.\", null);\n\t\t}\n\t}\n\t// get state object for the named module\n\tstatic getModule(name) {\n\t\tif (!_Impl.modules.hasOwnProperty(name)) {\n\t\t\t_Impl.modules[name] = {\n\t\t\t\tconfig: null,\n\t\t\t\tinitializing: false,\n\t\t\t\tinstance: null,\n\t\t\t\tcallbacks: []\n\t\t\t};\n\t\t}\n\t\treturn _Impl.modules[name];\n\t}\n\tstatic initialize(moduleName, module2) {\n\t\tif (module2.initializing) {\n\t\t\treturn;\n\t\t}\n\t\tconst config = module2.config;\n\t\tif (config.glueUrl || config.wasmUrl || config.fallbackUrl) {\n\t\t\tmodule2.initializing = true;\n\t\t\t_Impl.loadWasm(moduleName, config, (err2, instance) => {\n\t\t\t\tif (err2) {\n\t\t\t\t\tif (config.errorHandler) {\n\t\t\t\t\t\tconfig.errorHandler(err2);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconsole.error(`failed to initialize module=${moduleName} error=${err2}`);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tmodule2.instance = instance;\n\t\t\t\t\tmodule2.callbacks.forEach((callback) => {\n\t\t\t\t\t\tcallback(instance);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n};\nvar WasmModule = class {\n\tstatic setConfig(moduleName, config) {\n\t\tconst module2 = Impl.getModule(moduleName);\n\t\tmodule2.config = config;\n\t\tif (module2.callbacks.length > 0) {\n\t\t\tImpl.initialize(moduleName, module2);\n\t\t}\n\t}\n\tstatic getConfig(moduleName) {\n\t\treturn Impl.modules?.[moduleName]?.config;\n\t}\n\tstatic getInstance(moduleName, callback) {\n\t\tconst module2 = Impl.getModule(moduleName);\n\t\tif (module2.instance) {\n\t\t\tcallback(module2.instance);\n\t\t} else {\n\t\t\tmodule2.callbacks.push(callback);\n\t\t\tif (module2.config) {\n\t\t\t\tImpl.initialize(moduleName, module2);\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar ReadStream = class {\n\tarraybuffer;\n\tdataView;\n\toffset = 0;\n\tconstructor(arraybuffer) {\n\t\tthis.arraybuffer = arraybuffer;\n\t\tthis.dataView = new DataView(arraybuffer);\n\t}\n\tget remainingBytes() {\n\t\treturn this.dataView.byteLength - this.offset;\n\t}\n\treset(offset3 = 0) {\n\t\tthis.offset = offset3;\n\t}\n\tskip(bytes) {\n\t\tthis.offset += bytes;\n\t}\n\talign(bytes) {\n\t\tthis.offset = this.offset + bytes - 1 & ~(bytes - 1);\n\t}\n\t_inc(amount) {\n\t\tthis.offset += amount;\n\t\treturn this.offset - amount;\n\t}\n\treadChar() {\n\t\treturn String.fromCharCode(this.dataView.getUint8(this.offset++));\n\t}\n\treadChars(numChars) {\n\t\tlet result = \"\";\n\t\tfor (let i2 = 0; i2 < numChars; ++i2) {\n\t\t\tresult += this.readChar();\n\t\t}\n\t\treturn result;\n\t}\n\treadU8() {\n\t\treturn this.dataView.getUint8(this.offset++);\n\t}\n\treadU16() {\n\t\treturn this.dataView.getUint16(this._inc(2), true);\n\t}\n\treadU32() {\n\t\treturn this.dataView.getUint32(this._inc(4), true);\n\t}\n\treadU64() {\n\t\treturn this.readU32() + 2 ** 32 * this.readU32();\n\t}\n\treadU32be() {\n\t\treturn this.dataView.getUint32(this._inc(4), false);\n\t}\n\treadArray(result) {\n\t\tfor (let i2 = 0; i2 < result.length; ++i2) {\n\t\t\tresult[i2] = this.readU8();\n\t\t}\n\t}\n\treadLine() {\n\t\tconst view = this.dataView;\n\t\tlet result = \"\";\n\t\twhile (true) {\n\t\t\tif (this.offset >= view.byteLength) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tconst c2 = String.fromCharCode(this.readU8());\n\t\t\tif (c2 === \"\\n\") {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tresult += c2;\n\t\t}\n\t\treturn result;\n\t}\n};\n\nvar SortedLoopArray = class {\n\titems = [];\n\tlength = 0;\n\tloopIndex = -1;\n\t_sortBy;\n\t_sortHandler;\n\tconstructor(args) {\n\t\tthis._sortBy = args.sortBy;\n\t\tthis._sortHandler = this._doSort.bind(this);\n\t}\n\t_binarySearch(item) {\n\t\tlet left = 0;\n\t\tlet right2 = this.items.length - 1;\n\t\tconst search = item[this._sortBy];\n\t\tlet middle;\n\t\tlet current;\n\t\twhile (left <= right2) {\n\t\t\tmiddle = Math.floor((left + right2) / 2);\n\t\t\tcurrent = this.items[middle][this._sortBy];\n\t\t\tif (current <= search) {\n\t\t\t\tleft = middle + 1;\n\t\t\t} else if (current > search) {\n\t\t\t\tright2 = middle - 1;\n\t\t\t}\n\t\t}\n\t\treturn left;\n\t}\n\t_doSort(a, b) {\n\t\tconst sortBy = this._sortBy;\n\t\treturn a[sortBy] - b[sortBy];\n\t}\n\tinsert(item) {\n\t\tconst index = this._binarySearch(item);\n\t\tthis.items.splice(index, 0, item);\n\t\tthis.length++;\n\t\tif (this.loopIndex >= index) {\n\t\t\tthis.loopIndex++;\n\t\t}\n\t}\n\tappend(item) {\n\t\tthis.items.push(item);\n\t\tthis.length++;\n\t}\n\tremove(item) {\n\t\tconst idx = this.items.indexOf(item);\n\t\tif (idx < 0) return;\n\t\tthis.items.splice(idx, 1);\n\t\tthis.length--;\n\t\tif (this.loopIndex >= idx) {\n\t\t\tthis.loopIndex--;\n\t\t}\n\t}\n\tsort() {\n\t\tconst current = this.loopIndex >= 0 ? this.items[this.loopIndex] : null;\n\t\tthis.items.sort(this._sortHandler);\n\t\tif (current !== null) {\n\t\t\tthis.loopIndex = this.items.indexOf(current);\n\t\t}\n\t}\n};\n\nvar Tags = class extends EventHandler {\n\tstatic EVENT_ADD = \"add\";\n\tstatic EVENT_REMOVE = \"remove\";\n\tstatic EVENT_CHANGE = \"change\";\n\t_index = {};\n\t_list = [];\n\t_parent;\n\tconstructor(parent) {\n\t\tsuper();\n\t\tthis._parent = parent;\n\t}\n\tadd(...args) {\n\t\tlet changed = false;\n\t\tconst tags = this._processArguments(args, true);\n\t\tif (!tags.length) {\n\t\t\treturn changed;\n\t\t}\n\t\tfor (let i2 = 0; i2 < tags.length; i2++) {\n\t\t\tif (this._index[tags[i2]]) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tchanged = true;\n\t\t\tthis._index[tags[i2]] = true;\n\t\t\tthis._list.push(tags[i2]);\n\t\t\tthis.fire(\"add\", tags[i2], this._parent);\n\t\t}\n\t\tif (changed) {\n\t\t\tthis.fire(\"change\", this._parent);\n\t\t}\n\t\treturn changed;\n\t}\n\tremove(...args) {\n\t\tlet changed = false;\n\t\tif (!this._list.length) {\n\t\t\treturn changed;\n\t\t}\n\t\tconst tags = this._processArguments(args, true);\n\t\tif (!tags.length) {\n\t\t\treturn changed;\n\t\t}\n\t\tfor (let i2 = 0; i2 < tags.length; i2++) {\n\t\t\tif (!this._index[tags[i2]]) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tchanged = true;\n\t\t\tdelete this._index[tags[i2]];\n\t\t\tthis._list.splice(this._list.indexOf(tags[i2]), 1);\n\t\t\tthis.fire(\"remove\", tags[i2], this._parent);\n\t\t}\n\t\tif (changed) {\n\t\t\tthis.fire(\"change\", this._parent);\n\t\t}\n\t\treturn changed;\n\t}\n\tclear() {\n\t\tif (!this._list.length) {\n\t\t\treturn;\n\t\t}\n\t\tconst tags = this._list.slice(0);\n\t\tthis._list = [];\n\t\tthis._index = {};\n\t\tfor (let i2 = 0; i2 < tags.length; i2++) {\n\t\t\tthis.fire(\"remove\", tags[i2], this._parent);\n\t\t}\n\t\tthis.fire(\"change\", this._parent);\n\t}\n\thas(...query) {\n\t\tif (!this._list.length) {\n\t\t\treturn false;\n\t\t}\n\t\treturn this._has(this._processArguments(query));\n\t}\n\t_has(tags) {\n\t\tif (!this._list.length || !tags.length) {\n\t\t\treturn false;\n\t\t}\n\t\tfor (let i2 = 0; i2 < tags.length; i2++) {\n\t\t\tif (tags[i2].length === 1) {\n\t\t\t\tif (this._index[tags[i2][0]]) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tlet multiple = true;\n\t\t\t\tfor (let t = 0; t < tags[i2].length; t++) {\n\t\t\t\t\tif (this._index[tags[i2][t]]) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tmultiple = false;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif (multiple) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\tlist() {\n\t\treturn this._list.slice(0);\n\t}\n\t_processArguments(args, flat) {\n\t\tconst tags = [];\n\t\tlet tmp = [];\n\t\tif (!args || !args.length) {\n\t\t\treturn tags;\n\t\t}\n\t\tfor (let i2 = 0; i2 < args.length; i2++) {\n\t\t\tif (args[i2] instanceof Array) {\n\t\t\t\tif (!flat) {\n\t\t\t\t\ttmp = [];\n\t\t\t\t}\n\t\t\t\tfor (let t = 0; t < args[i2].length; t++) {\n\t\t\t\t\tif (typeof args[i2][t] !== \"string\") {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tif (flat) {\n\t\t\t\t\t\ttags.push(args[i2][t]);\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttmp.push(args[i2][t]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!flat && tmp.length) {\n\t\t\t\t\ttags.push(tmp);\n\t\t\t\t}\n\t\t\t} else if (typeof args[i2] === \"string\") {\n\t\t\t\tif (flat) {\n\t\t\t\t\ttags.push(args[i2]);\n\t\t\t\t} else {\n\t\t\t\t\ttags.push([args[i2]]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn tags;\n\t}\n\tget size() {\n\t\treturn this._list.length;\n\t}\n};\n\nvar now = typeof window !== \"undefined\" && window.performance && window.performance.now ? performance.now.bind(performance) : Date.now;\n\nfunction createURI(options2) {\n\tlet s2 = \"\";\n\tif ((options2.authority || options2.scheme) && (options2.host || options2.hostpath)) {\n\t\tthrow new Error(\"Can't have 'scheme' or 'authority' and 'host' or 'hostpath' option\");\n\t}\n\tif (options2.host && options2.hostpath) {\n\t\tthrow new Error(\"Can't have 'host' and 'hostpath' option\");\n\t}\n\tif (options2.path && options2.hostpath) {\n\t\tthrow new Error(\"Can't have 'path' and 'hostpath' option\");\n\t}\n\tif (options2.scheme) {\n\t\ts2 += `${options2.scheme}:`;\n\t}\n\tif (options2.authority) {\n\t\ts2 += `//${options2.authority}`;\n\t}\n\tif (options2.host) {\n\t\ts2 += options2.host;\n\t}\n\tif (options2.path) {\n\t\ts2 += options2.path;\n\t}\n\tif (options2.hostpath) {\n\t\ts2 += options2.hostpath;\n\t}\n\tif (options2.query) {\n\t\ts2 += `?${options2.query}`;\n\t}\n\tif (options2.fragment) {\n\t\ts2 += `#${options2.fragment}`;\n\t}\n\treturn s2;\n}\nvar re = /^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?/;\nvar URI = class {\n\tscheme;\n\tauthority;\n\tpath;\n\tquery;\n\tfragment;\n\tconstructor(uri) {\n\t\tconst result = uri.match(re);\n\t\tthis.scheme = result[2];\n\t\tthis.authority = result[4];\n\t\tthis.path = result[5];\n\t\tthis.query = result[7];\n\t\tthis.fragment = result[9];\n\t}\n\ttoString() {\n\t\tlet s2 = \"\";\n\t\tif (this.scheme) {\n\t\t\ts2 += `${this.scheme}:`;\n\t\t}\n\t\tif (this.authority) {\n\t\t\ts2 += `//${this.authority}`;\n\t\t}\n\t\ts2 += this.path;\n\t\tif (this.query) {\n\t\t\ts2 += `?${this.query}`;\n\t\t}\n\t\tif (this.fragment) {\n\t\t\ts2 += `#${this.fragment}`;\n\t\t}\n\t\treturn s2;\n\t}\n\tgetQuery() {\n\t\tconst result = {};\n\t\tif (this.query) {\n\t\t\tconst queryParams = decodeURIComponent(this.query).split(\"&\");\n\t\t\tfor (const queryParam of queryParams) {\n\t\t\t\tconst pair = queryParam.split(\"=\");\n\t\t\t\tresult[pair[0]] = pair[1];\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\tsetQuery(params) {\n\t\tlet q5 = \"\";\n\t\tfor (const key in params) {\n\t\t\tif (params.hasOwnProperty(key)) {\n\t\t\t\tif (q5 !== \"\") {\n\t\t\t\t\tq5 += \"&\";\n\t\t\t\t}\n\t\t\t\tq5 += `${encodeURIComponent(key)}=${encodeURIComponent(params[key])}`;\n\t\t\t}\n\t\t}\n\t\tthis.query = q5;\n\t}\n};\n\nvar CURVE_LINEAR = 0;\nvar CURVE_SMOOTHSTEP = 1;\nvar CURVE_SPLINE = 4;\nvar CURVE_STEP = 5;\n\nvar math = {\n\tDEG_TO_RAD: Math.PI / 180,\n\tRAD_TO_DEG: 180 / Math.PI,\n\tclamp(value, min, max) {\n\t\tif (value >= max) return max;\n\t\tif (value <= min) return min;\n\t\treturn value;\n\t},\n\tintToBytes24(i2) {\n\t\tconst r = i2 >> 16 & 255;\n\t\tconst g = i2 >> 8 & 255;\n\t\tconst b = i2 & 255;\n\t\treturn [r, g, b];\n\t},\n\tintToBytes32(i2) {\n\t\tconst r = i2 >> 24 & 255;\n\t\tconst g = i2 >> 16 & 255;\n\t\tconst b = i2 >> 8 & 255;\n\t\tconst a = i2 & 255;\n\t\treturn [r, g, b, a];\n\t},\n\tbytesToInt24(r, g, b) {\n\t\tif (r.length) {\n\t\t\tb = r[2];\n\t\t\tg = r[1];\n\t\t\tr = r[0];\n\t\t}\n\t\treturn r << 16 | g << 8 | b;\n\t},\n\tbytesToInt32(r, g, b, a) {\n\t\tif (r.length) {\n\t\t\ta = r[3];\n\t\t\tb = r[2];\n\t\t\tg = r[1];\n\t\t\tr = r[0];\n\t\t}\n\t\treturn (r << 24 | g << 16 | b << 8 | a) >>> 0;\n\t},\n\tlerp(a, b, alpha) {\n\t\treturn a + (b - a) * math.clamp(alpha, 0, 1);\n\t},\n\tlerpUnclamped(a, b, alpha) {\n\t\treturn a + (b - a) * alpha;\n\t},\n\tlerpAngle(a, b, alpha) {\n\t\tif (b - a > 180) {\n\t\t\tb -= 360;\n\t\t}\n\t\tif (b - a < -180) {\n\t\t\tb += 360;\n\t\t}\n\t\treturn math.lerp(a, b, math.clamp(alpha, 0, 1));\n\t},\n\tpowerOfTwo(x3) {\n\t\treturn x3 !== 0 && !(x3 & x3 - 1);\n\t},\n\tnextPowerOfTwo(val) {\n\t\tval--;\n\t\tval |= val >> 1;\n\t\tval |= val >> 2;\n\t\tval |= val >> 4;\n\t\tval |= val >> 8;\n\t\tval |= val >> 16;\n\t\tval++;\n\t\treturn val;\n\t},\n\tnearestPowerOfTwo(val) {\n\t\treturn Math.pow(2, Math.round(Math.log2(val)));\n\t},\n\trandom(min, max) {\n\t\tconst diff = max - min;\n\t\treturn Math.random() * diff + min;\n\t},\n\tsmoothstep(min, max, x3) {\n\t\tif (x3 <= min) return 0;\n\t\tif (x3 >= max) return 1;\n\t\tx3 = (x3 - min) / (max - min);\n\t\treturn x3 * x3 * (3 - 2 * x3);\n\t},\n\tsmootherstep(min, max, x3) {\n\t\tif (x3 <= min) return 0;\n\t\tif (x3 >= max) return 1;\n\t\tx3 = (x3 - min) / (max - min);\n\t\treturn x3 * x3 * x3 * (x3 * (x3 * 6 - 15) + 10);\n\t},\n\troundUp(numToRound, multiple) {\n\t\tif (multiple === 0) {\n\t\t\treturn numToRound;\n\t\t}\n\t\treturn Math.ceil(numToRound / multiple) * multiple;\n\t},\n\tbetween(num, a, b, inclusive) {\n\t\tconst min = Math.min(a, b);\n\t\tconst max = Math.max(a, b);\n\t\treturn inclusive ? num >= min && num <= max : num > min && num < max;\n\t}\n};\n\nvar Color = class _Color {\n\tr;\n\tg;\n\tb;\n\ta;\n\tconstructor(r = 0, g = 0, b = 0, a = 1) {\n\t\tconst length = r.length;\n\t\tif (length === 3 || length === 4) {\n\t\t\tthis.r = r[0];\n\t\t\tthis.g = r[1];\n\t\t\tthis.b = r[2];\n\t\t\tthis.a = r[3] ?? 1;\n\t\t} else {\n\t\t\tthis.r = r;\n\t\t\tthis.g = g;\n\t\t\tthis.b = b;\n\t\t\tthis.a = a;\n\t\t}\n\t}\n\tclone() {\n\t\tconst cstr = this.constructor;\n\t\treturn new cstr(this.r, this.g, this.b, this.a);\n\t}\n\tcopy(rhs) {\n\t\tthis.r = rhs.r;\n\t\tthis.g = rhs.g;\n\t\tthis.b = rhs.b;\n\t\tthis.a = rhs.a;\n\t\treturn this;\n\t}\n\tequals(rhs) {\n\t\treturn this.r === rhs.r && this.g === rhs.g && this.b === rhs.b && this.a === rhs.a;\n\t}\n\tset(r, g, b, a = 1) {\n\t\tthis.r = r;\n\t\tthis.g = g;\n\t\tthis.b = b;\n\t\tthis.a = a;\n\t\treturn this;\n\t}\n\tlerp(lhs, rhs, alpha) {\n\t\tthis.r = lhs.r + alpha * (rhs.r - lhs.r);\n\t\tthis.g = lhs.g + alpha * (rhs.g - lhs.g);\n\t\tthis.b = lhs.b + alpha * (rhs.b - lhs.b);\n\t\tthis.a = lhs.a + alpha * (rhs.a - lhs.a);\n\t\treturn this;\n\t}\n\tlinear(src = this) {\n\t\tthis.r = Math.pow(src.r, 2.2);\n\t\tthis.g = Math.pow(src.g, 2.2);\n\t\tthis.b = Math.pow(src.b, 2.2);\n\t\tthis.a = src.a;\n\t\treturn this;\n\t}\n\tgamma(src = this) {\n\t\tthis.r = Math.pow(src.r, 1 / 2.2);\n\t\tthis.g = Math.pow(src.g, 1 / 2.2);\n\t\tthis.b = Math.pow(src.b, 1 / 2.2);\n\t\tthis.a = src.a;\n\t\treturn this;\n\t}\n\tmulScalar(scalar) {\n\t\tthis.r *= scalar;\n\t\tthis.g *= scalar;\n\t\tthis.b *= scalar;\n\t\treturn this;\n\t}\n\tfromString(hex) {\n\t\tconst i2 = parseInt(hex.replace(\"#\", \"0x\"), 16);\n\t\tlet bytes;\n\t\tif (hex.length > 7) {\n\t\t\tbytes = math.intToBytes32(i2);\n\t\t} else {\n\t\t\tbytes = math.intToBytes24(i2);\n\t\t\tbytes[3] = 255;\n\t\t}\n\t\tthis.set(bytes[0] / 255, bytes[1] / 255, bytes[2] / 255, bytes[3] / 255);\n\t\treturn this;\n\t}\n\tfromArray(arr, offset3 = 0) {\n\t\tthis.r = arr[offset3] ?? this.r;\n\t\tthis.g = arr[offset3 + 1] ?? this.g;\n\t\tthis.b = arr[offset3 + 2] ?? this.b;\n\t\tthis.a = arr[offset3 + 3] ?? this.a;\n\t\treturn this;\n\t}\n\ttoString(alpha, asArray) {\n\t\tconst { r, g, b, a } = this;\n\t\tif (asArray || r > 1 || g > 1 || b > 1) {\n\t\t\treturn `${r.toFixed(3)}, ${g.toFixed(3)}, ${b.toFixed(3)}, ${a.toFixed(3)}`;\n\t\t}\n\t\tlet s2 = `#${((1 << 24) + (Math.round(r * 255) << 16) + (Math.round(g * 255) << 8) + Math.round(b * 255)).toString(16).slice(1)}`;\n\t\tif (alpha === true) {\n\t\t\tconst aa = Math.round(a * 255).toString(16);\n\t\t\tif (this.a < 16 / 255) {\n\t\t\t\ts2 += `0${aa}`;\n\t\t\t} else {\n\t\t\t\ts2 += aa;\n\t\t\t}\n\t\t}\n\t\treturn s2;\n\t}\n\ttoArray(arr = [], offset3 = 0, alpha = true) {\n\t\tarr[offset3] = this.r;\n\t\tarr[offset3 + 1] = this.g;\n\t\tarr[offset3 + 2] = this.b;\n\t\tif (alpha) {\n\t\t\tarr[offset3 + 3] = this.a;\n\t\t}\n\t\treturn arr;\n\t}\n\tstatic BLACK = Object.freeze(new _Color(0, 0, 0, 1));\n\tstatic BLUE = Object.freeze(new _Color(0, 0, 1, 1));\n\tstatic CYAN = Object.freeze(new _Color(0, 1, 1, 1));\n\tstatic GRAY = Object.freeze(new _Color(0.5, 0.5, 0.5, 1));\n\tstatic GREEN = Object.freeze(new _Color(0, 1, 0, 1));\n\tstatic MAGENTA = Object.freeze(new _Color(1, 0, 1, 1));\n\tstatic RED = Object.freeze(new _Color(1, 0, 0, 1));\n\tstatic WHITE = Object.freeze(new _Color(1, 1, 1, 1));\n\tstatic YELLOW = Object.freeze(new _Color(1, 1, 0, 1));\n};\n\nvar CurveEvaluator = class {\n\t_curve;\n\t_left = -Infinity;\n\t_right = Infinity;\n\t_recip = 0;\n\t_p0 = 0;\n\t_p1 = 0;\n\t_m0 = 0;\n\t_m1 = 0;\n\tconstructor(curve, time = 0) {\n\t\tthis._curve = curve;\n\t\tthis._reset(time);\n\t}\n\tevaluate(time, forceReset = false) {\n\t\tif (forceReset || time < this._left || time >= this._right) {\n\t\t\tthis._reset(time);\n\t\t}\n\t\tlet result;\n\t\tconst type = this._curve.type;\n\t\tif (type === CURVE_STEP) {\n\t\t\tresult = this._p0;\n\t\t} else {\n\t\t\tconst t = this._recip === 0 ? 0 : (time - this._left) * this._recip;\n\t\t\tif (type === CURVE_LINEAR) {\n\t\t\t\tresult = math.lerp(this._p0, this._p1, t);\n\t\t\t} else if (type === CURVE_SMOOTHSTEP) {\n\t\t\t\tresult = math.lerp(this._p0, this._p1, t * t * (3 - 2 * t));\n\t\t\t} else {\n\t\t\t\tresult = this._evaluateHermite(this._p0, this._p1, this._m0, this._m1, t);\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\t_reset(time) {\n\t\tconst keys = this._curve.keys;\n\t\tconst len = keys.length;\n\t\tif (!len) {\n\t\t\tthis._left = -Infinity;\n\t\t\tthis._right = Infinity;\n\t\t\tthis._recip = 0;\n\t\t\tthis._p0 = this._p1 = this._m0 = this._m1 = 0;\n\t\t} else {\n\t\t\tif (time < keys[0][0]) {\n\t\t\t\tthis._left = -Infinity;\n\t\t\t\tthis._right = keys[0][0];\n\t\t\t\tthis._recip = 0;\n\t\t\t\tthis._p0 = this._p1 = keys[0][1];\n\t\t\t\tthis._m0 = this._m1 = 0;\n\t\t\t} else if (time >= keys[len - 1][0]) {\n\t\t\t\tthis._left = keys[len - 1][0];\n\t\t\t\tthis._right = Infinity;\n\t\t\t\tthis._recip = 0;\n\t\t\t\tthis._p0 = this._p1 = keys[len - 1][1];\n\t\t\t\tthis._m0 = this._m1 = 0;\n\t\t\t} else {\n\t\t\t\tlet index = 0;\n\t\t\t\twhile (time >= keys[index + 1][0]) {\n\t\t\t\t\tindex++;\n\t\t\t\t}\n\t\t\t\tthis._left = keys[index][0];\n\t\t\t\tthis._right = keys[index + 1][0];\n\t\t\t\tconst diff = 1 / (this._right - this._left);\n\t\t\t\tthis._recip = isFinite(diff) ? diff : 0;\n\t\t\t\tthis._p0 = keys[index][1];\n\t\t\t\tthis._p1 = keys[index + 1][1];\n\t\t\t\tif (this._curve.type === CURVE_SPLINE) {\n\t\t\t\t\tthis._calcTangents(keys, index);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t_calcTangents(keys, index) {\n\t\tlet a;\n\t\tconst b = keys[index];\n\t\tconst c2 = keys[index + 1];\n\t\tlet d;\n\t\tif (index === 0) {\n\t\t\ta = [\n\t\t\t\tkeys[0][0] + (keys[0][0] - keys[1][0]),\n\t\t\t\tkeys[0][1] + (keys[0][1] - keys[1][1])\n\t\t\t];\n\t\t} else {\n\t\t\ta = keys[index - 1];\n\t\t}\n\t\tif (index === keys.length - 2) {\n\t\t\td = [\n\t\t\t\tkeys[index + 1][0] + (keys[index + 1][0] - keys[index][0]),\n\t\t\t\tkeys[index + 1][1] + (keys[index + 1][1] - keys[index][1])\n\t\t\t];\n\t\t} else {\n\t\t\td = keys[index + 2];\n\t\t}\n\t\tif (this._curve.type === CURVE_SPLINE) {\n\t\t\tconst s1_ = 2 * (c2[0] - b[0]) / (c2[0] - a[0]);\n\t\t\tconst s2_ = 2 * (c2[0] - b[0]) / (d[0] - b[0]);\n\t\t\tthis._m0 = this._curve.tension * (isFinite(s1_) ? s1_ : 0) * (c2[1] - a[1]);\n\t\t\tthis._m1 = this._curve.tension * (isFinite(s2_) ? s2_ : 0) * (d[1] - b[1]);\n\t\t} else {\n\t\t\tconst s1 = (c2[0] - b[0]) / (b[0] - a[0]);\n\t\t\tconst s2 = (c2[0] - b[0]) / (d[0] - c2[0]);\n\t\t\tconst a_ = b[1] + (a[1] - b[1]) * (isFinite(s1) ? s1 : 0);\n\t\t\tconst d_ = c2[1] + (d[1] - c2[1]) * (isFinite(s2) ? s2 : 0);\n\t\t\tconst tension = this._curve.tension;\n\t\t\tthis._m0 = tension * (c2[1] - a_);\n\t\t\tthis._m1 = tension * (d_ - b[1]);\n\t\t}\n\t}\n\t_evaluateHermite(p0, p12, m0, m12, t) {\n\t\tconst t2 = t * t;\n\t\tconst twot = t + t;\n\t\tconst omt = 1 - t;\n\t\tconst omt2 = omt * omt;\n\t\treturn p0 * ((1 + twot) * omt2) + m0 * (t * omt2) + p12 * (t2 * (3 - twot)) + m12 * (t2 * (t - 1));\n\t}\n};\n\nvar Curve = class {\n\tkeys = [];\n\ttype = CURVE_SMOOTHSTEP;\n\ttension = 0.5;\n\t_eval = new CurveEvaluator(this);\n\tconstructor(data2) {\n\t\tif (data2) {\n\t\t\tfor (let i2 = 0; i2 < data2.length - 1; i2 += 2) {\n\t\t\t\tthis.keys.push([data2[i2], data2[i2 + 1]]);\n\t\t\t}\n\t\t}\n\t\tthis.sort();\n\t}\n\tget length() {\n\t\treturn this.keys.length;\n\t}\n\tadd(time, value) {\n\t\tconst keys = this.keys;\n\t\tconst len = keys.length;\n\t\tlet i2 = 0;\n\t\tfor (; i2 < len; i2++) {\n\t\t\tif (keys[i2][0] > time) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tconst key = [time, value];\n\t\tthis.keys.splice(i2, 0, key);\n\t\treturn key;\n\t}\n\tremove(index) {\n\t\tif (index < 0 || index >= this.keys.length) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this.keys.splice(index, 1)[0];\n\t}\n\tclear() {\n\t\tthis.keys.length = 0;\n\t\treturn this;\n\t}\n\tget(index) {\n\t\treturn this.keys[index];\n\t}\n\tsort() {\n\t\tthis.keys.sort((a, b) => a[0] - b[0]);\n\t}\n\tvalue(time) {\n\t\treturn this._eval.evaluate(time, true);\n\t}\n\tclosest(time) {\n\t\tconst keys = this.keys;\n\t\tconst length = keys.length;\n\t\tlet min = 2;\n\t\tlet result = null;\n\t\tfor (let i2 = 0; i2 < length; i2++) {\n\t\t\tconst diff = Math.abs(time - keys[i2][0]);\n\t\t\tif (min >= diff) {\n\t\t\t\tmin = diff;\n\t\t\t\tresult = keys[i2];\n\t\t\t} else {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\tclone() {\n\t\tconst result = new this.constructor();\n\t\tresult.keys = this.keys.map((key) => [...key]);\n\t\tresult.type = this.type;\n\t\tresult.tension = this.tension;\n\t\treturn result;\n\t}\n\tquantize(precision) {\n\t\tprecision = Math.max(precision, 2);\n\t\tconst values = new Float32Array(precision);\n\t\tconst step = 1 / (precision - 1);\n\t\tvalues[0] = this._eval.evaluate(0, true);\n\t\tfor (let i2 = 1; i2 < precision; i2++) {\n\t\t\tvalues[i2] = this._eval.evaluate(step * i2);\n\t\t}\n\t\treturn values;\n\t}\n\tquantizeClamped(precision, min, max) {\n\t\tconst result = this.quantize(precision);\n\t\tfor (let i2 = 0; i2 < result.length; ++i2) {\n\t\t\tresult[i2] = Math.min(max, Math.max(min, result[i2]));\n\t\t}\n\t\treturn result;\n\t}\n};\n\nvar CurveSet = class {\n\tcurves = [];\n\t_type = CURVE_SMOOTHSTEP;\n\tconstructor(...args) {\n\t\tif (args.length > 1) {\n\t\t\tfor (let i2 = 0; i2 < args.length; i2++) {\n\t\t\t\tthis.curves.push(new Curve(args[i2]));\n\t\t\t}\n\t\t} else if (args.length === 0) {\n\t\t\tthis.curves.push(new Curve());\n\t\t} else {\n\t\t\tconst arg = args[0];\n\t\t\tif (typeof arg === \"number\") {\n\t\t\t\tfor (let i2 = 0; i2 < arg; i2++) {\n\t\t\t\t\tthis.curves.push(new Curve());\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (let i2 = 0; i2 < arg.length; i2++) {\n\t\t\t\t\tthis.curves.push(new Curve(arg[i2]));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tget length() {\n\t\treturn this.curves.length;\n\t}\n\tset type(value) {\n\t\tthis._type = value;\n\t\tfor (let i2 = 0; i2 < this.curves.length; i2++) {\n\t\t\tthis.curves[i2].type = value;\n\t\t}\n\t}\n\tget type() {\n\t\treturn this._type;\n\t}\n\tget(index) {\n\t\treturn this.curves[index];\n\t}\n\tadd(data2) {\n\t\tconst curve = new Curve(data2);\n\t\tcurve.type = this._type;\n\t\tthis.curves.push(curve);\n\t\treturn curve;\n\t}\n\tremove(indexOrCurve) {\n\t\tconst index = typeof indexOrCurve === \"number\" ? indexOrCurve : this.curves.indexOf(indexOrCurve);\n\t\tif (index < 0 || index >= this.curves.length) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this.curves.splice(index, 1)[0];\n\t}\n\tclearKeys() {\n\t\tfor (let i2 = 0; i2 < this.curves.length; i2++) {\n\t\t\tthis.curves[i2].clear();\n\t\t}\n\t\treturn this;\n\t}\n\tclear() {\n\t\tthis.curves.length = 0;\n\t\treturn this;\n\t}\n\tvalue(time, result = []) {\n\t\tconst length = this.curves.length;\n\t\tresult.length = length;\n\t\tfor (let i2 = 0; i2 < length; i2++) {\n\t\t\tresult[i2] = this.curves[i2].value(time);\n\t\t}\n\t\treturn result;\n\t}\n\tclone() {\n\t\tconst result = new this.constructor();\n\t\tresult.curves = [];\n\t\tfor (let i2 = 0; i2 < this.curves.length; i2++) {\n\t\t\tresult.curves.push(this.curves[i2].clone());\n\t\t}\n\t\tresult._type = this._type;\n\t\treturn result;\n\t}\n\tquantize(precision) {\n\t\tprecision = Math.max(precision, 2);\n\t\tconst numCurves = this.curves.length;\n\t\tconst values = new Float32Array(precision * numCurves);\n\t\tconst step = 1 / (precision - 1);\n\t\tfor (let c2 = 0; c2 < numCurves; c2++) {\n\t\t\tconst ev = new CurveEvaluator(this.curves[c2]);\n\t\t\tfor (let i2 = 0; i2 < precision; i2++) {\n\t\t\t\tvalues[i2 * numCurves + c2] = ev.evaluate(step * i2);\n\t\t\t}\n\t\t}\n\t\treturn values;\n\t}\n\tquantizeClamped(precision, min, max) {\n\t\tconst result = this.quantize(precision);\n\t\tfor (let i2 = 0; i2 < result.length; ++i2) {\n\t\t\tresult[i2] = Math.min(max, Math.max(min, result[i2]));\n\t\t}\n\t\treturn result;\n\t}\n};\n\nvar floatView = new Float32Array(1);\nvar int32View = new Int32Array(floatView.buffer);\nvar FloatPacking = class {\n\tstatic float2Half(value) {\n\t\tfloatView[0] = value;\n\t\tconst x3 = int32View[0];\n\t\tlet bits = x3 >> 16 & 32768;\n\t\tlet m = x3 >> 12 & 2047;\n\t\tconst e = x3 >> 23 & 255;\n\t\tif (e < 103) {\n\t\t\treturn bits;\n\t\t}\n\t\tif (e > 142) {\n\t\t\tbits |= 31744;\n\t\t\tbits |= (e === 255 ? 0 : 1) && x3 & 8388607;\n\t\t\treturn bits;\n\t\t}\n\t\tif (e < 113) {\n\t\t\tm |= 2048;\n\t\t\tbits |= (m >> 114 - e) + (m >> 113 - e & 1);\n\t\t\treturn bits;\n\t\t}\n\t\tbits |= e - 112 << 10 | m >> 1;\n\t\tbits += m & 1;\n\t\treturn bits;\n\t}\n\tstatic float2RGBA8(value, data2) {\n\t\tfloatView[0] = value;\n\t\tconst intBits = int32View[0];\n\t\tdata2.r = (intBits >> 24 & 255) / 255;\n\t\tdata2.g = (intBits >> 16 & 255) / 255;\n\t\tdata2.b = (intBits >> 8 & 255) / 255;\n\t\tdata2.a = (intBits & 255) / 255;\n\t}\n};\n\nvar Kernel = class {\n\tstatic concentric(numRings, numPoints) {\n\t\tconst kernel = [];\n\t\tkernel.push(0, 0);\n\t\tconst spacing = 2 * Math.PI / numRings / numPoints;\n\t\tfor (let ring = 1; ring <= numRings; ring++) {\n\t\t\tconst radius = ring / numRings;\n\t\t\tconst circumference = 2 * Math.PI * radius;\n\t\t\tconst pointsPerRing = Math.max(1, Math.floor(circumference / spacing));\n\t\t\tconst angleStep = 2 * Math.PI / pointsPerRing;\n\t\t\tfor (let point5 = 0; point5 < pointsPerRing; point5++) {\n\t\t\t\tconst angle = point5 * angleStep;\n\t\t\t\tconst x3 = radius * Math.cos(angle);\n\t\t\t\tconst y2 = radius * Math.sin(angle);\n\t\t\t\tkernel.push(x3, y2);\n\t\t\t}\n\t\t}\n\t\treturn kernel;\n\t}\n};\n\nvar Vec3 = class _Vec3 {\n\tx;\n\ty;\n\tz;\n\tconstructor(x3 = 0, y2 = 0, z2 = 0) {\n\t\tif (x3.length === 3) {\n\t\t\tthis.x = x3[0];\n\t\t\tthis.y = x3[1];\n\t\t\tthis.z = x3[2];\n\t\t} else {\n\t\t\tthis.x = x3;\n\t\t\tthis.y = y2;\n\t\t\tthis.z = z2;\n\t\t}\n\t}\n\tadd(rhs) {\n\t\tthis.x += rhs.x;\n\t\tthis.y += rhs.y;\n\t\tthis.z += rhs.z;\n\t\treturn this;\n\t}\n\tadd2(lhs, rhs) {\n\t\tthis.x = lhs.x + rhs.x;\n\t\tthis.y = lhs.y + rhs.y;\n\t\tthis.z = lhs.z + rhs.z;\n\t\treturn this;\n\t}\n\taddScalar(scalar) {\n\t\tthis.x += scalar;\n\t\tthis.y += scalar;\n\t\tthis.z += scalar;\n\t\treturn this;\n\t}\n\taddScaled(rhs, scalar) {\n\t\tthis.x += rhs.x * scalar;\n\t\tthis.y += rhs.y * scalar;\n\t\tthis.z += rhs.z * scalar;\n\t\treturn this;\n\t}\n\tclone() {\n\t\tconst cstr = this.constructor;\n\t\treturn new cstr(this.x, this.y, this.z);\n\t}\n\tcopy(rhs) {\n\t\tthis.x = rhs.x;\n\t\tthis.y = rhs.y;\n\t\tthis.z = rhs.z;\n\t\treturn this;\n\t}\n\tcross(lhs, rhs) {\n\t\tconst lx = lhs.x;\n\t\tconst ly = lhs.y;\n\t\tconst lz = lhs.z;\n\t\tconst rx = rhs.x;\n\t\tconst ry = rhs.y;\n\t\tconst rz = rhs.z;\n\t\tthis.x = ly * rz - ry * lz;\n\t\tthis.y = lz * rx - rz * lx;\n\t\tthis.z = lx * ry - rx * ly;\n\t\treturn this;\n\t}\n\tdistance(rhs) {\n\t\tconst x3 = this.x - rhs.x;\n\t\tconst y2 = this.y - rhs.y;\n\t\tconst z2 = this.z - rhs.z;\n\t\treturn Math.sqrt(x3 * x3 + y2 * y2 + z2 * z2);\n\t}\n\tdiv(rhs) {\n\t\tthis.x /= rhs.x;\n\t\tthis.y /= rhs.y;\n\t\tthis.z /= rhs.z;\n\t\treturn this;\n\t}\n\tdiv2(lhs, rhs) {\n\t\tthis.x = lhs.x / rhs.x;\n\t\tthis.y = lhs.y / rhs.y;\n\t\tthis.z = lhs.z / rhs.z;\n\t\treturn this;\n\t}\n\tdivScalar(scalar) {\n\t\tthis.x /= scalar;\n\t\tthis.y /= scalar;\n\t\tthis.z /= scalar;\n\t\treturn this;\n\t}\n\tdot(rhs) {\n\t\treturn this.x * rhs.x + this.y * rhs.y + this.z * rhs.z;\n\t}\n\tequals(rhs) {\n\t\treturn this.x === rhs.x && this.y === rhs.y && this.z === rhs.z;\n\t}\n\tequalsApprox(rhs, epsilon = 1e-6) {\n\t\treturn Math.abs(this.x - rhs.x) < epsilon && Math.abs(this.y - rhs.y) < epsilon && Math.abs(this.z - rhs.z) < epsilon;\n\t}\n\tlength() {\n\t\treturn Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);\n\t}\n\tlengthSq() {\n\t\treturn this.x * this.x + this.y * this.y + this.z * this.z;\n\t}\n\tlerp(lhs, rhs, alpha) {\n\t\tthis.x = lhs.x + alpha * (rhs.x - lhs.x);\n\t\tthis.y = lhs.y + alpha * (rhs.y - lhs.y);\n\t\tthis.z = lhs.z + alpha * (rhs.z - lhs.z);\n\t\treturn this;\n\t}\n\tmul(rhs) {\n\t\tthis.x *= rhs.x;\n\t\tthis.y *= rhs.y;\n\t\tthis.z *= rhs.z;\n\t\treturn this;\n\t}\n\tmul2(lhs, rhs) {\n\t\tthis.x = lhs.x * rhs.x;\n\t\tthis.y = lhs.y * rhs.y;\n\t\tthis.z = lhs.z * rhs.z;\n\t\treturn this;\n\t}\n\tmulScalar(scalar) {\n\t\tthis.x *= scalar;\n\t\tthis.y *= scalar;\n\t\tthis.z *= scalar;\n\t\treturn this;\n\t}\n\tscale(scalar) {\n\t\treturn this.mulScalar(scalar);\n\t}\n\tnormalize(src = this) {\n\t\tconst lengthSq = src.x * src.x + src.y * src.y + src.z * src.z;\n\t\tif (lengthSq > 0) {\n\t\t\tconst invLength = 1 / Math.sqrt(lengthSq);\n\t\t\tthis.x = src.x * invLength;\n\t\t\tthis.y = src.y * invLength;\n\t\t\tthis.z = src.z * invLength;\n\t\t}\n\t\treturn this;\n\t}\n\tfloor(src = this) {\n\t\tthis.x = Math.floor(src.x);\n\t\tthis.y = Math.floor(src.y);\n\t\tthis.z = Math.floor(src.z);\n\t\treturn this;\n\t}\n\tceil(src = this) {\n\t\tthis.x = Math.ceil(src.x);\n\t\tthis.y = Math.ceil(src.y);\n\t\tthis.z = Math.ceil(src.z);\n\t\treturn this;\n\t}\n\tround(src = this) {\n\t\tthis.x = Math.round(src.x);\n\t\tthis.y = Math.round(src.y);\n\t\tthis.z = Math.round(src.z);\n\t\treturn this;\n\t}\n\tmin(rhs) {\n\t\tif (rhs.x < this.x) this.x = rhs.x;\n\t\tif (rhs.y < this.y) this.y = rhs.y;\n\t\tif (rhs.z < this.z) this.z = rhs.z;\n\t\treturn this;\n\t}\n\tmax(rhs) {\n\t\tif (rhs.x > this.x) this.x = rhs.x;\n\t\tif (rhs.y > this.y) this.y = rhs.y;\n\t\tif (rhs.z > this.z) this.z = rhs.z;\n\t\treturn this;\n\t}\n\tproject(rhs) {\n\t\tconst a_dot_b = this.x * rhs.x + this.y * rhs.y + this.z * rhs.z;\n\t\tconst b_dot_b = rhs.x * rhs.x + rhs.y * rhs.y + rhs.z * rhs.z;\n\t\tconst s2 = a_dot_b / b_dot_b;\n\t\tthis.x = rhs.x * s2;\n\t\tthis.y = rhs.y * s2;\n\t\tthis.z = rhs.z * s2;\n\t\treturn this;\n\t}\n\tset(x3, y2, z2) {\n\t\tthis.x = x3;\n\t\tthis.y = y2;\n\t\tthis.z = z2;\n\t\treturn this;\n\t}\n\tsub(rhs) {\n\t\tthis.x -= rhs.x;\n\t\tthis.y -= rhs.y;\n\t\tthis.z -= rhs.z;\n\t\treturn this;\n\t}\n\tsub2(lhs, rhs) {\n\t\tthis.x = lhs.x - rhs.x;\n\t\tthis.y = lhs.y - rhs.y;\n\t\tthis.z = lhs.z - rhs.z;\n\t\treturn this;\n\t}\n\tsubScalar(scalar) {\n\t\tthis.x -= scalar;\n\t\tthis.y -= scalar;\n\t\tthis.z -= scalar;\n\t\treturn this;\n\t}\n\tfromArray(arr, offset3 = 0) {\n\t\tthis.x = arr[offset3] ?? this.x;\n\t\tthis.y = arr[offset3 + 1] ?? this.y;\n\t\tthis.z = arr[offset3 + 2] ?? this.z;\n\t\treturn this;\n\t}\n\ttoString() {\n\t\treturn `[${this.x}, ${this.y}, ${this.z}]`;\n\t}\n\ttoArray(arr = [], offset3 = 0) {\n\t\tarr[offset3] = this.x;\n\t\tarr[offset3 + 1] = this.y;\n\t\tarr[offset3 + 2] = this.z;\n\t\treturn arr;\n\t}\n\tstatic ZERO = Object.freeze(new _Vec3(0, 0, 0));\n\tstatic HALF = Object.freeze(new _Vec3(0.5, 0.5, 0.5));\n\tstatic ONE = Object.freeze(new _Vec3(1, 1, 1));\n\tstatic UP = Object.freeze(new _Vec3(0, 1, 0));\n\tstatic DOWN = Object.freeze(new _Vec3(0, -1, 0));\n\tstatic RIGHT = Object.freeze(new _Vec3(1, 0, 0));\n\tstatic LEFT = Object.freeze(new _Vec3(-1, 0, 0));\n\tstatic FORWARD = Object.freeze(new _Vec3(0, 0, -1));\n\tstatic BACK = Object.freeze(new _Vec3(0, 0, 1));\n};\n\nvar Mat3 = class _Mat3 {\n\tdata = new Float32Array(9);\n\tconstructor() {\n\t\tthis.data[0] = this.data[4] = this.data[8] = 1;\n\t}\n\tclone() {\n\t\tconst cstr = this.constructor;\n\t\treturn new cstr().copy(this);\n\t}\n\tcopy(rhs) {\n\t\tconst src = rhs.data;\n\t\tconst dst = this.data;\n\t\tdst[0] = src[0];\n\t\tdst[1] = src[1];\n\t\tdst[2] = src[2];\n\t\tdst[3] = src[3];\n\t\tdst[4] = src[4];\n\t\tdst[5] = src[5];\n\t\tdst[6] = src[6];\n\t\tdst[7] = src[7];\n\t\tdst[8] = src[8];\n\t\treturn this;\n\t}\n\tset(src) {\n\t\tconst dst = this.data;\n\t\tdst[0] = src[0];\n\t\tdst[1] = src[1];\n\t\tdst[2] = src[2];\n\t\tdst[3] = src[3];\n\t\tdst[4] = src[4];\n\t\tdst[5] = src[5];\n\t\tdst[6] = src[6];\n\t\tdst[7] = src[7];\n\t\tdst[8] = src[8];\n\t\treturn this;\n\t}\n\tgetX(x3 = new Vec3()) {\n\t\treturn x3.set(this.data[0], this.data[1], this.data[2]);\n\t}\n\tgetY(y2 = new Vec3()) {\n\t\treturn y2.set(this.data[3], this.data[4], this.data[5]);\n\t}\n\tgetZ(z2 = new Vec3()) {\n\t\treturn z2.set(this.data[6], this.data[7], this.data[8]);\n\t}\n\tequals(rhs) {\n\t\tconst l = this.data;\n\t\tconst r = rhs.data;\n\t\treturn l[0] === r[0] && l[1] === r[1] && l[2] === r[2] && l[3] === r[3] && l[4] === r[4] && l[5] === r[5] && l[6] === r[6] && l[7] === r[7] && l[8] === r[8];\n\t}\n\tisIdentity() {\n\t\tconst m = this.data;\n\t\treturn m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 0 && m[4] === 1 && m[5] === 0 && m[6] === 0 && m[7] === 0 && m[8] === 1;\n\t}\n\tsetIdentity() {\n\t\tconst m = this.data;\n\t\tm[0] = 1;\n\t\tm[1] = 0;\n\t\tm[2] = 0;\n\t\tm[3] = 0;\n\t\tm[4] = 1;\n\t\tm[5] = 0;\n\t\tm[6] = 0;\n\t\tm[7] = 0;\n\t\tm[8] = 1;\n\t\treturn this;\n\t}\n\ttoString() {\n\t\treturn `[${this.data.join(\", \")}]`;\n\t}\n\ttranspose(src = this) {\n\t\tconst s2 = src.data;\n\t\tconst t = this.data;\n\t\tif (s2 === t) {\n\t\t\tlet tmp;\n\t\t\ttmp = s2[1];\n\t\t\tt[1] = s2[3];\n\t\t\tt[3] = tmp;\n\t\t\ttmp = s2[2];\n\t\t\tt[2] = s2[6];\n\t\t\tt[6] = tmp;\n\t\t\ttmp = s2[5];\n\t\t\tt[5] = s2[7];\n\t\t\tt[7] = tmp;\n\t\t} else {\n\t\t\tt[0] = s2[0];\n\t\t\tt[1] = s2[3];\n\t\t\tt[2] = s2[6];\n\t\t\tt[3] = s2[1];\n\t\t\tt[4] = s2[4];\n\t\t\tt[5] = s2[7];\n\t\t\tt[6] = s2[2];\n\t\t\tt[7] = s2[5];\n\t\t\tt[8] = s2[8];\n\t\t}\n\t\treturn this;\n\t}\n\tsetFromMat4(m) {\n\t\tconst src = m.data;\n\t\tconst dst = this.data;\n\t\tdst[0] = src[0];\n\t\tdst[1] = src[1];\n\t\tdst[2] = src[2];\n\t\tdst[3] = src[4];\n\t\tdst[4] = src[5];\n\t\tdst[5] = src[6];\n\t\tdst[6] = src[8];\n\t\tdst[7] = src[9];\n\t\tdst[8] = src[10];\n\t\treturn this;\n\t}\n\tsetFromQuat(r) {\n\t\tconst qx = r.x;\n\t\tconst qy = r.y;\n\t\tconst qz = r.z;\n\t\tconst qw = r.w;\n\t\tconst x22 = qx + qx;\n\t\tconst y2 = qy + qy;\n\t\tconst z2 = qz + qz;\n\t\tconst xx = qx * x22;\n\t\tconst xy = qx * y2;\n\t\tconst xz = qx * z2;\n\t\tconst yy = qy * y2;\n\t\tconst yz = qy * z2;\n\t\tconst zz = qz * z2;\n\t\tconst wx = qw * x22;\n\t\tconst wy = qw * y2;\n\t\tconst wz = qw * z2;\n\t\tconst m = this.data;\n\t\tm[0] = 1 - (yy + zz);\n\t\tm[1] = xy + wz;\n\t\tm[2] = xz - wy;\n\t\tm[3] = xy - wz;\n\t\tm[4] = 1 - (xx + zz);\n\t\tm[5] = yz + wx;\n\t\tm[6] = xz + wy;\n\t\tm[7] = yz - wx;\n\t\tm[8] = 1 - (xx + yy);\n\t\treturn this;\n\t}\n\tinvertMat4(src) {\n\t\tconst s2 = src.data;\n\t\tconst a0 = s2[0];\n\t\tconst a1 = s2[1];\n\t\tconst a2 = s2[2];\n\t\tconst a4 = s2[4];\n\t\tconst a5 = s2[5];\n\t\tconst a6 = s2[6];\n\t\tconst a8 = s2[8];\n\t\tconst a9 = s2[9];\n\t\tconst a10 = s2[10];\n\t\tconst b11 = a10 * a5 - a6 * a9;\n\t\tconst b21 = -a10 * a1 + a2 * a9;\n\t\tconst b31 = a6 * a1 - a2 * a5;\n\t\tconst b12 = -a10 * a4 + a6 * a8;\n\t\tconst b22 = a10 * a0 - a2 * a8;\n\t\tconst b32 = -a6 * a0 + a2 * a4;\n\t\tconst b13 = a9 * a4 - a5 * a8;\n\t\tconst b23 = -a9 * a0 + a1 * a8;\n\t\tconst b33 = a5 * a0 - a1 * a4;\n\t\tconst det = a0 * b11 + a1 * b12 + a2 * b13;\n\t\tif (det === 0) {\n\t\t\tthis.setIdentity();\n\t\t} else {\n\t\t\tconst invDet = 1 / det;\n\t\t\tconst t = this.data;\n\t\t\tt[0] = b11 * invDet;\n\t\t\tt[1] = b21 * invDet;\n\t\t\tt[2] = b31 * invDet;\n\t\t\tt[3] = b12 * invDet;\n\t\t\tt[4] = b22 * invDet;\n\t\t\tt[5] = b32 * invDet;\n\t\t\tt[6] = b13 * invDet;\n\t\t\tt[7] = b23 * invDet;\n\t\t\tt[8] = b33 * invDet;\n\t\t}\n\t\treturn this;\n\t}\n\ttransformVector(vec2, res = new Vec3()) {\n\t\tconst m = this.data;\n\t\tconst { x: x3, y: y2, z: z2 } = vec2;\n\t\tres.x = x3 * m[0] + y2 * m[3] + z2 * m[6];\n\t\tres.y = x3 * m[1] + y2 * m[4] + z2 * m[7];\n\t\tres.z = x3 * m[2] + y2 * m[5] + z2 * m[8];\n\t\treturn res;\n\t}\n\tstatic IDENTITY = Object.freeze(new _Mat3());\n\tstatic ZERO = Object.freeze(new _Mat3().set([0, 0, 0, 0, 0, 0, 0, 0, 0]));\n};\n\nvar Vec2 = class _Vec2 {\n\tx;\n\ty;\n\tconstructor(x3 = 0, y2 = 0) {\n\t\tif (x3.length === 2) {\n\t\t\tthis.x = x3[0];\n\t\t\tthis.y = x3[1];\n\t\t} else {\n\t\t\tthis.x = x3;\n\t\t\tthis.y = y2;\n\t\t}\n\t}\n\tadd(rhs) {\n\t\tthis.x += rhs.x;\n\t\tthis.y += rhs.y;\n\t\treturn this;\n\t}\n\tadd2(lhs, rhs) {\n\t\tthis.x = lhs.x + rhs.x;\n\t\tthis.y = lhs.y + rhs.y;\n\t\treturn this;\n\t}\n\taddScalar(scalar) {\n\t\tthis.x += scalar;\n\t\tthis.y += scalar;\n\t\treturn this;\n\t}\n\taddScaled(rhs, scalar) {\n\t\tthis.x += rhs.x * scalar;\n\t\tthis.y += rhs.y * scalar;\n\t\treturn this;\n\t}\n\tclone() {\n\t\tconst cstr = this.constructor;\n\t\treturn new cstr(this.x, this.y);\n\t}\n\tcopy(rhs) {\n\t\tthis.x = rhs.x;\n\t\tthis.y = rhs.y;\n\t\treturn this;\n\t}\n\tcross(rhs) {\n\t\treturn this.x * rhs.y - this.y * rhs.x;\n\t}\n\tdistance(rhs) {\n\t\tconst x3 = this.x - rhs.x;\n\t\tconst y2 = this.y - rhs.y;\n\t\treturn Math.sqrt(x3 * x3 + y2 * y2);\n\t}\n\tdiv(rhs) {\n\t\tthis.x /= rhs.x;\n\t\tthis.y /= rhs.y;\n\t\treturn this;\n\t}\n\tdiv2(lhs, rhs) {\n\t\tthis.x = lhs.x / rhs.x;\n\t\tthis.y = lhs.y / rhs.y;\n\t\treturn this;\n\t}\n\tdivScalar(scalar) {\n\t\tthis.x /= scalar;\n\t\tthis.y /= scalar;\n\t\treturn this;\n\t}\n\tdot(rhs) {\n\t\treturn this.x * rhs.x + this.y * rhs.y;\n\t}\n\tequals(rhs) {\n\t\treturn this.x === rhs.x && this.y === rhs.y;\n\t}\n\tequalsApprox(rhs, epsilon = 1e-6) {\n\t\treturn Math.abs(this.x - rhs.x) < epsilon && Math.abs(this.y - rhs.y) < epsilon;\n\t}\n\tlength() {\n\t\treturn Math.sqrt(this.x * this.x + this.y * this.y);\n\t}\n\tlengthSq() {\n\t\treturn this.x * this.x + this.y * this.y;\n\t}\n\tlerp(lhs, rhs, alpha) {\n\t\tthis.x = lhs.x + alpha * (rhs.x - lhs.x);\n\t\tthis.y = lhs.y + alpha * (rhs.y - lhs.y);\n\t\treturn this;\n\t}\n\tmul(rhs) {\n\t\tthis.x *= rhs.x;\n\t\tthis.y *= rhs.y;\n\t\treturn this;\n\t}\n\tmul2(lhs, rhs) {\n\t\tthis.x = lhs.x * rhs.x;\n\t\tthis.y = lhs.y * rhs.y;\n\t\treturn this;\n\t}\n\tmulScalar(scalar) {\n\t\tthis.x *= scalar;\n\t\tthis.y *= scalar;\n\t\treturn this;\n\t}\n\tscale(scalar) {\n\t\treturn this.mulScalar(scalar);\n\t}\n\tnormalize(src = this) {\n\t\tconst lengthSq = src.x * src.x + src.y * src.y;\n\t\tif (lengthSq > 0) {\n\t\t\tconst invLength = 1 / Math.sqrt(lengthSq);\n\t\t\tthis.x = src.x * invLength;\n\t\t\tthis.y = src.y * invLength;\n\t\t}\n\t\treturn this;\n\t}\n\trotate(degrees) {\n\t\tconst angle = Math.atan2(this.x, this.y) + degrees * math.DEG_TO_RAD;\n\t\tconst len = Math.sqrt(this.x * this.x + this.y * this.y);\n\t\tthis.x = Math.sin(angle) * len;\n\t\tthis.y = Math.cos(angle) * len;\n\t\treturn this;\n\t}\n\tangle() {\n\t\treturn Math.atan2(this.x, this.y) * math.RAD_TO_DEG;\n\t}\n\tangleTo(rhs) {\n\t\treturn Math.atan2(this.x * rhs.y + this.y * rhs.x, this.x * rhs.x + this.y * rhs.y) * math.RAD_TO_DEG;\n\t}\n\tfloor(src = this) {\n\t\tthis.x = Math.floor(src.x);\n\t\tthis.y = Math.floor(src.y);\n\t\treturn this;\n\t}\n\tceil(src = this) {\n\t\tthis.x = Math.ceil(src.x);\n\t\tthis.y = Math.ceil(src.y);\n\t\treturn this;\n\t}\n\tround(src = this) {\n\t\tthis.x = Math.round(src.x);\n\t\tthis.y = Math.round(src.y);\n\t\treturn this;\n\t}\n\tmin(rhs) {\n\t\tif (rhs.x < this.x) this.x = rhs.x;\n\t\tif (rhs.y < this.y) this.y = rhs.y;\n\t\treturn this;\n\t}\n\tmax(rhs) {\n\t\tif (rhs.x > this.x) this.x = rhs.x;\n\t\tif (rhs.y > this.y) this.y = rhs.y;\n\t\treturn this;\n\t}\n\tset(x3, y2) {\n\t\tthis.x = x3;\n\t\tthis.y = y2;\n\t\treturn this;\n\t}\n\tsub(rhs) {\n\t\tthis.x -= rhs.x;\n\t\tthis.y -= rhs.y;\n\t\treturn this;\n\t}\n\tsub2(lhs, rhs) {\n\t\tthis.x = lhs.x - rhs.x;\n\t\tthis.y = lhs.y - rhs.y;\n\t\treturn this;\n\t}\n\tsubScalar(scalar) {\n\t\tthis.x -= scalar;\n\t\tthis.y -= scalar;\n\t\treturn this;\n\t}\n\tfromArray(arr, offset3 = 0) {\n\t\tthis.x = arr[offset3] ?? this.x;\n\t\tthis.y = arr[offset3 + 1] ?? this.y;\n\t\treturn this;\n\t}\n\ttoString() {\n\t\treturn `[${this.x}, ${this.y}]`;\n\t}\n\ttoArray(arr = [], offset3 = 0) {\n\t\tarr[offset3] = this.x;\n\t\tarr[offset3 + 1] = this.y;\n\t\treturn arr;\n\t}\n\tstatic angleRad(lhs, rhs) {\n\t\treturn Math.atan2(lhs.x * rhs.y - lhs.y * rhs.x, lhs.x * rhs.x + lhs.y * rhs.y);\n\t}\n\tstatic ZERO = Object.freeze(new _Vec2(0, 0));\n\tstatic HALF = Object.freeze(new _Vec2(0.5, 0.5));\n\tstatic ONE = Object.freeze(new _Vec2(1, 1));\n\tstatic UP = Object.freeze(new _Vec2(0, 1));\n\tstatic DOWN = Object.freeze(new _Vec2(0, -1));\n\tstatic RIGHT = Object.freeze(new _Vec2(1, 0));\n\tstatic LEFT = Object.freeze(new _Vec2(-1, 0));\n};\n\nvar Vec4 = class _Vec4 {\n\tx;\n\ty;\n\tz;\n\tw;\n\tconstructor(x3 = 0, y2 = 0, z2 = 0, w = 0) {\n\t\tif (x3.length === 4) {\n\t\t\tthis.x = x3[0];\n\t\t\tthis.y = x3[1];\n\t\t\tthis.z = x3[2];\n\t\t\tthis.w = x3[3];\n\t\t} else {\n\t\t\tthis.x = x3;\n\t\t\tthis.y = y2;\n\t\t\tthis.z = z2;\n\t\t\tthis.w = w;\n\t\t}\n\t}\n\tadd(rhs) {\n\t\tthis.x += rhs.x;\n\t\tthis.y += rhs.y;\n\t\tthis.z += rhs.z;\n\t\tthis.w += rhs.w;\n\t\treturn this;\n\t}\n\tadd2(lhs, rhs) {\n\t\tthis.x = lhs.x + rhs.x;\n\t\tthis.y = lhs.y + rhs.y;\n\t\tthis.z = lhs.z + rhs.z;\n\t\tthis.w = lhs.w + rhs.w;\n\t\treturn this;\n\t}\n\taddScalar(scalar) {\n\t\tthis.x += scalar;\n\t\tthis.y += scalar;\n\t\tthis.z += scalar;\n\t\tthis.w += scalar;\n\t\treturn this;\n\t}\n\taddScaled(rhs, scalar) {\n\t\tthis.x += rhs.x * scalar;\n\t\tthis.y += rhs.y * scalar;\n\t\tthis.z += rhs.z * scalar;\n\t\tthis.w += rhs.w * scalar;\n\t\treturn this;\n\t}\n\tclone() {\n\t\tconst cstr = this.constructor;\n\t\treturn new cstr(this.x, this.y, this.z, this.w);\n\t}\n\tcopy(rhs) {\n\t\tthis.x = rhs.x;\n\t\tthis.y = rhs.y;\n\t\tthis.z = rhs.z;\n\t\tthis.w = rhs.w;\n\t\treturn this;\n\t}\n\tdiv(rhs) {\n\t\tthis.x /= rhs.x;\n\t\tthis.y /= rhs.y;\n\t\tthis.z /= rhs.z;\n\t\tthis.w /= rhs.w;\n\t\treturn this;\n\t}\n\tdiv2(lhs, rhs) {\n\t\tthis.x = lhs.x / rhs.x;\n\t\tthis.y = lhs.y / rhs.y;\n\t\tthis.z = lhs.z / rhs.z;\n\t\tthis.w = lhs.w / rhs.w;\n\t\treturn this;\n\t}\n\tdivScalar(scalar) {\n\t\tthis.x /= scalar;\n\t\tthis.y /= scalar;\n\t\tthis.z /= scalar;\n\t\tthis.w /= scalar;\n\t\treturn this;\n\t}\n\tdot(rhs) {\n\t\treturn this.x * rhs.x + this.y * rhs.y + this.z * rhs.z + this.w * rhs.w;\n\t}\n\tequals(rhs) {\n\t\treturn this.x === rhs.x && this.y === rhs.y && this.z === rhs.z && this.w === rhs.w;\n\t}\n\tequalsApprox(rhs, epsilon = 1e-6) {\n\t\treturn Math.abs(this.x - rhs.x) < epsilon && Math.abs(this.y - rhs.y) < epsilon && Math.abs(this.z - rhs.z) < epsilon && Math.abs(this.w - rhs.w) < epsilon;\n\t}\n\tlength() {\n\t\treturn Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w);\n\t}\n\tlengthSq() {\n\t\treturn this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w;\n\t}\n\tlerp(lhs, rhs, alpha) {\n\t\tthis.x = lhs.x + alpha * (rhs.x - lhs.x);\n\t\tthis.y = lhs.y + alpha * (rhs.y - lhs.y);\n\t\tthis.z = lhs.z + alpha * (rhs.z - lhs.z);\n\t\tthis.w = lhs.w + alpha * (rhs.w - lhs.w);\n\t\treturn this;\n\t}\n\tmul(rhs) {\n\t\tthis.x *= rhs.x;\n\t\tthis.y *= rhs.y;\n\t\tthis.z *= rhs.z;\n\t\tthis.w *= rhs.w;\n\t\treturn this;\n\t}\n\tmul2(lhs, rhs) {\n\t\tthis.x = lhs.x * rhs.x;\n\t\tthis.y = lhs.y * rhs.y;\n\t\tthis.z = lhs.z * rhs.z;\n\t\tthis.w = lhs.w * rhs.w;\n\t\treturn this;\n\t}\n\tmulScalar(scalar) {\n\t\tthis.x *= scalar;\n\t\tthis.y *= scalar;\n\t\tthis.z *= scalar;\n\t\tthis.w *= scalar;\n\t\treturn this;\n\t}\n\tscale(scalar) {\n\t\treturn this.mulScalar(scalar);\n\t}\n\tnormalize(src = this) {\n\t\tconst lengthSq = src.x * src.x + src.y * src.y + src.z * src.z + src.w * src.w;\n\t\tif (lengthSq > 0) {\n\t\t\tconst invLength = 1 / Math.sqrt(lengthSq);\n\t\t\tthis.x = src.x * invLength;\n\t\t\tthis.y = src.y * invLength;\n\t\t\tthis.z = src.z * invLength;\n\t\t\tthis.w = src.w * invLength;\n\t\t}\n\t\treturn this;\n\t}\n\tfloor(src = this) {\n\t\tthis.x = Math.floor(src.x);\n\t\tthis.y = Math.floor(src.y);\n\t\tthis.z = Math.floor(src.z);\n\t\tthis.w = Math.floor(src.w);\n\t\treturn this;\n\t}\n\tceil(src = this) {\n\t\tthis.x = Math.ceil(src.x);\n\t\tthis.y = Math.ceil(src.y);\n\t\tthis.z = Math.ceil(src.z);\n\t\tthis.w = Math.ceil(src.w);\n\t\treturn this;\n\t}\n\tround(src = this) {\n\t\tthis.x = Math.round(src.x);\n\t\tthis.y = Math.round(src.y);\n\t\tthis.z = Math.round(src.z);\n\t\tthis.w = Math.round(src.w);\n\t\treturn this;\n\t}\n\tmin(rhs) {\n\t\tif (rhs.x < this.x) this.x = rhs.x;\n\t\tif (rhs.y < this.y) this.y = rhs.y;\n\t\tif (rhs.z < this.z) this.z = rhs.z;\n\t\tif (rhs.w < this.w) this.w = rhs.w;\n\t\treturn this;\n\t}\n\tmax(rhs) {\n\t\tif (rhs.x > this.x) this.x = rhs.x;\n\t\tif (rhs.y > this.y) this.y = rhs.y;\n\t\tif (rhs.z > this.z) this.z = rhs.z;\n\t\tif (rhs.w > this.w) this.w = rhs.w;\n\t\treturn this;\n\t}\n\tset(x3, y2, z2, w) {\n\t\tthis.x = x3;\n\t\tthis.y = y2;\n\t\tthis.z = z2;\n\t\tthis.w = w;\n\t\treturn this;\n\t}\n\tsub(rhs) {\n\t\tthis.x -= rhs.x;\n\t\tthis.y -= rhs.y;\n\t\tthis.z -= rhs.z;\n\t\tthis.w -= rhs.w;\n\t\treturn this;\n\t}\n\tsub2(lhs, rhs) {\n\t\tthis.x = lhs.x - rhs.x;\n\t\tthis.y = lhs.y - rhs.y;\n\t\tthis.z = lhs.z - rhs.z;\n\t\tthis.w = lhs.w - rhs.w;\n\t\treturn this;\n\t}\n\tsubScalar(scalar) {\n\t\tthis.x -= scalar;\n\t\tthis.y -= scalar;\n\t\tthis.z -= scalar;\n\t\tthis.w -= scalar;\n\t\treturn this;\n\t}\n\tfromArray(arr, offset3 = 0) {\n\t\tthis.x = arr[offset3] ?? this.x;\n\t\tthis.y = arr[offset3 + 1] ?? this.y;\n\t\tthis.z = arr[offset3 + 2] ?? this.z;\n\t\tthis.w = arr[offset3 + 3] ?? this.w;\n\t\treturn this;\n\t}\n\ttoString() {\n\t\treturn `[${this.x}, ${this.y}, ${this.z}, ${this.w}]`;\n\t}\n\ttoArray(arr = [], offset3 = 0) {\n\t\tarr[offset3] = this.x;\n\t\tarr[offset3 + 1] = this.y;\n\t\tarr[offset3 + 2] = this.z;\n\t\tarr[offset3 + 3] = this.w;\n\t\treturn arr;\n\t}\n\tstatic ZERO = Object.freeze(new _Vec4(0, 0, 0, 0));\n\tstatic HALF = Object.freeze(new _Vec4(0.5, 0.5, 0.5, 0.5));\n\tstatic ONE = Object.freeze(new _Vec4(1, 1, 1, 1));\n};\n\nvar _halfSize = new Vec2();\nvar x = new Vec3();\nvar y = new Vec3();\nvar z = new Vec3();\nvar scale = new Vec3();\nvar Mat4 = class _Mat4 {\n\tdata = new Float32Array(16);\n\tconstructor() {\n\t\tthis.data[0] = this.data[5] = this.data[10] = this.data[15] = 1;\n\t}\n\t// Static function which evaluates perspective projection matrix half size at the near plane\n\tstatic _getPerspectiveHalfSize(halfSize, fov, aspect, znear, fovIsHorizontal) {\n\t\tif (fovIsHorizontal) {\n\t\t\thalfSize.x = znear * Math.tan(fov * Math.PI / 360);\n\t\t\thalfSize.y = halfSize.x / aspect;\n\t\t} else {\n\t\t\thalfSize.y = znear * Math.tan(fov * Math.PI / 360);\n\t\t\thalfSize.x = halfSize.y * aspect;\n\t\t}\n\t}\n\tadd2(lhs, rhs) {\n\t\tconst a = lhs.data, b = rhs.data, r = this.data;\n\t\tr[0] = a[0] + b[0];\n\t\tr[1] = a[1] + b[1];\n\t\tr[2] = a[2] + b[2];\n\t\tr[3] = a[3] + b[3];\n\t\tr[4] = a[4] + b[4];\n\t\tr[5] = a[5] + b[5];\n\t\tr[6] = a[6] + b[6];\n\t\tr[7] = a[7] + b[7];\n\t\tr[8] = a[8] + b[8];\n\t\tr[9] = a[9] + b[9];\n\t\tr[10] = a[10] + b[10];\n\t\tr[11] = a[11] + b[11];\n\t\tr[12] = a[12] + b[12];\n\t\tr[13] = a[13] + b[13];\n\t\tr[14] = a[14] + b[14];\n\t\tr[15] = a[15] + b[15];\n\t\treturn this;\n\t}\n\tadd(rhs) {\n\t\treturn this.add2(this, rhs);\n\t}\n\tclone() {\n\t\tconst cstr = this.constructor;\n\t\treturn new cstr().copy(this);\n\t}\n\tcopy(rhs) {\n\t\tconst src = rhs.data, dst = this.data;\n\t\tdst[0] = src[0];\n\t\tdst[1] = src[1];\n\t\tdst[2] = src[2];\n\t\tdst[3] = src[3];\n\t\tdst[4] = src[4];\n\t\tdst[5] = src[5];\n\t\tdst[6] = src[6];\n\t\tdst[7] = src[7];\n\t\tdst[8] = src[8];\n\t\tdst[9] = src[9];\n\t\tdst[10] = src[10];\n\t\tdst[11] = src[11];\n\t\tdst[12] = src[12];\n\t\tdst[13] = src[13];\n\t\tdst[14] = src[14];\n\t\tdst[15] = src[15];\n\t\treturn this;\n\t}\n\tequals(rhs) {\n\t\tconst l = this.data, r = rhs.data;\n\t\treturn l[0] === r[0] && l[1] === r[1] && l[2] === r[2] && l[3] === r[3] && l[4] === r[4] && l[5] === r[5] && l[6] === r[6] && l[7] === r[7] && l[8] === r[8] && l[9] === r[9] && l[10] === r[10] && l[11] === r[11] && l[12] === r[12] && l[13] === r[13] && l[14] === r[14] && l[15] === r[15];\n\t}\n\tisIdentity() {\n\t\tconst m = this.data;\n\t\treturn m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 0 && m[4] === 0 && m[5] === 1 && m[6] === 0 && m[7] === 0 && m[8] === 0 && m[9] === 0 && m[10] === 1 && m[11] === 0 && m[12] === 0 && m[13] === 0 && m[14] === 0 && m[15] === 1;\n\t}\n\tmul2(lhs, rhs) {\n\t\tconst a = lhs.data;\n\t\tconst b = rhs.data;\n\t\tconst r = this.data;\n\t\tconst a00 = a[0];\n\t\tconst a01 = a[1];\n\t\tconst a02 = a[2];\n\t\tconst a03 = a[3];\n\t\tconst a10 = a[4];\n\t\tconst a11 = a[5];\n\t\tconst a12 = a[6];\n\t\tconst a13 = a[7];\n\t\tconst a20 = a[8];\n\t\tconst a21 = a[9];\n\t\tconst a22 = a[10];\n\t\tconst a23 = a[11];\n\t\tconst a30 = a[12];\n\t\tconst a31 = a[13];\n\t\tconst a32 = a[14];\n\t\tconst a33 = a[15];\n\t\tlet b0, b1, b2, b3;\n\t\tb0 = b[0];\n\t\tb1 = b[1];\n\t\tb2 = b[2];\n\t\tb3 = b[3];\n\t\tr[0] = a00 * b0 + a10 * b1 + a20 * b2 + a30 * b3;\n\t\tr[1] = a01 * b0 + a11 * b1 + a21 * b2 + a31 * b3;\n\t\tr[2] = a02 * b0 + a12 * b1 + a22 * b2 + a32 * b3;\n\t\tr[3] = a03 * b0 + a13 * b1 + a23 * b2 + a33 * b3;\n\t\tb0 = b[4];\n\t\tb1 = b[5];\n\t\tb2 = b[6];\n\t\tb3 = b[7];\n\t\tr[4] = a00 * b0 + a10 * b1 + a20 * b2 + a30 * b3;\n\t\tr[5] = a01 * b0 + a11 * b1 + a21 * b2 + a31 * b3;\n\t\tr[6] = a02 * b0 + a12 * b1 + a22 * b2 + a32 * b3;\n\t\tr[7] = a03 * b0 + a13 * b1 + a23 * b2 + a33 * b3;\n\t\tb0 = b[8];\n\t\tb1 = b[9];\n\t\tb2 = b[10];\n\t\tb3 = b[11];\n\t\tr[8] = a00 * b0 + a10 * b1 + a20 * b2 + a30 * b3;\n\t\tr[9] = a01 * b0 + a11 * b1 + a21 * b2 + a31 * b3;\n\t\tr[10] = a02 * b0 + a12 * b1 + a22 * b2 + a32 * b3;\n\t\tr[11] = a03 * b0 + a13 * b1 + a23 * b2 + a33 * b3;\n\t\tb0 = b[12];\n\t\tb1 = b[13];\n\t\tb2 = b[14];\n\t\tb3 = b[15];\n\t\tr[12] = a00 * b0 + a10 * b1 + a20 * b2 + a30 * b3;\n\t\tr[13] = a01 * b0 + a11 * b1 + a21 * b2 + a31 * b3;\n\t\tr[14] = a02 * b0 + a12 * b1 + a22 * b2 + a32 * b3;\n\t\tr[15] = a03 * b0 + a13 * b1 + a23 * b2 + a33 * b3;\n\t\treturn this;\n\t}\n\tmulAffine2(lhs, rhs) {\n\t\tconst a = lhs.data;\n\t\tconst b = rhs.data;\n\t\tconst r = this.data;\n\t\tconst a00 = a[0];\n\t\tconst a01 = a[1];\n\t\tconst a02 = a[2];\n\t\tconst a10 = a[4];\n\t\tconst a11 = a[5];\n\t\tconst a12 = a[6];\n\t\tconst a20 = a[8];\n\t\tconst a21 = a[9];\n\t\tconst a22 = a[10];\n\t\tconst a30 = a[12];\n\t\tconst a31 = a[13];\n\t\tconst a32 = a[14];\n\t\tlet b0, b1, b2;\n\t\tb0 = b[0];\n\t\tb1 = b[1];\n\t\tb2 = b[2];\n\t\tr[0] = a00 * b0 + a10 * b1 + a20 * b2;\n\t\tr[1] = a01 * b0 + a11 * b1 + a21 * b2;\n\t\tr[2] = a02 * b0 + a12 * b1 + a22 * b2;\n\t\tr[3] = 0;\n\t\tb0 = b[4];\n\t\tb1 = b[5];\n\t\tb2 = b[6];\n\t\tr[4] = a00 * b0 + a10 * b1 + a20 * b2;\n\t\tr[5] = a01 * b0 + a11 * b1 + a21 * b2;\n\t\tr[6] = a02 * b0 + a12 * b1 + a22 * b2;\n\t\tr[7] = 0;\n\t\tb0 = b[8];\n\t\tb1 = b[9];\n\t\tb2 = b[10];\n\t\tr[8] = a00 * b0 + a10 * b1 + a20 * b2;\n\t\tr[9] = a01 * b0 + a11 * b1 + a21 * b2;\n\t\tr[10] = a02 * b0 + a12 * b1 + a22 * b2;\n\t\tr[11] = 0;\n\t\tb0 = b[12];\n\t\tb1 = b[13];\n\t\tb2 = b[14];\n\t\tr[12] = a00 * b0 + a10 * b1 + a20 * b2 + a30;\n\t\tr[13] = a01 * b0 + a11 * b1 + a21 * b2 + a31;\n\t\tr[14] = a02 * b0 + a12 * b1 + a22 * b2 + a32;\n\t\tr[15] = 1;\n\t\treturn this;\n\t}\n\tmul(rhs) {\n\t\treturn this.mul2(this, rhs);\n\t}\n\ttransformPoint(vec2, res = new Vec3()) {\n\t\tconst m = this.data;\n\t\tconst { x: x3, y: y2, z: z2 } = vec2;\n\t\tres.x = x3 * m[0] + y2 * m[4] + z2 * m[8] + m[12];\n\t\tres.y = x3 * m[1] + y2 * m[5] + z2 * m[9] + m[13];\n\t\tres.z = x3 * m[2] + y2 * m[6] + z2 * m[10] + m[14];\n\t\treturn res;\n\t}\n\ttransformVector(vec2, res = new Vec3()) {\n\t\tconst m = this.data;\n\t\tconst { x: x3, y: y2, z: z2 } = vec2;\n\t\tres.x = x3 * m[0] + y2 * m[4] + z2 * m[8];\n\t\tres.y = x3 * m[1] + y2 * m[5] + z2 * m[9];\n\t\tres.z = x3 * m[2] + y2 * m[6] + z2 * m[10];\n\t\treturn res;\n\t}\n\ttransformVec4(vec2, res = new Vec4()) {\n\t\tconst m = this.data;\n\t\tconst { x: x3, y: y2, z: z2, w } = vec2;\n\t\tres.x = x3 * m[0] + y2 * m[4] + z2 * m[8] + w * m[12];\n\t\tres.y = x3 * m[1] + y2 * m[5] + z2 * m[9] + w * m[13];\n\t\tres.z = x3 * m[2] + y2 * m[6] + z2 * m[10] + w * m[14];\n\t\tres.w = x3 * m[3] + y2 * m[7] + z2 * m[11] + w * m[15];\n\t\treturn res;\n\t}\n\tsetLookAt(position5, target2, up3) {\n\t\tz.sub2(position5, target2).normalize();\n\t\ty.copy(up3).normalize();\n\t\tx.cross(y, z).normalize();\n\t\ty.cross(z, x);\n\t\tconst r = this.data;\n\t\tr[0] = x.x;\n\t\tr[1] = x.y;\n\t\tr[2] = x.z;\n\t\tr[3] = 0;\n\t\tr[4] = y.x;\n\t\tr[5] = y.y;\n\t\tr[6] = y.z;\n\t\tr[7] = 0;\n\t\tr[8] = z.x;\n\t\tr[9] = z.y;\n\t\tr[10] = z.z;\n\t\tr[11] = 0;\n\t\tr[12] = position5.x;\n\t\tr[13] = position5.y;\n\t\tr[14] = position5.z;\n\t\tr[15] = 1;\n\t\treturn this;\n\t}\n\tsetFrustum(left, right2, bottom, top, znear, zfar) {\n\t\tconst temp1 = 2 * znear;\n\t\tconst temp2 = right2 - left;\n\t\tconst temp3 = top - bottom;\n\t\tconst temp4 = zfar - znear;\n\t\tconst r = this.data;\n\t\tr[0] = temp1 / temp2;\n\t\tr[1] = 0;\n\t\tr[2] = 0;\n\t\tr[3] = 0;\n\t\tr[4] = 0;\n\t\tr[5] = temp1 / temp3;\n\t\tr[6] = 0;\n\t\tr[7] = 0;\n\t\tr[8] = (right2 + left) / temp2;\n\t\tr[9] = (top + bottom) / temp3;\n\t\tr[10] = (-zfar - znear) / temp4;\n\t\tr[11] = -1;\n\t\tr[12] = 0;\n\t\tr[13] = 0;\n\t\tr[14] = -temp1 * zfar / temp4;\n\t\tr[15] = 0;\n\t\treturn this;\n\t}\n\tsetPerspective(fov, aspect, znear, zfar, fovIsHorizontal) {\n\t\t_Mat4._getPerspectiveHalfSize(_halfSize, fov, aspect, znear, fovIsHorizontal);\n\t\treturn this.setFrustum(-_halfSize.x, _halfSize.x, -_halfSize.y, _halfSize.y, znear, zfar);\n\t}\n\tsetOrtho(left, right2, bottom, top, near, far) {\n\t\tconst r = this.data;\n\t\tr[0] = 2 / (right2 - left);\n\t\tr[1] = 0;\n\t\tr[2] = 0;\n\t\tr[3] = 0;\n\t\tr[4] = 0;\n\t\tr[5] = 2 / (top - bottom);\n\t\tr[6] = 0;\n\t\tr[7] = 0;\n\t\tr[8] = 0;\n\t\tr[9] = 0;\n\t\tr[10] = -2 / (far - near);\n\t\tr[11] = 0;\n\t\tr[12] = -(right2 + left) / (right2 - left);\n\t\tr[13] = -(top + bottom) / (top - bottom);\n\t\tr[14] = -(far + near) / (far - near);\n\t\tr[15] = 1;\n\t\treturn this;\n\t}\n\tsetFromAxisAngle(axis, angle) {\n\t\tangle *= math.DEG_TO_RAD;\n\t\tconst { x: x3, y: y2, z: z2 } = axis;\n\t\tconst c2 = Math.cos(angle);\n\t\tconst s2 = Math.sin(angle);\n\t\tconst t = 1 - c2;\n\t\tconst tx = t * x3;\n\t\tconst ty = t * y2;\n\t\tconst m = this.data;\n\t\tm[0] = tx * x3 + c2;\n\t\tm[1] = tx * y2 + s2 * z2;\n\t\tm[2] = tx * z2 - s2 * y2;\n\t\tm[3] = 0;\n\t\tm[4] = tx * y2 - s2 * z2;\n\t\tm[5] = ty * y2 + c2;\n\t\tm[6] = ty * z2 + s2 * x3;\n\t\tm[7] = 0;\n\t\tm[8] = tx * z2 + s2 * y2;\n\t\tm[9] = ty * z2 - x3 * s2;\n\t\tm[10] = t * z2 * z2 + c2;\n\t\tm[11] = 0;\n\t\tm[12] = 0;\n\t\tm[13] = 0;\n\t\tm[14] = 0;\n\t\tm[15] = 1;\n\t\treturn this;\n\t}\n\tsetTranslate(x3, y2, z2) {\n\t\tconst m = this.data;\n\t\tm[0] = 1;\n\t\tm[1] = 0;\n\t\tm[2] = 0;\n\t\tm[3] = 0;\n\t\tm[4] = 0;\n\t\tm[5] = 1;\n\t\tm[6] = 0;\n\t\tm[7] = 0;\n\t\tm[8] = 0;\n\t\tm[9] = 0;\n\t\tm[10] = 1;\n\t\tm[11] = 0;\n\t\tm[12] = x3;\n\t\tm[13] = y2;\n\t\tm[14] = z2;\n\t\tm[15] = 1;\n\t\treturn this;\n\t}\n\tsetScale(x3, y2, z2) {\n\t\tconst m = this.data;\n\t\tm[0] = x3;\n\t\tm[1] = 0;\n\t\tm[2] = 0;\n\t\tm[3] = 0;\n\t\tm[4] = 0;\n\t\tm[5] = y2;\n\t\tm[6] = 0;\n\t\tm[7] = 0;\n\t\tm[8] = 0;\n\t\tm[9] = 0;\n\t\tm[10] = z2;\n\t\tm[11] = 0;\n\t\tm[12] = 0;\n\t\tm[13] = 0;\n\t\tm[14] = 0;\n\t\tm[15] = 1;\n\t\treturn this;\n\t}\n\tsetViewport(x3, y2, width, height) {\n\t\tconst m = this.data;\n\t\tm[0] = width * 0.5;\n\t\tm[1] = 0;\n\t\tm[2] = 0;\n\t\tm[3] = 0;\n\t\tm[4] = 0;\n\t\tm[5] = height * 0.5;\n\t\tm[6] = 0;\n\t\tm[7] = 0;\n\t\tm[8] = 0;\n\t\tm[9] = 0;\n\t\tm[10] = 0.5;\n\t\tm[11] = 0;\n\t\tm[12] = x3 + width * 0.5;\n\t\tm[13] = y2 + height * 0.5;\n\t\tm[14] = 0.5;\n\t\tm[15] = 1;\n\t\treturn this;\n\t}\n\tsetReflection(normal, distance) {\n\t\tconst a = normal.x;\n\t\tconst b = normal.y;\n\t\tconst c2 = normal.z;\n\t\tconst data2 = this.data;\n\t\tdata2[0] = 1 - 2 * a * a;\n\t\tdata2[1] = -2 * a * b;\n\t\tdata2[2] = -2 * a * c2;\n\t\tdata2[3] = 0;\n\t\tdata2[4] = -2 * a * b;\n\t\tdata2[5] = 1 - 2 * b * b;\n\t\tdata2[6] = -2 * b * c2;\n\t\tdata2[7] = 0;\n\t\tdata2[8] = -2 * a * c2;\n\t\tdata2[9] = -2 * b * c2;\n\t\tdata2[10] = 1 - 2 * c2 * c2;\n\t\tdata2[11] = 0;\n\t\tdata2[12] = -2 * a * distance;\n\t\tdata2[13] = -2 * b * distance;\n\t\tdata2[14] = -2 * c2 * distance;\n\t\tdata2[15] = 1;\n\t\treturn this;\n\t}\n\tinvert(src = this) {\n\t\tconst s2 = src.data;\n\t\tconst a00 = s2[0];\n\t\tconst a01 = s2[1];\n\t\tconst a02 = s2[2];\n\t\tconst a03 = s2[3];\n\t\tconst a10 = s2[4];\n\t\tconst a11 = s2[5];\n\t\tconst a12 = s2[6];\n\t\tconst a13 = s2[7];\n\t\tconst a20 = s2[8];\n\t\tconst a21 = s2[9];\n\t\tconst a22 = s2[10];\n\t\tconst a23 = s2[11];\n\t\tconst a30 = s2[12];\n\t\tconst a31 = s2[13];\n\t\tconst a32 = s2[14];\n\t\tconst a33 = s2[15];\n\t\tconst b00 = a00 * a11 - a01 * a10;\n\t\tconst b01 = a00 * a12 - a02 * a10;\n\t\tconst b02 = a00 * a13 - a03 * a10;\n\t\tconst b03 = a01 * a12 - a02 * a11;\n\t\tconst b04 = a01 * a13 - a03 * a11;\n\t\tconst b05 = a02 * a13 - a03 * a12;\n\t\tconst b06 = a20 * a31 - a21 * a30;\n\t\tconst b07 = a20 * a32 - a22 * a30;\n\t\tconst b08 = a20 * a33 - a23 * a30;\n\t\tconst b09 = a21 * a32 - a22 * a31;\n\t\tconst b10 = a21 * a33 - a23 * a31;\n\t\tconst b11 = a22 * a33 - a23 * a32;\n\t\tconst det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n\t\tif (det === 0) {\n\t\t\tthis.setIdentity();\n\t\t} else {\n\t\t\tconst invDet = 1 / det;\n\t\t\tconst t = this.data;\n\t\t\tt[0] = (a11 * b11 - a12 * b10 + a13 * b09) * invDet;\n\t\t\tt[1] = (-a01 * b11 + a02 * b10 - a03 * b09) * invDet;\n\t\t\tt[2] = (a31 * b05 - a32 * b04 + a33 * b03) * invDet;\n\t\t\tt[3] = (-a21 * b05 + a22 * b04 - a23 * b03) * invDet;\n\t\t\tt[4] = (-a10 * b11 + a12 * b08 - a13 * b07) * invDet;\n\t\t\tt[5] = (a00 * b11 - a02 * b08 + a03 * b07) * invDet;\n\t\t\tt[6] = (-a30 * b05 + a32 * b02 - a33 * b01) * invDet;\n\t\t\tt[7] = (a20 * b05 - a22 * b02 + a23 * b01) * invDet;\n\t\t\tt[8] = (a10 * b10 - a11 * b08 + a13 * b06) * invDet;\n\t\t\tt[9] = (-a00 * b10 + a01 * b08 - a03 * b06) * invDet;\n\t\t\tt[10] = (a30 * b04 - a31 * b02 + a33 * b00) * invDet;\n\t\t\tt[11] = (-a20 * b04 + a21 * b02 - a23 * b00) * invDet;\n\t\t\tt[12] = (-a10 * b09 + a11 * b07 - a12 * b06) * invDet;\n\t\t\tt[13] = (a00 * b09 - a01 * b07 + a02 * b06) * invDet;\n\t\t\tt[14] = (-a30 * b03 + a31 * b01 - a32 * b00) * invDet;\n\t\t\tt[15] = (a20 * b03 - a21 * b01 + a22 * b00) * invDet;\n\t\t}\n\t\treturn this;\n\t}\n\tset(src) {\n\t\tconst dst = this.data;\n\t\tdst[0] = src[0];\n\t\tdst[1] = src[1];\n\t\tdst[2] = src[2];\n\t\tdst[3] = src[3];\n\t\tdst[4] = src[4];\n\t\tdst[5] = src[5];\n\t\tdst[6] = src[6];\n\t\tdst[7] = src[7];\n\t\tdst[8] = src[8];\n\t\tdst[9] = src[9];\n\t\tdst[10] = src[10];\n\t\tdst[11] = src[11];\n\t\tdst[12] = src[12];\n\t\tdst[13] = src[13];\n\t\tdst[14] = src[14];\n\t\tdst[15] = src[15];\n\t\treturn this;\n\t}\n\tsetIdentity() {\n\t\tconst m = this.data;\n\t\tm[0] = 1;\n\t\tm[1] = 0;\n\t\tm[2] = 0;\n\t\tm[3] = 0;\n\t\tm[4] = 0;\n\t\tm[5] = 1;\n\t\tm[6] = 0;\n\t\tm[7] = 0;\n\t\tm[8] = 0;\n\t\tm[9] = 0;\n\t\tm[10] = 1;\n\t\tm[11] = 0;\n\t\tm[12] = 0;\n\t\tm[13] = 0;\n\t\tm[14] = 0;\n\t\tm[15] = 1;\n\t\treturn this;\n\t}\n\tsetTRS(t, r, s2) {\n\t\tconst qx = r.x;\n\t\tconst qy = r.y;\n\t\tconst qz = r.z;\n\t\tconst qw = r.w;\n\t\tconst sx = s2.x;\n\t\tconst sy = s2.y;\n\t\tconst sz = s2.z;\n\t\tconst x22 = qx + qx;\n\t\tconst y2 = qy + qy;\n\t\tconst z2 = qz + qz;\n\t\tconst xx = qx * x22;\n\t\tconst xy = qx * y2;\n\t\tconst xz = qx * z2;\n\t\tconst yy = qy * y2;\n\t\tconst yz = qy * z2;\n\t\tconst zz = qz * z2;\n\t\tconst wx = qw * x22;\n\t\tconst wy = qw * y2;\n\t\tconst wz = qw * z2;\n\t\tconst m = this.data;\n\t\tm[0] = (1 - (yy + zz)) * sx;\n\t\tm[1] = (xy + wz) * sx;\n\t\tm[2] = (xz - wy) * sx;\n\t\tm[3] = 0;\n\t\tm[4] = (xy - wz) * sy;\n\t\tm[5] = (1 - (xx + zz)) * sy;\n\t\tm[6] = (yz + wx) * sy;\n\t\tm[7] = 0;\n\t\tm[8] = (xz + wy) * sz;\n\t\tm[9] = (yz - wx) * sz;\n\t\tm[10] = (1 - (xx + yy)) * sz;\n\t\tm[11] = 0;\n\t\tm[12] = t.x;\n\t\tm[13] = t.y;\n\t\tm[14] = t.z;\n\t\tm[15] = 1;\n\t\treturn this;\n\t}\n\ttranspose(src = this) {\n\t\tconst s2 = src.data;\n\t\tconst t = this.data;\n\t\tif (s2 === t) {\n\t\t\tlet tmp;\n\t\t\ttmp = s2[1];\n\t\t\tt[1] = s2[4];\n\t\t\tt[4] = tmp;\n\t\t\ttmp = s2[2];\n\t\t\tt[2] = s2[8];\n\t\t\tt[8] = tmp;\n\t\t\ttmp = s2[3];\n\t\t\tt[3] = s2[12];\n\t\t\tt[12] = tmp;\n\t\t\ttmp = s2[6];\n\t\t\tt[6] = s2[9];\n\t\t\tt[9] = tmp;\n\t\t\ttmp = s2[7];\n\t\t\tt[7] = s2[13];\n\t\t\tt[13] = tmp;\n\t\t\ttmp = s2[11];\n\t\t\tt[11] = s2[14];\n\t\t\tt[14] = tmp;\n\t\t} else {\n\t\t\tt[0] = s2[0];\n\t\t\tt[1] = s2[4];\n\t\t\tt[2] = s2[8];\n\t\t\tt[3] = s2[12];\n\t\t\tt[4] = s2[1];\n\t\t\tt[5] = s2[5];\n\t\t\tt[6] = s2[9];\n\t\t\tt[7] = s2[13];\n\t\t\tt[8] = s2[2];\n\t\t\tt[9] = s2[6];\n\t\t\tt[10] = s2[10];\n\t\t\tt[11] = s2[14];\n\t\t\tt[12] = s2[3];\n\t\t\tt[13] = s2[7];\n\t\t\tt[14] = s2[11];\n\t\t\tt[15] = s2[15];\n\t\t}\n\t\treturn this;\n\t}\n\tgetTranslation(t = new Vec3()) {\n\t\treturn t.set(this.data[12], this.data[13], this.data[14]);\n\t}\n\tgetX(x3 = new Vec3()) {\n\t\treturn x3.set(this.data[0], this.data[1], this.data[2]);\n\t}\n\tgetY(y2 = new Vec3()) {\n\t\treturn y2.set(this.data[4], this.data[5], this.data[6]);\n\t}\n\tgetZ(z2 = new Vec3()) {\n\t\treturn z2.set(this.data[8], this.data[9], this.data[10]);\n\t}\n\tgetScale(scale2 = new Vec3()) {\n\t\tthis.getX(x);\n\t\tthis.getY(y);\n\t\tthis.getZ(z);\n\t\tscale2.set(x.length(), y.length(), z.length());\n\t\treturn scale2;\n\t}\n\tget scaleSign() {\n\t\tthis.getX(x);\n\t\tthis.getY(y);\n\t\tthis.getZ(z);\n\t\tx.cross(x, y);\n\t\treturn x.dot(z) < 0 ? -1 : 1;\n\t}\n\tsetFromEulerAngles(ex, ey, ez) {\n\t\tex *= math.DEG_TO_RAD;\n\t\tey *= math.DEG_TO_RAD;\n\t\tez *= math.DEG_TO_RAD;\n\t\tconst s1 = Math.sin(-ex);\n\t\tconst c1 = Math.cos(-ex);\n\t\tconst s2 = Math.sin(-ey);\n\t\tconst c2 = Math.cos(-ey);\n\t\tconst s3 = Math.sin(-ez);\n\t\tconst c3 = Math.cos(-ez);\n\t\tconst m = this.data;\n\t\tm[0] = c2 * c3;\n\t\tm[1] = -c2 * s3;\n\t\tm[2] = s2;\n\t\tm[3] = 0;\n\t\tm[4] = c1 * s3 + c3 * s1 * s2;\n\t\tm[5] = c1 * c3 - s1 * s2 * s3;\n\t\tm[6] = -c2 * s1;\n\t\tm[7] = 0;\n\t\tm[8] = s1 * s3 - c1 * c3 * s2;\n\t\tm[9] = c3 * s1 + c1 * s2 * s3;\n\t\tm[10] = c1 * c2;\n\t\tm[11] = 0;\n\t\tm[12] = 0;\n\t\tm[13] = 0;\n\t\tm[14] = 0;\n\t\tm[15] = 1;\n\t\treturn this;\n\t}\n\tgetEulerAngles(eulers = new Vec3()) {\n\t\tthis.getScale(scale);\n\t\tconst sx = scale.x;\n\t\tconst sy = scale.y;\n\t\tconst sz = scale.z;\n\t\tif (sx === 0 || sy === 0 || sz === 0) {\n\t\t\treturn eulers.set(0, 0, 0);\n\t\t}\n\t\tconst m = this.data;\n\t\tconst y2 = Math.asin(-m[2] / sx);\n\t\tconst halfPi = Math.PI * 0.5;\n\t\tlet x3, z2;\n\t\tif (y2 < halfPi) {\n\t\t\tif (y2 > -halfPi) {\n\t\t\t\tx3 = Math.atan2(m[6] / sy, m[10] / sz);\n\t\t\t\tz2 = Math.atan2(m[1] / sx, m[0] / sx);\n\t\t\t} else {\n\t\t\t\tz2 = 0;\n\t\t\t\tx3 = -Math.atan2(m[4] / sy, m[5] / sy);\n\t\t\t}\n\t\t} else {\n\t\t\tz2 = 0;\n\t\t\tx3 = Math.atan2(m[4] / sy, m[5] / sy);\n\t\t}\n\t\treturn eulers.set(x3, y2, z2).mulScalar(math.RAD_TO_DEG);\n\t}\n\ttoString() {\n\t\treturn `[${this.data.join(\", \")}]`;\n\t}\n\tstatic IDENTITY = Object.freeze(new _Mat4());\n\tstatic ZERO = Object.freeze(new _Mat4().set([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]));\n};\n\nvar Quat = class _Quat {\n\tx;\n\ty;\n\tz;\n\tw;\n\tconstructor(x3 = 0, y2 = 0, z2 = 0, w = 1) {\n\t\tif (x3.length === 4) {\n\t\t\tthis.x = x3[0];\n\t\t\tthis.y = x3[1];\n\t\t\tthis.z = x3[2];\n\t\t\tthis.w = x3[3];\n\t\t} else {\n\t\t\tthis.x = x3;\n\t\t\tthis.y = y2;\n\t\t\tthis.z = z2;\n\t\t\tthis.w = w;\n\t\t}\n\t}\n\tclone() {\n\t\tconst cstr = this.constructor;\n\t\treturn new cstr(this.x, this.y, this.z, this.w);\n\t}\n\tconjugate(src = this) {\n\t\tthis.x = src.x * -1;\n\t\tthis.y = src.y * -1;\n\t\tthis.z = src.z * -1;\n\t\tthis.w = src.w;\n\t\treturn this;\n\t}\n\tcopy(rhs) {\n\t\tthis.x = rhs.x;\n\t\tthis.y = rhs.y;\n\t\tthis.z = rhs.z;\n\t\tthis.w = rhs.w;\n\t\treturn this;\n\t}\n\tdot(other) {\n\t\treturn this.x * other.x + this.y * other.y + this.z * other.z + this.w * other.w;\n\t}\n\tequals(rhs) {\n\t\treturn this.x === rhs.x && this.y === rhs.y && this.z === rhs.z && this.w === rhs.w;\n\t}\n\tequalsApprox(rhs, epsilon = 1e-6) {\n\t\treturn Math.abs(this.x - rhs.x) < epsilon && Math.abs(this.y - rhs.y) < epsilon && Math.abs(this.z - rhs.z) < epsilon && Math.abs(this.w - rhs.w) < epsilon;\n\t}\n\tgetAxisAngle(axis) {\n\t\tlet rad = Math.acos(this.w) * 2;\n\t\tconst s2 = Math.sin(rad / 2);\n\t\tif (s2 !== 0) {\n\t\t\taxis.x = this.x / s2;\n\t\t\taxis.y = this.y / s2;\n\t\t\taxis.z = this.z / s2;\n\t\t\tif (axis.x < 0 || axis.y < 0 || axis.z < 0) {\n\t\t\t\taxis.x *= -1;\n\t\t\t\taxis.y *= -1;\n\t\t\t\taxis.z *= -1;\n\t\t\t\trad *= -1;\n\t\t\t}\n\t\t} else {\n\t\t\taxis.x = 1;\n\t\t\taxis.y = 0;\n\t\t\taxis.z = 0;\n\t\t}\n\t\treturn rad * math.RAD_TO_DEG;\n\t}\n\tgetEulerAngles(eulers = new Vec3()) {\n\t\tlet x3, y2, z2;\n\t\tconst qx = this.x;\n\t\tconst qy = this.y;\n\t\tconst qz = this.z;\n\t\tconst qw = this.w;\n\t\tconst a2 = 2 * (qw * qy - qx * qz);\n\t\tif (a2 <= -0.99999) {\n\t\t\tx3 = 2 * Math.atan2(qx, qw);\n\t\t\ty2 = -Math.PI / 2;\n\t\t\tz2 = 0;\n\t\t} else if (a2 >= 0.99999) {\n\t\t\tx3 = 2 * Math.atan2(qx, qw);\n\t\t\ty2 = Math.PI / 2;\n\t\t\tz2 = 0;\n\t\t} else {\n\t\t\tx3 = Math.atan2(2 * (qw * qx + qy * qz), 1 - 2 * (qx * qx + qy * qy));\n\t\t\ty2 = Math.asin(a2);\n\t\t\tz2 = Math.atan2(2 * (qw * qz + qx * qy), 1 - 2 * (qy * qy + qz * qz));\n\t\t}\n\t\treturn eulers.set(x3, y2, z2).mulScalar(math.RAD_TO_DEG);\n\t}\n\tinvert(src = this) {\n\t\treturn this.conjugate(src).normalize();\n\t}\n\tlength() {\n\t\treturn Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w);\n\t}\n\tlengthSq() {\n\t\treturn this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w;\n\t}\n\tlerp(lhs, rhs, alpha) {\n\t\tconst omt = (1 - alpha) * (lhs.dot(rhs) < 0 ? -1 : 1);\n\t\tthis.x = lhs.x * omt + rhs.x * alpha;\n\t\tthis.y = lhs.y * omt + rhs.y * alpha;\n\t\tthis.z = lhs.z * omt + rhs.z * alpha;\n\t\tthis.w = lhs.w * omt + rhs.w * alpha;\n\t\treturn this.normalize();\n\t}\n\tmul(rhs) {\n\t\tconst q1x = this.x;\n\t\tconst q1y = this.y;\n\t\tconst q1z = this.z;\n\t\tconst q1w = this.w;\n\t\tconst q2x = rhs.x;\n\t\tconst q2y = rhs.y;\n\t\tconst q2z = rhs.z;\n\t\tconst q2w = rhs.w;\n\t\tthis.x = q1w * q2x + q1x * q2w + q1y * q2z - q1z * q2y;\n\t\tthis.y = q1w * q2y + q1y * q2w + q1z * q2x - q1x * q2z;\n\t\tthis.z = q1w * q2z + q1z * q2w + q1x * q2y - q1y * q2x;\n\t\tthis.w = q1w * q2w - q1x * q2x - q1y * q2y - q1z * q2z;\n\t\treturn this;\n\t}\n\tmulScalar(scalar, src = this) {\n\t\tthis.x = src.x * scalar;\n\t\tthis.y = src.y * scalar;\n\t\tthis.z = src.z * scalar;\n\t\tthis.w = src.w * scalar;\n\t\treturn this;\n\t}\n\tmul2(lhs, rhs) {\n\t\tconst q1x = lhs.x;\n\t\tconst q1y = lhs.y;\n\t\tconst q1z = lhs.z;\n\t\tconst q1w = lhs.w;\n\t\tconst q2x = rhs.x;\n\t\tconst q2y = rhs.y;\n\t\tconst q2z = rhs.z;\n\t\tconst q2w = rhs.w;\n\t\tthis.x = q1w * q2x + q1x * q2w + q1y * q2z - q1z * q2y;\n\t\tthis.y = q1w * q2y + q1y * q2w + q1z * q2x - q1x * q2z;\n\t\tthis.z = q1w * q2z + q1z * q2w + q1x * q2y - q1y * q2x;\n\t\tthis.w = q1w * q2w - q1x * q2x - q1y * q2y - q1z * q2z;\n\t\treturn this;\n\t}\n\tnormalize(src = this) {\n\t\tlet len = src.length();\n\t\tif (len === 0) {\n\t\t\tthis.x = this.y = this.z = 0;\n\t\t\tthis.w = 1;\n\t\t} else {\n\t\t\tlen = 1 / len;\n\t\t\tthis.x = src.x * len;\n\t\t\tthis.y = src.y * len;\n\t\t\tthis.z = src.z * len;\n\t\t\tthis.w = src.w * len;\n\t\t}\n\t\treturn this;\n\t}\n\tset(x3, y2, z2, w) {\n\t\tthis.x = x3;\n\t\tthis.y = y2;\n\t\tthis.z = z2;\n\t\tthis.w = w;\n\t\treturn this;\n\t}\n\tsetFromAxisAngle(axis, angle) {\n\t\tangle *= 0.5 * math.DEG_TO_RAD;\n\t\tconst sa = Math.sin(angle);\n\t\tconst ca = Math.cos(angle);\n\t\tthis.x = sa * axis.x;\n\t\tthis.y = sa * axis.y;\n\t\tthis.z = sa * axis.z;\n\t\tthis.w = ca;\n\t\treturn this;\n\t}\n\tsetFromEulerAngles(ex, ey, ez) {\n\t\tif (ex instanceof Vec3) {\n\t\t\tconst vec2 = ex;\n\t\t\tex = vec2.x;\n\t\t\tey = vec2.y;\n\t\t\tez = vec2.z;\n\t\t}\n\t\tconst halfToRad = 0.5 * math.DEG_TO_RAD;\n\t\tex *= halfToRad;\n\t\tey *= halfToRad;\n\t\tez *= halfToRad;\n\t\tconst sx = Math.sin(ex);\n\t\tconst cx = Math.cos(ex);\n\t\tconst sy = Math.sin(ey);\n\t\tconst cy = Math.cos(ey);\n\t\tconst sz = Math.sin(ez);\n\t\tconst cz = Math.cos(ez);\n\t\tthis.x = sx * cy * cz - cx * sy * sz;\n\t\tthis.y = cx * sy * cz + sx * cy * sz;\n\t\tthis.z = cx * cy * sz - sx * sy * cz;\n\t\tthis.w = cx * cy * cz + sx * sy * sz;\n\t\treturn this;\n\t}\n\tsetFromMat4(m) {\n\t\tconst d = m.data;\n\t\tlet m00 = d[0];\n\t\tlet m01 = d[1];\n\t\tlet m02 = d[2];\n\t\tlet m10 = d[4];\n\t\tlet m11 = d[5];\n\t\tlet m12 = d[6];\n\t\tlet m20 = d[8];\n\t\tlet m21 = d[9];\n\t\tlet m22 = d[10];\n\t\tconst det = m00 * (m11 * m22 - m12 * m21) - m01 * (m10 * m22 - m12 * m20) + m02 * (m10 * m21 - m11 * m20);\n\t\tif (det < 0) {\n\t\t\tm00 = -m00;\n\t\t\tm01 = -m01;\n\t\t\tm02 = -m02;\n\t\t}\n\t\tlet l;\n\t\tl = m00 * m00 + m01 * m01 + m02 * m02;\n\t\tif (l === 0) return this.set(0, 0, 0, 1);\n\t\tl = 1 / Math.sqrt(l);\n\t\tm00 *= l;\n\t\tm01 *= l;\n\t\tm02 *= l;\n\t\tl = m10 * m10 + m11 * m11 + m12 * m12;\n\t\tif (l === 0) return this.set(0, 0, 0, 1);\n\t\tl = 1 / Math.sqrt(l);\n\t\tm10 *= l;\n\t\tm11 *= l;\n\t\tm12 *= l;\n\t\tl = m20 * m20 + m21 * m21 + m22 * m22;\n\t\tif (l === 0) return this.set(0, 0, 0, 1);\n\t\tl = 1 / Math.sqrt(l);\n\t\tm20 *= l;\n\t\tm21 *= l;\n\t\tm22 *= l;\n\t\tif (m22 < 0) {\n\t\t\tif (m00 > m11) {\n\t\t\t\tthis.set(1 + m00 - m11 - m22, m01 + m10, m20 + m02, m12 - m21);\n\t\t\t} else {\n\t\t\t\tthis.set(m01 + m10, 1 - m00 + m11 - m22, m12 + m21, m20 - m02);\n\t\t\t}\n\t\t} else {\n\t\t\tif (m00 < -m11) {\n\t\t\t\tthis.set(m20 + m02, m12 + m21, 1 - m00 - m11 + m22, m01 - m10);\n\t\t\t} else {\n\t\t\t\tthis.set(m12 - m21, m20 - m02, m01 - m10, 1 + m00 + m11 + m22);\n\t\t\t}\n\t\t}\n\t\treturn this.mulScalar(1 / this.length());\n\t}\n\tsetFromDirections(from, to) {\n\t\tconst dotProduct = 1 + from.dot(to);\n\t\tif (dotProduct < Number.EPSILON) {\n\t\t\tif (Math.abs(from.x) > Math.abs(from.y)) {\n\t\t\t\tthis.x = -from.z;\n\t\t\t\tthis.y = 0;\n\t\t\t\tthis.z = from.x;\n\t\t\t\tthis.w = 0;\n\t\t\t} else {\n\t\t\t\tthis.x = 0;\n\t\t\t\tthis.y = -from.z;\n\t\t\t\tthis.z = from.y;\n\t\t\t\tthis.w = 0;\n\t\t\t}\n\t\t} else {\n\t\t\tthis.x = from.y * to.z - from.z * to.y;\n\t\t\tthis.y = from.z * to.x - from.x * to.z;\n\t\t\tthis.z = from.x * to.y - from.y * to.x;\n\t\t\tthis.w = dotProduct;\n\t\t}\n\t\treturn this.normalize();\n\t}\n\tslerp(lhs, rhs, alpha) {\n\t\tconst lx = lhs.x;\n\t\tconst ly = lhs.y;\n\t\tconst lz = lhs.z;\n\t\tconst lw = lhs.w;\n\t\tlet rx = rhs.x;\n\t\tlet ry = rhs.y;\n\t\tlet rz = rhs.z;\n\t\tlet rw = rhs.w;\n\t\tlet cosHalfTheta = lw * rw + lx * rx + ly * ry + lz * rz;\n\t\tif (cosHalfTheta < 0) {\n\t\t\trw = -rw;\n\t\t\trx = -rx;\n\t\t\try = -ry;\n\t\t\trz = -rz;\n\t\t\tcosHalfTheta = -cosHalfTheta;\n\t\t}\n\t\tif (Math.abs(cosHalfTheta) >= 1) {\n\t\t\tthis.w = lw;\n\t\t\tthis.x = lx;\n\t\t\tthis.y = ly;\n\t\t\tthis.z = lz;\n\t\t\treturn this;\n\t\t}\n\t\tconst halfTheta = Math.acos(cosHalfTheta);\n\t\tconst sinHalfTheta = Math.sqrt(1 - cosHalfTheta * cosHalfTheta);\n\t\tif (Math.abs(sinHalfTheta) < 1e-3) {\n\t\t\tthis.w = lw * 0.5 + rw * 0.5;\n\t\t\tthis.x = lx * 0.5 + rx * 0.5;\n\t\t\tthis.y = ly * 0.5 + ry * 0.5;\n\t\t\tthis.z = lz * 0.5 + rz * 0.5;\n\t\t\treturn this;\n\t\t}\n\t\tconst ratioA = Math.sin((1 - alpha) * halfTheta) / sinHalfTheta;\n\t\tconst ratioB = Math.sin(alpha * halfTheta) / sinHalfTheta;\n\t\tthis.w = lw * ratioA + rw * ratioB;\n\t\tthis.x = lx * ratioA + rx * ratioB;\n\t\tthis.y = ly * ratioA + ry * ratioB;\n\t\tthis.z = lz * ratioA + rz * ratioB;\n\t\treturn this;\n\t}\n\ttransformVector(vec2, res = new Vec3()) {\n\t\tconst x3 = vec2.x, y2 = vec2.y, z2 = vec2.z;\n\t\tconst qx = this.x, qy = this.y, qz = this.z, qw = this.w;\n\t\tconst ix = qw * x3 + qy * z2 - qz * y2;\n\t\tconst iy = qw * y2 + qz * x3 - qx * z2;\n\t\tconst iz = qw * z2 + qx * y2 - qy * x3;\n\t\tconst iw = -qx * x3 - qy * y2 - qz * z2;\n\t\tres.x = ix * qw + iw * -qx + iy * -qz - iz * -qy;\n\t\tres.y = iy * qw + iw * -qy + iz * -qx - ix * -qz;\n\t\tres.z = iz * qw + iw * -qz + ix * -qy - iy * -qx;\n\t\treturn res;\n\t}\n\tfromArray(arr, offset3 = 0) {\n\t\tthis.x = arr[offset3] ?? this.x;\n\t\tthis.y = arr[offset3 + 1] ?? this.y;\n\t\tthis.z = arr[offset3 + 2] ?? this.z;\n\t\tthis.w = arr[offset3 + 3] ?? this.w;\n\t\treturn this;\n\t}\n\ttoString() {\n\t\treturn `[${this.x}, ${this.y}, ${this.z}, ${this.w}]`;\n\t}\n\ttoArray(arr = [], offset3 = 0) {\n\t\tarr[offset3] = this.x;\n\t\tarr[offset3 + 1] = this.y;\n\t\tarr[offset3 + 2] = this.z;\n\t\tarr[offset3 + 3] = this.w;\n\t\treturn arr;\n\t}\n\tstatic IDENTITY = Object.freeze(new _Quat(0, 0, 0, 1));\n\tstatic ZERO = Object.freeze(new _Quat(0, 0, 0, 0));\n};\n\nvar tmpVecA = new Vec3();\nvar tmpVecB = new Vec3();\nvar tmpVecC = new Vec3();\nvar tmpVecD = new Vec3();\nvar tmpVecE = new Vec3();\nvar BoundingBox = class _BoundingBox {\n\tcenter = new Vec3();\n\thalfExtents = new Vec3(0.5, 0.5, 0.5);\n\t_min = new Vec3();\n\t_max = new Vec3();\n\tconstructor(center2, halfExtents) {\n\t\tif (center2) {\n\t\t\tthis.center.copy(center2);\n\t\t}\n\t\tif (halfExtents) {\n\t\t\tthis.halfExtents.copy(halfExtents);\n\t\t}\n\t}\n\tadd(other) {\n\t\tconst tc = this.center;\n\t\tconst tcx = tc.x;\n\t\tconst tcy = tc.y;\n\t\tconst tcz = tc.z;\n\t\tconst th = this.halfExtents;\n\t\tconst thx = th.x;\n\t\tconst thy = th.y;\n\t\tconst thz = th.z;\n\t\tlet tminx = tcx - thx;\n\t\tlet tmaxx = tcx + thx;\n\t\tlet tminy = tcy - thy;\n\t\tlet tmaxy = tcy + thy;\n\t\tlet tminz = tcz - thz;\n\t\tlet tmaxz = tcz + thz;\n\t\tconst oc = other.center;\n\t\tconst ocx = oc.x;\n\t\tconst ocy = oc.y;\n\t\tconst ocz = oc.z;\n\t\tconst oh = other.halfExtents;\n\t\tconst ohx = oh.x;\n\t\tconst ohy = oh.y;\n\t\tconst ohz = oh.z;\n\t\tconst ominx = ocx - ohx;\n\t\tconst omaxx = ocx + ohx;\n\t\tconst ominy = ocy - ohy;\n\t\tconst omaxy = ocy + ohy;\n\t\tconst ominz = ocz - ohz;\n\t\tconst omaxz = ocz + ohz;\n\t\tif (ominx < tminx) tminx = ominx;\n\t\tif (omaxx > tmaxx) tmaxx = omaxx;\n\t\tif (ominy < tminy) tminy = ominy;\n\t\tif (omaxy > tmaxy) tmaxy = omaxy;\n\t\tif (ominz < tminz) tminz = ominz;\n\t\tif (omaxz > tmaxz) tmaxz = omaxz;\n\t\ttc.x = (tminx + tmaxx) * 0.5;\n\t\ttc.y = (tminy + tmaxy) * 0.5;\n\t\ttc.z = (tminz + tmaxz) * 0.5;\n\t\tth.x = (tmaxx - tminx) * 0.5;\n\t\tth.y = (tmaxy - tminy) * 0.5;\n\t\tth.z = (tmaxz - tminz) * 0.5;\n\t}\n\tcopy(src) {\n\t\tthis.center.copy(src.center);\n\t\tthis.halfExtents.copy(src.halfExtents);\n\t}\n\tclone() {\n\t\treturn new _BoundingBox(this.center, this.halfExtents);\n\t}\n\tintersects(other) {\n\t\tconst aMax = this.getMax();\n\t\tconst aMin = this.getMin();\n\t\tconst bMax2 = other.getMax();\n\t\tconst bMin2 = other.getMin();\n\t\treturn aMin.x <= bMax2.x && aMax.x >= bMin2.x && aMin.y <= bMax2.y && aMax.y >= bMin2.y && aMin.z <= bMax2.z && aMax.z >= bMin2.z;\n\t}\n\t_intersectsRay(ray3, point5) {\n\t\tconst tMin = tmpVecA.copy(this.getMin()).sub(ray3.origin);\n\t\tconst tMax = tmpVecB.copy(this.getMax()).sub(ray3.origin);\n\t\tconst dir4 = ray3.direction;\n\t\tif (dir4.x === 0) {\n\t\t\ttMin.x = tMin.x < 0 ? -Number.MAX_VALUE : Number.MAX_VALUE;\n\t\t\ttMax.x = tMax.x < 0 ? -Number.MAX_VALUE : Number.MAX_VALUE;\n\t\t} else {\n\t\t\ttMin.x /= dir4.x;\n\t\t\ttMax.x /= dir4.x;\n\t\t}\n\t\tif (dir4.y === 0) {\n\t\t\ttMin.y = tMin.y < 0 ? -Number.MAX_VALUE : Number.MAX_VALUE;\n\t\t\ttMax.y = tMax.y < 0 ? -Number.MAX_VALUE : Number.MAX_VALUE;\n\t\t} else {\n\t\t\ttMin.y /= dir4.y;\n\t\t\ttMax.y /= dir4.y;\n\t\t}\n\t\tif (dir4.z === 0) {\n\t\t\ttMin.z = tMin.z < 0 ? -Number.MAX_VALUE : Number.MAX_VALUE;\n\t\t\ttMax.z = tMax.z < 0 ? -Number.MAX_VALUE : Number.MAX_VALUE;\n\t\t} else {\n\t\t\ttMin.z /= dir4.z;\n\t\t\ttMax.z /= dir4.z;\n\t\t}\n\t\tconst realMin = tmpVecC.set(Math.min(tMin.x, tMax.x), Math.min(tMin.y, tMax.y), Math.min(tMin.z, tMax.z));\n\t\tconst realMax = tmpVecD.set(Math.max(tMin.x, tMax.x), Math.max(tMin.y, tMax.y), Math.max(tMin.z, tMax.z));\n\t\tconst minMax = Math.min(Math.min(realMax.x, realMax.y), realMax.z);\n\t\tconst maxMin = Math.max(Math.max(realMin.x, realMin.y), realMin.z);\n\t\tconst intersects = minMax >= maxMin && maxMin >= 0;\n\t\tif (intersects) {\n\t\t\tpoint5.copy(ray3.direction).mulScalar(maxMin).add(ray3.origin);\n\t\t}\n\t\treturn intersects;\n\t}\n\t_fastIntersectsRay(ray3) {\n\t\tconst diff = tmpVecA;\n\t\tconst cross = tmpVecB;\n\t\tconst prod = tmpVecC;\n\t\tconst absDiff = tmpVecD;\n\t\tconst absDir = tmpVecE;\n\t\tconst rayDir = ray3.direction;\n\t\tdiff.sub2(ray3.origin, this.center);\n\t\tabsDiff.set(Math.abs(diff.x), Math.abs(diff.y), Math.abs(diff.z));\n\t\tprod.mul2(diff, rayDir);\n\t\tif (absDiff.x > this.halfExtents.x && prod.x >= 0) {\n\t\t\treturn false;\n\t\t}\n\t\tif (absDiff.y > this.halfExtents.y && prod.y >= 0) {\n\t\t\treturn false;\n\t\t}\n\t\tif (absDiff.z > this.halfExtents.z && prod.z >= 0) {\n\t\t\treturn false;\n\t\t}\n\t\tabsDir.set(Math.abs(rayDir.x), Math.abs(rayDir.y), Math.abs(rayDir.z));\n\t\tcross.cross(rayDir, diff);\n\t\tcross.set(Math.abs(cross.x), Math.abs(cross.y), Math.abs(cross.z));\n\t\tif (cross.x > this.halfExtents.y * absDir.z + this.halfExtents.z * absDir.y) {\n\t\t\treturn false;\n\t\t}\n\t\tif (cross.y > this.halfExtents.x * absDir.z + this.halfExtents.z * absDir.x) {\n\t\t\treturn false;\n\t\t}\n\t\tif (cross.z > this.halfExtents.x * absDir.y + this.halfExtents.y * absDir.x) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t}\n\tintersectsRay(ray3, point5) {\n\t\tif (point5) {\n\t\t\treturn this._intersectsRay(ray3, point5);\n\t\t}\n\t\treturn this._fastIntersectsRay(ray3);\n\t}\n\tsetMinMax(min, max) {\n\t\tthis.center.add2(max, min).mulScalar(0.5);\n\t\tthis.halfExtents.sub2(max, min).mulScalar(0.5);\n\t}\n\tgetMin() {\n\t\treturn this._min.copy(this.center).sub(this.halfExtents);\n\t}\n\tgetMax() {\n\t\treturn this._max.copy(this.center).add(this.halfExtents);\n\t}\n\tcontainsPoint(point5) {\n\t\tconst c2 = this.center;\n\t\tconst h2 = this.halfExtents;\n\t\tif (point5.x < c2.x - h2.x || point5.x > c2.x + h2.x || point5.y < c2.y - h2.y || point5.y > c2.y + h2.y || point5.z < c2.z - h2.z || point5.z > c2.z + h2.z) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t}\n\tclosestPoint(point5, result = new Vec3()) {\n\t\tconst c2 = this.center;\n\t\tconst h2 = this.halfExtents;\n\t\treturn result.set(\n\t\t\tMath.max(c2.x - h2.x, Math.min(point5.x, c2.x + h2.x)),\n\t\t\tMath.max(c2.y - h2.y, Math.min(point5.y, c2.y + h2.y)),\n\t\t\tMath.max(c2.z - h2.z, Math.min(point5.z, c2.z + h2.z))\n\t\t);\n\t}\n\tsetFromTransformedAabb(aabb3, m, ignoreScale = false) {\n\t\tconst ac = aabb3.center;\n\t\tconst ar = aabb3.halfExtents;\n\t\tconst d = m.data;\n\t\tlet mx0 = d[0];\n\t\tlet mx1 = d[4];\n\t\tlet mx2 = d[8];\n\t\tlet my0 = d[1];\n\t\tlet my1 = d[5];\n\t\tlet my2 = d[9];\n\t\tlet mz0 = d[2];\n\t\tlet mz1 = d[6];\n\t\tlet mz2 = d[10];\n\t\tif (ignoreScale) {\n\t\t\tlet lengthSq = mx0 * mx0 + mx1 * mx1 + mx2 * mx2;\n\t\t\tif (lengthSq > 0) {\n\t\t\t\tconst invLength = 1 / Math.sqrt(lengthSq);\n\t\t\t\tmx0 *= invLength;\n\t\t\t\tmx1 *= invLength;\n\t\t\t\tmx2 *= invLength;\n\t\t\t}\n\t\t\tlengthSq = my0 * my0 + my1 * my1 + my2 * my2;\n\t\t\tif (lengthSq > 0) {\n\t\t\t\tconst invLength = 1 / Math.sqrt(lengthSq);\n\t\t\t\tmy0 *= invLength;\n\t\t\t\tmy1 *= invLength;\n\t\t\t\tmy2 *= invLength;\n\t\t\t}\n\t\t\tlengthSq = mz0 * mz0 + mz1 * mz1 + mz2 * mz2;\n\t\t\tif (lengthSq > 0) {\n\t\t\t\tconst invLength = 1 / Math.sqrt(lengthSq);\n\t\t\t\tmz0 *= invLength;\n\t\t\t\tmz1 *= invLength;\n\t\t\t\tmz2 *= invLength;\n\t\t\t}\n\t\t}\n\t\tthis.center.set(\n\t\t\td[12] + mx0 * ac.x + mx1 * ac.y + mx2 * ac.z,\n\t\t\td[13] + my0 * ac.x + my1 * ac.y + my2 * ac.z,\n\t\t\td[14] + mz0 * ac.x + mz1 * ac.y + mz2 * ac.z\n\t\t);\n\t\tthis.halfExtents.set(\n\t\t\tMath.abs(mx0) * ar.x + Math.abs(mx1) * ar.y + Math.abs(mx2) * ar.z,\n\t\t\tMath.abs(my0) * ar.x + Math.abs(my1) * ar.y + Math.abs(my2) * ar.z,\n\t\t\tMath.abs(mz0) * ar.x + Math.abs(mz1) * ar.y + Math.abs(mz2) * ar.z\n\t\t);\n\t}\n\tstatic computeMinMax(vertices, min, max, numVerts = vertices.length / 3) {\n\t\tif (numVerts > 0) {\n\t\t\tlet minx = vertices[0];\n\t\t\tlet miny = vertices[1];\n\t\t\tlet minz = vertices[2];\n\t\t\tlet maxx = minx;\n\t\t\tlet maxy = miny;\n\t\t\tlet maxz = minz;\n\t\t\tconst n = numVerts * 3;\n\t\t\tfor (let i2 = 3; i2 < n; i2 += 3) {\n\t\t\t\tconst x3 = vertices[i2];\n\t\t\t\tconst y2 = vertices[i2 + 1];\n\t\t\t\tconst z2 = vertices[i2 + 2];\n\t\t\t\tif (x3 < minx) minx = x3;\n\t\t\t\tif (y2 < miny) miny = y2;\n\t\t\t\tif (z2 < minz) minz = z2;\n\t\t\t\tif (x3 > maxx) maxx = x3;\n\t\t\t\tif (y2 > maxy) maxy = y2;\n\t\t\t\tif (z2 > maxz) maxz = z2;\n\t\t\t}\n\t\t\tmin.set(minx, miny, minz);\n\t\t\tmax.set(maxx, maxy, maxz);\n\t\t}\n\t}\n\tcompute(vertices, numVerts) {\n\t\t_BoundingBox.computeMinMax(vertices, tmpVecA, tmpVecB, numVerts);\n\t\tthis.setMinMax(tmpVecA, tmpVecB);\n\t}\n\tintersectsBoundingSphere(sphere) {\n\t\tconst sq = this._distanceToBoundingSphereSq(sphere);\n\t\tif (sq <= sphere.radius * sphere.radius) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\t_distanceToBoundingSphereSq(sphere) {\n\t\tconst boxMin = this.getMin();\n\t\tconst boxMax = this.getMax();\n\t\tlet sq = 0;\n\t\tconst axis = [\"x\", \"y\", \"z\"];\n\t\tfor (let i2 = 0; i2 < 3; ++i2) {\n\t\t\tlet out = 0;\n\t\t\tconst pn = sphere.center[axis[i2]];\n\t\t\tconst bMin2 = boxMin[axis[i2]];\n\t\t\tconst bMax2 = boxMax[axis[i2]];\n\t\t\tlet val = 0;\n\t\t\tif (pn < bMin2) {\n\t\t\t\tval = bMin2 - pn;\n\t\t\t\tout += val * val;\n\t\t\t}\n\t\t\tif (pn > bMax2) {\n\t\t\t\tval = pn - bMax2;\n\t\t\t\tout += val * val;\n\t\t\t}\n\t\t\tsq += out;\n\t\t}\n\t\treturn sq;\n\t}\n\t_expand(expandMin, expandMax) {\n\t\ttmpVecA.add2(this.getMin(), expandMin);\n\t\ttmpVecB.add2(this.getMax(), expandMax);\n\t\tthis.setMinMax(tmpVecA, tmpVecB);\n\t}\n};\n\nvar tmpVecA2 = new Vec3();\nvar tmpVecB2 = new Vec3();\nvar BoundingSphere = class {\n\tcenter;\n\tradius;\n\tconstructor(center2 = new Vec3(), radius = 0.5) {\n\t\tthis.center = center2;\n\t\tthis.radius = radius;\n\t}\n\tcontainsPoint(point5) {\n\t\tconst lenSq = tmpVecA2.sub2(point5, this.center).lengthSq();\n\t\tconst r = this.radius;\n\t\treturn lenSq < r * r;\n\t}\n\tintersectsRay(ray3, point5) {\n\t\tconst m = tmpVecA2.copy(ray3.origin).sub(this.center);\n\t\tconst b = m.dot(tmpVecB2.copy(ray3.direction).normalize());\n\t\tconst c2 = m.dot(m) - this.radius * this.radius;\n\t\tif (c2 > 0 && b > 0) {\n\t\t\treturn false;\n\t\t}\n\t\tconst discr = b * b - c2;\n\t\tif (discr < 0) {\n\t\t\treturn false;\n\t\t}\n\t\tconst t = Math.abs(-b - Math.sqrt(discr));\n\t\tif (point5) {\n\t\t\tpoint5.copy(ray3.direction).mulScalar(t).add(ray3.origin);\n\t\t}\n\t\treturn true;\n\t}\n\tintersectsBoundingSphere(sphere) {\n\t\ttmpVecA2.sub2(sphere.center, this.center);\n\t\tconst totalRadius = sphere.radius + this.radius;\n\t\tif (tmpVecA2.lengthSq() <= totalRadius * totalRadius) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n};\n\nvar Plane = class {\n\tnormal = new Vec3();\n\tdistance;\n\tconstructor(normal = Vec3.UP, distance = 0) {\n\t\tthis.normal.copy(normal);\n\t\tthis.distance = distance;\n\t}\n\tclone() {\n\t\tconst cstr = this.constructor;\n\t\treturn new cstr().copy(this);\n\t}\n\tcopy(src) {\n\t\tthis.normal.copy(src.normal);\n\t\tthis.distance = src.distance;\n\t\treturn this;\n\t}\n\tintersectsLine(start, end, point5) {\n\t\tconst d = this.distance;\n\t\tconst d0 = this.normal.dot(start) + d;\n\t\tconst d1 = this.normal.dot(end) + d;\n\t\tconst t = d0 / (d0 - d1);\n\t\tconst intersects = t >= 0 && t <= 1;\n\t\tif (intersects && point5) {\n\t\t\tpoint5.lerp(start, end, t);\n\t\t}\n\t\treturn intersects;\n\t}\n\tintersectsRay(ray3, point5) {\n\t\tconst denominator = this.normal.dot(ray3.direction);\n\t\tif (denominator === 0) {\n\t\t\treturn false;\n\t\t}\n\t\tconst t = -(this.normal.dot(ray3.origin) + this.distance) / denominator;\n\t\tif (t >= 0 && point5) {\n\t\t\tpoint5.copy(ray3.direction).mulScalar(t).add(ray3.origin);\n\t\t}\n\t\treturn t >= 0;\n\t}\n\tnormalize() {\n\t\tconst invLength = 1 / this.normal.length();\n\t\tthis.normal.mulScalar(invLength);\n\t\tthis.distance *= invLength;\n\t\treturn this;\n\t}\n\tset(nx, ny, nz, d) {\n\t\tthis.normal.set(nx, ny, nz);\n\t\tthis.distance = d;\n\t\treturn this;\n\t}\n\tsetFromPointNormal(point5, normal) {\n\t\tthis.normal.copy(normal);\n\t\tthis.distance = -this.normal.dot(point5);\n\t\treturn this;\n\t}\n};\n\nvar _c23 = new Vec3();\nvar _c31 = new Vec3();\nvar _c12 = new Vec3();\nvar _corner = new Vec3();\nvar _scratchPlanes = [new Plane(), new Plane(), new Plane(), new Plane(), new Plane(), new Plane()];\nfunction intersectPlanes(p12, p22, p32, out) {\n\t_c23.cross(p22.normal, p32.normal);\n\tconst denom = p12.normal.dot(_c23);\n\tif (Math.abs(denom) < 1e-6) {\n\t\treturn false;\n\t}\n\t_c31.cross(p32.normal, p12.normal);\n\t_c12.cross(p12.normal, p22.normal);\n\tconst invDenom = -1 / denom;\n\tout.set(\n\t\t(p12.distance * _c23.x + p22.distance * _c31.x + p32.distance * _c12.x) * invDenom,\n\t\t(p12.distance * _c23.y + p22.distance * _c31.y + p32.distance * _c12.y) * invDenom,\n\t\t(p12.distance * _c23.z + p22.distance * _c31.z + p32.distance * _c12.z) * invDenom\n\t);\n\treturn isFinite(out.x) && isFinite(out.y) && isFinite(out.z);\n}\nvar Frustum = class {\n\tplaneData = new Float32Array(24);\n\t// eslint-disable-next-line no-useless-constructor\n\tconstructor() {\n\t}\n\tget planes() {\n\t\treturn [];\n\t}\n\tclone() {\n\t\tconst cstr = this.constructor;\n\t\treturn new cstr().copy(this);\n\t}\n\tcopy(src) {\n\t\tthis.planeData.set(src.planeData);\n\t\treturn this;\n\t}\n\tgetPlane(index, result) {\n\t\tconst data2 = this.planeData;\n\t\tconst offset3 = index * 4;\n\t\tresult.normal.set(data2[offset3], data2[offset3 + 1], data2[offset3 + 2]);\n\t\tresult.distance = data2[offset3 + 3];\n\t\treturn result;\n\t}\n\tsetPlane(index, plane2) {\n\t\tconst { normal, distance } = plane2;\n\t\tthis._setPlane(index, normal.x, normal.y, normal.z, distance);\n\t\treturn this;\n\t}\n\t_setPlane(index, nx, ny, nz, distance) {\n\t\tconst invLength = 1 / Math.sqrt(nx * nx + ny * ny + nz * nz);\n\t\tconst data2 = this.planeData;\n\t\tconst offset3 = index * 4;\n\t\tdata2[offset3] = nx * invLength;\n\t\tdata2[offset3 + 1] = ny * invLength;\n\t\tdata2[offset3 + 2] = nz * invLength;\n\t\tdata2[offset3 + 3] = distance * invLength;\n\t}\n\tsetFromMat4(matrix2) {\n\t\tconst d = matrix2.data;\n\t\tconst m00 = d[0], m01 = d[1], m02 = d[2], m03 = d[3];\n\t\tconst m10 = d[4], m11 = d[5], m12 = d[6], m13 = d[7];\n\t\tconst m20 = d[8], m21 = d[9], m22 = d[10], m23 = d[11];\n\t\tconst m30 = d[12], m31 = d[13], m32 = d[14], m33 = d[15];\n\t\tthis._setPlane(0, m03 - m00, m13 - m10, m23 - m20, m33 - m30);\n\t\tthis._setPlane(1, m03 + m00, m13 + m10, m23 + m20, m33 + m30);\n\t\tthis._setPlane(2, m03 + m01, m13 + m11, m23 + m21, m33 + m31);\n\t\tthis._setPlane(3, m03 - m01, m13 - m11, m23 - m21, m33 - m31);\n\t\tthis._setPlane(4, m03 - m02, m13 - m12, m23 - m22, m33 - m32);\n\t\tthis._setPlane(5, m03 + m02, m13 + m12, m23 + m22, m33 + m32);\n\t}\n\tcontainsPoint(point5) {\n\t\tconst data2 = this.planeData;\n\t\tconst { x: x3, y: y2, z: z2 } = point5;\n\t\tfor (let offset3 = 0; offset3 < 24; offset3 += 4) {\n\t\t\tif (data2[offset3] * x3 + data2[offset3 + 1] * y2 + data2[offset3 + 2] * z2 + data2[offset3 + 3] <= 0) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n\tadd(other) {\n\t\tconst data2 = this.planeData;\n\t\tfor (let p = 0; p < 6; p++) {\n\t\t\tother.getPlane(p, _scratchPlanes[p]);\n\t\t}\n\t\tfor (let zi = 4; zi <= 5; zi++) {\n\t\t\tfor (let xi = 0; xi <= 1; xi++) {\n\t\t\t\tfor (let yi = 2; yi <= 3; yi++) {\n\t\t\t\t\tif (intersectPlanes(_scratchPlanes[zi], _scratchPlanes[xi], _scratchPlanes[yi], _corner)) {\n\t\t\t\t\t\tfor (let offset3 = 0; offset3 < 24; offset3 += 4) {\n\t\t\t\t\t\t\tconst d = data2[offset3] * _corner.x + data2[offset3 + 1] * _corner.y + data2[offset3 + 2] * _corner.z + data2[offset3 + 3];\n\t\t\t\t\t\t\tif (d < 0) {\n\t\t\t\t\t\t\t\tdata2[offset3 + 3] -= d;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\tcontainsSphere(sphere) {\n\t\tconst data2 = this.planeData;\n\t\tconst { center: center2, radius } = sphere;\n\t\tconst { x: x3, y: y2, z: z2 } = center2;\n\t\tlet c2 = 0;\n\t\tfor (let offset3 = 0; offset3 < 24; offset3 += 4) {\n\t\t\tconst d = data2[offset3] * x3 + data2[offset3 + 1] * y2 + data2[offset3 + 2] * z2 + data2[offset3 + 3];\n\t\t\tif (d <= -radius) {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t\tif (d > radius) {\n\t\t\t\tc2++;\n\t\t\t}\n\t\t}\n\t\treturn c2 === 6 ? 2 : 1;\n\t}\n\tcontainsAabb(aabb3) {\n\t\tconst data2 = this.planeData;\n\t\tconst { center: center2, halfExtents } = aabb3;\n\t\tconst { x: x3, y: y2, z: z2 } = center2;\n\t\tconst ex = halfExtents.x, ey = halfExtents.y, ez = halfExtents.z;\n\t\tfor (let offset3 = 0; offset3 < 24; offset3 += 4) {\n\t\t\tconst nx = data2[offset3], ny = data2[offset3 + 1], nz = data2[offset3 + 2];\n\t\t\tconst extent = Math.abs(nx) * ex + Math.abs(ny) * ey + Math.abs(nz) * ez;\n\t\t\tif (nx * x3 + ny * y2 + nz * z2 + data2[offset3 + 3] <= -extent) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n};\n\nvar Ray = class {\n\torigin = new Vec3();\n\tdirection = Vec3.FORWARD.clone();\n\tconstructor(origin, direction) {\n\t\tif (origin) {\n\t\t\tthis.origin.copy(origin);\n\t\t}\n\t\tif (direction) {\n\t\t\tthis.direction.copy(direction);\n\t\t}\n\t}\n\tset(origin, direction) {\n\t\tthis.origin.copy(origin);\n\t\tthis.direction.copy(direction);\n\t\treturn this;\n\t}\n\tcopy(src) {\n\t\treturn this.set(src.origin, src.direction);\n\t}\n\tclone() {\n\t\treturn new this.constructor(this.origin, this.direction);\n\t}\n};\n\nvar tmpRay = new Ray();\nvar tmpVec3 = new Vec3();\nvar tmpSphere = new BoundingSphere();\nvar tmpMat4 = new Mat4();\nvar OrientedBox = class {\n\thalfExtents = new Vec3(0.5, 0.5, 0.5);\n\t_modelTransform;\n\t_worldTransform;\n\t_aabb;\n\tconstructor(worldTransform = new Mat4(), halfExtents) {\n\t\tif (halfExtents) {\n\t\t\tthis.halfExtents.copy(halfExtents);\n\t\t}\n\t\tthis._modelTransform = worldTransform.clone().invert();\n\t\tthis._worldTransform = worldTransform.clone();\n\t\tthis._aabb = new BoundingBox(new Vec3(), this.halfExtents);\n\t}\n\tset worldTransform(value) {\n\t\tthis._worldTransform.copy(value);\n\t\tthis._modelTransform.copy(value).invert();\n\t}\n\tget worldTransform() {\n\t\treturn this._worldTransform;\n\t}\n\tintersectsRay(ray3, point5) {\n\t\tthis._modelTransform.transformPoint(ray3.origin, tmpRay.origin);\n\t\tthis._modelTransform.transformVector(ray3.direction, tmpRay.direction);\n\t\tif (point5) {\n\t\t\tconst result = this._aabb._intersectsRay(tmpRay, point5);\n\t\t\ttmpMat4.copy(this._modelTransform).invert().transformPoint(point5, point5);\n\t\t\treturn result;\n\t\t}\n\t\treturn this._aabb._fastIntersectsRay(tmpRay);\n\t}\n\tcontainsPoint(point5) {\n\t\tthis._modelTransform.transformPoint(point5, tmpVec3);\n\t\treturn this._aabb.containsPoint(tmpVec3);\n\t}\n\tintersectsBoundingSphere(sphere) {\n\t\tthis._modelTransform.transformPoint(sphere.center, tmpSphere.center);\n\t\ttmpSphere.radius = sphere.radius;\n\t\tif (this._aabb.intersectsBoundingSphere(tmpSphere)) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n};\n\nvar e1 = new Vec3();\nvar e2 = new Vec3();\nvar h = new Vec3();\nvar s = new Vec3();\nvar q = new Vec3();\nvar EPSILON = 1e-6;\nvar Tri = class {\n\tv0 = new Vec3();\n\tv1 = new Vec3();\n\tv2 = new Vec3();\n\tconstructor(v0 = Vec3.ZERO, v15 = Vec3.ZERO, v26 = Vec3.ZERO) {\n\t\tthis.set(v0, v15, v26);\n\t}\n\tset(v0, v15, v26) {\n\t\tthis.v0.copy(v0);\n\t\tthis.v1.copy(v15);\n\t\tthis.v2.copy(v26);\n\t\treturn this;\n\t}\n\tintersectsRay(ray3, point5) {\n\t\te1.sub2(this.v1, this.v0);\n\t\te2.sub2(this.v2, this.v0);\n\t\th.cross(ray3.direction, e2);\n\t\tconst a = e1.dot(h);\n\t\tif (a > -EPSILON && a < EPSILON) {\n\t\t\treturn false;\n\t\t}\n\t\tconst f = 1 / a;\n\t\ts.sub2(ray3.origin, this.v0);\n\t\tconst u = f * s.dot(h);\n\t\tif (u < 0 || u > 1) {\n\t\t\treturn false;\n\t\t}\n\t\tq.cross(s, e1);\n\t\tconst v6 = f * ray3.direction.dot(q);\n\t\tif (v6 < 0 || u + v6 > 1) {\n\t\t\treturn false;\n\t\t}\n\t\tconst t = f * e2.dot(q);\n\t\tif (t > EPSILON) {\n\t\t\tif (point5 instanceof Vec3) {\n\t\t\t\tpoint5.copy(ray3.direction).mulScalar(t).add(ray3.origin);\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\ttoString() {\n\t\treturn `[${this.v0.toString()}, ${this.v1.toString()}, ${this.v2.toString()}]`;\n\t}\n};\n\nvar ADDRESS_REPEAT = 0;\nvar ADDRESS_CLAMP_TO_EDGE = 1;\nvar ADDRESS_MIRRORED_REPEAT = 2;\nvar BLENDMODE_ZERO = 0;\nvar BLENDMODE_ONE = 1;\nvar BLENDMODE_SRC_COLOR = 2;\nvar BLENDMODE_ONE_MINUS_SRC_COLOR = 3;\nvar BLENDMODE_DST_COLOR = 4;\nvar BLENDMODE_ONE_MINUS_DST_COLOR = 5;\nvar BLENDMODE_SRC_ALPHA = 6;\nvar BLENDMODE_SRC_ALPHA_SATURATE = 7;\nvar BLENDMODE_ONE_MINUS_SRC_ALPHA = 8;\nvar BLENDMODE_DST_ALPHA = 9;\nvar BLENDMODE_ONE_MINUS_DST_ALPHA = 10;\nvar BLENDMODE_CONSTANT = 11;\nvar BLENDMODE_ONE_MINUS_CONSTANT = 12;\nvar BLENDMODE_SRC1_COLOR = 13;\nvar BLENDMODE_ONE_MINUS_SRC1_COLOR = 14;\nvar BLENDMODE_SRC1_ALPHA = 15;\nvar BLENDMODE_ONE_MINUS_SRC1_ALPHA = 16;\nvar BLENDEQUATION_ADD = 0;\nvar BLENDEQUATION_SUBTRACT = 1;\nvar BLENDEQUATION_REVERSE_SUBTRACT = 2;\nvar BLENDEQUATION_MIN = 3;\nvar BLENDEQUATION_MAX = 4;\nvar BUFFERUSAGE_READ = 1;\nvar BUFFERUSAGE_WRITE = 2;\nvar BUFFERUSAGE_COPY_SRC = 4;\nvar BUFFERUSAGE_COPY_DST = 8;\nvar BUFFERUSAGE_INDEX = 16;\nvar BUFFERUSAGE_VERTEX = 32;\nvar BUFFERUSAGE_UNIFORM = 64;\nvar BUFFERUSAGE_STORAGE = 128;\nvar BUFFERUSAGE_INDIRECT = 256;\nvar BUFFER_STATIC = 0;\nvar BUFFER_DYNAMIC = 1;\nvar BUFFER_STREAM = 2;\nvar BUFFER_GPUDYNAMIC = 3;\nvar TRANSFORM_FEEDBACK_INTERLEAVED = 0;\nvar TRANSFORM_FEEDBACK_SEPARATE = 1;\nvar CLEARFLAG_COLOR = 1;\nvar CLEARFLAG_DEPTH = 2;\nvar CLEARFLAG_STENCIL = 4;\nvar CUBEFACE_POSX = 0;\nvar CUBEFACE_NEGX = 1;\nvar CUBEFACE_POSY = 2;\nvar CUBEFACE_NEGY = 3;\nvar CUBEFACE_POSZ = 4;\nvar CUBEFACE_NEGZ = 5;\nvar RENDERTARGET_ORIGIN_TOP = \"top\";\nvar RENDERTARGET_ORIGIN_BOTTOM = \"bottom\";\nvar RENDERTARGET_ORIGIN_NATIVE = \"native\";\nvar DEPTHRESOLVE_SAMPLE0 = \"sample0\";\nvar DEPTHRESOLVE_MIN = \"min\";\nvar DEPTHRESOLVE_MAX = \"max\";\nvar CULLFACE_NONE = 0;\nvar CULLFACE_BACK = 1;\nvar CULLFACE_FRONT = 2;\nvar CULLFACE_FRONTANDBACK = 3;\nvar FRONTFACE_CCW = 0;\nvar FRONTFACE_CW = 1;\nvar FILTER_NEAREST = 0;\nvar FILTER_LINEAR = 1;\nvar FILTER_NEAREST_MIPMAP_NEAREST = 2;\nvar FILTER_NEAREST_MIPMAP_LINEAR = 3;\nvar FILTER_LINEAR_MIPMAP_NEAREST = 4;\nvar FILTER_LINEAR_MIPMAP_LINEAR = 5;\nvar FUNC_NEVER = 0;\nvar FUNC_LESS = 1;\nvar FUNC_EQUAL = 2;\nvar FUNC_LESSEQUAL = 3;\nvar FUNC_GREATER = 4;\nvar FUNC_NOTEQUAL = 5;\nvar FUNC_GREATEREQUAL = 6;\nvar FUNC_ALWAYS = 7;\nvar INDEXFORMAT_UINT8 = 0;\nvar INDEXFORMAT_UINT16 = 1;\nvar INDEXFORMAT_UINT32 = 2;\nvar indexFormatByteSize = [1, 2, 4];\nvar PIXELFORMAT_A8 = 0;\nvar PIXELFORMAT_L8 = 1;\nvar PIXELFORMAT_LA8 = 2;\nvar PIXELFORMAT_RGB565 = 3;\nvar PIXELFORMAT_RGBA5551 = 4;\nvar PIXELFORMAT_RGBA4 = 5;\nvar PIXELFORMAT_RGB8 = 6;\nvar PIXELFORMAT_RGBA8 = 7;\nvar PIXELFORMAT_DXT1 = 8;\nvar PIXELFORMAT_DXT3 = 9;\nvar PIXELFORMAT_DXT5 = 10;\nvar PIXELFORMAT_RGB16F = 11;\nvar PIXELFORMAT_RGBA16F = 12;\nvar PIXELFORMAT_RGB32F = 13;\nvar PIXELFORMAT_RGBA32F = 14;\nvar PIXELFORMAT_R32F = 15;\nvar PIXELFORMAT_DEPTH = 16;\nvar PIXELFORMAT_DEPTHSTENCIL = 17;\nvar PIXELFORMAT_111110F = 18;\nvar PIXELFORMAT_SRGB8 = 19;\nvar PIXELFORMAT_SRGBA8 = 20;\nvar PIXELFORMAT_ETC1 = 21;\nvar PIXELFORMAT_ETC2_RGB = 22;\nvar PIXELFORMAT_ETC2_RGBA = 23;\nvar PIXELFORMAT_PVRTC_2BPP_RGB_1 = 24;\nvar PIXELFORMAT_PVRTC_2BPP_RGBA_1 = 25;\nvar PIXELFORMAT_PVRTC_4BPP_RGB_1 = 26;\nvar PIXELFORMAT_PVRTC_4BPP_RGBA_1 = 27;\nvar PIXELFORMAT_ASTC_4x4 = 28;\nvar PIXELFORMAT_ATC_RGB = 29;\nvar PIXELFORMAT_ATC_RGBA = 30;\nvar PIXELFORMAT_BGRA8 = 31;\nvar PIXELFORMAT_R8I = 32;\nvar PIXELFORMAT_R8U = 33;\nvar PIXELFORMAT_R16I = 34;\nvar PIXELFORMAT_R16U = 35;\nvar PIXELFORMAT_R32I = 36;\nvar PIXELFORMAT_R32U = 37;\nvar PIXELFORMAT_RG8I = 38;\nvar PIXELFORMAT_RG8U = 39;\nvar PIXELFORMAT_RG16I = 40;\nvar PIXELFORMAT_RG16U = 41;\nvar PIXELFORMAT_RG32I = 42;\nvar PIXELFORMAT_RG32U = 43;\nvar PIXELFORMAT_RGBA8I = 44;\nvar PIXELFORMAT_RGBA8U = 45;\nvar PIXELFORMAT_RGBA16I = 46;\nvar PIXELFORMAT_RGBA16U = 47;\nvar PIXELFORMAT_RGBA32I = 48;\nvar PIXELFORMAT_RGBA32U = 49;\nvar PIXELFORMAT_R16F = 50;\nvar PIXELFORMAT_RG16F = 51;\nvar PIXELFORMAT_R8 = 52;\nvar PIXELFORMAT_RG8 = 53;\nvar PIXELFORMAT_DXT1_SRGB = 54;\nvar PIXELFORMAT_DXT3_SRGBA = 55;\nvar PIXELFORMAT_DXT5_SRGBA = 56;\nvar PIXELFORMAT_ETC2_SRGB = 61;\nvar PIXELFORMAT_ETC2_SRGBA = 62;\nvar PIXELFORMAT_ASTC_4x4_SRGB = 63;\nvar PIXELFORMAT_SBGRA8 = 64;\nvar PIXELFORMAT_BC6F = 65;\nvar PIXELFORMAT_BC6UF = 66;\nvar PIXELFORMAT_BC7 = 67;\nvar PIXELFORMAT_BC7_SRGBA = 68;\nvar PIXELFORMAT_DEPTH16 = 69;\nvar PIXELFORMAT_RG32F = 70;\nvar PIXELFORMAT_RGB9E5 = 71;\nvar PIXELFORMAT_RG8S = 72;\nvar PIXELFORMAT_RGBA8S = 73;\nvar PIXELFORMAT_RGB10A2 = 74;\nvar PIXELFORMAT_RGB10A2U = 75;\nvar pixelFormatInfo = /* @__PURE__ */ new Map([\n\t// float formats\n\t[PIXELFORMAT_A8, { name: \"A8\", size: 1, ldr: true }],\n\t[PIXELFORMAT_R8, { name: \"R8\", size: 1, ldr: true, msaa: true, msaaResolve: true }],\n\t[PIXELFORMAT_L8, { name: \"L8\", size: 1, ldr: true }],\n\t[PIXELFORMAT_LA8, { name: \"LA8\", size: 2, ldr: true }],\n\t[PIXELFORMAT_RG8, { name: \"RG8\", size: 2, ldr: true, msaa: true, msaaResolve: true }],\n\t[PIXELFORMAT_RGB565, { name: \"RGB565\", size: 2, ldr: true }],\n\t[PIXELFORMAT_RGBA5551, { name: \"RGBA5551\", size: 2, ldr: true }],\n\t[PIXELFORMAT_RGBA4, { name: \"RGBA4\", size: 2, ldr: true }],\n\t[PIXELFORMAT_RGB8, { name: \"RGB8\", size: 4, ldr: true, msaa: true, msaaResolve: true }],\n\t[PIXELFORMAT_RGBA8, { name: \"RGBA8\", size: 4, ldr: true, srgbFormat: PIXELFORMAT_SRGBA8, msaa: true, msaaResolve: true }],\n\t[PIXELFORMAT_R16F, { name: \"R16F\", size: 2, msaa: true, msaaResolve: true }],\n\t[PIXELFORMAT_RG16F, { name: \"RG16F\", size: 4, msaa: true, msaaResolve: true }],\n\t[PIXELFORMAT_RGB16F, { name: \"RGB16F\", size: 8 }],\n\t[PIXELFORMAT_RGBA16F, { name: \"RGBA16F\", size: 8, msaa: true, msaaResolve: true }],\n\t[PIXELFORMAT_RGB32F, { name: \"RGB32F\", size: 16 }],\n\t[PIXELFORMAT_RGBA32F, { name: \"RGBA32F\", size: 16 }],\n\t[PIXELFORMAT_R32F, { name: \"R32F\", size: 4, msaa: true }],\n\t[PIXELFORMAT_RG32F, { name: \"RG32F\", size: 8 }],\n\t[PIXELFORMAT_RGB9E5, { name: \"RGB9E5\", size: 4 }],\n\t[PIXELFORMAT_RG8S, { name: \"RG8S\", size: 2 }],\n\t[PIXELFORMAT_RGBA8S, { name: \"RGBA8S\", size: 4 }],\n\t[PIXELFORMAT_RGB10A2, { name: \"RGB10A2\", size: 4, msaa: true, msaaResolve: true }],\n\t[PIXELFORMAT_RGB10A2U, { name: \"RGB10A2U\", size: 4, isUint: true, msaa: true }],\n\t[PIXELFORMAT_DEPTH, { name: \"DEPTH\", size: 4, msaa: true }],\n\t[PIXELFORMAT_DEPTH16, { name: \"DEPTH16\", size: 2, msaa: true }],\n\t[PIXELFORMAT_DEPTHSTENCIL, { name: \"DEPTHSTENCIL\", size: 4, msaa: true }],\n\t[PIXELFORMAT_111110F, { name: \"111110F\", size: 4, msaa: true, msaaResolve: true }],\n\t[PIXELFORMAT_SRGB8, { name: \"SRGB8\", size: 4, ldr: true, srgb: true }],\n\t[PIXELFORMAT_SRGBA8, { name: \"SRGBA8\", size: 4, ldr: true, srgb: true, msaa: true, msaaResolve: true }],\n\t[PIXELFORMAT_BGRA8, { name: \"BGRA8\", size: 4, ldr: true, msaa: true, msaaResolve: true }],\n\t[PIXELFORMAT_SBGRA8, { name: \"SBGRA8\", size: 4, ldr: true, srgb: true, msaa: true, msaaResolve: true }],\n\t// compressed formats\n\t[PIXELFORMAT_DXT1, { name: \"DXT1\", blockSize: 8, ldr: true, srgbFormat: PIXELFORMAT_DXT1_SRGB }],\n\t[PIXELFORMAT_DXT3, { name: \"DXT3\", blockSize: 16, ldr: true, srgbFormat: PIXELFORMAT_DXT3_SRGBA }],\n\t[PIXELFORMAT_DXT5, { name: \"DXT5\", blockSize: 16, ldr: true, srgbFormat: PIXELFORMAT_DXT5_SRGBA }],\n\t[PIXELFORMAT_ETC1, { name: \"ETC1\", blockSize: 8, ldr: true }],\n\t[PIXELFORMAT_ETC2_RGB, { name: \"ETC2_RGB\", blockSize: 8, ldr: true, srgbFormat: PIXELFORMAT_ETC2_SRGB }],\n\t[PIXELFORMAT_ETC2_RGBA, { name: \"ETC2_RGBA\", blockSize: 16, ldr: true, srgbFormat: PIXELFORMAT_ETC2_SRGBA }],\n\t[PIXELFORMAT_PVRTC_2BPP_RGB_1, { name: \"PVRTC_2BPP_RGB_1\", ldr: true, blockSize: 8 }],\n\t[PIXELFORMAT_PVRTC_2BPP_RGBA_1, { name: \"PVRTC_2BPP_RGBA_1\", ldr: true, blockSize: 8 }],\n\t[PIXELFORMAT_PVRTC_4BPP_RGB_1, { name: \"PVRTC_4BPP_RGB_1\", ldr: true, blockSize: 8 }],\n\t[PIXELFORMAT_PVRTC_4BPP_RGBA_1, { name: \"PVRTC_4BPP_RGBA_1\", ldr: true, blockSize: 8 }],\n\t[PIXELFORMAT_ASTC_4x4, { name: \"ASTC_4x4\", blockSize: 16, ldr: true, srgbFormat: PIXELFORMAT_ASTC_4x4_SRGB }],\n\t[PIXELFORMAT_ATC_RGB, { name: \"ATC_RGB\", blockSize: 8, ldr: true }],\n\t[PIXELFORMAT_ATC_RGBA, { name: \"ATC_RGBA\", blockSize: 16, ldr: true }],\n\t[PIXELFORMAT_BC6F, { name: \"BC6H_RGBF\", blockSize: 16 }],\n\t[PIXELFORMAT_BC6UF, { name: \"BC6H_RGBUF\", blockSize: 16 }],\n\t[PIXELFORMAT_BC7, { name: \"BC7_RGBA\", blockSize: 16, ldr: true, srgbFormat: PIXELFORMAT_BC7_SRGBA }],\n\t// compressed sRGB formats\n\t[PIXELFORMAT_DXT1_SRGB, { name: \"DXT1_SRGB\", blockSize: 8, ldr: true, srgb: true }],\n\t[PIXELFORMAT_DXT3_SRGBA, { name: \"DXT3_SRGBA\", blockSize: 16, ldr: true, srgb: true }],\n\t[PIXELFORMAT_DXT5_SRGBA, { name: \"DXT5_SRGBA\", blockSize: 16, ldr: true, srgb: true }],\n\t[PIXELFORMAT_ETC2_SRGB, { name: \"ETC2_SRGB\", blockSize: 8, ldr: true, srgb: true }],\n\t[PIXELFORMAT_ETC2_SRGBA, { name: \"ETC2_SRGBA\", blockSize: 16, ldr: true, srgb: true }],\n\t[PIXELFORMAT_ASTC_4x4_SRGB, { name: \"ASTC_4x4_SRGB\", blockSize: 16, ldr: true, srgb: true }],\n\t[PIXELFORMAT_BC7_SRGBA, { name: \"BC7_SRGBA\", blockSize: 16, ldr: true, srgb: true }],\n\t// signed integer formats\n\t[PIXELFORMAT_R8I, { name: \"R8I\", size: 1, isInt: true, msaa: true }],\n\t[PIXELFORMAT_R16I, { name: \"R16I\", size: 2, isInt: true, msaa: true }],\n\t[PIXELFORMAT_R32I, { name: \"R32I\", size: 4, isInt: true }],\n\t[PIXELFORMAT_RG8I, { name: \"RG8I\", size: 2, isInt: true, msaa: true }],\n\t[PIXELFORMAT_RG16I, { name: \"RG16I\", size: 4, isInt: true, msaa: true }],\n\t[PIXELFORMAT_RG32I, { name: \"RG32I\", size: 8, isInt: true }],\n\t[PIXELFORMAT_RGBA8I, { name: \"RGBA8I\", size: 4, isInt: true, msaa: true }],\n\t[PIXELFORMAT_RGBA16I, { name: \"RGBA16I\", size: 8, isInt: true, msaa: true }],\n\t[PIXELFORMAT_RGBA32I, { name: \"RGBA32I\", size: 16, isInt: true }],\n\t// unsigned integer formats\n\t[PIXELFORMAT_R8U, { name: \"R8U\", size: 1, isUint: true, msaa: true }],\n\t[PIXELFORMAT_R16U, { name: \"R16U\", size: 2, isUint: true, msaa: true }],\n\t[PIXELFORMAT_R32U, { name: \"R32U\", size: 4, isUint: true }],\n\t[PIXELFORMAT_RG8U, { name: \"RG8U\", size: 2, isUint: true, msaa: true }],\n\t[PIXELFORMAT_RG16U, { name: \"RG16U\", size: 4, isUint: true, msaa: true }],\n\t[PIXELFORMAT_RG32U, { name: \"RG32U\", size: 8, isUint: true }],\n\t[PIXELFORMAT_RGBA8U, { name: \"RGBA8U\", size: 4, isUint: true, msaa: true }],\n\t[PIXELFORMAT_RGBA16U, { name: \"RGBA16U\", size: 8, isUint: true, msaa: true }],\n\t[PIXELFORMAT_RGBA32U, { name: \"RGBA32U\", size: 16, isUint: true }]\n]);\nvar isCompressedPixelFormat = (format) => {\n\treturn pixelFormatInfo.get(format)?.blockSize !== void 0;\n};\nvar isSrgbPixelFormat = (format) => {\n\treturn pixelFormatInfo.get(format)?.srgb === true;\n};\nvar isIntegerPixelFormat = (format) => {\n\tconst info = pixelFormatInfo.get(format);\n\treturn info?.isInt === true || info?.isUint === true;\n};\nvar isMultisampleCapablePixelFormat = (format) => {\n\treturn pixelFormatInfo.get(format)?.msaa === true;\n};\nvar isMultisampleResolveCapablePixelFormat = (format) => {\n\treturn pixelFormatInfo.get(format)?.msaaResolve === true;\n};\nvar GLSL_FLOAT = { sampler: \"sampler2D\", returnType: \"vec4\" };\nvar GLSL_UINT = { sampler: \"usampler2D\", returnType: \"uvec4\" };\nvar GLSL_INT = { sampler: \"isampler2D\", returnType: \"ivec4\" };\nvar WGSL_FLOAT = { textureType: \"texture_2d<f32>\", returnType: \"vec4f\" };\nvar WGSL_UINT = { textureType: \"texture_2d<u32>\", returnType: \"vec4u\" };\nvar WGSL_INT = { textureType: \"texture_2d<i32>\", returnType: \"vec4i\" };\nvar getGlslShaderType = (format) => {\n\tconst info = pixelFormatInfo.get(format);\n\tif (info?.isUint) return GLSL_UINT;\n\tif (info?.isInt) return GLSL_INT;\n\treturn GLSL_FLOAT;\n};\nvar getWgslShaderType = (format) => {\n\tconst info = pixelFormatInfo.get(format);\n\tif (info?.isUint) return WGSL_UINT;\n\tif (info?.isInt) return WGSL_INT;\n\treturn WGSL_FLOAT;\n};\nvar pixelFormatLinearToGamma = (format) => {\n\treturn pixelFormatInfo.get(format)?.srgbFormat || format;\n};\nvar pixelFormatGammaToLinear = (format) => {\n\tfor (const [key, value] of pixelFormatInfo) {\n\t\tif (value.srgbFormat === format) {\n\t\t\treturn key;\n\t\t}\n\t}\n\treturn format;\n};\nvar requiresManualGamma = (format) => {\n\tconst info = pixelFormatInfo.get(format);\n\treturn !!(info?.ldr && !info?.srgb);\n};\nvar getPixelFormatArrayType = (format) => {\n\tswitch (format) {\n\t\tcase PIXELFORMAT_R32F:\n\t\tcase PIXELFORMAT_RG32F:\n\t\tcase PIXELFORMAT_RGB32F:\n\t\tcase PIXELFORMAT_RGBA32F:\n\t\t\treturn Float32Array;\n\t\tcase PIXELFORMAT_R32I:\n\t\tcase PIXELFORMAT_RG32I:\n\t\tcase PIXELFORMAT_RGBA32I:\n\t\t\treturn Int32Array;\n\t\tcase PIXELFORMAT_R32U:\n\t\tcase PIXELFORMAT_RG32U:\n\t\tcase PIXELFORMAT_RGBA32U:\n\t\tcase PIXELFORMAT_RGB9E5:\n\t\tcase PIXELFORMAT_RGB10A2:\n\t\tcase PIXELFORMAT_RGB10A2U:\n\t\t\treturn Uint32Array;\n\t\tcase PIXELFORMAT_R16I:\n\t\tcase PIXELFORMAT_RG16I:\n\t\tcase PIXELFORMAT_RGBA16I:\n\t\t\treturn Int16Array;\n\t\tcase PIXELFORMAT_R16U:\n\t\tcase PIXELFORMAT_RG16U:\n\t\tcase PIXELFORMAT_RGBA16U:\n\t\tcase PIXELFORMAT_RGB565:\n\t\tcase PIXELFORMAT_RGBA5551:\n\t\tcase PIXELFORMAT_RGBA4:\n\t\tcase PIXELFORMAT_R16F:\n\t\tcase PIXELFORMAT_RG16F:\n\t\tcase PIXELFORMAT_RGB16F:\n\t\tcase PIXELFORMAT_RGBA16F:\n\t\t\treturn Uint16Array;\n\t\tcase PIXELFORMAT_R8I:\n\t\tcase PIXELFORMAT_RG8I:\n\t\tcase PIXELFORMAT_RGBA8I:\n\t\tcase PIXELFORMAT_RG8S:\n\t\tcase PIXELFORMAT_RGBA8S:\n\t\t\treturn Int8Array;\n\t\tdefault:\n\t\t\treturn Uint8Array;\n\t}\n};\nvar PRIMITIVE_POINTS = 0;\nvar PRIMITIVE_LINES = 1;\nvar PRIMITIVE_LINELOOP = 2;\nvar PRIMITIVE_LINESTRIP = 3;\nvar PRIMITIVE_TRIANGLES = 4;\nvar PRIMITIVE_TRISTRIP = 5;\nvar PRIMITIVE_TRIFAN = 6;\nvar SEMANTIC_POSITION = \"POSITION\";\nvar SEMANTIC_NORMAL = \"NORMAL\";\nvar SEMANTIC_TANGENT = \"TANGENT\";\nvar SEMANTIC_BLENDWEIGHT = \"BLENDWEIGHT\";\nvar SEMANTIC_BLENDINDICES = \"BLENDINDICES\";\nvar SEMANTIC_COLOR = \"COLOR\";\nvar SEMANTIC_TEXCOORD = \"TEXCOORD\";\nvar SEMANTIC_TEXCOORD0 = \"TEXCOORD0\";\nvar SEMANTIC_TEXCOORD1 = \"TEXCOORD1\";\nvar SEMANTIC_TEXCOORD2 = \"TEXCOORD2\";\nvar SEMANTIC_TEXCOORD3 = \"TEXCOORD3\";\nvar SEMANTIC_TEXCOORD4 = \"TEXCOORD4\";\nvar SEMANTIC_TEXCOORD5 = \"TEXCOORD5\";\nvar SEMANTIC_TEXCOORD6 = \"TEXCOORD6\";\nvar SEMANTIC_TEXCOORD7 = \"TEXCOORD7\";\nvar SEMANTIC_ATTR0 = \"ATTR0\";\nvar SEMANTIC_ATTR1 = \"ATTR1\";\nvar SEMANTIC_ATTR2 = \"ATTR2\";\nvar SEMANTIC_ATTR3 = \"ATTR3\";\nvar SEMANTIC_ATTR4 = \"ATTR4\";\nvar SEMANTIC_ATTR5 = \"ATTR5\";\nvar SEMANTIC_ATTR6 = \"ATTR6\";\nvar SEMANTIC_ATTR7 = \"ATTR7\";\nvar SEMANTIC_ATTR8 = \"ATTR8\";\nvar SEMANTIC_ATTR9 = \"ATTR9\";\nvar SEMANTIC_ATTR10 = \"ATTR10\";\nvar SEMANTIC_ATTR11 = \"ATTR11\";\nvar SEMANTIC_ATTR12 = \"ATTR12\";\nvar SEMANTIC_ATTR13 = \"ATTR13\";\nvar SEMANTIC_ATTR14 = \"ATTR14\";\nvar SEMANTIC_ATTR15 = \"ATTR15\";\nvar SHADERTAG_MATERIAL = 1;\nvar STENCILOP_KEEP = 0;\nvar STENCILOP_ZERO = 1;\nvar STENCILOP_REPLACE = 2;\nvar STENCILOP_INCREMENT = 3;\nvar STENCILOP_INCREMENTWRAP = 4;\nvar STENCILOP_DECREMENT = 5;\nvar STENCILOP_DECREMENTWRAP = 6;\nvar STENCILOP_INVERT = 7;\nvar TEXTURELOCK_NONE = 0;\nvar TEXTURELOCK_READ = 1;\nvar TEXTURELOCK_WRITE = 2;\nvar TEXTURETYPE_DEFAULT = \"default\";\nvar TEXTURETYPE_RGBM = \"rgbm\";\nvar TEXTURETYPE_RGBE = \"rgbe\";\nvar TEXTURETYPE_RGBP = \"rgbp\";\nvar TEXTURETYPE_SWIZZLEGGGR = \"swizzleGGGR\";\nvar TEXHINT_NONE = 0;\nvar TEXHINT_SHADOWMAP = 1;\nvar TEXHINT_ASSET = 2;\nvar TEXHINT_LIGHTMAP = 3;\nvar TEXTUREDIMENSION_1D = \"1d\";\nvar TEXTUREDIMENSION_2D = \"2d\";\nvar TEXTUREDIMENSION_2D_ARRAY = \"2d-array\";\nvar TEXTUREDIMENSION_CUBE = \"cube\";\nvar TEXTUREDIMENSION_CUBE_ARRAY = \"cube-array\";\nvar TEXTUREDIMENSION_3D = \"3d\";\nvar SAMPLETYPE_FLOAT = 0;\nvar SAMPLETYPE_UNFILTERABLE_FLOAT = 1;\nvar SAMPLETYPE_DEPTH = 2;\nvar SAMPLETYPE_INT = 3;\nvar SAMPLETYPE_UINT = 4;\nvar TEXTUREPROJECTION_NONE = \"none\";\nvar TEXTUREPROJECTION_CUBE = \"cube\";\nvar TEXTUREPROJECTION_EQUIRECT = \"equirect\";\nvar TEXTUREPROJECTION_OCTAHEDRAL = \"octahedral\";\nvar SHADERLANGUAGE_GLSL = \"glsl\";\nvar SHADERLANGUAGE_WGSL = \"wgsl\";\nvar TYPE_INT8 = 0;\nvar TYPE_UINT8 = 1;\nvar TYPE_INT16 = 2;\nvar TYPE_UINT16 = 3;\nvar TYPE_INT32 = 4;\nvar TYPE_UINT32 = 5;\nvar TYPE_FLOAT32 = 6;\nvar TYPE_FLOAT16 = 7;\nvar UNIFORMTYPE_BOOL = 0;\nvar UNIFORMTYPE_INT = 1;\nvar UNIFORMTYPE_FLOAT = 2;\nvar UNIFORMTYPE_VEC2 = 3;\nvar UNIFORMTYPE_VEC3 = 4;\nvar UNIFORMTYPE_VEC4 = 5;\nvar UNIFORMTYPE_IVEC2 = 6;\nvar UNIFORMTYPE_IVEC3 = 7;\nvar UNIFORMTYPE_IVEC4 = 8;\nvar UNIFORMTYPE_BVEC2 = 9;\nvar UNIFORMTYPE_BVEC3 = 10;\nvar UNIFORMTYPE_BVEC4 = 11;\nvar UNIFORMTYPE_MAT2 = 12;\nvar UNIFORMTYPE_MAT3 = 13;\nvar UNIFORMTYPE_MAT4 = 14;\nvar UNIFORMTYPE_TEXTURE2D = 15;\nvar UNIFORMTYPE_TEXTURECUBE = 16;\nvar UNIFORMTYPE_FLOATARRAY = 17;\nvar UNIFORMTYPE_TEXTURE2D_SHADOW = 18;\nvar UNIFORMTYPE_TEXTURECUBE_SHADOW = 19;\nvar UNIFORMTYPE_TEXTURE3D = 20;\nvar UNIFORMTYPE_VEC2ARRAY = 21;\nvar UNIFORMTYPE_VEC3ARRAY = 22;\nvar UNIFORMTYPE_VEC4ARRAY = 23;\nvar UNIFORMTYPE_MAT4ARRAY = 24;\nvar UNIFORMTYPE_TEXTURE2D_ARRAY = 25;\nvar UNIFORMTYPE_UINT = 26;\nvar UNIFORMTYPE_UVEC2 = 27;\nvar UNIFORMTYPE_UVEC3 = 28;\nvar UNIFORMTYPE_UVEC4 = 29;\nvar UNIFORMTYPE_INTARRAY = 30;\nvar UNIFORMTYPE_UINTARRAY = 31;\nvar UNIFORMTYPE_BOOLARRAY = 32;\nvar UNIFORMTYPE_IVEC2ARRAY = 33;\nvar UNIFORMTYPE_UVEC2ARRAY = 34;\nvar UNIFORMTYPE_BVEC2ARRAY = 35;\nvar UNIFORMTYPE_IVEC3ARRAY = 36;\nvar UNIFORMTYPE_UVEC3ARRAY = 37;\nvar UNIFORMTYPE_BVEC3ARRAY = 38;\nvar UNIFORMTYPE_IVEC4ARRAY = 39;\nvar UNIFORMTYPE_UVEC4ARRAY = 40;\nvar UNIFORMTYPE_BVEC4ARRAY = 41;\nvar UNIFORMTYPE_ITEXTURE2D = 42;\nvar UNIFORMTYPE_UTEXTURE2D = 43;\nvar UNIFORMTYPE_ITEXTURECUBE = 44;\nvar UNIFORMTYPE_UTEXTURECUBE = 45;\nvar UNIFORMTYPE_ITEXTURE3D = 46;\nvar UNIFORMTYPE_UTEXTURE3D = 47;\nvar UNIFORMTYPE_ITEXTURE2D_ARRAY = 48;\nvar UNIFORMTYPE_UTEXTURE2D_ARRAY = 49;\nvar uniformTypeToName = [\n\t// Uniforms\n\t\"bool\",\n\t\"int\",\n\t\"float\",\n\t\"vec2\",\n\t\"vec3\",\n\t\"vec4\",\n\t\"ivec2\",\n\t\"ivec3\",\n\t\"ivec4\",\n\t\"bvec2\",\n\t\"bvec3\",\n\t\"bvec4\",\n\t\"mat2\",\n\t\"mat3\",\n\t\"mat4\",\n\t\"sampler2D\",\n\t\"samplerCube\",\n\t\"\",\n\t// not directly handled: UNIFORMTYPE_FLOATARRAY\n\t\"sampler2DShadow\",\n\t\"samplerCubeShadow\",\n\t\"sampler3D\",\n\t\"\",\n\t// not directly handled: UNIFORMTYPE_VEC2ARRAY\n\t\"\",\n\t// not directly handled: UNIFORMTYPE_VEC3ARRAY\n\t\"\",\n\t// not directly handled: UNIFORMTYPE_VEC4ARRAY\n\t\"\",\n\t// not directly handled: UNIFORMTYPE_MAT4ARRAY\n\t\"sampler2DArray\",\n\t\"uint\",\n\t\"uvec2\",\n\t\"uvec3\",\n\t\"uvec4\",\n\t\"\",\n\t// not directly handled: UNIFORMTYPE_INTARRAY\n\t\"\",\n\t// not directly handled: UNIFORMTYPE_UINTARRAY\n\t\"\",\n\t// not directly handled: UNIFORMTYPE_BOOLARRAY\n\t\"\",\n\t// not directly handled: UNIFORMTYPE_IVEC2ARRAY\n\t\"\",\n\t// not directly handled: UNIFORMTYPE_UVEC2ARRAY\n\t\"\",\n\t// not directly handled: UNIFORMTYPE_BVEC2ARRAY\n\t\"\",\n\t// not directly handled: UNIFORMTYPE_IVEC3ARRAY\n\t\"\",\n\t// not directly handled: UNIFORMTYPE_UVEC3ARRAY\n\t\"\",\n\t// not directly handled: UNIFORMTYPE_BVEC3ARRAY\n\t\"\",\n\t// not directly handled: UNIFORMTYPE_IVEC4ARRAY\n\t\"\",\n\t// not directly handled: UNIFORMTYPE_UVEC4ARRAY\n\t\"\",\n\t// not directly handled: UNIFORMTYPE_BVEC4ARRAY\n\t\"isampler2D\",\n\t\"usampler2D\",\n\t\"isamplerCube\",\n\t\"usamplerCube\",\n\t\"isampler3D\",\n\t\"usampler3D\",\n\t\"isampler2DArray\",\n\t\"usampler2DArray\"\n];\nvar uniformTypeToNameWGSL = [\n\t// Uniforms\n\t[\"bool\"],\n\t// UNIFORMTYPE_BOOL\n\t[\"i32\"],\n\t// UNIFORMTYPE_INT\n\t[\"f32\"],\n\t// UNIFORMTYPE_FLOAT\n\t[\"vec2f\", \"vec2<f32>\"],\n\t// UNIFORMTYPE_VEC2\n\t[\"vec3f\", \"vec3<f32>\"],\n\t// UNIFORMTYPE_VEC3\n\t[\"vec4f\", \"vec4<f32>\"],\n\t// UNIFORMTYPE_VEC4\n\t[\"vec2i\", \"vec2<i32>\"],\n\t// UNIFORMTYPE_IVEC2\n\t[\"vec3i\", \"vec3<i32>\"],\n\t// UNIFORMTYPE_IVEC3\n\t[\"vec4i\", \"vec4<i32>\"],\n\t// UNIFORMTYPE_IVEC4\n\t[\"vec2<bool>\"],\n\t// UNIFORMTYPE_BVEC2\n\t[\"vec3<bool>\"],\n\t// UNIFORMTYPE_BVEC3\n\t[\"vec4<bool>\"],\n\t// UNIFORMTYPE_BVEC4\n\t[\"mat2x2f\", \"mat2x2<f32>\"],\n\t// UNIFORMTYPE_MAT2\n\t[\"mat3x3f\", \"mat3x3<f32>\"],\n\t// UNIFORMTYPE_MAT3\n\t[\"mat4x4f\", \"mat4x4<f32>\"],\n\t// UNIFORMTYPE_MAT4\n\t[\"texture_2d<f32>\"],\n\t// UNIFORMTYPE_TEXTURE2D\n\t[\"texture_cube<f32>\"],\n\t// UNIFORMTYPE_TEXTURECUBE\n\t[\"array<f32>\"],\n\t// UNIFORMTYPE_FLOATARRAY\n\t[\"texture_depth_2d\"],\n\t// UNIFORMTYPE_TEXTURE2D_SHADOW\n\t[\"texture_depth_cube\"],\n\t// UNIFORMTYPE_TEXTURECUBE_SHADOW\n\t[\"texture_3d<f32>\"],\n\t// UNIFORMTYPE_TEXTURE3D\n\t[\"array<vec2<f32>>\"],\n\t// UNIFORMTYPE_VEC2ARRAY\n\t[\"array<vec3<f32>>\"],\n\t// UNIFORMTYPE_VEC3ARRAY\n\t[\"array<vec4<f32>>\"],\n\t// UNIFORMTYPE_VEC4ARRAY\n\t[\"array<mat4x4<f32>>\"],\n\t// UNIFORMTYPE_MAT4ARRAY\n\t[\"texture_2d_array<f32>\"],\n\t// UNIFORMTYPE_TEXTURE2D_ARRAY\n\t// Unsigned integer uniforms\n\t[\"u32\"],\n\t// UNIFORMTYPE_UINT\n\t[\"vec2u\", \"vec2<u32>\"],\n\t// UNIFORMTYPE_UVEC2\n\t[\"vec3u\", \"vec3<u32>\"],\n\t// UNIFORMTYPE_UVEC3\n\t[\"vec4u\", \"vec4<u32>\"],\n\t// UNIFORMTYPE_UVEC4\n\t// Integer array uniforms\n\t[\"array<i32>\"],\n\t// UNIFORMTYPE_INTARRAY\n\t[\"array<u32>\"],\n\t// UNIFORMTYPE_UINTARRAY\n\t[\"array<bool>\"],\n\t// UNIFORMTYPE_BOOLARRAY\n\t[\"array<vec2i>\", \"array<vec2<i32>>\"],\n\t// UNIFORMTYPE_IVEC2ARRAY\n\t[\"array<vec2u>\", \"array<vec2<u32>>\"],\n\t// UNIFORMTYPE_UVEC2ARRAY\n\t[\"array<vec2b>\", \"array<vec2<bool>>\"],\n\t// UNIFORMTYPE_BVEC2ARRAY\n\t[\"array<vec3i>\", \"array<vec3<i32>>\"],\n\t// UNIFORMTYPE_IVEC3ARRAY\n\t[\"array<vec3u>\", \"array<vec3<u32>>\"],\n\t// UNIFORMTYPE_UVEC3ARRAY\n\t[\"array<vec3b>\", \"array<vec3<bool>>\"],\n\t// UNIFORMTYPE_BVEC3ARRAY\n\t[\"array<vec4i>\", \"array<vec4<i32>>\"],\n\t// UNIFORMTYPE_IVEC4ARRAY\n\t[\"array<vec4u>\", \"array<vec4<u32>>\"],\n\t// UNIFORMTYPE_UVEC4ARRAY\n\t[\"array<vec4b>\", \"array<vec4<bool>>\"],\n\t// UNIFORMTYPE_BVEC4ARRAY\n\t// Integer texture types\n\t[\"texture_2d<i32>\"],\n\t// UNIFORMTYPE_ITEXTURE2D\n\t[\"texture_2d<u32>\"],\n\t// UNIFORMTYPE_UTEXTURE2D\n\t[\"texture_cube<i32>\"],\n\t// UNIFORMTYPE_ITEXTURECUBE\n\t[\"texture_cube<u32>\"],\n\t// UNIFORMTYPE_UTEXTURECUBE\n\t[\"texture_3d<i32>\"],\n\t// UNIFORMTYPE_ITEXTURE3D\n\t[\"texture_3d<u32>\"],\n\t// UNIFORMTYPE_UTEXTURE3D\n\t[\"texture_2d_array<i32>\"],\n\t// UNIFORMTYPE_ITEXTURE2D_ARRAY\n\t[\"texture_2d_array<u32>\"]\n\t// UNIFORMTYPE_UTEXTURE2D_ARRAY\n];\nvar uniformTypeToNameMapWGSL = /* @__PURE__ */ new Map();\nuniformTypeToNameWGSL.forEach((names, index) => {\n\tnames.forEach((name) => uniformTypeToNameMapWGSL.set(name, index));\n});\nvar uniformTypeToStorage = new Uint8Array([\n\tTYPE_INT32,\n\t// UNIFORMTYPE_BOOL\n\tTYPE_INT32,\n\t// UNIFORMTYPE_INT\n\tTYPE_FLOAT32,\n\t// UNIFORMTYPE_FLOAT\n\tTYPE_FLOAT32,\n\t// UNIFORMTYPE_VEC2\n\tTYPE_FLOAT32,\n\t// UNIFORMTYPE_VEC3\n\tTYPE_FLOAT32,\n\t// UNIFORMTYPE_VEC4\n\tTYPE_INT32,\n\t// UNIFORMTYPE_IVEC2\n\tTYPE_INT32,\n\t// UNIFORMTYPE_IVEC3\n\tTYPE_INT32,\n\t// UNIFORMTYPE_IVEC4\n\tTYPE_INT32,\n\t// UNIFORMTYPE_BVEC2\n\tTYPE_INT32,\n\t// UNIFORMTYPE_BVEC3\n\tTYPE_INT32,\n\t// UNIFORMTYPE_BVEC4\n\tTYPE_FLOAT32,\n\t// UNIFORMTYPE_MAT2\n\tTYPE_FLOAT32,\n\t// UNIFORMTYPE_MAT3\n\tTYPE_FLOAT32,\n\t// UNIFORMTYPE_MAT4\n\tTYPE_INT32,\n\t// UNIFORMTYPE_TEXTURE2D\n\tTYPE_INT32,\n\t// UNIFORMTYPE_TEXTURECUBE\n\tTYPE_FLOAT32,\n\t// UNIFORMTYPE_FLOATARRAY\n\tTYPE_INT32,\n\t// UNIFORMTYPE_TEXTURE2D_SHADOW\n\tTYPE_INT32,\n\t// UNIFORMTYPE_TEXTURECUBE_SHADOW\n\tTYPE_INT32,\n\t// UNIFORMTYPE_TEXTURE3D\n\tTYPE_FLOAT32,\n\t// UNIFORMTYPE_VEC2ARRAY\n\tTYPE_FLOAT32,\n\t// UNIFORMTYPE_VEC3ARRAY\n\tTYPE_FLOAT32,\n\t// UNIFORMTYPE_VEC4ARRAY\n\tTYPE_FLOAT32,\n\t// UNIFORMTYPE_MAT4ARRAY\n\tTYPE_INT32,\n\t// UNIFORMTYPE_TEXTURE2D_ARRAY\n\tTYPE_UINT32,\n\t// UNIFORMTYPE_UINT\n\tTYPE_UINT32,\n\t// UNIFORMTYPE_UVEC2\n\tTYPE_UINT32,\n\t// UNIFORMTYPE_UVEC3\n\tTYPE_UINT32,\n\t// UNIFORMTYPE_UVEC4\n\tTYPE_INT32,\n\t// UNIFORMTYPE_INTARRAY\n\tTYPE_UINT32,\n\t// UNIFORMTYPE_UINTARRAY\n\tTYPE_INT32,\n\t// UNIFORMTYPE_BOOLARRAY\n\tTYPE_INT32,\n\t// UNIFORMTYPE_IVEC2ARRAY\n\tTYPE_UINT32,\n\t// UNIFORMTYPE_UVEC2ARRAY\n\tTYPE_INT32,\n\t// UNIFORMTYPE_BVEC2ARRAY\n\tTYPE_INT32,\n\t// UNIFORMTYPE_IVEC3ARRAY\n\tTYPE_UINT32,\n\t// UNIFORMTYPE_UVEC3ARRAY\n\tTYPE_INT32,\n\t// UNIFORMTYPE_BVEC3ARRAY\n\tTYPE_INT32,\n\t// UNIFORMTYPE_IVEC4ARRAY\n\tTYPE_UINT32,\n\t// UNIFORMTYPE_UVEC4ARRAY\n\tTYPE_INT32,\n\t// UNIFORMTYPE_BVEC4ARRAY\n\tTYPE_INT32,\n\t// UNIFORMTYPE_ITEXTURE2D\n\tTYPE_UINT32,\n\t// UNIFORMTYPE_UTEXTURE2D\n\tTYPE_INT32,\n\t// UNIFORMTYPE_ITEXTURECUBE\n\tTYPE_UINT32,\n\t// UNIFORMTYPE_UTEXTURECUBE\n\tTYPE_INT32,\n\t// UNIFORMTYPE_ITEXTURE3D\n\tTYPE_UINT32,\n\t// UNIFORMTYPE_UTEXTURE3D\n\tTYPE_INT32,\n\t// UNIFORMTYPE_ITEXTURE2D_ARRAY\n\tTYPE_UINT32\n\t// UNIFORMTYPE_UTEXTURE2D_ARRAY\n]);\nvar DEVICETYPE_WEBGL2 = \"webgl2\";\nvar DEVICETYPE_WEBGPU = \"webgpu\";\nvar DEVICETYPE_WEBGPU_BARE = \"webgpu:bare\";\nvar DEVICETYPE_NULL = \"null\";\nvar SHADERSTAGE_VERTEX = 1;\nvar SHADERSTAGE_FRAGMENT = 2;\nvar SHADERSTAGE_COMPUTE = 4;\nvar DISPLAYFORMAT_LDR = \"ldr\";\nvar DISPLAYFORMAT_LDR_SRGB = \"ldr_srgb\";\nvar DISPLAYFORMAT_HDR = \"hdr\";\nvar TEXPROPERTY_MIN_FILTER = 1;\nvar TEXPROPERTY_MAG_FILTER = 2;\nvar TEXPROPERTY_ADDRESS_U = 4;\nvar TEXPROPERTY_ADDRESS_V = 8;\nvar TEXPROPERTY_ADDRESS_W = 16;\nvar TEXPROPERTY_COMPARE_ON_READ = 32;\nvar TEXPROPERTY_COMPARE_FUNC = 64;\nvar TEXPROPERTY_ANISOTROPY = 128;\nvar TEXPROPERTY_ALL = 255;\nvar BINDGROUP_VIEW = 0;\nvar BINDGROUP_MESH = 1;\nvar BINDGROUP_MESH_UB = 2;\nvar bindGroupNames = [\"view\", \"mesh\", \"mesh_ub\"];\nvar UNIFORM_BUFFER_DEFAULT_SLOT_NAME = \"default\";\nvar UNUSED_UNIFORM_NAME = \"_unused_float_uniform\";\nvar typedArrayTypes = [Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Uint16Array];\nvar typedArrayTypesByteSize = [1, 1, 2, 2, 4, 4, 4, 2];\nvar vertexTypesNames = [\"INT8\", \"UINT8\", \"INT16\", \"UINT16\", \"INT32\", \"UINT32\", \"FLOAT32\", \"FLOAT16\"];\nvar typedArrayToType = {\n\t\"Int8Array\": TYPE_INT8,\n\t\"Uint8Array\": TYPE_UINT8,\n\t\"Int16Array\": TYPE_INT16,\n\t\"Uint16Array\": TYPE_UINT16,\n\t\"Int32Array\": TYPE_INT32,\n\t\"Uint32Array\": TYPE_UINT32,\n\t\"Float32Array\": TYPE_FLOAT32\n};\nvar typedArrayIndexFormats = [Uint8Array, Uint16Array, Uint32Array];\nvar typedArrayIndexFormatsByteSize = [1, 2, 4];\nvar primitiveGlslToWgslTypeMap = /* @__PURE__ */ new Map([\n\t// floating-point\n\t[\"float\", \"f32\"],\n\t[\"vec2\", \"vec2f\"],\n\t[\"vec3\", \"vec3f\"],\n\t[\"vec4\", \"vec4f\"],\n\t// signed integer\n\t[\"int\", \"i32\"],\n\t[\"ivec2\", \"vec2i\"],\n\t[\"ivec3\", \"vec3i\"],\n\t[\"ivec4\", \"vec4i\"],\n\t// unsigned integer\n\t[\"uint\", \"u32\"],\n\t[\"uvec2\", \"vec2u\"],\n\t[\"uvec3\", \"vec3u\"],\n\t[\"uvec4\", \"vec4u\"]\n]);\nvar semanticToLocation = {};\nsemanticToLocation[SEMANTIC_POSITION] = 0;\nsemanticToLocation[SEMANTIC_NORMAL] = 1;\nsemanticToLocation[SEMANTIC_BLENDWEIGHT] = 2;\nsemanticToLocation[SEMANTIC_BLENDINDICES] = 3;\nsemanticToLocation[SEMANTIC_COLOR] = 4;\nsemanticToLocation[SEMANTIC_TEXCOORD0] = 5;\nsemanticToLocation[SEMANTIC_TEXCOORD1] = 6;\nsemanticToLocation[SEMANTIC_TEXCOORD2] = 7;\nsemanticToLocation[SEMANTIC_TEXCOORD3] = 8;\nsemanticToLocation[SEMANTIC_TEXCOORD4] = 9;\nsemanticToLocation[SEMANTIC_TEXCOORD5] = 10;\nsemanticToLocation[SEMANTIC_TEXCOORD6] = 11;\nsemanticToLocation[SEMANTIC_TEXCOORD7] = 12;\nsemanticToLocation[SEMANTIC_TANGENT] = 13;\nsemanticToLocation[SEMANTIC_ATTR0] = 0;\nsemanticToLocation[SEMANTIC_ATTR1] = 1;\nsemanticToLocation[SEMANTIC_ATTR2] = 2;\nsemanticToLocation[SEMANTIC_ATTR3] = 3;\nsemanticToLocation[SEMANTIC_ATTR4] = 4;\nsemanticToLocation[SEMANTIC_ATTR5] = 5;\nsemanticToLocation[SEMANTIC_ATTR6] = 6;\nsemanticToLocation[SEMANTIC_ATTR7] = 7;\nsemanticToLocation[SEMANTIC_ATTR8] = 8;\nsemanticToLocation[SEMANTIC_ATTR9] = 9;\nsemanticToLocation[SEMANTIC_ATTR10] = 10;\nsemanticToLocation[SEMANTIC_ATTR11] = 11;\nsemanticToLocation[SEMANTIC_ATTR12] = 12;\nsemanticToLocation[SEMANTIC_ATTR13] = 13;\nsemanticToLocation[SEMANTIC_ATTR14] = 14;\nsemanticToLocation[SEMANTIC_ATTR15] = 15;\n\nvar warnInsecureContext = (feature) => {\n\tif (typeof window === \"undefined\") return;\n\tif (window.isSecureContext !== false) return;\n};\n\nvar id = 0;\nvar BindBaseFormat = class {\n\tslot = -1;\n\tscopeId = null;\n\tconstructor(name, visibility) {\n\t\tthis.name = name;\n\t\tthis.visibility = visibility;\n\t}\n};\nvar BindUniformBufferFormat = class extends BindBaseFormat {\n};\nvar BindStorageBufferFormat = class extends BindBaseFormat {\n\tformat = \"\";\n\tconstructor(name, visibility, readOnly = false) {\n\t\tsuper(name, visibility);\n\t\tthis.readOnly = readOnly;\n\t}\n};\nvar BindTextureFormat = class extends BindBaseFormat {\n\tsamplerName = null;\n\thasSampler;\n\tmultisampled;\n\tconstructor(name, visibility, textureDimension = TEXTUREDIMENSION_2D, sampleType = SAMPLETYPE_FLOAT, hasSampler = true, samplerName = null, multisampled = false) {\n\t\tsuper(name, visibility);\n\t\tthis.textureDimension = textureDimension;\n\t\tthis.multisampled = multisampled;\n\t\tthis.hasSampler = multisampled ? false : hasSampler;\n\t\tthis.samplerName = multisampled ? null : samplerName ?? `${name}_sampler`;\n\t\tthis.sampleType = multisampled && sampleType === SAMPLETYPE_FLOAT ? SAMPLETYPE_UNFILTERABLE_FLOAT : sampleType;\n\t\tif (multisampled) {\n\t\t}\n\t}\n};\nvar BindStorageTextureFormat = class extends BindBaseFormat {\n\tconstructor(name, format = PIXELFORMAT_RGBA8, textureDimension = TEXTUREDIMENSION_2D, write = true, read = false) {\n\t\tsuper(name, SHADERSTAGE_COMPUTE);\n\t\tthis.format = format;\n\t\tthis.textureDimension = textureDimension;\n\t\tthis.write = write;\n\t\tthis.read = read;\n\t}\n};\nvar BindGroupFormat = class {\n\tuniformBufferFormats = [];\n\ttextureFormats = [];\n\tstorageTextureFormats = [];\n\tstorageBufferFormats = [];\n\tconstructor(graphicsDevice, formats) {\n\t\tthis.id = id++;\n\t\tlet slot = 0;\n\t\tformats.forEach((format) => {\n\t\t\tformat.slot = slot++;\n\t\t\tif (format instanceof BindTextureFormat && format.hasSampler) {\n\t\t\t\tslot++;\n\t\t\t}\n\t\t\tif (format instanceof BindUniformBufferFormat) {\n\t\t\t\tthis.uniformBufferFormats.push(format);\n\t\t\t} else if (format instanceof BindTextureFormat) {\n\t\t\t\tthis.textureFormats.push(format);\n\t\t\t} else if (format instanceof BindStorageTextureFormat) {\n\t\t\t\tthis.storageTextureFormats.push(format);\n\t\t\t} else if (format instanceof BindStorageBufferFormat) {\n\t\t\t\tthis.storageBufferFormats.push(format);\n\t\t\t} else {\n\t\t\t}\n\t\t});\n\t\tthis.device = graphicsDevice;\n\t\tconst scope = graphicsDevice.scope;\n\t\tthis.bufferFormatsMap = /* @__PURE__ */ new Map();\n\t\tthis.uniformBufferFormats.forEach((bf, i2) => this.bufferFormatsMap.set(bf.name, i2));\n\t\tthis.textureFormatsMap = /* @__PURE__ */ new Map();\n\t\tthis.textureFormats.forEach((tf, i2) => {\n\t\t\tthis.textureFormatsMap.set(tf.name, i2);\n\t\t\ttf.scopeId = scope.resolve(tf.name);\n\t\t});\n\t\tthis.storageTextureFormatsMap = /* @__PURE__ */ new Map();\n\t\tthis.storageTextureFormats.forEach((tf, i2) => {\n\t\t\tthis.storageTextureFormatsMap.set(tf.name, i2);\n\t\t\ttf.scopeId = scope.resolve(tf.name);\n\t\t});\n\t\tthis.storageBufferFormatsMap = /* @__PURE__ */ new Map();\n\t\tthis.storageBufferFormats.forEach((bf, i2) => {\n\t\t\tthis.storageBufferFormatsMap.set(bf.name, i2);\n\t\t\tbf.scopeId = scope.resolve(bf.name);\n\t\t});\n\t\tthis.impl = graphicsDevice.createBindGroupFormatImpl(this);\n\t}\n\tdestroy() {\n\t\tthis.impl.destroy();\n\t}\n\tgetTexture(name) {\n\t\tconst index = this.textureFormatsMap.get(name);\n\t\tif (index !== void 0) {\n\t\t\treturn this.textureFormats[index];\n\t\t}\n\t\treturn null;\n\t}\n\tgetStorageTexture(name) {\n\t\tconst index = this.storageTextureFormatsMap.get(name);\n\t\tif (index !== void 0) {\n\t\t\treturn this.storageTextureFormats[index];\n\t\t}\n\t\treturn null;\n\t}\n\tloseContext() {\n\t}\n};\n\nvar DeviceCache = class {\n\t_cache = /* @__PURE__ */ new Map();\n\tget(device, onCreate) {\n\t\tif (!this._cache.has(device)) {\n\t\t\tthis._cache.set(device, onCreate());\n\t\t\tdevice.on(\"destroy\", () => {\n\t\t\t\tthis.remove(device);\n\t\t\t});\n\t\t\tdevice.on(\"devicelost\", () => {\n\t\t\t\tthis._cache.get(device)?.loseContext?.(device);\n\t\t\t});\n\t\t}\n\t\treturn this._cache.get(device);\n\t}\n\tremove(device) {\n\t\tthis._cache.get(device)?.destroy?.(device);\n\t\tthis._cache.delete(device);\n\t}\n};\n\nvar TextureUtils = class _TextureUtils {\n\tstatic calcLevelDimension(dimension, mipLevel) {\n\t\treturn Math.max(dimension >> mipLevel, 1);\n\t}\n\tstatic calcMipLevelsCount(width, height, depth = 1) {\n\t\treturn 1 + Math.floor(Math.log2(Math.max(width, height, depth)));\n\t}\n\tstatic calcLevelGpuSize(width, height, depth, format) {\n\t\tconst formatInfo = pixelFormatInfo.get(format);\n\t\tconst pixelSize = pixelFormatInfo.get(format)?.size ?? 0;\n\t\tif (pixelSize > 0) {\n\t\t\treturn width * height * depth * pixelSize;\n\t\t}\n\t\tconst blockSize = formatInfo.blockSize ?? 0;\n\t\tlet blockWidth = Math.floor((width + 3) / 4);\n\t\tconst blockHeight = Math.floor((height + 3) / 4);\n\t\tconst blockDepth = Math.floor((depth + 3) / 4);\n\t\tif (format === PIXELFORMAT_PVRTC_2BPP_RGB_1 || format === PIXELFORMAT_PVRTC_2BPP_RGBA_1) {\n\t\t\tblockWidth = Math.max(Math.floor(blockWidth / 2), 1);\n\t\t}\n\t\treturn blockWidth * blockHeight * blockDepth * blockSize;\n\t}\n\tstatic calcGpuSize(width, height, depth, format, mipmaps, cubemap) {\n\t\tlet result = 0;\n\t\twhile (1) {\n\t\t\tresult += _TextureUtils.calcLevelGpuSize(width, height, depth, format);\n\t\t\tif (!mipmaps || width === 1 && height === 1 && depth === 1) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\twidth = Math.max(width >> 1, 1);\n\t\t\theight = Math.max(height >> 1, 1);\n\t\t\tdepth = Math.max(depth >> 1, 1);\n\t\t}\n\t\treturn result * (cubemap ? 6 : 1);\n\t}\n\tstatic calcTextureSize(count, result, widthMultiple = 1) {\n\t\tlet width = Math.ceil(Math.sqrt(count));\n\t\tif (widthMultiple > 1) {\n\t\t\twidth = math.roundUp(width, widthMultiple);\n\t\t}\n\t\treturn result.set(width, Math.ceil(count / width));\n\t}\n};\n\nvar StringIds = class {\n\tmap = /* @__PURE__ */ new Map();\n\tid = 0;\n\tget(name) {\n\t\tlet value = this.map.get(name);\n\t\tif (value === void 0) {\n\t\t\tvalue = this.id++;\n\t\t\tthis.map.set(name, value);\n\t\t}\n\t\treturn value;\n\t}\n};\n\nvar stringIds = new StringIds();\nvar TextureView = class {\n\ttexture;\n\tbaseMipLevel;\n\tmipLevelCount;\n\tbaseArrayLayer;\n\tarrayLayerCount;\n\tkey;\n\tconstructor(texture, baseMipLevel = 0, mipLevelCount = 1, baseArrayLayer = 0, arrayLayerCount = 1) {\n\t\tthis.texture = texture;\n\t\tthis.baseMipLevel = baseMipLevel;\n\t\tthis.mipLevelCount = mipLevelCount;\n\t\tthis.baseArrayLayer = baseArrayLayer;\n\t\tthis.arrayLayerCount = arrayLayerCount;\n\t\tthis.key = stringIds.get(`${baseMipLevel}:${mipLevelCount}:${baseArrayLayer}:${arrayLayerCount}`);\n\t}\n};\n\nvar id2 = 0;\nvar Texture = class _Texture {\n\tstatic createDataTexture2D(graphicsDevice, name, width, height, format, levels) {\n\t\treturn new _Texture(graphicsDevice, {\n\t\t\tname,\n\t\t\twidth,\n\t\t\theight,\n\t\t\tformat,\n\t\t\tmipmaps: false,\n\t\t\tminFilter: FILTER_NEAREST,\n\t\t\tmagFilter: FILTER_NEAREST,\n\t\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE,\n\t\t\tlevels\n\t\t});\n\t}\n\tname;\n\t_gpuSize = 0;\n\treleaseSourceAfterUpload = false;\n\tid = id2++;\n\t_invalid = false;\n\t_lockedLevel = -1;\n\t_lockedMode = TEXTURELOCK_NONE;\n\trenderVersionDirty = 0;\n\tuploadVersion = 0;\n\t_storage = false;\n\t_samples = 1;\n\t_numLevels = 0;\n\t_numLevelsRequested;\n\tconstructor(graphicsDevice, options2 = {}) {\n\t\tthis.device = graphicsDevice;\n\t\tthis.name = options2.name ?? \"\";\n\t\tthis._width = Math.floor(options2.width ?? 4);\n\t\tthis._height = Math.floor(options2.height ?? 4);\n\t\tconst format = options2.format ?? PIXELFORMAT_RGBA8;\n\t\tthis._format = options2.srgb ? pixelFormatLinearToGamma(format) : format;\n\t\tthis._compressed = isCompressedPixelFormat(this._format);\n\t\tthis._integerFormat = isIntegerPixelFormat(this._format);\n\t\tif (this._integerFormat) {\n\t\t\toptions2.minFilter = FILTER_NEAREST;\n\t\t\toptions2.magFilter = FILTER_NEAREST;\n\t\t}\n\t\tthis._volume = options2.volume ?? false;\n\t\tthis._depth = Math.floor(options2.depth ?? 1);\n\t\tthis._arrayLength = Math.floor(options2.arrayLength ?? 0);\n\t\tthis._storage = options2.storage ?? false;\n\t\tthis._cubemap = options2.cubemap ?? false;\n\t\tthis._flipY = options2.flipY ?? false;\n\t\tthis._premultiplyAlpha = options2.premultiplyAlpha ?? false;\n\t\tconst requestedSamples = options2.samples ?? 1;\n\t\tif (requestedSamples > 1) {\n\t\t\tif (graphicsDevice.isWebGPU) {\n\t\t\t\tthis._samples = graphicsDevice.maxSamples;\n\t\t\t} else {\n\t\t\t}\n\t\t}\n\t\tthis._mipmaps = (options2.mipmaps ?? true) && this._samples === 1;\n\t\tthis._numLevelsRequested = options2.numLevels;\n\t\tif (options2.numLevels !== void 0) {\n\t\t\tthis._numLevels = options2.numLevels;\n\t\t}\n\t\tthis._updateNumLevels();\n\t\tthis._minFilter = options2.minFilter ?? FILTER_LINEAR_MIPMAP_LINEAR;\n\t\tthis._magFilter = options2.magFilter ?? FILTER_LINEAR;\n\t\tthis._anisotropy = options2.anisotropy ?? 1;\n\t\tthis._addressU = options2.addressU ?? ADDRESS_REPEAT;\n\t\tthis._addressV = options2.addressV ?? ADDRESS_REPEAT;\n\t\tthis._addressW = options2.addressW ?? ADDRESS_REPEAT;\n\t\tthis._compareOnRead = options2.compareOnRead ?? false;\n\t\tthis._compareFunc = options2.compareFunc ?? FUNC_LESS;\n\t\tthis._type = options2.type ?? TEXTURETYPE_DEFAULT;\n\t\tthis.projection = TEXTUREPROJECTION_NONE;\n\t\tif (this._cubemap) {\n\t\t\tthis.projection = TEXTUREPROJECTION_CUBE;\n\t\t} else if (options2.projection && options2.projection !== TEXTUREPROJECTION_CUBE) {\n\t\t\tthis.projection = options2.projection;\n\t\t}\n\t\tthis._levels = options2.levels;\n\t\tconst upload = !!options2.levels;\n\t\tif (!this._levels) {\n\t\t\tthis._clearLevels();\n\t\t}\n\t\tthis.recreateImpl(upload);\n\t\tif (this._samples > 1) {\n\t\t\tthis._gpuSize = this.gpuSize;\n\t\t\tthis.adjustVramSizeTracking(graphicsDevice._vram, this._gpuSize);\n\t\t}\n\t}\n\tdestroy() {\n\t\tconst device = this.device;\n\t\tif (device) {\n\t\t\tdevice.onTextureDestroyed(this);\n\t\t\tthis.impl.destroy(device);\n\t\t\tthis.adjustVramSizeTracking(device._vram, -this._gpuSize);\n\t\t\tif (this.releaseSourceAfterUpload) {\n\t\t\t\tthis.releaseImageSources();\n\t\t\t}\n\t\t\tthis._levels = null;\n\t\t\tthis.device = null;\n\t\t}\n\t}\n\treleaseImageSources() {\n\t\tthis.releaseSourceAfterUpload = false;\n\t\tif (typeof ImageBitmap === \"undefined\" || !this._levels) {\n\t\t\treturn;\n\t\t}\n\t\tfor (let i2 = 0; i2 < this._levels.length; i2++) {\n\t\t\tconst level = this._levels[i2];\n\t\t\tif (level instanceof ImageBitmap) {\n\t\t\t\tlevel.close();\n\t\t\t\tthis._levels[i2] = null;\n\t\t\t} else if (Array.isArray(level)) {\n\t\t\t\tfor (let j = 0; j < level.length; j++) {\n\t\t\t\t\tif (level[j] instanceof ImageBitmap) {\n\t\t\t\t\t\tlevel[j].close();\n\t\t\t\t\t\tlevel[j] = null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tsetReleaseSourceAfterUpload() {\n\t\tthis.releaseSourceAfterUpload = true;\n\t\tif (!this._needsUpload && !this._needsMipmapsUpload) {\n\t\t\tthis.releaseImageSources();\n\t\t}\n\t}\n\trecreateImpl(upload = true) {\n\t\tconst { device } = this;\n\t\tthis.impl?.destroy(device);\n\t\tthis.impl = null;\n\t\tthis.impl = device.createTextureImpl(this);\n\t\tthis.dirtyAll();\n\t\tif (upload) {\n\t\t\tthis.upload();\n\t\t}\n\t}\n\t_clearLevels() {\n\t\tthis._levels = this._cubemap ? [[null, null, null, null, null, null]] : [null];\n\t}\n\tresize(width, height, depth = 1) {\n\t\tif (this.width !== width || this.height !== height || this.depth !== depth) {\n\t\t\tconst device = this.device;\n\t\t\tthis.adjustVramSizeTracking(device._vram, -this._gpuSize);\n\t\t\tthis._gpuSize = 0;\n\t\t\tthis.impl.destroy(device);\n\t\t\tthis._clearLevels();\n\t\t\tthis._width = Math.floor(width);\n\t\t\tthis._height = Math.floor(height);\n\t\t\tthis._depth = Math.floor(depth);\n\t\t\tthis._updateNumLevels();\n\t\t\tthis.impl = device.createTextureImpl(this);\n\t\t\tthis.dirtyAll();\n\t\t\tif (this._samples > 1) {\n\t\t\t\tthis._gpuSize = this.gpuSize;\n\t\t\t\tthis.adjustVramSizeTracking(device._vram, this._gpuSize);\n\t\t\t}\n\t\t}\n\t}\n\tloseContext() {\n\t\tthis.impl.loseContext();\n\t\tthis.dirtyAll();\n\t}\n\tadjustVramSizeTracking(vram, size) {\n\t\tvram.tex += size;\n\t}\n\tpropertyChanged(flag) {\n\t\tthis.impl.propertyChanged(flag);\n\t\tthis.renderVersionDirty = this.device.renderVersion;\n\t}\n\t_updateNumLevels() {\n\t\tconst maxLevels = this.mipmaps ? TextureUtils.calcMipLevelsCount(this.width, this.height) : 1;\n\t\tconst requestedLevels = this._numLevelsRequested;\n\t\tif (requestedLevels !== void 0 && requestedLevels > maxLevels) {\n\t\t}\n\t\tthis._numLevels = Math.min(requestedLevels ?? maxLevels, maxLevels);\n\t\tthis._mipmaps = this._numLevels > 1;\n\t}\n\tget lockedMode() {\n\t\treturn this._lockedMode;\n\t}\n\tset minFilter(v6) {\n\t\tif (this._minFilter !== v6) {\n\t\t\tif (isIntegerPixelFormat(this._format)) {\n\t\t\t} else {\n\t\t\t\tthis._minFilter = v6;\n\t\t\t\tthis.propertyChanged(TEXPROPERTY_MIN_FILTER);\n\t\t\t}\n\t\t}\n\t}\n\tget minFilter() {\n\t\treturn this._minFilter;\n\t}\n\tset magFilter(v6) {\n\t\tif (this._magFilter !== v6) {\n\t\t\tif (isIntegerPixelFormat(this._format)) {\n\t\t\t} else {\n\t\t\t\tthis._magFilter = v6;\n\t\t\t\tthis.propertyChanged(TEXPROPERTY_MAG_FILTER);\n\t\t\t}\n\t\t}\n\t}\n\tget magFilter() {\n\t\treturn this._magFilter;\n\t}\n\tset addressU(v6) {\n\t\tif (this._addressU !== v6) {\n\t\t\tthis._addressU = v6;\n\t\t\tthis.propertyChanged(TEXPROPERTY_ADDRESS_U);\n\t\t}\n\t}\n\tget addressU() {\n\t\treturn this._addressU;\n\t}\n\tset addressV(v6) {\n\t\tif (this._addressV !== v6) {\n\t\t\tthis._addressV = v6;\n\t\t\tthis.propertyChanged(TEXPROPERTY_ADDRESS_V);\n\t\t}\n\t}\n\tget addressV() {\n\t\treturn this._addressV;\n\t}\n\tset addressW(addressW) {\n\t\tif (!this._volume) {\n\t\t\treturn;\n\t\t}\n\t\tif (addressW !== this._addressW) {\n\t\t\tthis._addressW = addressW;\n\t\t\tthis.propertyChanged(TEXPROPERTY_ADDRESS_W);\n\t\t}\n\t}\n\tget addressW() {\n\t\treturn this._addressW;\n\t}\n\tset compareOnRead(v6) {\n\t\tif (this._compareOnRead !== v6) {\n\t\t\tthis._compareOnRead = v6;\n\t\t\tthis.propertyChanged(TEXPROPERTY_COMPARE_ON_READ);\n\t\t}\n\t}\n\tget compareOnRead() {\n\t\treturn this._compareOnRead;\n\t}\n\tset compareFunc(v6) {\n\t\tif (this._compareFunc !== v6) {\n\t\t\tthis._compareFunc = v6;\n\t\t\tthis.propertyChanged(TEXPROPERTY_COMPARE_FUNC);\n\t\t}\n\t}\n\tget compareFunc() {\n\t\treturn this._compareFunc;\n\t}\n\tset anisotropy(v6) {\n\t\tif (this._anisotropy !== v6) {\n\t\t\tthis._anisotropy = v6;\n\t\t\tthis.propertyChanged(TEXPROPERTY_ANISOTROPY);\n\t\t}\n\t}\n\tget anisotropy() {\n\t\treturn this._anisotropy;\n\t}\n\tset mipmaps(v6) {\n\t\tif (this._mipmaps !== v6) {\n\t\t\tif (isIntegerPixelFormat(this._format)) {\n\t\t\t} else {\n\t\t\t\tconst oldMipmaps = this._mipmaps;\n\t\t\t\tconst oldNumLevels = this._numLevels;\n\t\t\t\tthis._mipmaps = v6;\n\t\t\t\tthis._updateNumLevels();\n\t\t\t\tif ((this.array || this.device.isWebGPU) && this._numLevels !== oldNumLevels) {\n\t\t\t\t\tthis.recreateImpl();\n\t\t\t\t} else if (this._mipmaps !== oldMipmaps) {\n\t\t\t\t\tthis.propertyChanged(TEXPROPERTY_MIN_FILTER);\n\t\t\t\t\tif (this._mipmaps) {\n\t\t\t\t\t\tthis._needsMipmapsUpload = true;\n\t\t\t\t\t\tthis.device?.texturesToUpload?.add(this);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis._needsMipmapsUpload = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tget mipmaps() {\n\t\treturn this._mipmaps;\n\t}\n\tget numLevels() {\n\t\treturn this._numLevels;\n\t}\n\tget storage() {\n\t\treturn this._storage;\n\t}\n\tget samples() {\n\t\treturn this._samples;\n\t}\n\tget width() {\n\t\treturn this._width;\n\t}\n\tget height() {\n\t\treturn this._height;\n\t}\n\tget depth() {\n\t\treturn this._depth;\n\t}\n\tget format() {\n\t\treturn this._format;\n\t}\n\tget cubemap() {\n\t\treturn this._cubemap;\n\t}\n\tget gpuSize() {\n\t\tconst mips = this._mipmaps && !(this._compressed && this._levels.length === 1);\n\t\treturn TextureUtils.calcGpuSize(this._width, this._height, this._depth, this._format, mips, this._cubemap) * this._samples;\n\t}\n\tget array() {\n\t\treturn this._arrayLength > 0;\n\t}\n\tget arrayLength() {\n\t\treturn this._arrayLength;\n\t}\n\tget volume() {\n\t\treturn this._volume;\n\t}\n\tset type(value) {\n\t\tif (this._type !== value) {\n\t\t\tthis._type = value;\n\t\t\tthis.device._shadersDirty = true;\n\t\t}\n\t}\n\tget type() {\n\t\treturn this._type;\n\t}\n\tset rgbm(value) {\n\t\tthis.type = value ? TEXTURETYPE_RGBM : TEXTURETYPE_DEFAULT;\n\t}\n\tget rgbm() {\n\t\treturn this.type === TEXTURETYPE_RGBM;\n\t}\n\tset swizzleGGGR(value) {\n\t\tthis.type = value ? TEXTURETYPE_SWIZZLEGGGR : TEXTURETYPE_DEFAULT;\n\t}\n\tget swizzleGGGR() {\n\t\treturn this.type === TEXTURETYPE_SWIZZLEGGGR;\n\t}\n\tget _glTexture() {\n\t\treturn this.impl._glTexture;\n\t}\n\tset srgb(value) {\n\t\tconst currentSrgb = isSrgbPixelFormat(this.format);\n\t\tif (value !== currentSrgb) {\n\t\t\tif (value) {\n\t\t\t\tconst srgbFormat = pixelFormatLinearToGamma(this.format);\n\t\t\t\tif (this._format !== srgbFormat) {\n\t\t\t\t\tthis._format = srgbFormat;\n\t\t\t\t\tthis.recreateImpl();\n\t\t\t\t\tthis.device._shadersDirty = true;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst linearFormat = pixelFormatGammaToLinear(this.format);\n\t\t\t\tif (this._format !== linearFormat) {\n\t\t\t\t\tthis._format = linearFormat;\n\t\t\t\t\tthis.recreateImpl();\n\t\t\t\t\tthis.device._shadersDirty = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tget srgb() {\n\t\treturn isSrgbPixelFormat(this.format);\n\t}\n\tset flipY(flipY) {\n\t\tif (this._flipY !== flipY) {\n\t\t\tthis._flipY = flipY;\n\t\t\tthis.markForUpload();\n\t\t}\n\t}\n\tget flipY() {\n\t\treturn this._flipY;\n\t}\n\tset premultiplyAlpha(premultiplyAlpha) {\n\t\tif (this._premultiplyAlpha !== premultiplyAlpha) {\n\t\t\tthis._premultiplyAlpha = premultiplyAlpha;\n\t\t\tthis.markForUpload();\n\t\t}\n\t}\n\tget premultiplyAlpha() {\n\t\treturn this._premultiplyAlpha;\n\t}\n\tget pot() {\n\t\treturn math.powerOfTwo(this._width) && math.powerOfTwo(this._height);\n\t}\n\t// get the texture's encoding type\n\tget encoding() {\n\t\tswitch (this.type) {\n\t\t\tcase TEXTURETYPE_RGBM:\n\t\t\t\treturn \"rgbm\";\n\t\t\tcase TEXTURETYPE_RGBE:\n\t\t\t\treturn \"rgbe\";\n\t\t\tcase TEXTURETYPE_RGBP:\n\t\t\t\treturn \"rgbp\";\n\t\t}\n\t\treturn requiresManualGamma(this.format) ? \"srgb\" : \"linear\";\n\t}\n\t// Force a full resubmission of the texture to the GPU (used on a context restore event)\n\tdirtyAll() {\n\t\tthis._levelsUpdated = this._cubemap ? [[true, true, true, true, true, true]] : [true];\n\t\tthis.markForUpload();\n\t\tthis._needsMipmapsUpload = this._mipmaps;\n\t\tthis._mipmapsUploaded = false;\n\t\tthis.propertyChanged(TEXPROPERTY_ALL);\n\t}\n\tlock(options2 = {}) {\n\t\toptions2.level ?? (options2.level = 0);\n\t\toptions2.face ?? (options2.face = 0);\n\t\toptions2.mode ?? (options2.mode = TEXTURELOCK_WRITE);\n\t\tthis._lockedMode = options2.mode;\n\t\tthis._lockedLevel = options2.level;\n\t\tconst levels = this.cubemap ? this._levels[options2.face] : this._levels;\n\t\tif (!levels[options2.level]) {\n\t\t\tconst width = Math.max(1, this._width >> options2.level);\n\t\t\tconst height = Math.max(1, this._height >> options2.level);\n\t\t\tconst depth = Math.max(1, this._depth >> options2.level);\n\t\t\tconst data2 = new ArrayBuffer(TextureUtils.calcLevelGpuSize(width, height, depth, this._format));\n\t\t\tlevels[options2.level] = new (getPixelFormatArrayType(this._format))(data2);\n\t\t}\n\t\treturn levels[options2.level];\n\t}\n\tsetSource(source, mipLevel = 0) {\n\t\tif (this.device._isHTMLElementInterface(source)) {\n\t\t\tif (!this.device.supportsHtmlTextures) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (this._cubemap || this._volume) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tlet invalid = false;\n\t\tlet width, height;\n\t\tif (this._cubemap) {\n\t\t\tif (source[0]) {\n\t\t\t\twidth = source[0].width || 0;\n\t\t\t\theight = source[0].height || 0;\n\t\t\t\tfor (let i2 = 0; i2 < 6; i2++) {\n\t\t\t\t\tconst face = source[i2];\n\t\t\t\t\tif (!face || // face is missing\n\t\t\t\t\tface.width !== width || // face is different width\n\t\t\t\t\tface.height !== height || // face is different height\n\t\t\t\t\t!this.device._isBrowserInterface(face)) {\n\t\t\t\t\t\tinvalid = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tinvalid = true;\n\t\t\t}\n\t\t\tif (!invalid) {\n\t\t\t\tfor (let i2 = 0; i2 < 6; i2++) {\n\t\t\t\t\tif (this._levels[mipLevel][i2] !== source[i2]) {\n\t\t\t\t\t\tthis._levelsUpdated[mipLevel][i2] = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif (!this.device._isBrowserInterface(source)) {\n\t\t\t\tinvalid = true;\n\t\t\t}\n\t\t\tif (!invalid) {\n\t\t\t\tif (source !== this._levels[mipLevel]) {\n\t\t\t\t\tthis._levelsUpdated[mipLevel] = true;\n\t\t\t\t}\n\t\t\t\tif (source instanceof HTMLVideoElement) {\n\t\t\t\t\twidth = source.videoWidth;\n\t\t\t\t\theight = source.videoHeight;\n\t\t\t\t} else if (this.device._isHTMLElementInterface(source)) {\n\t\t\t\t\tconst rect = source.getBoundingClientRect();\n\t\t\t\t\twidth = Math.floor(rect.width) || 1;\n\t\t\t\t\theight = Math.floor(rect.height) || 1;\n\t\t\t\t} else {\n\t\t\t\t\twidth = source.width;\n\t\t\t\t\theight = source.height;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (invalid) {\n\t\t\tthis._width = 4;\n\t\t\tthis._height = 4;\n\t\t\tif (this._cubemap) {\n\t\t\t\tfor (let i2 = 0; i2 < 6; i2++) {\n\t\t\t\t\tthis._levels[mipLevel][i2] = null;\n\t\t\t\t\tthis._levelsUpdated[mipLevel][i2] = true;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis._levels[mipLevel] = null;\n\t\t\t\tthis._levelsUpdated[mipLevel] = true;\n\t\t\t}\n\t\t} else {\n\t\t\tif (mipLevel === 0) {\n\t\t\t\tthis._width = width;\n\t\t\t\tthis._height = height;\n\t\t\t}\n\t\t\tthis._levels[mipLevel] = source;\n\t\t}\n\t\tif (this._invalid !== invalid || !invalid) {\n\t\t\tthis._invalid = invalid;\n\t\t\tthis.upload();\n\t\t}\n\t}\n\tgetSource(mipLevel = 0) {\n\t\treturn this._levels[mipLevel];\n\t}\n\tunlock() {\n\t\tif (this._lockedMode === TEXTURELOCK_NONE) {\n\t\t}\n\t\tif (this._lockedMode === TEXTURELOCK_WRITE) {\n\t\t\tthis.upload();\n\t\t}\n\t\tthis._lockedLevel = -1;\n\t\tthis._lockedMode = TEXTURELOCK_NONE;\n\t}\n\tmarkForUpload() {\n\t\tthis._needsUpload = true;\n\t\tif (this.device) {\n\t\t\tthis.uploadVersion = this.device.renderVersion;\n\t\t}\n\t\tthis.device?.texturesToUpload?.add(this);\n\t}\n\tupload() {\n\t\tthis.markForUpload();\n\t\tthis._needsMipmapsUpload = this._mipmaps;\n\t\tthis.impl.uploadImmediate?.(this.device, this);\n\t}\n\tread(x3, y2, width, height, options2 = {}) {\n\t\treturn this.impl.read?.(x3, y2, width, height, options2);\n\t}\n\twrite(x3, y2, width, height, data2) {\n\t\treturn this.impl.write?.(x3, y2, width, height, data2);\n\t}\n\t_validateCopy(source, options2) {\n\t\treturn true;\n\t}\n\tcopy(source, options2 = {}) {\n\t\tif (!this._validateCopy(source, options2)) {\n\t\t\treturn false;\n\t\t}\n\t\treturn this.impl.copy?.(source, options2) ?? true;\n\t}\n\tgetView(baseMipLevel = 0, mipLevelCount = 1, baseArrayLayer = 0, arrayLayerCount = 1) {\n\t\treturn new TextureView(this, baseMipLevel, mipLevelCount, baseArrayLayer, arrayLayerCount);\n\t}\n};\n\nvar textureData = {\n\twhite: [255, 255, 255, 255],\n\tgray: [128, 128, 128, 255],\n\tblack: [0, 0, 0, 255],\n\tnormal: [128, 128, 255, 255],\n\tpink: [255, 128, 255, 255]\n};\nvar BuiltInTextures = class {\n\tmap = /* @__PURE__ */ new Map();\n\tdestroy() {\n\t\tthis.map.forEach((texture) => {\n\t\t\ttexture.destroy();\n\t\t});\n\t}\n};\nvar deviceCache = new DeviceCache();\nvar getBuiltInTexture = (device, name) => {\n\tconst cache = deviceCache.get(device, () => {\n\t\treturn new BuiltInTextures();\n\t});\n\tif (!cache.map.has(name)) {\n\t\tconst texture = new Texture(device, {\n\t\t\tname: `built-in-texture-${name}`,\n\t\t\twidth: 1,\n\t\t\theight: 1,\n\t\t\tformat: PIXELFORMAT_RGBA8\n\t\t});\n\t\tconst pixels = texture.lock();\n\t\tconst data2 = textureData[name];\n\t\tpixels.set(data2);\n\t\ttexture.unlock();\n\t\tcache.map.set(name, texture);\n\t}\n\treturn cache.map.get(name);\n};\n\nvar id3 = 0;\nvar DynamicBindGroup = class {\n\tbindGroup;\n\toffsets = [];\n};\nvar BindGroup = class {\n\trenderVersionUpdated = -1;\n\tuniformBuffers;\n\tuniformBufferOffsets = [];\n\t_uniformBufferContainers = [];\n\t_textureImpls = [];\n\t_storageTextureImpls = [];\n\tconstructor(graphicsDevice, format, defaultUniformBuffer) {\n\t\tthis.id = id3++;\n\t\tthis.device = graphicsDevice;\n\t\tthis.format = format;\n\t\tthis.dirty = true;\n\t\tthis.impl = graphicsDevice.createBindGroupImpl(this);\n\t\tthis.textures = [];\n\t\tthis.storageTextures = [];\n\t\tthis.storageBuffers = [];\n\t\tthis.uniformBuffers = [];\n\t\tthis.defaultUniformBuffer = defaultUniformBuffer;\n\t\tif (defaultUniformBuffer) {\n\t\t\tthis.setUniformBuffer(UNIFORM_BUFFER_DEFAULT_SLOT_NAME, defaultUniformBuffer);\n\t\t}\n\t}\n\tdestroy() {\n\t\tthis.impl.destroy();\n\t\tthis.impl = null;\n\t\tthis.format = null;\n\t\tthis.defaultUniformBuffer = null;\n\t}\n\tsetUniformBuffer(name, uniformBuffer) {\n\t\tconst index = this.format.bufferFormatsMap.get(name);\n\t\tif (this.uniformBuffers[index] !== uniformBuffer) {\n\t\t\tthis.uniformBuffers[index] = uniformBuffer;\n\t\t\tthis.dirty = true;\n\t\t}\n\t}\n\tsetStorageBuffer(name, storageBuffer) {\n\t\tconst index = this.format.storageBufferFormatsMap.get(name);\n\t\tif (this.storageBuffers[index] !== storageBuffer) {\n\t\t\tthis.storageBuffers[index] = storageBuffer;\n\t\t\tthis.dirty = true;\n\t\t}\n\t}\n\tsetTexture(name, value) {\n\t\tconst index = this.format.textureFormatsMap.get(name);\n\t\tconst texture = value instanceof TextureView ? value.texture : value;\n\t\tif (this.textures[index] !== value) {\n\t\t\tthis.textures[index] = value;\n\t\t\tthis.dirty = true;\n\t\t} else if (this.renderVersionUpdated < texture.renderVersionDirty) {\n\t\t\tthis.dirty = true;\n\t\t} else if (this._textureImpls[index] !== texture.impl) {\n\t\t\tthis.dirty = true;\n\t\t}\n\t\tthis._textureImpls[index] = texture.impl;\n\t}\n\tsetStorageTexture(name, value) {\n\t\tconst index = this.format.storageTextureFormatsMap.get(name);\n\t\tconst texture = value instanceof TextureView ? value.texture : value;\n\t\tif (this.storageTextures[index] !== value) {\n\t\t\tthis.storageTextures[index] = value;\n\t\t\tthis.dirty = true;\n\t\t} else if (this.renderVersionUpdated < texture.renderVersionDirty) {\n\t\t\tthis.dirty = true;\n\t\t} else if (this._storageTextureImpls[index] !== texture.impl) {\n\t\t\tthis.dirty = true;\n\t\t}\n\t\tthis._storageTextureImpls[index] = texture.impl;\n\t}\n\tupdateUniformBuffers() {\n\t\tfor (let i2 = 0; i2 < this.uniformBuffers.length; i2++) {\n\t\t\tthis.uniformBuffers[i2].update();\n\t\t}\n\t}\n\tupdate() {\n\t\tconst { textureFormats, storageTextureFormats, storageBufferFormats } = this.format;\n\t\tfor (let i2 = 0; i2 < textureFormats.length; i2++) {\n\t\t\tconst textureFormat = textureFormats[i2];\n\t\t\tlet value = textureFormat.scopeId.value;\n\t\t\tif (!value) {\n\t\t\t\tif (textureFormat.name === \"uSceneDepthMap\") {\n\t\t\t\t\tvalue = getBuiltInTexture(this.device, \"white\");\n\t\t\t\t}\n\t\t\t\tif (textureFormat.name === \"uSceneColorMap\") {\n\t\t\t\t\tvalue = getBuiltInTexture(this.device, \"pink\");\n\t\t\t\t}\n\t\t\t\tif (!value) {\n\t\t\t\t\tvalue = getBuiltInTexture(this.device, \"pink\");\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.setTexture(textureFormat.name, value);\n\t\t}\n\t\tfor (let i2 = 0; i2 < storageTextureFormats.length; i2++) {\n\t\t\tconst storageTextureFormat = storageTextureFormats[i2];\n\t\t\tconst value = storageTextureFormat.scopeId.value;\n\t\t\tthis.setStorageTexture(storageTextureFormat.name, value);\n\t\t}\n\t\tfor (let i2 = 0; i2 < storageBufferFormats.length; i2++) {\n\t\t\tconst storageBufferFormat = storageBufferFormats[i2];\n\t\t\tconst value = storageBufferFormat.scopeId.value;\n\t\t\tthis.setStorageBuffer(storageBufferFormat.name, value);\n\t\t}\n\t\tthis.uniformBufferOffsets.length = this.uniformBuffers.length;\n\t\tfor (let i2 = 0; i2 < this.uniformBuffers.length; i2++) {\n\t\t\tconst uniformBuffer = this.uniformBuffers[i2];\n\t\t\tthis.uniformBufferOffsets[i2] = uniformBuffer.offset;\n\t\t\tif (!uniformBuffer.persistent) {\n\t\t\t\tconst container = uniformBuffer.allocation.gpuBuffer;\n\t\t\t\tif (this._uniformBufferContainers[i2] !== container) {\n\t\t\t\t\tthis._uniformBufferContainers[i2] = container;\n\t\t\t\t\tthis.dirty = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (this.dirty) {\n\t\t\tthis.dirty = false;\n\t\t\tthis.renderVersionUpdated = this.device.renderVersion;\n\t\t\tthis.impl.update(this);\n\t\t}\n\t}\n};\n\nvar BitPacking = {\n\tset(storage, value, shift, mask = 1) {\n\t\tconst data2 = storage & ~(mask << shift);\n\t\treturn data2 | value << shift;\n\t},\n\tget(storage, shift, mask = 1) {\n\t\treturn storage >> shift & mask;\n\t},\n\tall(storage, shift, mask = 1) {\n\t\tconst shifted = mask << shift;\n\t\treturn (storage & shifted) === shifted;\n\t},\n\tany(storage, shift, mask = 1) {\n\t\treturn (storage & mask << shift) !== 0;\n\t}\n};\n\nvar stringIds2 = new StringIds();\nvar opMask = 7;\nvar factorMask = 31;\nvar colorOpShift = 0;\nvar colorSrcFactorShift = 3;\nvar colorDstFactorShift = 8;\nvar alphaOpShift = 13;\nvar alphaSrcFactorShift = 16;\nvar alphaDstFactorShift = 21;\nvar redWriteShift = 26;\nvar greenWriteShift = 27;\nvar blueWriteShift = 28;\nvar alphaWriteShift = 29;\nvar blendShift = 30;\nvar allWriteMasks = 15;\nvar allWriteShift = redWriteShift;\nvar overridesBit = 1 << 31;\nvar stateMask = 2147483647;\nvar maxAttachments = 8;\nvar usesSecondarySource = (factor) => factor >= BLENDMODE_SRC1_COLOR && factor <= BLENDMODE_ONE_MINUS_SRC1_ALPHA;\nvar stateUsesSecondarySource = (state) => usesSecondarySource(BitPacking.get(state, colorSrcFactorShift, factorMask)) || usesSecondarySource(BitPacking.get(state, colorDstFactorShift, factorMask)) || usesSecondarySource(BitPacking.get(state, alphaSrcFactorShift, factorMask)) || usesSecondarySource(BitPacking.get(state, alphaDstFactorShift, factorMask));\nvar BlendState = class _BlendState {\n\tattachment0 = 0;\n\t_attachments = null;\n\t_key = 0;\n\t_keyDirty = false;\n\tconstructor(blend = false, colorOp = BLENDEQUATION_ADD, colorSrcFactor = BLENDMODE_ONE, colorDstFactor = BLENDMODE_ZERO, alphaOp, alphaSrcFactor, alphaDstFactor, redWrite = true, greenWrite = true, blueWrite = true, alphaWrite = true) {\n\t\tthis.setColorBlend(colorOp, colorSrcFactor, colorDstFactor);\n\t\tthis.setAlphaBlend(alphaOp ?? colorOp, alphaSrcFactor ?? colorSrcFactor, alphaDstFactor ?? colorDstFactor);\n\t\tthis.setColorWrite(redWrite, greenWrite, blueWrite, alphaWrite);\n\t\tthis.blend = blend;\n\t}\n\tset blend(value) {\n\t\tthis.attachment0 = BitPacking.set(this.attachment0, value ? 1 : 0, blendShift);\n\t\tthis._keyDirty = true;\n\t}\n\tget blend() {\n\t\treturn BitPacking.all(this.attachment0, blendShift);\n\t}\n\tsetColorBlend(op, srcFactor, dstFactor) {\n\t\tthis.attachment0 = BitPacking.set(this.attachment0, op, colorOpShift, opMask);\n\t\tthis.attachment0 = BitPacking.set(this.attachment0, srcFactor, colorSrcFactorShift, factorMask);\n\t\tthis.attachment0 = BitPacking.set(this.attachment0, dstFactor, colorDstFactorShift, factorMask);\n\t\tthis._keyDirty = true;\n\t}\n\tsetAlphaBlend(op, srcFactor, dstFactor) {\n\t\tthis.attachment0 = BitPacking.set(this.attachment0, op, alphaOpShift, opMask);\n\t\tthis.attachment0 = BitPacking.set(this.attachment0, srcFactor, alphaSrcFactorShift, factorMask);\n\t\tthis.attachment0 = BitPacking.set(this.attachment0, dstFactor, alphaDstFactorShift, factorMask);\n\t\tthis._keyDirty = true;\n\t}\n\tsetColorWrite(redWrite, greenWrite, blueWrite, alphaWrite) {\n\t\tthis.redWrite = redWrite;\n\t\tthis.greenWrite = greenWrite;\n\t\tthis.blueWrite = blueWrite;\n\t\tthis.alphaWrite = alphaWrite;\n\t}\n\tget colorOp() {\n\t\treturn BitPacking.get(this.attachment0, colorOpShift, opMask);\n\t}\n\tget colorSrcFactor() {\n\t\treturn BitPacking.get(this.attachment0, colorSrcFactorShift, factorMask);\n\t}\n\tget colorDstFactor() {\n\t\treturn BitPacking.get(this.attachment0, colorDstFactorShift, factorMask);\n\t}\n\tget alphaOp() {\n\t\treturn BitPacking.get(this.attachment0, alphaOpShift, opMask);\n\t}\n\tget alphaSrcFactor() {\n\t\treturn BitPacking.get(this.attachment0, alphaSrcFactorShift, factorMask);\n\t}\n\tget alphaDstFactor() {\n\t\treturn BitPacking.get(this.attachment0, alphaDstFactorShift, factorMask);\n\t}\n\tset redWrite(value) {\n\t\tthis.attachment0 = BitPacking.set(this.attachment0, value ? 1 : 0, redWriteShift);\n\t\tthis._keyDirty = true;\n\t}\n\tget redWrite() {\n\t\treturn BitPacking.all(this.attachment0, redWriteShift);\n\t}\n\tset greenWrite(value) {\n\t\tthis.attachment0 = BitPacking.set(this.attachment0, value ? 1 : 0, greenWriteShift);\n\t\tthis._keyDirty = true;\n\t}\n\tget greenWrite() {\n\t\treturn BitPacking.all(this.attachment0, greenWriteShift);\n\t}\n\tset blueWrite(value) {\n\t\tthis.attachment0 = BitPacking.set(this.attachment0, value ? 1 : 0, blueWriteShift);\n\t\tthis._keyDirty = true;\n\t}\n\tget blueWrite() {\n\t\treturn BitPacking.all(this.attachment0, blueWriteShift);\n\t}\n\tset alphaWrite(value) {\n\t\tthis.attachment0 = BitPacking.set(this.attachment0, value ? 1 : 0, alphaWriteShift);\n\t\tthis._keyDirty = true;\n\t}\n\tget alphaWrite() {\n\t\treturn BitPacking.all(this.attachment0, alphaWriteShift);\n\t}\n\tget allWrite() {\n\t\treturn BitPacking.get(this.attachment0, allWriteShift, allWriteMasks);\n\t}\n\tget hasAttachmentOverrides() {\n\t\treturn this.attachment0 < 0;\n\t}\n\tsetAttachment(index, src) {\n\t\tthis._attachments ?? (this._attachments = new Int32Array(maxAttachments));\n\t\tthis._attachments[index] = src ? src.attachment0 & stateMask : 0;\n\t\tthis._attachmentsUpdated();\n\t}\n\tclearAttachment(index) {\n\t\tthis.setAttachment(index, null);\n\t}\n\tgetAttachment(index, dst) {\n\t\tconst state = this.hasAttachmentOverrides ? this._attachments[index] : 0;\n\t\tdst.attachment0 = state !== 0 ? state : this.attachment0 & stateMask;\n\t\treturn dst;\n\t}\n\t_attachmentsUpdated() {\n\t\tconst attachments = this._attachments;\n\t\tlet overrides = false;\n\t\tfor (let i2 = 1; i2 < maxAttachments; i2++) {\n\t\t\tif (attachments[i2] !== 0) {\n\t\t\t\toverrides = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tthis.attachment0 = overrides ? this.attachment0 | overridesBit : this.attachment0 & stateMask;\n\t\tif (overrides) {\n\t\t\tthis._evalKey();\n\t\t} else {\n\t\t\tthis._keyDirty = false;\n\t\t}\n\t}\n\t_evalKey() {\n\t\tthis._key = overridesBit | stringIds2.get(`${this.attachment0}-${this._attachments.join(\"-\")}`);\n\t\tthis._keyDirty = false;\n\t}\n\tget usesDualSourceBlending() {\n\t\tif (stateUsesSecondarySource(this.attachment0)) {\n\t\t\treturn true;\n\t\t}\n\t\tif (this.hasAttachmentOverrides) {\n\t\t\tconst attachments = this._attachments;\n\t\t\tfor (let i2 = 1; i2 < maxAttachments; i2++) {\n\t\t\t\tif (attachments[i2] !== 0 && stateUsesSecondarySource(attachments[i2])) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\tcopy(rhs) {\n\t\tthis.attachment0 = rhs.attachment0;\n\t\tif (rhs.hasAttachmentOverrides) {\n\t\t\tthis._attachments ?? (this._attachments = new Int32Array(maxAttachments));\n\t\t\tthis._attachments.set(rhs._attachments);\n\t\t}\n\t\tthis._key = rhs._key;\n\t\tthis._keyDirty = rhs._keyDirty;\n\t\treturn this;\n\t}\n\tclone() {\n\t\tconst clone = new this.constructor();\n\t\treturn clone.copy(this);\n\t}\n\tget key() {\n\t\tif (this.attachment0 >= 0) {\n\t\t\treturn this.attachment0;\n\t\t}\n\t\tif (this._keyDirty) {\n\t\t\tthis._evalKey();\n\t\t}\n\t\treturn this._key;\n\t}\n\tequals(rhs) {\n\t\treturn this.key === rhs.key;\n\t}\n\tstatic NOBLEND = Object.freeze(new _BlendState());\n\tstatic get DEFAULT() {\n\t\treturn _BlendState.NOBLEND;\n\t}\n\tstatic NOWRITE = Object.freeze(new _BlendState(void 0, void 0, void 0, void 0, void 0, void 0, void 0, false, false, false, false));\n\tstatic ALPHABLEND = Object.freeze(new _BlendState(true, BLENDEQUATION_ADD, BLENDMODE_SRC_ALPHA, BLENDMODE_ONE_MINUS_SRC_ALPHA));\n\tstatic ADDBLEND = Object.freeze(new _BlendState(true, BLENDEQUATION_ADD, BLENDMODE_ONE, BLENDMODE_ONE));\n};\n\nvar stringIds3 = new StringIds();\nvar funcMask = 7;\nvar funcShift = 0;\nvar writeShift = 3;\nvar DepthState = class _DepthState {\n\tdata = 0;\n\t_depthBias = 0;\n\t_depthBiasSlope = 0;\n\tkey = 0;\n\tconstructor(func = FUNC_LESSEQUAL, write = true) {\n\t\tthis.func = func;\n\t\tthis.write = write;\n\t}\n\tset test(value) {\n\t\tthis.func = value ? FUNC_LESSEQUAL : FUNC_ALWAYS;\n\t\tthis.updateKey();\n\t}\n\tget test() {\n\t\treturn this.func !== FUNC_ALWAYS;\n\t}\n\tset write(value) {\n\t\tthis.data = BitPacking.set(this.data, value ? 1 : 0, writeShift);\n\t\tthis.updateKey();\n\t}\n\tget write() {\n\t\treturn BitPacking.all(this.data, writeShift);\n\t}\n\tset func(value) {\n\t\tthis.data = BitPacking.set(this.data, value, funcShift, funcMask);\n\t\tthis.updateKey();\n\t}\n\tget func() {\n\t\treturn BitPacking.get(this.data, funcShift, funcMask);\n\t}\n\tset depthBias(value) {\n\t\tthis._depthBias = value;\n\t\tthis.updateKey();\n\t}\n\tget depthBias() {\n\t\treturn this._depthBias;\n\t}\n\tset depthBiasSlope(value) {\n\t\tthis._depthBiasSlope = value;\n\t\tthis.updateKey();\n\t}\n\tget depthBiasSlope() {\n\t\treturn this._depthBiasSlope;\n\t}\n\tcopy(rhs) {\n\t\tthis.data = rhs.data;\n\t\tthis._depthBias = rhs._depthBias;\n\t\tthis._depthBiasSlope = rhs._depthBiasSlope;\n\t\tthis.key = rhs.key;\n\t\treturn this;\n\t}\n\tclone() {\n\t\tconst clone = new this.constructor();\n\t\treturn clone.copy(this);\n\t}\n\tupdateKey() {\n\t\tconst { data: data2, _depthBias, _depthBiasSlope } = this;\n\t\tconst key = `${data2}-${_depthBias}-${_depthBiasSlope}`;\n\t\tthis.key = stringIds3.get(key);\n\t}\n\tequals(rhs) {\n\t\treturn this.key === rhs.key;\n\t}\n\tstatic DEFAULT = Object.freeze(new _DepthState());\n\tstatic NODEPTH = Object.freeze(new _DepthState(FUNC_ALWAYS, false));\n\tstatic WRITEDEPTH = Object.freeze(new _DepthState(FUNC_ALWAYS, true));\n};\n\nvar BufferUtils = class {\n\tstatic createStorageView(buffer, arrayType, byteOffset = 0, length) {\n\t\tconst storage = buffer.storage;\n\t\tconst isView = ArrayBuffer.isView(storage);\n\t\tconst arrayBuffer = isView ? storage.buffer : storage;\n\t\tconst offset3 = (isView ? storage.byteOffset : 0) + byteOffset;\n\t\tconst elementSize = arrayType.BYTES_PER_ELEMENT;\n\t\treturn new arrayType(arrayBuffer, offset3, length ?? Math.floor((buffer.numBytes - byteOffset) / elementSize));\n\t}\n};\n\nvar id4 = 0;\nvar IndexBuffer = class {\n\tconstructor(graphicsDevice, format, numIndices, usage = BUFFER_STATIC, initialData, options2) {\n\t\tthis.device = graphicsDevice;\n\t\tthis.format = format;\n\t\tthis.numIndices = numIndices;\n\t\tthis.usage = usage;\n\t\tthis.id = id4++;\n\t\tthis.impl = graphicsDevice.createIndexBufferImpl(this, options2);\n\t\tconst bytesPerIndex = typedArrayIndexFormatsByteSize[format];\n\t\tthis.bytesPerIndex = bytesPerIndex;\n\t\tthis.numBytes = this.numIndices * bytesPerIndex;\n\t\tif (initialData) {\n\t\t\tthis.setData(initialData);\n\t\t} else {\n\t\t\tthis.storage = new ArrayBuffer(this.numBytes);\n\t\t}\n\t\tthis.adjustVramSizeTracking(graphicsDevice._vram, this.numBytes);\n\t\tthis.device.buffers.add(this);\n\t}\n\tdestroy() {\n\t\tconst device = this.device;\n\t\tdevice.buffers.delete(this);\n\t\tif (this.device.indexBuffer === this) {\n\t\t\tthis.device.indexBuffer = null;\n\t\t}\n\t\tif (this.impl.initialized) {\n\t\t\tthis.impl.destroy(device);\n\t\t\tthis.adjustVramSizeTracking(device._vram, -this.storage.byteLength);\n\t\t}\n\t}\n\tadjustVramSizeTracking(vram, size) {\n\t\tvram.ib += size;\n\t}\n\tloseContext() {\n\t\tthis.impl.loseContext();\n\t}\n\trestoreContext() {\n\t\tthis.unlock();\n\t}\n\tgetFormat() {\n\t\treturn this.format;\n\t}\n\tgetNumIndices() {\n\t\treturn this.numIndices;\n\t}\n\tlock() {\n\t\treturn this.storage;\n\t}\n\tunlock() {\n\t\tthis.impl.unlock(this);\n\t}\n\tsetData(data2) {\n\t\tif (data2.byteLength !== this.numBytes) {\n\t\t\treturn false;\n\t\t}\n\t\tthis.storage = data2;\n\t\tthis.unlock();\n\t\treturn true;\n\t}\n\twriteData(data2, count) {\n\t\tconst indices = BufferUtils.createStorageView(this, typedArrayIndexFormats[this.format]);\n\t\tif (data2.length > count) {\n\t\t\tif (ArrayBuffer.isView(data2)) {\n\t\t\t\tdata2 = data2.subarray(0, count);\n\t\t\t\tindices.set(data2);\n\t\t\t} else {\n\t\t\t\tfor (let i2 = 0; i2 < count; i2++) {\n\t\t\t\t\tindices[i2] = data2[i2];\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tindices.set(data2);\n\t\t}\n\t\tthis.unlock();\n\t}\n\treadData(data2) {\n\t\tconst indices = BufferUtils.createStorageView(this, typedArrayIndexFormats[this.format]);\n\t\tconst count = this.numIndices;\n\t\tif (ArrayBuffer.isView(data2)) {\n\t\t\tdata2.set(data2.length >= count ? indices : indices.subarray(0, data2.length));\n\t\t} else {\n\t\t\tdata2.length = 0;\n\t\t\tfor (let i2 = 0; i2 < count; i2++) {\n\t\t\t\tdata2[i2] = indices[i2];\n\t\t\t}\n\t\t}\n\t\treturn count;\n\t}\n};\n\nvar Version = class {\n\tglobalId = 0;\n\trevision = 0;\n\tequals(other) {\n\t\treturn this.globalId === other.globalId && this.revision === other.revision;\n\t}\n\tcopy(other) {\n\t\tthis.globalId = other.globalId;\n\t\tthis.revision = other.revision;\n\t}\n\treset() {\n\t\tthis.globalId = 0;\n\t\tthis.revision = 0;\n\t}\n};\n\nvar idCounter = 0;\nvar VersionedObject = class {\n\tconstructor() {\n\t\tidCounter++;\n\t\tthis.version = new Version();\n\t\tthis.version.globalId = idCounter;\n\t}\n\tincrement() {\n\t\tthis.version.revision++;\n\t}\n};\n\nvar ScopeId = class {\n\tconstructor(name) {\n\t\tthis.name = name;\n\t\tthis.value = null;\n\t\tthis.versionObject = new VersionedObject();\n\t}\n\t// Don't stringify ScopeId to JSON by JSON.stringify, as this stores 'value'\n\t// which is not needed. This is used when stringifying a uniform buffer format, which\n\t// internally stores the scope.\n\ttoJSON(key) {\n\t\treturn void 0;\n\t}\n\tsetValue(value) {\n\t\tthis.value = value;\n\t\tthis.versionObject.increment();\n\t}\n\tgetValue() {\n\t\treturn this.value;\n\t}\n};\n\nvar ScopeSpace = class {\n\tconstructor(name) {\n\t\tthis.name = name;\n\t\tthis.variables = /* @__PURE__ */ new Map();\n\t}\n\tresolve(name) {\n\t\tif (!this.variables.has(name)) {\n\t\t\tthis.variables.set(name, new ScopeId(name));\n\t\t}\n\t\treturn this.variables.get(name);\n\t}\n\tremoveValue(value) {\n\t\tfor (const uniform of this.variables.values()) {\n\t\t\tif (uniform.value === value) {\n\t\t\t\tuniform.value = null;\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar id5 = 0;\nvar VertexBuffer = class {\n\tusage = BUFFER_STATIC;\n\t_vaoKeyPart = null;\n\tconstructor(graphicsDevice, format, numVertices, options2) {\n\t\tthis.usage = options2?.usage ?? BUFFER_STATIC;\n\t\tthis.device = graphicsDevice;\n\t\tthis.format = format;\n\t\tthis.numVertices = numVertices;\n\t\tthis.id = id5++;\n\t\tthis.impl = graphicsDevice.createVertexBufferImpl(this, format, options2);\n\t\tthis.numBytes = format.verticesByteSize ? format.verticesByteSize : format.size * numVertices;\n\t\tthis.adjustVramSizeTracking(graphicsDevice._vram, this.numBytes);\n\t\tconst initialData = options2?.data;\n\t\tif (initialData) {\n\t\t\tthis.setData(initialData);\n\t\t} else {\n\t\t\tthis.storage = new ArrayBuffer(this.numBytes);\n\t\t}\n\t\tthis.device.buffers.add(this);\n\t}\n\tget vaoKeyPart() {\n\t\tthis._vaoKeyPart ?? (this._vaoKeyPart = `${this.id}_${this.format.renderingHash}_`);\n\t\treturn this._vaoKeyPart;\n\t}\n\tdestroy() {\n\t\tconst device = this.device;\n\t\tdevice.buffers.delete(this);\n\t\tif (this.impl.initialized) {\n\t\t\tthis.impl.destroy(device);\n\t\t\tthis.adjustVramSizeTracking(device._vram, -this.storage.byteLength);\n\t\t}\n\t}\n\tadjustVramSizeTracking(vram, size) {\n\t\tvram.vb += size;\n\t}\n\tloseContext() {\n\t\tthis.impl.loseContext();\n\t}\n\trestoreContext() {\n\t\tthis.unlock();\n\t}\n\tgetFormat() {\n\t\treturn this.format;\n\t}\n\tgetUsage() {\n\t\treturn this.usage;\n\t}\n\tgetNumVertices() {\n\t\treturn this.numVertices;\n\t}\n\tlock() {\n\t\treturn this.storage;\n\t}\n\tunlock() {\n\t\tthis.impl.unlock(this);\n\t}\n\tsetData(data2) {\n\t\tif (data2.byteLength !== this.numBytes) {\n\t\t\treturn false;\n\t\t}\n\t\tthis.storage = data2;\n\t\tthis.unlock();\n\t\treturn true;\n\t}\n};\n\nfunction hashCode(str) {\n\tif (str === null || str === void 0) {\n\t\treturn 0;\n\t}\n\tlet hash = 0;\n\tfor (let i2 = 0, len = str.length; i2 < len; i2++) {\n\t\thash = (hash << 5) - hash + str.charCodeAt(i2);\n\t\thash |= 0;\n\t}\n\treturn hash;\n}\nfunction hash32Fnv1a(array3) {\n\tconst prime = 16777619;\n\tlet hash = 2166136261;\n\tfor (let i2 = 0; i2 < array3.length; i2++) {\n\t\thash ^= array3[i2];\n\t\thash *= prime;\n\t}\n\treturn hash >>> 0;\n}\n\nvar stringIds4 = new StringIds();\nvar webgpuValidElementSizes = [2, 4, 8, 12, 16];\nvar deviceCache2 = new DeviceCache();\nvar VertexFormat = class _VertexFormat {\n\tconstructor(graphicsDevice, description, vertexCount) {\n\t\tthis.device = graphicsDevice;\n\t\tthis._elements = [];\n\t\tthis.hasUv0 = false;\n\t\tthis.hasUv1 = false;\n\t\tthis.hasColor = false;\n\t\tthis.hasTangents = false;\n\t\tthis.verticesByteSize = 0;\n\t\tthis.vertexCount = vertexCount;\n\t\tthis.interleaved = vertexCount === void 0;\n\t\tthis.instancing = false;\n\t\tthis.size = description.reduce((total, desc) => {\n\t\t\treturn total + Math.ceil(desc.components * typedArrayTypesByteSize[desc.type] / 4) * 4;\n\t\t}, 0);\n\t\tlet offset3 = 0, elementSize;\n\t\tfor (let i2 = 0, len = description.length; i2 < len; i2++) {\n\t\t\tconst elementDesc = description[i2];\n\t\t\telementSize = elementDesc.components * typedArrayTypesByteSize[elementDesc.type];\n\t\t\tif (vertexCount) {\n\t\t\t\toffset3 = math.roundUp(offset3, elementSize);\n\t\t\t}\n\t\t\tconst asInt = elementDesc.asInt ?? false;\n\t\t\tconst normalize = asInt ? false : elementDesc.normalize ?? false;\n\t\t\tconst element = {\n\t\t\t\tname: elementDesc.semantic,\n\t\t\t\toffset: vertexCount ? offset3 : elementDesc.hasOwnProperty(\"offset\") ? elementDesc.offset : offset3,\n\t\t\t\tstride: vertexCount ? elementSize : elementDesc.hasOwnProperty(\"stride\") ? elementDesc.stride : this.size,\n\t\t\t\tdataType: elementDesc.type,\n\t\t\t\tnumComponents: elementDesc.components,\n\t\t\t\tnormalize,\n\t\t\t\tsize: elementSize,\n\t\t\t\tasInt\n\t\t\t};\n\t\t\tthis._elements.push(element);\n\t\t\tif (vertexCount) {\n\t\t\t\toffset3 += elementSize * vertexCount;\n\t\t\t} else {\n\t\t\t\toffset3 += Math.ceil(elementSize / 4) * 4;\n\t\t\t}\n\t\t\tif (elementDesc.semantic === SEMANTIC_TEXCOORD0) {\n\t\t\t\tthis.hasUv0 = true;\n\t\t\t} else if (elementDesc.semantic === SEMANTIC_TEXCOORD1) {\n\t\t\t\tthis.hasUv1 = true;\n\t\t\t} else if (elementDesc.semantic === SEMANTIC_COLOR) {\n\t\t\t\tthis.hasColor = true;\n\t\t\t} else if (elementDesc.semantic === SEMANTIC_TANGENT) {\n\t\t\t\tthis.hasTangents = true;\n\t\t\t}\n\t\t}\n\t\tif (vertexCount) {\n\t\t\tthis.verticesByteSize = offset3;\n\t\t}\n\t\tthis._evaluateHash();\n\t}\n\tget elements() {\n\t\treturn this._elements;\n\t}\n\tstatic getDefaultInstancingFormat(graphicsDevice) {\n\t\treturn deviceCache2.get(graphicsDevice, () => {\n\t\t\treturn new _VertexFormat(graphicsDevice, [\n\t\t\t\t{ semantic: SEMANTIC_ATTR11, components: 4, type: TYPE_FLOAT32 },\n\t\t\t\t{ semantic: SEMANTIC_ATTR12, components: 4, type: TYPE_FLOAT32 },\n\t\t\t\t{ semantic: SEMANTIC_ATTR14, components: 4, type: TYPE_FLOAT32 },\n\t\t\t\t{ semantic: SEMANTIC_ATTR15, components: 4, type: TYPE_FLOAT32 }\n\t\t\t]);\n\t\t});\n\t}\n\tstatic get defaultInstancingFormat() {\n\t\treturn null;\n\t}\n\tstatic isElementValid(graphicsDevice, elementDesc) {\n\t\tconst elementSize = elementDesc.components * typedArrayTypesByteSize[elementDesc.type];\n\t\tif (graphicsDevice.isWebGPU && !webgpuValidElementSizes.includes(elementSize)) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t}\n\tupdate() {\n\t\tthis._evaluateHash();\n\t}\n\t_evaluateHash() {\n\t\tconst stringElementsBatch = [];\n\t\tconst stringElementsRender = [];\n\t\tconst len = this._elements.length;\n\t\tfor (let i2 = 0; i2 < len; i2++) {\n\t\t\tconst { name, dataType, numComponents, normalize, offset: offset3, stride, size, asInt } = this._elements[i2];\n\t\t\tconst stringElementBatch = name + dataType + numComponents + normalize + asInt;\n\t\t\tstringElementsBatch.push(stringElementBatch);\n\t\t\tconst stringElementRender = stringElementBatch + offset3 + stride + size;\n\t\t\tstringElementsRender.push(stringElementRender);\n\t\t}\n\t\tstringElementsBatch.sort();\n\t\tconst batchingString = stringElementsBatch.join();\n\t\tthis.batchingHash = hashCode(batchingString);\n\t\tthis.shaderProcessingHashString = batchingString;\n\t\tthis.renderingHashString = stringElementsRender.join(\"_\");\n\t\tthis.renderingHash = stringIds4.get(this.renderingHashString);\n\t}\n};\n\nvar stringIds5 = new StringIds();\nvar StencilParameters = class _StencilParameters {\n\t_func;\n\t_ref;\n\t_fail;\n\t_zfail;\n\t_zpass;\n\t_readMask;\n\t_writeMask;\n\t_dirty = true;\n\t_key;\n\tset func(value) {\n\t\tthis._func = value;\n\t\tthis._dirty = true;\n\t}\n\tget func() {\n\t\treturn this._func;\n\t}\n\tset ref(value) {\n\t\tthis._ref = value;\n\t\tthis._dirty = true;\n\t}\n\tget ref() {\n\t\treturn this._ref;\n\t}\n\tset fail(value) {\n\t\tthis._fail = value;\n\t\tthis._dirty = true;\n\t}\n\tget fail() {\n\t\treturn this._fail;\n\t}\n\tset zfail(value) {\n\t\tthis._zfail = value;\n\t\tthis._dirty = true;\n\t}\n\tget zfail() {\n\t\treturn this._zfail;\n\t}\n\tset zpass(value) {\n\t\tthis._zpass = value;\n\t\tthis._dirty = true;\n\t}\n\tget zpass() {\n\t\treturn this._zpass;\n\t}\n\tset readMask(value) {\n\t\tthis._readMask = value;\n\t\tthis._dirty = true;\n\t}\n\tget readMask() {\n\t\treturn this._readMask;\n\t}\n\tset writeMask(value) {\n\t\tthis._writeMask = value;\n\t\tthis._dirty = true;\n\t}\n\tget writeMask() {\n\t\treturn this._writeMask;\n\t}\n\tconstructor(options2 = {}) {\n\t\tthis._func = options2.func ?? FUNC_ALWAYS;\n\t\tthis._ref = options2.ref ?? 0;\n\t\tthis._readMask = options2.readMask ?? 255;\n\t\tthis._writeMask = options2.writeMask ?? 255;\n\t\tthis._fail = options2.fail ?? STENCILOP_KEEP;\n\t\tthis._zfail = options2.zfail ?? STENCILOP_KEEP;\n\t\tthis._zpass = options2.zpass ?? STENCILOP_KEEP;\n\t\tthis._evalKey();\n\t}\n\t_evalKey() {\n\t\tconst { _func, _ref, _fail, _zfail, _zpass, _readMask, _writeMask } = this;\n\t\tconst key = `${_func},${_ref},${_fail},${_zfail},${_zpass},${_readMask},${_writeMask}`;\n\t\tthis._key = stringIds5.get(key);\n\t\tthis._dirty = false;\n\t}\n\tget key() {\n\t\tif (this._dirty) {\n\t\t\tthis._evalKey();\n\t\t}\n\t\treturn this._key;\n\t}\n\tcopy(rhs) {\n\t\tthis._func = rhs._func;\n\t\tthis._ref = rhs._ref;\n\t\tthis._readMask = rhs._readMask;\n\t\tthis._writeMask = rhs._writeMask;\n\t\tthis._fail = rhs._fail;\n\t\tthis._zfail = rhs._zfail;\n\t\tthis._zpass = rhs._zpass;\n\t\tthis._dirty = rhs._dirty;\n\t\tthis._key = rhs._key;\n\t\treturn this;\n\t}\n\tclone() {\n\t\tconst clone = new this.constructor();\n\t\treturn clone.copy(this);\n\t}\n\tstatic DEFAULT = Object.freeze(new _StencilParameters());\n};\n\nvar id6 = 0;\nvar StorageBuffer = class {\n\tid = id6++;\n\tconstructor(graphicsDevice, byteSize, bufferUsage = 0, addStorageUsage = true) {\n\t\tthis.device = graphicsDevice;\n\t\tthis.byteSize = byteSize;\n\t\tthis.bufferUsage = bufferUsage;\n\t\tconst usage = addStorageUsage ? BUFFERUSAGE_STORAGE | bufferUsage : bufferUsage;\n\t\tthis.impl = graphicsDevice.createBufferImpl(usage);\n\t\tthis.impl.allocate(graphicsDevice, byteSize);\n\t\tgraphicsDevice.buffers.add(this);\n\t\tthis.adjustVramSizeTracking(graphicsDevice._vram, this.byteSize);\n\t}\n\tdestroy() {\n\t\tconst device = this.device;\n\t\tdevice.buffers.delete(this);\n\t\tthis.impl.destroy(device);\n\t\tthis.adjustVramSizeTracking(device._vram, -this.byteSize);\n\t}\n\tloseContext() {\n\t\tthis.impl.loseContext();\n\t}\n\trestoreContext() {\n\t\tthis.impl.allocate(this.device, this.byteSize);\n\t}\n\tadjustVramSizeTracking(vram, size) {\n\t\tvram.sb += size;\n\t}\n\tread(offset3 = 0, size = this.byteSize, data2 = null, immediate = false) {\n\t\treturn this.impl.read(this.device, offset3, size, data2, immediate);\n\t}\n\twrite(bufferOffset = 0, data2, dataOffset = 0, size) {\n\t\tthis.impl.write(this.device, bufferOffset, data2, dataOffset, size);\n\t}\n\tclear(offset3 = 0, size = this.byteSize) {\n\t\tthis.impl.clear(this.device, offset3, size);\n\t}\n\tcopy(srcBuffer, srcOffset = 0, dstOffset = 0, size = srcBuffer.byteSize - srcOffset) {\n\t\tconst commandEncoder = this.device.getCommandEncoder();\n\t\tcommandEncoder.copyBufferToBuffer(srcBuffer.impl.buffer, srcOffset, this.impl.buffer, dstOffset, size);\n\t}\n};\n\nvar _tempBlendState = new BlendState();\nvar _tempDepthState = new DepthState();\nvar GraphicsDevice = class _GraphicsDevice extends EventHandler {\n\tcanvas;\n\tbackBuffer = null;\n\tbackBufferSize = new Vec2();\n\tbackBufferFormat;\n\tbackBufferAntialias = false;\n\tisWebGPU = false;\n\tisWebGL2 = false;\n\tisNull = false;\n\tisHdr = false;\n\tscope;\n\tmaxIndirectDrawCount = 1024;\n\tmaxIndirectDispatchCount = 256;\n\tmaxAnisotropy;\n\tmaxCubeMapSize;\n\tmaxTextureSize;\n\tmaxVolumeSize;\n\tmaxColorAttachments = 1;\n\tprecision;\n\tsamples;\n\tmaxSamples = 1;\n\tsupportsStencil;\n\tsupportsMultiDraw = true;\n\tsupportsCompute = false;\n\tsupportsStorageTextureRead = false;\n\tsupportsSubgroups = false;\n\tsupportsSubgroupSizeControl = false;\n\tsupportsSubgroupUniformity = false;\n\tsupportsSubgroupId = false;\n\tsupportsLinearIndexing = false;\n\tsupportsPointerCompositeAccess = false;\n\tsupportsPacked4x8IntegerDotProduct = false;\n\tsupportsTextureAndSamplerLet = false;\n\tsupportsUnrestrictedPointerParameters = false;\n\tmaxSubgroupSize = 0;\n\tminSubgroupSize = 0;\n\trenderTarget = null;\n\tshaders = [];\n\ttextures = /* @__PURE__ */ new Set();\n\ttexturesToUpload = /* @__PURE__ */ new Set();\n\ttargets = /* @__PURE__ */ new Set();\n\trenderVersion = 0;\n\trenderPassIndex;\n\tinsideRenderPass = false;\n\tsupportsUniformBuffers = false;\n\tsupportsClipDistances = false;\n\tsupportsTransientAttachments = false;\n\tsupportsTextureFormatTier1 = false;\n\tsupportsTextureFormatTier2 = false;\n\tsupportsPrimitiveIndex = false;\n\tsupportsDualSourceBlending = false;\n\tsupportsIndependentBlending = false;\n\tsupportsShaderF16 = false;\n\tsupportsHtmlTextures = false;\n\ttextureFloatRenderable;\n\ttextureHalfFloatRenderable;\n\ttextureRG11B10Renderable = false;\n\ttextureFloatFilterable = false;\n\ttextureFloatBlendable = false;\n\tquadVertexBuffer;\n\tquadIndexBuffer;\n\tblendState = new BlendState();\n\tdepthState = new DepthState();\n\tstencilEnabled = false;\n\tstencilFront = new StencilParameters();\n\tstencilBack = new StencilParameters();\n\tdynamicBuffers;\n\tgpuProfiler;\n\t_destroyed = false;\n\tdefaultClearOptions = {\n\t\tcolor: [0, 0, 0, 1],\n\t\tdepth: 1,\n\t\tstencil: 0,\n\t\tflags: CLEARFLAG_COLOR | CLEARFLAG_DEPTH\n\t};\n\tclientRect = {\n\t\twidth: 0,\n\t\theight: 0\n\t};\n\t_shadersDirty = false;\n\tcapsDefines = /* @__PURE__ */ new Map();\n\tmapsToClear = /* @__PURE__ */ new Set();\n\tstatic EVENT_RESIZE = \"resizecanvas\";\n\tconstructor(canvas, options2) {\n\t\tvar _a2, _b2, _c, _d, _e, _f, _g, _h, _i;\n\t\tsuper();\n\t\tthis.canvas = canvas;\n\t\tif (\"setAttribute\" in canvas) {\n\t\t\tcanvas.setAttribute(\"data-engine\", `PlayCanvas ${version}`);\n\t\t}\n\t\tthis.initOptions = { ...options2 };\n\t\t(_a2 = this.initOptions).alpha ?? (_a2.alpha = true);\n\t\t(_b2 = this.initOptions).depth ?? (_b2.depth = true);\n\t\t(_c = this.initOptions).stencil ?? (_c.stencil = true);\n\t\t(_d = this.initOptions).antialias ?? (_d.antialias = true);\n\t\t(_e = this.initOptions).powerPreference ?? (_e.powerPreference = \"high-performance\");\n\t\t(_f = this.initOptions).displayFormat ?? (_f.displayFormat = DISPLAYFORMAT_LDR);\n\t\t(_g = this.initOptions).transientColor ?? (_g.transientColor = false);\n\t\t(_h = this.initOptions).transientDepth ?? (_h.transientDepth = false);\n\t\t(_i = this.initOptions).xrCompatible ?? (_i.xrCompatible = platform.browser && !!navigator.xr);\n\t\tthis._maxPixelRatio = platform.browser ? Math.min(1, window.devicePixelRatio) : 1;\n\t\tthis.buffers = /* @__PURE__ */ new Set();\n\t\tthis._vram = {\n\t\t\ttex: 0,\n\t\t\tvb: 0,\n\t\t\tib: 0,\n\t\t\tub: 0,\n\t\t\tsb: 0\n\t\t};\n\t\tthis._shaderStats = {\n\t\t\tvsCompiled: 0,\n\t\t\tfsCompiled: 0,\n\t\t\tlinked: 0,\n\t\t\tmaterialShaders: 0,\n\t\t\tcompileTime: 0\n\t\t};\n\t\tthis.initializeContextCaches();\n\t\tthis._drawCallsPerFrame = 0;\n\t\tthis._shaderSwitchesPerFrame = 0;\n\t\tthis._primsPerFrame = [];\n\t\tfor (let i2 = PRIMITIVE_POINTS; i2 <= PRIMITIVE_TRIFAN; i2++) {\n\t\t\tthis._primsPerFrame[i2] = 0;\n\t\t}\n\t\tthis._renderTargetCreationTime = 0;\n\t\tthis.scope = new ScopeSpace(\"Device\");\n\t\tthis.textureBias = this.scope.resolve(\"textureBias\");\n\t\tthis.textureBias.setValue(0);\n\t\tthis.updateClientRect();\n\t}\n\tpostInit() {\n\t\tconst vertexFormat = new VertexFormat(this, [\n\t\t\t{ semantic: SEMANTIC_POSITION, components: 2, type: TYPE_FLOAT32 }\n\t\t]);\n\t\tconst positions = new Float32Array([-1, -1, 1, -1, -1, 1, 1, 1]);\n\t\tthis.quadVertexBuffer = new VertexBuffer(this, vertexFormat, 4, {\n\t\t\tdata: positions\n\t\t});\n\t\tconst indices = new Uint16Array([0, 1, 2, 2, 1, 3]);\n\t\tthis.quadIndexBuffer = new IndexBuffer(this, INDEXFORMAT_UINT16, 6, BUFFER_STATIC, indices.buffer);\n\t}\n\tinitCapsDefines() {\n\t\tconst { capsDefines } = this;\n\t\tcapsDefines.clear();\n\t\tif (this.textureFloatFilterable) capsDefines.set(\"CAPS_TEXTURE_FLOAT_FILTERABLE\", \"\");\n\t\tif (this.textureFloatRenderable) capsDefines.set(\"CAPS_TEXTURE_FLOAT_RENDERABLE\", \"\");\n\t\tif (this.supportsMultiDraw) capsDefines.set(\"CAPS_MULTI_DRAW\", \"\");\n\t\tif (this.supportsDualSourceBlending) capsDefines.set(\"CAPS_DUAL_SOURCE_BLENDING\", \"\");\n\t\tif (this.supportsPrimitiveIndex) capsDefines.set(\"CAPS_PRIMITIVE_INDEX\", \"\");\n\t\tif (this.supportsShaderF16) capsDefines.set(\"CAPS_SHADER_F16\", \"\");\n\t\tif (this.supportsSubgroups) capsDefines.set(\"CAPS_SUBGROUPS\", \"\");\n\t\tif (this.supportsSubgroupSizeControl) capsDefines.set(\"CAPS_SUBGROUP_SIZE_CONTROL\", \"\");\n\t\tif (this.supportsSubgroupId) capsDefines.set(\"CAPS_SUBGROUP_ID\", \"\");\n\t\tif (this.supportsLinearIndexing) capsDefines.set(\"CAPS_LINEAR_INDEXING\", \"\");\n\t\tif (this.supportsUnrestrictedPointerParameters) capsDefines.set(\"CAPS_UNRESTRICTED_POINTER_PARAMETERS\", \"\");\n\t\tif (this.supportsPointerCompositeAccess) capsDefines.set(\"CAPS_POINTER_COMPOSITE_ACCESS\", \"\");\n\t\tif (this.supportsPacked4x8IntegerDotProduct) capsDefines.set(\"CAPS_PACKED_4X8_INTEGER_DOT_PRODUCT\", \"\");\n\t\tif (this.supportsTextureAndSamplerLet) capsDefines.set(\"CAPS_TEXTURE_AND_SAMPLER_LET\", \"\");\n\t\tif (this.supportsStorageTextureRead) capsDefines.set(\"CAPS_STORAGE_TEXTURE_READ\", \"\");\n\t\tif (platform.desktop) capsDefines.set(\"PLATFORM_DESKTOP\", \"\");\n\t\tif (platform.mobile) capsDefines.set(\"PLATFORM_MOBILE\", \"\");\n\t\tif (platform.android) capsDefines.set(\"PLATFORM_ANDROID\", \"\");\n\t\tif (platform.ios) capsDefines.set(\"PLATFORM_IOS\", \"\");\n\t}\n\tdestroy() {\n\t\tthis.fire(\"destroy\");\n\t\tthis.quadVertexBuffer?.destroy();\n\t\tthis.quadVertexBuffer = null;\n\t\tthis.quadIndexBuffer?.destroy();\n\t\tthis.quadIndexBuffer = null;\n\t\tthis.dynamicBuffers?.destroy();\n\t\tthis.dynamicBuffers = null;\n\t\tthis.gpuProfiler?.destroy();\n\t\tthis.gpuProfiler = null;\n\t\tthis._destroyed = true;\n\t}\n\tonDestroyShader(shader) {\n\t\tthis.fire(\"destroy:shader\", shader);\n\t\tconst idx = this.shaders.indexOf(shader);\n\t\tif (idx !== -1) {\n\t\t\tthis.shaders.splice(idx, 1);\n\t\t}\n\t}\n\tonTextureDestroyed(texture) {\n\t\tthis.textures.delete(texture);\n\t\tthis.texturesToUpload.delete(texture);\n\t\tthis.scope.removeValue(texture);\n\t}\n\t// executes after the extended classes have executed their destroy function\n\tpostDestroy() {\n\t\tthis.scope = null;\n\t\tthis.canvas = null;\n\t}\n\tloseContext() {\n\t\tthis.contextLost = true;\n\t\tthis.backBufferSize.set(-1, -1);\n\t\tfor (const texture of this.textures) {\n\t\t\ttexture.loseContext();\n\t\t}\n\t\tfor (const buffer of this.buffers) {\n\t\t\tbuffer.loseContext();\n\t\t}\n\t\tfor (const target2 of this.targets) {\n\t\t\ttarget2.loseContext();\n\t\t}\n\t\tthis.gpuProfiler?.loseContext();\n\t}\n\trestoreContext() {\n\t\tthis.contextLost = false;\n\t\tthis.initializeRenderState();\n\t\tthis.initializeContextCaches();\n\t\tfor (const buffer of this.buffers) {\n\t\t\tbuffer.restoreContext();\n\t\t}\n\t\tthis.gpuProfiler?.restoreContext?.();\n\t}\n\t// don't stringify GraphicsDevice to JSON by JSON.stringify\n\ttoJSON(key) {\n\t\treturn void 0;\n\t}\n\tinitializeContextCaches() {\n\t\tthis.vertexBuffers = [];\n\t\tthis.shader = null;\n\t\tthis.shaderValid = void 0;\n\t\tthis.shaderAsyncCompile = false;\n\t\tthis.renderTarget = null;\n\t}\n\tinitializeRenderState() {\n\t\tthis.blendState = new BlendState();\n\t\tthis.depthState = new DepthState();\n\t\tthis.cullMode = CULLFACE_BACK;\n\t\tthis.frontFace = FRONTFACE_CCW;\n\t\tthis.alphaToCoverage = false;\n\t\tthis.vx = this.vy = this.vw = this.vh = 0;\n\t\tthis.sx = this.sy = this.sw = this.sh = 0;\n\t\tthis.blendColor = new Color(0, 0, 0, 0);\n\t}\n\t// ---- deprecated block start ----\n\tget boneLimit() {\n\t\treturn 1024;\n\t}\n\tget webgl2() {\n\t\treturn this.isWebGL2;\n\t}\n\tget textureFloatHighPrecision() {\n\t\treturn true;\n\t}\n\tget extBlendMinmax() {\n\t\treturn true;\n\t}\n\tget extTextureHalfFloat() {\n\t\treturn true;\n\t}\n\tget extTextureLod() {\n\t\treturn true;\n\t}\n\tget textureHalfFloatFilterable() {\n\t\treturn true;\n\t}\n\tget supportsMrt() {\n\t\treturn true;\n\t}\n\tget supportsVolumeTextures() {\n\t\treturn true;\n\t}\n\tget supportsInstancing() {\n\t\treturn true;\n\t}\n\tget textureHalfFloatUpdatable() {\n\t\treturn true;\n\t}\n\tget extTextureFloat() {\n\t\treturn true;\n\t}\n\tget extStandardDerivatives() {\n\t\treturn true;\n\t}\n\tsetBlendFunction(blendSrc, blendDst) {\n\t\tconst currentBlendState = this.blendState;\n\t\t_tempBlendState.copy(currentBlendState);\n\t\t_tempBlendState.setColorBlend(currentBlendState.colorOp, blendSrc, blendDst);\n\t\t_tempBlendState.setAlphaBlend(currentBlendState.alphaOp, blendSrc, blendDst);\n\t\tthis.setBlendState(_tempBlendState);\n\t}\n\tsetBlendFunctionSeparate(blendSrc, blendDst, blendSrcAlpha, blendDstAlpha) {\n\t\tconst currentBlendState = this.blendState;\n\t\t_tempBlendState.copy(currentBlendState);\n\t\t_tempBlendState.setColorBlend(currentBlendState.colorOp, blendSrc, blendDst);\n\t\t_tempBlendState.setAlphaBlend(currentBlendState.alphaOp, blendSrcAlpha, blendDstAlpha);\n\t\tthis.setBlendState(_tempBlendState);\n\t}\n\tsetBlendEquation(blendEquation) {\n\t\tconst currentBlendState = this.blendState;\n\t\t_tempBlendState.copy(currentBlendState);\n\t\t_tempBlendState.setColorBlend(blendEquation, currentBlendState.colorSrcFactor, currentBlendState.colorDstFactor);\n\t\t_tempBlendState.setAlphaBlend(blendEquation, currentBlendState.alphaSrcFactor, currentBlendState.alphaDstFactor);\n\t\tthis.setBlendState(_tempBlendState);\n\t}\n\tsetBlendEquationSeparate(blendEquation, blendAlphaEquation) {\n\t\tconst currentBlendState = this.blendState;\n\t\t_tempBlendState.copy(currentBlendState);\n\t\t_tempBlendState.setColorBlend(blendEquation, currentBlendState.colorSrcFactor, currentBlendState.colorDstFactor);\n\t\t_tempBlendState.setAlphaBlend(blendAlphaEquation, currentBlendState.alphaSrcFactor, currentBlendState.alphaDstFactor);\n\t\tthis.setBlendState(_tempBlendState);\n\t}\n\tsetColorWrite(redWrite, greenWrite, blueWrite, alphaWrite) {\n\t\tconst currentBlendState = this.blendState;\n\t\t_tempBlendState.copy(currentBlendState);\n\t\t_tempBlendState.setColorWrite(redWrite, greenWrite, blueWrite, alphaWrite);\n\t\tthis.setBlendState(_tempBlendState);\n\t}\n\tgetBlending() {\n\t\treturn this.blendState.blend;\n\t}\n\tsetBlending(blending) {\n\t\t_tempBlendState.copy(this.blendState);\n\t\t_tempBlendState.blend = blending;\n\t\tthis.setBlendState(_tempBlendState);\n\t}\n\tsetDepthWrite(write) {\n\t\t_tempDepthState.copy(this.depthState);\n\t\t_tempDepthState.write = write;\n\t\tthis.setDepthState(_tempDepthState);\n\t}\n\tsetDepthFunc(func) {\n\t\t_tempDepthState.copy(this.depthState);\n\t\t_tempDepthState.func = func;\n\t\tthis.setDepthState(_tempDepthState);\n\t}\n\tsetDepthTest(test) {\n\t\t_tempDepthState.copy(this.depthState);\n\t\t_tempDepthState.test = test;\n\t\tthis.setDepthState(_tempDepthState);\n\t}\n\tgetCullMode() {\n\t\treturn this.cullMode;\n\t}\n\t// ---- deprecated block end ----\n\tsetStencilState(stencilFront, stencilBack) {\n\t}\n\tsetBlendState(blendState) {\n\t}\n\tsetBlendColor(r, g, b, a) {\n\t}\n\tsetDepthState(depthState) {\n\t}\n\tsetCullMode(cullMode) {\n\t}\n\tsetFrontFace(frontFace) {\n\t}\n\tsetDrawStates(blendState = BlendState.NOBLEND, depthState = DepthState.NODEPTH, cullMode = CULLFACE_NONE, frontFace = FRONTFACE_CCW, stencilFront, stencilBack) {\n\t\tthis.setBlendState(blendState);\n\t\tthis.setDepthState(depthState);\n\t\tthis.setCullMode(cullMode);\n\t\tthis.setFrontFace(frontFace);\n\t\tthis.setStencilState(stencilFront, stencilBack);\n\t}\n\tsetRenderTarget(renderTarget) {\n\t\tthis.renderTarget = renderTarget;\n\t}\n\tsetVertexBuffer(vertexBuffer) {\n\t\tif (vertexBuffer) {\n\t\t\tthis.vertexBuffers.push(vertexBuffer);\n\t\t}\n\t}\n\tclearVertexBuffer() {\n\t\tthis.vertexBuffers.length = 0;\n\t}\n\tgetIndirectDrawSlot(count = 1) {\n\t\treturn 0;\n\t}\n\tget indirectDrawBuffer() {\n\t\treturn null;\n\t}\n\tgetIndirectDispatchSlot(count = 1) {\n\t\treturn 0;\n\t}\n\tget indirectDispatchBuffer() {\n\t\treturn null;\n\t}\n\tgetRenderTarget() {\n\t\treturn this.renderTarget;\n\t}\n\tinitRenderTarget(target2) {\n\t\tif (target2.initialized) return;\n\t\ttarget2.init();\n\t\tthis.targets.add(target2);\n\t}\n\tdraw(primitive2, indexBuffer, numInstances, drawCommands, first = true, last = true) {\n\t}\n\t_isBrowserInterface(texture) {\n\t\treturn this._isImageBrowserInterface(texture) || this._isImageCanvasInterface(texture) || this._isImageVideoInterface(texture) || this._isHTMLElementInterface(texture);\n\t}\n\t_isImageBrowserInterface(texture) {\n\t\treturn typeof ImageBitmap !== \"undefined\" && texture instanceof ImageBitmap || typeof HTMLImageElement !== \"undefined\" && texture instanceof HTMLImageElement;\n\t}\n\t_isImageCanvasInterface(texture) {\n\t\treturn typeof HTMLCanvasElement !== \"undefined\" && texture instanceof HTMLCanvasElement;\n\t}\n\t_isImageVideoInterface(texture) {\n\t\treturn typeof HTMLVideoElement !== \"undefined\" && texture instanceof HTMLVideoElement;\n\t}\n\t_isHTMLElementInterface(texture) {\n\t\treturn typeof HTMLElement !== \"undefined\" && texture instanceof HTMLElement && !(typeof HTMLImageElement !== \"undefined\" && texture instanceof HTMLImageElement) && !(typeof HTMLCanvasElement !== \"undefined\" && texture instanceof HTMLCanvasElement) && !(typeof HTMLVideoElement !== \"undefined\" && texture instanceof HTMLVideoElement);\n\t}\n\tresizeCanvas(width, height) {\n\t\tconst pixelRatio = Math.min(this._maxPixelRatio, platform.browser ? window.devicePixelRatio : 1);\n\t\tconst w = Math.floor(width * pixelRatio);\n\t\tconst h2 = Math.floor(height * pixelRatio);\n\t\tif (w !== this.canvas.width || h2 !== this.canvas.height) {\n\t\t\tthis.setResolution(w, h2);\n\t\t}\n\t}\n\tsetResolution(width, height) {\n\t\tthis.canvas.width = width;\n\t\tthis.canvas.height = height;\n\t\tthis.fire(_GraphicsDevice.EVENT_RESIZE, width, height);\n\t}\n\tupdate() {\n\t\tthis.updateClientRect();\n\t}\n\tupdateClientRect() {\n\t\tif (typeof this.canvas.getBoundingClientRect === \"function\") {\n\t\t\tconst rect = this.canvas.getBoundingClientRect();\n\t\t\tthis.clientRect.width = rect.width;\n\t\t\tthis.clientRect.height = rect.height;\n\t\t} else {\n\t\t\tthis.clientRect.width = this.canvas.width ?? 0;\n\t\t\tthis.clientRect.height = this.canvas.height ?? 0;\n\t\t}\n\t}\n\tget width() {\n\t\treturn this.canvas.width;\n\t}\n\tget height() {\n\t\treturn this.canvas.height;\n\t}\n\tset fullscreen(fullscreen) {\n\t}\n\tget fullscreen() {\n\t\treturn false;\n\t}\n\tset maxPixelRatio(ratio) {\n\t\tthis._maxPixelRatio = ratio;\n\t}\n\tget maxPixelRatio() {\n\t\treturn this._maxPixelRatio;\n\t}\n\tget deviceType() {\n\t\treturn this._deviceType;\n\t}\n\tstartRenderPass(renderPass) {\n\t}\n\tendRenderPass(renderPass) {\n\t}\n\tstartComputePass(name) {\n\t}\n\tendComputePass() {\n\t}\n\tframeStart() {\n\t\tthis.renderPassIndex = 0;\n\t\tthis.renderVersion++;\n\t}\n\tframeEnd() {\n\t\tthis.mapsToClear.forEach((map) => map.clear());\n\t\tthis.mapsToClear.clear();\n\t}\n\tcomputeDispatch(computes, name = \"Unnamed\") {\n\t}\n\tgetRenderableHdrFormat(formats = [PIXELFORMAT_111110F, PIXELFORMAT_RGBA16F, PIXELFORMAT_RGBA32F], filterable = true, samples = 1, blendable = false) {\n\t\tfor (let i2 = 0; i2 < formats.length; i2++) {\n\t\t\tconst format = formats[i2];\n\t\t\tswitch (format) {\n\t\t\t\tcase PIXELFORMAT_111110F: {\n\t\t\t\t\tif (this.textureRG11B10Renderable) {\n\t\t\t\t\t\treturn format;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase PIXELFORMAT_R16F:\n\t\t\t\tcase PIXELFORMAT_RG16F:\n\t\t\t\tcase PIXELFORMAT_RGBA16F:\n\t\t\t\t\tif (this.textureHalfFloatRenderable) {\n\t\t\t\t\t\treturn format;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase PIXELFORMAT_R32F:\n\t\t\t\tcase PIXELFORMAT_RG32F:\n\t\t\t\tcase PIXELFORMAT_RGBA32F:\n\t\t\t\t\tif (this.isWebGPU && samples > 1) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tif (this.textureFloatRenderable && (!filterable || this.textureFloatFilterable) && (!blendable || this.textureFloatBlendable)) {\n\t\t\t\t\t\treturn format;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\treturn void 0;\n\t}\n\tvalidateAttributes(shader, vertexBuffers) {\n\t}\n};\n\nvar id7 = 0;\nvar RenderTarget = class {\n\tname;\n\t_device;\n\t_colorBuffer;\n\t_colorBuffers;\n\t_depthBuffer;\n\t_resolveBuffers = null;\n\t_depthResolveBuffer = null;\n\t_depth;\n\t_stencil;\n\t_samples;\n\t_transientColor;\n\t_transientDepth;\n\tautoResolve;\n\t_depthResolveMode = DEPTHRESOLVE_MIN;\n\t_face;\n\t_mipLevel;\n\t_mipmaps;\n\t_width;\n\t_height;\n\t_flipY;\n\t_origin;\n\tconstructor(options2 = {}) {\n\t\tthis.id = id7++;\n\t\tconst device = options2.colorBuffer?.device ?? options2.colorBuffers?.[0].device ?? options2.depthBuffer?.device ?? options2.graphicsDevice;\n\t\tthis._device = device;\n\t\tconst { maxSamples } = this._device;\n\t\tconst suppliedColorBuffers = options2.colorBuffers ?? (options2.colorBuffer ? [options2.colorBuffer] : void 0);\n\t\tconst msColorBuffer = suppliedColorBuffers?.find((colorBuffer) => colorBuffer?.samples > 1);\n\t\tconst msDepthBuffer = (options2.depthBuffer?.samples ?? 1) > 1 ? options2.depthBuffer : void 0;\n\t\tconst msBuffer = msColorBuffer ?? msDepthBuffer;\n\t\tconst explicitMsaa = !!msBuffer;\n\t\tif (explicitMsaa) {\n\t\t\tthis._samples = msBuffer.samples;\n\t\t} else {\n\t\t\tthis._samples = Math.min(options2.samples ?? 1, maxSamples);\n\t\t\tif (device.isWebGPU) {\n\t\t\t\tthis._samples = this._samples > 1 ? maxSamples : 1;\n\t\t\t}\n\t\t}\n\t\tthis._colorBuffer = options2.colorBuffer;\n\t\tif (options2.colorBuffer) {\n\t\t\tthis._colorBuffers = [options2.colorBuffer];\n\t\t}\n\t\tthis._depthBuffer = options2.depthBuffer;\n\t\tthis._face = options2.face ?? 0;\n\t\tif (this._depthBuffer) {\n\t\t\tconst format = this._depthBuffer._format;\n\t\t\tif (format === PIXELFORMAT_DEPTH || format === PIXELFORMAT_DEPTH16) {\n\t\t\t\tthis._depth = true;\n\t\t\t\tthis._stencil = false;\n\t\t\t} else if (format === PIXELFORMAT_DEPTHSTENCIL) {\n\t\t\t\tthis._depth = true;\n\t\t\t\tthis._stencil = true;\n\t\t\t} else if (format === PIXELFORMAT_R32F && this._depthBuffer.device.isWebGPU && this._samples > 1) {\n\t\t\t\tthis._depth = true;\n\t\t\t\tthis._stencil = false;\n\t\t\t} else {\n\t\t\t\tthis._depth = false;\n\t\t\t\tthis._stencil = false;\n\t\t\t}\n\t\t} else {\n\t\t\tthis._depth = options2.depth ?? true;\n\t\t\tthis._stencil = options2.stencil ?? false;\n\t\t}\n\t\tif (options2.colorBuffers) {\n\t\t\tif (!this._colorBuffers) {\n\t\t\t\tthis._colorBuffers = [...options2.colorBuffers];\n\t\t\t\tthis._colorBuffer = options2.colorBuffers[0];\n\t\t\t}\n\t\t}\n\t\tconst resolveOption = options2.resolveBuffers ?? (options2.resolveBuffer !== void 0 ? [options2.resolveBuffer] : void 0);\n\t\tif (resolveOption) {\n\t\t\tif (explicitMsaa) {\n\t\t\t\tthis._resolveBuffers = [...resolveOption];\n\t\t\t} else {\n\t\t\t}\n\t\t}\n\t\tif (options2.depthResolveBuffer) {\n\t\t\tif (msDepthBuffer) {\n\t\t\t\tthis._depthResolveBuffer = options2.depthResolveBuffer;\n\t\t\t} else {\n\t\t\t}\n\t\t}\n\t\tthis.autoResolve = options2.autoResolve ?? true;\n\t\tthis.name = options2.name;\n\t\tif (!this.name) {\n\t\t\tthis.name = this._colorBuffer?.name;\n\t\t}\n\t\tif (!this.name) {\n\t\t\tthis.name = this._depthBuffer?.name;\n\t\t}\n\t\tif (!this.name) {\n\t\t\tthis.name = \"Untitled\";\n\t\t}\n\t\tthis.depthResolveMode = options2.depthResolveMode ?? DEPTHRESOLVE_MIN;\n\t\tconst transientSupported = !!this._device.supportsTransientAttachments;\n\t\tthis._transientColor = (options2.transientColor ?? false) && transientSupported && this._samples > 1 && !explicitMsaa;\n\t\tif ((options2.transientColor ?? false) && explicitMsaa) {\n\t\t}\n\t\tthis._transientDepth = (options2.transientDepth ?? false) && transientSupported && !this._depthBuffer;\n\t\tif ((options2.transientDepth ?? false) && this._depthBuffer) {\n\t\t}\n\t\tif (options2.origin === RENDERTARGET_ORIGIN_TOP) {\n\t\t\tthis._flipY = !device.isWebGPU;\n\t\t\tthis._origin = RENDERTARGET_ORIGIN_TOP;\n\t\t} else if (options2.origin === RENDERTARGET_ORIGIN_BOTTOM) {\n\t\t\tthis._flipY = device.isWebGPU;\n\t\t\tthis._origin = RENDERTARGET_ORIGIN_BOTTOM;\n\t\t} else if (options2.origin === RENDERTARGET_ORIGIN_NATIVE) {\n\t\t\tthis._flipY = false;\n\t\t\tthis._origin = RENDERTARGET_ORIGIN_NATIVE;\n\t\t} else {\n\t\t\tif (options2.flipY !== void 0) {\n\t\t\t}\n\t\t\tthis._flipY = options2.flipY ?? false;\n\t\t\tthis._origin = this._flipY ? device.isWebGPU ? RENDERTARGET_ORIGIN_BOTTOM : RENDERTARGET_ORIGIN_TOP : RENDERTARGET_ORIGIN_NATIVE;\n\t\t}\n\t\tthis._mipLevel = options2.mipLevel ?? 0;\n\t\tif (this._mipLevel > 0 && explicitMsaa) {\n\t\t\tthis._mipLevel = 0;\n\t\t}\n\t\tif (this._mipLevel > 0 && this._depth) {\n\t\t\tthis._mipLevel = 0;\n\t\t}\n\t\tthis._mipmaps = options2.mipLevel === void 0;\n\t\tthis.evaluateDimensions();\n\t\tthis.validateMrt();\n\t\tthis.impl = device.createRenderTargetImpl(this);\n\t}\n\tdestroy() {\n\t\tconst device = this._device;\n\t\tif (device) {\n\t\t\tdevice.targets.delete(this);\n\t\t\tif (device.renderTarget === this) {\n\t\t\t\tdevice.setRenderTarget(null);\n\t\t\t}\n\t\t\tthis.destroyFrameBuffers();\n\t\t}\n\t}\n\tdestroyFrameBuffers() {\n\t\tconst device = this._device;\n\t\tif (device) {\n\t\t\tthis.impl.destroy(device);\n\t\t}\n\t}\n\tdestroyTextureBuffers() {\n\t\tthis._depthBuffer?.destroy();\n\t\tthis._depthBuffer = null;\n\t\tthis._colorBuffers?.forEach((colorBuffer) => {\n\t\t\tcolorBuffer.destroy();\n\t\t});\n\t\tthis._colorBuffers = null;\n\t\tthis._colorBuffer = null;\n\t\tthis._resolveBuffers?.forEach((resolveBuffer) => {\n\t\t\tresolveBuffer?.destroy();\n\t\t});\n\t\tthis._resolveBuffers = null;\n\t\tthis._depthResolveBuffer?.destroy();\n\t\tthis._depthResolveBuffer = null;\n\t}\n\tresize(width, height) {\n\t\tif (this.mipLevel > 0) {\n\t\t\treturn;\n\t\t}\n\t\tthis._depthBuffer?.resize(width, height);\n\t\tthis._colorBuffers?.forEach((colorBuffer) => {\n\t\t\tcolorBuffer.resize(width, height);\n\t\t});\n\t\tthis._resolveBuffers?.forEach((resolveBuffer) => {\n\t\t\tresolveBuffer?.resize(width, height);\n\t\t});\n\t\tthis._depthResolveBuffer?.resize(width, height);\n\t\tif (this._width !== width || this._height !== height) {\n\t\t\tthis.destroyFrameBuffers();\n\t\t\tconst device = this._device;\n\t\t\tif (device.renderTarget === this) {\n\t\t\t\tdevice.setRenderTarget(null);\n\t\t\t}\n\t\t\tthis.evaluateDimensions();\n\t\t\tthis.validateMrt();\n\t\t\tthis.impl = device.createRenderTargetImpl(this);\n\t\t}\n\t}\n\tvalidateMrt() {\n\t}\n\tevaluateDimensions() {\n\t\tconst buffer = this._colorBuffer ?? this._depthBuffer;\n\t\tif (buffer) {\n\t\t\tthis._width = buffer.width;\n\t\t\tthis._height = buffer.height;\n\t\t\tif (this._mipLevel > 0) {\n\t\t\t\tthis._width = TextureUtils.calcLevelDimension(this._width, this._mipLevel);\n\t\t\t\tthis._height = TextureUtils.calcLevelDimension(this._height, this._mipLevel);\n\t\t\t}\n\t\t}\n\t}\n\tinit() {\n\t\tthis.impl.init(this._device, this);\n\t}\n\tget initialized() {\n\t\treturn this.impl.initialized;\n\t}\n\tget device() {\n\t\treturn this._device;\n\t}\n\tloseContext() {\n\t\tthis.impl.loseContext();\n\t}\n\tresolve(color3 = true, depth = !!this._depthBuffer) {\n\t\tif (this._device && this._samples > 1) {\n\t\t\tthis.impl.resolve(this._device, this, color3, depth);\n\t\t}\n\t}\n\tcopy(source, color3, depth) {\n\t\tif (!this._device) {\n\t\t\tif (source._device) {\n\t\t\t\tthis._device = source._device;\n\t\t\t} else {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\tconst success = this._device.copyRenderTarget(source, this, color3, depth);\n\t\treturn success;\n\t}\n\tset flipY(value) {\n\t\tthis._flipY = value;\n\t\tthis._origin = value ? this._device.isWebGPU ? RENDERTARGET_ORIGIN_BOTTOM : RENDERTARGET_ORIGIN_TOP : RENDERTARGET_ORIGIN_NATIVE;\n\t}\n\tget flipY() {\n\t\treturn this._flipY;\n\t}\n\tget origin() {\n\t\treturn this._origin;\n\t}\n\tget samples() {\n\t\treturn this._samples;\n\t}\n\tset depthResolveMode(value) {\n\t\tthis._depthResolveMode = value;\n\t}\n\tget depthResolveMode() {\n\t\treturn this._depthResolveMode;\n\t}\n\tget transientColor() {\n\t\treturn this._transientColor;\n\t}\n\tget transientDepth() {\n\t\treturn this._transientDepth;\n\t}\n\tget depth() {\n\t\treturn this._depth;\n\t}\n\tget stencil() {\n\t\treturn this._stencil;\n\t}\n\tget colorBuffer() {\n\t\treturn this._colorBuffer;\n\t}\n\tget colorBufferCount() {\n\t\treturn this._colorBuffers?.length ?? 0;\n\t}\n\tgetColorBuffer(index) {\n\t\treturn this._colorBuffers?.[index];\n\t}\n\tget resolveBuffer() {\n\t\treturn this._resolveBuffers?.[0] ?? null;\n\t}\n\tgetResolveBuffer(index = 0) {\n\t\treturn this._resolveBuffers?.[index] ?? null;\n\t}\n\tget depthBuffer() {\n\t\treturn this._depthBuffer;\n\t}\n\tget depthResolveBuffer() {\n\t\treturn this._depthResolveBuffer;\n\t}\n\tget face() {\n\t\treturn this._face;\n\t}\n\tget mipLevel() {\n\t\treturn this._mipLevel;\n\t}\n\tget mipmaps() {\n\t\treturn this._mipmaps;\n\t}\n\tget width() {\n\t\treturn this._width ?? this._device.width;\n\t}\n\tget height() {\n\t\treturn this._height ?? this._device.height;\n\t}\n\tset _glFrameBuffer(value) {\n\t}\n\tget _glFrameBuffer() {\n\t\treturn this.impl._glFrameBuffer;\n\t}\n\tisColorBufferSrgb(index = 0) {\n\t\tif (this.device.backBuffer === this) {\n\t\t\treturn isSrgbPixelFormat(this.device.backBufferFormat);\n\t\t}\n\t\tconst colorBuffer = this.getColorBuffer(index);\n\t\treturn colorBuffer ? isSrgbPixelFormat(colorBuffer.format) : false;\n\t}\n};\n\nvar WebgpuBindGroup = class {\n\tbindGroup;\n\tupdate(bindGroup) {\n\t\tthis.destroy();\n\t\tconst device = bindGroup.device;\n\t\tconst desc = this.createDescriptor(device, bindGroup);\n\t\tthis.bindGroup = device.wgpu.createBindGroup(desc);\n\t}\n\tdestroy() {\n\t\tthis.bindGroup = null;\n\t}\n\tcreateDescriptor(device, bindGroup) {\n\t\tconst entries = [];\n\t\tconst format = bindGroup.format;\n\t\tconst uniformBufferFormats = bindGroup.format.uniformBufferFormats;\n\t\tbindGroup.uniformBuffers.forEach((ub, i2) => {\n\t\t\tconst slot = uniformBufferFormats[i2].slot;\n\t\t\tconst buffer = ub.persistent ? ub.impl.buffer : ub.allocation.gpuBuffer.buffer;\n\t\t\tentries.push({\n\t\t\t\tbinding: slot,\n\t\t\t\tresource: {\n\t\t\t\t\tbuffer,\n\t\t\t\t\toffset: 0,\n\t\t\t\t\tsize: ub.format.byteSize\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\tconst textureFormats = bindGroup.format.textureFormats;\n\t\tbindGroup.textures.forEach((value, textureIndex) => {\n\t\t\tconst isTextureView = value instanceof TextureView;\n\t\t\tconst texture = isTextureView ? value.texture : value;\n\t\t\tconst wgpuTexture = texture.impl;\n\t\t\tconst textureFormat = format.textureFormats[textureIndex];\n\t\t\tconst slot = textureFormats[textureIndex].slot;\n\t\t\tconst view = wgpuTexture.getView(device, isTextureView ? value : void 0);\n\t\t\tentries.push({\n\t\t\t\tbinding: slot,\n\t\t\t\tresource: view\n\t\t\t});\n\t\t\tif (textureFormat.hasSampler) {\n\t\t\t\tconst sampler = wgpuTexture.getSampler(device, textureFormat.sampleType);\n\t\t\t\tentries.push({\n\t\t\t\t\tbinding: slot + 1,\n\t\t\t\t\tresource: sampler\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\tconst storageTextureFormats = bindGroup.format.storageTextureFormats;\n\t\tbindGroup.storageTextures.forEach((value, textureIndex) => {\n\t\t\tconst isTextureView = value instanceof TextureView;\n\t\t\tconst texture = isTextureView ? value.texture : value;\n\t\t\tconst wgpuTexture = texture.impl;\n\t\t\tconst slot = storageTextureFormats[textureIndex].slot;\n\t\t\tconst view = wgpuTexture.getView(device, isTextureView ? value : void 0);\n\t\t\tentries.push({\n\t\t\t\tbinding: slot,\n\t\t\t\tresource: view\n\t\t\t});\n\t\t});\n\t\tconst storageBufferFormats = bindGroup.format.storageBufferFormats;\n\t\tbindGroup.storageBuffers.forEach((buffer, bufferIndex) => {\n\t\t\tconst wgpuBuffer = buffer.impl.buffer;\n\t\t\tconst slot = storageBufferFormats[bufferIndex].slot;\n\t\t\tentries.push({\n\t\t\t\tbinding: slot,\n\t\t\t\tresource: {\n\t\t\t\t\tbuffer: wgpuBuffer\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\tconst desc = {\n\t\t\tlayout: bindGroup.format.impl.bindGroupLayout,\n\t\t\tentries\n\t\t};\n\t\treturn desc;\n\t}\n};\n\nvar WebgpuUtils = class {\n\t// converts a combination of SHADER_STAGE_* into GPUShaderStage.*\n\tstatic shaderStage(stage) {\n\t\tlet ret = 0;\n\t\tif (stage & SHADERSTAGE_VERTEX) ret |= GPUShaderStage.VERTEX;\n\t\tif (stage & SHADERSTAGE_FRAGMENT) ret |= GPUShaderStage.FRAGMENT;\n\t\tif (stage & SHADERSTAGE_COMPUTE) ret |= GPUShaderStage.COMPUTE;\n\t\treturn ret;\n\t}\n};\n\nvar gpuTextureFormats = [];\ngpuTextureFormats[PIXELFORMAT_A8] = \"\";\ngpuTextureFormats[PIXELFORMAT_L8] = \"\";\ngpuTextureFormats[PIXELFORMAT_LA8] = \"\";\ngpuTextureFormats[PIXELFORMAT_R8] = \"r8unorm\";\ngpuTextureFormats[PIXELFORMAT_RG8] = \"rg8unorm\";\ngpuTextureFormats[PIXELFORMAT_RGB565] = \"\";\ngpuTextureFormats[PIXELFORMAT_RGBA5551] = \"\";\ngpuTextureFormats[PIXELFORMAT_RGBA4] = \"\";\ngpuTextureFormats[PIXELFORMAT_RGB8] = \"rgba8unorm\";\ngpuTextureFormats[PIXELFORMAT_RGBA8] = \"rgba8unorm\";\ngpuTextureFormats[PIXELFORMAT_DXT1] = \"bc1-rgba-unorm\";\ngpuTextureFormats[PIXELFORMAT_DXT3] = \"bc2-rgba-unorm\";\ngpuTextureFormats[PIXELFORMAT_DXT5] = \"bc3-rgba-unorm\";\ngpuTextureFormats[PIXELFORMAT_RGB16F] = \"\";\ngpuTextureFormats[PIXELFORMAT_RGBA16F] = \"rgba16float\";\ngpuTextureFormats[PIXELFORMAT_R16F] = \"r16float\";\ngpuTextureFormats[PIXELFORMAT_RG16F] = \"rg16float\";\ngpuTextureFormats[PIXELFORMAT_RGB32F] = \"\";\ngpuTextureFormats[PIXELFORMAT_RGBA32F] = \"rgba32float\";\ngpuTextureFormats[PIXELFORMAT_R32F] = \"r32float\";\ngpuTextureFormats[PIXELFORMAT_RG32F] = \"rg32float\";\ngpuTextureFormats[PIXELFORMAT_DEPTH] = \"depth32float\";\ngpuTextureFormats[PIXELFORMAT_DEPTH16] = \"depth16unorm\";\ngpuTextureFormats[PIXELFORMAT_DEPTHSTENCIL] = \"depth24plus-stencil8\";\ngpuTextureFormats[PIXELFORMAT_111110F] = \"rg11b10ufloat\";\ngpuTextureFormats[PIXELFORMAT_SRGB8] = \"\";\ngpuTextureFormats[PIXELFORMAT_SRGBA8] = \"rgba8unorm-srgb\";\ngpuTextureFormats[PIXELFORMAT_ETC1] = \"\";\ngpuTextureFormats[PIXELFORMAT_ETC2_RGB] = \"etc2-rgb8unorm\";\ngpuTextureFormats[PIXELFORMAT_ETC2_RGBA] = \"etc2-rgba8unorm\";\ngpuTextureFormats[PIXELFORMAT_PVRTC_2BPP_RGB_1] = \"\";\ngpuTextureFormats[PIXELFORMAT_PVRTC_2BPP_RGBA_1] = \"\";\ngpuTextureFormats[PIXELFORMAT_PVRTC_4BPP_RGB_1] = \"\";\ngpuTextureFormats[PIXELFORMAT_PVRTC_4BPP_RGBA_1] = \"\";\ngpuTextureFormats[PIXELFORMAT_ASTC_4x4] = \"astc-4x4-unorm\";\ngpuTextureFormats[PIXELFORMAT_ATC_RGB] = \"\";\ngpuTextureFormats[PIXELFORMAT_ATC_RGBA] = \"\";\ngpuTextureFormats[PIXELFORMAT_BGRA8] = \"bgra8unorm\";\ngpuTextureFormats[PIXELFORMAT_SBGRA8] = \"bgra8unorm-srgb\";\ngpuTextureFormats[PIXELFORMAT_R8I] = \"r8sint\";\ngpuTextureFormats[PIXELFORMAT_R8U] = \"r8uint\";\ngpuTextureFormats[PIXELFORMAT_R16I] = \"r16sint\";\ngpuTextureFormats[PIXELFORMAT_R16U] = \"r16uint\";\ngpuTextureFormats[PIXELFORMAT_R32I] = \"r32sint\";\ngpuTextureFormats[PIXELFORMAT_R32U] = \"r32uint\";\ngpuTextureFormats[PIXELFORMAT_RG8I] = \"rg8sint\";\ngpuTextureFormats[PIXELFORMAT_RG8U] = \"rg8uint\";\ngpuTextureFormats[PIXELFORMAT_RG16I] = \"rg16sint\";\ngpuTextureFormats[PIXELFORMAT_RG16U] = \"rg16uint\";\ngpuTextureFormats[PIXELFORMAT_RG32I] = \"rg32sint\";\ngpuTextureFormats[PIXELFORMAT_RG32U] = \"rg32uint\";\ngpuTextureFormats[PIXELFORMAT_RGBA8I] = \"rgba8sint\";\ngpuTextureFormats[PIXELFORMAT_RGBA8U] = \"rgba8uint\";\ngpuTextureFormats[PIXELFORMAT_RGBA16I] = \"rgba16sint\";\ngpuTextureFormats[PIXELFORMAT_RGBA16U] = \"rgba16uint\";\ngpuTextureFormats[PIXELFORMAT_RGBA32I] = \"rgba32sint\";\ngpuTextureFormats[PIXELFORMAT_RGBA32U] = \"rgba32uint\";\ngpuTextureFormats[PIXELFORMAT_BC6F] = \"bc6h-rgb-float\";\ngpuTextureFormats[PIXELFORMAT_BC6UF] = \"bc6h-rgb-ufloat\";\ngpuTextureFormats[PIXELFORMAT_BC7] = \"bc7-rgba-unorm\";\ngpuTextureFormats[PIXELFORMAT_RGB9E5] = \"rgb9e5ufloat\";\ngpuTextureFormats[PIXELFORMAT_RG8S] = \"rg8snorm\";\ngpuTextureFormats[PIXELFORMAT_RGBA8S] = \"rgba8snorm\";\ngpuTextureFormats[PIXELFORMAT_RGB10A2] = \"rgb10a2unorm\";\ngpuTextureFormats[PIXELFORMAT_RGB10A2U] = \"rgb10a2uint\";\ngpuTextureFormats[PIXELFORMAT_DXT1_SRGB] = \"bc1-rgba-unorm-srgb\";\ngpuTextureFormats[PIXELFORMAT_DXT3_SRGBA] = \"bc2-rgba-unorm-srgb\";\ngpuTextureFormats[PIXELFORMAT_DXT5_SRGBA] = \"bc3-rgba-unorm-srgb\";\ngpuTextureFormats[PIXELFORMAT_ETC2_SRGB] = \"etc2-rgb8unorm-srgb\";\ngpuTextureFormats[PIXELFORMAT_ETC2_SRGBA] = \"etc2-rgba8unorm-srgb\";\ngpuTextureFormats[PIXELFORMAT_BC7_SRGBA] = \"bc7-rgba-unorm-srgb\";\ngpuTextureFormats[PIXELFORMAT_ASTC_4x4_SRGB] = \"astc-4x4-unorm-srgb\";\n\nvar samplerTypes = [];\nsamplerTypes[SAMPLETYPE_FLOAT] = \"filtering\";\nsamplerTypes[SAMPLETYPE_UNFILTERABLE_FLOAT] = \"non-filtering\";\nsamplerTypes[SAMPLETYPE_DEPTH] = \"comparison\";\nsamplerTypes[SAMPLETYPE_INT] = \"comparison\";\nsamplerTypes[SAMPLETYPE_UINT] = \"comparison\";\nvar sampleTypes = [];\nsampleTypes[SAMPLETYPE_FLOAT] = \"float\";\nsampleTypes[SAMPLETYPE_UNFILTERABLE_FLOAT] = \"unfilterable-float\";\nsampleTypes[SAMPLETYPE_DEPTH] = \"depth\";\nsampleTypes[SAMPLETYPE_INT] = \"sint\";\nsampleTypes[SAMPLETYPE_UINT] = \"uint\";\nvar stringIds6 = new StringIds();\nvar WebgpuBindGroupFormat = class {\n\tconstructor(bindGroupFormat) {\n\t\tconst device = bindGroupFormat.device;\n\t\tconst { key, desc } = this.createDescriptor(bindGroupFormat);\n\t\tthis.key = stringIds6.get(key);\n\t\tthis.bindGroupLayout = device.wgpu.createBindGroupLayout(desc);\n\t}\n\tdestroy() {\n\t\tthis.bindGroupLayout = null;\n\t}\n\tloseContext() {\n\t}\n\tcreateDescriptor(bindGroupFormat) {\n\t\tconst entries = [];\n\t\tlet key = \"\";\n\t\tbindGroupFormat.uniformBufferFormats.forEach((bufferFormat) => {\n\t\t\tconst visibility = WebgpuUtils.shaderStage(bufferFormat.visibility);\n\t\t\tkey += `#${bufferFormat.slot}U:${visibility}`;\n\t\t\tentries.push({\n\t\t\t\tbinding: bufferFormat.slot,\n\t\t\t\tvisibility,\n\t\t\t\tbuffer: {\n\t\t\t\t\ttype: \"uniform\",\n\t\t\t\t\t// \"uniform\", \"storage\", \"read-only-storage\"\n\t\t\t\t\t// whether this binding requires a dynamic offset\n\t\t\t\t\t// currently all UBs are dynamic and need the offset\n\t\t\t\t\thasDynamicOffset: true\n\t\t\t\t\t// defaults to 0 meaning no validation, can do early size validation using it\n\t\t\t\t\t// minBindingSize\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\tbindGroupFormat.textureFormats.forEach((textureFormat) => {\n\t\t\tconst visibility = WebgpuUtils.shaderStage(textureFormat.visibility);\n\t\t\tconst sampleType = textureFormat.sampleType;\n\t\t\tconst viewDimension = textureFormat.textureDimension;\n\t\t\tconst multisampled = !!textureFormat.multisampled;\n\t\t\tconst gpuSampleType = sampleTypes[sampleType];\n\t\t\tif (multisampled) {\n\t\t\t}\n\t\t\tkey += `#${textureFormat.slot}T:${visibility}-${gpuSampleType}-${viewDimension}-${multisampled}`;\n\t\t\tentries.push({\n\t\t\t\tbinding: textureFormat.slot,\n\t\t\t\tvisibility,\n\t\t\t\ttexture: {\n\t\t\t\t\t// Indicates the type required for texture views bound to this binding.\n\t\t\t\t\t// \"float\", \"unfilterable-float\", \"depth\", \"sint\", \"uint\",\n\t\t\t\t\tsampleType: gpuSampleType,\n\t\t\t\t\t// Indicates the required dimension for texture views bound to this binding.\n\t\t\t\t\t// \"1d\", \"2d\", \"2d-array\", \"cube\", \"cube-array\", \"3d\"\n\t\t\t\t\tviewDimension,\n\t\t\t\t\t// Indicates whether or not texture views bound to this binding must be multisampled\n\t\t\t\t\tmultisampled\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (textureFormat.hasSampler) {\n\t\t\t\tconst gpuSamplerType = samplerTypes[sampleType];\n\t\t\t\tkey += `#${textureFormat.slot + 1}S:${visibility}-${gpuSamplerType}`;\n\t\t\t\tentries.push({\n\t\t\t\t\tbinding: textureFormat.slot + 1,\n\t\t\t\t\tvisibility,\n\t\t\t\t\tsampler: {\n\t\t\t\t\t\t// Indicates the required type of a sampler bound to this bindings\n\t\t\t\t\t\t// 'filtering', 'non-filtering', 'comparison'\n\t\t\t\t\t\ttype: gpuSamplerType\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\tbindGroupFormat.storageTextureFormats.forEach((textureFormat) => {\n\t\t\tconst { format, textureDimension } = textureFormat;\n\t\t\tconst { read, write } = textureFormat;\n\t\t\tkey += `#${textureFormat.slot}ST:${format}-${textureDimension}-${read ? \"r1\" : \"r0\"}-${write ? \"w1\" : \"w0\"}`;\n\t\t\tentries.push({\n\t\t\t\tbinding: textureFormat.slot,\n\t\t\t\tvisibility: GPUShaderStage.COMPUTE,\n\t\t\t\tstorageTexture: {\n\t\t\t\t\t// The access mode for this binding, indicating readability and writability.\n\t\t\t\t\t// 'write-only' is always support, 'read-write' and 'read-only' optionally\n\t\t\t\t\taccess: read ? write ? \"read-write\" : \"read-only\" : \"write-only\",\n\t\t\t\t\t// The required format of texture views bound to this binding.\n\t\t\t\t\tformat: gpuTextureFormats[format],\n\t\t\t\t\t// Indicates the required dimension for texture views bound to this binding.\n\t\t\t\t\t// \"1d\", \"2d\", \"2d-array\", \"cube\", \"cube-array\", \"3d\"\n\t\t\t\t\tviewDimension: textureDimension\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\tbindGroupFormat.storageBufferFormats.forEach((bufferFormat) => {\n\t\t\tconst readOnly = bufferFormat.readOnly;\n\t\t\tconst visibility = WebgpuUtils.shaderStage(bufferFormat.visibility);\n\t\t\tkey += `#${bufferFormat.slot}SB:${visibility}-${readOnly ? \"ro\" : \"rw\"}`;\n\t\t\tentries.push({\n\t\t\t\tbinding: bufferFormat.slot,\n\t\t\t\tvisibility,\n\t\t\t\tbuffer: {\n\t\t\t\t\t// \"storage\", \"read-only-storage\"\n\t\t\t\t\ttype: readOnly ? \"read-only-storage\" : \"storage\"\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\tconst desc = {\n\t\t\tentries\n\t\t};\n\t\treturn {\n\t\t\tkey,\n\t\t\tdesc\n\t\t};\n\t}\n};\n\nvar WebgpuBuffer = class {\n\tbuffer = null;\n\tusageFlags = 0;\n\tconstructor(usageFlags = 0) {\n\t\tthis.usageFlags = usageFlags;\n\t}\n\tdestroy(device) {\n\t\tif (this.buffer) {\n\t\t\tdevice.deferDestroy(this.buffer);\n\t\t\tthis.buffer = null;\n\t\t}\n\t}\n\tget initialized() {\n\t\treturn !!this.buffer;\n\t}\n\tloseContext() {\n\t\tthis.buffer = null;\n\t}\n\tallocate(device, size) {\n\t\tthis.buffer = device.wgpu.createBuffer({\n\t\t\tsize,\n\t\t\tusage: this.usageFlags\n\t\t});\n\t}\n\tunlock(device, storage) {\n\t\tconst wgpu = device.wgpu;\n\t\tif (!this.buffer) {\n\t\t\tconst size = storage.byteLength + 3 & ~3;\n\t\t\tthis.usageFlags |= GPUBufferUsage.COPY_DST;\n\t\t\tthis.allocate(device, size);\n\t\t}\n\t\tconst srcOffset = storage.byteOffset ?? 0;\n\t\tconst srcData = new Uint8Array(storage.buffer ?? storage, srcOffset, storage.byteLength);\n\t\tconst data2 = new Uint8Array(this.buffer.size);\n\t\tdata2.set(srcData);\n\t\twgpu.queue.writeBuffer(this.buffer, 0, data2, 0, data2.length);\n\t}\n\tread(device, offset3, size, data2, immediate) {\n\t\treturn device.readStorageBuffer(this, offset3, size, data2, immediate);\n\t}\n\twrite(device, bufferOffset, data2, dataOffset, size) {\n\t\tdevice.writeStorageBuffer(this, bufferOffset, data2, dataOffset, size);\n\t}\n\tclear(device, offset3, size) {\n\t\tdevice.clearStorageBuffer(this, offset3, size);\n\t}\n};\n\nvar WebgpuIndexBuffer = class extends WebgpuBuffer {\n\tformat = null;\n\tconstructor(indexBuffer, options2) {\n\t\tsuper(BUFFERUSAGE_INDEX | (options2?.storage ? BUFFERUSAGE_STORAGE : 0));\n\t\tthis.format = indexBuffer.format === INDEXFORMAT_UINT16 ? \"uint16\" : \"uint32\";\n\t}\n\tunlock(indexBuffer) {\n\t\tconst device = indexBuffer.device;\n\t\tsuper.unlock(device, indexBuffer.storage);\n\t}\n};\n\nvar array = {\n\t// helper function to compare two arrays for equality\n\tequals(arr1, arr2) {\n\t\tif (arr1.length !== arr2.length) {\n\t\t\treturn false;\n\t\t}\n\t\tfor (let i2 = 0; i2 < arr1.length; i2++) {\n\t\t\tif (arr1[i2] !== arr2[i2]) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n};\n\nvar gpuVertexFormats = [];\ngpuVertexFormats[TYPE_INT8] = \"sint8\";\ngpuVertexFormats[TYPE_UINT8] = \"uint8\";\ngpuVertexFormats[TYPE_INT16] = \"sint16\";\ngpuVertexFormats[TYPE_UINT16] = \"uint16\";\ngpuVertexFormats[TYPE_INT32] = \"sint32\";\ngpuVertexFormats[TYPE_UINT32] = \"uint32\";\ngpuVertexFormats[TYPE_FLOAT32] = \"float32\";\ngpuVertexFormats[TYPE_FLOAT16] = \"float16\";\nvar gpuVertexFormatsNormalized = [];\ngpuVertexFormatsNormalized[TYPE_INT8] = \"snorm8\";\ngpuVertexFormatsNormalized[TYPE_UINT8] = \"unorm8\";\ngpuVertexFormatsNormalized[TYPE_INT16] = \"snorm16\";\ngpuVertexFormatsNormalized[TYPE_UINT16] = \"unorm16\";\ngpuVertexFormatsNormalized[TYPE_INT32] = \"sint32\";\ngpuVertexFormatsNormalized[TYPE_UINT32] = \"uint32\";\ngpuVertexFormatsNormalized[TYPE_FLOAT32] = \"float32\";\ngpuVertexFormatsNormalized[TYPE_FLOAT16] = \"float16\";\nvar WebgpuVertexBufferLayout = class {\n\tcache = /* @__PURE__ */ new Map();\n\tget(vertexFormat0, vertexFormat1 = null) {\n\t\tconst key = this.getKey(vertexFormat0, vertexFormat1);\n\t\tlet layout = this.cache.get(key);\n\t\tif (!layout) {\n\t\t\tlayout = this.create(vertexFormat0, vertexFormat1);\n\t\t\tthis.cache.set(key, layout);\n\t\t}\n\t\treturn layout;\n\t}\n\tgetKey(vertexFormat0, vertexFormat1 = null) {\n\t\treturn `${vertexFormat0?.renderingHashString}-${vertexFormat1?.renderingHashString}`;\n\t}\n\tcreate(vertexFormat0, vertexFormat1) {\n\t\tconst layout = [];\n\t\tconst addFormat = (format) => {\n\t\t\tconst interleaved = format.interleaved;\n\t\t\tconst stepMode = format.instancing ? \"instance\" : \"vertex\";\n\t\t\tlet attributes = [];\n\t\t\tconst elementCount = format.elements.length;\n\t\t\tfor (let i2 = 0; i2 < elementCount; i2++) {\n\t\t\t\tconst element = format.elements[i2];\n\t\t\t\tconst location = semanticToLocation[element.name];\n\t\t\t\tconst formatTable = element.normalize ? gpuVertexFormatsNormalized : gpuVertexFormats;\n\t\t\t\tattributes.push({\n\t\t\t\t\tshaderLocation: location,\n\t\t\t\t\toffset: interleaved ? element.offset : 0,\n\t\t\t\t\tformat: `${formatTable[element.dataType]}${element.numComponents > 1 ? `x${element.numComponents}` : \"\"}`\n\t\t\t\t});\n\t\t\t\tif (!interleaved || i2 === elementCount - 1) {\n\t\t\t\t\tlayout.push({\n\t\t\t\t\t\tattributes,\n\t\t\t\t\t\tarrayStride: element.stride,\n\t\t\t\t\t\tstepMode\n\t\t\t\t\t});\n\t\t\t\t\tattributes = [];\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tif (vertexFormat0) {\n\t\t\taddFormat(vertexFormat0);\n\t\t}\n\t\tif (vertexFormat1) {\n\t\t\taddFormat(vertexFormat1);\n\t\t}\n\t\treturn layout;\n\t}\n};\n\nvar _layoutId = 0;\nvar WebgpuPipeline = class {\n\tconstructor(device) {\n\t\tthis.device = device;\n\t}\n\t// TODO: this could be cached using bindGroupKey\n\tgetPipelineLayout(bindGroupFormats) {\n\t\tconst bindGroupLayouts = [];\n\t\tbindGroupFormats.forEach((format) => {\n\t\t\tbindGroupLayouts.push(format.bindGroupLayout);\n\t\t});\n\t\tconst desc = {\n\t\t\tbindGroupLayouts\n\t\t};\n\t\t_layoutId++;\n\t\tconst pipelineLayout = this.device.wgpu.createPipelineLayout(desc);\n\t\treturn pipelineLayout;\n\t}\n};\n\nvar _pipelineId = 0;\nvar _attachmentBlendState = new BlendState();\nvar _alphaToCoverageFormats = /* @__PURE__ */ new Set([\n\t\"rgba8unorm\",\n\t\"rgba8unorm-srgb\",\n\t\"bgra8unorm\",\n\t\"bgra8unorm-srgb\",\n\t\"rgb10a2unorm\",\n\t\"rgba16float\"\n]);\nvar getWriteMask = (blendState) => {\n\tlet writeMask = 0;\n\tif (blendState.redWrite) writeMask |= GPUColorWrite.RED;\n\tif (blendState.greenWrite) writeMask |= GPUColorWrite.GREEN;\n\tif (blendState.blueWrite) writeMask |= GPUColorWrite.BLUE;\n\tif (blendState.alphaWrite) writeMask |= GPUColorWrite.ALPHA;\n\treturn writeMask;\n};\nvar _primitiveTopology = [\n\t\"point-list\",\n\t// PRIMITIVE_POINTS\n\t\"line-list\",\n\t// PRIMITIVE_LINES\n\tvoid 0,\n\t// PRIMITIVE_LINELOOP\n\t\"line-strip\",\n\t// PRIMITIVE_LINESTRIP\n\t\"triangle-list\",\n\t// PRIMITIVE_TRIANGLES\n\t\"triangle-strip\",\n\t// PRIMITIVE_TRISTRIP\n\tvoid 0\n\t// PRIMITIVE_TRIFAN\n];\nvar _blendOperation = [\n\t\"add\",\n\t// BLENDEQUATION_ADD\n\t\"subtract\",\n\t// BLENDEQUATION_SUBTRACT\n\t\"reverse-subtract\",\n\t// BLENDEQUATION_REVERSE_SUBTRACT\n\t\"min\",\n\t// BLENDEQUATION_MIN\n\t\"max\"\n\t// BLENDEQUATION_MAX\n];\nvar _blendFactor = [\n\t\"zero\",\n\t// BLENDMODE_ZERO\n\t\"one\",\n\t// BLENDMODE_ONE\n\t\"src\",\n\t// BLENDMODE_SRC_COLOR\n\t\"one-minus-src\",\n\t// BLENDMODE_ONE_MINUS_SRC_COLOR\n\t\"dst\",\n\t// BLENDMODE_DST_COLOR\n\t\"one-minus-dst\",\n\t// BLENDMODE_ONE_MINUS_DST_COLOR\n\t\"src-alpha\",\n\t// BLENDMODE_SRC_ALPHA\n\t\"src-alpha-saturated\",\n\t// BLENDMODE_SRC_ALPHA_SATURATE\n\t\"one-minus-src-alpha\",\n\t// BLENDMODE_ONE_MINUS_SRC_ALPHA\n\t\"dst-alpha\",\n\t// BLENDMODE_DST_ALPHA\n\t\"one-minus-dst-alpha\",\n\t// BLENDMODE_ONE_MINUS_DST_ALPHA\n\t\"constant\",\n\t// BLENDMODE_CONSTANT\n\t\"one-minus-constant\",\n\t// BLENDMODE_ONE_MINUS_CONSTANT\n\t\"src1\",\n\t// BLENDMODE_SRC1_COLOR\n\t\"one-minus-src1\",\n\t// BLENDMODE_ONE_MINUS_SRC1_COLOR\n\t\"src1-alpha\",\n\t// BLENDMODE_SRC1_ALPHA\n\t\"one-minus-src1-alpha\"\n\t// BLENDMODE_ONE_MINUS_SRC1_ALPHA\n];\nvar _compareFunction = [\n\t\"never\",\n\t// FUNC_NEVER\n\t\"less\",\n\t// FUNC_LESS\n\t\"equal\",\n\t// FUNC_EQUAL\n\t\"less-equal\",\n\t// FUNC_LESSEQUAL\n\t\"greater\",\n\t// FUNC_GREATER\n\t\"not-equal\",\n\t// FUNC_NOTEQUAL\n\t\"greater-equal\",\n\t// FUNC_GREATEREQUAL\n\t\"always\"\n\t// FUNC_ALWAYS\n];\nvar _cullModes = [\n\t\"none\",\n\t// CULLFACE_NONE\n\t\"back\",\n\t// CULLFACE_BACK\n\t\"front\"\n\t// CULLFACE_FRONT\n];\nvar _frontFace = [\n\t\"ccw\",\n\t// FRONTFACE_CCW\n\t\"cw\"\n\t// FRONTFACE_CW\n];\nvar _stencilOps = [\n\t\"keep\",\n\t// STENCILOP_KEEP\n\t\"zero\",\n\t// STENCILOP_ZERO\n\t\"replace\",\n\t// STENCILOP_REPLACE\n\t\"increment-clamp\",\n\t// STENCILOP_INCREMENT\n\t\"increment-wrap\",\n\t// STENCILOP_INCREMENTWRAP\n\t\"decrement-clamp\",\n\t// STENCILOP_DECREMENT\n\t\"decrement-wrap\",\n\t// STENCILOP_DECREMENTWRAP\n\t\"invert\"\n\t// STENCILOP_INVERT\n];\nvar _indexFormat = [\n\t\"\",\n\t// INDEXFORMAT_UINT8\n\t\"uint16\",\n\t// INDEXFORMAT_UINT16\n\t\"uint32\"\n\t// INDEXFORMAT_UINT32\n];\nvar CacheEntry = class {\n\tpipeline;\n\thashes;\n};\nvar WebgpuRenderPipeline = class extends WebgpuPipeline {\n\tlookupHashes = new Uint32Array(16);\n\tconstructor(device) {\n\t\tsuper(device);\n\t\tthis.vertexBufferLayout = new WebgpuVertexBufferLayout();\n\t\tthis.cache = /* @__PURE__ */ new Map();\n\t}\n\tget(primitive2, vertexFormat0, vertexFormat1, ibFormat, shader, renderTarget, bindGroupFormats, blendState, depthState, cullMode, stencilEnabled, stencilFront, stencilBack, frontFace, alphaToCoverage) {\n\t\tconst primitiveType = primitive2.type;\n\t\tif (ibFormat && primitiveType !== PRIMITIVE_LINESTRIP && primitiveType !== PRIMITIVE_TRISTRIP) {\n\t\t\tibFormat = void 0;\n\t\t}\n\t\tconst alphaToCoverageEnabled = this.getAlphaToCoverage(alphaToCoverage, renderTarget);\n\t\tconst lookupHashes2 = this.lookupHashes;\n\t\tlookupHashes2[0] = primitiveType;\n\t\tlookupHashes2[1] = shader.id;\n\t\tlookupHashes2[2] = cullMode;\n\t\tlookupHashes2[3] = depthState.key;\n\t\tlookupHashes2[4] = blendState.key;\n\t\tlookupHashes2[5] = vertexFormat0?.renderingHash ?? 0;\n\t\tlookupHashes2[6] = vertexFormat1?.renderingHash ?? 0;\n\t\tlookupHashes2[7] = renderTarget.impl.key;\n\t\tlookupHashes2[8] = bindGroupFormats[0]?.key ?? 0;\n\t\tlookupHashes2[9] = bindGroupFormats[1]?.key ?? 0;\n\t\tlookupHashes2[10] = bindGroupFormats[2]?.key ?? 0;\n\t\tlookupHashes2[11] = stencilEnabled ? stencilFront.key : 0;\n\t\tlookupHashes2[12] = stencilEnabled ? stencilBack.key : 0;\n\t\tlookupHashes2[13] = ibFormat ?? 0;\n\t\tlookupHashes2[14] = frontFace;\n\t\tlookupHashes2[15] = alphaToCoverageEnabled ? 1 : 0;\n\t\tconst hash = hash32Fnv1a(lookupHashes2);\n\t\tlet cacheEntries = this.cache.get(hash);\n\t\tif (cacheEntries) {\n\t\t\tfor (let i2 = 0; i2 < cacheEntries.length; i2++) {\n\t\t\t\tconst entry = cacheEntries[i2];\n\t\t\t\tif (array.equals(entry.hashes, lookupHashes2)) {\n\t\t\t\t\treturn entry.pipeline;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tconst primitiveTopology = _primitiveTopology[primitiveType];\n\t\tconst pipelineLayout = this.getPipelineLayout(bindGroupFormats);\n\t\tconst vertexBufferLayout = this.vertexBufferLayout.get(vertexFormat0, vertexFormat1);\n\t\tconst cacheEntry = new CacheEntry();\n\t\tcacheEntry.hashes = new Uint32Array(lookupHashes2);\n\t\tcacheEntry.pipeline = this.create(\n\t\t\tprimitiveTopology,\n\t\t\tibFormat,\n\t\t\tshader,\n\t\t\trenderTarget,\n\t\t\tpipelineLayout,\n\t\t\tblendState,\n\t\t\tdepthState,\n\t\t\tvertexBufferLayout,\n\t\t\tcullMode,\n\t\t\tstencilEnabled,\n\t\t\tstencilFront,\n\t\t\tstencilBack,\n\t\t\tfrontFace,\n\t\t\talphaToCoverageEnabled\n\t\t);\n\t\tif (cacheEntries) {\n\t\t\tcacheEntries.push(cacheEntry);\n\t\t} else {\n\t\t\tcacheEntries = [cacheEntry];\n\t\t}\n\t\tthis.cache.set(hash, cacheEntries);\n\t\treturn cacheEntry.pipeline;\n\t}\n\tgetBlend(blendState) {\n\t\tlet blend;\n\t\tif (blendState.blend) {\n\t\t\tblend = {\n\t\t\t\tcolor: {\n\t\t\t\t\toperation: _blendOperation[blendState.colorOp],\n\t\t\t\t\tsrcFactor: _blendFactor[blendState.colorSrcFactor],\n\t\t\t\t\tdstFactor: _blendFactor[blendState.colorDstFactor]\n\t\t\t\t},\n\t\t\t\talpha: {\n\t\t\t\t\toperation: _blendOperation[blendState.alphaOp],\n\t\t\t\t\tsrcFactor: _blendFactor[blendState.alphaSrcFactor],\n\t\t\t\t\tdstFactor: _blendFactor[blendState.alphaDstFactor]\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\treturn blend;\n\t}\n\tgetAlphaToCoverage(alphaToCoverage, renderTarget) {\n\t\tif (!alphaToCoverage || renderTarget.samples <= 1) {\n\t\t\treturn false;\n\t\t}\n\t\tconst format = renderTarget.impl.colorAttachments[0]?.format;\n\t\tconst supported = _alphaToCoverageFormats.has(format) || format === \"rgba32float\" && this.device.textureFloatBlendable;\n\t\tif (!supported) {\n\t\t}\n\t\treturn supported;\n\t}\n\tgetDepthStencil(depthState, renderTarget, stencilEnabled, stencilFront, stencilBack, primitiveTopology) {\n\t\tlet depthStencil;\n\t\tconst { depth, stencil } = renderTarget;\n\t\tif (depth || stencil) {\n\t\t\tdepthStencil = {\n\t\t\t\tformat: renderTarget.impl.depthAttachment.format\n\t\t\t};\n\t\t\tif (depth) {\n\t\t\t\tdepthStencil.depthWriteEnabled = depthState.write;\n\t\t\t\tdepthStencil.depthCompare = _compareFunction[depthState.func];\n\t\t\t\tconst biasAllowed = primitiveTopology === \"triangle-list\" || primitiveTopology === \"triangle-strip\";\n\t\t\t\tdepthStencil.depthBias = biasAllowed ? depthState.depthBias : 0;\n\t\t\t\tdepthStencil.depthBiasSlopeScale = biasAllowed ? depthState.depthBiasSlope : 0;\n\t\t\t} else {\n\t\t\t\tdepthStencil.depthWriteEnabled = false;\n\t\t\t\tdepthStencil.depthCompare = \"always\";\n\t\t\t}\n\t\t\tif (stencil && stencilEnabled) {\n\t\t\t\tdepthStencil.stencilReadMas = stencilFront.readMask;\n\t\t\t\tdepthStencil.stencilWriteMask = stencilFront.writeMask;\n\t\t\t\tdepthStencil.stencilFront = {\n\t\t\t\t\tcompare: _compareFunction[stencilFront.func],\n\t\t\t\t\tfailOp: _stencilOps[stencilFront.fail],\n\t\t\t\t\tpassOp: _stencilOps[stencilFront.zpass],\n\t\t\t\t\tdepthFailOp: _stencilOps[stencilFront.zfail]\n\t\t\t\t};\n\t\t\t\tdepthStencil.stencilBack = {\n\t\t\t\t\tcompare: _compareFunction[stencilBack.func],\n\t\t\t\t\tfailOp: _stencilOps[stencilBack.fail],\n\t\t\t\t\tpassOp: _stencilOps[stencilBack.zpass],\n\t\t\t\t\tdepthFailOp: _stencilOps[stencilBack.zfail]\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\treturn depthStencil;\n\t}\n\tcreate(primitiveTopology, ibFormat, shader, renderTarget, pipelineLayout, blendState, depthState, vertexBufferLayout, cullMode, stencilEnabled, stencilFront, stencilBack, frontFace, alphaToCoverageEnabled) {\n\t\tconst wgpu = this.device.wgpu;\n\t\tconst webgpuShader = shader.impl;\n\t\tconst desc = {\n\t\t\tvertex: {\n\t\t\t\tmodule: webgpuShader.getVertexShaderModule(),\n\t\t\t\tentryPoint: webgpuShader.vertexEntryPoint,\n\t\t\t\tbuffers: vertexBufferLayout\n\t\t\t},\n\t\t\tprimitive: {\n\t\t\t\ttopology: primitiveTopology,\n\t\t\t\tfrontFace: _frontFace[frontFace],\n\t\t\t\tcullMode: _cullModes[cullMode]\n\t\t\t},\n\t\t\tdepthStencil: this.getDepthStencil(depthState, renderTarget, stencilEnabled, stencilFront, stencilBack, primitiveTopology),\n\t\t\tmultisample: {\n\t\t\t\tcount: renderTarget.samples,\n\t\t\t\talphaToCoverageEnabled\n\t\t\t},\n\t\t\t// uniform / texture binding layout\n\t\t\tlayout: pipelineLayout\n\t\t};\n\t\tif (ibFormat) {\n\t\t\tdesc.primitive.stripIndexFormat = _indexFormat[ibFormat];\n\t\t}\n\t\tdesc.fragment = {\n\t\t\tmodule: webgpuShader.getFragmentShaderModule(),\n\t\t\tentryPoint: webgpuShader.fragmentEntryPoint,\n\t\t\ttargets: []\n\t\t};\n\t\tconst colorAttachments = renderTarget.impl.colorAttachments;\n\t\tif (blendState.usesDualSourceBlending) {\n\t\t}\n\t\tfor (let i2 = 0; i2 < colorAttachments.length; i2++) {\n\t\t\tconst attachmentState = blendState.getAttachment(i2, _attachmentBlendState);\n\t\t\tdesc.fragment.targets.push({\n\t\t\t\tformat: colorAttachments[i2].format,\n\t\t\t\twriteMask: getWriteMask(attachmentState),\n\t\t\t\tblend: this.getBlend(attachmentState)\n\t\t\t});\n\t\t}\n\t\t_pipelineId++;\n\t\tconst pipeline = wgpu.createRenderPipeline(desc);\n\t\treturn pipeline;\n\t}\n};\n\nvar _pipelineId2 = 0;\nvar CacheEntry2 = class {\n\tpipeline = null;\n\thashes = null;\n};\nvar WebgpuComputePipeline = class extends WebgpuPipeline {\n\t// shader compute key + up to 2 bind group format keys (caller group 0 + reflected group)\n\tlookupHashes = new Uint32Array(3);\n\tcache = /* @__PURE__ */ new Map();\n\tget(shader, bindGroupFormats) {\n\t\tconst lookupHashes2 = this.lookupHashes;\n\t\tlookupHashes2[0] = shader.impl.computeKey;\n\t\tlookupHashes2[1] = bindGroupFormats[0] ? bindGroupFormats[0].impl.key : 0;\n\t\tlookupHashes2[2] = bindGroupFormats[1] ? bindGroupFormats[1].impl.key : 0;\n\t\tconst hash = hash32Fnv1a(lookupHashes2);\n\t\tlet cacheEntries = this.cache.get(hash);\n\t\tif (cacheEntries) {\n\t\t\tfor (let i2 = 0; i2 < cacheEntries.length; i2++) {\n\t\t\t\tconst entry = cacheEntries[i2];\n\t\t\t\tif (array.equals(entry.hashes, lookupHashes2)) {\n\t\t\t\t\treturn entry.pipeline;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tconst impls = [];\n\t\tif (bindGroupFormats[0]) impls.push(bindGroupFormats[0].impl);\n\t\tif (bindGroupFormats[1]) impls.push(bindGroupFormats[1].impl);\n\t\tconst pipelineLayout = this.getPipelineLayout(impls);\n\t\tconst cacheEntry = new CacheEntry2();\n\t\tcacheEntry.hashes = new Uint32Array(lookupHashes2);\n\t\tcacheEntry.pipeline = this.create(shader, pipelineLayout);\n\t\tif (cacheEntries) {\n\t\t\tcacheEntries.push(cacheEntry);\n\t\t} else {\n\t\t\tcacheEntries = [cacheEntry];\n\t\t}\n\t\tthis.cache.set(hash, cacheEntries);\n\t\treturn cacheEntry.pipeline;\n\t}\n\tcreate(shader, pipelineLayout) {\n\t\tconst wgpu = this.device.wgpu;\n\t\tconst webgpuShader = shader.impl;\n\t\tconst desc = {\n\t\t\tcompute: {\n\t\t\t\tmodule: webgpuShader.getComputeShaderModule(),\n\t\t\t\tentryPoint: webgpuShader.computeEntryPoint\n\t\t\t},\n\t\t\t// uniform / texture binding layout\n\t\t\tlayout: pipelineLayout\n\t\t};\n\t\t_pipelineId2++;\n\t\tconst pipeline = wgpu.createComputePipeline(desc);\n\t\treturn pipeline;\n\t}\n};\n\nvar RefCountedObject = class {\n\t_refCount = 0;\n\tincRefCount() {\n\t\tthis._refCount++;\n\t}\n\tdecRefCount() {\n\t\tthis._refCount--;\n\t}\n\tget refCount() {\n\t\treturn this._refCount;\n\t}\n};\n\nvar Entry = class extends RefCountedObject {\n\tobject;\n\tconstructor(obj) {\n\t\tsuper();\n\t\tthis.object = obj;\n\t\tthis.incRefCount();\n\t}\n};\nvar RefCountedKeyCache = class {\n\tcache = /* @__PURE__ */ new Map();\n\tdestroy() {\n\t\tthis.cache.forEach((entry) => {\n\t\t\tentry.object?.destroy();\n\t\t});\n\t\tthis.cache.clear();\n\t}\n\tclear() {\n\t\tthis.cache.clear();\n\t}\n\tget(key) {\n\t\tconst entry = this.cache.get(key);\n\t\tif (entry) {\n\t\t\tentry.incRefCount();\n\t\t\treturn entry.object;\n\t\t}\n\t\treturn null;\n\t}\n\tset(key, object) {\n\t\tthis.cache.set(key, new Entry(object));\n\t}\n\trelease(key) {\n\t\tconst entry = this.cache.get(key);\n\t\tif (entry) {\n\t\t\tentry.decRefCount();\n\t\t\tif (entry.refCount === 0) {\n\t\t\t\tthis.cache.delete(key);\n\t\t\t\tentry.object?.destroy();\n\t\t\t}\n\t\t} else {\n\t\t}\n\t}\n};\n\nvar MultisampledTextureCache = class extends RefCountedKeyCache {\n\tloseContext(device) {\n\t\tthis.clear();\n\t}\n};\nvar multisampledTextureCache = new DeviceCache();\nvar getMultisampledTextureCache = (device) => {\n\treturn multisampledTextureCache.get(device, () => {\n\t\treturn new MultisampledTextureCache();\n\t});\n};\n\nvar FramePass = class {\n\t_name;\n\tdevice;\n\t_enabled = true;\n\t_skipStart = false;\n\t_skipEnd = false;\n\texecuteEnabled = true;\n\trequiresCubemaps = false;\n\tbeforePasses = [];\n\tafterPasses = [];\n\tconstructor(graphicsDevice) {\n\t\tthis.device = graphicsDevice;\n\t}\n\tset name(value) {\n\t\tthis._name = value;\n\t}\n\tget name() {\n\t\tif (!this._name) {\n\t\t\tthis._name = this.constructor.name;\n\t\t}\n\t\treturn this._name;\n\t}\n\tset enabled(value) {\n\t\tif (this._enabled !== value) {\n\t\t\tthis._enabled = value;\n\t\t\tif (value) {\n\t\t\t\tthis.onEnable();\n\t\t\t} else {\n\t\t\t\tthis.onDisable();\n\t\t\t}\n\t\t}\n\t}\n\tget enabled() {\n\t\treturn this._enabled;\n\t}\n\tonEnable() {\n\t}\n\tonDisable() {\n\t}\n\tframeUpdate() {\n\t}\n\tbefore() {\n\t}\n\texecute() {\n\t}\n\tafter() {\n\t}\n\tdestroy() {\n\t}\n\trender() {\n\t\tif (this.enabled) {\n\t\t\tthis.before();\n\t\t\tif (this.executeEnabled) {\n\t\t\t\tthis.execute();\n\t\t\t}\n\t\t\tthis.after();\n\t\t\tthis.device.renderPassIndex++;\n\t\t}\n\t}\n};\n\nvar ColorAttachmentOps = class {\n\tclearValue = new Color(0, 0, 0, 1);\n\tclearValueLinear = new Color(0, 0, 0, 1);\n\tclear = false;\n\tstore = false;\n\tresolve = true;\n\tgenMipmaps = false;\n};\nvar DepthStencilAttachmentOps = class {\n\tclearDepthValue = 1;\n\tclearStencilValue = 0;\n\tclearDepth = false;\n\tclearStencil = false;\n\tstoreDepth = false;\n\tresolveDepth = false;\n\tstoreStencil = false;\n};\nvar RenderPass = class extends FramePass {\n\trenderTarget;\n\t_options;\n\tsamples = 0;\n\tcolorArrayOps = [];\n\tget colorOps() {\n\t\treturn this.colorArrayOps[0];\n\t}\n\tdepthStencilOps;\n\trequiresCubemaps = true;\n\tfullSizeClearRect = true;\n\tset scaleX(value) {\n\t\tthis._options.scaleX = value;\n\t}\n\tget scaleX() {\n\t\treturn this._options.scaleX;\n\t}\n\tset scaleY(value) {\n\t\tthis._options.scaleY = value;\n\t}\n\tget scaleY() {\n\t\treturn this._options.scaleY;\n\t}\n\tset options(value) {\n\t\tthis._options = value;\n\t\tif (value) {\n\t\t\tthis.scaleX = this.scaleX ?? 1;\n\t\t\tthis.scaleY = this.scaleY ?? 1;\n\t\t}\n\t}\n\tget options() {\n\t\treturn this._options;\n\t}\n\tinit(renderTarget = null, options2) {\n\t\tthis.options = options2;\n\t\tthis.renderTarget = renderTarget;\n\t\tthis.samples = Math.max(this.renderTarget ? this.renderTarget.samples : this.device.samples, 1);\n\t\tthis.allocateAttachments();\n\t\tthis.postInit();\n\t}\n\tallocateAttachments() {\n\t\tconst rt = this.renderTarget;\n\t\tthis.depthStencilOps = new DepthStencilAttachmentOps();\n\t\tif (rt?.depthBuffer) {\n\t\t\tthis.depthStencilOps.storeDepth = true;\n\t\t\tif (rt.depthResolveBuffer) {\n\t\t\t\tthis.depthStencilOps.resolveDepth = true;\n\t\t\t}\n\t\t}\n\t\tconst numColorOps = rt ? rt._colorBuffers?.length ?? 0 : 1;\n\t\tthis.colorArrayOps.length = 0;\n\t\tfor (let i2 = 0; i2 < numColorOps; i2++) {\n\t\t\tconst colorOps = new ColorAttachmentOps();\n\t\t\tthis.colorArrayOps[i2] = colorOps;\n\t\t\tconst colorBuffer = rt?._colorBuffers?.[i2];\n\t\t\tif (this.samples === 1) {\n\t\t\t\tcolorOps.store = true;\n\t\t\t\tcolorOps.resolve = false;\n\t\t\t} else if (colorBuffer?.samples > 1) {\n\t\t\t\tconst resolve2 = !!rt.getResolveBuffer(i2);\n\t\t\t\tcolorOps.resolve = resolve2;\n\t\t\t\tcolorOps.store = !resolve2;\n\t\t\t}\n\t\t\tif (rt?.mipmaps && colorBuffer?.mipmaps) {\n\t\t\t\tconst intFormat = isIntegerPixelFormat(colorBuffer._format);\n\t\t\t\tcolorOps.genMipmaps = !intFormat;\n\t\t\t}\n\t\t}\n\t}\n\tpostInit() {\n\t}\n\tframeUpdate() {\n\t\tif (this._options && this.renderTarget) {\n\t\t\tconst resizeSource = this._options.resizeSource ?? this.device.backBuffer;\n\t\t\tconst width = Math.floor(resizeSource.width * this.scaleX);\n\t\t\tconst height = Math.floor(resizeSource.height * this.scaleY);\n\t\t\tthis.renderTarget.resize(width, height);\n\t\t}\n\t}\n\tsetClearColor(color3, index) {\n\t\tconst count = this.colorArrayOps.length;\n\t\tconst start = index ?? 0;\n\t\tconst end = index === void 0 ? count : index + 1;\n\t\tfor (let i2 = start; i2 < end; i2++) {\n\t\t\tconst colorOps = this.colorArrayOps[i2];\n\t\t\tif (colorOps) {\n\t\t\t\tif (color3) {\n\t\t\t\t\tcolorOps.clearValue.copy(color3);\n\t\t\t\t\tcolorOps.clearValueLinear.linear(color3);\n\t\t\t\t}\n\t\t\t\tcolorOps.clear = !!color3;\n\t\t\t}\n\t\t}\n\t}\n\tsetClearDepth(depthValue) {\n\t\tif (depthValue !== void 0) {\n\t\t\tthis.depthStencilOps.clearDepthValue = depthValue;\n\t\t}\n\t\tthis.depthStencilOps.clearDepth = depthValue !== void 0;\n\t}\n\tsetClearStencil(stencilValue) {\n\t\tif (stencilValue !== void 0) {\n\t\t\tthis.depthStencilOps.clearStencilValue = stencilValue;\n\t\t}\n\t\tthis.depthStencilOps.clearStencil = stencilValue !== void 0;\n\t}\n\trender() {\n\t\tif (this.enabled) {\n\t\t\tconst device = this.device;\n\t\t\tconst realPass = this.renderTarget !== void 0;\n\t\t\tthis.before();\n\t\t\tif (this.executeEnabled) {\n\t\t\t\tif (realPass && !this._skipStart) {\n\t\t\t\t\tdevice.startRenderPass(this);\n\t\t\t\t}\n\t\t\t\tthis.execute();\n\t\t\t\tif (realPass && !this._skipEnd) {\n\t\t\t\t\tdevice.endRenderPass(this);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.after();\n\t\t\tdevice.renderPassIndex++;\n\t\t}\n\t}\n};\n\nvar stringIds7 = new StringIds();\nvar ColorAttachment = class {\n\tformat;\n\tmultisampledBuffer;\n\ttransient = false;\n\tresolveView;\n\tdestroy(device) {\n\t\tdevice.deferDestroy(this.multisampledBuffer);\n\t\tthis.multisampledBuffer = null;\n\t\tthis.resolveView = void 0;\n\t}\n};\nvar DepthAttachment = class {\n\tformat;\n\thasStencil;\n\tdepthTexture = null;\n\tdepthTextureInternal = false;\n\tmultisampledDepthBuffer = null;\n\tmultisampledDepthBufferKey;\n\ttransient = false;\n\tconstructor(gpuFormat) {\n\t\tthis.format = gpuFormat;\n\t\tthis.hasStencil = gpuFormat === \"depth24plus-stencil8\";\n\t}\n\tdestroy(device) {\n\t\tif (this.depthTextureInternal) {\n\t\t\tdevice.deferDestroy(this.depthTexture);\n\t\t\tthis.depthTexture = null;\n\t\t}\n\t\tif (this.multisampledDepthBuffer) {\n\t\t\tthis.multisampledDepthBuffer = null;\n\t\t\tgetMultisampledTextureCache(device).release(this.multisampledDepthBufferKey);\n\t\t}\n\t}\n};\nvar WebgpuRenderTarget = class {\n\tinitialized = false;\n\tkey;\n\tcolorAttachments = [];\n\tdepthAttachment = null;\n\tassignedColorTexture = null;\n\trenderPassDescriptor = {};\n\tisBackbuffer = false;\n\tconstructor(renderTarget) {\n\t\tthis.renderTarget = renderTarget;\n\t}\n\tdestroy(device) {\n\t\tthis.initialized = false;\n\t\tthis.assignedColorTexture = null;\n\t\tthis.colorAttachments.forEach((colorAttachment) => {\n\t\t\tcolorAttachment.destroy(device);\n\t\t});\n\t\tthis.colorAttachments.length = 0;\n\t\tthis.depthAttachment?.destroy(device);\n\t\tthis.depthAttachment = null;\n\t}\n\tupdateKey() {\n\t\tconst rt = this.renderTarget;\n\t\tlet key = `${rt.samples}:${this.depthAttachment ? this.depthAttachment.format : \"nodepth\"}`;\n\t\tthis.colorAttachments.forEach((colorAttachment) => {\n\t\t\tkey += `:${colorAttachment.format}`;\n\t\t});\n\t\tthis.key = stringIds7.get(key);\n\t}\n\tassignColorTexture(gpuTexture, viewFormat) {\n\t\tthis.assignedColorTexture = gpuTexture;\n\t\tconst wgpuDevice = this.renderTarget.device;\n\t\tconst xrViewDesc = wgpuDevice?.xrColorTextureViewDescriptor;\n\t\tconst xrSlice = xrViewDesc && gpuTexture === wgpuDevice.xrColorTexture;\n\t\tconst view = gpuTexture.createView(\n\t\t\txrSlice ? xrViewDesc : { format: viewFormat }\n\t\t);\n\t\tconst colorAttachment = this.renderPassDescriptor.colorAttachments[0];\n\t\tconst samples = this.renderTarget.samples;\n\t\tif (samples > 1) {\n\t\t\tcolorAttachment.resolveTarget = view;\n\t\t} else {\n\t\t\tcolorAttachment.view = view;\n\t\t}\n\t\tthis.setColorAttachment(0, void 0, viewFormat);\n\t\tthis.updateKey();\n\t}\n\tsetColorAttachment(index, multisampledBuffer, format) {\n\t\tif (!this.colorAttachments[index]) {\n\t\t\tthis.colorAttachments[index] = new ColorAttachment();\n\t\t}\n\t\tif (multisampledBuffer) {\n\t\t\tthis.colorAttachments[index].multisampledBuffer = multisampledBuffer;\n\t\t}\n\t\tif (format) {\n\t\t\tthis.colorAttachments[index].format = format;\n\t\t}\n\t}\n\tinit(device, renderTarget) {\n\t\tconst wgpu = device.wgpu;\n\t\tthis.initDepthStencil(device, wgpu, renderTarget);\n\t\tif (renderTarget._colorBuffers) {\n\t\t\trenderTarget._colorBuffers.forEach((colorBuffer, index) => {\n\t\t\t\tthis.setColorAttachment(index, void 0, colorBuffer.impl.format);\n\t\t\t});\n\t\t}\n\t\tthis.renderPassDescriptor.colorAttachments = [];\n\t\tconst count = this.isBackbuffer ? 1 : renderTarget._colorBuffers?.length ?? 0;\n\t\tfor (let i2 = 0; i2 < count; ++i2) {\n\t\t\tconst colorAttachment = this.initColor(device, wgpu, renderTarget, i2);\n\t\t\tconst isDefaultFramebuffer = i2 === 0 && this.colorAttachments[0]?.format;\n\t\t\tif (colorAttachment.view || isDefaultFramebuffer) {\n\t\t\t\tthis.renderPassDescriptor.colorAttachments.push(colorAttachment);\n\t\t\t}\n\t\t}\n\t\tthis.updateKey();\n\t\tthis.initialized = true;\n\t}\n\tinitDepthStencil(device, wgpu, renderTarget) {\n\t\tconst { samples, width, height, depth, depthBuffer } = renderTarget;\n\t\tif (depth || depthBuffer) {\n\t\t\tlet renderingView;\n\t\t\tif (!depthBuffer) {\n\t\t\t\tthis.depthAttachment = new DepthAttachment(\"depth24plus-stencil8\");\n\t\t\t\tconst depthTextureDesc = {\n\t\t\t\t\tsize: [width, height, 1],\n\t\t\t\t\tdimension: \"2d\",\n\t\t\t\t\tsampleCount: samples,\n\t\t\t\t\tformat: this.depthAttachment.format,\n\t\t\t\t\tusage: GPUTextureUsage.RENDER_ATTACHMENT\n\t\t\t\t};\n\t\t\t\tconst transientDepth = renderTarget.transientDepth;\n\t\t\t\tif (transientDepth) {\n\t\t\t\t\tdepthTextureDesc.usage |= GPUTextureUsage.TRANSIENT_ATTACHMENT;\n\t\t\t\t\tthis.depthAttachment.transient = true;\n\t\t\t\t} else if (samples > 1) {\n\t\t\t\t\tdepthTextureDesc.usage |= GPUTextureUsage.TEXTURE_BINDING;\n\t\t\t\t} else {\n\t\t\t\t\tdepthTextureDesc.usage |= GPUTextureUsage.COPY_SRC;\n\t\t\t\t}\n\t\t\t\tconst depthTexture = wgpu.createTexture(depthTextureDesc);\n\t\t\t\tthis.depthAttachment.depthTexture = depthTexture;\n\t\t\t\tthis.depthAttachment.depthTextureInternal = true;\n\t\t\t\trenderingView = depthTexture.createView();\n\t\t\t} else if (depthBuffer.samples > 1) {\n\t\t\t\tthis.depthAttachment = new DepthAttachment(depthBuffer.impl.format);\n\t\t\t\tthis.depthAttachment.depthTexture = depthBuffer.impl.gpuTexture;\n\t\t\t\tthis.depthAttachment.depthTextureInternal = false;\n\t\t\t\trenderingView = depthBuffer.impl.gpuTexture.createView();\n\t\t\t} else {\n\t\t\t\tthis.depthAttachment = new DepthAttachment(depthBuffer.impl.format);\n\t\t\t\tif (samples > 1) {\n\t\t\t\t\tconst depthFormat = \"depth24plus-stencil8\";\n\t\t\t\t\tthis.depthAttachment.format = depthFormat;\n\t\t\t\t\tthis.depthAttachment.hasStencil = depthFormat === \"depth24plus-stencil8\";\n\t\t\t\t\tconst key = `${depthBuffer.id}:${width}:${height}:${samples}:${depthFormat}`;\n\t\t\t\t\tconst msTextures = getMultisampledTextureCache(device);\n\t\t\t\t\tlet msDepthTexture = msTextures.get(key);\n\t\t\t\t\tif (!msDepthTexture) {\n\t\t\t\t\t\tconst multisampledDepthDesc = {\n\t\t\t\t\t\t\tsize: [width, height, 1],\n\t\t\t\t\t\t\tdimension: \"2d\",\n\t\t\t\t\t\t\tsampleCount: samples,\n\t\t\t\t\t\t\tformat: depthFormat,\n\t\t\t\t\t\t\tusage: GPUTextureUsage.RENDER_ATTACHMENT | // if msaa and resolve targets are different formats, we need to be able to bind the msaa target as a texture for manual shader resolve\n\t\t\t\t\t\t\t(depthFormat !== depthBuffer.impl.format ? GPUTextureUsage.TEXTURE_BINDING : 0)\n\t\t\t\t\t\t};\n\t\t\t\t\t\tmsDepthTexture = wgpu.createTexture(multisampledDepthDesc);\n\t\t\t\t\t\tmsTextures.set(key, msDepthTexture);\n\t\t\t\t\t}\n\t\t\t\t\tthis.depthAttachment.multisampledDepthBuffer = msDepthTexture;\n\t\t\t\t\tthis.depthAttachment.multisampledDepthBufferKey = key;\n\t\t\t\t\trenderingView = msDepthTexture.createView();\n\t\t\t\t} else {\n\t\t\t\t\tconst depthTexture = depthBuffer.impl.gpuTexture;\n\t\t\t\t\tthis.depthAttachment.depthTexture = depthTexture;\n\t\t\t\t\trenderingView = depthTexture.createView();\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.renderPassDescriptor.depthStencilAttachment = {\n\t\t\t\tview: renderingView\n\t\t\t};\n\t\t}\n\t}\n\tinitColor(device, wgpu, renderTarget, index) {\n\t\tconst colorAttachment = {};\n\t\tconst { samples, width, height, mipLevel } = renderTarget;\n\t\tconst colorBuffer = renderTarget.getColorBuffer(index);\n\t\tlet colorView = null;\n\t\tif (colorBuffer) {\n\t\t\tconst mipLevelCount = 1;\n\t\t\tif (colorBuffer.cubemap) {\n\t\t\t\tcolorView = colorBuffer.impl.createView({\n\t\t\t\t\tdimension: \"2d\",\n\t\t\t\t\tbaseArrayLayer: renderTarget.face,\n\t\t\t\t\tarrayLayerCount: 1,\n\t\t\t\t\tmipLevelCount,\n\t\t\t\t\tbaseMipLevel: mipLevel\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tcolorView = colorBuffer.impl.createView({\n\t\t\t\t\tmipLevelCount,\n\t\t\t\t\tbaseMipLevel: mipLevel\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\tif (samples > 1) {\n\t\t\tif (!this.isBackbuffer && colorBuffer?.samples > 1) {\n\t\t\t\tthis.setColorAttachment(index, void 0, colorBuffer.impl.format);\n\t\t\t\tcolorAttachment.view = colorView;\n\t\t\t\tconst resolveBuffer = renderTarget.getResolveBuffer(index);\n\t\t\t\tif (resolveBuffer) {\n\t\t\t\t\tconst resolveView = resolveBuffer.impl.createView({ mipLevelCount: 1, baseMipLevel: 0 });\n\t\t\t\t\tthis.colorAttachments[index].resolveView = resolveView;\n\t\t\t\t\tcolorAttachment.resolveTarget = resolveView;\n\t\t\t\t}\n\t\t\t\treturn colorAttachment;\n\t\t\t}\n\t\t\tconst format = this.isBackbuffer ? this.colorAttachments[index]?.format ?? device.backBufferViewFormat : colorBuffer.impl.format;\n\t\t\tconst transientColor = renderTarget.transientColor;\n\t\t\tconst multisampledTextureDesc = {\n\t\t\t\tsize: [width, height, 1],\n\t\t\t\tdimension: \"2d\",\n\t\t\t\tsampleCount: samples,\n\t\t\t\tformat,\n\t\t\t\tusage: transientColor ? GPUTextureUsage.RENDER_ATTACHMENT | GPUTextureUsage.TRANSIENT_ATTACHMENT : GPUTextureUsage.RENDER_ATTACHMENT\n\t\t\t};\n\t\t\tconst multisampledColorBuffer = wgpu.createTexture(multisampledTextureDesc);\n\t\t\tthis.setColorAttachment(index, multisampledColorBuffer, multisampledTextureDesc.format);\n\t\t\tthis.colorAttachments[index].transient = transientColor;\n\t\t\tcolorAttachment.view = multisampledColorBuffer.createView();\n\t\t\tcolorAttachment.resolveTarget = colorView;\n\t\t} else {\n\t\t\tcolorAttachment.view = colorView;\n\t\t}\n\t\treturn colorAttachment;\n\t}\n\tsetupForRenderPass(renderPass, renderTarget) {\n\t\tconst count = this.renderPassDescriptor.colorAttachments?.length ?? 0;\n\t\tfor (let i2 = 0; i2 < count; ++i2) {\n\t\t\tconst colorAttachment = this.renderPassDescriptor.colorAttachments[i2];\n\t\t\tconst colorOps = renderPass.colorArrayOps[i2];\n\t\t\tconst srgb = renderTarget.isColorBufferSrgb(i2);\n\t\t\tcolorAttachment.clearValue = srgb ? colorOps.clearValueLinear : colorOps.clearValue;\n\t\t\tcolorAttachment.loadOp = colorOps.clear ? \"clear\" : \"load\";\n\t\t\tcolorAttachment.storeOp = colorOps.store ? \"store\" : \"discard\";\n\t\t\tif (this.colorAttachments[i2]?.resolveView) {\n\t\t\t\tcolorAttachment.resolveTarget = colorOps.resolve ? this.colorAttachments[i2].resolveView : void 0;\n\t\t\t}\n\t\t\tif (!this.isBackbuffer && renderTarget.samples > 1 && colorAttachment.storeOp === \"discard\" && !colorAttachment.resolveTarget) {\n\t\t\t}\n\t\t\tif (this.colorAttachments[i2]?.transient && (colorAttachment.loadOp !== \"clear\" || colorAttachment.storeOp !== \"discard\")) {\n\t\t\t\tcolorAttachment.loadOp = \"clear\";\n\t\t\t\tcolorAttachment.storeOp = \"discard\";\n\t\t\t}\n\t\t}\n\t\tconst depthAttachment = this.renderPassDescriptor.depthStencilAttachment;\n\t\tif (depthAttachment) {\n\t\t\tdepthAttachment.depthClearValue = renderPass.depthStencilOps.clearDepthValue;\n\t\t\tdepthAttachment.depthLoadOp = renderPass.depthStencilOps.clearDepth ? \"clear\" : \"load\";\n\t\t\tdepthAttachment.depthStoreOp = renderPass.depthStencilOps.storeDepth ? \"store\" : \"discard\";\n\t\t\tdepthAttachment.depthReadOnly = false;\n\t\t\tif (this.depthAttachment.hasStencil) {\n\t\t\t\tdepthAttachment.stencilClearValue = renderPass.depthStencilOps.clearStencilValue;\n\t\t\t\tdepthAttachment.stencilLoadOp = renderPass.depthStencilOps.clearStencil ? \"clear\" : \"load\";\n\t\t\t\tdepthAttachment.stencilStoreOp = renderPass.depthStencilOps.storeStencil ? \"store\" : \"discard\";\n\t\t\t\tdepthAttachment.stencilReadOnly = false;\n\t\t\t}\n\t\t\tif (this.depthAttachment.transient && (depthAttachment.depthLoadOp !== \"clear\" || depthAttachment.depthStoreOp !== \"discard\" || this.depthAttachment.hasStencil && (depthAttachment.stencilLoadOp !== \"clear\" || depthAttachment.stencilStoreOp !== \"discard\"))) {\n\t\t\t\tdepthAttachment.depthLoadOp = \"clear\";\n\t\t\t\tdepthAttachment.depthStoreOp = \"discard\";\n\t\t\t\tif (this.depthAttachment.hasStencil) {\n\t\t\t\t\tdepthAttachment.stencilLoadOp = \"clear\";\n\t\t\t\t\tdepthAttachment.stencilStoreOp = \"discard\";\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tloseContext() {\n\t\tthis.initialized = false;\n\t}\n\tresolve(device, target2, color3, depth) {\n\t}\n};\n\nvar uniformTypeToNumComponents = [];\nuniformTypeToNumComponents[UNIFORMTYPE_FLOAT] = 1;\nuniformTypeToNumComponents[UNIFORMTYPE_VEC2] = 2;\nuniformTypeToNumComponents[UNIFORMTYPE_VEC3] = 3;\nuniformTypeToNumComponents[UNIFORMTYPE_VEC4] = 4;\nuniformTypeToNumComponents[UNIFORMTYPE_INT] = 1;\nuniformTypeToNumComponents[UNIFORMTYPE_IVEC2] = 2;\nuniformTypeToNumComponents[UNIFORMTYPE_IVEC3] = 3;\nuniformTypeToNumComponents[UNIFORMTYPE_IVEC4] = 4;\nuniformTypeToNumComponents[UNIFORMTYPE_BOOL] = 1;\nuniformTypeToNumComponents[UNIFORMTYPE_BVEC2] = 2;\nuniformTypeToNumComponents[UNIFORMTYPE_BVEC3] = 3;\nuniformTypeToNumComponents[UNIFORMTYPE_BVEC4] = 4;\nuniformTypeToNumComponents[UNIFORMTYPE_MAT2] = 8;\nuniformTypeToNumComponents[UNIFORMTYPE_MAT3] = 12;\nuniformTypeToNumComponents[UNIFORMTYPE_MAT4] = 16;\nuniformTypeToNumComponents[UNIFORMTYPE_UINT] = 1;\nuniformTypeToNumComponents[UNIFORMTYPE_UVEC2] = 2;\nuniformTypeToNumComponents[UNIFORMTYPE_UVEC3] = 3;\nuniformTypeToNumComponents[UNIFORMTYPE_UVEC4] = 4;\nvar UniformFormat = class {\n\tname;\n\t// UNIFORMTYPE_***\n\ttype;\n\tbyteSize;\n\toffset;\n\tscopeId;\n\tcount;\n\tnumComponents;\n\tget isArrayType() {\n\t\treturn this.count > 0;\n\t}\n\tconstructor(name, type, count = 0) {\n\t\tthis.shortName = name;\n\t\tthis.name = count ? `${name}[0]` : name;\n\t\tthis.type = type;\n\t\tthis.numComponents = uniformTypeToNumComponents[type];\n\t\tthis.updateType = type;\n\t\tif (count > 0) {\n\t\t\tswitch (type) {\n\t\t\t\tcase UNIFORMTYPE_FLOAT:\n\t\t\t\t\tthis.updateType = UNIFORMTYPE_FLOATARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_INT:\n\t\t\t\t\tthis.updateType = UNIFORMTYPE_INTARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_UINT:\n\t\t\t\t\tthis.updateType = UNIFORMTYPE_UINTARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_BOOL:\n\t\t\t\t\tthis.updateType = UNIFORMTYPE_BOOLARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_VEC2:\n\t\t\t\t\tthis.updateType = UNIFORMTYPE_VEC2ARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_IVEC2:\n\t\t\t\t\tthis.updateType = UNIFORMTYPE_IVEC2ARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_UVEC2:\n\t\t\t\t\tthis.updateType = UNIFORMTYPE_UVEC2ARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_BVEC2:\n\t\t\t\t\tthis.updateType = UNIFORMTYPE_BVEC2ARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_VEC3:\n\t\t\t\t\tthis.updateType = UNIFORMTYPE_VEC3ARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_IVEC3:\n\t\t\t\t\tthis.updateType = UNIFORMTYPE_IVEC3ARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_UVEC3:\n\t\t\t\t\tthis.updateType = UNIFORMTYPE_UVEC3ARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_BVEC3:\n\t\t\t\t\tthis.updateType = UNIFORMTYPE_BVEC3ARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_VEC4:\n\t\t\t\t\tthis.updateType = UNIFORMTYPE_VEC4ARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_IVEC4:\n\t\t\t\t\tthis.updateType = UNIFORMTYPE_IVEC4ARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_UVEC4:\n\t\t\t\t\tthis.updateType = UNIFORMTYPE_UVEC4ARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_BVEC4:\n\t\t\t\t\tthis.updateType = UNIFORMTYPE_BVEC4ARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_MAT4:\n\t\t\t\t\tthis.updateType = UNIFORMTYPE_MAT4ARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tthis.count = count;\n\t\tlet componentSize = this.numComponents;\n\t\tif (count) {\n\t\t\tcomponentSize = math.roundUp(componentSize, 4);\n\t\t}\n\t\tthis.byteSize = componentSize * 4;\n\t\tif (count) {\n\t\t\tthis.byteSize *= count;\n\t\t}\n\t}\n\t// std140 rules: https://registry.khronos.org/OpenGL/specs/gl/glspec45.core.pdf#page=159\n\t// TODO: this supports limited subset of functionality, arrays and arrays of structs are not supported.\n\tcalculateOffset(offset3) {\n\t\tlet alignment = this.byteSize <= 8 ? this.byteSize : 16;\n\t\tif (this.count) {\n\t\t\talignment = 16;\n\t\t}\n\t\toffset3 = math.roundUp(offset3, alignment);\n\t\tthis.offset = offset3 / 4;\n\t}\n};\nvar UniformBufferFormat = class {\n\tbyteSize = 0;\n\tmap = /* @__PURE__ */ new Map();\n\tconstructor(graphicsDevice, uniforms) {\n\t\tthis.scope = graphicsDevice.scope;\n\t\tthis.uniforms = uniforms;\n\t\tlet offset3 = 0;\n\t\tfor (let i2 = 0; i2 < uniforms.length; i2++) {\n\t\t\tconst uniform = uniforms[i2];\n\t\t\tuniform.calculateOffset(offset3);\n\t\t\toffset3 = uniform.offset * 4 + uniform.byteSize;\n\t\t\tuniform.scopeId = this.scope.resolve(uniform.name);\n\t\t\tthis.map.set(uniform.name, uniform);\n\t\t}\n\t\tthis.byteSize = math.roundUp(offset3, 16);\n\t}\n\tget(name) {\n\t\treturn this.map.get(name);\n\t}\n};\n\nvar KEYWORD = /[ \\t]*(\\battribute\\b|\\bvarying\\b|\\buniform\\b)/g;\nvar KEYWORD_LINE = /(\\battribute\\b|\\bvarying\\b|\\bout\\b|\\buniform\\b)[ \\t]*([^;]+)(;+)/g;\nvar ARRAY_IDENTIFIER = /([\\w-]+)\\[(.*?)\\]/;\nvar precisionQualifiers = /* @__PURE__ */ new Set([\"highp\", \"mediump\", \"lowp\"]);\nvar shadowSamplers = /* @__PURE__ */ new Set([\"sampler2DShadow\", \"samplerCubeShadow\", \"sampler2DArrayShadow\"]);\nvar textureDimensions = {\n\tsampler2D: TEXTUREDIMENSION_2D,\n\tsampler3D: TEXTUREDIMENSION_3D,\n\tsamplerCube: TEXTUREDIMENSION_CUBE,\n\tsamplerCubeShadow: TEXTUREDIMENSION_CUBE,\n\tsampler2DShadow: TEXTUREDIMENSION_2D,\n\tsampler2DArray: TEXTUREDIMENSION_2D_ARRAY,\n\tsampler2DArrayShadow: TEXTUREDIMENSION_2D_ARRAY,\n\tisampler2D: TEXTUREDIMENSION_2D,\n\tusampler2D: TEXTUREDIMENSION_2D,\n\tisampler3D: TEXTUREDIMENSION_3D,\n\tusampler3D: TEXTUREDIMENSION_3D,\n\tisamplerCube: TEXTUREDIMENSION_CUBE,\n\tusamplerCube: TEXTUREDIMENSION_CUBE,\n\tisampler2DArray: TEXTUREDIMENSION_2D_ARRAY,\n\tusampler2DArray: TEXTUREDIMENSION_2D_ARRAY\n};\nvar textureDimensionInfo = {\n\t[TEXTUREDIMENSION_2D]: \"texture2D\",\n\t[TEXTUREDIMENSION_CUBE]: \"textureCube\",\n\t[TEXTUREDIMENSION_3D]: \"texture3D\",\n\t[TEXTUREDIMENSION_2D_ARRAY]: \"texture2DArray\"\n};\nvar UniformLine = class {\n\tconstructor(line, shader) {\n\t\tthis.line = line;\n\t\tconst words = line.trim().split(/\\s+/);\n\t\tif (precisionQualifiers.has(words[0])) {\n\t\t\tthis.precision = words.shift();\n\t\t}\n\t\tthis.type = words.shift();\n\t\tif (line.includes(\",\")) {\n\t\t}\n\t\tif (line.includes(\"[\")) {\n\t\t\tconst rest = words.join(\" \");\n\t\t\tconst match = ARRAY_IDENTIFIER.exec(rest);\n\t\t\tthis.name = match[1];\n\t\t\tthis.arraySize = Number(match[2]);\n\t\t\tif (isNaN(this.arraySize)) {\n\t\t\t\tshader.failed = true;\n\t\t\t}\n\t\t} else {\n\t\t\tthis.name = words.shift();\n\t\t\tthis.arraySize = 0;\n\t\t}\n\t\tthis.isSampler = this.type.indexOf(\"sampler\") !== -1;\n\t\tthis.isSignedInt = this.type.indexOf(\"isampler\") !== -1;\n\t\tthis.isUnsignedInt = this.type.indexOf(\"usampler\") !== -1;\n\t}\n};\nvar ShaderProcessorGLSL = class _ShaderProcessorGLSL {\n\tstatic MARKER = \"@@@\";\n\tstatic run(device, shaderDefinition, shader) {\n\t\tconst varyingMap = /* @__PURE__ */ new Map();\n\t\tconst vertexExtracted = _ShaderProcessorGLSL.extract(shaderDefinition.vshader);\n\t\tconst fragmentExtracted = _ShaderProcessorGLSL.extract(shaderDefinition.fshader);\n\t\tconst attributesMap = /* @__PURE__ */ new Map();\n\t\tconst attributesBlock = _ShaderProcessorGLSL.processAttributes(vertexExtracted.attributes, shaderDefinition.attributes, attributesMap, shaderDefinition.processingOptions);\n\t\tconst vertexVaryingsBlock = _ShaderProcessorGLSL.processVaryings(vertexExtracted.varyings, varyingMap, true);\n\t\tconst fragmentVaryingsBlock = _ShaderProcessorGLSL.processVaryings(fragmentExtracted.varyings, varyingMap, false);\n\t\tconst outBlock = _ShaderProcessorGLSL.processOuts(fragmentExtracted.outs);\n\t\tconst concatUniforms = vertexExtracted.uniforms.concat(fragmentExtracted.uniforms);\n\t\tconst uniforms = Array.from(new Set(concatUniforms));\n\t\tconst parsedUniforms = uniforms.map((line) => new UniformLine(line, shader));\n\t\tconst uniformsData = _ShaderProcessorGLSL.processUniforms(device, parsedUniforms, shaderDefinition.processingOptions, shader);\n\t\tconst vBlock = `${attributesBlock}\n${vertexVaryingsBlock}\n${uniformsData.code}`;\n\t\tconst vshader = vertexExtracted.src.replace(_ShaderProcessorGLSL.MARKER, vBlock);\n\t\tconst fBlock = `${fragmentVaryingsBlock}\n${outBlock}\n${uniformsData.code}`;\n\t\tconst fshader = fragmentExtracted.src.replace(_ShaderProcessorGLSL.MARKER, fBlock);\n\t\treturn {\n\t\t\tvshader,\n\t\t\tfshader,\n\t\t\tattributes: attributesMap,\n\t\t\tmeshUniformBufferFormat: uniformsData.meshUniformBufferFormat,\n\t\t\tmeshBindGroupFormat: uniformsData.meshBindGroupFormat\n\t\t};\n\t}\n\t// Extract required information from the shader source code. When uniformsOnly is true, only\n\t// 'uniform' lines are extracted - attributes and varyings are left in the source unchanged (the\n\t// WebGL2 path relies on the gles3 compatibility macros to handle those).\n\tstatic extract(src, uniformsOnly = false) {\n\t\tconst attributes = [];\n\t\tconst varyings = [];\n\t\tconst outs = [];\n\t\tconst uniforms = [];\n\t\tlet replacement = `${_ShaderProcessorGLSL.MARKER}\n`;\n\t\tlet match;\n\t\twhile ((match = KEYWORD.exec(src)) !== null) {\n\t\t\tconst keyword = match[1];\n\t\t\tif (uniformsOnly && keyword !== \"uniform\") {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tswitch (keyword) {\n\t\t\t\tcase \"attribute\":\n\t\t\t\tcase \"varying\":\n\t\t\t\tcase \"uniform\":\n\t\t\t\tcase \"out\": {\n\t\t\t\t\tKEYWORD_LINE.lastIndex = match.index;\n\t\t\t\t\tconst lineMatch = KEYWORD_LINE.exec(src);\n\t\t\t\t\tif (keyword === \"attribute\") {\n\t\t\t\t\t\tattributes.push(lineMatch[2]);\n\t\t\t\t\t} else if (keyword === \"varying\") {\n\t\t\t\t\t\tvaryings.push(lineMatch[2]);\n\t\t\t\t\t} else if (keyword === \"out\") {\n\t\t\t\t\t\touts.push(lineMatch[2]);\n\t\t\t\t\t} else if (keyword === \"uniform\") {\n\t\t\t\t\t\tuniforms.push(lineMatch[2]);\n\t\t\t\t\t}\n\t\t\t\t\tsrc = _ShaderProcessorGLSL.cutOut(src, match.index, KEYWORD_LINE.lastIndex, replacement);\n\t\t\t\t\tKEYWORD.lastIndex = match.index + replacement.length;\n\t\t\t\t\treplacement = \"\";\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\tsrc,\n\t\t\tattributes,\n\t\t\tvaryings,\n\t\t\touts,\n\t\t\tuniforms\n\t\t};\n\t}\n\tstatic parseUniformLines(uniformLines, shader) {\n\t\treturn uniformLines.map((line) => new UniformLine(line, shader));\n\t}\n\tstatic processUniforms(device, uniforms, processingOptions, shader) {\n\t\tconst uniformLinesSamplers = [];\n\t\tconst uniformLinesNonSamplers = [];\n\t\tuniforms.forEach((uniform) => {\n\t\t\tif (uniform.isSampler) {\n\t\t\t\tuniformLinesSamplers.push(uniform);\n\t\t\t} else {\n\t\t\t\tuniformLinesNonSamplers.push(uniform);\n\t\t\t}\n\t\t});\n\t\tconst meshUniforms = [];\n\t\tuniformLinesNonSamplers.forEach((uniform) => {\n\t\t\tif (!processingOptions.hasUniform(uniform.name)) {\n\t\t\t\tconst uniformType = uniformTypeToName.indexOf(uniform.type);\n\t\t\t\tconst uniformFormat = new UniformFormat(uniform.name, uniformType, uniform.arraySize);\n\t\t\t\tmeshUniforms.push(uniformFormat);\n\t\t\t}\n\t\t});\n\t\tif (meshUniforms.length === 0) {\n\t\t\tmeshUniforms.push(new UniformFormat(UNUSED_UNIFORM_NAME, UNIFORMTYPE_FLOAT));\n\t\t}\n\t\tconst meshUniformBufferFormat = meshUniforms.length ? new UniformBufferFormat(device, meshUniforms) : null;\n\t\tconst textureFormats = [];\n\t\tuniformLinesSamplers.forEach((uniform) => {\n\t\t\tif (!processingOptions.hasTexture(uniform.name)) {\n\t\t\t\tlet sampleType = SAMPLETYPE_FLOAT;\n\t\t\t\tif (uniform.isSignedInt) {\n\t\t\t\t\tsampleType = SAMPLETYPE_INT;\n\t\t\t\t} else if (uniform.isUnsignedInt) {\n\t\t\t\t\tsampleType = SAMPLETYPE_UINT;\n\t\t\t\t} else {\n\t\t\t\t\tif (uniform.precision === \"highp\") {\n\t\t\t\t\t\tsampleType = SAMPLETYPE_UNFILTERABLE_FLOAT;\n\t\t\t\t\t}\n\t\t\t\t\tif (shadowSamplers.has(uniform.type)) {\n\t\t\t\t\t\tsampleType = SAMPLETYPE_DEPTH;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tconst dimension = textureDimensions[uniform.type];\n\t\t\t\ttextureFormats.push(new BindTextureFormat(uniform.name, SHADERSTAGE_VERTEX | SHADERSTAGE_FRAGMENT, dimension, sampleType));\n\t\t\t}\n\t\t});\n\t\tconst meshBindGroupFormat = new BindGroupFormat(device, textureFormats);\n\t\tlet code = \"\";\n\t\tprocessingOptions.uniformFormats.forEach((format, bindGroupIndex) => {\n\t\t\tif (format) {\n\t\t\t\tcode += _ShaderProcessorGLSL.getUniformShaderDeclaration(format, bindGroupIndex, 0);\n\t\t\t}\n\t\t});\n\t\tif (meshUniformBufferFormat) {\n\t\t\tcode += _ShaderProcessorGLSL.getUniformShaderDeclaration(meshUniformBufferFormat, BINDGROUP_MESH_UB, 0);\n\t\t}\n\t\tprocessingOptions.bindGroupFormats.forEach((format, bindGroupIndex) => {\n\t\t\tif (format) {\n\t\t\t\tcode += _ShaderProcessorGLSL.getTexturesShaderDeclaration(format, bindGroupIndex);\n\t\t\t}\n\t\t});\n\t\tcode += _ShaderProcessorGLSL.getTexturesShaderDeclaration(meshBindGroupFormat, BINDGROUP_MESH);\n\t\treturn {\n\t\t\tcode,\n\t\t\tmeshUniformBufferFormat,\n\t\t\tmeshBindGroupFormat\n\t\t};\n\t}\n\tstatic processVaryings(varyingLines, varyingMap, isVertex) {\n\t\tlet block = \"\";\n\t\tconst op = isVertex ? \"out\" : \"in\";\n\t\tvaryingLines.forEach((line, index) => {\n\t\t\tconst words = _ShaderProcessorGLSL.splitToWords(line);\n\t\t\tconst type = words.slice(0, -1).join(\" \");\n\t\t\tconst name = words[words.length - 1];\n\t\t\tif (isVertex) {\n\t\t\t\tvaryingMap.set(name, index);\n\t\t\t} else {\n\t\t\t\tindex = varyingMap.get(name);\n\t\t\t}\n\t\t\tblock += `layout(location = ${index}) ${op} ${type} ${name};\n`;\n\t\t});\n\t\treturn block;\n\t}\n\tstatic processOuts(outsLines) {\n\t\tlet block = \"\";\n\t\toutsLines.forEach((line, index) => {\n\t\t\tblock += `layout(location = ${index}) out ${line};\n`;\n\t\t});\n\t\treturn block;\n\t}\n\t// extract count from type ('vec3' => 3, 'float' => 1)\n\tstatic getTypeCount(type) {\n\t\tconst lastChar = type.substring(type.length - 1);\n\t\tconst num = parseInt(lastChar, 10);\n\t\treturn isNaN(num) ? 1 : num;\n\t}\n\tstatic processAttributes(attributeLines, shaderDefinitionAttributes, attributesMap, processingOptions) {\n\t\tlet block = \"\";\n\t\tconst usedLocations = {};\n\t\tattributeLines.forEach((line) => {\n\t\t\tconst words = _ShaderProcessorGLSL.splitToWords(line);\n\t\t\tlet type = words[0];\n\t\t\tlet name = words[1];\n\t\t\tif (shaderDefinitionAttributes.hasOwnProperty(name)) {\n\t\t\t\tconst semantic = shaderDefinitionAttributes[name];\n\t\t\t\tconst location = semanticToLocation[semantic];\n\t\t\t\tusedLocations[location] = semantic;\n\t\t\t\tattributesMap.set(location, name);\n\t\t\t\tlet copyCode;\n\t\t\t\tconst element = processingOptions.getVertexElement(semantic);\n\t\t\t\tif (element) {\n\t\t\t\t\tconst dataType = element.dataType;\n\t\t\t\t\tif (dataType !== TYPE_FLOAT32 && dataType !== TYPE_FLOAT16 && !element.normalize && !element.asInt) {\n\t\t\t\t\t\tconst attribNumElements = _ShaderProcessorGLSL.getTypeCount(type);\n\t\t\t\t\t\tconst newName = `_private_${name}`;\n\t\t\t\t\t\tcopyCode = `vec${attribNumElements} ${name} = vec${attribNumElements}(${newName});\n`;\n\t\t\t\t\t\tname = newName;\n\t\t\t\t\t\tconst isSignedType = dataType === TYPE_INT8 || dataType === TYPE_INT16 || dataType === TYPE_INT32;\n\t\t\t\t\t\tif (attribNumElements === 1) {\n\t\t\t\t\t\t\ttype = isSignedType ? \"int\" : \"uint\";\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttype = isSignedType ? `ivec${attribNumElements}` : `uvec${attribNumElements}`;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tblock += `layout(location = ${location}) in ${type} ${name};\n`;\n\t\t\t\tif (copyCode) {\n\t\t\t\t\tblock += copyCode;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn block;\n\t}\n\tstatic splitToWords(line) {\n\t\tline = line.replace(/\\s+/g, \" \").trim();\n\t\treturn line.split(\" \");\n\t}\n\tstatic cutOut(src, start, end, replacement) {\n\t\treturn src.substring(0, start) + replacement + src.substring(end);\n\t}\n\tstatic getUniformShaderDeclaration(format, bindGroup, bindIndex) {\n\t\tconst name = bindGroupNames[bindGroup];\n\t\tlet code = `layout(set = ${bindGroup}, binding = ${bindIndex}, std140) uniform ub_${name} {\n`;\n\t\tformat.uniforms.forEach((uniform) => {\n\t\t\tconst typeString = uniformTypeToName[uniform.type];\n\t\t\tcode += `    ${typeString} ${uniform.shortName}${uniform.count ? `[${uniform.count}]` : \"\"};\n`;\n\t\t});\n\t\treturn `${code}};\n`;\n\t}\n\tstatic getTexturesShaderDeclaration(bindGroupFormat, bindGroup) {\n\t\tlet code = \"\";\n\t\tbindGroupFormat.textureFormats.forEach((format) => {\n\t\t\tlet textureType = textureDimensionInfo[format.textureDimension];\n\t\t\tconst isArray = textureType === \"texture2DArray\";\n\t\t\tconst sampleTypePrefix = format.sampleType === SAMPLETYPE_UINT ? \"u\" : format.sampleType === SAMPLETYPE_INT ? \"i\" : \"\";\n\t\t\ttextureType = `${sampleTypePrefix}${textureType}`;\n\t\t\tlet namePostfix = \"\";\n\t\t\tlet extraCode = \"\";\n\t\t\tif (isArray) {\n\t\t\t\tnamePostfix = \"_texture\";\n\t\t\t\textraCode = `#define ${format.name} ${sampleTypePrefix}sampler2DArray(${format.name}${namePostfix}, ${format.name}_sampler)\n`;\n\t\t\t}\n\t\t\tcode += `layout(set = ${bindGroup}, binding = ${format.slot}) uniform ${textureType} ${format.name}${namePostfix};\n`;\n\t\t\tif (format.hasSampler) {\n\t\t\t\tcode += `layout(set = ${bindGroup}, binding = ${format.slot + 1}) uniform sampler ${format.name}_sampler;\n`;\n\t\t\t}\n\t\t\tcode += extraCode;\n\t\t});\n\t\treturn code;\n\t}\n};\n\nvar KEYWORD2 = /^[ \\t]*(attribute|varying|uniform)[\\t ]+/gm;\nvar KEYWORD_LINE2 = /^[ \\t]*(attribute|varying|uniform)[ \\t]*([^;]+)(;+)/gm;\nvar KEYWORD_RESOURCE = /^[ \\t]*var\\s*(?:(<storage,[^>]*>)\\s*([\\w\\d_]+)\\s*:\\s*(.*?)\\s*;|(<(?!storage,)[^>]*>)?\\s*([\\w\\d_]+)\\s*:\\s*(texture_.*|storage_texture_.*|storage\\w.*|external_texture|sampler(?:_comparison)?)\\s*;)\\s*$/gm;\nvar VARYING = /(?:@interpolate\\([^)]*\\)\\s*)?([\\w]+)\\s*:\\s*([\\w<>]+)/;\nvar MARKER = \"@@@\";\nvar ENTRY_FUNCTION = /(@vertex|@fragment)\\s*fn\\s+\\w+\\s*\\(\\s*(\\w+)\\s*:[\\s\\S]*?\\{/;\nvar FRAG_DEPTH_ASSIGN = /\\.fragDepth\\s*=/;\nvar SAMPLE_MASK_ASSIGN = /\\.sampleMask\\s*=(?!=)/;\nvar FRAGMENT_BUILTINS = [\n\t{ wgslName: \"position\", wgslType: \"vec4f\", wgslBuiltin: \"position\", pcName: \"pcPosition\", isFallback: true },\n\t{ wgslName: \"frontFacing\", wgslType: \"bool\", wgslBuiltin: \"front_facing\", pcName: \"pcFrontFacing\" },\n\t{ wgslName: \"sampleIndex\", wgslType: \"u32\", wgslBuiltin: \"sample_index\", pcName: \"pcSampleIndex\" },\n\t{ wgslName: \"sampleMask\", wgslType: \"u32\", wgslBuiltin: \"sample_mask\", pcName: \"pcSampleMask\" },\n\t{ wgslName: \"primitiveIndex\", wgslType: \"u32\", wgslBuiltin: \"primitive_index\", pcName: \"pcPrimitiveIndex\", requiresFeature: \"supportsPrimitiveIndex\" }\n];\nvar VERTEX_BUILTINS = [\n\t{ wgslName: \"vertexIndex\", wgslType: \"u32\", wgslBuiltin: \"vertex_index\", pcName: \"pcVertexIndex\", isFallback: true },\n\t{ wgslName: \"instanceIndex\", wgslType: \"u32\", wgslBuiltin: \"instance_index\", pcName: \"pcInstanceIndex\" }\n];\nvar detectUsedBuiltins = (builtins, source, entryInputName, device) => {\n\treturn builtins.filter((b) => {\n\t\tif (b.requiresFeature && !device[b.requiresFeature]) return false;\n\t\treturn new RegExp(`\\\\b(?:${b.pcName}|${entryInputName}\\\\.${b.wgslName})\\\\b`).test(source);\n\t});\n};\nvar ensureNonEmptyStruct = (used, builtins, device, otherFieldsPresent) => {\n\tif (used.length === 0 && !otherFieldsPresent) {\n\t\tconst fallback = builtins.find((b) => b.isFallback && (!b.requiresFeature || device[b.requiresFeature]));\n\t\tif (fallback) return [fallback];\n\t}\n\treturn used;\n};\nvar renderBuiltinStructFields = (used) => used.map((b) => `    @builtin(${b.wgslBuiltin}) ${b.wgslName} : ${b.wgslType},\n`).join(\"\");\nvar renderBuiltinPrivates = (used) => used.map((b) => `    var<private> ${b.pcName}: ${b.wgslType};\n`).join(\"\");\nvar renderBuiltinCopies = (used) => used.map((b) => `    ${b.pcName} = input.${b.wgslName};\n`).join(\"\");\nvar textureBaseInfo = {\n\t\"texture_1d\": { viewDimension: TEXTUREDIMENSION_1D, baseSampleType: SAMPLETYPE_FLOAT },\n\t\"texture_2d\": { viewDimension: TEXTUREDIMENSION_2D, baseSampleType: SAMPLETYPE_FLOAT },\n\t\"texture_2d_array\": { viewDimension: TEXTUREDIMENSION_2D_ARRAY, baseSampleType: SAMPLETYPE_FLOAT },\n\t\"texture_3d\": { viewDimension: TEXTUREDIMENSION_3D, baseSampleType: SAMPLETYPE_FLOAT },\n\t\"texture_cube\": { viewDimension: TEXTUREDIMENSION_CUBE, baseSampleType: SAMPLETYPE_FLOAT },\n\t\"texture_cube_array\": { viewDimension: TEXTUREDIMENSION_CUBE_ARRAY, baseSampleType: SAMPLETYPE_FLOAT },\n\t\"texture_multisampled_2d\": { viewDimension: TEXTUREDIMENSION_2D, baseSampleType: SAMPLETYPE_FLOAT, multisampled: true },\n\t\"texture_depth_2d\": { viewDimension: TEXTUREDIMENSION_2D, baseSampleType: SAMPLETYPE_DEPTH },\n\t\"texture_depth_2d_array\": { viewDimension: TEXTUREDIMENSION_2D_ARRAY, baseSampleType: SAMPLETYPE_DEPTH },\n\t\"texture_depth_cube\": { viewDimension: TEXTUREDIMENSION_CUBE, baseSampleType: SAMPLETYPE_DEPTH },\n\t\"texture_depth_cube_array\": { viewDimension: TEXTUREDIMENSION_CUBE_ARRAY, baseSampleType: SAMPLETYPE_DEPTH },\n\t\"texture_depth_multisampled_2d\": { viewDimension: TEXTUREDIMENSION_2D, baseSampleType: SAMPLETYPE_DEPTH, multisampled: true },\n\t\"texture_external\": { viewDimension: TEXTUREDIMENSION_2D, baseSampleType: SAMPLETYPE_UNFILTERABLE_FLOAT }\n};\nvar getTextureInfo = (baseType, componentType) => {\n\tconst baseInfo = textureBaseInfo[baseType];\n\tlet finalSampleType = baseInfo.baseSampleType;\n\tconst multisampled = !!baseInfo.multisampled;\n\tif (baseInfo.baseSampleType === SAMPLETYPE_FLOAT) {\n\t\tswitch (componentType) {\n\t\t\tcase \"u32\":\n\t\t\t\tfinalSampleType = SAMPLETYPE_UINT;\n\t\t\t\tbreak;\n\t\t\tcase \"i32\":\n\t\t\t\tfinalSampleType = SAMPLETYPE_INT;\n\t\t\t\tbreak;\n\t\t\tcase \"f32\":\n\t\t\t\tfinalSampleType = SAMPLETYPE_FLOAT;\n\t\t\t\tbreak;\n\t\t\t// custom 'uff' type for unfilterable float, allowing us to create correct bind, which is automatically generated based on the shader\n\t\t\tcase \"uff\":\n\t\t\t\tfinalSampleType = SAMPLETYPE_UNFILTERABLE_FLOAT;\n\t\t\t\tbreak;\n\t\t}\n\t\tif (multisampled && finalSampleType === SAMPLETYPE_FLOAT) {\n\t\t\tfinalSampleType = SAMPLETYPE_UNFILTERABLE_FLOAT;\n\t\t}\n\t}\n\treturn {\n\t\tviewDimension: baseInfo.viewDimension,\n\t\tsampleType: finalSampleType,\n\t\tmultisampled\n\t};\n};\nvar getTextureDeclarationType = (viewDimension, sampleType, multisampled = false) => {\n\tif (multisampled) {\n\t\tif (sampleType === SAMPLETYPE_DEPTH) {\n\t\t\treturn \"texture_depth_multisampled_2d\";\n\t\t}\n\t\tlet msFormat;\n\t\tswitch (sampleType) {\n\t\t\tcase SAMPLETYPE_FLOAT:\n\t\t\tcase SAMPLETYPE_UNFILTERABLE_FLOAT:\n\t\t\t\tmsFormat = \"f32\";\n\t\t\t\tbreak;\n\t\t\tcase SAMPLETYPE_UINT:\n\t\t\t\tmsFormat = \"u32\";\n\t\t\t\tbreak;\n\t\t\tcase SAMPLETYPE_INT:\n\t\t\t\tmsFormat = \"i32\";\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t}\n\t\treturn `texture_multisampled_2d<${msFormat}>`;\n\t}\n\tif (sampleType === SAMPLETYPE_DEPTH) {\n\t\tswitch (viewDimension) {\n\t\t\tcase TEXTUREDIMENSION_2D:\n\t\t\t\treturn \"texture_depth_2d\";\n\t\t\tcase TEXTUREDIMENSION_2D_ARRAY:\n\t\t\t\treturn \"texture_depth_2d_array\";\n\t\t\tcase TEXTUREDIMENSION_CUBE:\n\t\t\t\treturn \"texture_depth_cube\";\n\t\t\tcase TEXTUREDIMENSION_CUBE_ARRAY:\n\t\t\t\treturn \"texture_depth_cube_array\";\n\t\t\tdefault:\n\t\t}\n\t}\n\tlet baseTypeString;\n\tswitch (viewDimension) {\n\t\tcase TEXTUREDIMENSION_1D:\n\t\t\tbaseTypeString = \"texture_1d\";\n\t\t\tbreak;\n\t\tcase TEXTUREDIMENSION_2D:\n\t\t\tbaseTypeString = \"texture_2d\";\n\t\t\tbreak;\n\t\tcase TEXTUREDIMENSION_2D_ARRAY:\n\t\t\tbaseTypeString = \"texture_2d_array\";\n\t\t\tbreak;\n\t\tcase TEXTUREDIMENSION_3D:\n\t\t\tbaseTypeString = \"texture_3d\";\n\t\t\tbreak;\n\t\tcase TEXTUREDIMENSION_CUBE:\n\t\t\tbaseTypeString = \"texture_cube\";\n\t\t\tbreak;\n\t\tcase TEXTUREDIMENSION_CUBE_ARRAY:\n\t\t\tbaseTypeString = \"texture_cube_array\";\n\t\t\tbreak;\n\t\tdefault:\n\t}\n\tlet coreFormatString;\n\tswitch (sampleType) {\n\t\tcase SAMPLETYPE_FLOAT:\n\t\tcase SAMPLETYPE_UNFILTERABLE_FLOAT:\n\t\t\tcoreFormatString = \"f32\";\n\t\t\tbreak;\n\t\tcase SAMPLETYPE_UINT:\n\t\t\tcoreFormatString = \"u32\";\n\t\t\tbreak;\n\t\tcase SAMPLETYPE_INT:\n\t\t\tcoreFormatString = \"i32\";\n\t\t\tbreak;\n\t\tdefault:\n\t}\n\treturn `${baseTypeString}<${coreFormatString}>`;\n};\nvar gpuFormatToPixelFormat = /* @__PURE__ */ new Map();\ngpuTextureFormats.forEach((str, pixelFormat) => {\n\tif (str) {\n\t\tgpuFormatToPixelFormat.set(str, pixelFormat);\n\t}\n});\nvar wrappedArrayTypes = {\n\t\"f32\": \"WrappedF32\",\n\t\"i32\": \"WrappedI32\",\n\t\"u32\": \"WrappedU32\",\n\t\"vec2f\": \"WrappedVec2F\",\n\t\"vec2i\": \"WrappedVec2I\",\n\t\"vec2u\": \"WrappedVec2U\"\n};\nvar splitToWords = (line) => {\n\tline = line.replace(/\\s+/g, \" \").trim();\n\treturn line.split(/[\\s:]+/);\n};\nvar UNIFORM_ARRAY_REGEX = /array<([^,]+),\\s*([^>]+)>/;\nvar UniformLine2 = class {\n\tubName = null;\n\tarraySize = 0;\n\tconstructor(line, shader) {\n\t\tthis.line = line;\n\t\tconst parts = splitToWords(line);\n\t\tif (parts.length < 2) {\n\t\t\tshader.failed = true;\n\t\t\treturn;\n\t\t}\n\t\tthis.name = parts[0];\n\t\tthis.type = parts.slice(1).join(\" \");\n\t\tif (this.type.includes(\"array<\")) {\n\t\t\tconst match = UNIFORM_ARRAY_REGEX.exec(this.type);\n\t\t\tthis.type = match[1].trim();\n\t\t\tthis.arraySize = Number(match[2]);\n\t\t\tif (isNaN(this.arraySize)) {\n\t\t\t\tshader.failed = true;\n\t\t\t}\n\t\t}\n\t}\n};\nvar TEXTURE_REGEX = /^\\s*var\\s+(\\w+)\\s*:\\s*(texture_\\w+)(?:<(\\w+)>)?;\\s*$/;\nvar STORAGE_TEXTURE_REGEX = /^\\s*var\\s+([\\w\\d_]+)\\s*:\\s*(texture_storage_2d|texture_storage_2d_array)<([\\w\\d_]+),\\s*(\\w+)>\\s*;\\s*$/;\nvar STORAGE_BUFFER_REGEX = /^\\s*var\\s*<storage,\\s*(read_write|read)?>\\s*([\\w\\d_]+)\\s*:\\s*(.*)\\s*;\\s*$/;\nvar EXTERNAL_TEXTURE_REGEX = /^\\s*var\\s+([\\w\\d_]+)\\s*:\\s*texture_external;\\s*$/;\nvar SAMPLER_REGEX = /^\\s*var\\s+([\\w\\d_]+)\\s*:\\s*(sampler|sampler_comparison)\\s*;\\s*$/;\nvar ResourceLine = class {\n\tconstructor(line, shader) {\n\t\tthis.originalLine = line;\n\t\tthis.line = line;\n\t\tthis.isTexture = false;\n\t\tthis.isSampler = false;\n\t\tthis.isStorageTexture = false;\n\t\tthis.isStorageBuffer = false;\n\t\tthis.isExternalTexture = false;\n\t\tthis.multisampled = false;\n\t\tthis.type = \"\";\n\t\tthis.matchedElements = [];\n\t\tconst textureMatch = this.line.match(TEXTURE_REGEX);\n\t\tif (textureMatch) {\n\t\t\tthis.name = textureMatch[1];\n\t\t\tthis.type = textureMatch[2];\n\t\t\tthis.textureFormat = textureMatch[3];\n\t\t\tthis.isTexture = true;\n\t\t\tthis.matchedElements.push(...textureMatch);\n\t\t\tconst info = getTextureInfo(this.type, this.textureFormat);\n\t\t\tthis.textureDimension = info.viewDimension;\n\t\t\tthis.sampleType = info.sampleType;\n\t\t\tthis.multisampled = info.multisampled;\n\t\t}\n\t\tconst storageTextureMatch = this.line.match(STORAGE_TEXTURE_REGEX);\n\t\tif (storageTextureMatch) {\n\t\t\tthis.isStorageTexture = true;\n\t\t\tthis.name = storageTextureMatch[1];\n\t\t\tthis.textureType = storageTextureMatch[2];\n\t\t\tthis.format = storageTextureMatch[3];\n\t\t\tthis.access = storageTextureMatch[4];\n\t\t\tthis.matchedElements.push(...storageTextureMatch);\n\t\t}\n\t\tconst storageBufferMatch = this.line.match(STORAGE_BUFFER_REGEX);\n\t\tif (storageBufferMatch) {\n\t\t\tthis.isStorageBuffer = true;\n\t\t\tthis.accessMode = storageBufferMatch[1] || \"none\";\n\t\t\tthis.name = storageBufferMatch[2];\n\t\t\tthis.type = storageBufferMatch[3];\n\t\t\tthis.matchedElements.push(...storageBufferMatch);\n\t\t}\n\t\tconst externalTextureMatch = this.line.match(EXTERNAL_TEXTURE_REGEX);\n\t\tif (externalTextureMatch) {\n\t\t\tthis.name = externalTextureMatch[1];\n\t\t\tthis.isExternalTexture = true;\n\t\t\tthis.matchedElements.push(...storageBufferMatch);\n\t\t}\n\t\tconst samplerMatch = this.line.match(SAMPLER_REGEX);\n\t\tif (samplerMatch) {\n\t\t\tthis.name = samplerMatch[1];\n\t\t\tthis.samplerType = samplerMatch[2];\n\t\t\tthis.isSampler = true;\n\t\t\tthis.matchedElements.push(...samplerMatch);\n\t\t}\n\t\tif (this.matchedElements.length === 0) {\n\t\t\tshader.failed = true;\n\t\t}\n\t}\n\tequals(other) {\n\t\tif (this.name !== other.name) return false;\n\t\tif (this.type !== other.type) return false;\n\t\tif (this.isTexture !== other.isTexture) return false;\n\t\tif (this.isSampler !== other.isSampler) return false;\n\t\tif (this.isStorageTexture !== other.isStorageTexture) return false;\n\t\tif (this.isStorageBuffer !== other.isStorageBuffer) return false;\n\t\tif (this.isExternalTexture !== other.isExternalTexture) return false;\n\t\tif (this.textureFormat !== other.textureFormat) return false;\n\t\tif (this.textureDimension !== other.textureDimension) return false;\n\t\tif (this.sampleType !== other.sampleType) return false;\n\t\tif (this.multisampled !== other.multisampled) return false;\n\t\tif (this.textureType !== other.textureType) return false;\n\t\tif (this.format !== other.format) return false;\n\t\tif (this.access !== other.access) return false;\n\t\tif (this.accessMode !== other.accessMode) return false;\n\t\tif (this.samplerType !== other.samplerType) return false;\n\t\treturn true;\n\t}\n};\nvar WebgpuShaderProcessorWGSL = class _WebgpuShaderProcessorWGSL {\n\tstatic run(device, shaderDefinition, shader) {\n\t\tconst varyingMap = /* @__PURE__ */ new Map();\n\t\tconst vertexExtracted = _WebgpuShaderProcessorWGSL.extract(shaderDefinition.vshader);\n\t\tconst fragmentExtracted = _WebgpuShaderProcessorWGSL.extract(shaderDefinition.fshader);\n\t\tconst vertexInputName = vertexExtracted.src.match(ENTRY_FUNCTION)?.[2] ?? \"\";\n\t\tconst fragmentInputName = fragmentExtracted.src.match(ENTRY_FUNCTION)?.[2] ?? \"\";\n\t\tconst attributesMap = /* @__PURE__ */ new Map();\n\t\tconst attributesBlock = _WebgpuShaderProcessorWGSL.processAttributes(vertexExtracted.attributes, shaderDefinition.attributes, attributesMap, shaderDefinition.processingOptions, shader, device, vertexExtracted.src, vertexInputName);\n\t\tconst vertexVaryingsBlock = _WebgpuShaderProcessorWGSL.processVaryings(vertexExtracted.varyings, varyingMap, true, device);\n\t\tconst fragmentVaryingsBlock = _WebgpuShaderProcessorWGSL.processVaryings(fragmentExtracted.varyings, varyingMap, false, device, fragmentExtracted.src, fragmentInputName);\n\t\tconst concatUniforms = vertexExtracted.uniforms.concat(fragmentExtracted.uniforms);\n\t\tconst uniforms = Array.from(new Set(concatUniforms));\n\t\tconst parsedUniforms = uniforms.map((line) => new UniformLine2(line, shader));\n\t\tconst uniformsData = _WebgpuShaderProcessorWGSL.processUniforms(device, parsedUniforms, shaderDefinition.processingOptions, shader);\n\t\tvertexExtracted.src = _WebgpuShaderProcessorWGSL.renameUniformAccess(vertexExtracted.src, parsedUniforms);\n\t\tfragmentExtracted.src = _WebgpuShaderProcessorWGSL.renameUniformAccess(fragmentExtracted.src, parsedUniforms);\n\t\tconst parsedResources = _WebgpuShaderProcessorWGSL.mergeResources(vertexExtracted.resources, fragmentExtracted.resources, shader);\n\t\tconst resourcesData = _WebgpuShaderProcessorWGSL.processResources(device, parsedResources, shaderDefinition.processingOptions, shader);\n\t\tconst fOutput = _WebgpuShaderProcessorWGSL.generateFragmentOutputStruct(\n\t\t\tfragmentExtracted.src,\n\t\t\tdevice.maxColorAttachments,\n\t\t\tshaderDefinition.useDualSourceBlending\n\t\t);\n\t\tvertexExtracted.src = _WebgpuShaderProcessorWGSL.copyInputs(vertexExtracted.src, shader);\n\t\tfragmentExtracted.src = _WebgpuShaderProcessorWGSL.copyInputs(fragmentExtracted.src, shader);\n\t\tconst vBlock = `${attributesBlock}\n${vertexVaryingsBlock}\n${uniformsData.code}\n${resourcesData.code}\n`;\n\t\tconst vshader = vertexExtracted.src.replace(MARKER, vBlock);\n\t\tconst fBlock = `${fragmentVaryingsBlock}\n${fOutput}\n${uniformsData.code}\n${resourcesData.code}\n`;\n\t\tconst fshader = fragmentExtracted.src.replace(MARKER, fBlock);\n\t\treturn {\n\t\t\tvshader,\n\t\t\tfshader,\n\t\t\tattributes: attributesMap,\n\t\t\tmeshUniformBufferFormat: uniformsData.meshUniformBufferFormat,\n\t\t\tmeshBindGroupFormat: resourcesData.meshBindGroupFormat\n\t\t};\n\t}\n\tstatic runCompute(device, source, shaderDefinition, shader, reflectedGroupIndex) {\n\t\tconst extracted = _WebgpuShaderProcessorWGSL.extract(source);\n\t\tconst parsedUniforms = extracted.uniforms.map((line) => new UniformLine2(line, shader));\n\t\tconst meshUniforms = [];\n\t\tparsedUniforms.forEach((uniform) => {\n\t\t\tuniform.ubName = \"ub_compute\";\n\t\t\tconst uniformType = uniformTypeToNameMapWGSL.get(uniform.type);\n\t\t\tmeshUniforms.push(new UniformFormat(uniform.name, uniformType, uniform.arraySize));\n\t\t});\n\t\tconst computeUniformBufferFormat = meshUniforms.length > 0 ? new UniformBufferFormat(device, meshUniforms) : null;\n\t\tconst parsedResources = _WebgpuShaderProcessorWGSL.mergeResources(extracted.resources, [], shader);\n\t\tconst resourceFormats = _WebgpuShaderProcessorWGSL.buildResourceFormats(parsedResources, SHADERSTAGE_COMPUTE, shader);\n\t\tconst ubBindFormat = computeUniformBufferFormat ? new BindUniformBufferFormat(\"ub_compute\", SHADERSTAGE_COMPUTE) : null;\n\t\tconst allFormats = ubBindFormat ? [...resourceFormats, ubBindFormat] : resourceFormats;\n\t\tlet cshader = source;\n\t\tlet computeBindGroupFormat = null;\n\t\tif (allFormats.length > 0) {\n\t\t\tcomputeBindGroupFormat = new BindGroupFormat(device, allFormats);\n\t\t\tlet code = _WebgpuShaderProcessorWGSL.getTextureShaderDeclaration(computeBindGroupFormat, reflectedGroupIndex);\n\t\t\tif (computeUniformBufferFormat) {\n\t\t\t\tcode += _WebgpuShaderProcessorWGSL.getUniformShaderDeclaration(computeUniformBufferFormat, reflectedGroupIndex, ubBindFormat.slot, \"compute\");\n\t\t\t}\n\t\t\tconst src = _WebgpuShaderProcessorWGSL.renameUniformAccess(extracted.src, parsedUniforms);\n\t\t\tcshader = src.includes(MARKER) ? src.replace(MARKER, code) : `${code}\n${src}`;\n\t\t}\n\t\treturn {\n\t\t\tcshader,\n\t\t\tcomputeBindGroupFormat,\n\t\t\tcomputeUniformBufferFormat\n\t\t};\n\t}\n\t// Extract required information from the shader source code.\n\tstatic extract(src) {\n\t\tconst attributes = [];\n\t\tconst varyings = [];\n\t\tconst uniforms = [];\n\t\tconst resources = [];\n\t\tlet replacement = `${MARKER}\n`;\n\t\tlet match;\n\t\twhile ((match = KEYWORD2.exec(src)) !== null) {\n\t\t\tconst keyword = match[1];\n\t\t\tKEYWORD_LINE2.lastIndex = match.index;\n\t\t\tconst lineMatch = KEYWORD_LINE2.exec(src);\n\t\t\tif (keyword === \"attribute\") {\n\t\t\t\tattributes.push(lineMatch[2]);\n\t\t\t} else if (keyword === \"varying\") {\n\t\t\t\tvaryings.push(lineMatch[2]);\n\t\t\t} else if (keyword === \"uniform\") {\n\t\t\t\tuniforms.push(lineMatch[2]);\n\t\t\t}\n\t\t\tsrc = _WebgpuShaderProcessorWGSL.cutOut(src, match.index, KEYWORD_LINE2.lastIndex, replacement);\n\t\t\tKEYWORD2.lastIndex = match.index + replacement.length;\n\t\t\treplacement = \"\";\n\t\t}\n\t\twhile ((match = KEYWORD_RESOURCE.exec(src)) !== null) {\n\t\t\tresources.push(match[0]);\n\t\t\tsrc = _WebgpuShaderProcessorWGSL.cutOut(src, match.index, KEYWORD_RESOURCE.lastIndex, replacement);\n\t\t\tKEYWORD_RESOURCE.lastIndex = match.index + replacement.length;\n\t\t\treplacement = \"\";\n\t\t}\n\t\tif (replacement) {\n\t\t\tconst directives = src.match(/^(?:\\s*(?:enable|requires)\\s+\\w+\\s*;)*/)?.[0] ?? \"\";\n\t\t\tsrc = `${directives}\n${replacement}${src.slice(directives.length)}`;\n\t\t}\n\t\treturn {\n\t\t\tsrc,\n\t\t\tattributes,\n\t\t\tvaryings,\n\t\t\tuniforms,\n\t\t\tresources\n\t\t};\n\t}\n\tstatic processUniforms(device, uniforms, processingOptions, shader) {\n\t\tconst meshUniforms = [];\n\t\tuniforms.forEach((uniform) => {\n\t\t\tif (!processingOptions.hasUniform(uniform.name)) {\n\t\t\t\tuniform.ubName = \"ub_mesh_ub\";\n\t\t\t\tconst uniformType = uniformTypeToNameMapWGSL.get(uniform.type);\n\t\t\t\tconst uniformFormat = new UniformFormat(uniform.name, uniformType, uniform.arraySize);\n\t\t\t\tmeshUniforms.push(uniformFormat);\n\t\t\t} else {\n\t\t\t\tuniform.ubName = \"ub_view\";\n\t\t\t}\n\t\t});\n\t\tif (meshUniforms.length === 0) {\n\t\t\tmeshUniforms.push(new UniformFormat(UNUSED_UNIFORM_NAME, UNIFORMTYPE_FLOAT));\n\t\t}\n\t\tconst meshUniformBufferFormat = new UniformBufferFormat(device, meshUniforms);\n\t\tlet code = \"\";\n\t\tprocessingOptions.uniformFormats.forEach((format, bindGroupIndex) => {\n\t\t\tif (format) {\n\t\t\t\tcode += _WebgpuShaderProcessorWGSL.getUniformShaderDeclaration(format, bindGroupIndex, 0);\n\t\t\t}\n\t\t});\n\t\tif (meshUniformBufferFormat) {\n\t\t\tcode += _WebgpuShaderProcessorWGSL.getUniformShaderDeclaration(meshUniformBufferFormat, BINDGROUP_MESH_UB, 0);\n\t\t}\n\t\treturn {\n\t\t\tcode,\n\t\t\tmeshUniformBufferFormat\n\t\t};\n\t}\n\tstatic renameUniformAccess(source, uniforms) {\n\t\tuniforms.forEach((uniform) => {\n\t\t\tconst srcName = `uniform.${uniform.name}`;\n\t\t\tconst dstName = `${uniform.ubName}.${uniform.name}`;\n\t\t\tconst regex = new RegExp(`\\\\b${srcName}\\\\b`, \"g\");\n\t\t\tsource = source.replace(regex, dstName);\n\t\t});\n\t\treturn source;\n\t}\n\tstatic mergeResources(vertex, fragment, shader) {\n\t\tconst resources = vertex.map((line) => new ResourceLine(line, shader));\n\t\tconst fragmentResources = fragment.map((line) => new ResourceLine(line, shader));\n\t\tfragmentResources.forEach((fragmentResource) => {\n\t\t\tconst existing = resources.find((resource) => resource.name === fragmentResource.name);\n\t\t\tif (existing) {\n\t\t\t\tif (!existing.equals(fragmentResource)) {\n\t\t\t\t\tshader.failed = true;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tresources.push(fragmentResource);\n\t\t\t}\n\t\t});\n\t\treturn resources;\n\t}\n\tstatic buildResourceFormats(resources, visibility, shader) {\n\t\tconst formats = [];\n\t\tfor (let i2 = 0; i2 < resources.length; i2++) {\n\t\t\tconst resource = resources[i2];\n\t\t\tif (resource.isTexture) {\n\t\t\t\tconst sampler = resources[i2 + 1];\n\t\t\t\tconst hasSampler = (sampler?.isSampler ?? false) && !resource.multisampled;\n\t\t\t\tconst sampleType = resource.sampleType;\n\t\t\t\tconst dimension = resource.textureDimension;\n\t\t\t\tformats.push(new BindTextureFormat(resource.name, visibility, dimension, sampleType, hasSampler, hasSampler ? sampler.name : null, resource.multisampled));\n\t\t\t\tif (hasSampler) i2++;\n\t\t\t}\n\t\t\tif (resource.isStorageBuffer) {\n\t\t\t\tconst readOnly = resource.accessMode !== \"read_write\";\n\t\t\t\tconst bufferFormat = new BindStorageBufferFormat(resource.name, visibility, readOnly);\n\t\t\t\tbufferFormat.format = resource.type;\n\t\t\t\tformats.push(bufferFormat);\n\t\t\t}\n\t\t\tif (resource.isStorageTexture) {\n\t\t\t\tconst dimension = resource.textureType === \"texture_storage_2d_array\" ? TEXTUREDIMENSION_2D_ARRAY : TEXTUREDIMENSION_2D;\n\t\t\t\tconst pixelFormat = gpuFormatToPixelFormat.get(resource.format);\n\t\t\t\tconst write = resource.access === \"write\" || resource.access === \"read_write\";\n\t\t\t\tconst read = resource.access === \"read\" || resource.access === \"read_write\";\n\t\t\t\tformats.push(new BindStorageTextureFormat(resource.name, pixelFormat, dimension, write, read));\n\t\t\t}\n\t\t}\n\t\treturn formats;\n\t}\n\tstatic processResources(device, resources, processingOptions, shader, visibility = SHADERSTAGE_VERTEX | SHADERSTAGE_FRAGMENT, bindGroupIndex = BINDGROUP_MESH) {\n\t\tconst textureFormats = _WebgpuShaderProcessorWGSL.buildResourceFormats(resources, visibility, shader);\n\t\tconst meshBindGroupFormat = new BindGroupFormat(device, textureFormats);\n\t\tlet code = \"\";\n\t\tprocessingOptions?.bindGroupFormats?.forEach((format, index) => {\n\t\t\tif (format) {\n\t\t\t\tcode += _WebgpuShaderProcessorWGSL.getTextureShaderDeclaration(format, index);\n\t\t\t}\n\t\t});\n\t\tcode += _WebgpuShaderProcessorWGSL.getTextureShaderDeclaration(meshBindGroupFormat, bindGroupIndex);\n\t\treturn {\n\t\t\tcode,\n\t\t\tmeshBindGroupFormat\n\t\t};\n\t}\n\tstatic getUniformShaderDeclaration(ubFormat, bindGroup, bindIndex, name = bindGroupNames[bindGroup]) {\n\t\tconst structName = `struct_ub_${name}`;\n\t\tlet code = `struct ${structName} {\n`;\n\t\tubFormat.uniforms.forEach((uniform) => {\n\t\t\tlet typeString = uniformTypeToNameWGSL[uniform.type][0];\n\t\t\tif (uniform.count > 0) {\n\t\t\t\tif (wrappedArrayTypes.hasOwnProperty(typeString)) {\n\t\t\t\t\ttypeString = wrappedArrayTypes[typeString];\n\t\t\t\t}\n\t\t\t\tcode += `    ${uniform.shortName}: array<${typeString}, ${uniform.count}>,\n`;\n\t\t\t} else {\n\t\t\t\tcode += `    ${uniform.shortName}: ${typeString},\n`;\n\t\t\t}\n\t\t});\n\t\tcode += \"};\\n\";\n\t\tcode += `@group(${bindGroup}) @binding(${bindIndex}) var<uniform> ub_${name} : ${structName};\n\n`;\n\t\treturn code;\n\t}\n\tstatic getTextureShaderDeclaration(format, bindGroup) {\n\t\tlet code = \"\";\n\t\tformat.textureFormats.forEach((format2) => {\n\t\t\tconst textureTypeName = getTextureDeclarationType(format2.textureDimension, format2.sampleType, format2.multisampled);\n\t\t\tcode += `@group(${bindGroup}) @binding(${format2.slot}) var ${format2.name}: ${textureTypeName};\n`;\n\t\t\tif (format2.hasSampler) {\n\t\t\t\tconst samplerName = format2.sampleType === SAMPLETYPE_DEPTH ? \"sampler_comparison\" : \"sampler\";\n\t\t\t\tcode += `@group(${bindGroup}) @binding(${format2.slot + 1}) var ${format2.samplerName}: ${samplerName};\n`;\n\t\t\t}\n\t\t});\n\t\tformat.storageBufferFormats.forEach((format2) => {\n\t\t\tconst access = format2.readOnly ? \"read\" : \"read_write\";\n\t\t\tcode += `@group(${bindGroup}) @binding(${format2.slot}) var<storage, ${access}> ${format2.name} : ${format2.format};\n`;\n\t\t});\n\t\tformat.storageTextureFormats.forEach((format2) => {\n\t\t\tconst storageType = format2.textureDimension === TEXTUREDIMENSION_2D_ARRAY ? \"texture_storage_2d_array\" : \"texture_storage_2d\";\n\t\t\tconst fmtString = gpuTextureFormats[format2.format];\n\t\t\tconst access = format2.read ? format2.write ? \"read_write\" : \"read\" : \"write\";\n\t\t\tcode += `@group(${bindGroup}) @binding(${format2.slot}) var ${format2.name}: ${storageType}<${fmtString}, ${access}>;\n`;\n\t\t});\n\t\treturn code;\n\t}\n\tstatic processVaryings(varyingLines, varyingMap, isVertex, device, source = \"\", entryInputName = \"\") {\n\t\tlet block = \"\";\n\t\tlet blockPrivates = \"\";\n\t\tlet blockCopy = \"\";\n\t\tvaryingLines.forEach((line, index) => {\n\t\t\tconst match = line.match(VARYING);\n\t\t\tif (match) {\n\t\t\t\tconst name = match[1];\n\t\t\t\tconst type = match[2];\n\t\t\t\tif (isVertex) {\n\t\t\t\t\tvaryingMap.set(name, index);\n\t\t\t\t} else {\n\t\t\t\t\tindex = varyingMap.get(name);\n\t\t\t\t}\n\t\t\t\tblock += `    @location(${index}) ${line},\n`;\n\t\t\t\tif (!isVertex) {\n\t\t\t\t\tblockPrivates += `    var<private> ${name}: ${type};\n`;\n\t\t\t\t\tblockCopy += `    ${name} = input.${name};\n`;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tif (isVertex) {\n\t\t\tblock += \"    @builtin(position) position : vec4f,\\n\";\n\t\t\treturn `\n\t\t\t\t\t\t\t\tstruct VertexOutput {\n\t\t\t\t\t\t\t\t\t\t${block}\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t`;\n\t\t}\n\t\tconst usedBuiltins = ensureNonEmptyStruct(\n\t\t\tdetectUsedBuiltins(FRAGMENT_BUILTINS, source, entryInputName, device),\n\t\t\tFRAGMENT_BUILTINS,\n\t\t\tdevice,\n\t\t\tblock.length > 0\n\t\t);\n\t\tblock += renderBuiltinStructFields(usedBuiltins);\n\t\treturn `\n\t\t\t\t\t\tstruct FragmentInput {\n\t\t\t\t\t\t\t\t${block}\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\t${renderBuiltinPrivates(usedBuiltins)}\n\t\t\t\t\t\t${blockPrivates}\n\n\t\t\t\t\t\t// function to copy inputs (varyings) to private global variables\n\t\t\t\t\t\tfn _pcCopyInputs(input: FragmentInput) {\n\t\t\t\t\t\t\t\t${blockCopy}\n\t\t\t\t\t\t\t\t${renderBuiltinCopies(usedBuiltins)}\n\t\t\t\t\t\t}\n\t\t\t\t`;\n\t}\n\tstatic generateFragmentOutputStruct(src, numRenderTargets, useDualSourceBlending = false) {\n\t\tlet structCode = \"struct FragmentOutput {\\n\";\n\t\tif (useDualSourceBlending) {\n\t\t\tstructCode += \"    @location(0) @blend_src(0) color : pcOutType0,\\n\";\n\t\t\tstructCode += \"    @location(0) @blend_src(1) colorSecondary : pcOutType0,\\n\";\n\t\t} else {\n\t\t\tconst colorName = (i2) => `color${i2 > 0 ? i2 : \"\"}`;\n\t\t\tfor (let i2 = 0; i2 < numRenderTargets; i2++) {\n\t\t\t\tconst name = colorName(i2);\n\t\t\t\tif (src.search(new RegExp(`\\\\.${name}\\\\s*=`)) !== -1) {\n\t\t\t\t\tstructCode += `    @location(${i2}) ${name} : pcOutType${i2},\n`;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tconst needsFragDepth = src.search(FRAG_DEPTH_ASSIGN) !== -1;\n\t\tif (needsFragDepth) {\n\t\t\tstructCode += \"    @builtin(frag_depth) fragDepth : f32,\\n\";\n\t\t}\n\t\tconst needsSampleMask = src.search(SAMPLE_MASK_ASSIGN) !== -1;\n\t\tif (needsSampleMask) {\n\t\t\tstructCode += \"    @builtin(sample_mask) sampleMask : u32,\\n\";\n\t\t}\n\t\treturn `${structCode}};\n`;\n\t}\n\t// convert a float attribute type to matching signed or unsigned int type\n\t// for example: vec4f -> vec4u, f32 -> u32\n\tstatic floatAttributeToInt(type, signed) {\n\t\tconst longToShortMap = {\n\t\t\t\"f32\": \"f32\",\n\t\t\t\"vec2<f32>\": \"vec2f\",\n\t\t\t\"vec3<f32>\": \"vec3f\",\n\t\t\t\"vec4<f32>\": \"vec4f\"\n\t\t};\n\t\tconst shortType = longToShortMap[type] || type;\n\t\tconst floatToIntShort = {\n\t\t\t\"f32\": signed ? \"i32\" : \"u32\",\n\t\t\t\"vec2f\": signed ? \"vec2i\" : \"vec2u\",\n\t\t\t\"vec3f\": signed ? \"vec3i\" : \"vec3u\",\n\t\t\t\"vec4f\": signed ? \"vec4i\" : \"vec4u\"\n\t\t};\n\t\treturn floatToIntShort[shortType] || null;\n\t}\n\tstatic processAttributes(attributeLines, shaderDefinitionAttributes = {}, attributesMap, processingOptions, shader, device, source = \"\", entryInputName = \"\") {\n\t\tlet blockAttributes = \"\";\n\t\tlet blockPrivates = \"\";\n\t\tlet blockCopy = \"\";\n\t\tconst usedLocations = {};\n\t\tattributeLines.forEach((line) => {\n\t\t\tconst words = splitToWords(line);\n\t\t\tconst name = words[0];\n\t\t\tlet type = words[1];\n\t\t\tconst originalType = type;\n\t\t\tif (shaderDefinitionAttributes.hasOwnProperty(name)) {\n\t\t\t\tconst semantic = shaderDefinitionAttributes[name];\n\t\t\t\tconst location = semanticToLocation[semantic];\n\t\t\t\tusedLocations[location] = semantic;\n\t\t\t\tattributesMap.set(location, name);\n\t\t\t\tconst element = processingOptions.getVertexElement(semantic);\n\t\t\t\tif (element) {\n\t\t\t\t\tconst dataType = element.dataType;\n\t\t\t\t\tif (dataType !== TYPE_FLOAT32 && dataType !== TYPE_FLOAT16 && !element.normalize && !element.asInt) {\n\t\t\t\t\t\tconst isSignedType = dataType === TYPE_INT8 || dataType === TYPE_INT16 || dataType === TYPE_INT32;\n\t\t\t\t\t\ttype = _WebgpuShaderProcessorWGSL.floatAttributeToInt(type, isSignedType);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tblockAttributes += `    @location(${location}) ${name}: ${type},\n`;\n\t\t\t\tblockPrivates += `    var<private> ${line};\n`;\n\t\t\t\tblockCopy += `    ${name} = ${originalType}(input.${name});\n`;\n\t\t\t} else {\n\t\t\t}\n\t\t});\n\t\tconst usedBuiltins = ensureNonEmptyStruct(\n\t\t\tdetectUsedBuiltins(VERTEX_BUILTINS, source, entryInputName, device),\n\t\t\tVERTEX_BUILTINS,\n\t\t\tdevice,\n\t\t\tblockAttributes.length > 0\n\t\t);\n\t\treturn `\n\t\t\t\t\t\tstruct VertexInput {\n\t\t\t\t\t\t\t\t${blockAttributes}\n\t\t\t\t\t\t\t\t${renderBuiltinStructFields(usedBuiltins)}\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\t${blockPrivates}\n\t\t\t\t\t\t${renderBuiltinPrivates(usedBuiltins)}\n\n\t\t\t\t\t\tfn _pcCopyInputs(input: VertexInput) {\n\t\t\t\t\t\t\t\t${blockCopy}\n\t\t\t\t\t\t\t\t${renderBuiltinCopies(usedBuiltins)}\n\t\t\t\t\t\t}\n\t\t\t\t`;\n\t}\n\tstatic copyInputs(src, shader) {\n\t\tconst match = src.match(ENTRY_FUNCTION);\n\t\tif (!match || !match[2]) {\n\t\t\treturn src;\n\t\t}\n\t\tconst inputName = match[2];\n\t\tconst braceIndex = match.index + match[0].length - 1;\n\t\tconst beginning = src.slice(0, braceIndex + 1);\n\t\tconst end = src.slice(braceIndex + 1);\n\t\tconst lineToInject = `\n\t\t_pcCopyInputs(${inputName});`;\n\t\treturn beginning + lineToInject + end;\n\t}\n\tstatic cutOut(src, start, end, replacement) {\n\t\treturn src.substring(0, start) + replacement + src.substring(end);\n\t}\n};\n\nvar computeShaderIds = new StringIds();\nvar WebgpuShader = class {\n\t_vertexCode = null;\n\t_fragmentCode = null;\n\t_computeCode = null;\n\t_computeKey;\n\tcomputeBindGroupFormat = null;\n\tcomputeReflectedBindGroupFormat = null;\n\tcomputeReflectedUniformBufferFormat = null;\n\tcomputeReflectedGroupIndex = 0;\n\tvertexEntryPoint = \"main\";\n\tfragmentEntryPoint = \"main\";\n\tcomputeEntryPoint = \"main\";\n\tconstructor(shader) {\n\t\tthis.shader = shader;\n\t\tconst definition = shader.definition;\n\t\tif (definition.shaderLanguage === SHADERLANGUAGE_WGSL) {\n\t\t\tif (definition.cshader) {\n\t\t\t\tif (definition.computeEntryPoint) {\n\t\t\t\t\tthis.computeEntryPoint = definition.computeEntryPoint;\n\t\t\t\t}\n\t\t\t\tthis.processComputeWGSL();\n\t\t\t} else {\n\t\t\t\tthis.vertexEntryPoint = \"vertexMain\";\n\t\t\t\tthis.fragmentEntryPoint = \"fragmentMain\";\n\t\t\t\tif (definition.processingOptions) {\n\t\t\t\t\tthis.processWGSL();\n\t\t\t\t} else {\n\t\t\t\t\tthis._vertexCode = definition.vshader ?? null;\n\t\t\t\t\tthis._fragmentCode = definition.fshader ?? null;\n\t\t\t\t\tshader.meshUniformBufferFormat = definition.meshUniformBufferFormat;\n\t\t\t\t\tshader.meshBindGroupFormat = definition.meshBindGroupFormat;\n\t\t\t\t}\n\t\t\t}\n\t\t\tshader.ready = true;\n\t\t} else {\n\t\t\tif (definition.processingOptions) {\n\t\t\t\tthis.processGLSL();\n\t\t\t}\n\t\t}\n\t}\n\tdestroy(shader) {\n\t\tthis._vertexCode = null;\n\t\tthis._fragmentCode = null;\n\t}\n\tcreateShaderModule(code, shaderType) {\n\t\tconst device = this.shader.device;\n\t\tconst wgpu = device.wgpu;\n\t\tconst shaderModule = wgpu.createShaderModule({\n\t\t\tcode\n\t\t});\n\t\treturn shaderModule;\n\t}\n\tgetVertexShaderModule() {\n\t\treturn this.createShaderModule(this._vertexCode, \"Vertex\");\n\t}\n\tgetFragmentShaderModule() {\n\t\treturn this.createShaderModule(this._fragmentCode, \"Fragment\");\n\t}\n\tgetComputeShaderModule() {\n\t\treturn this.createShaderModule(this._computeCode, \"Compute\");\n\t}\n\tprocessGLSL() {\n\t\tconst shader = this.shader;\n\t\tconst processed = ShaderProcessorGLSL.run(shader.device, shader.definition, shader);\n\t\tthis._vertexCode = this.transpile(processed.vshader, \"vertex\", shader.definition.vshader);\n\t\tthis._fragmentCode = this.transpile(processed.fshader, \"fragment\", shader.definition.fshader);\n\t\tif (!(this._vertexCode && this._fragmentCode)) {\n\t\t\tshader.failed = true;\n\t\t} else {\n\t\t\tshader.ready = true;\n\t\t}\n\t\tshader.meshUniformBufferFormat = processed.meshUniformBufferFormat;\n\t\tshader.meshBindGroupFormat = processed.meshBindGroupFormat;\n\t\tshader.attributes = processed.attributes;\n\t}\n\tprocessComputeWGSL() {\n\t\tconst shader = this.shader;\n\t\tconst definition = shader.definition;\n\t\tconst callerBindGroupFormat = definition.computeBindGroupFormat ?? null;\n\t\tconst reflectedGroupIndex = callerBindGroupFormat ? 1 : 0;\n\t\tconst processed = WebgpuShaderProcessorWGSL.runCompute(shader.device, definition.cshader, definition, shader, reflectedGroupIndex);\n\t\tthis._computeCode = processed.cshader;\n\t\tthis.computeBindGroupFormat = callerBindGroupFormat;\n\t\tthis.computeUniformBufferFormats = definition.computeUniformBufferFormats;\n\t\tthis.computeReflectedGroupIndex = reflectedGroupIndex;\n\t\tthis.computeReflectedBindGroupFormat = processed.computeBindGroupFormat;\n\t\tthis.computeReflectedUniformBufferFormat = processed.computeUniformBufferFormat;\n\t}\n\tprocessWGSL() {\n\t\tconst shader = this.shader;\n\t\tconst processed = WebgpuShaderProcessorWGSL.run(shader.device, shader.definition, shader);\n\t\tthis._vertexCode = processed.vshader;\n\t\tthis._fragmentCode = processed.fshader;\n\t\tshader.meshUniformBufferFormat = processed.meshUniformBufferFormat;\n\t\tshader.meshBindGroupFormat = processed.meshBindGroupFormat;\n\t\tshader.attributes = processed.attributes;\n\t}\n\ttranspile(src, shaderType, originalSrc) {\n\t\tconst device = this.shader.device;\n\t\tif (!device.glslang || !device.twgsl) {\n\t\t\tconsole.error(`Cannot transpile shader [${this.shader.label}] - shader transpilers (glslang/twgsl) are not available. Make sure to provide glslangUrl and twgslUrl when creating the device.`, {\n\t\t\t\tshader: this.shader\n\t\t\t});\n\t\t\treturn null;\n\t\t}\n\t\ttry {\n\t\t\tconst spirv = device.glslang.compileGLSL(src, shaderType);\n\t\t\tconst wgsl = device.twgsl.convertSpirV2WGSL(spirv);\n\t\t\treturn wgsl;\n\t\t} catch (err2) {\n\t\t\tconsole.error(`Failed to transpile webgl ${shaderType} shader [${this.shader.label}] to WebGPU while rendering ${void 0}, error:\n [${err2.stack}]`, {\n\t\t\t\tprocessed: src,\n\t\t\t\toriginal: originalSrc,\n\t\t\t\tshader: this.shader,\n\t\t\t\terror: err2,\n\t\t\t\tstack: err2.stack\n\t\t\t});\n\t\t}\n\t}\n\tget vertexCode() {\n\t\treturn this._vertexCode;\n\t}\n\tget fragmentCode() {\n\t\treturn this._fragmentCode;\n\t}\n\tget computeKey() {\n\t\tif (this._computeKey === void 0) {\n\t\t\tconst keyString = `${this._computeCode}|${this.computeEntryPoint}`;\n\t\t\tthis._computeKey = computeShaderIds.get(keyString);\n\t\t}\n\t\treturn this._computeKey;\n\t}\n\tloseContext() {\n\t}\n\trestoreContext(device, shader) {\n\t}\n};\n\nvar gpuAddressModes = [];\ngpuAddressModes[ADDRESS_REPEAT] = \"repeat\";\ngpuAddressModes[ADDRESS_CLAMP_TO_EDGE] = \"clamp-to-edge\";\ngpuAddressModes[ADDRESS_MIRRORED_REPEAT] = \"mirror-repeat\";\nvar gpuFilterModes = [];\ngpuFilterModes[FILTER_NEAREST] = { level: \"nearest\", mip: \"nearest\" };\ngpuFilterModes[FILTER_LINEAR] = { level: \"linear\", mip: \"nearest\" };\ngpuFilterModes[FILTER_NEAREST_MIPMAP_NEAREST] = { level: \"nearest\", mip: \"nearest\" };\ngpuFilterModes[FILTER_NEAREST_MIPMAP_LINEAR] = { level: \"nearest\", mip: \"linear\" };\ngpuFilterModes[FILTER_LINEAR_MIPMAP_NEAREST] = { level: \"linear\", mip: \"nearest\" };\ngpuFilterModes[FILTER_LINEAR_MIPMAP_LINEAR] = { level: \"linear\", mip: \"linear\" };\nvar dummyUse = (thingOne) => {\n};\nvar WebgpuTexture = class {\n\tgpuTexture;\n\tview;\n\tsamplers = [];\n\tdesc;\n\tformat;\n\tviewCache = /* @__PURE__ */ new Map();\n\tconstructor(texture) {\n\t\tthis.texture = texture;\n\t\tthis.format = gpuTextureFormats[texture.format];\n\t\tthis.create(texture.device);\n\t}\n\tcreate(device) {\n\t\tconst texture = this.texture;\n\t\tconst wgpu = device.wgpu;\n\t\tconst numLevels = texture.numLevels;\n\t\tif (isCompressedPixelFormat(texture.format) && (texture.width % 4 !== 0 || texture.height % 4 !== 0)) {\n\t\t\ttexture._width = math.roundUp(texture.width, 4);\n\t\t\ttexture._height = math.roundUp(texture.height, 4);\n\t\t}\n\t\tthis.desc = {\n\t\t\tsize: {\n\t\t\t\twidth: texture.width,\n\t\t\t\theight: texture.height,\n\t\t\t\tdepthOrArrayLayers: texture.cubemap ? 6 : texture.array ? texture.arrayLength : 1\n\t\t\t},\n\t\t\tformat: this.format,\n\t\t\tmipLevelCount: numLevels,\n\t\t\t// multisampled textures are constrained at the Texture level: 2d, single mip, no\n\t\t\t// storage; RENDER_ATTACHMENT is required and TEXTURE_BINDING / COPY_* are allowed\n\t\t\tsampleCount: texture.samples,\n\t\t\tdimension: texture.volume ? \"3d\" : \"2d\",\n\t\t\t// TODO: use only required usage flags\n\t\t\t// COPY_SRC - probably only needed on render target textures, to support copyRenderTarget (grab pass needs it)\n\t\t\t// RENDER_ATTACHMENT - needed for mipmap generation\n\t\t\tusage: GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.COPY_DST | GPUTextureUsage.COPY_SRC | (isCompressedPixelFormat(texture.format) ? 0 : GPUTextureUsage.RENDER_ATTACHMENT) | (texture.storage ? GPUTextureUsage.STORAGE_BINDING : 0)\n\t\t};\n\t\tthis.gpuTexture = wgpu.createTexture(this.desc);\n\t\tlet viewDescr;\n\t\tif (this.texture.format === PIXELFORMAT_DEPTHSTENCIL) {\n\t\t\tviewDescr = {\n\t\t\t\tformat: \"depth24plus\",\n\t\t\t\taspect: \"depth-only\"\n\t\t\t};\n\t\t}\n\t\tthis.view = this.createView(viewDescr);\n\t\tthis.viewCache.clear();\n\t}\n\tdestroy(device) {\n\t\tdevice.deferDestroy(this.gpuTexture);\n\t\tthis.gpuTexture = null;\n\t\tthis.view = null;\n\t\tthis.viewCache.clear();\n\t\tthis.samplers.length = 0;\n\t}\n\tpropertyChanged(flag) {\n\t\tthis.samplers.length = 0;\n\t}\n\tgetView(device, textureView) {\n\t\tthis.uploadImmediate(device, this.texture);\n\t\tif (textureView) {\n\t\t\tlet view = this.viewCache.get(textureView.key);\n\t\t\tif (!view) {\n\t\t\t\tview = this.createView({\n\t\t\t\t\tbaseMipLevel: textureView.baseMipLevel,\n\t\t\t\t\tmipLevelCount: textureView.mipLevelCount,\n\t\t\t\t\tbaseArrayLayer: textureView.baseArrayLayer,\n\t\t\t\t\tarrayLayerCount: textureView.arrayLayerCount\n\t\t\t\t});\n\t\t\t\tthis.viewCache.set(textureView.key, view);\n\t\t\t}\n\t\t\treturn view;\n\t\t}\n\t\treturn this.view;\n\t}\n\tcreateView(viewDescr) {\n\t\tconst options2 = viewDescr ?? {};\n\t\tconst textureDescr = this.desc;\n\t\tconst texture = this.texture;\n\t\tconst defaultViewDimension = () => {\n\t\t\tif (texture.cubemap) return \"cube\";\n\t\t\tif (texture.volume) return \"3d\";\n\t\t\tif (texture.array) return \"2d-array\";\n\t\t\treturn \"2d\";\n\t\t};\n\t\tconst desc = {\n\t\t\tformat: options2.format ?? textureDescr.format,\n\t\t\tdimension: options2.dimension ?? defaultViewDimension(),\n\t\t\taspect: options2.aspect ?? \"all\",\n\t\t\tbaseMipLevel: options2.baseMipLevel ?? 0,\n\t\t\tmipLevelCount: options2.mipLevelCount ?? textureDescr.mipLevelCount,\n\t\t\tbaseArrayLayer: options2.baseArrayLayer ?? 0,\n\t\t\tarrayLayerCount: options2.arrayLayerCount ?? textureDescr.depthOrArrayLayers\n\t\t};\n\t\tconst view = this.gpuTexture.createView(desc);\n\t\treturn view;\n\t}\n\t// TODO: share a global map of samplers. Possibly even use shared samplers for bind group,\n\t// or maybe even have some attached in view bind group and use globally\n\tgetSampler(device, sampleType) {\n\t\tlet sampler = this.samplers[sampleType];\n\t\tif (!sampler) {\n\t\t\tconst texture = this.texture;\n\t\t\tlet label;\n\t\t\tconst desc = {\n\t\t\t\taddressModeU: gpuAddressModes[texture.addressU],\n\t\t\t\taddressModeV: gpuAddressModes[texture.addressV],\n\t\t\t\taddressModeW: gpuAddressModes[texture.addressW]\n\t\t\t};\n\t\t\tif (!sampleType && texture.compareOnRead) {\n\t\t\t\tsampleType = SAMPLETYPE_DEPTH;\n\t\t\t}\n\t\t\tif (sampleType === SAMPLETYPE_DEPTH || sampleType === SAMPLETYPE_INT || sampleType === SAMPLETYPE_UINT) {\n\t\t\t\tdesc.compare = \"less\";\n\t\t\t\tdesc.magFilter = \"linear\";\n\t\t\t\tdesc.minFilter = \"linear\";\n\t\t\t\tlabel = \"Compare\";\n\t\t\t} else if (sampleType === SAMPLETYPE_UNFILTERABLE_FLOAT) {\n\t\t\t\tdesc.magFilter = \"nearest\";\n\t\t\t\tdesc.minFilter = \"nearest\";\n\t\t\t\tdesc.mipmapFilter = \"nearest\";\n\t\t\t\tlabel = \"Unfilterable\";\n\t\t\t} else {\n\t\t\t\tconst forceNearest = !device.textureFloatFilterable && (texture.format === PIXELFORMAT_RGBA32F || texture.format === PIXELFORMAT_RGBA16F);\n\t\t\t\tif (forceNearest || this.texture.format === PIXELFORMAT_DEPTHSTENCIL || isIntegerPixelFormat(this.texture.format)) {\n\t\t\t\t\tdesc.magFilter = \"nearest\";\n\t\t\t\t\tdesc.minFilter = \"nearest\";\n\t\t\t\t\tdesc.mipmapFilter = \"nearest\";\n\t\t\t\t\tlabel = \"Nearest\";\n\t\t\t\t} else {\n\t\t\t\t\tdesc.magFilter = gpuFilterModes[texture.magFilter].level;\n\t\t\t\t\tdesc.minFilter = gpuFilterModes[texture.minFilter].level;\n\t\t\t\t\tdesc.mipmapFilter = gpuFilterModes[texture.minFilter].mip;\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst allLinear = desc.minFilter === \"linear\" && desc.magFilter === \"linear\" && desc.mipmapFilter === \"linear\";\n\t\t\tdesc.maxAnisotropy = allLinear ? math.clamp(Math.round(texture._anisotropy), 1, device.maxTextureAnisotropy) : 1;\n\t\t\tsampler = device.wgpu.createSampler(desc);\n\t\t\tthis.samplers[sampleType] = sampler;\n\t\t}\n\t\treturn sampler;\n\t}\n\tloseContext() {\n\t}\n\tuploadImmediate(device, texture) {\n\t\tif (texture._needsUpload || texture._needsMipmapsUpload) {\n\t\t\tthis.uploadData(device);\n\t\t\ttexture._needsUpload = false;\n\t\t\ttexture._needsMipmapsUpload = false;\n\t\t}\n\t}\n\tuploadData(device) {\n\t\tconst texture = this.texture;\n\t\tif (this.desc && (this.desc.size.width !== texture.width || this.desc.size.height !== texture.height)) {\n\t\t\tdevice.deferDestroy(this.gpuTexture);\n\t\t\tthis.create(device);\n\t\t\ttexture.renderVersionDirty = device.renderVersion;\n\t\t}\n\t\tif (texture._levels) {\n\t\t\tlet anyUploads = false;\n\t\t\tlet anyLevelMissing = false;\n\t\t\tconst requiredMipLevels = texture.numLevels;\n\t\t\tfor (let mipLevel = 0; mipLevel < requiredMipLevels; mipLevel++) {\n\t\t\t\tconst mipObject = texture._levels[mipLevel];\n\t\t\t\tif (mipObject) {\n\t\t\t\t\tif (texture.cubemap) {\n\t\t\t\t\t\tfor (let face = 0; face < 6; face++) {\n\t\t\t\t\t\t\tconst faceSource = mipObject[face];\n\t\t\t\t\t\t\tif (faceSource) {\n\t\t\t\t\t\t\t\tif (this.isExternalImage(faceSource)) {\n\t\t\t\t\t\t\t\t\tthis.uploadExternalImage(device, faceSource, mipLevel, face);\n\t\t\t\t\t\t\t\t\tanyUploads = true;\n\t\t\t\t\t\t\t\t} else if (ArrayBuffer.isView(faceSource)) {\n\t\t\t\t\t\t\t\t\tthis.uploadTypedArrayData(device, faceSource, mipLevel, face);\n\t\t\t\t\t\t\t\t\tanyUploads = true;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tanyLevelMissing = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (texture._volume) {\n\t\t\t\t\t} else if (texture.array) {\n\t\t\t\t\t\tif (texture.arrayLength === mipObject.length) {\n\t\t\t\t\t\t\tfor (let index = 0; index < texture._arrayLength; index++) {\n\t\t\t\t\t\t\t\tconst arraySource = mipObject[index];\n\t\t\t\t\t\t\t\tif (this.isExternalImage(arraySource)) {\n\t\t\t\t\t\t\t\t\tthis.uploadExternalImage(device, arraySource, mipLevel, index);\n\t\t\t\t\t\t\t\t\tanyUploads = true;\n\t\t\t\t\t\t\t\t} else if (ArrayBuffer.isView(arraySource)) {\n\t\t\t\t\t\t\t\t\tthis.uploadTypedArrayData(device, arraySource, mipLevel, index);\n\t\t\t\t\t\t\t\t\tanyUploads = true;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tanyLevelMissing = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (device._isHTMLElementInterface(mipObject) && device.supportsHtmlTextures) {\n\t\t\t\t\t\t\tthis.uploadElementImage(device, mipObject, mipLevel, 0);\n\t\t\t\t\t\t\tanyUploads = true;\n\t\t\t\t\t\t} else if (this.isExternalImage(mipObject)) {\n\t\t\t\t\t\t\tthis.uploadExternalImage(device, mipObject, mipLevel, 0);\n\t\t\t\t\t\t\tanyUploads = true;\n\t\t\t\t\t\t} else if (ArrayBuffer.isView(mipObject)) {\n\t\t\t\t\t\t\tthis.uploadTypedArrayData(device, mipObject, mipLevel, 0);\n\t\t\t\t\t\t\tanyUploads = true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tanyLevelMissing = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (anyUploads && anyLevelMissing && texture.mipmaps && !isCompressedPixelFormat(texture.format) && !isIntegerPixelFormat(texture.format)) {\n\t\t\t\tdevice.mipmapRenderer.generate(this);\n\t\t\t}\n\t\t\tif (texture._gpuSize) {\n\t\t\t\ttexture.adjustVramSizeTracking(device._vram, -texture._gpuSize);\n\t\t\t}\n\t\t\ttexture._gpuSize = texture.gpuSize;\n\t\t\ttexture.adjustVramSizeTracking(device._vram, texture._gpuSize);\n\t\t\tif (texture.releaseSourceAfterUpload) {\n\t\t\t\ttexture.releaseImageSources();\n\t\t\t}\n\t\t}\n\t}\n\t// image types supported by copyExternalImageToTexture\n\tisExternalImage(image) {\n\t\treturn typeof ImageBitmap !== \"undefined\" && image instanceof ImageBitmap || typeof HTMLVideoElement !== \"undefined\" && image instanceof HTMLVideoElement || typeof HTMLCanvasElement !== \"undefined\" && image instanceof HTMLCanvasElement || typeof OffscreenCanvas !== \"undefined\" && image instanceof OffscreenCanvas;\n\t}\n\tuploadExternalImage(device, image, mipLevel, index) {\n\t\tconst src = {\n\t\t\tsource: image,\n\t\t\torigin: [0, 0],\n\t\t\tflipY: false\n\t\t};\n\t\tconst dst = {\n\t\t\ttexture: this.gpuTexture,\n\t\t\tmipLevel,\n\t\t\torigin: [0, 0, index],\n\t\t\taspect: \"all\",\n\t\t\t// can be: \"all\", \"stencil-only\", \"depth-only\"\n\t\t\tpremultipliedAlpha: this.texture._premultiplyAlpha\n\t\t};\n\t\tconst copySize = {\n\t\t\twidth: this.desc.size.width,\n\t\t\theight: this.desc.size.height,\n\t\t\tdepthOrArrayLayers: 1\n\t\t\t// single layer\n\t\t};\n\t\tdevice.submit();\n\t\tdummyUse(image instanceof HTMLCanvasElement && image.getContext(\"2d\"));\n\t\tdevice.wgpu.queue.copyExternalImageToTexture(src, dst, copySize);\n\t}\n\t// upload a generic HTML element via the HTML-in-Canvas API (copyElementImageToTexture)\n\tuploadElementImage(device, element, mipLevel, index) {\n\t\tconst dst = {\n\t\t\ttexture: this.gpuTexture,\n\t\t\tmipLevel,\n\t\t\torigin: [0, 0, index],\n\t\t\taspect: \"all\",\n\t\t\t// can be: \"all\", \"stencil-only\", \"depth-only\"\n\t\t\tpremultipliedAlpha: this.texture._premultiplyAlpha\n\t\t};\n\t\tconst width = TextureUtils.calcLevelDimension(this.texture.width, mipLevel);\n\t\tconst height = TextureUtils.calcLevelDimension(this.texture.height, mipLevel);\n\t\tdevice.submit();\n\t\tconst source = { source: element };\n\t\tconst destination = { destination: dst, width, height };\n\t\tdevice.wgpu.queue.copyElementImageToTexture(source, destination);\n\t}\n\tuploadTypedArrayData(device, data2, mipLevel, index) {\n\t\tconst texture = this.texture;\n\t\tconst wgpu = device.wgpu;\n\t\tconst dest = {\n\t\t\ttexture: this.gpuTexture,\n\t\t\torigin: [0, 0, index],\n\t\t\tmipLevel\n\t\t};\n\t\tconst width = TextureUtils.calcLevelDimension(texture.width, mipLevel);\n\t\tconst height = TextureUtils.calcLevelDimension(texture.height, mipLevel);\n\t\tconst byteSize = TextureUtils.calcLevelGpuSize(width, height, 1, texture.format);\n\t\tconst formatInfo = pixelFormatInfo.get(texture.format);\n\t\tlet dataLayout;\n\t\tlet size;\n\t\tif (formatInfo.size) {\n\t\t\tdataLayout = {\n\t\t\t\toffset: 0,\n\t\t\t\tbytesPerRow: formatInfo.size * width,\n\t\t\t\trowsPerImage: height\n\t\t\t};\n\t\t\tsize = {\n\t\t\t\twidth,\n\t\t\t\theight\n\t\t\t};\n\t\t} else if (formatInfo.blockSize) {\n\t\t\tconst blockDim = (size2) => {\n\t\t\t\treturn Math.floor((size2 + 3) / 4);\n\t\t\t};\n\t\t\tdataLayout = {\n\t\t\t\toffset: 0,\n\t\t\t\tbytesPerRow: formatInfo.blockSize * blockDim(width),\n\t\t\t\trowsPerImage: blockDim(height)\n\t\t\t};\n\t\t\tsize = {\n\t\t\t\twidth: Math.max(4, width),\n\t\t\t\theight: Math.max(4, height)\n\t\t\t};\n\t\t} else {\n\t\t}\n\t\tdevice.submit();\n\t\twgpu.queue.writeTexture(dest, data2, dataLayout, size);\n\t}\n\tread(x3, y2, width, height, options2) {\n\t\tconst mipLevel = options2.mipLevel ?? 0;\n\t\tconst face = options2.face ?? 0;\n\t\tconst data2 = options2.data ?? null;\n\t\tconst immediate = options2.immediate ?? false;\n\t\tconst texture = this.texture;\n\t\tconst formatInfo = pixelFormatInfo.get(texture.format);\n\t\tconst bytesPerRow = width * formatInfo.size;\n\t\tconst paddedBytesPerRow = math.roundUp(bytesPerRow, 256);\n\t\tconst size = paddedBytesPerRow * height;\n\t\tconst device = texture.device;\n\t\tconst stagingBuffer = device.createBufferImpl(BUFFERUSAGE_READ | BUFFERUSAGE_COPY_DST);\n\t\tstagingBuffer.allocate(device, size);\n\t\tconst src = {\n\t\t\ttexture: this.gpuTexture,\n\t\t\tmipLevel,\n\t\t\torigin: [x3, y2, face]\n\t\t};\n\t\tconst dst = {\n\t\t\tbuffer: stagingBuffer.buffer,\n\t\t\toffset: 0,\n\t\t\tbytesPerRow: paddedBytesPerRow\n\t\t};\n\t\tconst copySize = {\n\t\t\twidth,\n\t\t\theight,\n\t\t\tdepthOrArrayLayers: 1\n\t\t\t// single layer\n\t\t};\n\t\tconst commandEncoder = device.getCommandEncoder();\n\t\tcommandEncoder.copyTextureToBuffer(src, dst, copySize);\n\t\treturn device.readBuffer(stagingBuffer, size, null, immediate).then((temp) => {\n\t\t\tconst ArrayType = getPixelFormatArrayType(texture.format);\n\t\t\tconst targetBuffer = data2?.buffer ?? new ArrayBuffer(height * bytesPerRow);\n\t\t\tconst target2 = new Uint8Array(targetBuffer, data2?.byteOffset ?? 0, height * bytesPerRow);\n\t\t\tfor (let i2 = 0; i2 < height; i2++) {\n\t\t\t\tconst srcOffset = i2 * paddedBytesPerRow;\n\t\t\t\tconst dstOffset = i2 * bytesPerRow;\n\t\t\t\ttarget2.set(temp.subarray(srcOffset, srcOffset + bytesPerRow), dstOffset);\n\t\t\t}\n\t\t\treturn data2 ?? new ArrayType(targetBuffer);\n\t\t});\n\t}\n\tcopy(source, options2) {\n\t\tconst device = this.texture.device;\n\t\tconst sourceMipLevel = options2.sourceMipLevel ?? 0;\n\t\tconst destMipLevel = options2.destMipLevel ?? 0;\n\t\tconst face = options2.face ?? 0;\n\t\tconst sx = options2.sourceX ?? 0;\n\t\tconst sy = options2.sourceY ?? 0;\n\t\tconst dx = options2.destX ?? 0;\n\t\tconst dy = options2.destY ?? 0;\n\t\tconst w = options2.width ?? Math.max(1, source.width >> sourceMipLevel);\n\t\tconst h2 = options2.height ?? Math.max(1, source.height >> sourceMipLevel);\n\t\tdevice._uploadDirtyTextures();\n\t\tconst commandEncoder = device.getCommandEncoder();\n\t\tcommandEncoder.copyTextureToTexture(\n\t\t\t{ texture: source.impl.gpuTexture, mipLevel: sourceMipLevel, origin: [sx, sy, face] },\n\t\t\t{ texture: this.gpuTexture, mipLevel: destMipLevel, origin: [dx, dy, face] },\n\t\t\t{ width: w, height: h2, depthOrArrayLayers: 1 }\n\t\t);\n\t\treturn true;\n\t}\n};\n\nvar WebgpuUniformBuffer = class extends WebgpuBuffer {\n\tconstructor(uniformBuffer) {\n\t\tsuper(BUFFERUSAGE_UNIFORM);\n\t}\n\tunlock(uniformBuffer) {\n\t\tconst device = uniformBuffer.device;\n\t\tsuper.unlock(device, uniformBuffer.storageInt32.buffer);\n\t}\n};\n\nvar WebgpuVertexBuffer = class extends WebgpuBuffer {\n\tconstructor(vertexBuffer, format, options2) {\n\t\tsuper(BUFFERUSAGE_VERTEX | (options2?.storage ? BUFFERUSAGE_STORAGE : 0));\n\t}\n\tunlock(vertexBuffer) {\n\t\tconst device = vertexBuffer.device;\n\t\tsuper.unlock(device, vertexBuffer.storage);\n\t}\n};\n\nvar KEYWORD3 = /[ \\t]*#(ifn?def|if|endif|else|elif|define|undef|extension|include)/g;\nvar DEFINE = /define[ \\t]+([^\\n]+)\\r?(?:\\n|$)/g;\nvar EXTENSION = /extension[ \\t]+([\\w-]+)[ \\t]*:[ \\t]*(enable|require)/g;\nvar UNDEF = /undef[ \\t]+([^\\n]+)\\r?(?:\\n|$)/g;\nvar IF = /(ifdef|ifndef|if)[ \\t]*([^\\r\\n]+)\\r?\\n/g;\nvar ENDIF = /(endif|else|elif)(?:[ \\t]+([^\\r\\n]*))?\\r?\\n?/g;\nvar IDENTIFIER = /\\{?[\\w-]+\\}?/;\nvar DEFINED = /(!|\\s)?defined\\(([\\w-]+)\\)/;\nvar DEFINED_PARENS = /!?defined\\s*\\([^)]*\\)/g;\nvar DEFINED_BEFORE_PAREN = /!?defined\\s*$/;\nvar COMPARISON = /([a-z_]\\w*)\\s*(==|!=|<|<=|>|>=)\\s*([\\w\"']+)/i;\nvar INVALID = /[+\\-]/g;\nvar INCLUDE = /include[ \\t]+\"([\\w-]+)(?:\\s*,\\s*([\\w-]+))?\"/g;\nvar LOOP_INDEX = /\\{i\\}/g;\nvar FRAGCOLOR = /(pcFragColor[1-8])\\b/g;\nvar NUMERIC_LITERAL = /^\\d+(?:\\.\\d+)?$/;\nvar Preprocessor = class _Preprocessor {\n\tstatic sourceName;\n\tstatic run(source, includes = /* @__PURE__ */ new Map(), options2 = {}) {\n\t\t_Preprocessor.sourceName = options2.sourceName;\n\t\tsource = this.stripComments(source);\n\t\tsource = source.split(/\\r?\\n/).map((line) => line.trimEnd()).join(\"\\n\");\n\t\tconst defines = /* @__PURE__ */ new Map();\n\t\tconst injectDefines = /* @__PURE__ */ new Map();\n\t\tsource = this._preprocess(source, defines, injectDefines, includes, options2.stripDefines);\n\t\tif (source === null) return null;\n\t\tconst intDefines = /* @__PURE__ */ new Map();\n\t\tdefines.forEach((value, key) => {\n\t\t\tif (Number.isInteger(parseFloat(value)) && !value.includes(\".\")) {\n\t\t\t\tintDefines.set(key, value);\n\t\t\t}\n\t\t});\n\t\tsource = this.stripComments(source);\n\t\tsource = this.injectDefines(source, injectDefines);\n\t\tsource = this.stripUnusedColorAttachments(source, options2);\n\t\tsource = this.RemoveEmptyLines(source);\n\t\tsource = this.processArraySize(source, intDefines);\n\t\treturn source;\n\t}\n\tstatic stripUnusedColorAttachments(source, options2) {\n\t\tif (options2.stripUnusedColorAttachments) {\n\t\t\tconst counts = /* @__PURE__ */ new Map();\n\t\t\tconst matches = source.match(FRAGCOLOR);\n\t\t\tmatches?.forEach((match) => {\n\t\t\t\tconst index = parseInt(match.charAt(match.length - 1), 10);\n\t\t\t\tcounts.set(index, (counts.get(index) ?? 0) + 1);\n\t\t\t});\n\t\t\tconst anySingleUse = Array.from(counts.values()).some((count) => count === 1);\n\t\t\tif (anySingleUse) {\n\t\t\t\tconst lines = source.split(\"\\n\");\n\t\t\t\tconst keepLines = [];\n\t\t\t\tfor (let i2 = 0; i2 < lines.length; i2++) {\n\t\t\t\t\tconst match = lines[i2].match(FRAGCOLOR);\n\t\t\t\t\tif (match) {\n\t\t\t\t\t\tconst index = parseInt(match[0].charAt(match[0].length - 1), 10);\n\t\t\t\t\t\tif (index > 0 && counts.get(index) === 1) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tkeepLines.push(lines[i2]);\n\t\t\t\t}\n\t\t\t\tsource = keepLines.join(\"\\n\");\n\t\t\t}\n\t\t}\n\t\treturn source;\n\t}\n\tstatic stripComments(source) {\n\t\treturn source.replace(/\\/\\*[\\s\\S]*?\\*\\/|([^\\\\:]|^)\\/\\/.*$/gm, \"$1\");\n\t}\n\tstatic processArraySize(source, intDefines) {\n\t\tif (source !== null) {\n\t\t\tintDefines.forEach((value, key) => {\n\t\t\t\tsource = source.replace(new RegExp(`\\\\[${key}\\\\]`, \"g\"), `[${value}]`);\n\t\t\t});\n\t\t}\n\t\treturn source;\n\t}\n\tstatic injectDefines(source, injectDefines) {\n\t\tif (source !== null && injectDefines.size > 0) {\n\t\t\tconst lines = source.split(\"\\n\");\n\t\t\tinjectDefines.forEach((value, key) => {\n\t\t\t\tconst regex = new RegExp(key, \"g\");\n\t\t\t\tfor (let i2 = 0; i2 < lines.length; i2++) {\n\t\t\t\t\tif (!lines[i2].includes(\"#\")) {\n\t\t\t\t\t\tlines[i2] = lines[i2].replace(regex, value);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\tsource = lines.join(\"\\n\");\n\t\t}\n\t\treturn source;\n\t}\n\tstatic RemoveEmptyLines(source) {\n\t\tif (source !== null) {\n\t\t\tsource = source.split(/\\r?\\n/).map((line) => line.trim() === \"\" ? \"\" : line).join(\"\\n\");\n\t\t\tsource = source.replace(/(\\n\\n){3,}/g, \"\\n\\n\");\n\t\t}\n\t\treturn source;\n\t}\n\tstatic _preprocess(source, defines = /* @__PURE__ */ new Map(), injectDefines, includes, stripDefines) {\n\t\tconst originalSource = source;\n\t\tconst stack = [];\n\t\tlet error = false;\n\t\tlet match;\n\t\twhile ((match = KEYWORD3.exec(source)) !== null && !error) {\n\t\t\tconst keyword = match[1];\n\t\t\tswitch (keyword) {\n\t\t\t\tcase \"define\": {\n\t\t\t\t\tDEFINE.lastIndex = match.index;\n\t\t\t\t\tconst define = DEFINE.exec(source);\n\t\t\t\t\terror || (error = define === null);\n\t\t\t\t\tconst expression = define[1];\n\t\t\t\t\tIDENTIFIER.lastIndex = define.index;\n\t\t\t\t\tconst identifierValue = IDENTIFIER.exec(expression);\n\t\t\t\t\tconst identifier = identifierValue[0];\n\t\t\t\t\tlet value = expression.substring(identifier.length).trim();\n\t\t\t\t\tif (value === \"\") value = \"true\";\n\t\t\t\t\tconst keep = _Preprocessor._keep(stack);\n\t\t\t\t\tlet stripThisDefine = stripDefines;\n\t\t\t\t\tif (keep) {\n\t\t\t\t\t\tconst replacementDefine = identifier.startsWith(\"{\") && identifier.endsWith(\"}\");\n\t\t\t\t\t\tif (replacementDefine) {\n\t\t\t\t\t\t\tstripThisDefine = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (replacementDefine) {\n\t\t\t\t\t\t\tinjectDefines.set(identifier, value);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tdefines.set(identifier, value);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (stripThisDefine) {\n\t\t\t\t\t\t\tsource = source.substring(0, define.index - 1) + source.substring(DEFINE.lastIndex);\n\t\t\t\t\t\t\tKEYWORD3.lastIndex = define.index - 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!stripThisDefine) {\n\t\t\t\t\t\tKEYWORD3.lastIndex = define.index + define[0].length;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"undef\": {\n\t\t\t\t\tUNDEF.lastIndex = match.index;\n\t\t\t\t\tconst undef = UNDEF.exec(source);\n\t\t\t\t\tconst identifier = undef[1].trim();\n\t\t\t\t\tconst keep = _Preprocessor._keep(stack);\n\t\t\t\t\tif (keep) {\n\t\t\t\t\t\tdefines.delete(identifier);\n\t\t\t\t\t\tif (stripDefines) {\n\t\t\t\t\t\t\tsource = source.substring(0, undef.index - 1) + source.substring(UNDEF.lastIndex);\n\t\t\t\t\t\t\tKEYWORD3.lastIndex = undef.index - 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!stripDefines) {\n\t\t\t\t\t\tKEYWORD3.lastIndex = undef.index + undef[0].length;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"extension\": {\n\t\t\t\t\tEXTENSION.lastIndex = match.index;\n\t\t\t\t\tconst extension = EXTENSION.exec(source);\n\t\t\t\t\terror || (error = extension === null);\n\t\t\t\t\tif (extension) {\n\t\t\t\t\t\tconst identifier = extension[1];\n\t\t\t\t\t\tconst keep = _Preprocessor._keep(stack);\n\t\t\t\t\t\tif (keep) {\n\t\t\t\t\t\t\tdefines.set(identifier, \"true\");\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tKEYWORD3.lastIndex = extension.index + extension[0].length;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"ifdef\":\n\t\t\t\tcase \"ifndef\":\n\t\t\t\tcase \"if\": {\n\t\t\t\t\tIF.lastIndex = match.index;\n\t\t\t\t\tconst iff = IF.exec(source);\n\t\t\t\t\tconst expression = iff[2];\n\t\t\t\t\tconst evaluated = _Preprocessor.evaluate(expression, defines);\n\t\t\t\t\terror || (error = evaluated.error);\n\t\t\t\t\tlet result = evaluated.result;\n\t\t\t\t\tif (keyword === \"ifndef\") {\n\t\t\t\t\t\tresult = !result;\n\t\t\t\t\t}\n\t\t\t\t\tstack.push({\n\t\t\t\t\t\tanyKeep: result,\n\t\t\t\t\t\t// true if any branch was already accepted\n\t\t\t\t\t\tkeep: result,\n\t\t\t\t\t\t// true if this branch is being taken\n\t\t\t\t\t\tstart: match.index,\n\t\t\t\t\t\t// start index if IF line\n\t\t\t\t\t\tend: IF.lastIndex\n\t\t\t\t\t\t// end index of IF line\n\t\t\t\t\t});\n\t\t\t\t\tKEYWORD3.lastIndex = iff.index + iff[0].length;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"endif\":\n\t\t\t\tcase \"else\":\n\t\t\t\tcase \"elif\": {\n\t\t\t\t\tENDIF.lastIndex = match.index;\n\t\t\t\t\tconst endif = ENDIF.exec(source);\n\t\t\t\t\tconst blockInfo = stack.pop();\n\t\t\t\t\tif (!blockInfo) {\n\t\t\t\t\t\tconsole.error(`Shader preprocessing encountered \"#${endif[1]}\" without a preceding #if #ifdef #ifndef while preprocessing ${_Preprocessor.sourceName} on line:\n ${source.substring(match.index, match.index + 100)}...`, { source: originalSource });\n\t\t\t\t\t\terror = true;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tconst blockCode = blockInfo.keep ? source.substring(blockInfo.end, match.index) : \"\";\n\t\t\t\t\tsource = source.substring(0, blockInfo.start) + blockCode + source.substring(ENDIF.lastIndex);\n\t\t\t\t\tKEYWORD3.lastIndex = blockInfo.start + blockCode.length;\n\t\t\t\t\tconst endifCommand = endif[1];\n\t\t\t\t\tif (endifCommand === \"else\" || endifCommand === \"elif\") {\n\t\t\t\t\t\tlet result = false;\n\t\t\t\t\t\tif (!blockInfo.anyKeep) {\n\t\t\t\t\t\t\tif (endifCommand === \"else\") {\n\t\t\t\t\t\t\t\tresult = !blockInfo.keep;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tconst evaluated = _Preprocessor.evaluate(endif[2], defines);\n\t\t\t\t\t\t\t\tresult = evaluated.result;\n\t\t\t\t\t\t\t\terror || (error = evaluated.error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstack.push({\n\t\t\t\t\t\t\tanyKeep: blockInfo.anyKeep || result,\n\t\t\t\t\t\t\tkeep: result,\n\t\t\t\t\t\t\tstart: KEYWORD3.lastIndex,\n\t\t\t\t\t\t\tend: KEYWORD3.lastIndex\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"include\": {\n\t\t\t\t\tINCLUDE.lastIndex = match.index;\n\t\t\t\t\tconst include = INCLUDE.exec(source);\n\t\t\t\t\terror || (error = include === null);\n\t\t\t\t\tif (!include) {\n\t\t\t\t\t\terror = true;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tconst identifier = include[1].trim();\n\t\t\t\t\tconst countIdentifier = include[2]?.trim();\n\t\t\t\t\tconst keep = _Preprocessor._keep(stack);\n\t\t\t\t\tif (keep) {\n\t\t\t\t\t\tlet includeSource = includes?.get(identifier);\n\t\t\t\t\t\tif (includeSource !== void 0) {\n\t\t\t\t\t\t\tincludeSource = this.stripComments(includeSource);\n\t\t\t\t\t\t\tif (countIdentifier) {\n\t\t\t\t\t\t\t\tconst countString = defines.get(countIdentifier);\n\t\t\t\t\t\t\t\tconst count = parseFloat(countString);\n\t\t\t\t\t\t\t\tif (Number.isInteger(count)) {\n\t\t\t\t\t\t\t\t\tlet result = \"\";\n\t\t\t\t\t\t\t\t\tfor (let i2 = 0; i2 < count; i2++) {\n\t\t\t\t\t\t\t\t\t\tresult += includeSource.replace(LOOP_INDEX, String(i2));\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tincludeSource = result;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tconsole.error(`Include Count identifier \"${countIdentifier}\" not resolved while preprocessing ${_Preprocessor.sourceName} on line:\n ${source.substring(match.index, match.index + 100)}...`, { originalSource, source });\n\t\t\t\t\t\t\t\t\terror = true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tsource = source.substring(0, include.index - 1) + includeSource + source.substring(INCLUDE.lastIndex);\n\t\t\t\t\t\t\tKEYWORD3.lastIndex = include.index - 1;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconsole.error(`Include \"${identifier}\" not resolved while preprocessing ${_Preprocessor.sourceName}`, { originalSource, source });\n\t\t\t\t\t\t\terror = true;\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (stack.length > 0) {\n\t\t\tconsole.error(`Shader preprocessing reached the end of the file without encountering the necessary #endif to close a preceding #if, #ifdef, or #ifndef block. ${_Preprocessor.sourceName}`);\n\t\t\terror = true;\n\t\t}\n\t\tif (error) {\n\t\t\tconsole.error(\"Failed to preprocess shader: \", { source: originalSource });\n\t\t\treturn null;\n\t\t}\n\t\treturn source;\n\t}\n\t// function returns true if the evaluation is inside keep branches\n\tstatic _keep(stack) {\n\t\tfor (let i2 = 0; i2 < stack.length; i2++) {\n\t\t\tif (!stack[i2].keep) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n\tstatic evaluateAtomicExpression(expr, defines) {\n\t\tlet error = false;\n\t\texpr = expr.trim();\n\t\tlet invert = false;\n\t\tif (expr === \"true\") {\n\t\t\treturn { result: true, error };\n\t\t}\n\t\tif (expr === \"false\") {\n\t\t\treturn { result: false, error };\n\t\t}\n\t\tif (NUMERIC_LITERAL.test(expr)) {\n\t\t\treturn { result: parseFloat(expr) !== 0, error };\n\t\t}\n\t\tconst definedMatch = DEFINED.exec(expr);\n\t\tif (definedMatch) {\n\t\t\tinvert = definedMatch[1] === \"!\";\n\t\t\texpr = definedMatch[2].trim();\n\t\t\tconst exists = defines.has(expr);\n\t\t\treturn { result: invert ? !exists : exists, error };\n\t\t}\n\t\tconst comparisonMatch = COMPARISON.exec(expr);\n\t\tif (comparisonMatch) {\n\t\t\tconst left = defines.get(comparisonMatch[1].trim()) ?? comparisonMatch[1].trim();\n\t\t\tconst right2 = defines.get(comparisonMatch[3].trim()) ?? comparisonMatch[3].trim();\n\t\t\tconst operator = comparisonMatch[2].trim();\n\t\t\tlet result2 = false;\n\t\t\tswitch (operator) {\n\t\t\t\tcase \"==\":\n\t\t\t\t\tresult2 = left === right2;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"!=\":\n\t\t\t\t\tresult2 = left !== right2;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"<\":\n\t\t\t\t\tresult2 = left < right2;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"<=\":\n\t\t\t\t\tresult2 = left <= right2;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \">\":\n\t\t\t\t\tresult2 = left > right2;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \">=\":\n\t\t\t\t\tresult2 = left >= right2;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\terror = true;\n\t\t\t}\n\t\t\treturn { result: result2, error };\n\t\t}\n\t\tconst result = defines.has(expr);\n\t\treturn { result, error };\n\t}\n\tstatic processParentheses(expression, defines) {\n\t\tlet error = false;\n\t\tlet processed = expression.trim();\n\t\twhile (processed.startsWith(\"(\") && processed.endsWith(\")\")) {\n\t\t\tlet depth = 0;\n\t\t\tlet wrapsEntire = true;\n\t\t\tfor (let i2 = 0; i2 < processed.length - 1; i2++) {\n\t\t\t\tif (processed[i2] === \"(\") depth++;\n\t\t\t\telse if (processed[i2] === \")\") {\n\t\t\t\t\tdepth--;\n\t\t\t\t\tif (depth === 0) {\n\t\t\t\t\t\twrapsEntire = false;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (wrapsEntire) {\n\t\t\t\tprocessed = processed.slice(1, -1).trim();\n\t\t\t} else {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\twhile (true) {\n\t\t\tlet foundParen = false;\n\t\t\tlet depth = 0;\n\t\t\tlet maxDepth = 0;\n\t\t\tlet deepestStart = -1;\n\t\t\tlet deepestEnd = -1;\n\t\t\tlet inDefinedParen = 0;\n\t\t\tfor (let i2 = 0; i2 < processed.length; i2++) {\n\t\t\t\tif (processed[i2] === \"(\") {\n\t\t\t\t\tconst beforeParen = processed.substring(0, i2);\n\t\t\t\t\tif (DEFINED_BEFORE_PAREN.test(beforeParen)) {\n\t\t\t\t\t\tinDefinedParen++;\n\t\t\t\t\t} else if (inDefinedParen === 0) {\n\t\t\t\t\t\tdepth++;\n\t\t\t\t\t\tif (depth > maxDepth) {\n\t\t\t\t\t\t\tmaxDepth = depth;\n\t\t\t\t\t\t\tdeepestStart = i2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfoundParen = true;\n\t\t\t\t\t}\n\t\t\t\t} else if (processed[i2] === \")\") {\n\t\t\t\t\tif (inDefinedParen > 0) {\n\t\t\t\t\t\tinDefinedParen--;\n\t\t\t\t\t} else if (depth > 0) {\n\t\t\t\t\t\tif (depth === maxDepth && deepestStart !== -1) {\n\t\t\t\t\t\t\tdeepestEnd = i2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdepth--;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!foundParen || deepestStart === -1 || deepestEnd === -1) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tconst subExpr = processed.substring(deepestStart + 1, deepestEnd);\n\t\t\tconst { result, error: subError } = _Preprocessor.evaluate(subExpr, defines);\n\t\t\terror = error || subError;\n\t\t\tprocessed = processed.substring(0, deepestStart) + (result ? \"true\" : \"false\") + processed.substring(deepestEnd + 1);\n\t\t}\n\t\treturn { expression: processed, error };\n\t}\n\tstatic evaluate(expression, defines) {\n\t\tconst correct = INVALID.exec(expression) === null;\n\t\tlet processedExpr = expression;\n\t\tlet parenError = false;\n\t\tconst withoutDefined = expression.replace(DEFINED_PARENS, \"\");\n\t\tif (withoutDefined.indexOf(\"(\") !== -1) {\n\t\t\tconst processed = _Preprocessor.processParentheses(expression, defines);\n\t\t\tprocessedExpr = processed.expression;\n\t\t\tparenError = processed.error;\n\t\t}\n\t\tif (parenError) {\n\t\t\treturn { result: false, error: true };\n\t\t}\n\t\tconst orSegments = processedExpr.split(\"||\");\n\t\tfor (const orSegment of orSegments) {\n\t\t\tconst andSegments = orSegment.split(\"&&\");\n\t\t\tlet andResult = true;\n\t\t\tfor (const andSegment of andSegments) {\n\t\t\t\tconst { result, error } = _Preprocessor.evaluateAtomicExpression(andSegment.trim(), defines);\n\t\t\t\tif (!result || error) {\n\t\t\t\t\tandResult = false;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (andResult) {\n\t\t\t\treturn { result: true, error: !correct };\n\t\t\t}\n\t\t}\n\t\treturn { result: false, error: !correct };\n\t}\n};\n\nvar gles3_default = `\n#ifdef DUAL_SOURCE_BLENDING\n#extension GL_EXT_blend_func_extended : require\n#endif\n#ifndef outType_0\n#define outType_0 vec4\n#endif\n#ifdef DUAL_SOURCE_BLENDING\nlayout(location = 0, index = 0) out highp outType_0 pcFragColor0;\nlayout(location = 0, index = 1) out highp outType_0 pcFragColorSecondary;\n#else\nlayout(location = 0) out highp outType_0 pcFragColor0;\n#if COLOR_ATTACHMENT_1\nlayout(location = 1) out highp outType_1 pcFragColor1;\n#endif\n#if COLOR_ATTACHMENT_2\nlayout(location = 2) out highp outType_2 pcFragColor2;\n#endif\n#if COLOR_ATTACHMENT_3\nlayout(location = 3) out highp outType_3 pcFragColor3;\n#endif\n#if COLOR_ATTACHMENT_4\nlayout(location = 4) out highp outType_4 pcFragColor4;\n#endif\n#if COLOR_ATTACHMENT_5\nlayout(location = 5) out highp outType_5 pcFragColor5;\n#endif\n#if COLOR_ATTACHMENT_6\nlayout(location = 6) out highp outType_6 pcFragColor6;\n#endif\n#if COLOR_ATTACHMENT_7\nlayout(location = 7) out highp outType_7 pcFragColor7;\n#endif\n#endif\n#define gl_FragColor pcFragColor0\n#define varying in\n#define texture2D texture\n#define texture2DBias texture\n#define textureCube texture\n#define texture2DProj textureProj\n#define texture2DLod textureLod\n#define texture2DProjLod textureProjLod\n#define textureCubeLod textureLod\n#define texture2DGrad textureGrad\n#define texture2DProjGrad textureProjGrad\n#define textureCubeGrad textureGrad\n#define utexture2D texture\n#define itexture2D texture\n#define texture2DLodEXT texture2DLodEXT_is_no_longer_supported_use_texture2DLod_instead\n#define texture2DProjLodEXT texture2DProjLodEXT_is_no_longer_supported_use_texture2DProjLod\n#define textureCubeLodEXT textureCubeLodEXT_is_no_longer_supported_use_textureCubeLod_instead\n#define texture2DGradEXT texture2DGradEXT_is_no_longer_supported_use_texture2DGrad_instead\n#define texture2DProjGradEXT texture2DProjGradEXT_is_no_longer_supported_use_texture2DProjGrad_instead\n#define textureCubeGradEXT textureCubeGradEXT_is_no_longer_supported_use_textureCubeGrad_instead\n#define textureShadow(res, uv) textureGrad(res, uv, vec2(1, 1), vec2(1, 1))\n#define SHADOWMAP_PASS(name) name\n#define SHADOWMAP_ACCEPT(name) sampler2DShadow name\n#define TEXTURE_PASS(name) name\n#define TEXTURE_ACCEPT(name) sampler2D name\n#define TEXTURE_ACCEPT_HIGHP(name) highp sampler2D name\n#define GL2\n`;\n\nvar gles3_default2 = `\n#extension GL_ANGLE_multi_draw : enable\n#define attribute in\n#define varying out\n#define texture2D texture\n#define utexture2D texture\n#define itexture2D texture\n#define GL2\n#define VERTEXSHADER\n#define TEXTURE_PASS(name) name\n#define TEXTURE_ACCEPT(name) sampler2D name\n#define TEXTURE_ACCEPT_HIGHP(name) highp sampler2D name\n`;\n\nvar webgpu_default = `\n#extension GL_EXT_samplerless_texture_functions : require\n#ifndef outType_0\n#define outType_0 vec4\n#endif\n#ifndef outType_1\n#define outType_1 vec4\n#endif\n#ifndef outType_2\n#define outType_2 vec4\n#endif\n#ifndef outType_3\n#define outType_3 vec4\n#endif\n#ifndef outType_4\n#define outType_4 vec4\n#endif\n#ifndef outType_5\n#define outType_5 vec4\n#endif\n#ifndef outType_6\n#define outType_6 vec4\n#endif\n#ifndef outType_7\n#define outType_7 vec4\n#endif\n#ifdef DUAL_SOURCE_BLENDING\nlayout(location = 0, index = 0) out highp outType_0 pcFragColor0;\nlayout(location = 0, index = 1) out highp outType_0 pcFragColorSecondary;\n#else\nlayout(location = 0) out highp outType_0 pcFragColor0;\nlayout(location = 1) out highp outType_1 pcFragColor1;\nlayout(location = 2) out highp outType_2 pcFragColor2;\nlayout(location = 3) out highp outType_3 pcFragColor3;\nlayout(location = 4) out highp outType_4 pcFragColor4;\nlayout(location = 5) out highp outType_5 pcFragColor5;\nlayout(location = 6) out highp outType_6 pcFragColor6;\nlayout(location = 7) out highp outType_7 pcFragColor7;\n#endif\n#define gl_FragColor pcFragColor0\n#define texture2D(res, uv) texture(sampler2D(res, res ## _sampler), uv)\n#define texture2DBias(res, uv, bias) texture(sampler2D(res, res ## _sampler), uv, bias)\n#define texture2DLod(res, uv, lod) textureLod(sampler2D(res, res ## _sampler), uv, lod)\n#define textureCube(res, uv) texture(samplerCube(res, res ## _sampler), uv)\n#define textureCubeLod(res, uv, lod) textureLod(samplerCube(res, res ## _sampler), uv, lod)\n#define textureShadow(res, uv) textureLod(sampler2DShadow(res, res ## _sampler), uv, 0.0)\n#define itexture2D(res, uv) texture(isampler2D(res, res ## _sampler), uv)\n#define utexture2D(res, uv) texture(usampler2D(res, res ## _sampler), uv)\n#define texture2DLodEXT texture2DLodEXT_is_no_longer_supported_use_texture2DLod_instead\n#define texture2DProjLodEXT texture2DProjLodEXT_is_no_longer_supported_use_texture2DProjLod\n#define textureCubeLodEXT textureCubeLodEXT_is_no_longer_supported_use_textureCubeLod_instead\n#define texture2DGradEXT texture2DGradEXT_is_no_longer_supported_use_texture2DGrad_instead\n#define texture2DProjGradEXT texture2DProjGradEXT_is_no_longer_supported_use_texture2DProjGrad_instead\n#define textureCubeGradEXT textureCubeGradEXT_is_no_longer_supported_use_textureCubeGrad_instead\n#define SHADOWMAP_PASS(name) name, name ## _sampler\n#define SHADOWMAP_ACCEPT(name) texture2D name, sampler name ## _sampler\n#define TEXTURE_PASS(name) name, name ## _sampler\n#define TEXTURE_ACCEPT(name) texture2D name, sampler name ## _sampler\n#define TEXTURE_ACCEPT_HIGHP TEXTURE_ACCEPT\n#define GL2\n#define WEBGPU\n`;\n\nvar webgpu_default2 = `\n#extension GL_EXT_samplerless_texture_functions : require\n#define texture2D(res, uv) texture(sampler2D(res, res ## _sampler), uv)\n#define itexture2D(res, uv) texture(isampler2D(res, res ## _sampler), uv)\n#define utexture2D(res, uv) texture(usampler2D(res, res ## _sampler), uv)\n#define TEXTURE_PASS(name) name, name ## _sampler\n#define TEXTURE_ACCEPT(name) texture2D name, sampler name ## _sampler\n#define TEXTURE_ACCEPT_HIGHP TEXTURE_ACCEPT\n#define GL2\n#define WEBGPU\n#define VERTEXSHADER\n#define gl_VertexID gl_VertexIndex\n#define gl_InstanceID gl_InstanceIndex\n`;\n\nvar webgpu_wgsl_default = `\n`;\n\nvar webgpu_wgsl_default2 = `\n#define VERTEXSHADER\n`;\n\nvar shared_default = `\nvec2 getGrabScreenPos(vec4 clipPos) {\n\tvec2 uv = (clipPos.xy / clipPos.w) * 0.5 + 0.5;\n\t#ifdef WEBGPU\n\t\tuv.y = 1.0 - uv.y;\n\t#endif\n\treturn uv;\n}\nvec2 getImageEffectUV(vec2 uv) {\n\t#ifdef WEBGPU\n\t\tuv.y = 1.0 - uv.y;\n\t#endif\n\treturn uv;\n}\n`;\n\nvar shared_wgsl_default = `\n#define WEBGPU\nfn getGrabScreenPos(clipPos: vec4<f32>) -> vec2<f32> {\n\tvar uv: vec2<f32> = (clipPos.xy / clipPos.w) * 0.5 + vec2<f32>(0.5);\n\tuv.y = 1.0 - uv.y;\n\treturn uv;\n}\nfn getImageEffectUV(uv: vec2<f32>) -> vec2<f32> {\n\tvar modifiedUV: vec2<f32> = uv;\n\tmodifiedUV.y = 1.0 - modifiedUV.y;\n\treturn modifiedUV;\n}\nstruct WrappedF32 { @size(16) element: f32 }\nstruct WrappedI32 { @size(16) element: i32 }\nstruct WrappedU32 { @size(16) element: u32 }\nstruct WrappedVec2F { @size(16) element: vec2f }\nstruct WrappedVec2I { @size(16) element: vec2i }\nstruct WrappedVec2U { @size(16) element: vec2u }\n`;\n\nvar half_types_default = `\n#ifdef CAPS_SHADER_F16\n\talias half = f16;\n\talias half2 = vec2<f16>;\n\talias half3 = vec3<f16>;\n\talias half4 = vec4<f16>;\n\talias half2x2 = mat2x2<f16>;\n\talias half3x3 = mat3x3<f16>;\n\talias half4x4 = mat4x4<f16>;\n#else\n\talias half = f32;\n\talias half2 = vec2f;\n\talias half3 = vec3f;\n\talias half4 = vec4f;\n\talias half2x2 = mat2x2f;\n\talias half3x3 = mat3x3f;\n\talias half4x4 = mat4x4f;\n#endif\n`;\n\nvar _attrib2Semantic = {\n\tvertex_position: SEMANTIC_POSITION,\n\tvertex_normal: SEMANTIC_NORMAL,\n\tvertex_tangent: SEMANTIC_TANGENT,\n\tvertex_texCoord0: SEMANTIC_TEXCOORD0,\n\tvertex_texCoord1: SEMANTIC_TEXCOORD1,\n\tvertex_texCoord2: SEMANTIC_TEXCOORD2,\n\tvertex_texCoord3: SEMANTIC_TEXCOORD3,\n\tvertex_texCoord4: SEMANTIC_TEXCOORD4,\n\tvertex_texCoord5: SEMANTIC_TEXCOORD5,\n\tvertex_texCoord6: SEMANTIC_TEXCOORD6,\n\tvertex_texCoord7: SEMANTIC_TEXCOORD7,\n\tvertex_color: SEMANTIC_COLOR,\n\tvertex_boneIndices: SEMANTIC_BLENDINDICES,\n\tvertex_boneWeights: SEMANTIC_BLENDWEIGHT\n};\nvar ShaderDefinitionUtils = class _ShaderDefinitionUtils {\n\tstatic createDefinition(device, options2) {\n\t\tconst normalizedOutputTypes = (options3) => {\n\t\t\tlet fragmentOutputTypes = options3.fragmentOutputTypes ?? \"vec4\";\n\t\t\tif (!Array.isArray(fragmentOutputTypes)) {\n\t\t\t\tfragmentOutputTypes = [fragmentOutputTypes];\n\t\t\t}\n\t\t\treturn fragmentOutputTypes;\n\t\t};\n\t\tconst getDefines = (gpu, gl2, isVertex, options3) => {\n\t\t\tconst deviceIntro = device.isWebGPU ? gpu : gl2;\n\t\t\tlet attachmentsDefine = \"\";\n\t\t\tif (!isVertex) {\n\t\t\t\tif (options3.useDualSourceBlending) {\n\t\t\t\t\tattachmentsDefine += \"#define DUAL_SOURCE_BLENDING\\n\";\n\t\t\t\t}\n\t\t\t\tconst fragmentOutputTypes = normalizedOutputTypes(options3);\n\t\t\t\tfor (let i2 = 0; i2 < device.maxColorAttachments; i2++) {\n\t\t\t\t\tattachmentsDefine += `#define COLOR_ATTACHMENT_${i2}\n`;\n\t\t\t\t\tconst outType = fragmentOutputTypes[i2] ?? \"vec4\";\n\t\t\t\t\tattachmentsDefine += `#define outType_${i2} ${outType}\n`;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn attachmentsDefine + deviceIntro;\n\t\t};\n\t\tconst getDefinesWgsl = (isVertex, options3) => {\n\t\t\tlet code = _ShaderDefinitionUtils.getWGSLEnables(\n\t\t\t\tdevice,\n\t\t\t\tisVertex ? \"vertex\" : \"fragment\",\n\t\t\t\t!isVertex && options3.useDualSourceBlending\n\t\t\t);\n\t\t\tif (!isVertex) {\n\t\t\t\tconst fragmentOutputTypes = normalizedOutputTypes(options3);\n\t\t\t\tfor (let i2 = 0; i2 < device.maxColorAttachments; i2++) {\n\t\t\t\t\tconst glslOutType = fragmentOutputTypes[i2] ?? \"vec4\";\n\t\t\t\t\tconst wgslOutType = primitiveGlslToWgslTypeMap.get(glslOutType);\n\t\t\t\t\tcode += `alias pcOutType${i2} = ${wgslOutType};\n`;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn code;\n\t\t};\n\t\tconst name = options2.name ?? \"Untitled\";\n\t\tlet vertCode;\n\t\tlet fragCode;\n\t\tconst vertexDefinesCode = _ShaderDefinitionUtils.getDefinesCode(device, options2.vertexDefines);\n\t\tconst fragmentDefinesCode = _ShaderDefinitionUtils.getDefinesCode(device, options2.fragmentDefines);\n\t\tconst wgsl = options2.shaderLanguage === SHADERLANGUAGE_WGSL;\n\t\tif (wgsl) {\n\t\t\tvertCode = `\n\t\t\t\t\t\t\t\t${getDefinesWgsl(true, options2)}\n\t\t\t\t\t\t\t\t${vertexDefinesCode}\n\t\t\t\t\t\t\t\t${half_types_default}\n\t\t\t\t\t\t\t\t${webgpu_wgsl_default2}\n\t\t\t\t\t\t\t\t${shared_wgsl_default}\n\t\t\t\t\t\t\t\t${options2.vertexCode}\n\t\t\t\t\t\t`;\n\t\t\tfragCode = `\n\t\t\t\t\t\t\t\t${getDefinesWgsl(false, options2)}\n\t\t\t\t\t\t\t\t${fragmentDefinesCode}\n\t\t\t\t\t\t\t\t${half_types_default}\n\t\t\t\t\t\t\t\t${webgpu_wgsl_default}\n\t\t\t\t\t\t\t\t${shared_wgsl_default}\n\t\t\t\t\t\t\t\t${options2.fragmentCode}\n\t\t\t\t\t\t`;\n\t\t} else {\n\t\t\tvertCode = `${_ShaderDefinitionUtils.versionCode(device) + getDefines(webgpu_default2, gles3_default2, true, options2) + vertexDefinesCode + _ShaderDefinitionUtils.precisionCode(device)}\n\t\t\t\t\t\t\t\t${shared_default}\n\t\t\t\t\t\t\t\t${_ShaderDefinitionUtils.getShaderNameCode(name)}\n\t\t\t\t\t\t\t\t${options2.vertexCode}`;\n\t\t\tfragCode = `${(options2.fragmentPreamble || \"\") + _ShaderDefinitionUtils.versionCode(device) + getDefines(webgpu_default, gles3_default, false, options2) + fragmentDefinesCode + _ShaderDefinitionUtils.precisionCode(device)}\n\t\t\t\t\t\t\t\t${shared_default}\n\t\t\t\t\t\t\t\t${_ShaderDefinitionUtils.getShaderNameCode(name)}\n\t\t\t\t\t\t\t\t${options2.fragmentCode}`;\n\t\t}\n\t\treturn {\n\t\t\tname,\n\t\t\tshaderLanguage: options2.shaderLanguage ?? SHADERLANGUAGE_GLSL,\n\t\t\tattributes: options2.attributes,\n\t\t\tvshader: vertCode,\n\t\t\tvincludes: options2.vertexIncludes,\n\t\t\tfincludes: options2.fragmentIncludes,\n\t\t\tfshader: fragCode,\n\t\t\tfeedbackVaryings: options2.feedbackVaryings,\n\t\t\tfeedbackVaryingsMode: options2.feedbackVaryingsMode,\n\t\t\tuseTransformFeedback: options2.useTransformFeedback,\n\t\t\tmeshUniformBufferFormat: options2.meshUniformBufferFormat,\n\t\t\tmeshBindGroupFormat: options2.meshBindGroupFormat,\n\t\t\tuseDualSourceBlending: !!options2.useDualSourceBlending\n\t\t};\n\t}\n\tstatic getWGSLEnables(device, shaderType, useDualSourceBlending = false) {\n\t\tlet code = \"\";\n\t\tif (device.supportsShaderF16) {\n\t\t\tcode += \"enable f16;\\n\";\n\t\t}\n\t\tif (shaderType === \"fragment\" && device.supportsPrimitiveIndex) {\n\t\t\tcode += \"enable primitive_index;\\n\";\n\t\t}\n\t\tif (shaderType === \"fragment\" && useDualSourceBlending) {\n\t\t\tcode += \"enable dual_source_blending;\\n\";\n\t\t}\n\t\tif (device.supportsSubgroups) {\n\t\t\tcode += \"enable subgroups;\\n\";\n\t\t}\n\t\tif (device.supportsSubgroupId) {\n\t\t\tcode += \"requires subgroup_id;\\n\";\n\t\t}\n\t\tif (shaderType === \"compute\" && device.supportsLinearIndexing) {\n\t\t\tcode += \"requires linear_indexing;\\n\";\n\t\t}\n\t\tif (device.supportsUnrestrictedPointerParameters) {\n\t\t\tcode += \"requires unrestricted_pointer_parameters;\\n\";\n\t\t}\n\t\tif (device.supportsPointerCompositeAccess) {\n\t\t\tcode += \"requires pointer_composite_access;\\n\";\n\t\t}\n\t\tif (device.supportsPacked4x8IntegerDotProduct) {\n\t\t\tcode += \"requires packed_4x8_integer_dot_product;\\n\";\n\t\t}\n\t\tif (device.supportsTextureAndSamplerLet) {\n\t\t\tcode += \"requires texture_and_sampler_let;\\n\";\n\t\t}\n\t\treturn code;\n\t}\n\tstatic getDefinesCode(device, defines) {\n\t\tlet code = \"\";\n\t\tdevice.capsDefines.forEach((value, key) => {\n\t\t\tcode += `#define ${key} ${value}\n`;\n\t\t});\n\t\tcode += \"\\n\";\n\t\tdefines?.forEach((value, key) => {\n\t\t\tcode += `#define ${key} ${value}\n`;\n\t\t});\n\t\tcode += \"\\n\";\n\t\treturn code;\n\t}\n\t// SpectorJS integration\n\tstatic getShaderNameCode(name) {\n\t\treturn `#define SHADER_NAME ${name}\n`;\n\t}\n\tstatic versionCode(device) {\n\t\treturn device.isWebGPU ? \"#version 450\\n\" : \"#version 300 es\\n\";\n\t}\n\tstatic precisionCode(device, forcePrecision) {\n\t\tif (forcePrecision && forcePrecision !== \"highp\" && forcePrecision !== \"mediump\" && forcePrecision !== \"lowp\") {\n\t\t\tforcePrecision = null;\n\t\t}\n\t\tif (forcePrecision) {\n\t\t\tif (forcePrecision === \"highp\" && device.maxPrecision !== \"highp\") {\n\t\t\t\tforcePrecision = \"mediump\";\n\t\t\t}\n\t\t\tif (forcePrecision === \"mediump\" && device.maxPrecision === \"lowp\") {\n\t\t\t\tforcePrecision = \"lowp\";\n\t\t\t}\n\t\t}\n\t\tconst precision = forcePrecision ? forcePrecision : device.precision;\n\t\tconst code = `\n\t\t\t\t\t\tprecision ${precision} float;\n\t\t\t\t\t\tprecision ${precision} int;\n\t\t\t\t\t\tprecision ${precision} usampler2D;\n\t\t\t\t\t\tprecision ${precision} isampler2D;\n\t\t\t\t\t\tprecision ${precision} sampler2DShadow;\n\t\t\t\t\t\tprecision ${precision} samplerCubeShadow;\n\t\t\t\t\t\tprecision ${precision} sampler2DArray;\n\t\t\t\t`;\n\t\treturn code;\n\t}\n\tstatic collectAttributes(vsCode) {\n\t\tconst attribs = {};\n\t\tlet attrs = 0;\n\t\tlet found = vsCode.indexOf(\"attribute\");\n\t\twhile (found >= 0) {\n\t\t\tif (found > 0 && vsCode[found - 1] === \"/\") break;\n\t\t\tlet ignore = false;\n\t\t\tif (found > 0) {\n\t\t\t\tlet startOfLine = vsCode.lastIndexOf(\"\\n\", found);\n\t\t\t\tstartOfLine = startOfLine !== -1 ? startOfLine + 1 : 0;\n\t\t\t\tconst lineStartString = vsCode.substring(startOfLine, found);\n\t\t\t\tif (lineStartString.includes(\"#\")) {\n\t\t\t\t\tignore = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!ignore) {\n\t\t\t\tconst endOfLine = vsCode.indexOf(\";\", found);\n\t\t\t\tconst startOfAttribName = vsCode.lastIndexOf(\" \", endOfLine);\n\t\t\t\tconst attribName = vsCode.substring(startOfAttribName + 1, endOfLine);\n\t\t\t\tif (attribs[attribName]) {\n\t\t\t\t} else {\n\t\t\t\t\tconst semantic = _attrib2Semantic[attribName];\n\t\t\t\t\tif (semantic !== void 0) {\n\t\t\t\t\t\tattribs[attribName] = semantic;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tattribs[attribName] = `ATTR${attrs}`;\n\t\t\t\t\t\tattrs++;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tfound = vsCode.indexOf(\"attribute\", found + 1);\n\t\t}\n\t\treturn attribs;\n\t}\n};\n\nvar id8 = 0;\nvar Shader = class {\n\tmeshUniformBufferFormat;\n\tmeshBindGroupFormat;\n\tattributes = /* @__PURE__ */ new Map();\n\tconstructor(graphicsDevice, definition) {\n\t\tthis.id = id8++;\n\t\tthis.device = graphicsDevice;\n\t\tdefinition = { ...definition };\n\t\tthis.definition = definition;\n\t\tthis.name = definition.name || \"Untitled\";\n\t\tthis.init();\n\t\tif (definition.cshader) {\n\t\t\tconst enablesCode = ShaderDefinitionUtils.getWGSLEnables(graphicsDevice, \"compute\");\n\t\t\tconst definesCode = ShaderDefinitionUtils.getDefinesCode(graphicsDevice, definition.cdefines);\n\t\t\tconst cshader = enablesCode + definesCode + definition.cshader;\n\t\t\tconst cincludes = new Map(definition.cincludes);\n\t\t\tif (!cincludes.has(\"halfTypesCS\")) {\n\t\t\t\tcincludes.set(\"halfTypesCS\", half_types_default);\n\t\t\t}\n\t\t\tdefinition.cshader = Preprocessor.run(cshader, cincludes, {\n\t\t\t\tsourceName: `compute shader for ${this.label}`,\n\t\t\t\tstripDefines: true\n\t\t\t});\n\t\t} else {\n\t\t\tconst wgsl = definition.shaderLanguage === SHADERLANGUAGE_WGSL;\n\t\t\tdefinition.vshader = Preprocessor.run(definition.vshader, definition.vincludes, {\n\t\t\t\tsourceName: `vertex shader for ${this.label}`,\n\t\t\t\tstripDefines: wgsl\n\t\t\t});\n\t\t\tif (definition.shaderLanguage === SHADERLANGUAGE_GLSL) {\n\t\t\t\tdefinition.attributes ?? (definition.attributes = ShaderDefinitionUtils.collectAttributes(definition.vshader));\n\t\t\t}\n\t\t\tconst stripUnusedColorAttachments = graphicsDevice.isWebGL2 && (platform.name === \"osx\" || platform.name === \"ios\");\n\t\t\tdefinition.fshader = Preprocessor.run(definition.fshader, definition.fincludes, {\n\t\t\t\tstripUnusedColorAttachments,\n\t\t\t\tstripDefines: wgsl,\n\t\t\t\tsourceName: `fragment shader for ${this.label}`\n\t\t\t});\n\t\t\tif (!definition.vshader || !definition.fshader) {\n\t\t\t\tthis.failed = true;\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tthis.impl = graphicsDevice.createShaderImpl(this);\n\t}\n\tinit() {\n\t\tthis.ready = false;\n\t\tthis.failed = false;\n\t}\n\tget label() {\n\t\treturn `Shader Id ${this.id} (${this.definition.shaderLanguage === SHADERLANGUAGE_WGSL ? \"WGSL\" : \"GLSL\"}) ${this.name}`;\n\t}\n\tdestroy() {\n\t\tthis.device.onDestroyShader(this);\n\t\tthis.impl.destroy(this);\n\t}\n\tloseContext() {\n\t\tthis.init();\n\t\tthis.impl.loseContext();\n\t}\n\trestoreContext() {\n\t\tthis.impl.restoreContext(this.device, this);\n\t}\n};\n\nvar UsedBuffer = class {\n\tgpuBuffer;\n\tstagingBuffer;\n\toffset;\n\tsize;\n};\nvar DynamicBufferAllocation = class {\n\tstorage;\n\tgpuBuffer;\n\toffset;\n};\nvar DynamicBuffers = class {\n\tbufferSize;\n\tgpuBuffers = [];\n\tstagingBuffers = [];\n\tusedBuffers = [];\n\tactiveBuffer = null;\n\tconstructor(device, bufferSize, bufferAlignment) {\n\t\tthis.device = device;\n\t\tthis.bufferSize = bufferSize;\n\t\tthis.bufferAlignment = bufferAlignment;\n\t}\n\tdestroy() {\n\t\tthis.gpuBuffers.forEach((gpuBuffer) => {\n\t\t\tgpuBuffer.destroy(this.device);\n\t\t});\n\t\tthis.gpuBuffers = null;\n\t\tthis.stagingBuffers.forEach((stagingBuffer) => {\n\t\t\tstagingBuffer.destroy(this.device);\n\t\t});\n\t\tthis.stagingBuffers = null;\n\t\tthis.usedBuffers = null;\n\t\tthis.activeBuffer = null;\n\t}\n\talloc(allocation, size) {\n\t\tif (this.activeBuffer) {\n\t\t\tconst alignedStart2 = math.roundUp(this.activeBuffer.size, this.bufferAlignment);\n\t\t\tconst space = this.bufferSize - alignedStart2;\n\t\t\tif (space < size) {\n\t\t\t\tthis.scheduleSubmit();\n\t\t\t}\n\t\t}\n\t\tif (!this.activeBuffer) {\n\t\t\tlet gpuBuffer = this.gpuBuffers.pop();\n\t\t\tif (!gpuBuffer) {\n\t\t\t\tgpuBuffer = this.createBuffer(this.device, this.bufferSize, false);\n\t\t\t}\n\t\t\tlet stagingBuffer = this.stagingBuffers.pop();\n\t\t\tif (!stagingBuffer) {\n\t\t\t\tstagingBuffer = this.createBuffer(this.device, this.bufferSize, true);\n\t\t\t}\n\t\t\tthis.activeBuffer = new UsedBuffer();\n\t\t\tthis.activeBuffer.stagingBuffer = stagingBuffer;\n\t\t\tthis.activeBuffer.gpuBuffer = gpuBuffer;\n\t\t\tthis.activeBuffer.offset = 0;\n\t\t\tthis.activeBuffer.size = 0;\n\t\t}\n\t\tconst activeBuffer = this.activeBuffer;\n\t\tconst alignedStart = math.roundUp(activeBuffer.size, this.bufferAlignment);\n\t\tallocation.gpuBuffer = activeBuffer.gpuBuffer;\n\t\tallocation.offset = alignedStart;\n\t\tallocation.storage = activeBuffer.stagingBuffer.alloc(alignedStart, size);\n\t\tactiveBuffer.size = alignedStart + size;\n\t}\n\tscheduleSubmit() {\n\t\tif (this.activeBuffer) {\n\t\t\tthis.usedBuffers.push(this.activeBuffer);\n\t\t\tthis.activeBuffer = null;\n\t\t}\n\t}\n\tsubmit() {\n\t\tthis.scheduleSubmit();\n\t}\n};\n\nvar _updateFunctions = [];\n_updateFunctions[UNIFORMTYPE_FLOAT] = function(uniformBuffer, value, offset3) {\n\tconst dst = uniformBuffer.storageFloat32;\n\tdst[offset3] = value;\n};\n_updateFunctions[UNIFORMTYPE_VEC2] = (uniformBuffer, value, offset3) => {\n\tconst dst = uniformBuffer.storageFloat32;\n\tdst[offset3] = value[0];\n\tdst[offset3 + 1] = value[1];\n};\n_updateFunctions[UNIFORMTYPE_VEC3] = (uniformBuffer, value, offset3) => {\n\tconst dst = uniformBuffer.storageFloat32;\n\tdst[offset3] = value[0];\n\tdst[offset3 + 1] = value[1];\n\tdst[offset3 + 2] = value[2];\n};\n_updateFunctions[UNIFORMTYPE_VEC4] = (uniformBuffer, value, offset3) => {\n\tconst dst = uniformBuffer.storageFloat32;\n\tdst[offset3] = value[0];\n\tdst[offset3 + 1] = value[1];\n\tdst[offset3 + 2] = value[2];\n\tdst[offset3 + 3] = value[3];\n};\n_updateFunctions[UNIFORMTYPE_INT] = function(uniformBuffer, value, offset3) {\n\tconst dst = uniformBuffer.storageInt32;\n\tdst[offset3] = value;\n};\n_updateFunctions[UNIFORMTYPE_IVEC2] = function(uniformBuffer, value, offset3) {\n\tconst dst = uniformBuffer.storageInt32;\n\tdst[offset3] = value[0];\n\tdst[offset3 + 1] = value[1];\n};\n_updateFunctions[UNIFORMTYPE_IVEC3] = function(uniformBuffer, value, offset3) {\n\tconst dst = uniformBuffer.storageInt32;\n\tdst[offset3] = value[0];\n\tdst[offset3 + 1] = value[1];\n\tdst[offset3 + 2] = value[2];\n};\n_updateFunctions[UNIFORMTYPE_IVEC4] = function(uniformBuffer, value, offset3) {\n\tconst dst = uniformBuffer.storageInt32;\n\tdst[offset3] = value[0];\n\tdst[offset3 + 1] = value[1];\n\tdst[offset3 + 2] = value[2];\n\tdst[offset3 + 3] = value[3];\n};\n_updateFunctions[UNIFORMTYPE_MAT2] = (uniformBuffer, value, offset3) => {\n\tconst dst = uniformBuffer.storageFloat32;\n\tdst[offset3] = value[0];\n\tdst[offset3 + 1] = value[1];\n\tdst[offset3 + 4] = value[2];\n\tdst[offset3 + 5] = value[3];\n\tdst[offset3 + 8] = value[4];\n\tdst[offset3 + 9] = value[5];\n};\n_updateFunctions[UNIFORMTYPE_MAT3] = (uniformBuffer, value, offset3) => {\n\tconst dst = uniformBuffer.storageFloat32;\n\tdst[offset3] = value[0];\n\tdst[offset3 + 1] = value[1];\n\tdst[offset3 + 2] = value[2];\n\tdst[offset3 + 4] = value[3];\n\tdst[offset3 + 5] = value[4];\n\tdst[offset3 + 6] = value[5];\n\tdst[offset3 + 8] = value[6];\n\tdst[offset3 + 9] = value[7];\n\tdst[offset3 + 10] = value[8];\n};\n_updateFunctions[UNIFORMTYPE_FLOATARRAY] = function(uniformBuffer, value, offset3, count) {\n\tconst dst = uniformBuffer.storageFloat32;\n\tfor (let i2 = 0; i2 < count; i2++) {\n\t\tdst[offset3 + i2 * 4] = value[i2];\n\t}\n};\n_updateFunctions[UNIFORMTYPE_VEC2ARRAY] = (uniformBuffer, value, offset3, count) => {\n\tconst dst = uniformBuffer.storageFloat32;\n\tfor (let i2 = 0; i2 < count; i2++) {\n\t\tdst[offset3 + i2 * 4] = value[i2 * 2];\n\t\tdst[offset3 + i2 * 4 + 1] = value[i2 * 2 + 1];\n\t}\n};\n_updateFunctions[UNIFORMTYPE_VEC3ARRAY] = (uniformBuffer, value, offset3, count) => {\n\tconst dst = uniformBuffer.storageFloat32;\n\tfor (let i2 = 0; i2 < count; i2++) {\n\t\tdst[offset3 + i2 * 4] = value[i2 * 3];\n\t\tdst[offset3 + i2 * 4 + 1] = value[i2 * 3 + 1];\n\t\tdst[offset3 + i2 * 4 + 2] = value[i2 * 3 + 2];\n\t}\n};\n_updateFunctions[UNIFORMTYPE_UINT] = (uniformBuffer, value, offset3, count) => {\n\tconst dst = uniformBuffer.storageUint32;\n\tdst[offset3] = value;\n};\n_updateFunctions[UNIFORMTYPE_UVEC2] = (uniformBuffer, value, offset3, count) => {\n\tconst dst = uniformBuffer.storageUint32;\n\tdst[offset3] = value[0];\n\tdst[offset3 + 1] = value[1];\n};\n_updateFunctions[UNIFORMTYPE_UVEC3] = (uniformBuffer, value, offset3, count) => {\n\tconst dst = uniformBuffer.storageUint32;\n\tdst[offset3] = value[0];\n\tdst[offset3 + 1] = value[1];\n\tdst[offset3 + 2] = value[2];\n};\n_updateFunctions[UNIFORMTYPE_UVEC4] = (uniformBuffer, value, offset3, count) => {\n\tconst dst = uniformBuffer.storageUint32;\n\tdst[offset3] = value[0];\n\tdst[offset3 + 1] = value[1];\n\tdst[offset3 + 2] = value[2];\n\tdst[offset3 + 3] = value[3];\n};\n_updateFunctions[UNIFORMTYPE_INTARRAY] = function(uniformBuffer, value, offset3, count) {\n\tconst dst = uniformBuffer.storageInt32;\n\tfor (let i2 = 0; i2 < count; i2++) {\n\t\tdst[offset3 + i2 * 4] = value[i2];\n\t}\n};\n_updateFunctions[UNIFORMTYPE_BOOLARRAY] = _updateFunctions[UNIFORMTYPE_INTARRAY];\n_updateFunctions[UNIFORMTYPE_UINTARRAY] = function(uniformBuffer, value, offset3, count) {\n\tconst dst = uniformBuffer.storageUint32;\n\tfor (let i2 = 0; i2 < count; i2++) {\n\t\tdst[offset3 + i2 * 4] = value[i2];\n\t}\n};\n_updateFunctions[UNIFORMTYPE_IVEC2ARRAY] = (uniformBuffer, value, offset3, count) => {\n\tconst dst = uniformBuffer.storageInt32;\n\tfor (let i2 = 0; i2 < count; i2++) {\n\t\tdst[offset3 + i2 * 4] = value[i2 * 2];\n\t\tdst[offset3 + i2 * 4 + 1] = value[i2 * 2 + 1];\n\t}\n};\n_updateFunctions[UNIFORMTYPE_BVEC2ARRAY] = _updateFunctions[UNIFORMTYPE_IVEC2ARRAY];\n_updateFunctions[UNIFORMTYPE_UVEC2ARRAY] = (uniformBuffer, value, offset3, count) => {\n\tconst dst = uniformBuffer.storageUint32;\n\tfor (let i2 = 0; i2 < count; i2++) {\n\t\tdst[offset3 + i2 * 4] = value[i2 * 2];\n\t\tdst[offset3 + i2 * 4 + 1] = value[i2 * 2 + 1];\n\t}\n};\n_updateFunctions[UNIFORMTYPE_IVEC3ARRAY] = (uniformBuffer, value, offset3, count) => {\n\tconst dst = uniformBuffer.storageInt32;\n\tfor (let i2 = 0; i2 < count; i2++) {\n\t\tdst[offset3 + i2 * 4] = value[i2 * 3];\n\t\tdst[offset3 + i2 * 4 + 1] = value[i2 * 3 + 1];\n\t\tdst[offset3 + i2 * 4 + 2] = value[i2 * 3 + 2];\n\t}\n};\n_updateFunctions[UNIFORMTYPE_BVEC3ARRAY] = _updateFunctions[UNIFORMTYPE_IVEC3ARRAY];\n_updateFunctions[UNIFORMTYPE_UVEC3ARRAY] = (uniformBuffer, value, offset3, count) => {\n\tconst dst = uniformBuffer.storageUint32;\n\tfor (let i2 = 0; i2 < count; i2++) {\n\t\tdst[offset3 + i2 * 4] = value[i2 * 3];\n\t\tdst[offset3 + i2 * 4 + 1] = value[i2 * 3 + 1];\n\t\tdst[offset3 + i2 * 4 + 2] = value[i2 * 3 + 2];\n\t}\n};\nvar UniformBuffer = class {\n\tdevice;\n\tpersistent;\n\tallocation;\n\tstorageFloat32;\n\tstorageInt32;\n\tstorageUint32;\n\tconstructor(graphicsDevice, format, persistent = true) {\n\t\tthis.device = graphicsDevice;\n\t\tthis.format = format;\n\t\tthis.persistent = persistent;\n\t\tif (persistent) {\n\t\t\tthis.impl = graphicsDevice.createUniformBufferImpl(this);\n\t\t\tconst storage = new ArrayBuffer(format.byteSize);\n\t\t\tthis.assignStorage(new Int32Array(storage));\n\t\t\tgraphicsDevice._vram.ub += this.format.byteSize;\n\t\t\tthis.device.buffers.add(this);\n\t\t} else {\n\t\t\tthis.allocation = new DynamicBufferAllocation();\n\t\t}\n\t}\n\tdestroy() {\n\t\tif (this.persistent) {\n\t\t\tconst device = this.device;\n\t\t\tdevice.buffers.delete(this);\n\t\t\tthis.impl.destroy(device);\n\t\t\tdevice._vram.ub -= this.format.byteSize;\n\t\t}\n\t}\n\tget offset() {\n\t\treturn this.persistent ? 0 : this.allocation.offset;\n\t}\n\tassignStorage(storage) {\n\t\tthis.storageInt32 = storage;\n\t\tthis.storageUint32 = new Uint32Array(storage.buffer, storage.byteOffset, storage.byteLength / 4);\n\t\tthis.storageFloat32 = new Float32Array(storage.buffer, storage.byteOffset, storage.byteLength / 4);\n\t}\n\tloseContext() {\n\t\tthis.impl?.loseContext();\n\t}\n\trestoreContext() {\n\t\tthis.impl?.unlock(this);\n\t}\n\tsetUniform(uniformFormat, value) {\n\t\tconst offset3 = uniformFormat.offset;\n\t\tif (value !== null && value !== void 0) {\n\t\t\tconst updateFunction = _updateFunctions[uniformFormat.updateType];\n\t\t\tif (updateFunction) {\n\t\t\t\tupdateFunction(this, value, offset3, uniformFormat.count);\n\t\t\t} else {\n\t\t\t\tthis.storageFloat32.set(value, offset3);\n\t\t\t}\n\t\t} else {\n\t\t}\n\t}\n\tset(name, value) {\n\t\tconst uniformFormat = this.format.map.get(name);\n\t\tif (uniformFormat) {\n\t\t\tthis.setUniform(uniformFormat, value);\n\t\t}\n\t}\n\tstartUpdate(dynamicBindGroup) {\n\t\tif (!this.persistent) {\n\t\t\tconst allocation = this.allocation;\n\t\t\tthis.device.dynamicBuffers.alloc(allocation, this.format.byteSize);\n\t\t\tthis.assignStorage(allocation.storage);\n\t\t\tif (dynamicBindGroup) {\n\t\t\t\tdynamicBindGroup.bindGroup = allocation.gpuBuffer.getBindGroup(this);\n\t\t\t\tdynamicBindGroup.offsets[0] = allocation.offset;\n\t\t\t}\n\t\t}\n\t}\n\tendUpdate() {\n\t\tif (this.persistent) {\n\t\t\tthis.impl.unlock(this);\n\t\t} else {\n\t\t\tthis.allocation.gpuBuffer.upload();\n\t\t\tthis.storageFloat32 = null;\n\t\t\tthis.storageInt32 = null;\n\t\t}\n\t}\n\tupdate(dynamicBindGroup) {\n\t\tthis.startUpdate(dynamicBindGroup);\n\t\tconst uniforms = this.format.uniforms;\n\t\tfor (let i2 = 0; i2 < uniforms.length; i2++) {\n\t\t\tconst value = uniforms[i2].scopeId.value;\n\t\t\tthis.setUniform(uniforms[i2], value);\n\t\t}\n\t\tthis.endUpdate();\n\t}\n};\n\nvar webgpu_clear_default = `\n\tstruct ub_mesh {\n\t\tcolor : vec4f,\n\t\tdepth: f32\n\t}\n\t@group(2) @binding(0) var<uniform> ubMesh : ub_mesh;\n\tvar<private> pos : array<vec2f, 4> = array<vec2f, 4>(\n\t\tvec2(-1.0, 1.0), vec2(1.0, 1.0), vec2(-1.0, -1.0), vec2(1.0, -1.0)\n\t);\n\tstruct VertexOutput {\n\t\t@builtin(position) position : vec4f\n\t}\n\t@vertex\n\tfn vertexMain(@builtin(vertex_index) vertexIndex : u32) -> VertexOutput {\n\t\tvar output : VertexOutput;\n\t\toutput.position = vec4(pos[vertexIndex], ubMesh.depth, 1.0);\n\t\treturn output;\n\t}\n\t@fragment\n\tfn fragmentMain() -> @location(0) vec4f {\n\t\treturn ubMesh.color;\n\t}\n`;\n\nvar primitive = {\n\ttype: PRIMITIVE_TRISTRIP,\n\tbase: 0,\n\tbaseVertex: 0,\n\tcount: 4,\n\tindexed: false\n};\nvar WebgpuClearRenderer = class {\n\tconstructor(device) {\n\t\tthis.shader = new Shader(device, {\n\t\t\tname: \"WebGPUClearRendererShader\",\n\t\t\tshaderLanguage: SHADERLANGUAGE_WGSL,\n\t\t\tvshader: webgpu_clear_default,\n\t\t\tfshader: webgpu_clear_default\n\t\t});\n\t\tthis.uniformBuffer = new UniformBuffer(device, new UniformBufferFormat(device, [\n\t\t\tnew UniformFormat(\"color\", UNIFORMTYPE_VEC4),\n\t\t\tnew UniformFormat(\"depth\", UNIFORMTYPE_FLOAT)\n\t\t]), false);\n\t\tthis.dynamicBindGroup = new DynamicBindGroup();\n\t\tthis.colorData = new Float32Array(4);\n\t}\n\tdestroy() {\n\t\tthis.shader.destroy();\n\t\tthis.shader = null;\n\t\tthis.uniformBuffer.destroy();\n\t\tthis.uniformBuffer = null;\n\t}\n\tclear(device, renderTarget, options2, defaultOptions) {\n\t\toptions2 = options2 || defaultOptions;\n\t\tconst flags = options2.flags ?? defaultOptions.flags;\n\t\tif (flags !== 0) {\n\t\t\tconst { uniformBuffer, dynamicBindGroup } = this;\n\t\t\tuniformBuffer.startUpdate(dynamicBindGroup);\n\t\t\tdevice.setBindGroup(BINDGROUP_MESH_UB, dynamicBindGroup.bindGroup, dynamicBindGroup.offsets);\n\t\t\tdevice.setBindGroup(BINDGROUP_MESH, device.emptyBindGroup);\n\t\t\tlet blendState;\n\t\t\tif (flags & CLEARFLAG_COLOR && (renderTarget.colorBuffer || renderTarget.impl.assignedColorTexture)) {\n\t\t\t\tconst color3 = options2.color ?? defaultOptions.color;\n\t\t\t\tthis.colorData.set(color3);\n\t\t\t\tblendState = BlendState.NOBLEND;\n\t\t\t} else {\n\t\t\t\tblendState = BlendState.NOWRITE;\n\t\t\t}\n\t\t\tuniformBuffer.set(\"color\", this.colorData);\n\t\t\tlet depthState;\n\t\t\tif (flags & CLEARFLAG_DEPTH && renderTarget.depth) {\n\t\t\t\tconst depth = options2.depth ?? defaultOptions.depth;\n\t\t\t\tuniformBuffer.set(\"depth\", depth);\n\t\t\t\tdepthState = DepthState.WRITEDEPTH;\n\t\t\t} else {\n\t\t\t\tuniformBuffer.set(\"depth\", 1);\n\t\t\t\tdepthState = DepthState.NODEPTH;\n\t\t\t}\n\t\t\tif (flags & CLEARFLAG_STENCIL && renderTarget.stencil) {\n\t\t\t}\n\t\t\tuniformBuffer.endUpdate();\n\t\t\tdevice.setDrawStates(blendState, depthState);\n\t\t\tdevice.setShader(this.shader);\n\t\t\tdevice.draw(primitive);\n\t\t}\n\t}\n};\n\nvar webgpu_mipmap_default = `\n\tvar<private> pos : array<vec2f, 4> = array<vec2f, 4>(\n\t\tvec2(-1.0, 1.0), vec2(1.0, 1.0), vec2(-1.0, -1.0), vec2(1.0, -1.0)\n\t);\n\tstruct VertexOutput {\n\t\t@builtin(position) position : vec4f,\n\t\t@location(0) texCoord : vec2f\n\t};\n\t@vertex\n\tfn vertexMain(@builtin(vertex_index) vertexIndex : u32) -> VertexOutput {\n\t\tvar output : VertexOutput;\n\t\toutput.texCoord = pos[vertexIndex] * vec2f(0.5, -0.5) + vec2f(0.5);\n\t\toutput.position = vec4f(pos[vertexIndex], 0, 1);\n\t\treturn output;\n\t}\n\t@group(0) @binding(0) var imgSampler : sampler;\n\t@group(0) @binding(1) var img : texture_2d<f32>;\n\t@fragment\n\tfn fragmentMain(@location(0) texCoord : vec2f) -> @location(0) vec4f {\n\t\treturn textureSample(img, imgSampler, texCoord);\n\t}\n`;\n\nvar WebgpuMipmapRenderer = class {\n\tdevice;\n\tpipelineCache = /* @__PURE__ */ new Map();\n\tconstructor(device) {\n\t\tthis.device = device;\n\t\tthis.shader = new Shader(device, {\n\t\t\tname: \"WebGPUMipmapRendererShader\",\n\t\t\tshaderLanguage: SHADERLANGUAGE_WGSL,\n\t\t\tvshader: webgpu_mipmap_default,\n\t\t\tfshader: webgpu_mipmap_default\n\t\t});\n\t\tthis.minSampler = device.wgpu.createSampler({ minFilter: \"linear\" });\n\t}\n\tdestroy() {\n\t\tthis.shader.destroy();\n\t\tthis.shader = null;\n\t\tthis.pipelineCache.clear();\n\t}\n\tgenerate(webgpuTexture) {\n\t\tconst textureDescr = webgpuTexture.desc;\n\t\tif (textureDescr.mipLevelCount <= 1) {\n\t\t\treturn;\n\t\t}\n\t\tif (webgpuTexture.texture.volume) {\n\t\t\treturn;\n\t\t}\n\t\tconst device = this.device;\n\t\tconst wgpu = device.wgpu;\n\t\tconst format = textureDescr.format;\n\t\tlet pipeline = this.pipelineCache.get(format);\n\t\tif (!pipeline) {\n\t\t\tconst webgpuShader = this.shader.impl;\n\t\t\tpipeline = wgpu.createRenderPipeline({\n\t\t\t\tlayout: \"auto\",\n\t\t\t\tvertex: {\n\t\t\t\t\tmodule: webgpuShader.getVertexShaderModule(),\n\t\t\t\t\tentryPoint: webgpuShader.vertexEntryPoint\n\t\t\t\t},\n\t\t\t\tfragment: {\n\t\t\t\t\tmodule: webgpuShader.getFragmentShaderModule(),\n\t\t\t\t\tentryPoint: webgpuShader.fragmentEntryPoint,\n\t\t\t\t\ttargets: [{\n\t\t\t\t\t\tformat\n\t\t\t\t\t}]\n\t\t\t\t},\n\t\t\t\tprimitive: {\n\t\t\t\t\ttopology: \"triangle-strip\"\n\t\t\t\t}\n\t\t\t});\n\t\t\tthis.pipelineCache.set(format, pipeline);\n\t\t}\n\t\tconst texture = webgpuTexture.texture;\n\t\tconst numFaces = texture.cubemap ? 6 : texture.array ? texture.arrayLength : 1;\n\t\tconst srcViews = [];\n\t\tfor (let face = 0; face < numFaces; face++) {\n\t\t\tsrcViews.push(webgpuTexture.createView({\n\t\t\t\tdimension: \"2d\",\n\t\t\t\tbaseMipLevel: 0,\n\t\t\t\tmipLevelCount: 1,\n\t\t\t\tbaseArrayLayer: face\n\t\t\t}));\n\t\t}\n\t\tconst commandEncoder = device.getCommandEncoder();\n\t\tfor (let i2 = 1; i2 < textureDescr.mipLevelCount; i2++) {\n\t\t\tfor (let face = 0; face < numFaces; face++) {\n\t\t\t\tconst dstView = webgpuTexture.createView({\n\t\t\t\t\tdimension: \"2d\",\n\t\t\t\t\tbaseMipLevel: i2,\n\t\t\t\t\tmipLevelCount: 1,\n\t\t\t\t\tbaseArrayLayer: face\n\t\t\t\t});\n\t\t\t\tconst passEncoder = commandEncoder.beginRenderPass({\n\t\t\t\t\tcolorAttachments: [{\n\t\t\t\t\t\tview: dstView,\n\t\t\t\t\t\tloadOp: \"clear\",\n\t\t\t\t\t\tstoreOp: \"store\"\n\t\t\t\t\t}]\n\t\t\t\t});\n\t\t\t\tconst bindGroup = wgpu.createBindGroup({\n\t\t\t\t\tlayout: pipeline.getBindGroupLayout(0),\n\t\t\t\t\tentries: [{\n\t\t\t\t\t\tbinding: 0,\n\t\t\t\t\t\tresource: this.minSampler\n\t\t\t\t\t}, {\n\t\t\t\t\t\tbinding: 1,\n\t\t\t\t\t\tresource: srcViews[face]\n\t\t\t\t\t}]\n\t\t\t\t});\n\t\t\t\tpassEncoder.setPipeline(pipeline);\n\t\t\t\tpassEncoder.setBindGroup(0, bindGroup);\n\t\t\t\tpassEncoder.draw(4);\n\t\t\t\tpassEncoder.end();\n\t\t\t\tsrcViews[face] = dstView;\n\t\t\t}\n\t\t}\n\t\tdevice.pipeline = null;\n\t}\n};\n\nvar DynamicBuffer = class {\n\tdevice;\n\tbindGroupCache = /* @__PURE__ */ new Map();\n\tconstructor(device) {\n\t\tthis.device = device;\n\t\tthis.bindGroupFormat = new BindGroupFormat(this.device, [\n\t\t\tnew BindUniformBufferFormat(UNIFORM_BUFFER_DEFAULT_SLOT_NAME, SHADERSTAGE_VERTEX | SHADERSTAGE_FRAGMENT)\n\t\t]);\n\t}\n\tupload() {\n\t}\n\tgetBindGroup(ub) {\n\t\tconst ubSize = ub.format.byteSize;\n\t\tlet bindGroup = this.bindGroupCache.get(ubSize);\n\t\tif (!bindGroup) {\n\t\t\tbindGroup = new BindGroup(this.device, this.bindGroupFormat, ub);\n\t\t\tbindGroup.update();\n\t\t\tthis.bindGroupCache.set(ubSize, bindGroup);\n\t\t}\n\t\treturn bindGroup;\n\t}\n};\n\nvar WebgpuDynamicBuffer = class extends DynamicBuffer {\n\tbuffer = null;\n\tmappedRange = null;\n\tconstructor(device, size, isStaging) {\n\t\tsuper(device);\n\t\tthis.buffer = device.wgpu.createBuffer({\n\t\t\tsize,\n\t\t\tusage: isStaging ? GPUBufferUsage.MAP_WRITE | GPUBufferUsage.COPY_SRC : GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST,\n\t\t\tmappedAtCreation: isStaging\n\t\t});\n\t\tif (isStaging) {\n\t\t\tthis.onAvailable();\n\t\t}\n\t\tdevice._vram.ub += size;\n\t}\n\tdestroy(device) {\n\t\tdevice._vram.ub -= this.buffer.size;\n\t\tthis.buffer.destroy();\n\t\tthis.buffer = null;\n\t}\n\tonAvailable() {\n\t\tthis.mappedRange = this.buffer.getMappedRange();\n\t}\n\talloc(offset3, size) {\n\t\treturn new Int32Array(this.mappedRange, offset3, size / 4);\n\t}\n};\n\nvar WebgpuDynamicBuffers = class extends DynamicBuffers {\n\tpendingStagingBuffers = [];\n\tdestroy() {\n\t\tthis.scheduleSubmit();\n\t\tfor (const { gpuBuffer, stagingBuffer } of this.usedBuffers) {\n\t\t\tgpuBuffer.destroy(this.device);\n\t\t\tstagingBuffer.destroy(this.device);\n\t\t}\n\t\tfor (const stagingBuffer of this.pendingStagingBuffers) {\n\t\t\tstagingBuffer.destroy(this.device);\n\t\t}\n\t\tthis.pendingStagingBuffers.length = 0;\n\t\tsuper.destroy();\n\t}\n\tcreateBuffer(device, size, isStaging) {\n\t\treturn new WebgpuDynamicBuffer(device, size, isStaging);\n\t}\n\tsubmit() {\n\t\tsuper.submit();\n\t\tconst count = this.usedBuffers.length;\n\t\tif (count) {\n\t\t\tconst device = this.device;\n\t\t\tconst gpuBuffers = this.gpuBuffers;\n\t\t\tconst commandEncoder = device.wgpu.createCommandEncoder();\n\t\t\tfor (let i2 = count - 1; i2 >= 0; i2--) {\n\t\t\t\tconst usedBuffer = this.usedBuffers[i2];\n\t\t\t\tconst { stagingBuffer, gpuBuffer, offset: offset3, size } = usedBuffer;\n\t\t\t\tconst src = stagingBuffer.buffer;\n\t\t\t\tsrc.unmap();\n\t\t\t\tcommandEncoder.copyBufferToBuffer(src, offset3, gpuBuffer.buffer, offset3, size);\n\t\t\t\tgpuBuffers.push(gpuBuffer);\n\t\t\t}\n\t\t\tconst cb = commandEncoder.finish();\n\t\t\tdevice.addCommandBuffer(cb, true);\n\t\t\tfor (let i2 = 0; i2 < count; i2++) {\n\t\t\t\tconst stagingBuffer = this.usedBuffers[i2].stagingBuffer;\n\t\t\t\tthis.pendingStagingBuffers.push(stagingBuffer);\n\t\t\t}\n\t\t\tthis.usedBuffers.length = 0;\n\t\t}\n\t}\n\tonCommandBuffersSubmitted() {\n\t\tconst count = this.pendingStagingBuffers.length;\n\t\tif (count) {\n\t\t\tconst device = this.device;\n\t\t\tfor (let i2 = 0; i2 < count; i2++) {\n\t\t\t\tconst stagingBuffer = this.pendingStagingBuffers[i2];\n\t\t\t\tdevice.mapBufferAsync(stagingBuffer.buffer, GPUMapMode.WRITE).then((mapped) => {\n\t\t\t\t\tif (mapped && this.stagingBuffers) {\n\t\t\t\t\t\tstagingBuffer.onAvailable();\n\t\t\t\t\t\tthis.stagingBuffers.push(stagingBuffer);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tstagingBuffer.destroy(device);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\tthis.pendingStagingBuffers.length = 0;\n\t\t}\n\t}\n};\n\nvar GpuProfiler = class {\n\tframeAllocations = [];\n\tpastFrameAllocations = /* @__PURE__ */ new Map();\n\t_enabled = false;\n\t_enableRequest = false;\n\t_frameTime = 0;\n\t_passTimings = /* @__PURE__ */ new Map();\n\t_nameCache = /* @__PURE__ */ new Map();\n\tmaxCount = 9999;\n\tloseContext() {\n\t\tthis.pastFrameAllocations.clear();\n\t}\n\tset enabled(value) {\n\t\tthis._enableRequest = value;\n\t}\n\tget enabled() {\n\t\treturn this._enableRequest;\n\t}\n\tget passTimings() {\n\t\treturn this._passTimings;\n\t}\n\tprocessEnableRequest() {\n\t\tif (this._enableRequest !== this._enabled) {\n\t\t\tthis._enabled = this._enableRequest;\n\t\t\tif (!this._enabled) {\n\t\t\t\tthis._frameTime = 0;\n\t\t\t}\n\t\t}\n\t}\n\trequest(renderVersion) {\n\t\tthis.pastFrameAllocations.set(renderVersion, this.frameAllocations);\n\t\tthis.frameAllocations = [];\n\t}\n\t_parsePassName(name) {\n\t\tlet parsedName = this._nameCache.get(name);\n\t\tif (parsedName === void 0) {\n\t\t\tif (name.startsWith(\"RenderPass\")) {\n\t\t\t\tparsedName = name.substring(10);\n\t\t\t} else {\n\t\t\t\tparsedName = name;\n\t\t\t}\n\t\t\tthis._nameCache.set(name, parsedName);\n\t\t}\n\t\treturn parsedName;\n\t}\n\treport(renderVersion, timings, frameTime) {\n\t\tif (timings) {\n\t\t\tconst allocations = this.pastFrameAllocations.get(renderVersion);\n\t\t\tif (!allocations) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (timings.length > 0) {\n\t\t\t\tthis._frameTime = frameTime ?? timings.reduce((sum, t) => sum + t, 0);\n\t\t\t}\n\t\t\tthis._passTimings.clear();\n\t\t\tfor (let i2 = 0; i2 < allocations.length; ++i2) {\n\t\t\t\tconst name = allocations[i2];\n\t\t\t\tconst timing = timings[i2];\n\t\t\t\tconst parsedName = this._parsePassName(name);\n\t\t\t\tthis._passTimings.set(parsedName, (this._passTimings.get(parsedName) || 0) + timing);\n\t\t\t}\n\t\t\tif (Tracing.get(TRACEID_GPU_TIMINGS)) {\n\t\t\t\tlet total = 0;\n\t\t\t\tfor (let i2 = 0; i2 < allocations.length; ++i2) {\n\t\t\t\t\tconst name = allocations[i2];\n\t\t\t\t\ttotal += timings[i2];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis.pastFrameAllocations.delete(renderVersion);\n\t}\n\tgetSlot(name) {\n\t\tif (this.frameAllocations.length >= this.maxCount) {\n\t\t\treturn -1;\n\t\t}\n\t\tconst slot = this.frameAllocations.length;\n\t\tthis.frameAllocations.push(name);\n\t\treturn slot;\n\t}\n\tget slotCount() {\n\t\treturn this.frameAllocations.length;\n\t}\n};\n\nvar WebgpuQuerySet = class {\n\tquerySet;\n\tstagingBuffers = [];\n\tactiveStagingBuffer = null;\n\tbytesPerSlot;\n\tconstructor(device, isTimestamp, capacity) {\n\t\tthis.device = device;\n\t\tthis.capacity = capacity;\n\t\tthis.bytesPerSlot = isTimestamp ? 8 : 4;\n\t\tconst wgpu = device.wgpu;\n\t\tthis.querySet = wgpu.createQuerySet({\n\t\t\ttype: isTimestamp ? \"timestamp\" : \"occlusion\",\n\t\t\tcount: capacity\n\t\t});\n\t\tthis.queryBuffer = wgpu.createBuffer({\n\t\t\tsize: this.bytesPerSlot * capacity,\n\t\t\tusage: GPUBufferUsage.QUERY_RESOLVE | GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_SRC | GPUBufferUsage.COPY_DST\n\t\t});\n\t}\n\tdestroy() {\n\t\tthis.device.deferDestroy(this.querySet);\n\t\tthis.querySet = null;\n\t\tthis.device.deferDestroy(this.queryBuffer);\n\t\tthis.queryBuffer = null;\n\t\tthis.activeStagingBuffer = null;\n\t\tthis.stagingBuffers.forEach((stagingBuffer) => {\n\t\t\tstagingBuffer.destroy();\n\t\t});\n\t\tthis.stagingBuffers = null;\n\t}\n\tgetStagingBuffer() {\n\t\tlet stagingBuffer = this.stagingBuffers.pop();\n\t\tif (!stagingBuffer) {\n\t\t\tstagingBuffer = this.device.wgpu.createBuffer({\n\t\t\t\tsize: this.queryBuffer.size,\n\t\t\t\tusage: GPUBufferUsage.COPY_DST | GPUBufferUsage.MAP_READ\n\t\t\t});\n\t\t}\n\t\treturn stagingBuffer;\n\t}\n\tresolve(count) {\n\t\tconst device = this.device;\n\t\tconst commandEncoder = device.getCommandEncoder();\n\t\tcommandEncoder.resolveQuerySet(this.querySet, 0, count, this.queryBuffer, 0);\n\t\tconst activeStagingBuffer = this.getStagingBuffer();\n\t\tthis.activeStagingBuffer = activeStagingBuffer;\n\t\tcommandEncoder.copyBufferToBuffer(this.queryBuffer, 0, activeStagingBuffer, 0, this.bytesPerSlot * count);\n\t}\n\trequest(count, renderVersion) {\n\t\tconst stagingBuffer = this.activeStagingBuffer;\n\t\tthis.activeStagingBuffer = null;\n\t\treturn this.device.mapBufferAsync(stagingBuffer, GPUMapMode.READ).then((mapped) => {\n\t\t\tif (!mapped) {\n\t\t\t\tstagingBuffer.destroy();\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tconst srcTimings = new BigInt64Array(stagingBuffer.getMappedRange());\n\t\t\tconst timings = [];\n\t\t\tlet minTime = null;\n\t\t\tlet maxTime = null;\n\t\t\tfor (let i2 = 0; i2 < count; i2++) {\n\t\t\t\tconst begin = srcTimings[i2 * 2];\n\t\t\t\tconst end = srcTimings[i2 * 2 + 1];\n\t\t\t\ttimings.push(Math.max(0, Number(end - begin) * 1e-6));\n\t\t\t\tif (minTime === null || begin < minTime) minTime = begin;\n\t\t\t\tif (end < minTime) minTime = end;\n\t\t\t\tif (maxTime === null || end > maxTime) maxTime = end;\n\t\t\t\tif (begin > maxTime) maxTime = begin;\n\t\t\t}\n\t\t\tconst frameTime = count > 0 ? Number(maxTime - minTime) * 1e-6 : 0;\n\t\t\tstagingBuffer.unmap();\n\t\t\tthis.stagingBuffers?.push(stagingBuffer);\n\t\t\treturn {\n\t\t\t\trenderVersion,\n\t\t\t\ttimings,\n\t\t\t\tframeTime\n\t\t\t};\n\t\t});\n\t}\n};\n\nvar WebgpuGpuProfiler = class extends GpuProfiler {\n\tdevice;\n\tframeGPUMarkerSlot;\n\tconstructor(device) {\n\t\tsuper();\n\t\tthis.device = device;\n\t\tthis.maxCount = 1024;\n\t\tthis.timestampQueriesSet = device.supportsTimestampQuery ? new WebgpuQuerySet(device, true, 2 * this.maxCount) : null;\n\t}\n\tdestroy() {\n\t\tthis.timestampQueriesSet?.destroy();\n\t\tthis.timestampQueriesSet = null;\n\t}\n\tframeStart() {\n\t\tthis.processEnableRequest();\n\t}\n\tframeEnd() {\n\t\tif (this._enabled) {\n\t\t\tthis.timestampQueriesSet?.resolve(this.slotCount * 2);\n\t\t}\n\t}\n\trequest() {\n\t\tif (this._enabled) {\n\t\t\tconst renderVersion = this.device.renderVersion;\n\t\t\tthis.timestampQueriesSet?.request(this.slotCount, renderVersion).then((results) => {\n\t\t\t\tif (results) {\n\t\t\t\t\tthis.report(results.renderVersion, results.timings, results.frameTime);\n\t\t\t\t}\n\t\t\t});\n\t\t\tsuper.request(renderVersion);\n\t\t}\n\t}\n};\n\nvar webgpu_depth_resolve_default = `\n\tvar<private> pos : array<vec2f, 4> = array<vec2f, 4>(\n\t\tvec2(-1.0, 1.0), vec2(1.0, 1.0), vec2(-1.0, -1.0), vec2(1.0, -1.0)\n\t);\n\tstruct VertexOutput {\n\t\t@builtin(position) position : vec4f,\n\t};\n\t@vertex\n\tfn vertexMain(@builtin(vertex_index) vertexIndex : u32) -> VertexOutput {\n\t\tvar output : VertexOutput;\n\t\toutput.position = vec4f(pos[vertexIndex], 0, 1);\n\t\treturn output;\n\t}\n\t@group(0) @binding(0) var img : texture_depth_multisampled_2d;\n\t@fragment\n\tfn fragmentMain(@builtin(position) fragColor: vec4f) -> @location(0) vec4f {\n\t\tlet coord = vec2i(fragColor.xy);\n\t\tvar depth = textureLoad(img, coord, 0u);\n\t\t#if defined(DEPTH_RESOLVE_MIN) || defined(DEPTH_RESOLVE_MAX)\n\t\t\tlet count = i32(textureNumSamples(img));\n\t\t\tfor (var i = 1; i < count; i++) {\n\t\t\t\t#ifdef DEPTH_RESOLVE_MIN\n\t\t\t\t\tdepth = min(depth, textureLoad(img, coord, i));\n\t\t\t\t#else\n\t\t\t\t\tdepth = max(depth, textureLoad(img, coord, i));\n\t\t\t\t#endif\n\t\t\t}\n\t\t#endif\n\t\treturn vec4f(depth, 0.0, 0.0, 0.0);\n\t}\n`;\n\nvar WebgpuResolver = class {\n\tdevice;\n\tpipelineCache = /* @__PURE__ */ new Map();\n\tshaderCache = /* @__PURE__ */ new Map();\n\tconstructor(device) {\n\t\tthis.device = device;\n\t}\n\tdestroy() {\n\t\tthis.shaderCache.forEach((shader) => shader.destroy());\n\t\tthis.shaderCache = null;\n\t\tthis.pipelineCache = null;\n\t}\n\tgetShader(mode) {\n\t\tlet shader = this.shaderCache.get(mode);\n\t\tif (!shader) {\n\t\t\tconst code = `#define DEPTH_RESOLVE_${mode.toUpperCase()}\n${webgpu_depth_resolve_default}`;\n\t\t\tshader = new Shader(this.device, {\n\t\t\t\tname: `WebGPUResolverDepthShader-${mode}`,\n\t\t\t\tshaderLanguage: SHADERLANGUAGE_WGSL,\n\t\t\t\tvshader: code,\n\t\t\t\tfshader: code\n\t\t\t});\n\t\t\tthis.shaderCache.set(mode, shader);\n\t\t}\n\t\treturn shader;\n\t}\n\tgetPipeline(format, mode) {\n\t\tconst key = `${format}-${mode}`;\n\t\tlet pipeline = this.pipelineCache.get(key);\n\t\tif (!pipeline) {\n\t\t\tpipeline = this.createPipeline(format, mode);\n\t\t\tthis.pipelineCache.set(key, pipeline);\n\t\t}\n\t\treturn pipeline;\n\t}\n\tcreatePipeline(format, mode) {\n\t\tconst webgpuShader = this.getShader(mode).impl;\n\t\tconst pipeline = this.device.wgpu.createRenderPipeline({\n\t\t\tlayout: \"auto\",\n\t\t\tvertex: {\n\t\t\t\tmodule: webgpuShader.getVertexShaderModule(),\n\t\t\t\tentryPoint: webgpuShader.vertexEntryPoint\n\t\t\t},\n\t\t\tfragment: {\n\t\t\t\tmodule: webgpuShader.getFragmentShaderModule(),\n\t\t\t\tentryPoint: webgpuShader.fragmentEntryPoint,\n\t\t\t\ttargets: [{\n\t\t\t\t\tformat\n\t\t\t\t}]\n\t\t\t},\n\t\t\tprimitive: {\n\t\t\t\ttopology: \"triangle-strip\"\n\t\t\t}\n\t\t});\n\t\treturn pipeline;\n\t}\n\tresolveDepth(commandEncoder, sourceTexture, destinationTexture, mode = DEPTHRESOLVE_MIN) {\n\t\tconst device = this.device;\n\t\tconst wgpu = device.wgpu;\n\t\tconst pipeline = this.getPipeline(destinationTexture.format, mode);\n\t\tconst numFaces = sourceTexture.depthOrArrayLayers;\n\t\tfor (let face = 0; face < numFaces; face++) {\n\t\t\tconst srcView = sourceTexture.createView({\n\t\t\t\tdimension: \"2d\",\n\t\t\t\taspect: \"depth-only\",\n\t\t\t\tbaseMipLevel: 0,\n\t\t\t\tmipLevelCount: 1,\n\t\t\t\tbaseArrayLayer: face\n\t\t\t});\n\t\t\tconst dstView = destinationTexture.createView({\n\t\t\t\tdimension: \"2d\",\n\t\t\t\tbaseMipLevel: 0,\n\t\t\t\tmipLevelCount: 1,\n\t\t\t\tbaseArrayLayer: face\n\t\t\t});\n\t\t\tconst passEncoder = commandEncoder.beginRenderPass({\n\t\t\t\tcolorAttachments: [{\n\t\t\t\t\tview: dstView,\n\t\t\t\t\tloadOp: \"clear\",\n\t\t\t\t\tstoreOp: \"store\"\n\t\t\t\t}]\n\t\t\t});\n\t\t\tconst bindGroup = wgpu.createBindGroup({\n\t\t\t\tlayout: pipeline.getBindGroupLayout(0),\n\t\t\t\tentries: [{\n\t\t\t\t\tbinding: 0,\n\t\t\t\t\tresource: srcView\n\t\t\t\t}]\n\t\t\t});\n\t\t\tpassEncoder.setPipeline(pipeline);\n\t\t\tpassEncoder.setBindGroup(0, bindGroup);\n\t\t\tpassEncoder.draw(4);\n\t\t\tpassEncoder.end();\n\t\t}\n\t\tdevice.pipeline = null;\n\t}\n};\n\nvar _indirectDispatchEntryByteSize = 3 * 4;\nvar WebgpuCompute = class {\n\tuniformBuffers = [];\n\tbindGroups = [];\n\tconstructor(compute) {\n\t\tthis.compute = compute;\n\t\tconst { device, shader } = compute;\n\t\tconst {\n\t\t\tcomputeBindGroupFormat,\n\t\t\tcomputeUniformBufferFormats,\n\t\t\tcomputeReflectedBindGroupFormat,\n\t\t\tcomputeReflectedUniformBufferFormat,\n\t\t\tcomputeReflectedGroupIndex\n\t\t} = shader.impl;\n\t\tconst formats = [];\n\t\tif (computeBindGroupFormat) {\n\t\t\tconst bindGroup = new BindGroup(device, computeBindGroupFormat);\n\t\t\tif (computeUniformBufferFormats) {\n\t\t\t\tfor (const name in computeUniformBufferFormats) {\n\t\t\t\t\tif (computeUniformBufferFormats.hasOwnProperty(name)) {\n\t\t\t\t\t\tconst ub = new UniformBuffer(device, computeUniformBufferFormats[name], true);\n\t\t\t\t\t\tthis.uniformBuffers.push(ub);\n\t\t\t\t\t\tbindGroup.setUniformBuffer(name, ub);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tformats[0] = computeBindGroupFormat;\n\t\t\tthis.bindGroups[0] = bindGroup;\n\t\t}\n\t\tif (computeReflectedBindGroupFormat) {\n\t\t\tconst reflectedBindGroup = new BindGroup(device, computeReflectedBindGroupFormat);\n\t\t\tif (computeReflectedUniformBufferFormat) {\n\t\t\t\tconst ub = new UniformBuffer(device, computeReflectedUniformBufferFormat, true);\n\t\t\t\tthis.uniformBuffers.push(ub);\n\t\t\t\treflectedBindGroup.setUniformBuffer(\"ub_compute\", ub);\n\t\t\t}\n\t\t\tformats[computeReflectedGroupIndex] = computeReflectedBindGroupFormat;\n\t\t\tthis.bindGroups[computeReflectedGroupIndex] = reflectedBindGroup;\n\t\t}\n\t\tthis.pipeline = device.computePipeline.get(shader, formats);\n\t}\n\tdestroy() {\n\t\tthis.uniformBuffers.forEach((ub) => ub.destroy());\n\t\tthis.uniformBuffers.length = 0;\n\t\tthis.bindGroups.forEach((bindGroup) => bindGroup.destroy());\n\t\tthis.bindGroups.length = 0;\n\t}\n\tupdateBindGroup() {\n\t\tfor (let i2 = 0; i2 < this.bindGroups.length; i2++) {\n\t\t\tconst bindGroup = this.bindGroups[i2];\n\t\t\tbindGroup.updateUniformBuffers();\n\t\t\tbindGroup.update();\n\t\t}\n\t}\n\tdispatch(x3, y2, z2) {\n\t\tconst device = this.compute.device;\n\t\tfor (let i2 = 0; i2 < this.bindGroups.length; i2++) {\n\t\t\tdevice.setBindGroup(i2, this.bindGroups[i2]);\n\t\t}\n\t\tconst passEncoder = device.passEncoder;\n\t\tpassEncoder.setPipeline(this.pipeline);\n\t\tconst { indirectSlotIndex, indirectBuffer, indirectFrameStamp } = this.compute;\n\t\tif (indirectSlotIndex >= 0) {\n\t\t\tlet gpuBuffer;\n\t\t\tif (indirectBuffer) {\n\t\t\t\tgpuBuffer = indirectBuffer.impl.buffer;\n\t\t\t} else {\n\t\t\t\tgpuBuffer = device.indirectDispatchBuffer.impl.buffer;\n\t\t\t}\n\t\t\tconst offset3 = indirectSlotIndex * _indirectDispatchEntryByteSize;\n\t\t\tpassEncoder.dispatchWorkgroupsIndirect(gpuBuffer, offset3);\n\t\t} else {\n\t\t\tpassEncoder.dispatchWorkgroups(x3, y2, z2);\n\t\t}\n\t}\n};\n\nvar WebgpuDrawCommands = class {\n\tdevice;\n\tgpuIndirect = null;\n\tgpuIndirectSigned = null;\n\tstorage = null;\n\tconstructor(device) {\n\t\tthis.device = device;\n\t}\n\tallocate(maxCount) {\n\t\tif (this.gpuIndirect && this.gpuIndirect.length === 5 * maxCount) {\n\t\t\treturn;\n\t\t}\n\t\tthis.storage?.destroy();\n\t\tthis.gpuIndirect = new Uint32Array(5 * maxCount);\n\t\tthis.gpuIndirectSigned = new Int32Array(this.gpuIndirect.buffer);\n\t\tthis.storage = new StorageBuffer(this.device, this.gpuIndirect.byteLength, BUFFERUSAGE_INDIRECT | BUFFERUSAGE_COPY_DST);\n\t}\n\tadd(i2, indexOrVertexCount, instanceCount, firstIndexOrVertex, baseVertex = 0, firstInstance = 0) {\n\t\tconst o = i2 * 5;\n\t\tthis.gpuIndirect[o + 0] = indexOrVertexCount;\n\t\tthis.gpuIndirect[o + 1] = instanceCount;\n\t\tthis.gpuIndirect[o + 2] = firstIndexOrVertex;\n\t\tthis.gpuIndirectSigned[o + 3] = baseVertex;\n\t\tthis.gpuIndirect[o + 4] = firstInstance;\n\t}\n\tupdate(count) {\n\t\tif (this.storage && count > 0) {\n\t\t\tconst used = count * 5;\n\t\t\tthis.storage.write(0, this.gpuIndirect, 0, used);\n\t\t}\n\t\tlet totalPrimitives = 0;\n\t\treturn totalPrimitives;\n\t}\n\tdestroy() {\n\t\tthis.storage?.destroy();\n\t\tthis.storage = null;\n\t}\n};\n\nvar WebgpuUploadStream = class {\n\tavailableStagingBuffers = [];\n\tpendingStagingBuffers = [];\n\t_destroyed = false;\n\t_lastUploadSubmitVersion = -1;\n\tconstructor(uploadStream) {\n\t\tthis.uploadStream = uploadStream;\n\t\tthis.useSingleBuffer = uploadStream.useSingleBuffer;\n\t}\n\t_onDeviceLost() {\n\t}\n\tdestroy() {\n\t\tthis._destroyed = true;\n\t\tthis.availableStagingBuffers.forEach((buffer) => buffer.destroy());\n\t\tthis.pendingStagingBuffers.forEach((buffer) => buffer.destroy());\n\t}\n\tupdate(minByteSize) {\n\t\tconst device = this.uploadStream.device;\n\t\tconst pending = this.pendingStagingBuffers;\n\t\tfor (let i2 = 0; i2 < pending.length; i2++) {\n\t\t\tconst buffer = pending[i2];\n\t\t\tdevice.mapBufferAsync(buffer, GPUMapMode.WRITE).then((mapped) => {\n\t\t\t\tif (mapped && !this._destroyed) {\n\t\t\t\t\tthis.availableStagingBuffers.push(buffer);\n\t\t\t\t} else {\n\t\t\t\t\tbuffer.destroy();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tpending.length = 0;\n\t\tconst available = this.availableStagingBuffers;\n\t\tfor (let i2 = available.length - 1; i2 >= 0; i2--) {\n\t\t\tif (available[i2].size < minByteSize) {\n\t\t\t\tavailable[i2].destroy();\n\t\t\t\tavailable.splice(i2, 1);\n\t\t\t}\n\t\t}\n\t}\n\tupload(data2, target2, offset3, size) {\n\t\tif (this.useSingleBuffer) {\n\t\t\tthis.uploadDirect(data2, target2, offset3, size);\n\t\t} else {\n\t\t\tthis.uploadStaging(data2, target2, offset3, size);\n\t\t}\n\t}\n\tuploadDirect(data2, target2, offset3, size) {\n\t\tconst byteOffset = offset3 * data2.BYTES_PER_ELEMENT;\n\t\tconst byteSize = size * data2.BYTES_PER_ELEMENT;\n\t\ttarget2.write(byteOffset, data2, 0, size);\n\t}\n\tuploadStaging(data2, target2, offset3, size) {\n\t\tconst device = this.uploadStream.device;\n\t\tconst byteOffset = offset3 * data2.BYTES_PER_ELEMENT;\n\t\tconst byteSize = size * data2.BYTES_PER_ELEMENT;\n\t\tif (this.pendingStagingBuffers.length > 0) {\n\t\t}\n\t\tthis.update(byteSize);\n\t\tconst buffer = this.availableStagingBuffers.pop() ?? (() => {\n\t\t\tconst newBuffer = this.uploadStream.device.wgpu.createBuffer({\n\t\t\t\tsize: byteSize,\n\t\t\t\tusage: GPUBufferUsage.MAP_WRITE | GPUBufferUsage.COPY_SRC,\n\t\t\t\tmappedAtCreation: true\n\t\t\t});\n\t\t\treturn newBuffer;\n\t\t})();\n\t\tconst mappedRange = buffer.getMappedRange();\n\t\tnew Uint8Array(mappedRange).set(new Uint8Array(data2.buffer, data2.byteOffset, byteSize));\n\t\tbuffer.unmap();\n\t\tdevice.getCommandEncoder().copyBufferToBuffer(\n\t\t\tbuffer,\n\t\t\t0,\n\t\t\ttarget2.impl.buffer,\n\t\t\tbyteOffset,\n\t\t\tbyteSize\n\t\t);\n\t\tthis.pendingStagingBuffers.push(buffer);\n\t\tthis._lastUploadSubmitVersion = device.submitVersion;\n\t}\n};\n\nvar WebgpuXrBridge = class {\n\t_binding = null;\n\t_layer = null;\n\t_cachedFramebufferSize = new Vec2();\n\tconstructor(xrBridge) {\n\t\tthis.xrBridge = xrBridge;\n\t}\n\tdestroy(device) {\n\t\tthis._binding = null;\n\t\tthis._layer = null;\n\t\tthis._cachedFramebufferSize.set(0, 0);\n\t\tdevice._clearXrState();\n\t}\n\tbeginFrame(frame, referenceSpace) {\n\t\tconst device = this.xrBridge.device;\n\t\tdevice._clearXrState();\n\t\tif (!this._binding || !this._layer || !referenceSpace) {\n\t\t\treturn;\n\t\t}\n\t\tconst pose = frame.getViewerPose(referenceSpace);\n\t\tif (!pose || !pose.views?.length) {\n\t\t\treturn;\n\t\t}\n\t\tconst subImages = device.xrSubImages;\n\t\tfor (let i2 = 0; i2 < pose.views.length; i2++) {\n\t\t\tlet sub;\n\t\t\ttry {\n\t\t\t\tsub = this._binding.getViewSubImage(this._layer, pose.views[i2]);\n\t\t\t} catch (e) {\n\t\t\t\tthis.xrBridge._onBindingError?.(e);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst colorTexture = sub?.colorTexture;\n\t\t\tif (!colorTexture) continue;\n\t\t\tlet viewDescriptor = null;\n\t\t\tif (typeof sub.getViewDescriptor === \"function\") {\n\t\t\t\ttry {\n\t\t\t\t\tconst desc = sub.getViewDescriptor();\n\t\t\t\t\tif (desc) {\n\t\t\t\t\t\tviewDescriptor = { ...desc };\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {\n\t\t\t\t}\n\t\t\t}\n\t\t\tsubImages.push({\n\t\t\t\tcolorTexture,\n\t\t\t\tviewDescriptor,\n\t\t\t\tviewport: sub.viewport,\n\t\t\t\tviewFormat: viewDescriptor?.format ?? colorTexture.format\n\t\t\t});\n\t\t}\n\t\tconst first = subImages[0];\n\t\tif (first) {\n\t\t\tdevice.xrColorTexture = first.colorTexture;\n\t\t\tdevice.xrColorTextureViewFormat = first.viewFormat;\n\t\t\tdevice.setXrBackBufferFormat(first.viewFormat);\n\t\t\tthis._cachedFramebufferSize.set(first.colorTexture.width, first.colorTexture.height);\n\t\t}\n\t}\n\tendFrame() {\n\t\tconst device = this.xrBridge.device;\n\t\tdevice?._clearXrState();\n\t}\n\tget presentationLayer() {\n\t\treturn this._layer;\n\t}\n\tget graphicsBinding() {\n\t\treturn this._binding;\n\t}\n\tgetFramebufferSize(_frame, out) {\n\t\tconst layer = this._layer;\n\t\tif (layer) {\n\t\t\tconst lw = layer.textureWidth ?? layer.width;\n\t\t\tconst lh = layer.textureHeight ?? layer.height;\n\t\t\tif (lw > 0 && lh > 0) {\n\t\t\t\tout.set(lw, lh);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tif (this._cachedFramebufferSize.x > 0 && this._cachedFramebufferSize.y > 0) {\n\t\t\tout.copy(this._cachedFramebufferSize);\n\t\t\treturn;\n\t\t}\n\t\tout.set(0, 0);\n\t}\n\tgetViewport(_frame, xrView) {\n\t\tif (this._binding && this._layer) {\n\t\t\ttry {\n\t\t\t\tconst sub = this._binding.getViewSubImage(this._layer, xrView);\n\t\t\t\tif (sub?.viewport) {\n\t\t\t\t\treturn sub.viewport;\n\t\t\t\t}\n\t\t\t} catch {\n\t\t\t}\n\t\t}\n\t\treturn { x: 0, y: 0, width: 0, height: 0 };\n\t}\n\tattachPresentation(session, options2) {\n\t\tconst XRGPUBindingCtor = globalThis.XRGPUBinding;\n\t\tif (typeof XRGPUBindingCtor === \"undefined\") {\n\t\t\tthis.xrBridge._onBindingError?.(new Error(\"XRGPUBinding is not available in this browser.\"));\n\t\t\treturn;\n\t\t}\n\t\tconst device = this.xrBridge.device;\n\t\tconst wgpu = device.wgpu;\n\t\ttry {\n\t\t\tthis._binding = new XRGPUBindingCtor(session, wgpu);\n\t\t} catch (ex) {\n\t\t\tthis.xrBridge._onBindingError?.(ex);\n\t\t\treturn;\n\t\t}\n\t\tconst colorFormat = this._binding.getPreferredColorFormat();\n\t\tconst layerOpts = {\n\t\t\tcolorFormat,\n\t\t\tscaleFactor: options2.framebufferScaleFactor\n\t\t};\n\t\ttry {\n\t\t\tthis._layer = this._binding.createProjectionLayer({\n\t\t\t\t...layerOpts,\n\t\t\t\ttextureType: \"texture-array\"\n\t\t\t});\n\t\t} catch {\n\t\t\tthis._layer = this._binding.createProjectionLayer({\n\t\t\t\t...layerOpts,\n\t\t\t\ttextureType: \"texture\"\n\t\t\t});\n\t\t}\n\t\tsession.updateRenderState({\n\t\t\tlayers: [this._layer],\n\t\t\tdepthNear: options2.depthNear,\n\t\t\tdepthFar: options2.depthFar\n\t\t});\n\t}\n\tsyncCameraColorTexture(xrCamera, texture) {\n\t\tif (!this._binding?.getCameraImage) {\n\t\t\treturn;\n\t\t}\n\t\tconst src = this._binding.getCameraImage(xrCamera);\n\t\tif (!src) {\n\t\t\treturn;\n\t\t}\n\t\tconst dst = texture.impl?.gpuTexture;\n\t\tif (!dst) {\n\t\t\treturn;\n\t\t}\n\t\tconst device = this.xrBridge.device;\n\t\tconst encoder = device.getCommandEncoder();\n\t\tconst width = xrCamera.width;\n\t\tconst height = xrCamera.height;\n\t\tencoder.copyTextureToTexture(\n\t\t\t{ texture: src },\n\t\t\t{ texture: dst },\n\t\t\t[width, height, 1]\n\t\t);\n\t}\n\tsyncCameraDepthTexture(depthInfo, _texture, _depthPixelFormat) {\n\t\tif (depthInfo?.texture) {\n\t\t}\n\t}\n\treleasePresentation() {\n\t\tthis._binding = null;\n\t}\n\tonGraphicsDeviceLost() {\n\t\tconst bridge = this.xrBridge;\n\t\tconst session = bridge._session;\n\t\tif (!session) {\n\t\t\treturn;\n\t\t}\n\t\tconst rs = session.renderState;\n\t\tconst device = bridge.device;\n\t\tthis._binding = null;\n\t\tthis._layer = null;\n\t\tthis._cachedFramebufferSize.set(0, 0);\n\t\tdevice._clearXrState();\n\t\tsession.updateRenderState({\n\t\t\tlayers: [],\n\t\t\tdepthNear: rs.depthNear,\n\t\t\tdepthFar: rs.depthFar\n\t\t});\n\t}\n\tonGraphicsDeviceRestored() {\n\t\tconst bridge = this.xrBridge;\n\t\tif (!bridge._session) {\n\t\t\treturn;\n\t\t}\n\t\tconst eventHandler = bridge.eventHandler;\n\t\tsetTimeout(() => {\n\t\t\tif (!bridge._session) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tconst rs = bridge._session.renderState;\n\t\t\t\tbridge.attachPresentation(bridge._session, {\n\t\t\t\t\tframebufferScaleFactor: bridge._framebufferScaleFactor,\n\t\t\t\t\tdepthNear: rs.depthNear,\n\t\t\t\t\tdepthFar: rs.depthFar,\n\t\t\t\t\tonBindingError: bridge._onBindingError\n\t\t\t\t});\n\t\t\t} catch (ex) {\n\t\t\t\teventHandler.fire(\"error\", ex);\n\t\t\t}\n\t\t}, 0);\n\t}\n};\n\nvar _uniqueLocations = /* @__PURE__ */ new Map();\nvar _indirectEntryByteSize = 5 * 4;\nvar _indirectDispatchEntryByteSize2 = 3 * 4;\nvar _gpuFormatToPixelFormat = {\n\t\"rgba8unorm\": PIXELFORMAT_RGBA8,\n\t\"rgba8unorm-srgb\": PIXELFORMAT_SRGBA8,\n\t\"bgra8unorm\": PIXELFORMAT_BGRA8,\n\t\"bgra8unorm-srgb\": PIXELFORMAT_SBGRA8,\n\t\"rgba16float\": PIXELFORMAT_RGBA16F\n};\nvar WebgpuGraphicsDevice = class extends GraphicsDevice {\n\t_deferredDestroys = [];\n\tgpuAdapter = null;\n\twgpu = null;\n\tcanvasConfig = null;\n\trenderPipeline = new WebgpuRenderPipeline(this);\n\tcomputePipeline = new WebgpuComputePipeline(this);\n\t_indirectDrawBuffer = null;\n\t_indirectDrawBufferCount = 0;\n\t_indirectDrawNextIndex = 0;\n\t_indirectDispatchBuffer = null;\n\t_indirectDispatchBufferCount = 0;\n\t_indirectDispatchNextIndex = 0;\n\tclearRenderer;\n\tmipmapRenderer;\n\tpipeline = null;\n\tbindGroupFormats = [];\n\temptyBindGroup;\n\tsubmitVersion = 0;\n\t_canvasBackBufferFormat;\n\txrColorTexture = null;\n\txrColorTextureViewFormat = null;\n\txrColorTextureViewDescriptor = null;\n\txrSubImages = [];\n\txrCurrentViewIndex = -1;\n\texternalBackbuffer = null;\n\tcommandEncoder = null;\n\tcommandBuffers = [];\n\tlimits;\n\tglslang = null;\n\ttwgsl = null;\n\tconstructor(canvas, options2 = {}) {\n\t\tsuper(canvas, options2);\n\t\toptions2 = this.initOptions;\n\t\toptions2.alpha = options2.alpha ?? true;\n\t\tthis.backBufferAntialias = options2.antialias ?? false;\n\t\tthis.isWebGPU = true;\n\t\tthis._deviceType = DEVICETYPE_WEBGPU;\n\t\tthis.featureLevel = options2.featureLevel;\n\t\tthis.scope.resolve(UNUSED_UNIFORM_NAME).setValue(0);\n\t}\n\tdestroy() {\n\t\tthis.clearRenderer?.destroy();\n\t\tthis.clearRenderer = null;\n\t\tthis.mipmapRenderer?.destroy();\n\t\tthis.mipmapRenderer = null;\n\t\tthis.resolver?.destroy();\n\t\tthis.resolver = null;\n\t\tthis.emptyBindGroup?.format.destroy();\n\t\tthis.emptyBindGroup?.destroy();\n\t\tthis.emptyBindGroup = null;\n\t\tthis.backBuffer?.destroy();\n\t\tthis.backBuffer = null;\n\t\tthis._clearXrState();\n\t\tthis.externalBackbuffer = null;\n\t\tsuper.destroy();\n\t\tthis.destroyDeferredResources();\n\t\tthis.commandEncoder = null;\n\t\tthis.commandBuffers.length = 0;\n\t\tthis.passEncoder = null;\n\t\tthis.pipeline = null;\n\t\tthis.insideRenderPass = false;\n\t\tthis.bindGroupFormats.length = 0;\n\t\tthis.renderPipeline.cache.clear();\n\t\tthis.computePipeline.cache.clear();\n\t\tthis.gpuContext?.unconfigure();\n\t\tthis.wgpu?.destroy();\n\t\tthis.wgpu = null;\n\t\tthis.gpuAdapter = null;\n\t\tthis.gpuContext = null;\n\t\tthis.canvasConfig = null;\n\t}\n\t_clearXrState() {\n\t\tthis.xrColorTexture = null;\n\t\tthis.xrColorTextureViewFormat = null;\n\t\tthis.xrColorTextureViewDescriptor = null;\n\t\tthis.xrSubImages.length = 0;\n\t\tthis.xrCurrentViewIndex = -1;\n\t\tif (this._canvasBackBufferFormat !== void 0) {\n\t\t\tthis.backBufferFormat = this._canvasBackBufferFormat;\n\t\t}\n\t}\n\tsetXrBackBufferFormat(viewFormat) {\n\t\tconst format = _gpuFormatToPixelFormat[viewFormat];\n\t\tif (format !== void 0) {\n\t\t\tthis.backBufferFormat = format;\n\t\t}\n\t}\n\tinitDeviceCaps() {\n\t\tconst limits = this.wgpu?.limits;\n\t\tthis.limits = limits;\n\t\tthis.precision = \"highp\";\n\t\tthis.maxPrecision = \"highp\";\n\t\tthis.maxSamples = 4;\n\t\tthis.maxTextures = limits.maxSampledTexturesPerShaderStage;\n\t\tthis.maxTextureSize = limits.maxTextureDimension2D;\n\t\tthis.maxCubeMapSize = limits.maxTextureDimension2D;\n\t\tthis.maxVolumeSize = limits.maxTextureDimension3D;\n\t\tthis.maxColorAttachments = limits.maxColorAttachments;\n\t\tthis.maxPixelRatio = 1;\n\t\tthis.maxAnisotropy = 16;\n\t\tthis.fragmentUniformsCount = limits.maxUniformBufferBindingSize / 16;\n\t\tthis.vertexUniformsCount = limits.maxUniformBufferBindingSize / 16;\n\t\tthis.supportsUniformBuffers = true;\n\t\tthis.supportsAreaLights = true;\n\t\tthis.supportsGpuParticles = true;\n\t\tthis.supportsCompute = true;\n\t\tthis.textureFloatRenderable = true;\n\t\tthis.textureHalfFloatRenderable = true;\n\t\tthis.supportsImageBitmap = true;\n\t\tthis.supportsIndependentBlending = true;\n\t\tthis.samples = this.backBufferAntialias ? 4 : 1;\n\t\tconst wgslFeatures = window.navigator.gpu.wgslLanguageFeatures;\n\t\tthis.supportsStorageTextureRead = wgslFeatures?.has(\"readonly_and_readwrite_storage_textures\");\n\t\tthis.supportsSubgroupUniformity = wgslFeatures?.has(\"subgroup_uniformity\");\n\t\tthis.supportsSubgroupId = wgslFeatures?.has(\"subgroup_id\");\n\t\tthis.supportsLinearIndexing = wgslFeatures?.has(\"linear_indexing\");\n\t\tthis.supportsUnrestrictedPointerParameters = wgslFeatures?.has(\"unrestricted_pointer_parameters\");\n\t\tthis.supportsPointerCompositeAccess = wgslFeatures?.has(\"pointer_composite_access\");\n\t\tthis.supportsPacked4x8IntegerDotProduct = wgslFeatures?.has(\"packed_4x8_integer_dot_product\");\n\t\tthis.supportsTextureAndSamplerLet = wgslFeatures?.has(\"texture_and_sampler_let\");\n\t\tthis.initCapsDefines();\n\t}\n\tasync initWebGpu(glslangUrl, twgslUrl) {\n\t\tif (!window.navigator.gpu) {\n\t\t\twarnInsecureContext(\"WebGPU\");\n\t\t\tthrow new Error(\"Unable to retrieve GPU. Ensure you are using a browser that supports WebGPU rendering.\");\n\t\t}\n\t\tif (glslangUrl && twgslUrl) {\n\t\t\tconst baseUrl = window.document?.baseURI ?? window.location.href;\n\t\t\tconst buildUrl = (srcPath) => {\n\t\t\t\treturn new URL(srcPath, baseUrl).toString();\n\t\t\t};\n\t\t\tconst twgslScriptUrl = buildUrl(twgslUrl);\n\t\t\tconst twgslWasmUrl = buildUrl(twgslUrl.replace(\".js\", \".wasm\"));\n\t\t\tconst glslangScriptUrl = buildUrl(glslangUrl);\n\t\t\tconst results = await Promise.all([\n\t\t\t\timport(\n\t\t\t\t\t/* @vite-ignore */\n\t\t\t\t\t/* webpackIgnore: true */\n\t\t\t\t\t`${twgslScriptUrl}`\n\t\t\t\t).then(() => twgsl(twgslWasmUrl)),\n\t\t\t\timport(\n\t\t\t\t\t/* @vite-ignore */\n\t\t\t\t\t/* webpackIgnore: true */\n\t\t\t\t\t`${glslangScriptUrl}`\n\t\t\t\t).then((module2) => module2.default())\n\t\t\t]);\n\t\t\tthis.twgsl = results[0];\n\t\t\tthis.glslang = results[1];\n\t\t}\n\t\treturn this.createDevice();\n\t}\n\tasync createDevice() {\n\t\tif (this._destroyed) {\n\t\t\treturn null;\n\t\t}\n\t\tconst adapterOptions = {\n\t\t\tpowerPreference: this.initOptions.powerPreference !== \"default\" ? this.initOptions.powerPreference : void 0,\n\t\t\t// Required for WebXR sessions using WebGPU\n\t\t\txrCompatible: !!this.initOptions.xrCompatible\n\t\t};\n\t\tconst gpuAdapter = await window.navigator.gpu.requestAdapter(adapterOptions);\n\t\tif (this._destroyed) {\n\t\t\treturn null;\n\t\t}\n\t\tthis.gpuAdapter = gpuAdapter;\n\t\tif (this.gpuAdapter?.info?.vendor === \"img-tec\") {\n\t\t\treturn null;\n\t\t}\n\t\tconst featureLevel = this.initOptions.featureLevel;\n\t\tconst bare = featureLevel === \"bare\";\n\t\tconst requiredFeatures = [];\n\t\tconst requireFeature = bare ? () => false : (feature) => {\n\t\t\tconst supported = this.gpuAdapter.features.has(feature);\n\t\t\tif (supported) {\n\t\t\t\trequiredFeatures.push(feature);\n\t\t\t}\n\t\t\treturn supported;\n\t\t};\n\t\tthis.textureFloatFilterable = requireFeature(\"float32-filterable\");\n\t\tthis.textureFloatBlendable = requireFeature(\"float32-blendable\");\n\t\tthis.extCompressedTextureS3TC = requireFeature(\"texture-compression-bc\");\n\t\tthis.extCompressedTextureS3TCSliced3D = requireFeature(\"texture-compression-bc-sliced-3d\");\n\t\tthis.extCompressedTextureETC = requireFeature(\"texture-compression-etc2\");\n\t\tthis.extCompressedTextureASTC = requireFeature(\"texture-compression-astc\");\n\t\tthis.extCompressedTextureASTCSliced3D = requireFeature(\"texture-compression-astc-sliced-3d\");\n\t\tthis.supportsTimestampQuery = requireFeature(\"timestamp-query\");\n\t\tthis.supportsDepthClip = requireFeature(\"depth-clip-control\");\n\t\tthis.supportsDepth32Stencil = requireFeature(\"depth32float-stencil8\");\n\t\tthis.supportsIndirectFirstInstance = requireFeature(\"indirect-first-instance\");\n\t\tthis.supportsShaderF16 = requireFeature(\"shader-f16\");\n\t\tthis.supportsStorageRGBA8 = requireFeature(\"bgra8unorm-storage\");\n\t\tthis.textureRG11B10Renderable = requireFeature(\"rg11b10ufloat-renderable\");\n\t\tthis.supportsClipDistances = requireFeature(\"clip-distances\");\n\t\tthis.supportsDualSourceBlending = requireFeature(\"dual-source-blending\");\n\t\tthis.supportsTextureFormatTier1 = requireFeature(\"texture-format-tier1\");\n\t\tthis.supportsTextureFormatTier2 = requireFeature(\"texture-format-tier2\");\n\t\tthis.supportsTextureFormatTier1 || (this.supportsTextureFormatTier1 = this.supportsTextureFormatTier2);\n\t\tthis.supportsPrimitiveIndex = requireFeature(\"primitive-index\");\n\t\tthis.supportsSubgroups = requireFeature(\"subgroups\");\n\t\tthis.supportsSubgroupSizeControl = requireFeature(\"subgroup-size-control\");\n\t\tthis.maxSubgroupSize = this.gpuAdapter?.info?.subgroupMaxSize ?? 0;\n\t\tthis.minSubgroupSize = this.gpuAdapter?.info?.subgroupMinSize ?? 0;\n\t\tconst wgslFeatureNames = window.navigator.gpu.wgslLanguageFeatures ? Array.from(window.navigator.gpu.wgslLanguageFeatures) : [];\n\t\tconst requiredLimits = {};\n\t\tif (!bare) {\n\t\t\tconst adapterLimits = this.gpuAdapter?.limits;\n\t\t\tif (adapterLimits) {\n\t\t\t\tfor (const limitName in adapterLimits) {\n\t\t\t\t\tif (limitName === \"minSubgroupSize\" || limitName === \"maxSubgroupSize\") {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\trequiredLimits[limitName] = adapterLimits[limitName];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tconst deviceDescr = {\n\t\t\trequiredFeatures,\n\t\t\trequiredLimits,\n\t\t\tdefaultQueue: {\n\t\t\t\tlabel: \"Default Queue\"\n\t\t\t}\n\t\t};\n\t\tconst wgpu = await gpuAdapter.requestDevice(deviceDescr);\n\t\tif (this._destroyed) {\n\t\t\twgpu.destroy();\n\t\t\treturn null;\n\t\t}\n\t\tthis.wgpu = wgpu;\n\t\tthis.supportsHtmlTextures = typeof this.wgpu.queue?.copyElementImageToTexture === \"function\";\n\t\tthis.supportsTransientAttachments = typeof GPUTextureUsage !== \"undefined\" && \"TRANSIENT_ATTACHMENT\" in GPUTextureUsage;\n\t\tthis.wgpu.lost?.then(this.handleDeviceLost.bind(this));\n\t\tthis.wgpu.addEventListener?.(\"uncapturederror\", (ev) => {\n\t\t\tconst e = ev.error;\n\t\t});\n\t\tthis.initDeviceCaps();\n\t\tthis.gpuContext = this.canvas.getContext(\"webgpu\");\n\t\tlet canvasToneMapping = \"standard\";\n\t\tlet preferredCanvasFormat = window.navigator.gpu.getPreferredCanvasFormat();\n\t\tconst displayFormat = this.initOptions.displayFormat;\n\t\tthis.backBufferFormat = preferredCanvasFormat === \"rgba8unorm\" ? displayFormat === DISPLAYFORMAT_LDR_SRGB ? PIXELFORMAT_SRGBA8 : PIXELFORMAT_RGBA8 : (\n\t\t\t// (S)RGBA\n\t\t\tdisplayFormat === DISPLAYFORMAT_LDR_SRGB ? PIXELFORMAT_SBGRA8 : PIXELFORMAT_BGRA8\n\t\t);\n\t\tthis.backBufferViewFormat = displayFormat === DISPLAYFORMAT_LDR_SRGB ? `${preferredCanvasFormat}-srgb` : preferredCanvasFormat;\n\t\tif (displayFormat === DISPLAYFORMAT_HDR && this.textureFloatFilterable) {\n\t\t\tconst hdrMediaQuery = window.matchMedia(\"(dynamic-range: high)\");\n\t\t\tif (hdrMediaQuery?.matches) {\n\t\t\t\tthis.backBufferFormat = PIXELFORMAT_RGBA16F;\n\t\t\t\tthis.backBufferViewFormat = \"rgba16float\";\n\t\t\t\tpreferredCanvasFormat = \"rgba16float\";\n\t\t\t\tthis.isHdr = true;\n\t\t\t\tcanvasToneMapping = \"extended\";\n\t\t\t}\n\t\t}\n\t\tthis.canvasConfig = {\n\t\t\tdevice: this.wgpu,\n\t\t\tcolorSpace: \"srgb\",\n\t\t\talphaMode: this.initOptions.alpha ? \"premultiplied\" : \"opaque\",\n\t\t\t// use preferred format for optimal performance on mobile\n\t\t\tformat: preferredCanvasFormat,\n\t\t\ttoneMapping: { mode: canvasToneMapping },\n\t\t\t// RENDER_ATTACHMENT is required, COPY_SRC allows scene grab to copy out from it\n\t\t\tusage: GPUTextureUsage.RENDER_ATTACHMENT | GPUTextureUsage.COPY_SRC | GPUTextureUsage.COPY_DST,\n\t\t\t// formats that views created from textures returned by getCurrentTexture may use\n\t\t\t// (this allows us to view the preferred format as srgb)\n\t\t\tviewFormats: displayFormat === DISPLAYFORMAT_LDR_SRGB ? [this.backBufferViewFormat] : []\n\t\t};\n\t\tthis.gpuContext?.configure(this.canvasConfig);\n\t\tthis._canvasBackBufferFormat = this.backBufferFormat;\n\t\tthis.createBackbuffer();\n\t\tthis.clearRenderer = new WebgpuClearRenderer(this);\n\t\tthis.mipmapRenderer = new WebgpuMipmapRenderer(this);\n\t\tthis.resolver = new WebgpuResolver(this);\n\t\tthis.postInit();\n\t\treturn this;\n\t}\n\tasync handleDeviceLost(info) {\n\t\tif (info.reason !== \"destroyed\" && !this._destroyed) {\n\t\t\tsuper.loseContext();\n\t\t\tthis.fire(\"devicelost\");\n\t\t\tawait this.createDevice();\n\t\t\tif (this._destroyed) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsuper.restoreContext();\n\t\t\tthis.fire(\"devicerestored\");\n\t\t}\n\t}\n\tpostInit() {\n\t\tsuper.postInit();\n\t\tthis.initializeRenderState();\n\t\tthis.setupPassEncoderDefaults();\n\t\tthis.gpuProfiler = new WebgpuGpuProfiler(this);\n\t\tthis.dynamicBuffers = new WebgpuDynamicBuffers(this, 100 * 1024, this.limits.minUniformBufferOffsetAlignment);\n\t\tthis.emptyBindGroup = new BindGroup(this, new BindGroupFormat(this, []));\n\t\tthis.emptyBindGroup.update();\n\t}\n\tcreateBackbuffer() {\n\t\tthis.supportsStencil = this.initOptions.stencil;\n\t\tthis.backBuffer = new RenderTarget({\n\t\t\tname: \"WebgpuFramebuffer\",\n\t\t\tgraphicsDevice: this,\n\t\t\tdepth: this.initOptions.depth,\n\t\t\tstencil: this.supportsStencil,\n\t\t\tsamples: this.samples,\n\t\t\ttransientColor: this.initOptions.transientColor,\n\t\t\ttransientDepth: this.initOptions.transientDepth\n\t\t});\n\t\tthis.backBuffer.impl.isBackbuffer = true;\n\t}\n\tframeStart() {\n\t\tsuper.frameStart();\n\t\tthis.gpuProfiler.frameStart();\n\t\tthis.submit();\n\t\tconst outColorBuffer = this.xrColorTexture ?? this.gpuContext?.getCurrentTexture?.() ?? this.externalBackbuffer?.impl.gpuTexture;\n\t\tif (this.backBufferSize.x !== outColorBuffer.width || this.backBufferSize.y !== outColorBuffer.height) {\n\t\t\tthis.backBufferSize.set(outColorBuffer.width, outColorBuffer.height);\n\t\t\tthis.backBuffer.destroy();\n\t\t\tthis.backBuffer = null;\n\t\t\tthis.createBackbuffer();\n\t\t}\n\t\tconst rt = this.backBuffer;\n\t\tconst wrt = rt.impl;\n\t\tconst attachmentViewFormat = outColorBuffer === this.xrColorTexture && this.xrColorTextureViewFormat ? this.xrColorTextureViewFormat : this.backBufferViewFormat;\n\t\twrt.setColorAttachment(0, void 0, attachmentViewFormat);\n\t\trt._width = outColorBuffer.width;\n\t\trt._height = outColorBuffer.height;\n\t\tthis.initRenderTarget(rt);\n\t\twrt.assignColorTexture(outColorBuffer, attachmentViewFormat);\n\t}\n\tframeEnd() {\n\t\tsuper.frameEnd();\n\t\tthis.gpuProfiler.frameEnd();\n\t\tthis.submit();\n\t\tif (!this.contextLost) {\n\t\t\tthis.gpuProfiler.request();\n\t\t}\n\t\tthis._indirectDrawNextIndex = 0;\n\t\tthis._indirectDispatchNextIndex = 0;\n\t}\n\tcreateBufferImpl(usageFlags) {\n\t\treturn new WebgpuBuffer(usageFlags);\n\t}\n\tcreateUniformBufferImpl(uniformBuffer) {\n\t\treturn new WebgpuUniformBuffer(uniformBuffer);\n\t}\n\tcreateVertexBufferImpl(vertexBuffer, format, options2) {\n\t\treturn new WebgpuVertexBuffer(vertexBuffer, format, options2);\n\t}\n\tcreateIndexBufferImpl(indexBuffer, options2) {\n\t\treturn new WebgpuIndexBuffer(indexBuffer, options2);\n\t}\n\tcreateShaderImpl(shader) {\n\t\treturn new WebgpuShader(shader);\n\t}\n\tcreateDrawCommandImpl(drawCommands) {\n\t\treturn new WebgpuDrawCommands(this);\n\t}\n\tcreateTextureImpl(texture) {\n\t\tthis.textures.add(texture);\n\t\treturn new WebgpuTexture(texture);\n\t}\n\tcreateXrBridgeImpl(xrBridge) {\n\t\treturn new WebgpuXrBridge(xrBridge);\n\t}\n\tcreateRenderTargetImpl(renderTarget) {\n\t\treturn new WebgpuRenderTarget(renderTarget);\n\t}\n\tcreateUploadStreamImpl(uploadStream) {\n\t\treturn new WebgpuUploadStream(uploadStream);\n\t}\n\tcreateBindGroupFormatImpl(bindGroupFormat) {\n\t\treturn new WebgpuBindGroupFormat(bindGroupFormat);\n\t}\n\tcreateBindGroupImpl(bindGroup) {\n\t\treturn new WebgpuBindGroup();\n\t}\n\tcreateComputeImpl(compute) {\n\t\treturn new WebgpuCompute(compute);\n\t}\n\tget indirectDrawBuffer() {\n\t\tthis.allocateIndirectDrawBuffer();\n\t\treturn this._indirectDrawBuffer;\n\t}\n\tallocateIndirectDrawBuffer() {\n\t\tif (this._indirectDrawNextIndex === 0 && this._indirectDrawBufferCount < this.maxIndirectDrawCount) {\n\t\t\tthis._indirectDrawBuffer?.destroy();\n\t\t\tthis._indirectDrawBuffer = null;\n\t\t}\n\t\tif (this._indirectDrawBuffer === null) {\n\t\t\tthis._indirectDrawBuffer = new StorageBuffer(this, this.maxIndirectDrawCount * _indirectEntryByteSize, BUFFERUSAGE_INDIRECT | BUFFERUSAGE_COPY_DST);\n\t\t\tthis._indirectDrawBufferCount = this.maxIndirectDrawCount;\n\t\t}\n\t}\n\tgetIndirectDrawSlot(count = 1) {\n\t\tthis.allocateIndirectDrawBuffer();\n\t\tconst slot = this._indirectDrawNextIndex;\n\t\tconst nextIndex = this._indirectDrawNextIndex + count;\n\t\tthis._indirectDrawNextIndex = nextIndex;\n\t\treturn slot;\n\t}\n\tget indirectDispatchBuffer() {\n\t\tthis.allocateIndirectDispatchBuffer();\n\t\treturn this._indirectDispatchBuffer;\n\t}\n\tallocateIndirectDispatchBuffer() {\n\t\tif (this._indirectDispatchNextIndex === 0 && this._indirectDispatchBufferCount < this.maxIndirectDispatchCount) {\n\t\t\tthis._indirectDispatchBuffer?.destroy();\n\t\t\tthis._indirectDispatchBuffer = null;\n\t\t}\n\t\tif (this._indirectDispatchBuffer === null) {\n\t\t\tthis._indirectDispatchBuffer = new StorageBuffer(this, this.maxIndirectDispatchCount * _indirectDispatchEntryByteSize2, BUFFERUSAGE_INDIRECT | BUFFERUSAGE_COPY_DST);\n\t\t\tthis._indirectDispatchBufferCount = this.maxIndirectDispatchCount;\n\t\t}\n\t}\n\tgetIndirectDispatchSlot(count = 1) {\n\t\tthis.allocateIndirectDispatchBuffer();\n\t\tconst slot = this._indirectDispatchNextIndex;\n\t\tconst nextIndex = this._indirectDispatchNextIndex + count;\n\t\tthis._indirectDispatchNextIndex = nextIndex;\n\t\treturn slot;\n\t}\n\tsetBindGroup(index, bindGroup, offsets) {\n\t\tif (this.passEncoder) {\n\t\t\tthis.passEncoder.setBindGroup(index, bindGroup.impl.bindGroup, offsets ?? bindGroup.uniformBufferOffsets);\n\t\t\tthis.bindGroupFormats[index] = bindGroup.format.impl;\n\t\t}\n\t}\n\tsubmitVertexBuffer(vertexBuffer, slot) {\n\t\tconst format = vertexBuffer.format;\n\t\tconst { interleaved, elements } = format;\n\t\tconst elementCount = elements.length;\n\t\tconst vbBuffer = vertexBuffer.impl.buffer;\n\t\tif (interleaved) {\n\t\t\tthis.passEncoder.setVertexBuffer(slot, vbBuffer);\n\t\t\treturn 1;\n\t\t}\n\t\tfor (let i2 = 0; i2 < elementCount; i2++) {\n\t\t\tthis.passEncoder.setVertexBuffer(slot + i2, vbBuffer, elements[i2].offset);\n\t\t}\n\t\treturn elementCount;\n\t}\n\tvalidateVBLocations(vb0, vb1) {\n\t\tconst validateVB = (vb) => {\n\t\t\tconst { elements } = vb.format;\n\t\t\tfor (let i2 = 0; i2 < elements.length; i2++) {\n\t\t\t\tconst name = elements[i2].name;\n\t\t\t\tconst location = semanticToLocation[name];\n\t\t\t\tif (_uniqueLocations.has(location)) {\n\t\t\t\t}\n\t\t\t\t_uniqueLocations.set(location, name);\n\t\t\t}\n\t\t};\n\t\tvalidateVB(vb0);\n\t\tvalidateVB(vb1);\n\t\t_uniqueLocations.clear();\n\t}\n\tdraw(primitive2, indexBuffer, numInstances = 1, drawCommands, first = true, last = true) {\n\t\tif (this.shader.ready && !this.shader.failed) {\n\t\t\tconst passEncoder = this.passEncoder;\n\t\t\tlet pipeline = this.pipeline;\n\t\t\tconst vb0 = this.vertexBuffers[0];\n\t\t\tconst vb1 = this.vertexBuffers[1];\n\t\t\tif (first) {\n\t\t\t\tif (vb0) {\n\t\t\t\t\tconst vbSlot = this.submitVertexBuffer(vb0, 0);\n\t\t\t\t\tif (vb1) {\n\t\t\t\t\t\tthis.submitVertexBuffer(vb1, vbSlot);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tpipeline = this.renderPipeline.get(\n\t\t\t\t\tprimitive2,\n\t\t\t\t\tvb0?.format,\n\t\t\t\t\tvb1?.format,\n\t\t\t\t\tindexBuffer?.format,\n\t\t\t\t\tthis.shader,\n\t\t\t\t\tthis.renderTarget,\n\t\t\t\t\tthis.bindGroupFormats,\n\t\t\t\t\tthis.blendState,\n\t\t\t\t\tthis.depthState,\n\t\t\t\t\tthis.cullMode,\n\t\t\t\t\tthis.stencilEnabled,\n\t\t\t\t\tthis.stencilFront,\n\t\t\t\t\tthis.stencilBack,\n\t\t\t\t\tthis.frontFace,\n\t\t\t\t\tthis.alphaToCoverage\n\t\t\t\t);\n\t\t\t\tif (this.pipeline !== pipeline) {\n\t\t\t\t\tthis.pipeline = pipeline;\n\t\t\t\t\tpassEncoder.setPipeline(pipeline);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (indexBuffer) {\n\t\t\t\tpassEncoder.setIndexBuffer(indexBuffer.impl.buffer, indexBuffer.impl.format);\n\t\t\t}\n\t\t\tif (drawCommands) {\n\t\t\t\tconst storage = drawCommands.impl?.storage ?? this.indirectDrawBuffer;\n\t\t\t\tconst indirectBuffer = storage.impl.buffer;\n\t\t\t\tconst drawsCount = drawCommands.count;\n\t\t\t\tfor (let d = 0; d < drawsCount; d++) {\n\t\t\t\t\tconst indirectOffset = (drawCommands.slotIndex + d) * _indirectEntryByteSize;\n\t\t\t\t\tif (indexBuffer) {\n\t\t\t\t\t\tpassEncoder.drawIndexedIndirect(indirectBuffer, indirectOffset);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpassEncoder.drawIndirect(indirectBuffer, indirectOffset);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (indexBuffer) {\n\t\t\t\t\tpassEncoder.drawIndexed(primitive2.count, numInstances, primitive2.base, primitive2.baseVertex ?? 0, 0);\n\t\t\t\t} else {\n\t\t\t\t\tpassEncoder.draw(primitive2.count, numInstances, primitive2.base, 0);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._drawCallsPerFrame++;\n\t\t}\n\t\tif (last) {\n\t\t\tthis.clearVertexBuffer();\n\t\t\tthis.pipeline = null;\n\t\t}\n\t}\n\tsetShader(shader, asyncCompile = false) {\n\t\tif (shader !== this.shader) {\n\t\t\tthis.shader = shader;\n\t\t}\n\t}\n\tsetBlendState(blendState) {\n\t\tthis.blendState.copy(blendState);\n\t}\n\tsetDepthState(depthState) {\n\t\tthis.depthState.copy(depthState);\n\t}\n\tsetStencilState(stencilFront, stencilBack) {\n\t\tif (stencilFront || stencilBack) {\n\t\t\tthis.stencilEnabled = true;\n\t\t\tthis.stencilFront.copy(stencilFront ?? StencilParameters.DEFAULT);\n\t\t\tthis.stencilBack.copy(stencilBack ?? StencilParameters.DEFAULT);\n\t\t\tconst ref = this.stencilFront.ref;\n\t\t\tif (this.stencilRef !== ref) {\n\t\t\t\tthis.stencilRef = ref;\n\t\t\t\tthis.passEncoder.setStencilReference(ref);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.stencilEnabled = false;\n\t\t}\n\t}\n\tsetBlendColor(r, g, b, a) {\n\t\tconst c2 = this.blendColor;\n\t\tif (r !== c2.r || g !== c2.g || b !== c2.b || a !== c2.a) {\n\t\t\tc2.set(r, g, b, a);\n\t\t\tthis.passEncoder.setBlendConstant(c2);\n\t\t}\n\t}\n\tsetCullMode(cullMode) {\n\t\tthis.cullMode = cullMode;\n\t}\n\tsetFrontFace(frontFace) {\n\t\tthis.frontFace = frontFace;\n\t}\n\tsetAlphaToCoverage(state) {\n\t\tthis.alphaToCoverage = state;\n\t}\n\tinitializeContextCaches() {\n\t\tsuper.initializeContextCaches();\n\t}\n\tsetupPassEncoderDefaults() {\n\t\tthis.pipeline = null;\n\t\tthis.stencilRef = 0;\n\t\tthis.blendColor.set(0, 0, 0, 0);\n\t}\n\t_uploadDirtyTextures() {\n\t\tthis.texturesToUpload.forEach((texture) => {\n\t\t\tif (texture._needsUpload || texture._needsMipmapsUpload) {\n\t\t\t\ttexture.upload();\n\t\t\t}\n\t\t});\n\t\tthis.texturesToUpload.clear();\n\t}\n\tsetupTimeStampWrites(passDesc, name) {\n\t\tif (this.gpuProfiler._enabled) {\n\t\t\tif (this.gpuProfiler.timestampQueriesSet) {\n\t\t\t\tconst slot = this.gpuProfiler.getSlot(name);\n\t\t\t\tif (slot === -1) {\n\t\t\t\t} else {\n\t\t\t\t\tpassDesc = passDesc ?? {};\n\t\t\t\t\tpassDesc.timestampWrites = {\n\t\t\t\t\t\tquerySet: this.gpuProfiler.timestampQueriesSet.querySet,\n\t\t\t\t\t\tbeginningOfPassWriteIndex: slot * 2,\n\t\t\t\t\t\tendOfPassWriteIndex: slot * 2 + 1\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn passDesc;\n\t}\n\tstartRenderPass(renderPass) {\n\t\tthis._uploadDirtyTextures();\n\t\tconst rt = renderPass.renderTarget || this.backBuffer;\n\t\tthis.renderTarget = rt;\n\t\tconst wrt = rt.impl;\n\t\tif (rt !== this.backBuffer) {\n\t\t\tthis.initRenderTarget(rt);\n\t\t}\n\t\twrt.setupForRenderPass(renderPass, rt);\n\t\tconst renderPassDesc = wrt.renderPassDescriptor;\n\t\tthis.setupTimeStampWrites(renderPassDesc, renderPass.name);\n\t\tconst commandEncoder = this.getCommandEncoder();\n\t\tthis.passEncoder = commandEncoder.beginRenderPass(renderPassDesc);\n\t\tthis.passEncoder.label = `${renderPass.name}-PassEncoder RT:${rt.name}`;\n\t\tthis.setupPassEncoderDefaults();\n\t\tconst { width, height } = rt;\n\t\tthis.setViewport(0, 0, width, height);\n\t\tthis.setScissor(0, 0, width, height);\n\t\tthis.insideRenderPass = true;\n\t}\n\tendRenderPass(renderPass) {\n\t\tthis.passEncoder.end();\n\t\tthis.passEncoder = null;\n\t\tthis.insideRenderPass = false;\n\t\tthis.bindGroupFormats.length = 0;\n\t\tconst target2 = this.renderTarget;\n\t\tif (target2) {\n\t\t\tif (target2.depthBuffer && renderPass.depthStencilOps.resolveDepth && renderPass.samples > 1) {\n\t\t\t\tconst explicitMsaa = target2.depthBuffer.samples > 1;\n\t\t\t\tif (explicitMsaa || target2.autoResolve) {\n\t\t\t\t\tconst depthAttachment = target2.impl.depthAttachment;\n\t\t\t\t\tconst sourceTexture = explicitMsaa ? depthAttachment?.depthTexture : depthAttachment?.multisampledDepthBuffer;\n\t\t\t\t\tconst destTexture = explicitMsaa ? target2.depthResolveBuffer?.impl.gpuTexture : target2.depthBuffer.impl.gpuTexture;\n\t\t\t\t\tif (depthAttachment?.transient) {\n\t\t\t\t\t} else if (sourceTexture && destTexture) {\n\t\t\t\t\t\tthis.resolver.resolveDepth(this.commandEncoder, sourceTexture, destTexture, target2.depthResolveMode);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor (let i2 = 0; i2 < renderPass.colorArrayOps.length; i2++) {\n\t\t\tconst colorOps = renderPass.colorArrayOps[i2];\n\t\t\tif (colorOps.genMipmaps) {\n\t\t\t\tthis.mipmapRenderer.generate(renderPass.renderTarget._colorBuffers[i2].impl);\n\t\t\t}\n\t\t}\n\t}\n\tstartComputePass(name) {\n\t\tthis._uploadDirtyTextures();\n\t\tthis.pipeline = null;\n\t\tconst computePassDesc = this.setupTimeStampWrites(void 0, name);\n\t\tconst commandEncoder = this.getCommandEncoder();\n\t\tthis.passEncoder = commandEncoder.beginComputePass(computePassDesc);\n\t\tthis.insideRenderPass = true;\n\t}\n\tendComputePass() {\n\t\tthis.passEncoder.end();\n\t\tthis.passEncoder = null;\n\t\tthis.insideRenderPass = false;\n\t\tthis.bindGroupFormats.length = 0;\n\t}\n\tcomputeDispatch(computes, name = \"Unnamed\") {\n\t\tthis.startComputePass(name);\n\t\tfor (let i2 = 0; i2 < computes.length; i2++) {\n\t\t\tconst compute = computes[i2];\n\t\t\tcompute.applyParameters();\n\t\t\tcompute.impl.updateBindGroup();\n\t\t}\n\t\tfor (let i2 = 0; i2 < computes.length; i2++) {\n\t\t\tconst compute = computes[i2];\n\t\t\tcompute.impl.dispatch(compute.countX, compute.countY, compute.countZ);\n\t\t}\n\t\tthis.endComputePass();\n\t}\n\tgetCommandEncoder() {\n\t\tlet commandEncoder = this.commandEncoder;\n\t\tif (!commandEncoder) {\n\t\t\tcommandEncoder = this.wgpu.createCommandEncoder();\n\t\t\tthis.commandEncoder = commandEncoder;\n\t\t}\n\t\treturn commandEncoder;\n\t}\n\tendCommandEncoder() {\n\t\tconst { commandEncoder } = this;\n\t\tif (commandEncoder) {\n\t\t\tconst cb = commandEncoder.finish();\n\t\t\tthis.addCommandBuffer(cb);\n\t\t\tthis.commandEncoder = null;\n\t\t}\n\t}\n\taddCommandBuffer(commandBuffer, front = false) {\n\t\tif (front) {\n\t\t\tthis.commandBuffers.unshift(commandBuffer);\n\t\t} else {\n\t\t\tthis.commandBuffers.push(commandBuffer);\n\t\t}\n\t}\n\tsubmit() {\n\t\tthis.endCommandEncoder();\n\t\tif (this.commandBuffers.length > 0) {\n\t\t\tthis.dynamicBuffers.submit();\n\t\t\tthis.wgpu.queue.submit(this.commandBuffers);\n\t\t\tthis.commandBuffers.length = 0;\n\t\t\tthis.submitVersion++;\n\t\t\tthis.dynamicBuffers.onCommandBuffersSubmitted();\n\t\t}\n\t\tthis.destroyDeferredResources();\n\t}\n\tdestroyDeferredResources() {\n\t\tconst deferredDestroys = this._deferredDestroys;\n\t\tif (deferredDestroys.length > 0) {\n\t\t\tfor (let i2 = 0; i2 < deferredDestroys.length; i2++) {\n\t\t\t\tdeferredDestroys[i2].destroy();\n\t\t\t}\n\t\t\tdeferredDestroys.length = 0;\n\t\t}\n\t}\n\tdeferDestroy(gpuResource) {\n\t\tif (gpuResource) {\n\t\t\tif (this._destroyed) {\n\t\t\t\tgpuResource.destroy();\n\t\t\t} else {\n\t\t\t\tthis._deferredDestroys.push(gpuResource);\n\t\t\t}\n\t\t}\n\t}\n\tclear(options2) {\n\t\tif (options2.flags) {\n\t\t\tthis.clearRenderer.clear(this, this.renderTarget, options2, this.defaultClearOptions);\n\t\t}\n\t}\n\tsetViewport(x3, y2, w, h2) {\n\t\tif (this.passEncoder) {\n\t\t\tif (this.xrColorTexture) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (!this.renderTarget.flipY) {\n\t\t\t\ty2 = this.renderTarget.height - y2 - h2;\n\t\t\t}\n\t\t\tthis.vx = x3;\n\t\t\tthis.vy = y2;\n\t\t\tthis.vw = w;\n\t\t\tthis.vh = h2;\n\t\t\tthis.passEncoder.setViewport(x3, y2, w, h2, 0, 1);\n\t\t}\n\t}\n\tsetScissor(x3, y2, w, h2) {\n\t\tif (this.passEncoder) {\n\t\t\tif (this.xrColorTexture) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (!this.renderTarget.flipY) {\n\t\t\t\ty2 = this.renderTarget.height - y2 - h2;\n\t\t\t}\n\t\t\tthis.sx = x3;\n\t\t\tthis.sy = y2;\n\t\t\tthis.sw = w;\n\t\t\tthis.sh = h2;\n\t\t\tthis.passEncoder.setScissorRect(x3, y2, w, h2);\n\t\t}\n\t}\n\tclearStorageBuffer(storageBuffer, offset3 = 0, size = storageBuffer.byteSize) {\n\t\tconst commandEncoder = this.getCommandEncoder();\n\t\tcommandEncoder.clearBuffer(storageBuffer.buffer, offset3, size);\n\t}\n\tmapBufferAsync(buffer, mode) {\n\t\tif (this.contextLost) {\n\t\t\treturn Promise.resolve(false);\n\t\t}\n\t\treturn buffer.mapAsync(mode).then(() => true, (error) => {\n\t\t\treturn false;\n\t\t});\n\t}\n\treadStorageBuffer(storageBuffer, offset3 = 0, size = storageBuffer.byteSize - offset3, data2 = null, immediate = false) {\n\t\tconst stagingBuffer = this.createBufferImpl(BUFFERUSAGE_READ | BUFFERUSAGE_COPY_DST);\n\t\tstagingBuffer.allocate(this, size);\n\t\tconst destBuffer = stagingBuffer.buffer;\n\t\tconst commandEncoder = this.getCommandEncoder();\n\t\tcommandEncoder.copyBufferToBuffer(storageBuffer.buffer, offset3, destBuffer, 0, size);\n\t\treturn this.readBuffer(stagingBuffer, size, data2, immediate);\n\t}\n\treadBuffer(stagingBuffer, size, data2 = null, immediate = false) {\n\t\tconst destBuffer = stagingBuffer.buffer;\n\t\treturn new Promise((resolve2, reject) => {\n\t\t\tconst read = () => {\n\t\t\t\tthis.mapBufferAsync(destBuffer, GPUMapMode.READ).then((mapped) => {\n\t\t\t\t\tif (!mapped) {\n\t\t\t\t\t\tstagingBuffer.destroy(this);\n\t\t\t\t\t\treject(new Error(\"Failed to map a staging buffer for reading, most likely because the device was lost.\"));\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tdata2 ?? (data2 = new Uint8Array(size));\n\t\t\t\t\tconst copySrc = destBuffer.getMappedRange(0, size);\n\t\t\t\t\tconst srcType = data2.constructor;\n\t\t\t\t\tdata2.set(new srcType(copySrc));\n\t\t\t\t\tdestBuffer.unmap();\n\t\t\t\t\tstagingBuffer.destroy(this);\n\t\t\t\t\tresolve2(data2);\n\t\t\t\t});\n\t\t\t};\n\t\t\tif (immediate) {\n\t\t\t\tthis.submit();\n\t\t\t\tread();\n\t\t\t} else {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tread();\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\twriteStorageBuffer(storageBuffer, bufferOffset = 0, data2, dataOffset = 0, size) {\n\t\tthis.wgpu.queue.writeBuffer(storageBuffer.buffer, bufferOffset, data2, dataOffset, size);\n\t}\n\tcopyRenderTarget(source, dest, color3, depth) {\n\t\tconst copySize = {\n\t\t\twidth: source ? source.width : dest.width,\n\t\t\theight: source ? source.height : dest.height,\n\t\t\tdepthOrArrayLayers: 1\n\t\t};\n\t\tconst commandEncoder = this.getCommandEncoder();\n\t\tif (color3) {\n\t\t\tconst srcSamples = (source ? source.colorBuffer?.samples : 1) ?? 1;\n\t\t\tconst dstSamples = (dest ? dest.colorBuffer?.samples : 1) ?? 1;\n\t\t\tif (srcSamples !== dstSamples) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tconst copySrc = {\n\t\t\t\ttexture: source ? source.colorBuffer.impl.gpuTexture : this.backBuffer.impl.assignedColorTexture,\n\t\t\t\tmipLevel: source ? source.mipLevel : 0\n\t\t\t};\n\t\t\tconst copyDst = {\n\t\t\t\ttexture: dest ? dest.colorBuffer.impl.gpuTexture : this.backBuffer.impl.assignedColorTexture,\n\t\t\t\tmipLevel: dest ? dest.mipLevel : 0\n\t\t\t};\n\t\t\tcommandEncoder.copyTextureToTexture(copySrc, copyDst, copySize);\n\t\t}\n\t\tif (depth) {\n\t\t\tconst sourceRT = source ? source : this.renderTarget;\n\t\t\tif (sourceRT.impl.depthAttachment?.transient) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tconst sourceAttachment = sourceRT.impl.depthAttachment;\n\t\t\tconst sourceTexture = sourceAttachment.depthTexture ?? sourceAttachment.multisampledDepthBuffer;\n\t\t\tconst sourceMipLevel = sourceRT.mipLevel;\n\t\t\tif (sourceRT.samples > 1) {\n\t\t\t\tconst destMsDepth = dest?.depthBuffer?.samples > 1 ? dest.depthBuffer : null;\n\t\t\t\tif (destMsDepth) {\n\t\t\t\t\tif (destMsDepth.samples !== sourceRT.samples) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tcommandEncoder.copyTextureToTexture(\n\t\t\t\t\t\t{ texture: sourceTexture },\n\t\t\t\t\t\t{ texture: destMsDepth.impl.gpuTexture },\n\t\t\t\t\t\tcopySize\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tconst destTexture = dest.colorBuffer.impl.gpuTexture;\n\t\t\t\t\tthis.resolver.resolveDepth(commandEncoder, sourceTexture, destTexture, sourceRT.depthResolveMode);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst destTexture = dest ? dest.depthBuffer.impl.gpuTexture : this.renderTarget.impl.depthAttachment.depthTexture;\n\t\t\t\tconst destMipLevel = dest ? dest.mipLevel : this.renderTarget.mipLevel;\n\t\t\t\tconst copySrc = {\n\t\t\t\t\ttexture: sourceTexture,\n\t\t\t\t\tmipLevel: sourceMipLevel\n\t\t\t\t};\n\t\t\t\tconst copyDst = {\n\t\t\t\t\ttexture: destTexture,\n\t\t\t\t\tmipLevel: destMipLevel\n\t\t\t\t};\n\t\t\t\tcommandEncoder.copyTextureToTexture(copySrc, copyDst, copySize);\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n\tget hasTranspilers() {\n\t\treturn this.glslang && this.twgsl;\n\t}\n};\n\nvar WebglBuffer = class {\n\tbufferId = null;\n\tdestroy(device) {\n\t\tif (this.bufferId) {\n\t\t\tdevice.gl.deleteBuffer(this.bufferId);\n\t\t\tthis.bufferId = null;\n\t\t}\n\t}\n\tget initialized() {\n\t\treturn !!this.bufferId;\n\t}\n\tloseContext() {\n\t\tthis.bufferId = null;\n\t}\n\tunlock(device, usage, target2, storage) {\n\t\tconst gl = device.gl;\n\t\tif (!this.bufferId) {\n\t\t\tlet glUsage;\n\t\t\tswitch (usage) {\n\t\t\t\tcase BUFFER_STATIC:\n\t\t\t\t\tglUsage = gl.STATIC_DRAW;\n\t\t\t\t\tbreak;\n\t\t\t\tcase BUFFER_DYNAMIC:\n\t\t\t\t\tglUsage = gl.DYNAMIC_DRAW;\n\t\t\t\t\tbreak;\n\t\t\t\tcase BUFFER_STREAM:\n\t\t\t\t\tglUsage = gl.STREAM_DRAW;\n\t\t\t\t\tbreak;\n\t\t\t\tcase BUFFER_GPUDYNAMIC:\n\t\t\t\t\tglUsage = gl.DYNAMIC_COPY;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tthis.bufferId = gl.createBuffer();\n\t\t\tgl.bindBuffer(target2, this.bufferId);\n\t\t\tgl.bufferData(target2, storage, glUsage);\n\t\t} else {\n\t\t\tgl.bindBuffer(target2, this.bufferId);\n\t\t\tgl.bufferSubData(target2, 0, storage);\n\t\t}\n\t}\n};\n\nvar WebglVertexBuffer = class extends WebglBuffer {\n\t// vertex array object\n\tvao = null;\n\tdestroy(device) {\n\t\tsuper.destroy(device);\n\t\tdevice.unbindVertexArray();\n\t}\n\tloseContext() {\n\t\tsuper.loseContext();\n\t\tthis.vao = null;\n\t}\n\tunlock(vertexBuffer) {\n\t\tconst device = vertexBuffer.device;\n\t\tsuper.unlock(device, vertexBuffer.usage, device.gl.ARRAY_BUFFER, vertexBuffer.storage);\n\t}\n};\n\nvar WebglIndexBuffer = class extends WebglBuffer {\n\tconstructor(indexBuffer) {\n\t\tsuper();\n\t\tconst gl = indexBuffer.device.gl;\n\t\tconst format = indexBuffer.format;\n\t\tif (format === INDEXFORMAT_UINT8) {\n\t\t\tthis.glFormat = gl.UNSIGNED_BYTE;\n\t\t} else if (format === INDEXFORMAT_UINT16) {\n\t\t\tthis.glFormat = gl.UNSIGNED_SHORT;\n\t\t} else if (format === INDEXFORMAT_UINT32) {\n\t\t\tthis.glFormat = gl.UNSIGNED_INT;\n\t\t}\n\t}\n\tunlock(indexBuffer) {\n\t\tconst device = indexBuffer.device;\n\t\tsuper.unlock(device, indexBuffer.usage, device.gl.ELEMENT_ARRAY_BUFFER, indexBuffer.storage);\n\t}\n};\n\nvar WebglShaderInput = class {\n\tconstructor(graphicsDevice, name, type, locationId) {\n\t\tthis.locationId = locationId;\n\t\tthis.scopeId = graphicsDevice.scope.resolve(name);\n\t\tthis.version = new Version();\n\t\tif (name.substring(name.length - 3) === \"[0]\") {\n\t\t\tswitch (type) {\n\t\t\t\tcase UNIFORMTYPE_FLOAT:\n\t\t\t\t\ttype = UNIFORMTYPE_FLOATARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_INT:\n\t\t\t\t\ttype = UNIFORMTYPE_INTARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_UINT:\n\t\t\t\t\ttype = UNIFORMTYPE_UINTARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_BOOL:\n\t\t\t\t\ttype = UNIFORMTYPE_BOOLARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_VEC2:\n\t\t\t\t\ttype = UNIFORMTYPE_VEC2ARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_IVEC2:\n\t\t\t\t\ttype = UNIFORMTYPE_IVEC2ARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_UVEC2:\n\t\t\t\t\ttype = UNIFORMTYPE_UVEC2ARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_BVEC2:\n\t\t\t\t\ttype = UNIFORMTYPE_BVEC2ARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_VEC3:\n\t\t\t\t\ttype = UNIFORMTYPE_VEC3ARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_IVEC3:\n\t\t\t\t\ttype = UNIFORMTYPE_IVEC3ARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_UVEC3:\n\t\t\t\t\ttype = UNIFORMTYPE_UVEC3ARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_BVEC3:\n\t\t\t\t\ttype = UNIFORMTYPE_BVEC3ARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_VEC4:\n\t\t\t\t\ttype = UNIFORMTYPE_VEC4ARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_IVEC4:\n\t\t\t\t\ttype = UNIFORMTYPE_IVEC4ARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_UVEC4:\n\t\t\t\t\ttype = UNIFORMTYPE_UVEC4ARRAY;\n\t\t\t\t\tbreak;\n\t\t\t\tcase UNIFORMTYPE_BVEC4:\n\t\t\t\t\ttype = UNIFORMTYPE_BVEC4ARRAY;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tthis.dataType = type;\n\t\tthis.value = [null, null, null, null];\n\t\tthis.array = [];\n\t}\n};\n\nvar WebglShaderProcessorGLSL = class _WebglShaderProcessorGLSL extends ShaderProcessorGLSL {\n\tstatic run(device, shaderDefinition, shader) {\n\t\tconst vertexExtracted = _WebglShaderProcessorGLSL.extract(shaderDefinition.vshader, true);\n\t\tconst fragmentExtracted = _WebglShaderProcessorGLSL.extract(shaderDefinition.fshader, true);\n\t\tconst concatUniforms = vertexExtracted.uniforms.concat(fragmentExtracted.uniforms);\n\t\tconst uniforms = Array.from(new Set(concatUniforms));\n\t\tconst parsedUniforms = _WebglShaderProcessorGLSL.parseUniformLines(uniforms, shader);\n\t\tconst code = _WebglShaderProcessorGLSL.processUniformsGL2(parsedUniforms, shaderDefinition.processingOptions);\n\t\tconst vshader = vertexExtracted.src.replace(ShaderProcessorGLSL.MARKER, code);\n\t\tconst fshader = fragmentExtracted.src.replace(ShaderProcessorGLSL.MARKER, code);\n\t\treturn { vshader, fshader };\n\t}\n\tstatic processUniformsGL2(uniforms, processingOptions) {\n\t\tlet code = \"\";\n\t\tconst viewFormat = processingOptions.uniformFormats[BINDGROUP_VIEW];\n\t\tif (viewFormat) {\n\t\t\tcode += _WebglShaderProcessorGLSL.getUniformShaderDeclarationGL2(viewFormat, BINDGROUP_VIEW);\n\t\t}\n\t\tuniforms.forEach((uniform) => {\n\t\t\tif (!processingOptions.hasUniform(uniform.name)) {\n\t\t\t\tcode += `uniform ${uniform.line};\n`;\n\t\t\t}\n\t\t});\n\t\treturn code;\n\t}\n\tstatic getUniformShaderDeclarationGL2(format, bindGroup) {\n\t\tconst name = bindGroupNames[bindGroup];\n\t\tlet code = `layout(std140) uniform ub_${name} {\n`;\n\t\tformat.uniforms.forEach((uniform) => {\n\t\t\tconst typeString = uniformTypeToName[uniform.type];\n\t\t\tcode += `    ${typeString} ${uniform.shortName}${uniform.count ? `[${uniform.count}]` : \"\"};\n`;\n\t\t});\n\t\treturn `${code}};\n`;\n\t}\n};\n\nvar _vertexShaderBuiltins = /* @__PURE__ */ new Set([\n\t\"gl_VertexID\",\n\t\"gl_InstanceID\",\n\t\"gl_DrawID\",\n\t\"gl_BaseVertex\",\n\t\"gl_BaseInstance\"\n]);\nvar CompiledShaderCache = class {\n\t// maps shader source to a compiled WebGL shader\n\tmap = /* @__PURE__ */ new Map();\n\t// destroy all created shaders when the device is destroyed\n\tdestroy(device) {\n\t\tthis.map.forEach((shader) => {\n\t\t\tdevice.gl.deleteShader(shader);\n\t\t});\n\t}\n\t// just empty the cache when the context is lost\n\tloseContext(device) {\n\t\tthis.map.clear();\n\t}\n};\nvar _vertexShaderCache = new DeviceCache();\nvar _fragmentShaderCache = new DeviceCache();\nvar WebglShader = class {\n\tcompileDuration = 0;\n\tconstructor(shader) {\n\t\tthis.init();\n\t\tthis.compile(shader.device, shader);\n\t\tthis.link(shader.device, shader);\n\t\tshader.device.shaders.push(shader);\n\t}\n\tdestroy(shader) {\n\t\tif (this.glProgram) {\n\t\t\tshader.device.gl.deleteProgram(this.glProgram);\n\t\t\tthis.glProgram = null;\n\t\t}\n\t}\n\tinit() {\n\t\tthis.uniforms = [];\n\t\tthis.samplers = [];\n\t\tthis.attributes = [];\n\t\tthis.glProgram = null;\n\t\tthis.glVertexShader = null;\n\t\tthis.glFragmentShader = null;\n\t\tthis._vsource = null;\n\t\tthis._fsource = null;\n\t}\n\tloseContext() {\n\t\tthis.init();\n\t}\n\trestoreContext(device, shader) {\n\t\tthis.compile(device, shader);\n\t\tthis.link(device, shader);\n\t}\n\tcompile(device, shader) {\n\t\tconst definition = shader.definition;\n\t\tlet vsource = definition.vshader;\n\t\tlet fsource = definition.fshader;\n\t\tif (definition.processingOptions) {\n\t\t\tconst processed = WebglShaderProcessorGLSL.run(device, definition, shader);\n\t\t\tvsource = processed.vshader;\n\t\t\tfsource = processed.fshader;\n\t\t}\n\t\tthis._vsource = vsource;\n\t\tthis._fsource = fsource;\n\t\tthis.glVertexShader = this._compileShaderSource(device, vsource, true);\n\t\tthis.glFragmentShader = this._compileShaderSource(device, fsource, false);\n\t}\n\tlink(device, shader) {\n\t\tif (this.glProgram) {\n\t\t\treturn;\n\t\t}\n\t\tconst gl = device.gl;\n\t\tif (gl.isContextLost()) {\n\t\t\treturn;\n\t\t}\n\t\tlet startTime = 0;\n\t\tconst glProgram = gl.createProgram();\n\t\tthis.glProgram = glProgram;\n\t\tgl.attachShader(glProgram, this.glVertexShader);\n\t\tgl.attachShader(glProgram, this.glFragmentShader);\n\t\tconst definition = shader.definition;\n\t\tconst attrs = definition.attributes;\n\t\tif (definition.useTransformFeedback) {\n\t\t\tlet outNames = definition.feedbackVaryings;\n\t\t\tif (!outNames) {\n\t\t\t\toutNames = [];\n\t\t\t\tfor (const attr in attrs) {\n\t\t\t\t\tif (attrs.hasOwnProperty(attr)) {\n\t\t\t\t\t\toutNames.push(`out_${attr}`);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tlet bufferMode = gl.INTERLEAVED_ATTRIBS;\n\t\t\tif (definition.feedbackVaryingsMode === TRANSFORM_FEEDBACK_SEPARATE) {\n\t\t\t\tbufferMode = gl.SEPARATE_ATTRIBS;\n\t\t\t}\n\t\t\tgl.transformFeedbackVaryings(glProgram, outNames, bufferMode);\n\t\t}\n\t\tconst locations = {};\n\t\tfor (const attr in attrs) {\n\t\t\tif (attrs.hasOwnProperty(attr)) {\n\t\t\t\tconst semantic = attrs[attr];\n\t\t\t\tconst loc = semanticToLocation[semantic];\n\t\t\t\tlocations[loc] = attr;\n\t\t\t\tgl.bindAttribLocation(glProgram, loc, attr);\n\t\t\t}\n\t\t}\n\t\tgl.linkProgram(glProgram);\n\t}\n\t_compileShaderSource(device, src, isVertexShader) {\n\t\tconst gl = device.gl;\n\t\tif (gl.isContextLost()) {\n\t\t\treturn null;\n\t\t}\n\t\tconst shaderDeviceCache = isVertexShader ? _vertexShaderCache : _fragmentShaderCache;\n\t\tconst shaderCache = shaderDeviceCache.get(device, () => {\n\t\t\treturn new CompiledShaderCache();\n\t\t});\n\t\tlet glShader = shaderCache.map.get(src);\n\t\tif (!glShader) {\n\t\t\tglShader = gl.createShader(isVertexShader ? gl.VERTEX_SHADER : gl.FRAGMENT_SHADER);\n\t\t\tgl.shaderSource(glShader, src);\n\t\t\tgl.compileShader(glShader);\n\t\t\tshaderCache.map.set(src, glShader);\n\t\t}\n\t\treturn glShader;\n\t}\n\tfinalize(device, shader) {\n\t\tconst gl = device.gl;\n\t\tif (gl.isContextLost()) {\n\t\t\treturn true;\n\t\t}\n\t\tconst glProgram = this.glProgram;\n\t\tconst definition = shader.definition;\n\t\tlet linkStartTime = 0;\n\t\tconst linkStatus = gl.getProgramParameter(glProgram, gl.LINK_STATUS);\n\t\tif (!linkStatus) {\n\t\t\tif (!this._isCompiled(device, shader, this.glVertexShader, this._vsource, \"vertex\")) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif (!this._isCompiled(device, shader, this.glFragmentShader, this._fsource, \"fragment\")) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tconst message = `Failed to link shader program. Error: ${gl.getProgramInfoLog(glProgram)}`;\n\t\t\tconsole.error(message);\n\t\t\treturn false;\n\t\t}\n\t\tconst numAttributes = gl.getProgramParameter(glProgram, gl.ACTIVE_ATTRIBUTES);\n\t\tshader.attributes.clear();\n\t\tfor (let i2 = 0; i2 < numAttributes; i2++) {\n\t\t\tconst info = gl.getActiveAttrib(glProgram, i2);\n\t\t\tconst location = gl.getAttribLocation(glProgram, info.name);\n\t\t\tif (_vertexShaderBuiltins.has(info.name)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (definition.attributes[info.name] === void 0) {\n\t\t\t\tconsole.error(`Vertex shader attribute \"${info.name}\" is not mapped to a semantic in shader definition, shader [${shader.label}]`, shader);\n\t\t\t\tshader.failed = true;\n\t\t\t} else {\n\t\t\t\tshader.attributes.set(location, info.name);\n\t\t\t}\n\t\t}\n\t\tconst samplerTypes2 = device._samplerTypes;\n\t\tconst numUniforms = gl.getProgramParameter(glProgram, gl.ACTIVE_UNIFORMS);\n\t\tfor (let i2 = 0; i2 < numUniforms; i2++) {\n\t\t\tconst info = gl.getActiveUniform(glProgram, i2);\n\t\t\tconst location = gl.getUniformLocation(glProgram, info.name);\n\t\t\tif (_vertexShaderBuiltins.has(info.name)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (location === null) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst shaderInput = new WebglShaderInput(device, info.name, device.pcUniformType[info.type], location);\n\t\t\tif (samplerTypes2.has(info.type)) {\n\t\t\t\tthis.samplers.push(shaderInput);\n\t\t\t} else {\n\t\t\t\tthis.uniforms.push(shaderInput);\n\t\t\t}\n\t\t}\n\t\tconst numBlocks = gl.getProgramParameter(glProgram, gl.ACTIVE_UNIFORM_BLOCKS);\n\t\tfor (let i2 = 0; i2 < numBlocks; i2++) {\n\t\t\tconst blockName = gl.getActiveUniformBlockName(glProgram, i2);\n\t\t\tconst shortName = blockName.startsWith(\"ub_\") ? blockName.substring(3) : blockName;\n\t\t\tconst bindGroupIndex = bindGroupNames.indexOf(shortName);\n\t\t\tconst bindingPoint = bindGroupIndex >= 0 ? bindGroupIndex : i2;\n\t\t\tgl.uniformBlockBinding(glProgram, i2, bindingPoint);\n\t\t}\n\t\tshader.ready = true;\n\t\treturn true;\n\t}\n\t_isCompiled(device, shader, glShader, source, shaderType) {\n\t\tconst gl = device.gl;\n\t\tif (!gl.getShaderParameter(glShader, gl.COMPILE_STATUS)) {\n\t\t\tconst infoLog = gl.getShaderInfoLog(glShader);\n\t\t\tconst [code, error] = this._processError(source, infoLog);\n\t\t\tconst message = `Failed to compile ${shaderType} shader:\n\n${infoLog}\n${code} while rendering ${void 0}`;\n\t\t\tconsole.error(message);\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t}\n\tisLinked(device) {\n\t\tconst { extParallelShaderCompile } = device;\n\t\tif (extParallelShaderCompile) {\n\t\t\treturn device.gl.getProgramParameter(this.glProgram, extParallelShaderCompile.COMPLETION_STATUS_KHR);\n\t\t}\n\t\treturn true;\n\t}\n\t_processError(src, infoLog) {\n\t\tconst error = {};\n\t\tlet code = \"\";\n\t\tif (src) {\n\t\t\tconst lines = src.split(\"\\n\");\n\t\t\tlet from = 0;\n\t\t\tlet to = lines.length;\n\t\t\tif (infoLog && infoLog.startsWith(\"ERROR:\")) {\n\t\t\t\tconst match = infoLog.match(/^ERROR:\\s(\\d+):(\\d+):\\s*(.+)/);\n\t\t\t\tif (match) {\n\t\t\t\t\terror.message = match[3];\n\t\t\t\t\terror.line = parseInt(match[2], 10);\n\t\t\t\t\tfrom = Math.max(0, error.line - 6);\n\t\t\t\t\tto = Math.min(lines.length, error.line + 5);\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (let i2 = from; i2 < to; i2++) {\n\t\t\t\tconst linePrefix = i2 + 1 === error.line ? \"> \" : \"  \";\n\t\t\t\tcode += `${linePrefix}${i2 + 1}:\t${lines[i2]}\n`;\n\t\t\t}\n\t\t\terror.source = src;\n\t\t}\n\t\treturn [code, error];\n\t}\n};\n\nvar WebglUniformBuffer = class extends WebglBuffer {\n\tunlock(uniformBuffer) {\n\t\tconst device = uniformBuffer.device;\n\t\tconst gl = device.gl;\n\t\tsuper.unlock(device, BUFFER_DYNAMIC, gl.UNIFORM_BUFFER, uniformBuffer.storageInt32);\n\t}\n};\n\nvar WebglBindGroup = class {\n\tbuffers = [];\n\tupdate(bindGroup) {\n\t\tconst uniformBuffers = bindGroup.uniformBuffers;\n\t\tthis.buffers.length = uniformBuffers.length;\n\t\tfor (let i2 = 0; i2 < uniformBuffers.length; i2++) {\n\t\t\tconst uniformBuffer = uniformBuffers[i2];\n\t\t\tthis.buffers[i2] = uniformBuffer.persistent ? uniformBuffer.impl : uniformBuffer.allocation.gpuBuffer;\n\t\t}\n\t}\n\tdestroy() {\n\t\tthis.buffers.length = 0;\n\t}\n};\n\nvar WebglBindGroupFormat = class {\n\tdestroy() {\n\t}\n};\n\nvar WebglDynamicBuffer = class extends DynamicBuffer {\n\tbufferId = null;\n\tstorage;\n\tsize;\n\tconstructor(device, size) {\n\t\tsuper(device);\n\t\tthis.size = size;\n\t\tthis.storage = new Int32Array(size / 4);\n\t\tdevice._vram.ub += size;\n\t}\n\tdestroy(device) {\n\t\tif (this.bufferId) {\n\t\t\tdevice.gl.deleteBuffer(this.bufferId);\n\t\t\tthis.bufferId = null;\n\t\t}\n\t\tdevice._vram.ub -= this.size;\n\t}\n\tloseContext() {\n\t\tthis.bufferId = null;\n\t}\n\tupload() {\n\t\tconst gl = this.device.gl;\n\t\tif (!this.bufferId) {\n\t\t\tthis.bufferId = gl.createBuffer();\n\t\t}\n\t\tgl.bindBuffer(gl.UNIFORM_BUFFER, this.bufferId);\n\t\tgl.bufferData(gl.UNIFORM_BUFFER, this.storage, gl.STREAM_DRAW);\n\t}\n};\n\nvar WebglDynamicBuffers = class extends DynamicBuffers {\n\tfree = /* @__PURE__ */ new Map();\n\tused = [];\n\tconstructor(device) {\n\t\tsuper(device, 0, 0);\n\t}\n\tdestroy() {\n\t\tthis.used.forEach((buffer) => buffer.destroy(this.device));\n\t\tthis.free.forEach((buffers) => buffers.forEach((buffer) => buffer.destroy(this.device)));\n\t\tthis.used = null;\n\t\tthis.free = null;\n\t}\n\talloc(allocation, size) {\n\t\tlet buffer = this.free.get(size)?.pop();\n\t\tif (!buffer) {\n\t\t\tbuffer = new WebglDynamicBuffer(this.device, size);\n\t\t}\n\t\tthis.used.push(buffer);\n\t\tallocation.gpuBuffer = buffer;\n\t\tallocation.offset = 0;\n\t\tallocation.storage = buffer.storage;\n\t}\n\tonFrameEnd() {\n\t\tconst used = this.used;\n\t\tfor (let i2 = 0; i2 < used.length; i2++) {\n\t\t\tconst buffer = used[i2];\n\t\t\tlet pool = this.free.get(buffer.size);\n\t\t\tif (!pool) {\n\t\t\t\tpool = [];\n\t\t\t\tthis.free.set(buffer.size, pool);\n\t\t\t}\n\t\t\tpool.push(buffer);\n\t\t}\n\t\tused.length = 0;\n\t}\n\tloseContext() {\n\t\tthis.onFrameEnd();\n\t\tthis.free.forEach((buffers) => {\n\t\t\tbuffers.forEach((buffer) => buffer.loseContext());\n\t\t});\n\t}\n};\n\nvar WebglDrawCommands = class {\n\tindexSizeBytes;\n\tglCounts = null;\n\tglOffsetsBytes = null;\n\tglInstanceCounts = null;\n\tconstructor(indexSizeBytes) {\n\t\tthis.indexSizeBytes = indexSizeBytes;\n\t}\n\tallocate(maxCount) {\n\t\tif (this.glCounts && this.glCounts.length === maxCount) {\n\t\t\treturn;\n\t\t}\n\t\tthis.glCounts = new Int32Array(maxCount);\n\t\tthis.glOffsetsBytes = new Int32Array(maxCount);\n\t\tthis.glInstanceCounts = new Int32Array(maxCount);\n\t}\n\tadd(i2, indexOrVertexCount, instanceCount, firstIndexOrVertex) {\n\t\tthis.glCounts[i2] = indexOrVertexCount;\n\t\tthis.glOffsetsBytes[i2] = firstIndexOrVertex * this.indexSizeBytes;\n\t\tthis.glInstanceCounts[i2] = instanceCount;\n\t}\n\tupdate(count) {\n\t\tlet totalPrimitives = 0;\n\t\treturn totalPrimitives;\n\t}\n};\n\nfunction downsampleImage(image, size) {\n\tconst srcW = image.width;\n\tconst srcH = image.height;\n\tif (srcW > size || srcH > size) {\n\t\tconst scale2 = size / Math.max(srcW, srcH);\n\t\tconst dstW = Math.floor(srcW * scale2);\n\t\tconst dstH = Math.floor(srcH * scale2);\n\t\tconst canvas = document.createElement(\"canvas\");\n\t\tcanvas.width = dstW;\n\t\tcanvas.height = dstH;\n\t\tconst context = canvas.getContext(\"2d\");\n\t\tcontext.drawImage(image, 0, 0, srcW, srcH, 0, 0, dstW, dstH);\n\t\treturn canvas;\n\t}\n\treturn image;\n}\nvar WebglTexture = class {\n\t_glTexture = null;\n\t_glTarget;\n\t_glFormat;\n\t_glInternalFormat;\n\t_glPixelType;\n\t_glCreated;\n\tdirtyParameterFlags = 0;\n\tconstructor(texture) {\n\t\tthis.texture = texture;\n\t}\n\tdestroy(device) {\n\t\tif (this._glTexture) {\n\t\t\tfor (let i2 = 0; i2 < device.textureUnits.length; i2++) {\n\t\t\t\tconst textureUnit = device.textureUnits[i2];\n\t\t\t\tfor (let j = 0; j < textureUnit.length; j++) {\n\t\t\t\t\tif (textureUnit[j] === this._glTexture) {\n\t\t\t\t\t\ttextureUnit[j] = null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tdevice.gl.deleteTexture(this._glTexture);\n\t\t\tthis._glTexture = null;\n\t\t}\n\t}\n\tloseContext() {\n\t\tthis._glTexture = null;\n\t}\n\tpropertyChanged(flag) {\n\t\tthis.dirtyParameterFlags |= flag;\n\t}\n\tinitialize(device, texture) {\n\t\tconst gl = device.gl;\n\t\tthis._glTexture = gl.createTexture();\n\t\tthis._glTarget = texture._cubemap ? gl.TEXTURE_CUBE_MAP : texture._volume ? gl.TEXTURE_3D : texture.array ? gl.TEXTURE_2D_ARRAY : gl.TEXTURE_2D;\n\t\tswitch (texture._format) {\n\t\t\tcase PIXELFORMAT_A8:\n\t\t\t\tthis._glFormat = gl.ALPHA;\n\t\t\t\tthis._glInternalFormat = gl.ALPHA;\n\t\t\t\tthis._glPixelType = gl.UNSIGNED_BYTE;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_L8:\n\t\t\t\tthis._glFormat = gl.LUMINANCE;\n\t\t\t\tthis._glInternalFormat = gl.LUMINANCE;\n\t\t\t\tthis._glPixelType = gl.UNSIGNED_BYTE;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_LA8:\n\t\t\t\tthis._glFormat = gl.LUMINANCE_ALPHA;\n\t\t\t\tthis._glInternalFormat = gl.LUMINANCE_ALPHA;\n\t\t\t\tthis._glPixelType = gl.UNSIGNED_BYTE;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_R8:\n\t\t\t\tthis._glFormat = gl.RED;\n\t\t\t\tthis._glInternalFormat = gl.R8;\n\t\t\t\tthis._glPixelType = gl.UNSIGNED_BYTE;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_RG8:\n\t\t\t\tthis._glFormat = gl.RG;\n\t\t\t\tthis._glInternalFormat = gl.RG8;\n\t\t\t\tthis._glPixelType = gl.UNSIGNED_BYTE;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_RGB565:\n\t\t\t\tthis._glFormat = gl.RGB;\n\t\t\t\tthis._glInternalFormat = gl.RGB565;\n\t\t\t\tthis._glPixelType = gl.UNSIGNED_SHORT_5_6_5;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_RGBA5551:\n\t\t\t\tthis._glFormat = gl.RGBA;\n\t\t\t\tthis._glInternalFormat = gl.RGB5_A1;\n\t\t\t\tthis._glPixelType = gl.UNSIGNED_SHORT_5_5_5_1;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_RGBA4:\n\t\t\t\tthis._glFormat = gl.RGBA;\n\t\t\t\tthis._glInternalFormat = gl.RGBA4;\n\t\t\t\tthis._glPixelType = gl.UNSIGNED_SHORT_4_4_4_4;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_RGB8:\n\t\t\t\tthis._glFormat = gl.RGB;\n\t\t\t\tthis._glInternalFormat = gl.RGB8;\n\t\t\t\tthis._glPixelType = gl.UNSIGNED_BYTE;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_RGBA8:\n\t\t\t\tthis._glFormat = gl.RGBA;\n\t\t\t\tthis._glInternalFormat = gl.RGBA8;\n\t\t\t\tthis._glPixelType = gl.UNSIGNED_BYTE;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_BGRA8:\n\t\t\tcase PIXELFORMAT_SBGRA8:\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_RGB9E5:\n\t\t\t\tthis._glFormat = gl.RGB;\n\t\t\t\tthis._glInternalFormat = gl.RGB9_E5;\n\t\t\t\tthis._glPixelType = gl.UNSIGNED_INT_5_9_9_9_REV;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_RG8S:\n\t\t\t\tthis._glFormat = gl.RG;\n\t\t\t\tthis._glInternalFormat = gl.RG8_SNORM;\n\t\t\t\tthis._glPixelType = gl.BYTE;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_RGBA8S:\n\t\t\t\tthis._glFormat = gl.RGBA;\n\t\t\t\tthis._glInternalFormat = gl.RGBA8_SNORM;\n\t\t\t\tthis._glPixelType = gl.BYTE;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_RGB10A2:\n\t\t\t\tthis._glFormat = gl.RGBA;\n\t\t\t\tthis._glInternalFormat = gl.RGB10_A2;\n\t\t\t\tthis._glPixelType = gl.UNSIGNED_INT_2_10_10_10_REV;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_RGB10A2U:\n\t\t\t\tthis._glFormat = gl.RGBA_INTEGER;\n\t\t\t\tthis._glInternalFormat = gl.RGB10_A2UI;\n\t\t\t\tthis._glPixelType = gl.UNSIGNED_INT_2_10_10_10_REV;\n\t\t\t\tbreak;\n\t\t\t// compressed formats ----\n\t\t\tcase PIXELFORMAT_DXT1:\n\t\t\t\tthis._glFormat = gl.RGB;\n\t\t\t\tthis._glInternalFormat = device.extCompressedTextureS3TC.COMPRESSED_RGB_S3TC_DXT1_EXT;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_DXT3:\n\t\t\t\tthis._glFormat = gl.RGBA;\n\t\t\t\tthis._glInternalFormat = device.extCompressedTextureS3TC.COMPRESSED_RGBA_S3TC_DXT3_EXT;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_DXT5:\n\t\t\t\tthis._glFormat = gl.RGBA;\n\t\t\t\tthis._glInternalFormat = device.extCompressedTextureS3TC.COMPRESSED_RGBA_S3TC_DXT5_EXT;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_ETC1:\n\t\t\t\tthis._glFormat = gl.RGB;\n\t\t\t\tthis._glInternalFormat = device.extCompressedTextureETC1.COMPRESSED_RGB_ETC1_WEBGL;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_PVRTC_2BPP_RGB_1:\n\t\t\t\tthis._glFormat = gl.RGB;\n\t\t\t\tthis._glInternalFormat = device.extCompressedTexturePVRTC.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_PVRTC_2BPP_RGBA_1:\n\t\t\t\tthis._glFormat = gl.RGBA;\n\t\t\t\tthis._glInternalFormat = device.extCompressedTexturePVRTC.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_PVRTC_4BPP_RGB_1:\n\t\t\t\tthis._glFormat = gl.RGB;\n\t\t\t\tthis._glInternalFormat = device.extCompressedTexturePVRTC.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_PVRTC_4BPP_RGBA_1:\n\t\t\t\tthis._glFormat = gl.RGBA;\n\t\t\t\tthis._glInternalFormat = device.extCompressedTexturePVRTC.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_ETC2_RGB:\n\t\t\t\tthis._glFormat = gl.RGB;\n\t\t\t\tthis._glInternalFormat = device.extCompressedTextureETC.COMPRESSED_RGB8_ETC2;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_ETC2_RGBA:\n\t\t\t\tthis._glFormat = gl.RGBA;\n\t\t\t\tthis._glInternalFormat = device.extCompressedTextureETC.COMPRESSED_RGBA8_ETC2_EAC;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_ASTC_4x4:\n\t\t\t\tthis._glFormat = gl.RGBA;\n\t\t\t\tthis._glInternalFormat = device.extCompressedTextureASTC.COMPRESSED_RGBA_ASTC_4x4_KHR;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_ATC_RGB:\n\t\t\t\tthis._glFormat = gl.RGB;\n\t\t\t\tthis._glInternalFormat = device.extCompressedTextureATC.COMPRESSED_RGB_ATC_WEBGL;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_ATC_RGBA:\n\t\t\t\tthis._glFormat = gl.RGBA;\n\t\t\t\tthis._glInternalFormat = device.extCompressedTextureATC.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_BC6F:\n\t\t\t\tthis._glFormat = gl.RGB;\n\t\t\t\tthis._glInternalFormat = device.extTextureCompressionBPTC.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_BC6UF:\n\t\t\t\tthis._glFormat = gl.RGB;\n\t\t\t\tthis._glInternalFormat = device.extTextureCompressionBPTC.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_BC7:\n\t\t\t\tthis._glFormat = gl.RGBA;\n\t\t\t\tthis._glInternalFormat = device.extTextureCompressionBPTC.COMPRESSED_RGBA_BPTC_UNORM_EXT;\n\t\t\t\tbreak;\n\t\t\t// compressed sRGB formats ----\n\t\t\tcase PIXELFORMAT_DXT1_SRGB:\n\t\t\t\tthis._glFormat = gl.SRGB;\n\t\t\t\tthis._glInternalFormat = device.extCompressedTextureS3TC_SRGB.COMPRESSED_SRGB_S3TC_DXT1_EXT;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_DXT3_SRGBA:\n\t\t\t\tthis._glFormat = gl.SRGB_ALPHA;\n\t\t\t\tthis._glInternalFormat = device.extCompressedTextureS3TC_SRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_DXT5_SRGBA:\n\t\t\t\tthis._glFormat = gl.SRGB_ALPHA;\n\t\t\t\tthis._glInternalFormat = device.extCompressedTextureS3TC_SRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_ETC2_SRGB:\n\t\t\t\tthis._glFormat = gl.SRGB;\n\t\t\t\tthis._glInternalFormat = device.extCompressedTextureETC.COMPRESSED_SRGB8_ETC2;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_ETC2_SRGBA:\n\t\t\t\tthis._glFormat = gl.SRGB_ALPHA;\n\t\t\t\tthis._glInternalFormat = device.extCompressedTextureETC.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_ASTC_4x4_SRGB:\n\t\t\t\tthis._glFormat = gl.SRGB_ALPHA;\n\t\t\t\tthis._glInternalFormat = device.extCompressedTextureASTC.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_BC7_SRGBA:\n\t\t\t\tthis._glFormat = gl.RGBA;\n\t\t\t\tthis._glInternalFormat = device.extTextureCompressionBPTC.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT;\n\t\t\t\tbreak;\n\t\t\t// ------------------\n\t\t\tcase PIXELFORMAT_R16F:\n\t\t\t\tthis._glFormat = gl.RED;\n\t\t\t\tthis._glInternalFormat = gl.R16F;\n\t\t\t\tthis._glPixelType = gl.HALF_FLOAT;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_RG16F:\n\t\t\t\tthis._glFormat = gl.RG;\n\t\t\t\tthis._glInternalFormat = gl.RG16F;\n\t\t\t\tthis._glPixelType = gl.HALF_FLOAT;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_RGB16F:\n\t\t\t\tthis._glFormat = gl.RGB;\n\t\t\t\tthis._glInternalFormat = gl.RGB16F;\n\t\t\t\tthis._glPixelType = gl.HALF_FLOAT;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_RGBA16F:\n\t\t\t\tthis._glFormat = gl.RGBA;\n\t\t\t\tthis._glInternalFormat = gl.RGBA16F;\n\t\t\t\tthis._glPixelType = gl.HALF_FLOAT;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_RGB32F:\n\t\t\t\tthis._glFormat = gl.RGB;\n\t\t\t\tthis._glInternalFormat = gl.RGB32F;\n\t\t\t\tthis._glPixelType = gl.FLOAT;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_RGBA32F:\n\t\t\t\tthis._glFormat = gl.RGBA;\n\t\t\t\tthis._glInternalFormat = gl.RGBA32F;\n\t\t\t\tthis._glPixelType = gl.FLOAT;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_R32F:\n\t\t\t\tthis._glFormat = gl.RED;\n\t\t\t\tthis._glInternalFormat = gl.R32F;\n\t\t\t\tthis._glPixelType = gl.FLOAT;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_RG32F:\n\t\t\t\tthis._glFormat = gl.RG;\n\t\t\t\tthis._glInternalFormat = gl.RG32F;\n\t\t\t\tthis._glPixelType = gl.FLOAT;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_DEPTH:\n\t\t\t\tthis._glFormat = gl.DEPTH_COMPONENT;\n\t\t\t\tthis._glInternalFormat = gl.DEPTH_COMPONENT32F;\n\t\t\t\tthis._glPixelType = gl.FLOAT;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_DEPTH16:\n\t\t\t\tthis._glFormat = gl.DEPTH_COMPONENT;\n\t\t\t\tthis._glInternalFormat = gl.DEPTH_COMPONENT16;\n\t\t\t\tthis._glPixelType = gl.UNSIGNED_SHORT;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_DEPTHSTENCIL:\n\t\t\t\tthis._glFormat = gl.DEPTH_STENCIL;\n\t\t\t\tthis._glInternalFormat = gl.DEPTH24_STENCIL8;\n\t\t\t\tthis._glPixelType = gl.UNSIGNED_INT_24_8;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_111110F:\n\t\t\t\tthis._glFormat = gl.RGB;\n\t\t\t\tthis._glInternalFormat = gl.R11F_G11F_B10F;\n\t\t\t\tthis._glPixelType = gl.UNSIGNED_INT_10F_11F_11F_REV;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_SRGB8:\n\t\t\t\tthis._glFormat = gl.RGB;\n\t\t\t\tthis._glInternalFormat = gl.SRGB8;\n\t\t\t\tthis._glPixelType = gl.UNSIGNED_BYTE;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_SRGBA8:\n\t\t\t\tthis._glFormat = gl.RGBA;\n\t\t\t\tthis._glInternalFormat = gl.SRGB8_ALPHA8;\n\t\t\t\tthis._glPixelType = gl.UNSIGNED_BYTE;\n\t\t\t\tbreak;\n\t\t\t// Integer texture formats (R)\n\t\t\tcase PIXELFORMAT_R8I:\n\t\t\t\tthis._glFormat = gl.RED_INTEGER;\n\t\t\t\tthis._glInternalFormat = gl.R8I;\n\t\t\t\tthis._glPixelType = gl.BYTE;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_R8U:\n\t\t\t\tthis._glFormat = gl.RED_INTEGER;\n\t\t\t\tthis._glInternalFormat = gl.R8UI;\n\t\t\t\tthis._glPixelType = gl.UNSIGNED_BYTE;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_R16I:\n\t\t\t\tthis._glFormat = gl.RED_INTEGER;\n\t\t\t\tthis._glInternalFormat = gl.R16I;\n\t\t\t\tthis._glPixelType = gl.SHORT;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_R16U:\n\t\t\t\tthis._glFormat = gl.RED_INTEGER;\n\t\t\t\tthis._glInternalFormat = gl.R16UI;\n\t\t\t\tthis._glPixelType = gl.UNSIGNED_SHORT;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_R32I:\n\t\t\t\tthis._glFormat = gl.RED_INTEGER;\n\t\t\t\tthis._glInternalFormat = gl.R32I;\n\t\t\t\tthis._glPixelType = gl.INT;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_R32U:\n\t\t\t\tthis._glFormat = gl.RED_INTEGER;\n\t\t\t\tthis._glInternalFormat = gl.R32UI;\n\t\t\t\tthis._glPixelType = gl.UNSIGNED_INT;\n\t\t\t\tbreak;\n\t\t\t// Integer texture formats (RG)\n\t\t\tcase PIXELFORMAT_RG8I:\n\t\t\t\tthis._glFormat = gl.RG_INTEGER;\n\t\t\t\tthis._glInternalFormat = gl.RG8I;\n\t\t\t\tthis._glPixelType = gl.BYTE;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_RG8U:\n\t\t\t\tthis._glFormat = gl.RG_INTEGER;\n\t\t\t\tthis._glInternalFormat = gl.RG8UI;\n\t\t\t\tthis._glPixelType = gl.UNSIGNED_BYTE;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_RG16I:\n\t\t\t\tthis._glFormat = gl.RG_INTEGER;\n\t\t\t\tthis._glInternalFormat = gl.RG16I;\n\t\t\t\tthis._glPixelType = gl.SHORT;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_RG16U:\n\t\t\t\tthis._glFormat = gl.RG_INTEGER;\n\t\t\t\tthis._glInternalFormat = gl.RG16UI;\n\t\t\t\tthis._glPixelType = gl.UNSIGNED_SHORT;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_RG32I:\n\t\t\t\tthis._glFormat = gl.RG_INTEGER;\n\t\t\t\tthis._glInternalFormat = gl.RG32I;\n\t\t\t\tthis._glPixelType = gl.INT;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_RG32U:\n\t\t\t\tthis._glFormat = gl.RG_INTEGER;\n\t\t\t\tthis._glInternalFormat = gl.RG32UI;\n\t\t\t\tthis._glPixelType = gl.UNSIGNED_INT;\n\t\t\t\tbreak;\n\t\t\t// Integer texture formats (RGBA)\n\t\t\tcase PIXELFORMAT_RGBA8I:\n\t\t\t\tthis._glFormat = gl.RGBA_INTEGER;\n\t\t\t\tthis._glInternalFormat = gl.RGBA8I;\n\t\t\t\tthis._glPixelType = gl.BYTE;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_RGBA8U:\n\t\t\t\tthis._glFormat = gl.RGBA_INTEGER;\n\t\t\t\tthis._glInternalFormat = gl.RGBA8UI;\n\t\t\t\tthis._glPixelType = gl.UNSIGNED_BYTE;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_RGBA16I:\n\t\t\t\tthis._glFormat = gl.RGBA_INTEGER;\n\t\t\t\tthis._glInternalFormat = gl.RGBA16I;\n\t\t\t\tthis._glPixelType = gl.SHORT;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_RGBA16U:\n\t\t\t\tthis._glFormat = gl.RGBA_INTEGER;\n\t\t\t\tthis._glInternalFormat = gl.RGBA16UI;\n\t\t\t\tthis._glPixelType = gl.UNSIGNED_SHORT;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_RGBA32I:\n\t\t\t\tthis._glFormat = gl.RGBA_INTEGER;\n\t\t\t\tthis._glInternalFormat = gl.RGBA32I;\n\t\t\t\tthis._glPixelType = gl.INT;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_RGBA32U:\n\t\t\t\tthis._glFormat = gl.RGBA_INTEGER;\n\t\t\t\tthis._glInternalFormat = gl.RGBA32UI;\n\t\t\t\tthis._glPixelType = gl.UNSIGNED_INT;\n\t\t\t\tbreak;\n\t\t}\n\t\tthis._glCreated = false;\n\t}\n\tupload(device, texture) {\n\t\tconst gl = device.gl;\n\t\tif (!texture._needsUpload && texture._needsMipmapsUpload && texture._mipmapsUploaded) {\n\t\t\treturn;\n\t\t}\n\t\tlet mipLevel = 0;\n\t\tlet mipObject;\n\t\tlet resMult;\n\t\tconst requiredMipLevels = texture.numLevels;\n\t\tif (texture.array && !this._glCreated) {\n\t\t\tgl.texStorage3D(\n\t\t\t\tgl.TEXTURE_2D_ARRAY,\n\t\t\t\trequiredMipLevels,\n\t\t\t\tthis._glInternalFormat,\n\t\t\t\ttexture._width,\n\t\t\t\ttexture._height,\n\t\t\t\ttexture._arrayLength\n\t\t\t);\n\t\t}\n\t\twhile (texture._levels[mipLevel] || mipLevel === 0) {\n\t\t\tif (!texture._needsUpload && mipLevel === 0) {\n\t\t\t\tmipLevel++;\n\t\t\t\tcontinue;\n\t\t\t} else if (mipLevel && (!texture._needsMipmapsUpload || !texture._mipmaps)) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmipObject = texture._levels[mipLevel];\n\t\t\tresMult = 1 / Math.pow(2, mipLevel);\n\t\t\tif (mipLevel === 1 && !texture._compressed && !texture._integerFormat && texture._levels.length < requiredMipLevels) {\n\t\t\t\tgl.generateMipmap(this._glTarget);\n\t\t\t\ttexture._mipmapsUploaded = true;\n\t\t\t}\n\t\t\tif (texture._cubemap) {\n\t\t\t\tlet face;\n\t\t\t\tif (device._isBrowserInterface(mipObject[0])) {\n\t\t\t\t\tfor (face = 0; face < 6; face++) {\n\t\t\t\t\t\tif (!texture._levelsUpdated[0][face]) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlet src = mipObject[face];\n\t\t\t\t\t\tif (device._isImageBrowserInterface(src)) {\n\t\t\t\t\t\t\tif (src.width > device.maxCubeMapSize || src.height > device.maxCubeMapSize) {\n\t\t\t\t\t\t\t\tsrc = downsampleImage(src, device.maxCubeMapSize);\n\t\t\t\t\t\t\t\tif (mipLevel === 0) {\n\t\t\t\t\t\t\t\t\ttexture._width = src.width;\n\t\t\t\t\t\t\t\t\ttexture._height = src.height;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdevice.setUnpackFlipY(false);\n\t\t\t\t\t\tdevice.setUnpackPremultiplyAlpha(texture._premultiplyAlpha);\n\t\t\t\t\t\tif (this._glCreated) {\n\t\t\t\t\t\t\tgl.texSubImage2D(\n\t\t\t\t\t\t\t\tgl.TEXTURE_CUBE_MAP_POSITIVE_X + face,\n\t\t\t\t\t\t\t\tmipLevel,\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tthis._glFormat,\n\t\t\t\t\t\t\t\tthis._glPixelType,\n\t\t\t\t\t\t\t\tsrc\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tgl.texImage2D(\n\t\t\t\t\t\t\t\tgl.TEXTURE_CUBE_MAP_POSITIVE_X + face,\n\t\t\t\t\t\t\t\tmipLevel,\n\t\t\t\t\t\t\t\tthis._glInternalFormat,\n\t\t\t\t\t\t\t\tthis._glFormat,\n\t\t\t\t\t\t\t\tthis._glPixelType,\n\t\t\t\t\t\t\t\tsrc\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tresMult = 1 / Math.pow(2, mipLevel);\n\t\t\t\t\tfor (face = 0; face < 6; face++) {\n\t\t\t\t\t\tif (!texture._levelsUpdated[0][face]) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst texData = mipObject[face];\n\t\t\t\t\t\tif (texture._compressed) {\n\t\t\t\t\t\t\tif (this._glCreated && texData) {\n\t\t\t\t\t\t\t\tgl.compressedTexSubImage2D(\n\t\t\t\t\t\t\t\t\tgl.TEXTURE_CUBE_MAP_POSITIVE_X + face,\n\t\t\t\t\t\t\t\t\tmipLevel,\n\t\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t\tMath.max(texture._width * resMult, 1),\n\t\t\t\t\t\t\t\t\tMath.max(texture._height * resMult, 1),\n\t\t\t\t\t\t\t\t\tthis._glInternalFormat,\n\t\t\t\t\t\t\t\t\ttexData\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tgl.compressedTexImage2D(\n\t\t\t\t\t\t\t\t\tgl.TEXTURE_CUBE_MAP_POSITIVE_X + face,\n\t\t\t\t\t\t\t\t\tmipLevel,\n\t\t\t\t\t\t\t\t\tthis._glInternalFormat,\n\t\t\t\t\t\t\t\t\tMath.max(texture._width * resMult, 1),\n\t\t\t\t\t\t\t\t\tMath.max(texture._height * resMult, 1),\n\t\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t\ttexData\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tdevice.setUnpackFlipY(false);\n\t\t\t\t\t\t\tdevice.setUnpackPremultiplyAlpha(texture._premultiplyAlpha);\n\t\t\t\t\t\t\tdevice.setUnpackAlignment(1);\n\t\t\t\t\t\t\tif (this._glCreated && texData) {\n\t\t\t\t\t\t\t\tgl.texSubImage2D(\n\t\t\t\t\t\t\t\t\tgl.TEXTURE_CUBE_MAP_POSITIVE_X + face,\n\t\t\t\t\t\t\t\t\tmipLevel,\n\t\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t\tMath.max(texture._width * resMult, 1),\n\t\t\t\t\t\t\t\t\tMath.max(texture._height * resMult, 1),\n\t\t\t\t\t\t\t\t\tthis._glFormat,\n\t\t\t\t\t\t\t\t\tthis._glPixelType,\n\t\t\t\t\t\t\t\t\ttexData\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tgl.texImage2D(\n\t\t\t\t\t\t\t\t\tgl.TEXTURE_CUBE_MAP_POSITIVE_X + face,\n\t\t\t\t\t\t\t\t\tmipLevel,\n\t\t\t\t\t\t\t\t\tthis._glInternalFormat,\n\t\t\t\t\t\t\t\t\tMath.max(texture._width * resMult, 1),\n\t\t\t\t\t\t\t\t\tMath.max(texture._height * resMult, 1),\n\t\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t\tthis._glFormat,\n\t\t\t\t\t\t\t\t\tthis._glPixelType,\n\t\t\t\t\t\t\t\t\ttexData\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (texture._volume) {\n\t\t\t\tif (texture._compressed) {\n\t\t\t\t\tgl.compressedTexImage3D(\n\t\t\t\t\t\tgl.TEXTURE_3D,\n\t\t\t\t\t\tmipLevel,\n\t\t\t\t\t\tthis._glInternalFormat,\n\t\t\t\t\t\tMath.max(texture._width * resMult, 1),\n\t\t\t\t\t\tMath.max(texture._height * resMult, 1),\n\t\t\t\t\t\tMath.max(texture._depth * resMult, 1),\n\t\t\t\t\t\t0,\n\t\t\t\t\t\tmipObject\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tdevice.setUnpackFlipY(false);\n\t\t\t\t\tdevice.setUnpackPremultiplyAlpha(texture._premultiplyAlpha);\n\t\t\t\t\tdevice.setUnpackAlignment(1);\n\t\t\t\t\tgl.texImage3D(\n\t\t\t\t\t\tgl.TEXTURE_3D,\n\t\t\t\t\t\tmipLevel,\n\t\t\t\t\t\tthis._glInternalFormat,\n\t\t\t\t\t\tMath.max(texture._width * resMult, 1),\n\t\t\t\t\t\tMath.max(texture._height * resMult, 1),\n\t\t\t\t\t\tMath.max(texture._depth * resMult, 1),\n\t\t\t\t\t\t0,\n\t\t\t\t\t\tthis._glFormat,\n\t\t\t\t\t\tthis._glPixelType,\n\t\t\t\t\t\tmipObject\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} else if (texture.array) {\n\t\t\t\tif (Array.isArray(mipObject) && texture._arrayLength === mipObject.length) {\n\t\t\t\t\tif (texture._compressed) {\n\t\t\t\t\t\tfor (let index = 0; index < texture._arrayLength; index++) {\n\t\t\t\t\t\t\tgl.compressedTexSubImage3D(\n\t\t\t\t\t\t\t\tgl.TEXTURE_2D_ARRAY,\n\t\t\t\t\t\t\t\tmipLevel,\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tindex,\n\t\t\t\t\t\t\t\tMath.max(Math.floor(texture._width * resMult), 1),\n\t\t\t\t\t\t\t\tMath.max(Math.floor(texture._height * resMult), 1),\n\t\t\t\t\t\t\t\t1,\n\t\t\t\t\t\t\t\tthis._glInternalFormat,\n\t\t\t\t\t\t\t\tmipObject[index]\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdevice.setUnpackAlignment(1);\n\t\t\t\t\t\tfor (let index = 0; index < texture._arrayLength; index++) {\n\t\t\t\t\t\t\tgl.texSubImage3D(\n\t\t\t\t\t\t\t\tgl.TEXTURE_2D_ARRAY,\n\t\t\t\t\t\t\t\tmipLevel,\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tindex,\n\t\t\t\t\t\t\t\tMath.max(Math.floor(texture._width * resMult), 1),\n\t\t\t\t\t\t\t\tMath.max(Math.floor(texture._height * resMult), 1),\n\t\t\t\t\t\t\t\t1,\n\t\t\t\t\t\t\t\tthis._glFormat,\n\t\t\t\t\t\t\t\tthis._glPixelType,\n\t\t\t\t\t\t\t\tmipObject[index]\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (device._isBrowserInterface(mipObject)) {\n\t\t\t\t\tif (device._isHTMLElementInterface(mipObject) && device.supportsHtmlTextures) {\n\t\t\t\t\t\tdevice.setUnpackFlipY(texture._flipY);\n\t\t\t\t\t\tdevice.setUnpackPremultiplyAlpha(texture._premultiplyAlpha);\n\t\t\t\t\t\tconst rect = mipObject.getBoundingClientRect();\n\t\t\t\t\t\tconst w = Math.floor(rect.width) || texture._width;\n\t\t\t\t\t\tconst h2 = Math.floor(rect.height) || texture._height;\n\t\t\t\t\t\tgl.texElementImage2D(\n\t\t\t\t\t\t\tgl.TEXTURE_2D,\n\t\t\t\t\t\t\tthis._glInternalFormat,\n\t\t\t\t\t\t\tmipObject\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif (mipLevel === 0) {\n\t\t\t\t\t\t\ttexture._width = w;\n\t\t\t\t\t\t\ttexture._height = h2;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (device._isImageBrowserInterface(mipObject)) {\n\t\t\t\t\t\t\tif (mipObject.width > device.maxTextureSize || mipObject.height > device.maxTextureSize) {\n\t\t\t\t\t\t\t\tmipObject = downsampleImage(mipObject, device.maxTextureSize);\n\t\t\t\t\t\t\t\tif (mipLevel === 0) {\n\t\t\t\t\t\t\t\t\ttexture._width = mipObject.width;\n\t\t\t\t\t\t\t\t\ttexture._height = mipObject.height;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst w = mipObject.width || mipObject.videoWidth;\n\t\t\t\t\t\tconst h2 = mipObject.height || mipObject.videoHeight;\n\t\t\t\t\t\tdevice.setUnpackFlipY(texture._flipY);\n\t\t\t\t\t\tdevice.setUnpackPremultiplyAlpha(texture._premultiplyAlpha);\n\t\t\t\t\t\tif (this._glCreated && texture._width === w && texture._height === h2 && !device._isImageVideoInterface(mipObject)) {\n\t\t\t\t\t\t\tgl.texSubImage2D(\n\t\t\t\t\t\t\t\tgl.TEXTURE_2D,\n\t\t\t\t\t\t\t\tmipLevel,\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tthis._glFormat,\n\t\t\t\t\t\t\t\tthis._glPixelType,\n\t\t\t\t\t\t\t\tmipObject\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tgl.texImage2D(\n\t\t\t\t\t\t\t\tgl.TEXTURE_2D,\n\t\t\t\t\t\t\t\tmipLevel,\n\t\t\t\t\t\t\t\tthis._glInternalFormat,\n\t\t\t\t\t\t\t\tthis._glFormat,\n\t\t\t\t\t\t\t\tthis._glPixelType,\n\t\t\t\t\t\t\t\tmipObject\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tif (mipLevel === 0) {\n\t\t\t\t\t\t\t\ttexture._width = w;\n\t\t\t\t\t\t\t\ttexture._height = h2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tresMult = 1 / Math.pow(2, mipLevel);\n\t\t\t\t\tif (texture._compressed) {\n\t\t\t\t\t\tif (this._glCreated && mipObject) {\n\t\t\t\t\t\t\tgl.compressedTexSubImage2D(\n\t\t\t\t\t\t\t\tgl.TEXTURE_2D,\n\t\t\t\t\t\t\t\tmipLevel,\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tMath.max(Math.floor(texture._width * resMult), 1),\n\t\t\t\t\t\t\t\tMath.max(Math.floor(texture._height * resMult), 1),\n\t\t\t\t\t\t\t\tthis._glInternalFormat,\n\t\t\t\t\t\t\t\tmipObject\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tgl.compressedTexImage2D(\n\t\t\t\t\t\t\t\tgl.TEXTURE_2D,\n\t\t\t\t\t\t\t\tmipLevel,\n\t\t\t\t\t\t\t\tthis._glInternalFormat,\n\t\t\t\t\t\t\t\tMath.max(Math.floor(texture._width * resMult), 1),\n\t\t\t\t\t\t\t\tMath.max(Math.floor(texture._height * resMult), 1),\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tmipObject\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdevice.setUnpackFlipY(false);\n\t\t\t\t\t\tdevice.setUnpackPremultiplyAlpha(texture._premultiplyAlpha);\n\t\t\t\t\t\tdevice.setUnpackAlignment(1);\n\t\t\t\t\t\tif (this._glCreated && mipObject) {\n\t\t\t\t\t\t\tgl.texSubImage2D(\n\t\t\t\t\t\t\t\tgl.TEXTURE_2D,\n\t\t\t\t\t\t\t\tmipLevel,\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tMath.max(texture._width * resMult, 1),\n\t\t\t\t\t\t\t\tMath.max(texture._height * resMult, 1),\n\t\t\t\t\t\t\t\tthis._glFormat,\n\t\t\t\t\t\t\t\tthis._glPixelType,\n\t\t\t\t\t\t\t\tmipObject\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tgl.texImage2D(\n\t\t\t\t\t\t\t\tgl.TEXTURE_2D,\n\t\t\t\t\t\t\t\tmipLevel,\n\t\t\t\t\t\t\t\tthis._glInternalFormat,\n\t\t\t\t\t\t\t\tMath.max(texture._width * resMult, 1),\n\t\t\t\t\t\t\t\tMath.max(texture._height * resMult, 1),\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tthis._glFormat,\n\t\t\t\t\t\t\t\tthis._glPixelType,\n\t\t\t\t\t\t\t\tmipObject\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (mipLevel === 0) {\n\t\t\t\t\ttexture._mipmapsUploaded = false;\n\t\t\t\t} else {\n\t\t\t\t\ttexture._mipmapsUploaded = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tmipLevel++;\n\t\t}\n\t\tif (texture._needsUpload) {\n\t\t\tif (texture._cubemap) {\n\t\t\t\tfor (let i2 = 0; i2 < 6; i2++) {\n\t\t\t\t\ttexture._levelsUpdated[0][i2] = false;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ttexture._levelsUpdated[0] = false;\n\t\t\t}\n\t\t}\n\t\tif (!texture._compressed && !texture._integerFormat && texture._mipmaps && texture._needsMipmapsUpload && texture._levels.length === 1) {\n\t\t\tgl.generateMipmap(this._glTarget);\n\t\t\ttexture._mipmapsUploaded = true;\n\t\t}\n\t\tif (texture._gpuSize) {\n\t\t\ttexture.adjustVramSizeTracking(device._vram, -texture._gpuSize);\n\t\t}\n\t\ttexture._gpuSize = texture.gpuSize;\n\t\ttexture.adjustVramSizeTracking(device._vram, texture._gpuSize);\n\t\tif (texture.releaseSourceAfterUpload) {\n\t\t\ttexture.releaseImageSources();\n\t\t}\n\t\tthis._glCreated = true;\n\t}\n\tuploadImmediate(device, texture) {\n\t\tif (texture._needsUpload || texture._needsMipmapsUpload) {\n\t\t\tdevice.setTexture(texture, 0);\n\t\t\ttexture._needsUpload = false;\n\t\t\ttexture._needsMipmapsUpload = false;\n\t\t}\n\t}\n\tread(x3, y2, width, height, options2) {\n\t\tconst texture = this.texture;\n\t\tconst device = texture.device;\n\t\treturn device.readTextureAsync(texture, x3, y2, width, height, options2);\n\t}\n\twrite(x3, y2, width, height, data2) {\n\t\tconst { texture } = this;\n\t\tconst { device } = texture;\n\t\tdevice.setTexture(texture, 0);\n\t\treturn device.writeTextureAsync(texture, x3, y2, width, height, data2);\n\t}\n\tcopy(source, options2) {\n\t\treturn this.texture.device.copyTextureToTexture(source, this.texture, options2);\n\t}\n};\n\nvar _validatedFboConfigs = new DeviceCache();\nvar FramebufferPair = class {\n\tmsaaFB;\n\tresolveFB;\n\tconstructor(msaaFB, resolveFB) {\n\t\tthis.msaaFB = msaaFB;\n\t\tthis.resolveFB = resolveFB;\n\t}\n\tdestroy(gl) {\n\t\tif (this.msaaFB) {\n\t\t\tgl.deleteRenderbuffer(this.msaaFB);\n\t\t\tthis.msaaFB = null;\n\t\t}\n\t\tif (this.resolveFB) {\n\t\t\tgl.deleteRenderbuffer(this.resolveFB);\n\t\t\tthis.resolveFB = null;\n\t\t}\n\t}\n};\nvar WebglRenderTarget = class {\n\t_glFrameBuffer = null;\n\t_glDepthBuffer = null;\n\t_glResolveFrameBuffer = null;\n\tcolorMrtFramebuffers = null;\n\t_glMsaaColorBuffers = [];\n\t_glMsaaDepthBuffer = null;\n\tmsaaDepthBufferKey;\n\tsuppliedColorFramebuffer;\n\t_isInitialized = false;\n\tdestroy(device) {\n\t\tconst gl = device.gl;\n\t\tthis._isInitialized = false;\n\t\tif (this._glFrameBuffer) {\n\t\t\tif (this._glFrameBuffer !== this.suppliedColorFramebuffer) {\n\t\t\t\tgl.deleteFramebuffer(this._glFrameBuffer);\n\t\t\t}\n\t\t\tthis._glFrameBuffer = null;\n\t\t}\n\t\tif (this._glDepthBuffer) {\n\t\t\tgl.deleteRenderbuffer(this._glDepthBuffer);\n\t\t\tthis._glDepthBuffer = null;\n\t\t}\n\t\tif (this._glResolveFrameBuffer) {\n\t\t\tif (this._glResolveFrameBuffer !== this.suppliedColorFramebuffer) {\n\t\t\t\tgl.deleteFramebuffer(this._glResolveFrameBuffer);\n\t\t\t}\n\t\t\tthis._glResolveFrameBuffer = null;\n\t\t}\n\t\tthis._glMsaaColorBuffers.forEach((buffer) => {\n\t\t\tgl.deleteRenderbuffer(buffer);\n\t\t});\n\t\tthis._glMsaaColorBuffers.length = 0;\n\t\tthis.colorMrtFramebuffers?.forEach((framebuffer) => {\n\t\t\tframebuffer.destroy(gl);\n\t\t});\n\t\tthis.colorMrtFramebuffers = null;\n\t\tif (this._glMsaaDepthBuffer) {\n\t\t\tthis._glMsaaDepthBuffer = null;\n\t\t\tif (this.msaaDepthBufferKey) {\n\t\t\t\tgetMultisampledTextureCache(device).release(this.msaaDepthBufferKey);\n\t\t\t}\n\t\t}\n\t\tthis.suppliedColorFramebuffer = void 0;\n\t}\n\tget initialized() {\n\t\treturn this._isInitialized;\n\t}\n\tinit(device, target2) {\n\t\tconst gl = device.gl;\n\t\tthis._isInitialized = true;\n\t\tconst buffers = [];\n\t\tif (this.suppliedColorFramebuffer !== void 0) {\n\t\t\tthis._glFrameBuffer = this.suppliedColorFramebuffer;\n\t\t} else {\n\t\t\tthis._glFrameBuffer = gl.createFramebuffer();\n\t\t\tdevice.setFramebuffer(this._glFrameBuffer);\n\t\t\tconst colorBufferCount = target2._colorBuffers?.length ?? 0;\n\t\t\tconst attachmentBaseConstant = gl.COLOR_ATTACHMENT0;\n\t\t\tfor (let i2 = 0; i2 < colorBufferCount; ++i2) {\n\t\t\t\tconst colorBuffer = target2.getColorBuffer(i2);\n\t\t\t\tif (colorBuffer) {\n\t\t\t\t\tif (!colorBuffer.impl._glTexture) {\n\t\t\t\t\t\tcolorBuffer._width = Math.min(colorBuffer.width, device.maxRenderBufferSize);\n\t\t\t\t\t\tcolorBuffer._height = Math.min(colorBuffer.height, device.maxRenderBufferSize);\n\t\t\t\t\t\tdevice.setTexture(colorBuffer, 0);\n\t\t\t\t\t}\n\t\t\t\t\tgl.framebufferTexture2D(\n\t\t\t\t\t\tgl.FRAMEBUFFER,\n\t\t\t\t\t\tattachmentBaseConstant + i2,\n\t\t\t\t\t\tcolorBuffer._cubemap ? gl.TEXTURE_CUBE_MAP_POSITIVE_X + target2._face : gl.TEXTURE_2D,\n\t\t\t\t\t\tcolorBuffer.impl._glTexture,\n\t\t\t\t\t\ttarget2.mipLevel\n\t\t\t\t\t);\n\t\t\t\t\tbuffers.push(attachmentBaseConstant + i2);\n\t\t\t\t}\n\t\t\t}\n\t\t\tgl.drawBuffers(buffers);\n\t\t\tconst depthBuffer = target2._depthBuffer;\n\t\t\tif (depthBuffer || target2._depth) {\n\t\t\t\tconst attachmentPoint = target2._stencil ? gl.DEPTH_STENCIL_ATTACHMENT : gl.DEPTH_ATTACHMENT;\n\t\t\t\tif (depthBuffer) {\n\t\t\t\t\tif (!depthBuffer.impl._glTexture) {\n\t\t\t\t\t\tdepthBuffer._width = Math.min(depthBuffer.width, device.maxRenderBufferSize);\n\t\t\t\t\t\tdepthBuffer._height = Math.min(depthBuffer.height, device.maxRenderBufferSize);\n\t\t\t\t\t\tdevice.setTexture(depthBuffer, 0);\n\t\t\t\t\t}\n\t\t\t\t\tgl.framebufferTexture2D(\n\t\t\t\t\t\tgl.FRAMEBUFFER,\n\t\t\t\t\t\tattachmentPoint,\n\t\t\t\t\t\tdepthBuffer._cubemap ? gl.TEXTURE_CUBE_MAP_POSITIVE_X + target2._face : gl.TEXTURE_2D,\n\t\t\t\t\t\ttarget2._depthBuffer.impl._glTexture,\n\t\t\t\t\t\ttarget2.mipLevel\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tconst willRenderMsaa = target2._samples > 1;\n\t\t\t\t\tif (!willRenderMsaa) {\n\t\t\t\t\t\tif (!this._glDepthBuffer) {\n\t\t\t\t\t\t\tthis._glDepthBuffer = gl.createRenderbuffer();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst internalFormat = target2._stencil ? gl.DEPTH24_STENCIL8 : gl.DEPTH_COMPONENT32F;\n\t\t\t\t\t\tgl.bindRenderbuffer(gl.RENDERBUFFER, this._glDepthBuffer);\n\t\t\t\t\t\tgl.renderbufferStorage(gl.RENDERBUFFER, internalFormat, target2.width, target2.height);\n\t\t\t\t\t\tgl.framebufferRenderbuffer(gl.FRAMEBUFFER, attachmentPoint, gl.RENDERBUFFER, this._glDepthBuffer);\n\t\t\t\t\t\tgl.bindRenderbuffer(gl.RENDERBUFFER, null);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (target2._samples > 1) {\n\t\t\tthis._glResolveFrameBuffer = this._glFrameBuffer;\n\t\t\tthis._glFrameBuffer = gl.createFramebuffer();\n\t\t\tdevice.setFramebuffer(this._glFrameBuffer);\n\t\t\tconst colorBufferCount = target2._colorBuffers?.length ?? 0;\n\t\t\tif (this.suppliedColorFramebuffer !== void 0) {\n\t\t\t\tconst buffer = gl.createRenderbuffer();\n\t\t\t\tthis._glMsaaColorBuffers.push(buffer);\n\t\t\t\tconst internalFormat = device.backBufferFormat === PIXELFORMAT_RGBA8 ? gl.RGBA8 : gl.RGB8;\n\t\t\t\tgl.bindRenderbuffer(gl.RENDERBUFFER, buffer);\n\t\t\t\tgl.renderbufferStorageMultisample(gl.RENDERBUFFER, target2._samples, internalFormat, target2.width, target2.height);\n\t\t\t\tgl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.RENDERBUFFER, buffer);\n\t\t\t} else {\n\t\t\t\tfor (let i2 = 0; i2 < colorBufferCount; ++i2) {\n\t\t\t\t\tconst colorBuffer = target2.getColorBuffer(i2);\n\t\t\t\t\tif (colorBuffer) {\n\t\t\t\t\t\tconst buffer = gl.createRenderbuffer();\n\t\t\t\t\t\tthis._glMsaaColorBuffers.push(buffer);\n\t\t\t\t\t\tgl.bindRenderbuffer(gl.RENDERBUFFER, buffer);\n\t\t\t\t\t\tgl.renderbufferStorageMultisample(gl.RENDERBUFFER, target2._samples, colorBuffer.impl._glInternalFormat, target2.width, target2.height);\n\t\t\t\t\t\tgl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + i2, gl.RENDERBUFFER, buffer);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (target2._depth) {\n\t\t\t\tconst internalFormat = target2._stencil ? gl.DEPTH24_STENCIL8 : gl.DEPTH_COMPONENT32F;\n\t\t\t\tconst attachmentPoint = target2._stencil ? gl.DEPTH_STENCIL_ATTACHMENT : gl.DEPTH_ATTACHMENT;\n\t\t\t\tlet key;\n\t\t\t\tconst depthBuffer = target2._depthBuffer;\n\t\t\t\tif (depthBuffer) {\n\t\t\t\t\tkey = `${depthBuffer.id}:${target2.width}:${target2.height}:${target2._samples}:${internalFormat}:${attachmentPoint}`;\n\t\t\t\t\tthis._glMsaaDepthBuffer = getMultisampledTextureCache(device).get(key);\n\t\t\t\t}\n\t\t\t\tif (!this._glMsaaDepthBuffer) {\n\t\t\t\t\tthis._glMsaaDepthBuffer = gl.createRenderbuffer();\n\t\t\t\t\tgl.bindRenderbuffer(gl.RENDERBUFFER, this._glMsaaDepthBuffer);\n\t\t\t\t\tgl.renderbufferStorageMultisample(gl.RENDERBUFFER, target2._samples, internalFormat, target2.width, target2.height);\n\t\t\t\t\tthis._glMsaaDepthBuffer.destroy = function() {\n\t\t\t\t\t\tgl.deleteRenderbuffer(this);\n\t\t\t\t\t};\n\t\t\t\t\tif (depthBuffer) {\n\t\t\t\t\t\tgetMultisampledTextureCache(device).set(key, this._glMsaaDepthBuffer);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.msaaDepthBufferKey = key;\n\t\t\t\tgl.framebufferRenderbuffer(gl.FRAMEBUFFER, attachmentPoint, gl.RENDERBUFFER, this._glMsaaDepthBuffer);\n\t\t\t}\n\t\t\tif (colorBufferCount > 1) {\n\t\t\t\tthis._createMsaaMrtFramebuffers(device, target2, colorBufferCount);\n\t\t\t\tdevice.setFramebuffer(this._glFrameBuffer);\n\t\t\t\tgl.drawBuffers(buffers);\n\t\t\t}\n\t\t}\n\t}\n\t_createMsaaMrtFramebuffers(device, target2, colorBufferCount) {\n\t\tconst gl = device.gl;\n\t\tthis.colorMrtFramebuffers = [];\n\t\tfor (let i2 = 0; i2 < colorBufferCount; ++i2) {\n\t\t\tconst colorBuffer = target2.getColorBuffer(i2);\n\t\t\tconst srcFramebuffer = gl.createFramebuffer();\n\t\t\tdevice.setFramebuffer(srcFramebuffer);\n\t\t\tconst buffer = this._glMsaaColorBuffers[i2];\n\t\t\tgl.bindRenderbuffer(gl.RENDERBUFFER, buffer);\n\t\t\tgl.renderbufferStorageMultisample(gl.RENDERBUFFER, target2._samples, colorBuffer.impl._glInternalFormat, target2.width, target2.height);\n\t\t\tgl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.RENDERBUFFER, buffer);\n\t\t\tgl.drawBuffers([gl.COLOR_ATTACHMENT0]);\n\t\t\tconst dstFramebuffer = gl.createFramebuffer();\n\t\t\tdevice.setFramebuffer(dstFramebuffer);\n\t\t\tgl.framebufferTexture2D(\n\t\t\t\tgl.FRAMEBUFFER,\n\t\t\t\tgl.COLOR_ATTACHMENT0,\n\t\t\t\tcolorBuffer._cubemap ? gl.TEXTURE_CUBE_MAP_POSITIVE_X + target2._face : gl.TEXTURE_2D,\n\t\t\t\tcolorBuffer.impl._glTexture,\n\t\t\t\t0\n\t\t\t);\n\t\t\tthis.colorMrtFramebuffers[i2] = new FramebufferPair(srcFramebuffer, dstFramebuffer);\n\t\t}\n\t}\n\t_checkFbo(device, target2, type = \"\") {\n\t\tconst colorFormats = target2._colorBuffers?.map((b) => b?.format ?? -1).join(\",\") ?? \"\";\n\t\tconst depthInfo = target2._depth ? target2._depthBuffer ? `dt${target2._depthBuffer.format}` : target2._stencil ? \"ds\" : \"d\" : \"\";\n\t\tconst key = `${type}:${colorFormats}:${depthInfo}:${target2._samples}`;\n\t\tconst validated = _validatedFboConfigs.get(device, () => {\n\t\t\tconst set = /* @__PURE__ */ new Set();\n\t\t\tset.loseContext = () => set.clear();\n\t\t\treturn set;\n\t\t});\n\t\tif (validated.has(key)) {\n\t\t\treturn;\n\t\t}\n\t\tconst gl = device.gl;\n\t\tconst status = gl.checkFramebufferStatus(gl.FRAMEBUFFER);\n\t\tlet errorCode;\n\t\tswitch (status) {\n\t\t\tcase gl.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:\n\t\t\t\terrorCode = \"FRAMEBUFFER_INCOMPLETE_ATTACHMENT\";\n\t\t\t\tbreak;\n\t\t\tcase gl.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:\n\t\t\t\terrorCode = \"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT\";\n\t\t\t\tbreak;\n\t\t\tcase gl.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:\n\t\t\t\terrorCode = \"FRAMEBUFFER_INCOMPLETE_DIMENSIONS\";\n\t\t\t\tbreak;\n\t\t\tcase gl.FRAMEBUFFER_UNSUPPORTED:\n\t\t\t\terrorCode = \"FRAMEBUFFER_UNSUPPORTED\";\n\t\t\t\tbreak;\n\t\t}\n\t\tif (status === gl.FRAMEBUFFER_COMPLETE) {\n\t\t\tvalidated.add(key);\n\t\t}\n\t}\n\tloseContext() {\n\t\tthis._glFrameBuffer = null;\n\t\tthis._glDepthBuffer = null;\n\t\tthis._glResolveFrameBuffer = null;\n\t\tthis._glMsaaColorBuffers.length = 0;\n\t\tthis._glMsaaDepthBuffer = null;\n\t\tthis.msaaDepthBufferKey = void 0;\n\t\tthis.colorMrtFramebuffers = null;\n\t\tthis.suppliedColorFramebuffer = void 0;\n\t\tthis._isInitialized = false;\n\t}\n\tinternalResolve(device, src, dst, target2, mask) {\n\t\tdevice.setScissor(0, 0, target2.width, target2.height);\n\t\tconst gl = device.gl;\n\t\tgl.bindFramebuffer(gl.READ_FRAMEBUFFER, src);\n\t\tgl.bindFramebuffer(gl.DRAW_FRAMEBUFFER, dst);\n\t\tgl.blitFramebuffer(\n\t\t\t0,\n\t\t\t0,\n\t\t\ttarget2.width,\n\t\t\ttarget2.height,\n\t\t\t0,\n\t\t\t0,\n\t\t\ttarget2.width,\n\t\t\ttarget2.height,\n\t\t\tmask,\n\t\t\tgl.NEAREST\n\t\t);\n\t}\n\tresolve(device, target2, color3, depth) {\n\t\tconst gl = device.gl;\n\t\tif (this.colorMrtFramebuffers) {\n\t\t\tif (color3) {\n\t\t\t\tfor (let i2 = 0; i2 < this.colorMrtFramebuffers.length; i2++) {\n\t\t\t\t\tconst fbPair = this.colorMrtFramebuffers[i2];\n\t\t\t\t\tthis.internalResolve(device, fbPair.msaaFB, fbPair.resolveFB, target2, gl.COLOR_BUFFER_BIT);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (depth) {\n\t\t\t\tthis.internalResolve(device, this._glFrameBuffer, this._glResolveFrameBuffer, target2, gl.DEPTH_BUFFER_BIT);\n\t\t\t}\n\t\t} else {\n\t\t\tconst isXrFramebuffer = !!device.defaultFramebuffer && this._glResolveFrameBuffer === device.defaultFramebuffer;\n\t\t\tconst xrColorQuad = color3 && isXrFramebuffer && platform.visionos;\n\t\t\tif (xrColorQuad) {\n\t\t\t\tdevice.resolveMsaaColorToXrFramebufferViaQuads(\n\t\t\t\t\tthis._glFrameBuffer,\n\t\t\t\t\tthis._glResolveFrameBuffer,\n\t\t\t\t\ttarget2.width,\n\t\t\t\t\ttarget2.height\n\t\t\t\t);\n\t\t\t\tcolor3 = false;\n\t\t\t}\n\t\t\tif (color3 || depth) {\n\t\t\t\tthis.internalResolve(\n\t\t\t\t\tdevice,\n\t\t\t\t\tthis._glFrameBuffer,\n\t\t\t\t\tthis._glResolveFrameBuffer,\n\t\t\t\t\ttarget2,\n\t\t\t\t\t(color3 ? gl.COLOR_BUFFER_BIT : 0) | (depth ? gl.DEPTH_BUFFER_BIT : 0)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tgl.bindFramebuffer(gl.FRAMEBUFFER, this._glFrameBuffer);\n\t}\n};\n\nvar WebglUploadStream = class {\n\tavailablePBOs = [];\n\tpendingPBOs = [];\n\tconstructor(uploadStream) {\n\t\tthis.uploadStream = uploadStream;\n\t\tthis.useSingleBuffer = uploadStream.useSingleBuffer;\n\t}\n\tdestroy() {\n\t\tconst gl = this.uploadStream.device.gl;\n\t\tthis.availablePBOs.forEach((info) => gl.deleteBuffer(info.pbo));\n\t\tthis.pendingPBOs.forEach((item) => {\n\t\t\tif (item.sync) gl.deleteSync(item.sync);\n\t\t\tgl.deleteBuffer(item.pbo);\n\t\t});\n\t}\n\t_onDeviceLost() {\n\t\tthis.availablePBOs.length = 0;\n\t\tthis.pendingPBOs.length = 0;\n\t}\n\tupdate(minByteSize) {\n\t\tconst gl = this.uploadStream.device.gl;\n\t\tconst pending = this.pendingPBOs;\n\t\tfor (let i2 = pending.length - 1; i2 >= 0; i2--) {\n\t\t\tconst item = pending[i2];\n\t\t\tconst result = gl.clientWaitSync(item.sync, 0, 0);\n\t\t\tif (result === gl.CONDITION_SATISFIED || result === gl.ALREADY_SIGNALED) {\n\t\t\t\tgl.deleteSync(item.sync);\n\t\t\t\tthis.availablePBOs.push({ pbo: item.pbo, size: item.size });\n\t\t\t\tpending.splice(i2, 1);\n\t\t\t}\n\t\t}\n\t\tconst available = this.availablePBOs;\n\t\tfor (let i2 = available.length - 1; i2 >= 0; i2--) {\n\t\t\tif (available[i2].size < minByteSize) {\n\t\t\t\tgl.deleteBuffer(available[i2].pbo);\n\t\t\t\tavailable.splice(i2, 1);\n\t\t\t}\n\t\t}\n\t}\n\tupload(data2, target2, offset3, size) {\n\t\tif (this.useSingleBuffer) {\n\t\t\tthis.uploadDirect(data2, target2, offset3, size);\n\t\t} else {\n\t\t\tthis.uploadPBO(data2, target2, offset3, size);\n\t\t}\n\t}\n\tuploadDirect(data2, target2, offset3, size) {\n\t\tconst device = this.uploadStream.device;\n\t\tconst gl = device.gl;\n\t\tconst impl = target2.impl;\n\t\tdevice.setTexture(target2, 0);\n\t\tdevice.activeTexture(0);\n\t\tdevice.bindTexture(target2);\n\t\tdevice.setUnpackFlipY(false);\n\t\tdevice.setUnpackPremultiplyAlpha(false);\n\t\tdevice.setUnpackAlignment(data2.BYTES_PER_ELEMENT);\n\t\tlet src = data2;\n\t\tif (impl._glPixelType === gl.UNSIGNED_BYTE && data2.BYTES_PER_ELEMENT !== 1) {\n\t\t\tconst byteSize = size * data2.BYTES_PER_ELEMENT;\n\t\t\tsrc = new Uint8Array(data2.buffer, data2.byteOffset, byteSize);\n\t\t}\n\t\tgl.texImage2D(\n\t\t\tgl.TEXTURE_2D,\n\t\t\t0,\n\t\t\timpl._glInternalFormat,\n\t\t\ttarget2.width,\n\t\t\ttarget2.height,\n\t\t\t0,\n\t\t\timpl._glFormat,\n\t\t\timpl._glPixelType,\n\t\t\tsrc\n\t\t);\n\t\timpl._glCreated = true;\n\t}\n\tuploadPBO(data2, target2, offset3, size) {\n\t\tconst device = this.uploadStream.device;\n\t\tconst gl = device.gl;\n\t\tconst width = target2.width;\n\t\tconst byteSize = size * data2.BYTES_PER_ELEMENT;\n\t\tthis.update(byteSize);\n\t\tconst startY = offset3 / width;\n\t\tconst height = size / width;\n\t\tconst pboInfo = this.availablePBOs.pop() ?? (() => {\n\t\t\tconst pbo = gl.createBuffer();\n\t\t\treturn { pbo, size: byteSize };\n\t\t})();\n\t\tgl.bindBuffer(gl.PIXEL_UNPACK_BUFFER, pboInfo.pbo);\n\t\tgl.bufferData(gl.PIXEL_UNPACK_BUFFER, byteSize, gl.STREAM_DRAW);\n\t\tgl.bufferSubData(gl.PIXEL_UNPACK_BUFFER, 0, new Uint8Array(data2.buffer, data2.byteOffset, byteSize));\n\t\tgl.bindBuffer(gl.PIXEL_UNPACK_BUFFER, null);\n\t\tdevice.setTexture(target2, 0);\n\t\tdevice.activeTexture(0);\n\t\tdevice.bindTexture(target2);\n\t\tgl.bindBuffer(gl.PIXEL_UNPACK_BUFFER, pboInfo.pbo);\n\t\tdevice.setUnpackFlipY(false);\n\t\tdevice.setUnpackPremultiplyAlpha(false);\n\t\tdevice.setUnpackAlignment(data2.BYTES_PER_ELEMENT);\n\t\tgl.pixelStorei(gl.UNPACK_ROW_LENGTH, 0);\n\t\tgl.pixelStorei(gl.UNPACK_SKIP_ROWS, 0);\n\t\tgl.pixelStorei(gl.UNPACK_SKIP_PIXELS, 0);\n\t\tconst impl = target2.impl;\n\t\tgl.texSubImage2D(gl.TEXTURE_2D, 0, 0, startY, width, height, impl._glFormat, impl._glPixelType, 0);\n\t\tgl.bindBuffer(gl.PIXEL_UNPACK_BUFFER, null);\n\t\tconst sync = gl.fenceSync(gl.SYNC_GPU_COMMANDS_COMPLETE, 0);\n\t\tthis.pendingPBOs.push({ pbo: pboInfo.pbo, size: byteSize, sync });\n\t\tgl.flush();\n\t}\n};\n\nvar WebglXrBridge = class {\n\t_presentationLayer = null;\n\t_graphicsBinding = null;\n\t_cameraFbSource = null;\n\t_cameraFbDest = null;\n\tconstructor(xrBridge) {\n\t\tthis.xrBridge = xrBridge;\n\t}\n\tdestroy(device) {\n\t\tthis._graphicsBinding = null;\n\t\tthis._presentationLayer = null;\n\t\tthis._deleteCameraFramebuffers(device);\n\t}\n\t_deleteCameraFramebuffers(device) {\n\t\tif (this._cameraFbSource) {\n\t\t\tconst gl = device.gl;\n\t\t\tgl.deleteFramebuffer(this._cameraFbSource);\n\t\t\tthis._cameraFbSource = null;\n\t\t\tgl.deleteFramebuffer(this._cameraFbDest);\n\t\t\tthis._cameraFbDest = null;\n\t\t}\n\t}\n\tbeginFrame(frame, _referenceSpace) {\n\t\tconst baseLayer = frame.session.renderState.baseLayer;\n\t\tthis.xrBridge.device.defaultFramebuffer = baseLayer ? baseLayer.framebuffer : null;\n\t}\n\tendFrame() {\n\t\tthis.xrBridge.device.defaultFramebuffer = null;\n\t}\n\tget presentationLayer() {\n\t\treturn this._presentationLayer;\n\t}\n\tget graphicsBinding() {\n\t\treturn this._graphicsBinding;\n\t}\n\tgetFramebufferSize(frame, out) {\n\t\tconst baseLayer = frame.session.renderState.baseLayer;\n\t\tif (!baseLayer) {\n\t\t\tout.set(0, 0);\n\t\t\treturn;\n\t\t}\n\t\tout.set(baseLayer.framebufferWidth, baseLayer.framebufferHeight);\n\t}\n\tgetViewport(frame, xrView) {\n\t\tconst baseLayer = frame.session.renderState.baseLayer;\n\t\tif (!baseLayer) {\n\t\t\treturn { x: 0, y: 0, width: 0, height: 0 };\n\t\t}\n\t\treturn baseLayer.getViewport(xrView);\n\t}\n\tattachPresentation(session, options2) {\n\t\tconst device = this.xrBridge.device;\n\t\tthis._presentationLayer = new XRWebGLLayer(session, device.gl, {\n\t\t\talpha: true,\n\t\t\tdepth: true,\n\t\t\tstencil: true,\n\t\t\tframebufferScaleFactor: options2.framebufferScaleFactor,\n\t\t\tantialias: false\n\t\t});\n\t\tif (window.XRWebGLBinding) {\n\t\t\ttry {\n\t\t\t\tthis._graphicsBinding = new XRWebGLBinding(session, device.gl);\n\t\t\t} catch (ex) {\n\t\t\t\tthis.xrBridge._onBindingError?.(ex);\n\t\t\t}\n\t\t}\n\t\tsession.updateRenderState({\n\t\t\tbaseLayer: this._presentationLayer,\n\t\t\tdepthNear: options2.depthNear,\n\t\t\tdepthFar: options2.depthFar\n\t\t});\n\t}\n\treleasePresentation() {\n\t\tthis._graphicsBinding = null;\n\t}\n\tsyncCameraColorTexture(xrCamera, texture) {\n\t\tif (!this._graphicsBinding) {\n\t\t\treturn;\n\t\t}\n\t\tconst device = this.xrBridge.device;\n\t\tconst gl = device.gl;\n\t\tconst src = this._graphicsBinding.getCameraImage(xrCamera);\n\t\tif (!src) {\n\t\t\treturn;\n\t\t}\n\t\tif (!this._cameraFbSource) {\n\t\t\tthis._cameraFbSource = gl.createFramebuffer();\n\t\t\tthis._cameraFbDest = gl.createFramebuffer();\n\t\t}\n\t\tconst width = xrCamera.width;\n\t\tconst height = xrCamera.height;\n\t\tdevice.setFramebuffer(this._cameraFbSource);\n\t\tgl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, src, 0);\n\t\tdevice.setFramebuffer(this._cameraFbDest);\n\t\tgl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture.impl._glTexture, 0);\n\t\tgl.bindFramebuffer(gl.READ_FRAMEBUFFER, this._cameraFbSource);\n\t\tgl.bindFramebuffer(gl.DRAW_FRAMEBUFFER, this._cameraFbDest);\n\t\tgl.blitFramebuffer(0, height, width, 0, 0, 0, width, height, gl.COLOR_BUFFER_BIT, gl.NEAREST);\n\t\tdevice.setFramebuffer(device.defaultFramebuffer);\n\t}\n\tsyncCameraDepthTexture(depthInfo, texture, depthPixelFormat) {\n\t\tif (!depthInfo?.texture) {\n\t\t\treturn;\n\t\t}\n\t\tconst gl = this.xrBridge.device.gl;\n\t\ttexture.impl._glTexture = depthInfo.texture;\n\t\tif (depthInfo.textureType === \"texture-array\") {\n\t\t\ttexture.impl._glTarget = gl.TEXTURE_2D_ARRAY;\n\t\t} else {\n\t\t\ttexture.impl._glTarget = gl.TEXTURE_2D;\n\t\t}\n\t\tswitch (depthPixelFormat) {\n\t\t\tcase PIXELFORMAT_R32F:\n\t\t\t\ttexture.impl._glInternalFormat = gl.R32F;\n\t\t\t\ttexture.impl._glPixelType = gl.FLOAT;\n\t\t\t\ttexture.impl._glFormat = gl.RED;\n\t\t\t\tbreak;\n\t\t\tcase PIXELFORMAT_DEPTH:\n\t\t\t\ttexture.impl._glInternalFormat = gl.DEPTH_COMPONENT16;\n\t\t\t\ttexture.impl._glPixelType = gl.UNSIGNED_SHORT;\n\t\t\t\ttexture.impl._glFormat = gl.DEPTH_COMPONENT;\n\t\t\t\tbreak;\n\t\t}\n\t\ttexture.impl._glCreated = true;\n\t}\n\tonGraphicsDeviceLost() {\n\t\tconst session = this.xrBridge._session;\n\t\tif (!session) {\n\t\t\treturn;\n\t\t}\n\t\tconst rs = session.renderState;\n\t\tthis._graphicsBinding = null;\n\t\tthis._presentationLayer = null;\n\t\tthis._cameraFbSource = null;\n\t\tthis._cameraFbDest = null;\n\t\tsession.updateRenderState({\n\t\t\tbaseLayer: this._presentationLayer,\n\t\t\tdepthNear: rs.depthNear,\n\t\t\tdepthFar: rs.depthFar\n\t\t});\n\t}\n\tonGraphicsDeviceRestored() {\n\t\tconst bridge = this.xrBridge;\n\t\tif (!bridge._session) {\n\t\t\treturn;\n\t\t}\n\t\tconst device = bridge.device;\n\t\tconst eventHandler = bridge.eventHandler;\n\t\tsetTimeout(() => {\n\t\t\tif (!bridge._session) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tdevice.gl.makeXRCompatible().then(() => {\n\t\t\t\tif (!bridge._session) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst rs = bridge._session.renderState;\n\t\t\t\tbridge.attachPresentation(bridge._session, {\n\t\t\t\t\tframebufferScaleFactor: bridge._framebufferScaleFactor,\n\t\t\t\t\tdepthNear: rs.depthNear,\n\t\t\t\t\tdepthFar: rs.depthFar,\n\t\t\t\t\tonBindingError: bridge._onBindingError\n\t\t\t\t});\n\t\t\t}).catch((ex) => {\n\t\t\t\teventHandler.fire(\"error\", ex);\n\t\t\t});\n\t\t}, 0);\n\t}\n};\n\nvar _quadPrimitive = {\n\ttype: PRIMITIVE_TRIANGLES,\n\tbase: 0,\n\tcount: 6,\n\tindexed: true\n};\nvar vsSrc = `\n\tattribute vec2 vertex_position;\n\tvarying vec2 pcTexCoord;\n\tvoid main() {\n\t\tgl_Position = vec4(vertex_position, 0.0, 1.0);\n\t\tpcTexCoord = vertex_position * 0.5 + 0.5;\n\t}\n`;\nvar fsSrc = `\n\tuniform sampler2D pcSource;\n\tvarying vec2 pcTexCoord;\n\tvoid main() {\n\t\tgl_FragColor = texture2D(pcSource, pcTexCoord);\n\t}\n`;\nvar WebglXrMsaaCopy = class {\n\t_device;\n\t_shader = null;\n\t_scratchTex = null;\n\t_scratchRt = null;\n\t_sourceId = null;\n\tconstructor(device) {\n\t\tthis._device = device;\n\t}\n\t_getShader() {\n\t\tif (!this._shader) {\n\t\t\tconst device = this._device;\n\t\t\tthis._shader = new Shader(device, ShaderDefinitionUtils.createDefinition(device, {\n\t\t\t\tname: \"XrMsaaCopy\",\n\t\t\t\tattributes: { vertex_position: SEMANTIC_POSITION },\n\t\t\t\tvertexCode: vsSrc,\n\t\t\t\tfragmentCode: fsSrc\n\t\t\t}));\n\t\t\tthis._sourceId = device.scope.resolve(\"pcSource\");\n\t\t}\n\t\treturn this._shader;\n\t}\n\t_ensureScratch(width, height) {\n\t\tconst device = this._device;\n\t\tif (this._scratchTex && (this._scratchTex.width !== width || this._scratchTex.height !== height)) {\n\t\t\tthis._scratchRt.destroy();\n\t\t\tthis._scratchRt = null;\n\t\t\tthis._scratchTex.destroy();\n\t\t\tthis._scratchTex = null;\n\t\t}\n\t\tif (!this._scratchTex) {\n\t\t\tthis._scratchTex = Texture.createDataTexture2D(device, \"XrMsaaScratch\", width, height, device.backBufferFormat);\n\t\t\tthis._scratchRt = new RenderTarget({\n\t\t\t\tcolorBuffer: this._scratchTex,\n\t\t\t\tdepth: false,\n\t\t\t\tstencil: false\n\t\t\t});\n\t\t}\n\t\tif (!this._scratchRt.impl.initialized) {\n\t\t\tthis._scratchRt.impl.init(device, this._scratchRt);\n\t\t}\n\t}\n\tcopy(msaaReadFbo, xrDrawFbo, width, height) {\n\t\tthis._ensureScratch(width, height);\n\t\tconst device = this._device;\n\t\tconst gl = device.gl;\n\t\tgl.bindFramebuffer(gl.READ_FRAMEBUFFER, msaaReadFbo);\n\t\tgl.bindFramebuffer(gl.DRAW_FRAMEBUFFER, this._scratchRt.impl._glFrameBuffer);\n\t\tgl.blitFramebuffer(0, 0, width, height, 0, 0, width, height, gl.COLOR_BUFFER_BIT, gl.NEAREST);\n\t\tdevice.setDrawStates(BlendState.NOBLEND, DepthState.NODEPTH);\n\t\tdevice.setFramebuffer(xrDrawFbo);\n\t\tdevice.setShader(this._getShader());\n\t\tdevice.clearVertexBuffer();\n\t\tdevice.setVertexBuffer(device.quadVertexBuffer);\n\t\tthis._sourceId.setValue(this._scratchTex);\n\t\tconst { vx, vy, vw, vh, sx, sy, sw, sh } = device;\n\t\tdevice.setViewport(0, 0, width, height);\n\t\tdevice.setScissor(0, 0, width, height);\n\t\tdevice.draw(_quadPrimitive, device.quadIndexBuffer);\n\t\tdevice.setViewport(vx, vy, vw, vh);\n\t\tdevice.setScissor(sx, sy, sw, sh);\n\t\tdevice.setFramebuffer(msaaReadFbo);\n\t}\n\tdestroy() {\n\t\tthis._shader?.destroy();\n\t\tthis._shader = null;\n\t\tthis._scratchRt?.destroy();\n\t\tthis._scratchRt = null;\n\t\tthis._scratchTex?.destroy();\n\t\tthis._scratchTex = null;\n\t\tthis._sourceId = null;\n\t}\n};\n\nvar FrameQueriesInfo = class {\n\trenderVersion;\n\tqueries = [];\n\tdestroy(gl) {\n\t\tthis.queries.forEach((query) => gl.deleteQuery(query));\n\t\tthis.queries = null;\n\t}\n};\nvar WebglGpuProfiler = class extends GpuProfiler {\n\tdevice;\n\tfreeQueries = [];\n\tframeQueries = [];\n\tpreviousFrameQueries = [];\n\ttimings = [];\n\tconstructor(device) {\n\t\tsuper();\n\t\tthis.device = device;\n\t\tthis.ext = device.extDisjointTimerQuery;\n\t}\n\tdestroy() {\n\t\tthis.freeQueries.forEach((query) => this.device.gl.deleteQuery(query));\n\t\tthis.frameQueries.forEach((query) => this.device.gl.deleteQuery(query));\n\t\tthis.previousFrameQueries.forEach((frameQueriesInfo) => frameQueriesInfo.destroy(this.device.gl));\n\t\tthis.freeQueries = null;\n\t\tthis.frameQueries = null;\n\t\tthis.previousFrameQueries = null;\n\t}\n\tloseContext() {\n\t\tsuper.loseContext();\n\t\tthis.freeQueries = [];\n\t\tthis.frameQueries = [];\n\t\tthis.previousFrameQueries = [];\n\t}\n\trestoreContext() {\n\t\tthis.ext = this.device.extDisjointTimerQuery;\n\t}\n\tgetQuery() {\n\t\treturn this.freeQueries.pop() ?? this.device.gl.createQuery();\n\t}\n\tstart(name) {\n\t\tif (this.ext) {\n\t\t\tconst slot = this.getSlot(name);\n\t\t\tconst query = this.getQuery();\n\t\t\tthis.frameQueries[slot] = query;\n\t\t\tthis.device.gl.beginQuery(this.ext.TIME_ELAPSED_EXT, query);\n\t\t\treturn slot;\n\t\t}\n\t\treturn void 0;\n\t}\n\tend(slot) {\n\t\tif (slot !== void 0) {\n\t\t\tthis.device.gl.endQuery(this.ext.TIME_ELAPSED_EXT);\n\t\t}\n\t}\n\tframeStart() {\n\t\tthis.processEnableRequest();\n\t\tif (this._enabled) {\n\t\t\tthis.frameGPUMarkerSlot = this.start(\"GpuFrame\");\n\t\t}\n\t}\n\tframeEnd() {\n\t\tif (this._enabled) {\n\t\t\tthis.end(this.frameGPUMarkerSlot);\n\t\t}\n\t}\n\trequest() {\n\t\tif (this._enabled) {\n\t\t\tconst ext = this.ext;\n\t\t\tconst gl = this.device.gl;\n\t\t\tconst renderVersion = this.device.renderVersion;\n\t\t\tconst frameQueries = this.frameQueries;\n\t\t\tif (frameQueries.length > 0) {\n\t\t\t\tthis.frameQueries = [];\n\t\t\t\tconst frameQueriesInfo = new FrameQueriesInfo();\n\t\t\t\tframeQueriesInfo.queries = frameQueries;\n\t\t\t\tframeQueriesInfo.renderVersion = renderVersion;\n\t\t\t\tthis.previousFrameQueries.push(frameQueriesInfo);\n\t\t\t}\n\t\t\tif (this.previousFrameQueries.length > 0) {\n\t\t\t\tconst previousQueriesInfo = this.previousFrameQueries[0];\n\t\t\t\tconst previousQueries = previousQueriesInfo.queries;\n\t\t\t\tconst lastQuery = previousQueries[previousQueries.length - 1];\n\t\t\t\tconst available = gl.getQueryParameter(lastQuery, gl.QUERY_RESULT_AVAILABLE);\n\t\t\t\tconst disjoint = gl.getParameter(ext.GPU_DISJOINT_EXT);\n\t\t\t\tif (available && !disjoint) {\n\t\t\t\t\tthis.previousFrameQueries.shift();\n\t\t\t\t\tconst timings = this.timings;\n\t\t\t\t\ttimings.length = 0;\n\t\t\t\t\tfor (let i2 = 0; i2 < previousQueries.length; i2++) {\n\t\t\t\t\t\tconst query = previousQueries[i2];\n\t\t\t\t\t\tconst duration = gl.getQueryParameter(query, gl.QUERY_RESULT);\n\t\t\t\t\t\ttimings[i2] = duration * 1e-6;\n\t\t\t\t\t\tthis.freeQueries.push(query);\n\t\t\t\t\t}\n\t\t\t\t\tthis.report(previousQueriesInfo.renderVersion, timings);\n\t\t\t\t}\n\t\t\t\tif (disjoint) {\n\t\t\t\t\tthis.previousFrameQueries.forEach((frameQueriesInfo) => {\n\t\t\t\t\t\tthis.report(frameQueriesInfo.renderVersion, null);\n\t\t\t\t\t\tframeQueriesInfo.destroy(gl);\n\t\t\t\t\t});\n\t\t\t\t\tthis.previousFrameQueries.length = 0;\n\t\t\t\t}\n\t\t\t}\n\t\t\tsuper.request(renderVersion);\n\t\t}\n\t}\n};\n\nvar _attachmentBlendState2 = new BlendState();\nvar maxBlendAttachments = 8;\nvar _attachmentClearValue = new Float32Array(4);\nvar _attachmentClearValueInt = new Int32Array(4);\nvar _attachmentClearValueUint = new Uint32Array(4);\nvar _clearOptions = {\n\tflags: 0,\n\tcolor: [0, 0, 0, 1],\n\tdepth: 1,\n\tstencil: 0\n};\nvar getPixelFormatChannelsForRgbaReadback = (format) => {\n\tswitch (format) {\n\t\tcase PIXELFORMAT_R8:\n\t\t\treturn 1;\n\t\tcase PIXELFORMAT_RG8:\n\t\t\treturn 2;\n\t\tdefault:\n\t\t\treturn 0;\n\t}\n};\nvar invalidateAttachments = [];\nvar READBACK_FRAME_START_WAIT = 100;\nvar WebglGraphicsDevice = class extends GraphicsDevice {\n\tgl;\n\t_defaultFramebuffer = null;\n\t_defaultFramebufferChanged = false;\n\t_xrMsaaCopy = null;\n\t_readbackCopies = /* @__PURE__ */ new Set();\n\tconstructor(canvas, options2 = {}) {\n\t\tsuper(canvas, options2);\n\t\toptions2 = this.initOptions;\n\t\tthis.initTextureUnits();\n\t\tthis.contextLost = false;\n\t\tthis._contextLostHandler = (event) => {\n\t\t\tevent.preventDefault();\n\t\t\tthis.loseContext();\n\t\t};\n\t\tthis._contextRestoredHandler = () => {\n\t\t\tthis.restoreContext();\n\t\t};\n\t\tconst ua2 = typeof navigator !== \"undefined\" && navigator.userAgent;\n\t\tthis.forceDisableMultisampling = ua2 && ua2.includes(\"AppleWebKit\") && (ua2.includes(\"Version/15.4\") || ua2.includes(\"OS 15_4\"));\n\t\tif (this.forceDisableMultisampling) {\n\t\t\toptions2.antialias = false;\n\t\t}\n\t\tif (platform.browserName === \"firefox\") {\n\t\t\tconst ua3 = typeof navigator !== \"undefined\" ? navigator.userAgent : \"\";\n\t\t\tconst match = ua3.match(/Firefox\\/(\\d+(\\.\\d+)*)/);\n\t\t\tconst firefoxVersion = match ? match[1] : null;\n\t\t\tif (firefoxVersion) {\n\t\t\t\tconst version2 = parseFloat(firefoxVersion);\n\t\t\t\tconst disableAntialias = platform.name === \"windows\" && (version2 >= 120 || version2 === 115) || platform.name === \"android\" && version2 >= 132;\n\t\t\t\tif (disableAntialias) {\n\t\t\t\t\toptions2.antialias = false;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis.backBufferAntialias = options2.antialias ?? false;\n\t\toptions2.antialias = false;\n\t\tconst gl = options2.gl ?? canvas.getContext(\"webgl2\", options2);\n\t\tif (!gl) {\n\t\t\tthrow new Error(\"WebGL not supported\");\n\t\t}\n\t\tthis.gl = gl;\n\t\tthis.isWebGL2 = true;\n\t\tthis._deviceType = DEVICETYPE_WEBGL2;\n\t\tthis.updateBackbufferFormat(null);\n\t\tconst isChrome = platform.browserName === \"chrome\";\n\t\tconst isSafari = platform.browserName === \"safari\";\n\t\tconst isMac = platform.browser && navigator.appVersion.indexOf(\"Mac\") !== -1;\n\t\tthis._tempEnableSafariTextureUnitWorkaround = isSafari;\n\t\tthis._tempMacChromeBlitFramebufferWorkaround = isMac && isChrome && !options2.alpha;\n\t\tcanvas.addEventListener(\"webglcontextlost\", this._contextLostHandler, false);\n\t\tcanvas.addEventListener(\"webglcontextrestored\", this._contextRestoredHandler, false);\n\t\tthis.initializeExtensions();\n\t\tthis.initializeCapabilities();\n\t\tthis.initializeRenderState();\n\t\tthis.initializeContextCaches();\n\t\tthis.createBackbuffer(null);\n\t\tthis.dynamicBuffers = new WebglDynamicBuffers(this);\n\t\tthis.supportsImageBitmap = !isSafari && typeof ImageBitmap !== \"undefined\";\n\t\tthis._samplerTypes = /* @__PURE__ */ new Set([\n\t\t\tgl.SAMPLER_2D,\n\t\t\tgl.SAMPLER_CUBE,\n\t\t\tgl.UNSIGNED_INT_SAMPLER_2D,\n\t\t\tgl.INT_SAMPLER_2D,\n\t\t\tgl.SAMPLER_2D_SHADOW,\n\t\t\tgl.SAMPLER_CUBE_SHADOW,\n\t\t\tgl.SAMPLER_3D,\n\t\t\tgl.INT_SAMPLER_3D,\n\t\t\tgl.UNSIGNED_INT_SAMPLER_3D,\n\t\t\tgl.SAMPLER_2D_ARRAY,\n\t\t\tgl.INT_SAMPLER_2D_ARRAY,\n\t\t\tgl.UNSIGNED_INT_SAMPLER_2D_ARRAY\n\t\t]);\n\t\tthis.glAddress = [\n\t\t\tgl.REPEAT,\n\t\t\tgl.CLAMP_TO_EDGE,\n\t\t\tgl.MIRRORED_REPEAT\n\t\t];\n\t\tthis.glBlendEquation = [\n\t\t\tgl.FUNC_ADD,\n\t\t\tgl.FUNC_SUBTRACT,\n\t\t\tgl.FUNC_REVERSE_SUBTRACT,\n\t\t\tgl.MIN,\n\t\t\tgl.MAX\n\t\t];\n\t\tthis.glBlendFunctionColor = [\n\t\t\tgl.ZERO,\n\t\t\tgl.ONE,\n\t\t\tgl.SRC_COLOR,\n\t\t\tgl.ONE_MINUS_SRC_COLOR,\n\t\t\tgl.DST_COLOR,\n\t\t\tgl.ONE_MINUS_DST_COLOR,\n\t\t\tgl.SRC_ALPHA,\n\t\t\tgl.SRC_ALPHA_SATURATE,\n\t\t\tgl.ONE_MINUS_SRC_ALPHA,\n\t\t\tgl.DST_ALPHA,\n\t\t\tgl.ONE_MINUS_DST_ALPHA,\n\t\t\tgl.CONSTANT_COLOR,\n\t\t\tgl.ONE_MINUS_CONSTANT_COLOR,\n\t\t\tthis.extBlendFuncExtended?.SRC1_COLOR_WEBGL,\n\t\t\tthis.extBlendFuncExtended?.ONE_MINUS_SRC1_COLOR_WEBGL,\n\t\t\tthis.extBlendFuncExtended?.SRC1_ALPHA_WEBGL,\n\t\t\tthis.extBlendFuncExtended?.ONE_MINUS_SRC1_ALPHA_WEBGL\n\t\t];\n\t\tthis.glBlendFunctionAlpha = [\n\t\t\tgl.ZERO,\n\t\t\tgl.ONE,\n\t\t\tgl.SRC_COLOR,\n\t\t\tgl.ONE_MINUS_SRC_COLOR,\n\t\t\tgl.DST_COLOR,\n\t\t\tgl.ONE_MINUS_DST_COLOR,\n\t\t\tgl.SRC_ALPHA,\n\t\t\tgl.SRC_ALPHA_SATURATE,\n\t\t\tgl.ONE_MINUS_SRC_ALPHA,\n\t\t\tgl.DST_ALPHA,\n\t\t\tgl.ONE_MINUS_DST_ALPHA,\n\t\t\tgl.CONSTANT_ALPHA,\n\t\t\tgl.ONE_MINUS_CONSTANT_ALPHA,\n\t\t\tthis.extBlendFuncExtended?.SRC1_COLOR_WEBGL,\n\t\t\tthis.extBlendFuncExtended?.ONE_MINUS_SRC1_COLOR_WEBGL,\n\t\t\tthis.extBlendFuncExtended?.SRC1_ALPHA_WEBGL,\n\t\t\tthis.extBlendFuncExtended?.ONE_MINUS_SRC1_ALPHA_WEBGL\n\t\t];\n\t\tthis.glComparison = [\n\t\t\tgl.NEVER,\n\t\t\tgl.LESS,\n\t\t\tgl.EQUAL,\n\t\t\tgl.LEQUAL,\n\t\t\tgl.GREATER,\n\t\t\tgl.NOTEQUAL,\n\t\t\tgl.GEQUAL,\n\t\t\tgl.ALWAYS\n\t\t];\n\t\tthis.glStencilOp = [\n\t\t\tgl.KEEP,\n\t\t\tgl.ZERO,\n\t\t\tgl.REPLACE,\n\t\t\tgl.INCR,\n\t\t\tgl.INCR_WRAP,\n\t\t\tgl.DECR,\n\t\t\tgl.DECR_WRAP,\n\t\t\tgl.INVERT\n\t\t];\n\t\tthis.glClearFlag = [\n\t\t\t0,\n\t\t\tgl.COLOR_BUFFER_BIT,\n\t\t\tgl.DEPTH_BUFFER_BIT,\n\t\t\tgl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT,\n\t\t\tgl.STENCIL_BUFFER_BIT,\n\t\t\tgl.STENCIL_BUFFER_BIT | gl.COLOR_BUFFER_BIT,\n\t\t\tgl.STENCIL_BUFFER_BIT | gl.DEPTH_BUFFER_BIT,\n\t\t\tgl.STENCIL_BUFFER_BIT | gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT\n\t\t];\n\t\tthis.glCull = [\n\t\t\t0,\n\t\t\tgl.BACK,\n\t\t\tgl.FRONT,\n\t\t\tgl.FRONT_AND_BACK\n\t\t];\n\t\tthis.glFrontFace = [\n\t\t\tgl.CCW,\n\t\t\tgl.CW\n\t\t];\n\t\tthis.glFilter = [\n\t\t\tgl.NEAREST,\n\t\t\tgl.LINEAR,\n\t\t\tgl.NEAREST_MIPMAP_NEAREST,\n\t\t\tgl.NEAREST_MIPMAP_LINEAR,\n\t\t\tgl.LINEAR_MIPMAP_NEAREST,\n\t\t\tgl.LINEAR_MIPMAP_LINEAR\n\t\t];\n\t\tthis.glPrimitive = [\n\t\t\tgl.POINTS,\n\t\t\tgl.LINES,\n\t\t\tgl.LINE_LOOP,\n\t\t\tgl.LINE_STRIP,\n\t\t\tgl.TRIANGLES,\n\t\t\tgl.TRIANGLE_STRIP,\n\t\t\tgl.TRIANGLE_FAN\n\t\t];\n\t\tthis.glType = [\n\t\t\tgl.BYTE,\n\t\t\tgl.UNSIGNED_BYTE,\n\t\t\tgl.SHORT,\n\t\t\tgl.UNSIGNED_SHORT,\n\t\t\tgl.INT,\n\t\t\tgl.UNSIGNED_INT,\n\t\t\tgl.FLOAT,\n\t\t\tgl.HALF_FLOAT\n\t\t];\n\t\tthis.pcUniformType = {};\n\t\tthis.pcUniformType[gl.BOOL] = UNIFORMTYPE_BOOL;\n\t\tthis.pcUniformType[gl.INT] = UNIFORMTYPE_INT;\n\t\tthis.pcUniformType[gl.FLOAT] = UNIFORMTYPE_FLOAT;\n\t\tthis.pcUniformType[gl.FLOAT_VEC2] = UNIFORMTYPE_VEC2;\n\t\tthis.pcUniformType[gl.FLOAT_VEC3] = UNIFORMTYPE_VEC3;\n\t\tthis.pcUniformType[gl.FLOAT_VEC4] = UNIFORMTYPE_VEC4;\n\t\tthis.pcUniformType[gl.INT_VEC2] = UNIFORMTYPE_IVEC2;\n\t\tthis.pcUniformType[gl.INT_VEC3] = UNIFORMTYPE_IVEC3;\n\t\tthis.pcUniformType[gl.INT_VEC4] = UNIFORMTYPE_IVEC4;\n\t\tthis.pcUniformType[gl.BOOL_VEC2] = UNIFORMTYPE_BVEC2;\n\t\tthis.pcUniformType[gl.BOOL_VEC3] = UNIFORMTYPE_BVEC3;\n\t\tthis.pcUniformType[gl.BOOL_VEC4] = UNIFORMTYPE_BVEC4;\n\t\tthis.pcUniformType[gl.FLOAT_MAT2] = UNIFORMTYPE_MAT2;\n\t\tthis.pcUniformType[gl.FLOAT_MAT3] = UNIFORMTYPE_MAT3;\n\t\tthis.pcUniformType[gl.FLOAT_MAT4] = UNIFORMTYPE_MAT4;\n\t\tthis.pcUniformType[gl.SAMPLER_2D] = UNIFORMTYPE_TEXTURE2D;\n\t\tthis.pcUniformType[gl.SAMPLER_CUBE] = UNIFORMTYPE_TEXTURECUBE;\n\t\tthis.pcUniformType[gl.UNSIGNED_INT] = UNIFORMTYPE_UINT;\n\t\tthis.pcUniformType[gl.UNSIGNED_INT_VEC2] = UNIFORMTYPE_UVEC2;\n\t\tthis.pcUniformType[gl.UNSIGNED_INT_VEC3] = UNIFORMTYPE_UVEC3;\n\t\tthis.pcUniformType[gl.UNSIGNED_INT_VEC4] = UNIFORMTYPE_UVEC4;\n\t\tthis.pcUniformType[gl.SAMPLER_2D_SHADOW] = UNIFORMTYPE_TEXTURE2D_SHADOW;\n\t\tthis.pcUniformType[gl.SAMPLER_CUBE_SHADOW] = UNIFORMTYPE_TEXTURECUBE_SHADOW;\n\t\tthis.pcUniformType[gl.SAMPLER_2D_ARRAY] = UNIFORMTYPE_TEXTURE2D_ARRAY;\n\t\tthis.pcUniformType[gl.SAMPLER_3D] = UNIFORMTYPE_TEXTURE3D;\n\t\tthis.pcUniformType[gl.INT_SAMPLER_2D] = UNIFORMTYPE_ITEXTURE2D;\n\t\tthis.pcUniformType[gl.UNSIGNED_INT_SAMPLER_2D] = UNIFORMTYPE_UTEXTURE2D;\n\t\tthis.pcUniformType[gl.INT_SAMPLER_CUBE] = UNIFORMTYPE_ITEXTURECUBE;\n\t\tthis.pcUniformType[gl.UNSIGNED_INT_SAMPLER_2D] = UNIFORMTYPE_UTEXTURECUBE;\n\t\tthis.pcUniformType[gl.INT_SAMPLER_3D] = UNIFORMTYPE_ITEXTURE3D;\n\t\tthis.pcUniformType[gl.UNSIGNED_INT_SAMPLER_3D] = UNIFORMTYPE_UTEXTURE3D;\n\t\tthis.pcUniformType[gl.INT_SAMPLER_2D_ARRAY] = UNIFORMTYPE_ITEXTURE2D_ARRAY;\n\t\tthis.pcUniformType[gl.UNSIGNED_INT_SAMPLER_2D_ARRAY] = UNIFORMTYPE_UTEXTURE2D_ARRAY;\n\t\tthis.targetToSlot = {};\n\t\tthis.targetToSlot[gl.TEXTURE_2D] = 0;\n\t\tthis.targetToSlot[gl.TEXTURE_CUBE_MAP] = 1;\n\t\tthis.targetToSlot[gl.TEXTURE_3D] = 2;\n\t\tlet scopeX, scopeY, scopeZ, scopeW;\n\t\tlet uniformValue;\n\t\tthis.commitFunction = [];\n\t\tthis.commitFunction[UNIFORMTYPE_BOOL] = function(uniform, value) {\n\t\t\tif (uniform.value !== value) {\n\t\t\t\tgl.uniform1i(uniform.locationId, value);\n\t\t\t\tuniform.value = value;\n\t\t\t}\n\t\t};\n\t\tthis.commitFunction[UNIFORMTYPE_INT] = this.commitFunction[UNIFORMTYPE_BOOL];\n\t\tthis.commitFunction[UNIFORMTYPE_FLOAT] = function(uniform, value) {\n\t\t\tif (uniform.value !== value) {\n\t\t\t\tgl.uniform1f(uniform.locationId, value);\n\t\t\t\tuniform.value = value;\n\t\t\t}\n\t\t};\n\t\tthis.commitFunction[UNIFORMTYPE_VEC2] = function(uniform, value) {\n\t\t\tuniformValue = uniform.value;\n\t\t\tscopeX = value[0];\n\t\t\tscopeY = value[1];\n\t\t\tif (uniformValue[0] !== scopeX || uniformValue[1] !== scopeY) {\n\t\t\t\tgl.uniform2fv(uniform.locationId, value);\n\t\t\t\tuniformValue[0] = scopeX;\n\t\t\t\tuniformValue[1] = scopeY;\n\t\t\t}\n\t\t};\n\t\tthis.commitFunction[UNIFORMTYPE_VEC3] = function(uniform, value) {\n\t\t\tuniformValue = uniform.value;\n\t\t\tscopeX = value[0];\n\t\t\tscopeY = value[1];\n\t\t\tscopeZ = value[2];\n\t\t\tif (uniformValue[0] !== scopeX || uniformValue[1] !== scopeY || uniformValue[2] !== scopeZ) {\n\t\t\t\tgl.uniform3fv(uniform.locationId, value);\n\t\t\t\tuniformValue[0] = scopeX;\n\t\t\t\tuniformValue[1] = scopeY;\n\t\t\t\tuniformValue[2] = scopeZ;\n\t\t\t}\n\t\t};\n\t\tthis.commitFunction[UNIFORMTYPE_VEC4] = function(uniform, value) {\n\t\t\tuniformValue = uniform.value;\n\t\t\tscopeX = value[0];\n\t\t\tscopeY = value[1];\n\t\t\tscopeZ = value[2];\n\t\t\tscopeW = value[3];\n\t\t\tif (uniformValue[0] !== scopeX || uniformValue[1] !== scopeY || uniformValue[2] !== scopeZ || uniformValue[3] !== scopeW) {\n\t\t\t\tgl.uniform4fv(uniform.locationId, value);\n\t\t\t\tuniformValue[0] = scopeX;\n\t\t\t\tuniformValue[1] = scopeY;\n\t\t\t\tuniformValue[2] = scopeZ;\n\t\t\t\tuniformValue[3] = scopeW;\n\t\t\t}\n\t\t};\n\t\tthis.commitFunction[UNIFORMTYPE_IVEC2] = function(uniform, value) {\n\t\t\tuniformValue = uniform.value;\n\t\t\tscopeX = value[0];\n\t\t\tscopeY = value[1];\n\t\t\tif (uniformValue[0] !== scopeX || uniformValue[1] !== scopeY) {\n\t\t\t\tgl.uniform2iv(uniform.locationId, value);\n\t\t\t\tuniformValue[0] = scopeX;\n\t\t\t\tuniformValue[1] = scopeY;\n\t\t\t}\n\t\t};\n\t\tthis.commitFunction[UNIFORMTYPE_BVEC2] = this.commitFunction[UNIFORMTYPE_IVEC2];\n\t\tthis.commitFunction[UNIFORMTYPE_IVEC3] = function(uniform, value) {\n\t\t\tuniformValue = uniform.value;\n\t\t\tscopeX = value[0];\n\t\t\tscopeY = value[1];\n\t\t\tscopeZ = value[2];\n\t\t\tif (uniformValue[0] !== scopeX || uniformValue[1] !== scopeY || uniformValue[2] !== scopeZ) {\n\t\t\t\tgl.uniform3iv(uniform.locationId, value);\n\t\t\t\tuniformValue[0] = scopeX;\n\t\t\t\tuniformValue[1] = scopeY;\n\t\t\t\tuniformValue[2] = scopeZ;\n\t\t\t}\n\t\t};\n\t\tthis.commitFunction[UNIFORMTYPE_BVEC3] = this.commitFunction[UNIFORMTYPE_IVEC3];\n\t\tthis.commitFunction[UNIFORMTYPE_IVEC4] = function(uniform, value) {\n\t\t\tuniformValue = uniform.value;\n\t\t\tscopeX = value[0];\n\t\t\tscopeY = value[1];\n\t\t\tscopeZ = value[2];\n\t\t\tscopeW = value[3];\n\t\t\tif (uniformValue[0] !== scopeX || uniformValue[1] !== scopeY || uniformValue[2] !== scopeZ || uniformValue[3] !== scopeW) {\n\t\t\t\tgl.uniform4iv(uniform.locationId, value);\n\t\t\t\tuniformValue[0] = scopeX;\n\t\t\t\tuniformValue[1] = scopeY;\n\t\t\t\tuniformValue[2] = scopeZ;\n\t\t\t\tuniformValue[3] = scopeW;\n\t\t\t}\n\t\t};\n\t\tthis.commitFunction[UNIFORMTYPE_BVEC4] = this.commitFunction[UNIFORMTYPE_IVEC4];\n\t\tthis.commitFunction[UNIFORMTYPE_MAT2] = function(uniform, value) {\n\t\t\tgl.uniformMatrix2fv(uniform.locationId, false, value);\n\t\t};\n\t\tthis.commitFunction[UNIFORMTYPE_MAT3] = function(uniform, value) {\n\t\t\tgl.uniformMatrix3fv(uniform.locationId, false, value);\n\t\t};\n\t\tthis.commitFunction[UNIFORMTYPE_MAT4] = function(uniform, value) {\n\t\t\tgl.uniformMatrix4fv(uniform.locationId, false, value);\n\t\t};\n\t\tthis.commitFunction[UNIFORMTYPE_FLOATARRAY] = function(uniform, value) {\n\t\t\tgl.uniform1fv(uniform.locationId, value);\n\t\t};\n\t\tthis.commitFunction[UNIFORMTYPE_VEC2ARRAY] = function(uniform, value) {\n\t\t\tgl.uniform2fv(uniform.locationId, value);\n\t\t};\n\t\tthis.commitFunction[UNIFORMTYPE_VEC3ARRAY] = function(uniform, value) {\n\t\t\tgl.uniform3fv(uniform.locationId, value);\n\t\t};\n\t\tthis.commitFunction[UNIFORMTYPE_VEC4ARRAY] = function(uniform, value) {\n\t\t\tgl.uniform4fv(uniform.locationId, value);\n\t\t};\n\t\tthis.commitFunction[UNIFORMTYPE_UINT] = function(uniform, value) {\n\t\t\tif (uniform.value !== value) {\n\t\t\t\tgl.uniform1ui(uniform.locationId, value);\n\t\t\t\tuniform.value = value;\n\t\t\t}\n\t\t};\n\t\tthis.commitFunction[UNIFORMTYPE_UVEC2] = function(uniform, value) {\n\t\t\tuniformValue = uniform.value;\n\t\t\tscopeX = value[0];\n\t\t\tscopeY = value[1];\n\t\t\tif (uniformValue[0] !== scopeX || uniformValue[1] !== scopeY) {\n\t\t\t\tgl.uniform2uiv(uniform.locationId, value);\n\t\t\t\tuniformValue[0] = scopeX;\n\t\t\t\tuniformValue[1] = scopeY;\n\t\t\t}\n\t\t};\n\t\tthis.commitFunction[UNIFORMTYPE_UVEC3] = function(uniform, value) {\n\t\t\tuniformValue = uniform.value;\n\t\t\tscopeX = value[0];\n\t\t\tscopeY = value[1];\n\t\t\tscopeZ = value[2];\n\t\t\tif (uniformValue[0] !== scopeX || uniformValue[1] !== scopeY || uniformValue[2] !== scopeZ) {\n\t\t\t\tgl.uniform3uiv(uniform.locationId, value);\n\t\t\t\tuniformValue[0] = scopeX;\n\t\t\t\tuniformValue[1] = scopeY;\n\t\t\t\tuniformValue[2] = scopeZ;\n\t\t\t}\n\t\t};\n\t\tthis.commitFunction[UNIFORMTYPE_UVEC4] = function(uniform, value) {\n\t\t\tuniformValue = uniform.value;\n\t\t\tscopeX = value[0];\n\t\t\tscopeY = value[1];\n\t\t\tscopeZ = value[2];\n\t\t\tscopeW = value[3];\n\t\t\tif (uniformValue[0] !== scopeX || uniformValue[1] !== scopeY || uniformValue[2] !== scopeZ || uniformValue[3] !== scopeW) {\n\t\t\t\tgl.uniform4uiv(uniform.locationId, value);\n\t\t\t\tuniformValue[0] = scopeX;\n\t\t\t\tuniformValue[1] = scopeY;\n\t\t\t\tuniformValue[2] = scopeZ;\n\t\t\t\tuniformValue[3] = scopeW;\n\t\t\t}\n\t\t};\n\t\tthis.commitFunction[UNIFORMTYPE_INTARRAY] = function(uniform, value) {\n\t\t\tgl.uniform1iv(uniform.locationId, value);\n\t\t};\n\t\tthis.commitFunction[UNIFORMTYPE_UINTARRAY] = function(uniform, value) {\n\t\t\tgl.uniform1uiv(uniform.locationId, value);\n\t\t};\n\t\tthis.commitFunction[UNIFORMTYPE_BOOLARRAY] = this.commitFunction[UNIFORMTYPE_INTARRAY];\n\t\tthis.commitFunction[UNIFORMTYPE_IVEC2ARRAY] = function(uniform, value) {\n\t\t\tgl.uniform2iv(uniform.locationId, value);\n\t\t};\n\t\tthis.commitFunction[UNIFORMTYPE_UVEC2ARRAY] = function(uniform, value) {\n\t\t\tgl.uniform2uiv(uniform.locationId, value);\n\t\t};\n\t\tthis.commitFunction[UNIFORMTYPE_BVEC2ARRAY] = this.commitFunction[UNIFORMTYPE_IVEC2ARRAY];\n\t\tthis.commitFunction[UNIFORMTYPE_IVEC3ARRAY] = function(uniform, value) {\n\t\t\tgl.uniform3iv(uniform.locationId, value);\n\t\t};\n\t\tthis.commitFunction[UNIFORMTYPE_UVEC3ARRAY] = function(uniform, value) {\n\t\t\tgl.uniform3uiv(uniform.locationId, value);\n\t\t};\n\t\tthis.commitFunction[UNIFORMTYPE_BVEC3ARRAY] = this.commitFunction[UNIFORMTYPE_IVEC3ARRAY];\n\t\tthis.commitFunction[UNIFORMTYPE_IVEC4ARRAY] = function(uniform, value) {\n\t\t\tgl.uniform4iv(uniform.locationId, value);\n\t\t};\n\t\tthis.commitFunction[UNIFORMTYPE_UVEC4ARRAY] = function(uniform, value) {\n\t\t\tgl.uniform4uiv(uniform.locationId, value);\n\t\t};\n\t\tthis.commitFunction[UNIFORMTYPE_BVEC4ARRAY] = this.commitFunction[UNIFORMTYPE_IVEC4ARRAY];\n\t\tthis.commitFunction[UNIFORMTYPE_MAT4ARRAY] = function(uniform, value) {\n\t\t\tgl.uniformMatrix4fv(uniform.locationId, false, value);\n\t\t};\n\t\tthis.constantTexSource = this.scope.resolve(\"source\");\n\t\tthis.postInit();\n\t}\n\tpostInit() {\n\t\tsuper.postInit();\n\t\tthis.gpuProfiler = new WebglGpuProfiler(this);\n\t}\n\tdestroy() {\n\t\tsuper.destroy();\n\t\tfor (const copy of [...this._readbackCopies]) {\n\t\t\tcopy.abandon();\n\t\t}\n\t\tconst gl = this.gl;\n\t\tif (this.feedback) {\n\t\t\tgl.deleteTransformFeedback(this.feedback);\n\t\t}\n\t\tthis.clearVertexArrayObjectCache();\n\t\tthis._xrMsaaCopy?.destroy();\n\t\tthis._xrMsaaCopy = null;\n\t\tthis.canvas.removeEventListener(\"webglcontextlost\", this._contextLostHandler, false);\n\t\tthis.canvas.removeEventListener(\"webglcontextrestored\", this._contextRestoredHandler, false);\n\t\tthis._contextLostHandler = null;\n\t\tthis._contextRestoredHandler = null;\n\t\tthis.gl = null;\n\t\tsuper.postDestroy();\n\t}\n\tcreateBackbuffer(frameBuffer) {\n\t\tthis.supportsStencil = this.initOptions.stencil;\n\t\tthis.backBuffer = new RenderTarget({\n\t\t\tname: \"WebglFramebuffer\",\n\t\t\tgraphicsDevice: this,\n\t\t\tdepth: this.initOptions.depth,\n\t\t\tstencil: this.supportsStencil,\n\t\t\tsamples: this.samples\n\t\t});\n\t\tthis.backBuffer.impl.suppliedColorFramebuffer = frameBuffer;\n\t}\n\t// Update framebuffer format based on the current framebuffer, as this is use to create matching multi-sampled framebuffer\n\tupdateBackbufferFormat(framebuffer) {\n\t\tconst gl = this.gl;\n\t\tgl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer);\n\t\tconst alphaBits = this.gl.getParameter(this.gl.ALPHA_BITS);\n\t\tthis.backBufferFormat = alphaBits ? PIXELFORMAT_RGBA8 : PIXELFORMAT_RGB8;\n\t}\n\tupdateBackbuffer() {\n\t\tconst resolutionChanged = this.canvas.width !== this.backBufferSize.x || this.canvas.height !== this.backBufferSize.y;\n\t\tif (this._defaultFramebufferChanged || resolutionChanged) {\n\t\t\tif (this._defaultFramebufferChanged) {\n\t\t\t\tthis.updateBackbufferFormat(this._defaultFramebuffer);\n\t\t\t}\n\t\t\tthis._defaultFramebufferChanged = false;\n\t\t\tthis.backBufferSize.set(this.canvas.width, this.canvas.height);\n\t\t\tthis.backBuffer.destroy();\n\t\t\tthis.createBackbuffer(this._defaultFramebuffer);\n\t\t}\n\t}\n\t// provide webgl implementation for the vertex buffer\n\tcreateVertexBufferImpl(vertexBuffer, format) {\n\t\treturn new WebglVertexBuffer();\n\t}\n\t// provide webgl implementation for the index buffer\n\tcreateIndexBufferImpl(indexBuffer) {\n\t\treturn new WebglIndexBuffer(indexBuffer);\n\t}\n\tcreateShaderImpl(shader) {\n\t\treturn new WebglShader(shader);\n\t}\n\tcreateUniformBufferImpl(uniformBuffer) {\n\t\treturn new WebglUniformBuffer();\n\t}\n\tcreateBindGroupFormatImpl(bindGroupFormat) {\n\t\treturn new WebglBindGroupFormat();\n\t}\n\tcreateBindGroupImpl(bindGroup) {\n\t\treturn new WebglBindGroup();\n\t}\n\tsetBindGroup(index, bindGroup, offsets) {\n\t\tconst gl = this.gl;\n\t\tconst buffers = bindGroup.impl.buffers;\n\t\tfor (let i2 = 0; i2 < buffers.length; i2++) {\n\t\t\tgl.bindBufferBase(gl.UNIFORM_BUFFER, index, buffers[i2].bufferId);\n\t\t}\n\t}\n\tcreateDrawCommandImpl(drawCommands) {\n\t\treturn new WebglDrawCommands(drawCommands.indexSizeBytes);\n\t}\n\tcreateTextureImpl(texture) {\n\t\tthis.textures.add(texture);\n\t\treturn new WebglTexture(texture);\n\t}\n\tcreateXrBridgeImpl(xrBridge) {\n\t\treturn new WebglXrBridge(xrBridge);\n\t}\n\tcreateRenderTargetImpl(renderTarget) {\n\t\treturn new WebglRenderTarget();\n\t}\n\tcreateUploadStreamImpl(uploadStream) {\n\t\treturn new WebglUploadStream(uploadStream);\n\t}\n\tgetPrecision() {\n\t\tconst gl = this.gl;\n\t\tlet precision = \"highp\";\n\t\tif (gl.getShaderPrecisionFormat) {\n\t\t\tconst vertexShaderPrecisionHighpFloat = gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.HIGH_FLOAT);\n\t\t\tconst vertexShaderPrecisionMediumpFloat = gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.MEDIUM_FLOAT);\n\t\t\tconst fragmentShaderPrecisionHighpFloat = gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.HIGH_FLOAT);\n\t\t\tconst fragmentShaderPrecisionMediumpFloat = gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.MEDIUM_FLOAT);\n\t\t\tif (vertexShaderPrecisionHighpFloat && vertexShaderPrecisionMediumpFloat && fragmentShaderPrecisionHighpFloat && fragmentShaderPrecisionMediumpFloat) {\n\t\t\t\tconst highpAvailable = vertexShaderPrecisionHighpFloat.precision > 0 && fragmentShaderPrecisionHighpFloat.precision > 0;\n\t\t\t\tconst mediumpAvailable = vertexShaderPrecisionMediumpFloat.precision > 0 && fragmentShaderPrecisionMediumpFloat.precision > 0;\n\t\t\t\tif (!highpAvailable) {\n\t\t\t\t\tif (mediumpAvailable) {\n\t\t\t\t\t\tprecision = \"mediump\";\n\t\t\t\t\t} else {\n\t\t\t\t\t\tprecision = \"lowp\";\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn precision;\n\t}\n\tgetExtension() {\n\t\tfor (let i2 = 0; i2 < arguments.length; i2++) {\n\t\t\tif (this.supportedExtensions.indexOf(arguments[i2]) !== -1) {\n\t\t\t\treturn this.gl.getExtension(arguments[i2]);\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\tget extDisjointTimerQuery() {\n\t\tif (!this._extDisjointTimerQuery) {\n\t\t\tthis._extDisjointTimerQuery = this.getExtension(\"EXT_disjoint_timer_query_webgl2\", \"EXT_disjoint_timer_query\");\n\t\t}\n\t\treturn this._extDisjointTimerQuery;\n\t}\n\tinitializeExtensions() {\n\t\tconst gl = this.gl;\n\t\tthis.supportedExtensions = gl.getSupportedExtensions() ?? [];\n\t\tthis._extDisjointTimerQuery = null;\n\t\tthis.textureRG11B10Renderable = true;\n\t\tthis.extColorBufferFloat = this.getExtension(\"EXT_color_buffer_float\");\n\t\tthis.textureFloatRenderable = !!this.extColorBufferFloat;\n\t\tthis.extColorBufferHalfFloat = this.getExtension(\"EXT_color_buffer_half_float\");\n\t\tthis.textureHalfFloatRenderable = !!this.extColorBufferHalfFloat || !!this.extColorBufferFloat;\n\t\tthis.extDebugRendererInfo = this.getExtension(\"WEBGL_debug_renderer_info\");\n\t\tthis.extTextureFloatLinear = this.getExtension(\"OES_texture_float_linear\");\n\t\tthis.textureFloatFilterable = !!this.extTextureFloatLinear;\n\t\tthis.extFloatBlend = this.getExtension(\"EXT_float_blend\");\n\t\tthis.textureFloatBlendable = !!this.extFloatBlend;\n\t\tthis.extBlendFuncExtended = this.getExtension(\"WEBGL_blend_func_extended\");\n\t\tthis.supportsDualSourceBlending = !!this.extBlendFuncExtended;\n\t\tthis.extDrawBuffersIndexed = this.getExtension(\"OES_draw_buffers_indexed\");\n\t\tthis.supportsIndependentBlending = !!this.extDrawBuffersIndexed;\n\t\tthis.extTextureFilterAnisotropic = this.getExtension(\"EXT_texture_filter_anisotropic\", \"WEBKIT_EXT_texture_filter_anisotropic\");\n\t\tthis.extParallelShaderCompile = this.getExtension(\"KHR_parallel_shader_compile\");\n\t\tthis.extMultiDraw = this.getExtension(\"WEBGL_multi_draw\");\n\t\tthis.supportsMultiDraw = !!this.extMultiDraw;\n\t\tthis.extCompressedTextureETC1 = this.getExtension(\"WEBGL_compressed_texture_etc1\");\n\t\tthis.extCompressedTextureETC = this.getExtension(\"WEBGL_compressed_texture_etc\");\n\t\tthis.extCompressedTexturePVRTC = this.getExtension(\"WEBGL_compressed_texture_pvrtc\", \"WEBKIT_WEBGL_compressed_texture_pvrtc\");\n\t\tthis.extCompressedTextureS3TC = this.getExtension(\"WEBGL_compressed_texture_s3tc\", \"WEBKIT_WEBGL_compressed_texture_s3tc\");\n\t\tthis.extCompressedTextureS3TC_SRGB = this.getExtension(\"WEBGL_compressed_texture_s3tc_srgb\");\n\t\tthis.extCompressedTextureATC = this.getExtension(\"WEBGL_compressed_texture_atc\");\n\t\tthis.extCompressedTextureASTC = this.getExtension(\"WEBGL_compressed_texture_astc\");\n\t\tthis.extTextureCompressionBPTC = this.getExtension(\"EXT_texture_compression_bptc\");\n\t\tthis.supportsHtmlTextures = typeof gl.texElementImage2D === \"function\";\n\t}\n\tinitializeCapabilities() {\n\t\tconst gl = this.gl;\n\t\tlet ext;\n\t\tconst userAgent = typeof navigator !== \"undefined\" ? navigator.userAgent : \"\";\n\t\tthis.maxPrecision = this.precision = this.getPrecision();\n\t\tthis.maxTextureSize = gl.getParameter(gl.MAX_TEXTURE_SIZE);\n\t\tthis.maxCubeMapSize = gl.getParameter(gl.MAX_CUBE_MAP_TEXTURE_SIZE);\n\t\tthis.maxRenderBufferSize = gl.getParameter(gl.MAX_RENDERBUFFER_SIZE);\n\t\tthis.maxTextures = gl.getParameter(gl.MAX_TEXTURE_IMAGE_UNITS);\n\t\tthis.maxCombinedTextures = gl.getParameter(gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS);\n\t\tthis.maxVertexTextures = gl.getParameter(gl.MAX_VERTEX_TEXTURE_IMAGE_UNITS);\n\t\tthis.vertexUniformsCount = gl.getParameter(gl.MAX_VERTEX_UNIFORM_VECTORS);\n\t\tthis.fragmentUniformsCount = gl.getParameter(gl.MAX_FRAGMENT_UNIFORM_VECTORS);\n\t\tthis.maxColorAttachments = gl.getParameter(gl.MAX_COLOR_ATTACHMENTS);\n\t\tthis.maxVolumeSize = gl.getParameter(gl.MAX_3D_TEXTURE_SIZE);\n\t\text = this.extDebugRendererInfo;\n\t\tthis.unmaskedRenderer = ext ? gl.getParameter(ext.UNMASKED_RENDERER_WEBGL) : \"\";\n\t\tthis.unmaskedVendor = ext ? gl.getParameter(ext.UNMASKED_VENDOR_WEBGL) : \"\";\n\t\tconst maliRendererRegex = /\\bMali-G52+/;\n\t\tconst samsungModelRegex = /SM-[a-zA-Z0-9]+/;\n\t\tthis.supportsGpuParticles = !(this.unmaskedVendor === \"ARM\" && userAgent.match(samsungModelRegex)) && !this.unmaskedRenderer.match(maliRendererRegex);\n\t\text = this.extTextureFilterAnisotropic;\n\t\tthis.maxAnisotropy = ext ? gl.getParameter(ext.MAX_TEXTURE_MAX_ANISOTROPY_EXT) : 1;\n\t\tconst antialiasSupported = !this.forceDisableMultisampling;\n\t\tthis.maxSamples = antialiasSupported ? gl.getParameter(gl.MAX_SAMPLES) : 1;\n\t\tthis.maxSamples = Math.min(this.maxSamples, 4);\n\t\tthis.samples = antialiasSupported && this.backBufferAntialias ? this.maxSamples : 1;\n\t\tthis.supportsAreaLights = !platform.android;\n\t\tif (this.maxTextures <= 8) {\n\t\t\tthis.supportsAreaLights = false;\n\t\t}\n\t\tthis.initCapsDefines();\n\t}\n\tinitializeRenderState() {\n\t\tsuper.initializeRenderState();\n\t\tconst gl = this.gl;\n\t\tgl.disable(gl.BLEND);\n\t\tgl.blendFunc(gl.ONE, gl.ZERO);\n\t\tgl.blendEquation(gl.FUNC_ADD);\n\t\tgl.colorMask(true, true, true, true);\n\t\tgl.blendColor(0, 0, 0, 0);\n\t\tgl.enable(gl.CULL_FACE);\n\t\tthis.cullFace = gl.BACK;\n\t\tgl.cullFace(gl.BACK);\n\t\tgl.enable(gl.DEPTH_TEST);\n\t\tgl.depthFunc(gl.LEQUAL);\n\t\tgl.depthMask(true);\n\t\tthis.stencil = false;\n\t\tgl.disable(gl.STENCIL_TEST);\n\t\tthis.stencilFuncFront = this.stencilFuncBack = FUNC_ALWAYS;\n\t\tthis.stencilRefFront = this.stencilRefBack = 0;\n\t\tthis.stencilMaskFront = this.stencilMaskBack = 255;\n\t\tgl.stencilFunc(gl.ALWAYS, 0, 255);\n\t\tthis.stencilFailFront = this.stencilFailBack = STENCILOP_KEEP;\n\t\tthis.stencilZfailFront = this.stencilZfailBack = STENCILOP_KEEP;\n\t\tthis.stencilZpassFront = this.stencilZpassBack = STENCILOP_KEEP;\n\t\tthis.stencilWriteMaskFront = 255;\n\t\tthis.stencilWriteMaskBack = 255;\n\t\tgl.stencilOp(gl.KEEP, gl.KEEP, gl.KEEP);\n\t\tgl.stencilMask(255);\n\t\tthis.alphaToCoverage = false;\n\t\tthis.raster = true;\n\t\tgl.disable(gl.SAMPLE_ALPHA_TO_COVERAGE);\n\t\tgl.disable(gl.RASTERIZER_DISCARD);\n\t\tthis.depthBiasEnabled = false;\n\t\tgl.disable(gl.POLYGON_OFFSET_FILL);\n\t\tthis.clearDepth = 1;\n\t\tgl.clearDepth(1);\n\t\tthis.clearColor = new Color(0, 0, 0, 0);\n\t\tgl.clearColor(0, 0, 0, 0);\n\t\tthis.clearStencil = 0;\n\t\tgl.clearStencil(0);\n\t\tgl.hint(gl.FRAGMENT_SHADER_DERIVATIVE_HINT, gl.NICEST);\n\t\tgl.enable(gl.SCISSOR_TEST);\n\t\tthis.textureUnit = 0;\n\t\tgl.activeTexture(gl.TEXTURE0);\n\t\tgl.pixelStorei(gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, gl.NONE);\n\t\tthis.unpackFlipY = false;\n\t\tgl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false);\n\t\tthis.unpackPremultiplyAlpha = false;\n\t\tgl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, false);\n\t\tthis.unpackAlignment = 1;\n\t\tgl.pixelStorei(gl.UNPACK_ALIGNMENT, 1);\n\t}\n\tinitTextureUnits(count = 16) {\n\t\tthis.textureUnits = [];\n\t\tfor (let i2 = 0; i2 < count; i2++) {\n\t\t\tthis.textureUnits.push([null, null, null]);\n\t\t}\n\t}\n\tinitializeContextCaches() {\n\t\tsuper.initializeContextCaches();\n\t\tthis._vaoMap = /* @__PURE__ */ new Map();\n\t\tthis.boundVao = null;\n\t\tthis.activeFramebuffer = null;\n\t\tthis.feedback = null;\n\t\tthis.transformFeedbackBuffers = null;\n\t\tthis.textureUnit = 0;\n\t\tthis.initTextureUnits(this.maxCombinedTextures);\n\t}\n\tloseContext() {\n\t\tsuper.loseContext();\n\t\tfor (const copy of [...this._readbackCopies]) {\n\t\t\tcopy.fail();\n\t\t}\n\t\tfor (const shader of this.shaders) {\n\t\t\tshader.loseContext();\n\t\t}\n\t\tthis.dynamicBuffers.loseContext();\n\t\tthis.fire(\"devicelost\");\n\t}\n\trestoreContext() {\n\t\tthis.initializeExtensions();\n\t\tthis.initializeCapabilities();\n\t\tsuper.restoreContext();\n\t\tfor (const shader of this.shaders) {\n\t\t\tshader.restoreContext();\n\t\t}\n\t\tthis.fire(\"devicerestored\");\n\t}\n\tsetViewport(x3, y2, w, h2) {\n\t\tif (this.vx !== x3 || this.vy !== y2 || this.vw !== w || this.vh !== h2) {\n\t\t\tthis.gl.viewport(x3, y2, w, h2);\n\t\t\tthis.vx = x3;\n\t\t\tthis.vy = y2;\n\t\t\tthis.vw = w;\n\t\t\tthis.vh = h2;\n\t\t}\n\t}\n\tsetScissor(x3, y2, w, h2) {\n\t\tif (this.sx !== x3 || this.sy !== y2 || this.sw !== w || this.sh !== h2) {\n\t\t\tthis.gl.scissor(x3, y2, w, h2);\n\t\t\tthis.sx = x3;\n\t\t\tthis.sy = y2;\n\t\t\tthis.sw = w;\n\t\t\tthis.sh = h2;\n\t\t}\n\t}\n\tsetFramebuffer(fb) {\n\t\tif (this.activeFramebuffer !== fb) {\n\t\t\tconst gl = this.gl;\n\t\t\tgl.bindFramebuffer(gl.FRAMEBUFFER, fb);\n\t\t\tthis.activeFramebuffer = fb;\n\t\t}\n\t}\n\tresolveMsaaColorToXrFramebufferViaQuads(msaaReadFbo, xrDrawFbo, width, height) {\n\t\tthis._xrMsaaCopy ?? (this._xrMsaaCopy = new WebglXrMsaaCopy(this));\n\t\tthis._xrMsaaCopy.copy(msaaReadFbo, xrDrawFbo, width, height);\n\t}\n\tcopyRenderTarget(source, dest, color3, depth) {\n\t\tconst gl = this.gl;\n\t\tif (source === this.backBuffer) {\n\t\t\tsource = null;\n\t\t}\n\t\tif (color3) {\n\t\t\tif (!dest) {\n\t\t\t\tif (!source._colorBuffer) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t} else if (source) {\n\t\t\t\tif (!source._colorBuffer || !dest._colorBuffer) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tif (source._colorBuffer._format !== dest._colorBuffer._format) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (depth && source) {\n\t\t\tif (!source._depth) {\n\t\t\t\tif (!source._depthBuffer || !dest._depthBuffer) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tif (source._depthBuffer._format !== dest._depthBuffer._format) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tconst prevRt = this.renderTarget;\n\t\tthis.renderTarget = dest;\n\t\tthis.updateBegin();\n\t\tconst src = source ? source.impl._glFrameBuffer : this.backBuffer?.impl._glFrameBuffer;\n\t\tconst dst = dest ? dest.impl._glFrameBuffer : this.backBuffer?.impl._glFrameBuffer;\n\t\tgl.bindFramebuffer(gl.READ_FRAMEBUFFER, src);\n\t\tgl.bindFramebuffer(gl.DRAW_FRAMEBUFFER, dst);\n\t\tconst w = source ? source.width : dest ? dest.width : this.width;\n\t\tconst h2 = source ? source.height : dest ? dest.height : this.height;\n\t\tgl.blitFramebuffer(\n\t\t\t0,\n\t\t\t0,\n\t\t\tw,\n\t\t\th2,\n\t\t\t0,\n\t\t\t0,\n\t\t\tw,\n\t\t\th2,\n\t\t\t(color3 ? gl.COLOR_BUFFER_BIT : 0) | (depth ? gl.DEPTH_BUFFER_BIT : 0),\n\t\t\tgl.NEAREST\n\t\t);\n\t\tthis.renderTarget = prevRt;\n\t\tgl.bindFramebuffer(gl.FRAMEBUFFER, prevRt ? prevRt.impl._glFrameBuffer : null);\n\t\treturn true;\n\t}\n\tcopyTextureToTexture(source, dest, options2 = {}) {\n\t\tconst gl = this.gl;\n\t\tconst sourceMipLevel = options2.sourceMipLevel ?? 0;\n\t\tconst destMipLevel = options2.destMipLevel ?? 0;\n\t\tconst face = options2.face ?? 0;\n\t\tconst sx = options2.sourceX ?? 0;\n\t\tconst sy = options2.sourceY ?? 0;\n\t\tconst dx = options2.destX ?? 0;\n\t\tconst dy = options2.destY ?? 0;\n\t\tconst w = options2.width ?? Math.max(1, source.width >> sourceMipLevel);\n\t\tconst h2 = options2.height ?? Math.max(1, source.height >> sourceMipLevel);\n\t\tconst sourceRenderTarget = options2.sourceRenderTarget ?? new RenderTarget({\n\t\t\tname: \"TextureCopySource\",\n\t\t\tcolorBuffer: source,\n\t\t\tdepth: false,\n\t\t\tface,\n\t\t\tmipLevel: sourceMipLevel\n\t\t});\n\t\tconst prevRt = this.renderTarget;\n\t\tthis.setRenderTarget(sourceRenderTarget);\n\t\tthis.initRenderTarget(sourceRenderTarget);\n\t\tthis.setFramebuffer(sourceRenderTarget.impl._glFrameBuffer);\n\t\tthis.setTexture(dest, 0);\n\t\tconst destTarget = dest.cubemap ? gl.TEXTURE_CUBE_MAP_POSITIVE_X + face : gl.TEXTURE_2D;\n\t\tgl.copyTexSubImage2D(destTarget, destMipLevel, dx, dy, sx, sy, w, h2);\n\t\tif (!options2.sourceRenderTarget) {\n\t\t\tsourceRenderTarget.destroy();\n\t\t}\n\t\tthis.setRenderTarget(prevRt);\n\t\tthis.setFramebuffer(prevRt ? prevRt.impl._glFrameBuffer : this.backBuffer?.impl._glFrameBuffer);\n\t\treturn true;\n\t}\n\tframeStart() {\n\t\tsuper.frameStart();\n\t\tif (this._readbackCopies.size > 0) {\n\t\t\tfor (const copy of [...this._readbackCopies]) {\n\t\t\t\tcopy.run();\n\t\t\t}\n\t\t}\n\t\tthis.updateBackbuffer();\n\t\tthis.gpuProfiler.frameStart();\n\t}\n\tframeEnd() {\n\t\tsuper.frameEnd();\n\t\tthis.gpuProfiler.frameEnd();\n\t\tthis.gpuProfiler.request();\n\t\tthis.dynamicBuffers.onFrameEnd();\n\t}\n\tstartRenderPass(renderPass) {\n\t\tconst rt = renderPass.renderTarget ?? this.backBuffer;\n\t\tthis.renderTarget = rt;\n\t\tthis.updateBegin();\n\t\tconst { width, height } = rt;\n\t\tthis.setViewport(0, 0, width, height);\n\t\tthis.setScissor(0, 0, width, height);\n\t\tconst depthStencilOps = renderPass.depthStencilOps;\n\t\tlet clearFlags = 0;\n\t\tif (depthStencilOps.clearDepth) {\n\t\t\tclearFlags |= CLEARFLAG_DEPTH;\n\t\t\t_clearOptions.depth = depthStencilOps.clearDepthValue;\n\t\t}\n\t\tif (depthStencilOps.clearStencil) {\n\t\t\tclearFlags |= CLEARFLAG_STENCIL;\n\t\t\t_clearOptions.stencil = depthStencilOps.clearStencilValue;\n\t\t}\n\t\tconst colorBufferCount = rt._colorBuffers?.length ?? 0;\n\t\tconst colorOps = renderPass.colorOps;\n\t\tconst useClearBuffers = colorBufferCount > 1 || colorBufferCount === 1 && isIntegerPixelFormat(rt._colorBuffers[0].format);\n\t\tif (!useClearBuffers && colorOps?.clear) {\n\t\t\tclearFlags |= CLEARFLAG_COLOR;\n\t\t\tconst { clearValue } = colorOps;\n\t\t\tconst color3 = _clearOptions.color;\n\t\t\tcolor3[0] = clearValue.r;\n\t\t\tcolor3[1] = clearValue.g;\n\t\t\tcolor3[2] = clearValue.b;\n\t\t\tcolor3[3] = clearValue.a;\n\t\t}\n\t\tif (clearFlags !== 0) {\n\t\t\t_clearOptions.flags = clearFlags;\n\t\t\tthis.clear(_clearOptions);\n\t\t}\n\t\tif (useClearBuffers) {\n\t\t\tconst gl = this.gl;\n\t\t\tconst { colorArrayOps } = renderPass;\n\t\t\tlet writeMasksReset = false;\n\t\t\tfor (let i2 = 0; i2 < colorBufferCount; i2++) {\n\t\t\t\tconst colorOps2 = colorArrayOps[i2];\n\t\t\t\tif (colorOps2?.clear) {\n\t\t\t\t\tif (!writeMasksReset) {\n\t\t\t\t\t\tthis.setBlendState(BlendState.NOBLEND);\n\t\t\t\t\t\twriteMasksReset = true;\n\t\t\t\t\t}\n\t\t\t\t\tconst { clearValue } = colorOps2;\n\t\t\t\t\tconst formatInfo = pixelFormatInfo.get(rt._colorBuffers[i2].format);\n\t\t\t\t\tconst clearValueArray = formatInfo?.isUint ? _attachmentClearValueUint : formatInfo?.isInt ? _attachmentClearValueInt : _attachmentClearValue;\n\t\t\t\t\tclearValueArray[0] = clearValue.r;\n\t\t\t\t\tclearValueArray[1] = clearValue.g;\n\t\t\t\t\tclearValueArray[2] = clearValue.b;\n\t\t\t\t\tclearValueArray[3] = clearValue.a;\n\t\t\t\t\tif (formatInfo?.isUint) {\n\t\t\t\t\t\tgl.clearBufferuiv(gl.COLOR, i2, clearValueArray);\n\t\t\t\t\t} else if (formatInfo?.isInt) {\n\t\t\t\t\t\tgl.clearBufferiv(gl.COLOR, i2, clearValueArray);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tgl.clearBufferfv(gl.COLOR, i2, clearValueArray);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis.insideRenderPass = true;\n\t}\n\tendRenderPass(renderPass) {\n\t\tthis.unbindVertexArray();\n\t\tconst target2 = this.renderTarget;\n\t\tconst colorBufferCount = renderPass.colorArrayOps.length;\n\t\tif (target2) {\n\t\t\tinvalidateAttachments.length = 0;\n\t\t\tconst gl = this.gl;\n\t\t\tfor (let i2 = 0; i2 < colorBufferCount; i2++) {\n\t\t\t\tconst colorOps = renderPass.colorArrayOps[i2];\n\t\t\t\tif (!(colorOps.store || colorOps.resolve)) {\n\t\t\t\t\tinvalidateAttachments.push(gl.COLOR_ATTACHMENT0 + i2);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (target2 !== this.backBuffer) {\n\t\t\t\tif (!renderPass.depthStencilOps.storeDepth) {\n\t\t\t\t\tinvalidateAttachments.push(gl.DEPTH_ATTACHMENT);\n\t\t\t\t}\n\t\t\t\tif (!renderPass.depthStencilOps.storeStencil) {\n\t\t\t\t\tinvalidateAttachments.push(gl.STENCIL_ATTACHMENT);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (invalidateAttachments.length > 0) {\n\t\t\t\tif (renderPass.fullSizeClearRect) {\n\t\t\t\t\tgl.invalidateFramebuffer(gl.DRAW_FRAMEBUFFER, invalidateAttachments);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (colorBufferCount && renderPass.colorOps?.resolve) {\n\t\t\t\tif (renderPass.samples > 1 && target2.autoResolve) {\n\t\t\t\t\ttarget2.resolve(true, false);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (target2.depthBuffer && renderPass.depthStencilOps.resolveDepth) {\n\t\t\t\tif (renderPass.samples > 1 && target2.autoResolve) {\n\t\t\t\t\ttarget2.resolve(false, true);\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (let i2 = 0; i2 < colorBufferCount; i2++) {\n\t\t\t\tconst colorOps = renderPass.colorArrayOps[i2];\n\t\t\t\tif (colorOps.genMipmaps) {\n\t\t\t\t\tconst colorBuffer = target2._colorBuffers[i2];\n\t\t\t\t\tif (colorBuffer && colorBuffer.impl._glTexture && colorBuffer.mipmaps) {\n\t\t\t\t\t\tthis.activeTexture(this.maxCombinedTextures - 1);\n\t\t\t\t\t\tthis.bindTexture(colorBuffer);\n\t\t\t\t\t\tthis.gl.generateMipmap(colorBuffer.impl._glTarget);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis.insideRenderPass = false;\n\t}\n\tset defaultFramebuffer(value) {\n\t\tif (this._defaultFramebuffer !== value) {\n\t\t\tthis._defaultFramebuffer = value;\n\t\t\tthis._defaultFramebufferChanged = true;\n\t\t}\n\t}\n\tget defaultFramebuffer() {\n\t\treturn this._defaultFramebuffer;\n\t}\n\tupdateBegin() {\n\t\tthis.boundVao = null;\n\t\tif (this._tempEnableSafariTextureUnitWorkaround) {\n\t\t\tfor (let unit = 0; unit < this.textureUnits.length; ++unit) {\n\t\t\t\tfor (let slot = 0; slot < 3; ++slot) {\n\t\t\t\t\tthis.textureUnits[unit][slot] = null;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tconst target2 = this.renderTarget ?? this.backBuffer;\n\t\tconst targetImpl = target2.impl;\n\t\tif (!targetImpl.initialized) {\n\t\t\tthis.initRenderTarget(target2);\n\t\t}\n\t\tthis.setFramebuffer(targetImpl._glFrameBuffer);\n\t}\n\tupdateEnd() {\n\t\tthis.unbindVertexArray();\n\t\tconst target2 = this.renderTarget;\n\t\tif (target2 && target2 !== this.backBuffer) {\n\t\t\tif (target2._samples > 1 && target2.autoResolve) {\n\t\t\t\ttarget2.resolve();\n\t\t\t}\n\t\t\tconst colorBuffer = target2._colorBuffer;\n\t\t\tif (colorBuffer && colorBuffer.impl._glTexture && colorBuffer.mipmaps) {\n\t\t\t\tthis.activeTexture(this.maxCombinedTextures - 1);\n\t\t\t\tthis.bindTexture(colorBuffer);\n\t\t\t\tthis.gl.generateMipmap(colorBuffer.impl._glTarget);\n\t\t\t}\n\t\t}\n\t}\n\tsetUnpackFlipY(flipY) {\n\t\tif (this.unpackFlipY !== flipY) {\n\t\t\tthis.unpackFlipY = flipY;\n\t\t\tconst gl = this.gl;\n\t\t\tgl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, flipY);\n\t\t}\n\t}\n\tsetUnpackPremultiplyAlpha(premultiplyAlpha) {\n\t\tif (this.unpackPremultiplyAlpha !== premultiplyAlpha) {\n\t\t\tthis.unpackPremultiplyAlpha = premultiplyAlpha;\n\t\t\tconst gl = this.gl;\n\t\t\tgl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, premultiplyAlpha);\n\t\t}\n\t}\n\tsetUnpackAlignment(alignment) {\n\t\tif (this.unpackAlignment !== alignment) {\n\t\t\tthis.unpackAlignment = alignment;\n\t\t\tthis.gl.pixelStorei(this.gl.UNPACK_ALIGNMENT, alignment);\n\t\t}\n\t}\n\tactiveTexture(textureUnit) {\n\t\tif (this.textureUnit !== textureUnit) {\n\t\t\tthis.gl.activeTexture(this.gl.TEXTURE0 + textureUnit);\n\t\t\tthis.textureUnit = textureUnit;\n\t\t}\n\t}\n\tbindTexture(texture) {\n\t\tconst impl = texture.impl;\n\t\tconst textureTarget = impl._glTarget;\n\t\tconst textureObject = impl._glTexture;\n\t\tconst textureUnit = this.textureUnit;\n\t\tconst slot = this.targetToSlot[textureTarget];\n\t\tif (this.textureUnits[textureUnit][slot] !== textureObject) {\n\t\t\tthis.gl.bindTexture(textureTarget, textureObject);\n\t\t\tthis.textureUnits[textureUnit][slot] = textureObject;\n\t\t}\n\t}\n\tbindTextureOnUnit(texture, textureUnit) {\n\t\tconst impl = texture.impl;\n\t\tconst textureTarget = impl._glTarget;\n\t\tconst textureObject = impl._glTexture;\n\t\tconst slot = this.targetToSlot[textureTarget];\n\t\tif (this.textureUnits[textureUnit][slot] !== textureObject) {\n\t\t\tthis.activeTexture(textureUnit);\n\t\t\tthis.gl.bindTexture(textureTarget, textureObject);\n\t\t\tthis.textureUnits[textureUnit][slot] = textureObject;\n\t\t}\n\t}\n\tsetTextureParameters(texture) {\n\t\tconst gl = this.gl;\n\t\tconst flags = texture.impl.dirtyParameterFlags;\n\t\tconst target2 = texture.impl._glTarget;\n\t\tif (flags & TEXPROPERTY_MIN_FILTER) {\n\t\t\tlet filter = texture._minFilter;\n\t\t\tif (!texture._mipmaps || texture._compressed && texture._levels.length === 1) {\n\t\t\t\tif (filter === FILTER_NEAREST_MIPMAP_NEAREST || filter === FILTER_NEAREST_MIPMAP_LINEAR) {\n\t\t\t\t\tfilter = FILTER_NEAREST;\n\t\t\t\t} else if (filter === FILTER_LINEAR_MIPMAP_NEAREST || filter === FILTER_LINEAR_MIPMAP_LINEAR) {\n\t\t\t\t\tfilter = FILTER_LINEAR;\n\t\t\t\t}\n\t\t\t}\n\t\t\tgl.texParameteri(target2, gl.TEXTURE_MIN_FILTER, this.glFilter[filter]);\n\t\t}\n\t\tif (flags & TEXPROPERTY_MAG_FILTER) {\n\t\t\tgl.texParameteri(target2, gl.TEXTURE_MAG_FILTER, this.glFilter[texture._magFilter]);\n\t\t}\n\t\tif (flags & TEXPROPERTY_ADDRESS_U) {\n\t\t\tgl.texParameteri(target2, gl.TEXTURE_WRAP_S, this.glAddress[texture._addressU]);\n\t\t}\n\t\tif (flags & TEXPROPERTY_ADDRESS_V) {\n\t\t\tgl.texParameteri(target2, gl.TEXTURE_WRAP_T, this.glAddress[texture._addressV]);\n\t\t}\n\t\tif (flags & TEXPROPERTY_ADDRESS_W) {\n\t\t\tgl.texParameteri(target2, gl.TEXTURE_WRAP_R, this.glAddress[texture._addressW]);\n\t\t}\n\t\tif (flags & TEXPROPERTY_COMPARE_ON_READ) {\n\t\t\tgl.texParameteri(target2, gl.TEXTURE_COMPARE_MODE, texture._compareOnRead ? gl.COMPARE_REF_TO_TEXTURE : gl.NONE);\n\t\t}\n\t\tif (flags & TEXPROPERTY_COMPARE_FUNC) {\n\t\t\tgl.texParameteri(target2, gl.TEXTURE_COMPARE_FUNC, this.glComparison[texture._compareFunc]);\n\t\t}\n\t\tif (flags & TEXPROPERTY_ANISOTROPY) {\n\t\t\tconst ext = this.extTextureFilterAnisotropic;\n\t\t\tif (ext) {\n\t\t\t\tgl.texParameterf(target2, ext.TEXTURE_MAX_ANISOTROPY_EXT, math.clamp(Math.round(texture._anisotropy), 1, this.maxAnisotropy));\n\t\t\t}\n\t\t}\n\t}\n\tsetTexture(texture, textureUnit) {\n\t\tconst impl = texture.impl;\n\t\tif (!impl._glTexture) {\n\t\t\timpl.initialize(this, texture);\n\t\t}\n\t\tif (impl.dirtyParameterFlags > 0 || texture._needsUpload || texture._needsMipmapsUpload) {\n\t\t\tthis.activeTexture(textureUnit);\n\t\t\tthis.bindTexture(texture);\n\t\t\tif (impl.dirtyParameterFlags) {\n\t\t\t\tthis.setTextureParameters(texture);\n\t\t\t\timpl.dirtyParameterFlags = 0;\n\t\t\t}\n\t\t\tif (texture._needsUpload || texture._needsMipmapsUpload) {\n\t\t\t\timpl.upload(this, texture);\n\t\t\t\ttexture._needsUpload = false;\n\t\t\t\ttexture._needsMipmapsUpload = false;\n\t\t\t}\n\t\t} else {\n\t\t\tthis.bindTextureOnUnit(texture, textureUnit);\n\t\t}\n\t}\n\t_vertexArrayKey(vertexBuffers) {\n\t\tlet key = \"\";\n\t\tfor (let i2 = 0; i2 < vertexBuffers.length; i2++) {\n\t\t\tkey += vertexBuffers[i2].vaoKeyPart;\n\t\t}\n\t\treturn key;\n\t}\n\tremoveVertexArrayFromCache(vertexBuffers) {\n\t\tif (vertexBuffers.length > 1) {\n\t\t\tconst key = this._vertexArrayKey(vertexBuffers);\n\t\t\tconst vao = this._vaoMap.get(key);\n\t\t\tif (vao) {\n\t\t\t\tthis._vaoMap.delete(key);\n\t\t\t\tthis.gl.deleteVertexArray(vao);\n\t\t\t}\n\t\t}\n\t}\n\t// function creates VertexArrayObject from list of vertex buffers\n\tcreateVertexArray(vertexBuffers) {\n\t\tlet key, vao;\n\t\tconst useCache = vertexBuffers.length > 1;\n\t\tif (useCache) {\n\t\t\tkey = this._vertexArrayKey(vertexBuffers);\n\t\t\tvao = this._vaoMap.get(key);\n\t\t}\n\t\tif (!vao) {\n\t\t\tconst gl = this.gl;\n\t\t\tvao = gl.createVertexArray();\n\t\t\tgl.bindVertexArray(vao);\n\t\t\tgl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, null);\n\t\t\tlet locZero = false;\n\t\t\tfor (let i2 = 0; i2 < vertexBuffers.length; i2++) {\n\t\t\t\tconst vertexBuffer = vertexBuffers[i2];\n\t\t\t\tgl.bindBuffer(gl.ARRAY_BUFFER, vertexBuffer.impl.bufferId);\n\t\t\t\tconst elements = vertexBuffer.format.elements;\n\t\t\t\tfor (let j = 0; j < elements.length; j++) {\n\t\t\t\t\tconst e = elements[j];\n\t\t\t\t\tconst loc = semanticToLocation[e.name];\n\t\t\t\t\tif (loc === 0) {\n\t\t\t\t\t\tlocZero = true;\n\t\t\t\t\t}\n\t\t\t\t\tif (e.asInt) {\n\t\t\t\t\t\tgl.vertexAttribIPointer(loc, e.numComponents, this.glType[e.dataType], e.stride, e.offset);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tgl.vertexAttribPointer(loc, e.numComponents, this.glType[e.dataType], e.normalize, e.stride, e.offset);\n\t\t\t\t\t}\n\t\t\t\t\tgl.enableVertexAttribArray(loc);\n\t\t\t\t\tif (vertexBuffer.format.instancing) {\n\t\t\t\t\t\tgl.vertexAttribDivisor(loc, 1);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tgl.bindVertexArray(null);\n\t\t\tgl.bindBuffer(gl.ARRAY_BUFFER, null);\n\t\t\tif (useCache) {\n\t\t\t\tthis._vaoMap.set(key, vao);\n\t\t\t}\n\t\t\tif (!locZero) {\n\t\t\t}\n\t\t}\n\t\treturn vao;\n\t}\n\tunbindVertexArray() {\n\t\tif (this.boundVao) {\n\t\t\tthis.boundVao = null;\n\t\t\tthis.gl.bindVertexArray(null);\n\t\t}\n\t}\n\tsetBuffers(indexBuffer) {\n\t\tconst gl = this.gl;\n\t\tlet vao;\n\t\tif (this.vertexBuffers.length === 1) {\n\t\t\tconst vertexBuffer = this.vertexBuffers[0];\n\t\t\tif (!vertexBuffer.impl.vao) {\n\t\t\t\tvertexBuffer.impl.vao = this.createVertexArray(this.vertexBuffers);\n\t\t\t}\n\t\t\tvao = vertexBuffer.impl.vao;\n\t\t} else {\n\t\t\tvao = this.createVertexArray(this.vertexBuffers);\n\t\t}\n\t\tif (this.boundVao !== vao) {\n\t\t\tthis.boundVao = vao;\n\t\t\tgl.bindVertexArray(vao);\n\t\t}\n\t\tconst bufferId = indexBuffer ? indexBuffer.impl.bufferId : null;\n\t\tgl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, bufferId);\n\t}\n\t_multiDrawLoopFallback(mode, primitive2, indexBuffer, numInstances, drawCommands) {\n\t\tconst gl = this.gl;\n\t\tif (primitive2.indexed) {\n\t\t\tconst format = indexBuffer.impl.glFormat;\n\t\t\tconst { glCounts, glOffsetsBytes, glInstanceCounts, count } = drawCommands.impl;\n\t\t\tif (numInstances > 0) {\n\t\t\t\tfor (let i2 = 0; i2 < count; i2++) {\n\t\t\t\t\tgl.drawElementsInstanced(mode, glCounts[i2], format, glOffsetsBytes[i2], glInstanceCounts[i2]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (let i2 = 0; i2 < count; i2++) {\n\t\t\t\t\tgl.drawElements(mode, glCounts[i2], format, glOffsetsBytes[i2]);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tconst { glCounts, glOffsetsBytes, glInstanceCounts, count } = drawCommands.impl;\n\t\t\tif (numInstances > 0) {\n\t\t\t\tfor (let i2 = 0; i2 < count; i2++) {\n\t\t\t\t\tgl.drawArraysInstanced(mode, glOffsetsBytes[i2], glCounts[i2], glInstanceCounts[i2]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (let i2 = 0; i2 < count; i2++) {\n\t\t\t\t\tgl.drawArrays(mode, glOffsetsBytes[i2], glCounts[i2]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tdraw(primitive2, indexBuffer, numInstances, drawCommands, first = true, last = true) {\n\t\tconst shader = this.shader;\n\t\tif (shader) {\n\t\t\tthis.activateShader();\n\t\t\tif (this.shaderValid) {\n\t\t\t\tconst gl = this.gl;\n\t\t\t\tif (first) {\n\t\t\t\t\tthis.setBuffers(indexBuffer);\n\t\t\t\t}\n\t\t\t\tlet textureUnit = 0;\n\t\t\t\tconst samplers = shader.impl.samplers;\n\t\t\t\tfor (let i2 = 0, len = samplers.length; i2 < len; i2++) {\n\t\t\t\t\tconst sampler = samplers[i2];\n\t\t\t\t\tlet samplerValue = sampler.scopeId.value;\n\t\t\t\t\tif (!samplerValue) {\n\t\t\t\t\t\tconst samplerName = sampler.scopeId.name;\n\t\t\t\t\t\tif (samplerName === \"uSceneDepthMap\") {\n\t\t\t\t\t\t\tsamplerValue = getBuiltInTexture(this, \"white\");\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (samplerName === \"uSceneColorMap\") {\n\t\t\t\t\t\t\tsamplerValue = getBuiltInTexture(this, \"pink\");\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!samplerValue) {\n\t\t\t\t\t\t\tsamplerValue = getBuiltInTexture(this, \"pink\");\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (samplerValue instanceof Texture) {\n\t\t\t\t\t\tconst texture = samplerValue;\n\t\t\t\t\t\tthis.setTexture(texture, textureUnit);\n\t\t\t\t\t\tif (sampler.slot !== textureUnit) {\n\t\t\t\t\t\t\tgl.uniform1i(sampler.locationId, textureUnit);\n\t\t\t\t\t\t\tsampler.slot = textureUnit;\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttextureUnit++;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsampler.array.length = 0;\n\t\t\t\t\t\tconst numTextures = samplerValue.length;\n\t\t\t\t\t\tfor (let j = 0; j < numTextures; j++) {\n\t\t\t\t\t\t\tconst texture = samplerValue[j];\n\t\t\t\t\t\t\tthis.setTexture(texture, textureUnit);\n\t\t\t\t\t\t\tsampler.array[j] = textureUnit;\n\t\t\t\t\t\t\ttextureUnit++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tgl.uniform1iv(sampler.locationId, sampler.array);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tconst uniforms = shader.impl.uniforms;\n\t\t\t\tfor (let i2 = 0, len = uniforms.length; i2 < len; i2++) {\n\t\t\t\t\tconst uniform = uniforms[i2];\n\t\t\t\t\tconst scopeId = uniform.scopeId;\n\t\t\t\t\tconst uniformVersion = uniform.version;\n\t\t\t\t\tconst programVersion = scopeId.versionObject.version;\n\t\t\t\t\tif (uniformVersion.globalId !== programVersion.globalId || uniformVersion.revision !== programVersion.revision) {\n\t\t\t\t\t\tuniformVersion.globalId = programVersion.globalId;\n\t\t\t\t\t\tuniformVersion.revision = programVersion.revision;\n\t\t\t\t\t\tconst value = scopeId.value;\n\t\t\t\t\t\tif (value !== null && value !== void 0) {\n\t\t\t\t\t\t\tthis.commitFunction[uniform.dataType](uniform, value);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tconst transformFeedbackBuffers = this.transformFeedbackBuffers;\n\t\t\t\tif (transformFeedbackBuffers) {\n\t\t\t\t\tfor (let i2 = 0; i2 < transformFeedbackBuffers.length; i2++) {\n\t\t\t\t\t\tgl.bindBufferBase(gl.TRANSFORM_FEEDBACK_BUFFER, i2, transformFeedbackBuffers[i2].impl.bufferId);\n\t\t\t\t\t}\n\t\t\t\t\tgl.beginTransformFeedback(gl.POINTS);\n\t\t\t\t}\n\t\t\t\tconst mode = this.glPrimitive[primitive2.type];\n\t\t\t\tconst count = primitive2.count;\n\t\t\t\tif (drawCommands) {\n\t\t\t\t\tif (this.extMultiDraw) {\n\t\t\t\t\t\tconst impl = drawCommands.impl;\n\t\t\t\t\t\tif (primitive2.indexed) {\n\t\t\t\t\t\t\tconst format = indexBuffer.impl.glFormat;\n\t\t\t\t\t\t\tif (numInstances > 0) {\n\t\t\t\t\t\t\t\tthis.extMultiDraw.multiDrawElementsInstancedWEBGL(mode, impl.glCounts, 0, format, impl.glOffsetsBytes, 0, impl.glInstanceCounts, 0, drawCommands.count);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.extMultiDraw.multiDrawElementsWEBGL(mode, impl.glCounts, 0, format, impl.glOffsetsBytes, 0, drawCommands.count);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (numInstances > 0) {\n\t\t\t\t\t\t\t\tthis.extMultiDraw.multiDrawArraysInstancedWEBGL(mode, impl.glOffsetsBytes, 0, impl.glCounts, 0, impl.glInstanceCounts, 0, drawCommands.count);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.extMultiDraw.multiDrawArraysWEBGL(mode, impl.glOffsetsBytes, 0, impl.glCounts, 0, drawCommands.count);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis._multiDrawLoopFallback(mode, primitive2, indexBuffer, numInstances, drawCommands);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (primitive2.indexed) {\n\t\t\t\t\t\tconst format = indexBuffer.impl.glFormat;\n\t\t\t\t\t\tconst offset3 = primitive2.base * indexBuffer.bytesPerIndex;\n\t\t\t\t\t\tif (numInstances > 0) {\n\t\t\t\t\t\t\tgl.drawElementsInstanced(mode, count, format, offset3, numInstances);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tgl.drawElements(mode, count, format, offset3);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst first2 = primitive2.base;\n\t\t\t\t\t\tif (numInstances > 0) {\n\t\t\t\t\t\t\tgl.drawArraysInstanced(mode, first2, count, numInstances);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tgl.drawArrays(mode, first2, count);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (transformFeedbackBuffers) {\n\t\t\t\t\tgl.endTransformFeedback();\n\t\t\t\t\tfor (let i2 = 0; i2 < transformFeedbackBuffers.length; i2++) {\n\t\t\t\t\t\tgl.bindBufferBase(gl.TRANSFORM_FEEDBACK_BUFFER, i2, null);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis._drawCallsPerFrame++;\n\t\t\t}\n\t\t}\n\t\tif (last) {\n\t\t\tthis.clearVertexBuffer();\n\t\t}\n\t}\n\tclear(options2) {\n\t\tconst defaultOptions = this.defaultClearOptions;\n\t\toptions2 = options2 || defaultOptions;\n\t\tconst flags = options2.flags ?? defaultOptions.flags;\n\t\tif (flags !== 0) {\n\t\t\tconst gl = this.gl;\n\t\t\tif (flags & CLEARFLAG_COLOR) {\n\t\t\t\tconst color3 = options2.color ?? defaultOptions.color;\n\t\t\t\tconst r = color3[0];\n\t\t\t\tconst g = color3[1];\n\t\t\t\tconst b = color3[2];\n\t\t\t\tconst a = color3[3];\n\t\t\t\tconst c2 = this.clearColor;\n\t\t\t\tif (r !== c2.r || g !== c2.g || b !== c2.b || a !== c2.a) {\n\t\t\t\t\tthis.gl.clearColor(r, g, b, a);\n\t\t\t\t\tthis.clearColor.set(r, g, b, a);\n\t\t\t\t}\n\t\t\t\tthis.setBlendState(BlendState.NOBLEND);\n\t\t\t}\n\t\t\tif (flags & CLEARFLAG_DEPTH) {\n\t\t\t\tconst depth = options2.depth ?? defaultOptions.depth;\n\t\t\t\tif (depth !== this.clearDepth) {\n\t\t\t\t\tthis.gl.clearDepth(depth);\n\t\t\t\t\tthis.clearDepth = depth;\n\t\t\t\t}\n\t\t\t\tthis.setDepthState(DepthState.WRITEDEPTH);\n\t\t\t}\n\t\t\tif (flags & CLEARFLAG_STENCIL) {\n\t\t\t\tconst stencil = options2.stencil ?? defaultOptions.stencil;\n\t\t\t\tif (stencil !== this.clearStencil) {\n\t\t\t\t\tthis.gl.clearStencil(stencil);\n\t\t\t\t\tthis.clearStencil = stencil;\n\t\t\t\t}\n\t\t\t\tgl.stencilMask(255);\n\t\t\t\tthis.stencilWriteMaskFront = 255;\n\t\t\t\tthis.stencilWriteMaskBack = 255;\n\t\t\t}\n\t\t\tgl.clear(this.glClearFlag[flags]);\n\t\t}\n\t}\n\tsubmit() {\n\t\tthis.gl.flush();\n\t}\n\treadPixels(x3, y2, w, h2, pixels) {\n\t\tconst gl = this.gl;\n\t\tgl.readPixels(x3, y2, w, h2, gl.RGBA, gl.UNSIGNED_BYTE, pixels);\n\t}\n\tclientWaitAsync(flags, interval_ms) {\n\t\tconst gl = this.gl;\n\t\tconst sync = gl.fenceSync(gl.SYNC_GPU_COMMANDS_COMPLETE, 0);\n\t\tthis.submit();\n\t\treturn new Promise((resolve2, reject) => {\n\t\t\tfunction test() {\n\t\t\t\tconst res = gl.clientWaitSync(sync, flags, 0);\n\t\t\t\tif (res === gl.TIMEOUT_EXPIRED) {\n\t\t\t\t\tsetTimeout(test, interval_ms);\n\t\t\t\t} else {\n\t\t\t\t\tgl.deleteSync(sync);\n\t\t\t\t\tif (res === gl.WAIT_FAILED) {\n\t\t\t\t\t\treject(new Error(\"webgl clientWaitSync sync failed\"));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresolve2();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\ttest();\n\t\t});\n\t}\n\tasync readPixelsAsync(x3, y2, w, h2, pixels, forceRgba = false, frequent = false) {\n\t\tconst gl = this.gl;\n\t\tlet format, pixelType;\n\t\tif (forceRgba) {\n\t\t\tformat = gl.RGBA;\n\t\t\tpixelType = gl.UNSIGNED_BYTE;\n\t\t} else {\n\t\t\tconst impl = this.renderTarget.colorBuffer?.impl;\n\t\t\tformat = impl?._glFormat ?? gl.RGBA;\n\t\t\tpixelType = impl?._glPixelType ?? gl.UNSIGNED_BYTE;\n\t\t}\n\t\tconst buf = gl.createBuffer();\n\t\tgl.bindBuffer(gl.PIXEL_PACK_BUFFER, buf);\n\t\tgl.bufferData(gl.PIXEL_PACK_BUFFER, pixels.byteLength, gl.STREAM_READ);\n\t\tgl.readPixels(x3, y2, w, h2, format, pixelType, 0);\n\t\tgl.bindBuffer(gl.PIXEL_PACK_BUFFER, null);\n\t\tawait this.clientWaitAsync(0, 16);\n\t\tconst copyOut = () => {\n\t\t\tgl.bindBuffer(gl.PIXEL_PACK_BUFFER, buf);\n\t\t\tgl.getBufferSubData(gl.PIXEL_PACK_BUFFER, 0, pixels);\n\t\t\tgl.bindBuffer(gl.PIXEL_PACK_BUFFER, null);\n\t\t\tgl.deleteBuffer(buf);\n\t\t};\n\t\tif (this._destroyed) {\n\t\t\tgl.deleteBuffer(buf);\n\t\t\treturn pixels;\n\t\t}\n\t\tif (this.contextLost) {\n\t\t\tgl.deleteBuffer(buf);\n\t\t\tthrow new Error(\"Texture read did not complete, as the WebGL context was lost.\");\n\t\t}\n\t\tif (!frequent) {\n\t\t\tcopyOut();\n\t\t\treturn pixels;\n\t\t}\n\t\tawait new Promise((resolve2, reject) => {\n\t\t\tconst copy = {\n\t\t\t\ttimer: 0,\n\t\t\t\tsettled: false,\n\t\t\t\t// a read settles once, whichever of the ways below gets to it first\n\t\t\t\tend: (settle) => {\n\t\t\t\t\tif (copy.settled) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tcopy.settled = true;\n\t\t\t\t\tclearTimeout(copy.timer);\n\t\t\t\t\tthis._readbackCopies.delete(copy);\n\t\t\t\t\tsettle();\n\t\t\t\t},\n\t\t\t\t// the copy this was all deferred for, at the start of a frame or once the wait for\n\t\t\t\t// one has run out\n\t\t\t\trun: () => copy.end(() => {\n\t\t\t\t\tcopyOut();\n\t\t\t\t\tresolve2();\n\t\t\t\t}),\n\t\t\t\t// The device is going away, which the caller of the read is told about instead of\n\t\t\t\t// being given data. Settling without the copy, as the bytes it waits for would go\n\t\t\t\t// straight in the bin, and the wait is the one this deferral exists to avoid.\n\t\t\t\tabandon: () => copy.end(resolve2),\n\t\t\t\t// the pixel buffer went with the context, so there is nothing left to read and the\n\t\t\t\t// read has to fail rather than hand back whatever the destination happens to hold\n\t\t\t\tfail: () => copy.end(() => {\n\t\t\t\t\treject(new Error(\"Texture read did not complete, as the WebGL context was lost.\"));\n\t\t\t\t})\n\t\t\t};\n\t\t\tcopy.timer = setTimeout(copy.run, READBACK_FRAME_START_WAIT);\n\t\t\tthis._readbackCopies.add(copy);\n\t\t});\n\t\treturn pixels;\n\t}\n\treadTextureAsync(texture, x3, y2, width, height, options2) {\n\t\tconst face = options2.face ?? 0;\n\t\tconst mipLevel = options2.mipLevel ?? 0;\n\t\tconst renderTarget = options2.renderTarget ?? new RenderTarget({\n\t\t\tcolorBuffer: texture,\n\t\t\tdepth: false,\n\t\t\tface,\n\t\t\tmipLevel\n\t\t});\n\t\tconst rgbaChannels = getPixelFormatChannelsForRgbaReadback(texture._format);\n\t\tconst needsRgbaReadback = rgbaChannels > 0;\n\t\tconst ArrayType = getPixelFormatArrayType(texture._format);\n\t\tconst outputData = options2.data ?? new ArrayType(\n\t\t\tTextureUtils.calcLevelGpuSize(width, height, 1, texture._format) / ArrayType.BYTES_PER_ELEMENT\n\t\t);\n\t\tconst readBuffer = needsRgbaReadback ? new Uint8Array(width * height * 4) : outputData;\n\t\tthis.setRenderTarget(renderTarget);\n\t\tthis.initRenderTarget(renderTarget);\n\t\tthis.setFramebuffer(renderTarget.impl._glFrameBuffer);\n\t\tif (options2.immediate) {\n\t\t\tthis.gl.flush();\n\t\t}\n\t\tlet released = !!options2.renderTarget;\n\t\tconst release = () => {\n\t\t\tif (released) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\treleased = true;\n\t\t\tthis.off(\"destroy\", release);\n\t\t\trenderTarget.destroy();\n\t\t};\n\t\tif (!released) {\n\t\t\tthis.on(\"destroy\", release);\n\t\t}\n\t\treturn new Promise((resolve2, reject) => {\n\t\t\tconst readPromise = this.readPixelsAsync(\n\t\t\t\tx3,\n\t\t\t\ty2,\n\t\t\t\twidth,\n\t\t\t\theight,\n\t\t\t\treadBuffer,\n\t\t\t\tneedsRgbaReadback,\n\t\t\t\toptions2.frequent ?? false\n\t\t\t);\n\t\t\treadPromise.then((data2) => {\n\t\t\t\trelease();\n\t\t\t\tif (this._destroyed) {\n\t\t\t\t\treject(new Error(\"Texture read did not complete, as the graphics device was destroyed.\"));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (needsRgbaReadback) {\n\t\t\t\t\tconst pixelCount = width * height;\n\t\t\t\t\tfor (let i2 = 0; i2 < pixelCount; i2++) {\n\t\t\t\t\t\tfor (let c2 = 0; c2 < rgbaChannels; c2++) {\n\t\t\t\t\t\t\toutputData[i2 * rgbaChannels + c2] = data2[i2 * 4 + c2];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tresolve2(outputData);\n\t\t\t\t} else {\n\t\t\t\t\tresolve2(data2);\n\t\t\t\t}\n\t\t\t}).catch((error) => {\n\t\t\t\trelease();\n\t\t\t\treject(error);\n\t\t\t});\n\t\t});\n\t}\n\tasync writeTextureAsync(texture, x3, y2, width, height, data2) {\n\t\tconst gl = this.gl;\n\t\tconst impl = texture.impl;\n\t\tconst format = impl?._glFormat ?? gl.RGBA;\n\t\tconst pixelType = impl?._glPixelType ?? gl.UNSIGNED_BYTE;\n\t\tconst buf = gl.createBuffer();\n\t\tgl.bindBuffer(gl.PIXEL_UNPACK_BUFFER, buf);\n\t\tgl.bufferData(gl.PIXEL_UNPACK_BUFFER, data2, gl.STREAM_DRAW);\n\t\tgl.bindTexture(gl.TEXTURE_2D, impl._glTexture);\n\t\tgl.texSubImage2D(gl.TEXTURE_2D, 0, x3, y2, width, height, format, pixelType, 0);\n\t\tgl.bindBuffer(gl.PIXEL_UNPACK_BUFFER, null);\n\t\ttexture._needsUpload = false;\n\t\ttexture._mipmapsUploaded = false;\n\t\tawait this.clientWaitAsync(0, 16);\n\t}\n\tsetAlphaToCoverage(state) {\n\t\tif (this.alphaToCoverage !== state) {\n\t\t\tthis.alphaToCoverage = state;\n\t\t\tif (state) {\n\t\t\t\tthis.gl.enable(this.gl.SAMPLE_ALPHA_TO_COVERAGE);\n\t\t\t} else {\n\t\t\t\tthis.gl.disable(this.gl.SAMPLE_ALPHA_TO_COVERAGE);\n\t\t\t}\n\t\t}\n\t}\n\tsetTransformFeedbackBuffers(buffers) {\n\t\tconst gl = this.gl;\n\t\tconst active = buffers?.length ? buffers : null;\n\t\tconst wasActive = this.transformFeedbackBuffers !== null;\n\t\tthis.transformFeedbackBuffers = active;\n\t\tif (active) {\n\t\t\tif (!wasActive) {\n\t\t\t\tthis.feedback ?? (this.feedback = gl.createTransformFeedback());\n\t\t\t\tgl.bindTransformFeedback(gl.TRANSFORM_FEEDBACK, this.feedback);\n\t\t\t}\n\t\t} else if (wasActive) {\n\t\t\tgl.bindTransformFeedback(gl.TRANSFORM_FEEDBACK, null);\n\t\t}\n\t}\n\tsetRaster(on) {\n\t\tif (this.raster !== on) {\n\t\t\tthis.raster = on;\n\t\t\tif (on) {\n\t\t\t\tthis.gl.disable(this.gl.RASTERIZER_DISCARD);\n\t\t\t} else {\n\t\t\t\tthis.gl.enable(this.gl.RASTERIZER_DISCARD);\n\t\t\t}\n\t\t}\n\t}\n\tsetStencilTest(enable) {\n\t\tif (this.stencil !== enable) {\n\t\t\tconst gl = this.gl;\n\t\t\tif (enable) {\n\t\t\t\tgl.enable(gl.STENCIL_TEST);\n\t\t\t} else {\n\t\t\t\tgl.disable(gl.STENCIL_TEST);\n\t\t\t}\n\t\t\tthis.stencil = enable;\n\t\t}\n\t}\n\tsetStencilFunc(func, ref, mask) {\n\t\tif (this.stencilFuncFront !== func || this.stencilRefFront !== ref || this.stencilMaskFront !== mask || this.stencilFuncBack !== func || this.stencilRefBack !== ref || this.stencilMaskBack !== mask) {\n\t\t\tthis.gl.stencilFunc(this.glComparison[func], ref, mask);\n\t\t\tthis.stencilFuncFront = this.stencilFuncBack = func;\n\t\t\tthis.stencilRefFront = this.stencilRefBack = ref;\n\t\t\tthis.stencilMaskFront = this.stencilMaskBack = mask;\n\t\t}\n\t}\n\tsetStencilFuncFront(func, ref, mask) {\n\t\tif (this.stencilFuncFront !== func || this.stencilRefFront !== ref || this.stencilMaskFront !== mask) {\n\t\t\tconst gl = this.gl;\n\t\t\tgl.stencilFuncSeparate(gl.FRONT, this.glComparison[func], ref, mask);\n\t\t\tthis.stencilFuncFront = func;\n\t\t\tthis.stencilRefFront = ref;\n\t\t\tthis.stencilMaskFront = mask;\n\t\t}\n\t}\n\tsetStencilFuncBack(func, ref, mask) {\n\t\tif (this.stencilFuncBack !== func || this.stencilRefBack !== ref || this.stencilMaskBack !== mask) {\n\t\t\tconst gl = this.gl;\n\t\t\tgl.stencilFuncSeparate(gl.BACK, this.glComparison[func], ref, mask);\n\t\t\tthis.stencilFuncBack = func;\n\t\t\tthis.stencilRefBack = ref;\n\t\t\tthis.stencilMaskBack = mask;\n\t\t}\n\t}\n\tsetStencilOperation(fail, zfail, zpass, writeMask) {\n\t\tif (this.stencilFailFront !== fail || this.stencilZfailFront !== zfail || this.stencilZpassFront !== zpass || this.stencilFailBack !== fail || this.stencilZfailBack !== zfail || this.stencilZpassBack !== zpass) {\n\t\t\tthis.gl.stencilOp(this.glStencilOp[fail], this.glStencilOp[zfail], this.glStencilOp[zpass]);\n\t\t\tthis.stencilFailFront = this.stencilFailBack = fail;\n\t\t\tthis.stencilZfailFront = this.stencilZfailBack = zfail;\n\t\t\tthis.stencilZpassFront = this.stencilZpassBack = zpass;\n\t\t}\n\t\tif (this.stencilWriteMaskFront !== writeMask || this.stencilWriteMaskBack !== writeMask) {\n\t\t\tthis.gl.stencilMask(writeMask);\n\t\t\tthis.stencilWriteMaskFront = writeMask;\n\t\t\tthis.stencilWriteMaskBack = writeMask;\n\t\t}\n\t}\n\tsetStencilOperationFront(fail, zfail, zpass, writeMask) {\n\t\tif (this.stencilFailFront !== fail || this.stencilZfailFront !== zfail || this.stencilZpassFront !== zpass) {\n\t\t\tthis.gl.stencilOpSeparate(this.gl.FRONT, this.glStencilOp[fail], this.glStencilOp[zfail], this.glStencilOp[zpass]);\n\t\t\tthis.stencilFailFront = fail;\n\t\t\tthis.stencilZfailFront = zfail;\n\t\t\tthis.stencilZpassFront = zpass;\n\t\t}\n\t\tif (this.stencilWriteMaskFront !== writeMask) {\n\t\t\tthis.gl.stencilMaskSeparate(this.gl.FRONT, writeMask);\n\t\t\tthis.stencilWriteMaskFront = writeMask;\n\t\t}\n\t}\n\tsetStencilOperationBack(fail, zfail, zpass, writeMask) {\n\t\tif (this.stencilFailBack !== fail || this.stencilZfailBack !== zfail || this.stencilZpassBack !== zpass) {\n\t\t\tthis.gl.stencilOpSeparate(this.gl.BACK, this.glStencilOp[fail], this.glStencilOp[zfail], this.glStencilOp[zpass]);\n\t\t\tthis.stencilFailBack = fail;\n\t\t\tthis.stencilZfailBack = zfail;\n\t\t\tthis.stencilZpassBack = zpass;\n\t\t}\n\t\tif (this.stencilWriteMaskBack !== writeMask) {\n\t\t\tthis.gl.stencilMaskSeparate(this.gl.BACK, writeMask);\n\t\t\tthis.stencilWriteMaskBack = writeMask;\n\t\t}\n\t}\n\tapplyBlendState(blendState, prevState) {\n\t\tconst gl = this.gl;\n\t\tconst { blend, colorOp, alphaOp, colorSrcFactor, colorDstFactor, alphaSrcFactor, alphaDstFactor } = blendState;\n\t\tif (!prevState || prevState.blend !== blend) {\n\t\t\tif (blend) {\n\t\t\t\tgl.enable(gl.BLEND);\n\t\t\t} else {\n\t\t\t\tgl.disable(gl.BLEND);\n\t\t\t}\n\t\t}\n\t\tif (!prevState || prevState.colorOp !== colorOp || prevState.alphaOp !== alphaOp) {\n\t\t\tconst glBlendEquation = this.glBlendEquation;\n\t\t\tgl.blendEquationSeparate(glBlendEquation[colorOp], glBlendEquation[alphaOp]);\n\t\t}\n\t\tif (!prevState || prevState.colorSrcFactor !== colorSrcFactor || prevState.colorDstFactor !== colorDstFactor || prevState.alphaSrcFactor !== alphaSrcFactor || prevState.alphaDstFactor !== alphaDstFactor) {\n\t\t\tgl.blendFuncSeparate(\n\t\t\t\tthis.glBlendFunctionColor[colorSrcFactor],\n\t\t\t\tthis.glBlendFunctionColor[colorDstFactor],\n\t\t\t\tthis.glBlendFunctionAlpha[alphaSrcFactor],\n\t\t\t\tthis.glBlendFunctionAlpha[alphaDstFactor]\n\t\t\t);\n\t\t}\n\t\tif (!prevState || prevState.allWrite !== blendState.allWrite) {\n\t\t\tgl.colorMask(blendState.redWrite, blendState.greenWrite, blendState.blueWrite, blendState.alphaWrite);\n\t\t}\n\t}\n\tapplyBlendStateIndexed(index, blendState) {\n\t\tconst gl = this.gl;\n\t\tconst ext = this.extDrawBuffersIndexed;\n\t\tconst { blend, colorOp, alphaOp, colorSrcFactor, colorDstFactor, alphaSrcFactor, alphaDstFactor } = blendState;\n\t\tif (blend) {\n\t\t\text.enableiOES(gl.BLEND, index);\n\t\t} else {\n\t\t\text.disableiOES(gl.BLEND, index);\n\t\t}\n\t\tconst glBlendEquation = this.glBlendEquation;\n\t\text.blendEquationSeparateiOES(index, glBlendEquation[colorOp], glBlendEquation[alphaOp]);\n\t\text.blendFuncSeparateiOES(\n\t\t\tindex,\n\t\t\tthis.glBlendFunctionColor[colorSrcFactor],\n\t\t\tthis.glBlendFunctionColor[colorDstFactor],\n\t\t\tthis.glBlendFunctionAlpha[alphaSrcFactor],\n\t\t\tthis.glBlendFunctionAlpha[alphaDstFactor]\n\t\t);\n\t\text.colorMaskiOES(index, blendState.redWrite, blendState.greenWrite, blendState.blueWrite, blendState.alphaWrite);\n\t}\n\tsetBlendState(blendState) {\n\t\tconst currentBlendState = this.blendState;\n\t\tif (!currentBlendState.equals(blendState)) {\n\t\t\tif ((blendState.hasAttachmentOverrides || currentBlendState.hasAttachmentOverrides) && this.supportsIndependentBlending) {\n\t\t\t\tblendState.getAttachment(0, _attachmentBlendState2);\n\t\t\t\tthis.applyBlendState(_attachmentBlendState2);\n\t\t\t\tconst attachment0Key = _attachmentBlendState2.key;\n\t\t\t\tif (blendState.hasAttachmentOverrides) {\n\t\t\t\t\tconst count = Math.min(maxBlendAttachments, this.maxColorAttachments);\n\t\t\t\t\tfor (let i2 = 1; i2 < count; i2++) {\n\t\t\t\t\t\tblendState.getAttachment(i2, _attachmentBlendState2);\n\t\t\t\t\t\tif (_attachmentBlendState2.key !== attachment0Key) {\n\t\t\t\t\t\t\tthis.applyBlendStateIndexed(i2, _attachmentBlendState2);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.applyBlendState(blendState, currentBlendState);\n\t\t\t}\n\t\t\tcurrentBlendState.copy(blendState);\n\t\t}\n\t}\n\tsetBlendColor(r, g, b, a) {\n\t\tconst c2 = this.blendColor;\n\t\tif (r !== c2.r || g !== c2.g || b !== c2.b || a !== c2.a) {\n\t\t\tthis.gl.blendColor(r, g, b, a);\n\t\t\tc2.set(r, g, b, a);\n\t\t}\n\t}\n\tsetStencilState(stencilFront, stencilBack) {\n\t\tif (stencilFront || stencilBack) {\n\t\t\tthis.setStencilTest(true);\n\t\t\tif (stencilFront === stencilBack) {\n\t\t\t\tthis.setStencilFunc(stencilFront.func, stencilFront.ref, stencilFront.readMask);\n\t\t\t\tthis.setStencilOperation(stencilFront.fail, stencilFront.zfail, stencilFront.zpass, stencilFront.writeMask);\n\t\t\t} else {\n\t\t\t\tstencilFront ?? (stencilFront = StencilParameters.DEFAULT);\n\t\t\t\tthis.setStencilFuncFront(stencilFront.func, stencilFront.ref, stencilFront.readMask);\n\t\t\t\tthis.setStencilOperationFront(stencilFront.fail, stencilFront.zfail, stencilFront.zpass, stencilFront.writeMask);\n\t\t\t\tstencilBack ?? (stencilBack = StencilParameters.DEFAULT);\n\t\t\t\tthis.setStencilFuncBack(stencilBack.func, stencilBack.ref, stencilBack.readMask);\n\t\t\t\tthis.setStencilOperationBack(stencilBack.fail, stencilBack.zfail, stencilBack.zpass, stencilBack.writeMask);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.setStencilTest(false);\n\t\t}\n\t}\n\tsetDepthState(depthState) {\n\t\tconst currentDepthState = this.depthState;\n\t\tif (!currentDepthState.equals(depthState)) {\n\t\t\tconst gl = this.gl;\n\t\t\tconst write = depthState.write;\n\t\t\tif (currentDepthState.write !== write) {\n\t\t\t\tgl.depthMask(write);\n\t\t\t}\n\t\t\tlet { func, test } = depthState;\n\t\t\tif (!test && write) {\n\t\t\t\ttest = true;\n\t\t\t\tfunc = FUNC_ALWAYS;\n\t\t\t}\n\t\t\tif (currentDepthState.func !== func) {\n\t\t\t\tgl.depthFunc(this.glComparison[func]);\n\t\t\t}\n\t\t\tif (currentDepthState.test !== test) {\n\t\t\t\tif (test) {\n\t\t\t\t\tgl.enable(gl.DEPTH_TEST);\n\t\t\t\t} else {\n\t\t\t\t\tgl.disable(gl.DEPTH_TEST);\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst { depthBias, depthBiasSlope } = depthState;\n\t\t\tif (depthBias || depthBiasSlope) {\n\t\t\t\tif (!this.depthBiasEnabled) {\n\t\t\t\t\tthis.depthBiasEnabled = true;\n\t\t\t\t\tthis.gl.enable(this.gl.POLYGON_OFFSET_FILL);\n\t\t\t\t}\n\t\t\t\tgl.polygonOffset(depthBiasSlope, depthBias);\n\t\t\t} else {\n\t\t\t\tif (this.depthBiasEnabled) {\n\t\t\t\t\tthis.depthBiasEnabled = false;\n\t\t\t\t\tthis.gl.disable(this.gl.POLYGON_OFFSET_FILL);\n\t\t\t\t}\n\t\t\t}\n\t\t\tcurrentDepthState.copy(depthState);\n\t\t}\n\t}\n\tsetCullMode(cullMode) {\n\t\tif (this.cullMode !== cullMode) {\n\t\t\tif (cullMode === CULLFACE_NONE) {\n\t\t\t\tthis.gl.disable(this.gl.CULL_FACE);\n\t\t\t} else {\n\t\t\t\tif (this.cullMode === CULLFACE_NONE) {\n\t\t\t\t\tthis.gl.enable(this.gl.CULL_FACE);\n\t\t\t\t}\n\t\t\t\tconst mode = this.glCull[cullMode];\n\t\t\t\tif (this.cullFace !== mode) {\n\t\t\t\t\tthis.gl.cullFace(mode);\n\t\t\t\t\tthis.cullFace = mode;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.cullMode = cullMode;\n\t\t}\n\t}\n\tsetFrontFace(frontFace) {\n\t\tif (this.frontFace !== frontFace) {\n\t\t\tconst mode = this.glFrontFace[frontFace];\n\t\t\tthis.gl.frontFace(mode);\n\t\t\tthis.frontFace = frontFace;\n\t\t}\n\t}\n\tsetShader(shader, asyncCompile = false) {\n\t\tif (shader !== this.shader) {\n\t\t\tthis.shader = shader;\n\t\t\tthis.shaderAsyncCompile = asyncCompile;\n\t\t\tthis.shaderValid = void 0;\n\t\t}\n\t}\n\tactivateShader() {\n\t\tconst { shader } = this;\n\t\tconst { impl } = shader;\n\t\tif (this.shaderValid === void 0) {\n\t\t\tif (shader.failed) {\n\t\t\t\tthis.shaderValid = false;\n\t\t\t} else if (!shader.ready) {\n\t\t\t\tif (this.shaderAsyncCompile) {\n\t\t\t\t\tif (impl.isLinked(this)) {\n\t\t\t\t\t\tif (!impl.finalize(this, shader)) {\n\t\t\t\t\t\t\tshader.failed = true;\n\t\t\t\t\t\t\tthis.shaderValid = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.shaderValid = false;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (!impl.finalize(this, shader)) {\n\t\t\t\t\t\tshader.failed = true;\n\t\t\t\t\t\tthis.shaderValid = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (this.shaderValid === void 0) {\n\t\t\tthis.gl.useProgram(impl.glProgram);\n\t\t\tthis.shaderValid = true;\n\t\t}\n\t}\n\tclearVertexArrayObjectCache() {\n\t\tconst gl = this.gl;\n\t\tthis._vaoMap.forEach((item, key, mapObj) => {\n\t\t\tgl.deleteVertexArray(item);\n\t\t});\n\t\tthis._vaoMap.clear();\n\t}\n\tset fullscreen(fullscreen) {\n\t\tif (fullscreen) {\n\t\t\tconst canvas = this.gl.canvas;\n\t\t\tcanvas.requestFullscreen();\n\t\t} else {\n\t\t\tdocument.exitFullscreen();\n\t\t}\n\t}\n\tget fullscreen() {\n\t\treturn !!document.fullscreenElement;\n\t}\n};\n\nvar NullIndexBuffer = class {\n\tunlock(indexBuffer) {\n\t}\n};\n\nvar NullRenderTarget = class {\n\tdestroy(device) {\n\t}\n\tinit(device, renderTarget) {\n\t}\n\tloseContext() {\n\t}\n\tresolve(device, target2, color3, depth) {\n\t}\n};\n\nvar NullShader = class {\n\tdestroy(shader) {\n\t}\n\tloseContext() {\n\t}\n\trestoreContext(device, shader) {\n\t}\n};\n\nvar NullTexture = class {\n\tdestroy(device) {\n\t}\n\tpropertyChanged(flag) {\n\t}\n\tloseContext() {\n\t}\n\tcopy(source, options2) {\n\t\treturn true;\n\t}\n};\n\nvar NullVertexBuffer = class {\n\tdestroy(device) {\n\t}\n\tunlock(vertexBuffer) {\n\t}\n};\n\nvar NullDrawCommands = class {\n\tadd(i2, indexOrVertexCount, instanceCount, firstIndexOrVertex) {\n\t}\n};\n\nvar NullUniformBuffer = class {\n\tdestroy(device) {\n\t}\n\tloseContext() {\n\t}\n\tunlock(uniformBuffer) {\n\t}\n};\n\nvar NullBindGroup = class {\n\tupdate(bindGroup) {\n\t}\n\tdestroy() {\n\t}\n};\n\nvar NullBindGroupFormat = class {\n\tdestroy() {\n\t}\n};\n\nvar NullDynamicBuffers = class extends DynamicBuffers {\n\tbuffer;\n\tconstructor(device) {\n\t\tsuper(device, 0, 0);\n\t\tthis.buffer = new DynamicBuffer(device);\n\t}\n\talloc(allocation, size) {\n\t\tallocation.gpuBuffer = this.buffer;\n\t\tallocation.offset = 0;\n\t\tallocation.storage = new Int32Array(size / 4);\n\t}\n};\n\nvar NullGraphicsDevice = class extends GraphicsDevice {\n\tconstructor(canvas, options2 = {}) {\n\t\tsuper(canvas, options2);\n\t\toptions2 = this.initOptions;\n\t\tthis.isNull = true;\n\t\tthis._deviceType = DEVICETYPE_NULL;\n\t\tthis.samples = 1;\n\t\tthis.backBuffer = new RenderTarget({\n\t\t\tname: \"Framebuffer\",\n\t\t\tgraphicsDevice: this,\n\t\t\tdepth: this.initOptions.depth,\n\t\t\tstencil: this.supportsStencil,\n\t\t\tsamples: this.samples\n\t\t});\n\t\tthis.initDeviceCaps();\n\t\tthis.dynamicBuffers = new NullDynamicBuffers(this);\n\t}\n\tdestroy() {\n\t\tsuper.destroy();\n\t}\n\tinitDeviceCaps() {\n\t\tthis.disableParticleSystem = true;\n\t\tthis.precision = \"highp\";\n\t\tthis.maxPrecision = \"highp\";\n\t\tthis.maxSamples = 4;\n\t\tthis.maxTextures = 16;\n\t\tthis.maxTextureSize = 4096;\n\t\tthis.maxCubeMapSize = 4096;\n\t\tthis.maxVolumeSize = 4096;\n\t\tthis.maxColorAttachments = 8;\n\t\tthis.maxPixelRatio = 1;\n\t\tthis.maxAnisotropy = 16;\n\t\tthis.supportsUniformBuffers = false;\n\t\tthis.supportsAreaLights = true;\n\t\tthis.supportsGpuParticles = false;\n\t\tthis.textureFloatRenderable = true;\n\t\tthis.textureHalfFloatRenderable = true;\n\t\tthis.supportsImageBitmap = false;\n\t}\n\tpostInit() {\n\t\tsuper.postInit();\n\t}\n\tframeStart() {\n\t\tsuper.frameStart();\n\t}\n\tframeEnd() {\n\t\tsuper.frameEnd();\n\t}\n\tupdateBegin() {\n\t}\n\tupdateEnd() {\n\t}\n\treadPixels(x3, y2, w, h2, pixels) {\n\t}\n\tcreateVertexBufferImpl(vertexBuffer, format) {\n\t\treturn new NullVertexBuffer(vertexBuffer, format);\n\t}\n\tcreateIndexBufferImpl(indexBuffer) {\n\t\treturn new NullIndexBuffer(indexBuffer);\n\t}\n\tcreateShaderImpl(shader) {\n\t\treturn new NullShader(shader);\n\t}\n\tcreateUniformBufferImpl(uniformBuffer) {\n\t\treturn new NullUniformBuffer();\n\t}\n\tcreateBindGroupImpl(bindGroup) {\n\t\treturn new NullBindGroup();\n\t}\n\tcreateBindGroupFormatImpl(bindGroupFormat) {\n\t\treturn new NullBindGroupFormat();\n\t}\n\tsetBindGroup(index, bindGroup, offsets) {\n\t}\n\tcreateTextureImpl(texture) {\n\t\treturn new NullTexture(texture);\n\t}\n\tcreateRenderTargetImpl(renderTarget) {\n\t\treturn new NullRenderTarget(renderTarget);\n\t}\n\tcreateDrawCommandImpl(drawCommands) {\n\t\treturn new NullDrawCommands();\n\t}\n\tcreateUploadStreamImpl(uploadStream) {\n\t\treturn null;\n\t}\n\tdraw(primitive2, indexBuffer, numInstances, drawCommands, first = true, last = true) {\n\t}\n\tsetShader(shader, asyncCompile = false) {\n\t}\n\tsetBlendState(blendState) {\n\t}\n\tsetDepthState(depthState) {\n\t}\n\tsetStencilState(stencilFront, stencilBack) {\n\t}\n\tsetBlendColor(r, g, b, a) {\n\t}\n\tsetCullMode(cullMode) {\n\t}\n\tsetFrontFace(frontFace) {\n\t}\n\tsetAlphaToCoverage(state) {\n\t}\n\tinitializeContextCaches() {\n\t\tsuper.initializeContextCaches();\n\t}\n\tclear(options2) {\n\t}\n\tsetViewport(x3, y2, w, h2) {\n\t}\n\tsetScissor(x3, y2, w, h2) {\n\t}\n\tcopyRenderTarget(source, dest, color3, depth) {\n\t\treturn true;\n\t}\n};\n\nfunction createGraphicsDevice(canvas, options2 = {}) {\n\tconst deviceTypes = options2.deviceTypes ?? [];\n\tif (!deviceTypes.includes(DEVICETYPE_WEBGL2)) {\n\t\tdeviceTypes.push(DEVICETYPE_WEBGL2);\n\t}\n\tif (!deviceTypes.includes(DEVICETYPE_NULL)) {\n\t\tdeviceTypes.push(DEVICETYPE_NULL);\n\t}\n\tconst deviceCreateFuncs = [];\n\tfor (let i2 = 0; i2 < deviceTypes.length; i2++) {\n\t\tconst deviceType = deviceTypes[i2];\n\t\tif ((deviceType === DEVICETYPE_WEBGPU || deviceType === DEVICETYPE_WEBGPU_BARE) && window?.navigator?.gpu) {\n\t\t\tconst featureLevel = deviceType === DEVICETYPE_WEBGPU_BARE ? \"bare\" : void 0;\n\t\t\tdeviceCreateFuncs.push(() => {\n\t\t\t\tconst device = new WebgpuGraphicsDevice(canvas, { ...options2, featureLevel });\n\t\t\t\treturn device.initWebGpu(options2.glslangUrl, options2.twgslUrl);\n\t\t\t});\n\t\t}\n\t\tif (deviceType === DEVICETYPE_WEBGL2) {\n\t\t\tdeviceCreateFuncs.push(() => {\n\t\t\t\treturn new WebglGraphicsDevice(canvas, options2);\n\t\t\t});\n\t\t}\n\t\tif (deviceType === DEVICETYPE_NULL) {\n\t\t\tdeviceCreateFuncs.push(() => {\n\t\t\t\treturn new NullGraphicsDevice(canvas, options2);\n\t\t\t});\n\t\t}\n\t}\n\treturn new Promise((resolve2, reject) => {\n\t\tlet attempt = 0;\n\t\tconst next = () => {\n\t\t\tif (attempt >= deviceCreateFuncs.length) {\n\t\t\t\treject(new Error(\"Failed to create a graphics device\"));\n\t\t\t} else {\n\t\t\t\tPromise.resolve(deviceCreateFuncs[attempt++]()).then((device) => {\n\t\t\t\t\tif (device) {\n\t\t\t\t\t\tresolve2(device);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnext();\n\t\t\t\t\t}\n\t\t\t\t}).catch((err2) => {\n\t\t\t\t\tconsole.log(err2);\n\t\t\t\t\tnext();\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\t\tnext();\n\t});\n}\n\nvar ComputeParameter = class {\n\tvalue;\n\tscopeId = null;\n};\nvar Compute = class {\n\tshader = null;\n\tname;\n\tparameters = /* @__PURE__ */ new Map();\n\tcountX = 1;\n\tcountY;\n\tcountZ;\n\tindirectSlotIndex = -1;\n\tindirectBuffer = null;\n\tindirectFrameStamp = 0;\n\tconstructor(graphicsDevice, shader, name = \"Unnamed\") {\n\t\tthis.device = graphicsDevice;\n\t\tthis.shader = shader;\n\t\tthis.name = name;\n\t\tif (graphicsDevice.supportsCompute) {\n\t\t\tthis.impl = graphicsDevice.createComputeImpl(this);\n\t\t}\n\t}\n\tsetParameter(name, value) {\n\t\tlet param = this.parameters.get(name);\n\t\tif (!param) {\n\t\t\tparam = new ComputeParameter();\n\t\t\tparam.scopeId = this.device.scope.resolve(name);\n\t\t\tthis.parameters.set(name, param);\n\t\t}\n\t\tparam.value = value;\n\t}\n\tgetParameter(name) {\n\t\treturn this.parameters.get(name)?.value;\n\t}\n\tdeleteParameter(name) {\n\t\tthis.parameters.delete(name);\n\t}\n\tdestroy() {\n\t\tthis.impl?.destroy();\n\t\tthis.impl = null;\n\t}\n\tapplyParameters() {\n\t\tfor (const [, param] of this.parameters) {\n\t\t\tparam.scopeId.setValue(param.value);\n\t\t}\n\t}\n\tsetupDispatch(x3, y2, z2) {\n\t\tthis.countX = x3;\n\t\tthis.countY = y2;\n\t\tthis.countZ = z2;\n\t\tthis.indirectSlotIndex = -1;\n\t\tthis.indirectBuffer = null;\n\t}\n\tsetupIndirectDispatch(slotIndex, buffer = null) {\n\t\tthis.indirectSlotIndex = slotIndex;\n\t\tthis.indirectBuffer = buffer;\n\t\tthis.indirectFrameStamp = this.device.renderVersion;\n\t}\n\tstatic calcDispatchSize(count, result, maxDimension = 65535) {\n\t\tif (count <= maxDimension) {\n\t\t\treturn result.set(count, 1);\n\t\t}\n\t\tconst y2 = Math.ceil(count / maxDimension);\n\t\treturn result.set(Math.ceil(count / y2), y2);\n\t}\n};\n\nvar DrawCommands = class {\n\tdevice;\n\tindexSizeBytes;\n\t_maxCount = 0;\n\tget maxCount() {\n\t\treturn this._maxCount;\n\t}\n\timpl = null;\n\t_count = 1;\n\tget count() {\n\t\treturn this._count;\n\t}\n\tslotIndex = 0;\n\tprimitiveCount = 0;\n\tconstructor(device, indexSizeBytes = 0) {\n\t\tthis.device = device;\n\t\tthis.indexSizeBytes = indexSizeBytes;\n\t\tthis.impl = device.createDrawCommandImpl(this);\n\t}\n\tdestroy() {\n\t\tthis.impl?.destroy?.();\n\t\tthis.impl = null;\n\t}\n\tallocate(maxCount) {\n\t\tthis._maxCount = maxCount;\n\t\tthis.impl.allocate?.(maxCount);\n\t}\n\tadd(i2, indexOrVertexCount, instanceCount, firstIndexOrVertex, baseVertex = 0, firstInstance = 0) {\n\t\tthis.impl.add(i2, indexOrVertexCount, instanceCount, firstIndexOrVertex, baseVertex, firstInstance);\n\t}\n\tupdate(count) {\n\t\tthis._count = count;\n\t\tthis.primitiveCount = this.impl.update?.(count) ?? 0;\n\t}\n};\n\nvar TransformFeedback = class {\n\tconstructor(inputBuffer, outputBuffer, usage = BUFFER_GPUDYNAMIC) {\n\t\tconst descriptors = Array.isArray(inputBuffer) ? inputBuffer : null;\n\t\tif (!descriptors && outputBuffer !== void 0 && !(outputBuffer instanceof VertexBuffer)) {\n\t\t\tusage = outputBuffer;\n\t\t\toutputBuffer = void 0;\n\t\t}\n\t\tconst entries = descriptors ?? [{ input: inputBuffer, output: outputBuffer }];\n\t\tthis.device = (entries[0].input ?? entries[0].output).device;\n\t\tthis._inputBuffers = entries.filter((entry) => entry.input).map((entry) => entry.input);\n\t\tthis._outputBuffers = [];\n\t\tthis._swapPairs = [];\n\t\tthis._ownedOutputBuffers = [];\n\t\tentries.forEach((entry) => {\n\t\t\tconst input = entry.input;\n\t\t\tlet output = entry.output;\n\t\t\tif (input && output === void 0 && !descriptors) {\n\t\t\t\toutput = this._createOutputBuffer(input, usage);\n\t\t\t\tthis._ownedOutputBuffers.push(output);\n\t\t\t}\n\t\t\tif (output) {\n\t\t\t\tthis._outputBuffers.push(output);\n\t\t\t\tif (input) {\n\t\t\t\t\tthis._swapPairs.push({ input, output });\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\t_createOutputBuffer(inputBuffer, usage) {\n\t\tif (usage === BUFFER_GPUDYNAMIC && inputBuffer.usage !== usage) {\n\t\t\tconst gl = this.device.gl;\n\t\t\tgl.bindBuffer(gl.ARRAY_BUFFER, inputBuffer.impl.bufferId);\n\t\t\tgl.bufferData(gl.ARRAY_BUFFER, inputBuffer.storage, gl.DYNAMIC_COPY);\n\t\t}\n\t\treturn new VertexBuffer(inputBuffer.device, inputBuffer.format, inputBuffer.numVertices, {\n\t\t\tusage,\n\t\t\tdata: inputBuffer.storage\n\t\t});\n\t}\n\tstatic createShader(graphicsDevice, vertexCode, name, feedbackVaryings, feedbackVaryingsMode = TRANSFORM_FEEDBACK_INTERLEAVED) {\n\t\treturn new Shader(graphicsDevice, ShaderDefinitionUtils.createDefinition(graphicsDevice, {\n\t\t\tname,\n\t\t\tvertexCode,\n\t\t\tfeedbackVaryings,\n\t\t\tfeedbackVaryingsMode,\n\t\t\tuseTransformFeedback: true,\n\t\t\tfragmentCode: \"void main(void) {gl_FragColor = vec4(0.0);}\"\n\t\t}));\n\t}\n\tdestroy() {\n\t\tthis._ownedOutputBuffers.forEach((buffer) => buffer.destroy());\n\t}\n\tprocess(shader, swap = true) {\n\t\tconst device = this.device;\n\t\tconst oldRt = device.getRenderTarget();\n\t\tdevice.setRenderTarget(null);\n\t\tdevice.updateBegin();\n\t\tthis._inputBuffers.forEach((buffer) => device.setVertexBuffer(buffer));\n\t\tdevice.setRaster(false);\n\t\tdevice.setTransformFeedbackBuffers(this._outputBuffers);\n\t\tdevice.setShader(shader);\n\t\tdevice.draw({\n\t\t\ttype: PRIMITIVE_POINTS,\n\t\t\tbase: 0,\n\t\t\tbaseVertex: 0,\n\t\t\tcount: this._inputBuffers[0].numVertices,\n\t\t\tindexed: false\n\t\t});\n\t\tdevice.setTransformFeedbackBuffers(null);\n\t\tdevice.setRaster(true);\n\t\tdevice.updateEnd();\n\t\tdevice.setRenderTarget(oldRt);\n\t\tif (swap) {\n\t\t\tthis._swapPairs.forEach(({ input, output }) => {\n\t\t\t\tlet tmp = input.impl.bufferId;\n\t\t\t\tinput.impl.bufferId = output.impl.bufferId;\n\t\t\t\toutput.impl.bufferId = tmp;\n\t\t\t\ttmp = input.impl.vao;\n\t\t\t\tinput.impl.vao = output.impl.vao;\n\t\t\t\toutput.impl.vao = tmp;\n\t\t\t});\n\t\t\tdevice.removeVertexArrayFromCache(this._inputBuffers);\n\t\t}\n\t}\n\tget inputBuffer() {\n\t\treturn this._inputBuffers[0];\n\t}\n\tget outputBuffer() {\n\t\treturn this._outputBuffers[0];\n\t}\n\tget inputBuffers() {\n\t\treturn this._inputBuffers;\n\t}\n\tget outputBuffers() {\n\t\treturn this._outputBuffers;\n\t}\n};\n\nfunction set1(a) {\n\tthis.array[this.index] = a;\n}\nfunction set2(a, b) {\n\tthis.array[this.index] = a;\n\tthis.array[this.index + 1] = b;\n}\nfunction set3(a, b, c2) {\n\tthis.array[this.index] = a;\n\tthis.array[this.index + 1] = b;\n\tthis.array[this.index + 2] = c2;\n}\nfunction set4(a, b, c2, d) {\n\tthis.array[this.index] = a;\n\tthis.array[this.index + 1] = b;\n\tthis.array[this.index + 2] = c2;\n\tthis.array[this.index + 3] = d;\n}\nfunction arraySet1(index, inputArray, inputIndex) {\n\tthis.array[index] = inputArray[inputIndex];\n}\nfunction arraySet2(index, inputArray, inputIndex) {\n\tthis.array[index] = inputArray[inputIndex];\n\tthis.array[index + 1] = inputArray[inputIndex + 1];\n}\nfunction arraySet3(index, inputArray, inputIndex) {\n\tthis.array[index] = inputArray[inputIndex];\n\tthis.array[index + 1] = inputArray[inputIndex + 1];\n\tthis.array[index + 2] = inputArray[inputIndex + 2];\n}\nfunction arraySet4(index, inputArray, inputIndex) {\n\tthis.array[index] = inputArray[inputIndex];\n\tthis.array[index + 1] = inputArray[inputIndex + 1];\n\tthis.array[index + 2] = inputArray[inputIndex + 2];\n\tthis.array[index + 3] = inputArray[inputIndex + 3];\n}\nfunction arrayGet1(offset3, outputArray, outputIndex) {\n\toutputArray[outputIndex] = this.array[offset3];\n}\nfunction arrayGet2(offset3, outputArray, outputIndex) {\n\toutputArray[outputIndex] = this.array[offset3];\n\toutputArray[outputIndex + 1] = this.array[offset3 + 1];\n}\nfunction arrayGet3(offset3, outputArray, outputIndex) {\n\toutputArray[outputIndex] = this.array[offset3];\n\toutputArray[outputIndex + 1] = this.array[offset3 + 1];\n\toutputArray[outputIndex + 2] = this.array[offset3 + 2];\n}\nfunction arrayGet4(offset3, outputArray, outputIndex) {\n\toutputArray[outputIndex] = this.array[offset3];\n\toutputArray[outputIndex + 1] = this.array[offset3 + 1];\n\toutputArray[outputIndex + 2] = this.array[offset3 + 2];\n\toutputArray[outputIndex + 3] = this.array[offset3 + 3];\n}\nvar VertexIteratorAccessor = class {\n\tconstructor(buffer, vertexElement, vertexFormat) {\n\t\tthis.index = 0;\n\t\tthis.numComponents = vertexElement.numComponents;\n\t\tif (vertexFormat.interleaved) {\n\t\t\tthis.array = new typedArrayTypes[vertexElement.dataType](buffer, vertexElement.offset);\n\t\t} else {\n\t\t\tthis.array = new typedArrayTypes[vertexElement.dataType](buffer, vertexElement.offset, vertexFormat.vertexCount * vertexElement.numComponents);\n\t\t}\n\t\tthis.stride = vertexElement.stride / this.array.constructor.BYTES_PER_ELEMENT;\n\t\tswitch (vertexElement.numComponents) {\n\t\t\tcase 1:\n\t\t\t\tthis.set = set1;\n\t\t\t\tthis.getToArray = arrayGet1;\n\t\t\t\tthis.setFromArray = arraySet1;\n\t\t\t\tbreak;\n\t\t\tcase 2:\n\t\t\t\tthis.set = set2;\n\t\t\t\tthis.getToArray = arrayGet2;\n\t\t\t\tthis.setFromArray = arraySet2;\n\t\t\t\tbreak;\n\t\t\tcase 3:\n\t\t\t\tthis.set = set3;\n\t\t\t\tthis.getToArray = arrayGet3;\n\t\t\t\tthis.setFromArray = arraySet3;\n\t\t\t\tbreak;\n\t\t\tcase 4:\n\t\t\t\tthis.set = set4;\n\t\t\t\tthis.getToArray = arrayGet4;\n\t\t\t\tthis.setFromArray = arraySet4;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\tget(offset3) {\n\t\treturn this.array[this.index + offset3];\n\t}\n\tset(a, b, c2, d) {\n\t}\n\tgetToArray(offset3, outputArray, outputIndex) {\n\t}\n\tsetFromArray(index, inputArray, inputIndex) {\n\t}\n};\nvar VertexIterator = class {\n\tconstructor(vertexBuffer) {\n\t\tthis.vertexBuffer = vertexBuffer;\n\t\tthis.vertexFormatSize = vertexBuffer.getFormat().size;\n\t\tthis.buffer = this.vertexBuffer.lock();\n\t\tthis.accessors = [];\n\t\tthis.element = {};\n\t\tconst vertexFormat = this.vertexBuffer.getFormat();\n\t\tfor (let i2 = 0; i2 < vertexFormat.elements.length; i2++) {\n\t\t\tconst vertexElement = vertexFormat.elements[i2];\n\t\t\tthis.accessors[i2] = new VertexIteratorAccessor(this.buffer, vertexElement, vertexFormat);\n\t\t\tthis.element[vertexElement.name] = this.accessors[i2];\n\t\t}\n\t}\n\tnext(count = 1) {\n\t\tlet i2 = 0;\n\t\tconst accessors = this.accessors;\n\t\tconst numAccessors = this.accessors.length;\n\t\twhile (i2 < numAccessors) {\n\t\t\tconst accessor = accessors[i2++];\n\t\t\taccessor.index += count * accessor.stride;\n\t\t}\n\t}\n\tend() {\n\t\tthis.vertexBuffer.unlock();\n\t}\n\twriteData(semantic, data2, numVertices) {\n\t\tconst element = this.element[semantic];\n\t\tif (element) {\n\t\t\tif (numVertices > this.vertexBuffer.numVertices) {\n\t\t\t\tnumVertices = this.vertexBuffer.numVertices;\n\t\t\t}\n\t\t\tconst numComponents = element.numComponents;\n\t\t\tif (this.vertexBuffer.getFormat().interleaved) {\n\t\t\t\tlet index = 0;\n\t\t\t\tfor (let i2 = 0; i2 < numVertices; i2++) {\n\t\t\t\t\telement.setFromArray(index, data2, i2 * numComponents);\n\t\t\t\t\tindex += element.stride;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (data2.length > numVertices * numComponents) {\n\t\t\t\t\tconst copyCount = numVertices * numComponents;\n\t\t\t\t\tif (ArrayBuffer.isView(data2)) {\n\t\t\t\t\t\tdata2 = data2.subarray(0, copyCount);\n\t\t\t\t\t\telement.array.set(data2);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfor (let i2 = 0; i2 < copyCount; i2++) {\n\t\t\t\t\t\t\telement.array[i2] = data2[i2];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\telement.array.set(data2);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treadData(semantic, data2) {\n\t\tconst element = this.element[semantic];\n\t\tlet count = 0;\n\t\tif (element) {\n\t\t\tcount = this.vertexBuffer.numVertices;\n\t\t\tlet i2;\n\t\t\tconst numComponents = element.numComponents;\n\t\t\tconst copyCount = count * numComponents;\n\t\t\tif (this.vertexBuffer.getFormat().interleaved) {\n\t\t\t\tif (Array.isArray(data2)) {\n\t\t\t\t\tdata2.length = 0;\n\t\t\t\t}\n\t\t\t\telement.index = 0;\n\t\t\t\tlet offset3 = 0;\n\t\t\t\tfor (i2 = 0; i2 < count; i2++) {\n\t\t\t\t\telement.getToArray(offset3, data2, i2 * numComponents);\n\t\t\t\t\toffset3 += element.stride;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (ArrayBuffer.isView(data2)) {\n\t\t\t\t\tdata2.set(data2.length >= copyCount ? element.array : element.array.subarray(0, data2.length));\n\t\t\t\t} else {\n\t\t\t\t\tdata2.length = 0;\n\t\t\t\t\tfor (i2 = 0; i2 < copyCount; i2++) {\n\t\t\t\t\t\tdata2[i2] = element.array[i2];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn count;\n\t}\n};\n\nvar ACTION_MOUSE = \"mouse\";\nvar ACTION_KEYBOARD = \"keyboard\";\nvar ACTION_GAMEPAD = \"gamepad\";\nvar AXIS_MOUSE_X = \"mousex\";\nvar AXIS_MOUSE_Y = \"mousey\";\nvar AXIS_PAD_L_X = \"padlx\";\nvar AXIS_PAD_L_Y = \"padly\";\nvar AXIS_PAD_R_X = \"padrx\";\nvar AXIS_PAD_R_Y = \"padry\";\nvar AXIS_KEY = \"key\";\nvar KEY_BACKSPACE = 8;\nvar KEY_TAB = 9;\nvar KEY_RETURN = 13;\nvar KEY_ENTER = 13;\nvar KEY_SHIFT = 16;\nvar KEY_CONTROL = 17;\nvar KEY_ALT = 18;\nvar KEY_PAUSE = 19;\nvar KEY_CAPS_LOCK = 20;\nvar KEY_ESCAPE = 27;\nvar KEY_SPACE = 32;\nvar KEY_PAGE_UP = 33;\nvar KEY_PAGE_DOWN = 34;\nvar KEY_END = 35;\nvar KEY_HOME = 36;\nvar KEY_LEFT = 37;\nvar KEY_UP = 38;\nvar KEY_RIGHT = 39;\nvar KEY_DOWN = 40;\nvar KEY_PRINT_SCREEN = 44;\nvar KEY_INSERT = 45;\nvar KEY_DELETE = 46;\nvar KEY_0 = 48;\nvar KEY_1 = 49;\nvar KEY_2 = 50;\nvar KEY_3 = 51;\nvar KEY_4 = 52;\nvar KEY_5 = 53;\nvar KEY_6 = 54;\nvar KEY_7 = 55;\nvar KEY_8 = 56;\nvar KEY_9 = 57;\nvar KEY_SEMICOLON = 59;\nvar KEY_EQUAL = 61;\nvar KEY_A = 65;\nvar KEY_B = 66;\nvar KEY_C = 67;\nvar KEY_D = 68;\nvar KEY_E = 69;\nvar KEY_F = 70;\nvar KEY_G = 71;\nvar KEY_H = 72;\nvar KEY_I = 73;\nvar KEY_J = 74;\nvar KEY_K = 75;\nvar KEY_L = 76;\nvar KEY_M = 77;\nvar KEY_N = 78;\nvar KEY_O = 79;\nvar KEY_P = 80;\nvar KEY_Q = 81;\nvar KEY_R = 82;\nvar KEY_S = 83;\nvar KEY_T = 84;\nvar KEY_U = 85;\nvar KEY_V = 86;\nvar KEY_W = 87;\nvar KEY_X = 88;\nvar KEY_Y = 89;\nvar KEY_Z = 90;\nvar KEY_WINDOWS = 91;\nvar KEY_CONTEXT_MENU = 93;\nvar KEY_NUMPAD_0 = 96;\nvar KEY_NUMPAD_1 = 97;\nvar KEY_NUMPAD_2 = 98;\nvar KEY_NUMPAD_3 = 99;\nvar KEY_NUMPAD_4 = 100;\nvar KEY_NUMPAD_5 = 101;\nvar KEY_NUMPAD_6 = 102;\nvar KEY_NUMPAD_7 = 103;\nvar KEY_NUMPAD_8 = 104;\nvar KEY_NUMPAD_9 = 105;\nvar KEY_MULTIPLY = 106;\nvar KEY_ADD = 107;\nvar KEY_SEPARATOR = 108;\nvar KEY_SUBTRACT = 109;\nvar KEY_DECIMAL = 110;\nvar KEY_DIVIDE = 111;\nvar KEY_F1 = 112;\nvar KEY_F2 = 113;\nvar KEY_F3 = 114;\nvar KEY_F4 = 115;\nvar KEY_F5 = 116;\nvar KEY_F6 = 117;\nvar KEY_F7 = 118;\nvar KEY_F8 = 119;\nvar KEY_F9 = 120;\nvar KEY_F10 = 121;\nvar KEY_F11 = 122;\nvar KEY_F12 = 123;\nvar KEY_COMMA = 188;\nvar KEY_PERIOD = 190;\nvar KEY_SLASH = 191;\nvar KEY_OPEN_BRACKET = 219;\nvar KEY_BACK_SLASH = 220;\nvar KEY_CLOSE_BRACKET = 221;\nvar KEY_META = 224;\nvar MOUSEBUTTON_NONE = -1;\nvar MOUSEBUTTON_LEFT = 0;\nvar MOUSEBUTTON_MIDDLE = 1;\nvar MOUSEBUTTON_RIGHT = 2;\nvar PAD_1 = 0;\nvar PAD_2 = 1;\nvar PAD_3 = 2;\nvar PAD_4 = 3;\nvar PAD_FACE_1 = 0;\nvar PAD_FACE_2 = 1;\nvar PAD_FACE_3 = 2;\nvar PAD_FACE_4 = 3;\nvar PAD_L_SHOULDER_1 = 4;\nvar PAD_R_SHOULDER_1 = 5;\nvar PAD_L_SHOULDER_2 = 6;\nvar PAD_R_SHOULDER_2 = 7;\nvar PAD_SELECT = 8;\nvar PAD_START = 9;\nvar PAD_L_STICK_BUTTON = 10;\nvar PAD_R_STICK_BUTTON = 11;\nvar PAD_UP = 12;\nvar PAD_DOWN = 13;\nvar PAD_LEFT = 14;\nvar PAD_RIGHT = 15;\nvar PAD_VENDOR = 16;\nvar PAD_L_STICK_X = 0;\nvar PAD_L_STICK_Y = 1;\nvar PAD_R_STICK_X = 2;\nvar PAD_R_STICK_Y = 3;\nvar XRPAD_TOUCHPAD_X = 0;\nvar XRPAD_TOUCHPAD_Y = 1;\nvar XRPAD_STICK_X = 2;\nvar XRPAD_STICK_Y = 3;\nvar XRPAD_TOUCHPAD_BUTTON = 2;\nvar XRPAD_TRIGGER = 0;\nvar XRPAD_SQUEEZE = 1;\nvar XRPAD_STICK_BUTTON = 3;\nvar XRPAD_A = 4;\nvar XRPAD_B = 5;\n\nvar KeyboardEvent = class {\n\tkey = null;\n\telement = null;\n\tevent = null;\n\tconstructor(keyboard, event) {\n\t\tif (event) {\n\t\t\tthis.key = event.keyCode;\n\t\t\tthis.element = event.target;\n\t\t\tthis.event = event;\n\t\t}\n\t}\n};\n\nvar _keyboardEvent = new KeyboardEvent();\nfunction makeKeyboardEvent(event) {\n\t_keyboardEvent.key = event.keyCode;\n\t_keyboardEvent.element = event.target;\n\t_keyboardEvent.event = event;\n\treturn _keyboardEvent;\n}\nfunction toKeyCode(s2) {\n\tif (typeof s2 === \"string\") {\n\t\treturn s2.toUpperCase().charCodeAt(0);\n\t}\n\treturn s2;\n}\nvar _keyCodeToKeyIdentifier = {\n\t\"9\": \"Tab\",\n\t\"13\": \"Enter\",\n\t\"16\": \"Shift\",\n\t\"17\": \"Control\",\n\t\"18\": \"Alt\",\n\t\"27\": \"Escape\",\n\t\"37\": \"Left\",\n\t\"38\": \"Up\",\n\t\"39\": \"Right\",\n\t\"40\": \"Down\",\n\t\"46\": \"Delete\",\n\t\"91\": \"Win\"\n};\nvar Keyboard = class extends EventHandler {\n\tstatic EVENT_KEYDOWN = \"keydown\";\n\tstatic EVENT_KEYUP = \"keyup\";\n\t_element = null;\n\t_keymap = {};\n\t_lastmap = {};\n\t_keyDownHandler;\n\t_keyUpHandler;\n\t_keyPressHandler;\n\t_visibilityChangeHandler;\n\t_windowBlurHandler;\n\tpreventDefault;\n\tstopPropagation;\n\tconstructor(element, options2 = {}) {\n\t\tsuper();\n\t\tthis._keyDownHandler = this._handleKeyDown.bind(this);\n\t\tthis._keyUpHandler = this._handleKeyUp.bind(this);\n\t\tthis._keyPressHandler = this._handleKeyPress.bind(this);\n\t\tthis._visibilityChangeHandler = this._handleVisibilityChange.bind(this);\n\t\tthis._windowBlurHandler = this._handleWindowBlur.bind(this);\n\t\tif (element) {\n\t\t\tthis.attach(element);\n\t\t}\n\t\tthis.preventDefault = options2.preventDefault || false;\n\t\tthis.stopPropagation = options2.stopPropagation || false;\n\t}\n\tattach(element) {\n\t\tif (this._element) {\n\t\t\tthis.detach();\n\t\t}\n\t\tthis._element = element;\n\t\tthis._element.addEventListener(\"keydown\", this._keyDownHandler, false);\n\t\tthis._element.addEventListener(\"keypress\", this._keyPressHandler, false);\n\t\tthis._element.addEventListener(\"keyup\", this._keyUpHandler, false);\n\t\tdocument.addEventListener(\"visibilitychange\", this._visibilityChangeHandler, false);\n\t\twindow.addEventListener(\"blur\", this._windowBlurHandler, false);\n\t}\n\tdetach() {\n\t\tif (!this._element) {\n\t\t\treturn;\n\t\t}\n\t\tthis._element.removeEventListener(\"keydown\", this._keyDownHandler);\n\t\tthis._element.removeEventListener(\"keypress\", this._keyPressHandler);\n\t\tthis._element.removeEventListener(\"keyup\", this._keyUpHandler);\n\t\tthis._element = null;\n\t\tdocument.removeEventListener(\"visibilitychange\", this._visibilityChangeHandler, false);\n\t\twindow.removeEventListener(\"blur\", this._windowBlurHandler, false);\n\t}\n\ttoKeyIdentifier(keyCode) {\n\t\tkeyCode = toKeyCode(keyCode);\n\t\tconst id14 = _keyCodeToKeyIdentifier[keyCode.toString()];\n\t\tif (id14) {\n\t\t\treturn id14;\n\t\t}\n\t\tlet hex = keyCode.toString(16).toUpperCase();\n\t\tconst length = hex.length;\n\t\tfor (let count = 0; count < 4 - length; count++) {\n\t\t\thex = `0${hex}`;\n\t\t}\n\t\treturn `U+${hex}`;\n\t}\n\t_handleKeyDown(event) {\n\t\tconst code = event.keyCode || event.charCode;\n\t\tif (code === void 0) return;\n\t\tconst id14 = this.toKeyIdentifier(code);\n\t\tthis._keymap[id14] = true;\n\t\tthis.fire(\"keydown\", makeKeyboardEvent(event));\n\t\tif (this.preventDefault) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t\tif (this.stopPropagation) {\n\t\t\tevent.stopPropagation();\n\t\t}\n\t}\n\t_handleKeyUp(event) {\n\t\tconst code = event.keyCode || event.charCode;\n\t\tif (code === void 0) return;\n\t\tconst id14 = this.toKeyIdentifier(code);\n\t\tdelete this._keymap[id14];\n\t\tthis.fire(\"keyup\", makeKeyboardEvent(event));\n\t\tif (this.preventDefault) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t\tif (this.stopPropagation) {\n\t\t\tevent.stopPropagation();\n\t\t}\n\t}\n\t_handleKeyPress(event) {\n\t\tthis.fire(\"keypress\", makeKeyboardEvent(event));\n\t\tif (this.preventDefault) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t\tif (this.stopPropagation) {\n\t\t\tevent.stopPropagation();\n\t\t}\n\t}\n\t_handleVisibilityChange() {\n\t\tif (document.visibilityState === \"hidden\") {\n\t\t\tthis._handleWindowBlur();\n\t\t}\n\t}\n\t_handleWindowBlur() {\n\t\tthis._keymap = {};\n\t\tthis._lastmap = {};\n\t}\n\tupdate() {\n\t\tfor (const prop in this._lastmap) {\n\t\t\tdelete this._lastmap[prop];\n\t\t}\n\t\tfor (const prop in this._keymap) {\n\t\t\tif (this._keymap.hasOwnProperty(prop)) {\n\t\t\t\tthis._lastmap[prop] = this._keymap[prop];\n\t\t\t}\n\t\t}\n\t}\n\tisPressed(key) {\n\t\tconst keyCode = toKeyCode(key);\n\t\tconst id14 = this.toKeyIdentifier(keyCode);\n\t\treturn !!this._keymap[id14];\n\t}\n\twasPressed(key) {\n\t\tconst keyCode = toKeyCode(key);\n\t\tconst id14 = this.toKeyIdentifier(keyCode);\n\t\treturn !!this._keymap[id14] && !!!this._lastmap[id14];\n\t}\n\twasReleased(key) {\n\t\tconst keyCode = toKeyCode(key);\n\t\tconst id14 = this.toKeyIdentifier(keyCode);\n\t\treturn !!!this._keymap[id14] && !!this._lastmap[id14];\n\t}\n};\n\nfunction isMousePointerLocked() {\n\treturn !!(document.pointerLockElement || document.mozPointerLockElement || document.webkitPointerLockElement);\n}\nvar MouseEvent = class _MouseEvent {\n\tx = 0;\n\ty = 0;\n\tdx = 0;\n\tdy = 0;\n\tbutton = MOUSEBUTTON_NONE;\n\tbuttons;\n\twheelDelta = 0;\n\telement;\n\tctrlKey = false;\n\taltKey = false;\n\tshiftKey = false;\n\tmetaKey = false;\n\tevent;\n\tconstructor(mouse, event) {\n\t\tlet coords = {\n\t\t\tx: 0,\n\t\t\ty: 0\n\t\t};\n\t\tif (event) {\n\t\t\tif (event instanceof _MouseEvent) {\n\t\t\t\tthrow Error(\"Expected MouseEvent\");\n\t\t\t}\n\t\t\tcoords = mouse._getTargetCoords(event);\n\t\t} else {\n\t\t\tevent = {};\n\t\t}\n\t\tif (coords) {\n\t\t\tthis.x = coords.x;\n\t\t\tthis.y = coords.y;\n\t\t} else if (isMousePointerLocked()) {\n\t\t\tthis.x = 0;\n\t\t\tthis.y = 0;\n\t\t} else {\n\t\t\treturn;\n\t\t}\n\t\tif (event.type === \"wheel\") {\n\t\t\tif (event.deltaY > 0) {\n\t\t\t\tthis.wheelDelta = 1;\n\t\t\t} else if (event.deltaY < 0) {\n\t\t\t\tthis.wheelDelta = -1;\n\t\t\t}\n\t\t}\n\t\tif (isMousePointerLocked()) {\n\t\t\tthis.dx = event.movementX || event.webkitMovementX || event.mozMovementX || 0;\n\t\t\tthis.dy = event.movementY || event.webkitMovementY || event.mozMovementY || 0;\n\t\t} else {\n\t\t\tthis.dx = this.x - mouse._lastX;\n\t\t\tthis.dy = this.y - mouse._lastY;\n\t\t}\n\t\tif (event.type === \"mousedown\" || event.type === \"mouseup\") {\n\t\t\tthis.button = event.button;\n\t\t}\n\t\tthis.buttons = mouse._buttons.slice(0);\n\t\tthis.element = event.target;\n\t\tthis.ctrlKey = event.ctrlKey ?? false;\n\t\tthis.altKey = event.altKey ?? false;\n\t\tthis.shiftKey = event.shiftKey ?? false;\n\t\tthis.metaKey = event.metaKey ?? false;\n\t\tthis.event = event;\n\t}\n\tget wheel() {\n\t\treturn this.wheelDelta * -2;\n\t}\n};\n\nvar Mouse = class extends EventHandler {\n\tstatic EVENT_MOUSEMOVE = \"mousemove\";\n\tstatic EVENT_MOUSEDOWN = \"mousedown\";\n\tstatic EVENT_MOUSEUP = \"mouseup\";\n\tstatic EVENT_MOUSEWHEEL = \"mousewheel\";\n\t_lastX = 0;\n\t_lastY = 0;\n\t_buttons = [false, false, false];\n\t_lastbuttons = [false, false, false];\n\t_target = null;\n\t_attached = false;\n\t_upHandler;\n\t_downHandler;\n\t_moveHandler;\n\t_wheelHandler;\n\t_contextMenuHandler;\n\tconstructor(element) {\n\t\tsuper();\n\t\tthis._upHandler = this._handleUp.bind(this);\n\t\tthis._downHandler = this._handleDown.bind(this);\n\t\tthis._moveHandler = this._handleMove.bind(this);\n\t\tthis._wheelHandler = this._handleWheel.bind(this);\n\t\tthis._contextMenuHandler = (event) => {\n\t\t\tevent.preventDefault();\n\t\t};\n\t\tthis.attach(element);\n\t}\n\tstatic isPointerLocked() {\n\t\treturn isMousePointerLocked();\n\t}\n\tattach(element) {\n\t\tthis._target = element;\n\t\tif (this._attached) return;\n\t\tthis._attached = true;\n\t\tconst options2 = { passive: false };\n\t\twindow.addEventListener(\"mouseup\", this._upHandler, options2);\n\t\twindow.addEventListener(\"mousedown\", this._downHandler, options2);\n\t\twindow.addEventListener(\"mousemove\", this._moveHandler, options2);\n\t\twindow.addEventListener(\"wheel\", this._wheelHandler, options2);\n\t}\n\tdetach() {\n\t\tif (!this._attached) return;\n\t\tthis._attached = false;\n\t\tthis._target = null;\n\t\tconst options2 = { passive: false };\n\t\twindow.removeEventListener(\"mouseup\", this._upHandler, options2);\n\t\twindow.removeEventListener(\"mousedown\", this._downHandler, options2);\n\t\twindow.removeEventListener(\"mousemove\", this._moveHandler, options2);\n\t\twindow.removeEventListener(\"wheel\", this._wheelHandler, options2);\n\t}\n\tdisableContextMenu() {\n\t\tif (!this._target) return;\n\t\tthis._target.addEventListener(\"contextmenu\", this._contextMenuHandler);\n\t}\n\tenableContextMenu() {\n\t\tif (!this._target) return;\n\t\tthis._target.removeEventListener(\"contextmenu\", this._contextMenuHandler);\n\t}\n\tenablePointerLock(success, error) {\n\t\tif (!document.body.requestPointerLock) {\n\t\t\tif (error) {\n\t\t\t\terror();\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tconst s2 = () => {\n\t\t\tsuccess();\n\t\t\tdocument.removeEventListener(\"pointerlockchange\", s2);\n\t\t};\n\t\tconst e = () => {\n\t\t\terror();\n\t\t\tdocument.removeEventListener(\"pointerlockerror\", e);\n\t\t};\n\t\tif (success) {\n\t\t\tdocument.addEventListener(\"pointerlockchange\", s2, false);\n\t\t}\n\t\tif (error) {\n\t\t\tdocument.addEventListener(\"pointerlockerror\", e, false);\n\t\t}\n\t\tdocument.body.requestPointerLock();\n\t}\n\tdisablePointerLock(success) {\n\t\tif (!document.exitPointerLock) {\n\t\t\treturn;\n\t\t}\n\t\tconst s2 = () => {\n\t\t\tsuccess();\n\t\t\tdocument.removeEventListener(\"pointerlockchange\", s2);\n\t\t};\n\t\tif (success) {\n\t\t\tdocument.addEventListener(\"pointerlockchange\", s2, false);\n\t\t}\n\t\tdocument.exitPointerLock();\n\t}\n\tupdate() {\n\t\tthis._lastbuttons[0] = this._buttons[0];\n\t\tthis._lastbuttons[1] = this._buttons[1];\n\t\tthis._lastbuttons[2] = this._buttons[2];\n\t}\n\tisPressed(button) {\n\t\treturn this._buttons[button];\n\t}\n\twasPressed(button) {\n\t\treturn this._buttons[button] && !this._lastbuttons[button];\n\t}\n\twasReleased(button) {\n\t\treturn !this._buttons[button] && this._lastbuttons[button];\n\t}\n\t_handleUp(event) {\n\t\tthis._buttons[event.button] = false;\n\t\tconst e = new MouseEvent(this, event);\n\t\tif (!e.event) return;\n\t\tthis.fire(\"mouseup\", e);\n\t}\n\t_handleDown(event) {\n\t\tthis._buttons[event.button] = true;\n\t\tconst e = new MouseEvent(this, event);\n\t\tif (!e.event) return;\n\t\tthis.fire(\"mousedown\", e);\n\t}\n\t_handleMove(event) {\n\t\tconst e = new MouseEvent(this, event);\n\t\tif (!e.event) return;\n\t\tthis.fire(\"mousemove\", e);\n\t\tthis._lastX = e.x;\n\t\tthis._lastY = e.y;\n\t}\n\t_handleWheel(event) {\n\t\tconst e = new MouseEvent(this, event);\n\t\tif (!e.event) return;\n\t\tthis.fire(\"mousewheel\", e);\n\t}\n\t_getTargetCoords(event) {\n\t\tconst rect = this._target.getBoundingClientRect();\n\t\tconst left = Math.floor(rect.left);\n\t\tconst top = Math.floor(rect.top);\n\t\tif (event.clientX < left || event.clientX >= left + this._target.clientWidth || event.clientY < top || event.clientY >= top + this._target.clientHeight) {\n\t\t\treturn null;\n\t\t}\n\t\treturn {\n\t\t\tx: event.clientX - left,\n\t\t\ty: event.clientY - top\n\t\t};\n\t}\n};\n\nvar Controller = class {\n\t_keyboard;\n\t_mouse;\n\t_gamepads;\n\t_element = null;\n\t_actions = {};\n\t_axes = {};\n\t_axesValues = {};\n\tconstructor(element, options2 = {}) {\n\t\tthis._keyboard = options2.keyboard || null;\n\t\tthis._mouse = options2.mouse || null;\n\t\tthis._gamepads = options2.gamepads || null;\n\t\tif (element) {\n\t\t\tthis.attach(element);\n\t\t}\n\t}\n\tattach(element) {\n\t\tthis._element = element;\n\t\tif (this._keyboard) {\n\t\t\tthis._keyboard.attach(element);\n\t\t}\n\t\tif (this._mouse) {\n\t\t\tthis._mouse.attach(element);\n\t\t}\n\t}\n\tdetach() {\n\t\tif (this._keyboard) {\n\t\t\tthis._keyboard.detach();\n\t\t}\n\t\tif (this._mouse) {\n\t\t\tthis._mouse.detach();\n\t\t}\n\t\tthis._element = null;\n\t}\n\tdisableContextMenu() {\n\t\tif (!this._mouse) {\n\t\t\tthis._enableMouse();\n\t\t}\n\t\tthis._mouse.disableContextMenu();\n\t}\n\tenableContextMenu() {\n\t\tif (!this._mouse) {\n\t\t\tthis._enableMouse();\n\t\t}\n\t\tthis._mouse.enableContextMenu();\n\t}\n\tupdate(dt) {\n\t\tif (this._keyboard) {\n\t\t\tthis._keyboard.update();\n\t\t}\n\t\tif (this._mouse) {\n\t\t\tthis._mouse.update();\n\t\t}\n\t\tif (this._gamepads) {\n\t\t\tthis._gamepads.update();\n\t\t}\n\t\tthis._axesValues = {};\n\t\tfor (const key in this._axes) {\n\t\t\tthis._axesValues[key] = [];\n\t\t}\n\t}\n\tappendAction(action_name, action) {\n\t\tthis._actions[action_name] = this._actions[action_name] || [];\n\t\tthis._actions[action_name].push(action);\n\t}\n\tregisterKeys(action, keys) {\n\t\tif (!this._keyboard) {\n\t\t\tthis._enableKeyboard();\n\t\t}\n\t\tif (this._actions[action]) {\n\t\t\tthrow new Error(`Action: ${action} already registered`);\n\t\t}\n\t\tif (keys === void 0) {\n\t\t\tthrow new Error(\"Invalid button\");\n\t\t}\n\t\tif (!keys.length) {\n\t\t\tkeys = [keys];\n\t\t}\n\t\tthis.appendAction(action, {\n\t\t\ttype: ACTION_KEYBOARD,\n\t\t\tkeys\n\t\t});\n\t}\n\tregisterMouse(action, button) {\n\t\tif (!this._mouse) {\n\t\t\tthis._enableMouse();\n\t\t}\n\t\tif (button === void 0) {\n\t\t\tthrow new Error(\"Invalid button\");\n\t\t}\n\t\tthis.appendAction(action, {\n\t\t\ttype: ACTION_MOUSE,\n\t\t\tbutton\n\t\t});\n\t}\n\tregisterPadButton(action, pad, button) {\n\t\tif (button === void 0) {\n\t\t\tthrow new Error(\"Invalid button\");\n\t\t}\n\t\tthis.appendAction(action, {\n\t\t\ttype: ACTION_GAMEPAD,\n\t\t\tbutton,\n\t\t\tpad\n\t\t});\n\t}\n\tregisterAxis(options2) {\n\t\tconst name = options2.name;\n\t\tif (!this._axes[name]) {\n\t\t\tthis._axes[name] = [];\n\t\t}\n\t\tconst i2 = this._axes[name].push(name);\n\t\toptions2 = options2 || {};\n\t\toptions2.pad = options2.pad || PAD_1;\n\t\tconst bind = function(controller, source, value, key) {\n\t\t\tswitch (source) {\n\t\t\t\tcase \"mousex\":\n\t\t\t\t\tcontroller._mouse.on(\"mousemove\", (e) => {\n\t\t\t\t\t\tcontroller._axesValues[name][i2] = e.dx / 10;\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"mousey\":\n\t\t\t\t\tcontroller._mouse.on(\"mousemove\", (e) => {\n\t\t\t\t\t\tcontroller._axesValues[name][i2] = e.dy / 10;\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"key\":\n\t\t\t\t\tcontroller._axes[name].push(() => {\n\t\t\t\t\t\treturn controller._keyboard.isPressed(key) ? value : 0;\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"padrx\":\n\t\t\t\t\tcontroller._axes[name].push(() => {\n\t\t\t\t\t\treturn controller._gamepads.getAxis(options2.pad, PAD_R_STICK_X);\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"padry\":\n\t\t\t\t\tcontroller._axes[name].push(() => {\n\t\t\t\t\t\treturn controller._gamepads.getAxis(options2.pad, PAD_R_STICK_Y);\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"padlx\":\n\t\t\t\t\tcontroller._axes[name].push(() => {\n\t\t\t\t\t\treturn controller._gamepads.getAxis(options2.pad, PAD_L_STICK_X);\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"padly\":\n\t\t\t\t\tcontroller._axes[name].push(() => {\n\t\t\t\t\t\treturn controller._gamepads.getAxis(options2.pad, PAD_L_STICK_Y);\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tthrow new Error(\"Unknown axis\");\n\t\t\t}\n\t\t};\n\t\tbind(this, options2.positive, 1, options2.positiveKey);\n\t\tif (options2.negativeKey || options2.negative !== options2.positive) {\n\t\t\tbind(this, options2.negative, -1, options2.negativeKey);\n\t\t}\n\t}\n\tisPressed(actionName) {\n\t\tif (!this._actions[actionName]) {\n\t\t\treturn false;\n\t\t}\n\t\tconst length = this._actions[actionName].length;\n\t\tfor (let index = 0; index < length; ++index) {\n\t\t\tconst action = this._actions[actionName][index];\n\t\t\tswitch (action.type) {\n\t\t\t\tcase ACTION_KEYBOARD:\n\t\t\t\t\tif (this._keyboard) {\n\t\t\t\t\t\tconst len = action.keys.length;\n\t\t\t\t\t\tfor (let i2 = 0; i2 < len; i2++) {\n\t\t\t\t\t\t\tif (this._keyboard.isPressed(action.keys[i2])) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase ACTION_MOUSE:\n\t\t\t\t\tif (this._mouse && this._mouse.isPressed(action.button)) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase ACTION_GAMEPAD:\n\t\t\t\t\tif (this._gamepads && this._gamepads.isPressed(action.pad, action.button)) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\twasPressed(actionName) {\n\t\tif (!this._actions[actionName]) {\n\t\t\treturn false;\n\t\t}\n\t\tconst length = this._actions[actionName].length;\n\t\tfor (let index = 0; index < length; ++index) {\n\t\t\tconst action = this._actions[actionName][index];\n\t\t\tswitch (action.type) {\n\t\t\t\tcase ACTION_KEYBOARD:\n\t\t\t\t\tif (this._keyboard) {\n\t\t\t\t\t\tconst len = action.keys.length;\n\t\t\t\t\t\tfor (let i2 = 0; i2 < len; i2++) {\n\t\t\t\t\t\t\tif (this._keyboard.wasPressed(action.keys[i2])) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase ACTION_MOUSE:\n\t\t\t\t\tif (this._mouse && this._mouse.wasPressed(action.button)) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase ACTION_GAMEPAD:\n\t\t\t\t\tif (this._gamepads && this._gamepads.wasPressed(action.pad, action.button)) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\tgetAxis(name) {\n\t\tlet value = 0;\n\t\tif (this._axes[name]) {\n\t\t\tconst len = this._axes[name].length;\n\t\t\tfor (let i2 = 0; i2 < len; i2++) {\n\t\t\t\tif (typeof this._axes[name][i2] === \"function\") {\n\t\t\t\t\tconst v6 = this._axes[name][i2]();\n\t\t\t\t\tif (Math.abs(v6) > Math.abs(value)) {\n\t\t\t\t\t\tvalue = v6;\n\t\t\t\t\t}\n\t\t\t\t} else if (this._axesValues[name]) {\n\t\t\t\t\tif (Math.abs(this._axesValues[name][i2]) > Math.abs(value)) {\n\t\t\t\t\t\tvalue = this._axesValues[name][i2];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn value;\n\t}\n\t_enableMouse() {\n\t\tthis._mouse = new Mouse();\n\t\tif (!this._element) {\n\t\t\tthrow new Error(\"Controller must be attached to an Element\");\n\t\t}\n\t\tthis._mouse.attach(this._element);\n\t}\n\t_enableKeyboard() {\n\t\tthis._keyboard = new Keyboard();\n\t\tif (!this._element) {\n\t\t\tthrow new Error(\"Controller must be attached to an Element\");\n\t\t}\n\t\tthis._keyboard.attach(this._element);\n\t}\n};\n\nvar dummyArray = Object.freeze([]);\nvar getGamepads = function() {\n\treturn dummyArray;\n};\nif (typeof navigator !== \"undefined\") {\n\tgetGamepads = (navigator.getGamepads || navigator.webkitGetGamepads || getGamepads).bind(navigator);\n}\nvar MAPS_INDEXES = {\n\tbuttons: {\n\t\tPAD_FACE_1,\n\t\tPAD_FACE_2,\n\t\tPAD_FACE_3,\n\t\tPAD_FACE_4,\n\t\tPAD_L_SHOULDER_1,\n\t\tPAD_R_SHOULDER_1,\n\t\tPAD_L_SHOULDER_2,\n\t\tPAD_R_SHOULDER_2,\n\t\tPAD_SELECT,\n\t\tPAD_START,\n\t\tPAD_L_STICK_BUTTON,\n\t\tPAD_R_STICK_BUTTON,\n\t\tPAD_UP,\n\t\tPAD_DOWN,\n\t\tPAD_LEFT,\n\t\tPAD_RIGHT,\n\t\tPAD_VENDOR,\n\t\tXRPAD_TRIGGER,\n\t\tXRPAD_SQUEEZE,\n\t\tXRPAD_TOUCHPAD_BUTTON,\n\t\tXRPAD_STICK_BUTTON,\n\t\tXRPAD_A,\n\t\tXRPAD_B\n\t},\n\taxes: {\n\t\tPAD_L_STICK_X,\n\t\tPAD_L_STICK_Y,\n\t\tPAD_R_STICK_X,\n\t\tPAD_R_STICK_Y,\n\t\tXRPAD_TOUCHPAD_X,\n\t\tXRPAD_TOUCHPAD_Y,\n\t\tXRPAD_STICK_X,\n\t\tXRPAD_STICK_Y\n\t}\n};\nvar MAPS = {\n\tDEFAULT: {\n\t\tbuttons: [\n\t\t\t// Face buttons\n\t\t\t\"PAD_FACE_1\",\n\t\t\t\"PAD_FACE_2\",\n\t\t\t\"PAD_FACE_3\",\n\t\t\t\"PAD_FACE_4\",\n\t\t\t// Shoulder buttons\n\t\t\t\"PAD_L_SHOULDER_1\",\n\t\t\t\"PAD_R_SHOULDER_1\",\n\t\t\t\"PAD_L_SHOULDER_2\",\n\t\t\t\"PAD_R_SHOULDER_2\",\n\t\t\t// Other buttons\n\t\t\t\"PAD_SELECT\",\n\t\t\t\"PAD_START\",\n\t\t\t\"PAD_L_STICK_BUTTON\",\n\t\t\t\"PAD_R_STICK_BUTTON\",\n\t\t\t// D Pad\n\t\t\t\"PAD_UP\",\n\t\t\t\"PAD_DOWN\",\n\t\t\t\"PAD_LEFT\",\n\t\t\t\"PAD_RIGHT\",\n\t\t\t// Vendor specific button\n\t\t\t\"PAD_VENDOR\"\n\t\t],\n\t\taxes: [\n\t\t\t// Analog Sticks\n\t\t\t\"PAD_L_STICK_X\",\n\t\t\t\"PAD_L_STICK_Y\",\n\t\t\t\"PAD_R_STICK_X\",\n\t\t\t\"PAD_R_STICK_Y\"\n\t\t]\n\t},\n\tDEFAULT_DUAL: {\n\t\tbuttons: [\n\t\t\t// Face buttons\n\t\t\t\"PAD_FACE_1\",\n\t\t\t\"PAD_FACE_2\",\n\t\t\t\"PAD_FACE_3\",\n\t\t\t\"PAD_FACE_4\",\n\t\t\t// Shoulder buttons\n\t\t\t\"PAD_L_SHOULDER_1\",\n\t\t\t\"PAD_R_SHOULDER_1\",\n\t\t\t\"PAD_L_SHOULDER_2\",\n\t\t\t\"PAD_R_SHOULDER_2\",\n\t\t\t// Other buttons\n\t\t\t\"PAD_SELECT\",\n\t\t\t\"PAD_START\",\n\t\t\t\"PAD_L_STICK_BUTTON\",\n\t\t\t\"PAD_R_STICK_BUTTON\",\n\t\t\t// Vendor specific button\n\t\t\t\"PAD_VENDOR\"\n\t\t],\n\t\taxes: [\n\t\t\t// Analog Sticks\n\t\t\t\"PAD_L_STICK_X\",\n\t\t\t\"PAD_L_STICK_Y\",\n\t\t\t\"PAD_R_STICK_X\",\n\t\t\t\"PAD_R_STICK_Y\"\n\t\t],\n\t\tsynthesizedButtons: {\n\t\t\tPAD_UP: { axis: 0, min: 0, max: 1 },\n\t\t\tPAD_DOWN: { axis: 0, min: -1, max: 0 },\n\t\t\tPAD_LEFT: { axis: 0, min: -1, max: 0 },\n\t\t\tPAD_RIGHT: { axis: 0, min: 0, max: 1 }\n\t\t}\n\t},\n\tPS3: {\n\t\tbuttons: [\n\t\t\t// X, O, TRI, SQ\n\t\t\t\"PAD_FACE_1\",\n\t\t\t\"PAD_FACE_2\",\n\t\t\t\"PAD_FACE_4\",\n\t\t\t\"PAD_FACE_3\",\n\t\t\t// Shoulder buttons\n\t\t\t\"PAD_L_SHOULDER_1\",\n\t\t\t\"PAD_R_SHOULDER_1\",\n\t\t\t\"PAD_L_SHOULDER_2\",\n\t\t\t\"PAD_R_SHOULDER_2\",\n\t\t\t// Other buttons\n\t\t\t\"PAD_SELECT\",\n\t\t\t\"PAD_START\",\n\t\t\t\"PAD_L_STICK_BUTTON\",\n\t\t\t\"PAD_R_STICK_BUTTON\",\n\t\t\t// D Pad\n\t\t\t\"PAD_UP\",\n\t\t\t\"PAD_DOWN\",\n\t\t\t\"PAD_LEFT\",\n\t\t\t\"PAD_RIGHT\",\n\t\t\t\"PAD_VENDOR\"\n\t\t],\n\t\taxes: [\n\t\t\t// Analog Sticks\n\t\t\t\"PAD_L_STICK_X\",\n\t\t\t\"PAD_L_STICK_Y\",\n\t\t\t\"PAD_R_STICK_X\",\n\t\t\t\"PAD_R_STICK_Y\"\n\t\t],\n\t\tmapping: \"standard\"\n\t},\n\tDEFAULT_XR: {\n\t\tbuttons: [\n\t\t\t// Back buttons\n\t\t\t\"XRPAD_TRIGGER\",\n\t\t\t\"XRPAD_SQUEEZE\",\n\t\t\t// Axes buttons\n\t\t\t\"XRPAD_TOUCHPAD_BUTTON\",\n\t\t\t\"XRPAD_STICK_BUTTON\",\n\t\t\t// Face buttons\n\t\t\t\"XRPAD_A\",\n\t\t\t\"XRPAD_B\"\n\t\t],\n\t\taxes: [\n\t\t\t// Analog Sticks\n\t\t\t\"XRPAD_TOUCHPAD_X\",\n\t\t\t\"XRPAD_TOUCHPAD_Y\",\n\t\t\t\"XRPAD_STICK_X\",\n\t\t\t\"XRPAD_STICK_Y\"\n\t\t],\n\t\tmapping: \"xr-standard\"\n\t}\n};\nvar PRODUCT_CODES = {\n\t\"Product: 0268\": \"PS3\"\n};\nvar custom_maps = {};\nfunction getMap(pad) {\n\tconst custom = custom_maps[pad.id];\n\tif (custom) {\n\t\treturn custom;\n\t}\n\tfor (const code in PRODUCT_CODES) {\n\t\tif (pad.id.indexOf(code) !== -1) {\n\t\t\tconst product = PRODUCT_CODES[code];\n\t\t\tif (!pad.mapping) {\n\t\t\t\tconst raw = MAPS[`RAW_${product}`];\n\t\t\t\tif (raw) {\n\t\t\t\t\treturn raw;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn MAPS[product];\n\t\t}\n\t}\n\tif (pad.mapping === \"xr-standard\") {\n\t\treturn MAPS.DEFAULT_XR;\n\t}\n\tconst defaultmap = MAPS.DEFAULT;\n\tconst map = pad.buttons.length < defaultmap.buttons.length ? MAPS.DEFAULT_DUAL : defaultmap;\n\tmap.mapping = pad.mapping;\n\treturn map;\n}\nvar deadZone = 0.25;\nfunction sleep(ms) {\n\treturn new Promise((resolve2) => {\n\t\tsetTimeout(resolve2, ms);\n\t});\n}\nvar GamePadButton = class {\n\tvalue = 0;\n\tpressed = false;\n\ttouched = false;\n\twasPressed = false;\n\twasReleased = false;\n\twasTouched = false;\n\tconstructor(current, previous) {\n\t\tif (typeof current === \"number\") {\n\t\t\tthis.value = current;\n\t\t\tthis.pressed = current === 1;\n\t\t\tthis.touched = current > 0;\n\t\t} else {\n\t\t\tthis.value = current.value;\n\t\t\tthis.pressed = current.pressed;\n\t\t\tthis.touched = current.touched ?? current.value > 0;\n\t\t}\n\t\tif (previous) {\n\t\t\tif (typeof previous === \"number\") {\n\t\t\t\tthis.wasPressed = previous !== 1 && this.pressed;\n\t\t\t\tthis.wasReleased = previous === 1 && !this.pressed;\n\t\t\t\tthis.wasTouched = previous === 0 && this.touched;\n\t\t\t} else {\n\t\t\t\tthis.wasPressed = !previous.pressed && this.pressed;\n\t\t\t\tthis.wasReleased = previous.pressed && !this.pressed;\n\t\t\t\tthis.wasTouched = !(previous.touched ?? previous.value > 0) && this.touched;\n\t\t\t}\n\t\t}\n\t}\n\tupdate(button) {\n\t\tconst { value, pressed } = button;\n\t\tconst touched = button.touched ?? value > 0;\n\t\tthis.wasPressed = !this.pressed && pressed;\n\t\tthis.wasReleased = this.pressed && !pressed;\n\t\tthis.wasTouched = !this.touched && touched;\n\t\tthis.value = value;\n\t\tthis.pressed = pressed;\n\t\tthis.touched = touched;\n\t}\n};\nvar dummyButton = Object.freeze(new GamePadButton(0));\nvar GamePad = class {\n\t_compiledMapping = {\n\t\tbuttons: [],\n\t\taxes: []\n\t};\n\tid;\n\tindex;\n\t_buttons;\n\t_axes;\n\t_previousAxes;\n\tmapping;\n\tmap;\n\thand;\n\tpad;\n\tconstructor(gamepad, map) {\n\t\tthis.id = gamepad.id;\n\t\tthis.index = gamepad.index;\n\t\tthis._buttons = gamepad.buttons.map((b) => new GamePadButton(b));\n\t\tthis._axes = [...gamepad.axes];\n\t\tthis._previousAxes = [...gamepad.axes];\n\t\tthis.mapping = map.mapping;\n\t\tthis.map = map;\n\t\tthis.hand = gamepad.hand || \"none\";\n\t\tthis.pad = gamepad;\n\t\tthis._compileMapping();\n\t}\n\tget connected() {\n\t\treturn this.pad.connected;\n\t}\n\t_compileMapping() {\n\t\tconst { axes, buttons } = this._compiledMapping;\n\t\tconst axesIndexes = MAPS_INDEXES.axes;\n\t\tconst buttonsIndexes = MAPS_INDEXES.buttons;\n\t\taxes.length = 0;\n\t\tbuttons.length = 0;\n\t\tconst axesMap = this.map.axes;\n\t\tif (axesMap) {\n\t\t\tthis.map.axes.forEach((axis, i2) => {\n\t\t\t\taxes[axesIndexes[axis]] = () => this.pad.axes[i2] || 0;\n\t\t\t});\n\t\t}\n\t\tfor (let i2 = 0, l = axes.length; i2 < l; i2++) {\n\t\t\tif (!axes[i2]) {\n\t\t\t\taxes[i2] = () => 0;\n\t\t\t}\n\t\t}\n\t\tconst buttonsMap = this.map.buttons;\n\t\tif (buttonsMap) {\n\t\t\tbuttonsMap.forEach((button, i2) => {\n\t\t\t\tbuttons[buttonsIndexes[button]] = () => this._buttons[i2] || dummyButton;\n\t\t\t});\n\t\t}\n\t\tconst synthesizedButtonsMap = this.map.synthesizedButtons;\n\t\tif (synthesizedButtonsMap) {\n\t\t\tObject.entries(synthesizedButtonsMap).forEach((button) => {\n\t\t\t\tconst { axis, max, min } = button[1];\n\t\t\t\tbuttons[buttonsIndexes[button[0]]] = () => new GamePadButton(\n\t\t\t\t\tMath.abs(math.clamp(this._axes[axis] ?? 0, min, max)),\n\t\t\t\t\tMath.abs(math.clamp(this._previousAxes[axis] ?? 0, min, max))\n\t\t\t\t);\n\t\t\t});\n\t\t}\n\t\tfor (let i2 = 0, l = buttons.length; i2 < l; i2++) {\n\t\t\tif (!buttons[i2]) {\n\t\t\t\tbuttons[i2] = () => dummyButton;\n\t\t\t}\n\t\t}\n\t}\n\tupdate(gamepad) {\n\t\tthis.pad = gamepad;\n\t\tconst previousAxes = this._previousAxes;\n\t\tconst axes = this._axes;\n\t\tpreviousAxes.length = 0;\n\t\tpreviousAxes.push(...axes);\n\t\taxes.length = 0;\n\t\taxes.push(...gamepad.axes);\n\t\tconst buttons = this._buttons;\n\t\tfor (let i2 = 0, l = buttons.length; i2 < l; i2++) {\n\t\t\tbuttons[i2].update(gamepad.buttons[i2]);\n\t\t}\n\t\treturn this;\n\t}\n\tupdateMap(map) {\n\t\tmap.mapping = \"custom\";\n\t\tcustom_maps[this.id] = map;\n\t\tthis.map = map;\n\t\tthis.mapping = \"custom\";\n\t\tthis._compileMapping();\n\t}\n\tresetMap() {\n\t\tif (custom_maps[this.id]) {\n\t\t\tdelete custom_maps[this.id];\n\t\t\tconst map = getMap(this.pad);\n\t\t\tthis.map = map;\n\t\t\tthis.mapping = map.mapping;\n\t\t\tthis._compileMapping();\n\t\t}\n\t}\n\tget axes() {\n\t\treturn this._compiledMapping.axes.map((a) => a());\n\t}\n\tget buttons() {\n\t\treturn this._compiledMapping.buttons.map((b) => b());\n\t}\n\tasync pulse(intensity, duration, options2) {\n\t\tconst actuators = this.pad.vibrationActuator ? [this.pad.vibrationActuator] : this.pad.hapticActuators || dummyArray;\n\t\tif (actuators.length) {\n\t\t\tconst startDelay = options2?.startDelay ?? 0;\n\t\t\tconst strongMagnitude = options2?.strongMagnitude ?? intensity;\n\t\t\tconst weakMagnitude = options2?.weakMagnitude ?? intensity;\n\t\t\tconst results = await Promise.all(\n\t\t\t\tactuators.map(async (actuator) => {\n\t\t\t\t\tif (!actuator) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tif (actuator.playEffect) {\n\t\t\t\t\t\treturn actuator.playEffect(actuator.type, {\n\t\t\t\t\t\t\tduration,\n\t\t\t\t\t\t\tstartDelay,\n\t\t\t\t\t\t\tstrongMagnitude,\n\t\t\t\t\t\t\tweakMagnitude\n\t\t\t\t\t\t});\n\t\t\t\t\t} else if (actuator.pulse) {\n\t\t\t\t\t\tawait sleep(startDelay);\n\t\t\t\t\t\treturn actuator.pulse(intensity, duration);\n\t\t\t\t\t}\n\t\t\t\t\treturn false;\n\t\t\t\t})\n\t\t\t);\n\t\t\treturn results.some((r) => r === true || r === \"complete\");\n\t\t}\n\t\treturn false;\n\t}\n\tgetButton(index) {\n\t\tconst button = this._compiledMapping.buttons[index];\n\t\treturn button ? button() : dummyButton;\n\t}\n\tisPressed(button) {\n\t\treturn this.getButton(button).pressed;\n\t}\n\twasPressed(button) {\n\t\treturn this.getButton(button).wasPressed;\n\t}\n\twasReleased(button) {\n\t\treturn this.getButton(button).wasReleased;\n\t}\n\tisTouched(button) {\n\t\treturn this.getButton(button).touched;\n\t}\n\twasTouched(button) {\n\t\treturn this.getButton(button).wasTouched;\n\t}\n\tgetValue(button) {\n\t\treturn this.getButton(button).value;\n\t}\n\tgetAxis(axis) {\n\t\tconst a = this.axes[axis];\n\t\treturn a && Math.abs(a) > deadZone ? a : 0;\n\t}\n};\nvar GamePads = class extends EventHandler {\n\tstatic EVENT_GAMEPADCONNECTED = \"gamepadconnected\";\n\tstatic EVENT_GAMEPADDISCONNECTED = \"gamepaddisconnected\";\n\tgamepadsSupported;\n\tcurrent = [];\n\t_ongamepadconnectedHandler;\n\t_ongamepaddisconnectedHandler;\n\tconstructor() {\n\t\tsuper();\n\t\tthis.gamepadsSupported = platform.gamepads;\n\t\tthis._ongamepadconnectedHandler = this._ongamepadconnected.bind(this);\n\t\tthis._ongamepaddisconnectedHandler = this._ongamepaddisconnected.bind(this);\n\t\twindow.addEventListener(\"gamepadconnected\", this._ongamepadconnectedHandler, false);\n\t\twindow.addEventListener(\"gamepaddisconnected\", this._ongamepaddisconnectedHandler, false);\n\t\tthis.poll();\n\t}\n\tset deadZone(value) {\n\t\tdeadZone = value;\n\t}\n\tget deadZone() {\n\t\treturn deadZone;\n\t}\n\t_ongamepadconnected(event) {\n\t\tconst pad = new GamePad(event.gamepad, this.getMap(event.gamepad));\n\t\tconst current = this.current;\n\t\tlet padIndex = current.findIndex((gp) => gp.index === pad.index);\n\t\twhile (padIndex !== -1) {\n\t\t\tcurrent.splice(padIndex, 1);\n\t\t\tpadIndex = current.findIndex((gp) => gp.index === pad.index);\n\t\t}\n\t\tcurrent.push(pad);\n\t\tthis.fire(\"gamepadconnected\", pad);\n\t}\n\t_ongamepaddisconnected(event) {\n\t\tconst current = this.current;\n\t\tconst padIndex = current.findIndex((gp) => gp.index === event.gamepad.index);\n\t\tif (padIndex !== -1) {\n\t\t\tthis.fire(\"gamepaddisconnected\", current[padIndex]);\n\t\t\tcurrent.splice(padIndex, 1);\n\t\t}\n\t}\n\tupdate() {\n\t\tthis.poll();\n\t}\n\tpoll(pads = []) {\n\t\tif (pads.length > 0) {\n\t\t\tpads.length = 0;\n\t\t}\n\t\tconst padDevices = getGamepads();\n\t\tfor (let i2 = 0, len = padDevices.length; i2 < len; i2++) {\n\t\t\tif (padDevices[i2]) {\n\t\t\t\tconst pad = this.findByIndex(padDevices[i2].index);\n\t\t\t\tif (pad) {\n\t\t\t\t\tpads.push(pad.update(padDevices[i2]));\n\t\t\t\t} else {\n\t\t\t\t\tconst nPad = new GamePad(padDevices[i2], this.getMap(padDevices[i2]));\n\t\t\t\t\tthis.current.push(nPad);\n\t\t\t\t\tpads.push(nPad);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn pads;\n\t}\n\tdestroy() {\n\t\twindow.removeEventListener(\"gamepadconnected\", this._ongamepadconnectedHandler, false);\n\t\twindow.removeEventListener(\"gamepaddisconnected\", this._ongamepaddisconnectedHandler, false);\n\t}\n\tgetMap(pad) {\n\t\treturn getMap(pad);\n\t}\n\tisPressed(orderIndex, button) {\n\t\treturn this.current[orderIndex]?.isPressed(button) || false;\n\t}\n\twasPressed(orderIndex, button) {\n\t\treturn this.current[orderIndex]?.wasPressed(button) || false;\n\t}\n\twasReleased(orderIndex, button) {\n\t\treturn this.current[orderIndex]?.wasReleased(button) || false;\n\t}\n\tgetAxis(orderIndex, axis) {\n\t\treturn this.current[orderIndex]?.getAxis(axis) || 0;\n\t}\n\tpulse(orderIndex, intensity, duration, options2) {\n\t\tconst pad = this.current[orderIndex];\n\t\treturn pad ? pad.pulse(intensity, duration, options2) : Promise.resolve(false);\n\t}\n\tpulseAll(intensity, duration, options2) {\n\t\treturn Promise.all(\n\t\t\tthis.current.map((pad) => pad.pulse(intensity, duration, options2))\n\t\t);\n\t}\n\tfindById(id14) {\n\t\treturn this.current.find((gp) => gp && gp.id === id14) || null;\n\t}\n\tfindByIndex(index) {\n\t\treturn this.current.find((gp) => gp && gp.index === index) || null;\n\t}\n};\n\nfunction getTouchTargetCoords(touch2) {\n\tlet totalOffsetX = 0;\n\tlet totalOffsetY = 0;\n\tlet target2 = touch2.target;\n\twhile (!(target2 instanceof HTMLElement) && target2) {\n\t\ttarget2 = target2.parentNode;\n\t}\n\twhile (target2) {\n\t\ttotalOffsetX += target2.offsetLeft - target2.scrollLeft;\n\t\ttotalOffsetY += target2.offsetTop - target2.scrollTop;\n\t\ttarget2 = target2.offsetParent;\n\t}\n\treturn {\n\t\tx: touch2.pageX - totalOffsetX,\n\t\ty: touch2.pageY - totalOffsetY\n\t};\n}\nvar Touch = class {\n\tid;\n\tx;\n\ty;\n\ttarget;\n\ttouch;\n\tconstructor(touch2) {\n\t\tconst coords = getTouchTargetCoords(touch2);\n\t\tthis.id = touch2.identifier;\n\t\tthis.x = coords.x;\n\t\tthis.y = coords.y;\n\t\tthis.target = touch2.target;\n\t\tthis.touch = touch2;\n\t}\n};\nvar TouchEvent = class {\n\telement;\n\tevent;\n\ttouches = [];\n\tchangedTouches = [];\n\tconstructor(device, event) {\n\t\tthis.element = event.target;\n\t\tthis.event = event;\n\t\tthis.touches = Array.from(event.touches).map((touch2) => new Touch(touch2));\n\t\tthis.changedTouches = Array.from(event.changedTouches).map((touch2) => new Touch(touch2));\n\t}\n\tgetTouchById(id14, list) {\n\t\treturn list.find((touch2) => touch2.id === id14) || null;\n\t}\n};\n\nvar TouchDevice = class extends EventHandler {\n\tstatic EVENT_TOUCHSTART = \"touchstart\";\n\tstatic EVENT_TOUCHEND = \"touchend\";\n\tstatic EVENT_TOUCHMOVE = \"touchmove\";\n\tstatic EVENT_TOUCHCANCEL = \"touchcancel\";\n\t_element = null;\n\t_startHandler;\n\t_endHandler;\n\t_moveHandler;\n\t_cancelHandler;\n\tconstructor(element) {\n\t\tsuper();\n\t\tthis._startHandler = this._handleTouchStart.bind(this);\n\t\tthis._endHandler = this._handleTouchEnd.bind(this);\n\t\tthis._moveHandler = this._handleTouchMove.bind(this);\n\t\tthis._cancelHandler = this._handleTouchCancel.bind(this);\n\t\tthis.attach(element);\n\t}\n\tattach(element) {\n\t\tif (this._element) {\n\t\t\tthis.detach();\n\t\t}\n\t\tthis._element = element;\n\t\tthis._element.addEventListener(\"touchstart\", this._startHandler, false);\n\t\tthis._element.addEventListener(\"touchend\", this._endHandler, false);\n\t\tthis._element.addEventListener(\"touchmove\", this._moveHandler, false);\n\t\tthis._element.addEventListener(\"touchcancel\", this._cancelHandler, false);\n\t}\n\tdetach() {\n\t\tif (this._element) {\n\t\t\tthis._element.removeEventListener(\"touchstart\", this._startHandler, false);\n\t\t\tthis._element.removeEventListener(\"touchend\", this._endHandler, false);\n\t\t\tthis._element.removeEventListener(\"touchmove\", this._moveHandler, false);\n\t\t\tthis._element.removeEventListener(\"touchcancel\", this._cancelHandler, false);\n\t\t}\n\t\tthis._element = null;\n\t}\n\t_handleTouchStart(e) {\n\t\tthis.fire(\"touchstart\", new TouchEvent(this, e));\n\t}\n\t_handleTouchEnd(e) {\n\t\tthis.fire(\"touchend\", new TouchEvent(this, e));\n\t}\n\t_handleTouchMove(e) {\n\t\te.preventDefault();\n\t\tthis.fire(\"touchmove\", new TouchEvent(this, e));\n\t}\n\t_handleTouchCancel(e) {\n\t\tthis.fire(\"touchcancel\", new TouchEvent(this, e));\n\t}\n};\n\nvar Http = class _Http {\n\tstatic ContentType = {\n\t\tAAC: \"audio/aac\",\n\t\tBASIS: \"image/basis\",\n\t\tBIN: \"application/octet-stream\",\n\t\tDDS: \"image/dds\",\n\t\tFORM_URLENCODED: \"application/x-www-form-urlencoded\",\n\t\tGIF: \"image/gif\",\n\t\tGLB: \"model/gltf-binary\",\n\t\tJPEG: \"image/jpeg\",\n\t\tJSON: \"application/json\",\n\t\tMP3: \"audio/mpeg\",\n\t\tMP4: \"audio/mp4\",\n\t\tOGG: \"audio/ogg\",\n\t\tOPUS: 'audio/ogg; codecs=\"opus\"',\n\t\tPNG: \"image/png\",\n\t\tTEXT: \"text/plain\",\n\t\tWAV: \"audio/x-wav\",\n\t\tXML: \"application/xml\"\n\t};\n\tstatic ResponseType = {\n\t\tTEXT: \"text\",\n\t\tARRAY_BUFFER: \"arraybuffer\",\n\t\tBLOB: \"blob\",\n\t\tDOCUMENT: \"document\",\n\t\tJSON: \"json\"\n\t};\n\tstatic binaryExtensions = [\n\t\t\".model\",\n\t\t\".wav\",\n\t\t\".ogg\",\n\t\t\".mp3\",\n\t\t\".mp4\",\n\t\t\".m4a\",\n\t\t\".aac\",\n\t\t\".dds\",\n\t\t\".basis\",\n\t\t\".glb\",\n\t\t\".opus\"\n\t];\n\tstatic retryDelay = 100;\n\twithCredentials = false;\n\t_maxConcurrentRequests = 128;\n\t_activeRequests = 0;\n\t_sendQueue = [];\n\t_sendQueueHead = 0;\n\tset maxConcurrentRequests(value) {\n\t\tthis._maxConcurrentRequests = value;\n\t\tthis._pump();\n\t}\n\tget maxConcurrentRequests() {\n\t\treturn this._maxConcurrentRequests;\n\t}\n\tget(url, options2, callback) {\n\t\tif (typeof options2 === \"function\") {\n\t\t\tcallback = options2;\n\t\t\toptions2 = {};\n\t\t}\n\t\tconst result = this.request(\"GET\", url, options2, callback);\n\t\tconst { progress } = options2;\n\t\tif (progress) {\n\t\t\tconst handler = (event) => {\n\t\t\t\tif (event.lengthComputable) {\n\t\t\t\t\tprogress.fire(\"progress\", event.loaded, event.total);\n\t\t\t\t}\n\t\t\t};\n\t\t\tconst endHandler = (event) => {\n\t\t\t\thandler(event);\n\t\t\t\tresult.removeEventListener(\"loadstart\", handler);\n\t\t\t\tresult.removeEventListener(\"progress\", handler);\n\t\t\t\tresult.removeEventListener(\"loadend\", endHandler);\n\t\t\t};\n\t\t\tresult.addEventListener(\"loadstart\", handler);\n\t\t\tresult.addEventListener(\"progress\", handler);\n\t\t\tresult.addEventListener(\"loadend\", endHandler);\n\t\t}\n\t\treturn result;\n\t}\n\tpost(url, data2, options2, callback) {\n\t\tif (typeof options2 === \"function\") {\n\t\t\tcallback = options2;\n\t\t\toptions2 = {};\n\t\t}\n\t\toptions2.postdata = data2;\n\t\treturn this.request(\"POST\", url, options2, callback);\n\t}\n\tput(url, data2, options2, callback) {\n\t\tif (typeof options2 === \"function\") {\n\t\t\tcallback = options2;\n\t\t\toptions2 = {};\n\t\t}\n\t\toptions2.postdata = data2;\n\t\treturn this.request(\"PUT\", url, options2, callback);\n\t}\n\tdel(url, options2, callback) {\n\t\tif (typeof options2 === \"function\") {\n\t\t\tcallback = options2;\n\t\t\toptions2 = {};\n\t\t}\n\t\treturn this.request(\"DELETE\", url, options2, callback);\n\t}\n\trequest(method, url, options2, callback) {\n\t\tlet uri, query, postdata;\n\t\tlet errored = false;\n\t\tif (typeof options2 === \"function\") {\n\t\t\tcallback = options2;\n\t\t\toptions2 = {};\n\t\t}\n\t\tif (options2.retry) {\n\t\t\toptions2 = Object.assign({\n\t\t\t\tretries: 0,\n\t\t\t\tmaxRetries: 5\n\t\t\t}, options2);\n\t\t}\n\t\toptions2.callback = callback;\n\t\tif (options2.async == null) {\n\t\t\toptions2.async = true;\n\t\t}\n\t\tif (options2.headers == null) {\n\t\t\toptions2.headers = {};\n\t\t}\n\t\tif (options2.postdata != null) {\n\t\t\tif (options2.postdata instanceof Document) {\n\t\t\t\tpostdata = options2.postdata;\n\t\t\t} else if (options2.postdata instanceof FormData) {\n\t\t\t\tpostdata = options2.postdata;\n\t\t\t} else if (options2.postdata instanceof Object) {\n\t\t\t\tlet contentType = options2.headers[\"Content-Type\"];\n\t\t\t\tif (contentType === void 0) {\n\t\t\t\t\toptions2.headers[\"Content-Type\"] = _Http.ContentType.FORM_URLENCODED;\n\t\t\t\t\tcontentType = options2.headers[\"Content-Type\"];\n\t\t\t\t}\n\t\t\t\tswitch (contentType) {\n\t\t\t\t\tcase _Http.ContentType.FORM_URLENCODED: {\n\t\t\t\t\t\tpostdata = \"\";\n\t\t\t\t\t\tlet bFirstItem = true;\n\t\t\t\t\t\tfor (const key in options2.postdata) {\n\t\t\t\t\t\t\tif (options2.postdata.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\tif (bFirstItem) {\n\t\t\t\t\t\t\t\t\tbFirstItem = false;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tpostdata += \"&\";\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tconst encodedKey = encodeURIComponent(key);\n\t\t\t\t\t\t\t\tconst encodedValue = encodeURIComponent(options2.postdata[key]);\n\t\t\t\t\t\t\t\tpostdata += `${encodedKey}=${encodedValue}`;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tdefault:\n\t\t\t\t\tcase _Http.ContentType.JSON:\n\t\t\t\t\t\tif (contentType == null) {\n\t\t\t\t\t\t\toptions2.headers[\"Content-Type\"] = _Http.ContentType.JSON;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tpostdata = JSON.stringify(options2.postdata);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tpostdata = options2.postdata;\n\t\t\t}\n\t\t}\n\t\tif (options2.cache === false) {\n\t\t\tconst timestamp = now();\n\t\t\turi = new URI(url);\n\t\t\tif (!uri.query) {\n\t\t\t\turi.query = `ts=${timestamp}`;\n\t\t\t} else {\n\t\t\t\turi.query = `${uri.query}&ts=${timestamp}`;\n\t\t\t}\n\t\t\turl = uri.toString();\n\t\t}\n\t\tif (options2.query) {\n\t\t\turi = new URI(url);\n\t\t\tquery = extend(uri.getQuery(), options2.query);\n\t\t\turi.setQuery(query);\n\t\t\turl = uri.toString();\n\t\t}\n\t\tconst xhr = new XMLHttpRequest();\n\t\txhr.open(method, url, options2.async);\n\t\txhr.withCredentials = options2.withCredentials !== void 0 ? options2.withCredentials : this.withCredentials;\n\t\txhr.responseType = options2.responseType || this._guessResponseType(url);\n\t\tfor (const header2 in options2.headers) {\n\t\t\tif (options2.headers.hasOwnProperty(header2)) {\n\t\t\t\txhr.setRequestHeader(header2, options2.headers[header2]);\n\t\t\t}\n\t\t}\n\t\txhr.onreadystatechange = () => {\n\t\t\tthis._onReadyStateChange(method, url, options2, xhr);\n\t\t};\n\t\txhr.onerror = () => {\n\t\t\tthis._onError(method, url, options2, xhr);\n\t\t\terrored = true;\n\t\t};\n\t\tconst send = () => {\n\t\t\ttry {\n\t\t\t\txhr.send(postdata);\n\t\t\t} catch (e) {\n\t\t\t\tthis._releaseSlot(xhr);\n\t\t\t\tif (!errored && typeof options2.error === \"function\") {\n\t\t\t\t\toptions2.error(xhr.status, xhr, e);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tthis._acquire(xhr, options2, send);\n\t\treturn xhr;\n\t}\n\t_guessResponseType(url) {\n\t\tconst uri = new URI(url);\n\t\tconst ext = path.getExtension(uri.path).toLowerCase();\n\t\tif (_Http.binaryExtensions.indexOf(ext) >= 0) {\n\t\t\treturn _Http.ResponseType.ARRAY_BUFFER;\n\t\t} else if (ext === \".json\") {\n\t\t\treturn _Http.ResponseType.JSON;\n\t\t} else if (ext === \".xml\") {\n\t\t\treturn _Http.ResponseType.DOCUMENT;\n\t\t}\n\t\treturn _Http.ResponseType.TEXT;\n\t}\n\t_isBinaryContentType(contentType) {\n\t\tconst binTypes = [\n\t\t\t_Http.ContentType.BASIS,\n\t\t\t_Http.ContentType.BIN,\n\t\t\t_Http.ContentType.DDS,\n\t\t\t_Http.ContentType.GLB,\n\t\t\t_Http.ContentType.MP3,\n\t\t\t_Http.ContentType.MP4,\n\t\t\t_Http.ContentType.OGG,\n\t\t\t_Http.ContentType.OPUS,\n\t\t\t_Http.ContentType.WAV\n\t\t];\n\t\tif (binTypes.indexOf(contentType) >= 0) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\t_isBinaryResponseType(responseType) {\n\t\treturn responseType === _Http.ResponseType.ARRAY_BUFFER || responseType === _Http.ResponseType.BLOB || responseType === _Http.ResponseType.JSON;\n\t}\n\t_onReadyStateChange(method, url, options2, xhr) {\n\t\tif (xhr.readyState === 4) {\n\t\t\tswitch (xhr.status) {\n\t\t\t\tcase 0: {\n\t\t\t\t\tif (xhr.responseURL && xhr.responseURL.startsWith(\"file:///\")) {\n\t\t\t\t\t\tthis._onSuccess(method, url, options2, xhr);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis._onError(method, url, options2, xhr);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase 200:\n\t\t\t\tcase 201:\n\t\t\t\tcase 206:\n\t\t\t\tcase 304: {\n\t\t\t\t\tthis._onSuccess(method, url, options2, xhr);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tdefault: {\n\t\t\t\t\tthis._onError(method, url, options2, xhr);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t_onSuccess(method, url, options2, xhr) {\n\t\tthis._releaseSlot(xhr);\n\t\tlet response;\n\t\tlet contentType;\n\t\tconst header2 = xhr.getResponseHeader(\"Content-Type\");\n\t\tif (header2) {\n\t\t\tconst parts = header2.split(\";\");\n\t\t\tcontentType = parts[0].trim();\n\t\t}\n\t\ttry {\n\t\t\tif (this._isBinaryContentType(contentType) || this._isBinaryResponseType(xhr.responseType)) {\n\t\t\t\tresponse = xhr.response;\n\t\t\t} else if (contentType === _Http.ContentType.JSON || url.split(\"?\")[0].endsWith(\".json\")) {\n\t\t\t\tresponse = JSON.parse(xhr.responseText);\n\t\t\t} else if (xhr.responseType === _Http.ResponseType.DOCUMENT || contentType === _Http.ContentType.XML) {\n\t\t\t\tresponse = xhr.responseXML;\n\t\t\t} else {\n\t\t\t\tresponse = xhr.responseText;\n\t\t\t}\n\t\t\toptions2.callback(null, response);\n\t\t} catch (err2) {\n\t\t\toptions2.callback(err2);\n\t\t}\n\t}\n\t_onError(method, url, options2, xhr) {\n\t\tthis._releaseSlot(xhr);\n\t\tif (options2.retrying) {\n\t\t\treturn;\n\t\t}\n\t\tif (options2.retry && options2.retries < options2.maxRetries) {\n\t\t\toptions2.retries++;\n\t\t\toptions2.retrying = true;\n\t\t\tconst retryDelay = math.clamp(Math.pow(2, options2.retries) * _Http.retryDelay, 0, options2.maxRetryDelay || 5e3);\n\t\t\tconsole.log(`${method}: ${url} - Error ${xhr.status}. Retrying in ${retryDelay} ms`);\n\t\t\tsetTimeout(() => {\n\t\t\t\toptions2.retrying = false;\n\t\t\t\tthis.request(method, url, options2, options2.callback);\n\t\t\t}, retryDelay);\n\t\t} else {\n\t\t\toptions2.callback(xhr.status === 0 ? \"Network error\" : xhr.status, null);\n\t\t}\n\t}\n\t_acquire(xhr, options2, send) {\n\t\tconst limit = this._maxConcurrentRequests;\n\t\tconst throttled = limit > 0 && Number.isFinite(limit) && options2.async !== false;\n\t\tif (!throttled || this._activeRequests < limit) {\n\t\t\tif (throttled) {\n\t\t\t\tthis._activeRequests++;\n\t\t\t\txhr._slotHeld = true;\n\t\t\t}\n\t\t\tsend();\n\t\t} else {\n\t\t\tthis._sendQueue.push({ xhr, send });\n\t\t}\n\t}\n\t_releaseSlot(xhr) {\n\t\tif (xhr._slotHeld) {\n\t\t\txhr._slotHeld = false;\n\t\t\tthis._activeRequests--;\n\t\t\tthis._pump();\n\t\t}\n\t}\n\t_pump() {\n\t\tconst limit = this._maxConcurrentRequests;\n\t\tconst throttled = limit > 0 && Number.isFinite(limit);\n\t\tif (!throttled) {\n\t\t\twhile (this._sendQueueHead < this._sendQueue.length) {\n\t\t\t\tthis._sendQueue[this._sendQueueHead++].send();\n\t\t\t}\n\t\t} else {\n\t\t\twhile (this._sendQueueHead < this._sendQueue.length && this._activeRequests < limit) {\n\t\t\t\tconst { xhr, send } = this._sendQueue[this._sendQueueHead++];\n\t\t\t\tthis._activeRequests++;\n\t\t\t\txhr._slotHeld = true;\n\t\t\t\tsend();\n\t\t\t}\n\t\t}\n\t\tif (this._sendQueueHead === this._sendQueue.length) {\n\t\t\tthis._sendQueue.length = 0;\n\t\t\tthis._sendQueueHead = 0;\n\t\t} else if (this._sendQueueHead > 256) {\n\t\t\tthis._sendQueue = this._sendQueue.slice(this._sendQueueHead);\n\t\t\tthis._sendQueueHead = 0;\n\t\t}\n\t}\n};\nvar http = new Http();\n\nvar DISTANCE_LINEAR = \"linear\";\nvar DISTANCE_INVERSE = \"inverse\";\nvar DISTANCE_EXPONENTIAL = \"exponential\";\n\nvar Listener = class {\n\t_manager;\n\tposition = new Vec3();\n\torientation = new Mat4();\n\tconstructor(manager) {\n\t\tthis._manager = manager;\n\t}\n\tgetPosition() {\n\t\treturn this.position;\n\t}\n\tsetPosition(position5) {\n\t\tthis.position.copy(position5);\n\t\tconst listener = this.listener;\n\t\tif (listener) {\n\t\t\tif (\"positionX\" in listener) {\n\t\t\t\tlistener.positionX.value = position5.x;\n\t\t\t\tlistener.positionY.value = position5.y;\n\t\t\t\tlistener.positionZ.value = position5.z;\n\t\t\t} else if (listener.setPosition) {\n\t\t\t\tlistener.setPosition(position5.x, position5.y, position5.z);\n\t\t\t}\n\t\t}\n\t}\n\tsetOrientation(orientation) {\n\t\tthis.orientation.copy(orientation);\n\t\tconst listener = this.listener;\n\t\tif (listener) {\n\t\t\tconst m = orientation.data;\n\t\t\tif (\"forwardX\" in listener) {\n\t\t\t\tlistener.forwardX.value = -m[8];\n\t\t\t\tlistener.forwardY.value = -m[9];\n\t\t\t\tlistener.forwardZ.value = -m[10];\n\t\t\t\tlistener.upX.value = m[4];\n\t\t\t\tlistener.upY.value = m[5];\n\t\t\t\tlistener.upZ.value = m[6];\n\t\t\t} else if (listener.setOrientation) {\n\t\t\t\tlistener.setOrientation(-m[8], -m[9], -m[10], m[4], m[5], m[6]);\n\t\t\t}\n\t\t}\n\t}\n\tgetOrientation() {\n\t\treturn this.orientation;\n\t}\n\tget listener() {\n\t\tconst context = this._manager.context;\n\t\treturn context ? context.listener : null;\n\t}\n};\n\nvar CONTEXT_STATE_RUNNING = \"running\";\nvar USER_INPUT_EVENTS = [\n\t\"click\",\n\t\"touchstart\",\n\t\"mousedown\"\n];\nvar SoundManager = class extends EventHandler {\n\t_context = null;\n\t_unlockHandlerFunc;\n\t_userSuspended = false;\n\tlistener;\n\t_volume = 1;\n\tconstructor() {\n\t\tsuper();\n\t\tthis._unlockHandlerFunc = this._unlockHandler.bind(this);\n\t\tthis.listener = new Listener(this);\n\t}\n\tset volume(volume) {\n\t\tvolume = math.clamp(volume, 0, 1);\n\t\tthis._volume = volume;\n\t\tthis.fire(\"volumechange\", volume);\n\t}\n\tget volume() {\n\t\treturn this._volume;\n\t}\n\tget suspended() {\n\t\treturn this._userSuspended;\n\t}\n\tget context() {\n\t\tif (!this._context) {\n\t\t\tconst AudioContextCtor = typeof AudioContext !== \"undefined\" && AudioContext || typeof webkitAudioContext !== \"undefined\" && webkitAudioContext;\n\t\t\tif (!AudioContextCtor) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tthis._context = new AudioContextCtor();\n\t\t\tif (this._context.state !== CONTEXT_STATE_RUNNING) {\n\t\t\t\tthis._registerUnlockListeners();\n\t\t\t}\n\t\t}\n\t\treturn this._context;\n\t}\n\tsuspend() {\n\t\tif (!this._userSuspended) {\n\t\t\tthis._userSuspended = true;\n\t\t\tif (this._context && this._context.state === CONTEXT_STATE_RUNNING) {\n\t\t\t\tthis._suspend();\n\t\t\t}\n\t\t}\n\t}\n\tresume() {\n\t\tif (this._userSuspended) {\n\t\t\tthis._userSuspended = false;\n\t\t\tif (this._context && this._context.state !== CONTEXT_STATE_RUNNING) {\n\t\t\t\tthis._resume();\n\t\t\t}\n\t\t}\n\t}\n\tdestroy() {\n\t\tthis.fire(\"destroy\");\n\t\tconst context = this._context;\n\t\tif (context) {\n\t\t\tthis._removeUnlockListeners();\n\t\t\tcontext.close();\n\t\t\tthis._context = null;\n\t\t}\n\t}\n\t// resume the sound context\n\t_resume() {\n\t\tconst context = this._context;\n\t\tif (!context) return;\n\t\tcontext.resume().then(() => {\n\t\t\tconst source = context.createBufferSource();\n\t\t\tsource.buffer = context.createBuffer(1, 1, context.sampleRate);\n\t\t\tsource.connect(context.destination);\n\t\t\tsource.start(0);\n\t\t\tsource.onended = (event) => {\n\t\t\t\tsource.disconnect(0);\n\t\t\t\tthis.fire(\"resume\");\n\t\t\t};\n\t\t}, (e) => {\n\t\t}).catch((e) => {\n\t\t});\n\t}\n\t// resume the sound context and fire suspend event if it succeeds\n\t_suspend() {\n\t\tconst context = this._context;\n\t\tif (!context) return;\n\t\tcontext.suspend().then(() => {\n\t\t\tthis.fire(\"suspend\");\n\t\t}, (e) => {\n\t\t}).catch((e) => {\n\t\t});\n\t}\n\t_unlockHandler() {\n\t\tthis._removeUnlockListeners();\n\t\tif (!this._userSuspended && this._context && this._context.state !== CONTEXT_STATE_RUNNING) {\n\t\t\tthis._resume();\n\t\t}\n\t}\n\t_registerUnlockListeners() {\n\t\tUSER_INPUT_EVENTS.forEach((eventName) => {\n\t\t\twindow.addEventListener(eventName, this._unlockHandlerFunc, false);\n\t\t});\n\t}\n\t_removeUnlockListeners() {\n\t\tUSER_INPUT_EVENTS.forEach((eventName) => {\n\t\t\twindow.removeEventListener(eventName, this._unlockHandlerFunc, false);\n\t\t});\n\t}\n};\n\nvar Sound = class {\n\tbuffer;\n\tconstructor(buffer) {\n\t\tthis.buffer = buffer;\n\t}\n\tget duration() {\n\t\treturn this.buffer && this.buffer.duration || 0;\n\t}\n};\n\nvar STATE_PLAYING = 0;\nvar STATE_PAUSED = 1;\nvar STATE_STOPPED = 2;\nvar STOP_NEVER_DELAY = 1e6;\nfunction capTime(time, duration) {\n\treturn time % duration || 0;\n}\nvar SoundInstance = class extends EventHandler {\n\tstatic EVENT_PLAY = \"play\";\n\tstatic EVENT_PAUSE = \"pause\";\n\tstatic EVENT_RESUME = \"resume\";\n\tstatic EVENT_STOP = \"stop\";\n\tstatic EVENT_END = \"end\";\n\tsource = null;\n\tconstructor(manager, sound, options2) {\n\t\tsuper();\n\t\tthis._manager = manager;\n\t\tthis._volume = options2.volume !== void 0 ? math.clamp(Number(options2.volume) || 0, 0, 1) : 1;\n\t\tthis._pitch = options2.pitch !== void 0 ? Math.max(0.01, Number(options2.pitch) || 0) : 1;\n\t\tthis._loop = !!(options2.loop !== void 0 ? options2.loop : false);\n\t\tthis._sound = sound;\n\t\tthis._state = STATE_STOPPED;\n\t\tthis._suspended = false;\n\t\tthis._suspendEndEvent = 0;\n\t\tthis._suspendInstanceEvents = false;\n\t\tthis._playWhenLoaded = true;\n\t\tthis._startTime = Math.max(0, Number(options2.startTime) || 0);\n\t\tthis._duration = Math.max(0, Number(options2.duration) || 0);\n\t\tthis._startOffset = null;\n\t\tthis._onPlayCallback = options2.onPlay;\n\t\tthis._onPauseCallback = options2.onPause;\n\t\tthis._onResumeCallback = options2.onResume;\n\t\tthis._onStopCallback = options2.onStop;\n\t\tthis._onEndCallback = options2.onEnd;\n\t\tthis._startedAt = 0;\n\t\tthis._currentTime = 0;\n\t\tthis._currentOffset = 0;\n\t\tthis._sourceOffset = 0;\n\t\tthis._sourceOffsetAt = 0;\n\t\tthis._sourceLooping = false;\n\t\tthis._regionStopPending = false;\n\t\tthis._inputNode = null;\n\t\tthis._connectorNode = null;\n\t\tthis._firstNode = null;\n\t\tthis._lastNode = null;\n\t\tthis._waitingContextSuspension = false;\n\t\tif (!this._manager.context) {\n\t\t\treturn;\n\t\t}\n\t\tthis._initializeNodes();\n\t\tthis._endedHandler = this._onEnded.bind(this);\n\t}\n\tset currentTime(value) {\n\t\tvalue = Number(value) || 0;\n\t\tif (value < 0) return;\n\t\tconst duration = this.duration;\n\t\tconst currentTime = duration ? capTime(value, duration) : value;\n\t\tif (this._state === STATE_PLAYING) {\n\t\t\tconst suspend = this._suspendInstanceEvents;\n\t\t\tthis._suspendInstanceEvents = true;\n\t\t\tthis.stop();\n\t\t\tthis._startOffset = currentTime;\n\t\t\tthis.play();\n\t\t\tthis._suspendInstanceEvents = suspend;\n\t\t} else {\n\t\t\tthis._startOffset = currentTime;\n\t\t\tthis._currentTime = currentTime;\n\t\t}\n\t}\n\tget currentTime() {\n\t\tif (this._startOffset !== null) {\n\t\t\treturn this._startOffset;\n\t\t}\n\t\tif (this._state === STATE_PAUSED) {\n\t\t\treturn this._currentTime;\n\t\t}\n\t\tif (this._state === STATE_STOPPED || !this.source) {\n\t\t\treturn 0;\n\t\t}\n\t\tthis._updateCurrentTime();\n\t\treturn this._currentTime;\n\t}\n\tset duration(value) {\n\t\tthis._duration = Math.max(0, Number(value) || 0);\n\t\tconst isPlaying = this._state === STATE_PLAYING;\n\t\tthis.stop();\n\t\tif (isPlaying) {\n\t\t\tthis.play();\n\t\t}\n\t}\n\tget duration() {\n\t\tif (!this._sound) {\n\t\t\treturn 0;\n\t\t}\n\t\tif (this._duration) {\n\t\t\tconst soundDuration = this._sound.duration;\n\t\t\tconst startTime = capTime(this._startTime, soundDuration);\n\t\t\treturn Math.min(this._duration, soundDuration - startTime);\n\t\t}\n\t\treturn this._sound.duration;\n\t}\n\tget isPaused() {\n\t\treturn this._state === STATE_PAUSED;\n\t}\n\tget isPlaying() {\n\t\treturn this._state === STATE_PLAYING;\n\t}\n\tget isStopped() {\n\t\treturn this._state === STATE_STOPPED;\n\t}\n\tget isSuspended() {\n\t\treturn this._suspended;\n\t}\n\tset loop(value) {\n\t\tconst loop = !!value;\n\t\tconst wasLooping = this._loop;\n\t\tthis._loop = loop;\n\t\tif (this.source) {\n\t\t\tthis.source.loop = loop;\n\t\t\tif (wasLooping !== loop && this._duration && this._state === STATE_PLAYING) {\n\t\t\t\tthis._updateRegionStop();\n\t\t\t}\n\t\t}\n\t}\n\tget loop() {\n\t\treturn this._loop;\n\t}\n\tset pitch(pitch) {\n\t\tif (this._manager.context) {\n\t\t\tthis._currentOffset = this.currentTime;\n\t\t\tthis._startedAt = this._manager.context.currentTime;\n\t\t\tif (this.source) {\n\t\t\t\tthis._syncSourcePosition();\n\t\t\t}\n\t\t}\n\t\tthis._pitch = Math.max(Number(pitch) || 0, 0.01);\n\t\tif (this.source) {\n\t\t\tthis.source.playbackRate.value = this._pitch;\n\t\t\tif (this._regionStopPending) {\n\t\t\t\tthis._updateRegionStop();\n\t\t\t}\n\t\t}\n\t}\n\tget pitch() {\n\t\treturn this._pitch;\n\t}\n\tset sound(value) {\n\t\tthis._sound = value;\n\t\tif (this._state !== STATE_STOPPED) {\n\t\t\tthis.stop();\n\t\t} else {\n\t\t\tthis._createSource();\n\t\t}\n\t}\n\tget sound() {\n\t\treturn this._sound;\n\t}\n\tset startTime(value) {\n\t\tthis._startTime = Math.max(0, Number(value) || 0);\n\t\tconst isPlaying = this._state === STATE_PLAYING;\n\t\tthis.stop();\n\t\tif (isPlaying) {\n\t\t\tthis.play();\n\t\t}\n\t}\n\tget startTime() {\n\t\treturn this._startTime;\n\t}\n\tset volume(volume) {\n\t\tvolume = math.clamp(volume, 0, 1);\n\t\tthis._volume = volume;\n\t\tif (this.gain) {\n\t\t\tthis.gain.gain.value = volume * this._manager.volume;\n\t\t}\n\t}\n\tget volume() {\n\t\treturn this._volume;\n\t}\n\t_onPlay() {\n\t\tthis.fire(\"play\");\n\t\tif (this._onPlayCallback) {\n\t\t\tthis._onPlayCallback(this);\n\t\t}\n\t}\n\t_onPause() {\n\t\tthis.fire(\"pause\");\n\t\tif (this._onPauseCallback) {\n\t\t\tthis._onPauseCallback(this);\n\t\t}\n\t}\n\t_onResume() {\n\t\tthis.fire(\"resume\");\n\t\tif (this._onResumeCallback) {\n\t\t\tthis._onResumeCallback(this);\n\t\t}\n\t}\n\t_onStop() {\n\t\tthis.fire(\"stop\");\n\t\tif (this._onStopCallback) {\n\t\t\tthis._onStopCallback(this);\n\t\t}\n\t}\n\t_onEnded() {\n\t\tif (this._suspendEndEvent > 0) {\n\t\t\tthis._suspendEndEvent--;\n\t\t\treturn;\n\t\t}\n\t\tthis.fire(\"end\");\n\t\tif (this._onEndCallback) {\n\t\t\tthis._onEndCallback(this);\n\t\t}\n\t\tthis.stop();\n\t}\n\t_onManagerVolumeChange() {\n\t\tthis.volume = this._volume;\n\t}\n\t_onManagerSuspend() {\n\t\tif (this._state === STATE_PLAYING && !this._suspended) {\n\t\t\tthis._suspended = true;\n\t\t\tthis.pause();\n\t\t}\n\t}\n\t_onManagerResume() {\n\t\tif (this._suspended) {\n\t\t\tthis._suspended = false;\n\t\t\tthis.resume();\n\t\t}\n\t}\n\t_initializeNodes() {\n\t\tthis.gain = this._manager.context.createGain();\n\t\tthis._inputNode = this.gain;\n\t\tthis._connectorNode = this.gain;\n\t\tthis._connectorNode.connect(this._manager.context.destination);\n\t}\n\tplay() {\n\t\tif (!this._manager.context) {\n\t\t\treturn false;\n\t\t}\n\t\tif (this._state !== STATE_STOPPED) {\n\t\t\tthis.stop();\n\t\t}\n\t\tthis._state = STATE_PLAYING;\n\t\tthis._playWhenLoaded = false;\n\t\tif (this._waitingContextSuspension) {\n\t\t\treturn false;\n\t\t}\n\t\tif (this._manager.suspended) {\n\t\t\tthis._manager.once(\"resume\", this._playAudioImmediate, this);\n\t\t\tthis._waitingContextSuspension = true;\n\t\t\treturn false;\n\t\t}\n\t\tthis._playAudioImmediate();\n\t\treturn true;\n\t}\n\t_playAudioImmediate() {\n\t\tthis._waitingContextSuspension = false;\n\t\tif (this._state !== STATE_PLAYING) {\n\t\t\treturn;\n\t\t}\n\t\tif (!this.source) {\n\t\t\tthis._createSource();\n\t\t}\n\t\tconst currentOffset = capTime(this._startOffset, this.duration);\n\t\tconst offset3 = capTime(this._startTime + currentOffset, this._sound.duration);\n\t\tthis._startOffset = null;\n\t\tthis._startSource(offset3, currentOffset);\n\t\tthis._startedAt = this._manager.context.currentTime;\n\t\tthis._currentTime = 0;\n\t\tthis._currentOffset = currentOffset;\n\t\tthis.volume = this._volume;\n\t\tthis.loop = this._loop;\n\t\tthis.pitch = this._pitch;\n\t\tthis._manager.on(\"volumechange\", this._onManagerVolumeChange, this);\n\t\tthis._manager.on(\"suspend\", this._onManagerSuspend, this);\n\t\tthis._manager.on(\"resume\", this._onManagerResume, this);\n\t\tthis._manager.on(\"destroy\", this._onManagerDestroy, this);\n\t\tif (!this._suspendInstanceEvents) {\n\t\t\tthis._onPlay();\n\t\t}\n\t}\n\t_startSource(offset3, currentOffset) {\n\t\tif (this._duration && !this._loop) {\n\t\t\tthis.source.start(0, offset3, this.duration - currentOffset);\n\t\t} else {\n\t\t\tthis.source.start(0, offset3);\n\t\t}\n\t\tthis._sourceOffset = offset3;\n\t\tthis._sourceOffsetAt = this._manager.context.currentTime;\n\t\tthis._sourceLooping = this._loop;\n\t\tthis._regionStopPending = false;\n\t}\n\t_syncSourcePosition() {\n\t\tconst source = this.source;\n\t\tconst context = this._manager.context;\n\t\tlet position5 = this._sourceOffset + (context.currentTime - this._sourceOffsetAt) * this._pitch;\n\t\tconst region = source.loopEnd - source.loopStart;\n\t\tif (this._sourceLooping && region > 0 && position5 > source.loopEnd) {\n\t\t\tposition5 = source.loopStart + (position5 - source.loopStart) % region;\n\t\t}\n\t\tthis._sourceOffset = position5;\n\t\tthis._sourceOffsetAt = context.currentTime;\n\t\tthis._sourceLooping = source.loop;\n\t\treturn position5;\n\t}\n\t_updateRegionStop() {\n\t\tconst source = this.source;\n\t\tconst context = this._manager.context;\n\t\tconst position5 = this._syncSourcePosition();\n\t\tif (this._loop) {\n\t\t\tif (this._regionStopPending) {\n\t\t\t\tsource.stop(context.currentTime + STOP_NEVER_DELAY);\n\t\t\t\tthis._regionStopPending = false;\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tconst region = source.loopEnd - source.loopStart;\n\t\tif (region <= 0) {\n\t\t\treturn;\n\t\t}\n\t\tsource.stop(context.currentTime + Math.max(0, source.loopEnd - position5) / this._pitch);\n\t\tthis._regionStopPending = true;\n\t}\n\tpause() {\n\t\tthis._playWhenLoaded = false;\n\t\tif (this._state !== STATE_PLAYING) {\n\t\t\treturn false;\n\t\t}\n\t\tthis._state = STATE_PAUSED;\n\t\tif (this._waitingContextSuspension) {\n\t\t\treturn true;\n\t\t}\n\t\tthis._updateCurrentTime();\n\t\tthis._suspendEndEvent++;\n\t\tthis.source.stop(0);\n\t\tthis.source = null;\n\t\tthis._startOffset = null;\n\t\tif (!this._suspendInstanceEvents) {\n\t\t\tthis._onPause();\n\t\t}\n\t\treturn true;\n\t}\n\tresume() {\n\t\tif (this._state !== STATE_PAUSED) {\n\t\t\treturn false;\n\t\t}\n\t\tlet currentOffset = this.currentTime;\n\t\tthis._state = STATE_PLAYING;\n\t\tif (this._waitingContextSuspension) {\n\t\t\treturn true;\n\t\t}\n\t\tif (!this.source) {\n\t\t\tthis._createSource();\n\t\t}\n\t\tif (this._startOffset !== null) {\n\t\t\tcurrentOffset = capTime(this._startOffset, this.duration);\n\t\t\tthis._startOffset = null;\n\t\t}\n\t\tconst offset3 = capTime(this._startTime + currentOffset, this._sound.duration);\n\t\tthis._startSource(offset3, currentOffset);\n\t\tthis._startedAt = this._manager.context.currentTime;\n\t\tthis._currentOffset = currentOffset;\n\t\tthis.volume = this._volume;\n\t\tthis.loop = this._loop;\n\t\tthis.pitch = this._pitch;\n\t\tthis._playWhenLoaded = false;\n\t\tif (!this._suspendInstanceEvents) {\n\t\t\tthis._onResume();\n\t\t}\n\t\treturn true;\n\t}\n\tstop() {\n\t\tthis._playWhenLoaded = false;\n\t\tif (this._state === STATE_STOPPED) {\n\t\t\treturn false;\n\t\t}\n\t\tconst wasPlaying = this._state === STATE_PLAYING;\n\t\tthis._state = STATE_STOPPED;\n\t\tif (this._waitingContextSuspension) {\n\t\t\treturn true;\n\t\t}\n\t\tthis._manager.off(\"volumechange\", this._onManagerVolumeChange, this);\n\t\tthis._manager.off(\"suspend\", this._onManagerSuspend, this);\n\t\tthis._manager.off(\"resume\", this._onManagerResume, this);\n\t\tthis._manager.off(\"destroy\", this._onManagerDestroy, this);\n\t\tthis._startedAt = 0;\n\t\tthis._currentTime = 0;\n\t\tthis._currentOffset = 0;\n\t\tthis._startOffset = null;\n\t\tthis._suspendEndEvent++;\n\t\tif (wasPlaying && this.source) {\n\t\t\tthis.source.stop(0);\n\t\t}\n\t\tthis.source = null;\n\t\tif (!this._suspendInstanceEvents) {\n\t\t\tthis._onStop();\n\t\t}\n\t\treturn true;\n\t}\n\tsetExternalNodes(firstNode, lastNode) {\n\t\tif (!firstNode) {\n\t\t\tconsole.error(\"The firstNode must be a valid Audio Node\");\n\t\t\treturn;\n\t\t}\n\t\tif (!this._connectorNode) {\n\t\t\treturn;\n\t\t}\n\t\tif (!lastNode) {\n\t\t\tlastNode = firstNode;\n\t\t}\n\t\tconst speakers = this._manager.context.destination;\n\t\tif (this._firstNode !== firstNode) {\n\t\t\tif (this._firstNode) {\n\t\t\t\tthis._connectorNode.disconnect(this._firstNode);\n\t\t\t} else {\n\t\t\t\tthis._connectorNode.disconnect(speakers);\n\t\t\t}\n\t\t\tthis._firstNode = firstNode;\n\t\t\tthis._connectorNode.connect(firstNode);\n\t\t}\n\t\tif (this._lastNode !== lastNode) {\n\t\t\tif (this._lastNode) {\n\t\t\t\tthis._lastNode.disconnect(speakers);\n\t\t\t}\n\t\t\tthis._lastNode = lastNode;\n\t\t\tthis._lastNode.connect(speakers);\n\t\t}\n\t}\n\tclearExternalNodes() {\n\t\tif (!this._connectorNode) {\n\t\t\treturn;\n\t\t}\n\t\tconst speakers = this._manager.context.destination;\n\t\tif (this._firstNode) {\n\t\t\tthis._connectorNode.disconnect(this._firstNode);\n\t\t\tthis._firstNode = null;\n\t\t}\n\t\tif (this._lastNode) {\n\t\t\tthis._lastNode.disconnect(speakers);\n\t\t\tthis._lastNode = null;\n\t\t}\n\t\tthis._connectorNode.connect(speakers);\n\t}\n\tgetExternalNodes() {\n\t\treturn [this._firstNode, this._lastNode];\n\t}\n\t_createSource() {\n\t\tif (!this._sound) {\n\t\t\treturn null;\n\t\t}\n\t\tconst context = this._manager.context;\n\t\tif (!context) {\n\t\t\treturn null;\n\t\t}\n\t\tif (this._sound.buffer) {\n\t\t\tthis.source = context.createBufferSource();\n\t\t\tthis.source.buffer = this._sound.buffer;\n\t\t\tthis.source.connect(this._inputNode);\n\t\t\tthis.source.onended = this._endedHandler;\n\t\t\tthis.source.loopStart = capTime(this._startTime, this.source.buffer.duration);\n\t\t\tif (this._duration) {\n\t\t\t\tthis.source.loopEnd = Math.min(this.source.loopStart + this._duration, this.source.buffer.duration);\n\t\t\t}\n\t\t}\n\t\treturn this.source;\n\t}\n\t_updateCurrentTime() {\n\t\tthis._currentTime = capTime((this._manager.context.currentTime - this._startedAt) * this._pitch + this._currentOffset, this.duration);\n\t}\n\t_onManagerDestroy() {\n\t\tif (this.source && this._state === STATE_PLAYING) {\n\t\t\tthis.source.stop(0);\n\t\t\tthis.source = null;\n\t\t}\n\t}\n};\n\nvar MAX_DISTANCE = 1e4;\nvar SoundInstance3d = class extends SoundInstance {\n\t_position = new Vec3();\n\t_velocity = new Vec3();\n\tconstructor(manager, sound, options2 = {}) {\n\t\tsuper(manager, sound, options2);\n\t\tif (!manager.context) {\n\t\t\treturn;\n\t\t}\n\t\tif (options2.position) {\n\t\t\tthis.position = options2.position;\n\t\t}\n\t\tthis.maxDistance = options2.maxDistance !== void 0 ? Number(options2.maxDistance) : MAX_DISTANCE;\n\t\tthis.refDistance = options2.refDistance !== void 0 ? Number(options2.refDistance) : 1;\n\t\tthis.rollOffFactor = options2.rollOffFactor !== void 0 ? Number(options2.rollOffFactor) : 1;\n\t\tthis.distanceModel = options2.distanceModel !== void 0 ? options2.distanceModel : DISTANCE_LINEAR;\n\t}\n\t_initializeNodes() {\n\t\tthis.gain = this._manager.context.createGain();\n\t\tthis.panner = this._manager.context.createPanner();\n\t\tthis.panner.connect(this.gain);\n\t\tthis._inputNode = this.panner;\n\t\tthis._connectorNode = this.gain;\n\t\tthis._connectorNode.connect(this._manager.context.destination);\n\t}\n\tset position(value) {\n\t\tthis._position.copy(value);\n\t\tconst panner = this.panner;\n\t\tif (!panner) {\n\t\t\treturn;\n\t\t}\n\t\tif (\"positionX\" in panner) {\n\t\t\tpanner.positionX.value = value.x;\n\t\t\tpanner.positionY.value = value.y;\n\t\t\tpanner.positionZ.value = value.z;\n\t\t} else if (panner.setPosition) {\n\t\t\tpanner.setPosition(value.x, value.y, value.z);\n\t\t}\n\t}\n\tget position() {\n\t\treturn this._position;\n\t}\n\tset velocity(velocity) {\n\t\tthis._velocity.copy(velocity);\n\t}\n\tget velocity() {\n\t\treturn this._velocity;\n\t}\n\tset maxDistance(value) {\n\t\tif (this.panner) {\n\t\t\tthis.panner.maxDistance = value;\n\t\t}\n\t}\n\tget maxDistance() {\n\t\treturn this.panner ? this.panner.maxDistance : 0;\n\t}\n\tset refDistance(value) {\n\t\tif (this.panner) {\n\t\t\tthis.panner.refDistance = value;\n\t\t}\n\t}\n\tget refDistance() {\n\t\treturn this.panner ? this.panner.refDistance : 0;\n\t}\n\tset rollOffFactor(value) {\n\t\tif (this.panner) {\n\t\t\tthis.panner.rolloffFactor = value;\n\t\t}\n\t}\n\tget rollOffFactor() {\n\t\treturn this.panner ? this.panner.rolloffFactor : 0;\n\t}\n\tset distanceModel(value) {\n\t\tif (this.panner) {\n\t\t\tthis.panner.distanceModel = value;\n\t\t}\n\t}\n\tget distanceModel() {\n\t\treturn this.panner ? this.panner.distanceModel : DISTANCE_LINEAR;\n\t}\n};\n\nvar BLEND_SUBTRACTIVE = 0;\nvar BLEND_ADDITIVE = 1;\nvar BLEND_NORMAL = 2;\nvar BLEND_NONE = 3;\nvar BLEND_PREMULTIPLIED = 4;\nvar BLEND_MULTIPLICATIVE = 5;\nvar BLEND_ADDITIVEALPHA = 6;\nvar BLEND_MULTIPLICATIVE2X = 7;\nvar BLEND_SCREEN = 8;\nvar BLEND_MIN = 9;\nvar BLEND_MAX = 10;\nvar blendNames = {\n\t[BLEND_SUBTRACTIVE]: \"SUBTRACTIVE\",\n\t[BLEND_ADDITIVE]: \"ADDITIVE\",\n\t[BLEND_NORMAL]: \"NORMAL\",\n\t[BLEND_NONE]: \"NONE\",\n\t[BLEND_PREMULTIPLIED]: \"PREMULTIPLIED\",\n\t[BLEND_MULTIPLICATIVE]: \"MULTIPLICATIVE\",\n\t[BLEND_ADDITIVEALPHA]: \"ADDITIVEALPHA\",\n\t[BLEND_MULTIPLICATIVE2X]: \"MULTIPLICATIVE2X\",\n\t[BLEND_SCREEN]: \"SCREEN\",\n\t[BLEND_MIN]: \"MIN\",\n\t[BLEND_MAX]: \"MAX\"\n};\nvar FOG_NONE = \"none\";\nvar FOG_LINEAR = \"linear\";\nvar FOG_EXP = \"exp\";\nvar FOG_EXP2 = \"exp2\";\nvar FRESNEL_NONE = 0;\nvar FRESNEL_SCHLICK = 2;\nvar fresnelNames = {\n\t[FRESNEL_NONE]: \"NONE\",\n\t[FRESNEL_SCHLICK]: \"SCHLICK\"\n};\nvar LAYER_HUD = 0;\nvar LAYER_GIZMO = 1;\nvar LAYER_WORLD = 15;\nvar LAYERID_WORLD = 0;\nvar LAYERID_DEPTH = 1;\nvar LAYERID_SKYBOX = 2;\nvar LAYERID_IMMEDIATE = 3;\nvar LAYERID_UI = 4;\nvar LIGHTTYPE_DIRECTIONAL = 0;\nvar LIGHTTYPE_OMNI = 1;\nvar LIGHTTYPE_POINT = LIGHTTYPE_OMNI;\nvar LIGHTTYPE_SPOT = 2;\nvar LIGHTTYPE_COUNT = 3;\nvar lightTypeNames = {\n\t[LIGHTTYPE_DIRECTIONAL]: \"DIRECTIONAL\",\n\t[LIGHTTYPE_OMNI]: \"OMNI\",\n\t[LIGHTTYPE_SPOT]: \"SPOT\"\n};\nvar LIGHT_COLOR_DIVIDER = 100;\nvar LIGHTSHAPE_PUNCTUAL = 0;\nvar LIGHTSHAPE_RECT = 1;\nvar LIGHTSHAPE_DISK = 2;\nvar LIGHTSHAPE_SPHERE = 3;\nvar lightShapeNames = {\n\t[LIGHTSHAPE_PUNCTUAL]: \"PUNCTUAL\",\n\t[LIGHTSHAPE_RECT]: \"RECT\",\n\t[LIGHTSHAPE_DISK]: \"DISK\",\n\t[LIGHTSHAPE_SPHERE]: \"SPHERE\"\n};\nvar LIGHTFALLOFF_LINEAR = 0;\nvar LIGHTFALLOFF_INVERSESQUARED = 1;\nvar lightFalloffNames = {\n\t[LIGHTFALLOFF_LINEAR]: \"LINEAR\",\n\t[LIGHTFALLOFF_INVERSESQUARED]: \"INVERSESQUARED\"\n};\nvar SHADOW_PCF3_32F = 0;\nvar SHADOW_PCF3 = 0;\nvar SHADOW_VSM_16F = 2;\nvar SHADOW_VSM16 = 2;\nvar SHADOW_VSM_32F = 3;\nvar SHADOW_VSM32 = 3;\nvar SHADOW_PCF5_32F = 4;\nvar SHADOW_PCF5 = 4;\nvar SHADOW_PCF1_32F = 5;\nvar SHADOW_PCF1 = 5;\nvar SHADOW_PCSS_32F = 6;\nvar SHADOW_PCF1_16F = 7;\nvar SHADOW_PCF3_16F = 8;\nvar SHADOW_PCF5_16F = 9;\nvar shadowTypeInfo = /* @__PURE__ */ new Map([\n\t[SHADOW_PCF1_32F, { name: \"PCF1_32F\", kind: \"PCF1\", format: PIXELFORMAT_DEPTH, pcf: true }],\n\t[SHADOW_PCF3_32F, { name: \"PCF3_32F\", kind: \"PCF3\", format: PIXELFORMAT_DEPTH, pcf: true }],\n\t[SHADOW_PCF5_32F, { name: \"PCF5_32F\", kind: \"PCF5\", format: PIXELFORMAT_DEPTH, pcf: true }],\n\t[SHADOW_PCF1_16F, { name: \"PCF1_16F\", kind: \"PCF1\", format: PIXELFORMAT_DEPTH16, pcf: true }],\n\t[SHADOW_PCF3_16F, { name: \"PCF3_16F\", kind: \"PCF3\", format: PIXELFORMAT_DEPTH16, pcf: true }],\n\t[SHADOW_PCF5_16F, { name: \"PCF5_16F\", kind: \"PCF5\", format: PIXELFORMAT_DEPTH16, pcf: true }],\n\t[SHADOW_VSM_16F, { name: \"VSM_16F\", kind: \"VSM\", format: PIXELFORMAT_RGBA16F, vsm: true }],\n\t[SHADOW_VSM_32F, { name: \"VSM_32F\", kind: \"VSM\", format: PIXELFORMAT_RGBA32F, vsm: true }],\n\t[SHADOW_PCSS_32F, { name: \"PCSS_32F\", kind: \"PCSS\", format: PIXELFORMAT_R32F, pcss: true }]\n]);\nvar SHADOW_CASCADE_0 = 1;\nvar SHADOW_CASCADE_1 = 2;\nvar SHADOW_CASCADE_2 = 4;\nvar SHADOW_CASCADE_3 = 8;\nvar SHADOW_CASCADE_ALL = 255;\nvar BLUR_BOX = 0;\nvar BLUR_GAUSSIAN = 1;\nvar PARTICLESORT_NONE = 0;\nvar PARTICLESORT_DISTANCE = 1;\nvar PARTICLESORT_NEWER_FIRST = 2;\nvar PARTICLESORT_OLDER_FIRST = 3;\nvar PARTICLEMODE_GPU = 0;\nvar PARTICLEMODE_CPU = 1;\nvar EMITTERSHAPE_BOX = 0;\nvar EMITTERSHAPE_SPHERE = 1;\nvar PARTICLEORIENTATION_SCREEN = 0;\nvar PARTICLEORIENTATION_WORLD = 1;\nvar PARTICLEORIENTATION_EMITTER = 2;\nvar PROJECTION_PERSPECTIVE = 0;\nvar PROJECTION_ORTHOGRAPHIC = 1;\nvar RENDERSTYLE_SOLID = 0;\nvar RENDERSTYLE_WIREFRAME = 1;\nvar RENDERSTYLE_POINTS = 2;\nvar CUBEPROJ_NONE = 0;\nvar CUBEPROJ_BOX = 1;\nvar cubemaProjectionNames = {\n\t[CUBEPROJ_NONE]: \"NONE\",\n\t[CUBEPROJ_BOX]: \"BOX\"\n};\nvar DETAILMODE_MUL = \"mul\";\nvar DETAILMODE_ADD = \"add\";\nvar DETAILMODE_SCREEN = \"screen\";\nvar DETAILMODE_OVERLAY = \"overlay\";\nvar DETAILMODE_MIN = \"min\";\nvar DETAILMODE_MAX = \"max\";\nvar GAMMA_NONE = 0;\nvar GAMMA_SRGB = 1;\nvar gammaNames = {\n\t[GAMMA_NONE]: \"NONE\",\n\t[GAMMA_SRGB]: \"SRGB\"\n};\nvar TONEMAP_LINEAR = 0;\nvar TONEMAP_FILMIC = 1;\nvar TONEMAP_HEJL = 2;\nvar TONEMAP_ACES = 3;\nvar TONEMAP_ACES2 = 4;\nvar TONEMAP_NEUTRAL = 5;\nvar TONEMAP_NONE = 6;\nvar tonemapNames = [\n\t\"LINEAR\",\n\t\"FILMIC\",\n\t\"HEJL\",\n\t\"ACES\",\n\t\"ACES2\",\n\t\"NEUTRAL\",\n\t\"NONE\"\n];\nvar SPECOCC_NONE = 0;\nvar SPECOCC_AO = 1;\nvar SPECOCC_GLOSSDEPENDENT = 2;\nvar specularOcclusionNames = {\n\t[SPECOCC_NONE]: \"NONE\",\n\t[SPECOCC_AO]: \"AO\",\n\t[SPECOCC_GLOSSDEPENDENT]: \"GLOSSDEPENDENT\"\n};\nvar REFLECTIONSRC_NONE = \"none\";\nvar REFLECTIONSRC_ENVATLAS = \"envAtlas\";\nvar REFLECTIONSRC_ENVATLASHQ = \"envAtlasHQ\";\nvar REFLECTIONSRC_CUBEMAP = \"cubeMap\";\nvar REFLECTIONSRC_SPHEREMAP = \"sphereMap\";\nvar reflectionSrcNames = {\n\t[REFLECTIONSRC_NONE]: \"NONE\",\n\t[REFLECTIONSRC_ENVATLAS]: \"ENVATLAS\",\n\t[REFLECTIONSRC_ENVATLASHQ]: \"ENVATLASHQ\",\n\t[REFLECTIONSRC_CUBEMAP]: \"CUBEMAP\",\n\t[REFLECTIONSRC_SPHEREMAP]: \"SPHEREMAP\"\n};\nvar AMBIENTSRC_AMBIENTSH = \"ambientSH\";\nvar AMBIENTSRC_ENVALATLAS = \"envAtlas\";\nvar AMBIENTSRC_CONSTANT = \"constant\";\nvar ambientSrcNames = {\n\t[AMBIENTSRC_AMBIENTSH]: \"AMBIENTSH\",\n\t[AMBIENTSRC_ENVALATLAS]: \"ENVALATLAS\",\n\t[AMBIENTSRC_CONSTANT]: \"CONSTANT\"\n};\nvar SHADERDEF_NOSHADOW = 1;\nvar SHADERDEF_SKIN = 2;\nvar SHADERDEF_UV0 = 4;\nvar SHADERDEF_UV1 = 8;\nvar SHADERDEF_VCOLOR = 16;\nvar SHADERDEF_INSTANCING = 32;\nvar SHADERDEF_LM = 64;\nvar SHADERDEF_DIRLM = 128;\nvar SHADERDEF_SCREENSPACE = 256;\nvar SHADERDEF_TANGENTS = 512;\nvar SHADERDEF_MORPH_POSITION = 1024;\nvar SHADERDEF_MORPH_NORMAL = 2048;\nvar SHADERDEF_LMAMBIENT = 4096;\nvar SHADERDEF_MORPH_TEXTURE_BASED_INT = 8192;\nvar SHADERDEF_BATCH = 16384;\nvar SHADOWUPDATE_NONE = 0;\nvar SHADOWUPDATE_THISFRAME = 1;\nvar SHADOWUPDATE_REALTIME = 2;\nvar MASK_AFFECT_DYNAMIC = 1;\nvar MASK_AFFECT_LIGHTMAPPED = 2;\nvar MASK_BAKE = 4;\nvar SHADER_FORWARD = 0;\nvar SHADER_PREPASS = 1;\nvar SHADER_SHADOW = 2;\nvar SHADER_PICK = 3;\nvar SHADER_DEPTH_PICK = 4;\nvar SHADERPASS_FORWARD = \"forward\";\nvar SHADERPASS_ALBEDO = \"debug_albedo\";\nvar SHADERPASS_WORLDNORMAL = \"debug_world_normal\";\nvar SHADERPASS_OPACITY = \"debug_opacity\";\nvar SHADERPASS_SPECULARITY = \"debug_specularity\";\nvar SHADERPASS_GLOSS = \"debug_gloss\";\nvar SHADERPASS_METALNESS = \"debug_metalness\";\nvar SHADERPASS_AO = \"debug_ao\";\nvar SHADERPASS_EMISSION = \"debug_emission\";\nvar SHADERPASS_LIGHTING = \"debug_lighting\";\nvar SHADERPASS_UV0 = \"debug_uv0\";\nvar SPRITE_RENDERMODE_SIMPLE = 0;\nvar SPRITE_RENDERMODE_SLICED = 1;\nvar SPRITE_RENDERMODE_TILED = 2;\nvar spriteRenderModeNames = {\n\t[SPRITE_RENDERMODE_SIMPLE]: \"SIMPLE\",\n\t[SPRITE_RENDERMODE_SLICED]: \"SLICED\",\n\t[SPRITE_RENDERMODE_TILED]: \"TILED\"\n};\nvar BAKE_COLOR = 0;\nvar BAKE_COLORDIR = 1;\nvar VIEW_CENTER = 0;\nvar VIEW_LEFT = 1;\nvar VIEW_RIGHT = 2;\nvar SORTMODE_NONE = 0;\nvar SORTMODE_MANUAL = 1;\nvar SORTMODE_MATERIALMESH = 2;\nvar SORTMODE_BACK2FRONT = 3;\nvar SORTMODE_FRONT2BACK = 4;\nvar SORTMODE_CUSTOM = 5;\nvar ASPECT_AUTO = 0;\nvar ASPECT_MANUAL = 1;\nvar ORIENTATION_HORIZONTAL = 0;\nvar ORIENTATION_VERTICAL = 1;\nvar SKYTYPE_INFINITE = \"infinite\";\nvar SKYTYPE_BOX = \"box\";\nvar SKYTYPE_DOME = \"dome\";\nvar DITHER_NONE = \"none\";\nvar DITHER_BAYER2 = \"bayer2\";\nvar DITHER_BAYER4 = \"bayer4\";\nvar DITHER_BAYER8 = \"bayer8\";\nvar DITHER_BAYER16 = \"bayer16\";\nvar DITHER_BLUENOISE = \"bluenoise\";\nvar DITHER_IGNNOISE = \"ignnoise\";\nvar PARALLAX_OFFSET = \"offset\";\nvar PARALLAX_OCCLUSION = \"occlusion\";\nvar parallaxNames = {\n\t[PARALLAX_OFFSET]: \"OFFSET\",\n\t[PARALLAX_OCCLUSION]: \"OCCLUSION\"\n};\nvar ditherNames = {\n\t[DITHER_NONE]: \"NONE\",\n\t[DITHER_BAYER2]: \"BAYER2\",\n\t[DITHER_BAYER4]: \"BAYER4\",\n\t[DITHER_BAYER8]: \"BAYER8\",\n\t[DITHER_BAYER16]: \"BAYER16\",\n\t[DITHER_BLUENOISE]: \"BLUENOISE\",\n\t[DITHER_IGNNOISE]: \"IGNNOISE\"\n};\nvar EVENT_PRERENDER = \"prerender\";\nvar EVENT_POSTRENDER = \"postrender\";\nvar EVENT_PRERENDER_LAYER = \"prerender:layer\";\nvar EVENT_POSTRENDER_LAYER = \"postrender:layer\";\nvar EVENT_PRECULL = \"precull\";\nvar EVENT_POSTCULL = \"postcull\";\nvar EVENT_CULL_END = \"cull:end\";\nvar GSPLAT_FORWARD = 1;\nvar GSPLAT_SHADOW = 2;\nvar SHADOWCAMERA_NAME = \"pcShadowCamera\";\nvar WORKBUFFER_UPDATE_AUTO = 0;\nvar WORKBUFFER_UPDATE_ONCE = 1;\nvar WORKBUFFER_UPDATE_ALWAYS = 2;\nvar GSPLAT_STREAM_RESOURCE = 0;\nvar GSPLAT_STREAM_INSTANCE = 1;\nvar GSPLATDATA_LARGE = \"large\";\nvar GSPLATDATA_COMPACT = \"compact\";\nvar GSPLAT_RENDERER_AUTO = 0;\nvar GSPLAT_RENDERER_RASTER_CPU_SORT = 1;\nvar GSPLAT_RENDERER_RASTER_GPU_SORT = 2;\nvar GSPLAT_RENDERER_COMPUTE = 3;\nvar GSPLAT_LODMODE_ERROR = \"error\";\nvar GSPLAT_LODMODE_DISTANCE = \"distance\";\nvar GSPLAT_DEBUG_NONE = 0;\nvar GSPLAT_DEBUG_LOD = 1;\nvar GSPLAT_DEBUG_SH_UPDATE = 2;\nvar GSPLAT_DEBUG_HEATMAP = 3;\nvar GSPLAT_DEBUG_AABBS = 4;\nvar GSPLAT_DEBUG_NODE_AABBS = 5;\nvar RADIX_SORT_AUTO = 0;\nvar RADIX_SORT_PORTABLE = 1;\nvar RADIX_SORT_ONESWEEP = 2;\nvar SCENETEXTURE_DEPTH = \"depth\";\nvar sceneTextureUniformNames = {\n\t[SCENETEXTURE_DEPTH]: \"uSceneDepthMap\"\n};\n\nvar ShaderProcessorOptions = class {\n\tuniformFormats = [];\n\tbindGroupFormats = [];\n\tvertexFormat;\n\tconstructor(viewUniformFormat, vertexFormat) {\n\t\tthis.uniformFormats[BINDGROUP_VIEW] = viewUniformFormat;\n\t\tthis.vertexFormat = vertexFormat;\n\t}\n\thasUniform(name) {\n\t\tfor (let i2 = 0; i2 < this.uniformFormats.length; i2++) {\n\t\t\tconst uniformFormat = this.uniformFormats[i2];\n\t\t\tif (uniformFormat?.get(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\thasTexture(name) {\n\t\tfor (let i2 = 0; i2 < this.bindGroupFormats.length; i2++) {\n\t\t\tconst groupFormat = this.bindGroupFormats[i2];\n\t\t\tif (groupFormat?.getTexture(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\tgetVertexElement(semantic) {\n\t\treturn this.vertexFormat?.elements.find((element) => element.name === semantic);\n\t}\n\tgenerateKey(device) {\n\t\tlet key = JSON.stringify(this.uniformFormats) + JSON.stringify(this.bindGroupFormats);\n\t\tif (device.isWebGPU) {\n\t\t\tkey += this.vertexFormat?.shaderProcessingHashString;\n\t\t}\n\t\treturn key;\n\t}\n};\n\nvar programLibraryDeviceCache = new DeviceCache();\nfunction getProgramLibrary(device) {\n\tconst library = programLibraryDeviceCache.get(device);\n\treturn library;\n}\nfunction setProgramLibrary(device, library) {\n\tprogramLibraryDeviceCache.get(device, () => {\n\t\treturn library;\n\t});\n}\n\nvar ShaderGenerator = class {\n\tstatic definesHash(defines) {\n\t\tconst sortedArray = Array.from(defines).sort((a, b) => a[0] > b[0] ? 1 : -1);\n\t\treturn hashCode(JSON.stringify(sortedArray));\n\t}\n};\n\nvar shaderPassDeviceCache = new DeviceCache();\nvar ShaderPassInfo = class {\n\tindex;\n\tname;\n\tdefines = /* @__PURE__ */ new Map();\n\tconstructor(name, index, options2 = {}) {\n\t\tthis.name = name;\n\t\tthis.index = index;\n\t\tObject.assign(this, options2);\n\t\tthis.buildShaderDefines();\n\t}\n\tbuildShaderDefines() {\n\t\tlet keyword;\n\t\tif (this.isShadow) {\n\t\t\tkeyword = \"SHADOW\";\n\t\t\tif (this.lightType !== void 0) {\n\t\t\t\tconst shadowInfo = shadowTypeInfo.get(this.shadowType);\n\t\t\t\tconst perspectiveDepth = this.lightType === LIGHTTYPE_DIRECTIONAL || !shadowInfo.vsm && this.lightType === LIGHTTYPE_SPOT;\n\t\t\t\tif (perspectiveDepth) this.defines.set(\"PERSPECTIVE_DEPTH\", \"\");\n\t\t\t\tthis.defines.set(\"LIGHT_TYPE\", `${lightTypeNames[this.lightType]}`);\n\t\t\t\tthis.defines.set(\"SHADOW_TYPE\", `${shadowInfo.name}`);\n\t\t\t}\n\t\t} else if (this.isForward) {\n\t\t\tkeyword = \"FORWARD\";\n\t\t} else if (this.index === SHADER_PICK) {\n\t\t\tkeyword = \"PICK\";\n\t\t} else if (this.index === SHADER_DEPTH_PICK) {\n\t\t\tkeyword = \"PICK\";\n\t\t\tthis.defines.set(\"DEPTH_PICK_PASS\", \"\");\n\t\t}\n\t\tif (keyword) {\n\t\t\tthis.defines.set(`${keyword}_PASS`, \"\");\n\t\t}\n\t\tthis.defines.set(`${this.name.toUpperCase()}_PASS`, \"\");\n\t}\n};\nvar ShaderPass = class _ShaderPass {\n\tpassesNamed = /* @__PURE__ */ new Map();\n\tpassesIndexed = [];\n\tnextIndex = 0;\n\tconstructor() {\n\t\tconst add = (name, index, options2) => {\n\t\t\tconst info = this.allocate(name, options2);\n\t\t};\n\t\tadd(\"forward\", SHADER_FORWARD, { isForward: true });\n\t\tadd(\"prepass\", SHADER_PREPASS);\n\t\tadd(\"shadow\", SHADER_SHADOW);\n\t\tadd(\"pick\", SHADER_PICK);\n\t\tadd(\"depth_pick\", SHADER_DEPTH_PICK);\n\t}\n\tstatic get(device) {\n\t\treturn shaderPassDeviceCache.get(device, () => {\n\t\t\treturn new _ShaderPass();\n\t\t});\n\t}\n\tallocate(name, options2) {\n\t\tlet info = this.passesNamed.get(name);\n\t\tif (info === void 0) {\n\t\t\tinfo = new ShaderPassInfo(name, this.nextIndex, options2);\n\t\t\tthis.passesNamed.set(info.name, info);\n\t\t\tthis.passesIndexed[info.index] = info;\n\t\t\tthis.nextIndex++;\n\t\t}\n\t\treturn info;\n\t}\n\tgetByIndex(index) {\n\t\tconst info = this.passesIndexed[index];\n\t\treturn info;\n\t}\n\tgetByName(name) {\n\t\treturn this.passesNamed.get(name);\n\t}\n};\n\nvar ShaderChunkMap = class extends Map {\n\t_validations;\n\t_keyDirty = false;\n\t_key = \"\";\n\tconstructor(validations) {\n\t\tsuper();\n\t\tthis._validations = validations;\n\t}\n\tset(name, code) {\n\t\tif (!this.has(name) || this.get(name) !== code) {\n\t\t\tthis.markDirty();\n\t\t}\n\t\treturn super.set(name, code);\n\t}\n\tadd(object, override = true) {\n\t\tfor (const [key, value] of Object.entries(object)) {\n\t\t\tif (override || !this.has(key)) {\n\t\t\t\tthis.set(key, value);\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\tdelete(name) {\n\t\tconst existed = this.has(name);\n\t\tconst result = super.delete(name);\n\t\tif (existed && result) {\n\t\t\tthis.markDirty();\n\t\t}\n\t\treturn result;\n\t}\n\tclear() {\n\t\tif (this.size > 0) {\n\t\t\tthis.markDirty();\n\t\t}\n\t\tsuper.clear();\n\t}\n\tmarkDirty() {\n\t\tthis._dirty = true;\n\t\tthis._keyDirty = true;\n\t}\n\tisDirty() {\n\t\treturn this._dirty;\n\t}\n\tresetDirty() {\n\t\tthis._dirty = false;\n\t}\n\tget key() {\n\t\tif (this._keyDirty) {\n\t\t\tthis._keyDirty = false;\n\t\t\tthis._key = Array.from(this.entries()).sort(([a], [b]) => a < b ? -1 : a > b ? 1 : 0).map(([k, v6]) => `${k}=${hashCode(v6)}`).join(\",\");\n\t\t}\n\t\treturn this._key;\n\t}\n\tcopy(source) {\n\t\tfor (const key of this.keys()) {\n\t\t\tif (!source.has(key)) {\n\t\t\t\tthis.delete(key);\n\t\t\t}\n\t\t}\n\t\tfor (const [key, value] of source) {\n\t\t\tthis.set(key, value);\n\t\t}\n\t\treturn this;\n\t}\n};\n\nvar _chunksCache = new DeviceCache();\nvar ShaderChunks = class _ShaderChunks {\n\tstatic _validations = /* @__PURE__ */ new Map();\n\tglsl = new ShaderChunkMap(_ShaderChunks._validations);\n\twgsl = new ShaderChunkMap(_ShaderChunks._validations);\n\tstatic get(device, shaderLanguage = SHADERLANGUAGE_GLSL) {\n\t\tconst cache = _chunksCache.get(device, () => {\n\t\t\treturn new _ShaderChunks();\n\t\t});\n\t\treturn shaderLanguage === SHADERLANGUAGE_GLSL ? cache.glsl : cache.wgsl;\n\t}\n\tstatic registerValidation(name, options2) {\n\t}\n\tversion = \"\";\n\tget useWGSL() {\n\t\treturn this.glsl.size === 0 || this.wgsl.size > 0;\n\t}\n\tget key() {\n\t\treturn `GLSL:${this.glsl.key}|WGSL:${this.wgsl.key}|API:${this.version}`;\n\t}\n\tisDirty() {\n\t\treturn this.glsl.isDirty() || this.wgsl.isDirty();\n\t}\n\tresetDirty() {\n\t\tthis.glsl.resetDirty();\n\t\tthis.wgsl.resetDirty();\n\t}\n\tcopy(source) {\n\t\tthis.version = source.version;\n\t\tthis.glsl.copy(source.glsl);\n\t\tthis.wgsl.copy(source.wgsl);\n\t\treturn this;\n\t}\n};\n\nvar MapUtils = class {\n\tstatic merge(...maps) {\n\t\tconst result = new Map(maps[0] ?? []);\n\t\tfor (let i2 = 1; i2 < maps.length; i2++) {\n\t\t\tconst map = maps[i2];\n\t\t\tif (map) {\n\t\t\t\tfor (const [key, value] of map) {\n\t\t\t\t\tresult.set(key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n};\n\nvar ShaderGeneratorPassThrough = class extends ShaderGenerator {\n\tconstructor(key, shaderDefinition) {\n\t\tsuper();\n\t\tthis.key = key;\n\t\tthis.shaderDefinition = shaderDefinition;\n\t}\n\tgenerateKey(options2) {\n\t\treturn this.key;\n\t}\n\tcreateShaderDefinition(device, options2) {\n\t\treturn this.shaderDefinition;\n\t}\n};\nvar ShaderUtils = class _ShaderUtils {\n\tstatic createShader(device, options2) {\n\t\tconst programLibrary = getProgramLibrary(device);\n\t\tlet shader = programLibrary.getCachedShader(options2.uniqueName);\n\t\tif (!shader) {\n\t\t\tconst wgsl = device.isWebGPU && (!!options2.vertexWGSL || !!options2.vertexChunk) && (!!options2.fragmentWGSL || !!options2.fragmentChunk);\n\t\t\tconst chunksMap = ShaderChunks.get(device, wgsl ? SHADERLANGUAGE_WGSL : SHADERLANGUAGE_GLSL);\n\t\t\tconst vertexCode = options2.vertexChunk ? chunksMap.get(options2.vertexChunk) : wgsl ? options2.vertexWGSL : options2.vertexGLSL;\n\t\t\tconst fragmentCode = options2.fragmentChunk ? chunksMap.get(options2.fragmentChunk) : wgsl ? options2.fragmentWGSL : options2.fragmentGLSL;\n\t\t\tconst fragmentIncludes = MapUtils.merge(chunksMap, options2.fragmentIncludes);\n\t\t\tconst vertexIncludes = MapUtils.merge(chunksMap, options2.vertexIncludes);\n\t\t\tshader = new Shader(device, ShaderDefinitionUtils.createDefinition(device, {\n\t\t\t\tname: options2.uniqueName,\n\t\t\t\tshaderLanguage: wgsl ? SHADERLANGUAGE_WGSL : SHADERLANGUAGE_GLSL,\n\t\t\t\tattributes: options2.attributes,\n\t\t\t\tvertexCode,\n\t\t\t\tfragmentCode,\n\t\t\t\tuseTransformFeedback: options2.useTransformFeedback,\n\t\t\t\tvertexIncludes,\n\t\t\t\tvertexDefines: options2.vertexDefines,\n\t\t\t\tfragmentIncludes,\n\t\t\t\tfragmentDefines: options2.fragmentDefines,\n\t\t\t\tfragmentOutputTypes: options2.fragmentOutputTypes,\n\t\t\t\tuseDualSourceBlending: options2.useDualSourceBlending\n\t\t\t}));\n\t\t\tprogramLibrary.setCachedShader(options2.uniqueName, shader);\n\t\t}\n\t\treturn shader;\n\t}\n\tstatic getCoreDefines(material, params) {\n\t\tconst defines = new Map(material.defines);\n\t\tparams.cameraShaderParams.defines.forEach((value, key) => defines.set(key, value));\n\t\tconst shaderPassInfo = ShaderPass.get(params.device).getByIndex(params.pass);\n\t\tshaderPassInfo.defines.forEach((value, key) => defines.set(key, value));\n\t\treturn defines;\n\t}\n\tstatic processShader(shader, processingOptions) {\n\t\tconst shaderDefinition = shader.definition;\n\t\tconst name = shaderDefinition.name ?? \"shader\";\n\t\tconst key = `${name}-id-${shader.id}`;\n\t\tconst materialGenerator = new ShaderGeneratorPassThrough(key, shaderDefinition);\n\t\tconst libraryModuleName = \"shader\";\n\t\tconst library = getProgramLibrary(shader.device);\n\t\tlibrary.register(libraryModuleName, materialGenerator);\n\t\tconst variant = library.getProgram(libraryModuleName, {}, processingOptions);\n\t\tlibrary.unregister(libraryModuleName);\n\t\treturn variant;\n\t}\n\tstatic getScreenDepthChunkKey(cameraShaderParams) {\n\t\tconst { sceneDepthMapLinear, sceneDepthMapPacked, sceneDepthMapReciprocal } = cameraShaderParams;\n\t\tif (!sceneDepthMapLinear) {\n\t\t\treturn \"\";\n\t\t}\n\t\tif (sceneDepthMapPacked) {\n\t\t\treturn \"-linearPacked\";\n\t\t}\n\t\treturn sceneDepthMapReciprocal ? \"-linearReciprocal\" : \"-linear\";\n\t}\n\tstatic addScreenDepthChunkDefines(cameraShaderParams, defines) {\n\t\tif (cameraShaderParams.sceneDepthMapLinear) {\n\t\t\tdefines.set(\"SCENE_DEPTHMAP_LINEAR\", \"\");\n\t\t\tif (cameraShaderParams.sceneDepthMapPacked) {\n\t\t\t\tdefines.set(\"SCENE_DEPTHMAP_PACKED\", \"\");\n\t\t\t}\n\t\t\tif (cameraShaderParams.sceneDepthMapReciprocal) {\n\t\t\t\tdefines.set(\"SCENE_DEPTHMAP_RECIPROCAL\", \"\");\n\t\t\t}\n\t\t}\n\t\treturn _ShaderUtils.getScreenDepthChunkKey(cameraShaderParams);\n\t}\n};\nfunction createShader(device, vsName, fsName, useTransformFeedback = false, shaderDefinitionOptions = {}) {\n}\nfunction createShaderFromCode(device, vsCode, fsCode, uniqueName, attributes, useTransformFeedback = false, shaderDefinitionOptions = {}) {\n\tif (typeof useTransformFeedback === \"boolean\") {\n\t\tshaderDefinitionOptions.useTransformFeedback = useTransformFeedback;\n\t} else if (typeof useTransformFeedback === \"object\") {\n\t\tshaderDefinitionOptions = {\n\t\t\t...shaderDefinitionOptions,\n\t\t\t...useTransformFeedback\n\t\t};\n\t}\n\tconst programLibrary = getProgramLibrary(device);\n\tlet shader = programLibrary.getCachedShader(uniqueName);\n\tif (!shader) {\n\t\tshader = new Shader(device, ShaderDefinitionUtils.createDefinition(device, {\n\t\t\t...shaderDefinitionOptions,\n\t\t\tname: uniqueName,\n\t\t\tvertexCode: vsCode,\n\t\t\tfragmentCode: fsCode,\n\t\t\tattributes\n\t\t}));\n\t\tprogramLibrary.setCachedShader(uniqueName, shader);\n\t}\n\treturn shader;\n}\n\nvar _quadPrimitive2 = {\n\ttype: PRIMITIVE_TRIANGLES,\n\tbase: 0,\n\tcount: 6,\n\tindexed: true\n};\nvar _tempViewport = new Vec4();\nvar _tempScissor = new Vec4();\nvar _dynamicBindGroup = new DynamicBindGroup();\nvar QuadRender = class {\n\tuniformBuffer;\n\tbindGroup;\n\tconstructor(shader) {\n\t\tconst device = shader.device;\n\t\tthis.shader = shader;\n\t\tif (device.supportsUniformBuffers) {\n\t\t\tconst processingOptions = new ShaderProcessorOptions();\n\t\t\tthis.shader = ShaderUtils.processShader(shader, processingOptions);\n\t\t\tconst ubFormat = this.shader.meshUniformBufferFormat;\n\t\t\tif (ubFormat) {\n\t\t\t\tthis.uniformBuffer = new UniformBuffer(device, ubFormat, false);\n\t\t\t}\n\t\t\tconst bindGroupFormat = this.shader.meshBindGroupFormat;\n\t\t\tthis.bindGroup = new BindGroup(device, bindGroupFormat);\n\t\t}\n\t}\n\tdestroy() {\n\t\tthis.uniformBuffer?.destroy();\n\t\tthis.uniformBuffer = null;\n\t\tthis.bindGroup?.destroy();\n\t\tthis.bindGroup = null;\n\t}\n\trender(viewport, scissor, numInstances) {\n\t\tconst device = this.shader.device;\n\t\tif (viewport) {\n\t\t\t_tempViewport.set(device.vx, device.vy, device.vw, device.vh);\n\t\t\t_tempScissor.set(device.sx, device.sy, device.sw, device.sh);\n\t\t\tscissor = scissor ?? viewport;\n\t\t\tdevice.setViewport(viewport.x, viewport.y, viewport.z, viewport.w);\n\t\t\tdevice.setScissor(scissor.x, scissor.y, scissor.z, scissor.w);\n\t\t}\n\t\tdevice.setVertexBuffer(device.quadVertexBuffer);\n\t\tconst shader = this.shader;\n\t\tdevice.setShader(shader);\n\t\tif (device.supportsUniformBuffers) {\n\t\t\tdevice.setBindGroup(BINDGROUP_VIEW, device.emptyBindGroup);\n\t\t\tconst bindGroup = this.bindGroup;\n\t\t\tbindGroup.update();\n\t\t\tdevice.setBindGroup(BINDGROUP_MESH, bindGroup);\n\t\t\tconst uniformBuffer = this.uniformBuffer;\n\t\t\tif (uniformBuffer) {\n\t\t\t\tuniformBuffer.update(_dynamicBindGroup);\n\t\t\t\tdevice.setBindGroup(BINDGROUP_MESH_UB, _dynamicBindGroup.bindGroup, _dynamicBindGroup.offsets);\n\t\t\t} else {\n\t\t\t\tdevice.setBindGroup(BINDGROUP_MESH_UB, device.emptyBindGroup);\n\t\t\t}\n\t\t}\n\t\tdevice.draw(_quadPrimitive2, device.quadIndexBuffer, numInstances);\n\t\tif (viewport) {\n\t\t\tdevice.setViewport(_tempViewport.x, _tempViewport.y, _tempViewport.z, _tempViewport.w);\n\t\t\tdevice.setScissor(_tempScissor.x, _tempScissor.y, _tempScissor.z, _tempScissor.w);\n\t\t}\n\t}\n};\n\nvar RenderPassQuad = class extends RenderPass {\n\tconstructor(device, quad, rect, scissorRect) {\n\t\tsuper(device);\n\t\tthis.quad = quad;\n\t\tthis.rect = rect;\n\t\tthis.scissorRect = scissorRect;\n\t}\n\texecute() {\n\t\tconst { device } = this;\n\t\tdevice.setDrawStates(device.blendState);\n\t\tthis.quad.render(this.rect, this.scissorRect);\n\t}\n};\n\nvar _tempRect = new Vec4();\nfunction drawQuadWithShader(device, target2, shader, rect, scissorRect) {\n\tconst useBlend = arguments[5];\n\tconst quad = new QuadRender(shader);\n\tif (!rect) {\n\t\trect = _tempRect;\n\t\trect.x = 0;\n\t\trect.y = 0;\n\t\trect.z = target2 ? target2.width : device.width;\n\t\trect.w = target2 ? target2.height : device.height;\n\t}\n\tconst renderPass = new RenderPassQuad(device, quad, rect, scissorRect);\n\trenderPass.init(target2);\n\trenderPass.colorOps.clear = false;\n\trenderPass.depthStencilOps.clearDepth = false;\n\tif (device.isWebGPU && target2 === null && device.samples > 1) {\n\t\trenderPass.colorOps.store = true;\n\t}\n\trenderPass.render();\n\tquad.destroy();\n}\n\nvar Batch = class {\n\t_aabb = new BoundingBox();\n\torigMeshInstances;\n\tmeshInstance = null;\n\tdynamic;\n\tbatchGroupId;\n\tconstructor(meshInstances, dynamic, batchGroupId) {\n\t\tthis.origMeshInstances = meshInstances;\n\t\tthis.dynamic = dynamic;\n\t\tthis.batchGroupId = batchGroupId;\n\t}\n\tdestroy(scene, layers) {\n\t\tif (this.meshInstance) {\n\t\t\tthis.removeFromLayers(scene, layers);\n\t\t\tthis.meshInstance.destroy();\n\t\t\tthis.meshInstance = null;\n\t\t}\n\t}\n\taddToLayers(scene, layers) {\n\t\tfor (let i2 = 0; i2 < layers.length; i2++) {\n\t\t\tconst layer = scene.layers.getLayerById(layers[i2]);\n\t\t\tif (layer) {\n\t\t\t\tlayer.addMeshInstances([this.meshInstance]);\n\t\t\t}\n\t\t}\n\t}\n\tremoveFromLayers(scene, layers) {\n\t\tfor (let i2 = 0; i2 < layers.length; i2++) {\n\t\t\tconst layer = scene.layers.getLayerById(layers[i2]);\n\t\t\tif (layer) {\n\t\t\t\tlayer.removeMeshInstances([this.meshInstance]);\n\t\t\t}\n\t\t}\n\t}\n\t// Updates bounding box for a batch\n\tupdateBoundingBox() {\n\t\tthis._aabb.copy(this.origMeshInstances[0].aabb);\n\t\tfor (let i2 = 1; i2 < this.origMeshInstances.length; i2++) {\n\t\t\tthis._aabb.add(this.origMeshInstances[i2].aabb);\n\t\t}\n\t\tthis.meshInstance.aabb = this._aabb;\n\t\tthis.meshInstance._aabbVer = 0;\n\t}\n\tget model() {\n\t\treturn void 0;\n\t}\n};\n\nvar BatchGroup = class {\n\t_ui = false;\n\t_sprite = false;\n\t_obj = {\n\t\tmodel: [],\n\t\telement: [],\n\t\tsprite: [],\n\t\trender: []\n\t};\n\tid;\n\tname;\n\tdynamic;\n\tmaxAabbSize;\n\tlayers;\n\tconstructor(id14, name, dynamic, maxAabbSize, layers = [LAYERID_WORLD]) {\n\t\tthis.id = id14;\n\t\tthis.name = name;\n\t\tthis.dynamic = dynamic;\n\t\tthis.maxAabbSize = maxAabbSize;\n\t\tthis.layers = layers;\n\t}\n\tstatic MODEL = \"model\";\n\tstatic ELEMENT = \"element\";\n\tstatic SPRITE = \"sprite\";\n\tstatic RENDER = \"render\";\n};\n\nvar _invMatrix = new Mat4();\nvar SkinInstance = class {\n\tbones;\n\tconstructor(skin) {\n\t\tthis._dirty = true;\n\t\tthis._rootBone = null;\n\t\tthis._skinUpdateIndex = -1;\n\t\tthis._updateBeforeCull = true;\n\t\tif (skin) {\n\t\t\tthis.initSkin(skin);\n\t\t}\n\t}\n\tset rootBone(rootBone) {\n\t\tthis._rootBone = rootBone;\n\t}\n\tget rootBone() {\n\t\treturn this._rootBone;\n\t}\n\tinit(device, numBones) {\n\t\tconst numPixels = numBones * 3;\n\t\tlet width = Math.ceil(Math.sqrt(numPixels));\n\t\twidth = math.roundUp(width, 3);\n\t\tconst height = Math.ceil(numPixels / width);\n\t\tthis.boneTexture = new Texture(device, {\n\t\t\twidth,\n\t\t\theight,\n\t\t\tformat: PIXELFORMAT_RGBA32F,\n\t\t\tmipmaps: false,\n\t\t\tminFilter: FILTER_NEAREST,\n\t\t\tmagFilter: FILTER_NEAREST,\n\t\t\tname: \"skin\"\n\t\t});\n\t\tthis.matrixPalette = this.boneTexture.lock({ mode: TEXTURELOCK_READ });\n\t\tthis.boneTexture.unlock();\n\t}\n\tdestroy() {\n\t\tif (this.boneTexture) {\n\t\t\tthis.boneTexture.destroy();\n\t\t\tthis.boneTexture = null;\n\t\t}\n\t}\n\tresolve(rootBone, entity) {\n\t\tthis.rootBone = rootBone;\n\t\tconst skin = this.skin;\n\t\tconst bones = [];\n\t\tfor (let j = 0; j < skin.boneNames.length; j++) {\n\t\t\tconst boneName = skin.boneNames[j];\n\t\t\tlet bone = rootBone.findByName(boneName);\n\t\t\tif (!bone) {\n\t\t\t\tbone = entity;\n\t\t\t}\n\t\t\tbones.push(bone);\n\t\t}\n\t\tthis.bones = bones;\n\t}\n\tinitSkin(skin) {\n\t\tthis.skin = skin;\n\t\tthis.bones = [];\n\t\tconst numBones = skin.inverseBindPose.length;\n\t\tthis.init(skin.device, numBones);\n\t\tthis.matrices = [];\n\t\tfor (let i2 = 0; i2 < numBones; i2++) {\n\t\t\tthis.matrices[i2] = new Mat4();\n\t\t}\n\t}\n\tuploadBones(device) {\n\t\tthis.boneTexture.upload();\n\t}\n\t_updateMatrices(rootNode, skinUpdateIndex) {\n\t\tif (this._skinUpdateIndex !== skinUpdateIndex) {\n\t\t\tthis._skinUpdateIndex = skinUpdateIndex;\n\t\t\t_invMatrix.copy(rootNode.getWorldTransform()).invert();\n\t\t\tfor (let i2 = this.bones.length - 1; i2 >= 0; i2--) {\n\t\t\t\tthis.matrices[i2].mulAffine2(_invMatrix, this.bones[i2].getWorldTransform());\n\t\t\t\tthis.matrices[i2].mulAffine2(this.matrices[i2], this.skin.inverseBindPose[i2]);\n\t\t\t}\n\t\t}\n\t}\n\tupdateMatrices(rootNode, skinUpdateIndex) {\n\t\tif (this._updateBeforeCull) {\n\t\t\tthis._updateMatrices(rootNode, skinUpdateIndex);\n\t\t}\n\t}\n\tupdateMatrixPalette(rootNode, skinUpdateIndex) {\n\t\tthis._updateMatrices(rootNode, skinUpdateIndex);\n\t\tconst mp = this.matrixPalette;\n\t\tconst count = this.bones.length;\n\t\tfor (let i2 = 0; i2 < count; i2++) {\n\t\t\tconst pe = this.matrices[i2].data;\n\t\t\tconst base = i2 * 12;\n\t\t\tmp[base] = pe[0];\n\t\t\tmp[base + 1] = pe[4];\n\t\t\tmp[base + 2] = pe[8];\n\t\t\tmp[base + 3] = pe[12];\n\t\t\tmp[base + 4] = pe[1];\n\t\t\tmp[base + 5] = pe[5];\n\t\t\tmp[base + 6] = pe[9];\n\t\t\tmp[base + 7] = pe[13];\n\t\t\tmp[base + 8] = pe[2];\n\t\t\tmp[base + 9] = pe[6];\n\t\t\tmp[base + 10] = pe[10];\n\t\t\tmp[base + 11] = pe[14];\n\t\t}\n\t\tthis.uploadBones(this.skin.device);\n\t}\n};\n\nvar SkinBatchInstance = class extends SkinInstance {\n\tconstructor(device, nodes, rootNode) {\n\t\tsuper();\n\t\tconst numBones = nodes.length;\n\t\tthis.init(device, numBones);\n\t\tthis.device = device;\n\t\tthis.rootNode = rootNode;\n\t\tthis.bones = nodes;\n\t}\n\tupdateMatrices(rootNode, skinUpdateIndex) {\n\t}\n\tupdateMatrixPalette(rootNode, skinUpdateIndex) {\n\t\tconst mp = this.matrixPalette;\n\t\tconst count = this.bones.length;\n\t\tfor (let i2 = 0; i2 < count; i2++) {\n\t\t\tconst pe = this.bones[i2].getWorldTransform().data;\n\t\t\tconst base = i2 * 12;\n\t\t\tmp[base] = pe[0];\n\t\t\tmp[base + 1] = pe[4];\n\t\t\tmp[base + 2] = pe[8];\n\t\t\tmp[base + 3] = pe[12];\n\t\t\tmp[base + 4] = pe[1];\n\t\t\tmp[base + 5] = pe[5];\n\t\t\tmp[base + 6] = pe[9];\n\t\t\tmp[base + 7] = pe[13];\n\t\t\tmp[base + 8] = pe[2];\n\t\t\tmp[base + 9] = pe[6];\n\t\t\tmp[base + 10] = pe[10];\n\t\t\tmp[base + 11] = pe[14];\n\t\t}\n\t\tthis.uploadBones(this.device);\n\t}\n};\n\nvar id9 = 0;\nvar copyToTypedArray = (dst, src, numValues) => {\n\tif (ArrayBuffer.isView(src)) {\n\t\tdst.set(numValues === src.length ? src : src.subarray(0, numValues));\n\t} else {\n\t\tfor (let i2 = 0; i2 < numValues; i2++) {\n\t\t\tdst[i2] = src[i2];\n\t\t}\n\t}\n};\nvar GeometryData = class {\n\tconstructor() {\n\t\tthis.initDefaults();\n\t}\n\tinitDefaults() {\n\t\tthis.recreate = false;\n\t\tthis.verticesUsage = BUFFER_STATIC;\n\t\tthis.indicesUsage = BUFFER_STATIC;\n\t\tthis.maxVertices = 0;\n\t\tthis.maxIndices = 0;\n\t\tthis.vertexCount = 0;\n\t\tthis.indexCount = 0;\n\t\tthis.vertexStreamsUpdated = false;\n\t\tthis.indexStreamUpdated = false;\n\t\tthis.vertexStreamDictionary = {};\n\t\tthis.indices = null;\n\t}\n\t// function called when vertex stream is requested to be updated, and validates / updates currently used vertex count\n\t_changeVertexCount(count, semantic) {\n\t\tif (!this.vertexCount) {\n\t\t\tthis.vertexCount = count;\n\t\t} else {\n\t\t}\n\t}\n\t// default counts for vertex components\n\tstatic DEFAULT_COMPONENTS_POSITION = 3;\n\tstatic DEFAULT_COMPONENTS_NORMAL = 3;\n\tstatic DEFAULT_COMPONENTS_UV = 2;\n\tstatic DEFAULT_COMPONENTS_COLORS = 4;\n};\nvar GeometryVertexStream = class {\n\tconstructor(data2, componentCount, dataType, dataTypeNormalize, asInt) {\n\t\tthis.data = data2;\n\t\tthis.componentCount = componentCount;\n\t\tthis.dataType = dataType;\n\t\tthis.dataTypeNormalize = dataTypeNormalize;\n\t\tthis.asInt = asInt;\n\t}\n};\nvar Mesh = class _Mesh extends RefCountedObject {\n\tindexBuffer = [null];\n\tvertexBuffer = null;\n\tprimitive = [{\n\t\ttype: 0,\n\t\tbase: 0,\n\t\tbaseVertex: 0,\n\t\tcount: 0\n\t}];\n\tskin = null;\n\tboneAabb = null;\n\t_aabbVer = 0;\n\t_aabb = new BoundingBox();\n\t_geometryData = null;\n\t_morph = null;\n\t_storageIndex = false;\n\t_storageVertex = false;\n\tconstructor(graphicsDevice, options2) {\n\t\tsuper();\n\t\tthis.id = id9++;\n\t\tthis.device = graphicsDevice;\n\t\tthis._storageIndex = options2?.storageIndex || false;\n\t\tthis._storageVertex = options2?.storageVertex || false;\n\t}\n\tstatic fromGeometry(graphicsDevice, geometry, options2 = {}) {\n\t\tconst mesh = new _Mesh(graphicsDevice, options2);\n\t\tconst { positions, normals, tangents, colors, uvs, uvs1, blendIndices, blendWeights, indices } = geometry;\n\t\tif (positions) {\n\t\t\tmesh.setPositions(positions);\n\t\t}\n\t\tif (normals) {\n\t\t\tmesh.setNormals(normals);\n\t\t}\n\t\tif (tangents) {\n\t\t\tmesh.setVertexStream(SEMANTIC_TANGENT, tangents, 4);\n\t\t}\n\t\tif (colors) {\n\t\t\tmesh.setColors32(colors);\n\t\t}\n\t\tif (uvs) {\n\t\t\tmesh.setUvs(0, uvs);\n\t\t}\n\t\tif (uvs1) {\n\t\t\tmesh.setUvs(1, uvs1);\n\t\t}\n\t\tif (blendIndices) {\n\t\t\tmesh.setVertexStream(SEMANTIC_BLENDINDICES, blendIndices, 4, blendIndices.length / 4, TYPE_UINT8);\n\t\t}\n\t\tif (blendWeights) {\n\t\t\tmesh.setVertexStream(SEMANTIC_BLENDWEIGHT, blendWeights, 4);\n\t\t}\n\t\tif (indices) {\n\t\t\tmesh.setIndices(indices);\n\t\t}\n\t\tmesh.update();\n\t\treturn mesh;\n\t}\n\tset morph(morph) {\n\t\tif (morph !== this._morph) {\n\t\t\tif (this._morph) {\n\t\t\t\tthis._morph.decRefCount();\n\t\t\t}\n\t\t\tthis._morph = morph;\n\t\t\tif (morph) {\n\t\t\t\tmorph.incRefCount();\n\t\t\t}\n\t\t}\n\t}\n\tget morph() {\n\t\treturn this._morph;\n\t}\n\tset aabb(aabb3) {\n\t\tthis._aabb = aabb3;\n\t\tthis._aabbVer++;\n\t}\n\tget aabb() {\n\t\treturn this._aabb;\n\t}\n\tdestroy() {\n\t\tconst morph = this.morph;\n\t\tif (morph) {\n\t\t\tthis.morph = null;\n\t\t\tif (morph.refCount < 1) {\n\t\t\t\tmorph.destroy();\n\t\t\t}\n\t\t}\n\t\tif (this.vertexBuffer) {\n\t\t\tthis.vertexBuffer.destroy();\n\t\t\tthis.vertexBuffer = null;\n\t\t}\n\t\tfor (let j = 0; j < this.indexBuffer.length; j++) {\n\t\t\tthis._destroyIndexBuffer(j);\n\t\t}\n\t\tthis.indexBuffer.length = 0;\n\t\tthis._geometryData = null;\n\t}\n\t_destroyIndexBuffer(index) {\n\t\tif (this.indexBuffer[index]) {\n\t\t\tthis.indexBuffer[index].destroy();\n\t\t\tthis.indexBuffer[index] = null;\n\t\t}\n\t}\n\t// initializes local bounding boxes for each bone based on vertices affected by the bone\n\t// if morph targets are provided, it also adjusts local bone bounding boxes by maximum morph displacement\n\t_initBoneAabbs(morphTargets) {\n\t\tthis.boneAabb = [];\n\t\tthis.boneUsed = [];\n\t\tlet x3, y2, z2;\n\t\tlet bMax2, bMin2;\n\t\tconst boneMin = [];\n\t\tconst boneMax = [];\n\t\tconst boneUsed = this.boneUsed;\n\t\tconst numBones = this.skin.boneNames.length;\n\t\tlet maxMorphX, maxMorphY, maxMorphZ;\n\t\tfor (let i2 = 0; i2 < numBones; i2++) {\n\t\t\tboneMin[i2] = new Vec3(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE);\n\t\t\tboneMax[i2] = new Vec3(-Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE);\n\t\t}\n\t\tconst iterator = new VertexIterator(this.vertexBuffer);\n\t\tconst posElement = iterator.element[SEMANTIC_POSITION];\n\t\tconst weightsElement = iterator.element[SEMANTIC_BLENDWEIGHT];\n\t\tconst indicesElement = iterator.element[SEMANTIC_BLENDINDICES];\n\t\tconst numVerts = this.vertexBuffer.numVertices;\n\t\tfor (let j = 0; j < numVerts; j++) {\n\t\t\tfor (let k = 0; k < 4; k++) {\n\t\t\t\tconst boneWeight = weightsElement.array[weightsElement.index + k];\n\t\t\t\tif (boneWeight > 0) {\n\t\t\t\t\tconst boneIndex = indicesElement.array[indicesElement.index + k];\n\t\t\t\t\tboneUsed[boneIndex] = true;\n\t\t\t\t\tx3 = posElement.array[posElement.index];\n\t\t\t\t\ty2 = posElement.array[posElement.index + 1];\n\t\t\t\t\tz2 = posElement.array[posElement.index + 2];\n\t\t\t\t\tbMax2 = boneMax[boneIndex];\n\t\t\t\t\tbMin2 = boneMin[boneIndex];\n\t\t\t\t\tif (bMin2.x > x3) bMin2.x = x3;\n\t\t\t\t\tif (bMin2.y > y2) bMin2.y = y2;\n\t\t\t\t\tif (bMin2.z > z2) bMin2.z = z2;\n\t\t\t\t\tif (bMax2.x < x3) bMax2.x = x3;\n\t\t\t\t\tif (bMax2.y < y2) bMax2.y = y2;\n\t\t\t\t\tif (bMax2.z < z2) bMax2.z = z2;\n\t\t\t\t\tif (morphTargets) {\n\t\t\t\t\t\tlet minMorphX = maxMorphX = x3;\n\t\t\t\t\t\tlet minMorphY = maxMorphY = y2;\n\t\t\t\t\t\tlet minMorphZ = maxMorphZ = z2;\n\t\t\t\t\t\tfor (let l = 0; l < morphTargets.length; l++) {\n\t\t\t\t\t\t\tconst target2 = morphTargets[l];\n\t\t\t\t\t\t\tconst dx = target2.deltaPositions[j * 3];\n\t\t\t\t\t\t\tconst dy = target2.deltaPositions[j * 3 + 1];\n\t\t\t\t\t\t\tconst dz = target2.deltaPositions[j * 3 + 2];\n\t\t\t\t\t\t\tif (dx < 0) {\n\t\t\t\t\t\t\t\tminMorphX += dx;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tmaxMorphX += dx;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (dy < 0) {\n\t\t\t\t\t\t\t\tminMorphY += dy;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tmaxMorphY += dy;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (dz < 0) {\n\t\t\t\t\t\t\t\tminMorphZ += dz;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tmaxMorphZ += dz;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (bMin2.x > minMorphX) bMin2.x = minMorphX;\n\t\t\t\t\t\tif (bMin2.y > minMorphY) bMin2.y = minMorphY;\n\t\t\t\t\t\tif (bMin2.z > minMorphZ) bMin2.z = minMorphZ;\n\t\t\t\t\t\tif (bMax2.x < maxMorphX) bMax2.x = maxMorphX;\n\t\t\t\t\t\tif (bMax2.y < maxMorphY) bMax2.y = maxMorphY;\n\t\t\t\t\t\tif (bMax2.z < maxMorphZ) bMax2.z = maxMorphZ;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\titerator.next();\n\t\t}\n\t\tconst positionElement = this.vertexBuffer.getFormat().elements.find((e) => e.name === SEMANTIC_POSITION);\n\t\tif (positionElement && positionElement.normalize) {\n\t\t\tconst func = (() => {\n\t\t\t\tswitch (positionElement.dataType) {\n\t\t\t\t\tcase TYPE_INT8:\n\t\t\t\t\t\treturn (x4) => Math.max(x4 / 127, -1);\n\t\t\t\t\tcase TYPE_UINT8:\n\t\t\t\t\t\treturn (x4) => x4 / 255;\n\t\t\t\t\tcase TYPE_INT16:\n\t\t\t\t\t\treturn (x4) => Math.max(x4 / 32767, -1);\n\t\t\t\t\tcase TYPE_UINT16:\n\t\t\t\t\t\treturn (x4) => x4 / 65535;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn (x4) => x4;\n\t\t\t\t}\n\t\t\t})();\n\t\t\tfor (let i2 = 0; i2 < numBones; i2++) {\n\t\t\t\tif (boneUsed[i2]) {\n\t\t\t\t\tconst min = boneMin[i2];\n\t\t\t\t\tconst max = boneMax[i2];\n\t\t\t\t\tmin.set(func(min.x), func(min.y), func(min.z));\n\t\t\t\t\tmax.set(func(max.x), func(max.y), func(max.z));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor (let i2 = 0; i2 < numBones; i2++) {\n\t\t\tconst aabb3 = new BoundingBox();\n\t\t\taabb3.setMinMax(boneMin[i2], boneMax[i2]);\n\t\t\tthis.boneAabb.push(aabb3);\n\t\t}\n\t}\n\t// when mesh API to modify vertex / index data are used, this allocates structure to store the data\n\t_initGeometryData() {\n\t\tif (!this._geometryData) {\n\t\t\tthis._geometryData = new GeometryData();\n\t\t\tif (this.vertexBuffer) {\n\t\t\t\tthis._geometryData.vertexCount = this.vertexBuffer.numVertices;\n\t\t\t\tthis._geometryData.maxVertices = this.vertexBuffer.numVertices;\n\t\t\t}\n\t\t\tif (this.indexBuffer.length > 0 && this.indexBuffer[0]) {\n\t\t\t\tthis._geometryData.indexCount = this.indexBuffer[0].numIndices;\n\t\t\t\tthis._geometryData.maxIndices = this.indexBuffer[0].numIndices;\n\t\t\t}\n\t\t}\n\t}\n\tclear(verticesDynamic, indicesDynamic, maxVertices = 0, maxIndices = 0) {\n\t\tthis._initGeometryData();\n\t\tthis._geometryData.initDefaults();\n\t\tthis._geometryData.recreate = true;\n\t\tthis._geometryData.maxVertices = maxVertices;\n\t\tthis._geometryData.maxIndices = maxIndices;\n\t\tthis._geometryData.verticesUsage = verticesDynamic ? BUFFER_DYNAMIC : BUFFER_STATIC;\n\t\tthis._geometryData.indicesUsage = indicesDynamic ? BUFFER_DYNAMIC : BUFFER_STATIC;\n\t}\n\tsetVertexStream(semantic, data2, componentCount, numVertices, dataType = TYPE_FLOAT32, dataTypeNormalize = false, asInt = false) {\n\t\tthis._initGeometryData();\n\t\tconst vertexCount = numVertices || data2.length / componentCount;\n\t\tthis._geometryData._changeVertexCount(vertexCount, semantic);\n\t\tthis._geometryData.vertexStreamsUpdated = true;\n\t\tthis._geometryData.vertexStreamDictionary[semantic] = new GeometryVertexStream(\n\t\t\tdata2,\n\t\t\tcomponentCount,\n\t\t\tdataType,\n\t\t\tdataTypeNormalize,\n\t\t\tasInt\n\t\t);\n\t}\n\tgetVertexStream(semantic, data2) {\n\t\tlet count = 0;\n\t\tlet done = false;\n\t\tif (this._geometryData) {\n\t\t\tconst stream = this._geometryData.vertexStreamDictionary[semantic];\n\t\t\tif (stream) {\n\t\t\t\tdone = true;\n\t\t\t\tcount = this._geometryData.vertexCount;\n\t\t\t\tconst copyCount = count * stream.componentCount;\n\t\t\t\tif (ArrayBuffer.isView(data2)) {\n\t\t\t\t\tcopyToTypedArray(data2, stream.data, Math.min(data2.length, copyCount));\n\t\t\t\t} else {\n\t\t\t\t\tdata2.length = 0;\n\t\t\t\t\tfor (let i2 = 0; i2 < copyCount; i2++) {\n\t\t\t\t\t\tdata2[i2] = stream.data[i2];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (!done) {\n\t\t\tif (this.vertexBuffer) {\n\t\t\t\tconst iterator = new VertexIterator(this.vertexBuffer);\n\t\t\t\tcount = iterator.readData(semantic, data2);\n\t\t\t}\n\t\t}\n\t\treturn count;\n\t}\n\tsetPositions(positions, componentCount = GeometryData.DEFAULT_COMPONENTS_POSITION, numVertices) {\n\t\tthis.setVertexStream(SEMANTIC_POSITION, positions, componentCount, numVertices, TYPE_FLOAT32, false);\n\t}\n\tsetNormals(normals, componentCount = GeometryData.DEFAULT_COMPONENTS_NORMAL, numVertices) {\n\t\tthis.setVertexStream(SEMANTIC_NORMAL, normals, componentCount, numVertices, TYPE_FLOAT32, false);\n\t}\n\tsetUvs(channel, uvs, componentCount = GeometryData.DEFAULT_COMPONENTS_UV, numVertices) {\n\t\tthis.setVertexStream(SEMANTIC_TEXCOORD + channel, uvs, componentCount, numVertices, TYPE_FLOAT32, false);\n\t}\n\tsetColors(colors, componentCount = GeometryData.DEFAULT_COMPONENTS_COLORS, numVertices) {\n\t\tthis.setVertexStream(SEMANTIC_COLOR, colors, componentCount, numVertices, TYPE_FLOAT32, false);\n\t}\n\tsetColors32(colors, numVertices) {\n\t\tthis.setVertexStream(SEMANTIC_COLOR, colors, GeometryData.DEFAULT_COMPONENTS_COLORS, numVertices, TYPE_UINT8, true);\n\t}\n\tsetIndices(indices, numIndices) {\n\t\tthis._initGeometryData();\n\t\tthis._geometryData.indexStreamUpdated = true;\n\t\tthis._geometryData.indices = indices;\n\t\tthis._geometryData.indexCount = numIndices || indices.length;\n\t}\n\tgetPositions(positions) {\n\t\treturn this.getVertexStream(SEMANTIC_POSITION, positions);\n\t}\n\tgetNormals(normals) {\n\t\treturn this.getVertexStream(SEMANTIC_NORMAL, normals);\n\t}\n\tgetUvs(channel, uvs) {\n\t\treturn this.getVertexStream(SEMANTIC_TEXCOORD + channel, uvs);\n\t}\n\tgetColors(colors) {\n\t\treturn this.getVertexStream(SEMANTIC_COLOR, colors);\n\t}\n\tgetIndices(indices) {\n\t\tlet count = 0;\n\t\tif (this._geometryData && this._geometryData.indices) {\n\t\t\tconst streamIndices = this._geometryData.indices;\n\t\t\tcount = this._geometryData.indexCount;\n\t\t\tif (ArrayBuffer.isView(indices)) {\n\t\t\t\tcopyToTypedArray(indices, streamIndices, Math.min(indices.length, count));\n\t\t\t} else {\n\t\t\t\tindices.length = 0;\n\t\t\t\tfor (let i2 = 0; i2 < count; i2++) {\n\t\t\t\t\tindices[i2] = streamIndices[i2];\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif (this.indexBuffer.length > 0 && this.indexBuffer[0]) {\n\t\t\t\tconst indexBuffer = this.indexBuffer[0];\n\t\t\t\tcount = indexBuffer.readData(indices);\n\t\t\t}\n\t\t}\n\t\treturn count;\n\t}\n\tupdate(primitiveType = PRIMITIVE_TRIANGLES, updateBoundingBox = true) {\n\t\tif (this._geometryData) {\n\t\t\tif (updateBoundingBox) {\n\t\t\t\tconst stream = this._geometryData.vertexStreamDictionary[SEMANTIC_POSITION];\n\t\t\t\tif (stream) {\n\t\t\t\t\tif (stream.componentCount === 3) {\n\t\t\t\t\t\tthis._aabb.compute(stream.data, this._geometryData.vertexCount);\n\t\t\t\t\t\tthis._aabbVer++;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tlet destroyVB = this._geometryData.recreate;\n\t\t\tif (this._geometryData.vertexCount > this._geometryData.maxVertices) {\n\t\t\t\tdestroyVB = true;\n\t\t\t\tthis._geometryData.maxVertices = this._geometryData.vertexCount;\n\t\t\t}\n\t\t\tif (destroyVB) {\n\t\t\t\tif (this.vertexBuffer) {\n\t\t\t\t\tthis.vertexBuffer.destroy();\n\t\t\t\t\tthis.vertexBuffer = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\tlet destroyIB = this._geometryData.recreate;\n\t\t\tif (this._geometryData.indexCount > this._geometryData.maxIndices) {\n\t\t\t\tdestroyIB = true;\n\t\t\t\tthis._geometryData.maxIndices = this._geometryData.indexCount;\n\t\t\t}\n\t\t\tif (destroyIB) {\n\t\t\t\tif (this.indexBuffer.length > 0 && this.indexBuffer[0]) {\n\t\t\t\t\tthis.indexBuffer[0].destroy();\n\t\t\t\t\tthis.indexBuffer[0] = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (this._geometryData.vertexStreamsUpdated) {\n\t\t\t\tthis._updateVertexBuffer();\n\t\t\t}\n\t\t\tif (this._geometryData.indexStreamUpdated) {\n\t\t\t\tthis._updateIndexBuffer();\n\t\t\t}\n\t\t\tthis.primitive[0].type = primitiveType;\n\t\t\tif (this.indexBuffer.length > 0 && this.indexBuffer[0]) {\n\t\t\t\tif (this._geometryData.indexStreamUpdated) {\n\t\t\t\t\tthis.primitive[0].count = this._geometryData.indexCount;\n\t\t\t\t\tthis.primitive[0].indexed = true;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (this._geometryData.vertexStreamsUpdated) {\n\t\t\t\t\tthis.primitive[0].count = this._geometryData.vertexCount;\n\t\t\t\t\tthis.primitive[0].indexed = false;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._geometryData.vertexCount = 0;\n\t\t\tthis._geometryData.indexCount = 0;\n\t\t\tthis._geometryData.vertexStreamsUpdated = false;\n\t\t\tthis._geometryData.indexStreamUpdated = false;\n\t\t\tthis._geometryData.recreate = false;\n\t\t\tthis.updateRenderStates();\n\t\t}\n\t}\n\t// builds vertex format based on attached vertex streams\n\t_buildVertexFormat(vertexCount) {\n\t\tconst vertexDesc = [];\n\t\tfor (const semantic in this._geometryData.vertexStreamDictionary) {\n\t\t\tconst stream = this._geometryData.vertexStreamDictionary[semantic];\n\t\t\tvertexDesc.push({\n\t\t\t\tsemantic,\n\t\t\t\tcomponents: stream.componentCount,\n\t\t\t\ttype: stream.dataType,\n\t\t\t\tnormalize: stream.dataTypeNormalize,\n\t\t\t\tasInt: stream.asInt\n\t\t\t});\n\t\t}\n\t\treturn new VertexFormat(this.device, vertexDesc, vertexCount);\n\t}\n\t// copy attached data into vertex buffer\n\t_updateVertexBuffer() {\n\t\tif (!this.vertexBuffer) {\n\t\t\tconst allocateVertexCount = this._geometryData.maxVertices;\n\t\t\tconst format = this._buildVertexFormat(allocateVertexCount);\n\t\t\tthis.vertexBuffer = new VertexBuffer(this.device, format, allocateVertexCount, {\n\t\t\t\tusage: this._geometryData.verticesUsage,\n\t\t\t\tstorage: this._storageVertex\n\t\t\t});\n\t\t}\n\t\tconst iterator = new VertexIterator(this.vertexBuffer);\n\t\tconst numVertices = this._geometryData.vertexCount;\n\t\tfor (const semantic in this._geometryData.vertexStreamDictionary) {\n\t\t\tconst stream = this._geometryData.vertexStreamDictionary[semantic];\n\t\t\titerator.writeData(semantic, stream.data, numVertices);\n\t\t\tdelete this._geometryData.vertexStreamDictionary[semantic];\n\t\t}\n\t\titerator.end();\n\t}\n\t// copy attached data into index buffer\n\t_updateIndexBuffer() {\n\t\tif (this.indexBuffer.length <= 0 || !this.indexBuffer[0]) {\n\t\t\tconst maxVertices = this._geometryData.maxVertices;\n\t\t\tconst createFormat = maxVertices > 65535 || maxVertices === 0 ? INDEXFORMAT_UINT32 : INDEXFORMAT_UINT16;\n\t\t\tconst options2 = this._storageIndex ? { storage: true } : void 0;\n\t\t\tthis.indexBuffer[0] = new IndexBuffer(this.device, createFormat, this._geometryData.maxIndices, this._geometryData.indicesUsage, void 0, options2);\n\t\t}\n\t\tconst srcIndices = this._geometryData.indices;\n\t\tif (srcIndices) {\n\t\t\tconst indexBuffer = this.indexBuffer[0];\n\t\t\tindexBuffer.writeData(srcIndices, this._geometryData.indexCount);\n\t\t\tthis._geometryData.indices = null;\n\t\t}\n\t}\n\t// prepares the mesh to be rendered with specific render style\n\tprepareRenderState(renderStyle) {\n\t\tif (renderStyle === RENDERSTYLE_WIREFRAME) {\n\t\t\tthis.generateWireframe();\n\t\t} else if (renderStyle === RENDERSTYLE_POINTS) {\n\t\t\tthis.primitive[RENDERSTYLE_POINTS] = {\n\t\t\t\ttype: PRIMITIVE_POINTS,\n\t\t\t\tbase: 0,\n\t\t\t\tbaseVertex: 0,\n\t\t\t\tcount: this.vertexBuffer ? this.vertexBuffer.numVertices : 0,\n\t\t\t\tindexed: false\n\t\t\t};\n\t\t}\n\t}\n\t// updates existing render states with changes to solid render state\n\tupdateRenderStates() {\n\t\tif (this.primitive[RENDERSTYLE_POINTS]) {\n\t\t\tthis.prepareRenderState(RENDERSTYLE_POINTS);\n\t\t}\n\t\tif (this.primitive[RENDERSTYLE_WIREFRAME]) {\n\t\t\tthis.prepareRenderState(RENDERSTYLE_WIREFRAME);\n\t\t}\n\t}\n\tgenerateWireframe() {\n\t\tthis._destroyIndexBuffer(RENDERSTYLE_WIREFRAME);\n\t\tconst numVertices = this.vertexBuffer.numVertices;\n\t\tlet lines;\n\t\tlet format;\n\t\tif (this.indexBuffer.length > 0 && this.indexBuffer[0]) {\n\t\t\tconst offsets = [[0, 1], [1, 2], [2, 0]];\n\t\t\tconst base = this.primitive[RENDERSTYLE_SOLID].base;\n\t\t\tconst count = this.primitive[RENDERSTYLE_SOLID].count;\n\t\t\tconst baseVertex = this.primitive[RENDERSTYLE_SOLID].baseVertex || 0;\n\t\t\tconst indexBuffer = this.indexBuffer[RENDERSTYLE_SOLID];\n\t\t\tconst indicesArrayType = typedArrayIndexFormats[indexBuffer.format];\n\t\t\tconst srcIndices = new indicesArrayType(indexBuffer.storage);\n\t\t\tconst tmpIndices = new indicesArrayType(count * 2);\n\t\t\tconst seen = /* @__PURE__ */ new Set();\n\t\t\tlet len = 0;\n\t\t\tfor (let j = base; j < base + count; j += 3) {\n\t\t\t\tfor (let k = 0; k < 3; k++) {\n\t\t\t\t\tconst i1 = srcIndices[j + offsets[k][0]] + baseVertex;\n\t\t\t\t\tconst i2 = srcIndices[j + offsets[k][1]] + baseVertex;\n\t\t\t\t\tconst hash = i1 > i2 ? i2 * numVertices + i1 : i1 * numVertices + i2;\n\t\t\t\t\tif (!seen.has(hash)) {\n\t\t\t\t\t\tseen.add(hash);\n\t\t\t\t\t\ttmpIndices[len++] = i1;\n\t\t\t\t\t\ttmpIndices[len++] = i2;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tseen.clear();\n\t\t\tformat = indexBuffer.format;\n\t\t\tlines = tmpIndices.slice(0, len);\n\t\t} else {\n\t\t\tconst safeNumVertices = numVertices - numVertices % 3;\n\t\t\tconst count = safeNumVertices / 3 * 6;\n\t\t\tformat = count > 65535 ? INDEXFORMAT_UINT32 : INDEXFORMAT_UINT16;\n\t\t\tlines = count > 65535 ? new Uint32Array(count) : new Uint16Array(count);\n\t\t\tlet idx = 0;\n\t\t\tfor (let i2 = 0; i2 < safeNumVertices; i2 += 3) {\n\t\t\t\tlines[idx++] = i2;\n\t\t\t\tlines[idx++] = i2 + 1;\n\t\t\t\tlines[idx++] = i2 + 1;\n\t\t\t\tlines[idx++] = i2 + 2;\n\t\t\t\tlines[idx++] = i2 + 2;\n\t\t\t\tlines[idx++] = i2;\n\t\t\t}\n\t\t}\n\t\tconst wireBuffer = new IndexBuffer(this.vertexBuffer.device, format, lines.length, BUFFER_STATIC, lines.buffer);\n\t\tthis.primitive[RENDERSTYLE_WIREFRAME] = {\n\t\t\ttype: PRIMITIVE_LINES,\n\t\t\tbase: 0,\n\t\t\tbaseVertex: 0,\n\t\t\tcount: lines.length,\n\t\t\tindexed: true\n\t\t};\n\t\tthis.indexBuffer[RENDERSTYLE_WIREFRAME] = wireBuffer;\n\t}\n};\n\nvar scaleCompensatePosTransform = new Mat4();\nvar scaleCompensatePos = new Vec3();\nvar scaleCompensateRot = new Quat();\nvar scaleCompensateRot2 = new Quat();\nvar scaleCompensateScale = new Vec3();\nvar scaleCompensateScaleForParent = new Vec3();\nvar tmpMat42 = new Mat4();\nvar tmpQuat = new Quat();\nvar position = new Vec3();\nvar invParentWtm = new Mat4();\nvar rotation = new Quat();\nvar invParentRot = new Quat();\nvar matrix = new Mat4();\nvar target = new Vec3();\nvar up = new Vec3();\nfunction createTest(attr, value) {\n\tif (attr instanceof Function) {\n\t\treturn attr;\n\t}\n\treturn (node) => {\n\t\tlet x3 = node[attr];\n\t\tif (x3 instanceof Function) {\n\t\t\tx3 = x3();\n\t\t}\n\t\treturn x3 === value;\n\t};\n}\nfunction findNode(node, test) {\n\tif (test(node)) {\n\t\treturn node;\n\t}\n\tconst children = node._children;\n\tconst len = children.length;\n\tfor (let i2 = 0; i2 < len; ++i2) {\n\t\tconst result = findNode(children[i2], test);\n\t\tif (result) {\n\t\t\treturn result;\n\t\t}\n\t}\n\treturn null;\n}\nvar GraphNode = class extends EventHandler {\n\tname;\n\ttags = new Tags(this);\n\t// Local space properties of transform (only first 3 are settable by the user)\n\tlocalPosition = new Vec3();\n\tlocalRotation = new Quat();\n\tlocalScale = new Vec3(1, 1, 1);\n\tlocalEulerAngles = new Vec3();\n\t// Only calculated on request\n\t// World space properties of transform\n\tposition = new Vec3();\n\trotation = new Quat();\n\teulerAngles = new Vec3();\n\t_scale = null;\n\tlocalTransform = new Mat4();\n\t_dirtyLocal = false;\n\t_aabbVer = 0;\n\t_frozen = false;\n\tworldTransform = new Mat4();\n\t_dirtyWorld = false;\n\t_worldScaleSign = 0;\n\t_normalMatrix = new Mat3();\n\t_dirtyNormal = true;\n\t_right = null;\n\t_up = null;\n\t_forward = null;\n\t_parent = null;\n\t_children = [];\n\t_graphDepth = 0;\n\t_enabled = true;\n\t_enabledInHierarchy = false;\n\tscaleCompensation = false;\n\tconstructor(name = \"Untitled\") {\n\t\tsuper();\n\t\tthis.name = name;\n\t}\n\tget right() {\n\t\tif (!this._right) {\n\t\t\tthis._right = new Vec3();\n\t\t}\n\t\treturn this.getWorldTransform().getX(this._right).normalize();\n\t}\n\tget up() {\n\t\tif (!this._up) {\n\t\t\tthis._up = new Vec3();\n\t\t}\n\t\treturn this.getWorldTransform().getY(this._up).normalize();\n\t}\n\tget forward() {\n\t\tif (!this._forward) {\n\t\t\tthis._forward = new Vec3();\n\t\t}\n\t\treturn this.getWorldTransform().getZ(this._forward).normalize().mulScalar(-1);\n\t}\n\tget normalMatrix() {\n\t\tconst normalMat = this._normalMatrix;\n\t\tif (this._dirtyNormal) {\n\t\t\tnormalMat.invertMat4(this.getWorldTransform()).transpose();\n\t\t\tthis._dirtyNormal = false;\n\t\t}\n\t\treturn normalMat;\n\t}\n\tset enabled(enabled) {\n\t\tif (this._enabled !== enabled) {\n\t\t\tthis._enabled = enabled;\n\t\t\tif (enabled && this._parent?.enabled || !enabled) {\n\t\t\t\tthis._notifyHierarchyStateChanged(this, enabled);\n\t\t\t}\n\t\t}\n\t}\n\tget enabled() {\n\t\treturn this._enabled && this._enabledInHierarchy;\n\t}\n\tget parent() {\n\t\treturn this._parent;\n\t}\n\tget path() {\n\t\tlet node = this._parent;\n\t\tif (!node) {\n\t\t\treturn \"\";\n\t\t}\n\t\tlet result = this.name;\n\t\twhile (node && node._parent) {\n\t\t\tresult = `${node.name}/${result}`;\n\t\t\tnode = node._parent;\n\t\t}\n\t\treturn result;\n\t}\n\tget root() {\n\t\tlet result = this;\n\t\twhile (result._parent) {\n\t\t\tresult = result._parent;\n\t\t}\n\t\treturn result;\n\t}\n\tget children() {\n\t\treturn this._children;\n\t}\n\t// ---- deprecated block start ----\n\tgetChildren() {\n\t\treturn this.children;\n\t}\n\tgetName() {\n\t\treturn this.name;\n\t}\n\tgetPath() {\n\t\treturn this.path;\n\t}\n\tgetRoot() {\n\t\treturn this.root;\n\t}\n\tgetParent() {\n\t\treturn this.parent;\n\t}\n\tsetName(name) {\n\t\tthis.name = name;\n\t}\n\t// ---- deprecated block end ----\n\tget graphDepth() {\n\t\treturn this._graphDepth;\n\t}\n\t_notifyHierarchyStateChanged(node, enabled) {\n\t\tnode._onHierarchyStateChanged(enabled);\n\t\tconst c2 = node._children;\n\t\tfor (let i2 = 0, len = c2.length; i2 < len; i2++) {\n\t\t\tif (c2[i2]._enabled) {\n\t\t\t\tthis._notifyHierarchyStateChanged(c2[i2], enabled);\n\t\t\t}\n\t\t}\n\t}\n\t_onHierarchyStateChanged(enabled) {\n\t\tthis._enabledInHierarchy = enabled;\n\t\tif (enabled && !this._frozen) {\n\t\t\tthis._unfreezeParentToRoot();\n\t\t}\n\t}\n\t_cloneInternal(clone) {\n\t\tclone.name = this.name;\n\t\tconst tags = this.tags._list;\n\t\tclone.tags.clear();\n\t\tfor (let i2 = 0; i2 < tags.length; i2++) {\n\t\t\tclone.tags.add(tags[i2]);\n\t\t}\n\t\tclone.localPosition.copy(this.localPosition);\n\t\tclone.localRotation.copy(this.localRotation);\n\t\tclone.localScale.copy(this.localScale);\n\t\tclone.localEulerAngles.copy(this.localEulerAngles);\n\t\tclone.position.copy(this.position);\n\t\tclone.rotation.copy(this.rotation);\n\t\tclone.eulerAngles.copy(this.eulerAngles);\n\t\tclone.localTransform.copy(this.localTransform);\n\t\tclone._dirtyLocal = this._dirtyLocal;\n\t\tclone.worldTransform.copy(this.worldTransform);\n\t\tclone._dirtyWorld = this._dirtyWorld;\n\t\tclone._dirtyNormal = this._dirtyNormal;\n\t\tclone._aabbVer = this._aabbVer + 1;\n\t\tclone._enabled = this._enabled;\n\t\tclone.scaleCompensation = this.scaleCompensation;\n\t\tclone._enabledInHierarchy = false;\n\t}\n\tclone() {\n\t\tconst clone = new this.constructor();\n\t\tthis._cloneInternal(clone);\n\t\treturn clone;\n\t}\n\tcopy(source) {\n\t\tsource._cloneInternal(this);\n\t\treturn this;\n\t}\n\tdestroy() {\n\t\tthis.remove();\n\t\tconst children = this._children;\n\t\twhile (children.length) {\n\t\t\tconst child = children.pop();\n\t\t\tchild._parent = null;\n\t\t\tchild.destroy();\n\t\t}\n\t\tthis.fire(\"destroy\", this);\n\t\tthis.off();\n\t}\n\tfind(attr, value) {\n\t\tconst results = [];\n\t\tconst test = createTest(attr, value);\n\t\tthis.forEach((node) => {\n\t\t\tif (test(node)) {\n\t\t\t\tresults.push(node);\n\t\t\t}\n\t\t});\n\t\treturn results;\n\t}\n\tfindOne(attr, value) {\n\t\tconst test = createTest(attr, value);\n\t\treturn findNode(this, test);\n\t}\n\tfindByTag(...query) {\n\t\tconst results = [];\n\t\tconst queryNode = (node, checkNode) => {\n\t\t\tif (checkNode && node.tags.has(...query)) {\n\t\t\t\tresults.push(node);\n\t\t\t}\n\t\t\tfor (let i2 = 0; i2 < node._children.length; i2++) {\n\t\t\t\tqueryNode(node._children[i2], true);\n\t\t\t}\n\t\t};\n\t\tqueryNode(this, false);\n\t\treturn results;\n\t}\n\tfindByName(name) {\n\t\treturn this.findOne(\"name\", name);\n\t}\n\tfindByPath(path2) {\n\t\tconst parts = Array.isArray(path2) ? path2 : path2.split(\"/\");\n\t\tlet result = this;\n\t\tfor (let i2 = 0, imax = parts.length; i2 < imax; ++i2) {\n\t\t\tresult = result.children.find((c2) => c2.name === parts[i2]);\n\t\t\tif (!result) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\tforEach(callback, thisArg) {\n\t\tcallback.call(thisArg, this);\n\t\tconst children = this._children;\n\t\tconst len = children.length;\n\t\tfor (let i2 = 0; i2 < len; ++i2) {\n\t\t\tchildren[i2].forEach(callback, thisArg);\n\t\t}\n\t}\n\tisDescendantOf(node) {\n\t\tlet parent = this._parent;\n\t\twhile (parent) {\n\t\t\tif (parent === node) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tparent = parent._parent;\n\t\t}\n\t\treturn false;\n\t}\n\tisAncestorOf(node) {\n\t\treturn node.isDescendantOf(this);\n\t}\n\tgetEulerAngles() {\n\t\tthis.getWorldTransform().getEulerAngles(this.eulerAngles);\n\t\treturn this.eulerAngles;\n\t}\n\tgetLocalEulerAngles() {\n\t\tthis.localRotation.getEulerAngles(this.localEulerAngles);\n\t\treturn this.localEulerAngles;\n\t}\n\tgetLocalPosition() {\n\t\treturn this.localPosition;\n\t}\n\tgetLocalRotation() {\n\t\treturn this.localRotation;\n\t}\n\tgetLocalScale() {\n\t\treturn this.localScale;\n\t}\n\tgetLocalTransform() {\n\t\tif (this._dirtyLocal) {\n\t\t\tthis.localTransform.setTRS(this.localPosition, this.localRotation, this.localScale);\n\t\t\tthis._dirtyLocal = false;\n\t\t}\n\t\treturn this.localTransform;\n\t}\n\tgetPosition() {\n\t\tthis.getWorldTransform().getTranslation(this.position);\n\t\treturn this.position;\n\t}\n\tgetRotation() {\n\t\tthis.rotation.setFromMat4(this.getWorldTransform());\n\t\treturn this.rotation;\n\t}\n\tgetScale() {\n\t\tif (!this._scale) {\n\t\t\tthis._scale = new Vec3();\n\t\t}\n\t\treturn this.getWorldTransform().getScale(this._scale);\n\t}\n\tgetWorldTransform() {\n\t\tif (!this._dirtyLocal && !this._dirtyWorld) {\n\t\t\treturn this.worldTransform;\n\t\t}\n\t\tif (this._parent) {\n\t\t\tthis._parent.getWorldTransform();\n\t\t}\n\t\tthis._sync();\n\t\treturn this.worldTransform;\n\t}\n\tget worldScaleSign() {\n\t\tif (this._worldScaleSign === 0) {\n\t\t\tthis._worldScaleSign = this.getWorldTransform().scaleSign;\n\t\t}\n\t\treturn this._worldScaleSign;\n\t}\n\tremove() {\n\t\tthis._parent?.removeChild(this);\n\t}\n\treparent(parent, index) {\n\t\tthis.remove();\n\t\tif (parent) {\n\t\t\tif (index >= 0) {\n\t\t\t\tparent.insertChild(this, index);\n\t\t\t} else {\n\t\t\t\tparent.addChild(this);\n\t\t\t}\n\t\t}\n\t}\n\tsetLocalEulerAngles(x3, y2, z2) {\n\t\tthis.localRotation.setFromEulerAngles(x3, y2, z2);\n\t\tif (!this._dirtyLocal) {\n\t\t\tthis._dirtifyLocal();\n\t\t}\n\t}\n\tsetLocalPosition(x3, y2, z2) {\n\t\tif (x3 instanceof Vec3) {\n\t\t\tthis.localPosition.copy(x3);\n\t\t} else {\n\t\t\tthis.localPosition.set(x3, y2, z2);\n\t\t}\n\t\tif (!this._dirtyLocal) {\n\t\t\tthis._dirtifyLocal();\n\t\t}\n\t}\n\tsetLocalRotation(x3, y2, z2, w) {\n\t\tif (x3 instanceof Quat) {\n\t\t\tthis.localRotation.copy(x3);\n\t\t} else {\n\t\t\tthis.localRotation.set(x3, y2, z2, w);\n\t\t}\n\t\tif (!this._dirtyLocal) {\n\t\t\tthis._dirtifyLocal();\n\t\t}\n\t}\n\tsetLocalScale(x3, y2, z2) {\n\t\tif (x3 instanceof Vec3) {\n\t\t\tthis.localScale.copy(x3);\n\t\t} else {\n\t\t\tthis.localScale.set(x3, y2, z2);\n\t\t}\n\t\tif (!this._dirtyLocal) {\n\t\t\tthis._dirtifyLocal();\n\t\t}\n\t}\n\t_dirtifyLocal() {\n\t\tif (!this._dirtyLocal) {\n\t\t\tthis._dirtyLocal = true;\n\t\t\tif (!this._dirtyWorld) {\n\t\t\t\tthis._dirtifyWorld();\n\t\t\t}\n\t\t}\n\t}\n\t_unfreezeParentToRoot() {\n\t\tlet p = this._parent;\n\t\twhile (p) {\n\t\t\tp._frozen = false;\n\t\t\tp = p._parent;\n\t\t}\n\t}\n\t_dirtifyWorld() {\n\t\tif (!this._dirtyWorld) {\n\t\t\tthis._unfreezeParentToRoot();\n\t\t}\n\t\tthis._dirtifyWorldInternal();\n\t}\n\t_dirtifyWorldInternal() {\n\t\tif (!this._dirtyWorld) {\n\t\t\tthis._frozen = false;\n\t\t\tthis._dirtyWorld = true;\n\t\t\tfor (let i2 = 0; i2 < this._children.length; i2++) {\n\t\t\t\tif (!this._children[i2]._dirtyWorld) {\n\t\t\t\t\tthis._children[i2]._dirtifyWorldInternal();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis._dirtyNormal = true;\n\t\tthis._worldScaleSign = 0;\n\t\tthis._aabbVer++;\n\t}\n\tsetPosition(x3, y2, z2) {\n\t\tif (x3 instanceof Vec3) {\n\t\t\tposition.copy(x3);\n\t\t} else {\n\t\t\tposition.set(x3, y2, z2);\n\t\t}\n\t\tif (this._parent === null) {\n\t\t\tthis.localPosition.copy(position);\n\t\t} else {\n\t\t\tinvParentWtm.copy(this._parent.getWorldTransform()).invert();\n\t\t\tinvParentWtm.transformPoint(position, this.localPosition);\n\t\t}\n\t\tif (!this._dirtyLocal) {\n\t\t\tthis._dirtifyLocal();\n\t\t}\n\t}\n\tsetRotation(x3, y2, z2, w) {\n\t\tif (x3 instanceof Quat) {\n\t\t\trotation.copy(x3);\n\t\t} else {\n\t\t\trotation.set(x3, y2, z2, w);\n\t\t}\n\t\tif (this._parent === null) {\n\t\t\tthis.localRotation.copy(rotation);\n\t\t} else {\n\t\t\tconst parentRot = this._parent.getRotation();\n\t\t\tinvParentRot.copy(parentRot).invert();\n\t\t\tthis.localRotation.copy(invParentRot).mul(rotation);\n\t\t}\n\t\tif (!this._dirtyLocal) {\n\t\t\tthis._dirtifyLocal();\n\t\t}\n\t}\n\tsetPositionAndRotation(position5, rotation7) {\n\t\tif (this._parent === null) {\n\t\t\tthis.localPosition.copy(position5);\n\t\t\tthis.localRotation.copy(rotation7);\n\t\t} else {\n\t\t\tconst parentWtm = this._parent.getWorldTransform();\n\t\t\tinvParentWtm.copy(parentWtm).invert();\n\t\t\tinvParentWtm.transformPoint(position5, this.localPosition);\n\t\t\tthis.localRotation.setFromMat4(invParentWtm).mul(rotation7);\n\t\t}\n\t\tif (!this._dirtyLocal) {\n\t\t\tthis._dirtifyLocal();\n\t\t}\n\t}\n\tsetEulerAngles(x3, y2, z2) {\n\t\tthis.localRotation.setFromEulerAngles(x3, y2, z2);\n\t\tif (this._parent !== null) {\n\t\t\tconst parentRot = this._parent.getRotation();\n\t\t\tinvParentRot.copy(parentRot).invert();\n\t\t\tthis.localRotation.mul2(invParentRot, this.localRotation);\n\t\t}\n\t\tif (!this._dirtyLocal) {\n\t\t\tthis._dirtifyLocal();\n\t\t}\n\t}\n\taddChild(node) {\n\t\tthis._prepareInsertChild(node);\n\t\tthis._children.push(node);\n\t\tthis._onInsertChild(node);\n\t}\n\taddChildAndSaveTransform(node) {\n\t\tconst wPos = node.getPosition();\n\t\tconst wRot = node.getRotation();\n\t\tthis._prepareInsertChild(node);\n\t\tnode.setPosition(tmpMat42.copy(this.worldTransform).invert().transformPoint(wPos));\n\t\tnode.setRotation(tmpQuat.copy(this.getRotation()).invert().mul(wRot));\n\t\tthis._children.push(node);\n\t\tthis._onInsertChild(node);\n\t}\n\tinsertChild(node, index) {\n\t\tthis._prepareInsertChild(node);\n\t\tthis._children.splice(index, 0, node);\n\t\tthis._onInsertChild(node);\n\t}\n\t_prepareInsertChild(node) {\n\t\tnode.remove();\n\t}\n\t_fireOnHierarchy(name, nameHierarchy, parent) {\n\t\tthis.fire(name, parent);\n\t\tfor (let i2 = 0; i2 < this._children.length; i2++) {\n\t\t\tthis._children[i2]._fireOnHierarchy(nameHierarchy, nameHierarchy, parent);\n\t\t}\n\t}\n\t_onInsertChild(node) {\n\t\tnode._parent = this;\n\t\tconst enabledInHierarchy = node._enabled && this.enabled;\n\t\tif (node._enabledInHierarchy !== enabledInHierarchy) {\n\t\t\tnode._enabledInHierarchy = enabledInHierarchy;\n\t\t\tnode._notifyHierarchyStateChanged(node, enabledInHierarchy);\n\t\t}\n\t\tnode._updateGraphDepth();\n\t\tnode._dirtifyWorld();\n\t\tif (this._frozen) {\n\t\t\tnode._unfreezeParentToRoot();\n\t\t}\n\t\tnode._fireOnHierarchy(\"insert\", \"inserthierarchy\", this);\n\t\tif (this.fire) this.fire(\"childinsert\", node);\n\t}\n\t_updateGraphDepth() {\n\t\tthis._graphDepth = this._parent ? this._parent._graphDepth + 1 : 0;\n\t\tfor (let i2 = 0, len = this._children.length; i2 < len; i2++) {\n\t\t\tthis._children[i2]._updateGraphDepth();\n\t\t}\n\t}\n\tremoveChild(child) {\n\t\tconst index = this._children.indexOf(child);\n\t\tif (index === -1) {\n\t\t\treturn;\n\t\t}\n\t\tthis._children.splice(index, 1);\n\t\tchild._parent = null;\n\t\tchild._fireOnHierarchy(\"remove\", \"removehierarchy\", this);\n\t\tthis.fire(\"childremove\", child);\n\t}\n\t_sync() {\n\t\tif (this._dirtyLocal) {\n\t\t\tthis.localTransform.setTRS(this.localPosition, this.localRotation, this.localScale);\n\t\t\tthis._dirtyLocal = false;\n\t\t}\n\t\tif (this._dirtyWorld) {\n\t\t\tif (this._parent === null) {\n\t\t\t\tthis.worldTransform.copy(this.localTransform);\n\t\t\t} else {\n\t\t\t\tif (this.scaleCompensation) {\n\t\t\t\t\tlet parentWorldScale;\n\t\t\t\t\tconst parent = this._parent;\n\t\t\t\t\tlet scale2 = this.localScale;\n\t\t\t\t\tlet parentToUseScaleFrom = parent;\n\t\t\t\t\tif (parentToUseScaleFrom) {\n\t\t\t\t\t\twhile (parentToUseScaleFrom && parentToUseScaleFrom.scaleCompensation) {\n\t\t\t\t\t\t\tparentToUseScaleFrom = parentToUseScaleFrom._parent;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (parentToUseScaleFrom) {\n\t\t\t\t\t\t\tparentToUseScaleFrom = parentToUseScaleFrom._parent;\n\t\t\t\t\t\t\tif (parentToUseScaleFrom) {\n\t\t\t\t\t\t\t\tparentWorldScale = parentToUseScaleFrom.worldTransform.getScale();\n\t\t\t\t\t\t\t\tscaleCompensateScale.mul2(parentWorldScale, this.localScale);\n\t\t\t\t\t\t\t\tscale2 = scaleCompensateScale;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tscaleCompensateRot2.setFromMat4(parent.worldTransform);\n\t\t\t\t\tscaleCompensateRot.mul2(scaleCompensateRot2, this.localRotation);\n\t\t\t\t\tlet tmatrix = parent.worldTransform;\n\t\t\t\t\tif (parent.scaleCompensation) {\n\t\t\t\t\t\tscaleCompensateScaleForParent.mul2(parentWorldScale, parent.getLocalScale());\n\t\t\t\t\t\tscaleCompensatePosTransform.setTRS(\n\t\t\t\t\t\t\tparent.worldTransform.getTranslation(scaleCompensatePos),\n\t\t\t\t\t\t\tscaleCompensateRot2,\n\t\t\t\t\t\t\tscaleCompensateScaleForParent\n\t\t\t\t\t\t);\n\t\t\t\t\t\ttmatrix = scaleCompensatePosTransform;\n\t\t\t\t\t}\n\t\t\t\t\ttmatrix.transformPoint(this.localPosition, scaleCompensatePos);\n\t\t\t\t\tthis.worldTransform.setTRS(scaleCompensatePos, scaleCompensateRot, scale2);\n\t\t\t\t} else {\n\t\t\t\t\tthis.worldTransform.mulAffine2(this._parent.worldTransform, this.localTransform);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._dirtyWorld = false;\n\t\t}\n\t}\n\tsyncHierarchy() {\n\t\tif (!this._enabled) {\n\t\t\treturn;\n\t\t}\n\t\tif (this._frozen) {\n\t\t\treturn;\n\t\t}\n\t\tthis._frozen = true;\n\t\tif (this._dirtyLocal || this._dirtyWorld) {\n\t\t\tthis._sync();\n\t\t}\n\t\tconst children = this._children;\n\t\tfor (let i2 = 0, len = children.length; i2 < len; i2++) {\n\t\t\tchildren[i2].syncHierarchy();\n\t\t}\n\t}\n\tlookAt(x3, y2, z2, ux = 0, uy = 1, uz = 0) {\n\t\tif (x3 instanceof Vec3) {\n\t\t\ttarget.copy(x3);\n\t\t\tif (y2 instanceof Vec3) {\n\t\t\t\tup.copy(y2);\n\t\t\t} else {\n\t\t\t\tup.copy(Vec3.UP);\n\t\t\t}\n\t\t} else if (z2 === void 0) {\n\t\t\treturn;\n\t\t} else {\n\t\t\ttarget.set(x3, y2, z2);\n\t\t\tup.set(ux, uy, uz);\n\t\t}\n\t\tmatrix.setLookAt(this.getPosition(), target, up);\n\t\trotation.setFromMat4(matrix);\n\t\tthis.setRotation(rotation);\n\t}\n\ttranslate(x3, y2, z2) {\n\t\tif (x3 instanceof Vec3) {\n\t\t\tposition.copy(x3);\n\t\t} else {\n\t\t\tposition.set(x3, y2, z2);\n\t\t}\n\t\tposition.add(this.getPosition());\n\t\tthis.setPosition(position);\n\t}\n\ttranslateLocal(x3, y2, z2) {\n\t\tif (x3 instanceof Vec3) {\n\t\t\tposition.copy(x3);\n\t\t} else {\n\t\t\tposition.set(x3, y2, z2);\n\t\t}\n\t\tthis.localRotation.transformVector(position, position);\n\t\tthis.localPosition.add(position);\n\t\tif (!this._dirtyLocal) {\n\t\t\tthis._dirtifyLocal();\n\t\t}\n\t}\n\trotate(x3, y2, z2) {\n\t\trotation.setFromEulerAngles(x3, y2, z2);\n\t\tif (this._parent === null) {\n\t\t\tthis.localRotation.mul2(rotation, this.localRotation);\n\t\t} else {\n\t\t\tconst rot = this.getRotation();\n\t\t\tconst parentRot = this._parent.getRotation();\n\t\t\tinvParentRot.copy(parentRot).invert();\n\t\t\trotation.mul2(invParentRot, rotation);\n\t\t\tthis.localRotation.mul2(rotation, rot);\n\t\t}\n\t\tif (!this._dirtyLocal) {\n\t\t\tthis._dirtifyLocal();\n\t\t}\n\t}\n\trotateLocal(x3, y2, z2) {\n\t\trotation.setFromEulerAngles(x3, y2, z2);\n\t\tthis.localRotation.mul(rotation);\n\t\tif (!this._dirtyLocal) {\n\t\t\tthis._dirtifyLocal();\n\t\t}\n\t}\n};\n\nvar defaultMaterialDeviceCache = new DeviceCache();\nfunction getDefaultMaterial(device) {\n\tconst material = defaultMaterialDeviceCache.get(device);\n\treturn material;\n}\nfunction setDefaultMaterial(device, material) {\n\tdefaultMaterialDeviceCache.get(device, () => {\n\t\treturn material;\n\t});\n}\n\nvar RefCountedCache = class {\n\tcache = /* @__PURE__ */ new Map();\n\tdestroy() {\n\t\tthis.cache.forEach((refCount, object) => {\n\t\t\tobject.destroy();\n\t\t});\n\t\tthis.cache.clear();\n\t}\n\tincRef(object) {\n\t\tconst refCount = (this.cache.get(object) || 0) + 1;\n\t\tthis.cache.set(object, refCount);\n\t}\n\tdecRef(object) {\n\t\tif (object) {\n\t\t\tlet refCount = this.cache.get(object);\n\t\t\tif (refCount) {\n\t\t\t\trefCount--;\n\t\t\t\tif (refCount === 0) {\n\t\t\t\t\tthis.cache.delete(object);\n\t\t\t\t\tobject.destroy();\n\t\t\t\t} else {\n\t\t\t\t\tthis.cache.set(object, refCount);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar LightmapCache = class {\n\tstatic cache = new RefCountedCache();\n\t// add texture reference to lightmap cache\n\tstatic incRef(texture) {\n\t\tthis.cache.incRef(texture);\n\t}\n\t// remove texture reference from lightmap cache\n\tstatic decRef(texture) {\n\t\tthis.cache.decRef(texture);\n\t}\n\tstatic destroy() {\n\t\tthis.cache.destroy();\n\t}\n};\n\nvar NumericIds = class {\n\t_counter = 0;\n\tget() {\n\t\treturn this._counter++;\n\t}\n};\n\nvar PickerId = new NumericIds();\n\nvar _tmpAabb = new BoundingBox();\nvar _tempBoneAabb = new BoundingBox();\nvar _meshSet = /* @__PURE__ */ new Set();\nvar lookupHashes = new Uint32Array(4);\nvar InstancingData = class {\n\tvertexBuffer = null;\n\t_destroyVertexBuffer = false;\n\tconstructor(numObjects) {\n\t\tthis.count = numObjects;\n\t}\n\tdestroy() {\n\t\tif (this._destroyVertexBuffer) {\n\t\t\tthis.vertexBuffer?.destroy();\n\t\t}\n\t\tthis.vertexBuffer = null;\n\t}\n};\nvar ShaderInstance = class {\n\tshader;\n\tbindGroup = null;\n\tuniformBuffer = null;\n\thashes;\n\tgetBindGroup(device) {\n\t\tif (!this.bindGroup) {\n\t\t\tconst shader = this.shader;\n\t\t\tconst bindGroupFormat = shader.meshBindGroupFormat;\n\t\t\tthis.bindGroup = new BindGroup(device, bindGroupFormat);\n\t\t}\n\t\treturn this.bindGroup;\n\t}\n\tgetUniformBuffer(device) {\n\t\tif (!this.uniformBuffer) {\n\t\t\tconst shader = this.shader;\n\t\t\tconst ubFormat = shader.meshUniformBufferFormat;\n\t\t\tthis.uniformBuffer = new UniformBuffer(device, ubFormat, false);\n\t\t}\n\t\treturn this.uniformBuffer;\n\t}\n\tdestroy() {\n\t\tthis.bindGroup?.destroy();\n\t\tthis.bindGroup = null;\n\t\tthis.uniformBuffer?.destroy();\n\t\tthis.uniformBuffer = null;\n\t}\n};\nvar MeshInstance = class _MeshInstance {\n\tcastShadow = false;\n\tshadowCascadeMask = SHADOW_CASCADE_ALL;\n\tcull = true;\n\tdrawOrder = 0;\n\t_drawBucket = 127;\n\tnode;\n\tvisible = true;\n\tshaderPassMask = 4294967295;\n\tvisibleThisFrame = false;\n\tflipFacesFactor = 1;\n\tgsplatInstance = null;\n\tid = PickerId.get();\n\tisVisibleFunc = null;\n\tinstancingData = null;\n\tindirectData = null;\n\tdrawCommands = null;\n\tmeshMetaData = null;\n\tparameters = {};\n\tpick = true;\n\tstencilFront = null;\n\tstencilBack = null;\n\ttransparent = false;\n\t_aabb = new BoundingBox();\n\t_aabbVer = -1;\n\t_aabbMeshVer = -1;\n\t_customAabb = null;\n\t_updateAabb = true;\n\t_updateAabbFunc = null;\n\t_sortKeyShadow = 0;\n\t_sortKeyForward = 0;\n\t_sortKeyDynamic = 0;\n\t_layer = LAYER_WORLD;\n\t_material = null;\n\t_skinInstance = null;\n\t_morphInstance = null;\n\t_receiveShadow = true;\n\t_renderStyle = RENDERSTYLE_SOLID;\n\t_screenSpace = false;\n\t_shaderCache = /* @__PURE__ */ new Map();\n\t_shaderDefs = MASK_AFFECT_DYNAMIC << 16;\n\t_calculateSortDistance = null;\n\tconstructor(mesh, material, node = null) {\n\t\tthis.node = node;\n\t\tthis._mesh = mesh;\n\t\tmesh.incRefCount();\n\t\tthis.material = material;\n\t\tif (mesh.vertexBuffer) {\n\t\t\tconst format = mesh.vertexBuffer.format;\n\t\t\tthis._shaderDefs |= format.hasUv0 ? SHADERDEF_UV0 : 0;\n\t\t\tthis._shaderDefs |= format.hasUv1 ? SHADERDEF_UV1 : 0;\n\t\t\tthis._shaderDefs |= format.hasColor ? SHADERDEF_VCOLOR : 0;\n\t\t\tthis._shaderDefs |= format.hasTangents ? SHADERDEF_TANGENTS : 0;\n\t\t}\n\t\tthis.updateKey();\n\t}\n\tset drawBucket(bucket) {\n\t\tthis._drawBucket = Math.floor(bucket) & 255;\n\t\tthis.updateKey();\n\t}\n\tget drawBucket() {\n\t\treturn this._drawBucket;\n\t}\n\tset renderStyle(renderStyle) {\n\t\tthis._renderStyle = renderStyle;\n\t\tthis.mesh.prepareRenderState(renderStyle);\n\t}\n\tget renderStyle() {\n\t\treturn this._renderStyle;\n\t}\n\tset mesh(mesh) {\n\t\tif (mesh === this._mesh) {\n\t\t\treturn;\n\t\t}\n\t\tif (this._mesh) {\n\t\t\tthis._mesh.decRefCount();\n\t\t}\n\t\tthis._mesh = mesh;\n\t\tif (mesh) {\n\t\t\tmesh.incRefCount();\n\t\t}\n\t}\n\tget mesh() {\n\t\treturn this._mesh;\n\t}\n\tset aabb(aabb3) {\n\t\tthis._aabb = aabb3;\n\t}\n\tget aabb() {\n\t\tif (!this._updateAabb) {\n\t\t\treturn this._aabb;\n\t\t}\n\t\tif (this._updateAabbFunc) {\n\t\t\treturn this._updateAabbFunc(this._aabb);\n\t\t}\n\t\tlet localAabb = this._customAabb;\n\t\tlet toWorldSpace = !!localAabb;\n\t\tif (!localAabb) {\n\t\t\tlocalAabb = _tmpAabb;\n\t\t\tif (this.skinInstance) {\n\t\t\t\tif (!this.mesh.boneAabb) {\n\t\t\t\t\tconst morphTargets = this._morphInstance ? this._morphInstance.morph._targets : null;\n\t\t\t\t\tthis.mesh._initBoneAabbs(morphTargets);\n\t\t\t\t}\n\t\t\t\tconst boneUsed = this.mesh.boneUsed;\n\t\t\t\tlet first = true;\n\t\t\t\tfor (let i2 = 0; i2 < this.mesh.boneAabb.length; i2++) {\n\t\t\t\t\tif (boneUsed[i2]) {\n\t\t\t\t\t\t_tempBoneAabb.setFromTransformedAabb(this.mesh.boneAabb[i2], this.skinInstance.matrices[i2]);\n\t\t\t\t\t\tif (first) {\n\t\t\t\t\t\t\tfirst = false;\n\t\t\t\t\t\t\tlocalAabb.center.copy(_tempBoneAabb.center);\n\t\t\t\t\t\t\tlocalAabb.halfExtents.copy(_tempBoneAabb.halfExtents);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tlocalAabb.add(_tempBoneAabb);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ttoWorldSpace = true;\n\t\t\t} else if (this.node._aabbVer !== this._aabbVer || this.mesh._aabbVer !== this._aabbMeshVer) {\n\t\t\t\tif (this.mesh) {\n\t\t\t\t\tlocalAabb.center.copy(this.mesh.aabb.center);\n\t\t\t\t\tlocalAabb.halfExtents.copy(this.mesh.aabb.halfExtents);\n\t\t\t\t} else {\n\t\t\t\t\tlocalAabb.center.set(0, 0, 0);\n\t\t\t\t\tlocalAabb.halfExtents.set(0, 0, 0);\n\t\t\t\t}\n\t\t\t\tif (this.mesh && this.mesh.morph) {\n\t\t\t\t\tconst morphAabb = this.mesh.morph.aabb;\n\t\t\t\t\tlocalAabb._expand(morphAabb.getMin(), morphAabb.getMax());\n\t\t\t\t}\n\t\t\t\ttoWorldSpace = true;\n\t\t\t\tthis._aabbVer = this.node._aabbVer;\n\t\t\t\tthis._aabbMeshVer = this.mesh._aabbVer;\n\t\t\t}\n\t\t}\n\t\tif (toWorldSpace) {\n\t\t\tthis._aabb.setFromTransformedAabb(localAabb, this.node.getWorldTransform());\n\t\t}\n\t\treturn this._aabb;\n\t}\n\tclearShaders() {\n\t\tthis._shaderCache.forEach((shaderInstance) => {\n\t\t\tshaderInstance.destroy();\n\t\t});\n\t\tthis._shaderCache.clear();\n\t}\n\tgetShaderInstance(shaderPass, lightHash, scene, cameraShaderParams, viewUniformFormat, sortedLights) {\n\t\tconst shaderDefs = this._shaderDefs;\n\t\tlookupHashes[0] = shaderPass;\n\t\tlookupHashes[1] = lightHash;\n\t\tlookupHashes[2] = shaderDefs;\n\t\tlookupHashes[3] = cameraShaderParams.hash;\n\t\tconst hash = hash32Fnv1a(lookupHashes);\n\t\tlet shaderInstance = this._shaderCache.get(hash);\n\t\tif (!shaderInstance) {\n\t\t\tconst mat2 = this._material;\n\t\t\tshaderInstance = new ShaderInstance();\n\t\t\tshaderInstance.shader = mat2.variants.get(hash);\n\t\t\tshaderInstance.hashes = new Uint32Array(lookupHashes);\n\t\t\tif (!shaderInstance.shader) {\n\t\t\t\tconst shader = mat2.getShaderVariant({\n\t\t\t\t\tdevice: this.mesh.device,\n\t\t\t\t\tscene,\n\t\t\t\t\tobjDefs: shaderDefs,\n\t\t\t\t\tcameraShaderParams,\n\t\t\t\t\tpass: shaderPass,\n\t\t\t\t\tsortedLights,\n\t\t\t\t\tviewUniformFormat,\n\t\t\t\t\tvertexFormat: this.mesh.vertexBuffer?.format\n\t\t\t\t});\n\t\t\t\tmat2.variants.set(hash, shader);\n\t\t\t\tshaderInstance.shader = shader;\n\t\t\t}\n\t\t\tthis._shaderCache.set(hash, shaderInstance);\n\t\t}\n\t\treturn shaderInstance;\n\t}\n\tset material(material) {\n\t\tthis.clearShaders();\n\t\tconst prevMat = this._material;\n\t\tif (prevMat) {\n\t\t\tprevMat.removeMeshInstanceRef(this);\n\t\t}\n\t\tthis._material = material;\n\t\tif (material) {\n\t\t\tmaterial.addMeshInstanceRef(this);\n\t\t\tthis.transparent = material.transparent;\n\t\t\tthis.updateKey();\n\t\t}\n\t}\n\tget material() {\n\t\treturn this._material;\n\t}\n\t_updateShaderDefs(shaderDefs) {\n\t\tif (shaderDefs !== this._shaderDefs) {\n\t\t\tthis._shaderDefs = shaderDefs;\n\t\t\tthis.clearShaders();\n\t\t}\n\t}\n\tset calculateSortDistance(calculateSortDistance) {\n\t\tthis._calculateSortDistance = calculateSortDistance;\n\t}\n\tget calculateSortDistance() {\n\t\treturn this._calculateSortDistance;\n\t}\n\tset receiveShadow(val) {\n\t\tif (this._receiveShadow !== val) {\n\t\t\tthis._receiveShadow = val;\n\t\t\tthis._updateShaderDefs(val ? this._shaderDefs & ~SHADERDEF_NOSHADOW : this._shaderDefs | SHADERDEF_NOSHADOW);\n\t\t}\n\t}\n\tget receiveShadow() {\n\t\treturn this._receiveShadow;\n\t}\n\tset batching(val) {\n\t\tthis._updateShaderDefs(val ? this._shaderDefs | SHADERDEF_BATCH : this._shaderDefs & ~SHADERDEF_BATCH);\n\t}\n\tget batching() {\n\t\treturn (this._shaderDefs & SHADERDEF_BATCH) !== 0;\n\t}\n\tset skinInstance(val) {\n\t\tthis._skinInstance = val;\n\t\tthis._updateShaderDefs(val ? this._shaderDefs | SHADERDEF_SKIN : this._shaderDefs & ~SHADERDEF_SKIN);\n\t\tthis._setupSkinUpdate();\n\t}\n\tget skinInstance() {\n\t\treturn this._skinInstance;\n\t}\n\tset morphInstance(val) {\n\t\tthis._morphInstance?.destroy();\n\t\tthis._morphInstance = val;\n\t\tlet shaderDefs = this._shaderDefs;\n\t\tshaderDefs = val && val.morph.morphPositions ? shaderDefs | SHADERDEF_MORPH_POSITION : shaderDefs & ~SHADERDEF_MORPH_POSITION;\n\t\tshaderDefs = val && val.morph.morphNormals ? shaderDefs | SHADERDEF_MORPH_NORMAL : shaderDefs & ~SHADERDEF_MORPH_NORMAL;\n\t\tshaderDefs = val && val.morph.intRenderFormat ? shaderDefs | SHADERDEF_MORPH_TEXTURE_BASED_INT : shaderDefs & ~SHADERDEF_MORPH_TEXTURE_BASED_INT;\n\t\tthis._updateShaderDefs(shaderDefs);\n\t}\n\tget morphInstance() {\n\t\treturn this._morphInstance;\n\t}\n\tset screenSpace(val) {\n\t\tif (this._screenSpace !== val) {\n\t\t\tthis._screenSpace = val;\n\t\t\tthis._updateShaderDefs(val ? this._shaderDefs | SHADERDEF_SCREENSPACE : this._shaderDefs & ~SHADERDEF_SCREENSPACE);\n\t\t}\n\t}\n\tget screenSpace() {\n\t\treturn this._screenSpace;\n\t}\n\tset key(val) {\n\t\tthis._sortKeyForward = val;\n\t}\n\tget key() {\n\t\treturn this._sortKeyForward;\n\t}\n\tset mask(val) {\n\t\tconst toggles = this._shaderDefs & 65535;\n\t\tthis._updateShaderDefs(toggles | val << 16);\n\t}\n\tget mask() {\n\t\treturn this._shaderDefs >> 16;\n\t}\n\tset instancingCount(value) {\n\t\tif (this.instancingData) {\n\t\t\tthis.instancingData.count = value;\n\t\t}\n\t}\n\tget instancingCount() {\n\t\treturn this.instancingData ? this.instancingData.count : 0;\n\t}\n\tdestroy() {\n\t\tconst mesh = this.mesh;\n\t\tif (mesh) {\n\t\t\tthis.mesh = null;\n\t\t\tif (mesh.refCount < 1) {\n\t\t\t\tmesh.destroy();\n\t\t\t}\n\t\t}\n\t\tthis.setRealtimeLightmap(_MeshInstance.lightmapParamNames[0], null);\n\t\tthis.setRealtimeLightmap(_MeshInstance.lightmapParamNames[1], null);\n\t\tthis._skinInstance?.destroy();\n\t\tthis._skinInstance = null;\n\t\tthis.morphInstance?.destroy();\n\t\tthis.morphInstance = null;\n\t\tthis.clearShaders();\n\t\tthis.material = null;\n\t\tthis.instancingData?.destroy();\n\t\tthis.destroyDrawCommands();\n\t}\n\tdestroyDrawCommands() {\n\t\tif (this.drawCommands) {\n\t\t\tfor (const cmd of this.drawCommands.values()) {\n\t\t\t\tcmd?.destroy();\n\t\t\t}\n\t\t\tthis.drawCommands = null;\n\t\t}\n\t}\n\t// shader uniform names for lightmaps\n\tstatic lightmapParamNames = [\"texture_lightMap\", \"texture_dirLightMap\"];\n\tstatic _prepareRenderStyleForArray(meshInstances, renderStyle) {\n\t\tif (meshInstances) {\n\t\t\tfor (let i2 = 0; i2 < meshInstances.length; i2++) {\n\t\t\t\tmeshInstances[i2]._renderStyle = renderStyle;\n\t\t\t\tconst mesh = meshInstances[i2].mesh;\n\t\t\t\tif (!_meshSet.has(mesh)) {\n\t\t\t\t\t_meshSet.add(mesh);\n\t\t\t\t\tmesh.prepareRenderState(renderStyle);\n\t\t\t\t}\n\t\t\t}\n\t\t\t_meshSet.clear();\n\t\t}\n\t}\n\t_isVisible(camera) {\n\t\tif (this.visible) {\n\t\t\tif (this.isVisibleFunc) {\n\t\t\t\treturn this.isVisibleFunc(camera);\n\t\t\t}\n\t\t\treturn camera.frustum.containsAabb(this.aabb);\n\t\t}\n\t\treturn false;\n\t}\n\tupdateKey() {\n\t\tconst { material } = this;\n\t\tthis._sortKeyForward = this._drawBucket << 23 | (material.alphaToCoverage || material.alphaTest ? 4194304 : 0) | material.id & 4194303;\n\t}\n\tsetInstancing(vertexBuffer, cull = false) {\n\t\tif (vertexBuffer) {\n\t\t\tif (vertexBuffer === true) {\n\t\t\t\tthis.instancingData = new InstancingData(0);\n\t\t\t} else {\n\t\t\t\tthis.instancingData = new InstancingData(vertexBuffer.numVertices);\n\t\t\t\tthis.instancingData.vertexBuffer = vertexBuffer;\n\t\t\t\tvertexBuffer.format.instancing = true;\n\t\t\t}\n\t\t\tthis.cull = cull;\n\t\t} else {\n\t\t\tthis.instancingData = null;\n\t\t\tthis.cull = true;\n\t\t}\n\t\tthis._updateShaderDefs(vertexBuffer instanceof VertexBuffer ? this._shaderDefs | SHADERDEF_INSTANCING : this._shaderDefs & ~SHADERDEF_INSTANCING);\n\t}\n\tsetIndirect(camera, slot, count = 1) {\n\t\tconst key = camera?.camera ?? null;\n\t\tif (slot === -1) {\n\t\t\tthis._deleteDrawCommandsKey(key);\n\t\t} else {\n\t\t\tthis.drawCommands ?? (this.drawCommands = /* @__PURE__ */ new Map());\n\t\t\tconst cmd = this.drawCommands.get(key) ?? new DrawCommands(this.mesh.device);\n\t\t\tcmd.slotIndex = slot;\n\t\t\tcmd.update(count);\n\t\t\tthis.drawCommands.set(key, cmd);\n\t\t\tconst device = this.mesh.device;\n\t\t\tdevice.mapsToClear.add(this.drawCommands);\n\t\t}\n\t}\n\tsetMultiDraw(camera, maxCount = 1) {\n\t\tconst key = camera?.camera ?? null;\n\t\tlet cmd;\n\t\tif (maxCount === 0) {\n\t\t\tthis._deleteDrawCommandsKey(key);\n\t\t} else {\n\t\t\tthis.drawCommands ?? (this.drawCommands = /* @__PURE__ */ new Map());\n\t\t\tcmd = this.drawCommands.get(key);\n\t\t\tif (!cmd) {\n\t\t\t\tconst indexBuffer = this.mesh.indexBuffer?.[0];\n\t\t\t\tconst indexFormat = indexBuffer?.format;\n\t\t\t\tconst indexSizeBytes = indexFormat !== void 0 ? indexFormatByteSize[indexFormat] : 0;\n\t\t\t\tcmd = new DrawCommands(this.mesh.device, indexSizeBytes);\n\t\t\t\tthis.drawCommands.set(key, cmd);\n\t\t\t}\n\t\t\tcmd.allocate(maxCount);\n\t\t}\n\t\treturn cmd;\n\t}\n\t_deleteDrawCommandsKey(key) {\n\t\tconst cmds = this.drawCommands;\n\t\tif (cmds) {\n\t\t\tconst cmd = cmds.get(key);\n\t\t\tcmd?.destroy();\n\t\t\tcmds.delete(key);\n\t\t\tif (cmds.size === 0) {\n\t\t\t\tthis.destroyDrawCommands();\n\t\t\t}\n\t\t}\n\t}\n\tgetDrawCommands(camera) {\n\t\tconst cmds = this.drawCommands;\n\t\tif (!cmds) return void 0;\n\t\treturn cmds.get(camera) ?? cmds.get(null);\n\t}\n\tgetIndirectMetaData() {\n\t\tconst prim = this.mesh?.primitive[this.renderStyle];\n\t\tconst data2 = this.meshMetaData ?? (this.meshMetaData = new Int32Array(4));\n\t\tdata2[0] = prim.count;\n\t\tdata2[1] = prim.base;\n\t\tdata2[2] = prim.baseVertex;\n\t\treturn data2;\n\t}\n\tensureMaterial(device) {\n\t\tif (!this.material) {\n\t\t\tthis.material = getDefaultMaterial(device);\n\t\t}\n\t}\n\t// Parameter management\n\tclearParameters() {\n\t\tthis.parameters = {};\n\t}\n\tgetParameters() {\n\t\treturn this.parameters;\n\t}\n\tgetParameter(name) {\n\t\treturn this.parameters[name];\n\t}\n\tsetParameter(name, data2) {\n\t\tconst param = this.parameters[name];\n\t\tif (param) {\n\t\t\tparam.data = data2;\n\t\t} else {\n\t\t\tthis.parameters[name] = {\n\t\t\t\tscopeId: null,\n\t\t\t\tdata: data2\n\t\t\t};\n\t\t}\n\t}\n\tsetRealtimeLightmap(name, texture) {\n\t\tconst old = this.getParameter(name);\n\t\tif (old === texture) {\n\t\t\treturn;\n\t\t}\n\t\tif (old) {\n\t\t\tLightmapCache.decRef(old.data);\n\t\t}\n\t\tif (texture) {\n\t\t\tLightmapCache.incRef(texture);\n\t\t\tthis.setParameter(name, texture);\n\t\t} else {\n\t\t\tthis.deleteParameter(name);\n\t\t}\n\t}\n\tdeleteParameter(name) {\n\t\tif (this.parameters[name]) {\n\t\t\tdelete this.parameters[name];\n\t\t}\n\t}\n\tsetParameters(device) {\n\t\tconst parameters = this.parameters;\n\t\tfor (const paramName in parameters) {\n\t\t\tconst parameter = parameters[paramName];\n\t\t\tif (!parameter.scopeId) {\n\t\t\t\tparameter.scopeId = device.scope.resolve(paramName);\n\t\t\t}\n\t\t\tparameter.scopeId.setValue(parameter.data);\n\t\t}\n\t}\n\tsetLightmapped(value) {\n\t\tif (value) {\n\t\t\tthis.mask = (this.mask | MASK_AFFECT_LIGHTMAPPED) & ~(MASK_AFFECT_DYNAMIC | MASK_BAKE);\n\t\t} else {\n\t\t\tthis.setRealtimeLightmap(_MeshInstance.lightmapParamNames[0], null);\n\t\t\tthis.setRealtimeLightmap(_MeshInstance.lightmapParamNames[1], null);\n\t\t\tthis._shaderDefs &= ~(SHADERDEF_LM | SHADERDEF_DIRLM | SHADERDEF_LMAMBIENT);\n\t\t\tthis.mask = (this.mask | MASK_AFFECT_DYNAMIC) & ~(MASK_AFFECT_LIGHTMAPPED | MASK_BAKE);\n\t\t}\n\t}\n\tsetCustomAabb(aabb3) {\n\t\tif (aabb3) {\n\t\t\tif (this._customAabb) {\n\t\t\t\tthis._customAabb.copy(aabb3);\n\t\t\t} else {\n\t\t\t\tthis._customAabb = aabb3.clone();\n\t\t\t}\n\t\t} else {\n\t\t\tthis._customAabb = null;\n\t\t\tthis._aabbVer = -1;\n\t\t}\n\t\tthis._setupSkinUpdate();\n\t}\n\t_setupSkinUpdate() {\n\t\tif (this._skinInstance) {\n\t\t\tthis._skinInstance._updateBeforeCull = !this._customAabb;\n\t\t}\n\t}\n};\n\nvar _triFanIndices = [0, 1, 3, 2, 3, 1];\nvar _triStripIndices = [0, 1, 3, 0, 3, 2];\nvar mat3 = new Mat3();\nfunction paramsIdentical(a, b) {\n\tif (a && !b) return false;\n\tif (!a && b) return false;\n\ta = a.data;\n\tb = b.data;\n\tif (a === b) return true;\n\tif (a instanceof Float32Array && b instanceof Float32Array) {\n\t\tif (a.length !== b.length) return false;\n\t\tfor (let i2 = 0; i2 < a.length; i2++) {\n\t\t\tif (a[i2] !== b[i2]) return false;\n\t\t}\n\t\treturn true;\n\t}\n\treturn false;\n}\nfunction equalParamSets(params1, params2) {\n\tfor (const param in params1) {\n\t\tif (params1.hasOwnProperty(param) && !paramsIdentical(params1[param], params2[param])) {\n\t\t\treturn false;\n\t\t}\n\t}\n\tfor (const param in params2) {\n\t\tif (params2.hasOwnProperty(param) && !paramsIdentical(params2[param], params1[param])) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n}\nfunction getScaleSign(mi) {\n\treturn mi.node.worldTransform.scaleSign;\n}\nvar BatchManager = class {\n\tconstructor(device, root, scene) {\n\t\tthis.device = device;\n\t\tthis.rootNode = root;\n\t\tthis.scene = scene;\n\t\tthis._init = false;\n\t\tthis._batchGroups = {};\n\t\tthis._batchGroupCounter = 0;\n\t\tthis._batchList = [];\n\t\tthis._dirtyGroups = [];\n\t}\n\tdestroy() {\n\t\tthis.device = null;\n\t\tthis.rootNode = null;\n\t\tthis.scene = null;\n\t\tthis._batchGroups = {};\n\t\tthis._batchList = [];\n\t\tthis._dirtyGroups = [];\n\t}\n\taddGroup(name, dynamic, maxAabbSize, id14, layers) {\n\t\tif (id14 === void 0) {\n\t\t\tid14 = this._batchGroupCounter;\n\t\t\tthis._batchGroupCounter++;\n\t\t}\n\t\tif (this._batchGroups[id14]) {\n\t\t\treturn void 0;\n\t\t}\n\t\tconst group = new BatchGroup(id14, name, dynamic, maxAabbSize, layers);\n\t\tthis._batchGroups[id14] = group;\n\t\treturn group;\n\t}\n\tremoveGroup(id14) {\n\t\tif (!this._batchGroups[id14]) {\n\t\t\treturn;\n\t\t}\n\t\tconst newBatchList = [];\n\t\tfor (let i2 = 0; i2 < this._batchList.length; i2++) {\n\t\t\tif (this._batchList[i2].batchGroupId === id14) {\n\t\t\t\tthis.destroyBatch(this._batchList[i2]);\n\t\t\t} else {\n\t\t\t\tnewBatchList.push(this._batchList[i2]);\n\t\t\t}\n\t\t}\n\t\tthis._batchList = newBatchList;\n\t\tthis._removeModelsFromBatchGroup(this.rootNode, id14);\n\t\tdelete this._batchGroups[id14];\n\t}\n\tmarkGroupDirty(id14) {\n\t\tif (this._dirtyGroups.indexOf(id14) < 0) {\n\t\t\tthis._dirtyGroups.push(id14);\n\t\t}\n\t}\n\tgetGroupByName(name) {\n\t\tconst groups = this._batchGroups;\n\t\tfor (const group in groups) {\n\t\t\tif (!groups.hasOwnProperty(group)) continue;\n\t\t\tif (groups[group].name === name) {\n\t\t\t\treturn groups[group];\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\tgetGroupById(id14) {\n\t\treturn this._batchGroups[id14] ?? null;\n\t}\n\tgetBatches(batchGroupId) {\n\t\tconst results = [];\n\t\tconst len = this._batchList.length;\n\t\tfor (let i2 = 0; i2 < len; i2++) {\n\t\t\tconst batch = this._batchList[i2];\n\t\t\tif (batch.batchGroupId === batchGroupId) {\n\t\t\t\tresults.push(batch);\n\t\t\t}\n\t\t}\n\t\treturn results;\n\t}\n\t// traverse full hierarchy and clear the batch group id from all model, element and sprite components\n\t_removeModelsFromBatchGroup(node, id14) {\n\t\tif (!node.enabled) return;\n\t\tif (node.model && node.model.batchGroupId === id14) {\n\t\t\tnode.model.batchGroupId = -1;\n\t\t}\n\t\tif (node.render && node.render.batchGroupId === id14) {\n\t\t\tnode.render.batchGroupId = -1;\n\t\t}\n\t\tif (node.element && node.element.batchGroupId === id14) {\n\t\t\tnode.element.batchGroupId = -1;\n\t\t}\n\t\tif (node.sprite && node.sprite.batchGroupId === id14) {\n\t\t\tnode.sprite.batchGroupId = -1;\n\t\t}\n\t\tfor (let i2 = 0; i2 < node._children.length; i2++) {\n\t\t\tthis._removeModelsFromBatchGroup(node._children[i2], id14);\n\t\t}\n\t}\n\tinsert(type, groupId, node) {\n\t\tconst group = this._batchGroups[groupId];\n\t\tif (group) {\n\t\t\tif (group._obj[type].indexOf(node) < 0) {\n\t\t\t\tgroup._obj[type].push(node);\n\t\t\t\tthis.markGroupDirty(groupId);\n\t\t\t}\n\t\t}\n\t}\n\tremove(type, groupId, node) {\n\t\tconst group = this._batchGroups[groupId];\n\t\tif (group) {\n\t\t\tconst idx = group._obj[type].indexOf(node);\n\t\t\tif (idx >= 0) {\n\t\t\t\tgroup._obj[type].splice(idx, 1);\n\t\t\t\tthis.markGroupDirty(groupId);\n\t\t\t}\n\t\t}\n\t}\n\t_filterBatchableInstances(meshInstances, nodeName) {\n\t\tlet hasUnsupported = false;\n\t\tlet hasSupported = false;\n\t\tfor (let i2 = 0; i2 < meshInstances.length; i2++) {\n\t\t\tif (meshInstances[i2].skinInstance || meshInstances[i2].morphInstance) {\n\t\t\t\thasUnsupported = true;\n\t\t\t} else {\n\t\t\t\thasSupported = true;\n\t\t\t}\n\t\t}\n\t\tif (hasUnsupported) {\n\t\t\tif (hasSupported) {\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\t\treturn meshInstances;\n\t}\n\t_extractRender(node, arr, group, groupMeshInstances) {\n\t\tif (node.render) {\n\t\t\tconst valid = this._filterBatchableInstances(node.render.meshInstances, node.name);\n\t\t\tif (valid) {\n\t\t\t\tarr = groupMeshInstances[node.render.batchGroupId] = arr.concat(valid);\n\t\t\t\tnode.render.removeFromLayers();\n\t\t\t}\n\t\t}\n\t\treturn arr;\n\t}\n\t_extractModel(node, arr, group, groupMeshInstances) {\n\t\tif (node.model && node.model.model) {\n\t\t\tconst valid = this._filterBatchableInstances(node.model.meshInstances, node.name);\n\t\t\tif (valid) {\n\t\t\t\tarr = groupMeshInstances[node.model.batchGroupId] = arr.concat(valid);\n\t\t\t\tnode.model.removeModelFromLayers();\n\t\t\t}\n\t\t}\n\t\treturn arr;\n\t}\n\t_extractElement(node, arr, group) {\n\t\tif (!node.element) return;\n\t\tlet valid = false;\n\t\tif (node.element._text && node.element._text._model.meshInstances.length > 0) {\n\t\t\tarr.push(node.element._text._model.meshInstances[0]);\n\t\t\tnode.element.removeModelFromLayers(node.element._text._model);\n\t\t\tvalid = true;\n\t\t} else if (node.element._image) {\n\t\t\tarr.push(node.element._image._renderable.meshInstance);\n\t\t\tnode.element.removeModelFromLayers(node.element._image._renderable.model);\n\t\t\tif (node.element._image._renderable.unmaskMeshInstance) {\n\t\t\t\tarr.push(node.element._image._renderable.unmaskMeshInstance);\n\t\t\t\tif (!node.element._image._renderable.unmaskMeshInstance.stencilFront || !node.element._image._renderable.unmaskMeshInstance.stencilBack) {\n\t\t\t\t\tnode.element._dirtifyMask();\n\t\t\t\t\tnode.element._onPrerender();\n\t\t\t\t}\n\t\t\t}\n\t\t\tvalid = true;\n\t\t}\n\t\tif (valid) {\n\t\t\tgroup._ui = true;\n\t\t}\n\t}\n\t// traverse scene hierarchy down from `node` and collect all components that are marked\n\t// with a batch group id. Remove from layers any models that these components contains.\n\t// Fill the `groupMeshInstances` with all the mesh instances to be included in the batch groups,\n\t// indexed by batch group id.\n\t_collectAndRemoveMeshInstances(groupMeshInstances, groupIds) {\n\t\tfor (let g = 0; g < groupIds.length; g++) {\n\t\t\tconst id14 = groupIds[g];\n\t\t\tconst group = this._batchGroups[id14];\n\t\t\tif (!group) continue;\n\t\t\tlet arr = groupMeshInstances[id14];\n\t\t\tif (!arr) arr = groupMeshInstances[id14] = [];\n\t\t\tfor (let m = 0; m < group._obj.model.length; m++) {\n\t\t\t\tarr = this._extractModel(group._obj.model[m], arr, group, groupMeshInstances);\n\t\t\t}\n\t\t\tfor (let r = 0; r < group._obj.render.length; r++) {\n\t\t\t\tarr = this._extractRender(group._obj.render[r], arr, group, groupMeshInstances);\n\t\t\t}\n\t\t\tfor (let e = 0; e < group._obj.element.length; e++) {\n\t\t\t\tthis._extractElement(group._obj.element[e], arr, group);\n\t\t\t}\n\t\t\tfor (let s2 = 0; s2 < group._obj.sprite.length; s2++) {\n\t\t\t\tconst node = group._obj.sprite[s2];\n\t\t\t\tif (node.sprite && node.sprite._meshInstance && (group.dynamic || node.sprite.sprite._renderMode === SPRITE_RENDERMODE_SIMPLE)) {\n\t\t\t\t\tarr.push(node.sprite._meshInstance);\n\t\t\t\t\tnode.sprite.removeFromLayers();\n\t\t\t\t\tgroup._sprite = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tgenerate(groupIds) {\n\t\tconst groupMeshInstances = {};\n\t\tif (!groupIds) {\n\t\t\tgroupIds = Object.keys(this._batchGroups);\n\t\t}\n\t\tconst newBatchList = [];\n\t\tfor (let i2 = 0; i2 < this._batchList.length; i2++) {\n\t\t\tif (groupIds.indexOf(this._batchList[i2].batchGroupId) < 0) {\n\t\t\t\tnewBatchList.push(this._batchList[i2]);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tthis.destroyBatch(this._batchList[i2]);\n\t\t}\n\t\tthis._batchList = newBatchList;\n\t\tthis._collectAndRemoveMeshInstances(groupMeshInstances, groupIds);\n\t\tif (groupIds === this._dirtyGroups) {\n\t\t\tthis._dirtyGroups.length = 0;\n\t\t} else {\n\t\t\tconst newDirtyGroups = [];\n\t\t\tfor (let i2 = 0; i2 < this._dirtyGroups.length; i2++) {\n\t\t\t\tif (groupIds.indexOf(this._dirtyGroups[i2]) < 0) newDirtyGroups.push(this._dirtyGroups[i2]);\n\t\t\t}\n\t\t\tthis._dirtyGroups = newDirtyGroups;\n\t\t}\n\t\tlet group, lists, groupData, batch;\n\t\tfor (const groupId in groupMeshInstances) {\n\t\t\tif (!groupMeshInstances.hasOwnProperty(groupId)) continue;\n\t\t\tgroup = groupMeshInstances[groupId];\n\t\t\tgroupData = this._batchGroups[groupId];\n\t\t\tif (!groupData) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tlists = this.prepare(group, groupData.dynamic, groupData.maxAabbSize, groupData._ui || groupData._sprite);\n\t\t\tfor (let i2 = 0; i2 < lists.length; i2++) {\n\t\t\t\tbatch = this.create(lists[i2], groupData.dynamic, parseInt(groupId, 10));\n\t\t\t\tif (batch) {\n\t\t\t\t\tbatch.addToLayers(this.scene, groupData.layers);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tprepare(meshInstances, dynamic, maxAabbSize = Number.POSITIVE_INFINITY, translucent) {\n\t\tif (meshInstances.length === 0) return [];\n\t\tconst halfMaxAabbSize = maxAabbSize * 0.5;\n\t\tconst maxInstanceCount = 1024;\n\t\tconst maxNumVertices = 4294967295;\n\t\tconst aabb3 = new BoundingBox();\n\t\tconst testAabb = new BoundingBox();\n\t\tlet skipTranslucentAabb = null;\n\t\tlet sf;\n\t\tconst lists = [];\n\t\tlet j = 0;\n\t\tif (translucent) {\n\t\t\tmeshInstances.sort((a, b) => {\n\t\t\t\treturn a.drawOrder - b.drawOrder;\n\t\t\t});\n\t\t}\n\t\tlet meshInstancesLeftA = meshInstances;\n\t\tlet meshInstancesLeftB;\n\t\tconst skipMesh = translucent ? function(mi) {\n\t\t\tif (skipTranslucentAabb) {\n\t\t\t\tskipTranslucentAabb.add(mi.aabb);\n\t\t\t} else {\n\t\t\t\tskipTranslucentAabb = mi.aabb.clone();\n\t\t\t}\n\t\t\tmeshInstancesLeftB.push(mi);\n\t\t} : function(mi) {\n\t\t\tmeshInstancesLeftB.push(mi);\n\t\t};\n\t\twhile (meshInstancesLeftA.length > 0) {\n\t\t\tlists[j] = [meshInstancesLeftA[0]];\n\t\t\tmeshInstancesLeftB = [];\n\t\t\tconst material = meshInstancesLeftA[0].material;\n\t\t\tconst layer = meshInstancesLeftA[0].layer;\n\t\t\tconst defs = meshInstancesLeftA[0]._shaderDefs;\n\t\t\tconst params = meshInstancesLeftA[0].parameters;\n\t\t\tconst stencil = meshInstancesLeftA[0].stencilFront;\n\t\t\tlet vertCount = meshInstancesLeftA[0].mesh.vertexBuffer.getNumVertices();\n\t\t\tconst drawOrder = meshInstancesLeftA[0].drawOrder;\n\t\t\taabb3.copy(meshInstancesLeftA[0].aabb);\n\t\t\tconst scaleSign = getScaleSign(meshInstancesLeftA[0]);\n\t\t\tconst vertexFormatBatchingHash = meshInstancesLeftA[0].mesh.vertexBuffer.format.batchingHash;\n\t\t\tconst indexed = meshInstancesLeftA[0].mesh.primitive[0].indexed;\n\t\t\tconst castShadow = meshInstancesLeftA[0].castShadow;\n\t\t\tconst shadowCascadeMask = meshInstancesLeftA[0].shadowCascadeMask;\n\t\t\tskipTranslucentAabb = null;\n\t\t\tfor (let i2 = 1; i2 < meshInstancesLeftA.length; i2++) {\n\t\t\t\tconst mi = meshInstancesLeftA[i2];\n\t\t\t\tif (dynamic && lists[j].length >= maxInstanceCount) {\n\t\t\t\t\tmeshInstancesLeftB = meshInstancesLeftB.concat(meshInstancesLeftA.slice(i2));\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif (material !== mi.material || layer !== mi.layer || vertexFormatBatchingHash !== mi.mesh.vertexBuffer.format.batchingHash || indexed !== mi.mesh.primitive[0].indexed || defs !== mi._shaderDefs || vertCount + mi.mesh.vertexBuffer.getNumVertices() > maxNumVertices) {\n\t\t\t\t\tskipMesh(mi);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\ttestAabb.copy(aabb3);\n\t\t\t\ttestAabb.add(mi.aabb);\n\t\t\t\tif (testAabb.halfExtents.x > halfMaxAabbSize || testAabb.halfExtents.y > halfMaxAabbSize || testAabb.halfExtents.z > halfMaxAabbSize) {\n\t\t\t\t\tskipMesh(mi);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (stencil) {\n\t\t\t\t\tif (!(sf = mi.stencilFront) || stencil.func !== sf.func || stencil.zpass !== sf.zpass) {\n\t\t\t\t\t\tskipMesh(mi);\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (scaleSign !== getScaleSign(mi)) {\n\t\t\t\t\tskipMesh(mi);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (castShadow !== mi.castShadow || shadowCascadeMask !== mi.shadowCascadeMask) {\n\t\t\t\t\tskipMesh(mi);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (!equalParamSets(params, mi.parameters)) {\n\t\t\t\t\tskipMesh(mi);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (translucent && skipTranslucentAabb && skipTranslucentAabb.intersects(mi.aabb) && mi.drawOrder !== drawOrder) {\n\t\t\t\t\tskipMesh(mi);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\taabb3.add(mi.aabb);\n\t\t\t\tvertCount += mi.mesh.vertexBuffer.getNumVertices();\n\t\t\t\tlists[j].push(mi);\n\t\t\t}\n\t\t\tj++;\n\t\t\tmeshInstancesLeftA = meshInstancesLeftB;\n\t\t}\n\t\treturn lists;\n\t}\n\tcollectBatchedMeshData(meshInstances, dynamic) {\n\t\tlet streams = null;\n\t\tlet batchNumVerts = 0;\n\t\tlet batchNumIndices = 0;\n\t\tlet material = null;\n\t\tfor (let i2 = 0; i2 < meshInstances.length; i2++) {\n\t\t\tif (meshInstances[i2].visible) {\n\t\t\t\tconst mesh = meshInstances[i2].mesh;\n\t\t\t\tconst numVerts = mesh.vertexBuffer.numVertices;\n\t\t\t\tbatchNumVerts += numVerts;\n\t\t\t\tif (mesh.primitive[0].indexed) {\n\t\t\t\t\tbatchNumIndices += mesh.primitive[0].count;\n\t\t\t\t} else {\n\t\t\t\t\tconst primitiveType = mesh.primitive[0].type;\n\t\t\t\t\tif (primitiveType === PRIMITIVE_TRIFAN || primitiveType === PRIMITIVE_TRISTRIP) {\n\t\t\t\t\t\tif (mesh.primitive[0].count === 4) {\n\t\t\t\t\t\t\tbatchNumIndices += 6;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!streams) {\n\t\t\t\t\tmaterial = meshInstances[i2].material;\n\t\t\t\t\tstreams = {};\n\t\t\t\t\tconst elems = mesh.vertexBuffer.format.elements;\n\t\t\t\t\tfor (let j = 0; j < elems.length; j++) {\n\t\t\t\t\t\tconst semantic = elems[j].name;\n\t\t\t\t\t\tstreams[semantic] = {\n\t\t\t\t\t\t\tnumComponents: elems[j].numComponents,\n\t\t\t\t\t\t\tdataType: elems[j].dataType,\n\t\t\t\t\t\t\tnormalize: elems[j].normalize,\n\t\t\t\t\t\t\tcount: 0\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\tif (dynamic) {\n\t\t\t\t\t\tstreams[SEMANTIC_BLENDINDICES] = {\n\t\t\t\t\t\t\tnumComponents: 1,\n\t\t\t\t\t\t\tdataType: TYPE_FLOAT32,\n\t\t\t\t\t\t\tnormalize: false,\n\t\t\t\t\t\t\tcount: 0\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\tstreams,\n\t\t\tbatchNumVerts,\n\t\t\tbatchNumIndices,\n\t\t\tmaterial\n\t\t};\n\t}\n\tcreate(meshInstances, dynamic, batchGroupId) {\n\t\tif (!this._init) {\n\t\t\tthis.vertexFormats = {};\n\t\t\tthis._init = true;\n\t\t}\n\t\tlet stream = null;\n\t\tlet semantic;\n\t\tlet mesh, numVerts;\n\t\tlet batch = null;\n\t\tconst batchData = this.collectBatchedMeshData(meshInstances, dynamic);\n\t\tif (batchData.streams) {\n\t\t\tconst streams = batchData.streams;\n\t\t\tlet material = batchData.material;\n\t\t\tconst batchNumVerts = batchData.batchNumVerts;\n\t\t\tconst batchNumIndices = batchData.batchNumIndices;\n\t\t\tbatch = new Batch(meshInstances, dynamic, batchGroupId);\n\t\t\tthis._batchList.push(batch);\n\t\t\tlet indexBase, indexBaseVertex, numIndices, indexData;\n\t\t\tlet verticesOffset = 0;\n\t\t\tlet indexOffset = 0;\n\t\t\tlet transform;\n\t\t\tconst indexArrayType = batchNumVerts <= 65535 ? Uint16Array : Uint32Array;\n\t\t\tconst indices = new indexArrayType(batchNumIndices);\n\t\t\tfor (semantic in streams) {\n\t\t\t\tstream = streams[semantic];\n\t\t\t\tstream.typeArrayType = typedArrayTypes[stream.dataType];\n\t\t\t\tstream.elementByteSize = typedArrayTypesByteSize[stream.dataType];\n\t\t\t\tstream.buffer = new stream.typeArrayType(batchNumVerts * stream.numComponents);\n\t\t\t}\n\t\t\tfor (let i2 = 0; i2 < meshInstances.length; i2++) {\n\t\t\t\tif (!meshInstances[i2].visible) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tmesh = meshInstances[i2].mesh;\n\t\t\t\tnumVerts = mesh.vertexBuffer.numVertices;\n\t\t\t\tif (!dynamic) {\n\t\t\t\t\ttransform = meshInstances[i2].node.getWorldTransform();\n\t\t\t\t}\n\t\t\t\tfor (semantic in streams) {\n\t\t\t\t\tif (semantic !== SEMANTIC_BLENDINDICES) {\n\t\t\t\t\t\tstream = streams[semantic];\n\t\t\t\t\t\tconst subarray = new stream.typeArrayType(stream.buffer.buffer, stream.elementByteSize * stream.count);\n\t\t\t\t\t\tconst totalComponents = mesh.getVertexStream(semantic, subarray) * stream.numComponents;\n\t\t\t\t\t\tstream.count += totalComponents;\n\t\t\t\t\t\tif (!dynamic && stream.numComponents >= 3) {\n\t\t\t\t\t\t\tif (semantic === SEMANTIC_POSITION) {\n\t\t\t\t\t\t\t\tconst m = transform.data;\n\t\t\t\t\t\t\t\tconst m0 = m[0];\n\t\t\t\t\t\t\t\tconst m12 = m[1];\n\t\t\t\t\t\t\t\tconst m22 = m[2];\n\t\t\t\t\t\t\t\tconst m4 = m[4];\n\t\t\t\t\t\t\t\tconst m5 = m[5];\n\t\t\t\t\t\t\t\tconst m6 = m[6];\n\t\t\t\t\t\t\t\tconst m8 = m[8];\n\t\t\t\t\t\t\t\tconst m9 = m[9];\n\t\t\t\t\t\t\t\tconst m10 = m[10];\n\t\t\t\t\t\t\t\tconst m122 = m[12];\n\t\t\t\t\t\t\t\tconst m13 = m[13];\n\t\t\t\t\t\t\t\tconst m14 = m[14];\n\t\t\t\t\t\t\t\tlet x3, y2, z2;\n\t\t\t\t\t\t\t\tfor (let j = 0; j < totalComponents; j += stream.numComponents) {\n\t\t\t\t\t\t\t\t\tx3 = subarray[j];\n\t\t\t\t\t\t\t\t\ty2 = subarray[j + 1];\n\t\t\t\t\t\t\t\t\tz2 = subarray[j + 2];\n\t\t\t\t\t\t\t\t\tsubarray[j] = x3 * m0 + y2 * m4 + z2 * m8 + m122;\n\t\t\t\t\t\t\t\t\tsubarray[j + 1] = x3 * m12 + y2 * m5 + z2 * m9 + m13;\n\t\t\t\t\t\t\t\t\tsubarray[j + 2] = x3 * m22 + y2 * m6 + z2 * m10 + m14;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if (semantic === SEMANTIC_NORMAL || semantic === SEMANTIC_TANGENT) {\n\t\t\t\t\t\t\t\tmat3.invertMat4(transform).transpose();\n\t\t\t\t\t\t\t\tconst [m0, m12, m22, m3, m4, m5, m6, m7, m8] = mat3.data;\n\t\t\t\t\t\t\t\tlet x3, y2, z2;\n\t\t\t\t\t\t\t\tfor (let j = 0; j < totalComponents; j += stream.numComponents) {\n\t\t\t\t\t\t\t\t\tx3 = subarray[j];\n\t\t\t\t\t\t\t\t\ty2 = subarray[j + 1];\n\t\t\t\t\t\t\t\t\tz2 = subarray[j + 2];\n\t\t\t\t\t\t\t\t\tsubarray[j] = x3 * m0 + y2 * m3 + z2 * m6;\n\t\t\t\t\t\t\t\t\tsubarray[j + 1] = x3 * m12 + y2 * m4 + z2 * m7;\n\t\t\t\t\t\t\t\t\tsubarray[j + 2] = x3 * m22 + y2 * m5 + z2 * m8;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (dynamic) {\n\t\t\t\t\tstream = streams[SEMANTIC_BLENDINDICES];\n\t\t\t\t\tfor (let j = 0; j < numVerts; j++) {\n\t\t\t\t\t\tstream.buffer[stream.count++] = i2;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (mesh.primitive[0].indexed) {\n\t\t\t\t\tindexBase = mesh.primitive[0].base;\n\t\t\t\t\tindexBaseVertex = mesh.primitive[0].baseVertex || 0;\n\t\t\t\t\tnumIndices = mesh.primitive[0].count;\n\t\t\t\t\tconst srcFormat = mesh.indexBuffer[0].getFormat();\n\t\t\t\t\tindexData = new typedArrayIndexFormats[srcFormat](mesh.indexBuffer[0].storage);\n\t\t\t\t} else {\n\t\t\t\t\tindexBaseVertex = 0;\n\t\t\t\t\tconst primitiveType = mesh.primitive[0].type;\n\t\t\t\t\tif (primitiveType === PRIMITIVE_TRIFAN || primitiveType === PRIMITIVE_TRISTRIP) {\n\t\t\t\t\t\tif (mesh.primitive[0].count === 4) {\n\t\t\t\t\t\t\tindexBase = 0;\n\t\t\t\t\t\t\tnumIndices = 6;\n\t\t\t\t\t\t\tindexData = primitiveType === PRIMITIVE_TRIFAN ? _triFanIndices : _triStripIndices;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnumIndices = 0;\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfor (let j = 0; j < numIndices; j++) {\n\t\t\t\t\tindices[j + indexOffset] = indexData[indexBase + j] + indexBaseVertex + verticesOffset;\n\t\t\t\t}\n\t\t\t\tindexOffset += numIndices;\n\t\t\t\tverticesOffset += numVerts;\n\t\t\t}\n\t\t\tmesh = new Mesh(this.device);\n\t\t\tfor (semantic in streams) {\n\t\t\t\tstream = streams[semantic];\n\t\t\t\tmesh.setVertexStream(semantic, stream.buffer, stream.numComponents, void 0, stream.dataType, stream.normalize);\n\t\t\t}\n\t\t\tif (indices.length > 0) {\n\t\t\t\tmesh.setIndices(indices);\n\t\t\t}\n\t\t\tmesh.update(PRIMITIVE_TRIANGLES, false);\n\t\t\tif (dynamic) {\n\t\t\t\tmaterial = material.clone();\n\t\t\t\tmaterial.update();\n\t\t\t}\n\t\t\tconst meshInstance = new MeshInstance(mesh, material, this.rootNode);\n\t\t\tmeshInstance.castShadow = batch.origMeshInstances[0].castShadow;\n\t\t\tmeshInstance.parameters = batch.origMeshInstances[0].parameters;\n\t\t\tmeshInstance.layer = batch.origMeshInstances[0].layer;\n\t\t\tmeshInstance._shaderDefs = batch.origMeshInstances[0]._shaderDefs;\n\t\t\tmeshInstance.batching = true;\n\t\t\tmeshInstance.cull = batch.origMeshInstances[0].cull;\n\t\t\tconst batchGroup = this._batchGroups[batchGroupId];\n\t\t\tif (batchGroup && batchGroup._ui) {\n\t\t\t\tmeshInstance.cull = false;\n\t\t\t}\n\t\t\tif (dynamic) {\n\t\t\t\tconst nodes = [];\n\t\t\t\tfor (let i2 = 0; i2 < batch.origMeshInstances.length; i2++) {\n\t\t\t\t\tnodes.push(batch.origMeshInstances[i2].node);\n\t\t\t\t}\n\t\t\t\tmeshInstance.skinInstance = new SkinBatchInstance(this.device, nodes, this.rootNode);\n\t\t\t}\n\t\t\tmeshInstance._updateAabb = false;\n\t\t\tmeshInstance.drawOrder = batch.origMeshInstances[0].drawOrder;\n\t\t\tmeshInstance.stencilFront = batch.origMeshInstances[0].stencilFront;\n\t\t\tmeshInstance.stencilBack = batch.origMeshInstances[0].stencilBack;\n\t\t\tmeshInstance.flipFacesFactor = getScaleSign(batch.origMeshInstances[0]);\n\t\t\tmeshInstance.castShadow = batch.origMeshInstances[0].castShadow;\n\t\t\tmeshInstance.shadowCascadeMask = batch.origMeshInstances[0].shadowCascadeMask;\n\t\t\tbatch.meshInstance = meshInstance;\n\t\t\tbatch.updateBoundingBox();\n\t\t}\n\t\treturn batch;\n\t}\n\tupdateAll() {\n\t\tif (this._dirtyGroups.length > 0) {\n\t\t\tthis.generate(this._dirtyGroups);\n\t\t}\n\t\tfor (let i2 = 0; i2 < this._batchList.length; i2++) {\n\t\t\tif (!this._batchList[i2].dynamic) continue;\n\t\t\tthis._batchList[i2].updateBoundingBox();\n\t\t}\n\t}\n\tclone(batch, clonedMeshInstances) {\n\t}\n\tdestroyBatch(batch) {\n\t\tbatch.destroy(this.scene, this._batchGroups[batch.batchGroupId].layers);\n\t}\n};\n\nvar _colorUniformName = \"uSceneColorMap\";\nvar FramePassColorGrab = class extends FramePass {\n\tcolorRenderTarget = null;\n\tsource = null;\n\tdestroy() {\n\t\tsuper.destroy();\n\t\tthis.releaseRenderTarget(this.colorRenderTarget);\n\t}\n\tshouldReallocate(targetRT, sourceTexture, sourceFormat) {\n\t\tconst targetFormat = targetRT?.colorBuffer.format;\n\t\tif (targetFormat !== sourceFormat) {\n\t\t\treturn true;\n\t\t}\n\t\tconst width = sourceTexture?.width || this.device.width;\n\t\tconst height = sourceTexture?.height || this.device.height;\n\t\treturn !targetRT || width !== targetRT.width || height !== targetRT.height;\n\t}\n\tallocateRenderTarget(renderTarget, sourceRenderTarget, device, format) {\n\t\tconst texture = new Texture(device, {\n\t\t\tname: _colorUniformName,\n\t\t\tformat,\n\t\t\twidth: sourceRenderTarget ? sourceRenderTarget.colorBuffer.width : device.width,\n\t\t\theight: sourceRenderTarget ? sourceRenderTarget.colorBuffer.height : device.height,\n\t\t\tmipmaps: true,\n\t\t\tminFilter: FILTER_LINEAR_MIPMAP_LINEAR,\n\t\t\tmagFilter: FILTER_LINEAR,\n\t\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE\n\t\t});\n\t\tif (renderTarget) {\n\t\t\trenderTarget.destroyFrameBuffers();\n\t\t\trenderTarget._colorBuffer = texture;\n\t\t\trenderTarget._colorBuffers = [texture];\n\t\t\trenderTarget.evaluateDimensions();\n\t\t} else {\n\t\t\trenderTarget = new RenderTarget({\n\t\t\t\tname: \"ColorGrabRT\",\n\t\t\t\tcolorBuffer: texture,\n\t\t\t\tdepth: false,\n\t\t\t\tstencil: false,\n\t\t\t\tautoResolve: false\n\t\t\t});\n\t\t}\n\t\treturn renderTarget;\n\t}\n\treleaseRenderTarget(rt) {\n\t\tif (rt) {\n\t\t\trt.destroyTextureBuffers();\n\t\t\trt.destroy();\n\t\t}\n\t}\n\tframeUpdate() {\n\t\tconst device = this.device;\n\t\tconst sourceRt = this.source;\n\t\tconst sourceFormat = sourceRt?.colorBuffer.format ?? this.device.backBufferFormat;\n\t\tif (this.shouldReallocate(this.colorRenderTarget, sourceRt?.colorBuffer, sourceFormat)) {\n\t\t\tthis.releaseRenderTarget(this.colorRenderTarget);\n\t\t\tthis.colorRenderTarget = this.allocateRenderTarget(this.colorRenderTarget, sourceRt, device, sourceFormat);\n\t\t}\n\t\tconst colorBuffer = this.colorRenderTarget.colorBuffer;\n\t\tdevice.scope.resolve(_colorUniformName).setValue(colorBuffer);\n\t}\n\texecute() {\n\t\tconst device = this.device;\n\t\tconst sourceRt = this.source;\n\t\tconst colorBuffer = this.colorRenderTarget.colorBuffer;\n\t\tif (device.isWebGPU) {\n\t\t\tdevice.copyRenderTarget(sourceRt, this.colorRenderTarget, true, false);\n\t\t\tdevice.mipmapRenderer.generate(this.colorRenderTarget.colorBuffer.impl);\n\t\t} else {\n\t\t\tdevice.copyRenderTarget(sourceRt, this.colorRenderTarget, true, false);\n\t\t\tdevice.activeTexture(device.maxCombinedTextures - 1);\n\t\t\tdevice.bindTexture(colorBuffer);\n\t\t\tdevice.gl.generateMipmap(colorBuffer.impl._glTarget);\n\t\t}\n\t}\n};\n\nvar _depthUniformName = \"uSceneDepthMap\";\nvar FramePassDepthGrab = class extends FramePass {\n\tdepthRenderTarget = null;\n\tcamera = null;\n\tconstructor(device, camera) {\n\t\tsuper(device);\n\t\tthis.camera = camera;\n\t}\n\tdestroy() {\n\t\tsuper.destroy();\n\t\tthis.releaseRenderTarget(this.depthRenderTarget);\n\t}\n\tshouldReallocate(targetRT, sourceTexture) {\n\t\tconst width = sourceTexture?.width || this.device.width;\n\t\tconst height = sourceTexture?.height || this.device.height;\n\t\treturn !targetRT || width !== targetRT.width || height !== targetRT.height;\n\t}\n\tallocateRenderTarget(renderTarget, sourceRenderTarget, device, format, isDepth) {\n\t\tconst texture = Texture.createDataTexture2D(\n\t\t\tdevice,\n\t\t\t_depthUniformName,\n\t\t\tsourceRenderTarget ? sourceRenderTarget.colorBuffer.width : device.width,\n\t\t\tsourceRenderTarget ? sourceRenderTarget.colorBuffer.height : device.height,\n\t\t\tformat\n\t\t);\n\t\tif (renderTarget) {\n\t\t\trenderTarget.destroyFrameBuffers();\n\t\t\tif (isDepth) {\n\t\t\t\trenderTarget._depthBuffer = texture;\n\t\t\t} else {\n\t\t\t\trenderTarget._colorBuffer = texture;\n\t\t\t\trenderTarget._colorBuffers = [texture];\n\t\t\t}\n\t\t\trenderTarget.evaluateDimensions();\n\t\t} else {\n\t\t\trenderTarget = new RenderTarget({\n\t\t\t\tname: \"DepthGrabRT\",\n\t\t\t\tcolorBuffer: isDepth ? null : texture,\n\t\t\t\tdepthBuffer: isDepth ? texture : null,\n\t\t\t\tdepth: !isDepth,\n\t\t\t\tstencil: device.supportsStencil,\n\t\t\t\tautoResolve: false\n\t\t\t});\n\t\t}\n\t\treturn renderTarget;\n\t}\n\treleaseRenderTarget(rt) {\n\t\tif (rt) {\n\t\t\trt.destroyTextureBuffers();\n\t\t\trt.destroy();\n\t\t}\n\t}\n\tbefore() {\n\t\tconst camera = this.camera;\n\t\tconst device = this.device;\n\t\tconst destinationRt = camera?.renderTarget ?? device.backBuffer;\n\t\tlet useDepthBuffer = true;\n\t\tlet format = destinationRt.stencil ? PIXELFORMAT_DEPTHSTENCIL : PIXELFORMAT_DEPTH;\n\t\tif (device.isWebGPU) {\n\t\t\tconst numSamples = destinationRt.samples;\n\t\t\tif (numSamples > 1) {\n\t\t\t\tformat = PIXELFORMAT_R32F;\n\t\t\t\tuseDepthBuffer = false;\n\t\t\t}\n\t\t}\n\t\tconst sourceTexture = camera.renderTarget?.depthBuffer ?? camera.renderTarget?.colorBuffer;\n\t\tif (this.shouldReallocate(this.depthRenderTarget, sourceTexture)) {\n\t\t\tthis.releaseRenderTarget(this.depthRenderTarget);\n\t\t\tthis.depthRenderTarget = this.allocateRenderTarget(this.depthRenderTarget, camera.renderTarget, device, format, useDepthBuffer);\n\t\t}\n\t\tconst colorBuffer = useDepthBuffer ? this.depthRenderTarget.depthBuffer : this.depthRenderTarget.colorBuffer;\n\t\tdevice.scope.resolve(_depthUniformName).setValue(colorBuffer);\n\t\tcamera.publishSceneDepthMap(colorBuffer, device.renderVersion);\n\t}\n\texecute() {\n\t\tconst device = this.device;\n\t\tif (device.isWebGL2 && device.renderTarget.samples > 1) {\n\t\t\tconst src = device.renderTarget.impl._glFrameBuffer;\n\t\t\tconst dest = this.depthRenderTarget;\n\t\t\tdevice.renderTarget = dest;\n\t\t\tdevice.updateBegin();\n\t\t\tthis.depthRenderTarget.impl.internalResolve(device, src, dest.impl._glFrameBuffer, this.depthRenderTarget, device.gl.DEPTH_BUFFER_BIT);\n\t\t} else {\n\t\t\tdevice.copyRenderTarget(device.renderTarget, this.depthRenderTarget, false, true);\n\t\t}\n\t}\n};\n\nvar CameraShaderParams = class {\n\t_gammaCorrection = GAMMA_SRGB;\n\t_toneMapping = TONEMAP_LINEAR;\n\t_srgbRenderTarget = false;\n\t_ssaoEnabled = false;\n\t_fog = FOG_NONE;\n\t_sceneDepthMapLinear = false;\n\t_sceneDepthMapPacked = false;\n\t_sceneDepthMapReciprocal = false;\n\t_sceneTextures = [];\n\t_hash;\n\t_defines = /* @__PURE__ */ new Map();\n\t_definesDirty = true;\n\tget hash() {\n\t\tif (this._hash === void 0) {\n\t\t\tconst key = `${this.gammaCorrection}_${this.toneMapping}_${this.srgbRenderTarget}_${this.fog}_${this.ssaoEnabled}_${this.sceneDepthMapLinear}_${this.sceneDepthMapPacked}_${this.sceneDepthMapReciprocal}_${this._sceneTextures.join(\"-\")}`;\n\t\t\tthis._hash = hashCode(key);\n\t\t}\n\t\treturn this._hash;\n\t}\n\tget defines() {\n\t\tconst defines = this._defines;\n\t\tif (this._definesDirty) {\n\t\t\tthis._definesDirty = false;\n\t\t\tdefines.clear();\n\t\t\tif (this._sceneDepthMapLinear) {\n\t\t\t\tdefines.set(\"SCENE_DEPTHMAP_LINEAR\", \"\");\n\t\t\t\tif (this._sceneDepthMapPacked) defines.set(\"SCENE_DEPTHMAP_PACKED\", \"\");\n\t\t\t\tif (this._sceneDepthMapReciprocal) defines.set(\"SCENE_DEPTHMAP_RECIPROCAL\", \"\");\n\t\t\t}\n\t\t\tthis._sceneTextures.forEach((name, index) => {\n\t\t\t\tconst upperName = name.toUpperCase();\n\t\t\t\tdefines.set(`SCENE_TEXTURE_${upperName}`, \"\");\n\t\t\t\tdefines.set(`{SCENE_TEXTURE_${upperName}_SLOT}`, String(index + 1));\n\t\t\t});\n\t\t\tif (this.shaderOutputGamma === GAMMA_SRGB) defines.set(\"SCENE_COLORMAP_GAMMA\", \"\");\n\t\t\tdefines.set(\"FOG\", this._fog.toUpperCase());\n\t\t\tdefines.set(\"TONEMAP\", tonemapNames[this._toneMapping]);\n\t\t\tdefines.set(\"GAMMA\", gammaNames[this.shaderOutputGamma]);\n\t\t}\n\t\treturn defines;\n\t}\n\tmarkDirty() {\n\t\tthis._hash = void 0;\n\t\tthis._definesDirty = true;\n\t}\n\tset fog(type) {\n\t\tif (this._fog !== type) {\n\t\t\tthis._fog = type;\n\t\t\tthis.markDirty();\n\t\t}\n\t}\n\tget fog() {\n\t\treturn this._fog;\n\t}\n\tset ssaoEnabled(value) {\n\t\tif (this._ssaoEnabled !== value) {\n\t\t\tthis._ssaoEnabled = value;\n\t\t\tthis.markDirty();\n\t\t}\n\t}\n\tget ssaoEnabled() {\n\t\treturn this._ssaoEnabled;\n\t}\n\tset gammaCorrection(value) {\n\t\tthis._gammaCorrectionAssigned = true;\n\t\tif (this._gammaCorrection !== value) {\n\t\t\tthis._gammaCorrection = value;\n\t\t\tthis.markDirty();\n\t\t}\n\t}\n\tget gammaCorrection() {\n\t\treturn this._gammaCorrection;\n\t}\n\tset toneMapping(value) {\n\t\tif (this._toneMapping !== value) {\n\t\t\tthis._toneMapping = value;\n\t\t\tthis.markDirty();\n\t\t}\n\t}\n\tget toneMapping() {\n\t\treturn this._toneMapping;\n\t}\n\tset srgbRenderTarget(value) {\n\t\tif (this._srgbRenderTarget !== value) {\n\t\t\tthis._srgbRenderTarget = value;\n\t\t\tthis.markDirty();\n\t\t}\n\t}\n\tget srgbRenderTarget() {\n\t\treturn this._srgbRenderTarget;\n\t}\n\tset sceneDepthMapLinear(value) {\n\t\tif (this._sceneDepthMapLinear !== value) {\n\t\t\tthis._sceneDepthMapLinear = value;\n\t\t\tthis.markDirty();\n\t\t}\n\t}\n\tget sceneDepthMapLinear() {\n\t\treturn this._sceneDepthMapLinear;\n\t}\n\tset sceneDepthMapPacked(value) {\n\t\tif (this._sceneDepthMapPacked !== value) {\n\t\t\tthis._sceneDepthMapPacked = value;\n\t\t\tthis.markDirty();\n\t\t}\n\t}\n\tget sceneDepthMapPacked() {\n\t\treturn this._sceneDepthMapPacked;\n\t}\n\tset sceneDepthMapReciprocal(value) {\n\t\tif (this._sceneDepthMapReciprocal !== value) {\n\t\t\tthis._sceneDepthMapReciprocal = value;\n\t\t\tthis.markDirty();\n\t\t}\n\t}\n\tget sceneDepthMapReciprocal() {\n\t\treturn this._sceneDepthMapReciprocal;\n\t}\n\tset sceneTextures(value) {\n\t\tconst names = value ?? [];\n\t\tif (!array.equals(this._sceneTextures, names)) {\n\t\t\tthis._sceneTextures = names.slice();\n\t\t\tthis.markDirty();\n\t\t}\n\t}\n\tget sceneTextures() {\n\t\treturn this._sceneTextures;\n\t}\n\tget shaderOutputGamma() {\n\t\tconst gammaOutput = this._gammaCorrection === GAMMA_SRGB && !this._srgbRenderTarget;\n\t\treturn gammaOutput ? GAMMA_SRGB : GAMMA_NONE;\n\t}\n};\n\nvar _deviceCoord = new Vec3();\nvar _halfSize2 = new Vec3();\nvar _point = new Vec3();\nvar _invViewProjMat = new Mat4();\nvar _xrViewProjMat = new Mat4();\nvar _xrViewFrustum = new Frustum();\nvar _frustumViewInvMat = new Mat4();\nvar _frustumViewMat = new Mat4();\nvar _frustumViewProjMat = new Mat4();\nvar _frustumPoints = [new Vec3(), new Vec3(), new Vec3(), new Vec3(), new Vec3(), new Vec3(), new Vec3(), new Vec3()];\nvar Camera = class _Camera {\n\tstatic _flipYProjectionMatrix = new Mat4().setScale(1, -1, 1);\n\tstatic _webGpuDepthRangeMatrix = new Mat4().set([\n\t\t1,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t1,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0.5,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0.5,\n\t\t1\n\t]);\n\tstatic _applyShaderProjectionScratch = new Mat4();\n\tstatic applyShaderProjectionTransform(projection, out, flipY, applyWebGpuDepthRange) {\n\t\tif (!flipY && !applyWebGpuDepthRange) {\n\t\t\tout.copy(projection);\n\t\t\treturn out;\n\t\t}\n\t\tif (flipY && applyWebGpuDepthRange) {\n\t\t\tconst scratch = _Camera._applyShaderProjectionScratch;\n\t\t\tscratch.mul2(_Camera._flipYProjectionMatrix, projection);\n\t\t\tout.mul2(_Camera._webGpuDepthRangeMatrix, scratch);\n\t\t\treturn out;\n\t\t}\n\t\tif (flipY) {\n\t\t\tout.mul2(_Camera._flipYProjectionMatrix, projection);\n\t\t\treturn out;\n\t\t}\n\t\tout.mul2(_Camera._webGpuDepthRangeMatrix, projection);\n\t\treturn out;\n\t}\n\tshaderPassInfo = null;\n\trenderPassColorGrab = null;\n\trenderPassDepthGrab = null;\n\tfogParams = null;\n\tshaderParams = new CameraShaderParams();\n\tframePasses = [];\n\tbeforePasses = [];\n\tsceneDepthMap = null;\n\tsceneDepthMapVersion = -1;\n\tjitter = 0;\n\tdevice;\n\tconstructor(graphicsDevice) {\n\t\tthis.device = graphicsDevice;\n\t\tthis._aspectRatio = 16 / 9;\n\t\tthis._aspectRatioMode = ASPECT_AUTO;\n\t\tthis._calculateProjection = null;\n\t\tthis._calculateTransform = null;\n\t\tthis._clearColor = new Color(0.75, 0.75, 0.75, 1);\n\t\tthis._clearColorBuffer = true;\n\t\tthis._clearDepth = 1;\n\t\tthis._clearDepthBuffer = true;\n\t\tthis._clearStencil = 0;\n\t\tthis._clearStencilBuffer = true;\n\t\tthis._cullFaces = true;\n\t\tthis._farClip = 1e3;\n\t\tthis._flipFaces = false;\n\t\tthis._fov = 45;\n\t\tthis._frustumCulling = true;\n\t\tthis._horizontalFov = false;\n\t\tthis._layers = [LAYERID_WORLD, LAYERID_DEPTH, LAYERID_SKYBOX, LAYERID_UI, LAYERID_IMMEDIATE];\n\t\tthis._layersSet = new Set(this._layers);\n\t\tthis._nearClip = 0.1;\n\t\tthis._node = null;\n\t\tthis._orthoHeight = 10;\n\t\tthis._projection = PROJECTION_PERSPECTIVE;\n\t\tthis._projectionOffset = new Vec2();\n\t\tthis._rect = new Vec4(0, 0, 1, 1);\n\t\tthis._renderTarget = null;\n\t\tthis._scissorRect = new Vec4(0, 0, 1, 1);\n\t\tthis._scissorRectClear = false;\n\t\tthis._aperture = 16;\n\t\tthis._shutter = 1 / 1e3;\n\t\tthis._sensitivity = 1e3;\n\t\tthis._projMat = new Mat4();\n\t\tthis._projMatDirty = true;\n\t\tthis._projMatSkybox = new Mat4();\n\t\tthis._viewMat = new Mat4();\n\t\tthis._viewMatDirty = true;\n\t\tthis._viewProjMat = new Mat4();\n\t\tthis._viewProjMatDirty = true;\n\t\tthis._shaderMatricesVersion = 0;\n\t\tthis._viewProjInverse = new Mat4();\n\t\tthis._viewProjCurrent = null;\n\t\tthis._viewProjPrevious = new Mat4();\n\t\tthis._jitters = [0, 0, 0, 0];\n\t\tthis.frustum = new Frustum();\n\t\tthis._cullLayers = /* @__PURE__ */ new Set();\n\t\tthis._xrViews = null;\n\t\tthis._xrProperties = {\n\t\t\thorizontalFov: this._horizontalFov,\n\t\t\tfov: this._fov,\n\t\t\taspectRatio: this._aspectRatio,\n\t\t\tfarClip: this._farClip,\n\t\t\tnearClip: this._nearClip\n\t\t};\n\t}\n\tdestroy() {\n\t\tthis.renderPassColorGrab?.destroy();\n\t\tthis.renderPassColorGrab = null;\n\t\tthis.renderPassDepthGrab?.destroy();\n\t\tthis.renderPassDepthGrab = null;\n\t\tthis.framePasses.length = 0;\n\t\tthis.beforePasses.length = 0;\n\t\tthis.sceneDepthMap = null;\n\t}\n\tpublishSceneDepthMap(texture, renderVersion) {\n\t\tthis.sceneDepthMap = texture;\n\t\tthis.sceneDepthMapVersion = renderVersion;\n\t}\n\t_storeShaderMatrices(viewProjMat2, jitterX, jitterY, renderVersion) {\n\t\tif (this._shaderMatricesVersion !== renderVersion) {\n\t\t\tthis._shaderMatricesVersion = renderVersion;\n\t\t\tthis._viewProjPrevious.copy(this._viewProjCurrent ?? viewProjMat2);\n\t\t\tthis._viewProjCurrent ?? (this._viewProjCurrent = new Mat4());\n\t\t\tthis._viewProjCurrent.copy(viewProjMat2);\n\t\t\tthis._viewProjInverse.invert(viewProjMat2);\n\t\t\tthis._jitters[2] = this._jitters[0];\n\t\t\tthis._jitters[3] = this._jitters[1];\n\t\t\tthis._jitters[0] = jitterX;\n\t\t\tthis._jitters[1] = jitterY;\n\t\t}\n\t}\n\tget fullSizeClearRect() {\n\t\tconst rect = this._scissorRectClear ? this.scissorRect : this._rect;\n\t\treturn rect.x === 0 && rect.y === 0 && rect.z === 1 && rect.w === 1;\n\t}\n\tset aspectRatio(newValue) {\n\t\tif (this._aspectRatio !== newValue) {\n\t\t\tthis._aspectRatio = newValue;\n\t\t\tthis._projMatDirty = true;\n\t\t}\n\t}\n\tget aspectRatio() {\n\t\tif (this.xrActive) return this._xrProperties.aspectRatio;\n\t\tif (this._aspectRatioMode === ASPECT_AUTO) {\n\t\t\tconst newValue = this.calculateAspectRatio();\n\t\t\tif (this._aspectRatio !== newValue) {\n\t\t\t\tthis._aspectRatio = newValue;\n\t\t\t\tthis._projMatDirty = true;\n\t\t\t}\n\t\t}\n\t\treturn this._aspectRatio;\n\t}\n\tset aspectRatioMode(newValue) {\n\t\tif (this._aspectRatioMode !== newValue) {\n\t\t\tthis._aspectRatioMode = newValue;\n\t\t\tthis._projMatDirty = true;\n\t\t}\n\t}\n\tget aspectRatioMode() {\n\t\treturn this._aspectRatioMode;\n\t}\n\tset calculateProjection(newValue) {\n\t\tthis._calculateProjection = newValue;\n\t\tthis._projMatDirty = true;\n\t}\n\tget calculateProjection() {\n\t\treturn this._calculateProjection;\n\t}\n\tset calculateTransform(newValue) {\n\t\tthis._calculateTransform = newValue;\n\t}\n\tget calculateTransform() {\n\t\treturn this._calculateTransform;\n\t}\n\tset clearColor(newValue) {\n\t\tthis._clearColor.copy(newValue);\n\t}\n\tget clearColor() {\n\t\treturn this._clearColor;\n\t}\n\tset clearColorBuffer(newValue) {\n\t\tthis._clearColorBuffer = newValue;\n\t}\n\tget clearColorBuffer() {\n\t\treturn this._clearColorBuffer;\n\t}\n\tset clearDepth(newValue) {\n\t\tthis._clearDepth = newValue;\n\t}\n\tget clearDepth() {\n\t\treturn this._clearDepth;\n\t}\n\tset clearDepthBuffer(newValue) {\n\t\tthis._clearDepthBuffer = newValue;\n\t}\n\tget clearDepthBuffer() {\n\t\treturn this._clearDepthBuffer;\n\t}\n\tset clearStencil(newValue) {\n\t\tthis._clearStencil = newValue;\n\t}\n\tget clearStencil() {\n\t\treturn this._clearStencil;\n\t}\n\tset clearStencilBuffer(newValue) {\n\t\tthis._clearStencilBuffer = newValue;\n\t}\n\tget clearStencilBuffer() {\n\t\treturn this._clearStencilBuffer;\n\t}\n\tset cullFaces(newValue) {\n\t\tthis._cullFaces = newValue;\n\t}\n\tget cullFaces() {\n\t\treturn this._cullFaces;\n\t}\n\tset farClip(newValue) {\n\t\tif (this._farClip !== newValue) {\n\t\t\tthis._farClip = newValue;\n\t\t\tthis._projMatDirty = true;\n\t\t}\n\t}\n\tget farClip() {\n\t\treturn this.xrActive ? this._xrProperties.farClip : this._farClip;\n\t}\n\tset flipFaces(newValue) {\n\t\tthis._flipFaces = newValue;\n\t}\n\tget flipFaces() {\n\t\treturn this._flipFaces;\n\t}\n\tset fov(newValue) {\n\t\tif (this._fov !== newValue) {\n\t\t\tthis._fov = newValue;\n\t\t\tthis._projMatDirty = true;\n\t\t}\n\t}\n\tget fov() {\n\t\treturn this.xrActive ? this._xrProperties.fov : this._fov;\n\t}\n\tset frustumCulling(newValue) {\n\t\tthis._frustumCulling = newValue;\n\t}\n\tget frustumCulling() {\n\t\treturn this._frustumCulling;\n\t}\n\tset horizontalFov(newValue) {\n\t\tif (this._horizontalFov !== newValue) {\n\t\t\tthis._horizontalFov = newValue;\n\t\t\tthis._projMatDirty = true;\n\t\t}\n\t}\n\tget horizontalFov() {\n\t\treturn this.xrActive ? this._xrProperties.horizontalFov : this._horizontalFov;\n\t}\n\tset layers(newValue) {\n\t\tthis._layers = newValue.slice(0);\n\t\tthis._layersSet = new Set(this._layers);\n\t}\n\tget layers() {\n\t\treturn this._layers;\n\t}\n\tget layersSet() {\n\t\treturn this._layersSet;\n\t}\n\tset nearClip(newValue) {\n\t\tif (this._nearClip !== newValue) {\n\t\t\tthis._nearClip = newValue;\n\t\t\tthis._projMatDirty = true;\n\t\t}\n\t}\n\tget nearClip() {\n\t\treturn this.xrActive ? this._xrProperties.nearClip : this._nearClip;\n\t}\n\tset node(newValue) {\n\t\tthis._node = newValue;\n\t}\n\tget node() {\n\t\treturn this._node;\n\t}\n\tset orthoHeight(newValue) {\n\t\tif (this._orthoHeight !== newValue) {\n\t\t\tthis._orthoHeight = newValue;\n\t\t\tthis._projMatDirty = true;\n\t\t}\n\t}\n\tget orthoHeight() {\n\t\treturn this._orthoHeight;\n\t}\n\tset projection(newValue) {\n\t\tif (this._projection !== newValue) {\n\t\t\tthis._projection = newValue;\n\t\t\tthis._projMatDirty = true;\n\t\t}\n\t}\n\tget projection() {\n\t\treturn this._projection;\n\t}\n\tget projectionMatrix() {\n\t\tthis._evaluateProjectionMatrix();\n\t\treturn this._projMat;\n\t}\n\tset projectionOffset(newValue) {\n\t\tthis._projectionOffset.copy(newValue);\n\t\tthis._projMatDirty = true;\n\t}\n\tget projectionOffset() {\n\t\treturn this._projectionOffset;\n\t}\n\tset rect(newValue) {\n\t\tthis._rect.copy(newValue);\n\t\tthis._projMatDirty = true;\n\t}\n\tget rect() {\n\t\treturn this._rect;\n\t}\n\tset renderTarget(newValue) {\n\t\tthis._renderTarget = newValue;\n\t\tthis._projMatDirty = true;\n\t}\n\tget renderTarget() {\n\t\treturn this._renderTarget;\n\t}\n\tset scissorRect(newValue) {\n\t\tthis._scissorRect.copy(newValue);\n\t}\n\tget scissorRect() {\n\t\treturn this._scissorRect;\n\t}\n\tget viewMatrix() {\n\t\tif (this._viewMatDirty) {\n\t\t\tconst wtm = this._node.getWorldTransform();\n\t\t\tthis._viewMat.copy(wtm).invert();\n\t\t\tthis._viewMatDirty = false;\n\t\t}\n\t\treturn this._viewMat;\n\t}\n\tset aperture(newValue) {\n\t\tthis._aperture = newValue;\n\t}\n\tget aperture() {\n\t\treturn this._aperture;\n\t}\n\tset sensitivity(newValue) {\n\t\tthis._sensitivity = newValue;\n\t}\n\tget sensitivity() {\n\t\treturn this._sensitivity;\n\t}\n\tset shutter(newValue) {\n\t\tthis._shutter = newValue;\n\t}\n\tget shutter() {\n\t\treturn this._shutter;\n\t}\n\tset xrViews(value) {\n\t\tif (value !== null !== (this._xrViews !== null)) {\n\t\t\tthis._projMatDirty = true;\n\t\t}\n\t\tthis._xrViews = value;\n\t}\n\tget xrViews() {\n\t\treturn this._xrViews;\n\t}\n\tget xrActive() {\n\t\treturn this._xrViews !== null;\n\t}\n\taddCullLayer(layer) {\n\t\tconst first = this._cullLayers.size === 0;\n\t\tthis._cullLayers.add(layer);\n\t\treturn first;\n\t}\n\tget cullLayers() {\n\t\treturn this._cullLayers;\n\t}\n\tclearCullLayers() {\n\t\tthis._cullLayers.clear();\n\t}\n\tcalculateAspectRatio(rt) {\n\t\tconst target2 = rt ?? this._renderTarget;\n\t\tconst width = target2 ? target2.width : this.device.width;\n\t\tconst height = target2 ? target2.height : this.device.height;\n\t\treturn width * this._rect.z / (height * this._rect.w);\n\t}\n\tclone() {\n\t\treturn new _Camera(this.device).copy(this);\n\t}\n\tcopy(other) {\n\t\tthis._aspectRatio = other._aspectRatio;\n\t\tthis._farClip = other._farClip;\n\t\tthis._fov = other._fov;\n\t\tthis._horizontalFov = other._horizontalFov;\n\t\tthis._nearClip = other._nearClip;\n\t\tthis._xrProperties.aspectRatio = other._xrProperties.aspectRatio;\n\t\tthis._xrProperties.farClip = other._xrProperties.farClip;\n\t\tthis._xrProperties.fov = other._xrProperties.fov;\n\t\tthis._xrProperties.horizontalFov = other._xrProperties.horizontalFov;\n\t\tthis._xrProperties.nearClip = other._xrProperties.nearClip;\n\t\tthis.aspectRatioMode = other.aspectRatioMode;\n\t\tthis.calculateProjection = other.calculateProjection;\n\t\tthis.calculateTransform = other.calculateTransform;\n\t\tthis.clearColor = other.clearColor;\n\t\tthis.clearColorBuffer = other.clearColorBuffer;\n\t\tthis.clearDepth = other.clearDepth;\n\t\tthis.clearDepthBuffer = other.clearDepthBuffer;\n\t\tthis.clearStencil = other.clearStencil;\n\t\tthis.clearStencilBuffer = other.clearStencilBuffer;\n\t\tthis.cullFaces = other.cullFaces;\n\t\tthis.flipFaces = other.flipFaces;\n\t\tthis.frustumCulling = other.frustumCulling;\n\t\tthis.layers = other.layers;\n\t\tthis.orthoHeight = other.orthoHeight;\n\t\tthis.projection = other.projection;\n\t\tthis.projectionOffset = other.projectionOffset;\n\t\tthis.rect = other.rect;\n\t\tthis.renderTarget = other.renderTarget;\n\t\tthis.scissorRect = other.scissorRect;\n\t\tthis.aperture = other.aperture;\n\t\tthis.shutter = other.shutter;\n\t\tthis.sensitivity = other.sensitivity;\n\t\tthis.shaderPassInfo = other.shaderPassInfo;\n\t\tthis.jitter = other.jitter;\n\t\tthis._projMatDirty = true;\n\t\treturn this;\n\t}\n\t_enableRenderPassColorGrab(device, enable) {\n\t\tif (enable) {\n\t\t\tif (!this.renderPassColorGrab) {\n\t\t\t\tthis.renderPassColorGrab = new FramePassColorGrab(device);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.renderPassColorGrab?.destroy();\n\t\t\tthis.renderPassColorGrab = null;\n\t\t}\n\t}\n\t_enableRenderPassDepthGrab(device, renderer, enable) {\n\t\tif (enable) {\n\t\t\tif (!this.renderPassDepthGrab) {\n\t\t\t\tthis.renderPassDepthGrab = new FramePassDepthGrab(device, this);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.renderPassDepthGrab?.destroy();\n\t\t\tthis.renderPassDepthGrab = null;\n\t\t}\n\t}\n\t_updateViewProjMat() {\n\t\tif (this._projMatDirty || this._viewMatDirty || this._viewProjMatDirty) {\n\t\t\tthis._viewProjMat.mul2(this.projectionMatrix, this.viewMatrix);\n\t\t\tthis._viewProjMatDirty = false;\n\t\t}\n\t}\n\tupdateViewTransforms() {\n\t\tconst views = this.xrViews;\n\t\tif (!views) {\n\t\t\treturn;\n\t\t}\n\t\tconst parentWorldTransform = this._node?.parent?.getWorldTransform() ?? null;\n\t\tfor (let i2 = 0; i2 < views.length; i2++) {\n\t\t\tviews[i2].updateTransforms(parentWorldTransform);\n\t\t}\n\t}\n\tupdateXrFrustum() {\n\t\tconst views = this.xrViews;\n\t\tif (!views?.length) {\n\t\t\treturn false;\n\t\t}\n\t\t_xrViewProjMat.mul2(views[0].projMat, views[0].viewOffMat);\n\t\tthis.frustum.setFromMat4(_xrViewProjMat);\n\t\tfor (let v6 = 1; v6 < views.length; v6++) {\n\t\t\t_xrViewProjMat.mul2(views[v6].projMat, views[v6].viewOffMat);\n\t\t\t_xrViewFrustum.setFromMat4(_xrViewProjMat);\n\t\t\tthis.frustum.add(_xrViewFrustum);\n\t\t}\n\t\treturn true;\n\t}\n\tupdateFrustum() {\n\t\tif (this.updateXrFrustum()) {\n\t\t\treturn;\n\t\t}\n\t\tconst projMat = this.projectionMatrix;\n\t\tif (this.calculateProjection) {\n\t\t\tthis.calculateProjection(projMat, VIEW_CENTER);\n\t\t}\n\t\tif (this.calculateTransform) {\n\t\t\tthis.calculateTransform(_frustumViewInvMat, VIEW_CENTER);\n\t\t} else {\n\t\t\tconst pos = this._node.getPosition();\n\t\t\tconst rot = this._node.getRotation();\n\t\t\t_frustumViewInvMat.setTRS(pos, rot, Vec3.ONE);\n\t\t}\n\t\t_frustumViewMat.copy(_frustumViewInvMat).invert();\n\t\t_frustumViewProjMat.mul2(projMat, _frustumViewMat);\n\t\tthis.frustum.setFromMat4(_frustumViewProjMat);\n\t}\n\tworldToScreen(worldCoord, cw, ch, screenCoord = new Vec3()) {\n\t\tthis._updateViewProjMat();\n\t\tthis._viewProjMat.transformPoint(worldCoord, screenCoord);\n\t\tconst vpm = this._viewProjMat.data;\n\t\tconst w = worldCoord.x * vpm[3] + worldCoord.y * vpm[7] + worldCoord.z * vpm[11] + 1 * vpm[15];\n\t\tscreenCoord.x = (screenCoord.x / w + 1) * 0.5;\n\t\tscreenCoord.y = (1 - screenCoord.y / w) * 0.5;\n\t\tconst { x: rx, y: ry, z: rw, w: rh } = this._rect;\n\t\tscreenCoord.x = screenCoord.x * rw * cw + rx * cw;\n\t\tscreenCoord.y = screenCoord.y * rh * ch + (1 - ry - rh) * ch;\n\t\treturn screenCoord;\n\t}\n\tscreenToWorld(x3, y2, z2, cw, ch, worldCoord = new Vec3()) {\n\t\tconst { x: rx, y: ry, z: rw, w: rh } = this._rect;\n\t\tconst range = this.farClip - this.nearClip;\n\t\t_deviceCoord.set(\n\t\t\t(x3 - rx * cw) / (rw * cw),\n\t\t\t1 - (y2 - (1 - ry - rh) * ch) / (rh * ch),\n\t\t\tz2 / range\n\t\t);\n\t\t_deviceCoord.mulScalar(2);\n\t\t_deviceCoord.sub(Vec3.ONE);\n\t\tif (this._projection === PROJECTION_PERSPECTIVE) {\n\t\t\tMat4._getPerspectiveHalfSize(_halfSize2, this.fov, this.aspectRatio, this.nearClip, this.horizontalFov);\n\t\t\tconst offset3 = this.xrActive ? Vec2.ZERO : this._projectionOffset;\n\t\t\t_halfSize2.x *= _deviceCoord.x + offset3.x;\n\t\t\t_halfSize2.y *= _deviceCoord.y + offset3.y;\n\t\t\tconst invView = this._node.getWorldTransform();\n\t\t\t_halfSize2.z = -this.nearClip;\n\t\t\tinvView.transformPoint(_halfSize2, _point);\n\t\t\tconst cameraPos = this._node.getPosition();\n\t\t\tworldCoord.sub2(_point, cameraPos);\n\t\t\tworldCoord.normalize();\n\t\t\tworldCoord.mulScalar(z2);\n\t\t\tworldCoord.add(cameraPos);\n\t\t} else {\n\t\t\tthis._updateViewProjMat();\n\t\t\t_invViewProjMat.copy(this._viewProjMat).invert();\n\t\t\t_invViewProjMat.transformPoint(_deviceCoord, worldCoord);\n\t\t}\n\t\treturn worldCoord;\n\t}\n\t_evaluateProjectionMatrix() {\n\t\tconst aspect = this.aspectRatio;\n\t\tif (this._projMatDirty) {\n\t\t\tconst offset3 = this._projectionOffset;\n\t\t\tif (this._projection === PROJECTION_PERSPECTIVE) {\n\t\t\t\tthis._projMat.setPerspective(this.fov, aspect, this.nearClip, this.farClip, this.horizontalFov);\n\t\t\t\tthis._projMat.data[8] = offset3.x;\n\t\t\t\tthis._projMat.data[9] = offset3.y;\n\t\t\t\tthis._projMatSkybox.copy(this._projMat);\n\t\t\t} else {\n\t\t\t\tconst y2 = this._orthoHeight;\n\t\t\t\tconst x3 = y2 * aspect;\n\t\t\t\tthis._projMat.setOrtho(-x3, x3, -y2, y2, this.nearClip, this.farClip);\n\t\t\t\tthis._projMat.data[12] = -offset3.x;\n\t\t\t\tthis._projMat.data[13] = -offset3.y;\n\t\t\t\tthis._projMatSkybox.setPerspective(this.fov, aspect, this.nearClip, this.farClip);\n\t\t\t\tthis._projMatSkybox.data[8] = offset3.x;\n\t\t\t\tthis._projMatSkybox.data[9] = offset3.y;\n\t\t\t}\n\t\t\tthis._projMatDirty = false;\n\t\t}\n\t}\n\tgetProjectionMatrixSkybox() {\n\t\tthis._evaluateProjectionMatrix();\n\t\treturn this._projMatSkybox;\n\t}\n\tgetExposure() {\n\t\tconst ev100 = Math.log2(this._aperture * this._aperture / this._shutter * 100 / this._sensitivity);\n\t\treturn 1 / (Math.pow(2, ev100) * 1.2);\n\t}\n\t// returns estimated size of the sphere on the screen in range of [0..1]\n\t// 0 - infinitely small, 1 - full screen or larger\n\tgetScreenSize(sphere) {\n\t\tif (this._projection === PROJECTION_PERSPECTIVE) {\n\t\t\tconst distance = this._node.getPosition().distance(sphere.center);\n\t\t\tif (distance < sphere.radius) {\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t\tconst viewAngle = Math.asin(sphere.radius / distance);\n\t\t\tconst sphereViewHeight = Math.tan(viewAngle);\n\t\t\tconst screenViewHeight = Math.tan(this.fov / 2 * math.DEG_TO_RAD);\n\t\t\treturn Math.min(sphereViewHeight / screenViewHeight, 1);\n\t\t}\n\t\treturn math.clamp(sphere.radius / this._orthoHeight, 0, 1);\n\t}\n\tgetFrustumCorners(near = this.nearClip, far = this.farClip) {\n\t\tconst fov = this.fov * math.DEG_TO_RAD;\n\t\tconst offset3 = this.xrActive ? Vec2.ZERO : this._projectionOffset;\n\t\tlet x3, y2;\n\t\tif (this.projection === PROJECTION_PERSPECTIVE) {\n\t\t\tif (this.horizontalFov) {\n\t\t\t\tx3 = near * Math.tan(fov / 2);\n\t\t\t\ty2 = x3 / this.aspectRatio;\n\t\t\t} else {\n\t\t\t\ty2 = near * Math.tan(fov / 2);\n\t\t\t\tx3 = y2 * this.aspectRatio;\n\t\t\t}\n\t\t} else {\n\t\t\ty2 = this._orthoHeight;\n\t\t\tx3 = y2 * this.aspectRatio;\n\t\t}\n\t\tlet cx = offset3.x * x3;\n\t\tlet cy = offset3.y * y2;\n\t\tconst points = _frustumPoints;\n\t\tpoints[0].x = cx + x3;\n\t\tpoints[0].y = cy - y2;\n\t\tpoints[0].z = -near;\n\t\tpoints[1].x = cx + x3;\n\t\tpoints[1].y = cy + y2;\n\t\tpoints[1].z = -near;\n\t\tpoints[2].x = cx - x3;\n\t\tpoints[2].y = cy + y2;\n\t\tpoints[2].z = -near;\n\t\tpoints[3].x = cx - x3;\n\t\tpoints[3].y = cy - y2;\n\t\tpoints[3].z = -near;\n\t\tif (this._projection === PROJECTION_PERSPECTIVE) {\n\t\t\tif (this.horizontalFov) {\n\t\t\t\tx3 = far * Math.tan(fov / 2);\n\t\t\t\ty2 = x3 / this.aspectRatio;\n\t\t\t} else {\n\t\t\t\ty2 = far * Math.tan(fov / 2);\n\t\t\t\tx3 = y2 * this.aspectRatio;\n\t\t\t}\n\t\t\tcx = offset3.x * x3;\n\t\t\tcy = offset3.y * y2;\n\t\t}\n\t\tpoints[4].x = cx + x3;\n\t\tpoints[4].y = cy - y2;\n\t\tpoints[4].z = -far;\n\t\tpoints[5].x = cx + x3;\n\t\tpoints[5].y = cy + y2;\n\t\tpoints[5].z = -far;\n\t\tpoints[6].x = cx - x3;\n\t\tpoints[6].y = cy + y2;\n\t\tpoints[6].z = -far;\n\t\tpoints[7].x = cx - x3;\n\t\tpoints[7].y = cy - y2;\n\t\tpoints[7].z = -far;\n\t\treturn points;\n\t}\n\tsetXrProperties(properties) {\n\t\tObject.assign(this._xrProperties, properties);\n\t\tthis._projMatDirty = true;\n\t}\n\tfillShaderParams(output) {\n\t\tconst f = this._farClip;\n\t\toutput[0] = 1 / f;\n\t\toutput[1] = f;\n\t\toutput[2] = this._nearClip;\n\t\toutput[3] = this._projection === PROJECTION_ORTHOGRAPHIC ? 1 : 0;\n\t\treturn output;\n\t}\n};\n\nvar RenderView = class extends EventHandler {\n\t_positionData = new Float32Array(3);\n\t_viewport = new Vec4();\n\t_projMat = new Mat4();\n\t_projViewOffMat = new Mat4();\n\t_viewMat = new Mat4();\n\t_viewOffMat = new Mat4();\n\t_viewMat3 = new Mat3();\n\t_viewInvMat = new Mat4();\n\t_viewInvOffMat = new Mat4();\n\tget viewport() {\n\t\treturn this._viewport;\n\t}\n\tget projMat() {\n\t\treturn this._projMat;\n\t}\n\tget projViewOffMat() {\n\t\treturn this._projViewOffMat;\n\t}\n\tget viewOffMat() {\n\t\treturn this._viewOffMat;\n\t}\n\tget viewInvOffMat() {\n\t\treturn this._viewInvOffMat;\n\t}\n\tget viewMat3() {\n\t\treturn this._viewMat3;\n\t}\n\tget positionData() {\n\t\treturn this._positionData;\n\t}\n\tsetView(projMat, viewInvMat2, viewMat2) {\n\t\tthis._projMat.set(projMat);\n\t\tthis._viewInvMat.set(viewInvMat2);\n\t\tif (viewMat2) {\n\t\t\tthis._viewMat.set(viewMat2);\n\t\t} else {\n\t\t\tthis._viewMat.copy(this._viewInvMat).invert();\n\t\t}\n\t}\n\tsetViewport(x3, y2, width, height) {\n\t\tthis._viewport.set(x3, y2, width, height);\n\t}\n\tupdateTransforms(parentWorldTransform) {\n\t\tif (parentWorldTransform) {\n\t\t\tthis._viewInvOffMat.mul2(parentWorldTransform, this._viewInvMat);\n\t\t\tthis._viewOffMat.copy(this._viewInvOffMat).invert();\n\t\t} else {\n\t\t\tthis._viewInvOffMat.copy(this._viewInvMat);\n\t\t\tthis._viewOffMat.copy(this._viewMat);\n\t\t}\n\t\tthis._viewMat3.setFromMat4(this._viewOffMat);\n\t\tthis._projViewOffMat.mul2(this._projMat, this._viewOffMat);\n\t\tthis._positionData[0] = this._viewInvOffMat.data[12];\n\t\tthis._positionData[1] = this._viewInvOffMat.data[13];\n\t\tthis._positionData[2] = this._viewInvOffMat.data[14];\n\t}\n};\n\nvar _viewMat = new Mat4();\nvar _viewProjMat = new Mat4();\nvar _viewportMatrix = new Mat4();\nvar LightCamera = class _LightCamera {\n\t// camera rotation angles used when rendering cubemap faces\n\tstatic pointLightRotations = [\n\t\tnew Quat().setFromEulerAngles(0, 90, 180),\n\t\tnew Quat().setFromEulerAngles(0, -90, 180),\n\t\tnew Quat().setFromEulerAngles(90, 0, 0),\n\t\tnew Quat().setFromEulerAngles(-90, 0, 0),\n\t\tnew Quat().setFromEulerAngles(0, 180, 180),\n\t\tnew Quat().setFromEulerAngles(0, 0, 180)\n\t];\n\tstatic create(device, name, lightType, face) {\n\t\tconst camera = new Camera(device);\n\t\tcamera.node = new GraphNode(name);\n\t\tcamera.aspectRatio = 1;\n\t\tcamera.aspectRatioMode = ASPECT_MANUAL;\n\t\tcamera._scissorRectClear = true;\n\t\tswitch (lightType) {\n\t\t\tcase LIGHTTYPE_OMNI:\n\t\t\t\tcamera.node.setRotation(_LightCamera.pointLightRotations[face]);\n\t\t\t\tcamera.fov = 90;\n\t\t\t\tcamera.projection = PROJECTION_PERSPECTIVE;\n\t\t\t\tbreak;\n\t\t\tcase LIGHTTYPE_SPOT:\n\t\t\t\tcamera.projection = PROJECTION_PERSPECTIVE;\n\t\t\t\tbreak;\n\t\t\tcase LIGHTTYPE_DIRECTIONAL:\n\t\t\t\tcamera.projection = PROJECTION_ORTHOGRAPHIC;\n\t\t\t\tbreak;\n\t\t}\n\t\treturn camera;\n\t}\n\tstatic _spotCookieCamera = null;\n\t// temporary camera to calculate spot light cookie view-projection matrix when shadow matrix is not available\n\t// todo - unify the code with the shadow spot camera\n\tstatic evalSpotCookieMatrix(light) {\n\t\tlet cookieCamera = _LightCamera._spotCookieCamera;\n\t\tif (!cookieCamera) {\n\t\t\tcookieCamera = _LightCamera.create(light.device, \"SpotCookieCamera\", LIGHTTYPE_SPOT);\n\t\t\t_LightCamera._spotCookieCamera = cookieCamera;\n\t\t}\n\t\tcookieCamera.fov = light._outerConeAngle * 2;\n\t\tconst cookieNode = cookieCamera._node;\n\t\tcookieNode.setPosition(light._node.getPosition());\n\t\tcookieNode.setRotation(light._node.getRotation());\n\t\tcookieNode.rotateLocal(-90, 0, 0);\n\t\t_viewMat.setTRS(cookieNode.getPosition(), cookieNode.getRotation(), Vec3.ONE).invert();\n\t\t_viewProjMat.mul2(cookieCamera.projectionMatrix, _viewMat);\n\t\tconst cookieMatrix = light.cookieMatrix;\n\t\tconst rectViewport = light.atlasViewport;\n\t\t_viewportMatrix.setViewport(rectViewport.x, rectViewport.y, rectViewport.z, rectViewport.w);\n\t\tcookieMatrix.mul2(_viewportMatrix, _viewProjMat);\n\t\treturn cookieMatrix;\n\t}\n};\n\nvar tempVec3 = new Vec3();\nvar tempAreaLightSizes = new Float32Array(6);\nvar areaHalfAxisWidth = new Vec3(-0.5, 0, 0);\nvar areaHalfAxisHeight = new Vec3(0, 0, 0.5);\nvar TextureIndexFloat = {\n\tPOSITION_RANGE: 0,\n\t// positions.xyz, range\n\tDIRECTION_FLAGS: 1,\n\t// spot direction.xyz, 32bit flags\n\tCOLOR_ANGLES_BIAS: 2,\n\t// x: color.rg, y: color.b & angle flags, z: cone angles, w: biases (all packed as 16-bit values)\n\tPROJ_MAT_0: 3,\n\t// projection matrix row 0 (spot light)\n\tATLAS_VIEWPORT: 3,\n\t// atlas viewport data (omni light)\n\tPROJ_MAT_1: 4,\n\t// projection matrix row 1 (spot light)\n\tPROJ_MAT_2: 5,\n\t// projection matrix row 2 (spot light)\n\tPROJ_MAT_3: 6,\n\t// projection matrix row 3 (spot light)\n\tAREA_DATA_WIDTH: 7,\n\t// area light half-width.xyz, -\n\tAREA_DATA_HEIGHT: 8,\n\t// area light half-height.xyz, -\n\t// leave last\n\tCOUNT: 9\n};\nvar enums = {\n\t\"LIGHTSHAPE_PUNCTUAL\": `${LIGHTSHAPE_PUNCTUAL}u`,\n\t\"LIGHTSHAPE_RECT\": `${LIGHTSHAPE_RECT}u`,\n\t\"LIGHTSHAPE_DISK\": `${LIGHTSHAPE_DISK}u`,\n\t\"LIGHTSHAPE_SPHERE\": `${LIGHTSHAPE_SPHERE}u`,\n\t\"LIGHT_COLOR_DIVIDER\": `${LIGHT_COLOR_DIVIDER}.0`\n};\nvar buildShaderDefines = (object, prefix) => {\n\treturn Object.keys(object).map((key) => `#define {${prefix}${key}} ${object[key]}`).join(\"\\n\");\n};\nvar lightBufferDefines = `\n\n\t\t${buildShaderDefines(TextureIndexFloat, \"CLUSTER_TEXTURE_\")}\n\t\t${buildShaderDefines(enums, \"\")}\n`;\nvar LightsBuffer = class {\n\tareaLightsEnabled = false;\n\tlightsTexture = null;\n\t_maxLights = 0;\n\tconstructor(device) {\n\t\tthis.device = device;\n\t\tShaderChunks.get(device, SHADERLANGUAGE_GLSL).set(\"lightBufferDefinesPS\", lightBufferDefines);\n\t\tShaderChunks.get(device, SHADERLANGUAGE_WGSL).set(\"lightBufferDefinesPS\", lightBufferDefines);\n\t\tthis.cookiesEnabled = false;\n\t\tthis.shadowsEnabled = false;\n\t\tthis.areaLightsEnabled = false;\n\t\tthis._lightsTextureId = this.device.scope.resolve(\"lightsTexture\");\n\t\tthis.maxLights = 256;\n\t\tthis.invMaxColorValue = 0;\n\t\tthis.invMaxAttenuation = 0;\n\t\tthis.boundsMin = new Vec3();\n\t\tthis.boundsDelta = new Vec3();\n\t}\n\tset maxLights(value) {\n\t\tif (this._maxLights !== value) {\n\t\t\tthis._maxLights = value;\n\t\t\tconst pixelsPerLightFloat = TextureIndexFloat.COUNT;\n\t\t\tthis.lightsFloat = new Float32Array(4 * pixelsPerLightFloat * value);\n\t\t\tthis.lightsUint = new Uint32Array(this.lightsFloat.buffer);\n\t\t\tthis.lightsTexture?.destroy();\n\t\t\tthis.lightsTexture = this.createTexture(this.device, pixelsPerLightFloat, value, PIXELFORMAT_RGBA32F, \"LightsTexture\");\n\t\t}\n\t}\n\tget maxLights() {\n\t\treturn this._maxLights;\n\t}\n\tdestroy() {\n\t\tthis.lightsTexture?.destroy();\n\t\tthis.lightsTexture = null;\n\t}\n\tcreateTexture(device, width, height, format, name) {\n\t\tconst tex = new Texture(device, {\n\t\t\tname,\n\t\t\twidth,\n\t\t\theight,\n\t\t\tmipmaps: false,\n\t\t\tformat,\n\t\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE,\n\t\t\ttype: TEXTURETYPE_DEFAULT,\n\t\t\tmagFilter: FILTER_NEAREST,\n\t\t\tminFilter: FILTER_NEAREST,\n\t\t\tanisotropy: 1\n\t\t});\n\t\treturn tex;\n\t}\n\tsetBounds(min, delta3) {\n\t\tthis.boundsMin.copy(min);\n\t\tthis.boundsDelta.copy(delta3);\n\t}\n\tuploadTextures() {\n\t\tthis.lightsTexture.lock().set(this.lightsFloat);\n\t\tthis.lightsTexture.unlock();\n\t}\n\tupdateUniforms() {\n\t\tthis._lightsTextureId.setValue(this.lightsTexture);\n\t}\n\tgetSpotDirection(direction, spot) {\n\t\tconst mat2 = spot._node.getWorldTransform();\n\t\tmat2.getY(direction).mulScalar(-1);\n\t\tdirection.normalize();\n\t}\n\t// half sizes of area light in world space, returned as an array of 6 floats\n\tgetLightAreaSizes(light) {\n\t\tconst mat2 = light._node.getWorldTransform();\n\t\tmat2.transformVector(areaHalfAxisWidth, tempVec3);\n\t\ttempAreaLightSizes[0] = tempVec3.x;\n\t\ttempAreaLightSizes[1] = tempVec3.y;\n\t\ttempAreaLightSizes[2] = tempVec3.z;\n\t\tmat2.transformVector(areaHalfAxisHeight, tempVec3);\n\t\ttempAreaLightSizes[3] = tempVec3.x;\n\t\ttempAreaLightSizes[4] = tempVec3.y;\n\t\ttempAreaLightSizes[5] = tempVec3.z;\n\t\treturn tempAreaLightSizes;\n\t}\n\t// fill up the float texture data with light properties\n\taddLightData(light, lightIndex) {\n\t\tconst isSpot = light._type === LIGHTTYPE_SPOT;\n\t\tconst hasAtlasViewport = light.atlasViewportAllocated;\n\t\tconst isCookie = this.cookiesEnabled && !!light._cookie && hasAtlasViewport;\n\t\tconst isArea = this.areaLightsEnabled && light.shape !== LIGHTSHAPE_PUNCTUAL;\n\t\tconst castShadows = this.shadowsEnabled && light.castShadows && hasAtlasViewport;\n\t\tconst pos = light._node.getPosition();\n\t\tlet lightProjectionMatrix = null;\n\t\tlet atlasViewport = null;\n\t\tif (isSpot) {\n\t\t\tif (castShadows) {\n\t\t\t\tconst lightRenderData = light.getRenderData(null, 0);\n\t\t\t\tlightProjectionMatrix = lightRenderData.shadowMatrix;\n\t\t\t} else if (isCookie) {\n\t\t\t\tlightProjectionMatrix = LightCamera.evalSpotCookieMatrix(light);\n\t\t\t}\n\t\t} else {\n\t\t\tif (castShadows || isCookie) {\n\t\t\t\tatlasViewport = light.atlasViewport;\n\t\t\t}\n\t\t}\n\t\tconst dataFloat = this.lightsFloat;\n\t\tconst dataUint = this.lightsUint;\n\t\tconst dataFloatStart = lightIndex * this.lightsTexture.width * 4;\n\t\tdataFloat[dataFloatStart + 4 * TextureIndexFloat.POSITION_RANGE + 0] = pos.x;\n\t\tdataFloat[dataFloatStart + 4 * TextureIndexFloat.POSITION_RANGE + 1] = pos.y;\n\t\tdataFloat[dataFloatStart + 4 * TextureIndexFloat.POSITION_RANGE + 2] = pos.z;\n\t\tdataFloat[dataFloatStart + 4 * TextureIndexFloat.POSITION_RANGE + 3] = light.attenuationEnd;\n\t\tconst clusteredData = light.clusteredData;\n\t\tdataUint[dataFloatStart + 4 * TextureIndexFloat.COLOR_ANGLES_BIAS + 0] = clusteredData[0];\n\t\tdataUint[dataFloatStart + 4 * TextureIndexFloat.COLOR_ANGLES_BIAS + 1] = clusteredData[1];\n\t\tdataUint[dataFloatStart + 4 * TextureIndexFloat.COLOR_ANGLES_BIAS + 2] = clusteredData[2];\n\t\tif (light.castShadows) {\n\t\t\tconst lightRenderData = light.getRenderData(null, 0);\n\t\t\tconst biases = light._getUniformBiasValues(lightRenderData);\n\t\t\tconst biasHalf = FloatPacking.float2Half(biases.bias);\n\t\t\tconst normalBiasHalf = FloatPacking.float2Half(biases.normalBias);\n\t\t\tdataUint[dataFloatStart + 4 * TextureIndexFloat.COLOR_ANGLES_BIAS + 3] = biasHalf | normalBiasHalf << 16;\n\t\t}\n\t\tif (isSpot) {\n\t\t\tthis.getSpotDirection(tempVec3, light);\n\t\t\tdataFloat[dataFloatStart + 4 * TextureIndexFloat.DIRECTION_FLAGS + 0] = tempVec3.x;\n\t\t\tdataFloat[dataFloatStart + 4 * TextureIndexFloat.DIRECTION_FLAGS + 1] = tempVec3.y;\n\t\t\tdataFloat[dataFloatStart + 4 * TextureIndexFloat.DIRECTION_FLAGS + 2] = tempVec3.z;\n\t\t}\n\t\tdataUint[dataFloatStart + 4 * TextureIndexFloat.DIRECTION_FLAGS + 3] = light.getClusteredFlags(castShadows, isCookie);\n\t\tif (lightProjectionMatrix) {\n\t\t\tconst matData = lightProjectionMatrix.data;\n\t\t\tfor (let m = 0; m < 16; m++) {\n\t\t\t\tdataFloat[dataFloatStart + 4 * TextureIndexFloat.PROJ_MAT_0 + m] = matData[m];\n\t\t\t}\n\t\t}\n\t\tif (atlasViewport) {\n\t\t\tdataFloat[dataFloatStart + 4 * TextureIndexFloat.ATLAS_VIEWPORT + 0] = atlasViewport.x;\n\t\t\tdataFloat[dataFloatStart + 4 * TextureIndexFloat.ATLAS_VIEWPORT + 1] = atlasViewport.y;\n\t\t\tdataFloat[dataFloatStart + 4 * TextureIndexFloat.ATLAS_VIEWPORT + 2] = atlasViewport.z / 3;\n\t\t}\n\t\tif (isArea) {\n\t\t\tconst areaSizes = this.getLightAreaSizes(light);\n\t\t\tdataFloat[dataFloatStart + 4 * TextureIndexFloat.AREA_DATA_WIDTH + 0] = areaSizes[0];\n\t\t\tdataFloat[dataFloatStart + 4 * TextureIndexFloat.AREA_DATA_WIDTH + 1] = areaSizes[1];\n\t\t\tdataFloat[dataFloatStart + 4 * TextureIndexFloat.AREA_DATA_WIDTH + 2] = areaSizes[2];\n\t\t\tdataFloat[dataFloatStart + 4 * TextureIndexFloat.AREA_DATA_HEIGHT + 0] = areaSizes[3];\n\t\t\tdataFloat[dataFloatStart + 4 * TextureIndexFloat.AREA_DATA_HEIGHT + 1] = areaSizes[4];\n\t\t\tdataFloat[dataFloatStart + 4 * TextureIndexFloat.AREA_DATA_HEIGHT + 2] = areaSizes[5];\n\t\t}\n\t}\n};\n\nvar tmpSize = new Vec2();\nvar tempVec32 = new Vec3();\nvar tempMin3 = new Vec3();\nvar tempMax3 = new Vec3();\nvar tempBox = new BoundingBox();\nvar ClusterLight = class {\n\tconstructor() {\n\t\tthis.light = null;\n\t\tthis.min = new Vec3();\n\t\tthis.max = new Vec3();\n\t}\n};\nvar WorldClusters = class {\n\tclusterTexture;\n\tconstructor(device) {\n\t\tthis.device = device;\n\t\tthis.name = \"Untitled\";\n\t\tthis.reportCount = 0;\n\t\tthis.boundsMin = new Vec3();\n\t\tthis.boundsMax = new Vec3();\n\t\tthis.boundsDelta = new Vec3();\n\t\tthis._cells = new Vec3(1, 1, 1);\n\t\tthis._cellsLimit = new Vec3();\n\t\tthis.cells = this._cells;\n\t\tthis.maxCellLightCount = 4;\n\t\tthis._usedLights = [];\n\t\tthis._usedLights.push(new ClusterLight());\n\t\tthis.lightsBuffer = new LightsBuffer(device);\n\t\tthis.registerUniforms(device);\n\t}\n\tget usedLights() {\n\t\treturn this._usedLights;\n\t}\n\tset maxCellLightCount(count) {\n\t\tif (count !== this._maxCellLightCount) {\n\t\t\tthis._maxCellLightCount = count;\n\t\t\tthis._cellsDirty = true;\n\t\t}\n\t}\n\tget maxCellLightCount() {\n\t\treturn this._maxCellLightCount;\n\t}\n\t// maximum number of visible lights - the lights buffer additionally stores the reserved\n\t// 'no light' slot, so it is allocated with one more slot than this\n\tset maxLights(count) {\n\t\tif (count !== this.maxLights) {\n\t\t\tthis.lightsBuffer.maxLights = count + 1;\n\t\t\tthis._cellsDirty = true;\n\t\t}\n\t}\n\tget maxLights() {\n\t\treturn this.lightsBuffer.maxLights - 1;\n\t}\n\tset cells(value) {\n\t\ttempVec32.copy(value).floor();\n\t\tif (!this._cells.equals(tempVec32)) {\n\t\t\tthis._cells.copy(tempVec32);\n\t\t\tthis._cellsLimit.copy(tempVec32).sub(Vec3.ONE);\n\t\t\tthis._cellsDirty = true;\n\t\t}\n\t}\n\tget cells() {\n\t\treturn this._cells;\n\t}\n\tdestroy() {\n\t\tthis.lightsBuffer.destroy();\n\t\tthis.releaseClusterTexture();\n\t}\n\treleaseClusterTexture() {\n\t\tif (this.clusterTexture) {\n\t\t\tthis.clusterTexture.destroy();\n\t\t\tthis.clusterTexture = null;\n\t\t}\n\t}\n\tregisterUniforms(device) {\n\t\tthis._numClusteredLightsId = device.scope.resolve(\"numClusteredLights\");\n\t\tthis._clusterMaxCellsId = device.scope.resolve(\"clusterMaxCells\");\n\t\tthis._clusterWorldTextureId = device.scope.resolve(\"clusterWorldTexture\");\n\t\tthis._clusterBoundsMinId = device.scope.resolve(\"clusterBoundsMin\");\n\t\tthis._clusterBoundsMinData = new Float32Array(3);\n\t\tthis._clusterBoundsDeltaId = device.scope.resolve(\"clusterBoundsDelta\");\n\t\tthis._clusterBoundsDeltaData = new Float32Array(3);\n\t\tthis._clusterCellsCountByBoundsSizeId = device.scope.resolve(\"clusterCellsCountByBoundsSize\");\n\t\tthis._clusterCellsCountByBoundsSizeData = new Float32Array(3);\n\t\tthis._clusterCellsDotId = device.scope.resolve(\"clusterCellsDot\");\n\t\tthis._clusterCellsDotData = new Int32Array(3);\n\t\tthis._clusterCellsMaxId = device.scope.resolve(\"clusterCellsMax\");\n\t\tthis._clusterCellsMaxData = new Int32Array(3);\n\t\tthis._clusterTextureWidthId = device.scope.resolve(\"clusterTextureWidth\");\n\t}\n\t// updates itself based on parameters stored in the scene\n\tupdateParams(lightingParams) {\n\t\tif (lightingParams) {\n\t\t\tthis.cells = lightingParams.cells;\n\t\t\tthis.maxCellLightCount = lightingParams.maxLightsPerCell;\n\t\t\tthis.maxLights = lightingParams.maxLights;\n\t\t\tthis.lightsBuffer.cookiesEnabled = lightingParams.cookiesEnabled;\n\t\t\tthis.lightsBuffer.shadowsEnabled = lightingParams.shadowsEnabled;\n\t\t\tthis.lightsBuffer.areaLightsEnabled = lightingParams.areaLightsEnabled;\n\t\t}\n\t}\n\tupdateCells() {\n\t\tif (this._cellsDirty) {\n\t\t\tthis._cellsDirty = false;\n\t\t\tconst cx = this._cells.x;\n\t\t\tconst cy = this._cells.y;\n\t\t\tconst cz = this._cells.z;\n\t\t\tconst numCells = cx * cy * cz;\n\t\t\tconst totalPixels = this.maxCellLightCount * numCells;\n\t\t\tconst { x: width, y: height } = TextureUtils.calcTextureSize(totalPixels, tmpSize, this.maxCellLightCount);\n\t\t\tthis._clusterCellsMaxData[0] = cx;\n\t\t\tthis._clusterCellsMaxData[1] = cy;\n\t\t\tthis._clusterCellsMaxData[2] = cz;\n\t\t\tthis._clusterCellsDotData[0] = this.maxCellLightCount;\n\t\t\tthis._clusterCellsDotData[1] = cx * cz * this.maxCellLightCount;\n\t\t\tthis._clusterCellsDotData[2] = cx * this.maxCellLightCount;\n\t\t\tconst use16BitIndex = this.maxLights > 255;\n\t\t\tthis.clusters = use16BitIndex ? new Uint16Array(totalPixels) : new Uint8ClampedArray(totalPixels);\n\t\t\tthis.counts = new Int32Array(numCells);\n\t\t\tthis.releaseClusterTexture();\n\t\t\tthis.clusterTexture = this.lightsBuffer.createTexture(\n\t\t\t\tthis.device,\n\t\t\t\twidth,\n\t\t\t\theight,\n\t\t\t\tuse16BitIndex ? PIXELFORMAT_R16U : PIXELFORMAT_R8U,\n\t\t\t\t\"ClusterTexture\"\n\t\t\t);\n\t\t}\n\t}\n\tuploadTextures() {\n\t\tthis.clusterTexture.lock().set(this.clusters);\n\t\tthis.clusterTexture.unlock();\n\t\tthis.lightsBuffer.uploadTextures();\n\t}\n\tupdateUniforms() {\n\t\tthis._numClusteredLightsId.setValue(this._usedLights.length);\n\t\tthis.lightsBuffer.updateUniforms();\n\t\tthis._clusterWorldTextureId.setValue(this.clusterTexture);\n\t\tthis._clusterMaxCellsId.setValue(this.maxCellLightCount);\n\t\tconst boundsDelta = this.boundsDelta;\n\t\tthis._clusterCellsCountByBoundsSizeData[0] = this._cells.x / boundsDelta.x;\n\t\tthis._clusterCellsCountByBoundsSizeData[1] = this._cells.y / boundsDelta.y;\n\t\tthis._clusterCellsCountByBoundsSizeData[2] = this._cells.z / boundsDelta.z;\n\t\tthis._clusterCellsCountByBoundsSizeId.setValue(this._clusterCellsCountByBoundsSizeData);\n\t\tthis._clusterBoundsMinData[0] = this.boundsMin.x;\n\t\tthis._clusterBoundsMinData[1] = this.boundsMin.y;\n\t\tthis._clusterBoundsMinData[2] = this.boundsMin.z;\n\t\tthis._clusterBoundsDeltaData[0] = boundsDelta.x;\n\t\tthis._clusterBoundsDeltaData[1] = boundsDelta.y;\n\t\tthis._clusterBoundsDeltaData[2] = boundsDelta.z;\n\t\tthis._clusterBoundsMinId.setValue(this._clusterBoundsMinData);\n\t\tthis._clusterBoundsDeltaId.setValue(this._clusterBoundsDeltaData);\n\t\tthis._clusterCellsDotId.setValue(this._clusterCellsDotData);\n\t\tthis._clusterCellsMaxId.setValue(this._clusterCellsMaxData);\n\t\tthis._clusterTextureWidthId.setValue(this.clusterTexture.width);\n\t}\n\t// evaluates min and max coordinates of AABB of the light in the cell space\n\tevalLightCellMinMax(clusteredLight, min, max) {\n\t\tmin.copy(clusteredLight.min);\n\t\tmin.sub(this.boundsMin);\n\t\tmin.div(this.boundsDelta);\n\t\tmin.mul2(min, this.cells);\n\t\tmin.floor();\n\t\tmax.copy(clusteredLight.max);\n\t\tmax.sub(this.boundsMin);\n\t\tmax.div(this.boundsDelta);\n\t\tmax.mul2(max, this.cells);\n\t\tmax.ceil();\n\t\tmin.max(Vec3.ZERO);\n\t\tmax.min(this._cellsLimit);\n\t}\n\tcollectLights(lights2) {\n\t\tconst maxLights = this.lightsBuffer.maxLights;\n\t\tconst usedLights = this._usedLights;\n\t\tlet lightIndex = 1;\n\t\tlights2.forEach((light) => {\n\t\t\tconst runtimeLight = !!(light.mask & (MASK_AFFECT_DYNAMIC | MASK_AFFECT_LIGHTMAPPED));\n\t\t\tconst zeroAngleSpotlight = light.type === LIGHTTYPE_SPOT && light._outerConeAngle === 0;\n\t\t\tif (light.enabled && light.type !== LIGHTTYPE_DIRECTIONAL && light.visibleThisFrame && light.intensity > 0 && runtimeLight && !zeroAngleSpotlight) {\n\t\t\t\tif (lightIndex < maxLights) {\n\t\t\t\t\tlet clusteredLight;\n\t\t\t\t\tif (lightIndex < usedLights.length) {\n\t\t\t\t\t\tclusteredLight = usedLights[lightIndex];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclusteredLight = new ClusterLight();\n\t\t\t\t\t\tusedLights.push(clusteredLight);\n\t\t\t\t\t}\n\t\t\t\t\tclusteredLight.light = light;\n\t\t\t\t\tlight.getBoundingBox(tempBox);\n\t\t\t\t\tclusteredLight.min.copy(tempBox.getMin());\n\t\t\t\t\tclusteredLight.max.copy(tempBox.getMax());\n\t\t\t\t\tlightIndex++;\n\t\t\t\t} else {\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tusedLights.length = lightIndex;\n\t}\n\t// evaluate the area all lights cover\n\tevaluateBounds() {\n\t\tconst usedLights = this._usedLights;\n\t\tconst min = this.boundsMin;\n\t\tconst max = this.boundsMax;\n\t\tif (usedLights.length > 1) {\n\t\t\tmin.copy(usedLights[1].min);\n\t\t\tmax.copy(usedLights[1].max);\n\t\t\tfor (let i2 = 2; i2 < usedLights.length; i2++) {\n\t\t\t\tmin.min(usedLights[i2].min);\n\t\t\t\tmax.max(usedLights[i2].max);\n\t\t\t}\n\t\t} else {\n\t\t\tmin.set(0, 0, 0);\n\t\t\tmax.set(1, 1, 1);\n\t\t}\n\t\tthis.boundsDelta.sub2(max, min);\n\t\tthis.lightsBuffer.setBounds(min, this.boundsDelta);\n\t}\n\tupdateClusters(lightingParams) {\n\t\tthis.counts.fill(0);\n\t\tthis.clusters.fill(0);\n\t\tthis.lightsBuffer.areaLightsEnabled = lightingParams ? lightingParams.areaLightsEnabled : false;\n\t\tconst divX = this._cells.x;\n\t\tconst divZ = this._cells.z;\n\t\tconst counts = this.counts;\n\t\tconst limit = this._maxCellLightCount;\n\t\tconst clusters = this.clusters;\n\t\tconst pixelsPerCellCount = this.maxCellLightCount;\n\t\tlet tooManyLights = false;\n\t\tconst usedLights = this._usedLights;\n\t\tfor (let i2 = 1; i2 < usedLights.length; i2++) {\n\t\t\tconst clusteredLight = usedLights[i2];\n\t\t\tconst light = clusteredLight.light;\n\t\t\tthis.lightsBuffer.addLightData(light, i2);\n\t\t\tthis.evalLightCellMinMax(clusteredLight, tempMin3, tempMax3);\n\t\t\tconst xStart = tempMin3.x;\n\t\t\tconst xEnd = tempMax3.x;\n\t\t\tconst yStart = tempMin3.y;\n\t\t\tconst yEnd = tempMax3.y;\n\t\t\tconst zStart = tempMin3.z;\n\t\t\tconst zEnd = tempMax3.z;\n\t\t\tfor (let x3 = xStart; x3 <= xEnd; x3++) {\n\t\t\t\tfor (let z2 = zStart; z2 <= zEnd; z2++) {\n\t\t\t\t\tfor (let y2 = yStart; y2 <= yEnd; y2++) {\n\t\t\t\t\t\tconst clusterIndex = x3 + divX * (z2 + y2 * divZ);\n\t\t\t\t\t\tconst count = counts[clusterIndex];\n\t\t\t\t\t\tif (count < limit) {\n\t\t\t\t\t\t\tclusters[pixelsPerCellCount * clusterIndex + count] = i2;\n\t\t\t\t\t\t\tcounts[clusterIndex] = count + 1;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttooManyLights = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// internal update of the cluster data, executes once per frame\n\tupdate(lights2, lightingParams = null) {\n\t\tthis.updateParams(lightingParams);\n\t\tthis.updateCells();\n\t\tthis.collectLights(lights2);\n\t\tthis.evaluateBounds();\n\t\tthis.updateClusters(lightingParams);\n\t\tthis.uploadTextures();\n\t}\n\t// called on already updated clusters, activates for rendering by setting up uniforms / textures on the device\n\tactivate() {\n\t\tthis.updateUniforms();\n\t}\n};\n\nvar _goldenAngle = 2.399963229728653;\nvar random = {\n\tcirclePoint(point5) {\n\t\tconst r = Math.sqrt(Math.random());\n\t\tconst theta = Math.random() * 2 * Math.PI;\n\t\tpoint5.x = r * Math.cos(theta);\n\t\tpoint5.y = r * Math.sin(theta);\n\t},\n\tcirclePointDeterministic(point5, index, numPoints) {\n\t\tconst theta = index * _goldenAngle;\n\t\tconst r = Math.sqrt(index / numPoints);\n\t\tpoint5.x = r * Math.cos(theta);\n\t\tpoint5.y = r * Math.sin(theta);\n\t},\n\tspherePointDeterministic(point5, index, numPoints, start = 0, end = 1) {\n\t\tstart = 1 - 2 * start;\n\t\tend = 1 - 2 * end;\n\t\tconst y2 = math.lerp(start, end, index / numPoints);\n\t\tconst radius = Math.sqrt(1 - y2 * y2);\n\t\tconst theta = _goldenAngle * index;\n\t\tpoint5.x = Math.cos(theta) * radius;\n\t\tpoint5.y = y2;\n\t\tpoint5.z = Math.sin(theta) * radius;\n\t},\n\tradicalInverse(i2) {\n\t\tlet bits = (i2 << 16 | i2 >>> 16) >>> 0;\n\t\tbits = ((bits & 1431655765) << 1 | (bits & 2863311530) >>> 1) >>> 0;\n\t\tbits = ((bits & 858993459) << 2 | (bits & 3435973836) >>> 2) >>> 0;\n\t\tbits = ((bits & 252645135) << 4 | (bits & 4042322160) >>> 4) >>> 0;\n\t\tbits = ((bits & 16711935) << 8 | (bits & 4278255360) >>> 8) >>> 0;\n\t\treturn bits * 23283064365386963e-26;\n\t}\n};\n\nvar decodeTable = {\n\t\"linear\": \"decodeLinear\",\n\t\"srgb\": \"decodeGamma\",\n\t\"rgbm\": \"decodeRGBM\",\n\t\"rgbe\": \"decodeRGBE\",\n\t\"rgbp\": \"decodeRGBP\",\n\t\"xy\": \"unpackNormalXY\",\n\t\"xyz\": \"unpackNormalXYZ\"\n};\nvar encodeTable = {\n\t\"linear\": \"encodeLinear\",\n\t\"srgb\": \"encodeGamma\",\n\t\"rgbm\": \"encodeRGBM\",\n\t\"rgbe\": \"encodeRGBE\",\n\t\"rgbp\": \"encodeRGBP\"\n};\nvar ChunkUtils = class {\n\t// returns the name of the decode function for the texture encoding\n\tstatic decodeFunc(encoding) {\n\t\treturn decodeTable[encoding] ?? \"decodeGamma\";\n\t}\n\tstatic encodeFunc(encoding) {\n\t\treturn encodeTable[encoding] ?? \"encodeGamma\";\n\t}\n};\n\nvar getProjectionName = (projection) => {\n\tswitch (projection) {\n\t\tcase TEXTUREPROJECTION_CUBE:\n\t\t\treturn \"Cubemap\";\n\t\tcase TEXTUREPROJECTION_OCTAHEDRAL:\n\t\t\treturn \"Octahedral\";\n\t\tdefault:\n\t\t\treturn \"Equirect\";\n\t}\n};\nvar packFloat32ToRGBA8 = (value, array3, offset3) => {\n\tif (value <= 0) {\n\t\tarray3[offset3 + 0] = 0;\n\t\tarray3[offset3 + 1] = 0;\n\t\tarray3[offset3 + 2] = 0;\n\t\tarray3[offset3 + 3] = 0;\n\t} else if (value >= 1) {\n\t\tarray3[offset3 + 0] = 255;\n\t\tarray3[offset3 + 1] = 0;\n\t\tarray3[offset3 + 2] = 0;\n\t\tarray3[offset3 + 3] = 0;\n\t} else {\n\t\tlet encX = 1 * value % 1;\n\t\tlet encY = 255 * value % 1;\n\t\tlet encZ = 65025 * value % 1;\n\t\tconst encW = 16581375 * value % 1;\n\t\tencX -= encY / 255;\n\t\tencY -= encZ / 255;\n\t\tencZ -= encW / 255;\n\t\tarray3[offset3 + 0] = Math.min(255, Math.floor(encX * 256));\n\t\tarray3[offset3 + 1] = Math.min(255, Math.floor(encY * 256));\n\t\tarray3[offset3 + 2] = Math.min(255, Math.floor(encZ * 256));\n\t\tarray3[offset3 + 3] = Math.min(255, Math.floor(encW * 256));\n\t}\n};\nvar packSamples = (samples) => {\n\tconst numSamples = samples.length;\n\tconst w = Math.min(numSamples, 512);\n\tconst h2 = Math.ceil(numSamples / w);\n\tconst data2 = new Uint8Array(w * h2 * 4);\n\tlet off = 0;\n\tfor (let i2 = 0; i2 < numSamples; i2 += 4) {\n\t\tpackFloat32ToRGBA8(samples[i2 + 0] * 0.5 + 0.5, data2, off + 0);\n\t\tpackFloat32ToRGBA8(samples[i2 + 1] * 0.5 + 0.5, data2, off + 4);\n\t\tpackFloat32ToRGBA8(samples[i2 + 2] * 0.5 + 0.5, data2, off + 8);\n\t\tpackFloat32ToRGBA8(samples[i2 + 3] / 8, data2, off + 12);\n\t\toff += 16;\n\t}\n\treturn {\n\t\twidth: w,\n\t\theight: h2,\n\t\tdata: data2\n\t};\n};\nvar hemisphereSamplePhong = (dstVec, x3, y2, specularPower) => {\n\tconst phi = y2 * 2 * Math.PI;\n\tconst cosTheta = Math.pow(1 - x3, 1 / (specularPower + 1));\n\tconst sinTheta = Math.sqrt(1 - cosTheta * cosTheta);\n\tdstVec.set(Math.cos(phi) * sinTheta, Math.sin(phi) * sinTheta, cosTheta).normalize();\n};\nvar hemisphereSampleLambert = (dstVec, x3, y2) => {\n\tconst phi = y2 * 2 * Math.PI;\n\tconst cosTheta = Math.sqrt(1 - x3);\n\tconst sinTheta = Math.sqrt(x3);\n\tdstVec.set(Math.cos(phi) * sinTheta, Math.sin(phi) * sinTheta, cosTheta).normalize();\n};\nvar hemisphereSampleGGX = (dstVec, x3, y2, a) => {\n\tconst phi = y2 * 2 * Math.PI;\n\tconst cosTheta = Math.sqrt((1 - x3) / (1 + (a * a - 1) * x3));\n\tconst sinTheta = Math.sqrt(1 - cosTheta * cosTheta);\n\tdstVec.set(Math.cos(phi) * sinTheta, Math.sin(phi) * sinTheta, cosTheta).normalize();\n};\nvar D_GGX = (NoH, linearRoughness) => {\n\tconst a = NoH * linearRoughness;\n\tconst k = linearRoughness / (1 - NoH * NoH + a * a);\n\treturn k * k * (1 / Math.PI);\n};\nvar generatePhongSamples = (numSamples, specularPower) => {\n\tconst H = new Vec3();\n\tconst result = [];\n\tfor (let i2 = 0; i2 < numSamples; ++i2) {\n\t\themisphereSamplePhong(H, i2 / numSamples, random.radicalInverse(i2), specularPower);\n\t\tresult.push(H.x, H.y, H.z, 0);\n\t}\n\treturn result;\n};\nvar generateLambertSamples = (numSamples, sourceTotalPixels) => {\n\tconst pixelsPerSample = sourceTotalPixels / numSamples;\n\tconst H = new Vec3();\n\tconst result = [];\n\tfor (let i2 = 0; i2 < numSamples; ++i2) {\n\t\themisphereSampleLambert(H, i2 / numSamples, random.radicalInverse(i2));\n\t\tconst pdf = H.z / Math.PI;\n\t\tconst mipLevel = 0.5 * Math.log2(pixelsPerSample / pdf);\n\t\tresult.push(H.x, H.y, H.z, mipLevel);\n\t}\n\treturn result;\n};\nvar requiredSamplesGGX = {\n\t\"16\": {\n\t\t\"2\": 26,\n\t\t\"8\": 20,\n\t\t\"32\": 17,\n\t\t\"128\": 16,\n\t\t\"512\": 16\n\t},\n\t\"32\": {\n\t\t\"2\": 53,\n\t\t\"8\": 40,\n\t\t\"32\": 34,\n\t\t\"128\": 32,\n\t\t\"512\": 32\n\t},\n\t\"128\": {\n\t\t\"2\": 214,\n\t\t\"8\": 163,\n\t\t\"32\": 139,\n\t\t\"128\": 130,\n\t\t\"512\": 128\n\t},\n\t\"1024\": {\n\t\t\"2\": 1722,\n\t\t\"8\": 1310,\n\t\t\"32\": 1114,\n\t\t\"128\": 1041,\n\t\t\"512\": 1025\n\t}\n};\nvar getRequiredSamplesGGX = (numSamples, specularPower) => {\n\tconst table = requiredSamplesGGX[numSamples];\n\treturn table && table[specularPower] || numSamples;\n};\nvar generateGGXSamples = (numSamples, specularPower, sourceTotalPixels) => {\n\tconst pixelsPerSample = sourceTotalPixels / numSamples;\n\tconst roughness = 1 - Math.log2(specularPower) / 11;\n\tconst a = roughness * roughness;\n\tconst H = new Vec3();\n\tconst L = new Vec3();\n\tconst N = new Vec3(0, 0, 1);\n\tconst result = [];\n\tconst requiredSamples = getRequiredSamplesGGX(numSamples, specularPower);\n\tfor (let i2 = 0; i2 < requiredSamples; ++i2) {\n\t\themisphereSampleGGX(H, i2 / requiredSamples, random.radicalInverse(i2), a);\n\t\tconst NoH = H.z;\n\t\tL.set(H.x, H.y, H.z).mulScalar(2 * NoH).sub(N);\n\t\tif (L.z > 0) {\n\t\t\tconst pdf = D_GGX(Math.min(1, NoH), a) / 4 + 1e-3;\n\t\t\tconst mipLevel = 0.5 * Math.log2(pixelsPerSample / pdf);\n\t\t\tresult.push(L.x, L.y, L.z, mipLevel);\n\t\t}\n\t}\n\twhile (result.length < numSamples * 4) {\n\t\tresult.push(0, 0, 0, 0);\n\t}\n\treturn result;\n};\nvar createSamplesTex = (device, name, samples) => {\n\tconst packedSamples = packSamples(samples);\n\treturn new Texture(device, {\n\t\tname,\n\t\twidth: packedSamples.width,\n\t\theight: packedSamples.height,\n\t\tmipmaps: false,\n\t\tminFilter: FILTER_NEAREST,\n\t\tmagFilter: FILTER_NEAREST,\n\t\tlevels: [packedSamples.data]\n\t});\n};\nvar SimpleCache = class {\n\tconstructor(destroyContent = true) {\n\t\tthis.destroyContent = destroyContent;\n\t}\n\tmap = /* @__PURE__ */ new Map();\n\tdestroy() {\n\t\tif (this.destroyContent) {\n\t\t\tthis.map.forEach((value, key) => {\n\t\t\t\tvalue.destroy();\n\t\t\t});\n\t\t}\n\t}\n\tget(key, missFunc) {\n\t\tif (!this.map.has(key)) {\n\t\t\tconst result = missFunc();\n\t\t\tthis.map.set(key, result);\n\t\t\treturn result;\n\t\t}\n\t\treturn this.map.get(key);\n\t}\n};\nvar samplesCache = new SimpleCache(false);\nvar deviceCache3 = new DeviceCache();\nvar getCachedTexture = (device, key, getSamplesFnc) => {\n\tconst cache = deviceCache3.get(device, () => {\n\t\treturn new SimpleCache();\n\t});\n\treturn cache.get(key, () => {\n\t\treturn createSamplesTex(device, key, samplesCache.get(key, getSamplesFnc));\n\t});\n};\nvar generateLambertSamplesTex = (device, numSamples, sourceTotalPixels) => {\n\tconst key = `lambert-samples-${numSamples}-${sourceTotalPixels}`;\n\treturn getCachedTexture(device, key, () => {\n\t\treturn generateLambertSamples(numSamples, sourceTotalPixels);\n\t});\n};\nvar generatePhongSamplesTex = (device, numSamples, specularPower) => {\n\tconst key = `phong-samples-${numSamples}-${specularPower}`;\n\treturn getCachedTexture(device, key, () => {\n\t\treturn generatePhongSamples(numSamples, specularPower);\n\t});\n};\nvar generateGGXSamplesTex = (device, numSamples, specularPower, sourceTotalPixels) => {\n\tconst key = `ggx-samples-${numSamples}-${specularPower}-${sourceTotalPixels}`;\n\treturn getCachedTexture(device, key, () => {\n\t\treturn generateGGXSamples(numSamples, specularPower, sourceTotalPixels);\n\t});\n};\nfunction reprojectTexture(source, target2, options2 = {}) {\n\tconst seamPixels = options2.seamPixels ?? 0;\n\tconst innerWidth = (options2.rect?.z ?? target2.width) - seamPixels * 2;\n\tconst innerHeight = (options2.rect?.w ?? target2.height) - seamPixels * 2;\n\tif (innerWidth < 1 || innerHeight < 1) {\n\t\treturn false;\n\t}\n\tconst funcNames = {\n\t\t\"none\": \"reproject\",\n\t\t\"lambert\": \"prefilterSamplesUnweighted\",\n\t\t\"phong\": \"prefilterSamplesUnweighted\",\n\t\t\"ggx\": \"prefilterSamples\"\n\t};\n\tconst specularPower = options2.hasOwnProperty(\"specularPower\") ? options2.specularPower : 1;\n\tconst face = options2.hasOwnProperty(\"face\") ? options2.face : null;\n\tconst distribution = options2.hasOwnProperty(\"distribution\") ? options2.distribution : specularPower === 1 ? \"none\" : \"phong\";\n\tconst processFunc = funcNames[distribution] || \"reproject\";\n\tconst prefilterSamples = processFunc.startsWith(\"prefilterSamples\");\n\tconst decodeFunc = ChunkUtils.decodeFunc(source.encoding);\n\tconst encodeFunc = ChunkUtils.encodeFunc(target2.encoding);\n\tconst sourceFunc = `sample${getProjectionName(source.projection)}`;\n\tconst targetFunc = `getDirection${getProjectionName(target2.projection)}`;\n\tconst numSamples = options2.hasOwnProperty(\"numSamples\") ? options2.numSamples : 1024;\n\tconst shaderKey = `ReprojectShader:${processFunc}_${decodeFunc}_${encodeFunc}_${sourceFunc}_${targetFunc}_${numSamples}`;\n\tconst device = source.device;\n\tlet shader = getProgramLibrary(device).getCachedShader(shaderKey);\n\tif (!shader) {\n\t\tconst defines = /* @__PURE__ */ new Map();\n\t\tif (prefilterSamples) defines.set(\"USE_SAMPLES_TEX\", \"\");\n\t\tif (source.cubemap) defines.set(\"CUBEMAP_SOURCE\", \"\");\n\t\tdefines.set(\"{PROCESS_FUNC}\", processFunc);\n\t\tdefines.set(\"{DECODE_FUNC}\", decodeFunc);\n\t\tdefines.set(\"{ENCODE_FUNC}\", encodeFunc);\n\t\tdefines.set(\"{SOURCE_FUNC}\", sourceFunc);\n\t\tdefines.set(\"{TARGET_FUNC}\", targetFunc);\n\t\tdefines.set(\"{NUM_SAMPLES}\", numSamples);\n\t\tdefines.set(\"{NUM_SAMPLES_SQRT}\", Math.round(Math.sqrt(numSamples)).toFixed(1));\n\t\tshader = ShaderUtils.createShader(device, {\n\t\t\tuniqueName: shaderKey,\n\t\t\tattributes: { vertex_position: SEMANTIC_POSITION },\n\t\t\tvertexChunk: \"reprojectVS\",\n\t\t\tfragmentChunk: \"reprojectPS\",\n\t\t\tfragmentDefines: defines\n\t\t});\n\t}\n\tdevice.setBlendState(BlendState.NOBLEND);\n\tconst constantSource = device.scope.resolve(source.cubemap ? \"sourceCube\" : \"sourceTex\");\n\tconstantSource.setValue(source);\n\tconst constantParams = device.scope.resolve(\"params\");\n\tconst uvModParam = device.scope.resolve(\"uvMod\");\n\tif (seamPixels > 0) {\n\t\tuvModParam.setValue([\n\t\t\t(innerWidth + seamPixels * 2) / innerWidth,\n\t\t\t(innerHeight + seamPixels * 2) / innerHeight,\n\t\t\t-seamPixels / innerWidth,\n\t\t\t-seamPixels / innerHeight\n\t\t]);\n\t} else {\n\t\tuvModParam.setValue([1, 1, 0, 0]);\n\t}\n\tconst params = [\n\t\t0,\n\t\ttarget2.width * target2.height * (target2.cubemap ? 6 : 1),\n\t\tsource.width * source.height * (source.cubemap ? 6 : 1)\n\t];\n\tif (prefilterSamples) {\n\t\tconst sourceTotalPixels = source.width * source.height * (source.cubemap ? 6 : 1);\n\t\tconst samplesTex = distribution === \"ggx\" ? generateGGXSamplesTex(device, numSamples, specularPower, sourceTotalPixels) : distribution === \"lambert\" ? generateLambertSamplesTex(device, numSamples, sourceTotalPixels) : generatePhongSamplesTex(device, numSamples, specularPower);\n\t\tdevice.scope.resolve(\"samplesTex\").setValue(samplesTex);\n\t\tdevice.scope.resolve(\"samplesTexInverseSize\").setValue([1 / samplesTex.width, 1 / samplesTex.height]);\n\t}\n\tfor (let f = 0; f < (target2.cubemap ? 6 : 1); f++) {\n\t\tif (face === null || f === face) {\n\t\t\tconst renderTarget = new RenderTarget({\n\t\t\t\tcolorBuffer: target2,\n\t\t\t\tface: f,\n\t\t\t\tdepth: false,\n\t\t\t\torigin: RENDERTARGET_ORIGIN_BOTTOM\n\t\t\t});\n\t\t\tparams[0] = f;\n\t\t\tconstantParams.setValue(params);\n\t\t\tdrawQuadWithShader(device, renderTarget, shader, options2?.rect);\n\t\t\trenderTarget.destroy();\n\t\t}\n\t}\n\treturn true;\n}\n\nvar calcLevels = (width, height = 0) => {\n\treturn 1 + Math.floor(Math.log2(Math.max(width, height)));\n};\nvar supportsFloat16 = (device) => {\n\treturn device.textureHalfFloatRenderable;\n};\nvar supportsFloat32 = (device) => {\n\treturn device.textureFloatRenderable;\n};\nvar lightingSourcePixelFormat = (device) => {\n\treturn supportsFloat16(device) ? PIXELFORMAT_RGBA16F : supportsFloat32(device) ? PIXELFORMAT_RGBA32F : PIXELFORMAT_RGBA8;\n};\nvar lightingPixelFormat = (device) => {\n\treturn PIXELFORMAT_RGBA8;\n};\nvar createCubemap = (device, size, format, mipmaps) => {\n\treturn new Texture(device, {\n\t\tname: `lighting-${size}`,\n\t\tcubemap: true,\n\t\twidth: size,\n\t\theight: size,\n\t\tformat,\n\t\ttype: format === PIXELFORMAT_RGBA8 ? TEXTURETYPE_RGBP : TEXTURETYPE_DEFAULT,\n\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\taddressV: ADDRESS_CLAMP_TO_EDGE,\n\t\tmipmaps: !!mipmaps\n\t});\n};\nvar EnvLighting = class {\n\tstatic generateSkyboxCubemap(source, size) {\n\t\tconst device = source.device;\n\t\tconst result = createCubemap(device, size || (source.cubemap ? source.width : source.width / 4), PIXELFORMAT_RGBA8, false);\n\t\treprojectTexture(source, result, {\n\t\t\tnumSamples: 1024\n\t\t});\n\t\treturn result;\n\t}\n\tstatic generateLightingSource(source, options2) {\n\t\tconst device = source.device;\n\t\tconst format = lightingSourcePixelFormat(device);\n\t\tconst result = options2?.target || new Texture(device, {\n\t\t\tname: \"lighting-source\",\n\t\t\tcubemap: true,\n\t\t\twidth: options2?.size || 128,\n\t\t\theight: options2?.size || 128,\n\t\t\tformat,\n\t\t\ttype: format === PIXELFORMAT_RGBA8 ? TEXTURETYPE_RGBP : TEXTURETYPE_DEFAULT,\n\t\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE,\n\t\t\tmipmaps: true\n\t\t});\n\t\treprojectTexture(source, result, {\n\t\t\tnumSamples: source.mipmaps ? 1 : 1024\n\t\t});\n\t\treturn result;\n\t}\n\tstatic generateAtlas(source, options2) {\n\t\tconst device = source.device;\n\t\tconst format = lightingPixelFormat(device);\n\t\tconst result = options2?.target || new Texture(device, {\n\t\t\tname: \"envAtlas\",\n\t\t\twidth: options2?.size || 512,\n\t\t\theight: options2?.size || 512,\n\t\t\tformat,\n\t\t\ttype: format === PIXELFORMAT_RGBA8 ? TEXTURETYPE_RGBP : TEXTURETYPE_DEFAULT,\n\t\t\tprojection: TEXTUREPROJECTION_EQUIRECT,\n\t\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE,\n\t\t\tmipmaps: false\n\t\t});\n\t\tconst s2 = result.width / 512;\n\t\tconst rect = new Vec4(0, 0, 512 * s2, 256 * s2);\n\t\tconst levels = calcLevels(256) - calcLevels(4);\n\t\tfor (let i2 = 0; i2 < levels; ++i2) {\n\t\t\treprojectTexture(source, result, {\n\t\t\t\tnumSamples: 1,\n\t\t\t\trect,\n\t\t\t\tseamPixels: s2\n\t\t\t});\n\t\t\trect.x += rect.w;\n\t\t\trect.y += rect.w;\n\t\t\trect.z = Math.max(1, Math.floor(rect.z * 0.5));\n\t\t\trect.w = Math.max(1, Math.floor(rect.w * 0.5));\n\t\t}\n\t\trect.set(0, 256 * s2, 256 * s2, 128 * s2);\n\t\tfor (let i2 = 1; i2 < 7; ++i2) {\n\t\t\treprojectTexture(source, result, {\n\t\t\t\tnumSamples: options2?.numReflectionSamples || 1024,\n\t\t\t\tdistribution: options2?.distribution || \"ggx\",\n\t\t\t\tspecularPower: Math.max(1, 2048 >> i2 * 2),\n\t\t\t\trect,\n\t\t\t\tseamPixels: s2\n\t\t\t});\n\t\t\trect.y += rect.w;\n\t\t\trect.z = Math.max(1, Math.floor(rect.z * 0.5));\n\t\t\trect.w = Math.max(1, Math.floor(rect.w * 0.5));\n\t\t}\n\t\trect.set(128 * s2, (256 + 128) * s2, 64 * s2, 32 * s2);\n\t\treprojectTexture(source, result, {\n\t\t\tnumSamples: options2?.numAmbientSamples || 2048,\n\t\t\tdistribution: \"lambert\",\n\t\t\trect,\n\t\t\tseamPixels: s2\n\t\t});\n\t\treturn result;\n\t}\n\tstatic generatePrefilteredAtlas(sources, options2) {\n\t\tconst device = sources[0].device;\n\t\tconst format = sources[0].format;\n\t\tconst type = sources[0].type;\n\t\tconst result = options2?.target || new Texture(device, {\n\t\t\tname: \"envPrefilteredAtlas\",\n\t\t\twidth: options2?.size || 512,\n\t\t\theight: options2?.size || 512,\n\t\t\tformat,\n\t\t\ttype,\n\t\t\tprojection: TEXTUREPROJECTION_EQUIRECT,\n\t\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE,\n\t\t\tmipmaps: false\n\t\t});\n\t\tconst s2 = result.width / 512;\n\t\tconst rect = new Vec4(0, 0, 512 * s2, 256 * s2);\n\t\tconst levels = calcLevels(512);\n\t\tfor (let i2 = 0; i2 < levels; ++i2) {\n\t\t\treprojectTexture(sources[0], result, {\n\t\t\t\tnumSamples: 1,\n\t\t\t\trect,\n\t\t\t\tseamPixels: s2\n\t\t\t});\n\t\t\trect.x += rect.w;\n\t\t\trect.y += rect.w;\n\t\t\trect.z = Math.max(1, Math.floor(rect.z * 0.5));\n\t\t\trect.w = Math.max(1, Math.floor(rect.w * 0.5));\n\t\t}\n\t\trect.set(0, 256 * s2, 256 * s2, 128 * s2);\n\t\tfor (let i2 = 1; i2 < sources.length; ++i2) {\n\t\t\treprojectTexture(sources[i2], result, {\n\t\t\t\tnumSamples: 1,\n\t\t\t\trect,\n\t\t\t\tseamPixels: s2\n\t\t\t});\n\t\t\trect.y += rect.w;\n\t\t\trect.z = Math.max(1, Math.floor(rect.z * 0.5));\n\t\t\trect.w = Math.max(1, Math.floor(rect.w * 0.5));\n\t\t}\n\t\trect.set(128 * s2, (256 + 128) * s2, 64 * s2, 32 * s2);\n\t\tif (options2?.legacyAmbient) {\n\t\t\treprojectTexture(sources[5], result, {\n\t\t\t\tnumSamples: 1,\n\t\t\t\trect,\n\t\t\t\tseamPixels: s2\n\t\t\t});\n\t\t} else {\n\t\t\treprojectTexture(sources[0], result, {\n\t\t\t\tnumSamples: options2?.numSamples || 2048,\n\t\t\t\tdistribution: \"lambert\",\n\t\t\t\trect,\n\t\t\t\tseamPixels: s2\n\t\t\t});\n\t\t}\n\t\treturn result;\n\t}\n};\n\nvar builtinAttributes = {\n\tvertex_normal: SEMANTIC_NORMAL,\n\tvertex_tangent: SEMANTIC_TANGENT,\n\tvertex_texCoord0: SEMANTIC_TEXCOORD0,\n\tvertex_texCoord1: SEMANTIC_TEXCOORD1,\n\tvertex_color: SEMANTIC_COLOR,\n\tvertex_boneWeights: SEMANTIC_BLENDWEIGHT,\n\tvertex_boneIndices: SEMANTIC_BLENDINDICES\n};\nvar LitShader = class {\n\tvaryingsCode = \"\";\n\tdevice;\n\toptions;\n\tshaderLanguage;\n\tvDefines = /* @__PURE__ */ new Map();\n\tfDefines = /* @__PURE__ */ new Map();\n\tincludes = /* @__PURE__ */ new Map();\n\tchunks = null;\n\tconstructor(device, options2, allowWGSL = true) {\n\t\tthis.device = device;\n\t\tthis.options = options2;\n\t\tconst userChunks = options2.shaderChunks;\n\t\tthis.shaderLanguage = device.isWebGPU && allowWGSL && (!userChunks || userChunks.useWGSL) ? SHADERLANGUAGE_WGSL : SHADERLANGUAGE_GLSL;\n\t\tif (device.isWebGPU && this.shaderLanguage === SHADERLANGUAGE_GLSL) {\n\t\t\tif (!device.hasTranspilers) {\n\t\t\t}\n\t\t}\n\t\tthis.attributes = {\n\t\t\tvertex_position: SEMANTIC_POSITION\n\t\t};\n\t\tif (options2.userAttributes) {\n\t\t\tfor (const [semantic, name] of Object.entries(options2.userAttributes)) {\n\t\t\t\tthis.attributes[name] = semantic;\n\t\t\t}\n\t\t}\n\t\tconst engineChunks = ShaderChunks.get(device, this.shaderLanguage);\n\t\tthis.chunks = new Map(engineChunks);\n\t\tif (userChunks) {\n\t\t\tconst userChunkMap = this.shaderLanguage === SHADERLANGUAGE_GLSL ? userChunks.glsl : userChunks.wgsl;\n\t\t\tuserChunkMap.forEach((chunk, chunkName) => {\n\t\t\t\tfor (const a in builtinAttributes) {\n\t\t\t\t\tif (builtinAttributes.hasOwnProperty(a) && chunk.indexOf(a) >= 0) {\n\t\t\t\t\t\tthis.attributes[a] = builtinAttributes[a];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.chunks.set(chunkName, chunk);\n\t\t\t});\n\t\t}\n\t\tthis.shaderPassInfo = ShaderPass.get(this.device).getByIndex(options2.pass);\n\t\tthis.shadowPass = this.shaderPassInfo.isShadow;\n\t\tthis.lighting = options2.lights.length > 0 || options2.dirLightMapEnabled || options2.clusteredLightingEnabled;\n\t\tthis.reflections = options2.reflectionSource !== REFLECTIONSRC_NONE;\n\t\tthis.needsNormal = this.lighting || this.reflections || options2.useRefraction || options2.useSpecular || options2.ambientSH || options2.useHeights || options2.enableGGXSpecular || options2.clusteredLightingEnabled && !this.shadowPass || options2.useClearCoatNormals;\n\t\tthis.needsNormal = this.needsNormal && !this.shadowPass;\n\t\tthis.needsSceneColor = options2.useDynamicRefraction;\n\t\tthis.needsScreenSize = options2.useDynamicRefraction;\n\t\tthis.needsTransforms = options2.useDynamicRefraction;\n\t\tthis.vshader = null;\n\t\tthis.fshader = null;\n\t}\n\tfDefineSet(condition, name, value = \"\") {\n\t\tif (condition) {\n\t\t\tthis.fDefines.set(name, value);\n\t\t}\n\t}\n\tsharedDefineSet(condition, name, value = \"\") {\n\t\tif (condition) {\n\t\t\tthis.vDefines.set(name, value);\n\t\t\tthis.fDefines.set(name, value);\n\t\t}\n\t}\n\tgenerateVertexShader(useUv, useUnmodifiedUv, mapTransforms) {\n\t\tconst { options: options2, vDefines, attributes } = this;\n\t\tconst varyings = /* @__PURE__ */ new Map();\n\t\tvaryings.set(\"vPositionW\", \"vec3\");\n\t\tif (options2.nineSlicedMode === SPRITE_RENDERMODE_SLICED || options2.nineSlicedMode === SPRITE_RENDERMODE_TILED) {\n\t\t\tvDefines.set(\"NINESLICED\", true);\n\t\t}\n\t\tif (this.options.linearDepth) {\n\t\t\tvDefines.set(\"LINEAR_DEPTH\", true);\n\t\t\tvaryings.set(\"vLinearDepth\", \"float\");\n\t\t}\n\t\tif (this.needsNormal) vDefines.set(\"NORMALS\", true);\n\t\tif (this.options.useInstancing) {\n\t\t\tconst languageChunks = ShaderChunks.get(this.device, this.shaderLanguage);\n\t\t\tif (this.chunks.get(\"transformInstancingVS\") === languageChunks.get(\"transformInstancingVS\")) {\n\t\t\t\tattributes.instance_line1 = SEMANTIC_ATTR11;\n\t\t\t\tattributes.instance_line2 = SEMANTIC_ATTR12;\n\t\t\t\tattributes.instance_line3 = SEMANTIC_ATTR14;\n\t\t\t\tattributes.instance_line4 = SEMANTIC_ATTR15;\n\t\t\t}\n\t\t}\n\t\tif (this.needsNormal) {\n\t\t\tattributes.vertex_normal = SEMANTIC_NORMAL;\n\t\t\tvaryings.set(\"vNormalW\", \"vec3\");\n\t\t\tif (options2.hasTangents && (options2.useHeights || options2.useNormals || options2.useClearCoatNormals || options2.enableGGXSpecular)) {\n\t\t\t\tvDefines.set(\"TANGENTS\", true);\n\t\t\t\tattributes.vertex_tangent = SEMANTIC_TANGENT;\n\t\t\t\tvaryings.set(\"vTangentW\", \"vec3\");\n\t\t\t\tvaryings.set(\"vBinormalW\", \"vec3\");\n\t\t\t} else if (options2.enableGGXSpecular) {\n\t\t\t\tvDefines.set(\"GGX_SPECULAR\", true);\n\t\t\t\tvaryings.set(\"vObjectSpaceUpW\", \"vec3\");\n\t\t\t}\n\t\t}\n\t\tconst maxUvSets = 2;\n\t\tfor (let i2 = 0; i2 < maxUvSets; i2++) {\n\t\t\tif (useUv[i2]) {\n\t\t\t\tvDefines.set(`UV${i2}`, true);\n\t\t\t\tattributes[`vertex_texCoord${i2}`] = `TEXCOORD${i2}`;\n\t\t\t}\n\t\t\tif (useUnmodifiedUv[i2]) {\n\t\t\t\tvDefines.set(`UV${i2}_UNMODIFIED`, true);\n\t\t\t\tvaryings.set(`vUv${i2}`, \"vec2\");\n\t\t\t}\n\t\t}\n\t\tlet numTransforms = 0;\n\t\tconst transformDone = /* @__PURE__ */ new Set();\n\t\tmapTransforms.forEach((mapTransform) => {\n\t\t\tconst { id: id14, uv, name } = mapTransform;\n\t\t\tconst checkId = id14 + uv * 100;\n\t\t\tif (!transformDone.has(checkId)) {\n\t\t\t\ttransformDone.add(checkId);\n\t\t\t\tvaryings.set(`vUV${uv}_${id14}`, \"vec2\");\n\t\t\t\tconst varName = `texture_${name}MapTransform`;\n\t\t\t\tvDefines.set(`{TRANSFORM_NAME_${numTransforms}}`, varName);\n\t\t\t\tvDefines.set(`{TRANSFORM_UV_${numTransforms}}`, uv);\n\t\t\t\tvDefines.set(`{TRANSFORM_ID_${numTransforms}}`, id14);\n\t\t\t\tnumTransforms++;\n\t\t\t}\n\t\t});\n\t\tvDefines.set(\"UV_TRANSFORMS_COUNT\", numTransforms);\n\t\tif (options2.vertexColors) {\n\t\t\tattributes.vertex_color = SEMANTIC_COLOR;\n\t\t\tvDefines.set(\"VERTEX_COLOR\", true);\n\t\t\tvaryings.set(\"vVertexColor\", \"vec4\");\n\t\t\tif (options2.useVertexColorGamma) {\n\t\t\t\tvDefines.set(\"STD_VERTEX_COLOR_GAMMA\", \"\");\n\t\t\t}\n\t\t}\n\t\tif (options2.useMsdf && options2.msdfTextAttribute) {\n\t\t\tattributes.vertex_outlineParameters = SEMANTIC_ATTR8;\n\t\t\tattributes.vertex_shadowParameters = SEMANTIC_ATTR9;\n\t\t\tvDefines.set(\"MSDF\", true);\n\t\t}\n\t\tif (options2.useMorphPosition || options2.useMorphNormal) {\n\t\t\tthis.sharedDefineSet(true, \"MORPHING\", true);\n\t\t\tthis.sharedDefineSet(options2.useMorphTextureBasedInt, \"MORPHING_INT\", true);\n\t\t\tthis.sharedDefineSet(options2.useMorphPosition, \"MORPHING_POSITION\", true);\n\t\t\tthis.sharedDefineSet(options2.useMorphNormal, \"MORPHING_NORMAL\", true);\n\t\t\tattributes.morph_vertex_id = SEMANTIC_ATTR15;\n\t\t}\n\t\tif (options2.skin) {\n\t\t\tattributes.vertex_boneIndices = SEMANTIC_BLENDINDICES;\n\t\t\tif (options2.batch) {\n\t\t\t\tthis.sharedDefineSet(true, \"BATCH\", true);\n\t\t\t} else {\n\t\t\t\tattributes.vertex_boneWeights = SEMANTIC_BLENDWEIGHT;\n\t\t\t\tthis.sharedDefineSet(true, \"SKIN\", true);\n\t\t\t}\n\t\t}\n\t\tthis.sharedDefineSet(options2.useInstancing, \"INSTANCING\", true);\n\t\tthis.sharedDefineSet(options2.screenSpace, \"SCREENSPACE\", true);\n\t\tif (options2.pixelSnap) vDefines.set(\"PIXELSNAP\", true);\n\t\tvaryings.forEach((type, name) => {\n\t\t\tthis.varyingsCode += `#define VARYING_${name.toUpperCase()}\n`;\n\t\t\tthis.varyingsCode += this.shaderLanguage === SHADERLANGUAGE_WGSL ? `varying ${name}: ${primitiveGlslToWgslTypeMap.get(type)};\n` : `varying ${type} ${name};\n`;\n\t\t});\n\t\tthis.includes.set(\"varyingsVS\", this.varyingsCode);\n\t\tthis.includes.set(\"varyingsPS\", this.varyingsCode);\n\t\tthis.vshader = `\n\t\t\t\t\t\t#include \"litMainVS\"\n\t\t\t\t`;\n\t}\n\t_setupLightingDefines(hasAreaLights, clusteredLightingEnabled) {\n\t\tconst fDefines = this.fDefines;\n\t\tconst options2 = this.options;\n\t\tthis.fDefines.set(\"LIGHT_COUNT\", options2.lights.length);\n\t\tif (hasAreaLights) fDefines.set(\"AREA_LIGHTS\", true);\n\t\tif (clusteredLightingEnabled && this.lighting) {\n\t\t\tfDefines.set(\"LIT_CLUSTERED_LIGHTS\", true);\n\t\t\tif (options2.clusteredLightingCookiesEnabled) fDefines.set(\"CLUSTER_COOKIES\", true);\n\t\t\tif (options2.clusteredLightingAreaLightsEnabled) fDefines.set(\"CLUSTER_AREALIGHTS\", true);\n\t\t\tif (options2.lightMaskDynamic) fDefines.set(\"CLUSTER_MESH_DYNAMIC_LIGHTS\", true);\n\t\t\tif (options2.clusteredLightingShadowsEnabled && !options2.noShadow) {\n\t\t\t\tconst clusteredShadowInfo = shadowTypeInfo.get(options2.clusteredLightingShadowType);\n\t\t\t\tfDefines.set(\"CLUSTER_SHADOWS\", true);\n\t\t\t\tfDefines.set(`SHADOW_KIND_${clusteredShadowInfo.kind}`, true);\n\t\t\t\tfDefines.set(`CLUSTER_SHADOW_TYPE_${clusteredShadowInfo.kind}`, true);\n\t\t\t}\n\t\t}\n\t\tfor (let i2 = 0; i2 < options2.lights.length; i2++) {\n\t\t\tconst light = options2.lights[i2];\n\t\t\tconst lightType = light._type;\n\t\t\tif (clusteredLightingEnabled && lightType !== LIGHTTYPE_DIRECTIONAL) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst lightShape = hasAreaLights && light._shape ? light._shape : LIGHTSHAPE_PUNCTUAL;\n\t\t\tconst shadowType = light._shadowType;\n\t\t\tconst castShadow = light.castShadows && !options2.noShadow;\n\t\t\tconst shadowInfo = shadowTypeInfo.get(shadowType);\n\t\t\tfDefines.set(`LIGHT${i2}`, true);\n\t\t\tfDefines.set(`LIGHT${i2}TYPE`, `${lightTypeNames[lightType]}`);\n\t\t\tfDefines.set(`LIGHT${i2}SHADOWTYPE`, `${shadowInfo.name}`);\n\t\t\tfDefines.set(`LIGHT${i2}SHAPE`, `${lightShapeNames[lightShape]}`);\n\t\t\tfDefines.set(`LIGHT${i2}FALLOFF`, `${lightFalloffNames[light._falloffMode]}`);\n\t\t\tif (light.affectSpecularity) fDefines.set(`LIGHT${i2}AFFECT_SPECULARITY`, true);\n\t\t\tif (light._cookie) {\n\t\t\t\tif (lightType === LIGHTTYPE_SPOT && !light._cookie._cubemap || lightType === LIGHTTYPE_OMNI && light._cookie._cubemap) {\n\t\t\t\t\tfDefines.set(`LIGHT${i2}COOKIE`, true);\n\t\t\t\t\tfDefines.set(`{LIGHT${i2}COOKIE_CHANNEL}`, light._cookieChannel);\n\t\t\t\t\tif (lightType === LIGHTTYPE_SPOT) {\n\t\t\t\t\t\tif (light._cookieTransform) fDefines.set(`LIGHT${i2}COOKIE_TRANSFORM`, true);\n\t\t\t\t\t\tif (light._cookieFalloff) fDefines.set(`LIGHT${i2}COOKIE_FALLOFF`, true);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (castShadow) {\n\t\t\t\tfDefines.set(`LIGHT${i2}CASTSHADOW`, true);\n\t\t\t\tif (shadowInfo.pcf) fDefines.set(`LIGHT${i2}SHADOW_PCF`, true);\n\t\t\t\tif (light._normalOffsetBias && !light._isVsm) fDefines.set(`LIGHT${i2}_SHADOW_SAMPLE_NORMAL_OFFSET`, true);\n\t\t\t\tif (lightType === LIGHTTYPE_DIRECTIONAL) {\n\t\t\t\t\tfDefines.set(`LIGHT${i2}_SHADOW_SAMPLE_ORTHO`, true);\n\t\t\t\t\tif (light.cascadeBlend > 0) fDefines.set(`LIGHT${i2}_SHADOW_CASCADE_BLEND`, true);\n\t\t\t\t\tif (light.numCascades > 1) fDefines.set(`LIGHT${i2}_SHADOW_CASCADES`, true);\n\t\t\t\t}\n\t\t\t\tif (shadowInfo.pcf || shadowInfo.pcss || this.device.isWebGPU) fDefines.set(`LIGHT${i2}_SHADOW_SAMPLE_SOURCE_ZBUFFER`, true);\n\t\t\t\tif (lightType === LIGHTTYPE_OMNI) fDefines.set(`LIGHT${i2}_SHADOW_SAMPLE_POINT`, true);\n\t\t\t}\n\t\t\tif (castShadow) {\n\t\t\t\tfDefines.set(`SHADOW_KIND_${shadowInfo.kind}`, true);\n\t\t\t\tif (lightType === LIGHTTYPE_DIRECTIONAL) fDefines.set(\"SHADOW_DIRECTIONAL\", true);\n\t\t\t}\n\t\t}\n\t}\n\tprepareForwardPass(lightingUv) {\n\t\tconst { options: options2 } = this;\n\t\tconst clusteredAreaLights = options2.clusteredLightingEnabled && options2.clusteredLightingAreaLightsEnabled;\n\t\tconst hasAreaLights = clusteredAreaLights || options2.lights.some((light) => {\n\t\t\treturn light._shape && light._shape !== LIGHTSHAPE_PUNCTUAL;\n\t\t});\n\t\tconst addAmbient = !options2.lightMapEnabled || options2.lightMapWithoutAmbient;\n\t\tconst hasTBN = this.needsNormal && (options2.useNormals || options2.useClearCoatNormals || options2.useHeights || options2.enableGGXSpecular);\n\t\tif (options2.useSpecular) {\n\t\t\tthis.fDefineSet(true, \"LIT_SPECULAR\");\n\t\t\tthis.fDefineSet(this.reflections, \"LIT_REFLECTIONS\");\n\t\t\tthis.fDefineSet(options2.useClearCoat, \"LIT_CLEARCOAT\");\n\t\t\tthis.fDefineSet(options2.fresnelModel > 0, \"LIT_SPECULAR_FRESNEL\");\n\t\t\tthis.fDefineSet(options2.useSheen, \"LIT_SHEEN\");\n\t\t\tthis.fDefineSet(options2.useIridescence, \"LIT_IRIDESCENCE\");\n\t\t}\n\t\tthis.fDefineSet(this.lighting && options2.useSpecular || this.reflections, \"LIT_SPECULAR_OR_REFLECTION\");\n\t\tthis.fDefineSet(this.needsSceneColor, \"LIT_SCENE_COLOR\");\n\t\tthis.fDefineSet(this.needsScreenSize, \"LIT_SCREEN_SIZE\");\n\t\tthis.fDefineSet(this.needsTransforms, \"LIT_TRANSFORMS\");\n\t\tthis.fDefineSet(this.needsNormal, \"LIT_NEEDS_NORMAL\");\n\t\tthis.fDefineSet(this.lighting, \"LIT_LIGHTING\");\n\t\tthis.fDefineSet(options2.useMetalness, \"LIT_METALNESS\");\n\t\tthis.fDefineSet(options2.enableGGXSpecular, \"LIT_GGX_SPECULAR\");\n\t\tthis.fDefineSet(options2.useAnisotropy, \"LIT_ANISOTROPY\");\n\t\tthis.fDefineSet(options2.useSpecularityFactor, \"LIT_SPECULARITY_FACTOR\");\n\t\tthis.fDefineSet(options2.useCubeMapRotation, \"CUBEMAP_ROTATION\");\n\t\tthis.fDefineSet(options2.occludeSpecularFloat, \"LIT_OCCLUDE_SPECULAR_FLOAT\");\n\t\tthis.fDefineSet(options2.separateAmbient, \"LIT_SEPARATE_AMBIENT\");\n\t\tthis.fDefineSet(options2.twoSidedLighting, \"LIT_TWO_SIDED_LIGHTING\");\n\t\tthis.fDefineSet(options2.lightMapEnabled, \"LIT_LIGHTMAP\");\n\t\tthis.fDefineSet(options2.dirLightMapEnabled, \"LIT_DIR_LIGHTMAP\");\n\t\tthis.fDefineSet(options2.skyboxIntensity > 0, \"LIT_SKYBOX_INTENSITY\");\n\t\tthis.fDefineSet(options2.clusteredLightingShadowsEnabled, \"LIT_CLUSTERED_SHADOWS\");\n\t\tthis.fDefineSet(options2.clusteredLightingAreaLightsEnabled, \"LIT_CLUSTERED_AREA_LIGHTS\");\n\t\tthis.fDefineSet(hasTBN, \"LIT_TBN\");\n\t\tthis.fDefineSet(addAmbient, \"LIT_ADD_AMBIENT\");\n\t\tthis.fDefineSet(options2.hasTangents, \"LIT_TANGENTS\");\n\t\tthis.fDefineSet(options2.useNormals, \"LIT_USE_NORMALS\");\n\t\tthis.fDefineSet(options2.useClearCoatNormals, \"LIT_USE_CLEARCOAT_NORMALS\");\n\t\tthis.fDefineSet(options2.useRefraction, \"LIT_REFRACTION\");\n\t\tthis.fDefineSet(options2.useDynamicRefraction, \"LIT_DYNAMIC_REFRACTION\");\n\t\tthis.fDefineSet(options2.dispersion, \"LIT_DISPERSION\");\n\t\tthis.fDefineSet(options2.useHeights, \"LIT_HEIGHTS\");\n\t\tthis.fDefineSet(options2.opacityFadesSpecular, \"LIT_OPACITY_FADES_SPECULAR\");\n\t\tthis.fDefineSet(options2.alphaToCoverage, \"LIT_ALPHA_TO_COVERAGE\");\n\t\tthis.fDefineSet(options2.alphaTest, \"LIT_ALPHA_TEST\");\n\t\tthis.fDefineSet(options2.useMsdf, \"LIT_MSDF\");\n\t\tthis.fDefineSet(options2.ssao, \"LIT_SSAO\");\n\t\tthis.fDefineSet(options2.useAo, \"LIT_AO\");\n\t\tthis.fDefineSet(options2.occludeDirect, \"LIT_OCCLUDE_DIRECT\");\n\t\tthis.fDefineSet(options2.msdfTextAttribute, \"LIT_MSDF_TEXT_ATTRIBUTE\");\n\t\tthis.fDefineSet(options2.diffuseMapEnabled, \"LIT_DIFFUSE_MAP\");\n\t\tthis.fDefineSet(options2.shadowCatcher, \"LIT_SHADOW_CATCHER\");\n\t\tthis.fDefineSet(true, \"LIT_FRESNEL_MODEL\", fresnelNames[options2.fresnelModel]);\n\t\tthis.fDefineSet(true, \"LIT_NONE_SLICE_MODE\", spriteRenderModeNames[options2.nineSlicedMode]);\n\t\tthis.fDefineSet(true, \"LIT_BLEND_TYPE\", blendNames[options2.blendType]);\n\t\tthis.fDefineSet(true, \"LIT_CUBEMAP_PROJECTION\", cubemaProjectionNames[options2.cubeMapProjection]);\n\t\tthis.fDefineSet(true, \"LIT_OCCLUDE_SPECULAR\", specularOcclusionNames[options2.occludeSpecular]);\n\t\tthis.fDefineSet(true, \"LIT_REFLECTION_SOURCE\", reflectionSrcNames[options2.reflectionSource]);\n\t\tthis.fDefineSet(true, \"LIT_AMBIENT_SOURCE\", ambientSrcNames[options2.ambientSource]);\n\t\tthis.fDefineSet(true, \"{lightingUv}\", lightingUv ?? \"\");\n\t\tthis.fDefineSet(true, \"{reflectionDecode}\", ChunkUtils.decodeFunc(options2.reflectionEncoding));\n\t\tthis.fDefineSet(true, \"{reflectionCubemapDecode}\", ChunkUtils.decodeFunc(options2.reflectionCubemapEncoding));\n\t\tthis.fDefineSet(true, \"{ambientDecode}\", ChunkUtils.decodeFunc(options2.ambientEncoding));\n\t\tthis._setupLightingDefines(hasAreaLights, options2.clusteredLightingEnabled);\n\t}\n\tpreparePrepassPass() {\n\t\tconst { options: options2 } = this;\n\t\tthis.fDefineSet(options2.alphaTest, \"LIT_ALPHA_TEST\");\n\t\tthis.fDefineSet(true, \"STD_OPACITY_DITHER\", ditherNames[options2.opacityShadowDither]);\n\t}\n\tprepareShadowPass() {\n\t\tconst { options: options2 } = this;\n\t\tthis.fDefineSet(options2.alphaTest, \"LIT_ALPHA_TEST\");\n\t}\n\tgenerateFragmentShader(frontendDecl, frontendCode, lightingUv) {\n\t\tconst options2 = this.options;\n\t\tthis.includes.set(\"frontendDeclPS\", frontendDecl ?? \"\");\n\t\tthis.includes.set(\"frontendCodePS\", frontendCode ?? \"\");\n\t\tif (options2.pass === SHADER_PICK) {\n\t\t} else if (options2.pass === SHADER_PREPASS) {\n\t\t\tthis.preparePrepassPass();\n\t\t} else if (this.shadowPass) {\n\t\t\tthis.prepareShadowPass();\n\t\t} else {\n\t\t\tthis.prepareForwardPass(lightingUv);\n\t\t}\n\t\tthis.fshader = `\n\t\t\t\t\t\t#include \"litMainPS\"\n\t\t\t\t`;\n\t}\n};\n\nvar LitShaderOptions = class {\n\thasTangents = false;\n\tshaderChunks = null;\n\t// one of the SHADER_ constants\n\tpass = 0;\n\talphaTest = false;\n\tblendType = BLEND_NONE;\n\tseparateAmbient = false;\n\tscreenSpace = false;\n\tskin = false;\n\tbatch = false;\n\tuseInstancing = false;\n\tuseMorphPosition = false;\n\tuseMorphNormal = false;\n\tuseMorphTextureBasedInt = false;\n\tnineSlicedMode = 0;\n\tclusteredLightingEnabled = true;\n\tclusteredLightingCookiesEnabled = false;\n\tclusteredLightingShadowsEnabled = false;\n\tclusteredLightingShadowType = 0;\n\tclusteredLightingAreaLightsEnabled = false;\n\tvertexColors = false;\n\tuseVertexColorGamma = false;\n\tlightMapEnabled = false;\n\tdirLightMapEnabled = false;\n\tuseHeights = false;\n\tuseNormals = false;\n\tuseClearCoatNormals = false;\n\tuseAo = false;\n\tdiffuseMapEnabled = false;\n\tpixelSnap = false;\n\tambientSH = false;\n\tssao = false;\n\ttwoSidedLighting = false;\n\toccludeDirect = false;\n\toccludeSpecular = 0;\n\toccludeSpecularFloat = false;\n\tuseMsdf = false;\n\tmsdfTextAttribute = false;\n\talphaToCoverage = false;\n\topacityFadesSpecular = false;\n\topacityDither = DITHER_NONE;\n\topacityShadowDither = DITHER_NONE;\n\tcubeMapProjection = 0;\n\tuseSpecular = false;\n\tuseSpecularityFactor = false;\n\tenableGGXSpecular = false;\n\tfresnelModel = 0;\n\tuseRefraction = false;\n\tuseClearCoat = false;\n\tuseSheen = false;\n\tuseIridescence = false;\n\tuseMetalness = false;\n\tuseDynamicRefraction = false;\n\tdispersion = false;\n\tfog = FOG_NONE;\n\tgamma = GAMMA_NONE;\n\ttoneMap = -1;\n\treflectionSource = REFLECTIONSRC_NONE;\n\treflectionEncoding = null;\n\treflectionCubemapEncoding = null;\n\tambientSource = \"constant\";\n\tambientEncoding = null;\n\t// TODO: add a test for if non skybox cubemaps have rotation (when this is supported) - for now\n\t// assume no non-skybox cubemap rotation\n\tskyboxIntensity = 1;\n\tuseCubeMapRotation = false;\n\tlightMapWithoutAmbient = false;\n\tlights = [];\n\tnoShadow = false;\n\tlightMaskDynamic = 0;\n\tuserAttributes = {};\n\tlinearDepth = false;\n\tshadowCatcher = false;\n};\n\nvar StandardMaterialOptions = class {\n\tdefines = /* @__PURE__ */ new Map();\n\tuseDualSourceBlending = false;\n\tforceUv1 = false;\n\tmetalnessTint = false;\n\tglossTint = false;\n\temissiveEncoding = \"linear\";\n\tlightMapEncoding = \"linear\";\n\tvertexColorGamma = false;\n\tpackedNormal = false;\n\tnormalDetailPackedNormal = false;\n\tclearCoatPackedNormal = false;\n\tglossInvert = false;\n\tsheenGlossInvert = false;\n\tclearCoatGlossInvert = false;\n\tuseAO = false;\n\tlitOptions = new LitShaderOptions();\n\t// program-library assumes material options has a pass property\n\tget pass() {\n\t\treturn this.litOptions.pass;\n\t}\n};\nfunction _defineDeprecatedOption(name, newName) {\n\tif (name !== \"pass\") {\n\t\tObject.defineProperty(StandardMaterialOptions.prototype, name, {\n\t\t\tget: function() {\n\t\t\t\treturn this.litOptions[newName || name];\n\t\t\t},\n\t\t\tset: function(value) {\n\t\t\t\tthis.litOptions[newName || name] = value;\n\t\t\t}\n\t\t});\n\t}\n}\n_defineDeprecatedOption(\"refraction\", \"useRefraction\");\nvar tempOptions = new LitShaderOptions();\nvar litOptionProperties = Object.getOwnPropertyNames(tempOptions);\nfor (const litOption in litOptionProperties) {\n\t_defineDeprecatedOption(litOptionProperties[litOption]);\n}\n\nvar LitOptionsUtils = {\n\t// generate a key for the lit options\n\tgenerateKey(options2) {\n\t\treturn `lit${Object.keys(options2).sort().map((key) => {\n\t\t\tif (key === \"shaderChunks\") {\n\t\t\t\treturn options2.shaderChunks?.key ?? \"\";\n\t\t\t} else if (key === \"lights\") {\n\t\t\t\treturn LitOptionsUtils.generateLightsKey(options2);\n\t\t\t}\n\t\t\treturn key + options2[key];\n\t\t}).join(\"\\n\")}`;\n\t},\n\tgenerateLightsKey(options2) {\n\t\treturn `lights:${options2.lights.map((light) => {\n\t\t\treturn !options2.clusteredLightingEnabled || light._type === LIGHTTYPE_DIRECTIONAL ? `${light.key},` : \"\";\n\t\t}).join(\"\")}`;\n\t}\n};\n\nvar _matTex2D = /* @__PURE__ */ new Map();\nvar buildPropertiesList = (options2) => {\n\treturn Object.keys(options2).filter((key) => key !== \"litOptions\").sort();\n};\nvar ShaderGeneratorStandard = class extends ShaderGenerator {\n\t// Shared Standard Material option structures\n\toptionsContext = new StandardMaterialOptions();\n\toptionsContextMin = new StandardMaterialOptions();\n\tgenerateKey(options2) {\n\t\tlet props;\n\t\tif (options2 === this.optionsContextMin) {\n\t\t\tif (!this.propsMin) this.propsMin = buildPropertiesList(options2);\n\t\t\tprops = this.propsMin;\n\t\t} else if (options2 === this.optionsContext) {\n\t\t\tif (!this.props) this.props = buildPropertiesList(options2);\n\t\t\tprops = this.props;\n\t\t} else {\n\t\t\tprops = buildPropertiesList(options2);\n\t\t}\n\t\tconst definesHash = ShaderGenerator.definesHash(options2.defines);\n\t\tconst key = `standard:\n${definesHash}\n${props.map((prop) => prop + options2[prop]).join(\"\\n\")}${LitOptionsUtils.generateKey(options2.litOptions)}`;\n\t\treturn key;\n\t}\n\t_getUvSourceExpression(transformPropName, uVPropName, options2, allowParallaxOffset = true) {\n\t\tconst transformId = options2[transformPropName];\n\t\tconst uvChannel = options2[uVPropName];\n\t\tconst isMainPass = options2.litOptions.pass === SHADER_FORWARD;\n\t\tlet expression;\n\t\tif (isMainPass && options2.litOptions.nineSlicedMode === SPRITE_RENDERMODE_SLICED) {\n\t\t\texpression = \"nineSlicedUv\";\n\t\t} else if (isMainPass && options2.litOptions.nineSlicedMode === SPRITE_RENDERMODE_TILED) {\n\t\t\texpression = \"nineSlicedUv\";\n\t\t} else {\n\t\t\tif (transformId === 0) {\n\t\t\t\texpression = `vUv${uvChannel}`;\n\t\t\t} else {\n\t\t\t\texpression = `vUV${uvChannel}_${transformId}`;\n\t\t\t}\n\t\t\tif (isMainPass && allowParallaxOffset && options2.heightMap && transformPropName !== \"heightMapTransform\") {\n\t\t\t\texpression += \" + dUvOffset\";\n\t\t\t}\n\t\t}\n\t\treturn expression;\n\t}\n\t_validateMapChunk(code, propName, chunkName, chunks) {\n\t}\n\t_addMapDefines(fDefines, propName, chunkName, options2, chunks, mapping, encoding = null) {\n\t\tconst mapPropName = `${propName}Map`;\n\t\tconst propNameCaps = propName.toUpperCase();\n\t\tconst uVPropName = `${mapPropName}Uv`;\n\t\tconst identifierPropName = `${mapPropName}Identifier`;\n\t\tconst transformPropName = `${mapPropName}Transform`;\n\t\tconst channelPropName = `${mapPropName}Channel`;\n\t\tconst vertexColorChannelPropName = `${propName}VertexColorChannel`;\n\t\tconst tintPropName = `${propName}Tint`;\n\t\tconst vertexColorPropName = `${propName}VertexColor`;\n\t\tconst detailModePropName = `${propName}Mode`;\n\t\tconst invertName = `${propName}Invert`;\n\t\tconst tintOption = options2[tintPropName];\n\t\tconst vertexColorOption = options2[vertexColorPropName];\n\t\tconst textureOption = options2[mapPropName];\n\t\tconst textureIdentifier = options2[identifierPropName];\n\t\tconst detailModeOption = options2[detailModePropName];\n\t\tconst chunkCode = chunks.get(chunkName);\n\t\tif (textureOption) {\n\t\t\tfDefines.set(`STD_${propNameCaps}_TEXTURE`, \"\");\n\t\t\tconst uv = this._getUvSourceExpression(transformPropName, uVPropName, options2);\n\t\t\tfDefines.set(`{STD_${propNameCaps}_TEXTURE_UV}`, uv);\n\t\t\tfDefines.set(`{STD_${propNameCaps}_TEXTURE_CHANNEL}`, options2[channelPropName]);\n\t\t\tconst textureId = `{STD_${propNameCaps}_TEXTURE_NAME}`;\n\t\t\tif (chunkCode.includes(textureId)) {\n\t\t\t\tlet samplerName = `texture_${mapPropName}`;\n\t\t\t\tconst alias = mapping[textureIdentifier];\n\t\t\t\tif (alias) {\n\t\t\t\t\tsamplerName = alias;\n\t\t\t\t} else {\n\t\t\t\t\tmapping[textureIdentifier] = samplerName;\n\t\t\t\t\tfDefines.set(`STD_${propNameCaps}_TEXTURE_ALLOCATE`, \"\");\n\t\t\t\t}\n\t\t\t\tfDefines.set(textureId, samplerName);\n\t\t\t}\n\t\t\tif (encoding) {\n\t\t\t\tconst textureDecode = options2[channelPropName] === \"aaa\" ? \"passThrough\" : ChunkUtils.decodeFunc(encoding);\n\t\t\t\tfDefines.set(`{STD_${propNameCaps}_TEXTURE_DECODE}`, textureDecode);\n\t\t\t}\n\t\t}\n\t\tif (vertexColorOption) {\n\t\t\tfDefines.set(`STD_${propNameCaps}_VERTEX`, \"\");\n\t\t\tfDefines.set(`{STD_${propNameCaps}_VERTEX_CHANNEL}`, options2[vertexColorChannelPropName]);\n\t\t}\n\t\tif (detailModeOption) {\n\t\t\tfDefines.set(`{STD_${propNameCaps}_DETAILMODE}`, detailModeOption);\n\t\t}\n\t\tif (tintOption) {\n\t\t\tfDefines.set(`STD_${propNameCaps}_CONSTANT`, \"\");\n\t\t}\n\t\tif (!!options2[invertName]) {\n\t\t\tfDefines.set(`STD_${propNameCaps}_INVERT`, \"\");\n\t\t}\n\t}\n\t_correctChannel(p, chan, _matTex2D2) {\n\t\tconst channelCount = _matTex2D2.get(p);\n\t\tif (channelCount > 0) {\n\t\t\tif (channelCount < chan.length) {\n\t\t\t\treturn chan.substring(0, channelCount);\n\t\t\t} else if (channelCount > chan.length) {\n\t\t\t\tlet str = chan;\n\t\t\t\tconst chr = str.charAt(str.length - 1);\n\t\t\t\tconst addLen = channelCount - str.length;\n\t\t\t\tfor (let i2 = 0; i2 < addLen; i2++) str += chr;\n\t\t\t\treturn str;\n\t\t\t}\n\t\t\treturn chan;\n\t\t}\n\t}\n\tcreateVertexShader(litShader, options2) {\n\t\tconst useUv = [];\n\t\tconst useUnmodifiedUv = [];\n\t\tconst mapTransforms = [];\n\t\tconst maxUvSets = 2;\n\t\tfor (const p of _matTex2D.keys()) {\n\t\t\tconst mapName = `${p}Map`;\n\t\t\tif (options2[`${p}VertexColor`]) {\n\t\t\t\tconst colorChannelName = `${p}VertexColorChannel`;\n\t\t\t\toptions2[colorChannelName] = this._correctChannel(p, options2[colorChannelName], _matTex2D);\n\t\t\t}\n\t\t\tif (options2[mapName]) {\n\t\t\t\tconst channelName = `${mapName}Channel`;\n\t\t\t\tconst transformName = `${mapName}Transform`;\n\t\t\t\tconst uvName = `${mapName}Uv`;\n\t\t\t\toptions2[uvName] = Math.min(options2[uvName], maxUvSets - 1);\n\t\t\t\toptions2[channelName] = this._correctChannel(p, options2[channelName], _matTex2D);\n\t\t\t\tconst uvSet = options2[uvName];\n\t\t\t\tuseUv[uvSet] = true;\n\t\t\t\tuseUnmodifiedUv[uvSet] = useUnmodifiedUv[uvSet] || options2[mapName] && !options2[transformName];\n\t\t\t\tif (options2[transformName]) {\n\t\t\t\t\tmapTransforms.push({\n\t\t\t\t\t\tname: p,\n\t\t\t\t\t\tid: options2[transformName],\n\t\t\t\t\t\tuv: options2[uvName]\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (options2.forceUv1) {\n\t\t\tuseUv[1] = true;\n\t\t\tuseUnmodifiedUv[1] = useUnmodifiedUv[1] !== void 0 ? useUnmodifiedUv[1] : true;\n\t\t}\n\t\tlitShader.generateVertexShader(useUv, useUnmodifiedUv, mapTransforms);\n\t}\n\tprepareFragmentDefines(options2, fDefines, shaderPassInfo) {\n\t\tconst fDefineSet = (condition, name, value = \"\") => {\n\t\t\tif (condition) {\n\t\t\t\tfDefines.set(name, value);\n\t\t\t}\n\t\t};\n\t\tfDefineSet(options2.lightMap, \"STD_LIGHTMAP\", \"\");\n\t\tfDefineSet(options2.lightVertexColor, \"STD_LIGHT_VERTEX_COLOR\", \"\");\n\t\tfDefineSet(options2.dirLightMap && options2.litOptions.useSpecular, \"STD_LIGHTMAP_DIR\", \"\");\n\t\tfDefineSet(options2.heightMap, \"STD_HEIGHT_MAP\", \"\");\n\t\tfDefineSet(true, \"STD_PARALLAX\", parallaxNames[options2.parallaxMode ?? PARALLAX_OFFSET]);\n\t\tfDefineSet(options2.parallaxSelfShadow, \"STD_PARALLAX_SELF_SHADOW\", \"\");\n\t\tfDefineSet(options2.useSpecularColor, \"STD_SPECULAR_COLOR\", \"\");\n\t\tfDefineSet(options2.useSpecularColor && (options2.litOptions.useSpecular || options2.litOptions.useRefraction), \"STD_SPECULAR_CONSTANT\", \"\");\n\t\tfDefineSet(options2.aoMap || options2.aoVertexColor || options2.useAO, \"STD_AO\", \"\");\n\t\tfDefineSet(true, \"STD_OPACITY_DITHER\", ditherNames[shaderPassInfo.isForward ? options2.litOptions.opacityDither : options2.litOptions.opacityShadowDither]);\n\t}\n\tcreateShaderDefinition(device, options2) {\n\t\tconst shaderPassInfo = ShaderPass.get(device).getByIndex(options2.litOptions.pass);\n\t\tconst isForwardPass = shaderPassInfo.isForward;\n\t\tconst litShader = new LitShader(device, options2.litOptions);\n\t\tthis.createVertexShader(litShader, options2);\n\t\tconst textureMapping = {};\n\t\toptions2.litOptions.fresnelModel = options2.litOptions.fresnelModel === 0 ? FRESNEL_SCHLICK : options2.litOptions.fresnelModel;\n\t\tconst fDefines = litShader.fDefines;\n\t\tthis.prepareFragmentDefines(options2, fDefines, shaderPassInfo);\n\t\tlet lightingUv = \"\";\n\t\tif (isForwardPass) {\n\t\t\tif (options2.heightMap) {\n\t\t\t\tthis._addMapDefines(fDefines, \"height\", \"parallaxPS\", options2, litShader.chunks, textureMapping);\n\t\t\t}\n\t\t\tif (options2.litOptions.blendType !== BLEND_NONE || options2.litOptions.alphaTest || options2.litOptions.alphaToCoverage || options2.litOptions.opacityDither !== DITHER_NONE) {\n\t\t\t\tthis._addMapDefines(fDefines, \"opacity\", \"opacityPS\", options2, litShader.chunks, textureMapping);\n\t\t\t}\n\t\t\tif (litShader.needsNormal) {\n\t\t\t\tif (options2.normalMap || options2.clearCoatNormalMap || options2.heightMap) {\n\t\t\t\t\tif (!options2.litOptions.hasTangents) {\n\t\t\t\t\t\tconst baseName = options2.normalMap ? \"normalMap\" : options2.clearCoatNormalMap ? \"clearCoatNormalMap\" : \"heightMap\";\n\t\t\t\t\t\tlightingUv = this._getUvSourceExpression(`${baseName}Transform`, `${baseName}Uv`, options2, false);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis._addMapDefines(fDefines, \"normalDetail\", \"normalMapPS\", options2, litShader.chunks, textureMapping, options2.normalDetailPackedNormal ? \"xy\" : \"xyz\");\n\t\t\t\tthis._addMapDefines(fDefines, \"normal\", \"normalMapPS\", options2, litShader.chunks, textureMapping, options2.packedNormal ? \"xy\" : \"xyz\");\n\t\t\t}\n\t\t\tif (options2.diffuseDetail) {\n\t\t\t\tthis._addMapDefines(fDefines, \"diffuseDetail\", \"diffusePS\", options2, litShader.chunks, textureMapping, options2.diffuseDetailEncoding);\n\t\t\t}\n\t\t\tthis._addMapDefines(fDefines, \"diffuse\", \"diffusePS\", options2, litShader.chunks, textureMapping, options2.diffuseEncoding);\n\t\t\tif (options2.litOptions.useRefraction) {\n\t\t\t\tthis._addMapDefines(fDefines, \"refraction\", \"transmissionPS\", options2, litShader.chunks, textureMapping);\n\t\t\t\tthis._addMapDefines(fDefines, \"thickness\", \"thicknessPS\", options2, litShader.chunks, textureMapping);\n\t\t\t\tif (!options2.litOptions.useMetalness) {\n\t\t\t\t\tthis._addMapDefines(fDefines, \"ior\", \"iorPS\", options2, litShader.chunks, textureMapping);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (options2.litOptions.useIridescence) {\n\t\t\t\tthis._addMapDefines(fDefines, \"iridescence\", \"iridescencePS\", options2, litShader.chunks, textureMapping);\n\t\t\t\tthis._addMapDefines(fDefines, \"iridescenceThickness\", \"iridescenceThicknessPS\", options2, litShader.chunks, textureMapping);\n\t\t\t}\n\t\t\tif (litShader.lighting && options2.litOptions.useSpecular || litShader.reflections || options2.litOptions.useRefraction) {\n\t\t\t\tif (options2.litOptions.useSheen) {\n\t\t\t\t\tthis._addMapDefines(fDefines, \"sheen\", \"sheenPS\", options2, litShader.chunks, textureMapping, options2.sheenEncoding);\n\t\t\t\t\tthis._addMapDefines(fDefines, \"sheenGloss\", \"sheenGlossPS\", options2, litShader.chunks, textureMapping);\n\t\t\t\t}\n\t\t\t\tif (options2.litOptions.useMetalness) {\n\t\t\t\t\tthis._addMapDefines(fDefines, \"metalness\", \"metalnessPS\", options2, litShader.chunks, textureMapping);\n\t\t\t\t\tthis._addMapDefines(fDefines, \"ior\", \"iorPS\", options2, litShader.chunks, textureMapping);\n\t\t\t\t}\n\t\t\t\tif (options2.litOptions.useSpecularityFactor) {\n\t\t\t\t\tthis._addMapDefines(fDefines, \"specularityFactor\", \"specularityFactorPS\", options2, litShader.chunks, textureMapping);\n\t\t\t\t}\n\t\t\t\tif (options2.useSpecularColor) {\n\t\t\t\t\tthis._addMapDefines(fDefines, \"specular\", \"specularPS\", options2, litShader.chunks, textureMapping, options2.specularEncoding);\n\t\t\t\t}\n\t\t\t\tthis._addMapDefines(fDefines, \"gloss\", \"glossPS\", options2, litShader.chunks, textureMapping);\n\t\t\t}\n\t\t\tif (options2.aoDetail) {\n\t\t\t\tthis._addMapDefines(fDefines, \"aoDetail\", \"aoPS\", options2, litShader.chunks, textureMapping);\n\t\t\t}\n\t\t\tif (options2.aoMap || options2.aoVertexColor || options2.useAO) {\n\t\t\t\tthis._addMapDefines(fDefines, \"ao\", \"aoPS\", options2, litShader.chunks, textureMapping);\n\t\t\t}\n\t\t\tthis._addMapDefines(fDefines, \"emissive\", \"emissivePS\", options2, litShader.chunks, textureMapping, options2.emissiveEncoding);\n\t\t\tif (options2.litOptions.useClearCoat) {\n\t\t\t\tthis._addMapDefines(fDefines, \"clearCoat\", \"clearCoatPS\", options2, litShader.chunks, textureMapping);\n\t\t\t\tthis._addMapDefines(fDefines, \"clearCoatGloss\", \"clearCoatGlossPS\", options2, litShader.chunks, textureMapping);\n\t\t\t\tthis._addMapDefines(fDefines, \"clearCoatNormal\", \"clearCoatNormalPS\", options2, litShader.chunks, textureMapping, options2.clearCoatPackedNormal ? \"xy\" : \"xyz\");\n\t\t\t}\n\t\t\tif (options2.litOptions.enableGGXSpecular) {\n\t\t\t\tthis._addMapDefines(fDefines, \"anisotropy\", \"anisotropyPS\", options2, litShader.chunks, textureMapping);\n\t\t\t}\n\t\t\tif (options2.lightMap || options2.lightVertexColor) {\n\t\t\t\tthis._addMapDefines(fDefines, \"light\", \"lightmapPS\", options2, litShader.chunks, textureMapping, options2.lightMapEncoding);\n\t\t\t}\n\t\t} else {\n\t\t\tconst opacityShadowDither = options2.litOptions.opacityShadowDither;\n\t\t\tif (options2.litOptions.alphaTest || opacityShadowDither) {\n\t\t\t\tthis._addMapDefines(fDefines, \"opacity\", \"opacityPS\", options2, litShader.chunks, textureMapping);\n\t\t\t}\n\t\t}\n\t\tlitShader.generateFragmentShader(litShader.chunks.get(\"stdDeclarationPS\"), litShader.chunks.get(\"stdFrontEndPS\"), lightingUv);\n\t\tconst includes = MapUtils.merge(litShader.chunks, litShader.includes);\n\t\tconst vDefines = litShader.vDefines;\n\t\toptions2.defines.forEach((value, key) => vDefines.set(key, value));\n\t\toptions2.defines.forEach((value, key) => fDefines.set(key, value));\n\t\tconst definition = ShaderDefinitionUtils.createDefinition(device, {\n\t\t\tname: \"StandardShader\",\n\t\t\tattributes: litShader.attributes,\n\t\t\tshaderLanguage: litShader.shaderLanguage,\n\t\t\tvertexCode: litShader.vshader,\n\t\t\tfragmentCode: litShader.fshader,\n\t\t\tvertexIncludes: includes,\n\t\t\tfragmentIncludes: includes,\n\t\t\tfragmentDefines: fDefines,\n\t\t\tvertexDefines: vDefines,\n\t\t\tuseDualSourceBlending: options2.useDualSourceBlending\n\t\t});\n\t\tif (litShader.shaderPassInfo.isForward) {\n\t\t\tdefinition.tag = SHADERTAG_MATERIAL;\n\t\t}\n\t\treturn definition;\n\t}\n};\nvar standard = new ShaderGeneratorStandard();\n\nvar blendModes = [];\nblendModes[BLEND_SUBTRACTIVE] = { src: BLENDMODE_ONE, dst: BLENDMODE_ONE, op: BLENDEQUATION_REVERSE_SUBTRACT };\nblendModes[BLEND_NONE] = { src: BLENDMODE_ONE, dst: BLENDMODE_ZERO, op: BLENDEQUATION_ADD };\nblendModes[BLEND_NORMAL] = { src: BLENDMODE_SRC_ALPHA, dst: BLENDMODE_ONE_MINUS_SRC_ALPHA, op: BLENDEQUATION_ADD, alphaSrc: BLENDMODE_ONE };\nblendModes[BLEND_PREMULTIPLIED] = { src: BLENDMODE_ONE, dst: BLENDMODE_ONE_MINUS_SRC_ALPHA, op: BLENDEQUATION_ADD };\nblendModes[BLEND_ADDITIVE] = { src: BLENDMODE_ONE, dst: BLENDMODE_ONE, op: BLENDEQUATION_ADD };\nblendModes[BLEND_ADDITIVEALPHA] = { src: BLENDMODE_SRC_ALPHA, dst: BLENDMODE_ONE, op: BLENDEQUATION_ADD };\nblendModes[BLEND_MULTIPLICATIVE2X] = { src: BLENDMODE_DST_COLOR, dst: BLENDMODE_SRC_COLOR, op: BLENDEQUATION_ADD };\nblendModes[BLEND_SCREEN] = { src: BLENDMODE_ONE_MINUS_DST_COLOR, dst: BLENDMODE_ONE, op: BLENDEQUATION_ADD };\nblendModes[BLEND_MULTIPLICATIVE] = { src: BLENDMODE_DST_COLOR, dst: BLENDMODE_ZERO, op: BLENDEQUATION_ADD };\nblendModes[BLEND_MIN] = { src: BLENDMODE_ONE, dst: BLENDMODE_ONE, op: BLENDEQUATION_MIN };\nblendModes[BLEND_MAX] = { src: BLENDMODE_ONE, dst: BLENDMODE_ONE, op: BLENDEQUATION_MAX };\nvar id10 = 0;\nvar Material = class _Material {\n\tmeshInstances = /* @__PURE__ */ new Set();\n\tname = \"Untitled\";\n\tuserId = \"\";\n\tid = id10++;\n\tvariants = /* @__PURE__ */ new Map();\n\tdefines = /* @__PURE__ */ new Map();\n\t_definesDirty = false;\n\t_definesKey = null;\n\tparameters = {};\n\talphaTest = 0;\n\talphaToCoverage = false;\n\t_blendState = new BlendState();\n\t_sceneTexturesWrite;\n\t_depthState = new DepthState();\n\tcull = CULLFACE_BACK;\n\tfrontFace = FRONTFACE_CCW;\n\tstencilFront = null;\n\tstencilBack = null;\n\t_shaderChunks = null;\n\t// this is deprecated, keeping for backwards compatibility\n\t_oldChunks = {};\n\t_dirtyShader = true;\n\tconstructor() {\n\t\tif (new.target === _Material) {\n\t\t}\n\t}\n\tset flatShading(value) {\n\t\tthis.setDefine(\"FLAT_SHADING\", value);\n\t}\n\tget flatShading() {\n\t\treturn this.defines.has(\"FLAT_SHADING\");\n\t}\n\tget hasShaderChunks() {\n\t\treturn this._shaderChunks != null;\n\t}\n\tget shaderChunks() {\n\t\tif (!this._shaderChunks) {\n\t\t\tthis._shaderChunks = new ShaderChunks();\n\t\t}\n\t\treturn this._shaderChunks;\n\t}\n\tgetShaderChunks(shaderLanguage = SHADERLANGUAGE_GLSL) {\n\t\tconst chunks = this.shaderChunks;\n\t\treturn shaderLanguage === SHADERLANGUAGE_GLSL ? chunks.glsl : chunks.wgsl;\n\t}\n\tset shaderChunksVersion(value) {\n\t\tthis.shaderChunks.version = value;\n\t}\n\tget shaderChunksVersion() {\n\t\treturn this.shaderChunks.version;\n\t}\n\tset chunks(value) {\n\t\tthis._oldChunks = value;\n\t}\n\tget chunks() {\n\t\tObject.assign(this._oldChunks, Object.fromEntries(this.shaderChunks.glsl));\n\t\treturn this._oldChunks;\n\t}\n\tset depthBias(value) {\n\t\tthis._depthState.depthBias = value;\n\t}\n\tget depthBias() {\n\t\treturn this._depthState.depthBias;\n\t}\n\tset slopeDepthBias(value) {\n\t\tthis._depthState.depthBiasSlope = value;\n\t}\n\tget slopeDepthBias() {\n\t\treturn this._depthState.depthBiasSlope;\n\t}\n\t_shaderVersion = 0;\n\t_scene = null;\n\t_updateVersion = 0;\n\t_preparedVersion = -1;\n\tget updateVersion() {\n\t\treturn this._updateVersion;\n\t}\n\tget dirty() {\n\t\treturn void 0;\n\t}\n\tset redWrite(value) {\n\t\tthis._blendState.redWrite = value;\n\t}\n\tget redWrite() {\n\t\treturn this._blendState.redWrite;\n\t}\n\tset greenWrite(value) {\n\t\tthis._blendState.greenWrite = value;\n\t}\n\tget greenWrite() {\n\t\treturn this._blendState.greenWrite;\n\t}\n\tset blueWrite(value) {\n\t\tthis._blendState.blueWrite = value;\n\t}\n\tget blueWrite() {\n\t\treturn this._blendState.blueWrite;\n\t}\n\tset alphaWrite(value) {\n\t\tthis._blendState.alphaWrite = value;\n\t}\n\tget alphaWrite() {\n\t\treturn this._blendState.alphaWrite;\n\t}\n\t// returns boolean depending on material being transparent\n\tget transparent() {\n\t\treturn this._blendState.blend;\n\t}\n\tset sceneTexturesWrite(value) {\n\t\tthis._sceneTexturesWrite = value;\n\t}\n\tget sceneTexturesWrite() {\n\t\treturn this._sceneTexturesWrite ?? !this.transparent;\n\t}\n\t_updateTransparency() {\n\t\tfor (const meshInstance of this.meshInstances) {\n\t\t\tmeshInstance.transparent = this.transparent;\n\t\t}\n\t}\n\tset blendState(value) {\n\t\tconst wasDualSource = this._blendState.usesDualSourceBlending;\n\t\tthis._blendState.copy(value);\n\t\tthis._updateTransparency();\n\t\tif (wasDualSource !== this._blendState.usesDualSourceBlending) {\n\t\t\tthis.clearVariants();\n\t\t}\n\t}\n\tget blendState() {\n\t\treturn this._blendState;\n\t}\n\tset blendType(type) {\n\t\tconst wasDualSource = this._blendState.usesDualSourceBlending;\n\t\tconst blendMode = blendModes[type];\n\t\tthis._blendState.setColorBlend(blendMode.op, blendMode.src, blendMode.dst);\n\t\tthis._blendState.setAlphaBlend(blendMode.alphaOp ?? blendMode.op, blendMode.alphaSrc ?? blendMode.src, blendMode.alphaDst ?? blendMode.dst);\n\t\tconst blend = type !== BLEND_NONE;\n\t\tif (this._blendState.blend !== blend) {\n\t\t\tthis._blendState.blend = blend;\n\t\t\tthis._updateTransparency();\n\t\t}\n\t\tthis._updateMeshInstanceKeys();\n\t\tif (wasDualSource !== this._blendState.usesDualSourceBlending) {\n\t\t\tthis.clearVariants();\n\t\t}\n\t}\n\tget blendType() {\n\t\tif (!this.transparent) {\n\t\t\treturn BLEND_NONE;\n\t\t}\n\t\tconst { colorOp, colorSrcFactor, colorDstFactor, alphaOp, alphaSrcFactor, alphaDstFactor } = this._blendState;\n\t\tfor (let i2 = 0; i2 < blendModes.length; i2++) {\n\t\t\tconst blendMode = blendModes[i2];\n\t\t\tif (blendMode.src === colorSrcFactor && blendMode.dst === colorDstFactor && blendMode.op === colorOp && blendMode.src === alphaSrcFactor && blendMode.dst === alphaDstFactor && blendMode.op === alphaOp) {\n\t\t\t\treturn i2;\n\t\t\t}\n\t\t}\n\t\treturn BLEND_NORMAL;\n\t}\n\tset depthState(value) {\n\t\tthis._depthState.copy(value);\n\t}\n\tget depthState() {\n\t\treturn this._depthState;\n\t}\n\tset depthTest(value) {\n\t\tthis._depthState.test = value;\n\t}\n\tget depthTest() {\n\t\treturn this._depthState.test;\n\t}\n\tset depthFunc(value) {\n\t\tthis._depthState.func = value;\n\t}\n\tget depthFunc() {\n\t\treturn this._depthState.func;\n\t}\n\tset depthWrite(value) {\n\t\tthis._depthState.write = value;\n\t}\n\tget depthWrite() {\n\t\treturn this._depthState.write;\n\t}\n\tcopy(source) {\n\t\tthis.name = source.name;\n\t\tthis.alphaTest = source.alphaTest;\n\t\tthis.alphaToCoverage = source.alphaToCoverage;\n\t\tthis._blendState.copy(source._blendState);\n\t\tthis._depthState.copy(source._depthState);\n\t\tthis._sceneTexturesWrite = source._sceneTexturesWrite;\n\t\tthis.cull = source.cull;\n\t\tthis.frontFace = source.frontFace;\n\t\tthis.stencilFront = source.stencilFront?.clone();\n\t\tif (source.stencilBack) {\n\t\t\tthis.stencilBack = source.stencilFront === source.stencilBack ? this.stencilFront : source.stencilBack.clone();\n\t\t}\n\t\tthis.clearParameters();\n\t\tfor (const name in source.parameters) {\n\t\t\tif (source.parameters.hasOwnProperty(name)) {\n\t\t\t\tthis._setParameterSimple(name, source.parameters[name].data);\n\t\t\t}\n\t\t}\n\t\tthis.defines.clear();\n\t\tsource.defines.forEach((value, key) => this.defines.set(key, value));\n\t\tthis._definesKey = null;\n\t\tthis._shaderChunks = source.hasShaderChunks ? new ShaderChunks() : null;\n\t\tthis._shaderChunks?.copy(source._shaderChunks);\n\t\treturn this;\n\t}\n\tclone() {\n\t\tconst clone = new this.constructor();\n\t\treturn clone.copy(this);\n\t}\n\t_updateMeshInstanceKeys() {\n\t\tfor (const meshInstance of this.meshInstances) {\n\t\t\tmeshInstance.updateKey();\n\t\t}\n\t}\n\t_clearVariantsIfDirty() {\n\t\tif (this._dirtyShader) {\n\t\t\tthis.clearVariants();\n\t\t\tthis._dirtyShader = false;\n\t\t}\n\t}\n\tupdateUniforms(device, scene) {\n\t\tthis._clearVariantsIfDirty();\n\t}\n\tprepareForRender(device, scene) {\n\t\tconst version2 = this._updateVersion;\n\t\tif (this._preparedVersion !== version2) {\n\t\t\tthis.updateUniforms(device, scene);\n\t\t\tthis._preparedVersion = version2;\n\t\t}\n\t}\n\tgetShaderVariant(params) {\n\t}\n\tupdate() {\n\t\tif (Object.keys(this._oldChunks).length > 0) {\n\t\t\tfor (const [key, value] of Object.entries(this._oldChunks)) {\n\t\t\t\tthis.shaderChunks.glsl.set(key, value);\n\t\t\t\tdelete this._oldChunks[key];\n\t\t\t}\n\t\t}\n\t\tif (this._definesDirty || this._shaderChunks?.isDirty()) {\n\t\t\tthis._definesDirty = false;\n\t\t\tthis._shaderChunks?.resetDirty();\n\t\t\tthis._dirtyShader = true;\n\t\t}\n\t\tthis._clearVariantsIfDirty();\n\t\tthis._updateVersion++;\n\t}\n\t// Parameter management\n\tclearParameters() {\n\t\tthis.parameters = {};\n\t}\n\tgetParameters() {\n\t\treturn this.parameters;\n\t}\n\tclearVariants() {\n\t\tthis.variants.clear();\n\t\tfor (const meshInstance of this.meshInstances) {\n\t\t\tmeshInstance.clearShaders();\n\t\t}\n\t}\n\tgetParameter(name) {\n\t\treturn this.parameters[name];\n\t}\n\t_setParameterSimple(name, data2) {\n\t\tconst param = this.parameters[name];\n\t\tif (param) {\n\t\t\tparam.data = data2;\n\t\t} else {\n\t\t\tthis.parameters[name] = {\n\t\t\t\tscopeId: null,\n\t\t\t\tdata: data2\n\t\t\t};\n\t\t}\n\t}\n\tsetParameter(name, data2) {\n\t\tif (data2 === void 0 && typeof name === \"object\") {\n\t\t\tconst uniformObject = name;\n\t\t\tif (uniformObject.length) {\n\t\t\t\tfor (let i2 = 0; i2 < uniformObject.length; i2++) {\n\t\t\t\t\tthis.setParameter(uniformObject[i2]);\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tname = uniformObject.name;\n\t\t\tdata2 = uniformObject.value;\n\t\t}\n\t\tthis._setParameterSimple(name, data2);\n\t}\n\tdeleteParameter(name) {\n\t\tif (this.parameters[name]) {\n\t\t\tdelete this.parameters[name];\n\t\t}\n\t}\n\t// used to apply parameters from this material into scope of uniforms, called internally by forward-renderer\n\t// optional list of parameter names to be set can be specified, otherwise all parameters are set\n\tsetParameters(device, names) {\n\t\tconst parameters = this.parameters;\n\t\tif (names === void 0) names = parameters;\n\t\tfor (const paramName in names) {\n\t\t\tconst parameter = parameters[paramName];\n\t\t\tif (parameter) {\n\t\t\t\tif (!parameter.scopeId) {\n\t\t\t\t\tparameter.scopeId = device.scope.resolve(paramName);\n\t\t\t\t}\n\t\t\t\tparameter.scopeId.setValue(parameter.data);\n\t\t\t}\n\t\t}\n\t}\n\tsetDefine(name, value) {\n\t\tlet modified = false;\n\t\tconst { defines } = this;\n\t\tif (value !== void 0 && value !== false) {\n\t\t\tmodified = !defines.has(name) || defines.get(name) !== value;\n\t\t\tdefines.set(name, value);\n\t\t} else {\n\t\t\tmodified = defines.has(name);\n\t\t\tdefines.delete(name);\n\t\t}\n\t\tthis._definesDirty || (this._definesDirty = modified);\n\t\tif (modified) {\n\t\t\tthis._definesKey = null;\n\t\t}\n\t}\n\tget definesKey() {\n\t\tif (this._definesKey === null) {\n\t\t\tthis._definesKey = Array.from(this.defines).sort(([a], [b]) => a < b ? -1 : a > b ? 1 : 0).map(([k, v6]) => `${k}=${v6}`).join(\",\");\n\t\t}\n\t\treturn this._definesKey;\n\t}\n\tgetDefine(name) {\n\t\treturn this.defines.has(name);\n\t}\n\tdestroy() {\n\t\tthis.variants.clear();\n\t\tfor (const meshInstance of this.meshInstances) {\n\t\t\tmeshInstance.clearShaders();\n\t\t\tmeshInstance._material = null;\n\t\t\tif (meshInstance.mesh) {\n\t\t\t\tconst defaultMaterial = getDefaultMaterial(meshInstance.mesh.device);\n\t\t\t\tif (this !== defaultMaterial) {\n\t\t\t\t\tmeshInstance.material = defaultMaterial;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t}\n\t\t}\n\t\tthis.meshInstances.clear();\n\t}\n\taddMeshInstanceRef(meshInstance) {\n\t\tthis.meshInstances.add(meshInstance);\n\t}\n\tremoveMeshInstanceRef(meshInstance) {\n\t\tthis.meshInstances.delete(meshInstance);\n\t}\n\tset shader(value) {\n\t}\n\tget shader() {\n\t\treturn null;\n\t}\n\tset blend(value) {\n\t\tthis.blendState.blend = value;\n\t}\n\tget blend() {\n\t\treturn this.blendState.blend;\n\t}\n};\n\nvar mapTransformsEqual = (a, b) => {\n\tconst a0 = a[0].value;\n\tconst a1 = a[1].value;\n\tconst b0 = b[0].value;\n\tconst b1 = b[1].value;\n\treturn a0[0] === b0[0] && a0[1] === b0[1] && a0[2] === b0[2] && a1[0] === b1[0] && a1[1] === b1[1] && a1[2] === b1[2];\n};\nvar StandardMaterialMapTransforms = class {\n\t_dirty = true;\n\t_mutable = false;\n\t_ids = /* @__PURE__ */ new Map();\n\t_states = /* @__PURE__ */ new Map();\n\treset() {\n\t\tthis._ids.clear();\n\t\tthis._states.clear();\n\t\tthis._dirty = true;\n\t\tthis._mutable = false;\n\t}\n\tmarkDirty() {\n\t\tthis._dirty = true;\n\t}\n\tmarkMutable() {\n\t\tthis._dirty = true;\n\t\tthis._mutable = true;\n\t}\n\tupdate(material) {\n\t\tif (!this._dirty && !this._mutable) {\n\t\t\treturn false;\n\t\t}\n\t\tthis._dirty = false;\n\t\tlet transformsChanged = false;\n\t\tfor (const p of _matTex2D.keys()) {\n\t\t\tconst active = material[`_${p}Map`] ? 1 : 0;\n\t\t\tconst uv = material[`_${p}MapUv`];\n\t\t\tconst tiling = material[`_${p}MapTiling`];\n\t\t\tconst offset3 = material[`_${p}MapOffset`];\n\t\t\tconst rotation7 = material[`_${p}MapRotation`];\n\t\t\tlet state = this._states.get(p);\n\t\t\tif (!state) {\n\t\t\t\tstate = new Float64Array(7);\n\t\t\t\tstate[0] = -1;\n\t\t\t\tthis._states.set(p, state);\n\t\t\t}\n\t\t\tif (state[0] !== active || active && (state[1] !== uv || state[2] !== tiling.x || state[3] !== tiling.y || state[4] !== offset3.x || state[5] !== offset3.y || state[6] !== rotation7)) {\n\t\t\t\tstate[0] = active;\n\t\t\t\tstate[1] = uv;\n\t\t\t\tstate[2] = tiling.x;\n\t\t\t\tstate[3] = tiling.y;\n\t\t\t\tstate[4] = offset3.x;\n\t\t\t\tstate[5] = offset3.y;\n\t\t\t\tstate[6] = rotation7;\n\t\t\t\ttransformsChanged = true;\n\t\t\t}\n\t\t}\n\t\tif (!transformsChanged) {\n\t\t\treturn false;\n\t\t}\n\t\treturn this._updateIds(material);\n\t}\n\t_updateIds(material) {\n\t\tconst groupsByUv = [];\n\t\tconst previousIds = this._ids;\n\t\tconst ids3 = /* @__PURE__ */ new Map();\n\t\tlet groupTopologyChanged = false;\n\t\tlet mapId = 1;\n\t\tfor (const p of _matTex2D.keys()) {\n\t\t\tlet id14 = 0;\n\t\t\tif (material[`_${p}Map`]) {\n\t\t\t\tconst transform = material.getUniform(`${p}MapTransform`);\n\t\t\t\tif (transform) {\n\t\t\t\t\tconst uv = material[`_${p}MapUv`];\n\t\t\t\t\tconst groups = groupsByUv[uv] ?? (groupsByUv[uv] = []);\n\t\t\t\t\tlet group;\n\t\t\t\t\tfor (let i2 = 0; i2 < groups.length; i2++) {\n\t\t\t\t\t\tif (mapTransformsEqual(groups[i2].transform, transform)) {\n\t\t\t\t\t\t\tgroup = groups[i2];\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (group) {\n\t\t\t\t\t\tid14 = group.id;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tid14 = mapId;\n\t\t\t\t\t\tgroups.push({ id: id14, transform });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tids3.set(p, id14);\n\t\t\tgroupTopologyChanged || (groupTopologyChanged = (previousIds.get(p) ?? 0) !== id14);\n\t\t\tmapId++;\n\t\t}\n\t\tthis._ids = ids3;\n\t\treturn groupTopologyChanged;\n\t}\n\tgetId(name) {\n\t\treturn this._ids.get(name) ?? 0;\n\t}\n};\n\nvar LitMaterialOptionsBuilder = class _LitMaterialOptionsBuilder {\n\tstatic update(litOptions, material, scene, renderParams, objDefs, pass, sortedLights) {\n\t\t_LitMaterialOptionsBuilder.updateSharedOptions(litOptions, material, scene, objDefs, pass, renderParams);\n\t\t_LitMaterialOptionsBuilder.updateMaterialOptions(litOptions, material);\n\t\t_LitMaterialOptionsBuilder.updateEnvOptions(litOptions, material, scene, renderParams);\n\t\t_LitMaterialOptionsBuilder.updateLightingOptions(litOptions, material, scene, objDefs, sortedLights);\n\t}\n\tstatic updateSharedOptions(litOptions, material, scene, objDefs, pass, renderParams) {\n\t\tlitOptions.shaderChunks = material.shaderChunks;\n\t\tlitOptions.pass = pass;\n\t\tlitOptions.linearDepth = pass === SHADER_PREPASS || !!renderParams?.sceneTextures.includes(SCENETEXTURE_DEPTH);\n\t\tlitOptions.alphaTest = material.alphaTest > 0;\n\t\tlitOptions.blendType = material.blendType;\n\t\tlitOptions.screenSpace = objDefs && (objDefs & SHADERDEF_SCREENSPACE) !== 0;\n\t\tlitOptions.skin = objDefs && (objDefs & SHADERDEF_SKIN) !== 0;\n\t\tlitOptions.useInstancing = objDefs && (objDefs & SHADERDEF_INSTANCING) !== 0;\n\t\tlitOptions.useMorphPosition = objDefs && (objDefs & SHADERDEF_MORPH_POSITION) !== 0;\n\t\tlitOptions.useMorphNormal = objDefs && (objDefs & SHADERDEF_MORPH_NORMAL) !== 0;\n\t\tlitOptions.useMorphTextureBasedInt = objDefs && (objDefs & SHADERDEF_MORPH_TEXTURE_BASED_INT) !== 0;\n\t\tlitOptions.hasTangents = objDefs && (objDefs & SHADERDEF_TANGENTS) !== 0;\n\t\tlitOptions.nineSlicedMode = material.nineSlicedMode || SPRITE_RENDERMODE_SIMPLE;\n\t\tif (material.useLighting && scene.clusteredLightingEnabled) {\n\t\t\tlitOptions.clusteredLightingEnabled = true;\n\t\t\tlitOptions.clusteredLightingCookiesEnabled = scene.lighting.cookiesEnabled;\n\t\t\tlitOptions.clusteredLightingShadowsEnabled = scene.lighting.shadowsEnabled;\n\t\t\tlitOptions.clusteredLightingShadowType = scene.lighting.shadowType;\n\t\t\tlitOptions.clusteredLightingAreaLightsEnabled = scene.lighting.areaLightsEnabled;\n\t\t} else {\n\t\t\tlitOptions.clusteredLightingEnabled = false;\n\t\t\tlitOptions.clusteredLightingCookiesEnabled = false;\n\t\t\tlitOptions.clusteredLightingShadowsEnabled = false;\n\t\t\tlitOptions.clusteredLightingAreaLightsEnabled = false;\n\t\t}\n\t}\n\tstatic updateMaterialOptions(litOptions, material) {\n\t\tlitOptions.separateAmbient = false;\n\t\tlitOptions.pixelSnap = material.pixelSnap;\n\t\tlitOptions.ambientSH = material.ambientSH;\n\t\tlitOptions.twoSidedLighting = material.twoSidedLighting;\n\t\tlitOptions.occludeDirect = material.occludeDirect;\n\t\tlitOptions.occludeSpecular = material.occludeSpecular;\n\t\tlitOptions.occludeSpecularFloat = material.occludeSpecularIntensity !== 1;\n\t\tlitOptions.useMsdf = false;\n\t\tlitOptions.msdfTextAttribute = false;\n\t\tlitOptions.alphaToCoverage = material.alphaToCoverage;\n\t\tlitOptions.opacityFadesSpecular = material.opacityFadesSpecular;\n\t\tlitOptions.opacityDither = material.opacityDither;\n\t\tlitOptions.cubeMapProjection = CUBEPROJ_NONE;\n\t\tlitOptions.useSpecular = material.hasSpecular;\n\t\tlitOptions.useSpecularityFactor = material.hasSpecularityFactor;\n\t\tlitOptions.enableGGXSpecular = material.ggxSpecular;\n\t\tlitOptions.useAnisotropy = false;\n\t\tlitOptions.fresnelModel = material.fresnelModel;\n\t\tlitOptions.useRefraction = material.hasRefraction;\n\t\tlitOptions.useClearCoat = material.hasClearCoat;\n\t\tlitOptions.useSheen = material.hasSheen;\n\t\tlitOptions.useIridescence = material.hasIrridescence;\n\t\tlitOptions.useMetalness = material.hasMetalness;\n\t\tlitOptions.useDynamicRefraction = material.dynamicRefraction;\n\t\tlitOptions.dispersion = material.dispersion > 0;\n\t\tlitOptions.vertexColors = false;\n\t\tlitOptions.lightMapEnabled = material.hasLighting;\n\t\tlitOptions.dirLightMapEnabled = material.dirLightMap;\n\t\tlitOptions.useHeights = material.hasHeights;\n\t\tlitOptions.useNormals = material.hasNormals;\n\t\tlitOptions.useClearCoatNormals = material.hasClearCoatNormals;\n\t\tlitOptions.useAo = material.hasAo;\n\t\tlitOptions.diffuseMapEnabled = material.hasDiffuseMap;\n\t}\n\tstatic updateEnvOptions(litOptions, material, scene, renderParams) {\n\t\tlitOptions.fog = material.useFog ? renderParams.fog : FOG_NONE;\n\t\tlitOptions.gamma = renderParams.shaderOutputGamma;\n\t\tlitOptions.toneMap = material.useTonemap ? renderParams.toneMapping : TONEMAP_NONE;\n\t\tif (material.useSkybox && scene.envAtlas && scene.skybox) {\n\t\t\tlitOptions.reflectionSource = REFLECTIONSRC_ENVATLASHQ;\n\t\t\tlitOptions.reflectionEncoding = scene.envAtlas.encoding;\n\t\t\tlitOptions.reflectionCubemapEncoding = scene.skybox.encoding;\n\t\t} else if (material.useSkybox && scene.envAtlas) {\n\t\t\tlitOptions.reflectionSource = REFLECTIONSRC_ENVATLAS;\n\t\t\tlitOptions.reflectionEncoding = scene.envAtlas.encoding;\n\t\t} else if (material.useSkybox && scene.skybox) {\n\t\t\tlitOptions.reflectionSource = REFLECTIONSRC_CUBEMAP;\n\t\t\tlitOptions.reflectionEncoding = scene.skybox.encoding;\n\t\t} else {\n\t\t\tlitOptions.reflectionSource = REFLECTIONSRC_NONE;\n\t\t\tlitOptions.reflectionEncoding = null;\n\t\t}\n\t\tif (material.ambientSH) {\n\t\t\tlitOptions.ambientSource = AMBIENTSRC_AMBIENTSH;\n\t\t\tlitOptions.ambientEncoding = null;\n\t\t} else if (litOptions.reflectionSource !== REFLECTIONSRC_NONE && scene.envAtlas) {\n\t\t\tlitOptions.ambientSource = AMBIENTSRC_ENVALATLAS;\n\t\t\tlitOptions.ambientEncoding = scene.envAtlas.encoding;\n\t\t} else {\n\t\t\tlitOptions.ambientSource = AMBIENTSRC_CONSTANT;\n\t\t\tlitOptions.ambientEncoding = null;\n\t\t}\n\t\tconst hasSkybox = litOptions.reflectionSource !== REFLECTIONSRC_NONE;\n\t\tlitOptions.skyboxIntensity = hasSkybox;\n\t\tlitOptions.useCubeMapRotation = hasSkybox && scene._skyboxRotationShaderInclude;\n\t}\n\tstatic updateLightingOptions(litOptions, material, scene, objDefs, sortedLights) {\n\t\tlitOptions.lightMapWithoutAmbient = false;\n\t\tif (material.useLighting) {\n\t\t\tconst lightsFiltered = [];\n\t\t\tconst mask = objDefs ? objDefs >> 16 : MASK_AFFECT_DYNAMIC;\n\t\t\tlitOptions.lightMaskDynamic = !!(mask & MASK_AFFECT_DYNAMIC);\n\t\t\tlitOptions.lightMapWithoutAmbient = false;\n\t\t\tif (sortedLights) {\n\t\t\t\t_LitMaterialOptionsBuilder.collectLights(LIGHTTYPE_DIRECTIONAL, sortedLights[LIGHTTYPE_DIRECTIONAL], lightsFiltered, mask);\n\t\t\t\tif (!scene.clusteredLightingEnabled) {\n\t\t\t\t\t_LitMaterialOptionsBuilder.collectLights(LIGHTTYPE_OMNI, sortedLights[LIGHTTYPE_OMNI], lightsFiltered, mask);\n\t\t\t\t\t_LitMaterialOptionsBuilder.collectLights(LIGHTTYPE_SPOT, sortedLights[LIGHTTYPE_SPOT], lightsFiltered, mask);\n\t\t\t\t}\n\t\t\t}\n\t\t\tlitOptions.lights = lightsFiltered;\n\t\t} else {\n\t\t\tlitOptions.lights = [];\n\t\t}\n\t\tif (litOptions.lights.length === 0 && !scene.clusteredLightingEnabled || (objDefs & SHADERDEF_NOSHADOW) !== 0) {\n\t\t\tlitOptions.noShadow = true;\n\t\t}\n\t}\n\tstatic collectLights(lType, lights2, lightsFiltered, mask) {\n\t\tfor (let i2 = 0; i2 < lights2.length; i2++) {\n\t\t\tconst light = lights2[i2];\n\t\t\tif (light.enabled) {\n\t\t\t\tif (light.mask & mask) {\n\t\t\t\t\tlightsFiltered.push(light);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar notBlack = (color3) => {\n\treturn color3.r !== 0 || color3.g !== 0 || color3.b !== 0;\n};\nvar StandardMaterialOptionsBuilder = class {\n\t// Minimal options for Depth and Shadow passes\n\tupdateMinRef(options2, scene, stdMat, objDefs, pass, sortedLights) {\n\t\tthis._updateSharedOptions(options2, scene, stdMat, objDefs, pass);\n\t\tthis._updateMinOptions(options2, stdMat, pass);\n\t\tthis._updateUVOptions(options2, stdMat, objDefs, true);\n\t}\n\tupdateRef(options2, scene, cameraShaderParams, stdMat, objDefs, pass, sortedLights) {\n\t\tthis._updateSharedOptions(options2, scene, stdMat, objDefs, pass, cameraShaderParams);\n\t\tthis._updateEnvOptions(options2, stdMat, scene, cameraShaderParams);\n\t\tthis._updateMaterialOptions(options2, stdMat, scene);\n\t\toptions2.litOptions.hasTangents = objDefs && (objDefs & SHADERDEF_TANGENTS) !== 0;\n\t\tthis._updateLightOptions(options2, scene, stdMat, objDefs, sortedLights);\n\t\tthis._updateUVOptions(options2, stdMat, objDefs, false, cameraShaderParams);\n\t}\n\t_updateSharedOptions(options2, scene, stdMat, objDefs, pass, cameraShaderParams) {\n\t\toptions2.forceUv1 = stdMat.forceUv1;\n\t\toptions2.litOptions.linearDepth = pass === SHADER_PREPASS || !!cameraShaderParams?.sceneTextures.includes(SCENETEXTURE_DEPTH);\n\t\tif (stdMat.userAttributes) {\n\t\t\toptions2.litOptions.userAttributes = Object.fromEntries(stdMat.userAttributes.entries());\n\t\t}\n\t\toptions2.litOptions.shaderChunks = stdMat.shaderChunks;\n\t\toptions2.litOptions.pass = pass;\n\t\toptions2.litOptions.alphaTest = stdMat.alphaTest > 0;\n\t\toptions2.litOptions.blendType = stdMat.blendType;\n\t\toptions2.litOptions.screenSpace = objDefs && (objDefs & SHADERDEF_SCREENSPACE) !== 0;\n\t\toptions2.litOptions.skin = objDefs && (objDefs & SHADERDEF_SKIN) !== 0;\n\t\toptions2.litOptions.batch = objDefs && (objDefs & SHADERDEF_BATCH) !== 0;\n\t\toptions2.litOptions.useInstancing = objDefs && (objDefs & SHADERDEF_INSTANCING) !== 0;\n\t\toptions2.litOptions.useMorphPosition = objDefs && (objDefs & SHADERDEF_MORPH_POSITION) !== 0;\n\t\toptions2.litOptions.useMorphNormal = objDefs && (objDefs & SHADERDEF_MORPH_NORMAL) !== 0;\n\t\toptions2.litOptions.useMorphTextureBasedInt = objDefs && (objDefs & SHADERDEF_MORPH_TEXTURE_BASED_INT) !== 0;\n\t\toptions2.litOptions.nineSlicedMode = stdMat.nineSlicedMode || 0;\n\t\tif (scene.clusteredLightingEnabled && stdMat.useLighting) {\n\t\t\toptions2.litOptions.clusteredLightingEnabled = true;\n\t\t\toptions2.litOptions.clusteredLightingCookiesEnabled = scene.lighting.cookiesEnabled;\n\t\t\toptions2.litOptions.clusteredLightingShadowsEnabled = scene.lighting.shadowsEnabled;\n\t\t\toptions2.litOptions.clusteredLightingShadowType = scene.lighting.shadowType;\n\t\t\toptions2.litOptions.clusteredLightingAreaLightsEnabled = scene.lighting.areaLightsEnabled;\n\t\t} else {\n\t\t\toptions2.litOptions.clusteredLightingEnabled = false;\n\t\t\toptions2.litOptions.clusteredLightingCookiesEnabled = false;\n\t\t\toptions2.litOptions.clusteredLightingShadowsEnabled = false;\n\t\t\toptions2.litOptions.clusteredLightingAreaLightsEnabled = false;\n\t\t}\n\t}\n\t_updateUVOptions(options2, stdMat, objDefs, minimalOptions, cameraShaderParams) {\n\t\tlet hasUv0 = false;\n\t\tlet hasUv1 = false;\n\t\tlet hasVcolor = false;\n\t\tif (objDefs) {\n\t\t\thasUv0 = (objDefs & SHADERDEF_UV0) !== 0;\n\t\t\thasUv1 = (objDefs & SHADERDEF_UV1) !== 0;\n\t\t\thasVcolor = (objDefs & SHADERDEF_VCOLOR) !== 0;\n\t\t}\n\t\toptions2.litOptions.vertexColors = false;\n\t\tconst uniqueTextureMap = {};\n\t\tfor (const p of _matTex2D.keys()) {\n\t\t\tthis._updateTexOptions(options2, stdMat, p, hasUv0, hasUv1, hasVcolor, minimalOptions, uniqueTextureMap);\n\t\t}\n\t\toptions2.litOptions.ssao = cameraShaderParams?.ssaoEnabled;\n\t\toptions2.useAO = options2.litOptions.ssao;\n\t\toptions2.litOptions.lightMapEnabled = options2.lightMap;\n\t\toptions2.litOptions.dirLightMapEnabled = options2.dirLightMap;\n\t\toptions2.litOptions.useHeights = options2.heightMap;\n\t\toptions2.parallaxMode = options2.heightMap ? stdMat.parallaxMode : PARALLAX_OFFSET;\n\t\toptions2.parallaxSelfShadow = options2.parallaxMode === PARALLAX_OCCLUSION && stdMat.parallaxShadowSamples > 0;\n\t\toptions2.litOptions.useNormals = options2.normalMap;\n\t\toptions2.litOptions.useClearCoatNormals = options2.clearCoatNormalMap;\n\t\toptions2.litOptions.useAo = options2.aoMap || options2.aoVertexColor || options2.litOptions.ssao;\n\t\toptions2.litOptions.diffuseMapEnabled = options2.diffuseMap;\n\t}\n\t_updateTexOptions(options2, stdMat, p, hasUv0, hasUv1, hasVcolor, minimalOptions, uniqueTextureMap) {\n\t\tconst isOpacity = p === \"opacity\";\n\t\tif (!minimalOptions || isOpacity) {\n\t\t\tconst mname = `${p}Map`;\n\t\t\tconst vname = `${p}VertexColor`;\n\t\t\tconst vcname = `${p}VertexColorChannel`;\n\t\t\tconst cname = `${mname}Channel`;\n\t\t\tconst tname = `${mname}Transform`;\n\t\t\tconst uname = `${mname}Uv`;\n\t\t\tconst iname = `${mname}Identifier`;\n\t\t\tif (p !== \"light\") {\n\t\t\t\toptions2[mname] = false;\n\t\t\t\toptions2[iname] = void 0;\n\t\t\t\toptions2[cname] = \"\";\n\t\t\t\toptions2[tname] = 0;\n\t\t\t\toptions2[uname] = 0;\n\t\t\t}\n\t\t\toptions2[vname] = false;\n\t\t\toptions2[vcname] = \"\";\n\t\t\tif (isOpacity && stdMat.blendType === BLEND_NONE && stdMat.alphaTest === 0 && !stdMat.alphaToCoverage && stdMat.opacityDither === DITHER_NONE) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (p !== \"height\" && stdMat[vname]) {\n\t\t\t\tif (hasVcolor) {\n\t\t\t\t\toptions2[vname] = stdMat[vname];\n\t\t\t\t\toptions2[vcname] = stdMat[vcname];\n\t\t\t\t\toptions2.litOptions.vertexColors = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (stdMat[mname]) {\n\t\t\t\tlet allow = true;\n\t\t\t\tif (stdMat[uname] === 0 && !hasUv0) allow = false;\n\t\t\t\tif (stdMat[uname] === 1 && !hasUv1) allow = false;\n\t\t\t\tif (allow) {\n\t\t\t\t\tconst mapId = stdMat[mname].id;\n\t\t\t\t\tlet identifier = uniqueTextureMap[mapId];\n\t\t\t\t\tif (identifier === void 0) {\n\t\t\t\t\t\tuniqueTextureMap[mapId] = p;\n\t\t\t\t\t\tidentifier = p;\n\t\t\t\t\t}\n\t\t\t\t\toptions2[mname] = !!stdMat[mname];\n\t\t\t\t\toptions2[iname] = identifier;\n\t\t\t\t\toptions2[tname] = stdMat._getMapTransformId(p);\n\t\t\t\t\toptions2[cname] = stdMat[cname];\n\t\t\t\t\toptions2[uname] = stdMat[uname];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t_updateMinOptions(options2, stdMat, pass) {\n\t\tconst isPrepass = pass === SHADER_PREPASS;\n\t\toptions2.litOptions.opacityShadowDither = isPrepass ? stdMat.opacityDither : stdMat.opacityShadowDither;\n\t\toptions2.litOptions.lights = [];\n\t}\n\t_updateMaterialOptions(options2, stdMat, scene) {\n\t\tconst useSpecular = !!(stdMat.useMetalness || stdMat.specularMap || stdMat.sphereMap || stdMat.cubeMap || notBlack(stdMat.specular) || stdMat.specularityFactor > 0 && stdMat.useMetalness || stdMat.enableGGXSpecular || stdMat.clearCoat > 0);\n\t\tconst useSpecularColor = !stdMat.useMetalness || stdMat.useMetalnessSpecularColor;\n\t\tconst specularityFactorTint = useSpecular && stdMat.useMetalnessSpecularColor && (stdMat.specularityFactorTint || stdMat.specularityFactor !== 1);\n\t\tconst isPackedNormalMap = (texture) => texture ? texture.format === PIXELFORMAT_DXT5 || texture.type === TEXTURETYPE_SWIZZLEGGGR : false;\n\t\tconst equalish = (a, b) => Math.abs(a - b) < 1e-4;\n\t\toptions2.specularityFactorTint = specularityFactorTint;\n\t\toptions2.metalnessTint = stdMat.useMetalness && stdMat.metalness < 1;\n\t\toptions2.glossTint = true;\n\t\toptions2.diffuseEncoding = stdMat.diffuseMap?.encoding;\n\t\toptions2.diffuseDetailEncoding = stdMat.diffuseDetailMap?.encoding;\n\t\toptions2.emissiveEncoding = stdMat.emissiveMap?.encoding;\n\t\toptions2.lightMapEncoding = stdMat.lightMap?.encoding;\n\t\toptions2.packedNormal = isPackedNormalMap(stdMat.normalMap);\n\t\toptions2.refractionTint = !equalish(stdMat.refraction, 1);\n\t\toptions2.refractionIndexTint = !equalish(stdMat.refractionIndex, 1 / 1.5);\n\t\toptions2.thicknessTint = stdMat.useDynamicRefraction && stdMat.thickness !== 1;\n\t\toptions2.specularEncoding = stdMat.specularMap?.encoding;\n\t\toptions2.sheenEncoding = stdMat.sheenMap?.encoding;\n\t\toptions2.aoMapUv = stdMat.aoUvSet;\n\t\toptions2.aoDetail = !!stdMat.aoDetailMap;\n\t\toptions2.diffuseDetail = !!stdMat.diffuseDetailMap;\n\t\toptions2.normalDetail = !!stdMat.normalMap;\n\t\toptions2.normalDetailPackedNormal = isPackedNormalMap(stdMat.normalDetailMap);\n\t\toptions2.diffuseDetailMode = stdMat.diffuseDetailMode;\n\t\toptions2.aoDetailMode = stdMat.aoDetailMode;\n\t\toptions2.clearCoatGloss = !!stdMat.clearCoatGloss;\n\t\toptions2.clearCoatPackedNormal = isPackedNormalMap(stdMat.clearCoatNormalMap);\n\t\toptions2.iorTint = !equalish(stdMat.refractionIndex, 1 / 1.5);\n\t\toptions2.iridescenceTint = stdMat.iridescence !== 1;\n\t\toptions2.glossInvert = stdMat.glossInvert;\n\t\toptions2.sheenGlossInvert = stdMat.sheenGlossInvert;\n\t\toptions2.clearCoatGlossInvert = stdMat.clearCoatGlossInvert;\n\t\toptions2.useSpecularColor = useSpecularColor;\n\t\toptions2.litOptions.separateAmbient = false;\n\t\toptions2.litOptions.pixelSnap = stdMat.pixelSnap;\n\t\toptions2.litOptions.ambientSH = !!stdMat.ambientSH;\n\t\toptions2.litOptions.twoSidedLighting = stdMat.twoSidedLighting;\n\t\toptions2.litOptions.occludeSpecular = stdMat.occludeSpecular;\n\t\toptions2.litOptions.occludeSpecularFloat = stdMat.occludeSpecularIntensity !== 1;\n\t\toptions2.litOptions.useMsdf = !!stdMat.msdfMap;\n\t\toptions2.litOptions.msdfTextAttribute = !!stdMat.msdfTextAttribute;\n\t\toptions2.litOptions.alphaToCoverage = stdMat.alphaToCoverage;\n\t\toptions2.litOptions.opacityFadesSpecular = stdMat.opacityFadesSpecular;\n\t\toptions2.litOptions.opacityDither = stdMat.opacityDither;\n\t\toptions2.litOptions.cubeMapProjection = stdMat.cubeMapProjection;\n\t\toptions2.litOptions.occludeDirect = stdMat.occludeDirect;\n\t\toptions2.litOptions.useSpecular = useSpecular;\n\t\toptions2.litOptions.useSpecularityFactor = (specularityFactorTint || !!stdMat.specularityFactorMap) && stdMat.useMetalnessSpecularColor;\n\t\toptions2.litOptions.enableGGXSpecular = stdMat.enableGGXSpecular;\n\t\toptions2.litOptions.useAnisotropy = stdMat.enableGGXSpecular && (stdMat.anisotropyIntensity > 0 || !!stdMat.anisotropyMap);\n\t\toptions2.litOptions.fresnelModel = stdMat.fresnelModel;\n\t\toptions2.litOptions.useRefraction = (stdMat.refraction || !!stdMat.refractionMap) && (stdMat.useDynamicRefraction || options2.litOptions.reflectionSource !== REFLECTIONSRC_NONE);\n\t\toptions2.litOptions.useClearCoat = !!stdMat.clearCoat;\n\t\toptions2.litOptions.useSheen = stdMat.useSheen;\n\t\toptions2.litOptions.useIridescence = stdMat.useIridescence && stdMat.iridescence !== 0;\n\t\toptions2.litOptions.useMetalness = stdMat.useMetalness;\n\t\toptions2.litOptions.useDynamicRefraction = stdMat.useDynamicRefraction;\n\t\toptions2.litOptions.dispersion = stdMat.dispersion > 0;\n\t\toptions2.litOptions.shadowCatcher = stdMat.shadowCatcher;\n\t\toptions2.litOptions.useVertexColorGamma = stdMat.vertexColorGamma;\n\t}\n\t_updateEnvOptions(options2, stdMat, scene, cameraShaderParams) {\n\t\toptions2.litOptions.fog = stdMat.useFog ? cameraShaderParams.fog : FOG_NONE;\n\t\toptions2.litOptions.gamma = cameraShaderParams.shaderOutputGamma;\n\t\toptions2.litOptions.toneMap = stdMat.useTonemap ? cameraShaderParams.toneMapping : TONEMAP_NONE;\n\t\tlet usingSceneEnv = false;\n\t\tif (stdMat.envAtlas && stdMat.cubeMap) {\n\t\t\toptions2.litOptions.reflectionSource = REFLECTIONSRC_ENVATLASHQ;\n\t\t\toptions2.litOptions.reflectionEncoding = stdMat.envAtlas.encoding;\n\t\t\toptions2.litOptions.reflectionCubemapEncoding = stdMat.cubeMap.encoding;\n\t\t} else if (stdMat.envAtlas) {\n\t\t\toptions2.litOptions.reflectionSource = REFLECTIONSRC_ENVATLAS;\n\t\t\toptions2.litOptions.reflectionEncoding = stdMat.envAtlas.encoding;\n\t\t} else if (stdMat.cubeMap) {\n\t\t\toptions2.litOptions.reflectionSource = REFLECTIONSRC_CUBEMAP;\n\t\t\toptions2.litOptions.reflectionEncoding = stdMat.cubeMap.encoding;\n\t\t} else if (stdMat.sphereMap) {\n\t\t\toptions2.litOptions.reflectionSource = REFLECTIONSRC_SPHEREMAP;\n\t\t\toptions2.litOptions.reflectionEncoding = stdMat.sphereMap.encoding;\n\t\t} else if (stdMat.useSkybox && scene.envAtlas && scene.skybox) {\n\t\t\toptions2.litOptions.reflectionSource = REFLECTIONSRC_ENVATLASHQ;\n\t\t\toptions2.litOptions.reflectionEncoding = scene.envAtlas.encoding;\n\t\t\toptions2.litOptions.reflectionCubemapEncoding = scene.skybox.encoding;\n\t\t\tusingSceneEnv = true;\n\t\t} else if (stdMat.useSkybox && scene.envAtlas) {\n\t\t\toptions2.litOptions.reflectionSource = REFLECTIONSRC_ENVATLAS;\n\t\t\toptions2.litOptions.reflectionEncoding = scene.envAtlas.encoding;\n\t\t\tusingSceneEnv = true;\n\t\t} else if (stdMat.useSkybox && scene.skybox) {\n\t\t\toptions2.litOptions.reflectionSource = REFLECTIONSRC_CUBEMAP;\n\t\t\toptions2.litOptions.reflectionEncoding = scene.skybox.encoding;\n\t\t\tusingSceneEnv = true;\n\t\t} else {\n\t\t\toptions2.litOptions.reflectionSource = REFLECTIONSRC_NONE;\n\t\t\toptions2.litOptions.reflectionEncoding = null;\n\t\t}\n\t\tif (stdMat.ambientSH) {\n\t\t\toptions2.litOptions.ambientSource = AMBIENTSRC_AMBIENTSH;\n\t\t\toptions2.litOptions.ambientEncoding = null;\n\t\t} else {\n\t\t\tconst envAtlas = stdMat.envAtlas || (stdMat.useSkybox && scene.envAtlas ? scene.envAtlas : null);\n\t\t\tif (envAtlas && !stdMat.sphereMap) {\n\t\t\t\toptions2.litOptions.ambientSource = AMBIENTSRC_ENVALATLAS;\n\t\t\t\toptions2.litOptions.ambientEncoding = envAtlas.encoding;\n\t\t\t} else {\n\t\t\t\toptions2.litOptions.ambientSource = AMBIENTSRC_CONSTANT;\n\t\t\t\toptions2.litOptions.ambientEncoding = null;\n\t\t\t}\n\t\t}\n\t\toptions2.litOptions.skyboxIntensity = usingSceneEnv;\n\t\toptions2.litOptions.useCubeMapRotation = usingSceneEnv && scene._skyboxRotationShaderInclude;\n\t}\n\t_updateLightOptions(options2, scene, stdMat, objDefs, sortedLights) {\n\t\toptions2.lightMap = false;\n\t\toptions2.lightMapChannel = \"\";\n\t\toptions2.lightMapUv = 0;\n\t\toptions2.lightMapTransform = 0;\n\t\toptions2.litOptions.lightMapWithoutAmbient = false;\n\t\toptions2.dirLightMap = false;\n\t\tif (objDefs) {\n\t\t\toptions2.litOptions.noShadow = (objDefs & SHADERDEF_NOSHADOW) !== 0;\n\t\t\tif ((objDefs & SHADERDEF_LM) !== 0) {\n\t\t\t\toptions2.lightMapEncoding = scene.lightmapPixelFormat === PIXELFORMAT_RGBA8 ? \"rgbm\" : \"linear\";\n\t\t\t\toptions2.lightMap = true;\n\t\t\t\toptions2.lightMapChannel = \"rgb\";\n\t\t\t\toptions2.lightMapUv = 1;\n\t\t\t\toptions2.lightMapTransform = 0;\n\t\t\t\toptions2.litOptions.lightMapWithoutAmbient = !stdMat.lightMap;\n\t\t\t\tif ((objDefs & SHADERDEF_DIRLM) !== 0) {\n\t\t\t\t\toptions2.dirLightMap = true;\n\t\t\t\t}\n\t\t\t\tif ((objDefs & SHADERDEF_LMAMBIENT) !== 0) {\n\t\t\t\t\toptions2.litOptions.lightMapWithoutAmbient = false;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (stdMat.useLighting) {\n\t\t\tconst lightsFiltered = [];\n\t\t\tconst mask = objDefs ? objDefs >> 16 : MASK_AFFECT_DYNAMIC;\n\t\t\toptions2.litOptions.lightMaskDynamic = !!(mask & MASK_AFFECT_DYNAMIC);\n\t\t\tif (sortedLights) {\n\t\t\t\tLitMaterialOptionsBuilder.collectLights(LIGHTTYPE_DIRECTIONAL, sortedLights[LIGHTTYPE_DIRECTIONAL], lightsFiltered, mask);\n\t\t\t\tif (!scene.clusteredLightingEnabled) {\n\t\t\t\t\tLitMaterialOptionsBuilder.collectLights(LIGHTTYPE_OMNI, sortedLights[LIGHTTYPE_OMNI], lightsFiltered, mask);\n\t\t\t\t\tLitMaterialOptionsBuilder.collectLights(LIGHTTYPE_SPOT, sortedLights[LIGHTTYPE_SPOT], lightsFiltered, mask);\n\t\t\t\t}\n\t\t\t}\n\t\t\toptions2.litOptions.lights = lightsFiltered;\n\t\t} else {\n\t\t\toptions2.litOptions.lights = [];\n\t\t}\n\t\tif (options2.litOptions.lights.length === 0 && !scene.clusteredLightingEnabled) {\n\t\t\toptions2.litOptions.noShadow = true;\n\t\t}\n\t}\n};\n\nfunction _textureParameter(name, channel = true, vertexColor = true) {\n\tconst result = {};\n\tresult[`${name}Map`] = \"texture\";\n\tresult[`${name}MapTiling`] = \"vec2\";\n\tresult[`${name}MapOffset`] = \"vec2\";\n\tresult[`${name}MapRotation`] = \"number\";\n\tresult[`${name}MapUv`] = \"number\";\n\tif (channel) {\n\t\tresult[`${name}MapChannel`] = \"string\";\n\t\tif (vertexColor) {\n\t\t\tresult[`${name}VertexColor`] = \"boolean\";\n\t\t\tresult[`${name}VertexColorChannel`] = \"string\";\n\t\t}\n\t}\n\treturn result;\n}\nvar standardMaterialParameterTypes = {\n\tname: \"string\",\n\tchunks: \"chunks\",\n\tmappingFormat: \"string\",\n\t_engine: \"boolean\",\n\t// internal param for engine-only loading\n\tambient: \"rgb\",\n\t..._textureParameter(\"ao\"),\n\t..._textureParameter(\"aoDetail\", true, false),\n\taoDetailMode: \"string\",\n\taoIntensity: \"number\",\n\tdiffuse: \"rgb\",\n\t..._textureParameter(\"diffuse\"),\n\t..._textureParameter(\"diffuseDetail\", true, false),\n\tdiffuseDetailMode: \"string\",\n\tvertexColorGamma: \"boolean\",\n\tspecular: \"rgb\",\n\t..._textureParameter(\"specular\"),\n\toccludeSpecular: \"enum:occludeSpecular\",\n\tspecularityFactor: \"number\",\n\tspecularityFactorTint: \"boolean\",\n\t..._textureParameter(\"specularityFactor\"),\n\tuseMetalness: \"boolean\",\n\tmetalness: \"number\",\n\tenableGGXSpecular: \"boolean\",\n\tmetalnessTint: \"boolean\",\n\t..._textureParameter(\"metalness\"),\n\tuseMetalnessSpecularColor: \"boolean\",\n\tanisotropyIntensity: \"number\",\n\tanisotropyRotation: \"number\",\n\t..._textureParameter(\"anisotropy\"),\n\tshininess: \"number\",\n\tgloss: \"number\",\n\tglossInvert: \"boolean\",\n\t..._textureParameter(\"gloss\"),\n\tclearCoat: \"number\",\n\t..._textureParameter(\"clearCoat\"),\n\tclearCoatGloss: \"number\",\n\tclearCoatGlossInvert: \"boolean\",\n\t..._textureParameter(\"clearCoatGloss\"),\n\tclearCoatBumpiness: \"number\",\n\t..._textureParameter(\"clearCoatNormal\", false),\n\tuseSheen: \"boolean\",\n\tsheen: \"rgb\",\n\t..._textureParameter(\"sheen\"),\n\tsheenGloss: \"number\",\n\tsheenGlossInvert: \"boolean\",\n\t..._textureParameter(\"sheenGloss\"),\n\tfresnelModel: \"number\",\n\temissive: \"rgb\",\n\t..._textureParameter(\"emissive\"),\n\temissiveIntensity: \"number\",\n\t..._textureParameter(\"normal\", false),\n\tbumpiness: \"number\",\n\t// normalMapFactor: 'number', // TODO rename bumpiness to normalMapFactor\n\t..._textureParameter(\"normalDetail\", false),\n\tnormalDetailMapBumpiness: \"number\",\n\t..._textureParameter(\"height\", true, false),\n\theightMapFactor: \"number\",\n\theightMapBase: \"number\",\n\tparallaxMode: \"string\",\n\tparallaxSamples: \"number\",\n\tparallaxShadowSamples: \"number\",\n\talphaToCoverage: \"boolean\",\n\talphaTest: \"number\",\n\talphaFade: \"number\",\n\talphaDither: \"number\",\n\topacity: \"number\",\n\t..._textureParameter(\"opacity\"),\n\topacityFadesSpecular: \"boolean\",\n\topacityDither: \"string\",\n\topacityShadowDither: \"string\",\n\treflectivity: \"number\",\n\trefraction: \"number\",\n\trefractionTint: \"boolean\",\n\t..._textureParameter(\"refraction\"),\n\trefractionIndex: \"number\",\n\tdispersion: \"number\",\n\tthickness: \"number\",\n\tthicknessTint: \"boolean\",\n\t..._textureParameter(\"thickness\"),\n\tattenuation: \"rgb\",\n\tattenuationDistance: \"number\",\n\tuseDynamicRefraction: \"boolean\",\n\tsphereMap: \"texture\",\n\tcubeMap: \"cubemap\",\n\tcubeMapProjection: \"number\",\n\tcubeMapProjectionBox: \"boundingbox\",\n\tuseIridescence: \"boolean\",\n\tiridescence: \"number\",\n\tiridescenceTint: \"boolean\",\n\t..._textureParameter(\"iridescence\"),\n\tiridescenceThicknessTint: \"boolean\",\n\tiridescenceThicknessMin: \"number\",\n\tiridescenceThicknessMax: \"number\",\n\tiridescenceRefractionIndex: \"number\",\n\t..._textureParameter(\"iridescenceThickness\"),\n\t..._textureParameter(\"light\"),\n\tdepthTest: \"boolean\",\n\tdepthFunc: \"enum:depthFunc\",\n\tdepthWrite: \"boolean\",\n\tdepthBias: \"number\",\n\tslopeDepthBias: \"number\",\n\tcull: \"enum:cull\",\n\tblendType: \"enum:blendType\",\n\tuseFog: \"boolean\",\n\tuseLighting: \"boolean\",\n\tuseSkybox: \"boolean\",\n\tuseTonemap: \"boolean\",\n\tenvAtlas: \"texture\",\n\ttwoSidedLighting: \"boolean\",\n\tflatShading: \"boolean\",\n\tshadowCatcher: \"boolean\"\n\t// nineSlicedMode\n\t// pixelSnap\n\t// forceUv1\n\t// occludeDirect\n\t// occludeSpecularIntensity\n\t// msdfMap\n\t// msdfMapChannel\n\t// msdfMapUv\n\t// msdfMapTiling\n\t// msdfMapOffset\n\t// msdfTextAttribute\n\t// msdfVertexColor\n\t// msdfVertexColorChannel\n};\nvar standardMaterialTextureParameters = [];\nfor (const key in standardMaterialParameterTypes) {\n\tconst type = standardMaterialParameterTypes[key];\n\tif (type === \"texture\") {\n\t\tstandardMaterialTextureParameters.push(key);\n\t}\n}\nvar standardMaterialCubemapParameters = [];\nfor (const key in standardMaterialParameterTypes) {\n\tconst type = standardMaterialParameterTypes[key];\n\tif (type === \"cubemap\") {\n\t\tstandardMaterialCubemapParameters.push(key);\n\t}\n}\nvar standardMaterialRemovedParameters = {\n\taoMapVertexColor: \"boolean\",\n\tdiffuseMapTint: \"boolean\",\n\tdiffuseMapVertexColor: \"boolean\",\n\temissiveMapTint: \"boolean\",\n\temissiveMapVertexColor: \"boolean\",\n\tglossMapVertexColor: \"boolean\",\n\tmetalnessMapVertexColor: \"boolean\",\n\topacityMapVertexColor: \"boolean\",\n\tspecularAntialias: \"boolean\",\n\tspecularMapTint: \"boolean\",\n\tspecularMapVertexColor: \"boolean\",\n\tambientTint: \"boolean\",\n\temissiveTint: \"boolean\",\n\tdiffuseTint: \"boolean\",\n\tspecularTint: \"boolean\",\n\tsheenTint: \"boolean\",\n\tconserveEnergy: \"boolean\",\n\tuseGamma: \"boolean\",\n\tuseGammaTonemap: \"boolean\",\n\tsheenGlossTint: \"boolean\",\n\tanisotropy: \"boolean\"\n};\n\nvar _props = {};\nvar _uniforms = {};\nvar _params = /* @__PURE__ */ new Set();\nvar _tempColor = new Color();\nvar isBlack = (color3) => {\n\treturn color3.r === 0 && color3.g === 0 && color3.b === 0;\n};\nvar StandardMaterial = class extends Material {\n\tstatic TEXTURE_PARAMETERS = standardMaterialTextureParameters;\n\tstatic CUBEMAP_PARAMETERS = standardMaterialCubemapParameters;\n\tuserAttributes = /* @__PURE__ */ new Map();\n\t_specularIsBlack;\n\t_mapTransforms = new StandardMaterialMapTransforms();\n\tonUpdateShader;\n\tconstructor() {\n\t\tsuper();\n\t\tthis._assetReferences = {};\n\t\tthis._activeParams = /* @__PURE__ */ new Set();\n\t\tthis._activeLightingParams = /* @__PURE__ */ new Set();\n\t\tthis.shaderOptBuilder = new StandardMaterialOptionsBuilder();\n\t\tthis.reset();\n\t\tthis._specularIsBlack = isBlack(this._specular);\n\t}\n\treset() {\n\t\tObject.keys(_props).forEach((name) => {\n\t\t\tthis[`_${name}`] = _props[name].value();\n\t\t});\n\t\tthis._uniformCache = {};\n\t\tthis._mapTransforms.reset();\n\t}\n\tcopy(source) {\n\t\tsuper.copy(source);\n\t\tObject.keys(_props).forEach((name) => {\n\t\t\tthis[name] = _props[name].copyFromBacking ? source[`_${name}`] : source[name];\n\t\t});\n\t\tthis._alphaDither = source._alphaDither;\n\t\tthis.userAttributes = new Map(source.userAttributes);\n\t\treturn this;\n\t}\n\tupdate() {\n\t\tif (this._mapTransforms.update(this)) {\n\t\t\tthis._dirtyShader = true;\n\t\t}\n\t\tconst specularIsBlack = isBlack(this._specular);\n\t\tif (this._specularIsBlack !== specularIsBlack) {\n\t\t\tthis._specularIsBlack = specularIsBlack;\n\t\t\tthis._dirtyShader = true;\n\t\t}\n\t\tsuper.update();\n\t}\n\t_getMapTransformId(name) {\n\t\treturn this._mapTransforms.getId(name);\n\t}\n\tsetAttribute(name, semantic) {\n\t\tthis.userAttributes.set(semantic, name);\n\t}\n\t_setParameter(name, value) {\n\t\t_params.add(name);\n\t\tthis.setParameter(name, value);\n\t}\n\t_setParameters(parameters) {\n\t\tparameters.forEach((v6) => {\n\t\t\tthis._setParameter(v6.name, v6.value);\n\t\t});\n\t}\n\t_processParameters(paramsName) {\n\t\tconst prevParams = this[paramsName];\n\t\tprevParams.forEach((param) => {\n\t\t\tif (!_params.has(param)) {\n\t\t\t\tdelete this.parameters[param];\n\t\t\t}\n\t\t});\n\t\tthis[paramsName] = _params;\n\t\t_params = prevParams;\n\t\t_params.clear();\n\t}\n\t_updateMap(p) {\n\t\tconst mname = `${p}Map`;\n\t\tconst map = this[mname];\n\t\tif (map) {\n\t\t\tthis._setParameter(`texture_${mname}`, map);\n\t\t\tconst tname = `${mname}Transform`;\n\t\t\tconst uniform = this.getUniform(tname);\n\t\t\tif (uniform) {\n\t\t\t\tthis._setParameters(uniform);\n\t\t\t}\n\t\t}\n\t}\n\t// allocate a uniform if it doesn't already exist in the uniform cache\n\t_allocUniform(name, allocFunc) {\n\t\tlet uniform = this._uniformCache[name];\n\t\tif (!uniform) {\n\t\t\tuniform = allocFunc();\n\t\t\tthis._uniformCache[name] = uniform;\n\t\t}\n\t\treturn uniform;\n\t}\n\tgetUniform(name, device, scene) {\n\t\treturn _uniforms[name](this, device, scene);\n\t}\n\tupdateUniforms(device, scene) {\n\t\tif (this._mapTransforms.update(this)) {\n\t\t\tthis._dirtyShader = true;\n\t\t}\n\t\tconst getUniform = (name) => {\n\t\t\treturn this.getUniform(name, device, scene);\n\t\t};\n\t\tthis._setParameter(\"material_ambient\", getUniform(\"ambient\"));\n\t\tthis._setParameter(\"material_diffuse\", getUniform(\"diffuse\"));\n\t\tthis._setParameter(\"material_specular\", getUniform(\"specular\"));\n\t\tthis._setParameter(\"material_aoIntensity\", this.aoIntensity);\n\t\tif (this.useMetalness) {\n\t\t\tif (!this.metalnessMap || this.metalness < 1) {\n\t\t\t\tthis._setParameter(\"material_metalness\", this.metalness);\n\t\t\t}\n\t\t\tif (!this.specularityFactorMap || this.specularityFactorTint || this.specularityFactor !== 1) {\n\t\t\t\tthis._setParameter(\"material_specularityFactor\", this.specularityFactor);\n\t\t\t}\n\t\t\tthis._setParameter(\"material_sheen\", getUniform(\"sheen\"));\n\t\t\tthis._setParameter(\"material_sheenGloss\", this.sheenGloss);\n\t\t\tthis._setParameter(\"material_refractionIndex\", this.refractionIndex);\n\t\t}\n\t\tif (this.enableGGXSpecular) {\n\t\t\tthis._setParameter(\"material_anisotropyIntensity\", this.anisotropyIntensity);\n\t\t\tthis._setParameter(\"material_anisotropyRotation\", [Math.cos(this.anisotropyRotation * math.DEG_TO_RAD), Math.sin(this.anisotropyRotation * math.DEG_TO_RAD)]);\n\t\t}\n\t\tif (this.clearCoat > 0) {\n\t\t\tthis._setParameter(\"material_clearCoat\", this.clearCoat);\n\t\t\tthis._setParameter(\"material_clearCoatGloss\", this.clearCoatGloss);\n\t\t\tthis._setParameter(\"material_clearCoatBumpiness\", this.clearCoatBumpiness);\n\t\t}\n\t\tthis._setParameter(\"material_gloss\", this.gloss);\n\t\tthis._setParameter(\"material_emissive\", getUniform(\"emissive\"));\n\t\tthis._setParameter(\"material_emissiveIntensity\", this.emissiveIntensity);\n\t\tif (this.refraction > 0) {\n\t\t\tthis._setParameter(\"material_refraction\", this.refraction);\n\t\t}\n\t\tif (!this.useMetalness && (this.refraction > 0 || this.refractionMap)) {\n\t\t\tthis._setParameter(\"material_refractionIndex\", this.refractionIndex);\n\t\t}\n\t\tif (this.dispersion > 0) {\n\t\t\tthis._setParameter(\"material_dispersion\", this.dispersion);\n\t\t}\n\t\tif (this.useDynamicRefraction) {\n\t\t\tthis._setParameter(\"material_thickness\", this.thickness);\n\t\t\tthis._setParameter(\"material_attenuation\", getUniform(\"attenuation\"));\n\t\t\tthis._setParameter(\"material_invAttenuationDistance\", this.attenuationDistance === 0 ? 0 : 1 / this.attenuationDistance);\n\t\t}\n\t\tif (this.useIridescence) {\n\t\t\tthis._setParameter(\"material_iridescence\", this.iridescence);\n\t\t\tthis._setParameter(\"material_iridescenceRefractionIndex\", this.iridescenceRefractionIndex);\n\t\t\tthis._setParameter(\"material_iridescenceThicknessMin\", this.iridescenceThicknessMin);\n\t\t\tthis._setParameter(\"material_iridescenceThicknessMax\", this.iridescenceThicknessMax);\n\t\t}\n\t\tthis._setParameter(\"material_opacity\", this.opacity);\n\t\tconst ditherScale = this._opacity > 0 ? this.alphaDither / this._opacity : 1;\n\t\tthis._setParameter(\"material_alphaDitherScale\", ditherScale);\n\t\tif (this.opacityFadesSpecular === false) {\n\t\t\tthis._setParameter(\"material_alphaFade\", this.alphaFade);\n\t\t}\n\t\tif (this.occludeSpecular) {\n\t\t\tthis._setParameter(\"material_occludeSpecularIntensity\", this.occludeSpecularIntensity);\n\t\t}\n\t\tif (this.cubeMapProjection === CUBEPROJ_BOX) {\n\t\t\tthis._setParameter(getUniform(\"cubeMapProjectionBox\"));\n\t\t}\n\t\tfor (const p of _matTex2D.keys()) {\n\t\t\tthis._updateMap(p);\n\t\t}\n\t\tif (this.ambientSH) {\n\t\t\tthis._setParameter(\"ambientSH[0]\", this.ambientSH);\n\t\t}\n\t\tif (this.normalMap) {\n\t\t\tthis._setParameter(\"material_bumpiness\", this.bumpiness);\n\t\t}\n\t\tif (this.normalMap && this.normalDetailMap) {\n\t\t\tthis._setParameter(\"material_normalDetailMapBumpiness\", this.normalDetailMapBumpiness);\n\t\t}\n\t\tif (this.heightMap) {\n\t\t\tthis._setParameter(\"material_heightMapFactor\", getUniform(\"heightMapFactor\"));\n\t\t\tthis._setParameter(\"material_heightMapBase\", this.heightMapBase);\n\t\t\tif (this.parallaxMode === PARALLAX_OCCLUSION) {\n\t\t\t\tthis._setParameter(\"material_parallaxSamples\", this.parallaxSamples);\n\t\t\t\tif (this.parallaxShadowSamples > 0) {\n\t\t\t\t\tthis._setParameter(\"material_parallaxShadowSamples\", this.parallaxShadowSamples);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (this.envAtlas && this.cubeMap) {\n\t\t\tthis._setParameter(\"texture_envAtlas\", this.envAtlas);\n\t\t\tthis._setParameter(\"texture_cubeMap\", this.cubeMap);\n\t\t} else if (this.envAtlas) {\n\t\t\tthis._setParameter(\"texture_envAtlas\", this.envAtlas);\n\t\t} else if (this.cubeMap) {\n\t\t\tthis._setParameter(\"texture_cubeMap\", this.cubeMap);\n\t\t} else if (this.sphereMap) {\n\t\t\tthis._setParameter(\"texture_sphereMap\", this.sphereMap);\n\t\t}\n\t\tthis._setParameter(\"material_reflectivity\", this.reflectivity);\n\t\tthis._processParameters(\"_activeParams\");\n\t\tsuper.updateUniforms(device, scene);\n\t}\n\tupdateEnvUniforms(device, scene) {\n\t\tconst hasLocalEnvOverride = this.envAtlas || this.cubeMap || this.sphereMap;\n\t\tif (!hasLocalEnvOverride && this.useSkybox) {\n\t\t\tif (scene.envAtlas && scene.skybox) {\n\t\t\t\tthis._setParameter(\"texture_envAtlas\", scene.envAtlas);\n\t\t\t\tthis._setParameter(\"texture_cubeMap\", scene.skybox);\n\t\t\t} else if (scene.envAtlas) {\n\t\t\t\tthis._setParameter(\"texture_envAtlas\", scene.envAtlas);\n\t\t\t} else if (scene.skybox) {\n\t\t\t\tthis._setParameter(\"texture_cubeMap\", scene.skybox);\n\t\t\t}\n\t\t}\n\t\tthis._processParameters(\"_activeLightingParams\");\n\t}\n\tgetShaderVariant(params) {\n\t\tconst { device, scene, pass, objDefs, sortedLights, cameraShaderParams } = params;\n\t\tthis.updateEnvUniforms(device, scene);\n\t\tconst shaderPassInfo = ShaderPass.get(device).getByIndex(pass);\n\t\tconst minimalOptions = pass === SHADER_PICK || pass === SHADER_PREPASS || shaderPassInfo.isShadow;\n\t\tlet options2 = minimalOptions ? standard.optionsContextMin : standard.optionsContext;\n\t\toptions2.defines = ShaderUtils.getCoreDefines(this, params);\n\t\tif (minimalOptions) {\n\t\t\tthis.shaderOptBuilder.updateMinRef(options2, scene, this, objDefs, pass, sortedLights);\n\t\t} else {\n\t\t\tthis.shaderOptBuilder.updateRef(options2, scene, cameraShaderParams, this, objDefs, pass, sortedLights);\n\t\t}\n\t\tconst useDualSourceBlending = shaderPassInfo.isForward && this.blendState.usesDualSourceBlending;\n\t\toptions2.useDualSourceBlending = useDualSourceBlending;\n\t\tif (!this.useFog) options2.defines.set(\"FOG\", \"NONE\");\n\t\toptions2.defines.set(\"TONEMAP\", tonemapNames[options2.litOptions.toneMap]);\n\t\tif (this.onUpdateShader) {\n\t\t\toptions2 = this.onUpdateShader(options2);\n\t\t}\n\t\toptions2.useDualSourceBlending = useDualSourceBlending;\n\t\tconst processingOptions = new ShaderProcessorOptions(params.viewUniformFormat, params.vertexFormat);\n\t\tconst library = getProgramLibrary(device);\n\t\tlibrary.register(\"standard\", standard);\n\t\tconst shader = library.getProgram(\"standard\", options2, processingOptions, this.userId);\n\t\treturn shader;\n\t}\n\tdestroy() {\n\t\tfor (const asset in this._assetReferences) {\n\t\t\tthis._assetReferences[asset]._unbind();\n\t\t}\n\t\tthis._assetReferences = null;\n\t\tsuper.destroy();\n\t}\n\tset shininess(value) {\n\t\tObject.assign(this, { gloss: value * 0.01 });\n\t}\n\tget shininess() {\n\t\treturn this.gloss * 100;\n\t}\n\tset useGammaTonemap(value) {\n\t\tObject.assign(this, { useTonemap: value });\n\t}\n\tget useGammaTonemap() {\n\t\treturn this.useTonemap;\n\t}\n\tset anisotropy(value) {\n\t\tObject.assign(this, {\n\t\t\tanisotropyIntensity: Math.abs(value),\n\t\t\tanisotropyRotation: value >= 0 ? 0 : 90\n\t\t});\n\t}\n\tget anisotropy() {\n\t\tconst sign = Math.sign(Math.cos(this.anisotropyRotation * math.DEG_TO_RAD * 2));\n\t\treturn this.anisotropyIntensity * sign;\n\t}\n};\nvar defineUniform = (name, getUniformFunc) => {\n\t_uniforms[name] = getUniformFunc;\n};\nvar definePropInternal = (name, constructorFunc, setterFunc, getterFunc, copyFromBacking = false) => {\n\tObject.defineProperty(StandardMaterial.prototype, name, {\n\t\tget: getterFunc || function() {\n\t\t\treturn this[`_${name}`];\n\t\t},\n\t\tset: setterFunc\n\t});\n\t_props[name] = {\n\t\tvalue: constructorFunc,\n\t\tcopyFromBacking\n\t};\n};\nvar defineValueProp = (prop) => {\n\tconst internalName = `_${prop.name}`;\n\tconst dirtyShaderFunc = prop.dirtyShaderFunc || (() => true);\n\tconst onGet = prop.onGet;\n\tconst onSet = prop.onSet;\n\tconst setterFunc = function(value) {\n\t\tconst oldValue = this[internalName];\n\t\tif (oldValue !== value) {\n\t\t\tthis._dirtyShader = this._dirtyShader || dirtyShaderFunc(oldValue, value);\n\t\t\tthis[internalName] = value;\n\t\t\tonSet?.call(this);\n\t\t}\n\t};\n\tconst getterFunc = prop.getterFunc || onGet && function() {\n\t\tonGet.call(this);\n\t\treturn this[internalName];\n\t};\n\tdefinePropInternal(prop.name, () => prop.defaultValue, setterFunc, getterFunc, !!onGet);\n};\nvar defineAggProp = (prop) => {\n\tconst internalName = `_${prop.name}`;\n\tconst dirtyShaderFunc = prop.dirtyShaderFunc || (() => true);\n\tconst onGet = prop.onGet;\n\tconst onSet = prop.onSet;\n\tconst setterFunc = function(value) {\n\t\tconst oldValue = this[internalName];\n\t\tif (!oldValue.equals(value)) {\n\t\t\tthis._dirtyShader = this._dirtyShader || dirtyShaderFunc(oldValue, value);\n\t\t\tthis[internalName] = oldValue.copy(value);\n\t\t\tonSet?.call(this);\n\t\t}\n\t};\n\tconst getterFunc = prop.getterFunc || onGet && function() {\n\t\tonGet.call(this);\n\t\treturn this[internalName];\n\t};\n\tdefinePropInternal(prop.name, () => prop.defaultValue.clone(), setterFunc, getterFunc, !!onGet);\n};\nvar defineProp = (prop) => {\n\treturn prop.defaultValue && prop.defaultValue.clone ? defineAggProp(prop) : defineValueProp(prop);\n};\nvar markMapTransformsDirty = function() {\n\tthis._mapTransforms.markDirty();\n};\nvar markMapTransformsMutable = function() {\n\tthis._mapTransforms.markMutable();\n};\nfunction _defineTex2D(name, channel = \"rgb\", vertexColor = true, uv = 0) {\n\t_matTex2D.set(name, channel.length || -1);\n\tdefineProp({\n\t\tname: `${name}Map`,\n\t\tdefaultValue: null,\n\t\tdirtyShaderFunc: (oldValue, newValue) => {\n\t\t\treturn !!oldValue !== !!newValue || oldValue && (oldValue.type !== newValue.type || oldValue.format !== newValue.format);\n\t\t},\n\t\tonSet: markMapTransformsDirty\n\t});\n\tdefineProp({\n\t\tname: `${name}MapTiling`,\n\t\tdefaultValue: new Vec2(1, 1),\n\t\tdirtyShaderFunc: () => false,\n\t\tonSet: markMapTransformsDirty,\n\t\tonGet: markMapTransformsMutable\n\t});\n\tdefineProp({\n\t\tname: `${name}MapOffset`,\n\t\tdefaultValue: new Vec2(0, 0),\n\t\tdirtyShaderFunc: () => false,\n\t\tonSet: markMapTransformsDirty,\n\t\tonGet: markMapTransformsMutable\n\t});\n\tdefineProp({\n\t\tname: `${name}MapRotation`,\n\t\tdefaultValue: 0,\n\t\tdirtyShaderFunc: () => false,\n\t\tonSet: markMapTransformsDirty\n\t});\n\tdefineProp({\n\t\tname: `${name}MapUv`,\n\t\tdefaultValue: uv,\n\t\tonSet: markMapTransformsDirty\n\t});\n\tif (channel) {\n\t\tdefineProp({\n\t\t\tname: `${name}MapChannel`,\n\t\t\tdefaultValue: channel\n\t\t});\n\t\tif (vertexColor) {\n\t\t\tdefineProp({\n\t\t\t\tname: `${name}VertexColor`,\n\t\t\t\tdefaultValue: false\n\t\t\t});\n\t\t\tdefineProp({\n\t\t\t\tname: `${name}VertexColorChannel`,\n\t\t\t\tdefaultValue: channel\n\t\t\t});\n\t\t}\n\t}\n\tconst mapTiling = `${name}MapTiling`;\n\tconst mapOffset = `${name}MapOffset`;\n\tconst mapRotation = `${name}MapRotation`;\n\tconst mapTransform = `${name}MapTransform`;\n\tdefineUniform(mapTransform, (material, device, scene) => {\n\t\tconst tiling = material[`_${mapTiling}`];\n\t\tconst offset3 = material[`_${mapOffset}`];\n\t\tconst rotation7 = material[`_${mapRotation}`];\n\t\tif (tiling.x === 1 && tiling.y === 1 && offset3.x === 0 && offset3.y === 0 && rotation7 === 0) {\n\t\t\treturn null;\n\t\t}\n\t\tconst uniform = material._allocUniform(mapTransform, () => {\n\t\t\treturn [{\n\t\t\t\tname: `texture_${mapTransform}0`,\n\t\t\t\tvalue: new Float32Array(3)\n\t\t\t}, {\n\t\t\t\tname: `texture_${mapTransform}1`,\n\t\t\t\tvalue: new Float32Array(3)\n\t\t\t}];\n\t\t});\n\t\tconst cr = Math.cos(rotation7 * math.DEG_TO_RAD);\n\t\tconst sr = Math.sin(rotation7 * math.DEG_TO_RAD);\n\t\tconst uniform0 = uniform[0].value;\n\t\tuniform0[0] = cr * tiling.x;\n\t\tuniform0[1] = -sr * tiling.y;\n\t\tuniform0[2] = offset3.x;\n\t\tconst uniform1 = uniform[1].value;\n\t\tuniform1[0] = sr * tiling.x;\n\t\tuniform1[1] = cr * tiling.y;\n\t\tuniform1[2] = 1 - tiling.y - offset3.y;\n\t\treturn uniform;\n\t});\n}\nfunction _defineColor(name, defaultValue) {\n\tdefineProp({\n\t\tname,\n\t\tdefaultValue,\n\t\tdirtyShaderFunc: () => false\n\t});\n\tdefineUniform(name, (material, device, scene) => {\n\t\tconst uniform = material._allocUniform(name, () => new Float32Array(3));\n\t\tconst color3 = material[`_${name}`];\n\t\t_tempColor.linear(color3);\n\t\tuniform[0] = _tempColor.r;\n\t\tuniform[1] = _tempColor.g;\n\t\tuniform[2] = _tempColor.b;\n\t\treturn uniform;\n\t});\n}\nfunction _defineFloat(name, defaultValue, getUniformFunc) {\n\tdefineProp({\n\t\tname,\n\t\tdefaultValue,\n\t\tdirtyShaderFunc: (oldValue, newValue) => {\n\t\t\treturn (oldValue === 0 || oldValue === 1) !== (newValue === 0 || newValue === 1);\n\t\t}\n\t});\n\tdefineUniform(name, getUniformFunc);\n}\nfunction _defineObject(name, getUniformFunc) {\n\tdefineProp({\n\t\tname,\n\t\tdefaultValue: null,\n\t\tdirtyShaderFunc: (oldValue, newValue) => {\n\t\t\treturn !!oldValue === !!newValue;\n\t\t}\n\t});\n\tdefineUniform(name, getUniformFunc);\n}\nfunction _defineFlag(name, defaultValue) {\n\tdefineProp({\n\t\tname,\n\t\tdefaultValue\n\t});\n}\nfunction _defineMaterialProps() {\n\t_defineColor(\"ambient\", new Color(1, 1, 1));\n\t_defineColor(\"diffuse\", new Color(1, 1, 1));\n\t_defineColor(\"specular\", new Color(0, 0, 0));\n\t_defineColor(\"emissive\", new Color(0, 0, 0));\n\t_defineColor(\"sheen\", new Color(1, 1, 1));\n\t_defineColor(\"attenuation\", new Color(1, 1, 1));\n\t_defineFloat(\"emissiveIntensity\", 1);\n\t_defineFloat(\"specularityFactor\", 1);\n\t_defineFloat(\"sheenGloss\", 0);\n\t_defineFloat(\"gloss\", 0.25);\n\t_defineFloat(\"aoIntensity\", 1);\n\t_defineFloat(\"heightMapFactor\", 1, (material, device, scene) => {\n\t\treturn material.heightMapFactor * 0.1;\n\t});\n\tdefineProp({\n\t\tname: \"heightMapBase\",\n\t\tdefaultValue: 0.5,\n\t\tdirtyShaderFunc: () => false\n\t});\n\t_defineFloat(\"parallaxSamples\", 16);\n\tdefinePropInternal(\"parallaxShadowSamples\", () => 0, function(value) {\n\t\tif (this._parallaxShadowSamples !== value) {\n\t\t\tif (this._parallaxShadowSamples === 0 !== (value === 0)) {\n\t\t\t\tthis._dirtyShader = true;\n\t\t\t}\n\t\t\tthis._parallaxShadowSamples = value;\n\t\t}\n\t});\n\t_defineFloat(\"opacity\", 1);\n\t_defineFloat(\"alphaFade\", 1);\n\tdefineProp({\n\t\tname: \"alphaDither\",\n\t\tdefaultValue: null,\n\t\tdirtyShaderFunc: () => false,\n\t\tgetterFunc: function() {\n\t\t\treturn this._alphaDither ?? this._opacity;\n\t\t}\n\t});\n\t_defineFloat(\"alphaTest\", 0);\n\t_defineFloat(\"bumpiness\", 1);\n\t_defineFloat(\"normalDetailMapBumpiness\", 1);\n\t_defineFloat(\"reflectivity\", 1);\n\t_defineFloat(\"occludeSpecularIntensity\", 1);\n\t_defineFloat(\"refraction\", 0);\n\t_defineFloat(\"refractionIndex\", 1 / 1.5, (material, device, scene) => {\n\t\treturn Math.max(1e-3, material.refractionIndex);\n\t});\n\t_defineFloat(\"dispersion\", 0);\n\t_defineFloat(\"thickness\", 0);\n\t_defineFloat(\"attenuationDistance\", 0);\n\t_defineFloat(\"metalness\", 1);\n\t_defineFloat(\"anisotropyIntensity\", 0);\n\t_defineFloat(\"anisotropyRotation\", 0);\n\t_defineFloat(\"clearCoat\", 0);\n\t_defineFloat(\"clearCoatGloss\", 1);\n\t_defineFloat(\"clearCoatBumpiness\", 1);\n\t_defineFloat(\"aoUvSet\", 0, null);\n\t_defineFloat(\"iridescence\", 0);\n\t_defineFloat(\"iridescenceRefractionIndex\", 1 / 1.5);\n\t_defineFloat(\"iridescenceThicknessMin\", 0);\n\t_defineFloat(\"iridescenceThicknessMax\", 0);\n\t_defineObject(\"ambientSH\");\n\t_defineObject(\"cubeMapProjectionBox\", (material, device, scene) => {\n\t\tconst uniform = material._allocUniform(\"cubeMapProjectionBox\", () => {\n\t\t\treturn [{\n\t\t\t\tname: \"envBoxMin\",\n\t\t\t\tvalue: new Float32Array(3)\n\t\t\t}, {\n\t\t\t\tname: \"envBoxMax\",\n\t\t\t\tvalue: new Float32Array(3)\n\t\t\t}];\n\t\t});\n\t\tconst bboxMin = material.cubeMapProjectionBox.getMin();\n\t\tconst minUniform = uniform[0].value;\n\t\tminUniform[0] = bboxMin.x;\n\t\tminUniform[1] = bboxMin.y;\n\t\tminUniform[2] = bboxMin.z;\n\t\tconst bboxMax = material.cubeMapProjectionBox.getMax();\n\t\tconst maxUniform = uniform[1].value;\n\t\tmaxUniform[0] = bboxMax.x;\n\t\tmaxUniform[1] = bboxMax.y;\n\t\tmaxUniform[2] = bboxMax.z;\n\t\treturn uniform;\n\t});\n\t_defineFlag(\"specularityFactorTint\", false);\n\t_defineFlag(\"useMetalness\", false);\n\t_defineFlag(\"useMetalnessSpecularColor\", false);\n\t_defineFlag(\"useSheen\", false);\n\t_defineFlag(\"enableGGXSpecular\", false);\n\t_defineFlag(\"occludeDirect\", false);\n\t_defineFlag(\"opacityFadesSpecular\", true);\n\t_defineFlag(\"occludeSpecular\", SPECOCC_AO);\n\t_defineFlag(\"fresnelModel\", FRESNEL_SCHLICK);\n\t_defineFlag(\"useDynamicRefraction\", false);\n\t_defineFlag(\"cubeMapProjection\", CUBEPROJ_NONE);\n\t_defineFlag(\"useFog\", true);\n\t_defineFlag(\"useLighting\", true);\n\t_defineFlag(\"useTonemap\", true);\n\t_defineFlag(\"useSkybox\", true);\n\t_defineFlag(\"forceUv1\", false);\n\t_defineFlag(\"pixelSnap\", false);\n\t_defineFlag(\"twoSidedLighting\", false);\n\t_defineFlag(\"nineSlicedMode\", void 0);\n\t_defineFlag(\"msdfTextAttribute\", false);\n\t_defineFlag(\"useIridescence\", false);\n\t_defineFlag(\"glossInvert\", false);\n\t_defineFlag(\"sheenGlossInvert\", false);\n\t_defineFlag(\"clearCoatGlossInvert\", false);\n\t_defineFlag(\"parallaxMode\", PARALLAX_OFFSET);\n\t_defineFlag(\"opacityDither\", DITHER_NONE);\n\t_defineFlag(\"opacityShadowDither\", DITHER_NONE);\n\t_defineFlag(\"shadowCatcher\", false);\n\t_defineFlag(\"vertexColorGamma\", false);\n\t_defineTex2D(\"diffuse\");\n\t_defineTex2D(\"specular\");\n\t_defineTex2D(\"emissive\");\n\t_defineTex2D(\"thickness\", \"g\");\n\t_defineTex2D(\"specularityFactor\", \"g\");\n\t_defineTex2D(\"normal\", \"\");\n\t_defineTex2D(\"metalness\", \"g\");\n\t_defineTex2D(\"gloss\", \"g\");\n\t_defineTex2D(\"opacity\", \"a\");\n\t_defineTex2D(\"refraction\", \"g\");\n\t_defineTex2D(\"height\", \"g\", false);\n\t_defineTex2D(\"ao\", \"g\");\n\t_defineTex2D(\"light\", \"rgb\", true, 1);\n\t_defineTex2D(\"msdf\", \"\");\n\t_defineTex2D(\"diffuseDetail\", \"rgb\", false);\n\t_defineTex2D(\"normalDetail\", \"\");\n\t_defineTex2D(\"aoDetail\", \"g\", false);\n\t_defineTex2D(\"clearCoat\", \"g\");\n\t_defineTex2D(\"clearCoatGloss\", \"g\");\n\t_defineTex2D(\"clearCoatNormal\", \"\");\n\t_defineTex2D(\"sheen\", \"rgb\");\n\t_defineTex2D(\"sheenGloss\", \"g\");\n\t_defineTex2D(\"iridescence\", \"g\");\n\t_defineTex2D(\"iridescenceThickness\", \"g\");\n\t_defineTex2D(\"anisotropy\", \"\");\n\t_defineFlag(\"diffuseDetailMode\", DETAILMODE_MUL);\n\t_defineFlag(\"aoDetailMode\", DETAILMODE_MUL);\n\t_defineObject(\"cubeMap\");\n\t_defineObject(\"sphereMap\");\n\t_defineObject(\"envAtlas\");\n\tconst getterFunc = function() {\n\t\treturn this._prefilteredCubemaps;\n\t};\n\tconst setterFunc = function(value) {\n\t\tconst cubemaps = this._prefilteredCubemaps;\n\t\tvalue = value || [];\n\t\tlet changed = false;\n\t\tlet complete = true;\n\t\tfor (let i2 = 0; i2 < 6; ++i2) {\n\t\t\tconst v6 = value[i2] || null;\n\t\t\tif (cubemaps[i2] !== v6) {\n\t\t\t\tcubemaps[i2] = v6;\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t\tcomplete = complete && !!cubemaps[i2];\n\t\t}\n\t\tif (changed) {\n\t\t\tif (complete) {\n\t\t\t\tthis.envAtlas = EnvLighting.generatePrefilteredAtlas(cubemaps, {\n\t\t\t\t\ttarget: this.envAtlas\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tif (this.envAtlas) {\n\t\t\t\t\tthis.envAtlas.destroy();\n\t\t\t\t\tthis.envAtlas = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._dirtyShader = true;\n\t\t}\n\t};\n\tconst empty = [null, null, null, null, null, null];\n\tdefinePropInternal(\"prefilteredCubemaps\", () => empty.slice(), setterFunc, getterFunc);\n}\n_defineMaterialProps();\nfunction _defineDeprecatedAlias(newName, oldName) {\n\tObject.defineProperty(StandardMaterial.prototype, oldName, {\n\t\tget: function() {\n\t\t\treturn this[newName];\n\t\t},\n\t\tset: function(value) {\n\t\t\tthis[newName] = value;\n\t\t}\n\t});\n}\nfunction _defineRemovedTint(name) {\n\tObject.defineProperty(StandardMaterial.prototype, name, {\n\t\tget: function() {\n\t\t\treturn true;\n\t\t},\n\t\tset: function(value) {\n\t\t}\n\t});\n}\n_defineRemovedTint(\"sheenTint\");\n_defineRemovedTint(\"diffuseTint\");\n_defineRemovedTint(\"emissiveTint\");\n_defineRemovedTint(\"ambientTint\");\n_defineRemovedTint(\"specularTint\");\n_defineDeprecatedAlias(\"aoVertexColor\", \"aoMapVertexColor\");\n_defineDeprecatedAlias(\"diffuseVertexColor\", \"diffuseMapVertexColor\");\n_defineDeprecatedAlias(\"specularVertexColor\", \"specularMapVertexColor\");\n_defineDeprecatedAlias(\"emissiveVertexColor\", \"emissiveMapVertexColor\");\n_defineDeprecatedAlias(\"metalnessVertexColor\", \"metalnessMapVertexColor\");\n_defineDeprecatedAlias(\"glossVertexColor\", \"glossMapVertexColor\");\n_defineDeprecatedAlias(\"opacityVertexColor\", \"opacityMapVertexColor\");\n_defineDeprecatedAlias(\"lightVertexColor\", \"lightMapVertexColor\");\n_defineDeprecatedAlias(\"sheenGloss\", \"sheenGlossiness\");\n_defineDeprecatedAlias(\"clearCoatGloss\", \"clearCoatGlossiness\");\n\nvar base64String = \"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\";\nvar data = null;\nvar initData = () => {\n\tif (!data) {\n\t\tconst binaryString = atob(base64String);\n\t\tdata = Uint8Array.from(binaryString, (char) => char.charCodeAt(0));\n\t}\n};\nvar blueNoiseData = () => {\n\tinitData();\n\treturn data;\n};\nvar BlueNoise = class {\n\tseed = 0;\n\tconstructor(seed = 0) {\n\t\tthis.seed = seed * 4;\n\t\tinitData();\n\t}\n\t_next() {\n\t\tthis.seed = (this.seed + 4) % data.length;\n\t}\n\tvalue() {\n\t\tthis._next();\n\t\treturn data[this.seed] / 255;\n\t}\n\tvec4(dest = new Vec4()) {\n\t\tthis._next();\n\t\treturn dest.set(data[this.seed], data[this.seed + 1], data[this.seed + 2], data[this.seed + 3]).mulScalar(1 / 255);\n\t}\n};\n\nvar lightCubeDir = [\n\tnew Vec3(-1, 0, 0),\n\tnew Vec3(1, 0, 0),\n\tnew Vec3(0, -1, 0),\n\tnew Vec3(0, 1, 0),\n\tnew Vec3(0, 0, -1),\n\tnew Vec3(0, 0, 1)\n];\nvar LightCube = class {\n\tcolors = new Float32Array(6 * 3);\n\tupdate(ambientLight, lights2) {\n\t\tconst colors = this.colors;\n\t\tconst { r, g, b } = ambientLight;\n\t\tfor (let j = 0; j < 6; j++) {\n\t\t\tcolors[j * 3] = r;\n\t\t\tcolors[j * 3 + 1] = g;\n\t\t\tcolors[j * 3 + 2] = b;\n\t\t}\n\t\tfor (let j = 0; j < lights2.length; j++) {\n\t\t\tconst light = lights2[j];\n\t\t\tif (light._type === LIGHTTYPE_DIRECTIONAL) {\n\t\t\t\tfor (let c2 = 0; c2 < 6; c2++) {\n\t\t\t\t\tconst weight = Math.max(lightCubeDir[c2].dot(light._direction), 0) * light._intensity;\n\t\t\t\t\tconst lightColor = light._color;\n\t\t\t\t\tcolors[c2 * 3] += lightColor.r * weight;\n\t\t\t\t\tcolors[c2 * 3 + 1] += lightColor.g * weight;\n\t\t\t\t\tcolors[c2 * 3 + 2] += lightColor.b * weight;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar createTexture = (device, namePrefix, size, data2) => {\n\tconst texture = new Texture(device, {\n\t\tname: `${namePrefix}${size}`,\n\t\twidth: size,\n\t\theight: size,\n\t\tformat: PIXELFORMAT_RGBA8,\n\t\taddressU: ADDRESS_REPEAT,\n\t\taddressV: ADDRESS_REPEAT,\n\t\ttype: TEXTURETYPE_DEFAULT,\n\t\tmagFilter: FILTER_NEAREST,\n\t\tminFilter: FILTER_NEAREST,\n\t\tanisotropy: 1,\n\t\tmipmaps: false\n\t});\n\ttexture.lock().set(data2);\n\ttexture.unlock();\n\treturn texture;\n};\nvar deviceCacheBlueNoise = new DeviceCache();\nvar getBlueNoiseTexture = (device) => {\n\treturn deviceCacheBlueNoise.get(device, () => {\n\t\tconst data2 = blueNoiseData();\n\t\tconst size = Math.sqrt(data2.length / 4);\n\t\treturn createTexture(device, \"BlueNoise\", size, data2);\n\t});\n};\n\nvar ShadowMap = class _ShadowMap {\n\tconstructor(texture, targets) {\n\t\tthis.texture = texture;\n\t\tthis.cached = false;\n\t\tthis.renderTargets = targets;\n\t}\n\tdestroy() {\n\t\tif (this.texture) {\n\t\t\tthis.texture.destroy();\n\t\t\tthis.texture = null;\n\t\t}\n\t\tconst targets = this.renderTargets;\n\t\tfor (let i2 = 0; i2 < targets.length; i2++) {\n\t\t\ttargets[i2].destroy();\n\t\t}\n\t\tthis.renderTargets.length = 0;\n\t}\n\tstatic create(device, light) {\n\t\tlet shadowMap = null;\n\t\tif (light._type === LIGHTTYPE_OMNI) {\n\t\t\tshadowMap = this.createCubemap(device, light._shadowResolution, light._shadowType);\n\t\t} else {\n\t\t\tshadowMap = this.create2dMap(device, light._shadowResolution, light._shadowType);\n\t\t}\n\t\treturn shadowMap;\n\t}\n\t// creates a shadow map which is used by the light texture atlas for clustered lighting\n\tstatic createAtlas(device, resolution, shadowType) {\n\t\tconst shadowMap = this.create2dMap(device, resolution, shadowType);\n\t\tconst targets = shadowMap.renderTargets;\n\t\tconst rt = targets[0];\n\t\tfor (let i2 = 0; i2 < 5; i2++) {\n\t\t\ttargets.push(rt);\n\t\t}\n\t\treturn shadowMap;\n\t}\n\tstatic create2dMap(device, size, shadowType) {\n\t\tconst shadowInfo = shadowTypeInfo.get(shadowType);\n\t\tlet format = shadowInfo.format;\n\t\tif (format === PIXELFORMAT_R32F && !device.textureFloatRenderable && device.textureHalfFloatRenderable) {\n\t\t\tformat = PIXELFORMAT_R16F;\n\t\t}\n\t\tconst formatName = pixelFormatInfo.get(format)?.name;\n\t\tlet filter = FILTER_LINEAR;\n\t\tif (shadowType === SHADOW_VSM_32F) {\n\t\t\tfilter = device.textureFloatFilterable ? FILTER_LINEAR : FILTER_NEAREST;\n\t\t}\n\t\tif (shadowType === SHADOW_PCSS_32F) {\n\t\t\tfilter = FILTER_NEAREST;\n\t\t}\n\t\tconst texture = new Texture(device, {\n\t\t\tformat,\n\t\t\twidth: size,\n\t\t\theight: size,\n\t\t\tmipmaps: false,\n\t\t\tminFilter: filter,\n\t\t\tmagFilter: filter,\n\t\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE,\n\t\t\tname: `ShadowMap2D_${formatName}`\n\t\t});\n\t\tlet target2 = null;\n\t\tif (shadowInfo?.pcf) {\n\t\t\ttexture.compareOnRead = true;\n\t\t\ttexture.compareFunc = FUNC_LESS;\n\t\t\ttarget2 = new RenderTarget({\n\t\t\t\tdepthBuffer: texture,\n\t\t\t\torigin: RENDERTARGET_ORIGIN_BOTTOM\n\t\t\t});\n\t\t} else {\n\t\t\ttarget2 = new RenderTarget({\n\t\t\t\tcolorBuffer: texture,\n\t\t\t\tdepth: true,\n\t\t\t\torigin: RENDERTARGET_ORIGIN_BOTTOM\n\t\t\t});\n\t\t}\n\t\treturn new _ShadowMap(texture, [target2]);\n\t}\n\tstatic createCubemap(device, size, shadowType) {\n\t\tconst shadowInfo = shadowTypeInfo.get(shadowType);\n\t\tconst formatName = pixelFormatInfo.get(shadowInfo.format)?.name;\n\t\tconst isPcss = shadowType === SHADOW_PCSS_32F;\n\t\tconst filter = isPcss ? FILTER_NEAREST : FILTER_LINEAR;\n\t\tconst cubemap = new Texture(device, {\n\t\t\tformat: shadowInfo?.format,\n\t\t\twidth: size,\n\t\t\theight: size,\n\t\t\tcubemap: true,\n\t\t\tmipmaps: false,\n\t\t\tminFilter: filter,\n\t\t\tmagFilter: filter,\n\t\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE,\n\t\t\tname: `ShadowMapCube_${formatName}`\n\t\t});\n\t\tif (!isPcss) {\n\t\t\tcubemap.compareOnRead = true;\n\t\t\tcubemap.compareFunc = FUNC_LESS;\n\t\t}\n\t\tconst targets = [];\n\t\tfor (let i2 = 0; i2 < 6; i2++) {\n\t\t\tif (isPcss) {\n\t\t\t\ttargets.push(new RenderTarget({\n\t\t\t\t\tcolorBuffer: cubemap,\n\t\t\t\t\tface: i2,\n\t\t\t\t\tdepth: true\n\t\t\t\t}));\n\t\t\t} else {\n\t\t\t\ttargets.push(new RenderTarget({\n\t\t\t\t\tdepthBuffer: cubemap,\n\t\t\t\t\tface: i2\n\t\t\t\t}));\n\t\t\t}\n\t\t}\n\t\treturn new _ShadowMap(cubemap, targets);\n\t}\n};\n\nvar _tempArray = [];\nvar _tempArray2 = [];\nvar _viewport = new Vec4();\nvar _scissor = new Vec4();\nvar Slot = class {\n\tconstructor(rect) {\n\t\tthis.size = Math.floor(rect.w * 1024);\n\t\tthis.used = false;\n\t\tthis.lightId = -1;\n\t\tthis.rect = rect;\n\t}\n};\nvar LightTextureAtlas = class {\n\tconstructor(device) {\n\t\tthis.device = device;\n\t\tthis.version = 1;\n\t\tthis.shadowAtlasResolution = 2048;\n\t\tthis.shadowAtlas = null;\n\t\tthis.shadowEdgePixels = 3;\n\t\tthis.cookieAtlasResolution = 4;\n\t\tthis.cookieAtlas = Texture.createDataTexture2D(this.device, \"CookieAtlas\", this.cookieAtlasResolution, this.cookieAtlasResolution, PIXELFORMAT_SRGBA8);\n\t\tthis.cookieRenderTarget = new RenderTarget({\n\t\t\tcolorBuffer: this.cookieAtlas,\n\t\t\tdepth: false,\n\t\t\torigin: RENDERTARGET_ORIGIN_BOTTOM\n\t\t});\n\t\tthis.slots = [];\n\t\tthis.atlasSplit = [];\n\t\tthis.cubeSlotsOffsets = [\n\t\t\tnew Vec2(0, 0),\n\t\t\tnew Vec2(0, 1),\n\t\t\tnew Vec2(1, 0),\n\t\t\tnew Vec2(1, 1),\n\t\t\tnew Vec2(2, 0),\n\t\t\tnew Vec2(2, 1)\n\t\t];\n\t\tthis.scissorVec = new Vec4();\n\t\tthis.allocateShadowAtlas(1);\n\t\tthis.allocateCookieAtlas(1);\n\t\tthis.allocateUniforms();\n\t}\n\tdestroy() {\n\t\tthis.destroyShadowAtlas();\n\t\tthis.destroyCookieAtlas();\n\t}\n\tdestroyShadowAtlas() {\n\t\tthis.shadowAtlas?.destroy();\n\t\tthis.shadowAtlas = null;\n\t}\n\tdestroyCookieAtlas() {\n\t\tthis.cookieAtlas?.destroy();\n\t\tthis.cookieAtlas = null;\n\t\tthis.cookieRenderTarget?.destroy();\n\t\tthis.cookieRenderTarget = null;\n\t}\n\tallocateShadowAtlas(resolution, shadowType = SHADOW_PCF3_32F) {\n\t\tconst existingFormat = this.shadowAtlas?.texture.format;\n\t\tconst requiredFormat = shadowTypeInfo.get(shadowType).format;\n\t\tif (!this.shadowAtlas || this.shadowAtlas.texture.width !== resolution || existingFormat !== requiredFormat) {\n\t\t\tthis.version++;\n\t\t\tthis.destroyShadowAtlas();\n\t\t\tthis.shadowAtlas = ShadowMap.createAtlas(this.device, resolution, shadowType);\n\t\t\tthis.shadowAtlas.cached = true;\n\t\t\tconst scissorOffset = 4 / this.shadowAtlasResolution;\n\t\t\tthis.scissorVec.set(scissorOffset, scissorOffset, -2 * scissorOffset, -2 * scissorOffset);\n\t\t}\n\t}\n\tallocateCookieAtlas(resolution) {\n\t\tif (this.cookieAtlas.width !== resolution) {\n\t\t\tthis.cookieRenderTarget.resize(resolution, resolution);\n\t\t\tthis.version++;\n\t\t}\n\t}\n\tallocateUniforms() {\n\t\tthis._shadowAtlasTextureId = this.device.scope.resolve(\"shadowAtlasTexture\");\n\t\tthis._shadowAtlasParamsId = this.device.scope.resolve(\"shadowAtlasParams\");\n\t\tthis._shadowAtlasParams = new Float32Array(2);\n\t\tthis._cookieAtlasTextureId = this.device.scope.resolve(\"cookieAtlasTexture\");\n\t}\n\tupdateUniforms() {\n\t\tconst rt = this.shadowAtlas.renderTargets[0];\n\t\tconst shadowBuffer = rt.depthBuffer;\n\t\tthis._shadowAtlasTextureId.setValue(shadowBuffer);\n\t\tthis._shadowAtlasParams[0] = this.shadowAtlasResolution;\n\t\tthis._shadowAtlasParams[1] = this.shadowEdgePixels;\n\t\tthis._shadowAtlasParamsId.setValue(this._shadowAtlasParams);\n\t\tthis._cookieAtlasTextureId.setValue(this.cookieAtlas);\n\t}\n\tsubdivide(numLights, lightingParams) {\n\t\tlet atlasSplit = lightingParams.atlasSplit;\n\t\tif (!atlasSplit) {\n\t\t\tconst gridSize = Math.ceil(Math.sqrt(numLights));\n\t\t\tatlasSplit = _tempArray2;\n\t\t\tatlasSplit[0] = gridSize;\n\t\t\tatlasSplit.length = 1;\n\t\t}\n\t\tconst arraysEqual = (a, b) => a.length === b.length && a.every((v6, i2) => v6 === b[i2]);\n\t\tif (!arraysEqual(atlasSplit, this.atlasSplit)) {\n\t\t\tthis.version++;\n\t\t\tthis.slots.length = 0;\n\t\t\tthis.atlasSplit.length = 0;\n\t\t\tthis.atlasSplit.push(...atlasSplit);\n\t\t\tconst splitCount = this.atlasSplit[0];\n\t\t\tif (splitCount > 1) {\n\t\t\t\tconst invSize = 1 / splitCount;\n\t\t\t\tfor (let i2 = 0; i2 < splitCount; i2++) {\n\t\t\t\t\tfor (let j = 0; j < splitCount; j++) {\n\t\t\t\t\t\tconst rect = new Vec4(i2 * invSize, j * invSize, invSize, invSize);\n\t\t\t\t\t\tconst nextLevelSplit = this.atlasSplit[1 + i2 * splitCount + j];\n\t\t\t\t\t\tif (nextLevelSplit > 1) {\n\t\t\t\t\t\t\tfor (let x3 = 0; x3 < nextLevelSplit; x3++) {\n\t\t\t\t\t\t\t\tfor (let y2 = 0; y2 < nextLevelSplit; y2++) {\n\t\t\t\t\t\t\t\t\tconst invSizeNext = invSize / nextLevelSplit;\n\t\t\t\t\t\t\t\t\tconst rectNext = new Vec4(rect.x + x3 * invSizeNext, rect.y + y2 * invSizeNext, invSizeNext, invSizeNext);\n\t\t\t\t\t\t\t\t\tthis.slots.push(new Slot(rectNext));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.slots.push(new Slot(rect));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.slots.push(new Slot(new Vec4(0, 0, 1, 1)));\n\t\t\t}\n\t\t\tthis.slots.sort((a, b) => {\n\t\t\t\treturn b.size - a.size;\n\t\t\t});\n\t\t}\n\t}\n\tcollectLights(localLights, lightingParams) {\n\t\tconst cookiesEnabled = lightingParams.cookiesEnabled;\n\t\tconst shadowsEnabled = lightingParams.shadowsEnabled;\n\t\tlet needsShadowAtlas = false;\n\t\tlet needsCookieAtlas = false;\n\t\tconst lights2 = _tempArray;\n\t\tlights2.length = 0;\n\t\tconst processLights = (list) => {\n\t\t\tfor (let i2 = 0; i2 < list.length; i2++) {\n\t\t\t\tconst light = list[i2];\n\t\t\t\tif (light.visibleThisFrame) {\n\t\t\t\t\tconst lightShadow = shadowsEnabled && light.castShadows;\n\t\t\t\t\tconst lightCookie = cookiesEnabled && !!light.cookie;\n\t\t\t\t\tneedsShadowAtlas || (needsShadowAtlas = lightShadow);\n\t\t\t\t\tneedsCookieAtlas || (needsCookieAtlas = lightCookie);\n\t\t\t\t\tif (lightShadow || lightCookie) {\n\t\t\t\t\t\tlights2.push(light);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tif (cookiesEnabled || shadowsEnabled) {\n\t\t\tprocessLights(localLights);\n\t\t}\n\t\tlights2.sort((a, b) => {\n\t\t\treturn b.maxScreenSize - a.maxScreenSize;\n\t\t});\n\t\tif (needsShadowAtlas) {\n\t\t\tthis.allocateShadowAtlas(this.shadowAtlasResolution, lightingParams.shadowType);\n\t\t}\n\t\tif (needsCookieAtlas) {\n\t\t\tthis.allocateCookieAtlas(this.cookieAtlasResolution);\n\t\t}\n\t\tif (needsShadowAtlas || needsCookieAtlas) {\n\t\t\tthis.subdivide(lights2.length, lightingParams);\n\t\t}\n\t\treturn lights2;\n\t}\n\t// configure light to use assigned slot\n\tsetupSlot(light, rect) {\n\t\tlight.atlasViewport.copy(rect);\n\t\tconst faceCount = light.numShadowFaces;\n\t\tfor (let face = 0; face < faceCount; face++) {\n\t\t\tif (light.castShadows || light._cookie) {\n\t\t\t\t_viewport.copy(rect);\n\t\t\t\t_scissor.copy(rect);\n\t\t\t\tif (light._type === LIGHTTYPE_SPOT) {\n\t\t\t\t\t_viewport.add(this.scissorVec);\n\t\t\t\t}\n\t\t\t\tif (light._type === LIGHTTYPE_OMNI) {\n\t\t\t\t\tconst smallSize = _viewport.z / 3;\n\t\t\t\t\tconst offset3 = this.cubeSlotsOffsets[face];\n\t\t\t\t\t_viewport.x += smallSize * offset3.x;\n\t\t\t\t\t_viewport.y += smallSize * offset3.y;\n\t\t\t\t\t_viewport.z = smallSize;\n\t\t\t\t\t_viewport.w = smallSize;\n\t\t\t\t\t_scissor.copy(_viewport);\n\t\t\t\t}\n\t\t\t\tif (light.castShadows) {\n\t\t\t\t\tconst lightRenderData = light.getRenderData(null, face);\n\t\t\t\t\tlightRenderData.shadowViewport.copy(_viewport);\n\t\t\t\t\tlightRenderData.shadowScissor.copy(_scissor);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// assign a slot to the light\n\tassignSlot(light, slotIndex, slotReassigned) {\n\t\tlight.atlasViewportAllocated = true;\n\t\tconst slot = this.slots[slotIndex];\n\t\tslot.lightId = light.id;\n\t\tslot.used = true;\n\t\tif (slotReassigned) {\n\t\t\tlight.atlasSlotUpdated = true;\n\t\t\tlight.atlasVersion = this.version;\n\t\t\tlight.atlasSlotIndex = slotIndex;\n\t\t}\n\t}\n\t// update texture atlas for a list of lights\n\tupdate(localLights, lightingParams) {\n\t\tthis.shadowAtlasResolution = lightingParams.shadowAtlasResolution;\n\t\tthis.cookieAtlasResolution = lightingParams.cookieAtlasResolution;\n\t\tconst lights2 = this.collectLights(localLights, lightingParams);\n\t\tif (lights2.length > 0) {\n\t\t\tconst slots = this.slots;\n\t\t\tfor (let i2 = 0; i2 < slots.length; i2++) {\n\t\t\t\tslots[i2].used = false;\n\t\t\t}\n\t\t\tconst assignCount = Math.min(lights2.length, slots.length);\n\t\t\tfor (let i2 = 0; i2 < assignCount; i2++) {\n\t\t\t\tconst light = lights2[i2];\n\t\t\t\tif (light.castShadows) {\n\t\t\t\t\tlight._shadowMap = this.shadowAtlas;\n\t\t\t\t}\n\t\t\t\tconst previousSlot = slots[light.atlasSlotIndex];\n\t\t\t\tif (light.atlasVersion === this.version && light.id === previousSlot?.lightId) {\n\t\t\t\t\tconst previousSlot2 = slots[light.atlasSlotIndex];\n\t\t\t\t\tif (previousSlot2.size === slots[i2].size && !previousSlot2.used) {\n\t\t\t\t\t\tthis.assignSlot(light, light.atlasSlotIndex, false);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tlet usedCount = 0;\n\t\t\tfor (let i2 = 0; i2 < assignCount; i2++) {\n\t\t\t\twhile (usedCount < slots.length && slots[usedCount].used) {\n\t\t\t\t\tusedCount++;\n\t\t\t\t}\n\t\t\t\tconst light = lights2[i2];\n\t\t\t\tif (!light.atlasViewportAllocated) {\n\t\t\t\t\tthis.assignSlot(light, usedCount, true);\n\t\t\t\t}\n\t\t\t\tconst slot = slots[light.atlasSlotIndex];\n\t\t\t\tthis.setupSlot(light, slot.rect);\n\t\t\t}\n\t\t}\n\t\tthis.updateUniforms();\n\t}\n};\n\nvar ShadowMapCache = class {\n\tconstructor() {\n\t\tthis.cache = /* @__PURE__ */ new Map();\n\t}\n\tdestroy() {\n\t\tthis.clear();\n\t\tthis.cache = null;\n\t}\n\t// remove all shadowmaps from the cache\n\tclear() {\n\t\tthis.cache.forEach((shadowMaps) => {\n\t\t\tshadowMaps.forEach((shadowMap) => {\n\t\t\t\tshadowMap.destroy();\n\t\t\t});\n\t\t});\n\t\tthis.cache.clear();\n\t}\n\t// generates a string key for the shadow map required by the light\n\tgetKey(light) {\n\t\tconst isCubeMap = light._type === LIGHTTYPE_OMNI;\n\t\tconst shadowType = light._shadowType;\n\t\tconst resolution = light._shadowResolution;\n\t\treturn `${isCubeMap}-${shadowType}-${resolution}`;\n\t}\n\t// returns shadow map from the cache, or creates a new one if none available\n\tget(device, light) {\n\t\tconst key = this.getKey(light);\n\t\tconst shadowMaps = this.cache.get(key);\n\t\tif (shadowMaps && shadowMaps.length) {\n\t\t\treturn shadowMaps.pop();\n\t\t}\n\t\tconst shadowMap = ShadowMap.create(device, light);\n\t\tshadowMap.cached = true;\n\t\treturn shadowMap;\n\t}\n\t// returns shadow map for the light back to the cache\n\tadd(light, shadowMap) {\n\t\tconst key = this.getKey(light);\n\t\tconst shadowMaps = this.cache.get(key);\n\t\tif (shadowMaps) {\n\t\t\tshadowMaps.push(shadowMap);\n\t\t} else {\n\t\t\tthis.cache.set(key, [shadowMap]);\n\t\t}\n\t}\n};\n\nvar RenderPassShadowLocalNonClustered = class extends RenderPass {\n\tconstructor(device, shadowRenderer, light, face, applyVsm) {\n\t\tsuper(device);\n\t\tthis.requiresCubemaps = false;\n\t\tthis.shadowRenderer = shadowRenderer;\n\t\tthis.light = light;\n\t\tthis.face = face;\n\t\tthis.applyVsm = applyVsm;\n\t\tthis.shadowCamera = shadowRenderer.prepareFace(light, null, face);\n\t\tshadowRenderer.setupRenderPass(this, this.shadowCamera, true);\n\t}\n\texecute() {\n\t\tthis.shadowRenderer.renderFace(this.light, null, this.face, false);\n\t}\n\tafter() {\n\t\tif (this.applyVsm) {\n\t\t\tthis.shadowRenderer.renderVsm(this.light, this.shadowCamera);\n\t\t}\n\t}\n};\n\nvar ShadowRendererLocal = class {\n\t// temporary list to collect lights to render shadows for\n\tshadowLights = [];\n\trenderer;\n\tshadowRenderer;\n\tdevice;\n\tconstructor(renderer, shadowRenderer) {\n\t\tthis.renderer = renderer;\n\t\tthis.shadowRenderer = shadowRenderer;\n\t\tthis.device = renderer.device;\n\t}\n\t// Minimal prerequisite for local shadow-pass creation: ensure the shadow map exists. This is\n\t// caster- and camera-independent, so it can run early in the frame (before the frame graph is\n\t// built and before mesh culling), mirroring ShadowRendererDirectional#prepareShadowMap, so the\n\t// map exists when the frame graph build and the forward pass reference it. Clustered lighting\n\t// uses the shadow atlas, so no per-light map is allocated.\n\tprepareShadowMap(light) {\n\t\tif (!this.renderer.scene.clusteredLightingEnabled && !light._shadowMap) {\n\t\t\tlight._shadowMap = ShadowMap.create(this.device, light);\n\t\t}\n\t}\n\t// cull local shadow map\n\tcull(light, comp, casters = null) {\n\t\tconst isClustered = this.renderer.scene.clusteredLightingEnabled;\n\t\tlight.visibleThisFrame = true;\n\t\tthis.prepareShadowMap(light);\n\t\tconst type = light._type;\n\t\tconst faceCount = type === LIGHTTYPE_SPOT ? 1 : 6;\n\t\tfor (let face = 0; face < faceCount; face++) {\n\t\t\tconst lightRenderData = light.getRenderData(null, face);\n\t\t\tconst shadowCam = lightRenderData.shadowCamera;\n\t\t\tshadowCam.nearClip = light.attenuationEnd / 1e3;\n\t\t\tshadowCam.farClip = light.attenuationEnd;\n\t\t\tconst shadowCamNode = shadowCam._node;\n\t\t\tconst lightNode = light._node;\n\t\t\tshadowCamNode.setPosition(lightNode.getPosition());\n\t\t\tif (type === LIGHTTYPE_SPOT) {\n\t\t\t\tshadowCam.fov = light._outerConeAngle * 2;\n\t\t\t\tshadowCamNode.setRotation(lightNode.getRotation());\n\t\t\t\tshadowCamNode.rotateLocal(-90, 0, 0);\n\t\t\t} else if (type === LIGHTTYPE_OMNI) {\n\t\t\t\tif (isClustered) {\n\t\t\t\t\tconst tileSize = this.shadowRenderer.lightTextureAtlas.shadowAtlasResolution * light.atlasViewport.z / 3;\n\t\t\t\t\tconst texelSize = 2 / tileSize;\n\t\t\t\t\tconst filterSize = texelSize * this.shadowRenderer.lightTextureAtlas.shadowEdgePixels;\n\t\t\t\t\tshadowCam.fov = Math.atan(1 + filterSize) * math.RAD_TO_DEG * 2;\n\t\t\t\t} else {\n\t\t\t\t\tshadowCam.fov = 90;\n\t\t\t\t}\n\t\t\t}\n\t\t\tshadowCam.updateFrustum();\n\t\t\tif (type === LIGHTTYPE_SPOT) {\n\t\t\t\tthis.shadowRenderer.cullShadowCasters(comp, light, lightRenderData.visibleCasters, shadowCam, casters);\n\t\t\t}\n\t\t}\n\t\tif (type === LIGHTTYPE_OMNI) {\n\t\t\tthis.shadowRenderer.cullShadowCastersOmni(comp, light, casters);\n\t\t}\n\t}\n\tprepareLights(shadowLights, lights2) {\n\t\tshadowLights.length = 0;\n\t\tlet shadowCamera;\n\t\tfor (let i2 = 0; i2 < lights2.length; i2++) {\n\t\t\tconst light = lights2[i2];\n\t\t\tif (this.shadowRenderer.needsShadowRendering(light) && light.atlasViewportAllocated) {\n\t\t\t\tshadowLights.push(light);\n\t\t\t\tfor (let face = 0; face < light.numShadowFaces; face++) {\n\t\t\t\t\tshadowCamera = this.shadowRenderer.prepareFace(light, null, face);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn shadowCamera;\n\t}\n\tbuildNonClusteredRenderPasses(frameGraph, localLights) {\n\t\tfor (let i2 = 0; i2 < localLights.length; i2++) {\n\t\t\tconst light = localLights[i2];\n\t\t\tif (this.shadowRenderer.needsShadowRendering(light)) {\n\t\t\t\tconst applyVsm = light._type === LIGHTTYPE_SPOT;\n\t\t\t\tconst faceCount = light.numShadowFaces;\n\t\t\t\tfor (let face = 0; face < faceCount; face++) {\n\t\t\t\t\tconst renderPass = new RenderPassShadowLocalNonClustered(this.device, this.shadowRenderer, light, face, applyVsm);\n\t\t\t\t\tframeGraph.addRenderPass(renderPass);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar RenderPassShadowDirectional = class extends RenderPass {\n\tconstructor(device, shadowRenderer, light, camera, allCascadesRendering) {\n\t\tsuper(device);\n\t\tthis.shadowRenderer = shadowRenderer;\n\t\tthis.light = light;\n\t\tthis.camera = camera;\n\t\tthis.allCascadesRendering = allCascadesRendering;\n\t}\n\texecute() {\n\t\tconst { light, camera, shadowRenderer, allCascadesRendering } = this;\n\t\tconst faceCount = light.numShadowFaces;\n\t\tconst shadowUpdateOverrides = light.shadowUpdateOverrides;\n\t\tfor (let face = 0; face < faceCount; face++) {\n\t\t\tif (shadowUpdateOverrides?.[face] !== SHADOWUPDATE_NONE) {\n\t\t\t\tshadowRenderer.renderFace(light, camera, face, !allCascadesRendering);\n\t\t\t}\n\t\t\tif (shadowUpdateOverrides?.[face] === SHADOWUPDATE_THISFRAME) {\n\t\t\t\tshadowUpdateOverrides[face] = SHADOWUPDATE_NONE;\n\t\t\t}\n\t\t}\n\t}\n\tafter() {\n\t\tthis.shadowRenderer.renderVsm(this.light, this.camera);\n\t}\n};\n\nvar _unionSceneAabb = new BoundingBox();\nvar _cascadeAabbs = [new BoundingBox(), new BoundingBox(), new BoundingBox(), new BoundingBox()];\nvar _cascadeAabbValid = [false, false, false, false];\nvar _cascadeRadii = [0, 0, 0, 0];\nvar center = new Vec3();\nvar shadowCamView = new Mat4();\nvar aabbPoints = [\n\tnew Vec3(),\n\tnew Vec3(),\n\tnew Vec3(),\n\tnew Vec3(),\n\tnew Vec3(),\n\tnew Vec3(),\n\tnew Vec3(),\n\tnew Vec3()\n];\nvar _depthRange = { min: 0, max: 0 };\nfunction getDepthRange(cameraViewMatrix, aabbMin, aabbMax) {\n\taabbPoints[0].x = aabbPoints[1].x = aabbPoints[2].x = aabbPoints[3].x = aabbMin.x;\n\taabbPoints[1].y = aabbPoints[3].y = aabbPoints[7].y = aabbPoints[5].y = aabbMin.y;\n\taabbPoints[2].z = aabbPoints[3].z = aabbPoints[6].z = aabbPoints[7].z = aabbMin.z;\n\taabbPoints[4].x = aabbPoints[5].x = aabbPoints[6].x = aabbPoints[7].x = aabbMax.x;\n\taabbPoints[0].y = aabbPoints[2].y = aabbPoints[4].y = aabbPoints[6].y = aabbMax.y;\n\taabbPoints[0].z = aabbPoints[1].z = aabbPoints[4].z = aabbPoints[5].z = aabbMax.z;\n\tlet minz = 9999999999;\n\tlet maxz = -9999999999;\n\tfor (let i2 = 0; i2 < 8; ++i2) {\n\t\tcameraViewMatrix.transformPoint(aabbPoints[i2], aabbPoints[i2]);\n\t\tconst z2 = aabbPoints[i2].z;\n\t\tif (z2 < minz) minz = z2;\n\t\tif (z2 > maxz) maxz = z2;\n\t}\n\t_depthRange.min = minz;\n\t_depthRange.max = maxz;\n\treturn _depthRange;\n}\nvar ShadowRendererDirectional = class {\n\trenderer;\n\tshadowRenderer;\n\tdevice;\n\tconstructor(renderer, shadowRenderer) {\n\t\tthis.renderer = renderer;\n\t\tthis.shadowRenderer = shadowRenderer;\n\t\tthis.device = renderer.device;\n\t}\n\t// Minimal prerequisite for directional shadow-pass creation: ensure the shadow map exists\n\t// and the light is marked visible. This is caster- and camera-independent, so it can run\n\t// early in the frame (before mesh culling), unlike cull() which sets up the per-cascade\n\t// shadow cameras and culls casters.\n\tprepareShadowMap(light) {\n\t\tlight.visibleThisFrame = true;\n\t\tif (!light._shadowMap) {\n\t\t\tlight._shadowMap = ShadowMap.create(this.device, light);\n\t\t}\n\t}\n\t// cull directional shadow map. prepareShadowMap(light) must have been called first.\n\tcull(light, comp, camera, casters = null) {\n\t\tconst nearDist = camera._nearClip;\n\t\tthis.generateSplitDistances(light, nearDist, Math.min(camera._farClip, light.shadowDistance));\n\t\tconst shadowUpdateOverrides = light.shadowUpdateOverrides;\n\t\tlet numActiveCascades = 0;\n\t\tfor (let cascade = 0; cascade < light.numCascades; cascade++) {\n\t\t\tif (shadowUpdateOverrides?.[cascade] === SHADOWUPDATE_NONE) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tconst lightRenderData = light.getRenderData(camera, cascade);\n\t\t\tconst shadowCam = lightRenderData.shadowCamera;\n\t\t\tshadowCam.renderTarget = light._shadowMap.renderTargets[0];\n\t\t\tlightRenderData.shadowViewport.copy(light.cascades[cascade]);\n\t\t\tlightRenderData.shadowScissor.copy(light.cascades[cascade]);\n\t\t\tconst shadowCamNode = shadowCam._node;\n\t\t\tconst lightNode = light._node;\n\t\t\tshadowCamNode.setPosition(lightNode.getPosition());\n\t\t\tshadowCamNode.setRotation(lightNode.getRotation());\n\t\t\tshadowCamNode.rotateLocal(-90, 0, 0);\n\t\t\tconst frustumNearDist = cascade === 0 ? nearDist : light._shadowCascadeDistances[cascade - 1];\n\t\t\tconst frustumFarDist = light._shadowCascadeDistances[cascade];\n\t\t\tconst frustumPoints = camera.getFrustumCorners(frustumNearDist, frustumFarDist);\n\t\t\tcenter.set(0, 0, 0);\n\t\t\tconst cameraWorldMat = camera.node.getWorldTransform();\n\t\t\tfor (let i2 = 0; i2 < 8; i2++) {\n\t\t\t\tcameraWorldMat.transformPoint(frustumPoints[i2], frustumPoints[i2]);\n\t\t\t\tcenter.add(frustumPoints[i2]);\n\t\t\t}\n\t\t\tcenter.mulScalar(1 / 8);\n\t\t\tlet radius = 0;\n\t\t\tfor (let i2 = 0; i2 < 8; i2++) {\n\t\t\t\tconst dist = frustumPoints[i2].sub(center).length();\n\t\t\t\tif (dist > radius) {\n\t\t\t\t\tradius = dist;\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst right2 = shadowCamNode.right;\n\t\t\tconst up3 = shadowCamNode.up;\n\t\t\tconst lightDir = shadowCamNode.forward;\n\t\t\tconst sizeRatio = 0.25 * light._shadowResolution / radius;\n\t\t\tconst x3 = Math.ceil(center.dot(up3) * sizeRatio) / sizeRatio;\n\t\t\tconst y2 = Math.ceil(center.dot(right2) * sizeRatio) / sizeRatio;\n\t\t\tconst scaledUp = up3.mulScalar(x3);\n\t\t\tconst scaledRight = right2.mulScalar(y2);\n\t\t\tconst dot = center.dot(lightDir);\n\t\t\tconst scaledDir = lightDir.mulScalar(dot);\n\t\t\tcenter.add2(scaledUp, scaledRight).add(scaledDir);\n\t\t\tshadowCamNode.setPosition(center);\n\t\t\tshadowCamNode.translateLocal(0, 0, 1e6);\n\t\t\tshadowCam.nearClip = 0.01;\n\t\t\tshadowCam.farClip = 2e6;\n\t\t\tshadowCam.orthoHeight = radius;\n\t\t\tshadowCam.updateFrustum();\n\t\t\tthis.shadowRenderer.cullShadowCasters(comp, light, lightRenderData.visibleCasters, shadowCam, casters);\n\t\t\tconst cascadeFlag = 1 << cascade;\n\t\t\tconst visibleCasters = lightRenderData.visibleCasters;\n\t\t\tconst origNumVisibleCasters = visibleCasters.length;\n\t\t\tlet numVisibleCasters = 0;\n\t\t\tconst cascadeAabb = _cascadeAabbs[cascade];\n\t\t\tfor (let i2 = 0; i2 < origNumVisibleCasters; i2++) {\n\t\t\t\tconst meshInstance = visibleCasters[i2];\n\t\t\t\tif (meshInstance.shadowCascadeMask & cascadeFlag) {\n\t\t\t\t\tvisibleCasters[numVisibleCasters++] = meshInstance;\n\t\t\t\t\tif (numVisibleCasters === 1) {\n\t\t\t\t\t\tcascadeAabb.copy(meshInstance.aabb);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcascadeAabb.add(meshInstance.aabb);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (origNumVisibleCasters !== numVisibleCasters) {\n\t\t\t\tvisibleCasters.length = numVisibleCasters;\n\t\t\t}\n\t\t\t_cascadeAabbValid[cascade] = numVisibleCasters > 0;\n\t\t\t_cascadeRadii[cascade] = radius;\n\t\t\tnumActiveCascades++;\n\t\t}\n\t\tlet useUnion = false;\n\t\tif (light._isPcss) {\n\t\t\tfor (let cascade = 0; cascade < numActiveCascades; cascade++) {\n\t\t\t\tif (!_cascadeAabbValid[cascade]) continue;\n\t\t\t\tif (!useUnion) {\n\t\t\t\t\t_unionSceneAabb.copy(_cascadeAabbs[cascade]);\n\t\t\t\t\tuseUnion = true;\n\t\t\t\t} else {\n\t\t\t\t\t_unionSceneAabb.add(_cascadeAabbs[cascade]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor (let cascade = 0; cascade < numActiveCascades; cascade++) {\n\t\t\tlet aabbSource;\n\t\t\tif (useUnion) {\n\t\t\t\taabbSource = _unionSceneAabb;\n\t\t\t} else if (_cascadeAabbValid[cascade]) {\n\t\t\t\taabbSource = _cascadeAabbs[cascade];\n\t\t\t} else {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst lightRenderData = light.getRenderData(camera, cascade);\n\t\t\tconst shadowCam = lightRenderData.shadowCamera;\n\t\t\tconst shadowCamNode = shadowCam._node;\n\t\t\tshadowCamView.copy(shadowCamNode.getWorldTransform()).invert();\n\t\t\tconst depthRange = getDepthRange(shadowCamView, aabbSource.getMin(), aabbSource.getMax());\n\t\t\tshadowCamNode.translateLocal(0, 0, depthRange.max + 0.1);\n\t\t\tshadowCam.farClip = depthRange.max - depthRange.min + 0.2;\n\t\t\tlightRenderData.projectionCompensation = _cascadeRadii[cascade];\n\t\t}\n\t}\n\t// function to generate frustum split distances\n\tgenerateSplitDistances(light, nearDist, farDist) {\n\t\tlight._shadowCascadeDistances.fill(farDist);\n\t\tfor (let i2 = 1; i2 < light.numCascades; i2++) {\n\t\t\tconst fraction = i2 / light.numCascades;\n\t\t\tconst linearDist = nearDist + (farDist - nearDist) * fraction;\n\t\t\tconst logDist = nearDist * (farDist / nearDist) ** fraction;\n\t\t\tconst dist = math.lerp(linearDist, logDist, light.cascadeDistribution);\n\t\t\tlight._shadowCascadeDistances[i2 - 1] = dist;\n\t\t}\n\t}\n\tgetLightRenderPass(light, camera) {\n\t\tlet renderPass = null;\n\t\tif (this.shadowRenderer.needsShadowRendering(light)) {\n\t\t\tconst faceCount = light.numShadowFaces;\n\t\t\tconst shadowUpdateOverrides = light.shadowUpdateOverrides;\n\t\t\tlet allCascadesRendering = true;\n\t\t\tlet shadowCamera;\n\t\t\tfor (let face = 0; face < faceCount; face++) {\n\t\t\t\tif (shadowUpdateOverrides?.[face] === SHADOWUPDATE_NONE) {\n\t\t\t\t\tallCascadesRendering = false;\n\t\t\t\t}\n\t\t\t\tshadowCamera = this.shadowRenderer.prepareFace(light, camera, face);\n\t\t\t}\n\t\t\trenderPass = new RenderPassShadowDirectional(this.device, this.shadowRenderer, light, camera, allCascadesRendering);\n\t\t\tthis.shadowRenderer.setupRenderPass(renderPass, shadowCamera, allCascadesRendering);\n\t\t}\n\t\treturn renderPass;\n\t}\n};\n\nvar tempSet = /* @__PURE__ */ new Set();\nvar _faceLists = [];\nvar _faceCameras = [];\nvar shadowCamView2 = new Mat4();\nvar shadowCamViewProj = new Mat4();\nvar pixelOffset = new Float32Array(2);\nvar blurScissorRect = new Vec4(1, 1, 0, 0);\nvar viewportMatrix = new Mat4();\nfunction gauss(x3, sigma) {\n\treturn Math.exp(-(x3 * x3) / (2 * sigma * sigma));\n}\nfunction gaussWeights(kernelSize) {\n\tconst sigma = (kernelSize - 1) / (2 * 3);\n\tconst halfWidth = (kernelSize - 1) * 0.5;\n\tconst values = new Array(kernelSize);\n\tlet sum = 0;\n\tfor (let i2 = 0; i2 < kernelSize; ++i2) {\n\t\tvalues[i2] = gauss(i2 - halfWidth, sigma);\n\t\tsum += values[i2];\n\t}\n\tfor (let i2 = 0; i2 < kernelSize; ++i2) {\n\t\tvalues[i2] /= sum;\n\t}\n\treturn values;\n}\nvar ShadowRenderer = class {\n\tshadowPassCache = [];\n\t_casterLists = [];\n\tconstructor(renderer, lightTextureAtlas) {\n\t\tthis.device = renderer.device;\n\t\tthis.renderer = renderer;\n\t\tthis.lightTextureAtlas = lightTextureAtlas;\n\t\tconst scope = this.device.scope;\n\t\tthis.sourceId = scope.resolve(\"source\");\n\t\tthis.pixelOffsetId = scope.resolve(\"pixelOffset\");\n\t\tthis.weightId = scope.resolve(\"weight[0]\");\n\t\tthis.blurVsmShader = [{}, {}];\n\t\tthis.blurVsmWeights = {};\n\t\tthis.shadowMapLightRadiusId = scope.resolve(\"light_radius\");\n\t\tthis.viewUniformFormat = null;\n\t\tthis.blendStateWrite = new BlendState();\n\t\tthis.blendStateNoWrite = new BlendState();\n\t\tthis.blendStateNoWrite.setColorWrite(false, false, false, false);\n\t}\n\t// creates shadow camera for a light and sets up its constant properties\n\tstatic createShadowCamera(device, shadowType, type, face) {\n\t\tconst shadowCam = LightCamera.create(device, SHADOWCAMERA_NAME, type, face);\n\t\tconst shadowInfo = shadowTypeInfo.get(shadowType);\n\t\tconst isVsm = shadowInfo?.vsm ?? false;\n\t\tconst isPcf = shadowInfo?.pcf ?? false;\n\t\tif (isVsm) {\n\t\t\tshadowCam.clearColor = new Color(0, 0, 0, 0);\n\t\t} else {\n\t\t\tshadowCam.clearColor = new Color(1, 1, 1, 1);\n\t\t}\n\t\tshadowCam.clearDepthBuffer = true;\n\t\tshadowCam.clearStencilBuffer = false;\n\t\tshadowCam.clearColorBuffer = !isPcf;\n\t\treturn shadowCam;\n\t}\n\t_cullShadowCastersInternal(meshInstances, visible, camera) {\n\t\tconst numInstances = meshInstances.length;\n\t\tfor (let i2 = 0; i2 < numInstances; i2++) {\n\t\t\tconst meshInstance = meshInstances[i2];\n\t\t\tif (meshInstance.castShadow) {\n\t\t\t\tif (!meshInstance.cull || meshInstance._isVisible(camera)) {\n\t\t\t\t\tmeshInstance.visibleThisFrame = true;\n\t\t\t\t\tvisible.push(meshInstance);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tcullShadowCasters(comp, light, visible, camera, casters) {\n\t\tthis.renderer.scene?.fire(EVENT_PRECULL, null);\n\t\tvisible.length = 0;\n\t\tconst casterLists = this._collectCasterLists(comp, light, casters);\n\t\tfor (let i2 = 0; i2 < casterLists.length; i2++) {\n\t\t\tthis._cullShadowCastersInternal(casterLists[i2], visible, camera);\n\t\t}\n\t\tvisible.sort(this.sortCompareShader);\n\t\tthis.renderer.scene?.fire(EVENT_POSTCULL, null);\n\t}\n\t_collectCasterLists(comp, light, casters) {\n\t\tconst lists = this._casterLists;\n\t\tlists.length = 0;\n\t\tif (casters) {\n\t\t\tlists.push(casters);\n\t\t} else {\n\t\t\tconst layers = comp.layerList;\n\t\t\tconst len = layers.length;\n\t\t\tfor (let i2 = 0; i2 < len; i2++) {\n\t\t\t\tconst layer = layers[i2];\n\t\t\t\tif (layer._lightsSet.has(light)) {\n\t\t\t\t\tif (!tempSet.has(layer)) {\n\t\t\t\t\t\ttempSet.add(layer);\n\t\t\t\t\t\tlists.push(layer.shadowCasters);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\ttempSet.clear();\n\t\t}\n\t\treturn lists;\n\t}\n\tcullShadowCastersOmni(comp, light, casters) {\n\t\tthis.renderer.scene?.fire(EVENT_PRECULL, null);\n\t\tfor (let face = 0; face < 6; face++) {\n\t\t\tconst lightRenderData = light.getRenderData(null, face);\n\t\t\tconst visible = lightRenderData.visibleCasters;\n\t\t\tvisible.length = 0;\n\t\t\t_faceLists[face] = visible;\n\t\t\t_faceCameras[face] = lightRenderData.shadowCamera;\n\t\t}\n\t\tconst lightPos = light._node.getPosition();\n\t\tconst lightX = lightPos.x;\n\t\tconst lightY = lightPos.y;\n\t\tconst lightZ = lightPos.z;\n\t\tconst shadowCam = _faceCameras[0];\n\t\tconst near = shadowCam.nearClip;\n\t\tconst far = shadowCam.farClip;\n\t\tconst slope = Math.tan(shadowCam.fov * 0.5 * math.DEG_TO_RAD);\n\t\tconst bounds = far * slope;\n\t\tconst casterLists = this._collectCasterLists(comp, light, casters);\n\t\tfor (let listIndex = 0; listIndex < casterLists.length; listIndex++) {\n\t\t\tconst meshInstances = casterLists[listIndex];\n\t\t\tconst numInstances = meshInstances.length;\n\t\t\tfor (let i2 = 0; i2 < numInstances; i2++) {\n\t\t\t\tconst meshInstance = meshInstances[i2];\n\t\t\t\tif (!meshInstance.castShadow) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (!meshInstance.cull || meshInstance.isVisibleFunc) {\n\t\t\t\t\tfor (let face = 0; face < 6; face++) {\n\t\t\t\t\t\tif (!meshInstance.cull || meshInstance._isVisible(_faceCameras[face])) {\n\t\t\t\t\t\t\tmeshInstance.visibleThisFrame = true;\n\t\t\t\t\t\t\t_faceLists[face].push(meshInstance);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (!meshInstance.visible) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst center2 = meshInstance.aabb.center;\n\t\t\t\tconst halfExtents = meshInstance._aabb.halfExtents;\n\t\t\t\tconst ex = halfExtents.x;\n\t\t\t\tconst ey = halfExtents.y;\n\t\t\t\tconst ez = halfExtents.z;\n\t\t\t\tconst x3 = center2.x - lightX;\n\t\t\t\tconst y2 = center2.y - lightY;\n\t\t\t\tconst z2 = center2.z - lightZ;\n\t\t\t\tif (x3 > bounds + ex || x3 < -bounds - ex || y2 > bounds + ey || y2 < -bounds - ey || z2 > bounds + ez || z2 < -bounds - ez) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst slopeX = slope * x3;\n\t\t\t\tconst slopeY = slope * y2;\n\t\t\t\tconst slopeZ = slope * z2;\n\t\t\t\tconst limXY = -(slope * ex + ey);\n\t\t\t\tconst limXZ = -(slope * ex + ez);\n\t\t\t\tconst limYX = -(slope * ey + ex);\n\t\t\t\tconst limYZ = -(slope * ey + ez);\n\t\t\t\tconst limZX = -(slope * ez + ex);\n\t\t\t\tconst limZY = -(slope * ez + ey);\n\t\t\t\tlet visible = false;\n\t\t\t\tif (x3 + ex > near && x3 - ex < far && slopeX - y2 > limXY && slopeX + y2 > limXY && slopeX - z2 > limXZ && slopeX + z2 > limXZ) {\n\t\t\t\t\t_faceLists[0].push(meshInstance);\n\t\t\t\t\tvisible = true;\n\t\t\t\t}\n\t\t\t\tif (-x3 + ex > near && -x3 - ex < far && -slopeX - y2 > limXY && -slopeX + y2 > limXY && -slopeX - z2 > limXZ && -slopeX + z2 > limXZ) {\n\t\t\t\t\t_faceLists[1].push(meshInstance);\n\t\t\t\t\tvisible = true;\n\t\t\t\t}\n\t\t\t\tif (y2 + ey > near && y2 - ey < far && slopeY - x3 > limYX && slopeY + x3 > limYX && slopeY - z2 > limYZ && slopeY + z2 > limYZ) {\n\t\t\t\t\t_faceLists[2].push(meshInstance);\n\t\t\t\t\tvisible = true;\n\t\t\t\t}\n\t\t\t\tif (-y2 + ey > near && -y2 - ey < far && -slopeY - x3 > limYX && -slopeY + x3 > limYX && -slopeY - z2 > limYZ && -slopeY + z2 > limYZ) {\n\t\t\t\t\t_faceLists[3].push(meshInstance);\n\t\t\t\t\tvisible = true;\n\t\t\t\t}\n\t\t\t\tif (z2 + ez > near && z2 - ez < far && slopeZ - x3 > limZX && slopeZ + x3 > limZX && slopeZ - y2 > limZY && slopeZ + y2 > limZY) {\n\t\t\t\t\t_faceLists[4].push(meshInstance);\n\t\t\t\t\tvisible = true;\n\t\t\t\t}\n\t\t\t\tif (-z2 + ez > near && -z2 - ez < far && -slopeZ - x3 > limZX && -slopeZ + x3 > limZX && -slopeZ - y2 > limZY && -slopeZ + y2 > limZY) {\n\t\t\t\t\t_faceLists[5].push(meshInstance);\n\t\t\t\t\tvisible = true;\n\t\t\t\t}\n\t\t\t\tif (visible) {\n\t\t\t\t\tmeshInstance.visibleThisFrame = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor (let face = 0; face < 6; face++) {\n\t\t\t_faceLists[face].sort(this.sortCompareShader);\n\t\t\t_faceLists[face] = null;\n\t\t\t_faceCameras[face] = null;\n\t\t}\n\t\tthis.renderer.scene?.fire(EVENT_POSTCULL, null);\n\t}\n\tsortCompareShader(drawCallA, drawCallB) {\n\t\tconst keyA = drawCallA._sortKeyShadow;\n\t\tconst keyB = drawCallB._sortKeyShadow;\n\t\tif (keyA === keyB) {\n\t\t\treturn drawCallB.mesh.id - drawCallA.mesh.id;\n\t\t}\n\t\treturn keyB - keyA;\n\t}\n\tsetupRenderState(device, light) {\n\t\tconst isClustered = this.renderer.scene.clusteredLightingEnabled;\n\t\tconst useShadowSampler = isClustered ? light._isPcf : (\n\t\t\t// both spot and omni light are using shadow sampler when clustered\n\t\t\tlight._isPcf && light._type !== LIGHTTYPE_OMNI\n\t\t);\n\t\tdevice.setBlendState(useShadowSampler ? this.blendStateNoWrite : this.blendStateWrite);\n\t\tdevice.setDepthState(light.shadowDepthState);\n\t\tdevice.setStencilState(null, null);\n\t}\n\tdispatchUniforms(light, shadowCam, lightRenderData, face) {\n\t\tconst shadowCamNode = shadowCam._node;\n\t\tif (light._type !== LIGHTTYPE_DIRECTIONAL) {\n\t\t\tthis.renderer.dispatchViewPos(shadowCamNode.getPosition());\n\t\t\tthis.shadowMapLightRadiusId.setValue(light.attenuationEnd);\n\t\t}\n\t\tshadowCamView2.setTRS(shadowCamNode.getPosition(), shadowCamNode.getRotation(), Vec3.ONE).invert();\n\t\tshadowCamViewProj.mul2(shadowCam.projectionMatrix, shadowCamView2);\n\t\tconst rectViewport = lightRenderData.shadowViewport;\n\t\tshadowCam.rect = rectViewport;\n\t\tshadowCam.scissorRect = lightRenderData.shadowScissor;\n\t\tviewportMatrix.setViewport(rectViewport.x, rectViewport.y, rectViewport.z, rectViewport.w);\n\t\tlightRenderData.shadowMatrix.mul2(viewportMatrix, shadowCamViewProj);\n\t\tif (light._type === LIGHTTYPE_DIRECTIONAL) {\n\t\t\tlight._shadowMatrixPalette.set(lightRenderData.shadowMatrix.data, face * 16);\n\t\t}\n\t}\n\tgetShadowPass(light) {\n\t\tconst lightType = light._type;\n\t\tconst shadowType = light._shadowType;\n\t\tlet shadowPassInfo = this.shadowPassCache[lightType]?.[shadowType];\n\t\tif (!shadowPassInfo) {\n\t\t\tconst shadowPassName = `ShadowPass_${lightType}_${shadowType}`;\n\t\t\tshadowPassInfo = ShaderPass.get(this.device).allocate(shadowPassName, {\n\t\t\t\tisShadow: true,\n\t\t\t\tlightType,\n\t\t\t\tshadowType\n\t\t\t});\n\t\t\tif (!this.shadowPassCache[lightType]) {\n\t\t\t\tthis.shadowPassCache[lightType] = [];\n\t\t\t}\n\t\t\tthis.shadowPassCache[lightType][shadowType] = shadowPassInfo;\n\t\t}\n\t\treturn shadowPassInfo.index;\n\t}\n\tsubmitCasters(visibleCasters, light, camera) {\n\t\tconst device = this.device;\n\t\tconst renderer = this.renderer;\n\t\tconst scene = renderer.scene;\n\t\tconst shadowPass = this.getShadowPass(light);\n\t\tconst cameraShaderParams = camera.shaderParams;\n\t\tconst flipFactor = camera.renderTarget.flipY ? -1 : 1;\n\t\tconst count = visibleCasters.length;\n\t\tfor (let i2 = 0; i2 < count; i2++) {\n\t\t\tconst meshInstance = visibleCasters[i2];\n\t\t\tconst mesh = meshInstance.mesh;\n\t\t\tconst instancingData = meshInstance.instancingData;\n\t\t\tif (instancingData && instancingData.count <= 0 && !meshInstance.getDrawCommands(camera)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tmeshInstance.ensureMaterial(device);\n\t\t\tconst material = meshInstance.material;\n\t\t\trenderer.setBaseConstants(device, material);\n\t\t\trenderer.setSkinning(device, meshInstance);\n\t\t\tmaterial.prepareForRender(device, scene);\n\t\t\trenderer.setupCullModeAndFrontFace(true, flipFactor, meshInstance);\n\t\t\tmaterial.setParameters(device);\n\t\t\tmeshInstance.setParameters(device);\n\t\t\tconst shaderInstance = meshInstance.getShaderInstance(shadowPass, 0, scene, cameraShaderParams, this.viewUniformFormat);\n\t\t\tconst shadowShader = shaderInstance.shader;\n\t\t\tif (shadowShader.failed) continue;\n\t\t\tmeshInstance._sortKeyShadow = shadowShader.id;\n\t\t\tdevice.setShader(shadowShader);\n\t\t\trenderer.setVertexBuffers(device, mesh);\n\t\t\trenderer.setMorphing(device, meshInstance.morphInstance);\n\t\t\tif (instancingData) {\n\t\t\t\tdevice.setVertexBuffer(instancingData.vertexBuffer);\n\t\t\t}\n\t\t\trenderer.setMeshInstanceMatrices(meshInstance);\n\t\t\trenderer.setupMeshUniformBuffers(shaderInstance);\n\t\t\tconst style = meshInstance.renderStyle;\n\t\t\tconst indirectData = meshInstance.getDrawCommands(camera);\n\t\t\tdevice.draw(mesh.primitive[style], mesh.indexBuffer[style], instancingData?.count, indirectData);\n\t\t\trenderer._shadowDrawCalls++;\n\t\t\tif (instancingData) {\n\t\t\t\trenderer._instancedDrawCalls++;\n\t\t\t}\n\t\t}\n\t}\n\t// Pure predicate - whether the light needs its shadow rendered this frame. Has no side effects:\n\t// the SHADOWUPDATE_THISFRAME -> SHADOWUPDATE_NONE consume and the shadow-map-update stat are\n\t// applied once per frame in Renderer#consumeOneShotShadows, after the frame graph is built and\n\t// shadow casters are culled (so build and cull can both read shadowUpdateMode before it changes).\n\tneedsShadowRendering(light) {\n\t\treturn light.enabled && light.castShadows && light.shadowUpdateMode !== SHADOWUPDATE_NONE && light.visibleThisFrame;\n\t}\n\tgetLightRenderData(light, camera, face) {\n\t\treturn light.getRenderData(light._type === LIGHTTYPE_DIRECTIONAL ? camera : null, face);\n\t}\n\tsetupRenderPass(renderPass, shadowCamera, clearRenderTarget) {\n\t\tconst rt = shadowCamera.renderTarget;\n\t\trenderPass.init(rt);\n\t\trenderPass.depthStencilOps.clearDepthValue = 1;\n\t\trenderPass.depthStencilOps.clearDepth = clearRenderTarget;\n\t\tif (rt.depthBuffer) {\n\t\t\trenderPass.depthStencilOps.storeDepth = true;\n\t\t} else {\n\t\t\trenderPass.colorOps.clearValue.copy(shadowCamera.clearColor);\n\t\t\trenderPass.colorOps.clear = clearRenderTarget;\n\t\t\trenderPass.depthStencilOps.storeDepth = false;\n\t\t}\n\t\trenderPass.requiresCubemaps = false;\n\t}\n\t// prepares render target / render target settings to allow render pass to be set up\n\tprepareFace(light, camera, face) {\n\t\tconst type = light._type;\n\t\tconst lightRenderData = this.getLightRenderData(light, camera, face);\n\t\tconst shadowCam = lightRenderData.shadowCamera;\n\t\tconst renderTargetIndex = type === LIGHTTYPE_DIRECTIONAL ? 0 : face;\n\t\tshadowCam.renderTarget = light._shadowMap.renderTargets[renderTargetIndex];\n\t\treturn shadowCam;\n\t}\n\trenderFace(light, camera, face, clear) {\n\t\tconst device = this.device;\n\t\tconst lightRenderData = this.getLightRenderData(light, camera, face);\n\t\tconst shadowCam = lightRenderData.shadowCamera;\n\t\tthis.dispatchUniforms(light, shadowCam, lightRenderData, face);\n\t\tconst rt = shadowCam.renderTarget;\n\t\tconst renderer = this.renderer;\n\t\trenderer.setCameraUniforms(shadowCam, rt);\n\t\trenderer.setupViewUniformBuffers(this.viewUniformFormat, null);\n\t\trenderer.setupViewport(shadowCam, rt);\n\t\tif (clear) {\n\t\t\trenderer.clear(shadowCam);\n\t\t}\n\t\tthis.setupRenderState(device, light);\n\t\tthis.submitCasters(lightRenderData.visibleCasters, light, shadowCam);\n\t}\n\trenderVsm(light, camera) {\n\t\tif (light._isVsm && light._vsmBlurSize > 1) {\n\t\t\tconst isClustered = this.renderer.scene.clusteredLightingEnabled;\n\t\t\tif (!isClustered || light._type === LIGHTTYPE_DIRECTIONAL) {\n\t\t\t\tthis.applyVsmBlur(light, camera);\n\t\t\t}\n\t\t}\n\t}\n\tgetVsmBlurShader(blurMode, filterSize) {\n\t\tconst cache = this.blurVsmShader;\n\t\tlet blurShader = cache[blurMode][filterSize];\n\t\tif (!blurShader) {\n\t\t\tthis.blurVsmWeights[filterSize] = gaussWeights(filterSize);\n\t\t\tconst defines = /* @__PURE__ */ new Map();\n\t\t\tdefines.set(\"{SAMPLES}\", filterSize);\n\t\t\tif (blurMode === 1) defines.set(\"GAUSS\", \"\");\n\t\t\tblurShader = ShaderUtils.createShader(this.device, {\n\t\t\t\tuniqueName: `blurVsm${blurMode}${filterSize}`,\n\t\t\t\tattributes: { vertex_position: SEMANTIC_POSITION },\n\t\t\t\tvertexChunk: \"fullscreenQuadVS\",\n\t\t\t\tfragmentChunk: \"blurVSMPS\",\n\t\t\t\tfragmentDefines: defines\n\t\t\t});\n\t\t\tcache[blurMode][filterSize] = blurShader;\n\t\t}\n\t\treturn blurShader;\n\t}\n\tapplyVsmBlur(light, camera) {\n\t\tconst device = this.device;\n\t\tdevice.setBlendState(BlendState.NOBLEND);\n\t\tconst lightRenderData = light.getRenderData(light._type === LIGHTTYPE_DIRECTIONAL ? camera : null, 0);\n\t\tconst shadowCam = lightRenderData.shadowCamera;\n\t\tconst origShadowMap = shadowCam.renderTarget;\n\t\tconst tempShadowMap = this.renderer.shadowMapCache.get(device, light);\n\t\tconst tempRt = tempShadowMap.renderTargets[0];\n\t\tconst blurMode = light.vsmBlurMode;\n\t\tconst filterSize = light._vsmBlurSize;\n\t\tconst blurShader = this.getVsmBlurShader(blurMode, filterSize);\n\t\tblurScissorRect.z = light._shadowResolution - 2;\n\t\tblurScissorRect.w = blurScissorRect.z;\n\t\tthis.sourceId.setValue(origShadowMap.colorBuffer);\n\t\tpixelOffset[0] = 1 / light._shadowResolution;\n\t\tpixelOffset[1] = 0;\n\t\tthis.pixelOffsetId.setValue(pixelOffset);\n\t\tif (blurMode === BLUR_GAUSSIAN) this.weightId.setValue(this.blurVsmWeights[filterSize]);\n\t\tdrawQuadWithShader(device, tempRt, blurShader, null, blurScissorRect);\n\t\tthis.sourceId.setValue(tempRt.colorBuffer);\n\t\tpixelOffset[1] = pixelOffset[0];\n\t\tpixelOffset[0] = 0;\n\t\tthis.pixelOffsetId.setValue(pixelOffset);\n\t\tdrawQuadWithShader(device, origShadowMap, blurShader, null, blurScissorRect);\n\t\tthis.renderer.shadowMapCache.add(light, tempShadowMap);\n\t}\n\tinitViewUniformFormat() {\n\t\tif (!this.viewUniformFormat) {\n\t\t\tthis.viewUniformFormat = new UniformBufferFormat(this.device, [\n\t\t\t\tnew UniformFormat(\"matrix_viewProjection\", UNIFORMTYPE_MAT4)\n\t\t\t]);\n\t\t}\n\t}\n\tframeUpdate() {\n\t\tthis.initViewUniformFormat();\n\t}\n};\n\nvar FramePassMultiView = class extends FramePass {\n\tchildren = [];\n\tconstructor(graphicsDevice) {\n\t\tsuper(graphicsDevice);\n\t\tthis.name = \"FramePassMultiView\";\n\t}\n\taddChild(pass) {\n\t\tthis.children.push(pass);\n\t}\n\trender() {\n\t\tif (!this.enabled) return;\n\t\tconst device = this.device;\n\t\tconst subs = device.xrSubImages;\n\t\tconst numViews = subs?.length ?? 0;\n\t\tconst children = this.children;\n\t\tconst childCount = children.length;\n\t\tif (numViews === 0) {\n\t\t\tfor (let c2 = 0; c2 < childCount; c2++) {\n\t\t\t\tchildren[c2].render();\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tconst backBufferImpl = device.backBuffer?.impl;\n\t\tconst savedXrColorTexture = device.xrColorTexture;\n\t\tconst savedColorTexture = backBufferImpl?.assignedColorTexture ?? null;\n\t\tconst savedViewFormat = backBufferImpl?.colorAttachments?.[0]?.format ?? null;\n\t\tfor (let v6 = 0; v6 < numViews; v6++) {\n\t\t\tconst sub = subs[v6];\n\t\t\tdevice.xrCurrentViewIndex = v6;\n\t\t\tdevice.xrColorTexture = sub.colorTexture;\n\t\t\tdevice.xrColorTextureViewDescriptor = sub.viewDescriptor;\n\t\t\tbackBufferImpl?.assignColorTexture?.(sub.colorTexture, sub.viewFormat);\n\t\t\tfor (let c2 = 0; c2 < childCount; c2++) {\n\t\t\t\tchildren[c2].render();\n\t\t\t}\n\t\t}\n\t\tdevice.xrCurrentViewIndex = -1;\n\t\tdevice.xrColorTextureViewDescriptor = null;\n\t\tdevice.xrColorTexture = savedXrColorTexture ?? null;\n\t\tif (backBufferImpl && savedColorTexture && savedViewFormat && backBufferImpl.assignedColorTexture !== savedColorTexture) {\n\t\t\tbackBufferImpl.assignColorTexture(savedColorTexture, savedViewFormat);\n\t\t}\n\t}\n};\n\nvar tempClusterArray = [];\nvar WorldClustersAllocator = class {\n\t_empty = null;\n\t_allocated = [];\n\t_clusters = /* @__PURE__ */ new Map();\n\tconstructor(graphicsDevice) {\n\t\tthis.device = graphicsDevice;\n\t}\n\tdestroy() {\n\t\tif (this._empty) {\n\t\t\tthis._empty.destroy();\n\t\t\tthis._empty = null;\n\t\t}\n\t\tthis._allocated.forEach((cluster) => {\n\t\t\tcluster.destroy();\n\t\t});\n\t\tthis._allocated.length = 0;\n\t\tthis._clusters.clear();\n\t}\n\tget count() {\n\t\treturn this._allocated.length;\n\t}\n\t// returns an empty light cluster object to be used when no lights are used\n\tget empty() {\n\t\tif (!this._empty) {\n\t\t\tconst empty = new WorldClusters(this.device);\n\t\t\tempty.name = \"ClusterEmpty\";\n\t\t\tempty.update([]);\n\t\t\tthis._empty = empty;\n\t\t}\n\t\treturn this._empty;\n\t}\n\t_assignClustersForPass(renderPass) {\n\t\tconst layerRenderSteps = renderPass.layerRenderSteps;\n\t\tif (!layerRenderSteps) {\n\t\t\treturn;\n\t\t}\n\t\tconst count = layerRenderSteps.length;\n\t\tfor (let i2 = 0; i2 < count; i2++) {\n\t\t\tconst step = layerRenderSteps[i2];\n\t\t\tstep.lightClusters = null;\n\t\t\tconst layer = step.layer;\n\t\t\tif (layer.hasClusteredLights && layer.meshInstances.length) {\n\t\t\t\tconst hash = layer.getLightIdHash();\n\t\t\t\tconst existingStep = this._clusters.get(hash);\n\t\t\t\tlet clusters = existingStep?.lightClusters;\n\t\t\t\tif (!clusters) {\n\t\t\t\t\tclusters = tempClusterArray.pop() ?? new WorldClusters(this.device);\n\t\t\t\t\tthis._allocated.push(clusters);\n\t\t\t\t\tthis._clusters.set(hash, step);\n\t\t\t\t}\n\t\t\t\tstep.lightClusters = clusters;\n\t\t\t}\n\t\t\tif (!step.lightClusters) {\n\t\t\t\tstep.lightClusters = this.empty;\n\t\t\t}\n\t\t}\n\t}\n\t// assign light clusters to layer render steps that need it\n\tassign(renderPasses) {\n\t\ttempClusterArray.push(...this._allocated);\n\t\tthis._allocated.length = 0;\n\t\tthis._clusters.clear();\n\t\tconst passCount = renderPasses.length;\n\t\tfor (let p = 0; p < passCount; p++) {\n\t\t\tconst pass = renderPasses[p];\n\t\t\tif (pass instanceof FramePassMultiView) {\n\t\t\t\tconst children = pass.children;\n\t\t\t\tfor (let c2 = 0; c2 < children.length; c2++) {\n\t\t\t\t\tthis._assignClustersForPass(children[c2]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis._assignClustersForPass(pass);\n\t\t\t}\n\t\t}\n\t\ttempClusterArray.forEach((item) => item.destroy());\n\t\ttempClusterArray.length = 0;\n\t}\n\tupdate(renderPasses, lighting) {\n\t\tthis.assign(renderPasses);\n\t\tthis._clusters.forEach((step) => {\n\t\t\tconst layer = step.layer;\n\t\t\tconst cluster = step.lightClusters;\n\t\t\tcluster.update(layer.clusteredLightsSet, lighting);\n\t\t});\n\t}\n};\n\nvar _viewport2 = new Vec4();\nvar _invViewProjMatrices = [];\nvar RenderPassCookieRenderer = class _RenderPassCookieRenderer extends RenderPass {\n\t_quadRenderer2D = null;\n\t_quadRendererCube = null;\n\t_filteredLights = [];\n\t_forceCopy = false;\n\t_evtDeviceRestored = null;\n\tconstructor(device, cubeSlotsOffsets) {\n\t\tsuper(device);\n\t\tthis._cubeSlotsOffsets = cubeSlotsOffsets;\n\t\tthis.requiresCubemaps = false;\n\t\tthis.blitTextureId = device.scope.resolve(\"blitTexture\");\n\t\tthis.invViewProjId = device.scope.resolve(\"invViewProj\");\n\t\tthis._evtDeviceRestored = device.on(\"devicerestored\", this.onDeviceRestored, this);\n\t}\n\tdestroy() {\n\t\tthis._quadRenderer2D?.destroy();\n\t\tthis._quadRenderer2D = null;\n\t\tthis._quadRendererCube?.destroy();\n\t\tthis._quadRendererCube = null;\n\t\tthis._evtDeviceRestored?.off();\n\t\tthis._evtDeviceRestored = null;\n\t}\n\tstatic create(renderTarget, cubeSlotsOffsets) {\n\t\tconst renderPass = new _RenderPassCookieRenderer(renderTarget.device, cubeSlotsOffsets);\n\t\trenderPass.init(renderTarget);\n\t\trenderPass.colorOps.clear = false;\n\t\trenderPass.depthStencilOps.clearDepth = false;\n\t\treturn renderPass;\n\t}\n\tonDeviceRestored() {\n\t\tthis._forceCopy = true;\n\t}\n\tupdate(lights2) {\n\t\tconst filteredLights = this._filteredLights;\n\t\tthis.filter(lights2, filteredLights);\n\t\tthis.executeEnabled = filteredLights.length > 0;\n\t}\n\tfilter(lights2, filteredLights) {\n\t\tfor (let i2 = 0; i2 < lights2.length; i2++) {\n\t\t\tconst light = lights2[i2];\n\t\t\tif (light._type === LIGHTTYPE_DIRECTIONAL) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (!light.atlasViewportAllocated) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst cookieUpdated = light.cookie && light.cookie.uploadVersion !== light.cookieRenderVersion;\n\t\t\tif (!light.atlasSlotUpdated && !cookieUpdated && !this._forceCopy) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (light.enabled && light.cookie && light.visibleThisFrame) {\n\t\t\t\tfilteredLights.push(light);\n\t\t\t}\n\t\t}\n\t\tthis._forceCopy = false;\n\t}\n\tinitInvViewProjMatrices() {\n\t\tif (!_invViewProjMatrices.length) {\n\t\t\tfor (let face = 0; face < 6; face++) {\n\t\t\t\tconst camera = LightCamera.create(this.device, null, LIGHTTYPE_OMNI, face);\n\t\t\t\tconst projMat = camera.projectionMatrix;\n\t\t\t\tconst viewMat2 = camera.node.getLocalTransform().clone().invert();\n\t\t\t\t_invViewProjMatrices[face] = new Mat4().mul2(projMat, viewMat2).invert();\n\t\t\t}\n\t\t}\n\t}\n\tget quadRenderer2D() {\n\t\tif (!this._quadRenderer2D) {\n\t\t\tconst shader = ShaderUtils.createShader(this.device, {\n\t\t\t\tuniqueName: \"cookieRenderer2d\",\n\t\t\t\tattributes: { vertex_position: SEMANTIC_POSITION },\n\t\t\t\tvertexChunk: \"cookieBlitVS\",\n\t\t\t\tfragmentChunk: \"cookieBlit2DPS\"\n\t\t\t});\n\t\t\tthis._quadRenderer2D = new QuadRender(shader);\n\t\t}\n\t\treturn this._quadRenderer2D;\n\t}\n\tget quadRendererCube() {\n\t\tif (!this._quadRendererCube) {\n\t\t\tconst shader = ShaderUtils.createShader(this.device, {\n\t\t\t\tuniqueName: \"cookieRendererCube\",\n\t\t\t\tattributes: { vertex_position: SEMANTIC_POSITION },\n\t\t\t\tvertexChunk: \"cookieBlitVS\",\n\t\t\t\tfragmentChunk: \"cookieBlitCubePS\"\n\t\t\t});\n\t\t\tthis._quadRendererCube = new QuadRender(shader);\n\t\t}\n\t\treturn this._quadRendererCube;\n\t}\n\texecute() {\n\t\tconst device = this.device;\n\t\tdevice.setDrawStates();\n\t\tconst renderTargetWidth = this.renderTarget.colorBuffer.width;\n\t\tconst cubeSlotsOffsets = this._cubeSlotsOffsets;\n\t\tconst filteredLights = this._filteredLights;\n\t\tfor (let i2 = 0; i2 < filteredLights.length; i2++) {\n\t\t\tconst light = filteredLights[i2];\n\t\t\tconst faceCount = light.numShadowFaces;\n\t\t\tconst quad = faceCount > 1 ? this.quadRendererCube : this.quadRenderer2D;\n\t\t\tif (faceCount > 1) {\n\t\t\t\tthis.initInvViewProjMatrices();\n\t\t\t}\n\t\t\tthis.blitTextureId.setValue(light.cookie);\n\t\t\tlight.cookieRenderVersion = light.cookie.uploadVersion;\n\t\t\tfor (let face = 0; face < faceCount; face++) {\n\t\t\t\t_viewport2.copy(light.atlasViewport);\n\t\t\t\tif (faceCount > 1) {\n\t\t\t\t\tconst smallSize = _viewport2.z / 3;\n\t\t\t\t\tconst offset3 = cubeSlotsOffsets[face];\n\t\t\t\t\t_viewport2.x += smallSize * offset3.x;\n\t\t\t\t\t_viewport2.y += smallSize * offset3.y;\n\t\t\t\t\t_viewport2.z = smallSize;\n\t\t\t\t\t_viewport2.w = smallSize;\n\t\t\t\t\tthis.invViewProjId.setValue(_invViewProjMatrices[face].data);\n\t\t\t\t}\n\t\t\t\t_viewport2.mulScalar(renderTargetWidth);\n\t\t\t\tquad.render(_viewport2);\n\t\t\t}\n\t\t}\n\t\tfilteredLights.length = 0;\n\t}\n};\n\nvar RenderPassShadowLocalClustered = class extends RenderPass {\n\tconstructor(device, shadowRenderer, shadowRendererLocal) {\n\t\tsuper(device);\n\t\tthis.requiresCubemaps = false;\n\t\tthis.shadowRenderer = shadowRenderer;\n\t\tthis.shadowRendererLocal = shadowRendererLocal;\n\t}\n\tupdate(localLights) {\n\t\tconst shadowLights = this.shadowRendererLocal.shadowLights;\n\t\tconst shadowCamera = this.shadowRendererLocal.prepareLights(shadowLights, localLights);\n\t\tconst count = shadowLights.length;\n\t\tthis.enabled = count > 0;\n\t\tif (count) {\n\t\t\tthis.shadowRenderer.setupRenderPass(this, shadowCamera, false);\n\t\t}\n\t}\n\texecute() {\n\t\tconst shadowLights = this.shadowRendererLocal.shadowLights;\n\t\tconst count = shadowLights.length;\n\t\tfor (let i2 = 0; i2 < count; i2++) {\n\t\t\tconst light = shadowLights[i2];\n\t\t\tfor (let face = 0; face < light.numShadowFaces; face++) {\n\t\t\t\tthis.shadowRenderer.renderFace(light, null, face, true);\n\t\t\t}\n\t\t}\n\t\tshadowLights.length = 0;\n\t}\n};\n\nvar FramePassUpdateClustered = class extends FramePass {\n\tconstructor(device, renderer, shadowRenderer, shadowRendererLocal, lightTextureAtlas) {\n\t\tsuper(device);\n\t\tthis.renderer = renderer;\n\t\tthis.frameGraph = null;\n\t\tthis.cookiesRenderPass = RenderPassCookieRenderer.create(lightTextureAtlas.cookieRenderTarget, lightTextureAtlas.cubeSlotsOffsets);\n\t\tthis.beforePasses.push(this.cookiesRenderPass);\n\t\tthis.shadowRenderPass = new RenderPassShadowLocalClustered(device, shadowRenderer, shadowRendererLocal);\n\t\tthis.beforePasses.push(this.shadowRenderPass);\n\t}\n\tupdate(frameGraph, shadowsEnabled, cookiesEnabled, lights2, localLights) {\n\t\tthis.frameGraph = frameGraph;\n\t\tthis.cookiesRenderPass.enabled = cookiesEnabled;\n\t\tif (cookiesEnabled) {\n\t\t\tthis.cookiesRenderPass.update(lights2);\n\t\t}\n\t\tthis.shadowRenderPass.enabled = shadowsEnabled;\n\t\tif (shadowsEnabled) {\n\t\t\tthis.shadowRenderPass.update(localLights);\n\t\t}\n\t}\n\tdestroy() {\n\t\tthis.cookiesRenderPass.destroy();\n\t\tthis.cookiesRenderPass = null;\n\t}\n\texecute() {\n\t\tconst { renderer } = this;\n\t\tconst { scene } = renderer;\n\t\trenderer.worldClustersAllocator.update(this.frameGraph.renderPasses, scene.lighting);\n\t}\n};\n\nvar tempSphere = new BoundingSphere();\nvar _tempSet = /* @__PURE__ */ new Set();\nvar Culler = class {\n\tprocessingMeshInstances = /* @__PURE__ */ new Set();\n\t_cullCameras = [];\n\tcameraDirShadowLights = /* @__PURE__ */ new Map();\n\tdirLightShadows = /* @__PURE__ */ new Map();\n\tconstructor(renderer) {\n\t\tthis.renderer = renderer;\n\t}\n\tcullMeshInstances(camera, drawCalls, culledInstances) {\n\t\tconst opaque = culledInstances.opaque;\n\t\topaque.length = 0;\n\t\tconst transparent = culledInstances.transparent;\n\t\ttransparent.length = 0;\n\t\tconst doCull = camera.frustumCulling;\n\t\tconst count = drawCalls.length;\n\t\tfor (let i2 = 0; i2 < count; i2++) {\n\t\t\tconst drawCall = drawCalls[i2];\n\t\t\tif (drawCall.visible) {\n\t\t\t\tconst visible = !doCull || !drawCall.cull || drawCall._isVisible(camera);\n\t\t\t\tif (visible) {\n\t\t\t\t\tdrawCall.visibleThisFrame = true;\n\t\t\t\t\tconst bucket = drawCall.transparent ? transparent : opaque;\n\t\t\t\t\tbucket.push(drawCall);\n\t\t\t\t\tif (drawCall.skinInstance || drawCall.morphInstance || drawCall.gsplatInstance) {\n\t\t\t\t\t\tthis.processingMeshInstances.add(drawCall);\n\t\t\t\t\t\tif (drawCall.gsplatInstance) {\n\t\t\t\t\t\t\tdrawCall.gsplatInstance.cameras.push(camera);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tcullLights(camera, lights2) {\n\t\tconst { scene } = this.renderer;\n\t\tconst clusteredLightingEnabled = scene.clusteredLightingEnabled;\n\t\tconst physicalUnits = scene.physicalUnits;\n\t\tfor (let i2 = 0; i2 < lights2.length; i2++) {\n\t\t\tconst light = lights2[i2];\n\t\t\tif (light.enabled) {\n\t\t\t\tif (light._type !== LIGHTTYPE_DIRECTIONAL) {\n\t\t\t\t\tlight.getBoundingSphere(tempSphere);\n\t\t\t\t\tif (camera.frustum.containsSphere(tempSphere)) {\n\t\t\t\t\t\tlight.visibleThisFrame = true;\n\t\t\t\t\t\tlight.usePhysicalUnits = physicalUnits;\n\t\t\t\t\t\tconst screenSize = camera.getScreenSize(tempSphere);\n\t\t\t\t\t\tlight.maxScreenSize = Math.max(light.maxScreenSize, screenSize);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (!clusteredLightingEnabled) {\n\t\t\t\t\t\t\tif (light.castShadows && !light.shadowMap) {\n\t\t\t\t\t\t\t\tlight.visibleThisFrame = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tlight.usePhysicalUnits = scene.physicalUnits;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tcullShadowmaps(comp) {\n\t\tconst { renderer } = this;\n\t\tconst localLights = renderer.localLights;\n\t\tfor (let i2 = 0; i2 < localLights.length; i2++) {\n\t\t\tconst light = localLights[i2];\n\t\t\tif (light._type !== LIGHTTYPE_DIRECTIONAL) {\n\t\t\t\tif (light.visibleThisFrame && light.castShadows && light.shadowUpdateMode !== SHADOWUPDATE_NONE) {\n\t\t\t\t\trenderer._shadowRendererLocal.cull(light, comp);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis.cameraDirShadowLights.forEach((lightList, camera) => {\n\t\t\tfor (let i2 = 0; i2 < lightList.length; i2++) {\n\t\t\t\trenderer._shadowRendererDirectional.cull(lightList[i2], comp, camera);\n\t\t\t}\n\t\t});\n\t}\n\tconsumeOneShotShadows() {\n\t\tconst { renderer } = this;\n\t\tconst clustered = renderer.scene.clusteredLightingEnabled;\n\t\tconst shadowRenderer = renderer.shadowRenderer;\n\t\tconst localLights = renderer.localLights;\n\t\tfor (let i2 = 0; i2 < localLights.length; i2++) {\n\t\t\tconst light = localLights[i2];\n\t\t\tif (shadowRenderer.needsShadowRendering(light) && (!clustered || light.atlasViewportAllocated)) {\n\t\t\t\trenderer._shadowMapUpdates += light.numShadowFaces;\n\t\t\t\tif (light.shadowUpdateMode === SHADOWUPDATE_THISFRAME) {\n\t\t\t\t\tlight.shadowUpdateMode = SHADOWUPDATE_NONE;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis.cameraDirShadowLights.forEach((lightList) => {\n\t\t\tfor (let i2 = 0; i2 < lightList.length; i2++) {\n\t\t\t\tconst light = lightList[i2];\n\t\t\t\tif (shadowRenderer.needsShadowRendering(light)) {\n\t\t\t\t\trenderer._shadowMapUpdates += light.numShadowFaces;\n\t\t\t\t\tif (light.shadowUpdateMode === SHADOWUPDATE_THISFRAME) {\n\t\t\t\t\t\tlight.shadowUpdateMode = SHADOWUPDATE_NONE;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\tcollectDirectionalShadowLights(comp) {\n\t\tconst { renderer } = this;\n\t\tthis.cameraDirShadowLights.clear();\n\t\tconst cameras = comp.cameras;\n\t\tfor (let i2 = 0; i2 < cameras.length; i2++) {\n\t\t\tconst cameraComponent = cameras[i2];\n\t\t\tif (cameraComponent.enabled) {\n\t\t\t\tconst camera = cameraComponent.camera;\n\t\t\t\tlet lightList;\n\t\t\t\tconst cameraLayers = camera.layers;\n\t\t\t\tfor (let l = 0; l < cameraLayers.length; l++) {\n\t\t\t\t\tconst cameraLayer = comp.getLayerById(cameraLayers[l]);\n\t\t\t\t\tif (cameraLayer) {\n\t\t\t\t\t\tconst layerDirLights = cameraLayer.splitLights[LIGHTTYPE_DIRECTIONAL];\n\t\t\t\t\t\tfor (let j = 0; j < layerDirLights.length; j++) {\n\t\t\t\t\t\t\tconst light = layerDirLights[j];\n\t\t\t\t\t\t\tif (light.castShadows && !_tempSet.has(light)) {\n\t\t\t\t\t\t\t\t_tempSet.add(light);\n\t\t\t\t\t\t\t\tlightList = lightList ?? [];\n\t\t\t\t\t\t\t\tlightList.push(light);\n\t\t\t\t\t\t\t\trenderer._shadowRendererDirectional.prepareShadowMap(light);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (lightList) {\n\t\t\t\t\tthis.cameraDirShadowLights.set(camera, lightList);\n\t\t\t\t}\n\t\t\t\t_tempSet.clear();\n\t\t\t}\n\t\t}\n\t}\n\tupdateLightVisibility(comp) {\n\t\tconst { renderer } = this;\n\t\tconst { scene } = renderer;\n\t\tconst lights2 = renderer.lights;\n\t\tfor (let i2 = 0; i2 < lights2.length; i2++) {\n\t\t\tlights2[i2].beginFrame();\n\t\t}\n\t\tconst numCameras = comp.cameras.length;\n\t\tfor (let i2 = 0; i2 < numCameras; i2++) {\n\t\t\tconst camera = comp.cameras[i2];\n\t\t\tcamera.camera.updateFrustum();\n\t\t\tconst layerIds = camera.layers;\n\t\t\tfor (let j = 0; j < layerIds.length; j++) {\n\t\t\t\tconst layer = comp.getLayerById(layerIds[j]);\n\t\t\t\tif (layer && layer.enabled) {\n\t\t\t\t\tthis.cullLights(camera.camera, layer._lights);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tconst isClustered = scene.clusteredLightingEnabled;\n\t\tif (isClustered) {\n\t\t\trenderer.updateLightTextureAtlas();\n\t\t}\n\t\tconst localLights = renderer.localLights;\n\t\tfor (let i2 = 0; i2 < localLights.length; i2++) {\n\t\t\tconst light = localLights[i2];\n\t\t\tif (light._type !== LIGHTTYPE_DIRECTIONAL) {\n\t\t\t\tif (isClustered) {\n\t\t\t\t\tif (light.atlasSlotUpdated && light.shadowUpdateMode === SHADOWUPDATE_NONE) {\n\t\t\t\t\t\tlight.shadowUpdateMode = SHADOWUPDATE_THISFRAME;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (light.castShadows && light.visibleThisFrame && !light._shadowMap) {\n\t\t\t\t\t\trenderer._shadowRendererLocal.prepareShadowMap(light);\n\t\t\t\t\t\tif (light.shadowUpdateMode === SHADOWUPDATE_NONE) {\n\t\t\t\t\t\t\tlight.shadowUpdateMode = SHADOWUPDATE_THISFRAME;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis.collectDirectionalShadowLights(comp);\n\t}\n\trequestMeshInstanceCull(camera, layer) {\n\t\tif (camera.addCullLayer(layer)) {\n\t\t\tthis._cullCameras.push(camera);\n\t\t}\n\t}\n\texecuteMeshInstanceCull() {\n\t\tconst { renderer } = this;\n\t\tconst { scene } = renderer;\n\t\tconst cameras = this._cullCameras;\n\t\tfor (let i2 = 0; i2 < cameras.length; i2++) {\n\t\t\tconst camera = cameras[i2];\n\t\t\tconst cameraComponent = camera.node?.camera ?? null;\n\t\t\tscene?.fire(EVENT_PRECULL, cameraComponent);\n\t\t\tcamera.updateFrustum();\n\t\t\tfor (const layer of camera.cullLayers) {\n\t\t\t\tthis.cullMeshInstances(camera, layer.meshInstances, layer.getCulledInstances(camera));\n\t\t\t}\n\t\t\tscene?.fire(EVENT_POSTCULL, cameraComponent);\n\t\t\tcamera.clearCullLayers();\n\t\t}\n\t\tcameras.length = 0;\n\t}\n\tcullComposition(comp) {\n\t\tconst { renderer } = this;\n\t\tconst { scene } = renderer;\n\t\tthis.processingMeshInstances.clear();\n\t\trenderer._camerasRendered += comp.cameras.length;\n\t\tthis.executeMeshInstanceCull();\n\t\tthis.cullShadowmaps(comp);\n\t\tscene?.fire(EVENT_CULL_END);\n\t}\n};\n\nvar _skinUpdateIndex = 0;\nvar viewProjMat = new Mat4();\nvar viewInvMat = new Mat4();\nvar viewMat = new Mat4();\nvar viewMat3 = new Mat3();\nvar _tempLightSet = /* @__PURE__ */ new Set();\nvar _tempLayerSet = /* @__PURE__ */ new Set();\nvar _dynamicBindGroup2 = new DynamicBindGroup();\nvar _tempClearColor = [0, 0, 0, 1];\nvar _tempClearOptions = {\n\tcolor: _tempClearColor,\n\tdepth: 1,\n\tstencil: 0,\n\tflags: 0\n};\nvar _haltonSequence = [\n\tnew Vec2(0.5, 0.333333),\n\tnew Vec2(0.25, 0.666667),\n\tnew Vec2(0.75, 0.111111),\n\tnew Vec2(0.125, 0.444444),\n\tnew Vec2(0.625, 0.777778),\n\tnew Vec2(0.375, 0.222222),\n\tnew Vec2(0.875, 0.555556),\n\tnew Vec2(0.0625, 0.888889),\n\tnew Vec2(0.5625, 0.037037),\n\tnew Vec2(0.3125, 0.37037),\n\tnew Vec2(0.8125, 0.703704),\n\tnew Vec2(0.1875, 0.148148),\n\tnew Vec2(0.6875, 0.481481),\n\tnew Vec2(0.4375, 0.814815),\n\tnew Vec2(0.9375, 0.259259),\n\tnew Vec2(0.03125, 0.592593)\n];\nvar _tempProjMat0 = new Mat4();\nvar _tempProjMat1 = new Mat4();\nvar _tempProjMat4 = new Mat4();\nvar _tempProjMat5 = new Mat4();\nvar _tempSet2 = /* @__PURE__ */ new Set();\nvar _tempMeshInstances = [];\nvar _tempMeshInstancesSkinned = [];\nvar Renderer = class {\n\tclustersDebugRendered = false;\n\tscene;\n\tculler;\n\tworldClustersAllocator;\n\tlights = [];\n\tlocalLights = [];\n\t_viewUniformBuffers = /* @__PURE__ */ new WeakMap();\n\t_dynamicViewBindGroup = new DynamicBindGroup();\n\t_viewBindGroups = [];\n\t_viewBindGroupOffsets = [];\n\t_viewOffsetScratch = [0];\n\tblueNoise = new BlueNoise(123);\n\tgsplatDirector = null;\n\tconstructor(graphicsDevice, scene) {\n\t\tthis.device = graphicsDevice;\n\t\tthis.scene = scene;\n\t\tthis.worldClustersAllocator = new WorldClustersAllocator(graphicsDevice);\n\t\tthis.lightTextureAtlas = new LightTextureAtlas(graphicsDevice);\n\t\tthis.shadowMapCache = new ShadowMapCache();\n\t\tthis.shadowRenderer = new ShadowRenderer(this, this.lightTextureAtlas);\n\t\tthis._shadowRendererLocal = new ShadowRendererLocal(this, this.shadowRenderer);\n\t\tthis._shadowRendererDirectional = new ShadowRendererDirectional(this, this.shadowRenderer);\n\t\tthis.culler = new Culler(this);\n\t\tif (this.scene.clusteredLightingEnabled) {\n\t\t\tthis._renderPassUpdateClustered = new FramePassUpdateClustered(\n\t\t\t\tthis.device,\n\t\t\t\tthis,\n\t\t\t\tthis.shadowRenderer,\n\t\t\t\tthis._shadowRendererLocal,\n\t\t\t\tthis.lightTextureAtlas\n\t\t\t);\n\t\t}\n\t\tthis.viewUniformFormat = null;\n\t\tthis._skinTime = 0;\n\t\tthis._morphTime = 0;\n\t\tthis._cullTime = 0;\n\t\tthis._shadowMapTime = 0;\n\t\tthis._lightClustersTime = 0;\n\t\tthis._layerCompositionUpdateTime = 0;\n\t\tthis._shadowDrawCalls = 0;\n\t\tthis._skinDrawCalls = 0;\n\t\tthis._instancedDrawCalls = 0;\n\t\tthis._shadowMapUpdates = 0;\n\t\tthis._numDrawCallsCulled = 0;\n\t\tthis._camerasRendered = 0;\n\t\tthis._lightClusters = 0;\n\t\tthis._gsplatCount = 0;\n\t\tconst scope = graphicsDevice.scope;\n\t\tthis.boneTextureId = scope.resolve(\"texture_poseMap\");\n\t\tthis.modelMatrixId = scope.resolve(\"matrix_model\");\n\t\tthis.normalMatrixId = scope.resolve(\"matrix_normal\");\n\t\tthis.viewInvId = scope.resolve(\"matrix_viewInverse\");\n\t\tthis.viewPos = new Float32Array(3);\n\t\tthis.viewPosId = scope.resolve(\"view_position\");\n\t\tthis.projId = scope.resolve(\"matrix_projection\");\n\t\tthis.projSkyboxId = scope.resolve(\"matrix_projectionSkybox\");\n\t\tthis.viewId = scope.resolve(\"matrix_view\");\n\t\tthis.viewId3 = scope.resolve(\"matrix_view3\");\n\t\tthis.viewProjId = scope.resolve(\"matrix_viewProjection\");\n\t\tthis.flipYId = scope.resolve(\"projectionFlipY\");\n\t\tthis.tbnBasis = scope.resolve(\"tbnBasis\");\n\t\tthis.cameraParams = new Float32Array(4);\n\t\tthis.cameraParamsId = scope.resolve(\"camera_params\");\n\t\tthis.viewportSize = new Float32Array(4);\n\t\tthis.viewportSizeId = scope.resolve(\"viewport_size\");\n\t\tthis.viewIndexId = scope.resolve(\"view_index\");\n\t\tthis.viewIndexId.setValue(0);\n\t\tthis.blueNoiseJitterVersion = 0;\n\t\tthis.blueNoiseJitterVec = new Vec4();\n\t\tthis.blueNoiseJitterData = new Float32Array(4);\n\t\tthis.blueNoiseJitterId = scope.resolve(\"blueNoiseJitter\");\n\t\tthis.blueNoiseTextureId = scope.resolve(\"blueNoiseTex32\");\n\t\tthis.alphaTestId = scope.resolve(\"alpha_ref\");\n\t\tthis.opacityMapId = scope.resolve(\"texture_opacityMap\");\n\t\tthis.exposureId = scope.resolve(\"exposure\");\n\t\tthis.morphPositionTex = scope.resolve(\"morphPositionTex\");\n\t\tthis.morphNormalTex = scope.resolve(\"morphNormalTex\");\n\t\tthis.morphTexParams = scope.resolve(\"morph_tex_params\");\n\t\tthis.lightCube = new LightCube();\n\t\tthis.constantLightCube = scope.resolve(\"lightCube[0]\");\n\t}\n\tdestroy() {\n\t\tthis.shadowRenderer = null;\n\t\tthis._shadowRendererLocal = null;\n\t\tthis._shadowRendererDirectional = null;\n\t\tthis.shadowMapCache.destroy();\n\t\tthis.shadowMapCache = null;\n\t\tthis._renderPassUpdateClustered?.destroy();\n\t\tthis._renderPassUpdateClustered = null;\n\t\tthis.worldClustersAllocator.destroy();\n\t\tthis.worldClustersAllocator = null;\n\t\tthis.lightTextureAtlas.destroy();\n\t\tthis.lightTextureAtlas = null;\n\t\tthis.gsplatDirector?.destroy();\n\t\tthis.gsplatDirector = null;\n\t}\n\tsetupViewport(camera, renderTarget) {\n\t\tconst device = this.device;\n\t\tconst pixelWidth = renderTarget ? renderTarget.width : device.width;\n\t\tconst pixelHeight = renderTarget ? renderTarget.height : device.height;\n\t\tconst rect = camera.rect;\n\t\tlet x3 = Math.floor(rect.x * pixelWidth);\n\t\tlet y2 = Math.floor(rect.y * pixelHeight);\n\t\tlet w = Math.floor(rect.z * pixelWidth);\n\t\tlet h2 = Math.floor(rect.w * pixelHeight);\n\t\tdevice.setViewport(x3, y2, w, h2);\n\t\tif (camera._scissorRectClear) {\n\t\t\tconst scissorRect = camera.scissorRect;\n\t\t\tx3 = Math.floor(scissorRect.x * pixelWidth);\n\t\t\ty2 = Math.floor(scissorRect.y * pixelHeight);\n\t\t\tw = Math.floor(scissorRect.z * pixelWidth);\n\t\t\th2 = Math.floor(scissorRect.w * pixelHeight);\n\t\t}\n\t\tdevice.setScissor(x3, y2, w, h2);\n\t}\n\tsetCameraUniforms(camera, target2) {\n\t\tconst flipY = target2?.flipY;\n\t\tlet viewList = null;\n\t\tif (camera.xrActive) {\n\t\t\tviewList = camera.xrViews;\n\t\t\tcamera.updateViewTransforms();\n\t\t} else {\n\t\t\tlet projMat = camera.projectionMatrix;\n\t\t\tif (camera.calculateProjection) {\n\t\t\t\tcamera.calculateProjection(projMat, VIEW_CENTER);\n\t\t\t}\n\t\t\tlet projMatSkybox = camera.getProjectionMatrixSkybox();\n\t\t\tconst webgpu = this.device.isWebGPU;\n\t\t\tprojMat = Camera.applyShaderProjectionTransform(projMat, _tempProjMat0, flipY, webgpu);\n\t\t\tprojMatSkybox = Camera.applyShaderProjectionTransform(projMatSkybox, _tempProjMat1, flipY, webgpu);\n\t\t\tconst { jitter } = camera;\n\t\t\tlet jitterX = 0;\n\t\t\tlet jitterY = 0;\n\t\t\tif (jitter > 0) {\n\t\t\t\tconst targetWidth = target2 ? target2.width : this.device.width;\n\t\t\t\tconst targetHeight = target2 ? target2.height : this.device.height;\n\t\t\t\tconst offset3 = _haltonSequence[this.device.renderVersion % _haltonSequence.length];\n\t\t\t\tjitterX = jitter * (offset3.x * 2 - 1) / targetWidth;\n\t\t\t\tjitterY = jitter * (offset3.y * 2 - 1) / targetHeight;\n\t\t\t\tprojMat = _tempProjMat4.copy(projMat);\n\t\t\t\tprojMat.data[8] += jitterX;\n\t\t\t\tprojMat.data[9] += jitterY;\n\t\t\t\tprojMatSkybox = _tempProjMat5.copy(projMatSkybox);\n\t\t\t\tprojMatSkybox.data[8] += jitterX;\n\t\t\t\tprojMatSkybox.data[9] += jitterY;\n\t\t\t\tif (this.blueNoiseJitterVersion !== this.device.renderVersion) {\n\t\t\t\t\tthis.blueNoiseJitterVersion = this.device.renderVersion;\n\t\t\t\t\tthis.blueNoise.vec4(this.blueNoiseJitterVec);\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst jitterVec = jitter > 0 ? this.blueNoiseJitterVec : Vec4.ZERO;\n\t\t\tthis.blueNoiseJitterData[0] = jitterVec.x;\n\t\t\tthis.blueNoiseJitterData[1] = jitterVec.y;\n\t\t\tthis.blueNoiseJitterData[2] = jitterVec.z;\n\t\t\tthis.blueNoiseJitterData[3] = jitterVec.w;\n\t\t\tthis.blueNoiseJitterId.setValue(this.blueNoiseJitterData);\n\t\t\tthis.projId.setValue(projMat.data);\n\t\t\tthis.projSkyboxId.setValue(projMatSkybox.data);\n\t\t\tif (camera.calculateTransform) {\n\t\t\t\tcamera.calculateTransform(viewInvMat, VIEW_CENTER);\n\t\t\t} else {\n\t\t\t\tconst pos = camera._node.getPosition();\n\t\t\t\tconst rot = camera._node.getRotation();\n\t\t\t\tviewInvMat.setTRS(pos, rot, Vec3.ONE);\n\t\t\t}\n\t\t\tthis.viewInvId.setValue(viewInvMat.data);\n\t\t\tviewMat.copy(viewInvMat).invert();\n\t\t\tthis.viewId.setValue(viewMat.data);\n\t\t\tviewMat3.setFromMat4(viewMat);\n\t\t\tthis.viewId3.setValue(viewMat3.data);\n\t\t\tviewProjMat.mul2(projMat, viewMat);\n\t\t\tthis.viewProjId.setValue(viewProjMat.data);\n\t\t\tcamera._storeShaderMatrices(viewProjMat, jitterX, jitterY, this.device.renderVersion);\n\t\t\tthis.dispatchViewPos(camera._node.getPosition());\n\t\t\tcamera.frustum.setFromMat4(viewProjMat);\n\t\t}\n\t\tthis.flipYId.setValue(flipY ? -1 : 1);\n\t\tthis.tbnBasis.setValue(this.device.isWebGPU !== !!flipY ? -1 : 1);\n\t\tthis.cameraParamsId.setValue(camera.fillShaderParams(this.cameraParams));\n\t\tconst xrView = camera.xrActive ? camera.xrViews[0] ?? null : null;\n\t\tlet viewportWidth = xrView ? xrView.viewport.z : target2 ? target2.width : this.device.width;\n\t\tlet viewportHeight = xrView ? xrView.viewport.w : target2 ? target2.height : this.device.height;\n\t\tviewportWidth *= camera.rect.z;\n\t\tviewportHeight *= camera.rect.w;\n\t\tthis.viewportSize[0] = viewportWidth;\n\t\tthis.viewportSize[1] = viewportHeight;\n\t\tthis.viewportSize[2] = 1 / viewportWidth;\n\t\tthis.viewportSize[3] = 1 / viewportHeight;\n\t\tthis.viewportSizeId.setValue(this.viewportSize);\n\t\tthis.exposureId.setValue(this.scene.physicalUnits ? camera.getExposure() : this.scene.exposure);\n\t\treturn viewList;\n\t}\n\tclear(camera, clearColor, clearDepth, clearStencil) {\n\t\tconst flags = (clearColor ?? camera._clearColorBuffer ? CLEARFLAG_COLOR : 0) | (clearDepth ?? camera._clearDepthBuffer ? CLEARFLAG_DEPTH : 0) | (clearStencil ?? camera._clearStencilBuffer ? CLEARFLAG_STENCIL : 0);\n\t\tif (flags) {\n\t\t\tconst device = this.device;\n\t\t\tconst c2 = camera._clearColor;\n\t\t\t_tempClearColor[0] = c2.r;\n\t\t\t_tempClearColor[1] = c2.g;\n\t\t\t_tempClearColor[2] = c2.b;\n\t\t\t_tempClearColor[3] = c2.a;\n\t\t\t_tempClearOptions.depth = camera._clearDepth;\n\t\t\t_tempClearOptions.stencil = camera._clearStencil;\n\t\t\t_tempClearOptions.flags = flags;\n\t\t\tdevice.clear(_tempClearOptions);\n\t\t}\n\t}\n\tsetupCullModeAndFrontFace(cullFaces, flipFactor, drawCall) {\n\t\tconst material = drawCall.material;\n\t\tconst flipFaces = flipFactor * drawCall.flipFacesFactor * drawCall.node.worldScaleSign;\n\t\tlet frontFace = material.frontFace;\n\t\tif (flipFaces < 0) {\n\t\t\tfrontFace = frontFace === FRONTFACE_CCW ? FRONTFACE_CW : FRONTFACE_CCW;\n\t\t}\n\t\tthis.device.setCullMode(cullFaces ? material.cull : CULLFACE_NONE);\n\t\tthis.device.setFrontFace(frontFace);\n\t}\n\tsetupCullMode(cullFaces, flipFactor, drawCall) {\n\t\tthis.setupCullModeAndFrontFace(cullFaces, flipFactor, drawCall);\n\t}\n\tsetBaseConstants(device, material) {\n\t\tdevice.setCullMode(material.cull);\n\t\tdevice.setFrontFace(material.frontFace);\n\t\tif (material.opacityMap) {\n\t\t\tthis.opacityMapId.setValue(material.opacityMap);\n\t\t}\n\t\tif (material.opacityMap || material.alphaTest > 0) {\n\t\t\tthis.alphaTestId.setValue(material.alphaTest);\n\t\t}\n\t}\n\tupdateCpuSkinMatrices(drawCalls) {\n\t\t_skinUpdateIndex++;\n\t\tconst drawCallsCount = drawCalls.length;\n\t\tif (drawCallsCount === 0) return;\n\t\tfor (let i2 = 0; i2 < drawCallsCount; i2++) {\n\t\t\tconst si = drawCalls[i2].skinInstance;\n\t\t\tif (si) {\n\t\t\t\tsi.updateMatrices(drawCalls[i2].node, _skinUpdateIndex);\n\t\t\t\tsi._dirty = true;\n\t\t\t}\n\t\t}\n\t}\n\tupdateGpuSkinMatrices(drawCalls) {\n\t\tfor (const drawCall of drawCalls) {\n\t\t\tconst skin = drawCall.skinInstance;\n\t\t\tif (skin && skin._dirty) {\n\t\t\t\tskin.updateMatrixPalette(drawCall.node, _skinUpdateIndex);\n\t\t\t\tskin._dirty = false;\n\t\t\t}\n\t\t}\n\t}\n\tupdateMorphing(drawCalls) {\n\t\tfor (const drawCall of drawCalls) {\n\t\t\tconst morphInst = drawCall.morphInstance;\n\t\t\tif (morphInst && morphInst._dirty) {\n\t\t\t\tmorphInst.update();\n\t\t\t}\n\t\t}\n\t}\n\tupdateGSplats(drawCalls) {\n\t\tfor (const drawCall of drawCalls) {\n\t\t\tdrawCall.gsplatInstance?.update();\n\t\t}\n\t}\n\tgpuUpdate(drawCalls) {\n\t\tthis.updateGpuSkinMatrices(drawCalls);\n\t\tthis.updateMorphing(drawCalls);\n\t\tthis.updateGSplats(drawCalls);\n\t}\n\tsetVertexBuffers(device, mesh) {\n\t\tdevice.setVertexBuffer(mesh.vertexBuffer);\n\t}\n\tsetMorphing(device, morphInstance) {\n\t\tif (morphInstance) {\n\t\t\tmorphInstance.prepareRendering(device);\n\t\t\tdevice.setVertexBuffer(morphInstance.morph.vertexBufferIds);\n\t\t\tthis.morphPositionTex.setValue(morphInstance.texturePositions);\n\t\t\tthis.morphNormalTex.setValue(morphInstance.textureNormals);\n\t\t\tthis.morphTexParams.setValue(morphInstance._textureParams);\n\t\t}\n\t}\n\tsetSkinning(device, meshInstance) {\n\t\tconst skinInstance = meshInstance.skinInstance;\n\t\tif (skinInstance) {\n\t\t\tthis._skinDrawCalls++;\n\t\t\tconst boneTexture = skinInstance.boneTexture;\n\t\t\tthis.boneTextureId.setValue(boneTexture);\n\t\t}\n\t}\n\t// sets Vec3 camera position uniform\n\tdispatchViewPos(position5) {\n\t\tconst vp = this.viewPos;\n\t\tvp[0] = position5.x;\n\t\tvp[1] = position5.y;\n\t\tvp[2] = position5.z;\n\t\tthis.viewPosId.setValue(vp);\n\t}\n\tinitViewUniformFormat(isClustered) {\n\t\tif (!this.viewUniformFormat) {\n\t\t\tconst uniforms = [\n\t\t\t\tnew UniformFormat(\"matrix_view\", UNIFORMTYPE_MAT4),\n\t\t\t\tnew UniformFormat(\"matrix_viewInverse\", UNIFORMTYPE_MAT4),\n\t\t\t\tnew UniformFormat(\"matrix_projection\", UNIFORMTYPE_MAT4),\n\t\t\t\tnew UniformFormat(\"matrix_projectionSkybox\", UNIFORMTYPE_MAT4),\n\t\t\t\tnew UniformFormat(\"matrix_viewProjection\", UNIFORMTYPE_MAT4),\n\t\t\t\tnew UniformFormat(\"matrix_view3\", UNIFORMTYPE_MAT3),\n\t\t\t\tnew UniformFormat(\"cubeMapRotationMatrix\", UNIFORMTYPE_MAT3),\n\t\t\t\tnew UniformFormat(\"view_position\", UNIFORMTYPE_VEC3),\n\t\t\t\tnew UniformFormat(\"viewport_size\", UNIFORMTYPE_VEC4),\n\t\t\t\tnew UniformFormat(\"skyboxIntensity\", UNIFORMTYPE_FLOAT),\n\t\t\t\tnew UniformFormat(\"exposure\", UNIFORMTYPE_FLOAT),\n\t\t\t\tnew UniformFormat(\"view_index\", UNIFORMTYPE_UINT)\n\t\t\t];\n\t\t\tif (isClustered) {\n\t\t\t\tuniforms.push(...[\n\t\t\t\t\tnew UniformFormat(\"clusterCellsCountByBoundsSize\", UNIFORMTYPE_VEC3),\n\t\t\t\t\tnew UniformFormat(\"clusterBoundsMin\", UNIFORMTYPE_VEC3),\n\t\t\t\t\tnew UniformFormat(\"clusterBoundsDelta\", UNIFORMTYPE_VEC3),\n\t\t\t\t\tnew UniformFormat(\"clusterCellsDot\", UNIFORMTYPE_IVEC3),\n\t\t\t\t\tnew UniformFormat(\"clusterCellsMax\", UNIFORMTYPE_IVEC3),\n\t\t\t\t\tnew UniformFormat(\"shadowAtlasParams\", UNIFORMTYPE_VEC2),\n\t\t\t\t\tnew UniformFormat(\"clusterMaxCells\", UNIFORMTYPE_INT),\n\t\t\t\t\tnew UniformFormat(\"numClusteredLights\", UNIFORMTYPE_INT),\n\t\t\t\t\tnew UniformFormat(\"clusterTextureWidth\", UNIFORMTYPE_INT)\n\t\t\t\t]);\n\t\t\t}\n\t\t\tthis.viewUniformFormat = new UniformBufferFormat(this.device, uniforms);\n\t\t}\n\t}\n\tsetupViewUniforms(view, index) {\n\t\tthis.projId.setValue(view.projMat.data);\n\t\tthis.projSkyboxId.setValue(view.projMat.data);\n\t\tthis.viewId.setValue(view.viewOffMat.data);\n\t\tthis.viewInvId.setValue(view.viewInvOffMat.data);\n\t\tthis.viewId3.setValue(view.viewMat3.data);\n\t\tthis.viewProjId.setValue(view.projViewOffMat.data);\n\t\tthis.viewPosId.setValue(view.positionData);\n\t\tthis.viewIndexId.setValue(index);\n\t}\n\tgetViewUniformBuffer(viewUniformFormat) {\n\t\tlet ub = this._viewUniformBuffers.get(viewUniformFormat);\n\t\tif (!ub) {\n\t\t\tub = new UniformBuffer(this.device, viewUniformFormat, false);\n\t\t\tthis._viewUniformBuffers.set(viewUniformFormat, ub);\n\t\t}\n\t\treturn ub;\n\t}\n\tsetupViewUniformBuffers(viewUniformFormat, viewList) {\n\t\tconst { device } = this;\n\t\tconst ub = this.getViewUniformBuffer(viewUniformFormat);\n\t\tif (viewList) {\n\t\t\tconst viewCount = viewList.length;\n\t\t\tfor (let i2 = 0; i2 < viewCount; i2++) {\n\t\t\t\tthis.setupViewUniforms(viewList[i2], i2);\n\t\t\t\tub.update(this._dynamicViewBindGroup);\n\t\t\t\tthis._viewBindGroups[i2] = this._dynamicViewBindGroup.bindGroup;\n\t\t\t\tthis._viewBindGroupOffsets[i2] = this._dynamicViewBindGroup.offsets[0];\n\t\t\t}\n\t\t} else {\n\t\t\tub.update(this._dynamicViewBindGroup);\n\t\t\tdevice.setBindGroup(BINDGROUP_VIEW, this._dynamicViewBindGroup.bindGroup, this._dynamicViewBindGroup.offsets);\n\t\t}\n\t}\n\tsetupMeshUniformBuffers(shaderInstance) {\n\t\tconst device = this.device;\n\t\tif (device.supportsUniformBuffers) {\n\t\t\tconst meshBindGroup = shaderInstance.getBindGroup(device);\n\t\t\tmeshBindGroup.update();\n\t\t\tdevice.setBindGroup(BINDGROUP_MESH, meshBindGroup);\n\t\t\tconst meshUniformBuffer = shaderInstance.getUniformBuffer(device);\n\t\t\tmeshUniformBuffer.update(_dynamicBindGroup2);\n\t\t\tdevice.setBindGroup(BINDGROUP_MESH_UB, _dynamicBindGroup2.bindGroup, _dynamicBindGroup2.offsets);\n\t\t}\n\t}\n\tsetMeshInstanceMatrices(meshInstance, setNormalMatrix = false) {\n\t\tconst modelMatrix = meshInstance.node.worldTransform;\n\t\tthis.modelMatrixId.setValue(modelMatrix.data);\n\t\tif (setNormalMatrix) {\n\t\t\tthis.normalMatrixId.setValue(meshInstance.node.normalMatrix.data);\n\t\t}\n\t}\n\tcollectLights(comp) {\n\t\tthis.lights.length = 0;\n\t\tthis.localLights.length = 0;\n\t\tconst stats = this.scene._stats;\n\t\tconst count = comp.layerList.length;\n\t\tfor (let i2 = 0; i2 < count; i2++) {\n\t\t\tconst layer = comp.layerList[i2];\n\t\t\tif (!_tempLayerSet.has(layer)) {\n\t\t\t\t_tempLayerSet.add(layer);\n\t\t\t\tconst lights2 = layer._lights;\n\t\t\t\tfor (let j = 0; j < lights2.length; j++) {\n\t\t\t\t\tconst light = lights2[j];\n\t\t\t\t\tif (!_tempLightSet.has(light)) {\n\t\t\t\t\t\t_tempLightSet.add(light);\n\t\t\t\t\t\tthis.lights.push(light);\n\t\t\t\t\t\tif (light._type !== LIGHTTYPE_DIRECTIONAL) {\n\t\t\t\t\t\t\tthis.localLights.push(light);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tstats.lights = this.lights.length;\n\t\t_tempLightSet.clear();\n\t\t_tempLayerSet.clear();\n\t}\n\tupdateShaders(drawCalls, onlyLitShaders) {\n\t\tconst count = drawCalls.length;\n\t\tfor (let i2 = 0; i2 < count; i2++) {\n\t\t\tconst mat2 = drawCalls[i2].material;\n\t\t\tif (mat2) {\n\t\t\t\tif (!_tempSet2.has(mat2)) {\n\t\t\t\t\t_tempSet2.add(mat2);\n\t\t\t\t\tif (mat2.getShaderVariant !== Material.prototype.getShaderVariant) {\n\t\t\t\t\t\tif (onlyLitShaders) {\n\t\t\t\t\t\t\tif (!mat2.useLighting || mat2.emitter && !mat2.emitter.lighting) {\n\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmat2.clearVariants();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t_tempSet2.clear();\n\t}\n\tupdateFrameUniforms() {\n\t\tthis.blueNoiseTextureId.setValue(getBlueNoiseTexture(this.device));\n\t}\n\tbeginFrame(comp) {\n\t\tconst scene = this.scene;\n\t\tconst updateShaders = scene.updateShaders || this.device._shadersDirty;\n\t\tlet totalMeshInstances = 0;\n\t\tconst layers = comp.layerList;\n\t\tconst layerCount = layers.length;\n\t\tfor (let i2 = 0; i2 < layerCount; i2++) {\n\t\t\tconst layer = layers[i2];\n\t\t\tconst meshInstances = layer.meshInstances;\n\t\t\tconst count = meshInstances.length;\n\t\t\ttotalMeshInstances += count;\n\t\t\tfor (let j = 0; j < count; j++) {\n\t\t\t\tconst meshInst = meshInstances[j];\n\t\t\t\tmeshInst.visibleThisFrame = false;\n\t\t\t\tif (updateShaders) {\n\t\t\t\t\t_tempMeshInstances.push(meshInst);\n\t\t\t\t}\n\t\t\t\tif (meshInst.skinInstance) {\n\t\t\t\t\t_tempMeshInstancesSkinned.push(meshInst);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (updateShaders) {\n\t\t\tconst onlyLitShaders = !scene.updateShaders || !this.device._shadersDirty;\n\t\t\tthis.updateShaders(_tempMeshInstances, onlyLitShaders);\n\t\t\tscene.updateShaders = false;\n\t\t\tthis.device._shadersDirty = false;\n\t\t\tscene._shaderVersion++;\n\t\t}\n\t\tthis.updateFrameUniforms();\n\t\tthis.updateCpuSkinMatrices(_tempMeshInstancesSkinned);\n\t\t_tempMeshInstances.length = 0;\n\t\t_tempMeshInstancesSkinned.length = 0;\n\t}\n\tupdateLightTextureAtlas() {\n\t\tthis.lightTextureAtlas.update(this.localLights, this.scene.lighting);\n\t}\n\tupdateLayerComposition(comp) {\n\t\tconst len = comp.layerList.length;\n\t\tconst scene = this.scene;\n\t\tconst shaderVersion = scene._shaderVersion;\n\t\tfor (let i2 = 0; i2 < len; i2++) {\n\t\t\tconst layer = comp.layerList[i2];\n\t\t\tlayer._shaderVersion = shaderVersion;\n\t\t}\n\t\tcomp._update();\n\t}\n\tframeUpdate() {\n\t\tthis.clustersDebugRendered = false;\n\t\tthis.initViewUniformFormat(this.scene.clusteredLightingEnabled);\n\t\tthis.culler.dirLightShadows.clear();\n\t}\n};\n\nvar LayerRenderStep = class {\n\tcameraComponent;\n\tlayer;\n\ttransparent;\n\trenderTarget;\n\tlightClusters = null;\n\t// clear flags\n\tclearColor = false;\n\tclearDepth = false;\n\tclearStencil = false;\n\t// true if this is the first render step using its camera\n\tfirstCameraUse = false;\n\t// true if this is the last render step using its camera\n\tlastCameraUse = false;\n\tconstructor(cameraComponent, layer, transparent, renderTarget) {\n\t\tthis.cameraComponent = cameraComponent;\n\t\tthis.layer = layer;\n\t\tthis.transparent = transparent;\n\t\tthis.renderTarget = renderTarget;\n\t}\n\tsetupClears(cameraComponent, layer) {\n\t\tthis.clearColor = cameraComponent?.clearColorBuffer || layer.clearColorBuffer;\n\t\tthis.clearDepth = cameraComponent?.clearDepthBuffer || layer.clearDepthBuffer;\n\t\tthis.clearStencil = cameraComponent?.clearStencilBuffer || layer.clearStencilBuffer;\n\t}\n};\n\nvar RenderPassForward = class extends RenderPass {\n\tlayerComposition;\n\tscene;\n\trenderer;\n\tlayerRenderSteps = [];\n\tgammaCorrection;\n\ttoneMapping;\n\tsceneTextures;\n\tsceneTexturesCamera = null;\n\tclearSceneTextures = false;\n\tnoDepthClear = false;\n\tconstructor(device, layerComposition, scene, renderer) {\n\t\tsuper(device);\n\t\tthis.layerComposition = layerComposition;\n\t\tthis.scene = scene;\n\t\tthis.renderer = renderer;\n\t}\n\tget rendersAnything() {\n\t\treturn this.layerRenderSteps.length > 0;\n\t}\n\taddLayerRenderStep(layerRenderStep) {\n\t\tthis.layerRenderSteps.push(layerRenderStep);\n\t}\n\taddLayer(cameraComponent, layer, transparent, autoClears = true) {\n\t\tconst step = new LayerRenderStep(cameraComponent, layer, transparent, this.renderTarget);\n\t\tif (autoClears) {\n\t\t\tconst firstStep = this.layerRenderSteps.length === 0;\n\t\t\tstep.setupClears(firstStep ? cameraComponent : void 0, layer);\n\t\t}\n\t\tthis.addLayerRenderStep(step);\n\t}\n\tupdateDirectionalShadows() {\n\t\tconst { renderer, layerRenderSteps } = this;\n\t\tfor (let i2 = 0; i2 < layerRenderSteps.length; i2++) {\n\t\t\tconst step = layerRenderSteps[i2];\n\t\t\tconst cameraComponent = step.cameraComponent;\n\t\t\tconst camera = cameraComponent.camera;\n\t\t\tconst shadowDirLights = this.renderer.culler.cameraDirShadowLights.get(camera);\n\t\t\tif (shadowDirLights) {\n\t\t\t\tfor (let l = 0; l < shadowDirLights.length; l++) {\n\t\t\t\t\tconst light = shadowDirLights[l];\n\t\t\t\t\tif (renderer.culler.dirLightShadows.get(light) !== camera) {\n\t\t\t\t\t\trenderer.culler.dirLightShadows.set(light, camera);\n\t\t\t\t\t\tconst shadowPass = renderer._shadowRendererDirectional.getLightRenderPass(light, camera);\n\t\t\t\t\t\tif (shadowPass) {\n\t\t\t\t\t\t\tthis.beforePasses.push(shadowPass);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// Collect before-passes from cameras whose first render step lives in this\n\t// RenderPassForward. Uses the existing firstCameraUse flag (set by LayerComposition)\n\t// to guarantee each camera's before-passes are scheduled exactly once, even when\n\t// multiple RenderPassForward instances reference the same camera (e.g. CameraFrame's\n\t// scenePass vs afterPass). Called after updateDirectionalShadows, so camera\n\t// before-passes execute after the directional shadow passes and can render into the\n\t// freshly updated shadow maps.\n\tupdateCameraBeforePasses() {\n\t\tfor (let i2 = 0; i2 < this.layerRenderSteps.length; i2++) {\n\t\t\tconst step = this.layerRenderSteps[i2];\n\t\t\tif (step.firstCameraUse) {\n\t\t\t\tconst camera = step.cameraComponent?.camera;\n\t\t\t\tif (camera) {\n\t\t\t\t\tconst { beforePasses } = camera;\n\t\t\t\t\tfor (let j = 0; j < beforePasses.length; j++) {\n\t\t\t\t\t\tthis.beforePasses.push(beforePasses[j]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tupdateClears() {\n\t\tconst step = this.layerRenderSteps[0];\n\t\tif (step) {\n\t\t\tconst cameraComponent = step.cameraComponent;\n\t\t\tconst camera = cameraComponent.camera;\n\t\t\tconst fullSizeClearRect = camera.fullSizeClearRect;\n\t\t\tconst colorIndex = this.sceneTextures?.length ? 0 : void 0;\n\t\t\tthis.setClearColor(fullSizeClearRect && step.clearColor ? camera.clearColor : void 0, colorIndex);\n\t\t\tthis.setClearDepth(fullSizeClearRect && step.clearDepth && !this.noDepthClear ? camera.clearDepth : void 0);\n\t\t\tthis.setClearStencil(fullSizeClearRect && step.clearStencil ? camera.clearStencil : void 0);\n\t\t}\n\t}\n\tframeUpdate() {\n\t\tsuper.frameUpdate();\n\t\tthis.updateDirectionalShadows();\n\t\tthis.updateCameraBeforePasses();\n\t\tthis.updateClears();\n\t\tconst { renderer, layerComposition, layerRenderSteps } = this;\n\t\tfor (let i2 = 0; i2 < layerRenderSteps.length; i2++) {\n\t\t\tconst step = layerRenderSteps[i2];\n\t\t\tif (layerComposition.isEnabled(step.layer, step.transparent)) {\n\t\t\t\trenderer.culler.requestMeshInstanceCull(step.cameraComponent.camera, step.layer);\n\t\t\t}\n\t\t}\n\t}\n\tbefore() {\n\t\tconst { layerRenderSteps } = this;\n\t\tif (this.clearSceneTextures) {\n\t\t\tconst { scope } = this.device;\n\t\t\tthis.sceneTextures.forEach((name) => {\n\t\t\t\tscope.resolve(sceneTextureUniformNames[name]).setValue(null);\n\t\t\t});\n\t\t}\n\t\tfor (let i2 = 0; i2 < layerRenderSteps.length; i2++) {\n\t\t\tconst step = layerRenderSteps[i2];\n\t\t\tif (step.firstCameraUse) {\n\t\t\t\tthis.scene.fire(EVENT_PRERENDER, step.cameraComponent);\n\t\t\t}\n\t\t}\n\t}\n\texecute() {\n\t\tconst { layerComposition, layerRenderSteps } = this;\n\t\tfor (let i2 = 0; i2 < layerRenderSteps.length; i2++) {\n\t\t\tconst step = layerRenderSteps[i2];\n\t\t\tconst layer = step.layer;\n\t\t\tif (layerComposition.isEnabled(layer, step.transparent)) {\n\t\t\t\tthis.renderLayerRenderStep(step, i2 === 0);\n\t\t\t}\n\t\t}\n\t}\n\tafter() {\n\t\tconst sceneTextures = this.sceneTextures;\n\t\tif (this.sceneTexturesCamera && sceneTextures?.length) {\n\t\t\tconst { renderTarget } = this;\n\t\t\tfor (let i2 = 0; i2 < sceneTextures.length; i2++) {\n\t\t\t\tconst uniformName = sceneTextureUniformNames[sceneTextures[i2]];\n\t\t\t\tconst texture = renderTarget.getColorBuffer(i2 + 1);\n\t\t\t\tthis.device.scope.resolve(uniformName).setValue(texture);\n\t\t\t\tif (sceneTextures[i2] === SCENETEXTURE_DEPTH) {\n\t\t\t\t\tthis.sceneTexturesCamera.publishSceneDepthMap(texture, this.device.renderVersion);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor (let i2 = 0; i2 < this.layerRenderSteps.length; i2++) {\n\t\t\tconst step = this.layerRenderSteps[i2];\n\t\t\tif (step.lastCameraUse) {\n\t\t\t\tthis.scene.fire(EVENT_POSTRENDER, step.cameraComponent);\n\t\t\t}\n\t\t}\n\t\tthis.beforePasses.length = 0;\n\t}\n\trenderLayerRenderStep(step, firstStep) {\n\t\tconst { renderer, scene } = this;\n\t\tconst device = renderer.device;\n\t\tconst { layer, transparent, cameraComponent } = step;\n\t\tif (cameraComponent) {\n\t\t\tconst originalGammaCorrection = cameraComponent.gammaCorrection;\n\t\t\tconst originalToneMapping = cameraComponent.toneMapping;\n\t\t\tconst originalSceneTextures = cameraComponent.shaderParams.sceneTextures;\n\t\t\tif (this.sceneTextures !== void 0) cameraComponent.shaderParams.sceneTextures = this.sceneTextures;\n\t\t\tif (this.gammaCorrection !== void 0) cameraComponent.gammaCorrection = this.gammaCorrection;\n\t\t\tif (this.toneMapping !== void 0) cameraComponent.toneMapping = this.toneMapping;\n\t\t\tscene.fire(EVENT_PRERENDER_LAYER, cameraComponent, layer, transparent);\n\t\t\tconst options2 = {\n\t\t\t\tlightClusters: step.lightClusters\n\t\t\t};\n\t\t\tconst shaderPass = cameraComponent.camera.shaderPassInfo?.index ?? SHADER_FORWARD;\n\t\t\tif (!firstStep || !cameraComponent.camera.fullSizeClearRect) {\n\t\t\t\toptions2.clearColor = step.clearColor;\n\t\t\t\toptions2.clearDepth = step.clearDepth;\n\t\t\t\toptions2.clearStencil = step.clearStencil;\n\t\t\t}\n\t\t\tconst renderTarget = step.renderTarget ?? device.backBuffer;\n\t\t\trenderer.renderForwardLayer(\n\t\t\t\tcameraComponent.camera,\n\t\t\t\trenderTarget,\n\t\t\t\tlayer,\n\t\t\t\ttransparent,\n\t\t\t\tshaderPass,\n\t\t\t\toptions2\n\t\t\t);\n\t\t\tdevice.setBlendState(BlendState.NOBLEND);\n\t\t\tdevice.setStencilState(null, null);\n\t\t\tdevice.setAlphaToCoverage(false);\n\t\t\tscene.fire(EVENT_POSTRENDER_LAYER, cameraComponent, layer, transparent);\n\t\t\tif (this.gammaCorrection !== void 0) cameraComponent.gammaCorrection = originalGammaCorrection;\n\t\t\tif (this.toneMapping !== void 0) cameraComponent.toneMapping = originalToneMapping;\n\t\t\tif (this.sceneTextures !== void 0) cameraComponent.shaderParams.sceneTextures = originalSceneTextures;\n\t\t}\n\t}\n};\n\nvar FramePassPostprocessing = class extends FramePass {\n\tconstructor(device, renderer, renderAction) {\n\t\tsuper(device);\n\t\tthis.renderer = renderer;\n\t\tthis.renderAction = renderAction;\n\t}\n\texecute() {\n\t\tconst renderAction = this.renderAction;\n\t\tconst camera = renderAction.camera;\n\t\tcamera.onPostprocessing();\n\t}\n};\n\nvar _noWrite = new BlendState();\nvar _caches = [];\nfunction getSingleAttachmentBlendState(blendState, attachmentCount) {\n\tif (blendState.hasAttachmentOverrides) {\n\t\treturn blendState;\n\t}\n\tconst cache = _caches[attachmentCount] ?? (_caches[attachmentCount] = /* @__PURE__ */ new Map());\n\tconst key = blendState.key;\n\tlet masked = cache.get(key);\n\tif (!masked) {\n\t\t_noWrite.copy(blendState);\n\t\t_noWrite.setColorWrite(false, false, false, false);\n\t\tmasked = blendState.clone();\n\t\tfor (let i2 = 1; i2 < attachmentCount; i2++) {\n\t\t\tmasked.setAttachment(i2, _noWrite);\n\t\t}\n\t\tcache.set(key, masked);\n\t}\n\treturn masked;\n}\n\nvar _noLights = [[], [], []];\nvar tmpColor = new Color();\nvar _drawCallList = {\n\tdrawCalls: [],\n\tshaderInstances: [],\n\tisNewMaterial: [],\n\tlightMaskChanged: [],\n\tclear: function() {\n\t\tthis.drawCalls.length = 0;\n\t\tthis.shaderInstances.length = 0;\n\t\tthis.isNewMaterial.length = 0;\n\t\tthis.lightMaskChanged.length = 0;\n\t}\n};\nfunction vogelDiskPrecalculationSamples(numSamples) {\n\tconst samples = [];\n\tfor (let i2 = 0; i2 < numSamples; ++i2) {\n\t\tconst r = Math.sqrt(i2 + 0.5) / Math.sqrt(numSamples);\n\t\tsamples.push(r);\n\t}\n\treturn samples;\n}\nfunction vogelSpherePrecalculationSamples(numSamples) {\n\tconst samples = [];\n\tfor (let i2 = 0; i2 < numSamples; i2++) {\n\t\tconst weight = i2 / numSamples;\n\t\tconst radius = Math.sqrt(weight * weight);\n\t\tsamples.push(radius);\n\t}\n\treturn samples;\n}\nvar ForwardRenderer = class extends Renderer {\n\tconstructor(graphicsDevice, scene) {\n\t\tsuper(graphicsDevice, scene);\n\t\tconst device = this.device;\n\t\tthis._forwardDrawCalls = 0;\n\t\tthis._materialSwitches = 0;\n\t\tthis._depthMapTime = 0;\n\t\tthis._forwardTime = 0;\n\t\tthis._sortTime = 0;\n\t\tconst scope = device.scope;\n\t\tthis.fogColorId = scope.resolve(\"fog_color\");\n\t\tthis.fogStartId = scope.resolve(\"fog_start\");\n\t\tthis.fogEndId = scope.resolve(\"fog_end\");\n\t\tthis.fogDensityId = scope.resolve(\"fog_density\");\n\t\tthis.ambientId = scope.resolve(\"light_globalAmbient\");\n\t\tthis.skyboxIntensityId = scope.resolve(\"skyboxIntensity\");\n\t\tthis.cubeMapRotationMatrixId = scope.resolve(\"cubeMapRotationMatrix\");\n\t\tthis.pcssDiskSamplesId = scope.resolve(\"pcssDiskSamples[0]\");\n\t\tthis.pcssSphereSamplesId = scope.resolve(\"pcssSphereSamples[0]\");\n\t\tthis.lightColorId = [];\n\t\tthis.lightDir = [];\n\t\tthis.lightDirId = [];\n\t\tthis.lightShadowMapId = [];\n\t\tthis.lightShadowMatrixId = [];\n\t\tthis.lightShadowParamsId = [];\n\t\tthis.lightShadowIntensity = [];\n\t\tthis.lightRadiusId = [];\n\t\tthis.lightPos = [];\n\t\tthis.lightPosId = [];\n\t\tthis.lightWidth = [];\n\t\tthis.lightWidthId = [];\n\t\tthis.lightHeight = [];\n\t\tthis.lightHeightId = [];\n\t\tthis.lightInAngleId = [];\n\t\tthis.lightOutAngleId = [];\n\t\tthis.lightCookieId = [];\n\t\tthis.lightCookieIntId = [];\n\t\tthis.lightCookieMatrixId = [];\n\t\tthis.lightCookieOffsetId = [];\n\t\tthis.lightShadowSearchAreaId = [];\n\t\tthis.lightCameraParamsId = [];\n\t\tthis.lightSoftShadowParamsId = [];\n\t\tthis.shadowMatrixPaletteId = [];\n\t\tthis.shadowCascadeDistancesId = [];\n\t\tthis.shadowCascadeCountId = [];\n\t\tthis.shadowCascadeBlendId = [];\n\t\tthis.shadowCascadeRadiiId = [];\n\t\tthis.screenSizeId = scope.resolve(\"uScreenSize\");\n\t\tthis._screenSize = new Float32Array(4);\n\t\tthis.fogColor = new Float32Array(3);\n\t\tthis.ambientColor = new Float32Array(3);\n\t\tthis.pcssDiskSamples = vogelDiskPrecalculationSamples(16);\n\t\tthis.pcssSphereSamples = vogelSpherePrecalculationSamples(16);\n\t}\n\tdestroy() {\n\t\tsuper.destroy();\n\t}\n\tdispatchGlobalLights(scene) {\n\t\tconst ambientUniform = this.ambientColor;\n\t\ttmpColor.linear(scene.ambientLight);\n\t\tambientUniform[0] = tmpColor.r;\n\t\tambientUniform[1] = tmpColor.g;\n\t\tambientUniform[2] = tmpColor.b;\n\t\tif (scene.physicalUnits) {\n\t\t\tfor (let i2 = 0; i2 < 3; i2++) {\n\t\t\t\tambientUniform[i2] *= scene.ambientLuminance;\n\t\t\t}\n\t\t}\n\t\tthis.ambientId.setValue(ambientUniform);\n\t\tthis.skyboxIntensityId.setValue(scene.physicalUnits ? scene.skyboxLuminance : scene.skyboxIntensity);\n\t\tthis.cubeMapRotationMatrixId.setValue(scene._skyboxRotationMat3.data);\n\t}\n\t_resolveLight(scope, i2) {\n\t\tconst light = `light${i2}`;\n\t\tthis.lightColorId[i2] = scope.resolve(`${light}_color`);\n\t\tthis.lightDir[i2] = new Float32Array(3);\n\t\tthis.lightDirId[i2] = scope.resolve(`${light}_direction`);\n\t\tthis.lightShadowMapId[i2] = scope.resolve(`${light}_shadowMap`);\n\t\tthis.lightShadowMatrixId[i2] = scope.resolve(`${light}_shadowMatrix`);\n\t\tthis.lightShadowParamsId[i2] = scope.resolve(`${light}_shadowParams`);\n\t\tthis.lightShadowIntensity[i2] = scope.resolve(`${light}_shadowIntensity`);\n\t\tthis.lightShadowSearchAreaId[i2] = scope.resolve(`${light}_shadowSearchArea`);\n\t\tthis.lightRadiusId[i2] = scope.resolve(`${light}_radius`);\n\t\tthis.lightPos[i2] = new Float32Array(3);\n\t\tthis.lightPosId[i2] = scope.resolve(`${light}_position`);\n\t\tthis.lightWidth[i2] = new Float32Array(3);\n\t\tthis.lightWidthId[i2] = scope.resolve(`${light}_halfWidth`);\n\t\tthis.lightHeight[i2] = new Float32Array(3);\n\t\tthis.lightHeightId[i2] = scope.resolve(`${light}_halfHeight`);\n\t\tthis.lightInAngleId[i2] = scope.resolve(`${light}_innerConeAngle`);\n\t\tthis.lightOutAngleId[i2] = scope.resolve(`${light}_outerConeAngle`);\n\t\tthis.lightCookieId[i2] = scope.resolve(`${light}_cookie`);\n\t\tthis.lightCookieIntId[i2] = scope.resolve(`${light}_cookieIntensity`);\n\t\tthis.lightCookieMatrixId[i2] = scope.resolve(`${light}_cookieMatrix`);\n\t\tthis.lightCookieOffsetId[i2] = scope.resolve(`${light}_cookieOffset`);\n\t\tthis.lightCameraParamsId[i2] = scope.resolve(`${light}_cameraParams`);\n\t\tthis.lightSoftShadowParamsId[i2] = scope.resolve(`${light}_softShadowParams`);\n\t\tthis.shadowMatrixPaletteId[i2] = scope.resolve(`${light}_shadowMatrixPalette[0]`);\n\t\tthis.shadowCascadeDistancesId[i2] = scope.resolve(`${light}_shadowCascadeDistances`);\n\t\tthis.shadowCascadeCountId[i2] = scope.resolve(`${light}_shadowCascadeCount`);\n\t\tthis.shadowCascadeBlendId[i2] = scope.resolve(`${light}_shadowCascadeBlend`);\n\t\tthis.shadowCascadeRadiiId[i2] = scope.resolve(`${light}_shadowCascadeRadii`);\n\t}\n\tsetLTCDirectionalLight(wtm, cnt, dir4, campos, far) {\n\t\tthis.lightPos[cnt][0] = campos.x - dir4.x * far;\n\t\tthis.lightPos[cnt][1] = campos.y - dir4.y * far;\n\t\tthis.lightPos[cnt][2] = campos.z - dir4.z * far;\n\t\tthis.lightPosId[cnt].setValue(this.lightPos[cnt]);\n\t\tconst hWidth = wtm.transformVector(new Vec3(-0.5, 0, 0));\n\t\tthis.lightWidth[cnt][0] = hWidth.x * far;\n\t\tthis.lightWidth[cnt][1] = hWidth.y * far;\n\t\tthis.lightWidth[cnt][2] = hWidth.z * far;\n\t\tthis.lightWidthId[cnt].setValue(this.lightWidth[cnt]);\n\t\tconst hHeight = wtm.transformVector(new Vec3(0, 0, 0.5));\n\t\tthis.lightHeight[cnt][0] = hHeight.x * far;\n\t\tthis.lightHeight[cnt][1] = hHeight.y * far;\n\t\tthis.lightHeight[cnt][2] = hHeight.z * far;\n\t\tthis.lightHeightId[cnt].setValue(this.lightHeight[cnt]);\n\t}\n\tdispatchDirectLights(dirs, mask, camera) {\n\t\tlet cnt = 0;\n\t\tconst scope = this.device.scope;\n\t\tfor (let i2 = 0; i2 < dirs.length; i2++) {\n\t\t\tif (!(dirs[i2].mask & mask)) continue;\n\t\t\tconst directional = dirs[i2];\n\t\t\tconst wtm = directional._node.getWorldTransform();\n\t\t\tif (!this.lightColorId[cnt]) {\n\t\t\t\tthis._resolveLight(scope, cnt);\n\t\t\t}\n\t\t\tthis.lightColorId[cnt].setValue(directional._colorLinear);\n\t\t\twtm.getY(directional._direction).mulScalar(-1);\n\t\t\tdirectional._direction.normalize();\n\t\t\tthis.lightDir[cnt][0] = directional._direction.x;\n\t\t\tthis.lightDir[cnt][1] = directional._direction.y;\n\t\t\tthis.lightDir[cnt][2] = directional._direction.z;\n\t\t\tthis.lightDirId[cnt].setValue(this.lightDir[cnt]);\n\t\t\tif (directional.shape !== LIGHTSHAPE_PUNCTUAL) {\n\t\t\t\tthis.setLTCDirectionalLight(wtm, cnt, directional._direction, camera._node.getPosition(), camera.farClip);\n\t\t\t}\n\t\t\tif (directional.castShadows) {\n\t\t\t\tconst lightRenderData = directional.getRenderData(camera, 0);\n\t\t\t\tconst biases = directional._getUniformBiasValues(lightRenderData);\n\t\t\t\tthis.lightShadowMapId[cnt].setValue(lightRenderData.shadowBuffer);\n\t\t\t\tthis.lightShadowMatrixId[cnt].setValue(lightRenderData.shadowMatrix.data);\n\t\t\t\tthis.shadowMatrixPaletteId[cnt].setValue(directional._shadowMatrixPalette);\n\t\t\t\tthis.shadowCascadeDistancesId[cnt].setValue(directional._shadowCascadeDistances);\n\t\t\t\tthis.shadowCascadeCountId[cnt].setValue(directional.numCascades);\n\t\t\t\tthis.shadowCascadeBlendId[cnt].setValue(1 - directional.cascadeBlend);\n\t\t\t\tthis.lightShadowIntensity[cnt].setValue(directional.shadowIntensity);\n\t\t\t\tif (directional._isPcss) {\n\t\t\t\t\tthis.lightSoftShadowParamsId[cnt].setValue(directional._softShadowParams);\n\t\t\t\t\tconst shadowRT = lightRenderData.shadowCamera.renderTarget;\n\t\t\t\t\tif (shadowRT) {\n\t\t\t\t\t\tthis.lightShadowSearchAreaId[cnt].setValue(directional.penumbraSize / lightRenderData.shadowCamera.renderTarget.width * lightRenderData.projectionCompensation);\n\t\t\t\t\t}\n\t\t\t\t\tconst cameraParams = directional._shadowCameraParams;\n\t\t\t\t\tcameraParams.length = 4;\n\t\t\t\t\tcameraParams[0] = lightRenderData.projectionCompensation;\n\t\t\t\t\tcameraParams[1] = lightRenderData.shadowCamera._farClip;\n\t\t\t\t\tcameraParams[2] = lightRenderData.shadowCamera._nearClip;\n\t\t\t\t\tcameraParams[3] = 1;\n\t\t\t\t\tthis.lightCameraParamsId[cnt].setValue(cameraParams);\n\t\t\t\t\tconst radii = directional._shadowCascadeRadii ?? (directional._shadowCascadeRadii = new Float32Array(4));\n\t\t\t\t\tfor (let c2 = 0; c2 < 4; c2++) {\n\t\t\t\t\t\tconst r = c2 < directional.numCascades ? directional.getRenderData(camera, c2).projectionCompensation : 0;\n\t\t\t\t\t\tradii[c2] = r > 0 ? r : lightRenderData.projectionCompensation;\n\t\t\t\t\t}\n\t\t\t\t\tthis.shadowCascadeRadiiId[cnt].setValue(radii);\n\t\t\t\t}\n\t\t\t\tconst params = directional._shadowRenderParams;\n\t\t\t\tparams.length = 4;\n\t\t\t\tparams[0] = directional._shadowResolution;\n\t\t\t\tparams[1] = biases.normalBias;\n\t\t\t\tparams[2] = biases.bias;\n\t\t\t\tparams[3] = 0;\n\t\t\t\tthis.lightShadowParamsId[cnt].setValue(params);\n\t\t\t}\n\t\t\tcnt++;\n\t\t}\n\t\treturn cnt;\n\t}\n\tsetLTCPositionalLight(wtm, cnt) {\n\t\tconst hWidth = wtm.transformVector(new Vec3(-0.5, 0, 0));\n\t\tthis.lightWidth[cnt][0] = hWidth.x;\n\t\tthis.lightWidth[cnt][1] = hWidth.y;\n\t\tthis.lightWidth[cnt][2] = hWidth.z;\n\t\tthis.lightWidthId[cnt].setValue(this.lightWidth[cnt]);\n\t\tconst hHeight = wtm.transformVector(new Vec3(0, 0, 0.5));\n\t\tthis.lightHeight[cnt][0] = hHeight.x;\n\t\tthis.lightHeight[cnt][1] = hHeight.y;\n\t\tthis.lightHeight[cnt][2] = hHeight.z;\n\t\tthis.lightHeightId[cnt].setValue(this.lightHeight[cnt]);\n\t}\n\tdispatchOmniLight(scope, omni, cnt) {\n\t\tconst wtm = omni._node.getWorldTransform();\n\t\tif (!this.lightColorId[cnt]) {\n\t\t\tthis._resolveLight(scope, cnt);\n\t\t}\n\t\tthis.lightRadiusId[cnt].setValue(omni.attenuationEnd);\n\t\tthis.lightColorId[cnt].setValue(omni._colorLinear);\n\t\twtm.getTranslation(omni._position);\n\t\tthis.lightPos[cnt][0] = omni._position.x;\n\t\tthis.lightPos[cnt][1] = omni._position.y;\n\t\tthis.lightPos[cnt][2] = omni._position.z;\n\t\tthis.lightPosId[cnt].setValue(this.lightPos[cnt]);\n\t\tif (omni.shape !== LIGHTSHAPE_PUNCTUAL) {\n\t\t\tthis.setLTCPositionalLight(wtm, cnt);\n\t\t}\n\t\tif (omni.castShadows) {\n\t\t\tconst lightRenderData = omni.getRenderData(null, 0);\n\t\t\tthis.lightShadowMapId[cnt].setValue(lightRenderData.shadowBuffer);\n\t\t\tconst biases = omni._getUniformBiasValues(lightRenderData);\n\t\t\tconst params = omni._shadowRenderParams;\n\t\t\tparams.length = 4;\n\t\t\tparams[0] = omni._shadowResolution;\n\t\t\tparams[1] = biases.normalBias;\n\t\t\tparams[2] = biases.bias;\n\t\t\tparams[3] = 1 / omni.attenuationEnd;\n\t\t\tthis.lightShadowParamsId[cnt].setValue(params);\n\t\t\tthis.lightShadowIntensity[cnt].setValue(omni.shadowIntensity);\n\t\t\tconst pixelsPerMeter = omni.penumbraSize / lightRenderData.shadowCamera.renderTarget.width;\n\t\t\tthis.lightShadowSearchAreaId[cnt].setValue(pixelsPerMeter);\n\t\t\tconst cameraParams = omni._shadowCameraParams;\n\t\t\tcameraParams.length = 4;\n\t\t\tcameraParams[0] = 0;\n\t\t\tcameraParams[1] = lightRenderData.shadowCamera._farClip;\n\t\t\tcameraParams[2] = lightRenderData.shadowCamera._nearClip;\n\t\t\tcameraParams[3] = 0;\n\t\t\tthis.lightCameraParamsId[cnt].setValue(cameraParams);\n\t\t}\n\t\tif (omni._cookie) {\n\t\t\tthis.lightCookieId[cnt].setValue(omni._cookie);\n\t\t\tthis.lightShadowMatrixId[cnt].setValue(wtm.data);\n\t\t\tthis.lightCookieIntId[cnt].setValue(omni.cookieIntensity);\n\t\t}\n\t}\n\tdispatchSpotLight(scope, spot, cnt) {\n\t\tconst wtm = spot._node.getWorldTransform();\n\t\tif (!this.lightColorId[cnt]) {\n\t\t\tthis._resolveLight(scope, cnt);\n\t\t}\n\t\tthis.lightInAngleId[cnt].setValue(spot._innerConeAngleCos);\n\t\tthis.lightOutAngleId[cnt].setValue(spot._outerConeAngleCos);\n\t\tthis.lightRadiusId[cnt].setValue(spot.attenuationEnd);\n\t\tthis.lightColorId[cnt].setValue(spot._colorLinear);\n\t\twtm.getTranslation(spot._position);\n\t\tthis.lightPos[cnt][0] = spot._position.x;\n\t\tthis.lightPos[cnt][1] = spot._position.y;\n\t\tthis.lightPos[cnt][2] = spot._position.z;\n\t\tthis.lightPosId[cnt].setValue(this.lightPos[cnt]);\n\t\tif (spot.shape !== LIGHTSHAPE_PUNCTUAL) {\n\t\t\tthis.setLTCPositionalLight(wtm, cnt);\n\t\t}\n\t\twtm.getY(spot._direction).mulScalar(-1);\n\t\tspot._direction.normalize();\n\t\tthis.lightDir[cnt][0] = spot._direction.x;\n\t\tthis.lightDir[cnt][1] = spot._direction.y;\n\t\tthis.lightDir[cnt][2] = spot._direction.z;\n\t\tthis.lightDirId[cnt].setValue(this.lightDir[cnt]);\n\t\tif (spot.castShadows) {\n\t\t\tconst lightRenderData = spot.getRenderData(null, 0);\n\t\t\tthis.lightShadowMapId[cnt].setValue(lightRenderData.shadowBuffer);\n\t\t\tthis.lightShadowMatrixId[cnt].setValue(lightRenderData.shadowMatrix.data);\n\t\t\tconst biases = spot._getUniformBiasValues(lightRenderData);\n\t\t\tconst params = spot._shadowRenderParams;\n\t\t\tparams.length = 4;\n\t\t\tparams[0] = spot._shadowResolution;\n\t\t\tparams[1] = biases.normalBias;\n\t\t\tparams[2] = biases.bias;\n\t\t\tparams[3] = 1 / spot.attenuationEnd;\n\t\t\tthis.lightShadowParamsId[cnt].setValue(params);\n\t\t\tthis.lightShadowIntensity[cnt].setValue(spot.shadowIntensity);\n\t\t\tconst pixelsPerMeter = spot.penumbraSize / lightRenderData.shadowCamera.renderTarget.width;\n\t\t\tconst fov = lightRenderData.shadowCamera._fov * math.DEG_TO_RAD;\n\t\t\tconst fovRatio = 1 / Math.tan(fov / 2);\n\t\t\tthis.lightShadowSearchAreaId[cnt].setValue(pixelsPerMeter * fovRatio);\n\t\t\tconst cameraParams = spot._shadowCameraParams;\n\t\t\tcameraParams.length = 4;\n\t\t\tcameraParams[0] = 0;\n\t\t\tcameraParams[1] = lightRenderData.shadowCamera._farClip;\n\t\t\tcameraParams[2] = lightRenderData.shadowCamera._nearClip;\n\t\t\tcameraParams[3] = 0;\n\t\t\tthis.lightCameraParamsId[cnt].setValue(cameraParams);\n\t\t}\n\t\tif (spot._cookie) {\n\t\t\tif (!spot.castShadows) {\n\t\t\t\tconst cookieMatrix = LightCamera.evalSpotCookieMatrix(spot);\n\t\t\t\tthis.lightShadowMatrixId[cnt].setValue(cookieMatrix.data);\n\t\t\t}\n\t\t\tthis.lightCookieId[cnt].setValue(spot._cookie);\n\t\t\tthis.lightCookieIntId[cnt].setValue(spot.cookieIntensity);\n\t\t\tif (spot._cookieTransform) {\n\t\t\t\tspot._cookieTransformUniform[0] = spot._cookieTransform.x;\n\t\t\t\tspot._cookieTransformUniform[1] = spot._cookieTransform.y;\n\t\t\t\tspot._cookieTransformUniform[2] = spot._cookieTransform.z;\n\t\t\t\tspot._cookieTransformUniform[3] = spot._cookieTransform.w;\n\t\t\t\tthis.lightCookieMatrixId[cnt].setValue(spot._cookieTransformUniform);\n\t\t\t\tspot._cookieOffsetUniform[0] = spot._cookieOffset.x;\n\t\t\t\tspot._cookieOffsetUniform[1] = spot._cookieOffset.y;\n\t\t\t\tthis.lightCookieOffsetId[cnt].setValue(spot._cookieOffsetUniform);\n\t\t\t}\n\t\t}\n\t}\n\tdispatchLocalLights(sortedLights, mask, usedDirLights) {\n\t\tlet cnt = usedDirLights;\n\t\tconst scope = this.device.scope;\n\t\tconst omnis = sortedLights[LIGHTTYPE_OMNI];\n\t\tconst numOmnis = omnis.length;\n\t\tfor (let i2 = 0; i2 < numOmnis; i2++) {\n\t\t\tconst omni = omnis[i2];\n\t\t\tif (!(omni.mask & mask)) continue;\n\t\t\tthis.dispatchOmniLight(scope, omni, cnt);\n\t\t\tcnt++;\n\t\t}\n\t\tconst spts = sortedLights[LIGHTTYPE_SPOT];\n\t\tconst numSpts = spts.length;\n\t\tfor (let i2 = 0; i2 < numSpts; i2++) {\n\t\t\tconst spot = spts[i2];\n\t\t\tif (!(spot.mask & mask)) continue;\n\t\t\tthis.dispatchSpotLight(scope, spot, cnt);\n\t\t\tcnt++;\n\t\t}\n\t}\n\t// execute first pass over draw calls, in order to update materials / shaders\n\trenderForwardPrepareMaterials(camera, renderTarget, drawCalls, sortedLights, layer, pass, viewUniformFormat) {\n\t\tconst fogParams = camera.fogParams ?? this.scene.fog;\n\t\tconst shaderParams = camera.shaderParams;\n\t\tshaderParams.fog = fogParams.type;\n\t\tshaderParams.srgbRenderTarget = renderTarget?.isColorBufferSrgb(0) ?? false;\n\t\tconst addCall = (drawCall, shaderInstance, isNewMaterial, lightMaskChanged) => {\n\t\t\t_drawCallList.drawCalls.push(drawCall);\n\t\t\t_drawCallList.shaderInstances.push(shaderInstance);\n\t\t\t_drawCallList.isNewMaterial.push(isNewMaterial);\n\t\t\t_drawCallList.lightMaskChanged.push(lightMaskChanged);\n\t\t};\n\t\t_drawCallList.clear();\n\t\tconst device = this.device;\n\t\tconst scene = this.scene;\n\t\tconst clusteredLightingEnabled = scene.clusteredLightingEnabled;\n\t\tconst lightHash = layer?.getLightHash(clusteredLightingEnabled) ?? 0;\n\t\tlet prevMaterial = null, prevObjDefs, prevLightMask;\n\t\tconst drawCallsCount = drawCalls.length;\n\t\tfor (let i2 = 0; i2 < drawCallsCount; i2++) {\n\t\t\tconst drawCall = drawCalls[i2];\n\t\t\tif ((drawCall.shaderPassMask & 1 << pass) === 0) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst instancingData = drawCall.instancingData;\n\t\t\tif (instancingData && instancingData.count <= 0 && !drawCall.getDrawCommands(camera)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tdrawCall.ensureMaterial(device);\n\t\t\tconst material = drawCall.material;\n\t\t\tconst objDefs = drawCall._shaderDefs;\n\t\t\tconst lightMask = drawCall.mask;\n\t\t\tif (material && material === prevMaterial && objDefs !== prevObjDefs) {\n\t\t\t\tprevMaterial = null;\n\t\t\t}\n\t\t\tif (material !== prevMaterial) {\n\t\t\t\tthis._materialSwitches++;\n\t\t\t\tmaterial._scene = scene;\n\t\t\t\tmaterial.prepareForRender(device, scene);\n\t\t\t}\n\t\t\tconst shaderInstance = drawCall.getShaderInstance(pass, lightHash, scene, shaderParams, viewUniformFormat, sortedLights);\n\t\t\taddCall(drawCall, shaderInstance, material !== prevMaterial, !prevMaterial || lightMask !== prevLightMask);\n\t\t\tprevMaterial = material;\n\t\t\tprevObjDefs = objDefs;\n\t\t\tprevLightMask = lightMask;\n\t\t}\n\t\treturn _drawCallList;\n\t}\n\trenderForwardInternal(camera, preparedCalls, sortedLights, pass, drawCallback, flipFaces) {\n\t\tconst device = this.device;\n\t\tconst scene = this.scene;\n\t\tconst flipFactor = flipFaces ? -1 : 1;\n\t\tconst clusteredLightingEnabled = scene.clusteredLightingEnabled;\n\t\tconst sceneTextures = camera.shaderParams.sceneTextures.length > 0;\n\t\tconst attachmentCount = sceneTextures ? device.renderTarget?.colorBufferCount ?? 1 : 1;\n\t\tconst viewList = camera.xrActive && camera.xrViews.length ? camera.xrViews : null;\n\t\tconst activeView = device.xrCurrentViewIndex ?? -1;\n\t\tconst viewListStart = viewList && activeView >= 0 ? activeView : 0;\n\t\tconst viewListEnd = viewList && activeView >= 0 ? activeView + 1 : viewList ? viewList.length : 0;\n\t\tconst preparedCallsCount = preparedCalls.drawCalls.length;\n\t\tfor (let i2 = 0; i2 < preparedCallsCount; i2++) {\n\t\t\tconst drawCall = preparedCalls.drawCalls[i2];\n\t\t\tconst newMaterial = preparedCalls.isNewMaterial[i2];\n\t\t\tconst lightMaskChanged = preparedCalls.lightMaskChanged[i2];\n\t\t\tconst shaderInstance = preparedCalls.shaderInstances[i2];\n\t\t\tconst material = drawCall.material;\n\t\t\tconst lightMask = drawCall.mask;\n\t\t\tif (shaderInstance.shader.failed) continue;\n\t\t\tif (newMaterial) {\n\t\t\t\tconst asyncCompile = false;\n\t\t\t\tdevice.setShader(shaderInstance.shader, asyncCompile);\n\t\t\t\tmaterial.setParameters(device);\n\t\t\t\tif (lightMaskChanged) {\n\t\t\t\t\tconst usedDirLights = this.dispatchDirectLights(sortedLights[LIGHTTYPE_DIRECTIONAL], lightMask, camera);\n\t\t\t\t\tif (!clusteredLightingEnabled) {\n\t\t\t\t\t\tthis.dispatchLocalLights(sortedLights, lightMask, usedDirLights);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.alphaTestId.setValue(material.alphaTest);\n\t\t\t\tconst blendState = attachmentCount > 1 && !material.sceneTexturesWrite ? getSingleAttachmentBlendState(material.blendState, attachmentCount) : material.blendState;\n\t\t\t\tdevice.setBlendState(blendState);\n\t\t\t\tdevice.setDepthState(material.depthState);\n\t\t\t\tdevice.setAlphaToCoverage(material.alphaToCoverage);\n\t\t\t}\n\t\t\tthis.setupCullModeAndFrontFace(camera._cullFaces, flipFactor, drawCall);\n\t\t\tconst stencilFront = drawCall.stencilFront ?? material.stencilFront;\n\t\t\tconst stencilBack = drawCall.stencilBack ?? material.stencilBack;\n\t\t\tdevice.setStencilState(stencilFront, stencilBack);\n\t\t\tdrawCall.setParameters(device);\n\t\t\tdevice.scope.resolve(\"meshInstanceId\").setValue(drawCall.id);\n\t\t\tconst mesh = drawCall.mesh;\n\t\t\tthis.setVertexBuffers(device, mesh);\n\t\t\tthis.setMorphing(device, drawCall.morphInstance);\n\t\t\tthis.setSkinning(device, drawCall);\n\t\t\tconst instancingData = drawCall.instancingData;\n\t\t\tif (instancingData) {\n\t\t\t\tdevice.setVertexBuffer(instancingData.vertexBuffer);\n\t\t\t}\n\t\t\tthis.setMeshInstanceMatrices(drawCall, true);\n\t\t\tthis.setupMeshUniformBuffers(shaderInstance);\n\t\t\tconst style = drawCall.renderStyle;\n\t\t\tconst indexBuffer = mesh.indexBuffer[style];\n\t\t\tdrawCallback?.(drawCall, i2);\n\t\t\tconst indirectData = drawCall.getDrawCommands(camera);\n\t\t\tif (viewList) {\n\t\t\t\tfor (let v6 = viewListStart; v6 < viewListEnd; v6++) {\n\t\t\t\t\tconst view = viewList[v6];\n\t\t\t\t\tdevice.setViewport(view.viewport.x, view.viewport.y, view.viewport.z, view.viewport.w);\n\t\t\t\t\tthis._viewOffsetScratch[0] = this._viewBindGroupOffsets[v6];\n\t\t\t\t\tdevice.setBindGroup(BINDGROUP_VIEW, this._viewBindGroups[v6], this._viewOffsetScratch);\n\t\t\t\t\tconst first = v6 === viewListStart;\n\t\t\t\t\tconst last = v6 === viewListEnd - 1;\n\t\t\t\t\tdevice.draw(mesh.primitive[style], indexBuffer, instancingData?.count, indirectData, first, last);\n\t\t\t\t\tthis._forwardDrawCalls++;\n\t\t\t\t\tif (drawCall.instancingData) {\n\t\t\t\t\t\tthis._instancedDrawCalls++;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdevice.draw(mesh.primitive[style], indexBuffer, instancingData?.count, indirectData);\n\t\t\t\tthis._forwardDrawCalls++;\n\t\t\t\tif (drawCall.instancingData) {\n\t\t\t\t\tthis._instancedDrawCalls++;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (i2 < preparedCallsCount - 1 && !preparedCalls.isNewMaterial[i2 + 1]) {\n\t\t\t\tmaterial.setParameters(device, drawCall.parameters);\n\t\t\t}\n\t\t}\n\t}\n\trenderForward(camera, renderTarget, allDrawCalls, sortedLights, pass, drawCallback, layer, flipFaces, viewUniformFormat) {\n\t\tconst preparedCalls = this.renderForwardPrepareMaterials(camera, renderTarget, allDrawCalls, sortedLights, layer, pass, viewUniformFormat);\n\t\tthis.renderForwardInternal(camera, preparedCalls, sortedLights, pass, drawCallback, flipFaces);\n\t\t_drawCallList.clear();\n\t}\n\trenderForwardLayer(camera, renderTarget, layer, transparent, shaderPass, options2 = {}) {\n\t\tconst { scene } = this;\n\t\tconst clusteredLightingEnabled = scene.clusteredLightingEnabled;\n\t\tthis.setupViewport(camera, renderTarget);\n\t\tlet visible, splitLights;\n\t\tif (layer) {\n\t\t\tlayer.sortVisible(camera, transparent);\n\t\t\tconst culledInstances = layer.getCulledInstances(camera);\n\t\t\tvisible = transparent ? culledInstances.transparent : culledInstances.opaque;\n\t\t\tscene.immediate.onPreRenderLayer(layer, visible, transparent);\n\t\t\tif (layer.requiresLightCube) {\n\t\t\t\tthis.lightCube.update(scene.ambientLight, layer._lights);\n\t\t\t\tthis.constantLightCube.setValue(this.lightCube.colors);\n\t\t\t}\n\t\t\tsplitLights = layer.splitLights;\n\t\t} else {\n\t\t\tvisible = options2.meshInstances;\n\t\t\tsplitLights = options2.splitLights ?? _noLights;\n\t\t}\n\t\tif (clusteredLightingEnabled) {\n\t\t\tconst lightClusters = options2.lightClusters ?? this.worldClustersAllocator.empty;\n\t\t\tlightClusters.activate();\n\t\t\tif (layer) {\n\t\t\t\tif (!this.clustersDebugRendered && scene.lighting.debugLayer === layer.id) {\n\t\t\t\t\tthis.clustersDebugRendered = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tscene._activeCamera = camera;\n\t\tconst fogParams = camera.fogParams ?? this.scene.fog;\n\t\tthis.setFogConstants(fogParams);\n\t\tconst viewList = this.setCameraUniforms(camera, renderTarget);\n\t\tthis.initViewUniformFormat(scene.clusteredLightingEnabled);\n\t\tconst viewUniformFormat = options2.viewUniformFormat ?? this.viewUniformFormat;\n\t\tthis.setupViewUniformBuffers(viewUniformFormat, viewList);\n\t\tconst clearColor = options2.clearColor ?? false;\n\t\tconst clearDepth = options2.clearDepth ?? false;\n\t\tconst clearStencil = options2.clearStencil ?? false;\n\t\tif (clearColor || clearDepth || clearStencil) {\n\t\t\tthis.clear(camera, clearColor, clearDepth, clearStencil);\n\t\t}\n\t\tconst flipFaces = !!(camera._flipFaces ^ renderTarget?.flipY);\n\t\tconst forwardDrawCalls = this._forwardDrawCalls;\n\t\tthis.renderForward(\n\t\t\tcamera,\n\t\t\trenderTarget,\n\t\t\tvisible,\n\t\t\tsplitLights,\n\t\t\tshaderPass,\n\t\t\toptions2.drawCallback ?? null,\n\t\t\tlayer,\n\t\t\tflipFaces,\n\t\t\tviewUniformFormat\n\t\t);\n\t\tif (layer) {\n\t\t\tlayer._forwardDrawCalls += this._forwardDrawCalls - forwardDrawCalls;\n\t\t}\n\t}\n\tsetFogConstants(fogParams) {\n\t\tif (fogParams.type !== FOG_NONE) {\n\t\t\ttmpColor.linear(fogParams.color);\n\t\t\tconst fogUniform = this.fogColor;\n\t\t\tfogUniform[0] = tmpColor.r;\n\t\t\tfogUniform[1] = tmpColor.g;\n\t\t\tfogUniform[2] = tmpColor.b;\n\t\t\tthis.fogColorId.setValue(fogUniform);\n\t\t\tif (fogParams.type === FOG_LINEAR) {\n\t\t\t\tthis.fogStartId.setValue(fogParams.start);\n\t\t\t\tthis.fogEndId.setValue(fogParams.end);\n\t\t\t} else {\n\t\t\t\tthis.fogDensityId.setValue(fogParams.density);\n\t\t\t}\n\t\t}\n\t}\n\tsetSceneConstants() {\n\t\tconst scene = this.scene;\n\t\tthis.dispatchGlobalLights(scene);\n\t\tconst device = this.device;\n\t\tthis._screenSize[0] = device.width;\n\t\tthis._screenSize[1] = device.height;\n\t\tthis._screenSize[2] = 1 / device.width;\n\t\tthis._screenSize[3] = 1 / device.height;\n\t\tthis.screenSizeId.setValue(this._screenSize);\n\t\tthis.pcssDiskSamplesId.setValue(this.pcssDiskSamples);\n\t\tthis.pcssSphereSamplesId.setValue(this.pcssSphereSamples);\n\t}\n\tbuildFrameGraph(frameGraph, layerComposition) {\n\t\tconst scene = this.scene;\n\t\tframeGraph.reset();\n\t\tif (scene.clusteredLightingEnabled) {\n\t\t\tconst { shadowsEnabled, cookiesEnabled } = scene.lighting;\n\t\t\tthis._renderPassUpdateClustered.update(frameGraph, shadowsEnabled, cookiesEnabled, this.lights, this.localLights);\n\t\t\tframeGraph.addRenderPass(this._renderPassUpdateClustered);\n\t\t} else {\n\t\t\tthis._shadowRendererLocal.buildNonClusteredRenderPasses(frameGraph, this.localLights);\n\t\t}\n\t\tlet startIndex = 0;\n\t\tlet newStart = true;\n\t\tlet renderTarget = null;\n\t\tconst renderActions = layerComposition._renderActions;\n\t\tfor (let i2 = startIndex; i2 < renderActions.length; i2++) {\n\t\t\tconst renderAction = renderActions[i2];\n\t\t\tconst { layer, camera } = renderAction;\n\t\t\tconst mv = this._isMultiview(camera);\n\t\t\tif (renderAction.useCameraPasses) {\n\t\t\t\tif (mv) frameGraph.beginMultiView(this.device);\n\t\t\t\tcamera.camera.framePasses.forEach((renderPass) => {\n\t\t\t\t\tframeGraph.addRenderPass(renderPass);\n\t\t\t\t});\n\t\t\t\tif (mv) frameGraph.endMultiView();\n\t\t\t} else {\n\t\t\t\tconst isDepthLayer = layer.id === LAYERID_DEPTH;\n\t\t\t\tconst isGrabPass = isDepthLayer && (camera.renderSceneColorMap || camera.renderSceneDepthMap);\n\t\t\t\tif (newStart) {\n\t\t\t\t\tnewStart = false;\n\t\t\t\t\tstartIndex = i2;\n\t\t\t\t\trenderTarget = renderAction.renderTarget;\n\t\t\t\t}\n\t\t\t\tconst nextRenderAction = renderActions[i2 + 1];\n\t\t\t\tconst isNextLayerDepth = nextRenderAction ? !nextRenderAction.useCameraPasses && nextRenderAction.layer.id === LAYERID_DEPTH : false;\n\t\t\t\tconst isNextLayerGrabPass = isNextLayerDepth && (camera.renderSceneColorMap || camera.renderSceneDepthMap);\n\t\t\t\tconst nextNeedDirShadows = nextRenderAction ? nextRenderAction.firstCameraUse && this.culler.cameraDirShadowLights.has(nextRenderAction.camera.camera) : false;\n\t\t\t\tif (!nextRenderAction || nextRenderAction.renderTarget !== renderTarget || nextRenderAction.camera !== camera || nextNeedDirShadows || isNextLayerGrabPass || isGrabPass) {\n\t\t\t\t\tconst isDepthOnly = isDepthLayer && startIndex === i2;\n\t\t\t\t\tif (mv && (camera.renderSceneColorMap || camera.renderSceneDepthMap || renderAction.triggerPostprocess && camera?.onPostprocessing)) {\n\t\t\t\t\t}\n\t\t\t\t\tif (mv) frameGraph.beginMultiView(this.device);\n\t\t\t\t\tif (!isDepthOnly) {\n\t\t\t\t\t\tthis.addMainRenderPass(frameGraph, layerComposition, renderTarget, startIndex, i2);\n\t\t\t\t\t}\n\t\t\t\t\tif (isDepthLayer) {\n\t\t\t\t\t\tif (camera.renderSceneColorMap) {\n\t\t\t\t\t\t\tconst colorGrabPass = camera.camera.renderPassColorGrab;\n\t\t\t\t\t\t\tcolorGrabPass.source = camera.renderTarget;\n\t\t\t\t\t\t\tframeGraph.addRenderPass(colorGrabPass);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (camera.renderSceneDepthMap) {\n\t\t\t\t\t\t\tframeGraph.addRenderPass(camera.camera.renderPassDepthGrab);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (renderAction.triggerPostprocess && camera?.onPostprocessing) {\n\t\t\t\t\t\tconst renderPass = new FramePassPostprocessing(this.device, this, renderAction);\n\t\t\t\t\t\tframeGraph.addRenderPass(renderPass);\n\t\t\t\t\t}\n\t\t\t\t\tif (mv) frameGraph.endMultiView();\n\t\t\t\t\tnewStart = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t_isMultiview(camera) {\n\t\tconst sceneCamera = camera.camera;\n\t\treturn this.device.isWebGPU && !!sceneCamera?.xrActive && sceneCamera.xrViews.length >= 2;\n\t}\n\taddMainRenderPass(frameGraph, layerComposition, renderTarget, startIndex, endIndex) {\n\t\tconst renderPass = new RenderPassForward(this.device, layerComposition, this.scene, this);\n\t\trenderPass.init(renderTarget);\n\t\tconst renderActions = layerComposition._renderActions;\n\t\tfor (let i2 = startIndex; i2 <= endIndex; i2++) {\n\t\t\trenderPass.addLayerRenderStep(this._layerRenderStepFromRenderAction(renderActions[i2]));\n\t\t}\n\t\tframeGraph.addRenderPass(renderPass);\n\t}\n\t_layerRenderStepFromRenderAction(renderAction) {\n\t\tconst step = new LayerRenderStep(renderAction.camera, renderAction.layer, renderAction.transparent, renderAction.renderTarget);\n\t\tstep.clearColor = renderAction.clearColor;\n\t\tstep.clearDepth = renderAction.clearDepth;\n\t\tstep.clearStencil = renderAction.clearStencil;\n\t\tstep.firstCameraUse = renderAction.firstCameraUse;\n\t\tstep.lastCameraUse = renderAction.lastCameraUse;\n\t\treturn step;\n\t}\n\tupdate(comp) {\n\t\tthis.frameUpdate();\n\t\tthis.shadowRenderer.frameUpdate();\n\t\tthis.scene._updateSkyMesh();\n\t\tthis.updateLayerComposition(comp);\n\t\tthis.collectLights(comp);\n\t\tthis.beginFrame(comp);\n\t\tthis.setSceneConstants();\n\t\tthis.gsplatDirector?.update(comp);\n\t\tthis.culler.updateLightVisibility(comp);\n\t}\n\tcull(comp) {\n\t\tthis.culler.cullComposition(comp);\n\t\tthis.gsplatDirector?.updateShadows();\n\t\tthis.gpuUpdate(this.culler.processingMeshInstances);\n\t\tthis.culler.consumeOneShotShadows();\n\t}\n};\n\nvar layerCounter = 0;\nvar lightKeys = [];\nvar _tempMaterials = /* @__PURE__ */ new Set();\nfunction sortManual(drawCallA, drawCallB) {\n\treturn drawCallA.drawOrder - drawCallB.drawOrder;\n}\nfunction sortMaterialMesh(drawCallA, drawCallB) {\n\tconst keyA = drawCallA._sortKeyForward;\n\tconst keyB = drawCallB._sortKeyForward;\n\tif (keyA === keyB) {\n\t\treturn drawCallB.mesh.id - drawCallA.mesh.id;\n\t}\n\treturn keyB - keyA;\n}\nfunction sortBackToFront(drawCallA, drawCallB) {\n\treturn drawCallB._sortKeyDynamic - drawCallA._sortKeyDynamic;\n}\nfunction sortFrontToBack(drawCallA, drawCallB) {\n\treturn drawCallA._sortKeyDynamic - drawCallB._sortKeyDynamic;\n}\nvar sortCallbacks = [null, sortManual, sortMaterialMesh, sortBackToFront, sortFrontToBack];\nvar CulledInstances = class {\n\topaque = [];\n\ttransparent = [];\n};\nvar Layer = class {\n\t// --- Identity ---\n\tid;\n\tname;\n\t// --- Enabled state & ref counting ---\n\t_enabled = true;\n\t_refCounter = 1;\n\t// --- Sorting ---\n\topaqueSortMode = SORTMODE_MATERIALMESH;\n\ttransparentSortMode = SORTMODE_BACK2FRONT;\n\tcustomSortCallback = null;\n\tcustomCalculateSortValues = null;\n\t// --- Clear flags ---\n\t_clearColorBuffer = false;\n\t_clearDepthBuffer = false;\n\t_clearStencilBuffer = false;\n\t// --- Enable / disable callbacks ---\n\tonEnable;\n\tonDisable;\n\t// --- Mesh instances & shadow casters ---\n\tmeshInstances = [];\n\tmeshInstancesSet = /* @__PURE__ */ new Set();\n\tshadowCasters = [];\n\tshadowCastersSet = /* @__PURE__ */ new Set();\n\t_visibleInstances = /* @__PURE__ */ new WeakMap();\n\t// --- Lights ---\n\t_lights = [];\n\t_lightsSet = /* @__PURE__ */ new Set();\n\t_clusteredLightsSet = /* @__PURE__ */ new Set();\n\t_splitLights = [[], [], []];\n\t_splitLightsDirty = true;\n\t_lightHash = 0;\n\t_lightHashDirty = false;\n\t_lightIdHash = 0;\n\t_lightIdHashDirty = false;\n\trequiresLightCube = false;\n\t// --- Cameras ---\n\tcameras = [];\n\tcamerasSet = /* @__PURE__ */ new Set();\n\t// --- GSplat ---\n\tgsplatPlacements = [];\n\tgsplatPlacementsSet = /* @__PURE__ */ new Set();\n\tgsplatShadowCasters = [];\n\tgsplatShadowCastersSet = /* @__PURE__ */ new Set();\n\tgsplatPlacementsDirty = true;\n\t// --- Composition / shader versioning ---\n\t_dirtyComposition = false;\n\t_shaderVersion = -1;\n\t// --- Profiler ---\n\tconstructor(options2 = {}) {\n\t\tif (options2.id !== void 0) {\n\t\t\tthis.id = options2.id;\n\t\t\tlayerCounter = Math.max(this.id + 1, layerCounter);\n\t\t} else {\n\t\t\tthis.id = layerCounter++;\n\t\t}\n\t\tthis.name = options2.name;\n\t\tthis._enabled = options2.enabled ?? true;\n\t\tthis._refCounter = this._enabled ? 1 : 0;\n\t\tthis.opaqueSortMode = options2.opaqueSortMode ?? SORTMODE_MATERIALMESH;\n\t\tthis.transparentSortMode = options2.transparentSortMode ?? SORTMODE_BACK2FRONT;\n\t\tthis._clearColorBuffer = !!options2.clearColorBuffer;\n\t\tthis._clearDepthBuffer = !!options2.clearDepthBuffer;\n\t\tthis._clearStencilBuffer = !!options2.clearStencilBuffer;\n\t\tthis.onEnable = options2.onEnable;\n\t\tthis.onDisable = options2.onDisable;\n\t\tif (this._enabled && this.onEnable) {\n\t\t\tthis.onEnable();\n\t\t}\n\t}\n\tset enabled(val) {\n\t\tif (val !== this._enabled) {\n\t\t\tthis._dirtyComposition = true;\n\t\t\tthis.gsplatPlacementsDirty = true;\n\t\t\tthis._enabled = val;\n\t\t\tif (val) {\n\t\t\t\tthis.incrementCounter();\n\t\t\t\tif (this.onEnable) this.onEnable();\n\t\t\t} else {\n\t\t\t\tthis.decrementCounter();\n\t\t\t\tif (this.onDisable) this.onDisable();\n\t\t\t}\n\t\t}\n\t}\n\tget enabled() {\n\t\treturn this._enabled;\n\t}\n\tset clearColorBuffer(val) {\n\t\tthis._clearColorBuffer = val;\n\t\tthis._dirtyComposition = true;\n\t}\n\tget clearColorBuffer() {\n\t\treturn this._clearColorBuffer;\n\t}\n\tset clearDepthBuffer(val) {\n\t\tthis._clearDepthBuffer = val;\n\t\tthis._dirtyComposition = true;\n\t}\n\tget clearDepthBuffer() {\n\t\treturn this._clearDepthBuffer;\n\t}\n\tset clearStencilBuffer(val) {\n\t\tthis._clearStencilBuffer = val;\n\t\tthis._dirtyComposition = true;\n\t}\n\tget clearStencilBuffer() {\n\t\treturn this._clearStencilBuffer;\n\t}\n\tget hasClusteredLights() {\n\t\treturn this._clusteredLightsSet.size > 0;\n\t}\n\tget clusteredLightsSet() {\n\t\treturn this._clusteredLightsSet;\n\t}\n\tincrementCounter() {\n\t\tif (this._refCounter === 0) {\n\t\t\tthis._enabled = true;\n\t\t\tif (this.onEnable) this.onEnable();\n\t\t}\n\t\tthis._refCounter++;\n\t}\n\tdecrementCounter() {\n\t\tif (this._refCounter === 1) {\n\t\t\tthis._enabled = false;\n\t\t\tif (this.onDisable) this.onDisable();\n\t\t} else if (this._refCounter === 0) {\n\t\t\treturn;\n\t\t}\n\t\tthis._refCounter--;\n\t}\n\taddGSplatPlacement(placement) {\n\t\tif (!this.gsplatPlacementsSet.has(placement)) {\n\t\t\tthis.gsplatPlacements.push(placement);\n\t\t\tthis.gsplatPlacementsSet.add(placement);\n\t\t\tthis.gsplatPlacementsDirty = true;\n\t\t}\n\t}\n\tremoveGSplatPlacement(placement) {\n\t\tconst index = this.gsplatPlacements.indexOf(placement);\n\t\tif (index >= 0) {\n\t\t\tthis.gsplatPlacements.splice(index, 1);\n\t\t\tthis.gsplatPlacementsSet.delete(placement);\n\t\t\tthis.gsplatPlacementsDirty = true;\n\t\t}\n\t}\n\taddGSplatShadowCaster(placement) {\n\t\tif (!this.gsplatShadowCastersSet.has(placement)) {\n\t\t\tthis.gsplatShadowCasters.push(placement);\n\t\t\tthis.gsplatShadowCastersSet.add(placement);\n\t\t\tthis.gsplatPlacementsDirty = true;\n\t\t}\n\t}\n\tremoveGSplatShadowCaster(placement) {\n\t\tconst index = this.gsplatShadowCasters.indexOf(placement);\n\t\tif (index >= 0) {\n\t\t\tthis.gsplatShadowCasters.splice(index, 1);\n\t\t\tthis.gsplatShadowCastersSet.delete(placement);\n\t\t\tthis.gsplatPlacementsDirty = true;\n\t\t}\n\t}\n\taddMeshInstances(meshInstances, skipShadowCasters) {\n\t\tconst destMeshInstances = this.meshInstances;\n\t\tconst destMeshInstancesSet = this.meshInstancesSet;\n\t\tfor (let i2 = 0; i2 < meshInstances.length; i2++) {\n\t\t\tconst mi = meshInstances[i2];\n\t\t\tif (!destMeshInstancesSet.has(mi)) {\n\t\t\t\tdestMeshInstances.push(mi);\n\t\t\t\tdestMeshInstancesSet.add(mi);\n\t\t\t\t_tempMaterials.add(mi.material);\n\t\t\t}\n\t\t}\n\t\tif (!skipShadowCasters) {\n\t\t\tthis.addShadowCasters(meshInstances);\n\t\t}\n\t\tif (_tempMaterials.size > 0) {\n\t\t\tconst sceneShaderVer = this._shaderVersion;\n\t\t\t_tempMaterials.forEach((mat2) => {\n\t\t\t\tif (sceneShaderVer >= 0 && mat2._shaderVersion !== sceneShaderVer) {\n\t\t\t\t\tif (mat2.getShaderVariant !== Material.prototype.getShaderVariant) {\n\t\t\t\t\t\tmat2.clearVariants();\n\t\t\t\t\t}\n\t\t\t\t\tmat2._shaderVersion = sceneShaderVer;\n\t\t\t\t}\n\t\t\t});\n\t\t\t_tempMaterials.clear();\n\t\t}\n\t}\n\tremoveMeshInstances(meshInstances, skipShadowCasters) {\n\t\tconst destMeshInstances = this.meshInstances;\n\t\tconst destMeshInstancesSet = this.meshInstancesSet;\n\t\tfor (let i2 = 0; i2 < meshInstances.length; i2++) {\n\t\t\tconst mi = meshInstances[i2];\n\t\t\tif (destMeshInstancesSet.has(mi)) {\n\t\t\t\tdestMeshInstancesSet.delete(mi);\n\t\t\t\tconst j = destMeshInstances.indexOf(mi);\n\t\t\t\tif (j >= 0) {\n\t\t\t\t\tdestMeshInstances.splice(j, 1);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (!skipShadowCasters) {\n\t\t\tthis.removeShadowCasters(meshInstances);\n\t\t}\n\t}\n\taddShadowCasters(meshInstances) {\n\t\tconst shadowCasters = this.shadowCasters;\n\t\tconst shadowCastersSet = this.shadowCastersSet;\n\t\tfor (let i2 = 0; i2 < meshInstances.length; i2++) {\n\t\t\tconst mi = meshInstances[i2];\n\t\t\tif (mi.castShadow && !shadowCastersSet.has(mi)) {\n\t\t\t\tshadowCastersSet.add(mi);\n\t\t\t\tshadowCasters.push(mi);\n\t\t\t}\n\t\t}\n\t}\n\tremoveShadowCasters(meshInstances) {\n\t\tconst shadowCasters = this.shadowCasters;\n\t\tconst shadowCastersSet = this.shadowCastersSet;\n\t\tfor (let i2 = 0; i2 < meshInstances.length; i2++) {\n\t\t\tconst mi = meshInstances[i2];\n\t\t\tif (shadowCastersSet.has(mi)) {\n\t\t\t\tshadowCastersSet.delete(mi);\n\t\t\t\tconst j = shadowCasters.indexOf(mi);\n\t\t\t\tif (j >= 0) {\n\t\t\t\t\tshadowCasters.splice(j, 1);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tclearMeshInstances(skipShadowCasters = false) {\n\t\tthis.meshInstances.length = 0;\n\t\tthis.meshInstancesSet.clear();\n\t\tif (!skipShadowCasters) {\n\t\t\tthis.shadowCasters.length = 0;\n\t\t\tthis.shadowCastersSet.clear();\n\t\t}\n\t}\n\tmarkLightsDirty() {\n\t\tthis._lightHashDirty = true;\n\t\tthis._lightIdHashDirty = true;\n\t\tthis._splitLightsDirty = true;\n\t}\n\thasLight(light) {\n\t\treturn this._lightsSet.has(light);\n\t}\n\taddLight(light) {\n\t\tconst l = light.light;\n\t\tif (!this._lightsSet.has(l)) {\n\t\t\tthis._lightsSet.add(l);\n\t\t\tthis._lights.push(l);\n\t\t\tthis.markLightsDirty();\n\t\t}\n\t\tif (l.type !== LIGHTTYPE_DIRECTIONAL) {\n\t\t\tthis._clusteredLightsSet.add(l);\n\t\t}\n\t}\n\tremoveLight(light) {\n\t\tconst l = light.light;\n\t\tif (this._lightsSet.has(l)) {\n\t\t\tthis._lightsSet.delete(l);\n\t\t\tthis._lights.splice(this._lights.indexOf(l), 1);\n\t\t\tthis.markLightsDirty();\n\t\t}\n\t\tif (l.type !== LIGHTTYPE_DIRECTIONAL) {\n\t\t\tthis._clusteredLightsSet.delete(l);\n\t\t}\n\t}\n\tclearLights() {\n\t\tthis._lightsSet.forEach((light) => light.removeLayer(this));\n\t\tthis._lightsSet.clear();\n\t\tthis._clusteredLightsSet.clear();\n\t\tthis._lights.length = 0;\n\t\tthis.markLightsDirty();\n\t}\n\tget splitLights() {\n\t\tif (this._splitLightsDirty) {\n\t\t\tthis._splitLightsDirty = false;\n\t\t\tconst splitLights = this._splitLights;\n\t\t\tfor (let i2 = 0; i2 < splitLights.length; i2++) {\n\t\t\t\tsplitLights[i2].length = 0;\n\t\t\t}\n\t\t\tconst lights2 = this._lights;\n\t\t\tfor (let i2 = 0; i2 < lights2.length; i2++) {\n\t\t\t\tconst light = lights2[i2];\n\t\t\t\tif (light.enabled) {\n\t\t\t\t\tsplitLights[light._type].push(light);\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (let i2 = 0; i2 < splitLights.length; i2++) {\n\t\t\t\tsplitLights[i2].sort((a, b) => a.key - b.key);\n\t\t\t}\n\t\t}\n\t\treturn this._splitLights;\n\t}\n\tevaluateLightHash(localLights, directionalLights, useIds) {\n\t\tlet hash = 0;\n\t\tconst lights2 = this._lights;\n\t\tfor (let i2 = 0; i2 < lights2.length; i2++) {\n\t\t\tconst isLocalLight = lights2[i2].type !== LIGHTTYPE_DIRECTIONAL;\n\t\t\tif (localLights && isLocalLight || directionalLights && !isLocalLight) {\n\t\t\t\tlightKeys.push(useIds ? lights2[i2].id : lights2[i2].key);\n\t\t\t}\n\t\t}\n\t\tif (lightKeys.length > 0) {\n\t\t\tlightKeys.sort();\n\t\t\thash = hash32Fnv1a(lightKeys);\n\t\t\tlightKeys.length = 0;\n\t\t}\n\t\treturn hash;\n\t}\n\tgetLightHash(isClustered) {\n\t\tif (this._lightHashDirty) {\n\t\t\tthis._lightHashDirty = false;\n\t\t\tthis._lightHash = this.evaluateLightHash(!isClustered, true, false);\n\t\t}\n\t\treturn this._lightHash;\n\t}\n\t// This is only used in clustered lighting mode\n\tgetLightIdHash() {\n\t\tif (this._lightIdHashDirty) {\n\t\t\tthis._lightIdHashDirty = false;\n\t\t\tthis._lightIdHash = this.evaluateLightHash(true, false, true);\n\t\t}\n\t\treturn this._lightIdHash;\n\t}\n\taddCamera(camera) {\n\t\tif (!this.camerasSet.has(camera.camera)) {\n\t\t\tthis.camerasSet.add(camera.camera);\n\t\t\tthis.cameras.push(camera);\n\t\t\tthis._dirtyComposition = true;\n\t\t}\n\t}\n\tremoveCamera(camera) {\n\t\tif (this.camerasSet.has(camera.camera)) {\n\t\t\tthis.camerasSet.delete(camera.camera);\n\t\t\tconst index = this.cameras.indexOf(camera);\n\t\t\tthis.cameras.splice(index, 1);\n\t\t\tthis._dirtyComposition = true;\n\t\t}\n\t}\n\tclearCameras() {\n\t\tthis.cameras.length = 0;\n\t\tthis.camerasSet.clear();\n\t\tthis._dirtyComposition = true;\n\t}\n\t_calculateSortDistances(drawCalls, camPos, camFwd) {\n\t\tconst count = drawCalls.length;\n\t\tconst { x: px, y: py, z: pz } = camPos;\n\t\tconst { x: fx, y: fy, z: fz } = camFwd;\n\t\tfor (let i2 = 0; i2 < count; i2++) {\n\t\t\tconst drawCall = drawCalls[i2];\n\t\t\tlet zDist;\n\t\t\tif (drawCall.calculateSortDistance) {\n\t\t\t\tzDist = drawCall.calculateSortDistance(drawCall, camPos, camFwd);\n\t\t\t} else {\n\t\t\t\tconst meshPos = drawCall.aabb.center;\n\t\t\t\tzDist = (meshPos.x - px) * fx + (meshPos.y - py) * fy + (meshPos.z - pz) * fz;\n\t\t\t}\n\t\t\tconst bucket = drawCall._drawBucket * 1e9;\n\t\t\tdrawCall._sortKeyDynamic = bucket + zDist;\n\t\t}\n\t}\n\tgetCulledInstances(camera) {\n\t\tlet instances = this._visibleInstances.get(camera);\n\t\tif (!instances) {\n\t\t\tinstances = new CulledInstances();\n\t\t\tthis._visibleInstances.set(camera, instances);\n\t\t}\n\t\treturn instances;\n\t}\n\tsortVisible(camera, transparent) {\n\t\tconst sortMode = transparent ? this.transparentSortMode : this.opaqueSortMode;\n\t\tif (sortMode === SORTMODE_NONE) {\n\t\t\treturn;\n\t\t}\n\t\tconst culledInstances = this.getCulledInstances(camera);\n\t\tconst instances = transparent ? culledInstances.transparent : culledInstances.opaque;\n\t\tconst cameraNode = camera.node;\n\t\tif (sortMode === SORTMODE_CUSTOM) {\n\t\t\tconst sortPos = cameraNode.getPosition();\n\t\t\tconst sortDir = cameraNode.forward;\n\t\t\tif (this.customCalculateSortValues) {\n\t\t\t\tthis.customCalculateSortValues(instances, instances.length, sortPos, sortDir);\n\t\t\t}\n\t\t\tif (this.customSortCallback) {\n\t\t\t\tinstances.sort(this.customSortCallback);\n\t\t\t}\n\t\t} else {\n\t\t\tif (sortMode === SORTMODE_BACK2FRONT || sortMode === SORTMODE_FRONT2BACK) {\n\t\t\t\tconst sortPos = cameraNode.getPosition();\n\t\t\t\tconst sortDir = cameraNode.forward;\n\t\t\t\tthis._calculateSortDistances(instances, sortPos, sortDir);\n\t\t\t}\n\t\t\tinstances.sort(sortCallbacks[sortMode]);\n\t\t}\n\t}\n};\n\nvar cmpPriority = (a, b) => a.priority - b.priority;\nvar sortPriority = (arr) => arr.sort(cmpPriority);\n\nvar RenderAction = class {\n\t// {CameraComponent|null}\n\tcamera = null;\n\tconstructor() {\n\t\tthis.layer = null;\n\t\tthis.transparent = false;\n\t\tthis.renderTarget = null;\n\t\tthis.clearColor = false;\n\t\tthis.clearDepth = false;\n\t\tthis.clearStencil = false;\n\t\tthis.triggerPostprocess = false;\n\t\tthis.firstCameraUse = false;\n\t\tthis.lastCameraUse = false;\n\t\tthis.useCameraPasses = false;\n\t}\n\tsetupClears(camera, layer) {\n\t\tthis.clearColor = camera?.clearColorBuffer || layer.clearColorBuffer;\n\t\tthis.clearDepth = camera?.clearDepthBuffer || layer.clearDepthBuffer;\n\t\tthis.clearStencil = camera?.clearStencilBuffer || layer.clearStencilBuffer;\n\t}\n};\n\nvar LayerComposition = class extends EventHandler {\n\t// Composition can hold only 2 sublayers of each layer\n\tlayerList = [];\n\tlayerIdMap = /* @__PURE__ */ new Map();\n\tlayerNameMap = /* @__PURE__ */ new Map();\n\tlayerOpaqueIndexMap = /* @__PURE__ */ new Map();\n\tlayerTransparentIndexMap = /* @__PURE__ */ new Map();\n\tsubLayerList = [];\n\tsubLayerEnabled = [];\n\t// more granular control on top of layer.enabled (ANDed)\n\tcameras = [];\n\tcamerasSet = /* @__PURE__ */ new Set();\n\t_renderActions = [];\n\t_dirty = false;\n\tconstructor(name = \"Untitled\") {\n\t\tsuper();\n\t\tthis.name = name;\n\t\tthis._opaqueOrder = {};\n\t\tthis._transparentOrder = {};\n\t}\n\tmarkDirty() {\n\t\tthis._dirty = true;\n\t}\n\t_update() {\n\t\tconst len = this.layerList.length;\n\t\tif (!this._dirty) {\n\t\t\tfor (let i2 = 0; i2 < len; i2++) {\n\t\t\t\tif (this.layerList[i2]._dirtyComposition) {\n\t\t\t\t\tthis._dirty = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (this._dirty) {\n\t\t\tthis._dirty = false;\n\t\t\tthis.cameras.length = 0;\n\t\t\tthis.camerasSet.clear();\n\t\t\tfor (let i2 = 0; i2 < len; i2++) {\n\t\t\t\tconst layer = this.layerList[i2];\n\t\t\t\tlayer._dirtyComposition = false;\n\t\t\t\tfor (let j = 0; j < layer.cameras.length; j++) {\n\t\t\t\t\tconst cameraComponent = layer.cameras[j];\n\t\t\t\t\tif (!this.camerasSet.has(cameraComponent.camera)) {\n\t\t\t\t\t\tthis.camerasSet.add(cameraComponent.camera);\n\t\t\t\t\t\tthis.cameras.push(cameraComponent);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (this.cameras.length > 1) {\n\t\t\t\tsortPriority(this.cameras);\n\t\t\t}\n\t\t\tconst cameraLayers = [];\n\t\t\tlet renderActionCount = 0;\n\t\t\tthis._renderActions.length = 0;\n\t\t\tfor (let i2 = 0; i2 < this.cameras.length; i2++) {\n\t\t\t\tconst camera = this.cameras[i2];\n\t\t\t\tcameraLayers.length = 0;\n\t\t\t\tif (camera.camera.framePasses.length > 0) {\n\t\t\t\t\tthis.addDummyRenderAction(renderActionCount, camera);\n\t\t\t\t\trenderActionCount++;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tlet cameraFirstRenderAction = true;\n\t\t\t\tconst cameraFirstRenderActionIndex = renderActionCount;\n\t\t\t\tlet lastRenderAction = null;\n\t\t\t\tlet postProcessMarked = false;\n\t\t\t\tfor (let j = 0; j < len; j++) {\n\t\t\t\t\tconst layer = this.layerList[j];\n\t\t\t\t\tconst isLayerEnabled = layer.enabled && this.subLayerEnabled[j];\n\t\t\t\t\tif (isLayerEnabled) {\n\t\t\t\t\t\tif (layer.cameras.length > 0) {\n\t\t\t\t\t\t\tif (camera.layers.indexOf(layer.id) >= 0) {\n\t\t\t\t\t\t\t\tcameraLayers.push(layer);\n\t\t\t\t\t\t\t\tif (!postProcessMarked && layer.id === camera.disablePostEffectsLayer) {\n\t\t\t\t\t\t\t\t\tpostProcessMarked = true;\n\t\t\t\t\t\t\t\t\tif (lastRenderAction) {\n\t\t\t\t\t\t\t\t\t\tlastRenderAction.triggerPostprocess = true;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tconst isTransparent = this.subLayerList[j];\n\t\t\t\t\t\t\t\tlastRenderAction = this.addRenderAction(\n\t\t\t\t\t\t\t\t\trenderActionCount,\n\t\t\t\t\t\t\t\t\tlayer,\n\t\t\t\t\t\t\t\t\tisTransparent,\n\t\t\t\t\t\t\t\t\tcamera,\n\t\t\t\t\t\t\t\t\tcameraFirstRenderAction,\n\t\t\t\t\t\t\t\t\tpostProcessMarked\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\trenderActionCount++;\n\t\t\t\t\t\t\t\tcameraFirstRenderAction = false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (cameraFirstRenderActionIndex < renderActionCount) {\n\t\t\t\t\tlastRenderAction.lastCameraUse = true;\n\t\t\t\t}\n\t\t\t\tif (!postProcessMarked && lastRenderAction) {\n\t\t\t\t\tlastRenderAction.triggerPostprocess = true;\n\t\t\t\t}\n\t\t\t\tif (camera.renderTarget && camera.postEffectsEnabled) {\n\t\t\t\t\tthis.propagateRenderTarget(cameraFirstRenderActionIndex - 1, camera);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._logRenderActions();\n\t\t}\n\t}\n\tgetNextRenderAction(renderActionIndex) {\n\t\tconst renderAction = new RenderAction();\n\t\tthis._renderActions.push(renderAction);\n\t\treturn renderAction;\n\t}\n\taddDummyRenderAction(renderActionIndex, camera) {\n\t\tconst renderAction = this.getNextRenderAction(renderActionIndex);\n\t\trenderAction.camera = camera;\n\t\trenderAction.useCameraPasses = true;\n\t}\n\t// function adds new render action to a list, while trying to limit allocation and reuse already allocated objects\n\taddRenderAction(renderActionIndex, layer, isTransparent, camera, cameraFirstRenderAction, postProcessMarked) {\n\t\tlet rt = layer.id !== LAYERID_DEPTH ? camera.renderTarget : null;\n\t\tlet used = false;\n\t\tconst renderActions = this._renderActions;\n\t\tfor (let i2 = renderActionIndex - 1; i2 >= 0; i2--) {\n\t\t\tif (renderActions[i2].camera === camera && renderActions[i2].renderTarget === rt) {\n\t\t\t\tused = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (postProcessMarked && camera.postEffectsEnabled) {\n\t\t\trt = null;\n\t\t}\n\t\tconst renderAction = this.getNextRenderAction(renderActionIndex);\n\t\trenderAction.triggerPostprocess = false;\n\t\trenderAction.layer = layer;\n\t\trenderAction.transparent = isTransparent;\n\t\trenderAction.camera = camera;\n\t\trenderAction.renderTarget = rt;\n\t\trenderAction.firstCameraUse = cameraFirstRenderAction;\n\t\trenderAction.lastCameraUse = false;\n\t\tconst needsCameraClear = cameraFirstRenderAction || !used;\n\t\tconst needsLayerClear = layer.clearColorBuffer || layer.clearDepthBuffer || layer.clearStencilBuffer;\n\t\tif (needsCameraClear || needsLayerClear) {\n\t\t\trenderAction.setupClears(needsCameraClear ? camera : void 0, layer);\n\t\t}\n\t\treturn renderAction;\n\t}\n\t// executes when post-processing camera's render actions were created to propagate rendering to\n\t// render targets to previous camera as needed\n\tpropagateRenderTarget(startIndex, fromCamera) {\n\t\tfor (let a = startIndex; a >= 0; a--) {\n\t\t\tconst ra = this._renderActions[a];\n\t\t\tconst layer = ra.layer;\n\t\t\tif (ra.renderTarget && layer.id !== LAYERID_DEPTH) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (layer.id === LAYERID_DEPTH) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (ra.useCameraPasses) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tconst thisCamera = ra?.camera.camera;\n\t\t\tif (thisCamera) {\n\t\t\t\tif (!fromCamera.camera.rect.equals(thisCamera.rect) || !fromCamera.camera.scissorRect.equals(thisCamera.scissorRect)) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tra.renderTarget = fromCamera.renderTarget;\n\t\t}\n\t}\n\t// logs render action and their properties\n\t_logRenderActions() {\n\t}\n\t_isLayerAdded(layer) {\n\t\tconst found = this.layerIdMap.get(layer.id) === layer;\n\t\treturn found;\n\t}\n\t_isSublayerAdded(layer, transparent) {\n\t\tconst map = transparent ? this.layerTransparentIndexMap : this.layerOpaqueIndexMap;\n\t\tif (map.get(layer) !== void 0) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\t// Whole layer API\n\tpush(layer) {\n\t\tif (this._isLayerAdded(layer)) return;\n\t\tthis.layerList.push(layer);\n\t\tthis.layerList.push(layer);\n\t\tthis._opaqueOrder[layer.id] = this.subLayerList.push(false) - 1;\n\t\tthis._transparentOrder[layer.id] = this.subLayerList.push(true) - 1;\n\t\tthis.subLayerEnabled.push(true);\n\t\tthis.subLayerEnabled.push(true);\n\t\tthis._updateLayerMaps();\n\t\tthis._dirty = true;\n\t\tthis.fire(\"add\", layer);\n\t}\n\tinsert(layer, index) {\n\t\tif (this._isLayerAdded(layer)) return;\n\t\tthis.layerList.splice(index, 0, layer, layer);\n\t\tthis.subLayerList.splice(index, 0, false, true);\n\t\tconst count = this.layerList.length;\n\t\tthis._updateOpaqueOrder(index, count - 1);\n\t\tthis._updateTransparentOrder(index, count - 1);\n\t\tthis.subLayerEnabled.splice(index, 0, true, true);\n\t\tthis._updateLayerMaps();\n\t\tthis._dirty = true;\n\t\tthis.fire(\"add\", layer);\n\t}\n\tremove(layer) {\n\t\tlet id14 = this.layerList.indexOf(layer);\n\t\tdelete this._opaqueOrder[id14];\n\t\tdelete this._transparentOrder[id14];\n\t\twhile (id14 >= 0) {\n\t\t\tthis.layerList.splice(id14, 1);\n\t\t\tthis.subLayerList.splice(id14, 1);\n\t\t\tthis.subLayerEnabled.splice(id14, 1);\n\t\t\tid14 = this.layerList.indexOf(layer);\n\t\t\tthis._dirty = true;\n\t\t\tthis.fire(\"remove\", layer);\n\t\t}\n\t\tconst count = this.layerList.length;\n\t\tthis._updateOpaqueOrder(0, count - 1);\n\t\tthis._updateTransparentOrder(0, count - 1);\n\t\tthis._updateLayerMaps();\n\t}\n\t// Sublayer API\n\tpushOpaque(layer) {\n\t\tif (this._isSublayerAdded(layer, false)) return;\n\t\tthis.layerList.push(layer);\n\t\tthis._opaqueOrder[layer.id] = this.subLayerList.push(false) - 1;\n\t\tthis.subLayerEnabled.push(true);\n\t\tthis._updateLayerMaps();\n\t\tthis._dirty = true;\n\t\tthis.fire(\"add\", layer);\n\t}\n\tinsertOpaque(layer, index) {\n\t\tif (this._isSublayerAdded(layer, false)) return;\n\t\tthis.layerList.splice(index, 0, layer);\n\t\tthis.subLayerList.splice(index, 0, false);\n\t\tconst count = this.subLayerList.length;\n\t\tthis._updateOpaqueOrder(index, count - 1);\n\t\tthis.subLayerEnabled.splice(index, 0, true);\n\t\tthis._updateLayerMaps();\n\t\tthis._dirty = true;\n\t\tthis.fire(\"add\", layer);\n\t}\n\tremoveOpaque(layer) {\n\t\tfor (let i2 = 0, len = this.layerList.length; i2 < len; i2++) {\n\t\t\tif (this.layerList[i2] === layer && !this.subLayerList[i2]) {\n\t\t\t\tthis.layerList.splice(i2, 1);\n\t\t\t\tthis.subLayerList.splice(i2, 1);\n\t\t\t\tlen--;\n\t\t\t\tthis._updateOpaqueOrder(i2, len - 1);\n\t\t\t\tthis.subLayerEnabled.splice(i2, 1);\n\t\t\t\tthis._dirty = true;\n\t\t\t\tif (this.layerList.indexOf(layer) < 0) {\n\t\t\t\t\tthis.fire(\"remove\", layer);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tthis._updateLayerMaps();\n\t}\n\tpushTransparent(layer) {\n\t\tif (this._isSublayerAdded(layer, true)) return;\n\t\tthis.layerList.push(layer);\n\t\tthis._transparentOrder[layer.id] = this.subLayerList.push(true) - 1;\n\t\tthis.subLayerEnabled.push(true);\n\t\tthis._updateLayerMaps();\n\t\tthis._dirty = true;\n\t\tthis.fire(\"add\", layer);\n\t}\n\tinsertTransparent(layer, index) {\n\t\tif (this._isSublayerAdded(layer, true)) return;\n\t\tthis.layerList.splice(index, 0, layer);\n\t\tthis.subLayerList.splice(index, 0, true);\n\t\tconst count = this.subLayerList.length;\n\t\tthis._updateTransparentOrder(index, count - 1);\n\t\tthis.subLayerEnabled.splice(index, 0, true);\n\t\tthis._updateLayerMaps();\n\t\tthis._dirty = true;\n\t\tthis.fire(\"add\", layer);\n\t}\n\tremoveTransparent(layer) {\n\t\tfor (let i2 = 0, len = this.layerList.length; i2 < len; i2++) {\n\t\t\tif (this.layerList[i2] === layer && this.subLayerList[i2]) {\n\t\t\t\tthis.layerList.splice(i2, 1);\n\t\t\t\tthis.subLayerList.splice(i2, 1);\n\t\t\t\tlen--;\n\t\t\t\tthis._updateTransparentOrder(i2, len - 1);\n\t\t\t\tthis.subLayerEnabled.splice(i2, 1);\n\t\t\t\tthis._dirty = true;\n\t\t\t\tif (this.layerList.indexOf(layer) < 0) {\n\t\t\t\t\tthis.fire(\"remove\", layer);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tthis._updateLayerMaps();\n\t}\n\tgetOpaqueIndex(layer) {\n\t\treturn this.layerOpaqueIndexMap.get(layer) ?? -1;\n\t}\n\tgetTransparentIndex(layer) {\n\t\treturn this.layerTransparentIndexMap.get(layer) ?? -1;\n\t}\n\tisEnabled(layer, transparent) {\n\t\tif (layer.enabled) {\n\t\t\tconst index = transparent ? this.getTransparentIndex(layer) : this.getOpaqueIndex(layer);\n\t\t\tif (index >= 0) {\n\t\t\t\treturn this.subLayerEnabled[index];\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\tisSubLayerRenderedByCamera(index, camera) {\n\t\tconst layer = this.layerList[index];\n\t\treturn layer.enabled && this.subLayerEnabled[index] && layer.camerasSet.has(camera);\n\t}\n\t_updateLayerMaps() {\n\t\tthis.layerIdMap.clear();\n\t\tthis.layerNameMap.clear();\n\t\tthis.layerOpaqueIndexMap.clear();\n\t\tthis.layerTransparentIndexMap.clear();\n\t\tfor (let i2 = 0; i2 < this.layerList.length; i2++) {\n\t\t\tconst layer = this.layerList[i2];\n\t\t\tthis.layerIdMap.set(layer.id, layer);\n\t\t\tthis.layerNameMap.set(layer.name, layer);\n\t\t\tconst subLayerIndexMap = this.subLayerList[i2] ? this.layerTransparentIndexMap : this.layerOpaqueIndexMap;\n\t\t\tsubLayerIndexMap.set(layer, i2);\n\t\t}\n\t}\n\tgetLayerById(id14) {\n\t\treturn this.layerIdMap.get(id14) ?? null;\n\t}\n\tgetLayerByName(name) {\n\t\treturn this.layerNameMap.get(name) ?? null;\n\t}\n\t_updateOpaqueOrder(startIndex, endIndex) {\n\t\tfor (let i2 = startIndex; i2 <= endIndex; i2++) {\n\t\t\tif (this.subLayerList[i2] === false) {\n\t\t\t\tthis._opaqueOrder[this.layerList[i2].id] = i2;\n\t\t\t}\n\t\t}\n\t}\n\t_updateTransparentOrder(startIndex, endIndex) {\n\t\tfor (let i2 = startIndex; i2 <= endIndex; i2++) {\n\t\t\tif (this.subLayerList[i2] === true) {\n\t\t\t\tthis._transparentOrder[this.layerList[i2].id] = i2;\n\t\t\t}\n\t\t}\n\t}\n\t// Used to determine which array of layers has any sublayer that is\n\t// on top of all the sublayers in the other array. The order is a dictionary\n\t// of <layerId, index>.\n\t_sortLayersDescending(layersA, layersB, order) {\n\t\tlet topLayerA = -1;\n\t\tlet topLayerB = -1;\n\t\tfor (let i2 = 0, len = layersA.length; i2 < len; i2++) {\n\t\t\tconst id14 = layersA[i2];\n\t\t\tif (order.hasOwnProperty(id14)) {\n\t\t\t\ttopLayerA = Math.max(topLayerA, order[id14]);\n\t\t\t}\n\t\t}\n\t\tfor (let i2 = 0, len = layersB.length; i2 < len; i2++) {\n\t\t\tconst id14 = layersB[i2];\n\t\t\tif (order.hasOwnProperty(id14)) {\n\t\t\t\ttopLayerB = Math.max(topLayerB, order[id14]);\n\t\t\t}\n\t\t}\n\t\tif (topLayerA === -1 && topLayerB !== -1) {\n\t\t\treturn 1;\n\t\t} else if (topLayerB === -1 && topLayerA !== -1) {\n\t\t\treturn -1;\n\t\t}\n\t\treturn topLayerB - topLayerA;\n\t}\n\tsortTransparentLayers(layersA, layersB) {\n\t\treturn this._sortLayersDescending(layersA, layersB, this._transparentOrder);\n\t}\n\tsortOpaqueLayers(layersA, layersB) {\n\t\treturn this._sortLayersDescending(layersA, layersB, this._opaqueOrder);\n\t}\n};\n\nvar tmpVec = new Vec3();\nvar tmpBiases = {\n\tbias: 0,\n\tnormalBias: 0\n};\nvar tmpColor2 = new Color();\nvar chanId = { r: 0, g: 1, b: 2, a: 3 };\nvar lightTypes = {\n\t\"directional\": LIGHTTYPE_DIRECTIONAL,\n\t\"omni\": LIGHTTYPE_OMNI,\n\t\"point\": LIGHTTYPE_OMNI,\n\t\"spot\": LIGHTTYPE_SPOT\n};\nvar directionalCascades = [\n\t[new Vec4(0, 0, 1, 1)],\n\t[new Vec4(0, 0, 0.5, 0.5), new Vec4(0, 0.5, 0.5, 0.5)],\n\t[new Vec4(0, 0, 0.5, 0.5), new Vec4(0, 0.5, 0.5, 0.5), new Vec4(0.5, 0, 0.5, 0.5)],\n\t[new Vec4(0, 0, 0.5, 0.5), new Vec4(0, 0.5, 0.5, 0.5), new Vec4(0.5, 0, 0.5, 0.5), new Vec4(0.5, 0.5, 0.5, 0.5)]\n];\nvar channelMap = {\n\t\"rrr\": 1,\n\t\"ggg\": 2,\n\t\"bbb\": 4,\n\t\"aaa\": 8,\n\t\"rgb\": 7\n};\nvar id11 = 0;\nvar LightRenderData = class {\n\tconstructor(camera, face, light) {\n\t\tthis.light = light;\n\t\tthis.camera = camera;\n\t\tthis.shadowCamera = ShadowRenderer.createShadowCamera(light.device, light._shadowType, light._type, face);\n\t\tthis.shadowMatrix = new Mat4();\n\t\tthis.shadowViewport = new Vec4(0, 0, 1, 1);\n\t\tthis.shadowScissor = new Vec4(0, 0, 1, 1);\n\t\tthis.projectionCompensation = 0;\n\t\tthis.face = face;\n\t\tthis.visibleCasters = [];\n\t}\n\t// returns shadow buffer currently attached to the shadow camera\n\tget shadowBuffer() {\n\t\tconst rt = this.shadowCamera.renderTarget;\n\t\tif (rt) {\n\t\t\treturn this.light._isPcf ? rt.depthBuffer : rt.colorBuffer;\n\t\t}\n\t\treturn null;\n\t}\n};\nvar Light = class _Light {\n\tlayers = /* @__PURE__ */ new Set();\n\tclusteredLighting;\n\tshadowDepthState = DepthState.DEFAULT.clone();\n\tvolumetricScattering = 1;\n\tclusteredFlags = 0;\n\tclusteredData = new Uint32Array(3);\n\tclusteredData16 = new Uint16Array(this.clusteredData.buffer);\n\t_evtDeviceRestored = null;\n\tconstructor(graphicsDevice, clusteredLighting) {\n\t\tthis.device = graphicsDevice;\n\t\tthis.clusteredLighting = clusteredLighting;\n\t\tthis.id = id11++;\n\t\tthis._evtDeviceRestored = graphicsDevice.on(\"devicerestored\", this.onDeviceRestored, this);\n\t\tthis._type = LIGHTTYPE_DIRECTIONAL;\n\t\tthis._color = new Color(0.8, 0.8, 0.8);\n\t\tthis._intensity = 1;\n\t\tthis._affectSpecularity = true;\n\t\tthis._luminance = 0;\n\t\tthis._castShadows = false;\n\t\tthis._enabled = false;\n\t\tthis._mask = MASK_AFFECT_DYNAMIC;\n\t\tthis.isStatic = false;\n\t\tthis.key = 0;\n\t\tthis.bakeDir = true;\n\t\tthis.bakeNumSamples = 1;\n\t\tthis.bakeArea = 0;\n\t\tthis.attenuationStart = 10;\n\t\tthis.attenuationEnd = 10;\n\t\tthis._falloffMode = LIGHTFALLOFF_LINEAR;\n\t\tthis._shadowType = SHADOW_PCF3_32F;\n\t\tthis._vsmBlurSize = 11;\n\t\tthis.vsmBlurMode = BLUR_GAUSSIAN;\n\t\tthis.vsmBias = 0.01 * 0.25;\n\t\tthis._cookie = null;\n\t\tthis.cookieIntensity = 1;\n\t\tthis._cookieFalloff = true;\n\t\tthis._cookieChannel = \"rgb\";\n\t\tthis._cookieTransform = null;\n\t\tthis._cookieTransformUniform = new Float32Array(4);\n\t\tthis._cookieOffset = null;\n\t\tthis._cookieOffsetUniform = new Float32Array(2);\n\t\tthis._cookieTransformSet = false;\n\t\tthis._cookieOffsetSet = false;\n\t\tthis._innerConeAngle = 40;\n\t\tthis._outerConeAngle = 45;\n\t\tthis.cascades = null;\n\t\tthis._shadowMatrixPalette = null;\n\t\tthis._shadowCascadeDistances = null;\n\t\tthis.numCascades = 1;\n\t\tthis._cascadeBlend = 0;\n\t\tthis.cascadeDistribution = 0.5;\n\t\tthis._shape = LIGHTSHAPE_PUNCTUAL;\n\t\tthis._colorLinear = new Float32Array(3);\n\t\tthis._updateLinearColor();\n\t\tthis._position = new Vec3(0, 0, 0);\n\t\tthis._direction = new Vec3(0, 0, 0);\n\t\tthis._innerConeAngleCos = Math.cos(this._innerConeAngle * math.DEG_TO_RAD);\n\t\tthis._updateOuterAngle(this._outerConeAngle);\n\t\tthis._usePhysicalUnits = void 0;\n\t\tthis._shadowMap = null;\n\t\tthis._shadowRenderParams = [];\n\t\tthis._shadowCameraParams = [];\n\t\tthis._shadowCascadeRadii = null;\n\t\tthis.shadowDistance = 40;\n\t\tthis._shadowResolution = 1024;\n\t\tthis._shadowBias = -5e-4;\n\t\tthis._shadowIntensity = 1;\n\t\tthis._normalOffsetBias = 0;\n\t\tthis.shadowUpdateMode = SHADOWUPDATE_REALTIME;\n\t\tthis.shadowUpdateOverrides = null;\n\t\tthis._isVsm = false;\n\t\tthis._isPcf = true;\n\t\tthis._isPcss = false;\n\t\tthis._softShadowParams = new Float32Array(4);\n\t\tthis.shadowSamples = 16;\n\t\tthis.shadowBlockerSamples = 16;\n\t\tthis.penumbraSize = 1;\n\t\tthis.penumbraFalloff = 1;\n\t\tthis._cookieMatrix = null;\n\t\tthis._atlasViewport = null;\n\t\tthis.atlasViewportAllocated = false;\n\t\tthis.atlasVersion = 0;\n\t\tthis.atlasSlotIndex = 0;\n\t\tthis.atlasSlotUpdated = false;\n\t\tthis.cookieRenderVersion = -1;\n\t\tthis._node = null;\n\t\tthis._renderData = [];\n\t\tthis.visibleThisFrame = false;\n\t\tthis.maxScreenSize = 0;\n\t\tthis._updateShadowBias();\n\t}\n\tdestroy() {\n\t\tthis._evtDeviceRestored?.off();\n\t\tthis._evtDeviceRestored = null;\n\t\tthis._destroyShadowMap();\n\t\tthis.releaseRenderData();\n\t\tthis._renderData = null;\n\t}\n\tonDeviceRestored() {\n\t\tif (this.shadowUpdateMode === SHADOWUPDATE_NONE) {\n\t\t\tthis.shadowUpdateMode = SHADOWUPDATE_THISFRAME;\n\t\t}\n\t}\n\treleaseRenderData() {\n\t\tif (this._renderData) {\n\t\t\tthis._renderData.length = 0;\n\t\t}\n\t}\n\taddLayer(layer) {\n\t\tthis.layers.add(layer);\n\t}\n\tremoveLayer(layer) {\n\t\tthis.layers.delete(layer);\n\t}\n\tset shadowSamples(value) {\n\t\tthis._softShadowParams[0] = value;\n\t}\n\tget shadowSamples() {\n\t\treturn this._softShadowParams[0];\n\t}\n\tset shadowBlockerSamples(value) {\n\t\tthis._softShadowParams[1] = value;\n\t}\n\tget shadowBlockerSamples() {\n\t\treturn this._softShadowParams[1];\n\t}\n\tset shadowBias(value) {\n\t\tif (this._shadowBias !== value) {\n\t\t\tthis._shadowBias = value;\n\t\t\tthis._updateShadowBias();\n\t\t}\n\t}\n\tget shadowBias() {\n\t\treturn this._shadowBias;\n\t}\n\tset numCascades(value) {\n\t\tif (!this.cascades || this.numCascades !== value) {\n\t\t\tthis.cascades = directionalCascades[value - 1];\n\t\t\tthis._shadowMatrixPalette = new Float32Array(4 * 16);\n\t\t\tthis._shadowCascadeDistances = new Float32Array(4);\n\t\t\tthis._destroyShadowMap();\n\t\t\tthis.updateKey();\n\t\t}\n\t}\n\tget numCascades() {\n\t\treturn this.cascades.length;\n\t}\n\tset cascadeBlend(value) {\n\t\tif (this._cascadeBlend !== value) {\n\t\t\tthis._cascadeBlend = value;\n\t\t\tthis.updateKey();\n\t\t}\n\t}\n\tget cascadeBlend() {\n\t\treturn this._cascadeBlend;\n\t}\n\tset shadowMap(shadowMap) {\n\t\tif (this._shadowMap !== shadowMap) {\n\t\t\tthis._destroyShadowMap();\n\t\t\tthis._shadowMap = shadowMap;\n\t\t}\n\t}\n\tget shadowMap() {\n\t\treturn this._shadowMap;\n\t}\n\tset mask(value) {\n\t\tif (this._mask !== value) {\n\t\t\tthis._mask = value;\n\t\t\tthis.updateKey();\n\t\t\tthis.updateClusteredFlags();\n\t\t}\n\t}\n\tget mask() {\n\t\treturn this._mask;\n\t}\n\t// returns number of render targets to render the shadow map\n\tget numShadowFaces() {\n\t\tconst type = this._type;\n\t\tif (type === LIGHTTYPE_DIRECTIONAL) {\n\t\t\treturn this.numCascades;\n\t\t} else if (type === LIGHTTYPE_OMNI) {\n\t\t\treturn 6;\n\t\t}\n\t\treturn 1;\n\t}\n\tset type(value) {\n\t\tif (this._type === value) {\n\t\t\treturn;\n\t\t}\n\t\tthis._type = value;\n\t\tthis._destroyShadowMap();\n\t\tthis._updateShadowBias();\n\t\tthis.updateKey();\n\t\tthis.updateClusteredFlags();\n\t\tconst stype = this._shadowType;\n\t\tthis._shadowType = null;\n\t\tthis.shadowUpdateOverrides = null;\n\t\tthis.shadowType = stype;\n\t}\n\tget type() {\n\t\treturn this._type;\n\t}\n\tset shape(value) {\n\t\tif (this._shape === value) {\n\t\t\treturn;\n\t\t}\n\t\tthis._shape = value;\n\t\tthis._destroyShadowMap();\n\t\tthis.updateKey();\n\t\tthis.updateClusteredFlags();\n\t\tconst stype = this._shadowType;\n\t\tthis._shadowType = null;\n\t\tthis.shadowType = stype;\n\t}\n\tget shape() {\n\t\treturn this._shape;\n\t}\n\tset usePhysicalUnits(value) {\n\t\tif (this._usePhysicalUnits !== value) {\n\t\t\tthis._usePhysicalUnits = value;\n\t\t\tthis._updateLinearColor();\n\t\t}\n\t}\n\tget usePhysicalUnits() {\n\t\treturn this._usePhysicalUnits;\n\t}\n\tset shadowType(value) {\n\t\tif (this._shadowType === value) {\n\t\t\treturn;\n\t\t}\n\t\tlet shadowInfo = shadowTypeInfo.get(value);\n\t\tif (!shadowInfo) {\n\t\t\tvalue = SHADOW_PCF3_32F;\n\t\t}\n\t\tconst device = this.device;\n\t\tif (value === SHADOW_PCSS_32F && (!device.textureFloatRenderable || !device.textureFloatFilterable)) {\n\t\t\tvalue = SHADOW_PCF3_32F;\n\t\t}\n\t\tif (this._type === LIGHTTYPE_OMNI && value !== SHADOW_PCF1_32F && value !== SHADOW_PCF3_32F && value !== SHADOW_PCF1_16F && value !== SHADOW_PCF3_16F && value !== SHADOW_PCSS_32F) {\n\t\t\tvalue = SHADOW_PCF3_32F;\n\t\t}\n\t\tif (value === SHADOW_VSM_32F && (!device.textureFloatRenderable || !device.textureFloatFilterable)) {\n\t\t\tvalue = SHADOW_VSM_16F;\n\t\t}\n\t\tif (value === SHADOW_VSM_16F && !device.textureHalfFloatRenderable) {\n\t\t\tvalue = SHADOW_PCF3_32F;\n\t\t}\n\t\tshadowInfo = shadowTypeInfo.get(value);\n\t\tthis._isVsm = shadowInfo?.vsm ?? false;\n\t\tthis._isPcf = shadowInfo?.pcf ?? false;\n\t\tthis._isPcss = shadowInfo?.pcss ?? false;\n\t\tthis._shadowType = value;\n\t\tthis._updateShadowBias();\n\t\tthis._destroyShadowMap();\n\t\tthis.updateKey();\n\t}\n\tget shadowType() {\n\t\treturn this._shadowType;\n\t}\n\tset enabled(value) {\n\t\tif (this._enabled !== value) {\n\t\t\tthis._enabled = value;\n\t\t\tthis.layersDirty();\n\t\t}\n\t}\n\tget enabled() {\n\t\treturn this._enabled;\n\t}\n\tset castShadows(value) {\n\t\tif (this._castShadows !== value) {\n\t\t\tthis._castShadows = value;\n\t\t\tthis._destroyShadowMap();\n\t\t\tthis.layersDirty();\n\t\t\tthis.updateKey();\n\t\t}\n\t}\n\tget castShadows() {\n\t\treturn this._castShadows && this._mask !== MASK_BAKE && this._mask !== 0;\n\t}\n\tset shadowIntensity(value) {\n\t\tif (this._shadowIntensity !== value) {\n\t\t\tthis._shadowIntensity = value;\n\t\t\tthis.updateKey();\n\t\t}\n\t}\n\tget shadowIntensity() {\n\t\treturn this._shadowIntensity;\n\t}\n\tget bakeShadows() {\n\t\treturn this._castShadows && this._mask === MASK_BAKE;\n\t}\n\tset shadowResolution(value) {\n\t\tif (this._shadowResolution !== value) {\n\t\t\tif (this._type === LIGHTTYPE_OMNI) {\n\t\t\t\tvalue = Math.min(value, this.device.maxCubeMapSize);\n\t\t\t} else {\n\t\t\t\tvalue = Math.min(value, this.device.maxTextureSize);\n\t\t\t}\n\t\t\tthis._shadowResolution = value;\n\t\t\tthis._destroyShadowMap();\n\t\t}\n\t}\n\tget shadowResolution() {\n\t\treturn this._shadowResolution;\n\t}\n\tset vsmBlurSize(value) {\n\t\tif (this._vsmBlurSize === value) {\n\t\t\treturn;\n\t\t}\n\t\tif (value % 2 === 0) value++;\n\t\tthis._vsmBlurSize = value;\n\t}\n\tget vsmBlurSize() {\n\t\treturn this._vsmBlurSize;\n\t}\n\tset normalOffsetBias(value) {\n\t\tif (this._normalOffsetBias !== value) {\n\t\t\tconst dirty = !this._normalOffsetBias && value || this._normalOffsetBias && !value;\n\t\t\tthis._normalOffsetBias = value;\n\t\t\tif (dirty) {\n\t\t\t\tthis.updateKey();\n\t\t\t}\n\t\t}\n\t}\n\tget normalOffsetBias() {\n\t\treturn this._normalOffsetBias;\n\t}\n\tset falloffMode(value) {\n\t\tif (this._falloffMode === value) {\n\t\t\treturn;\n\t\t}\n\t\tthis._falloffMode = value;\n\t\tthis.updateKey();\n\t\tthis.updateClusteredFlags();\n\t}\n\tget falloffMode() {\n\t\treturn this._falloffMode;\n\t}\n\tset innerConeAngle(value) {\n\t\tif (this._innerConeAngle === value) {\n\t\t\treturn;\n\t\t}\n\t\tthis._innerConeAngle = value;\n\t\tthis._innerConeAngleCos = Math.cos(value * math.DEG_TO_RAD);\n\t\tthis.updateClusterData(false, true);\n\t\tif (this._usePhysicalUnits) {\n\t\t\tthis._updateLinearColor();\n\t\t}\n\t}\n\tget innerConeAngle() {\n\t\treturn this._innerConeAngle;\n\t}\n\tset outerConeAngle(value) {\n\t\tif (this._outerConeAngle === value) {\n\t\t\treturn;\n\t\t}\n\t\tthis._outerConeAngle = value;\n\t\tthis._updateOuterAngle(value);\n\t\tif (this._usePhysicalUnits) {\n\t\t\tthis._updateLinearColor();\n\t\t}\n\t}\n\tget outerConeAngle() {\n\t\treturn this._outerConeAngle;\n\t}\n\tset penumbraSize(value) {\n\t\tthis._penumbraSize = value;\n\t\tthis._softShadowParams[2] = value;\n\t}\n\tget penumbraSize() {\n\t\treturn this._penumbraSize;\n\t}\n\tset penumbraFalloff(value) {\n\t\tthis._softShadowParams[3] = value;\n\t}\n\tget penumbraFalloff() {\n\t\treturn this._softShadowParams[3];\n\t}\n\t_updateOuterAngle(angle) {\n\t\tconst radAngle = angle * math.DEG_TO_RAD;\n\t\tthis._outerConeAngleCos = Math.cos(radAngle);\n\t\tthis._outerConeAngleSin = Math.sin(radAngle);\n\t\tthis.updateClusterData(false, true);\n\t}\n\tset intensity(value) {\n\t\tif (this._intensity !== value) {\n\t\t\tthis._intensity = value;\n\t\t\tthis._updateLinearColor();\n\t\t}\n\t}\n\tget intensity() {\n\t\treturn this._intensity;\n\t}\n\tset affectSpecularity(value) {\n\t\tif (this._type === LIGHTTYPE_DIRECTIONAL) {\n\t\t\tthis._affectSpecularity = value;\n\t\t\tthis.updateKey();\n\t\t}\n\t}\n\tget affectSpecularity() {\n\t\treturn this._affectSpecularity;\n\t}\n\tset luminance(value) {\n\t\tif (this._luminance !== value) {\n\t\t\tthis._luminance = value;\n\t\t\tthis._updateLinearColor();\n\t\t}\n\t}\n\tget luminance() {\n\t\treturn this._luminance;\n\t}\n\tget cookieMatrix() {\n\t\tif (!this._cookieMatrix) {\n\t\t\tthis._cookieMatrix = new Mat4();\n\t\t}\n\t\treturn this._cookieMatrix;\n\t}\n\tget atlasViewport() {\n\t\tif (!this._atlasViewport) {\n\t\t\tthis._atlasViewport = new Vec4(0, 0, 1, 1);\n\t\t}\n\t\treturn this._atlasViewport;\n\t}\n\tset cookie(value) {\n\t\tif (this._cookie === value) {\n\t\t\treturn;\n\t\t}\n\t\tthis._cookie = value;\n\t\tthis.updateKey();\n\t}\n\tget cookie() {\n\t\treturn this._cookie;\n\t}\n\tset cookieFalloff(value) {\n\t\tif (this._cookieFalloff === value) {\n\t\t\treturn;\n\t\t}\n\t\tthis._cookieFalloff = value;\n\t\tthis.updateKey();\n\t}\n\tget cookieFalloff() {\n\t\treturn this._cookieFalloff;\n\t}\n\tset cookieChannel(value) {\n\t\tif (this._cookieChannel === value) {\n\t\t\treturn;\n\t\t}\n\t\tif (value.length < 3) {\n\t\t\tconst chr = value.charAt(value.length - 1);\n\t\t\tconst addLen = 3 - value.length;\n\t\t\tfor (let i2 = 0; i2 < addLen; i2++) {\n\t\t\t\tvalue += chr;\n\t\t\t}\n\t\t}\n\t\tthis._cookieChannel = value;\n\t\tthis.updateKey();\n\t\tthis.updateClusteredFlags();\n\t}\n\tget cookieChannel() {\n\t\treturn this._cookieChannel;\n\t}\n\tset cookieTransform(value) {\n\t\tif (this._cookieTransform === value) {\n\t\t\treturn;\n\t\t}\n\t\tthis._cookieTransform = value;\n\t\tthis._cookieTransformSet = !!value;\n\t\tif (value && !this._cookieOffset) {\n\t\t\tthis.cookieOffset = new Vec2();\n\t\t\tthis._cookieOffsetSet = false;\n\t\t}\n\t\tthis.updateKey();\n\t}\n\tget cookieTransform() {\n\t\treturn this._cookieTransform;\n\t}\n\tset cookieOffset(value) {\n\t\tif (this._cookieOffset === value) {\n\t\t\treturn;\n\t\t}\n\t\tconst xformNew = !!(this._cookieTransformSet || value);\n\t\tif (xformNew && !value && this._cookieOffset) {\n\t\t\tthis._cookieOffset.set(0, 0);\n\t\t} else {\n\t\t\tthis._cookieOffset = value;\n\t\t}\n\t\tthis._cookieOffsetSet = !!value;\n\t\tif (value && !this._cookieTransform) {\n\t\t\tthis.cookieTransform = new Vec4(1, 1, 0, 0);\n\t\t\tthis._cookieTransformSet = false;\n\t\t}\n\t\tthis.updateKey();\n\t}\n\tget cookieOffset() {\n\t\treturn this._cookieOffset;\n\t}\n\t// prepares light for the frame rendering\n\tbeginFrame() {\n\t\tthis.visibleThisFrame = this._type === LIGHTTYPE_DIRECTIONAL && this._enabled;\n\t\tthis.maxScreenSize = 0;\n\t\tthis.atlasViewportAllocated = false;\n\t\tthis.atlasSlotUpdated = false;\n\t}\n\t// destroys shadow map related resources, called when shadow properties change and resources\n\t// need to be recreated\n\t_destroyShadowMap() {\n\t\tthis.releaseRenderData();\n\t\tif (this._shadowMap) {\n\t\t\tif (!this._shadowMap.cached) {\n\t\t\t\tthis._shadowMap.destroy();\n\t\t\t}\n\t\t\tthis._shadowMap = null;\n\t\t}\n\t\tif (this.shadowUpdateMode === SHADOWUPDATE_NONE) {\n\t\t\tthis.shadowUpdateMode = SHADOWUPDATE_THISFRAME;\n\t\t}\n\t\tif (this.shadowUpdateOverrides) {\n\t\t\tfor (let i2 = 0; i2 < this.shadowUpdateOverrides.length; i2++) {\n\t\t\t\tif (this.shadowUpdateOverrides[i2] === SHADOWUPDATE_NONE) {\n\t\t\t\t\tthis.shadowUpdateOverrides[i2] = SHADOWUPDATE_THISFRAME;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// returns LightRenderData with matching camera and face\n\tgetRenderData(camera, face) {\n\t\tfor (let i2 = 0; i2 < this._renderData.length; i2++) {\n\t\t\tconst current = this._renderData[i2];\n\t\t\tif (current.camera === camera && current.face === face) {\n\t\t\t\treturn current;\n\t\t\t}\n\t\t}\n\t\tconst rd = new LightRenderData(camera, face, this);\n\t\tthis._renderData.push(rd);\n\t\treturn rd;\n\t}\n\tclone() {\n\t\tconst clone = new _Light(this.device, this.clusteredLighting);\n\t\tclone.type = this._type;\n\t\tclone.setColor(this._color);\n\t\tclone.intensity = this._intensity;\n\t\tclone.affectSpecularity = this._affectSpecularity;\n\t\tclone.luminance = this._luminance;\n\t\tclone.castShadows = this.castShadows;\n\t\tclone._enabled = this._enabled;\n\t\tclone.attenuationStart = this.attenuationStart;\n\t\tclone.attenuationEnd = this.attenuationEnd;\n\t\tclone.falloffMode = this._falloffMode;\n\t\tclone.shadowType = this._shadowType;\n\t\tclone.vsmBlurSize = this._vsmBlurSize;\n\t\tclone.vsmBlurMode = this.vsmBlurMode;\n\t\tclone.vsmBias = this.vsmBias;\n\t\tclone.shadowUpdateMode = this.shadowUpdateMode;\n\t\tclone.mask = this.mask;\n\t\tif (this.shadowUpdateOverrides) {\n\t\t\tclone.shadowUpdateOverrides = this.shadowUpdateOverrides.slice();\n\t\t}\n\t\tclone.innerConeAngle = this._innerConeAngle;\n\t\tclone.outerConeAngle = this._outerConeAngle;\n\t\tclone.numCascades = this.numCascades;\n\t\tclone.cascadeDistribution = this.cascadeDistribution;\n\t\tclone.cascadeBlend = this._cascadeBlend;\n\t\tclone.shape = this._shape;\n\t\tclone.shadowDepthState.copy(this.shadowDepthState);\n\t\tclone.shadowBias = this.shadowBias;\n\t\tclone.normalOffsetBias = this._normalOffsetBias;\n\t\tclone.shadowResolution = this._shadowResolution;\n\t\tclone.shadowDistance = this.shadowDistance;\n\t\tclone.shadowIntensity = this.shadowIntensity;\n\t\tclone.shadowSamples = this.shadowSamples;\n\t\tclone.shadowBlockerSamples = this.shadowBlockerSamples;\n\t\tclone.penumbraSize = this.penumbraSize;\n\t\tclone.penumbraFalloff = this.penumbraFalloff;\n\t\tclone.volumetricScattering = this.volumetricScattering;\n\t\treturn clone;\n\t}\n\tstatic getLightUnitConversion(type, outerAngle = Math.PI / 4, innerAngle = 0) {\n\t\tswitch (type) {\n\t\t\tcase LIGHTTYPE_SPOT: {\n\t\t\t\tconst falloffEnd = Math.cos(outerAngle);\n\t\t\t\tconst falloffStart = Math.cos(innerAngle);\n\t\t\t\treturn 2 * Math.PI * (1 - falloffStart + (falloffStart - falloffEnd) / 2);\n\t\t\t}\n\t\t\tcase LIGHTTYPE_OMNI:\n\t\t\t\treturn 4 * Math.PI;\n\t\t\tcase LIGHTTYPE_DIRECTIONAL:\n\t\t\t\treturn 1;\n\t\t}\n\t}\n\t// returns the bias (.x) and normalBias (.y) value for lights as passed to shaders by uniforms\n\t// Note: this needs to be revisited and simplified\n\t// Note: vsmBias is not used at all for omni light, even though it is editable in the Editor\n\t_getUniformBiasValues(lightRenderData) {\n\t\tconst farClip = lightRenderData.shadowCamera._farClip;\n\t\tswitch (this._type) {\n\t\t\tcase LIGHTTYPE_OMNI:\n\t\t\t\ttmpBiases.bias = this.shadowBias;\n\t\t\t\ttmpBiases.normalBias = this._normalOffsetBias;\n\t\t\t\tbreak;\n\t\t\tcase LIGHTTYPE_SPOT:\n\t\t\t\tif (this._isVsm) {\n\t\t\t\t\ttmpBiases.bias = -1e-5 * 20;\n\t\t\t\t} else {\n\t\t\t\t\ttmpBiases.bias = this.shadowBias * 20;\n\t\t\t\t}\n\t\t\t\ttmpBiases.normalBias = this._isVsm ? this.vsmBias / (this.attenuationEnd / 7) : this._normalOffsetBias;\n\t\t\t\tbreak;\n\t\t\tcase LIGHTTYPE_DIRECTIONAL:\n\t\t\t\tif (this._isVsm) {\n\t\t\t\t\ttmpBiases.bias = -1e-5 * 20;\n\t\t\t\t} else {\n\t\t\t\t\ttmpBiases.bias = this.shadowBias / farClip * 100;\n\t\t\t\t}\n\t\t\t\ttmpBiases.normalBias = this._isVsm ? this.vsmBias / (farClip / 7) : this._normalOffsetBias;\n\t\t\t\tbreak;\n\t\t}\n\t\treturn tmpBiases;\n\t}\n\tgetColor() {\n\t\treturn this._color;\n\t}\n\tgetBoundingSphere(sphere) {\n\t\tif (this._type === LIGHTTYPE_SPOT) {\n\t\t\tconst size = this.attenuationEnd;\n\t\t\tconst angle = this._outerConeAngle;\n\t\t\tconst cosAngle = this._outerConeAngleCos;\n\t\t\tconst node = this._node;\n\t\t\ttmpVec.copy(node.up);\n\t\t\tif (angle > 45) {\n\t\t\t\tsphere.radius = size * this._outerConeAngleSin;\n\t\t\t\ttmpVec.mulScalar(-size * cosAngle);\n\t\t\t} else {\n\t\t\t\tsphere.radius = size / (2 * cosAngle);\n\t\t\t\ttmpVec.mulScalar(-sphere.radius);\n\t\t\t}\n\t\t\tsphere.center.add2(node.getPosition(), tmpVec);\n\t\t} else if (this._type === LIGHTTYPE_OMNI) {\n\t\t\tsphere.center.copy(this._node.getPosition());\n\t\t\tsphere.radius = this.attenuationEnd;\n\t\t}\n\t}\n\tgetBoundingBox(box) {\n\t\tif (this._type === LIGHTTYPE_SPOT) {\n\t\t\tconst range = this.attenuationEnd;\n\t\t\tconst angle = this._outerConeAngle;\n\t\t\tconst node = this._node;\n\t\t\tconst scl = Math.abs(Math.sin(angle * math.DEG_TO_RAD) * range);\n\t\t\tbox.center.set(0, -range * 0.5, 0);\n\t\t\tbox.halfExtents.set(scl, range * 0.5, scl);\n\t\t\tbox.setFromTransformedAabb(box, node.getWorldTransform(), true);\n\t\t} else if (this._type === LIGHTTYPE_OMNI) {\n\t\t\tbox.center.copy(this._node.getPosition());\n\t\t\tbox.halfExtents.set(this.attenuationEnd, this.attenuationEnd, this.attenuationEnd);\n\t\t}\n\t}\n\t_updateShadowBias() {\n\t\tif (this._type === LIGHTTYPE_OMNI && !this.clusteredLighting || this._isPcss) {\n\t\t\tthis.shadowDepthState.depthBias = 0;\n\t\t\tthis.shadowDepthState.depthBiasSlope = 0;\n\t\t} else {\n\t\t\tconst bias = this.shadowBias * -1e3;\n\t\t\tthis.shadowDepthState.depthBias = bias;\n\t\t\tthis.shadowDepthState.depthBiasSlope = bias;\n\t\t}\n\t}\n\t_updateLinearColor() {\n\t\tlet intensity = this._intensity;\n\t\tif (this._usePhysicalUnits) {\n\t\t\tintensity = this._luminance / _Light.getLightUnitConversion(this._type, this._outerConeAngle * math.DEG_TO_RAD, this._innerConeAngle * math.DEG_TO_RAD);\n\t\t}\n\t\tconst color3 = this._color;\n\t\tconst colorLinear = this._colorLinear;\n\t\tif (intensity >= 1) {\n\t\t\ttmpColor2.linear(color3).mulScalar(intensity);\n\t\t} else {\n\t\t\ttmpColor2.copy(color3).mulScalar(intensity).linear();\n\t\t}\n\t\tcolorLinear[0] = tmpColor2.r;\n\t\tcolorLinear[1] = tmpColor2.g;\n\t\tcolorLinear[2] = tmpColor2.b;\n\t\tthis.updateClusterData(true);\n\t}\n\tsetColor() {\n\t\tif (arguments.length === 1) {\n\t\t\tthis._color.set(arguments[0].r, arguments[0].g, arguments[0].b);\n\t\t} else if (arguments.length === 3) {\n\t\t\tthis._color.set(arguments[0], arguments[1], arguments[2]);\n\t\t}\n\t\tthis._updateLinearColor();\n\t}\n\tlayersDirty() {\n\t\tthis.layers.forEach((layer) => {\n\t\t\tif (layer.hasLight(this)) {\n\t\t\t\tlayer.markLightsDirty();\n\t\t\t}\n\t\t});\n\t}\n\tupdateKey() {\n\t\tlet key = this._type << 29 | this._shadowType << 25 | this._falloffMode << 23 | (this._normalOffsetBias !== 0 ? 1 : 0) << 22 | (this._cookie ? 1 : 0) << 21 | (this._cookieFalloff ? 1 : 0) << 20 | chanId[this._cookieChannel.charAt(0)] << 18 | (this._cookieTransform ? 1 : 0) << 12 | this._shape << 10 | (this.numCascades > 1 ? 1 : 0) << 9 | (this._cascadeBlend > 0 ? 1 : 0) << 8 | (this.affectSpecularity ? 1 : 0) << 7 | this.mask << 6 | (this._castShadows ? 1 : 0) << 3;\n\t\tif (this._cookieChannel.length === 3) {\n\t\t\tkey |= chanId[this._cookieChannel.charAt(1)] << 16;\n\t\t\tkey |= chanId[this._cookieChannel.charAt(2)] << 14;\n\t\t}\n\t\tif (key !== this.key) {\n\t\t\tthis.layersDirty();\n\t\t}\n\t\tthis.key = key;\n\t}\n\tupdateClusteredFlags() {\n\t\tconst isDynamic = !!(this.mask & MASK_AFFECT_DYNAMIC);\n\t\tconst isLightmapped = !!(this.mask & MASK_AFFECT_LIGHTMAPPED);\n\t\tthis.clusteredFlags = (this.type === LIGHTTYPE_SPOT ? 1 : 0) << 30 | // bits 30\n\t\t(this._shape & 3) << 28 | // bits 29 - 28\n\t\t(this._falloffMode & 1) << 27 | // bits 27\n\t\t(channelMap[this._cookieChannel] ?? 0) << 23 | // bits 26 - 23\n\t\t(isDynamic ? 1 : 0) << 22 | // bits 22\n\t\t(isLightmapped ? 1 : 0) << 21;\n\t}\n\tgetClusteredFlags(castShadows, useCookie) {\n\t\treturn this.clusteredFlags | ((castShadows ? Math.floor(this.shadowIntensity * 255) : 0) & 255) << 0 | // bits 7 - 0\n\t\t((useCookie ? Math.floor(this.cookieIntensity * 255) : 0) & 255) << 8;\n\t}\n\tupdateClusterData(updateColor, updateAngles) {\n\t\tconst { clusteredData16 } = this;\n\t\tconst float2Half = FloatPacking.float2Half;\n\t\tif (updateColor) {\n\t\t\tclusteredData16[0] = float2Half(math.clamp(this._colorLinear[0] / LIGHT_COLOR_DIVIDER, 0, 65504));\n\t\t\tclusteredData16[1] = float2Half(math.clamp(this._colorLinear[1] / LIGHT_COLOR_DIVIDER, 0, 65504));\n\t\t\tclusteredData16[2] = float2Half(math.clamp(this._colorLinear[2] / LIGHT_COLOR_DIVIDER, 0, 65504));\n\t\t}\n\t\tif (updateAngles) {\n\t\t\tconst cosThreshold = 0.5;\n\t\t\tlet flags = 0;\n\t\t\tconst angleShrinkFactor = 0.99;\n\t\t\tlet innerCos = Math.cos(this._innerConeAngle * angleShrinkFactor * math.DEG_TO_RAD);\n\t\t\tif (innerCos > cosThreshold) {\n\t\t\t\tinnerCos = 1 - innerCos;\n\t\t\t\tflags |= 1;\n\t\t\t}\n\t\t\tlet outerCos = Math.cos(this._outerConeAngle * angleShrinkFactor * math.DEG_TO_RAD);\n\t\t\tif (outerCos > cosThreshold) {\n\t\t\t\touterCos = 1 - outerCos;\n\t\t\t\tflags |= 2;\n\t\t\t}\n\t\t\tclusteredData16[3] = flags;\n\t\t\tclusteredData16[4] = float2Half(innerCos);\n\t\t\tclusteredData16[5] = float2Half(outerCos);\n\t\t}\n\t}\n};\n\nvar LightingParams = class {\n\t_areaLightsEnabled = false;\n\t_cells = new Vec3(10, 3, 10);\n\t_maxLightsPerCell = 255;\n\t_maxLights = 255;\n\t_shadowsEnabled = true;\n\t_shadowType = SHADOW_PCF3_32F;\n\t_shadowAtlasResolution = 2048;\n\t_cookiesEnabled = false;\n\t_cookieAtlasResolution = 2048;\n\tdebugLayer;\n\tatlasSplit = null;\n\tconstructor(supportsAreaLights, maxTextureSize, dirtyLightsFnc) {\n\t\tthis._supportsAreaLights = supportsAreaLights;\n\t\tthis._maxTextureSize = maxTextureSize;\n\t\tthis._dirtyLightsFnc = dirtyLightsFnc;\n\t}\n\tapplySettings(render) {\n\t\tthis.shadowsEnabled = render.lightingShadowsEnabled ?? this.shadowsEnabled;\n\t\tthis.cookiesEnabled = render.lightingCookiesEnabled ?? this.cookiesEnabled;\n\t\tthis.areaLightsEnabled = render.lightingAreaLightsEnabled ?? this.areaLightsEnabled;\n\t\tthis.shadowAtlasResolution = render.lightingShadowAtlasResolution ?? this.shadowAtlasResolution;\n\t\tthis.cookieAtlasResolution = render.lightingCookieAtlasResolution ?? this.cookieAtlasResolution;\n\t\tthis.maxLightsPerCell = render.lightingMaxLightsPerCell ?? this.maxLightsPerCell;\n\t\tthis.maxLights = render.lightingMaxLights ?? this.maxLights;\n\t\tthis.shadowType = render.lightingShadowType ?? this.shadowType;\n\t\tif (render.lightingCells) {\n\t\t\tthis.cells = new Vec3(render.lightingCells);\n\t\t}\n\t}\n\tset cells(value) {\n\t\tthis._cells.copy(value);\n\t}\n\tget cells() {\n\t\treturn this._cells;\n\t}\n\tset maxLightsPerCell(value) {\n\t\tthis._maxLightsPerCell = math.clamp(value, 1, 255);\n\t}\n\tget maxLightsPerCell() {\n\t\treturn this._maxLightsPerCell;\n\t}\n\tset maxLights(value) {\n\t\tthis._maxLights = math.clamp(value, 1, Math.min(65535, this._maxTextureSize - 1));\n\t}\n\tget maxLights() {\n\t\treturn this._maxLights;\n\t}\n\tset cookieAtlasResolution(value) {\n\t\tthis._cookieAtlasResolution = math.clamp(value, 32, this._maxTextureSize);\n\t}\n\tget cookieAtlasResolution() {\n\t\treturn this._cookieAtlasResolution;\n\t}\n\tset shadowAtlasResolution(value) {\n\t\tthis._shadowAtlasResolution = math.clamp(value, 32, this._maxTextureSize);\n\t}\n\tget shadowAtlasResolution() {\n\t\treturn this._shadowAtlasResolution;\n\t}\n\tset shadowType(value) {\n\t\tif (this._shadowType !== value) {\n\t\t\tthis._shadowType = value;\n\t\t\tthis._dirtyLightsFnc();\n\t\t}\n\t}\n\tget shadowType() {\n\t\treturn this._shadowType;\n\t}\n\tset cookiesEnabled(value) {\n\t\tif (this._cookiesEnabled !== value) {\n\t\t\tthis._cookiesEnabled = value;\n\t\t\tthis._dirtyLightsFnc();\n\t\t}\n\t}\n\tget cookiesEnabled() {\n\t\treturn this._cookiesEnabled;\n\t}\n\tset areaLightsEnabled(value) {\n\t\tif (this._supportsAreaLights) {\n\t\t\tif (this._areaLightsEnabled !== value) {\n\t\t\t\tthis._areaLightsEnabled = value;\n\t\t\t\tthis._dirtyLightsFnc();\n\t\t\t}\n\t\t}\n\t}\n\tget areaLightsEnabled() {\n\t\treturn this._areaLightsEnabled;\n\t}\n\tset shadowsEnabled(value) {\n\t\tif (this._shadowsEnabled !== value) {\n\t\t\tthis._shadowsEnabled = value;\n\t\t\tthis._dirtyLightsFnc();\n\t\t}\n\t}\n\tget shadowsEnabled() {\n\t\treturn this._shadowsEnabled;\n\t}\n};\n\nvar MorphInstance = class _MorphInstance {\n\tconstructor(morph) {\n\t\tthis.morph = morph;\n\t\tmorph.incRefCount();\n\t\tthis.device = morph.device;\n\t\tconst maxNumTargets = morph._targets.length;\n\t\tthis.shader = this._createShader(maxNumTargets);\n\t\tthis._weights = [];\n\t\tthis._weightMap = /* @__PURE__ */ new Map();\n\t\tfor (let v6 = 0; v6 < morph._targets.length; v6++) {\n\t\t\tconst target2 = morph._targets[v6];\n\t\t\tif (target2.name) {\n\t\t\t\tthis._weightMap.set(target2.name, v6);\n\t\t\t}\n\t\t\tthis.setWeight(v6, target2.defaultWeight);\n\t\t}\n\t\tthis._shaderMorphWeights = new Float32Array(maxNumTargets);\n\t\tthis._shaderMorphIndex = new Uint32Array(maxNumTargets);\n\t\tconst createRT = (name, textureVar) => {\n\t\t\tthis[textureVar] = morph._createTexture(name, morph._renderTextureFormat);\n\t\t\treturn new RenderTarget({\n\t\t\t\tcolorBuffer: this[textureVar],\n\t\t\t\tdepth: false\n\t\t\t});\n\t\t};\n\t\tif (morph.morphPositions) {\n\t\t\tthis.rtPositions = createRT(\"MorphRTPos\", \"texturePositions\");\n\t\t}\n\t\tif (morph.morphNormals) {\n\t\t\tthis.rtNormals = createRT(\"MorphRTNrm\", \"textureNormals\");\n\t\t}\n\t\tthis._textureParams = new Float32Array([morph.morphTextureWidth, morph.morphTextureHeight]);\n\t\tconst halfSize = morph.aabb.halfExtents;\n\t\tthis._aabbSize = new Float32Array([halfSize.x * 4, halfSize.y * 4, halfSize.z * 4]);\n\t\tconst min = morph.aabb.getMin();\n\t\tthis._aabbMin = new Float32Array([min.x * 2, min.y * 2, min.z * 2]);\n\t\tthis._aabbNrmSize = new Float32Array([2, 2, 2]);\n\t\tthis._aabbNrmMin = new Float32Array([-1, -1, -1]);\n\t\tthis.aabbSizeId = this.device.scope.resolve(\"aabbSize\");\n\t\tthis.aabbMinId = this.device.scope.resolve(\"aabbMin\");\n\t\tthis.morphTextureId = this.device.scope.resolve(\"morphTexture\");\n\t\tthis.morphFactor = this.device.scope.resolve(\"morphFactor[0]\");\n\t\tthis.morphIndex = this.device.scope.resolve(\"morphIndex[0]\");\n\t\tthis.countId = this.device.scope.resolve(\"count\");\n\t\tthis.zeroTextures = false;\n\t}\n\tdestroy() {\n\t\tthis.shader = null;\n\t\tconst morph = this.morph;\n\t\tif (morph) {\n\t\t\tthis.morph = null;\n\t\t\tmorph.decRefCount();\n\t\t\tif (morph.refCount < 1) {\n\t\t\t\tmorph.destroy();\n\t\t\t}\n\t\t}\n\t\tthis.rtPositions?.destroy();\n\t\tthis.rtPositions = null;\n\t\tthis.texturePositions?.destroy();\n\t\tthis.texturePositions = null;\n\t\tthis.rtNormals?.destroy();\n\t\tthis.rtNormals = null;\n\t\tthis.textureNormals?.destroy();\n\t\tthis.textureNormals = null;\n\t}\n\tclone() {\n\t\treturn new _MorphInstance(this.morph);\n\t}\n\t_getWeightIndex(key) {\n\t\tif (typeof key === \"string\") {\n\t\t\tconst index = this._weightMap.get(key);\n\t\t\tif (index === void 0) {\n\t\t\t}\n\t\t\treturn index;\n\t\t}\n\t\treturn key;\n\t}\n\tgetWeight(key) {\n\t\tconst index = this._getWeightIndex(key);\n\t\treturn this._weights[index];\n\t}\n\tsetWeight(key, weight) {\n\t\tconst index = this._getWeightIndex(key);\n\t\tthis._weights[index] = weight;\n\t\tthis._dirty = true;\n\t}\n\t_createShader(maxCount) {\n\t\tconst defines = /* @__PURE__ */ new Map();\n\t\tdefines.set(\"{MORPH_TEXTURE_MAX_COUNT}\", maxCount);\n\t\tif (this.morph.intRenderFormat) defines.set(\"MORPH_INT\", \"\");\n\t\tconst outputType = this.morph.intRenderFormat ? \"uvec4\" : \"vec4\";\n\t\treturn ShaderUtils.createShader(this.device, {\n\t\t\tuniqueName: `TextureMorphShader_${maxCount}-${this.morph.intRenderFormat ? \"int\" : \"float\"}`,\n\t\t\tattributes: { vertex_position: SEMANTIC_POSITION },\n\t\t\tvertexChunk: \"morphVS\",\n\t\t\tfragmentChunk: \"morphPS\",\n\t\t\tfragmentDefines: defines,\n\t\t\tfragmentOutputTypes: [outputType]\n\t\t});\n\t}\n\t_updateTextureRenderTarget(renderTarget, activeCount, isPos) {\n\t\tconst { morph, device } = this;\n\t\tthis.setAabbUniforms(isPos);\n\t\tthis.morphTextureId.setValue(isPos ? morph.targetsTexturePositions : morph.targetsTextureNormals);\n\t\tdevice.setBlendState(BlendState.NOBLEND);\n\t\tthis.countId.setValue(activeCount);\n\t\tthis.morphFactor.setValue(this._shaderMorphWeights);\n\t\tthis.morphIndex.setValue(this._shaderMorphIndex);\n\t\tdrawQuadWithShader(device, renderTarget, this.shader);\n\t}\n\t_updateTextureMorph(activeCount) {\n\t\tconst device = this.device;\n\t\tif (activeCount > 0 || !this.zeroTextures) {\n\t\t\tif (this.rtPositions) {\n\t\t\t\tthis._updateTextureRenderTarget(this.rtPositions, activeCount, true);\n\t\t\t}\n\t\t\tif (this.rtNormals) {\n\t\t\t\tthis._updateTextureRenderTarget(this.rtNormals, activeCount, false);\n\t\t\t}\n\t\t\tthis.zeroTextures = activeCount === 0;\n\t\t}\n\t}\n\tsetAabbUniforms(isPos = true) {\n\t\tthis.aabbSizeId.setValue(isPos ? this._aabbSize : this._aabbNrmSize);\n\t\tthis.aabbMinId.setValue(isPos ? this._aabbMin : this._aabbNrmMin);\n\t}\n\tprepareRendering(device) {\n\t\tthis.setAabbUniforms();\n\t}\n\tupdate() {\n\t\tthis._dirty = false;\n\t\tconst targets = this.morph._targets;\n\t\tconst epsilon = 1e-5;\n\t\tconst weights = this._shaderMorphWeights;\n\t\tconst indices = this._shaderMorphIndex;\n\t\tlet activeCount = 0;\n\t\tfor (let i2 = 0; i2 < targets.length; i2++) {\n\t\t\tif (Math.abs(this.getWeight(i2)) > epsilon) {\n\t\t\t\tweights[activeCount] = this.getWeight(i2);\n\t\t\t\tindices[activeCount] = i2;\n\t\t\t\tactiveCount++;\n\t\t\t}\n\t\t}\n\t\tthis._updateTextureMorph(activeCount);\n\t}\n};\n\nvar Model = class _Model {\n\tgraph = null;\n\tmeshInstances = [];\n\tskinInstances = [];\n\tmorphInstances = [];\n\tconstructor() {\n\t\tthis.cameras = [];\n\t\tthis.lights = [];\n\t\tthis._shadersVersion = 0;\n\t\tthis._immutable = false;\n\t}\n\tgetGraph() {\n\t\treturn this.graph;\n\t}\n\tsetGraph(graph) {\n\t\tthis.graph = graph;\n\t}\n\tgetCameras() {\n\t\treturn this.cameras;\n\t}\n\tsetCameras(cameras) {\n\t\tthis.cameras = cameras;\n\t}\n\tgetLights() {\n\t\treturn this.lights;\n\t}\n\tsetLights(lights2) {\n\t\tthis.lights = lights2;\n\t}\n\tgetMaterials() {\n\t\tconst materials = [];\n\t\tfor (let i2 = 0; i2 < this.meshInstances.length; i2++) {\n\t\t\tconst meshInstance = this.meshInstances[i2];\n\t\t\tif (materials.indexOf(meshInstance.material) === -1) {\n\t\t\t\tmaterials.push(meshInstance.material);\n\t\t\t}\n\t\t}\n\t\treturn materials;\n\t}\n\tclone() {\n\t\tconst srcNodes = [];\n\t\tconst cloneNodes = [];\n\t\tconst _duplicate = function(node) {\n\t\t\tconst newNode = node.clone();\n\t\t\tsrcNodes.push(node);\n\t\t\tcloneNodes.push(newNode);\n\t\t\tfor (let idx = 0; idx < node._children.length; idx++) {\n\t\t\t\tnewNode.addChild(_duplicate(node._children[idx]));\n\t\t\t}\n\t\t\treturn newNode;\n\t\t};\n\t\tconst cloneGraph = _duplicate(this.graph);\n\t\tconst cloneMeshInstances = [];\n\t\tconst cloneSkinInstances = [];\n\t\tconst cloneMorphInstances = [];\n\t\tfor (let i2 = 0; i2 < this.skinInstances.length; i2++) {\n\t\t\tconst skin = this.skinInstances[i2].skin;\n\t\t\tconst cloneSkinInstance = new SkinInstance(skin);\n\t\t\tconst bones = [];\n\t\t\tfor (let j = 0; j < skin.boneNames.length; j++) {\n\t\t\t\tconst boneName = skin.boneNames[j];\n\t\t\t\tconst bone = cloneGraph.findByName(boneName);\n\t\t\t\tbones.push(bone);\n\t\t\t}\n\t\t\tcloneSkinInstance.bones = bones;\n\t\t\tcloneSkinInstances.push(cloneSkinInstance);\n\t\t}\n\t\tfor (let i2 = 0; i2 < this.morphInstances.length; i2++) {\n\t\t\tconst morph = this.morphInstances[i2].morph;\n\t\t\tconst cloneMorphInstance = new MorphInstance(morph);\n\t\t\tcloneMorphInstances.push(cloneMorphInstance);\n\t\t}\n\t\tfor (let i2 = 0; i2 < this.meshInstances.length; i2++) {\n\t\t\tconst meshInstance = this.meshInstances[i2];\n\t\t\tconst nodeIndex = srcNodes.indexOf(meshInstance.node);\n\t\t\tconst cloneMeshInstance = new MeshInstance(meshInstance.mesh, meshInstance.material, cloneNodes[nodeIndex]);\n\t\t\tif (meshInstance.skinInstance) {\n\t\t\t\tconst skinInstanceIndex = this.skinInstances.indexOf(meshInstance.skinInstance);\n\t\t\t\tcloneMeshInstance.skinInstance = cloneSkinInstances[skinInstanceIndex];\n\t\t\t}\n\t\t\tif (meshInstance.morphInstance) {\n\t\t\t\tconst morphInstanceIndex = this.morphInstances.indexOf(meshInstance.morphInstance);\n\t\t\t\tcloneMeshInstance.morphInstance = cloneMorphInstances[morphInstanceIndex];\n\t\t\t}\n\t\t\tcloneMeshInstances.push(cloneMeshInstance);\n\t\t}\n\t\tconst clone = new _Model();\n\t\tclone.graph = cloneGraph;\n\t\tclone.meshInstances = cloneMeshInstances;\n\t\tclone.skinInstances = cloneSkinInstances;\n\t\tclone.morphInstances = cloneMorphInstances;\n\t\tclone.getGraph().syncHierarchy();\n\t\treturn clone;\n\t}\n\tdestroy() {\n\t\tconst meshInstances = this.meshInstances;\n\t\tfor (let i2 = 0; i2 < meshInstances.length; i2++) {\n\t\t\tmeshInstances[i2].destroy();\n\t\t}\n\t\tthis.meshInstances.length = 0;\n\t}\n\tgenerateWireframe() {\n\t\tMeshInstance._prepareRenderStyleForArray(this.meshInstances, RENDERSTYLE_WIREFRAME);\n\t}\n};\n\nvar Morph = class extends RefCountedObject {\n\t_aabb;\n\tpreferHighPrecision;\n\tconstructor(targets, graphicsDevice, { preferHighPrecision = false } = {}) {\n\t\tsuper();\n\t\tthis.device = graphicsDevice;\n\t\tconst device = graphicsDevice;\n\t\tthis.preferHighPrecision = preferHighPrecision;\n\t\tthis._targets = targets.slice();\n\t\tconst renderableHalf = device.textureHalfFloatRenderable ? PIXELFORMAT_RGBA16F : void 0;\n\t\tconst renderableFloat = device.textureFloatRenderable ? PIXELFORMAT_RGBA32F : void 0;\n\t\tthis._renderTextureFormat = this.preferHighPrecision ? renderableFloat ?? renderableHalf : renderableHalf ?? renderableFloat;\n\t\tthis._renderTextureFormat = this._renderTextureFormat ?? PIXELFORMAT_RGBA16U;\n\t\tthis.intRenderFormat = isIntegerPixelFormat(this._renderTextureFormat);\n\t\tthis._textureFormat = this.preferHighPrecision ? PIXELFORMAT_RGBA32F : PIXELFORMAT_RGBA16F;\n\t\tthis._init();\n\t\tthis._updateMorphFlags();\n\t}\n\tdestroy() {\n\t\tthis.vertexBufferIds?.destroy();\n\t\tthis.vertexBufferIds = null;\n\t\tthis.targetsTexturePositions?.destroy();\n\t\tthis.targetsTexturePositions = null;\n\t\tthis.targetsTextureNormals?.destroy();\n\t\tthis.targetsTextureNormals = null;\n\t}\n\tget aabb() {\n\t\tif (!this._aabb) {\n\t\t\tconst min = new Vec3();\n\t\t\tconst max = new Vec3();\n\t\t\tfor (let i2 = 0; i2 < this._targets.length; i2++) {\n\t\t\t\tconst targetAabb = this._targets[i2].aabb;\n\t\t\t\tmin.min(targetAabb.getMin());\n\t\t\t\tmax.max(targetAabb.getMax());\n\t\t\t}\n\t\t\tthis._aabb = new BoundingBox();\n\t\t\tthis._aabb.setMinMax(min, max);\n\t\t}\n\t\treturn this._aabb;\n\t}\n\tget morphPositions() {\n\t\treturn this._morphPositions;\n\t}\n\tget morphNormals() {\n\t\treturn this._morphNormals;\n\t}\n\t_init() {\n\t\tthis._initTextureBased();\n\t\tfor (let i2 = 0; i2 < this._targets.length; i2++) {\n\t\t\tthis._targets[i2]._postInit();\n\t\t}\n\t}\n\t_findSparseSet(deltaArrays, ids3, usedDataIndices) {\n\t\tlet freeIndex = 1;\n\t\tconst dataCount = deltaArrays[0].length;\n\t\tfor (let v6 = 0; v6 < dataCount; v6 += 3) {\n\t\t\tlet vertexUsed = false;\n\t\t\tfor (let i2 = 0; i2 < deltaArrays.length; i2++) {\n\t\t\t\tconst data2 = deltaArrays[i2];\n\t\t\t\tif (data2[v6] !== 0 || data2[v6 + 1] !== 0 || data2[v6 + 2] !== 0) {\n\t\t\t\t\tvertexUsed = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (vertexUsed) {\n\t\t\t\tids3.push(freeIndex);\n\t\t\t\tusedDataIndices.push(v6 / 3);\n\t\t\t\tfreeIndex++;\n\t\t\t} else {\n\t\t\t\tids3.push(0);\n\t\t\t}\n\t\t}\n\t\treturn freeIndex;\n\t}\n\t_initTextureBased() {\n\t\tconst deltaArrays = [], deltaInfos = [];\n\t\tconst targets = this._targets;\n\t\tfor (let i2 = 0; i2 < targets.length; i2++) {\n\t\t\tconst target2 = targets[i2];\n\t\t\tif (target2.options.deltaPositions) {\n\t\t\t\tdeltaArrays.push(target2.options.deltaPositions);\n\t\t\t\tdeltaInfos.push(true);\n\t\t\t}\n\t\t\tif (target2.options.deltaNormals) {\n\t\t\t\tdeltaArrays.push(target2.options.deltaNormals);\n\t\t\t\tdeltaInfos.push(false);\n\t\t\t}\n\t\t}\n\t\tconst ids3 = [], usedDataIndices = [];\n\t\tconst freeIndex = this._findSparseSet(deltaArrays, ids3, usedDataIndices);\n\t\tconst maxTextureSize = this.device.maxTextureSize;\n\t\tlet morphTextureWidth = Math.ceil(Math.sqrt(freeIndex));\n\t\tmorphTextureWidth = Math.min(morphTextureWidth, maxTextureSize);\n\t\tconst morphTextureHeight = Math.ceil(freeIndex / morphTextureWidth);\n\t\tif (morphTextureHeight > maxTextureSize) {\n\t\t\treturn;\n\t\t}\n\t\tthis.morphTextureWidth = morphTextureWidth;\n\t\tthis.morphTextureHeight = morphTextureHeight;\n\t\tlet halfFloat = false;\n\t\tconst float2Half = FloatPacking.float2Half;\n\t\tif (this._textureFormat === PIXELFORMAT_RGBA16F) {\n\t\t\thalfFloat = true;\n\t\t}\n\t\tconst texturesDataPositions = [];\n\t\tconst texturesDataNormals = [];\n\t\tconst textureDataSize = morphTextureWidth * morphTextureHeight * 4;\n\t\tfor (let i2 = 0; i2 < deltaArrays.length; i2++) {\n\t\t\tconst data2 = deltaArrays[i2];\n\t\t\tconst textureData2 = this._textureFormat === PIXELFORMAT_RGBA16F ? new Uint16Array(textureDataSize) : new Float32Array(textureDataSize);\n\t\t\t(deltaInfos[i2] ? texturesDataPositions : texturesDataNormals).push(textureData2);\n\t\t\tif (halfFloat) {\n\t\t\t\tfor (let v6 = 0; v6 < usedDataIndices.length; v6++) {\n\t\t\t\t\tconst index = usedDataIndices[v6] * 3;\n\t\t\t\t\tconst dstIndex = v6 * 4 + 4;\n\t\t\t\t\ttextureData2[dstIndex] = float2Half(data2[index]);\n\t\t\t\t\ttextureData2[dstIndex + 1] = float2Half(data2[index + 1]);\n\t\t\t\t\ttextureData2[dstIndex + 2] = float2Half(data2[index + 2]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (let v6 = 0; v6 < usedDataIndices.length; v6++) {\n\t\t\t\t\tconst index = usedDataIndices[v6] * 3;\n\t\t\t\t\tconst dstIndex = v6 * 4 + 4;\n\t\t\t\t\ttextureData2[dstIndex] = data2[index];\n\t\t\t\t\ttextureData2[dstIndex + 1] = data2[index + 1];\n\t\t\t\t\ttextureData2[dstIndex + 2] = data2[index + 2];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (texturesDataPositions.length > 0) {\n\t\t\tthis.targetsTexturePositions = this._createTexture(\"MorphPositionsTexture\", this._textureFormat, targets.length, [texturesDataPositions]);\n\t\t}\n\t\tif (texturesDataNormals.length > 0) {\n\t\t\tthis.targetsTextureNormals = this._createTexture(\"MorphNormalsTexture\", this._textureFormat, targets.length, [texturesDataNormals]);\n\t\t}\n\t\tconst formatDesc = [{ semantic: SEMANTIC_ATTR15, components: 1, type: TYPE_UINT32, asInt: true }];\n\t\tthis.vertexBufferIds = new VertexBuffer(this.device, new VertexFormat(this.device, formatDesc, ids3.length), ids3.length, {\n\t\t\tdata: new Uint32Array(ids3)\n\t\t});\n\t\treturn true;\n\t}\n\tget targets() {\n\t\treturn this._targets;\n\t}\n\t// ---- deprecated block start ----\n\tgetTarget(index) {\n\t\treturn this.targets[index];\n\t}\n\t// ---- deprecated block end ----\n\t_updateMorphFlags() {\n\t\tthis._morphPositions = false;\n\t\tthis._morphNormals = false;\n\t\tfor (let i2 = 0; i2 < this._targets.length; i2++) {\n\t\t\tconst target2 = this._targets[i2];\n\t\t\tif (target2.morphPositions) {\n\t\t\t\tthis._morphPositions = true;\n\t\t\t}\n\t\t\tif (target2.morphNormals) {\n\t\t\t\tthis._morphNormals = true;\n\t\t\t}\n\t\t}\n\t}\n\t_createTexture(name, format, arrayLength, levels) {\n\t\treturn new Texture(this.device, {\n\t\t\tlevels,\n\t\t\tarrayLength,\n\t\t\twidth: this.morphTextureWidth,\n\t\t\theight: this.morphTextureHeight,\n\t\t\tformat,\n\t\t\tcubemap: false,\n\t\t\tmipmaps: false,\n\t\t\tminFilter: FILTER_NEAREST,\n\t\t\tmagFilter: FILTER_NEAREST,\n\t\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE,\n\t\t\tname\n\t\t});\n\t}\n};\n\nvar MorphTarget = class _MorphTarget {\n\tused = false;\n\tconstructor(options2) {\n\t\tthis.options = options2;\n\t\tthis._name = options2.name;\n\t\tthis._defaultWeight = options2.defaultWeight || 0;\n\t\tthis._aabb = options2.aabb;\n\t\tthis.deltaPositions = options2.deltaPositions;\n\t\tthis.morphPositions = !!options2.deltaPositions;\n\t\tthis.morphNormals = !!options2.deltaNormals;\n\t}\n\tget name() {\n\t\treturn this._name;\n\t}\n\tget defaultWeight() {\n\t\treturn this._defaultWeight;\n\t}\n\tget aabb() {\n\t\tif (!this._aabb) {\n\t\t\tthis._aabb = new BoundingBox();\n\t\t\tif (this.deltaPositions) {\n\t\t\t\tthis._aabb.compute(this.deltaPositions);\n\t\t\t}\n\t\t}\n\t\treturn this._aabb;\n\t}\n\tclone() {\n\t\treturn new _MorphTarget(this.options);\n\t}\n\t_postInit() {\n\t\tif (!this.options.preserveData) {\n\t\t\tthis.options = null;\n\t\t}\n\t\tthis.used = true;\n\t}\n};\n\nvar nonUniformScale;\nvar uniformScale = 1;\nvar particleTexChannels = 4;\nvar rotMat = new Mat4();\nvar rotMatInv = new Mat4();\nvar randomPosTformed = new Vec3();\nvar randomPos = new Vec3();\nvar rndFactor3Vec = new Vec3();\nvar particlePosPrev = new Vec3();\nvar velocityVec = new Vec3();\nvar localVelocityVec = new Vec3();\nvar velocityVec2 = new Vec3();\nvar localVelocityVec2 = new Vec3();\nvar radialVelocityVec = new Vec3();\nvar particlePos = new Vec3();\nvar particleFinalPos = new Vec3();\nvar moveDirVec = new Vec3();\nvar tmpVec32 = new Vec3();\nfunction saturate(x3) {\n\treturn Math.max(Math.min(x3, 1), 0);\n}\nfunction glMod(x3, y2) {\n\treturn x3 - y2 * Math.floor(x3 / y2);\n}\nvar ParticleCPUUpdater = class {\n\tconstructor(emitter) {\n\t\tthis._emitter = emitter;\n\t}\n\tcalcSpawnPosition(particleTex, spawnMatrix2, extentsInnerRatioUniform2, emitterPos, i2) {\n\t\tconst emitter = this._emitter;\n\t\tconst rX = Math.random();\n\t\tconst rY = Math.random();\n\t\tconst rZ = Math.random();\n\t\tconst rW = Math.random();\n\t\tif (emitter.useCpu) {\n\t\t\tparticleTex[i2 * particleTexChannels + 0 + emitter.numParticlesPot * 2 * particleTexChannels] = rX;\n\t\t\tparticleTex[i2 * particleTexChannels + 1 + emitter.numParticlesPot * 2 * particleTexChannels] = rY;\n\t\t\tparticleTex[i2 * particleTexChannels + 2 + emitter.numParticlesPot * 2 * particleTexChannels] = rZ;\n\t\t}\n\t\trandomPos.x = rX - 0.5;\n\t\trandomPos.y = rY - 0.5;\n\t\trandomPos.z = rZ - 0.5;\n\t\tif (emitter.emitterShape === EMITTERSHAPE_BOX) {\n\t\t\tconst max = Math.max(Math.abs(randomPos.x), Math.max(Math.abs(randomPos.y), Math.abs(randomPos.z)));\n\t\t\tconst edgeX = max + (0.5 - max) * extentsInnerRatioUniform2[0];\n\t\t\tconst edgeY = max + (0.5 - max) * extentsInnerRatioUniform2[1];\n\t\t\tconst edgeZ = max + (0.5 - max) * extentsInnerRatioUniform2[2];\n\t\t\trandomPos.x = edgeX * (max === Math.abs(randomPos.x) ? Math.sign(randomPos.x) : 2 * randomPos.x);\n\t\t\trandomPos.y = edgeY * (max === Math.abs(randomPos.y) ? Math.sign(randomPos.y) : 2 * randomPos.y);\n\t\t\trandomPos.z = edgeZ * (max === Math.abs(randomPos.z) ? Math.sign(randomPos.z) : 2 * randomPos.z);\n\t\t\tif (!emitter.localSpace) {\n\t\t\t\trandomPosTformed.copy(emitterPos).add(spawnMatrix2.transformPoint(randomPos));\n\t\t\t} else {\n\t\t\t\trandomPosTformed.copy(spawnMatrix2.transformPoint(randomPos));\n\t\t\t}\n\t\t} else {\n\t\t\trandomPos.normalize();\n\t\t\tconst spawnBoundsSphereInnerRatio = emitter.emitterRadius === 0 ? 0 : emitter.emitterRadiusInner / emitter.emitterRadius;\n\t\t\tconst r = rW * (1 - spawnBoundsSphereInnerRatio) + spawnBoundsSphereInnerRatio;\n\t\t\tif (!emitter.localSpace) {\n\t\t\t\trandomPosTformed.copy(emitterPos).add(randomPos.mulScalar(r * emitter.emitterRadius));\n\t\t\t} else {\n\t\t\t\trandomPosTformed.copy(randomPos.mulScalar(r * emitter.emitterRadius));\n\t\t\t}\n\t\t}\n\t\tconst particleRate = math.lerp(emitter.rate, emitter.rate2, rX);\n\t\tconst startSpawnTime = -particleRate * i2;\n\t\tparticleTex[i2 * particleTexChannels] = randomPosTformed.x;\n\t\tparticleTex[i2 * particleTexChannels + 1] = randomPosTformed.y;\n\t\tparticleTex[i2 * particleTexChannels + 2] = randomPosTformed.z;\n\t\tparticleTex[i2 * particleTexChannels + 3] = math.lerp(emitter.startAngle * math.DEG_TO_RAD, emitter.startAngle2 * math.DEG_TO_RAD, rX);\n\t\tparticleTex[i2 * particleTexChannels + 3 + emitter.numParticlesPot * particleTexChannels] = startSpawnTime;\n\t}\n\t// This should only change emitter state via in-params like data, vbToSort, etc.\n\tupdate(data2, vbToSort, particleTex, spawnMatrix2, extentsInnerRatioUniform2, emitterPos, delta3, isOnStop) {\n\t\tlet a, b, c2;\n\t\tconst emitter = this._emitter;\n\t\tif (emitter.meshInstance.node) {\n\t\t\tconst fullMat = emitter.meshInstance.node.worldTransform;\n\t\t\tfor (let j = 0; j < 12; j++) {\n\t\t\t\trotMat.data[j] = fullMat.data[j];\n\t\t\t}\n\t\t\trotMatInv.copy(rotMat);\n\t\t\trotMatInv.invert();\n\t\t\tnonUniformScale = emitter.meshInstance.node.localScale;\n\t\t\tuniformScale = Math.max(Math.max(nonUniformScale.x, nonUniformScale.y), nonUniformScale.z);\n\t\t}\n\t\temitterPos = emitter.meshInstance.node === null || emitter.localSpace ? Vec3.ZERO : emitter.meshInstance.node.getPosition();\n\t\tconst posCam = emitter.camera ? emitter.camera._node.getPosition() : Vec3.ZERO;\n\t\tconst vertSize = !emitter.useMesh ? 15 : 17;\n\t\tlet cf, cc;\n\t\tlet rotSpeed, rotSpeed2, scale2, alpha, alpha2, radialSpeed, radialSpeed2;\n\t\tconst precision1 = emitter.precision - 1;\n\t\tfor (let i2 = 0; i2 < emitter.numParticles; i2++) {\n\t\t\tconst id14 = Math.floor(emitter.vbCPU[i2 * emitter.numParticleVerts * (emitter.useMesh ? 6 : 4) + 3]);\n\t\t\tconst rndFactor = particleTex[id14 * particleTexChannels + 0 + emitter.numParticlesPot * 2 * particleTexChannels];\n\t\t\trndFactor3Vec.x = rndFactor;\n\t\t\trndFactor3Vec.y = particleTex[id14 * particleTexChannels + 1 + emitter.numParticlesPot * 2 * particleTexChannels];\n\t\t\trndFactor3Vec.z = particleTex[id14 * particleTexChannels + 2 + emitter.numParticlesPot * 2 * particleTexChannels];\n\t\t\tconst particleRate = emitter.rate + (emitter.rate2 - emitter.rate) * rndFactor;\n\t\t\tconst particleLifetime = emitter.lifetime;\n\t\t\tlet life = particleTex[id14 * particleTexChannels + 3 + emitter.numParticlesPot * particleTexChannels] + delta3;\n\t\t\tconst nlife = saturate(life / particleLifetime);\n\t\t\tlet scale3 = 0;\n\t\t\tlet alphaDiv = 0;\n\t\t\tconst angle = 0;\n\t\t\tconst respawn = life - delta3 <= 0 || life >= particleLifetime;\n\t\t\tif (respawn) {\n\t\t\t\tthis.calcSpawnPosition(particleTex, spawnMatrix2, extentsInnerRatioUniform2, emitterPos, id14);\n\t\t\t}\n\t\t\tlet particleEnabled = life > 0 && life < particleLifetime;\n\t\t\tif (particleEnabled) {\n\t\t\t\tc2 = nlife * precision1;\n\t\t\t\tcf = Math.floor(c2);\n\t\t\t\tcc = Math.ceil(c2);\n\t\t\t\tc2 %= 1;\n\t\t\t\ta = emitter.qRotSpeed[cf];\n\t\t\t\tb = emitter.qRotSpeed[cc];\n\t\t\t\trotSpeed = a + (b - a) * c2;\n\t\t\t\ta = emitter.qRotSpeed2[cf];\n\t\t\t\tb = emitter.qRotSpeed2[cc];\n\t\t\t\trotSpeed2 = a + (b - a) * c2;\n\t\t\t\ta = emitter.qScale[cf];\n\t\t\t\tb = emitter.qScale[cc];\n\t\t\t\tscale3 = a + (b - a) * c2;\n\t\t\t\ta = emitter.qScale2[cf];\n\t\t\t\tb = emitter.qScale2[cc];\n\t\t\t\tscale2 = a + (b - a) * c2;\n\t\t\t\ta = emitter.qAlpha[cf];\n\t\t\t\tb = emitter.qAlpha[cc];\n\t\t\t\talpha = a + (b - a) * c2;\n\t\t\t\ta = emitter.qAlpha2[cf];\n\t\t\t\tb = emitter.qAlpha2[cc];\n\t\t\t\talpha2 = a + (b - a) * c2;\n\t\t\t\ta = emitter.qRadialSpeed[cf];\n\t\t\t\tb = emitter.qRadialSpeed[cc];\n\t\t\t\tradialSpeed = a + (b - a) * c2;\n\t\t\t\ta = emitter.qRadialSpeed2[cf];\n\t\t\t\tb = emitter.qRadialSpeed2[cc];\n\t\t\t\tradialSpeed2 = a + (b - a) * c2;\n\t\t\t\tradialSpeed += (radialSpeed2 - radialSpeed) * (rndFactor * 100 % 1);\n\t\t\t\tparticlePosPrev.x = particleTex[id14 * particleTexChannels];\n\t\t\t\tparticlePosPrev.y = particleTex[id14 * particleTexChannels + 1];\n\t\t\t\tparticlePosPrev.z = particleTex[id14 * particleTexChannels + 2];\n\t\t\t\tif (!emitter.localSpace) {\n\t\t\t\t\tradialVelocityVec.copy(particlePosPrev).sub(emitterPos);\n\t\t\t\t} else {\n\t\t\t\t\tradialVelocityVec.copy(particlePosPrev);\n\t\t\t\t}\n\t\t\t\tradialVelocityVec.normalize().mulScalar(radialSpeed);\n\t\t\t\tcf *= 3;\n\t\t\t\tcc *= 3;\n\t\t\t\ta = emitter.qLocalVelocity[cf];\n\t\t\t\tb = emitter.qLocalVelocity[cc];\n\t\t\t\tlocalVelocityVec.x = a + (b - a) * c2;\n\t\t\t\ta = emitter.qLocalVelocity[cf + 1];\n\t\t\t\tb = emitter.qLocalVelocity[cc + 1];\n\t\t\t\tlocalVelocityVec.y = a + (b - a) * c2;\n\t\t\t\ta = emitter.qLocalVelocity[cf + 2];\n\t\t\t\tb = emitter.qLocalVelocity[cc + 2];\n\t\t\t\tlocalVelocityVec.z = a + (b - a) * c2;\n\t\t\t\ta = emitter.qLocalVelocity2[cf];\n\t\t\t\tb = emitter.qLocalVelocity2[cc];\n\t\t\t\tlocalVelocityVec2.x = a + (b - a) * c2;\n\t\t\t\ta = emitter.qLocalVelocity2[cf + 1];\n\t\t\t\tb = emitter.qLocalVelocity2[cc + 1];\n\t\t\t\tlocalVelocityVec2.y = a + (b - a) * c2;\n\t\t\t\ta = emitter.qLocalVelocity2[cf + 2];\n\t\t\t\tb = emitter.qLocalVelocity2[cc + 2];\n\t\t\t\tlocalVelocityVec2.z = a + (b - a) * c2;\n\t\t\t\ta = emitter.qVelocity[cf];\n\t\t\t\tb = emitter.qVelocity[cc];\n\t\t\t\tvelocityVec.x = a + (b - a) * c2;\n\t\t\t\ta = emitter.qVelocity[cf + 1];\n\t\t\t\tb = emitter.qVelocity[cc + 1];\n\t\t\t\tvelocityVec.y = a + (b - a) * c2;\n\t\t\t\ta = emitter.qVelocity[cf + 2];\n\t\t\t\tb = emitter.qVelocity[cc + 2];\n\t\t\t\tvelocityVec.z = a + (b - a) * c2;\n\t\t\t\ta = emitter.qVelocity2[cf];\n\t\t\t\tb = emitter.qVelocity2[cc];\n\t\t\t\tvelocityVec2.x = a + (b - a) * c2;\n\t\t\t\ta = emitter.qVelocity2[cf + 1];\n\t\t\t\tb = emitter.qVelocity2[cc + 1];\n\t\t\t\tvelocityVec2.y = a + (b - a) * c2;\n\t\t\t\ta = emitter.qVelocity2[cf + 2];\n\t\t\t\tb = emitter.qVelocity2[cc + 2];\n\t\t\t\tvelocityVec2.z = a + (b - a) * c2;\n\t\t\t\tlocalVelocityVec.x += (localVelocityVec2.x - localVelocityVec.x) * rndFactor3Vec.x;\n\t\t\t\tlocalVelocityVec.y += (localVelocityVec2.y - localVelocityVec.y) * rndFactor3Vec.y;\n\t\t\t\tlocalVelocityVec.z += (localVelocityVec2.z - localVelocityVec.z) * rndFactor3Vec.z;\n\t\t\t\tif (emitter.initialVelocity > 0) {\n\t\t\t\t\tif (emitter.emitterShape === EMITTERSHAPE_SPHERE) {\n\t\t\t\t\t\trandomPos.copy(rndFactor3Vec).mulScalar(2).sub(Vec3.ONE).normalize();\n\t\t\t\t\t\tlocalVelocityVec.add(randomPos.mulScalar(emitter.initialVelocity));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlocalVelocityVec.add(Vec3.FORWARD.mulScalar(emitter.initialVelocity));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tvelocityVec.x += (velocityVec2.x - velocityVec.x) * rndFactor3Vec.x;\n\t\t\t\tvelocityVec.y += (velocityVec2.y - velocityVec.y) * rndFactor3Vec.y;\n\t\t\t\tvelocityVec.z += (velocityVec2.z - velocityVec.z) * rndFactor3Vec.z;\n\t\t\t\trotSpeed += (rotSpeed2 - rotSpeed) * rndFactor3Vec.y;\n\t\t\t\tscale3 = (scale3 + (scale2 - scale3) * (rndFactor * 1e4 % 1)) * uniformScale;\n\t\t\t\talphaDiv = (alpha2 - alpha) * (rndFactor * 1e3 % 1);\n\t\t\t\tif (emitter.meshInstance.node) {\n\t\t\t\t\tif (!emitter.localSpace) {\n\t\t\t\t\t\trotMat.transformPoint(localVelocityVec, localVelocityVec);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlocalVelocityVec.x /= nonUniformScale.x;\n\t\t\t\t\t\tlocalVelocityVec.y /= nonUniformScale.y;\n\t\t\t\t\t\tlocalVelocityVec.z /= nonUniformScale.z;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!emitter.localSpace) {\n\t\t\t\t\tlocalVelocityVec.add(velocityVec.mul(nonUniformScale));\n\t\t\t\t\tlocalVelocityVec.add(radialVelocityVec.mul(nonUniformScale));\n\t\t\t\t} else {\n\t\t\t\t\trotMatInv.transformPoint(velocityVec, velocityVec);\n\t\t\t\t\tlocalVelocityVec.add(velocityVec).add(radialVelocityVec);\n\t\t\t\t}\n\t\t\t\tmoveDirVec.copy(localVelocityVec);\n\t\t\t\tparticlePos.copy(particlePosPrev).add(localVelocityVec.mulScalar(delta3));\n\t\t\t\tparticleFinalPos.copy(particlePos);\n\t\t\t\tparticleTex[id14 * particleTexChannels] = particleFinalPos.x;\n\t\t\t\tparticleTex[id14 * particleTexChannels + 1] = particleFinalPos.y;\n\t\t\t\tparticleTex[id14 * particleTexChannels + 2] = particleFinalPos.z;\n\t\t\t\tparticleTex[id14 * particleTexChannels + 3] += rotSpeed * delta3;\n\t\t\t\tif (emitter.wrap && emitter.wrapBounds) {\n\t\t\t\t\tif (!emitter.localSpace) {\n\t\t\t\t\t\tparticleFinalPos.sub(emitterPos);\n\t\t\t\t\t}\n\t\t\t\t\tparticleFinalPos.x = glMod(particleFinalPos.x, emitter.wrapBounds.x) - emitter.wrapBounds.x * 0.5;\n\t\t\t\t\tparticleFinalPos.y = glMod(particleFinalPos.y, emitter.wrapBounds.y) - emitter.wrapBounds.y * 0.5;\n\t\t\t\t\tparticleFinalPos.z = glMod(particleFinalPos.z, emitter.wrapBounds.z) - emitter.wrapBounds.z * 0.5;\n\t\t\t\t\tif (!emitter.localSpace) {\n\t\t\t\t\t\tparticleFinalPos.add(emitterPos);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (emitter.sort > 0) {\n\t\t\t\t\tif (emitter.sort === 1) {\n\t\t\t\t\t\ttmpVec32.copy(particleFinalPos).sub(posCam);\n\t\t\t\t\t\temitter.particleDistance[id14] = -(tmpVec32.x * tmpVec32.x + tmpVec32.y * tmpVec32.y + tmpVec32.z * tmpVec32.z);\n\t\t\t\t\t} else if (emitter.sort === 2) {\n\t\t\t\t\t\temitter.particleDistance[id14] = life;\n\t\t\t\t\t} else if (emitter.sort === 3) {\n\t\t\t\t\t\temitter.particleDistance[id14] = -life;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (isOnStop) {\n\t\t\t\tif (life < 0) {\n\t\t\t\t\tparticleTex[id14 * particleTexChannels + 3 + emitter.numParticlesPot * 2 * particleTexChannels] = -1;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (life >= particleLifetime) {\n\t\t\t\t\tlife -= Math.max(particleLifetime, emitter.numParticles * particleRate);\n\t\t\t\t\tparticleTex[id14 * particleTexChannels + 3 + emitter.numParticlesPot * 2 * particleTexChannels] = emitter.loop ? 1 : -1;\n\t\t\t\t}\n\t\t\t\tif (life < 0 && emitter.loop) {\n\t\t\t\t\tparticleTex[id14 * particleTexChannels + 3 + emitter.numParticlesPot * 2 * particleTexChannels] = 1;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (particleTex[id14 * particleTexChannels + 3 + emitter.numParticlesPot * 2 * particleTexChannels] < 0) {\n\t\t\t\tparticleEnabled = false;\n\t\t\t}\n\t\t\tparticleTex[id14 * particleTexChannels + 3 + emitter.numParticlesPot * particleTexChannels] = life;\n\t\t\tfor (let v6 = 0; v6 < emitter.numParticleVerts; v6++) {\n\t\t\t\tconst vbOffset = (i2 * emitter.numParticleVerts + v6) * (emitter.useMesh ? 6 : 4);\n\t\t\t\tlet quadX = emitter.vbCPU[vbOffset];\n\t\t\t\tlet quadY = emitter.vbCPU[vbOffset + 1];\n\t\t\t\tlet quadZ = emitter.vbCPU[vbOffset + 2];\n\t\t\t\tif (!particleEnabled) {\n\t\t\t\t\tquadX = quadY = quadZ = 0;\n\t\t\t\t}\n\t\t\t\tconst w = i2 * emitter.numParticleVerts * vertSize + v6 * vertSize;\n\t\t\t\tdata2[w] = particleFinalPos.x;\n\t\t\t\tdata2[w + 1] = particleFinalPos.y;\n\t\t\t\tdata2[w + 2] = particleFinalPos.z;\n\t\t\t\tdata2[w + 3] = nlife;\n\t\t\t\tdata2[w + 4] = emitter.alignToMotion ? angle : particleTex[id14 * particleTexChannels + 3];\n\t\t\t\tdata2[w + 5] = scale3;\n\t\t\t\tdata2[w + 6] = alphaDiv;\n\t\t\t\tdata2[w + 7] = moveDirVec.x;\n\t\t\t\tdata2[w + 8] = quadX;\n\t\t\t\tdata2[w + 9] = quadY;\n\t\t\t\tdata2[w + 10] = quadZ;\n\t\t\t\tdata2[w + 11] = moveDirVec.y;\n\t\t\t\tdata2[w + 12] = id14;\n\t\t\t\tdata2[w + 13] = moveDirVec.z;\n\t\t\t\tdata2[w + 14] = emitter.vbCPU[vbOffset + 3];\n\t\t\t\tif (emitter.useMesh) {\n\t\t\t\t\tdata2[w + 15] = emitter.vbCPU[vbOffset + 4];\n\t\t\t\t\tdata2[w + 16] = emitter.vbCPU[vbOffset + 5];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (emitter.sort > PARTICLESORT_NONE && emitter.camera) {\n\t\t\tconst vbStride = emitter.useMesh ? 6 : 4;\n\t\t\tconst particleDistance = emitter.particleDistance;\n\t\t\tfor (let i2 = 0; i2 < emitter.numParticles; i2++) {\n\t\t\t\tvbToSort[i2][0] = i2;\n\t\t\t\tvbToSort[i2][1] = particleDistance[Math.floor(emitter.vbCPU[i2 * emitter.numParticleVerts * vbStride + 3])];\n\t\t\t}\n\t\t\temitter.vbOld.set(emitter.vbCPU);\n\t\t\tvbToSort.sort((p12, p22) => {\n\t\t\t\treturn p12[1] - p22[1];\n\t\t\t});\n\t\t\tfor (let i2 = 0; i2 < emitter.numParticles; i2++) {\n\t\t\t\tconst src = vbToSort[i2][0] * emitter.numParticleVerts * vbStride;\n\t\t\t\tconst dest = i2 * emitter.numParticleVerts * vbStride;\n\t\t\t\tfor (let j = 0; j < emitter.numParticleVerts * vbStride; j++) {\n\t\t\t\t\temitter.vbCPU[dest + j] = emitter.vbOld[src + j];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar spawnMatrix3 = new Mat3();\nvar emitterMatrix3 = new Mat3();\nvar emitterMatrix3Inv = new Mat3();\nvar ParticleGPUUpdater = class {\n\tconstructor(emitter, gd) {\n\t\tthis._emitter = emitter;\n\t\tthis.frameRandomUniform = new Float32Array(3);\n\t\tthis.emitterPosUniform = new Float32Array(3);\n\t\tthis.emitterScaleUniform = new Float32Array([1, 1, 1]);\n\t\tthis.constantParticleTexIN = gd.scope.resolve(\"particleTexIN\");\n\t\tthis.constantParticleTexOUT = gd.scope.resolve(\"particleTexOUT\");\n\t\tthis.constantEmitterPos = gd.scope.resolve(\"emitterPos\");\n\t\tthis.constantEmitterScale = gd.scope.resolve(\"emitterScale\");\n\t\tthis.constantSpawnBounds = gd.scope.resolve(\"spawnBounds\");\n\t\tthis.constantSpawnPosInnerRatio = gd.scope.resolve(\"spawnPosInnerRatio\");\n\t\tthis.constantSpawnBoundsSphere = gd.scope.resolve(\"spawnBoundsSphere\");\n\t\tthis.constantSpawnBoundsSphereInnerRatio = gd.scope.resolve(\"spawnBoundsSphereInnerRatio\");\n\t\tthis.constantInitialVelocity = gd.scope.resolve(\"initialVelocity\");\n\t\tthis.constantFrameRandom = gd.scope.resolve(\"frameRandom\");\n\t\tthis.constantDelta = gd.scope.resolve(\"delta\");\n\t\tthis.constantRate = gd.scope.resolve(\"rate\");\n\t\tthis.constantRateDiv = gd.scope.resolve(\"rateDiv\");\n\t\tthis.constantLifetime = gd.scope.resolve(\"lifetime\");\n\t\tthis.constantGraphSampleSize = gd.scope.resolve(\"graphSampleSize\");\n\t\tthis.constantGraphNumSamples = gd.scope.resolve(\"graphNumSamples\");\n\t\tthis.constantInternalTex0 = gd.scope.resolve(\"internalTex0\");\n\t\tthis.constantInternalTex1 = gd.scope.resolve(\"internalTex1\");\n\t\tthis.constantInternalTex2 = gd.scope.resolve(\"internalTex2\");\n\t\tthis.constantInternalTex3 = gd.scope.resolve(\"internalTex3\");\n\t\tthis.constantEmitterMatrix = gd.scope.resolve(\"emitterMatrix\");\n\t\tthis.constantEmitterMatrixInv = gd.scope.resolve(\"emitterMatrixInv\");\n\t\tthis.constantNumParticles = gd.scope.resolve(\"numParticles\");\n\t\tthis.constantNumParticlesPot = gd.scope.resolve(\"numParticlesPot\");\n\t\tthis.constantLocalVelocityDivMult = gd.scope.resolve(\"localVelocityDivMult\");\n\t\tthis.constantVelocityDivMult = gd.scope.resolve(\"velocityDivMult\");\n\t\tthis.constantRotSpeedDivMult = gd.scope.resolve(\"rotSpeedDivMult\");\n\t\tthis.constantSeed = gd.scope.resolve(\"seed\");\n\t\tthis.constantStartAngle = gd.scope.resolve(\"startAngle\");\n\t\tthis.constantStartAngle2 = gd.scope.resolve(\"startAngle2\");\n\t\tthis.constantFaceTangent = gd.scope.resolve(\"faceTangent\");\n\t\tthis.constantFaceBinorm = gd.scope.resolve(\"faceBinorm\");\n\t\tthis.constantRadialSpeedDivMult = gd.scope.resolve(\"radialSpeedDivMult\");\n\t}\n\trandomize() {\n\t\tthis.frameRandomUniform[0] = Math.random();\n\t\tthis.frameRandomUniform[1] = Math.random();\n\t\tthis.frameRandomUniform[2] = Math.random();\n\t}\n\t// This shouldn't change emitter state, only read from it\n\tupdate(device, spawnMatrix2, extentsInnerRatioUniform2, delta3, isOnStop) {\n\t\tconst emitter = this._emitter;\n\t\tdevice.setDrawStates();\n\t\tthis.randomize();\n\t\tthis.constantRadialSpeedDivMult.setValue(emitter.material.getParameter(\"radialSpeedDivMult\").data);\n\t\tthis.constantGraphSampleSize.setValue(1 / emitter.precision);\n\t\tthis.constantGraphNumSamples.setValue(emitter.precision);\n\t\tthis.constantNumParticles.setValue(emitter.numParticles);\n\t\tthis.constantNumParticlesPot.setValue(emitter.numParticlesPot);\n\t\tthis.constantInternalTex0.setValue(emitter.internalTex0);\n\t\tthis.constantInternalTex1.setValue(emitter.internalTex1);\n\t\tthis.constantInternalTex2.setValue(emitter.internalTex2);\n\t\tthis.constantInternalTex3.setValue(emitter.internalTex3);\n\t\tconst node = emitter.meshInstance.node;\n\t\tconst emitterScale = node === null ? Vec3.ONE : node.localScale;\n\t\tconst emitterPos = node === null || emitter.localSpace ? Vec3.ZERO : node.getPosition();\n\t\tconst emitterMatrix = node === null ? Mat4.IDENTITY : node.getWorldTransform();\n\t\tif (emitter.emitterShape === EMITTERSHAPE_BOX) {\n\t\t\tspawnMatrix3.setFromMat4(spawnMatrix2);\n\t\t\tthis.constantSpawnBounds.setValue(spawnMatrix3.data);\n\t\t\tthis.constantSpawnPosInnerRatio.setValue(extentsInnerRatioUniform2);\n\t\t} else {\n\t\t\tthis.constantSpawnBoundsSphere.setValue(emitter.emitterRadius);\n\t\t\tthis.constantSpawnBoundsSphereInnerRatio.setValue(emitter.emitterRadius === 0 ? 0 : emitter.emitterRadiusInner / emitter.emitterRadius);\n\t\t}\n\t\tthis.constantInitialVelocity.setValue(emitter.initialVelocity);\n\t\temitterMatrix3.setFromMat4(emitterMatrix);\n\t\temitterMatrix3Inv.invertMat4(emitterMatrix);\n\t\tthis.emitterPosUniform[0] = emitterPos.x;\n\t\tthis.emitterPosUniform[1] = emitterPos.y;\n\t\tthis.emitterPosUniform[2] = emitterPos.z;\n\t\tthis.constantEmitterPos.setValue(this.emitterPosUniform);\n\t\tthis.constantFrameRandom.setValue(this.frameRandomUniform);\n\t\tthis.constantDelta.setValue(delta3);\n\t\tthis.constantRate.setValue(emitter.rate);\n\t\tthis.constantRateDiv.setValue(emitter.rate2 - emitter.rate);\n\t\tthis.constantStartAngle.setValue(emitter.startAngle * math.DEG_TO_RAD);\n\t\tthis.constantStartAngle2.setValue(emitter.startAngle2 * math.DEG_TO_RAD);\n\t\tthis.constantSeed.setValue(emitter.seed);\n\t\tthis.constantLifetime.setValue(emitter.lifetime);\n\t\tthis.emitterScaleUniform[0] = emitterScale.x;\n\t\tthis.emitterScaleUniform[1] = emitterScale.y;\n\t\tthis.emitterScaleUniform[2] = emitterScale.z;\n\t\tthis.constantEmitterScale.setValue(this.emitterScaleUniform);\n\t\tthis.constantEmitterMatrix.setValue(emitterMatrix3.data);\n\t\tthis.constantEmitterMatrixInv.setValue(emitterMatrix3Inv.data);\n\t\tthis.constantLocalVelocityDivMult.setValue(emitter.localVelocityUMax);\n\t\tthis.constantVelocityDivMult.setValue(emitter.velocityUMax);\n\t\tthis.constantRotSpeedDivMult.setValue(emitter.rotSpeedUMax[0]);\n\t\tlet texIN = emitter.swapTex ? emitter.particleTexOUT : emitter.particleTexIN;\n\t\ttexIN = emitter.beenReset ? emitter.particleTexStart : texIN;\n\t\tconst texOUT = emitter.swapTex ? emitter.particleTexIN : emitter.particleTexOUT;\n\t\tthis.constantParticleTexIN.setValue(texIN);\n\t\tdrawQuadWithShader(\n\t\t\tdevice,\n\t\t\temitter.swapTex ? emitter.rtParticleTexIN : emitter.rtParticleTexOUT,\n\t\t\t!isOnStop ? emitter.loop ? emitter.shaderParticleUpdateRespawn : emitter.shaderParticleUpdateNoRespawn : emitter.shaderParticleUpdateOnStop\n\t\t);\n\t\temitter.material.setParameter(\"particleTexOUT\", texIN);\n\t\temitter.material.setParameter(\"particleTexIN\", texOUT);\n\t\temitter.beenReset = false;\n\t\temitter.swapTex = !emitter.swapTex;\n\t}\n};\n\nvar normalTypeNames = [\n\t\"NONE\",\n\t\"VERTEX\",\n\t\"MAP\"\n];\nvar ShaderGeneratorParticle = class extends ShaderGenerator {\n\tgenerateKey(options2) {\n\t\tconst definesHash = ShaderGenerator.definesHash(options2.defines);\n\t\tlet key = `particle_${definesHash}_`;\n\t\tfor (const prop in options2) {\n\t\t\tif (options2.hasOwnProperty(prop)) {\n\t\t\t\tkey += options2[prop];\n\t\t\t}\n\t\t}\n\t\treturn key;\n\t}\n\tcreateVertexDefines(options2, attributes) {\n\t\tconst vDefines = new Map(options2.defines);\n\t\tif (options2.mesh) vDefines.set(\"USE_MESH\", \"\");\n\t\tif (options2.meshUv) vDefines.set(\"USE_MESH_UV\", \"\");\n\t\tif (options2.localSpace) vDefines.set(\"LOCAL_SPACE\", \"\");\n\t\tif (options2.screenSpace) vDefines.set(\"SCREEN_SPACE\", \"\");\n\t\tif (options2.animTex) vDefines.set(\"ANIMTEX\", \"\");\n\t\tif (options2.soft > 0) vDefines.set(\"SOFT\", \"\");\n\t\tif (options2.stretch > 0) vDefines.set(\"STRETCH\", \"\");\n\t\tif (options2.customFace) vDefines.set(\"CUSTOM_FACE\", \"\");\n\t\tif (options2.localSpace) vDefines.set(\"LOCAL_SPACE\", \"\");\n\t\tif (options2.animTexLoop) vDefines.set(\"ANIMTEX_LOOP\", \"\");\n\t\tif (options2.wrap) vDefines.set(\"WRAP\", \"\");\n\t\tif (options2.alignToMotion) vDefines.set(\"ALIGN_TO_MOTION\", \"\");\n\t\tvDefines.set(\"NORMAL\", normalTypeNames[options2.normal]);\n\t\tattributes.particle_vertexData = SEMANTIC_POSITION;\n\t\tif (options2.mesh && options2.meshUv) {\n\t\t\tattributes.particle_uv = SEMANTIC_TEXCOORD0;\n\t\t}\n\t\tif (options2.useCpu) {\n\t\t\tattributes.particle_vertexData2 = SEMANTIC_ATTR1;\n\t\t\tattributes.particle_vertexData3 = SEMANTIC_ATTR2;\n\t\t\tattributes.particle_vertexData4 = SEMANTIC_ATTR3;\n\t\t\tattributes.particle_vertexData5 = SEMANTIC_ATTR4;\n\t\t}\n\t\treturn vDefines;\n\t}\n\tcreateFragmentDefines(options2) {\n\t\tconst fDefines = new Map(options2.defines);\n\t\tif (options2.soft > 0) fDefines.set(\"SOFT\", \"\");\n\t\tif (options2.halflambert) fDefines.set(\"HALF_LAMBERT\", \"\");\n\t\tfDefines.set(\"NORMAL\", normalTypeNames[options2.normal]);\n\t\tfDefines.set(\"BLEND\", blendNames[options2.blend]);\n\t\treturn fDefines;\n\t}\n\tcreateShaderDefinition(device, options2) {\n\t\tconst shaderLanguage = device.isWebGPU ? SHADERLANGUAGE_WGSL : SHADERLANGUAGE_GLSL;\n\t\tconst engineChunks = ShaderChunks.get(device, shaderLanguage);\n\t\tconst attributes = {};\n\t\tconst vDefines = this.createVertexDefines(options2, attributes);\n\t\tconst fDefines = this.createFragmentDefines(options2);\n\t\tconst executionDefine = `PARTICLE_${options2.useCpu ? \"CPU\" : \"GPU\"}\n`;\n\t\tvDefines.set(executionDefine, \"\");\n\t\tfDefines.set(executionDefine, \"\");\n\t\tconst includes = new Map(engineChunks);\n\t\treturn ShaderDefinitionUtils.createDefinition(device, {\n\t\t\tname: \"ParticleShader\",\n\t\t\tshaderLanguage,\n\t\t\tattributes,\n\t\t\tvertexCode: engineChunks.get(\"particle_shaderVS\"),\n\t\t\tfragmentCode: engineChunks.get(\"particle_shaderPS\"),\n\t\t\tfragmentDefines: fDefines,\n\t\t\tfragmentIncludes: includes,\n\t\t\tvertexIncludes: includes,\n\t\t\tvertexDefines: vDefines\n\t\t});\n\t}\n};\nvar particle = new ShaderGeneratorParticle();\n\nvar ParticleMaterial = class extends Material {\n\temitter = null;\n\tconstructor(emitter) {\n\t\tsuper();\n\t\tthis.sceneTexturesWrite = false;\n\t\tthis.emitter = emitter;\n\t}\n\tgetShaderVariant(params) {\n\t\tconst { device, scene, cameraShaderParams, objDefs } = params;\n\t\tconst { emitter } = this;\n\t\tconst options2 = {\n\t\t\tdefines: ShaderUtils.getCoreDefines(this, params),\n\t\t\tpass: SHADER_FORWARD,\n\t\t\tuseCpu: this.emitter.useCpu,\n\t\t\tnormal: emitter.lighting ? emitter.normalMap !== null ? 2 : 1 : 0,\n\t\t\thalflambert: this.emitter.halfLambert,\n\t\t\tstretch: this.emitter.stretch,\n\t\t\talignToMotion: this.emitter.alignToMotion,\n\t\t\tsoft: this.emitter.depthSoftening,\n\t\t\tmesh: this.emitter.useMesh,\n\t\t\tmeshUv: objDefs & SHADERDEF_UV0,\n\t\t\tgamma: cameraShaderParams?.shaderOutputGamma ?? GAMMA_NONE,\n\t\t\ttoneMap: cameraShaderParams?.toneMapping ?? TONEMAP_LINEAR,\n\t\t\tfog: scene && !this.emitter.noFog ? scene.fog.type : \"none\",\n\t\t\twrap: this.emitter.wrap && this.emitter.wrapBounds,\n\t\t\tlocalSpace: this.emitter.localSpace,\n\t\t\t// in Editor, screen space particles (children of 2D Screen) are still rendered in 3d space\n\t\t\tscreenSpace: emitter.inTools ? false : this.emitter.screenSpace,\n\t\t\tblend: this.emitter.blendType,\n\t\t\tanimTex: this.emitter._isAnimated(),\n\t\t\tanimTexLoop: this.emitter.animLoop,\n\t\t\tcustomFace: this.emitter.orientation !== PARTICLEORIENTATION_SCREEN\n\t\t};\n\t\tconst processingOptions = new ShaderProcessorOptions(params.viewUniformFormat, params.vertexFormat);\n\t\tconst library = getProgramLibrary(device);\n\t\tlibrary.register(\"particle\", particle);\n\t\treturn library.getProgram(\"particle\", options2, processingOptions, this.userId);\n\t}\n};\n\nvar particleVerts = [\n\t[-1, -1],\n\t[1, -1],\n\t[1, 1],\n\t[-1, 1]\n];\nfunction _createTexture(device, width, height, pixelData, format = PIXELFORMAT_RGBA32F, mult8Bit, filter) {\n\tlet mipFilter = FILTER_NEAREST;\n\tif (filter && (format === PIXELFORMAT_RGBA8 || format === PIXELFORMAT_SRGBA8)) {\n\t\tmipFilter = FILTER_LINEAR;\n\t}\n\tconst texture = new Texture(device, {\n\t\twidth,\n\t\theight,\n\t\tformat,\n\t\tcubemap: false,\n\t\tmipmaps: false,\n\t\tminFilter: mipFilter,\n\t\tmagFilter: mipFilter,\n\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\taddressV: ADDRESS_CLAMP_TO_EDGE,\n\t\tname: \"ParticleSystemTexture\"\n\t});\n\tconst pixels = texture.lock();\n\tif (format === PIXELFORMAT_RGBA8 || format === PIXELFORMAT_SRGBA8) {\n\t\tconst temp = new Uint8Array(pixelData.length);\n\t\tfor (let i2 = 0; i2 < pixelData.length; i2++) {\n\t\t\ttemp[i2] = pixelData[i2] * mult8Bit * 255;\n\t\t}\n\t\tpixelData = temp;\n\t} else if (isIntegerPixelFormat(format)) {\n\t\tpixelData = new Uint32Array(pixelData.buffer, pixelData.byteOffset, pixelData.length);\n\t}\n\tpixels.set(pixelData);\n\ttexture.unlock();\n\treturn texture;\n}\nfunction saturate2(x3) {\n\treturn Math.max(Math.min(x3, 1), 0);\n}\nvar default0Curve = new Curve([0, 0, 1, 0]);\nvar default1Curve = new Curve([0, 1, 1, 1]);\nvar default0Curve3 = new CurveSet([0, 0, 1, 0], [0, 0, 1, 0], [0, 0, 1, 0]);\nvar default1Curve3 = new CurveSet([0, 1, 1, 1], [0, 1, 1, 1], [0, 1, 1, 1]);\nvar particleTexHeight = 2;\nvar particleTexChannels2 = 4;\nvar extentsInnerRatioUniform = new Float32Array(3);\nvar spawnMatrix = new Mat4();\nvar tmpVec33 = new Vec3();\nvar bMin = new Vec3();\nvar bMax = new Vec3();\nvar setPropertyTarget;\nvar setPropertyOptions;\nfunction setProperty(pName, defaultVal) {\n\tif (setPropertyOptions[pName] !== void 0 && setPropertyOptions[pName] !== null) {\n\t\tsetPropertyTarget[pName] = setPropertyOptions[pName];\n\t} else {\n\t\tsetPropertyTarget[pName] = defaultVal;\n\t}\n}\nfunction pack3NFloats(a, b, c2) {\n\tconst packed = a * 255 << 16 | b * 255 << 8 | c2 * 255;\n\treturn packed / (1 << 24);\n}\nfunction packTextureXYZ_NXYZ(qXYZ, qXYZ2) {\n\tconst num = qXYZ.length / 3;\n\tconst colors = new Array(num * 4);\n\tfor (let i2 = 0; i2 < num; i2++) {\n\t\tcolors[i2 * 4] = qXYZ[i2 * 3];\n\t\tcolors[i2 * 4 + 1] = qXYZ[i2 * 3 + 1];\n\t\tcolors[i2 * 4 + 2] = qXYZ[i2 * 3 + 2];\n\t\tcolors[i2 * 4 + 3] = pack3NFloats(qXYZ2[i2 * 3], qXYZ2[i2 * 3 + 1], qXYZ2[i2 * 3 + 2]);\n\t}\n\treturn colors;\n}\nfunction packTextureRGBA(qRGB, qA) {\n\tconst colors = new Array(qA.length * 4);\n\tfor (let i2 = 0; i2 < qA.length; i2++) {\n\t\tcolors[i2 * 4] = qRGB[i2 * 3];\n\t\tcolors[i2 * 4 + 1] = qRGB[i2 * 3 + 1];\n\t\tcolors[i2 * 4 + 2] = qRGB[i2 * 3 + 2];\n\t\tcolors[i2 * 4 + 3] = qA[i2];\n\t}\n\treturn colors;\n}\nfunction packTexture5Floats(qA, qB, qC, qD, qE) {\n\tconst colors = new Array(qA.length * 4);\n\tfor (let i2 = 0; i2 < qA.length; i2++) {\n\t\tcolors[i2 * 4] = qA[i2];\n\t\tcolors[i2 * 4 + 1] = qB[i2];\n\t\tcolors[i2 * 4 + 2] = 0;\n\t\tcolors[i2 * 4 + 3] = pack3NFloats(qC[i2], qD[i2], qE[i2]);\n\t}\n\treturn colors;\n}\nfunction packTexture2Floats(qA, qB) {\n\tconst colors = new Array(qA.length * 4);\n\tfor (let i2 = 0; i2 < qA.length; i2++) {\n\t\tcolors[i2 * 4] = qA[i2];\n\t\tcolors[i2 * 4 + 1] = qB[i2];\n\t\tcolors[i2 * 4 + 2] = 0;\n\t\tcolors[i2 * 4 + 3] = 0;\n\t}\n\treturn colors;\n}\nfunction calcSpawnDuration(emitter) {\n\treturn Math.max(emitter.rate, emitter.rate2) * emitter.numParticles + emitter.lifetime;\n}\nfunction subGraph(A, B) {\n\tconst r = new Float32Array(A.length);\n\tfor (let i2 = 0; i2 < A.length; i2++) {\n\t\tr[i2] = A[i2] - B[i2];\n\t}\n\treturn r;\n}\nfunction maxUnsignedGraphValue(A, outUMax) {\n\tconst chans = outUMax.length;\n\tconst values = A.length / chans;\n\tfor (let i2 = 0; i2 < values; i2++) {\n\t\tfor (let j = 0; j < chans; j++) {\n\t\t\tconst a = Math.abs(A[i2 * chans + j]);\n\t\t\toutUMax[j] = Math.max(outUMax[j], a);\n\t\t}\n\t}\n}\nfunction normalizeGraph(A, uMax) {\n\tconst chans = uMax.length;\n\tconst values = A.length / chans;\n\tfor (let i2 = 0; i2 < values; i2++) {\n\t\tfor (let j = 0; j < chans; j++) {\n\t\t\tA[i2 * chans + j] /= uMax[j] === 0 ? 1 : uMax[j];\n\t\t\tA[i2 * chans + j] *= 0.5;\n\t\t\tA[i2 * chans + j] += 0.5;\n\t\t}\n\t}\n}\nfunction divGraphFrom2Curves(curve1, curve2, outUMax) {\n\tconst sub = subGraph(curve2, curve1);\n\tmaxUnsignedGraphValue(sub, outUMax);\n\tnormalizeGraph(sub, outUMax);\n\treturn sub;\n}\nvar particleEmitterDeviceCache = new DeviceCache();\nvar ParticleEmitter = class {\n\tmaterial = null;\n\tinternalTex0 = null;\n\tinternalTex1 = null;\n\tinternalTex2 = null;\n\tcolorParam = null;\n\tconstructor(graphicsDevice, options2) {\n\t\tthis.graphicsDevice = graphicsDevice;\n\t\tconst gd = graphicsDevice;\n\t\tconst precision = 32;\n\t\tthis.precision = precision;\n\t\tthis._addTimeTime = 0;\n\t\tsetPropertyTarget = this;\n\t\tsetPropertyOptions = options2;\n\t\tsetProperty(\"numParticles\", 1);\n\t\tif (this.numParticles > graphicsDevice.maxTextureSize) {\n\t\t\tthis.numParticles = graphicsDevice.maxTextureSize;\n\t\t}\n\t\tsetProperty(\"rate\", 1);\n\t\tsetProperty(\"rate2\", this.rate);\n\t\tsetProperty(\"lifetime\", 50);\n\t\tsetProperty(\"emitterExtents\", new Vec3(0, 0, 0));\n\t\tsetProperty(\"emitterExtentsInner\", new Vec3(0, 0, 0));\n\t\tsetProperty(\"emitterRadius\", 0);\n\t\tsetProperty(\"emitterRadiusInner\", 0);\n\t\tsetProperty(\"emitterShape\", EMITTERSHAPE_BOX);\n\t\tsetProperty(\"initialVelocity\", 1);\n\t\tsetProperty(\"wrap\", false);\n\t\tsetProperty(\"localSpace\", false);\n\t\tsetProperty(\"screenSpace\", false);\n\t\tsetProperty(\"wrapBounds\", null);\n\t\tsetProperty(\"colorMap\", this.defaultParamTexture);\n\t\tsetProperty(\"normalMap\", null);\n\t\tsetProperty(\"loop\", true);\n\t\tsetProperty(\"preWarm\", false);\n\t\tsetProperty(\"sort\", PARTICLESORT_NONE);\n\t\tsetProperty(\"mode\", PARTICLEMODE_GPU);\n\t\tsetProperty(\"scene\", null);\n\t\tsetProperty(\"lighting\", false);\n\t\tsetProperty(\"halfLambert\", false);\n\t\tsetProperty(\"intensity\", 1);\n\t\tsetProperty(\"stretch\", 0);\n\t\tsetProperty(\"alignToMotion\", false);\n\t\tsetProperty(\"depthSoftening\", 0);\n\t\tsetProperty(\"mesh\", null);\n\t\tsetProperty(\"particleNormal\", new Vec3(0, 1, 0));\n\t\tsetProperty(\"orientation\", PARTICLEORIENTATION_SCREEN);\n\t\tsetProperty(\"depthWrite\", false);\n\t\tsetProperty(\"noFog\", false);\n\t\tsetProperty(\"blendType\", BLEND_NORMAL);\n\t\tsetProperty(\"node\", null);\n\t\tsetProperty(\"startAngle\", 0);\n\t\tsetProperty(\"startAngle2\", this.startAngle);\n\t\tsetProperty(\"animTilesX\", 1);\n\t\tsetProperty(\"animTilesY\", 1);\n\t\tsetProperty(\"animStartFrame\", 0);\n\t\tsetProperty(\"animNumFrames\", 1);\n\t\tsetProperty(\"animNumAnimations\", 1);\n\t\tsetProperty(\"animIndex\", 0);\n\t\tsetProperty(\"randomizeAnimIndex\", false);\n\t\tsetProperty(\"animSpeed\", 1);\n\t\tsetProperty(\"animLoop\", true);\n\t\tthis._gpuUpdater = new ParticleGPUUpdater(this, gd);\n\t\tthis._cpuUpdater = new ParticleCPUUpdater(this);\n\t\tthis.emitterPosUniform = new Float32Array(3);\n\t\tthis.wrapBoundsUniform = new Float32Array(3);\n\t\tthis.emitterScaleUniform = new Float32Array([1, 1, 1]);\n\t\tsetProperty(\"colorGraph\", default1Curve3);\n\t\tsetProperty(\"colorGraph2\", this.colorGraph);\n\t\tsetProperty(\"scaleGraph\", default1Curve);\n\t\tsetProperty(\"scaleGraph2\", this.scaleGraph);\n\t\tsetProperty(\"alphaGraph\", default1Curve);\n\t\tsetProperty(\"alphaGraph2\", this.alphaGraph);\n\t\tsetProperty(\"localVelocityGraph\", default0Curve3);\n\t\tsetProperty(\"localVelocityGraph2\", this.localVelocityGraph);\n\t\tsetProperty(\"velocityGraph\", default0Curve3);\n\t\tsetProperty(\"velocityGraph2\", this.velocityGraph);\n\t\tsetProperty(\"rotationSpeedGraph\", default0Curve);\n\t\tsetProperty(\"rotationSpeedGraph2\", this.rotationSpeedGraph);\n\t\tsetProperty(\"radialSpeedGraph\", default0Curve);\n\t\tsetProperty(\"radialSpeedGraph2\", this.radialSpeedGraph);\n\t\tsetPropertyTarget = null;\n\t\tsetPropertyOptions = null;\n\t\tthis.animTilesParams = new Float32Array(2);\n\t\tthis.animParams = new Float32Array(4);\n\t\tthis.animIndexParams = new Float32Array(2);\n\t\tthis.vbToSort = null;\n\t\tthis.vbOld = null;\n\t\tthis.particleDistance = null;\n\t\tthis.camera = null;\n\t\tthis.swapTex = false;\n\t\tthis.useMesh = true;\n\t\tthis.useCpu = !graphicsDevice.supportsGpuParticles;\n\t\tthis.localBounds = new BoundingBox();\n\t\tthis.worldBoundsNoTrail = new BoundingBox();\n\t\tthis.worldBoundsTrail = [new BoundingBox(), new BoundingBox()];\n\t\tthis.worldBounds = new BoundingBox();\n\t\tthis.prevEmitterExtents = new Vec3();\n\t\tthis.prevEmitterRadius = 0;\n\t\tthis.timeToSwitchBounds = 0;\n\t\tthis.shaderParticleUpdateRespawn = null;\n\t\tthis.shaderParticleUpdateNoRespawn = null;\n\t\tthis.shaderParticleUpdateOnStop = null;\n\t\tthis.numParticleVerts = 0;\n\t\tthis.numParticleIndices = 0;\n\t\tthis.material = null;\n\t\tthis.meshInstance = null;\n\t\tthis.drawOrder = 0;\n\t\tthis.seed = Math.random();\n\t\tthis.fixedTimeStep = 1 / 60;\n\t\tthis.maxSubSteps = 10;\n\t\tthis.simTime = 0;\n\t\tthis.simTimeTotal = 0;\n\t\tthis.beenReset = false;\n\t\tthis._layer = null;\n\t\tthis.rebuild();\n\t}\n\tget defaultParamTexture() {\n\t\treturn particleEmitterDeviceCache.get(this.graphicsDevice, () => {\n\t\t\tconst resolution = 16;\n\t\t\tconst centerPoint = resolution * 0.5 + 0.5;\n\t\t\tconst dtex = new Float32Array(resolution * resolution * 4);\n\t\t\tfor (let y2 = 0; y2 < resolution; y2++) {\n\t\t\t\tfor (let x3 = 0; x3 < resolution; x3++) {\n\t\t\t\t\tconst xgrad = x3 + 1 - centerPoint;\n\t\t\t\t\tconst ygrad = y2 + 1 - centerPoint;\n\t\t\t\t\tconst c2 = saturate2(1 - saturate2(Math.sqrt(xgrad * xgrad + ygrad * ygrad) / resolution) - 0.5);\n\t\t\t\t\tconst p = y2 * resolution + x3;\n\t\t\t\t\tdtex[p * 4] = 1;\n\t\t\t\t\tdtex[p * 4 + 1] = 1;\n\t\t\t\t\tdtex[p * 4 + 2] = 1;\n\t\t\t\t\tdtex[p * 4 + 3] = c2;\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst texture = _createTexture(this.graphicsDevice, resolution, resolution, dtex, PIXELFORMAT_SRGBA8, 1, true);\n\t\t\ttexture.minFilter = FILTER_LINEAR;\n\t\t\ttexture.magFilter = FILTER_LINEAR;\n\t\t\treturn texture;\n\t\t});\n\t}\n\tcalculateWorldBounds() {\n\t\tif (!this.node) return;\n\t\tconst recalculateLocalBounds = this.emitterShape === EMITTERSHAPE_BOX ? !this.emitterExtents.equals(this.prevEmitterExtents) : this.emitterRadius !== this.prevEmitterRadius;\n\t\tif (recalculateLocalBounds) {\n\t\t\tthis.calculateLocalBounds();\n\t\t}\n\t\tconst nodeWT = this.node.getWorldTransform();\n\t\tif (this.localSpace) {\n\t\t\tthis.worldBoundsNoTrail.copy(this.localBounds);\n\t\t} else {\n\t\t\tthis.worldBoundsNoTrail.setFromTransformedAabb(this.localBounds, nodeWT);\n\t\t}\n\t\tthis.worldBoundsTrail[0].add(this.worldBoundsNoTrail);\n\t\tthis.worldBoundsTrail[1].add(this.worldBoundsNoTrail);\n\t\tconst now2 = this.simTimeTotal;\n\t\tif (now2 >= this.timeToSwitchBounds) {\n\t\t\tthis.worldBoundsTrail[0].copy(this.worldBoundsTrail[1]);\n\t\t\tthis.worldBoundsTrail[1].copy(this.worldBoundsNoTrail);\n\t\t\tthis.timeToSwitchBounds = now2 + this.lifetime;\n\t\t}\n\t\tthis.worldBounds.copy(this.worldBoundsTrail[0]);\n\t\tif (this.localSpace) {\n\t\t\tthis.meshInstance.aabb.setFromTransformedAabb(this.worldBounds, nodeWT);\n\t\t\tthis.meshInstance.mesh.aabb.setFromTransformedAabb(this.worldBounds, nodeWT);\n\t\t} else {\n\t\t\tthis.meshInstance.aabb.copy(this.worldBounds);\n\t\t\tthis.meshInstance.mesh.aabb.copy(this.worldBounds);\n\t\t}\n\t\tthis.meshInstance._aabbVer = 1 - this.meshInstance._aabbVer;\n\t}\n\tresetWorldBounds() {\n\t\tif (!this.node) return;\n\t\tthis.worldBoundsNoTrail.setFromTransformedAabb(\n\t\t\tthis.localBounds,\n\t\t\tthis.localSpace ? Mat4.IDENTITY : this.node.getWorldTransform()\n\t\t);\n\t\tthis.worldBoundsTrail[0].copy(this.worldBoundsNoTrail);\n\t\tthis.worldBoundsTrail[1].copy(this.worldBoundsNoTrail);\n\t\tthis.worldBounds.copy(this.worldBoundsTrail[0]);\n\t\tthis.simTimeTotal = 0;\n\t\tthis.timeToSwitchBounds = 0;\n\t}\n\tcalculateLocalBounds() {\n\t\tthis.prevEmitterExtents.copy(this.emitterExtents);\n\t\tthis.prevEmitterRadius = this.emitterRadius;\n\t\tlet minx = Number.MAX_VALUE;\n\t\tlet miny = Number.MAX_VALUE;\n\t\tlet minz = Number.MAX_VALUE;\n\t\tlet maxx = -Number.MAX_VALUE;\n\t\tlet maxy = -Number.MAX_VALUE;\n\t\tlet maxz = -Number.MAX_VALUE;\n\t\tlet maxR = 0;\n\t\tlet maxScale = 0;\n\t\tconst stepWeight = this.lifetime / this.precision;\n\t\tconst wVels = [this.qVelocity, this.qVelocity2];\n\t\tconst lVels = [this.qLocalVelocity, this.qLocalVelocity2];\n\t\tconst accumX = [0, 0];\n\t\tconst accumY = [0, 0];\n\t\tconst accumZ = [0, 0];\n\t\tconst accumR = [0, 0];\n\t\tconst accumW = [0, 0];\n\t\tlet x3, y2, z2;\n\t\tfor (let i2 = 0; i2 < this.precision + 1; i2++) {\n\t\t\tconst index = Math.min(i2, this.precision - 1);\n\t\t\tfor (let j = 0; j < 2; j++) {\n\t\t\t\tx3 = lVels[j][index * 3 + 0] * stepWeight + accumX[j];\n\t\t\t\ty2 = lVels[j][index * 3 + 1] * stepWeight + accumY[j];\n\t\t\t\tz2 = lVels[j][index * 3 + 2] * stepWeight + accumZ[j];\n\t\t\t\tminx = Math.min(x3, minx);\n\t\t\t\tminy = Math.min(y2, miny);\n\t\t\t\tminz = Math.min(z2, minz);\n\t\t\t\tmaxx = Math.max(x3, maxx);\n\t\t\t\tmaxy = Math.max(y2, maxy);\n\t\t\t\tmaxz = Math.max(z2, maxz);\n\t\t\t\taccumX[j] = x3;\n\t\t\t\taccumY[j] = y2;\n\t\t\t\taccumZ[j] = z2;\n\t\t\t}\n\t\t\tfor (let j = 0; j < 2; j++) {\n\t\t\t\taccumW[j] += stepWeight * Math.sqrt(\n\t\t\t\t\twVels[j][index * 3 + 0] * wVels[j][index * 3 + 0] + wVels[j][index * 3 + 1] * wVels[j][index * 3 + 1] + wVels[j][index * 3 + 2] * wVels[j][index * 3 + 2]\n\t\t\t\t);\n\t\t\t}\n\t\t\taccumR[0] += this.qRadialSpeed[index] * stepWeight;\n\t\t\taccumR[1] += this.qRadialSpeed2[index] * stepWeight;\n\t\t\tmaxR = Math.max(maxR, Math.max(Math.abs(accumR[0]), Math.abs(accumR[1])));\n\t\t\tmaxScale = Math.max(maxScale, Math.abs(this.qScale[index]), Math.abs(this.qScale2[index]));\n\t\t}\n\t\tif (this.emitterShape === EMITTERSHAPE_BOX) {\n\t\t\tx3 = this.emitterExtents.x * 0.5;\n\t\t\ty2 = this.emitterExtents.y * 0.5;\n\t\t\tz2 = this.emitterExtents.z * 0.5;\n\t\t} else {\n\t\t\tx3 = this.emitterRadius;\n\t\t\ty2 = this.emitterRadius;\n\t\t\tz2 = this.emitterRadius;\n\t\t}\n\t\tconst w = Math.max(accumW[0], accumW[1]);\n\t\tbMin.x = minx - maxScale - x3 - maxR - w;\n\t\tbMin.y = miny - maxScale - y2 - maxR - w;\n\t\tbMin.z = minz - maxScale - z2 - maxR - w;\n\t\tbMax.x = maxx + maxScale + x3 + maxR + w;\n\t\tbMax.y = maxy + maxScale + y2 + maxR + w;\n\t\tbMax.z = maxz + maxScale + z2 + maxR + w;\n\t\tthis.localBounds.setMinMax(bMin, bMax);\n\t}\n\trebuild() {\n\t\tconst gd = this.graphicsDevice;\n\t\tif (this.colorMap === null) this.colorMap = this.defaultParamTexture;\n\t\tthis.spawnBounds = this.emitterShape === EMITTERSHAPE_BOX ? this.emitterExtents : this.emitterRadius;\n\t\tthis.useCpu = this.useCpu || this.sort > PARTICLESORT_NONE || // force CPU if desirable by user or sorting is enabled\n\t\tgd.forceCpuParticles;\n\t\tconst wasVisible = this._destroyResources();\n\t\tparticleTexHeight = this.useCpu ? 4 : 2;\n\t\tthis.useMesh = !!this.mesh;\n\t\tthis.numParticlesPot = math.nextPowerOfTwo(this.numParticles);\n\t\tthis.rebuildGraphs();\n\t\tthis.calculateLocalBounds();\n\t\tthis.resetWorldBounds();\n\t\tif (this.node) {\n\t\t\tthis.worldBounds.setFromTransformedAabb(\n\t\t\t\tthis.localBounds,\n\t\t\t\tthis.localSpace ? Mat4.IDENTITY : this.node.getWorldTransform()\n\t\t\t);\n\t\t\tthis.worldBoundsTrail[0].copy(this.worldBounds);\n\t\t\tthis.worldBoundsTrail[1].copy(this.worldBounds);\n\t\t}\n\t\tthis.vbToSort = new Array(this.numParticles);\n\t\tfor (let iSort = 0; iSort < this.numParticles; iSort++) this.vbToSort[iSort] = [0, 0];\n\t\tthis.particleDistance = new Float32Array(this.numParticles);\n\t\tthis._gpuUpdater.randomize();\n\t\tthis.particleTex = new Float32Array(this.numParticlesPot * particleTexHeight * particleTexChannels2);\n\t\tconst emitterPos = this.node === null || this.localSpace ? Vec3.ZERO : this.node.getPosition();\n\t\tif (this.emitterShape === EMITTERSHAPE_BOX) {\n\t\t\tif (this.node === null || this.localSpace) {\n\t\t\t\tspawnMatrix.setTRS(Vec3.ZERO, Quat.IDENTITY, this.spawnBounds);\n\t\t\t} else {\n\t\t\t\tspawnMatrix.setTRS(Vec3.ZERO, this.node.getRotation(), tmpVec33.copy(this.spawnBounds).mul(this.node.localScale));\n\t\t\t}\n\t\t\textentsInnerRatioUniform[0] = this.emitterExtents.x !== 0 ? this.emitterExtentsInner.x / this.emitterExtents.x : 0;\n\t\t\textentsInnerRatioUniform[1] = this.emitterExtents.y !== 0 ? this.emitterExtentsInner.y / this.emitterExtents.y : 0;\n\t\t\textentsInnerRatioUniform[2] = this.emitterExtents.z !== 0 ? this.emitterExtentsInner.z / this.emitterExtents.z : 0;\n\t\t}\n\t\tfor (let i2 = 0; i2 < this.numParticles; i2++) {\n\t\t\tthis._cpuUpdater.calcSpawnPosition(this.particleTex, spawnMatrix, extentsInnerRatioUniform, emitterPos, i2);\n\t\t\tif (this.useCpu) this.particleTex[i2 * particleTexChannels2 + 3 + this.numParticlesPot * 2 * particleTexChannels2] = 1;\n\t\t}\n\t\tthis.particleTexStart = new Float32Array(this.numParticlesPot * particleTexHeight * particleTexChannels2);\n\t\tfor (let i2 = 0; i2 < this.particleTexStart.length; i2++) {\n\t\t\tthis.particleTexStart[i2] = this.particleTex[i2];\n\t\t}\n\t\tif (!this.useCpu) {\n\t\t\tconst particleFormat = gd.textureFloatRenderable ? PIXELFORMAT_RGBA32F : PIXELFORMAT_RGBA32U;\n\t\t\tthis.particleTexIN = _createTexture(gd, this.numParticlesPot, particleTexHeight, this.particleTex, particleFormat);\n\t\t\tthis.particleTexOUT = _createTexture(gd, this.numParticlesPot, particleTexHeight, this.particleTex, particleFormat);\n\t\t\tthis.particleTexStart = _createTexture(gd, this.numParticlesPot, particleTexHeight, this.particleTexStart, particleFormat);\n\t\t\tthis.rtParticleTexIN = new RenderTarget({\n\t\t\t\tcolorBuffer: this.particleTexIN,\n\t\t\t\tdepth: false\n\t\t\t});\n\t\t\tthis.rtParticleTexOUT = new RenderTarget({\n\t\t\t\tcolorBuffer: this.particleTexOUT,\n\t\t\t\tdepth: false\n\t\t\t});\n\t\t\tthis.swapTex = false;\n\t\t}\n\t\tconst defines = /* @__PURE__ */ new Map();\n\t\tif (this.localSpace) defines.set(\"LOCAL_SPACE\", \"\");\n\t\tif (this.emitterShape === EMITTERSHAPE_BOX) defines.set(\"EMITTERSHAPE_BOX\", \"\");\n\t\tconst shaderUniqueId = `Shape:${this.emitterShape}-Local:${this.localSpace}`;\n\t\tconst shaderOptions = {\n\t\t\tattributes: { vertex_position: SEMANTIC_POSITION },\n\t\t\tvertexChunk: \"fullscreenQuadVS\",\n\t\t\tfragmentChunk: \"particle_simulationPS\",\n\t\t\tfragmentDefines: defines,\n\t\t\tfragmentOutputTypes: gd.textureFloatRenderable ? \"vec4\" : \"uvec4\"\n\t\t};\n\t\tshaderOptions.uniqueName = `ParticleUpdateRespawn-${shaderUniqueId}`;\n\t\tdefines.set(\"RESPAWN\", \"\");\n\t\tthis.shaderParticleUpdateRespawn = ShaderUtils.createShader(gd, shaderOptions);\n\t\tdefines.delete(\"RESPAWN\");\n\t\tshaderOptions.uniqueName = `ParticleUpdateNoRespawn-${shaderUniqueId}`;\n\t\tdefines.set(\"NO_RESPAWN\", \"\");\n\t\tthis.shaderParticleUpdateNoRespawn = ShaderUtils.createShader(gd, shaderOptions);\n\t\tdefines.delete(\"NO_RESPAWN\");\n\t\tshaderOptions.uniqueName = `ParticleUpdateStop-${shaderUniqueId}`;\n\t\tdefines.set(\"ON_STOP\", \"\");\n\t\tthis.shaderParticleUpdateOnStop = ShaderUtils.createShader(gd, shaderOptions);\n\t\tthis.numParticleVerts = this.useMesh ? this.mesh.vertexBuffer.numVertices : 4;\n\t\tthis.numParticleIndices = this.useMesh ? this.mesh.indexBuffer[0].numIndices : 6;\n\t\tthis._allocate(this.numParticles);\n\t\tconst mesh = new Mesh(gd);\n\t\tmesh.vertexBuffer = this.vertexBuffer;\n\t\tmesh.indexBuffer[0] = this.indexBuffer;\n\t\tmesh.primitive[0].type = PRIMITIVE_TRIANGLES;\n\t\tmesh.primitive[0].base = 0;\n\t\tmesh.primitive[0].count = this.numParticles * this.numParticleIndices;\n\t\tmesh.primitive[0].indexed = true;\n\t\tthis.material = this._createMaterial();\n\t\tthis.resetMaterial();\n\t\tthis.meshInstance = new MeshInstance(mesh, this.material, this.node);\n\t\tthis.meshInstance.pick = false;\n\t\tthis.meshInstance.updateKey();\n\t\tthis.meshInstance.cull = true;\n\t\tif (this.localSpace) {\n\t\t\tthis.meshInstance.aabb.setFromTransformedAabb(this.worldBounds, this.node.getWorldTransform());\n\t\t} else {\n\t\t\tthis.meshInstance.aabb.copy(this.worldBounds);\n\t\t}\n\t\tthis.meshInstance._updateAabb = false;\n\t\tthis.meshInstance.visible = wasVisible;\n\t\tthis._setMaterialTextures();\n\t\tthis.resetTime();\n\t\tthis.addTime(0, false);\n\t\tif (this.preWarm) this.prewarm(this.lifetime);\n\t\tthis.finishFrame();\n\t}\n\t_isAnimated() {\n\t\treturn this.animNumFrames >= 1 && (this.animTilesX > 1 || this.animTilesY > 1) && (this.colorMap && this.colorMap !== this.defaultParamTexture || this.normalMap);\n\t}\n\trebuildGraphs() {\n\t\tconst precision = this.precision;\n\t\tconst gd = this.graphicsDevice;\n\t\tthis.qLocalVelocity = this.localVelocityGraph.quantize(precision);\n\t\tthis.qVelocity = this.velocityGraph.quantize(precision);\n\t\tthis.qColor = this.colorGraph.quantizeClamped(precision, 0, 1);\n\t\tthis.qRotSpeed = this.rotationSpeedGraph.quantize(precision);\n\t\tthis.qScale = this.scaleGraph.quantize(precision);\n\t\tthis.qAlpha = this.alphaGraph.quantize(precision);\n\t\tthis.qRadialSpeed = this.radialSpeedGraph.quantize(precision);\n\t\tthis.qLocalVelocity2 = this.localVelocityGraph2.quantize(precision);\n\t\tthis.qVelocity2 = this.velocityGraph2.quantize(precision);\n\t\tthis.qColor2 = this.colorGraph2.quantizeClamped(precision, 0, 1);\n\t\tthis.qRotSpeed2 = this.rotationSpeedGraph2.quantize(precision);\n\t\tthis.qScale2 = this.scaleGraph2.quantize(precision);\n\t\tthis.qAlpha2 = this.alphaGraph2.quantize(precision);\n\t\tthis.qRadialSpeed2 = this.radialSpeedGraph2.quantize(precision);\n\t\tfor (let i2 = 0; i2 < precision; i2++) {\n\t\t\tthis.qRotSpeed[i2] *= math.DEG_TO_RAD;\n\t\t\tthis.qRotSpeed2[i2] *= math.DEG_TO_RAD;\n\t\t}\n\t\tthis.localVelocityUMax = new Float32Array(3);\n\t\tthis.velocityUMax = new Float32Array(3);\n\t\tthis.colorUMax = new Float32Array(3);\n\t\tthis.rotSpeedUMax = [0];\n\t\tthis.scaleUMax = [0];\n\t\tthis.alphaUMax = [0];\n\t\tthis.radialSpeedUMax = [0];\n\t\tthis.qLocalVelocityDiv = divGraphFrom2Curves(this.qLocalVelocity, this.qLocalVelocity2, this.localVelocityUMax);\n\t\tthis.qVelocityDiv = divGraphFrom2Curves(this.qVelocity, this.qVelocity2, this.velocityUMax);\n\t\tthis.qColorDiv = divGraphFrom2Curves(this.qColor, this.qColor2, this.colorUMax);\n\t\tthis.qRotSpeedDiv = divGraphFrom2Curves(this.qRotSpeed, this.qRotSpeed2, this.rotSpeedUMax);\n\t\tthis.qScaleDiv = divGraphFrom2Curves(this.qScale, this.qScale2, this.scaleUMax);\n\t\tthis.qAlphaDiv = divGraphFrom2Curves(this.qAlpha, this.qAlpha2, this.alphaUMax);\n\t\tthis.qRadialSpeedDiv = divGraphFrom2Curves(this.qRadialSpeed, this.qRadialSpeed2, this.radialSpeedUMax);\n\t\tif (!this.useCpu) {\n\t\t\tthis.internalTex0 = _createTexture(gd, precision, 1, packTextureXYZ_NXYZ(this.qLocalVelocity, this.qLocalVelocityDiv));\n\t\t\tthis.internalTex1 = _createTexture(gd, precision, 1, packTextureXYZ_NXYZ(this.qVelocity, this.qVelocityDiv));\n\t\t\tthis.internalTex2 = _createTexture(gd, precision, 1, packTexture5Floats(this.qRotSpeed, this.qScale, this.qScaleDiv, this.qRotSpeedDiv, this.qAlphaDiv));\n\t\t\tthis.internalTex3 = _createTexture(gd, precision, 1, packTexture2Floats(this.qRadialSpeed, this.qRadialSpeedDiv));\n\t\t}\n\t\tthis.colorParam = _createTexture(gd, precision, 1, packTextureRGBA(this.qColor, this.qAlpha), PIXELFORMAT_SRGBA8, 1, true);\n\t}\n\t_setMaterialTextures() {\n\t\tif (this.colorMap) {\n\t\t\tthis.material.setParameter(\"colorMap\", this.colorMap);\n\t\t\tif (this.lighting && this.normalMap) {\n\t\t\t\tthis.material.setParameter(\"normalMap\", this.normalMap);\n\t\t\t}\n\t\t}\n\t}\n\t_createMaterial() {\n\t\tconst material = new ParticleMaterial(this);\n\t\tmaterial.name = `EmitterMaterial:${this.node.name}`;\n\t\tmaterial.cull = CULLFACE_NONE;\n\t\tmaterial.alphaWrite = false;\n\t\tmaterial.blendType = this.blendType;\n\t\tmaterial.depthWrite = this.depthWrite;\n\t\treturn material;\n\t}\n\tresetMaterial() {\n\t\tconst material = this.material;\n\t\tmaterial.setParameter(\"stretch\", this.stretch);\n\t\tif (this._isAnimated()) {\n\t\t\tmaterial.setParameter(\"animTexTilesParams\", this.animTilesParams);\n\t\t\tmaterial.setParameter(\"animTexParams\", this.animParams);\n\t\t\tmaterial.setParameter(\"animTexIndexParams\", this.animIndexParams);\n\t\t}\n\t\tmaterial.setParameter(\"colorMult\", this.intensity);\n\t\tif (!this.useCpu) {\n\t\t\tmaterial.setParameter(\"internalTex0\", this.internalTex0);\n\t\t\tmaterial.setParameter(\"internalTex1\", this.internalTex1);\n\t\t\tmaterial.setParameter(\"internalTex2\", this.internalTex2);\n\t\t\tmaterial.setParameter(\"internalTex3\", this.internalTex3);\n\t\t}\n\t\tmaterial.setParameter(\"colorParam\", this.colorParam);\n\t\tmaterial.setParameter(\"numParticles\", this.numParticles);\n\t\tmaterial.setParameter(\"numParticlesPot\", this.numParticlesPot);\n\t\tmaterial.setParameter(\"lifetime\", this.lifetime);\n\t\tmaterial.setParameter(\"rate\", this.rate);\n\t\tmaterial.setParameter(\"rateDiv\", this.rate2 - this.rate);\n\t\tmaterial.setParameter(\"seed\", this.seed);\n\t\tmaterial.setParameter(\"scaleDivMult\", this.scaleUMax[0]);\n\t\tmaterial.setParameter(\"alphaDivMult\", this.alphaUMax[0]);\n\t\tmaterial.setParameter(\"radialSpeedDivMult\", this.radialSpeedUMax[0]);\n\t\tmaterial.setParameter(\"graphNumSamples\", this.precision);\n\t\tmaterial.setParameter(\"graphSampleSize\", 1 / this.precision);\n\t\tmaterial.setParameter(\"emitterScale\", new Float32Array([1, 1, 1]));\n\t\tif (this.wrap && this.wrapBounds) {\n\t\t\tthis.wrapBoundsUniform[0] = this.wrapBounds.x;\n\t\t\tthis.wrapBoundsUniform[1] = this.wrapBounds.y;\n\t\t\tthis.wrapBoundsUniform[2] = this.wrapBounds.z;\n\t\t\tmaterial.setParameter(\"wrapBounds\", this.wrapBoundsUniform);\n\t\t}\n\t\tthis._setMaterialTextures();\n\t\tif (this.depthSoftening > 0) {\n\t\t\tmaterial.setParameter(\"softening\", 1 / (this.depthSoftening * this.depthSoftening * 100));\n\t\t}\n\t\tif (this.stretch > 0) material.cull = CULLFACE_NONE;\n\t\tthis._compParticleFaceParams();\n\t}\n\t_compParticleFaceParams() {\n\t\tlet tangent, binormal;\n\t\tif (this.orientation === PARTICLEORIENTATION_SCREEN) {\n\t\t\ttangent = new Float32Array([1, 0, 0]);\n\t\t\tbinormal = new Float32Array([0, 0, 1]);\n\t\t} else {\n\t\t\tlet n;\n\t\t\tif (this.orientation === PARTICLEORIENTATION_WORLD) {\n\t\t\t\tn = this.particleNormal.normalize();\n\t\t\t} else {\n\t\t\t\tconst emitterMat = this.node === null ? Mat4.IDENTITY : this.node.getWorldTransform();\n\t\t\t\tn = emitterMat.transformVector(this.particleNormal).normalize();\n\t\t\t}\n\t\t\tconst t = new Vec3(1, 0, 0);\n\t\t\tif (Math.abs(t.dot(n)) === 1) {\n\t\t\t\tt.set(0, 0, 1);\n\t\t\t}\n\t\t\tconst b = new Vec3().cross(n, t).normalize();\n\t\t\tt.cross(b, n).normalize();\n\t\t\ttangent = new Float32Array([t.x, t.y, t.z]);\n\t\t\tbinormal = new Float32Array([b.x, b.y, b.z]);\n\t\t}\n\t\tthis.material.setParameter(\"faceTangent\", tangent);\n\t\tthis.material.setParameter(\"faceBinorm\", binormal);\n\t}\n\tgetVertexInfo() {\n\t\tconst elements = [];\n\t\tif (!this.useCpu) {\n\t\t\telements.push({ semantic: SEMANTIC_ATTR0, components: 4, type: TYPE_FLOAT32 });\n\t\t\tif (this.useMesh) {\n\t\t\t\telements.push({ semantic: SEMANTIC_TEXCOORD0, components: 2, type: TYPE_FLOAT32 });\n\t\t\t}\n\t\t} else {\n\t\t\telements.push(\n\t\t\t\t{ semantic: SEMANTIC_ATTR0, components: 4, type: TYPE_FLOAT32 },\n\t\t\t\t{ semantic: SEMANTIC_ATTR1, components: 4, type: TYPE_FLOAT32 },\n\t\t\t\t{ semantic: SEMANTIC_ATTR2, components: 4, type: TYPE_FLOAT32 },\n\t\t\t\t{ semantic: SEMANTIC_ATTR3, components: 1, type: TYPE_FLOAT32 },\n\t\t\t\t{ semantic: SEMANTIC_ATTR4, components: this.useMesh ? 4 : 2, type: TYPE_FLOAT32 }\n\t\t\t);\n\t\t}\n\t\treturn elements;\n\t}\n\t// Declares vertex format, creates VB and IB\n\t_allocate(numParticles) {\n\t\tconst psysVertCount = numParticles * this.numParticleVerts;\n\t\tconst psysIndexCount = numParticles * this.numParticleIndices;\n\t\tif (this.vertexBuffer === void 0 || this.vertexBuffer.getNumVertices() !== psysVertCount) {\n\t\t\tconst elements = this.getVertexInfo();\n\t\t\tconst vertexFormat = new VertexFormat(this.graphicsDevice, elements);\n\t\t\tthis.vertexBuffer = new VertexBuffer(this.graphicsDevice, vertexFormat, psysVertCount, {\n\t\t\t\tusage: BUFFER_DYNAMIC\n\t\t\t});\n\t\t\tthis.indexBuffer = new IndexBuffer(this.graphicsDevice, INDEXFORMAT_UINT32, psysIndexCount);\n\t\t\tconst data2 = new Float32Array(this.vertexBuffer.lock());\n\t\t\tlet meshData, posOffset, posStride, uvOffset, uvStride;\n\t\t\tif (this.useMesh) {\n\t\t\t\tmeshData = BufferUtils.createStorageView(this.mesh.vertexBuffer, Float32Array);\n\t\t\t\tconst elements2 = this.mesh.vertexBuffer.format.elements;\n\t\t\t\tconst posElement = elements2.find((el) => el.name === SEMANTIC_POSITION);\n\t\t\t\tconst uvElement = elements2.find((el) => el.name === SEMANTIC_TEXCOORD0);\n\t\t\t\tposOffset = posElement.offset / 4;\n\t\t\t\tposStride = posElement.stride / 4;\n\t\t\t\tuvOffset = uvElement ? uvElement.offset / 4 : -1;\n\t\t\t\tuvStride = uvElement ? uvElement.stride / 4 : 0;\n\t\t\t}\n\t\t\tfor (let i2 = 0; i2 < psysVertCount; i2++) {\n\t\t\t\tconst id14 = Math.floor(i2 / this.numParticleVerts);\n\t\t\t\tif (!this.useMesh) {\n\t\t\t\t\tconst vertID = i2 % 4;\n\t\t\t\t\tdata2[i2 * 4] = particleVerts[vertID][0];\n\t\t\t\t\tdata2[i2 * 4 + 1] = particleVerts[vertID][1];\n\t\t\t\t\tdata2[i2 * 4 + 2] = 0;\n\t\t\t\t\tdata2[i2 * 4 + 3] = id14;\n\t\t\t\t} else {\n\t\t\t\t\tconst vert = i2 % this.numParticleVerts;\n\t\t\t\t\tconst posIndex = vert * posStride + posOffset;\n\t\t\t\t\tdata2[i2 * 6] = meshData[posIndex];\n\t\t\t\t\tdata2[i2 * 6 + 1] = meshData[posIndex + 1];\n\t\t\t\t\tdata2[i2 * 6 + 2] = meshData[posIndex + 2];\n\t\t\t\t\tdata2[i2 * 6 + 3] = id14;\n\t\t\t\t\tif (uvOffset >= 0) {\n\t\t\t\t\t\tconst uvIndex = vert * uvStride + uvOffset;\n\t\t\t\t\t\tdata2[i2 * 6 + 4] = meshData[uvIndex];\n\t\t\t\t\t\tdata2[i2 * 6 + 5] = 1 - meshData[uvIndex + 1];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdata2[i2 * 6 + 4] = 0;\n\t\t\t\t\t\tdata2[i2 * 6 + 5] = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (this.useCpu) {\n\t\t\t\tthis.vbCPU = new Float32Array(data2);\n\t\t\t\tthis.vbOld = new Float32Array(this.vbCPU.length);\n\t\t\t}\n\t\t\tthis.vertexBuffer.unlock();\n\t\t\tif (this.useMesh) {\n\t\t\t\tthis.mesh.vertexBuffer.unlock();\n\t\t\t}\n\t\t\tlet dst = 0;\n\t\t\tconst indices = new Uint32Array(this.indexBuffer.lock());\n\t\t\tif (this.useMesh) {\n\t\t\t\tconst ib = this.mesh.indexBuffer[0];\n\t\t\t\tmeshData = new typedArrayIndexFormats[ib.format](ib.lock());\n\t\t\t}\n\t\t\tfor (let i2 = 0; i2 < numParticles; i2++) {\n\t\t\t\tif (!this.useMesh) {\n\t\t\t\t\tconst baseIndex = i2 * 4;\n\t\t\t\t\tindices[dst++] = baseIndex;\n\t\t\t\t\tindices[dst++] = baseIndex + 1;\n\t\t\t\t\tindices[dst++] = baseIndex + 2;\n\t\t\t\t\tindices[dst++] = baseIndex;\n\t\t\t\t\tindices[dst++] = baseIndex + 2;\n\t\t\t\t\tindices[dst++] = baseIndex + 3;\n\t\t\t\t} else {\n\t\t\t\t\tfor (let j = 0; j < this.numParticleIndices; j++) {\n\t\t\t\t\t\tindices[i2 * this.numParticleIndices + j] = meshData[j] + i2 * this.numParticleVerts;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.indexBuffer.unlock();\n\t\t\tif (this.useMesh) this.mesh.indexBuffer[0].unlock();\n\t\t}\n\t}\n\treset() {\n\t\tthis.beenReset = true;\n\t\tthis.seed = Math.random();\n\t\tthis.material.setParameter(\"seed\", this.seed);\n\t\tif (this.useCpu) {\n\t\t\tfor (let i2 = 0; i2 < this.particleTexStart.length; i2++) {\n\t\t\t\tthis.particleTex[i2] = this.particleTexStart[i2];\n\t\t\t}\n\t\t} else {\n\t\t\tthis._setMaterialTextures();\n\t\t}\n\t\tthis.resetWorldBounds();\n\t\tthis.resetTime();\n\t\tconst origLoop = this.loop;\n\t\tthis.loop = true;\n\t\tthis.addTime(0, false);\n\t\tthis.loop = origLoop;\n\t\tif (this.preWarm) {\n\t\t\tthis.prewarm(this.lifetime);\n\t\t}\n\t\tthis.finishFrame();\n\t}\n\tprewarm(time) {\n\t\tconst lifetimeFraction = time / this.lifetime;\n\t\tconst iterations = Math.min(Math.floor(lifetimeFraction * this.precision), this.precision);\n\t\tconst stepDelta = time / iterations;\n\t\tfor (let i2 = 0; i2 < iterations; i2++) {\n\t\t\tthis.addTime(stepDelta, false);\n\t\t}\n\t}\n\tresetTime(duration = calcSpawnDuration(this)) {\n\t\tthis.endTime = this.simTimeTotal + duration;\n\t}\n\tfinishFrame() {\n\t\tif (this.useCpu) this.vertexBuffer.unlock();\n\t}\n\taddTime(delta3, isOnStop) {\n\t\tconst device = this.graphicsDevice;\n\t\tthis.simTimeTotal += delta3;\n\t\tthis.calculateWorldBounds();\n\t\tif (this._isAnimated()) {\n\t\t\tconst tilesParams = this.animTilesParams;\n\t\t\ttilesParams[0] = 1 / this.animTilesX;\n\t\t\ttilesParams[1] = 1 / this.animTilesY;\n\t\t\tconst params = this.animParams;\n\t\t\tparams[0] = this.animStartFrame;\n\t\t\tparams[1] = this.animNumFrames * this.animSpeed;\n\t\t\tparams[2] = this.animNumFrames - 1;\n\t\t\tparams[3] = this.animNumAnimations - 1;\n\t\t\tconst animIndexParams = this.animIndexParams;\n\t\t\tanimIndexParams[0] = this.animIndex;\n\t\t\tanimIndexParams[1] = this.randomizeAnimIndex;\n\t\t}\n\t\tif (this.scene) {\n\t\t\tthis.camera = this.scene._activeCamera;\n\t\t}\n\t\tif (this.emitterShape === EMITTERSHAPE_BOX) {\n\t\t\textentsInnerRatioUniform[0] = this.emitterExtents.x !== 0 ? this.emitterExtentsInner.x / this.emitterExtents.x : 0;\n\t\t\textentsInnerRatioUniform[1] = this.emitterExtents.y !== 0 ? this.emitterExtentsInner.y / this.emitterExtents.y : 0;\n\t\t\textentsInnerRatioUniform[2] = this.emitterExtents.z !== 0 ? this.emitterExtentsInner.z / this.emitterExtents.z : 0;\n\t\t\tif (this.meshInstance.node === null) {\n\t\t\t\tspawnMatrix.setTRS(Vec3.ZERO, Quat.IDENTITY, this.emitterExtents);\n\t\t\t} else {\n\t\t\t\tspawnMatrix.setTRS(Vec3.ZERO, this.meshInstance.node.getRotation(), tmpVec33.copy(this.emitterExtents).mul(this.meshInstance.node.localScale));\n\t\t\t}\n\t\t}\n\t\tlet emitterPos;\n\t\tconst emitterScale = this.meshInstance.node === null ? Vec3.ONE : this.meshInstance.node.localScale;\n\t\tthis.emitterScaleUniform[0] = emitterScale.x;\n\t\tthis.emitterScaleUniform[1] = emitterScale.y;\n\t\tthis.emitterScaleUniform[2] = emitterScale.z;\n\t\tthis.material.setParameter(\"emitterScale\", this.emitterScaleUniform);\n\t\tif (this.localSpace && this.meshInstance.node) {\n\t\t\temitterPos = this.meshInstance.node.getPosition();\n\t\t\tthis.emitterPosUniform[0] = emitterPos.x;\n\t\t\tthis.emitterPosUniform[1] = emitterPos.y;\n\t\t\tthis.emitterPosUniform[2] = emitterPos.z;\n\t\t\tthis.material.setParameter(\"emitterPos\", this.emitterPosUniform);\n\t\t}\n\t\tthis._compParticleFaceParams();\n\t\tif (!this.useCpu) {\n\t\t\tthis._gpuUpdater.update(device, spawnMatrix, extentsInnerRatioUniform, delta3, isOnStop);\n\t\t} else {\n\t\t\tconst data2 = new Float32Array(this.vertexBuffer.lock());\n\t\t\tthis._cpuUpdater.update(data2, this.vbToSort, this.particleTex, spawnMatrix, extentsInnerRatioUniform, emitterPos, delta3, isOnStop);\n\t\t}\n\t\tif (!this.loop) {\n\t\t\tif (this.simTimeTotal > this.endTime) {\n\t\t\t\tif (this.onFinished) this.onFinished();\n\t\t\t\tthis.meshInstance.visible = false;\n\t\t\t}\n\t\t}\n\t\tif (this.meshInstance) {\n\t\t\tthis.meshInstance.drawOrder = this.drawOrder;\n\t\t}\n\t}\n\t_destroyResources() {\n\t\tthis.particleTexIN?.destroy();\n\t\tthis.particleTexIN = null;\n\t\tthis.particleTexOUT?.destroy();\n\t\tthis.particleTexOUT = null;\n\t\tif (this.particleTexStart && this.particleTexStart.destroy) {\n\t\t\tthis.particleTexStart.destroy();\n\t\t\tthis.particleTexStart = null;\n\t\t}\n\t\tthis.rtParticleTexIN?.destroy();\n\t\tthis.rtParticleTexIN = null;\n\t\tthis.rtParticleTexOUT?.destroy();\n\t\tthis.rtParticleTexOUT = null;\n\t\tthis.internalTex0?.destroy();\n\t\tthis.internalTex0 = null;\n\t\tthis.internalTex1?.destroy();\n\t\tthis.internalTex1 = null;\n\t\tthis.internalTex2?.destroy();\n\t\tthis.internalTex2 = null;\n\t\tthis.internalTex3?.destroy();\n\t\tthis.internalTex3 = null;\n\t\tthis.colorParam?.destroy();\n\t\tthis.colorParam = null;\n\t\tthis.vertexBuffer = void 0;\n\t\tthis.indexBuffer = void 0;\n\t\tconst wasVisible = this.meshInstance?.visible ?? true;\n\t\tthis.meshInstance?.destroy();\n\t\tthis.meshInstance = null;\n\t\tthis.material?.destroy();\n\t\tthis.material = null;\n\t\treturn wasVisible;\n\t}\n\tdestroy() {\n\t\tthis.camera = null;\n\t\tthis._destroyResources();\n\t}\n};\n\nvar ShaderGeneratorShader = class extends ShaderGenerator {\n\tgenerateKey(options2) {\n\t\tconst desc = options2.shaderDesc;\n\t\tconst vsHashGLSL = desc.vertexGLSL ? hashCode(desc.vertexGLSL) : 0;\n\t\tconst fsHashGLSL = desc.fragmentGLSL ? hashCode(desc.fragmentGLSL) : 0;\n\t\tconst vsHashWGSL = desc.vertexWGSL ? hashCode(desc.vertexWGSL) : 0;\n\t\tconst fsHashWGSL = desc.fragmentWGSL ? hashCode(desc.fragmentWGSL) : 0;\n\t\tconst definesHash = ShaderGenerator.definesHash(options2.defines);\n\t\tconst chunksKey = options2.shaderChunks?.key ?? \"\";\n\t\tlet key = `${desc.uniqueName}_${definesHash}_${vsHashGLSL}_${fsHashGLSL}_${vsHashWGSL}_${fsHashWGSL}_${chunksKey}`;\n\t\tif (options2.skin) key += \"_skin\";\n\t\tif (options2.useInstancing) key += \"_inst\";\n\t\tif (options2.useMorphPosition) key += \"_morphp\";\n\t\tif (options2.useMorphNormal) key += \"_morphn\";\n\t\tif (options2.useMorphTextureBasedInt) key += \"_morphi\";\n\t\tif (options2.useDualSourceBlending) key += \"_dualSource\";\n\t\treturn key;\n\t}\n\tcreateAttributesDefinition(definitionOptions, options2) {\n\t\tconst srcAttributes = options2.shaderDesc.attributes;\n\t\tconst attributes = srcAttributes ? { ...srcAttributes } : void 0;\n\t\tif (options2.skin) {\n\t\t\tattributes.vertex_boneWeights = SEMANTIC_BLENDWEIGHT;\n\t\t\tattributes.vertex_boneIndices = SEMANTIC_BLENDINDICES;\n\t\t}\n\t\tif (options2.useMorphPosition || options2.useMorphNormal) {\n\t\t\tattributes.morph_vertex_id = SEMANTIC_ATTR15;\n\t\t}\n\t\tdefinitionOptions.attributes = attributes;\n\t}\n\taddSharedDefines(defines, options2) {\n\t\tif (options2.skin) defines.set(\"SKIN\", true);\n\t\tif (options2.useInstancing) defines.set(\"INSTANCING\", true);\n\t\tif (options2.useMorphPosition || options2.useMorphNormal) {\n\t\t\tdefines.set(\"MORPHING\", true);\n\t\t\tif (options2.useMorphTextureBasedInt) defines.set(\"MORPHING_INT\", true);\n\t\t\tif (options2.useMorphPosition) defines.set(\"MORPHING_POSITION\", true);\n\t\t\tif (options2.useMorphNormal) defines.set(\"MORPHING_NORMAL\", true);\n\t\t}\n\t}\n\tcreateVertexDefinition(definitionOptions, options2, sharedIncludes, wgsl) {\n\t\tconst desc = options2.shaderDesc;\n\t\tconst includes = new Map(sharedIncludes);\n\t\tincludes.set(\"transformInstancingVS\", \"\");\n\t\tconst defines = new Map(options2.defines);\n\t\tthis.addSharedDefines(defines, options2);\n\t\tdefinitionOptions.vertexCode = wgsl ? desc.vertexWGSL : desc.vertexGLSL;\n\t\tdefinitionOptions.vertexIncludes = includes;\n\t\tdefinitionOptions.vertexDefines = defines;\n\t}\n\tcreateFragmentDefinition(definitionOptions, options2, sharedIncludes, wgsl) {\n\t\tconst desc = options2.shaderDesc;\n\t\tconst includes = new Map(sharedIncludes);\n\t\tconst defines = new Map(options2.defines);\n\t\tthis.addSharedDefines(defines, options2);\n\t\tdefinitionOptions.fragmentCode = wgsl ? desc.fragmentWGSL : desc.fragmentGLSL;\n\t\tdefinitionOptions.fragmentIncludes = includes;\n\t\tdefinitionOptions.fragmentDefines = defines;\n\t}\n\tcreateShaderDefinition(device, options2) {\n\t\tconst desc = options2.shaderDesc;\n\t\tconst wgsl = device.isWebGPU && !!desc.vertexWGSL && !!desc.fragmentWGSL && (options2.shaderChunks?.useWGSL ?? true);\n\t\tconst definitionOptions = {\n\t\t\tname: `ShaderMaterial-${desc.uniqueName}`,\n\t\t\tshaderLanguage: wgsl ? SHADERLANGUAGE_WGSL : SHADERLANGUAGE_GLSL,\n\t\t\tfragmentOutputTypes: desc.fragmentOutputTypes,\n\t\t\tuseDualSourceBlending: options2.useDualSourceBlending,\n\t\t\tmeshUniformBufferFormat: desc.meshUniformBufferFormat,\n\t\t\tmeshBindGroupFormat: desc.meshBindGroupFormat\n\t\t};\n\t\tconst shaderLanguage = wgsl ? SHADERLANGUAGE_WGSL : SHADERLANGUAGE_GLSL;\n\t\tconst sharedIncludes = MapUtils.merge(\n\t\t\tShaderChunks.get(device, shaderLanguage),\n\t\t\toptions2.shaderChunks[shaderLanguage]\n\t\t);\n\t\tthis.createAttributesDefinition(definitionOptions, options2);\n\t\tthis.createVertexDefinition(definitionOptions, options2, sharedIncludes, wgsl);\n\t\tthis.createFragmentDefinition(definitionOptions, options2, sharedIncludes, wgsl);\n\t\treturn ShaderDefinitionUtils.createDefinition(device, definitionOptions);\n\t}\n};\nvar shaderGeneratorShader = new ShaderGeneratorShader();\n\nvar ShaderMaterial = class extends Material {\n\t_shaderDesc;\n\tconstructor(shaderDesc) {\n\t\tsuper();\n\t\tthis.sceneTexturesWrite = false;\n\t\tthis.shaderDesc = shaderDesc;\n\t}\n\tset shaderDesc(value) {\n\t\tthis._shaderDesc = void 0;\n\t\tif (value) {\n\t\t\tthis._shaderDesc = {\n\t\t\t\tuniqueName: value.uniqueName,\n\t\t\t\tattributes: value.attributes,\n\t\t\t\tfragmentOutputTypes: value.fragmentOutputTypes,\n\t\t\t\tvertexGLSL: value.vertexGLSL,\n\t\t\t\tfragmentGLSL: value.fragmentGLSL,\n\t\t\t\tvertexWGSL: value.vertexWGSL,\n\t\t\t\tfragmentWGSL: value.fragmentWGSL\n\t\t\t};\n\t\t\tif (value.vertexCode || value.fragmentCode || value.shaderLanguage) {\n\t\t\t\tconst language = value.shaderLanguage ?? SHADERLANGUAGE_GLSL;\n\t\t\t\tif (language === SHADERLANGUAGE_GLSL) {\n\t\t\t\t\tthis._shaderDesc.vertexGLSL = value.vertexCode;\n\t\t\t\t\tthis._shaderDesc.fragmentGLSL = value.fragmentCode;\n\t\t\t\t} else if (language === SHADERLANGUAGE_WGSL) {\n\t\t\t\t\tthis._shaderDesc.vertexWGSL = value.vertexCode;\n\t\t\t\t\tthis._shaderDesc.fragmentWGSL = value.fragmentCode;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis.clearVariants();\n\t}\n\tget shaderDesc() {\n\t\treturn this._shaderDesc;\n\t}\n\tcopy(source) {\n\t\tsuper.copy(source);\n\t\tthis.shaderDesc = source.shaderDesc;\n\t\treturn this;\n\t}\n\tgetShaderVariant(params) {\n\t\tconst { objDefs } = params;\n\t\tconst shaderPassInfo = ShaderPass.get(params.device).getByIndex(params.pass);\n\t\tconst options2 = {\n\t\t\tdefines: ShaderUtils.getCoreDefines(this, params),\n\t\t\tskin: (objDefs & SHADERDEF_SKIN) !== 0,\n\t\t\tuseInstancing: (objDefs & SHADERDEF_INSTANCING) !== 0,\n\t\t\tuseMorphPosition: (objDefs & SHADERDEF_MORPH_POSITION) !== 0,\n\t\t\tuseMorphNormal: (objDefs & SHADERDEF_MORPH_NORMAL) !== 0,\n\t\t\tuseMorphTextureBasedInt: (objDefs & SHADERDEF_MORPH_TEXTURE_BASED_INT) !== 0,\n\t\t\tpass: params.pass,\n\t\t\tgamma: params.cameraShaderParams.shaderOutputGamma,\n\t\t\ttoneMapping: params.cameraShaderParams.toneMapping,\n\t\t\tfog: params.cameraShaderParams.fog,\n\t\t\tuseDualSourceBlending: shaderPassInfo.isForward && this.blendState.usesDualSourceBlending,\n\t\t\tshaderDesc: this.shaderDesc,\n\t\t\tshaderChunks: this.shaderChunks\n\t\t\t// override chunks from the material\n\t\t};\n\t\tconst processingOptions = new ShaderProcessorOptions(params.viewUniformFormat, params.vertexFormat);\n\t\tconst library = getProgramLibrary(params.device);\n\t\tlibrary.register(\"shader-material\", shaderGeneratorShader);\n\t\treturn library.getProgram(\"shader-material\", options2, processingOptions, this.userId);\n\t}\n};\n\nvar gsplatStreamDecl_default = `\nuniform highp {sampler} {name};\n{returnType} load{funcName}() { return texelFetch({name}, splat.uv, 0); }\n{returnType} load{funcName}WithIndex(uint index) { return texelFetch({name}, ivec2(index % splatTextureSize, index / splatTextureSize), 0); }\n`;\n\nvar gsplatStreamDecl_default2 = `\nvar {name}: {textureType};\nfn load{funcName}() -> {returnType} { return textureLoad({name}, splat.uv, 0); }\nfn load{funcName}WithIndex(index: u32) -> {returnType} { return textureLoad({name}, vec2i(i32(index % uniform.splatTextureSize), i32(index / uniform.splatTextureSize)), 0); }\n`;\n\nvar gsplatComputeStreamDecl_default = `\n@group(0) @binding({binding}) var {name}: {textureType};\nfn load{funcName}() -> {returnType} { return textureLoad({name}, splat.uv, 0); }\nfn load{funcName}WithIndex(index: u32) -> {returnType} { return textureLoad({name}, vec2i(i32(index % uniforms.splatTextureSize), i32(index / uniforms.splatTextureSize)), 0); }\n`;\n\nvar gsplatStreamOutput_default = `\nvoid write{funcName}({returnType} value) {\n#if {defineGuard}\n\tpcFragColor{index} = value;\n#endif\n}\n`;\n\nvar gsplatStreamOutput_default2 = `\nfn write{funcName}(value: {returnType}) {\n#if {defineGuard}\n\tprocessOutput.{colorSlot} = value;\n#endif\n}\n`;\n\nvar containerFloatRead_default = `\nvec3 getCenter() { return loadDataCenter().xyz; }\nvec4 getColor() { return loadDataColor(); }\nvec3 getScale() { return loadDataScale().xyz; }\nvec4 getRotation() { return loadDataRotation(); }\n`;\n\nvar containerFloatRead_default2 = `\nfn getCenter() -> vec3f { return loadDataCenter().xyz; }\nfn getColor() -> vec4f { return loadDataColor(); }\nfn getScale() -> vec3f { return loadDataScale().xyz; }\nfn getRotation() -> vec4f { return loadDataRotation(); }\n`;\n\nvar containerSimpleRead_default = `\n\tvec3 getCenter() { return loadDataCenter().xyz; }\n\tvec4 getColor() { return loadDataColor(); }\n\tvec3 getScale() { return vec3(loadDataCenter().w); }\n\tvec4 getRotation() { return vec4(0.0, 0.0, 0.0, 1.0); }\n`;\n\nvar containerSimpleRead_default2 = `\n\tfn getCenter() -> vec3f { return loadDataCenter().xyz; }\n\tfn getColor() -> vec4f { return loadDataColor(); }\n\tfn getScale() -> vec3f { return vec3f(loadDataCenter().w); }\n\tfn getRotation() -> vec4f { return vec4f(0.0, 0.0, 0.0, 1.0); }\n`;\n\nvar serializeStreams = (streams) => streams.map((s2) => `${s2.name}:${s2.format}:${s2.storage}`).join(\",\");\nvar versionCounter = 0;\nvar RE_NAME = /\\{name\\}/g;\nvar RE_SAMPLER = /\\{sampler\\}/g;\nvar RE_TEXTURE_TYPE = /\\{textureType\\}/g;\nvar RE_RETURN_TYPE = /\\{returnType\\}/g;\nvar RE_FUNC_NAME = /\\{funcName\\}/g;\nvar RE_BINDING = /\\{binding\\}/g;\nvar RE_INDEX = /\\{index\\}/g;\nvar RE_COLOR_SLOT = /\\{colorSlot\\}/g;\nvar RE_DEFINE_GUARD = /\\{defineGuard\\}/g;\nvar GSplatFormat = class _GSplatFormat {\n\t_device;\n\tstreams;\n\t_read;\n\tallowStreamRemoval = false;\n\tdataFormat = null;\n\t_extraStreams = [];\n\t_streamNames = /* @__PURE__ */ new Set();\n\t_extraStreamsVersion = ++versionCounter;\n\t_hash;\n\t_resourceStreams = null;\n\t_instanceStreams = null;\n\tconstructor(device, streams, options2) {\n\t\tthis._device = device;\n\t\tthis.streams = [...streams];\n\t\tthis._streamNames = new Set(this.streams.map((s2) => s2.name));\n\t\tconst isWebGPU = device.isWebGPU;\n\t\tthis._read = isWebGPU ? options2.readWGSL : options2.readGLSL;\n\t}\n\tget hash() {\n\t\tif (this._hash === void 0) {\n\t\t\tconst streamsStr = serializeStreams(this.streams);\n\t\t\tconst extraStr = serializeStreams(this._extraStreams);\n\t\t\tthis._hash = hashCode(\n\t\t\t\tstreamsStr + extraStr + this._read\n\t\t\t);\n\t\t}\n\t\treturn this._hash;\n\t}\n\tget extraStreamsVersion() {\n\t\treturn this._extraStreamsVersion;\n\t}\n\tget extraStreams() {\n\t\treturn this._extraStreams;\n\t}\n\tget resourceStreams() {\n\t\tif (this._resourceStreams === null) {\n\t\t\tthis._resourceStreams = [\n\t\t\t\t...this.streams.filter((s2) => s2.storage !== GSPLAT_STREAM_INSTANCE),\n\t\t\t\t...this._extraStreams.filter((s2) => s2.storage !== GSPLAT_STREAM_INSTANCE)\n\t\t\t];\n\t\t}\n\t\treturn this._resourceStreams;\n\t}\n\tget instanceStreams() {\n\t\tif (this._instanceStreams === null) {\n\t\t\tthis._instanceStreams = this._extraStreams.filter((s2) => s2.storage === GSPLAT_STREAM_INSTANCE);\n\t\t}\n\t\treturn this._instanceStreams;\n\t}\n\taddExtraStreams(streams) {\n\t\tif (!streams || streams.length === 0) return;\n\t\tlet added = false;\n\t\tfor (const s2 of streams) {\n\t\t\tif (this._streamNames.has(s2.name)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tthis._extraStreams.push({\n\t\t\t\tname: s2.name,\n\t\t\t\tformat: s2.format,\n\t\t\t\tstorage: s2.storage ?? GSPLAT_STREAM_RESOURCE\n\t\t\t});\n\t\t\tthis._streamNames.add(s2.name);\n\t\t\tadded = true;\n\t\t}\n\t\tif (added) {\n\t\t\tthis._extraStreamsVersion = ++versionCounter;\n\t\t\tthis._invalidateCaches();\n\t\t}\n\t}\n\tremoveExtraStreams(names) {\n\t\tif (!this.allowStreamRemoval) {\n\t\t\treturn;\n\t\t}\n\t\tlet removed = false;\n\t\tfor (const name of names) {\n\t\t\tconst idx = this._extraStreams.findIndex((s2) => s2.name === name);\n\t\t\tif (idx !== -1) {\n\t\t\t\tthis._extraStreams.splice(idx, 1);\n\t\t\t\tthis._streamNames.delete(name);\n\t\t\t\tremoved = true;\n\t\t\t}\n\t\t}\n\t\tif (removed) {\n\t\t\tthis._extraStreamsVersion = ++versionCounter;\n\t\t\tthis._invalidateCaches();\n\t\t}\n\t}\n\tgetInputDeclarations(streamNames) {\n\t\tconst isWebGPU = this._device.isWebGPU;\n\t\tconst template = isWebGPU ? gsplatStreamDecl_default2 : gsplatStreamDecl_default;\n\t\tconst getShaderType = isWebGPU ? getWgslShaderType : getGlslShaderType;\n\t\tconst lines = [];\n\t\tlet streams = [...this.streams, ...this._extraStreams];\n\t\tif (streamNames) {\n\t\t\tstreams = streams.filter((s2) => streamNames.includes(s2.name));\n\t\t}\n\t\tfor (const stream of streams) {\n\t\t\tconst info = getShaderType(stream.format);\n\t\t\tconst funcName = stream.name.charAt(0).toUpperCase() + stream.name.slice(1);\n\t\t\tlet textureType = info.textureType ?? \"\";\n\t\t\tif (isWebGPU && stream.format === PIXELFORMAT_RGBA32F) {\n\t\t\t\ttextureType = \"texture_2d<uff>\";\n\t\t\t}\n\t\t\tconst decl = template.replace(RE_NAME, stream.name).replace(RE_SAMPLER, info.sampler ?? \"\").replace(RE_TEXTURE_TYPE, textureType).replace(RE_RETURN_TYPE, info.returnType).replace(RE_FUNC_NAME, funcName);\n\t\t\tlines.push(decl);\n\t\t}\n\t\treturn lines.join(\"\\n\");\n\t}\n\tgetReadCode() {\n\t\treturn this._read;\n\t}\n\tgetComputeInputDeclarations(startBinding, streamNames) {\n\t\tconst lines = [];\n\t\tlet streams = [...this.streams, ...this._extraStreams];\n\t\tif (streamNames) {\n\t\t\tstreams = streams.filter((s2) => streamNames.includes(s2.name));\n\t\t}\n\t\tfor (let i2 = 0; i2 < streams.length; i2++) {\n\t\t\tconst stream = streams[i2];\n\t\t\tconst info = getWgslShaderType(stream.format);\n\t\t\tconst funcName = stream.name.charAt(0).toUpperCase() + stream.name.slice(1);\n\t\t\tlet textureType = info.textureType ?? \"\";\n\t\t\tif (stream.format === PIXELFORMAT_RGBA32F) {\n\t\t\t\ttextureType = \"texture_2d<uff>\";\n\t\t\t}\n\t\t\tconst decl = gsplatComputeStreamDecl_default.replace(RE_BINDING, String(startBinding + i2)).replace(RE_NAME, stream.name).replace(RE_TEXTURE_TYPE, textureType).replace(RE_RETURN_TYPE, info.returnType).replace(RE_FUNC_NAME, funcName);\n\t\t\tlines.push(decl);\n\t\t}\n\t\treturn lines.join(\"\\n\");\n\t}\n\tgetComputeBindFormats(streamNames) {\n\t\tlet streams = [...this.streams, ...this._extraStreams];\n\t\tif (streamNames) {\n\t\t\tstreams = streams.filter((s2) => streamNames.includes(s2.name));\n\t\t}\n\t\treturn streams.map((stream) => {\n\t\t\tconst info = pixelFormatInfo.get(stream.format);\n\t\t\tlet sampleType = SAMPLETYPE_FLOAT;\n\t\t\tif (info?.isUint) sampleType = SAMPLETYPE_UINT;\n\t\t\telse if (info?.isInt) sampleType = SAMPLETYPE_INT;\n\t\t\treturn new BindTextureFormat(stream.name, SHADERSTAGE_COMPUTE, void 0, sampleType, false);\n\t\t});\n\t}\n\tsetWriteCode(writeGLSL, writeWGSL) {\n\t\tthis._write = this._device.isWebGPU ? writeWGSL : writeGLSL;\n\t}\n\tgetWriteCode() {\n\t\treturn this._write;\n\t}\n\tgetOutputDeclarations(outputStreams) {\n\t\tconst isWebGPU = this._device.isWebGPU;\n\t\tconst lines = [];\n\t\tconst template = isWebGPU ? gsplatStreamOutput_default2 : gsplatStreamOutput_default;\n\t\tconst getShaderType = isWebGPU ? getWgslShaderType : getGlslShaderType;\n\t\tfor (let i2 = 0; i2 < outputStreams.length; i2++) {\n\t\t\tconst stream = outputStreams[i2];\n\t\t\tconst info = getShaderType(stream.format);\n\t\t\tconst funcName = stream.name.charAt(0).toUpperCase() + stream.name.slice(1);\n\t\t\tconst colorSlot = i2 === 0 ? \"color\" : `color${i2}`;\n\t\t\tconst decl = template.replace(RE_FUNC_NAME, funcName).replace(RE_RETURN_TYPE, info.returnType).replace(RE_INDEX, String(i2)).replace(RE_COLOR_SLOT, colorSlot).replace(RE_DEFINE_GUARD, \"1\");\n\t\t\tlines.push(decl);\n\t\t}\n\t\treturn lines.join(\"\\n\");\n\t}\n\tgetOutputStubs(streams) {\n\t\tconst isWebGPU = this._device.isWebGPU;\n\t\tconst lines = [];\n\t\tconst template = isWebGPU ? gsplatStreamOutput_default2 : gsplatStreamOutput_default;\n\t\tconst getShaderType = isWebGPU ? getWgslShaderType : getGlslShaderType;\n\t\tfor (const stream of streams) {\n\t\t\tconst info = getShaderType(stream.format);\n\t\t\tconst funcName = stream.name.charAt(0).toUpperCase() + stream.name.slice(1);\n\t\t\tconst stub = template.replace(RE_FUNC_NAME, funcName).replace(RE_RETURN_TYPE, info.returnType).replace(RE_DEFINE_GUARD, \"0\");\n\t\t\tlines.push(stub);\n\t\t}\n\t\treturn lines.join(\"\\n\");\n\t}\n\tgetStream(name) {\n\t\tlet stream = this.streams.find((s2) => s2.name === name);\n\t\tif (!stream) {\n\t\t\tstream = this._extraStreams.find((s2) => s2.name === name);\n\t\t}\n\t\treturn stream;\n\t}\n\t_invalidateCaches() {\n\t\tthis._hash = void 0;\n\t\tthis._resourceStreams = null;\n\t\tthis._instanceStreams = null;\n\t}\n\tstatic createDefaultFormat(device) {\n\t\treturn new _GSplatFormat(device, [\n\t\t\t{ name: \"dataColor\", format: PIXELFORMAT_RGBA16F },\n\t\t\t{ name: \"dataCenter\", format: PIXELFORMAT_RGBA32F },\n\t\t\t{ name: \"dataScale\", format: PIXELFORMAT_RGBA16F },\n\t\t\t{ name: \"dataRotation\", format: PIXELFORMAT_RGBA16F }\n\t\t], {\n\t\t\treadGLSL: containerFloatRead_default,\n\t\t\treadWGSL: containerFloatRead_default2\n\t\t});\n\t}\n\tstatic createSimpleFormat(device) {\n\t\treturn new _GSplatFormat(device, [\n\t\t\t{ name: \"dataCenter\", format: PIXELFORMAT_RGBA32F },\n\t\t\t{ name: \"dataColor\", format: PIXELFORMAT_RGBA16F }\n\t\t], {\n\t\t\treadGLSL: containerSimpleRead_default,\n\t\t\treadWGSL: containerSimpleRead_default2\n\t\t});\n\t}\n};\n\nvar CACHE_STRIDE = 8;\n\nvar gsplatVaryingDeclVS_default = `\nflat varying {type} user_{name};\nvoid set{funcName}({type} value) { user_{name} = value; }\n`;\n\nvar gsplatVaryingDeclPS_default = `\nflat varying {type} user_{name};\n{type} get{funcName}() { return user_{name}; }\n`;\n\nvar gsplatVaryingDeclVS_default2 = `\nvarying @interpolate(flat) user_{name}: {type};\nvar<private> _user_{name}: {type};\nfn set{funcName}(value: {type}) { _user_{name} = value; }\n`;\n\nvar gsplatVaryingFlushVS_default = `\noutput.user_{name} = _user_{name};\n`;\n\nvar gsplatVaryingDeclCS_default = `\nvar<private> _user_{name}: {type};\nfn set{funcName}(value: {type}) { _user_{name} = value; }\n`;\n\nvar gsplatVaryingDeclPS_default2 = `\nvarying @interpolate(flat) user_{name}: {type};\nfn get{funcName}() -> {type} { return user_{name}; }\n`;\n\nvar gsplatVaryingCacheWriteCS_default = `\nprojCache[base + {word}u] = {value};\n`;\n\nvar gsplatVaryingCacheReadVS_default = `\noutput.user_{name} = {value};\n`;\n\nvar GLSL_TYPES = {\n\t[TYPE_FLOAT32]: [\"float\", \"vec2\", \"vec3\", \"vec4\"],\n\t[TYPE_INT32]: [\"int\", \"ivec2\", \"ivec3\", \"ivec4\"],\n\t[TYPE_UINT32]: [\"uint\", \"uvec2\", \"uvec3\", \"uvec4\"]\n};\nvar WGSL_TYPES = {\n\t[TYPE_FLOAT32]: [\"f32\", \"vec2f\", \"vec3f\", \"vec4f\"],\n\t[TYPE_INT32]: [\"i32\", \"vec2i\", \"vec3i\", \"vec4i\"],\n\t[TYPE_UINT32]: [\"u32\", \"vec2u\", \"vec3u\", \"vec4u\"]\n};\nvar COMPONENT_SWIZZLE = [\"x\", \"y\", \"z\", \"w\"];\nvar RE_NAME2 = /\\{name\\}/g;\nvar RE_TYPE = /\\{type\\}/g;\nvar RE_FUNC_NAME2 = /\\{funcName\\}/g;\nvar RE_WORD = /\\{word\\}/g;\nvar RE_VALUE = /\\{value\\}/g;\nvar GLSL_CHUNK_NAMES = [\"gsplatUserVaryingsVS\", \"gsplatUserVaryingsPS\"];\nvar WGSL_CHUNK_NAMES = [\n\t\"gsplatUserVaryingsVS\",\n\t\"gsplatUserVaryingsFlushVS\",\n\t\"gsplatUserVaryingsCS\",\n\t\"gsplatUserVaryingsPS\",\n\t\"gsplatUserCacheWriteCS\",\n\t\"gsplatUserCacheReadVS\"\n];\nvar pascal = (name) => name.charAt(0).toUpperCase() + name.slice(1);\nvar encodeWord = (type, expr) => {\n\treturn type === TYPE_UINT32 ? expr : `bitcast<u32>(${expr})`;\n};\nvar decodeWord = (type, expr) => {\n\tif (type === TYPE_UINT32) return expr;\n\treturn type === TYPE_INT32 ? `bitcast<i32>(${expr})` : `bitcast<f32>(${expr})`;\n};\nvar GSplatVaryings = class {\n\t_device;\n\t_streams = [];\n\t_words = 0;\n\t_version = 0;\n\tconstructor(device) {\n\t\tthis._device = device;\n\t}\n\tget streams() {\n\t\treturn this._streams;\n\t}\n\tget words() {\n\t\treturn this._words;\n\t}\n\tget version() {\n\t\treturn this._version;\n\t}\n\tadd(streams) {\n\t\tfor (const s2 of streams) {\n\t\t\tthis._streams.push({ name: s2.name, type: s2.type, components: s2.components });\n\t\t}\n\t\tthis._changed();\n\t}\n\tremove(names) {\n\t\tconst count = this._streams.length;\n\t\tthis._streams = this._streams.filter((v6) => !names.includes(v6.name));\n\t\tif (this._streams.length !== count) {\n\t\t\tthis._changed();\n\t\t}\n\t}\n\t_changed() {\n\t\tthis._words = this._streams.reduce((sum, s2) => sum + s2.components, 0);\n\t\tthis._version++;\n\t}\n\t_generateChunks() {\n\t\tconst isWebGPU = this._device.isWebGPU;\n\t\tconst types = isWebGPU ? WGSL_TYPES : GLSL_TYPES;\n\t\tconst declVSTemplate = isWebGPU ? gsplatVaryingDeclVS_default2 : gsplatVaryingDeclVS_default;\n\t\tconst declPSTemplate = isWebGPU ? gsplatVaryingDeclPS_default2 : gsplatVaryingDeclPS_default;\n\t\tconst vs = [];\n\t\tconst ps = [];\n\t\tconst flush = [];\n\t\tconst cs = [];\n\t\tconst cacheWrite = [];\n\t\tconst cacheRead = [];\n\t\tlet wordOffset = 0;\n\t\tfor (const s2 of this._streams) {\n\t\t\tconst { name, type, components: components2 } = s2;\n\t\t\tconst shaderType = types[type][components2 - 1];\n\t\t\tconst funcName = pascal(name);\n\t\t\tconst sub = (template) => template.replace(RE_NAME2, name).replace(RE_TYPE, shaderType).replace(RE_FUNC_NAME2, funcName);\n\t\t\tvs.push(sub(declVSTemplate));\n\t\t\tps.push(sub(declPSTemplate));\n\t\t\tif (isWebGPU) {\n\t\t\t\tflush.push(sub(gsplatVaryingFlushVS_default));\n\t\t\t\tcs.push(sub(gsplatVaryingDeclCS_default));\n\t\t\t\tconst words = [];\n\t\t\t\tfor (let c2 = 0; c2 < components2; c2++) {\n\t\t\t\t\tconst component = components2 === 1 ? `_user_${name}` : `_user_${name}.${COMPONENT_SWIZZLE[c2]}`;\n\t\t\t\t\tcacheWrite.push(gsplatVaryingCacheWriteCS_default.replace(RE_WORD, String(CACHE_STRIDE + wordOffset + c2)).replace(RE_VALUE, encodeWord(type, component)));\n\t\t\t\t\twords.push(decodeWord(type, `projCache[base + ${CACHE_STRIDE + wordOffset + c2}u]`));\n\t\t\t\t}\n\t\t\t\tcacheRead.push(gsplatVaryingCacheReadVS_default.replace(RE_NAME2, name).replace(RE_VALUE, components2 === 1 ? words[0] : `${shaderType}(${words.join(\", \")})`));\n\t\t\t}\n\t\t\twordOffset += components2;\n\t\t}\n\t\tconst chunks = {\n\t\t\tgsplatUserVaryingsVS: vs.join(\"\"),\n\t\t\tgsplatUserVaryingsPS: ps.join(\"\")\n\t\t};\n\t\tif (isWebGPU) {\n\t\t\tchunks.gsplatUserVaryingsFlushVS = flush.join(\"\");\n\t\t\tchunks.gsplatUserVaryingsCS = cs.join(\"\");\n\t\t\tchunks.gsplatUserCacheWriteCS = cacheWrite.join(\"\");\n\t\t\tchunks.gsplatUserCacheReadVS = cacheRead.join(\"\");\n\t\t}\n\t\treturn chunks;\n\t}\n\tapply(material) {\n\t\tconst isWebGPU = this._device.isWebGPU;\n\t\tconst chunks = material.getShaderChunks(isWebGPU ? SHADERLANGUAGE_WGSL : SHADERLANGUAGE_GLSL);\n\t\tmaterial.setDefine(\"GSPLAT_USER_VARYINGS\", this._streams.length > 0);\n\t\tif (this._streams.length > 0) {\n\t\t\tconst sources = this._generateChunks();\n\t\t\tfor (const name in sources) {\n\t\t\t\tchunks.set(name, sources[name]);\n\t\t\t}\n\t\t} else {\n\t\t\tconst names = isWebGPU ? WGSL_CHUNK_NAMES : GLSL_CHUNK_NAMES;\n\t\t\tnames.forEach((name) => chunks.delete(name));\n\t\t}\n\t\tmaterial.update();\n\t}\n};\n\nvar containerCompactRead_default = `\nuvec4 cachedTransformA;\nvec3 getCenter() {\n\tcachedTransformA = loadDataTransformA();\n\treturn vec3(uintBitsToFloat(cachedTransformA.r), uintBitsToFloat(cachedTransformA.g), uintBitsToFloat(cachedTransformA.b));\n}\nfloat getOpacity() {\n\treturn float(cachedTransformA.a >> 24u) / 255.0;\n}\nvec3 getColor() {\n\tuint data = loadDataColor().x;\n\tfloat r = float(data & 0x7FFu) * (4.0 / 2047.0);\n\tfloat g = float((data >> 11u) & 0x7FFu) * (4.0 / 2047.0);\n\tfloat b = float((data >> 22u) & 0x3FFu) * (4.0 / 1023.0);\n\treturn vec3(r, g, b);\n}\nvec4 getRotation() {\n\tuint data = loadDataTransformB().x;\n\tvec3 p = vec3(\n\t\tfloat(data & 0x7FFu) / 2047.0 * 2.0 - 1.0,\n\t\tfloat((data >> 11u) & 0x7FFu) / 2047.0 * 2.0 - 1.0,\n\t\tfloat((data >> 22u) & 0x3FFu) / 1023.0 * 2.0 - 1.0\n\t);\n\tfloat d = dot(p, p);\n\treturn vec4(1.0 - d, sqrt(max(0.0, 2.0 - d)) * p);\n}\nvec3 getScale() {\n\tuint data = cachedTransformA.a;\n\tfloat sx = float(data & 0xFFu);\n\tfloat sy = float((data >> 8u) & 0xFFu);\n\tfloat sz = float((data >> 16u) & 0xFFu);\n\tconst float logRange = 21.0 / 255.0;\n\tconst float logMin = -12.0;\n\treturn vec3(\n\t\tsx == 0.0 ? 0.0 : exp(sx * logRange + logMin),\n\t\tsy == 0.0 ? 0.0 : exp(sy * logRange + logMin),\n\t\tsz == 0.0 ? 0.0 : exp(sz * logRange + logMin)\n\t);\n}\n`;\n\nvar containerCompactWrite_default = `\nvoid writeSplat(vec3 center, vec4 rotation, vec3 scale, vec4 color) {\n\tvec3 rgb = clamp(color.rgb, 0.0, 4.0);\n\tuint rBits = uint(rgb.r * (2047.0 / 4.0) + 0.5);\n\tuint gBits = uint(rgb.g * (2047.0 / 4.0) + 0.5);\n\tuint bBits = uint(rgb.b * (1023.0 / 4.0) + 0.5);\n\twriteDataColor(uvec4(rBits | (gBits << 11u) | (bBits << 22u), 0u, 0u, 0u));\n\t#ifndef GSPLAT_COLOR_ONLY\n\t\tvec4 q = rotation;\n\t\tif (q.w < 0.0) q = -q;\n\t\tvec3 p = q.xyz * inversesqrt(1.0 + q.w);\n\t\tuint aBitsQ = uint(clamp((p.x * 0.5 + 0.5) * 2047.0 + 0.5, 0.0, 2047.0));\n\t\tuint bBitsQ = uint(clamp((p.y * 0.5 + 0.5) * 2047.0 + 0.5, 0.0, 2047.0));\n\t\tuint cBitsQ = uint(clamp((p.z * 0.5 + 0.5) * 1023.0 + 0.5, 0.0, 1023.0));\n\t\tuint packedQuat = aBitsQ | (bBitsQ << 11u) | (cBitsQ << 22u);\n\t\tconst float invLogRange = 255.0 / 21.0;\n\t\tconst float logMin = -12.0;\n\t\tuint sxBits = scale.x < 1e-10 ? 0u : uint(clamp((log(scale.x) - logMin) * invLogRange + 0.5, 1.0, 255.0));\n\t\tuint syBits = scale.y < 1e-10 ? 0u : uint(clamp((log(scale.y) - logMin) * invLogRange + 0.5, 1.0, 255.0));\n\t\tuint szBits = scale.z < 1e-10 ? 0u : uint(clamp((log(scale.z) - logMin) * invLogRange + 0.5, 1.0, 255.0));\n\t\tuint alphaBits = uint(clamp(color.a, 0.0, 1.0) * 255.0 + 0.5);\n\t\tuint packedScaleAlpha = sxBits | (syBits << 8u) | (szBits << 16u) | (alphaBits << 24u);\n\t\twriteDataTransformA(uvec4(floatBitsToUint(center.x), floatBitsToUint(center.y), floatBitsToUint(center.z), packedScaleAlpha));\n\t\twriteDataTransformB(uvec4(packedQuat, 0u, 0u, 0u));\n\t#endif\n}\n`;\n\nvar containerPackedRead_default = `\nuvec4 cachedTransformA;\nuvec2 cachedTransformB;\nvec4 cachedColor;\nvec3 getCenter() {\n\tcachedTransformA = loadDataTransformA();\n\tcachedTransformB = loadDataTransformB().xy;\n\treturn vec3(uintBitsToFloat(cachedTransformA.r), uintBitsToFloat(cachedTransformA.g), uintBitsToFloat(cachedTransformA.b));\n}\nfloat getOpacity() {\n\t#ifdef GSPLAT_COLOR_FLOAT\n\t\tcachedColor = loadDataColor();\n\t#else\n\t\tuvec4 packedColor = loadDataColor();\n\t\tuint packed_rg = packedColor.r | (packedColor.g << 16u);\n\t\tuint packed_ba = packedColor.b | (packedColor.a << 16u);\n\t\tcachedColor = vec4(unpackHalf2x16(packed_rg), unpackHalf2x16(packed_ba));\n\t#endif\n\treturn cachedColor.a;\n}\nvec3 getColor() {\n\treturn cachedColor.rgb;\n}\nvec4 getRotation() {\n\tvec2 rotXY = unpackHalf2x16(cachedTransformA.a);\n\tvec2 rotZscaleX = unpackHalf2x16(cachedTransformB.x);\n\tvec3 rotXYZ = vec3(rotXY, rotZscaleX.x);\n\treturn vec4(rotXYZ, sqrt(max(0.0, 1.0 - dot(rotXYZ, rotXYZ)))).wxyz;\n}\nvec3 getScale() {\n\tvec2 rotZscaleX = unpackHalf2x16(cachedTransformB.x);\n\tvec2 scaleYZ = unpackHalf2x16(cachedTransformB.y);\n\treturn vec3(rotZscaleX.y, scaleYZ);\n}\n`;\n\nvar containerPackedWrite_default = `\nvoid writeSplat(vec3 center, vec4 rotation, vec3 scale, vec4 color) {\n\t#ifdef GSPLAT_COLOR_UINT\n\t\tuint packed_rg = packHalf2x16(color.rg);\n\t\tuint packed_ba = packHalf2x16(color.ba);\n\t\twriteDataColor(uvec4(\n\t\t\tpacked_rg & 0xFFFFu,\n\t\t\tpacked_rg >> 16u,\n\t\t\tpacked_ba & 0xFFFFu,\n\t\t\tpacked_ba >> 16u\n\t\t));\n\t#else\n\t\twriteDataColor(color);\n\t#endif\n\t#ifndef GSPLAT_COLOR_ONLY\n\t\twriteDataTransformA(uvec4(floatBitsToUint(center.x), floatBitsToUint(center.y), floatBitsToUint(center.z), packHalf2x16(rotation.xy)));\n\t\twriteDataTransformB(uvec4(packHalf2x16(vec2(rotation.z, scale.x)), packHalf2x16(scale.yz), 0u, 0u));\n\t#endif\n}\n`;\n\nvar containerCompactRead_default2 = `\nvar<private> cachedTransformA: vec4u;\nfn getCenter() -> vec3f {\n\tcachedTransformA = loadDataTransformA();\n\treturn vec3f(bitcast<f32>(cachedTransformA.r), bitcast<f32>(cachedTransformA.g), bitcast<f32>(cachedTransformA.b));\n}\nfn getOpacity() -> f32 {\n\treturn f32(cachedTransformA.a >> 24u) / 255.0;\n}\nfn getColor() -> vec3f {\n\tlet data = loadDataColor().x;\n\tlet r = f32(data & 0x7FFu) * (4.0 / 2047.0);\n\tlet g = f32((data >> 11u) & 0x7FFu) * (4.0 / 2047.0);\n\tlet b = f32((data >> 22u) & 0x3FFu) * (4.0 / 1023.0);\n\treturn vec3f(r, g, b);\n}\nfn getRotation() -> vec4f {\n\tlet data = loadDataTransformB().x;\n\tlet p = vec3f(\n\t\tf32(data & 0x7FFu) / 2047.0 * 2.0 - 1.0,\n\t\tf32((data >> 11u) & 0x7FFu) / 2047.0 * 2.0 - 1.0,\n\t\tf32((data >> 22u) & 0x3FFu) / 1023.0 * 2.0 - 1.0\n\t);\n\tlet d = dot(p, p);\n\treturn vec4f(1.0 - d, sqrt(max(0.0, 2.0 - d)) * p);\n}\nfn getScale() -> vec3f {\n\tlet data = cachedTransformA.a;\n\tlet sx = f32(data & 0xFFu);\n\tlet sy = f32((data >> 8u) & 0xFFu);\n\tlet sz = f32((data >> 16u) & 0xFFu);\n\tlet logRange = 21.0 / 255.0;\n\tlet logMin = -12.0;\n\treturn vec3f(\n\t\tselect(exp(sx * logRange + logMin), 0.0, sx == 0.0),\n\t\tselect(exp(sy * logRange + logMin), 0.0, sy == 0.0),\n\t\tselect(exp(sz * logRange + logMin), 0.0, sz == 0.0)\n\t);\n}\n`;\n\nvar containerCompactWrite_default2 = `\nfn writeSplat(center: vec3f, rotation: vec4f, scale: vec3f, color: vec4f) {\n\tlet rgb = clamp(color.rgb, vec3f(0.0), vec3f(4.0));\n\tlet rBits = u32(rgb.r * (2047.0 / 4.0) + 0.5);\n\tlet gBits = u32(rgb.g * (2047.0 / 4.0) + 0.5);\n\tlet bBits = u32(rgb.b * (1023.0 / 4.0) + 0.5);\n\twriteDataColor(vec4u(rBits | (gBits << 11u) | (bBits << 22u), 0u, 0u, 0u));\n\t#ifndef GSPLAT_COLOR_ONLY\n\t\tvar q = rotation;\n\t\tif (q.w < 0.0) { q = -q; }\n\t\tlet p = q.xyz * inverseSqrt(1.0 + q.w);\n\t\tlet aBitsQ = u32(clamp(p.x * 0.5 + 0.5, 0.0, 1.0) * 2047.0 + 0.5);\n\t\tlet bBitsQ = u32(clamp(p.y * 0.5 + 0.5, 0.0, 1.0) * 2047.0 + 0.5);\n\t\tlet cBitsQ = u32(clamp(p.z * 0.5 + 0.5, 0.0, 1.0) * 1023.0 + 0.5);\n\t\tlet packedQuat = aBitsQ | (bBitsQ << 11u) | (cBitsQ << 22u);\n\t\tlet invLogRange = 255.0 / 21.0;\n\t\tlet logMin = -12.0;\n\t\tlet sxBits = select(u32(clamp((log(scale.x) - logMin) * invLogRange + 0.5, 1.0, 255.0)), 0u, scale.x < 1e-10);\n\t\tlet syBits = select(u32(clamp((log(scale.y) - logMin) * invLogRange + 0.5, 1.0, 255.0)), 0u, scale.y < 1e-10);\n\t\tlet szBits = select(u32(clamp((log(scale.z) - logMin) * invLogRange + 0.5, 1.0, 255.0)), 0u, scale.z < 1e-10);\n\t\tlet alphaBits = u32(clamp(color.a, 0.0, 1.0) * 255.0 + 0.5);\n\t\tlet packedScaleAlpha = sxBits | (syBits << 8u) | (szBits << 16u) | (alphaBits << 24u);\n\t\twriteDataTransformA(vec4u(bitcast<u32>(center.x), bitcast<u32>(center.y), bitcast<u32>(center.z), packedScaleAlpha));\n\t\twriteDataTransformB(vec4u(packedQuat, 0u, 0u, 0u));\n\t#endif\n}\n`;\n\nvar containerPackedRead_default2 = `\nvar<private> cachedTransformA: vec4u;\nvar<private> cachedTransformB: vec2u;\nvar<private> cachedColor: vec4f;\nfn getCenter() -> vec3f {\n\tcachedTransformA = loadDataTransformA();\n\tcachedTransformB = loadDataTransformB().xy;\n\treturn vec3f(bitcast<f32>(cachedTransformA.r), bitcast<f32>(cachedTransformA.g), bitcast<f32>(cachedTransformA.b));\n}\nfn getOpacity() -> f32 {\n\t#ifdef GSPLAT_COLOR_FLOAT\n\t\tcachedColor = loadDataColor();\n\t#else\n\t\tlet packedColor = loadDataColor();\n\t\tlet packed_rg = packedColor.r | (packedColor.g << 16u);\n\t\tlet packed_ba = packedColor.b | (packedColor.a << 16u);\n\t\tcachedColor = vec4f(unpack2x16float(packed_rg), unpack2x16float(packed_ba));\n\t#endif\n\treturn cachedColor.a;\n}\nfn getColor() -> vec3f {\n\treturn cachedColor.rgb;\n}\nfn getRotation() -> vec4f {\n\tlet rotXY = unpack2x16float(cachedTransformA.a);\n\tlet rotZscaleX = unpack2x16float(cachedTransformB.x);\n\tlet rotXYZ = vec3f(rotXY, rotZscaleX.x);\n\treturn vec4f(rotXYZ, sqrt(max(0.0, 1.0 - dot(rotXYZ, rotXYZ)))).wxyz;\n}\nfn getScale() -> vec3f {\n\tlet rotZscaleX = unpack2x16float(cachedTransformB.x);\n\tlet scaleYZ = unpack2x16float(cachedTransformB.y);\n\treturn vec3f(rotZscaleX.y, scaleYZ);\n}\n`;\n\nvar containerPackedWrite_default2 = `\nfn writeSplat(center: vec3f, rotation: vec4f, scale: vec3f, color: vec4f) {\n\twriteDataColor(color);\n\t#ifndef GSPLAT_COLOR_ONLY\n\t\twriteDataTransformA(vec4u(bitcast<u32>(center.x), bitcast<u32>(center.y), bitcast<u32>(center.z), pack2x16float(rotation.xy)));\n\t\twriteDataTransformB(vec4u(pack2x16float(vec2f(rotation.z, scale.x)), pack2x16float(scale.yz), 0u, 0u));\n\t#endif\n}\n`;\n\nvar ALPHA_VISIBILITY_THRESHOLD = 1 / 255;\nvar SPLAT_BUDGET_DEFAULT = 1e6;\nvar NUM_VALUE_BUCKETS = 512;\n\nvar GSplatParams = class {\n\t_material = new ShaderMaterial();\n\t_format;\n\t_device;\n\t_dataFormat = GSPLATDATA_COMPACT;\n\tconstructor(device) {\n\t\tthis._device = device;\n\t\tthis._currentRenderer = this._resolveRenderer(this._renderer);\n\t\tthis._format = this._createFormat(GSPLATDATA_COMPACT);\n\t\tthis._varyings = new GSplatVaryings(device);\n\t\tthis._material.setParameter(\"alphaClip\", 0.3);\n\t\tthis._material.setParameter(\"alphaClipForward\", 1 / 255);\n\t\tthis._material.setParameter(\"minPixelSize\", 2);\n\t\tthis._material.setParameter(\"minContribution\", 3);\n\t\tthis._material.setParameter(\"foveationStrength\", 0);\n\t\tthis._material.setParameter(\"foveationCenter\", 0.3);\n\t}\n\t_createFormat(dataFormat) {\n\t\tlet format;\n\t\tif (dataFormat === GSPLATDATA_COMPACT) {\n\t\t\tformat = new GSplatFormat(this._device, [\n\t\t\t\t{ name: \"dataColor\", format: PIXELFORMAT_R32U },\n\t\t\t\t{ name: \"dataTransformA\", format: PIXELFORMAT_RGBA32U },\n\t\t\t\t{ name: \"dataTransformB\", format: PIXELFORMAT_R32U }\n\t\t\t], {\n\t\t\t\treadGLSL: containerCompactRead_default,\n\t\t\t\treadWGSL: containerCompactRead_default2\n\t\t\t});\n\t\t\tformat.setWriteCode(containerCompactWrite_default, containerCompactWrite_default2);\n\t\t} else {\n\t\t\tconst colorFormat = this._device.getRenderableHdrFormat([PIXELFORMAT_RGBA16F]) || PIXELFORMAT_RGBA16U;\n\t\t\tformat = new GSplatFormat(this._device, [\n\t\t\t\t{ name: \"dataColor\", format: colorFormat },\n\t\t\t\t{ name: \"dataTransformA\", format: PIXELFORMAT_RGBA32U },\n\t\t\t\t{ name: \"dataTransformB\", format: PIXELFORMAT_RG32U }\n\t\t\t], {\n\t\t\t\treadGLSL: containerPackedRead_default,\n\t\t\t\treadWGSL: containerPackedRead_default2\n\t\t\t});\n\t\t\tformat.setWriteCode(containerPackedWrite_default, containerPackedWrite_default2);\n\t\t}\n\t\tformat.allowStreamRemoval = true;\n\t\tformat.dataFormat = dataFormat;\n\t\treturn format;\n\t}\n\tradialSorting = false;\n\t_renderer = GSPLAT_RENDERER_AUTO;\n\t_currentRenderer = GSPLAT_RENDERER_RASTER_CPU_SORT;\n\t_resolveRenderer(value) {\n\t\tif (value === GSPLAT_RENDERER_AUTO) {\n\t\t\treturn this._device.isWebGPU ? GSPLAT_RENDERER_RASTER_GPU_SORT : GSPLAT_RENDERER_RASTER_CPU_SORT;\n\t\t}\n\t\tif (value === GSPLAT_RENDERER_RASTER_GPU_SORT && !this._device.isWebGPU) {\n\t\t\treturn GSPLAT_RENDERER_RASTER_CPU_SORT;\n\t\t}\n\t\treturn value;\n\t}\n\tset renderer(value) {\n\t\tif (value === GSPLAT_RENDERER_COMPUTE) {\n\t\t\tvalue = GSPLAT_RENDERER_AUTO;\n\t\t}\n\t\tif (this._renderer !== value) {\n\t\t\tthis._renderer = value;\n\t\t\tthis._currentRenderer = this._resolveRenderer(value);\n\t\t}\n\t}\n\tget renderer() {\n\t\treturn this._renderer;\n\t}\n\tget currentRenderer() {\n\t\treturn this._currentRenderer;\n\t}\n\tdirty = false;\n\t_debug = GSPLAT_DEBUG_NONE;\n\tset debug(value) {\n\t\tif (value === GSPLAT_DEBUG_HEATMAP) {\n\t\t\treturn;\n\t\t}\n\t\tif (this._debug !== value) {\n\t\t\tconst prev = this._debug;\n\t\t\tthis._debug = value;\n\t\t\tif (value === GSPLAT_DEBUG_LOD || prev === GSPLAT_DEBUG_LOD) {\n\t\t\t\tthis.dirty = true;\n\t\t\t}\n\t\t}\n\t}\n\tget debug() {\n\t\treturn this._debug;\n\t}\n\tset colorizeLod(value) {\n\t\tthis.debug = value ? GSPLAT_DEBUG_LOD : GSPLAT_DEBUG_NONE;\n\t}\n\tget colorizeLod() {\n\t\treturn this._debug === GSPLAT_DEBUG_LOD;\n\t}\n\tset debugAabbs(value) {\n\t\tthis.debug = value ? GSPLAT_DEBUG_AABBS : GSPLAT_DEBUG_NONE;\n\t}\n\tget debugAabbs() {\n\t\treturn this._debug === GSPLAT_DEBUG_AABBS;\n\t}\n\tset debugNodeAabbs(value) {\n\t\tthis.debug = value ? GSPLAT_DEBUG_NODE_AABBS : GSPLAT_DEBUG_NONE;\n\t}\n\tget debugNodeAabbs() {\n\t\treturn this._debug === GSPLAT_DEBUG_NODE_AABBS;\n\t}\n\t_enableIds = false;\n\tset enableIds(value) {\n\t\tif (value && !this._enableIds) {\n\t\t\tthis._enableIds = true;\n\t\t\tif (!this._format.getStream(\"pcId\")) {\n\t\t\t\tthis._format.addExtraStreams([\n\t\t\t\t\t{ name: \"pcId\", format: PIXELFORMAT_R32U }\n\t\t\t\t]);\n\t\t\t}\n\t\t} else if (!value && this._enableIds) {\n\t\t\tthis._enableIds = false;\n\t\t\tthis._format.removeExtraStreams([\"pcId\"]);\n\t\t}\n\t}\n\tget enableIds() {\n\t\treturn this._enableIds;\n\t}\n\tlodUpdateDistance = 1;\n\tlodUpdateAngle = 0;\n\t_lodBehindPenalty = 1;\n\tset lodBehindPenalty(value) {\n\t\tif (this._lodBehindPenalty !== value) {\n\t\t\tthis._lodBehindPenalty = value;\n\t\t\tthis.dirty = true;\n\t\t}\n\t}\n\tget lodBehindPenalty() {\n\t\treturn this._lodBehindPenalty;\n\t}\n\tset lodRangeMin(value) {\n\t}\n\tget lodRangeMin() {\n\t\treturn 0;\n\t}\n\tset lodRangeMax(value) {\n\t}\n\tget lodRangeMax() {\n\t\treturn 99;\n\t}\n\t_lodUnderfillLimit = 0;\n\tset lodUnderfillLimit(value) {\n\t\tif (this._lodUnderfillLimit !== value) {\n\t\t\tthis._lodUnderfillLimit = value;\n\t\t\tthis.dirty = true;\n\t\t}\n\t}\n\tget lodUnderfillLimit() {\n\t\treturn this._lodUnderfillLimit;\n\t}\n\t_splatBudget = SPLAT_BUDGET_DEFAULT;\n\tset splatBudget(value) {\n\t\tif (this._splatBudget !== value) {\n\t\t\tthis._splatBudget = value;\n\t\t\tthis.dirty = true;\n\t\t}\n\t}\n\tget splatBudget() {\n\t\treturn this._splatBudget;\n\t}\n\t_lodMode = GSPLAT_LODMODE_DISTANCE;\n\tset lodMode(value) {\n\t\tif (value !== GSPLAT_LODMODE_ERROR && value !== GSPLAT_LODMODE_DISTANCE) {\n\t\t\treturn;\n\t\t}\n\t\tif (this._lodMode !== value) {\n\t\t\tthis._lodMode = value;\n\t\t\tthis.dirty = true;\n\t\t}\n\t}\n\tget lodMode() {\n\t\treturn this._lodMode;\n\t}\n\t_colorRamp = null;\n\tset colorRamp(value) {\n\t\tif (this._colorRamp !== value) {\n\t\t\tthis._colorRamp = value;\n\t\t\tthis.dirty = true;\n\t\t}\n\t}\n\tget colorRamp() {\n\t\treturn this._colorRamp;\n\t}\n\tcolorRampIntensity = 1;\n\tuseFog = true;\n\tuseTonemap = true;\n\tset colorizeColorUpdate(value) {\n\t\tthis.debug = value ? GSPLAT_DEBUG_SH_UPDATE : GSPLAT_DEBUG_NONE;\n\t}\n\tget colorizeColorUpdate() {\n\t\treturn this._debug === GSPLAT_DEBUG_SH_UPDATE;\n\t}\n\tcolorUpdateAngle = 10;\n\tset colorUpdateDistance(value) {\n\t}\n\tget colorUpdateDistance() {\n\t\treturn 0;\n\t}\n\tset colorUpdateDistanceLodScale(value) {\n\t}\n\tget colorUpdateDistanceLodScale() {\n\t\treturn 0;\n\t}\n\tset colorUpdateAngleLodScale(value) {\n\t}\n\tget colorUpdateAngleLodScale() {\n\t\treturn 0;\n\t}\n\tset alphaClip(value) {\n\t\tthis._material.setParameter(\"alphaClip\", value);\n\t\tthis._material.update();\n\t}\n\tget alphaClip() {\n\t\treturn this._material.getParameter(\"alphaClip\")?.data ?? 0.3;\n\t}\n\tset alphaClipForward(value) {\n\t\tthis._material.setParameter(\"alphaClipForward\", value);\n\t\tthis._material.update();\n\t}\n\tget alphaClipForward() {\n\t\treturn this._material.getParameter(\"alphaClipForward\")?.data ?? 1 / 255;\n\t}\n\tset minPixelSize(value) {\n\t\tthis._material.setParameter(\"minPixelSize\", value);\n\t\tthis._material.update();\n\t}\n\tget minPixelSize() {\n\t\treturn this._material.getParameter(\"minPixelSize\")?.data ?? 2;\n\t}\n\tset minContribution(value) {\n\t\tthis._material.setParameter(\"minContribution\", value);\n\t\tthis._material.update();\n\t}\n\tget minContribution() {\n\t\treturn this._material.getParameter(\"minContribution\")?.data ?? 3;\n\t}\n\tset foveationStrength(value) {\n\t\tthis._material.setParameter(\"foveationStrength\", value);\n\t\tthis._material.update();\n\t}\n\tget foveationStrength() {\n\t\treturn this._material.getParameter(\"foveationStrength\")?.data ?? 0;\n\t}\n\tset foveationCenter(value) {\n\t\tthis._material.setParameter(\"foveationCenter\", value);\n\t\tthis._material.update();\n\t}\n\tget foveationCenter() {\n\t\treturn this._material.getParameter(\"foveationCenter\")?.data ?? 0.3;\n\t}\n\tset antiAlias(value) {\n\t\tthis._material.setDefine(\"GSPLAT_AA\", value);\n\t\tthis._material.update();\n\t}\n\tget antiAlias() {\n\t\treturn !!this._material.getDefine(\"GSPLAT_AA\");\n\t}\n\tset twoDimensional(value) {\n\t\tthis._material.setDefine(\"GSPLAT_2DGS\", value);\n\t\tthis._material.update();\n\t}\n\tget twoDimensional() {\n\t\treturn !!this._material.getDefine(\"GSPLAT_2DGS\");\n\t}\n\t_fisheye = 0;\n\tset fisheye(value) {\n\t\tif (this._fisheye !== value) {\n\t\t\tconst wasEnabled = this._fisheye > 0;\n\t\t\tthis._fisheye = value;\n\t\t\tconst isEnabled = value > 0;\n\t\t\tif (wasEnabled !== isEnabled) {\n\t\t\t\tthis._material.setDefine(\"GSPLAT_FISHEYE\", isEnabled);\n\t\t\t\tthis._material.update();\n\t\t\t}\n\t\t}\n\t}\n\tget fisheye() {\n\t\treturn this._fisheye;\n\t}\n\tcooldownTicks = 100;\n\tsceneDepthWrite = false;\n\tset dataFormat(value) {\n\t\tif (this._dataFormat !== value) {\n\t\t\tthis._dataFormat = value;\n\t\t\tconst extraStreams = this._format.extraStreams.map((s2) => ({\n\t\t\t\tname: s2.name,\n\t\t\t\tformat: s2.format,\n\t\t\t\tstorage: s2.storage\n\t\t\t}));\n\t\t\tthis._format = this._createFormat(value);\n\t\t\tif (extraStreams.length > 0) {\n\t\t\t\tthis._format.addExtraStreams(extraStreams);\n\t\t\t}\n\t\t\tthis.dirty = true;\n\t\t}\n\t}\n\tget dataFormat() {\n\t\treturn this._dataFormat;\n\t}\n\tget material() {\n\t\treturn this._material;\n\t}\n\tget format() {\n\t\treturn this._format;\n\t}\n\t_varyings;\n\t_appliedVaryingsVersion = 0;\n\tget varyings() {\n\t\treturn this._varyings;\n\t}\n\tapplySettings(render) {\n\t\tthis.radialSorting = render.gsplatRadialSorting ?? this.radialSorting;\n\t\tthis.lodUpdateDistance = render.gsplatLodUpdateDistance ?? this.lodUpdateDistance;\n\t\tthis.lodUpdateAngle = render.gsplatLodUpdateAngle ?? this.lodUpdateAngle;\n\t\tthis.lodBehindPenalty = render.gsplatLodBehindPenalty ?? this.lodBehindPenalty;\n\t\tthis.lodUnderfillLimit = render.gsplatLodUnderfillLimit ?? this.lodUnderfillLimit;\n\t\tthis.splatBudget = render.gsplatSplatBudget ?? this.splatBudget;\n\t\tthis.lodMode = render.gsplatLodMode ?? this.lodMode;\n\t\tthis.alphaClip = render.gsplatAlphaClip ?? this.alphaClip;\n\t\tthis.alphaClipForward = render.gsplatAlphaClipForward ?? this.alphaClipForward;\n\t\tthis.minPixelSize = render.gsplatMinPixelSize ?? this.minPixelSize;\n\t\tthis.minContribution = render.gsplatMinContribution ?? this.minContribution;\n\t\tthis.foveationStrength = render.gsplatFoveationStrength ?? this.foveationStrength;\n\t\tthis.foveationCenter = render.gsplatFoveationCenter ?? this.foveationCenter;\n\t\tthis.antiAlias = render.gsplatAntiAlias ?? this.antiAlias;\n\t\tthis.useFog = render.gsplatUseFog ?? this.useFog;\n\t\tthis.useTonemap = render.gsplatUseTonemap ?? this.useTonemap;\n\t\tthis.colorUpdateAngle = render.gsplatColorUpdateAngle ?? this.colorUpdateAngle;\n\t\tthis.cooldownTicks = render.gsplatCooldownTicks ?? this.cooldownTicks;\n\t\tthis.dataFormat = render.gsplatDataFormat ?? this.dataFormat;\n\t\tthis.enableIds = render.gsplatEnableIds ?? this.enableIds;\n\t}\n\tframeEnd() {\n\t\tthis.dirty = false;\n\t}\n\tframeUpdate() {\n\t\tif (this._appliedVaryingsVersion !== this._varyings.version) {\n\t\t\tthis._appliedVaryingsVersion = this._varyings.version;\n\t\t\tthis._varyings.apply(this._material);\n\t\t}\n\t}\n};\n\nvar FisheyeProjection = class {\n\tenabled = false;\n\tk = 1;\n\tinvK = 1;\n\tcornerScale = 1;\n\tprojMat00 = 1;\n\tprojMat11 = 1;\n\tmaxTheta = Math.PI;\n\t// Cached inputs for short-circuit check\n\t_lastT = -1;\n\t_lastFov = -1;\n\t_lastP00 = 0;\n\t_lastP11 = 0;\n\tupdate(t, fov, projMatrix) {\n\t\tif (projMatrix.data[15] === 1) {\n\t\t\tt = 0;\n\t\t}\n\t\tconst p00 = projMatrix.data[0];\n\t\tconst p11 = projMatrix.data[5];\n\t\tif (t === this._lastT && fov === this._lastFov && p00 === this._lastP00 && p11 === this._lastP11) {\n\t\t\treturn;\n\t\t}\n\t\tthis._lastT = t;\n\t\tthis._lastFov = fov;\n\t\tthis._lastP00 = p00;\n\t\tthis._lastP11 = p11;\n\t\tif (t <= 0) {\n\t\t\tthis.enabled = false;\n\t\t\tthis.k = 1;\n\t\t\tthis.invK = 1;\n\t\t\tthis.cornerScale = 1;\n\t\t\tthis.maxTheta = Math.PI;\n\t\t\treturn;\n\t\t}\n\t\tthis.enabled = true;\n\t\tconst kMin = fov / 180 + 0.15;\n\t\tconst kStart = Math.max(1, fov / 180 + 0.05);\n\t\tconst k = kStart * Math.pow(kMin / kStart, t);\n\t\tthis.k = k;\n\t\tthis.invK = 1 / k;\n\t\tthis.cornerScale = 1 + (Math.SQRT2 - 1) * t;\n\t\tconst maxTheta = Math.min(k * Math.PI / 2, 3.13);\n\t\tconst cs = this.cornerScale;\n\t\tconst halfFovX = Math.atan2(1, p00);\n\t\tconst effHalfFovX = Math.min(halfFovX, maxTheta - 0.01);\n\t\tthis.projMat00 = cs / (k * Math.tan(effHalfFovX / k));\n\t\tconst halfFovY = Math.atan2(1, p11);\n\t\tconst effHalfFovY = Math.min(halfFovY, maxTheta - 0.01);\n\t\tthis.projMat11 = cs / (k * Math.tan(effHalfFovY / k));\n\t\tthis.maxTheta = maxTheta;\n\t}\n};\n\nvar calculateNormals = (positions, indices) => {\n\tconst triangleCount = indices.length / 3;\n\tconst vertexCount = positions.length / 3;\n\tconst p12 = new Vec3();\n\tconst p22 = new Vec3();\n\tconst p32 = new Vec3();\n\tconst p1p2 = new Vec3();\n\tconst p1p3 = new Vec3();\n\tconst faceNormal = new Vec3();\n\tconst normals = [];\n\tfor (let i2 = 0; i2 < positions.length; i2++) {\n\t\tnormals[i2] = 0;\n\t}\n\tfor (let i2 = 0; i2 < triangleCount; i2++) {\n\t\tconst i1 = indices[i2 * 3];\n\t\tconst i22 = indices[i2 * 3 + 1];\n\t\tconst i3 = indices[i2 * 3 + 2];\n\t\tp12.set(positions[i1 * 3], positions[i1 * 3 + 1], positions[i1 * 3 + 2]);\n\t\tp22.set(positions[i22 * 3], positions[i22 * 3 + 1], positions[i22 * 3 + 2]);\n\t\tp32.set(positions[i3 * 3], positions[i3 * 3 + 1], positions[i3 * 3 + 2]);\n\t\tp1p2.sub2(p22, p12);\n\t\tp1p3.sub2(p32, p12);\n\t\tfaceNormal.cross(p1p2, p1p3).normalize();\n\t\tnormals[i1 * 3] += faceNormal.x;\n\t\tnormals[i1 * 3 + 1] += faceNormal.y;\n\t\tnormals[i1 * 3 + 2] += faceNormal.z;\n\t\tnormals[i22 * 3] += faceNormal.x;\n\t\tnormals[i22 * 3 + 1] += faceNormal.y;\n\t\tnormals[i22 * 3 + 2] += faceNormal.z;\n\t\tnormals[i3 * 3] += faceNormal.x;\n\t\tnormals[i3 * 3 + 1] += faceNormal.y;\n\t\tnormals[i3 * 3 + 2] += faceNormal.z;\n\t}\n\tfor (let i2 = 0; i2 < vertexCount; i2++) {\n\t\tconst nx = normals[i2 * 3];\n\t\tconst ny = normals[i2 * 3 + 1];\n\t\tconst nz = normals[i2 * 3 + 2];\n\t\tconst invLen = 1 / Math.sqrt(nx * nx + ny * ny + nz * nz);\n\t\tnormals[i2 * 3] *= invLen;\n\t\tnormals[i2 * 3 + 1] *= invLen;\n\t\tnormals[i2 * 3 + 2] *= invLen;\n\t}\n\treturn normals;\n};\nvar calculateTangents = (positions, normals, uvs, indices) => {\n\tconst triangleCount = indices.length / 3;\n\tconst vertexCount = positions.length / 3;\n\tconst v15 = new Vec3();\n\tconst v26 = new Vec3();\n\tconst v33 = new Vec3();\n\tconst w1 = new Vec2();\n\tconst w2 = new Vec2();\n\tconst w3 = new Vec2();\n\tconst sdir = new Vec3();\n\tconst tdir = new Vec3();\n\tconst tan1 = new Float32Array(vertexCount * 3);\n\tconst tan2 = new Float32Array(vertexCount * 3);\n\tconst tangents = [];\n\tfor (let i2 = 0; i2 < triangleCount; i2++) {\n\t\tconst i1 = indices[i2 * 3];\n\t\tconst i22 = indices[i2 * 3 + 1];\n\t\tconst i3 = indices[i2 * 3 + 2];\n\t\tv15.set(positions[i1 * 3], positions[i1 * 3 + 1], positions[i1 * 3 + 2]);\n\t\tv26.set(positions[i22 * 3], positions[i22 * 3 + 1], positions[i22 * 3 + 2]);\n\t\tv33.set(positions[i3 * 3], positions[i3 * 3 + 1], positions[i3 * 3 + 2]);\n\t\tw1.set(uvs[i1 * 2], uvs[i1 * 2 + 1]);\n\t\tw2.set(uvs[i22 * 2], uvs[i22 * 2 + 1]);\n\t\tw3.set(uvs[i3 * 2], uvs[i3 * 2 + 1]);\n\t\tconst x1 = v26.x - v15.x;\n\t\tconst x22 = v33.x - v15.x;\n\t\tconst y1 = v26.y - v15.y;\n\t\tconst y2 = v33.y - v15.y;\n\t\tconst z1 = v26.z - v15.z;\n\t\tconst z2 = v33.z - v15.z;\n\t\tconst s1 = w2.x - w1.x;\n\t\tconst s2 = w3.x - w1.x;\n\t\tconst t12 = w2.y - w1.y;\n\t\tconst t22 = w3.y - w1.y;\n\t\tconst area = s1 * t22 - s2 * t12;\n\t\tif (area === 0) {\n\t\t\tsdir.set(0, 1, 0);\n\t\t\ttdir.set(1, 0, 0);\n\t\t} else {\n\t\t\tconst r = 1 / area;\n\t\t\tsdir.set(\n\t\t\t\t(t22 * x1 - t12 * x22) * r,\n\t\t\t\t(t22 * y1 - t12 * y2) * r,\n\t\t\t\t(t22 * z1 - t12 * z2) * r\n\t\t\t);\n\t\t\ttdir.set(\n\t\t\t\t(s1 * x22 - s2 * x1) * r,\n\t\t\t\t(s1 * y2 - s2 * y1) * r,\n\t\t\t\t(s1 * z2 - s2 * z1) * r\n\t\t\t);\n\t\t}\n\t\ttan1[i1 * 3 + 0] += sdir.x;\n\t\ttan1[i1 * 3 + 1] += sdir.y;\n\t\ttan1[i1 * 3 + 2] += sdir.z;\n\t\ttan1[i22 * 3 + 0] += sdir.x;\n\t\ttan1[i22 * 3 + 1] += sdir.y;\n\t\ttan1[i22 * 3 + 2] += sdir.z;\n\t\ttan1[i3 * 3 + 0] += sdir.x;\n\t\ttan1[i3 * 3 + 1] += sdir.y;\n\t\ttan1[i3 * 3 + 2] += sdir.z;\n\t\ttan2[i1 * 3 + 0] += tdir.x;\n\t\ttan2[i1 * 3 + 1] += tdir.y;\n\t\ttan2[i1 * 3 + 2] += tdir.z;\n\t\ttan2[i22 * 3 + 0] += tdir.x;\n\t\ttan2[i22 * 3 + 1] += tdir.y;\n\t\ttan2[i22 * 3 + 2] += tdir.z;\n\t\ttan2[i3 * 3 + 0] += tdir.x;\n\t\ttan2[i3 * 3 + 1] += tdir.y;\n\t\ttan2[i3 * 3 + 2] += tdir.z;\n\t}\n\tconst t1 = new Vec3();\n\tconst t2 = new Vec3();\n\tconst n = new Vec3();\n\tconst temp = new Vec3();\n\tfor (let i2 = 0; i2 < vertexCount; i2++) {\n\t\tn.set(normals[i2 * 3], normals[i2 * 3 + 1], normals[i2 * 3 + 2]);\n\t\tt1.set(tan1[i2 * 3], tan1[i2 * 3 + 1], tan1[i2 * 3 + 2]);\n\t\tt2.set(tan2[i2 * 3], tan2[i2 * 3 + 1], tan2[i2 * 3 + 2]);\n\t\tconst ndott = n.dot(t1);\n\t\ttemp.copy(n).mulScalar(ndott);\n\t\ttemp.sub2(t1, temp).normalize();\n\t\ttangents[i2 * 4] = temp.x;\n\t\ttangents[i2 * 4 + 1] = temp.y;\n\t\ttangents[i2 * 4 + 2] = temp.z;\n\t\ttemp.cross(n, t1);\n\t\ttangents[i2 * 4 + 3] = temp.dot(t2) < 0 ? -1 : 1;\n\t}\n\treturn tangents;\n};\n\nvar Geometry = class {\n\tpositions;\n\tnormals;\n\tcolors;\n\tuvs;\n\tuvs1;\n\tblendIndices;\n\tblendWeights;\n\ttangents;\n\tindices;\n\tcalculateNormals() {\n\t\tthis.normals = calculateNormals(this.positions, this.indices);\n\t}\n\tcalculateTangents() {\n\t\tthis.tangents = calculateTangents(this.positions, this.normals, this.uvs, this.indices);\n\t}\n};\n\nvar primitiveUv1Padding = 8 / 64;\nvar primitiveUv1PaddingScale = 1 - primitiveUv1Padding * 2;\nvar BoxGeometry = class extends Geometry {\n\tconstructor(opts = {}) {\n\t\tsuper();\n\t\tconst he = opts.halfExtents ?? new Vec3(0.5, 0.5, 0.5);\n\t\tconst ws = opts.widthSegments ?? 1;\n\t\tconst ls = opts.lengthSegments ?? 1;\n\t\tconst hs = opts.heightSegments ?? 1;\n\t\tconst yOffset = opts.yOffset ?? 0;\n\t\tconst minY = -he.y + yOffset;\n\t\tconst maxY = he.y + yOffset;\n\t\tconst corners = [\n\t\t\tnew Vec3(-he.x, minY, he.z),\n\t\t\tnew Vec3(he.x, minY, he.z),\n\t\t\tnew Vec3(he.x, maxY, he.z),\n\t\t\tnew Vec3(-he.x, maxY, he.z),\n\t\t\tnew Vec3(he.x, minY, -he.z),\n\t\t\tnew Vec3(-he.x, minY, -he.z),\n\t\t\tnew Vec3(-he.x, maxY, -he.z),\n\t\t\tnew Vec3(he.x, maxY, -he.z)\n\t\t];\n\t\tconst faceAxes = [\n\t\t\t[0, 1, 3],\n\t\t\t// FRONT\n\t\t\t[4, 5, 7],\n\t\t\t// BACK\n\t\t\t[3, 2, 6],\n\t\t\t// TOP\n\t\t\t[1, 0, 4],\n\t\t\t// BOTTOM\n\t\t\t[1, 4, 2],\n\t\t\t// RIGHT\n\t\t\t[5, 0, 6]\n\t\t\t// LEFT\n\t\t];\n\t\tconst faceNormals = [\n\t\t\t[0, 0, 1],\n\t\t\t// FRONT\n\t\t\t[0, 0, -1],\n\t\t\t// BACK\n\t\t\t[0, 1, 0],\n\t\t\t// TOP\n\t\t\t[0, -1, 0],\n\t\t\t// BOTTOM\n\t\t\t[1, 0, 0],\n\t\t\t// RIGHT\n\t\t\t[-1, 0, 0]\n\t\t\t// LEFT\n\t\t];\n\t\tconst sides = {\n\t\t\tFRONT: 0,\n\t\t\tBACK: 1,\n\t\t\tTOP: 2,\n\t\t\tBOTTOM: 3,\n\t\t\tRIGHT: 4,\n\t\t\tLEFT: 5\n\t\t};\n\t\tconst positions = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\t\tconst uvs1 = [];\n\t\tconst indices = [];\n\t\tlet vcounter = 0;\n\t\tconst generateFace = (side, uSegments, vSegments) => {\n\t\t\tconst temp1 = new Vec3();\n\t\t\tconst temp2 = new Vec3();\n\t\t\tconst temp3 = new Vec3();\n\t\t\tconst r = new Vec3();\n\t\t\tfor (let i2 = 0; i2 <= uSegments; i2++) {\n\t\t\t\tfor (let j = 0; j <= vSegments; j++) {\n\t\t\t\t\ttemp1.lerp(corners[faceAxes[side][0]], corners[faceAxes[side][1]], i2 / uSegments);\n\t\t\t\t\ttemp2.lerp(corners[faceAxes[side][0]], corners[faceAxes[side][2]], j / vSegments);\n\t\t\t\t\ttemp3.sub2(temp2, corners[faceAxes[side][0]]);\n\t\t\t\t\tr.add2(temp1, temp3);\n\t\t\t\t\tlet u = i2 / uSegments;\n\t\t\t\t\tlet v6 = j / vSegments;\n\t\t\t\t\tpositions.push(r.x, r.y, r.z);\n\t\t\t\t\tnormals.push(faceNormals[side][0], faceNormals[side][1], faceNormals[side][2]);\n\t\t\t\t\tuvs.push(u, 1 - v6);\n\t\t\t\t\tu = u * primitiveUv1PaddingScale + primitiveUv1Padding;\n\t\t\t\t\tv6 = v6 * primitiveUv1PaddingScale + primitiveUv1Padding;\n\t\t\t\t\tu /= 3;\n\t\t\t\t\tv6 /= 3;\n\t\t\t\t\tu += side % 3 / 3;\n\t\t\t\t\tv6 += Math.floor(side / 3) / 3;\n\t\t\t\t\tuvs1.push(u, 1 - v6);\n\t\t\t\t\tif (i2 < uSegments && j < vSegments) {\n\t\t\t\t\t\tindices.push(vcounter + vSegments + 1, vcounter + 1, vcounter);\n\t\t\t\t\t\tindices.push(vcounter + vSegments + 1, vcounter + vSegments + 2, vcounter + 1);\n\t\t\t\t\t}\n\t\t\t\t\tvcounter++;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tgenerateFace(sides.FRONT, ws, hs);\n\t\tgenerateFace(sides.BACK, ws, hs);\n\t\tgenerateFace(sides.TOP, ws, ls);\n\t\tgenerateFace(sides.BOTTOM, ws, ls);\n\t\tgenerateFace(sides.RIGHT, ls, hs);\n\t\tgenerateFace(sides.LEFT, ls, hs);\n\t\tthis.positions = positions;\n\t\tthis.normals = normals;\n\t\tthis.uvs = uvs;\n\t\tthis.uvs1 = uvs1;\n\t\tthis.indices = indices;\n\t\tif (opts.calculateTangents) {\n\t\t\tthis.calculateTangents();\n\t\t}\n\t}\n};\n\nvar SphereGeometry = class extends Geometry {\n\tconstructor(opts = {}) {\n\t\tsuper();\n\t\tconst radius = opts.radius ?? 0.5;\n\t\tconst latitudeBands = opts.latitudeBands ?? 16;\n\t\tconst longitudeBands = opts.longitudeBands ?? 16;\n\t\tconst positions = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\t\tconst indices = [];\n\t\tfor (let lat = 0; lat <= latitudeBands; lat++) {\n\t\t\tconst theta = lat * Math.PI / latitudeBands;\n\t\t\tconst sinTheta = Math.sin(theta);\n\t\t\tconst cosTheta = Math.cos(theta);\n\t\t\tfor (let lon = 0; lon <= longitudeBands; lon++) {\n\t\t\t\tconst phi = lon * 2 * Math.PI / longitudeBands - Math.PI / 2;\n\t\t\t\tconst sinPhi = Math.sin(phi);\n\t\t\t\tconst cosPhi = Math.cos(phi);\n\t\t\t\tconst x3 = cosPhi * sinTheta;\n\t\t\t\tconst y2 = cosTheta;\n\t\t\t\tconst z2 = sinPhi * sinTheta;\n\t\t\t\tconst u = 1 - lon / longitudeBands;\n\t\t\t\tconst v6 = 1 - lat / latitudeBands;\n\t\t\t\tpositions.push(x3 * radius, y2 * radius, z2 * radius);\n\t\t\t\tnormals.push(x3, y2, z2);\n\t\t\t\tuvs.push(u, 1 - v6);\n\t\t\t}\n\t\t}\n\t\tfor (let lat = 0; lat < latitudeBands; ++lat) {\n\t\t\tfor (let lon = 0; lon < longitudeBands; ++lon) {\n\t\t\t\tconst first = lat * (longitudeBands + 1) + lon;\n\t\t\t\tconst second = first + longitudeBands + 1;\n\t\t\t\tindices.push(first + 1, second, first);\n\t\t\t\tindices.push(first + 1, second + 1, second);\n\t\t\t}\n\t\t}\n\t\tthis.positions = positions;\n\t\tthis.normals = normals;\n\t\tthis.uvs = uvs;\n\t\tthis.uvs1 = uvs;\n\t\tthis.indices = indices;\n\t\tif (opts.calculateTangents) {\n\t\t\tthis.calculateTangents();\n\t\t}\n\t}\n};\n\nvar DomeGeometry = class extends SphereGeometry {\n\tconstructor(opts = {}) {\n\t\tconst radius = 0.5;\n\t\tconst latitudeBands = opts.latitudeBands ?? 16;\n\t\tconst longitudeBands = opts.longitudeBands ?? 16;\n\t\tsuper({\n\t\t\tradius,\n\t\t\tlatitudeBands,\n\t\t\tlongitudeBands\n\t\t});\n\t\tconst bottomLimit = 0.1;\n\t\tconst curvatureRadius = 0.95;\n\t\tconst curvatureRadiusSq = curvatureRadius * curvatureRadius;\n\t\tconst positions = this.positions;\n\t\tfor (let i2 = 0; i2 < positions.length; i2 += 3) {\n\t\t\tconst x3 = positions[i2] / radius;\n\t\t\tlet y2 = positions[i2 + 1] / radius;\n\t\t\tconst z2 = positions[i2 + 2] / radius;\n\t\t\tif (y2 < 0) {\n\t\t\t\ty2 *= 0.3;\n\t\t\t\tif (x3 * x3 + z2 * z2 < curvatureRadiusSq) {\n\t\t\t\t\ty2 = -bottomLimit;\n\t\t\t\t}\n\t\t\t}\n\t\t\ty2 += bottomLimit;\n\t\t\ty2 *= radius;\n\t\t\tpositions[i2 + 1] = y2;\n\t\t}\n\t}\n};\n\nvar SkyGeometry = class _SkyGeometry {\n\tstatic create(device, type) {\n\t\tswitch (type) {\n\t\t\tcase SKYTYPE_BOX:\n\t\t\t\treturn _SkyGeometry.box(device);\n\t\t\tcase SKYTYPE_DOME:\n\t\t\t\treturn _SkyGeometry.dome(device);\n\t\t}\n\t\treturn _SkyGeometry.infinite(device);\n\t}\n\tstatic infinite(device) {\n\t\treturn Mesh.fromGeometry(device, new BoxGeometry(device));\n\t}\n\tstatic box(device) {\n\t\treturn Mesh.fromGeometry(device, new BoxGeometry({ yOffset: 0.5 }));\n\t}\n\tstatic dome(device) {\n\t\tconst geom = new DomeGeometry({\n\t\t\tlatitudeBands: 50,\n\t\t\tlongitudeBands: 50\n\t\t});\n\t\tgeom.normals = void 0;\n\t\tgeom.uvs = void 0;\n\t\treturn Mesh.fromGeometry(device, geom);\n\t}\n};\n\nvar SkyMesh = class {\n\tmeshInstance = null;\n\t_depthWrite = false;\n\tconstructor(device, scene, node, texture, type) {\n\t\tconst material = new ShaderMaterial({\n\t\t\tuniqueName: \"SkyMaterial\",\n\t\t\tvertexGLSL: ShaderChunks.get(device, SHADERLANGUAGE_GLSL).get(\"skyboxVS\"),\n\t\t\tfragmentGLSL: ShaderChunks.get(device, SHADERLANGUAGE_GLSL).get(\"skyboxPS\"),\n\t\t\tvertexWGSL: ShaderChunks.get(device, SHADERLANGUAGE_WGSL).get(\"skyboxVS\"),\n\t\t\tfragmentWGSL: ShaderChunks.get(device, SHADERLANGUAGE_WGSL).get(\"skyboxPS\"),\n\t\t\tattributes: {\n\t\t\t\taPosition: SEMANTIC_POSITION\n\t\t\t}\n\t\t});\n\t\tmaterial.setDefine(\"{SKYBOX_DECODE_FNC}\", ChunkUtils.decodeFunc(texture.encoding));\n\t\tif (type !== SKYTYPE_INFINITE) material.setDefine(\"SKYMESH\", \"\");\n\t\tif (texture.cubemap) material.setDefine(\"SKY_CUBEMAP\", \"\");\n\t\tmaterial.setParameter(\"skyboxHighlightMultiplier\", scene.skyboxHighlightMultiplier);\n\t\tif (texture.cubemap) {\n\t\t\tmaterial.setParameter(\"texture_cubeMap\", texture);\n\t\t} else {\n\t\t\tmaterial.setParameter(\"texture_envAtlas\", texture);\n\t\t\tmaterial.setParameter(\"mipLevel\", scene.skyboxMip);\n\t\t}\n\t\tmaterial.cull = CULLFACE_FRONT;\n\t\tmaterial.depthWrite = this._depthWrite;\n\t\tconst skyLayer = scene.layers.getLayerById(LAYERID_SKYBOX);\n\t\tif (skyLayer) {\n\t\t\tconst mesh = SkyGeometry.create(device, type);\n\t\t\tconst meshInstance = new MeshInstance(mesh, material, node);\n\t\t\tthis.meshInstance = meshInstance;\n\t\t\tmeshInstance.cull = false;\n\t\t\tmeshInstance.pick = false;\n\t\t\tskyLayer.addMeshInstances([meshInstance]);\n\t\t\tthis.skyLayer = skyLayer;\n\t\t}\n\t}\n\tdestroy() {\n\t\tif (this.meshInstance) {\n\t\t\tif (this.skyLayer) {\n\t\t\t\tthis.skyLayer.removeMeshInstances([this.meshInstance]);\n\t\t\t}\n\t\t\tthis.meshInstance.destroy();\n\t\t\tthis.meshInstance = null;\n\t\t}\n\t}\n\tset depthWrite(value) {\n\t\tthis._depthWrite = value;\n\t\tif (this.meshInstance) {\n\t\t\tconst material = this.meshInstance.material;\n\t\t\tmaterial.depthWrite = value;\n\t\t\tmaterial.sceneTexturesWrite = value && material.getDefine(\"SKYMESH\");\n\t\t}\n\t}\n\tget depthWrite() {\n\t\treturn this._depthWrite;\n\t}\n};\n\nvar Sky = class {\n\t_type = SKYTYPE_INFINITE;\n\t_center = new Vec3(0, 1, 0);\n\tskyMesh = null;\n\t_depthWrite = false;\n\t_fisheye = 0;\n\t_fisheyeProj = null;\n\tnode = new GraphNode(\"SkyMeshNode\");\n\tconstructor(scene) {\n\t\tthis.device = scene.device;\n\t\tthis.scene = scene;\n\t\tthis.center = new Vec3(0, 1, 0);\n\t\tthis.centerArray = new Float32Array(3);\n\t\tthis.projectedSkydomeCenterId = this.device.scope.resolve(\"projectedSkydomeCenter\");\n\t\tthis._preRenderEvt = scene.on(\"prerender\", this._onPreRender, this);\n\t}\n\tdestroy() {\n\t\tthis._preRenderEvt.off();\n\t\tthis.resetSkyMesh();\n\t}\n\tapplySettings(render) {\n\t\tthis.type = render.skyType ?? SKYTYPE_INFINITE;\n\t\tthis.node.setLocalPosition(new Vec3(render.skyMeshPosition ?? [0, 0, 0]));\n\t\tthis.node.setLocalEulerAngles(new Vec3(render.skyMeshRotation ?? [0, 0, 0]));\n\t\tthis.node.setLocalScale(new Vec3(render.skyMeshScale ?? [1, 1, 1]));\n\t\tif (render.skyCenter) {\n\t\t\tthis._center = new Vec3(render.skyCenter);\n\t\t}\n\t}\n\tset type(value) {\n\t\tif (this._type !== value) {\n\t\t\tthis._type = value;\n\t\t\tthis.scene.updateShaders = true;\n\t\t\tthis.updateSkyMesh();\n\t\t}\n\t}\n\tget type() {\n\t\treturn this._type;\n\t}\n\tset center(value) {\n\t\tthis._center.copy(value);\n\t}\n\tget center() {\n\t\treturn this._center;\n\t}\n\tset depthWrite(value) {\n\t\tif (this._depthWrite !== value) {\n\t\t\tthis._depthWrite = value;\n\t\t\tif (this.skyMesh) {\n\t\t\t\tthis.skyMesh.depthWrite = value;\n\t\t\t}\n\t\t}\n\t}\n\tget depthWrite() {\n\t\treturn this._depthWrite;\n\t}\n\tset fisheye(value) {\n\t\tif (this._fisheye !== value) {\n\t\t\tconst wasEnabled = this._fisheye > 0;\n\t\t\tthis._fisheye = value;\n\t\t\tconst isEnabled = value > 0;\n\t\t\tif (wasEnabled !== isEnabled) {\n\t\t\t\tthis._fisheyeProj ?? (this._fisheyeProj = new FisheyeProjection());\n\t\t\t\tif (this._type === SKYTYPE_INFINITE) {\n\t\t\t\t\tthis._setFisheyeDefine(isEnabled);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tget fisheye() {\n\t\treturn this._fisheye;\n\t}\n\tupdateSkyMesh() {\n\t\tconst texture = this.scene._getSkyboxTex();\n\t\tif (texture) {\n\t\t\tthis.resetSkyMesh();\n\t\t\tthis.skyMesh = new SkyMesh(this.device, this.scene, this.node, texture, this.type);\n\t\t\tthis.skyMesh.depthWrite = this._depthWrite;\n\t\t\tif (this._fisheye > 0 && this.type === SKYTYPE_INFINITE) {\n\t\t\t\tthis._setFisheyeDefine(true);\n\t\t\t}\n\t\t\tthis.scene.fire(\"set:skybox\", texture);\n\t\t}\n\t}\n\tresetSkyMesh() {\n\t\tthis.skyMesh?.destroy();\n\t\tthis.skyMesh = null;\n\t}\n\tupdate() {\n\t\tif (this.type !== SKYTYPE_INFINITE) {\n\t\t\tconst { center: center2, centerArray } = this;\n\t\t\tconst temp = new Vec3();\n\t\t\tthis.node.getWorldTransform().transformPoint(center2, temp);\n\t\t\tcenterArray[0] = temp.x;\n\t\t\tcenterArray[1] = temp.y;\n\t\t\tcenterArray[2] = temp.z;\n\t\t\tthis.projectedSkydomeCenterId.setValue(centerArray);\n\t\t}\n\t}\n\t_setFisheyeDefine(enabled) {\n\t\tif (this.skyMesh?.meshInstance) {\n\t\t\tconst material = this.skyMesh.meshInstance.material;\n\t\t\tmaterial.setDefine(\"SKY_FISHEYE\", enabled);\n\t\t\tmaterial.update();\n\t\t}\n\t}\n\t_onPreRender(cameraComponent) {\n\t\tif (this._fisheye > 0 && this._fisheyeProj && this.skyMesh?.meshInstance) {\n\t\t\tconst camera = cameraComponent.camera;\n\t\t\tconst proj = this._fisheyeProj;\n\t\t\tproj.update(this._fisheye, camera.fov, camera.projectionMatrix);\n\t\t\tconst material = this.skyMesh.meshInstance.material;\n\t\t\tmaterial.setParameter(\"fisheye_k\", proj.k);\n\t\t\tmaterial.setParameter(\"fisheye_invK\", proj.invK);\n\t\t\tmaterial.setParameter(\"fisheye_projMat00\", proj.projMat00);\n\t\t\tmaterial.setParameter(\"fisheye_projMat11\", proj.projMat11);\n\t\t}\n\t}\n};\n\nvar identityGraphNode = new GraphNode();\nidentityGraphNode.worldTransform = Mat4.IDENTITY;\nidentityGraphNode._dirtyWorld = identityGraphNode._dirtyNormal = false;\nvar MIN_VERTEX_CAPACITY = 256;\nvar SHRINK_FRAME_DELAY = 100;\nvar ImmediateBatch = class {\n\t_positions = new Float32Array(0);\n\t_colors = new Float32Array(0);\n\t_vertexCount = 0;\n\t_capacity = 0;\n\t_peakVertexCount = 0;\n\t_framesSinceHighUse = 0;\n\tconstructor(device, material, layer) {\n\t\tthis.material = material;\n\t\tthis.layer = layer;\n\t\tthis.mesh = new Mesh(device);\n\t\tthis.meshInstance = null;\n\t}\n\t_reserve(count) {\n\t\tconst required = this._vertexCount + count;\n\t\tif (required <= this._capacity) {\n\t\t\treturn;\n\t\t}\n\t\tlet capacity = Math.max(this._capacity, MIN_VERTEX_CAPACITY);\n\t\twhile (capacity < required) {\n\t\t\tcapacity *= 2;\n\t\t}\n\t\tthis._setCapacity(capacity);\n\t}\n\t_setCapacity(capacity) {\n\t\tconst positions = new Float32Array(capacity * 3);\n\t\tconst colors = new Float32Array(capacity * 4);\n\t\tconst retained = Math.min(this._vertexCount, capacity);\n\t\tif (retained > 0) {\n\t\t\tpositions.set(this._positions.subarray(0, retained * 3));\n\t\t\tcolors.set(this._colors.subarray(0, retained * 4));\n\t\t}\n\t\tthis._positions = positions;\n\t\tthis._colors = colors;\n\t\tthis._capacity = capacity;\n\t}\n\tallocate(count) {\n\t\tthis._reserve(count);\n\t\tconst first = this._vertexCount;\n\t\tthis._vertexCount += count;\n\t\treturn first;\n\t}\n\t_writeUniformColor(color3, first, count) {\n\t\tconst dest = this._colors;\n\t\tconst { r, g, b, a } = color3;\n\t\tlet c2 = first * 4;\n\t\tfor (let i2 = 0; i2 < count; i2++) {\n\t\t\tdest[c2++] = r;\n\t\t\tdest[c2++] = g;\n\t\t\tdest[c2++] = b;\n\t\t\tdest[c2++] = a;\n\t\t}\n\t}\n\t// add line positions and colors to the batch\n\t// this function expects position in Vec3 and colors in Color format\n\taddLines(positions, color3) {\n\t\tconst count = positions.length;\n\t\tconst first = this._vertexCount;\n\t\tthis._reserve(count);\n\t\tconst destPos = this._positions;\n\t\tlet p = first * 3;\n\t\tfor (let i2 = 0; i2 < count; i2++) {\n\t\t\tconst pos = positions[i2];\n\t\t\tdestPos[p++] = pos.x;\n\t\t\tdestPos[p++] = pos.y;\n\t\t\tdestPos[p++] = pos.z;\n\t\t}\n\t\tif (color3.length) {\n\t\t\tconst destCol = this._colors;\n\t\t\tlet c2 = first * 4;\n\t\t\tfor (let i2 = 0; i2 < count; i2++) {\n\t\t\t\tconst col = color3[i2];\n\t\t\t\tdestCol[c2++] = col.r;\n\t\t\t\tdestCol[c2++] = col.g;\n\t\t\t\tdestCol[c2++] = col.b;\n\t\t\t\tdestCol[c2++] = col.a;\n\t\t\t}\n\t\t} else {\n\t\t\tthis._writeUniformColor(color3, first, count);\n\t\t}\n\t\tthis._vertexCount += count;\n\t}\n\t// add line positions and colors to the batch\n\t// this function expects positions as arrays of numbers\n\t// and color as instance of Color or array of number specifying the same number of vertices as positions\n\taddLinesArrays(positions, color3) {\n\t\tconst floats = positions.length;\n\t\tconst count = floats / 3;\n\t\tconst first = this._vertexCount;\n\t\tthis._reserve(count);\n\t\tconst destPos = this._positions;\n\t\tlet p = first * 3;\n\t\tfor (let i2 = 0; i2 < floats; i2++) {\n\t\t\tdestPos[p++] = positions[i2];\n\t\t}\n\t\tif (color3.length) {\n\t\t\tconst destCol = this._colors;\n\t\t\tconst colorFloats = count * 4;\n\t\t\tlet c2 = first * 4;\n\t\t\tfor (let i2 = 0; i2 < colorFloats; i2++) {\n\t\t\t\tdestCol[c2++] = color3[i2];\n\t\t\t}\n\t\t} else {\n\t\t\tthis._writeUniformColor(color3, first, count);\n\t\t}\n\t\tthis._vertexCount += count;\n\t}\n\tonPreRender(visibleList, transparent) {\n\t\tif (this._vertexCount > 0 && this.material.transparent === transparent) {\n\t\t\tthis.mesh.setPositions(this._positions, 3, this._vertexCount);\n\t\t\tthis.mesh.setColors(this._colors, 4, this._vertexCount);\n\t\t\tthis.mesh.update(PRIMITIVE_LINES, false);\n\t\t\tif (!this.meshInstance) {\n\t\t\t\tthis.meshInstance = new MeshInstance(this.mesh, this.material, identityGraphNode);\n\t\t\t\tthis.meshInstance.cull = false;\n\t\t\t}\n\t\t\tvisibleList.push(this.meshInstance);\n\t\t}\n\t}\n\tclear() {\n\t\tif (this._vertexCount * 2 > this._capacity) {\n\t\t\tthis._framesSinceHighUse = 0;\n\t\t\tthis._peakVertexCount = 0;\n\t\t} else {\n\t\t\tthis._framesSinceHighUse++;\n\t\t\tthis._peakVertexCount = Math.max(this._peakVertexCount, this._vertexCount);\n\t\t}\n\t\tthis._vertexCount = 0;\n\t\tif (this._framesSinceHighUse >= SHRINK_FRAME_DELAY && this._capacity > MIN_VERTEX_CAPACITY) {\n\t\t\tlet capacity = MIN_VERTEX_CAPACITY;\n\t\t\twhile (capacity < this._peakVertexCount) {\n\t\t\t\tcapacity *= 2;\n\t\t\t}\n\t\t\tif (capacity < this._capacity) {\n\t\t\t\tthis._setCapacity(capacity);\n\t\t\t}\n\t\t\tthis._peakVertexCount = 0;\n\t\t\tthis._framesSinceHighUse = 0;\n\t\t}\n\t}\n};\n\nvar ImmediateBatches = class {\n\tconstructor(device) {\n\t\tthis.device = device;\n\t\tthis.map = /* @__PURE__ */ new Map();\n\t}\n\tgetBatch(material, layer) {\n\t\tlet batch = this.map.get(material);\n\t\tif (!batch) {\n\t\t\tbatch = new ImmediateBatch(this.device, material, layer);\n\t\t\tthis.map.set(material, batch);\n\t\t}\n\t\treturn batch;\n\t}\n\tonPreRender(visibleList, transparent) {\n\t\tthis.map.forEach((batch) => {\n\t\t\tbatch.onPreRender(visibleList, transparent);\n\t\t});\n\t}\n\tclear() {\n\t\tthis.map.forEach((batch) => batch.clear());\n\t}\n};\n\nvar LineWriter = class {\n\t_positions = null;\n\t_colors = null;\n\t_cursor = 0;\n\t_end = 0;\n\t_r = 1;\n\t_g = 1;\n\t_b = 1;\n\t_a = 1;\n\treset(positions, colors, first, count, color3) {\n\t\tthis._positions = positions;\n\t\tthis._colors = colors;\n\t\tthis._cursor = first;\n\t\tthis._end = first + count;\n\t\tthis.setColor(color3);\n\t}\n\tsetColor(color3) {\n\t\tthis._r = color3.r;\n\t\tthis._g = color3.g;\n\t\tthis._b = color3.b;\n\t\tthis._a = color3.a;\n\t}\n\tget filled() {\n\t\treturn this._cursor === this._end;\n\t}\n\tget positions() {\n\t\treturn this._positions;\n\t}\n\tget colors() {\n\t\treturn this._colors;\n\t}\n\tset cursor(value) {\n\t\tthis._cursor = value;\n\t}\n\tget cursor() {\n\t\treturn this._cursor;\n\t}\n\tget end() {\n\t\treturn this._end;\n\t}\n\tsegment(x0, y0, z0, x1, y1, z1) {\n\t\tconst positions = this._positions;\n\t\tconst colors = this._colors;\n\t\tconst cursor = this._cursor;\n\t\tlet p = cursor * 3;\n\t\tpositions[p++] = x0;\n\t\tpositions[p++] = y0;\n\t\tpositions[p++] = z0;\n\t\tpositions[p++] = x1;\n\t\tpositions[p++] = y1;\n\t\tpositions[p] = z1;\n\t\tconst r = this._r, g = this._g, b = this._b, a = this._a;\n\t\tlet c2 = cursor * 4;\n\t\tcolors[c2++] = r;\n\t\tcolors[c2++] = g;\n\t\tcolors[c2++] = b;\n\t\tcolors[c2++] = a;\n\t\tcolors[c2++] = r;\n\t\tcolors[c2++] = g;\n\t\tcolors[c2++] = b;\n\t\tcolors[c2] = a;\n\t\tthis._cursor = cursor + 2;\n\t}\n\tvertex(x3, y2, z2, r, g, b, a) {\n\t\tconst cursor = this._cursor;\n\t\tlet p = cursor * 3;\n\t\tconst positions = this._positions;\n\t\tpositions[p++] = x3;\n\t\tpositions[p++] = y2;\n\t\tpositions[p] = z2;\n\t\tlet c2 = cursor * 4;\n\t\tconst colors = this._colors;\n\t\tcolors[c2++] = r;\n\t\tcolors[c2++] = g;\n\t\tcolors[c2++] = b;\n\t\tcolors[c2] = a;\n\t\tthis._cursor = cursor + 1;\n\t}\n};\n\nvar tempPoints = [];\nvar vec = new Vec3();\nvar Immediate = class {\n\tshaderDescs = /* @__PURE__ */ new Map();\n\tconstructor(device) {\n\t\tthis.device = device;\n\t\tthis.quadMesh = null;\n\t\tthis.textureShader = null;\n\t\tthis.depthTextureShader = null;\n\t\tthis.cubeLocalPos = null;\n\t\tthis.cubeWorldPos = null;\n\t\tthis.batchesMap = /* @__PURE__ */ new Map();\n\t\tthis.allBatches = /* @__PURE__ */ new Set();\n\t\tthis.updatedLayers = /* @__PURE__ */ new Set();\n\t\tthis.lineWriter = new LineWriter();\n\t\tthis._materialDepth = null;\n\t\tthis._materialNoDepth = null;\n\t\tthis.layerMeshInstances = /* @__PURE__ */ new Map();\n\t}\n\t// creates material for line rendering\n\tcreateMaterial(depthTest) {\n\t\tconst material = new ShaderMaterial({\n\t\t\tuniqueName: \"ImmediateLine\",\n\t\t\tvertexGLSL: ShaderChunks.get(this.device, SHADERLANGUAGE_GLSL).get(\"immediateLineVS\"),\n\t\t\tfragmentGLSL: ShaderChunks.get(this.device, SHADERLANGUAGE_GLSL).get(\"immediateLinePS\"),\n\t\t\tvertexWGSL: ShaderChunks.get(this.device, SHADERLANGUAGE_WGSL).get(\"immediateLineVS\"),\n\t\t\tfragmentWGSL: ShaderChunks.get(this.device, SHADERLANGUAGE_WGSL).get(\"immediateLinePS\"),\n\t\t\tattributes: {\n\t\t\t\tvertex_position: SEMANTIC_POSITION,\n\t\t\t\tvertex_color: SEMANTIC_COLOR\n\t\t\t}\n\t\t});\n\t\tmaterial.blendType = BLEND_NORMAL;\n\t\tmaterial.depthTest = depthTest;\n\t\tmaterial.update();\n\t\treturn material;\n\t}\n\t// material for line rendering with depth testing on\n\tget materialDepth() {\n\t\tif (!this._materialDepth) {\n\t\t\tthis._materialDepth = this.createMaterial(true);\n\t\t}\n\t\treturn this._materialDepth;\n\t}\n\t// material for line rendering with depth testing off\n\tget materialNoDepth() {\n\t\tif (!this._materialNoDepth) {\n\t\t\tthis._materialNoDepth = this.createMaterial(false);\n\t\t}\n\t\treturn this._materialNoDepth;\n\t}\n\t// returns a batch for rendering lines to a layer with required depth testing state\n\tgetBatch(layer, depthTest) {\n\t\tlet batches = this.batchesMap.get(layer);\n\t\tif (!batches) {\n\t\t\tbatches = new ImmediateBatches(this.device);\n\t\t\tthis.batchesMap.set(layer, batches);\n\t\t}\n\t\tthis.allBatches.add(batches);\n\t\tconst material = depthTest ? this.materialDepth : this.materialNoDepth;\n\t\treturn batches.getBatch(material, layer);\n\t}\n\tallocateLines(vertexCount, color3, depthTest, layer) {\n\t\tconst writer = this.lineWriter;\n\t\tconst batch = this.getBatch(layer, depthTest);\n\t\tconst first = batch.allocate(vertexCount);\n\t\twriter.reset(batch._positions, batch._colors, first, vertexCount, color3);\n\t\treturn writer;\n\t}\n\tgetShaderDesc(id14, fragmentGLSL2, fragmentWGSL2) {\n\t\tif (!this.shaderDescs.has(id14)) {\n\t\t\tthis.shaderDescs.set(id14, {\n\t\t\t\tuniqueName: `DebugShader:${id14}`,\n\t\t\t\t// shared vertex shader for textured quad rendering\n\t\t\t\tvertexGLSL: `\n\t\t\t\t\tattribute vec2 vertex_position;\n\t\t\t\t\tuniform mat4 matrix_model;\n\t\t\t\t\tvarying vec2 uv0;\n\t\t\t\t\tvoid main(void) {\n\t\t\t\t\t\tgl_Position = matrix_model * vec4(vertex_position, 0, 1);\n\t\t\t\t\t\tuv0 = vertex_position.xy + 0.5;\n\t\t\t\t\t}\n\t\t\t\t`,\n\t\t\t\tvertexWGSL: `\n\t\t\t\t\tattribute vertex_position: vec2f;\n\t\t\t\t\tuniform matrix_model: mat4x4f;\n\t\t\t\t\tvarying uv0: vec2f;\n\t\t\t\t\t@vertex fn vertexMain(input: VertexInput) -> VertexOutput {\n\t\t\t\t\t\tvar output: VertexOutput;\n\t\t\t\t\t\toutput.position = uniform.matrix_model * vec4f(input.vertex_position, 0.0, 1.0);\n\t\t\t\t\t\toutput.uv0 = input.vertex_position.xy + vec2f(0.5);\n\t\t\t\t\t\treturn output;\n\t\t\t\t\t}\n\t\t\t\t`,\n\t\t\t\tfragmentGLSL: fragmentGLSL2,\n\t\t\t\tfragmentWGSL: fragmentWGSL2,\n\t\t\t\tattributes: { vertex_position: SEMANTIC_POSITION }\n\t\t\t});\n\t\t}\n\t\treturn this.shaderDescs.get(id14);\n\t}\n\t// shader used to display texture\n\tgetTextureShaderDesc(encoding) {\n\t\tconst decodeFunc = ChunkUtils.decodeFunc(encoding);\n\t\treturn this.getShaderDesc(\n\t\t\t`textureShader-${encoding}`,\n\t\t\t`\n\t\t\t#include \"gammaPS\"\n\t\t\tvarying vec2 uv0;\n\t\t\tuniform sampler2D colorMap;\n\t\t\tvoid main (void) {\n\t\t\t\tvec3 linearColor = ${decodeFunc}(texture2D(colorMap, uv0));\n\t\t\t\tgl_FragColor = vec4(gammaCorrectOutput(linearColor), 1);\n\t\t\t}\n\t\t`,\n\t\t\t`\n\t\t\t#include \"gammaPS\"\n\t\t\tvarying uv0: vec2f;\n\t\t\tvar colorMap: texture_2d<f32>;\n\t\t\tvar colorMapSampler: sampler;\n\t\t\t@fragment fn fragmentMain(input : FragmentInput) -> FragmentOutput {\n\t\t\t\tvar output: FragmentOutput;\n\t\t\t\tlet sampledTex = textureSample(colorMap, colorMapSampler, input.uv0);\n\t\t\t\tlet linearColor: vec3f = ${decodeFunc}(sampledTex);\n\t\t\t\toutput.color = vec4f(gammaCorrectOutput(linearColor), 1.0);\n\t\t\t\treturn output;\n\t\t\t}\n\t\t`\n\t\t);\n\t}\n\t// shader used to display infilterable texture sampled using texelFetch\n\tgetUnfilterableTextureShaderDesc() {\n\t\treturn this.getShaderDesc(\n\t\t\t\"textureShaderUnfilterable\",\n\t\t\t`\n\t\t\tvarying vec2 uv0;\n\t\t\tuniform highp sampler2D colorMap;\n\t\t\tvoid main (void) {\n\t\t\t\tivec2 uv = ivec2(uv0 * textureSize(colorMap, 0));\n\t\t\t\tgl_FragColor = vec4(texelFetch(colorMap, uv, 0).xyz, 1);\n\t\t\t}\n\t\t`,\n\t\t\t`\n\t\t\tvarying uv0: vec2f;\n\t\t\tvar colorMap: texture_2d<uff>;\n\t\t\t@fragment fn fragmentMain(input : FragmentInput) -> FragmentOutput {\n\t\t\t\tvar output: FragmentOutput;\n\t\t\t\tlet uv : vec2<i32> = vec2<i32>(input.uv0 * vec2f(textureDimensions(colorMap, 0)));\n\t\t\t\tlet fetchedColor : vec4f = textureLoad(colorMap, uv, 0);\n\t\t\t\toutput.color = vec4f(fetchedColor.xyz, 1.0);\n\t\t\t\treturn output;\n\t\t\t}\n\t\t`\n\t\t);\n\t}\n\t// shader used to display depth texture\n\tgetDepthTextureShaderDesc() {\n\t\treturn this.getShaderDesc(\n\t\t\t\"depthTextureShader\",\n\t\t\t`\n\t\t\t#include \"screenDepthPS\"\n\t\t\t#include \"gammaPS\"\n\t\t\tvarying vec2 uv0;\n\t\t\tvoid main() {\n\t\t\t\tfloat depth = getLinearScreenDepth(getImageEffectUV(uv0)) * camera_params.x;\n\t\t\t\tgl_FragColor = vec4(gammaCorrectOutput(vec3(depth)), 1.0);\n\t\t\t}\n\t\t`,\n\t\t\t`\n\t\t\t#include \"screenDepthPS\"\n\t\t\t#include \"gammaPS\"\n\t\t\tvarying uv0: vec2f;\n\t\t\t@fragment fn fragmentMain(input: FragmentInput) -> FragmentOutput {\n\t\t\t\tvar output: FragmentOutput;\n\t\t\t\tlet depth: f32 = getLinearScreenDepth(getImageEffectUV(input.uv0)) * uniform.camera_params.x;\n\t\t\t\toutput.color = vec4f(gammaCorrectOutput(vec3f(depth)), 1.0);\n\t\t\t\treturn output;\n\t\t\t}\n\t\t`\n\t\t);\n\t}\n\t// creates mesh used to render a quad\n\tgetQuadMesh() {\n\t\tif (!this.quadMesh) {\n\t\t\tthis.quadMesh = new Mesh(this.device);\n\t\t\tthis.quadMesh.setPositions([\n\t\t\t\t-0.5,\n\t\t\t\t-0.5,\n\t\t\t\t0,\n\t\t\t\t0.5,\n\t\t\t\t-0.5,\n\t\t\t\t0,\n\t\t\t\t-0.5,\n\t\t\t\t0.5,\n\t\t\t\t0,\n\t\t\t\t0.5,\n\t\t\t\t0.5,\n\t\t\t\t0\n\t\t\t]);\n\t\t\tthis.quadMesh.update(PRIMITIVE_TRISTRIP);\n\t\t}\n\t\treturn this.quadMesh;\n\t}\n\t// Draw mesh at this frame\n\tdrawMesh(material, matrix2, mesh, meshInstance, layer) {\n\t\tif (!meshInstance) {\n\t\t\tconst graphNode = this.getGraphNode(matrix2);\n\t\t\tmeshInstance = new MeshInstance(mesh, material, graphNode);\n\t\t}\n\t\tlet layerMeshInstances = this.layerMeshInstances.get(layer);\n\t\tif (!layerMeshInstances) {\n\t\t\tlayerMeshInstances = [];\n\t\t\tthis.layerMeshInstances.set(layer, layerMeshInstances);\n\t\t}\n\t\tlayerMeshInstances.push(meshInstance);\n\t}\n\tdrawWireAlignedBox(min, max, color3, depthTest, layer, mat2) {\n\t\tif (mat2) {\n\t\t\tconst mulPoint = (x3, y2, z2) => {\n\t\t\t\tvec.set(x3, y2, z2);\n\t\t\t\tmat2.transformPoint(vec, vec);\n\t\t\t\ttempPoints.push(vec.x, vec.y, vec.z);\n\t\t\t};\n\t\t\tmulPoint(min.x, min.y, min.z);\n\t\t\tmulPoint(min.x, max.y, min.z);\n\t\t\tmulPoint(min.x, max.y, min.z);\n\t\t\tmulPoint(max.x, max.y, min.z);\n\t\t\tmulPoint(max.x, max.y, min.z);\n\t\t\tmulPoint(max.x, min.y, min.z);\n\t\t\tmulPoint(max.x, min.y, min.z);\n\t\t\tmulPoint(min.x, min.y, min.z);\n\t\t\tmulPoint(min.x, min.y, max.z);\n\t\t\tmulPoint(min.x, max.y, max.z);\n\t\t\tmulPoint(min.x, max.y, max.z);\n\t\t\tmulPoint(max.x, max.y, max.z);\n\t\t\tmulPoint(max.x, max.y, max.z);\n\t\t\tmulPoint(max.x, min.y, max.z);\n\t\t\tmulPoint(max.x, min.y, max.z);\n\t\t\tmulPoint(min.x, min.y, max.z);\n\t\t\tmulPoint(min.x, min.y, min.z);\n\t\t\tmulPoint(min.x, min.y, max.z);\n\t\t\tmulPoint(min.x, max.y, min.z);\n\t\t\tmulPoint(min.x, max.y, max.z);\n\t\t\tmulPoint(max.x, max.y, min.z);\n\t\t\tmulPoint(max.x, max.y, max.z);\n\t\t\tmulPoint(max.x, min.y, min.z);\n\t\t\tmulPoint(max.x, min.y, max.z);\n\t\t} else {\n\t\t\ttempPoints.push(\n\t\t\t\tmin.x,\n\t\t\t\tmin.y,\n\t\t\t\tmin.z,\n\t\t\t\tmin.x,\n\t\t\t\tmax.y,\n\t\t\t\tmin.z,\n\t\t\t\tmin.x,\n\t\t\t\tmax.y,\n\t\t\t\tmin.z,\n\t\t\t\tmax.x,\n\t\t\t\tmax.y,\n\t\t\t\tmin.z,\n\t\t\t\tmax.x,\n\t\t\t\tmax.y,\n\t\t\t\tmin.z,\n\t\t\t\tmax.x,\n\t\t\t\tmin.y,\n\t\t\t\tmin.z,\n\t\t\t\tmax.x,\n\t\t\t\tmin.y,\n\t\t\t\tmin.z,\n\t\t\t\tmin.x,\n\t\t\t\tmin.y,\n\t\t\t\tmin.z,\n\t\t\t\tmin.x,\n\t\t\t\tmin.y,\n\t\t\t\tmax.z,\n\t\t\t\tmin.x,\n\t\t\t\tmax.y,\n\t\t\t\tmax.z,\n\t\t\t\tmin.x,\n\t\t\t\tmax.y,\n\t\t\t\tmax.z,\n\t\t\t\tmax.x,\n\t\t\t\tmax.y,\n\t\t\t\tmax.z,\n\t\t\t\tmax.x,\n\t\t\t\tmax.y,\n\t\t\t\tmax.z,\n\t\t\t\tmax.x,\n\t\t\t\tmin.y,\n\t\t\t\tmax.z,\n\t\t\t\tmax.x,\n\t\t\t\tmin.y,\n\t\t\t\tmax.z,\n\t\t\t\tmin.x,\n\t\t\t\tmin.y,\n\t\t\t\tmax.z,\n\t\t\t\tmin.x,\n\t\t\t\tmin.y,\n\t\t\t\tmin.z,\n\t\t\t\tmin.x,\n\t\t\t\tmin.y,\n\t\t\t\tmax.z,\n\t\t\t\tmin.x,\n\t\t\t\tmax.y,\n\t\t\t\tmin.z,\n\t\t\t\tmin.x,\n\t\t\t\tmax.y,\n\t\t\t\tmax.z,\n\t\t\t\tmax.x,\n\t\t\t\tmax.y,\n\t\t\t\tmin.z,\n\t\t\t\tmax.x,\n\t\t\t\tmax.y,\n\t\t\t\tmax.z,\n\t\t\t\tmax.x,\n\t\t\t\tmin.y,\n\t\t\t\tmin.z,\n\t\t\t\tmax.x,\n\t\t\t\tmin.y,\n\t\t\t\tmax.z\n\t\t\t);\n\t\t}\n\t\tconst batch = this.getBatch(layer, depthTest);\n\t\tbatch.addLinesArrays(tempPoints, color3);\n\t\ttempPoints.length = 0;\n\t}\n\tdrawWireSphere(center2, radius, color3, numSegments, depthTest, layer) {\n\t\tconst step = 2 * Math.PI / numSegments;\n\t\tlet angle = 0;\n\t\tfor (let i2 = 0; i2 < numSegments; i2++) {\n\t\t\tconst sin0 = Math.sin(angle);\n\t\t\tconst cos0 = Math.cos(angle);\n\t\t\tangle += step;\n\t\t\tconst sin1 = Math.sin(angle);\n\t\t\tconst cos1 = Math.cos(angle);\n\t\t\ttempPoints.push(center2.x + radius * sin0, center2.y, center2.z + radius * cos0);\n\t\t\ttempPoints.push(center2.x + radius * sin1, center2.y, center2.z + radius * cos1);\n\t\t\ttempPoints.push(center2.x + radius * sin0, center2.y + radius * cos0, center2.z);\n\t\t\ttempPoints.push(center2.x + radius * sin1, center2.y + radius * cos1, center2.z);\n\t\t\ttempPoints.push(center2.x, center2.y + radius * sin0, center2.z + radius * cos0);\n\t\t\ttempPoints.push(center2.x, center2.y + radius * sin1, center2.z + radius * cos1);\n\t\t}\n\t\tconst batch = this.getBatch(layer, depthTest);\n\t\tbatch.addLinesArrays(tempPoints, color3);\n\t\ttempPoints.length = 0;\n\t}\n\tgetGraphNode(matrix2) {\n\t\tconst graphNode = new GraphNode(\"ImmediateDebug\");\n\t\tgraphNode.worldTransform = matrix2;\n\t\tgraphNode._dirtyWorld = graphNode._dirtyNormal = false;\n\t\treturn graphNode;\n\t}\n\t// This is called just before the layer is rendered to allow lines for the layer to be added from inside\n\t// the frame getting rendered\n\tonPreRenderLayer(layer, visibleList, transparent) {\n\t\tthis.batchesMap.forEach((batches, batchLayer) => {\n\t\t\tif (batchLayer === layer) {\n\t\t\t\tbatches.onPreRender(visibleList, transparent);\n\t\t\t}\n\t\t});\n\t\tif (!this.updatedLayers.has(layer)) {\n\t\t\tthis.updatedLayers.add(layer);\n\t\t\tconst meshInstances = this.layerMeshInstances.get(layer);\n\t\t\tif (meshInstances) {\n\t\t\t\tfor (let i2 = 0; i2 < meshInstances.length; i2++) {\n\t\t\t\t\tvisibleList.push(meshInstances[i2]);\n\t\t\t\t}\n\t\t\t\tmeshInstances.length = 0;\n\t\t\t}\n\t\t}\n\t}\n\t// called after the frame was rendered, clears data\n\tonPostRender() {\n\t\tthis.allBatches.forEach((batch) => batch.clear());\n\t\tthis.allBatches.clear();\n\t\tthis.updatedLayers.clear();\n\t}\n};\n\nvar FogParams = class {\n\ttype = FOG_NONE;\n\tcolor = new Color(0, 0, 0);\n\tdensity = 0;\n\tstart = 1;\n\tend = 1e3;\n};\n\nvar Scene = class extends EventHandler {\n\tstatic EVENT_SETLAYERS = \"set:layers\";\n\tstatic EVENT_SETSKYBOX = \"set:skybox\";\n\tstatic EVENT_PRERENDER = \"prerender\";\n\tstatic EVENT_POSTRENDER = \"postrender\";\n\tstatic EVENT_PRERENDER_LAYER = \"prerender:layer\";\n\tstatic EVENT_POSTRENDER_LAYER = \"postrender:layer\";\n\tstatic EVENT_PRECULL = \"precull\";\n\tstatic EVENT_POSTCULL = \"postcull\";\n\tambientBake = false;\n\tambientBakeOcclusionBrightness = 0;\n\tambientBakeOcclusionContrast = 0;\n\tambientLight = new Color(0, 0, 0);\n\tambientLuminance = 0;\n\texposure = 1;\n\tlightmapSizeMultiplier = 1;\n\tlightmapMaxResolution = 2048;\n\tlightmapMode = BAKE_COLORDIR;\n\tlightmapFilterEnabled = false;\n\tlightmapHDR = false;\n\troot = null;\n\tphysicalUnits = false;\n\t_envAtlas = null;\n\t_skyboxCubeMap = null;\n\t_fogParams = new FogParams();\n\tconstructor(graphicsDevice) {\n\t\tsuper();\n\t\tthis.device = graphicsDevice;\n\t\tthis._gravity = new Vec3(0, -9.8, 0);\n\t\tthis._layers = null;\n\t\tthis._prefilteredCubemaps = [];\n\t\tthis._internalEnvAtlas = null;\n\t\tthis._skyboxIntensity = 1;\n\t\tthis._skyboxLuminance = 0;\n\t\tthis._skyboxMip = 0;\n\t\tthis._skyboxHighlightMultiplier = 1;\n\t\tthis._skyboxRotationShaderInclude = false;\n\t\tthis._skyboxRotation = new Quat();\n\t\tthis._skyboxRotationMat3 = new Mat3();\n\t\tthis._skyboxRotationMat4 = new Mat4();\n\t\tthis._ambientBakeNumSamples = 1;\n\t\tthis._ambientBakeSpherePart = 0.4;\n\t\tthis._lightmapFilterRange = 10;\n\t\tthis._lightmapFilterSmoothness = 0.2;\n\t\tthis._clusteredLightingEnabled = true;\n\t\tthis._lightingParams = new LightingParams(this.device.supportsAreaLights, this.device.maxTextureSize, () => {\n\t\t\tthis.updateShaders = true;\n\t\t});\n\t\tthis.gsplatCentersEnabled = true;\n\t\tthis._gsplatParams = new GSplatParams(this.device);\n\t\tthis._sky = new Sky(this);\n\t\tthis._stats = {\n\t\t\tmeshInstances: 0,\n\t\t\tlights: 0,\n\t\t\tdynamicLights: 0,\n\t\t\tbakedLights: 0,\n\t\t\tupdateShadersTime: 0\n\t\t\t// deprecated\n\t\t};\n\t\tthis.updateShaders = true;\n\t\tthis._shaderVersion = 0;\n\t\tthis.immediate = new Immediate(this.device);\n\t}\n\tget defaultDrawLayer() {\n\t\treturn this.layers.getLayerById(LAYERID_IMMEDIATE);\n\t}\n\tset ambientBakeNumSamples(value) {\n\t\tthis._ambientBakeNumSamples = math.clamp(Math.floor(value), 1, 255);\n\t}\n\tget ambientBakeNumSamples() {\n\t\treturn this._ambientBakeNumSamples;\n\t}\n\tset ambientBakeSpherePart(value) {\n\t\tthis._ambientBakeSpherePart = math.clamp(value, 1e-3, 1);\n\t}\n\tget ambientBakeSpherePart() {\n\t\treturn this._ambientBakeSpherePart;\n\t}\n\tset clusteredLightingEnabled(value) {\n\t\tif (this.device.isWebGPU && !value) {\n\t\t\treturn;\n\t\t}\n\t\tif (!this._clusteredLightingEnabled && value) {\n\t\t\tconsole.error(\"Turning on disabled clustered lighting is not currently supported\");\n\t\t\treturn;\n\t\t}\n\t\tthis._clusteredLightingEnabled = value;\n\t}\n\tget clusteredLightingEnabled() {\n\t\treturn this._clusteredLightingEnabled;\n\t}\n\tset envAtlas(value) {\n\t\tif (value !== this._envAtlas) {\n\t\t\tthis._envAtlas = value;\n\t\t\tif (value) {\n\t\t\t\tvalue.addressU = ADDRESS_CLAMP_TO_EDGE;\n\t\t\t\tvalue.addressV = ADDRESS_CLAMP_TO_EDGE;\n\t\t\t\tvalue.minFilter = FILTER_LINEAR;\n\t\t\t\tvalue.magFilter = FILTER_LINEAR;\n\t\t\t\tvalue.mipmaps = false;\n\t\t\t}\n\t\t\tthis._prefilteredCubemaps = [];\n\t\t\tif (this._internalEnvAtlas) {\n\t\t\t\tthis._internalEnvAtlas.destroy();\n\t\t\t\tthis._internalEnvAtlas = null;\n\t\t\t}\n\t\t\tthis._resetSkyMesh();\n\t\t}\n\t}\n\tget envAtlas() {\n\t\treturn this._envAtlas;\n\t}\n\tset layers(layers) {\n\t\tconst prev = this._layers;\n\t\tthis._layers = layers;\n\t\tthis.fire(\"set:layers\", prev, layers);\n\t}\n\tget layers() {\n\t\treturn this._layers;\n\t}\n\tget sky() {\n\t\treturn this._sky;\n\t}\n\tget lighting() {\n\t\treturn this._lightingParams;\n\t}\n\tget gsplat() {\n\t\treturn this._gsplatParams;\n\t}\n\tget fog() {\n\t\treturn this._fogParams;\n\t}\n\tset lightmapFilterRange(value) {\n\t\tthis._lightmapFilterRange = Math.max(value, 1e-3);\n\t}\n\tget lightmapFilterRange() {\n\t\treturn this._lightmapFilterRange;\n\t}\n\tset lightmapFilterSmoothness(value) {\n\t\tthis._lightmapFilterSmoothness = Math.max(value, 1e-3);\n\t}\n\tget lightmapFilterSmoothness() {\n\t\treturn this._lightmapFilterSmoothness;\n\t}\n\tset prefilteredCubemaps(value) {\n\t\tvalue = value || [];\n\t\tconst cubemaps = this._prefilteredCubemaps;\n\t\tconst changed = cubemaps.length !== value.length || cubemaps.some((c2, i2) => c2 !== value[i2]);\n\t\tif (changed) {\n\t\t\tconst complete = value.length === 6 && value.every((c2) => !!c2);\n\t\t\tif (complete) {\n\t\t\t\tthis._internalEnvAtlas = EnvLighting.generatePrefilteredAtlas(value, {\n\t\t\t\t\ttarget: this._internalEnvAtlas\n\t\t\t\t});\n\t\t\t\tthis._envAtlas = this._internalEnvAtlas;\n\t\t\t} else {\n\t\t\t\tif (this._internalEnvAtlas) {\n\t\t\t\t\tthis._internalEnvAtlas.destroy();\n\t\t\t\t\tthis._internalEnvAtlas = null;\n\t\t\t\t}\n\t\t\t\tthis._envAtlas = null;\n\t\t\t}\n\t\t\tthis._prefilteredCubemaps = value.slice();\n\t\t\tthis._resetSkyMesh();\n\t\t}\n\t}\n\tget prefilteredCubemaps() {\n\t\treturn this._prefilteredCubemaps;\n\t}\n\tset skybox(value) {\n\t\tif (value !== this._skyboxCubeMap) {\n\t\t\tthis._skyboxCubeMap = value;\n\t\t\tthis._resetSkyMesh();\n\t\t}\n\t}\n\tget skybox() {\n\t\treturn this._skyboxCubeMap;\n\t}\n\tset skyboxIntensity(value) {\n\t\tif (value !== this._skyboxIntensity) {\n\t\t\tthis._skyboxIntensity = value;\n\t\t\tthis._resetSkyMesh();\n\t\t}\n\t}\n\tget skyboxIntensity() {\n\t\treturn this._skyboxIntensity;\n\t}\n\tset skyboxLuminance(value) {\n\t\tif (value !== this._skyboxLuminance) {\n\t\t\tthis._skyboxLuminance = value;\n\t\t\tthis._resetSkyMesh();\n\t\t}\n\t}\n\tget skyboxLuminance() {\n\t\treturn this._skyboxLuminance;\n\t}\n\tset skyboxMip(value) {\n\t\tif (value !== this._skyboxMip) {\n\t\t\tthis._skyboxMip = value;\n\t\t\tthis._resetSkyMesh();\n\t\t}\n\t}\n\tget skyboxMip() {\n\t\treturn this._skyboxMip;\n\t}\n\tset skyboxHighlightMultiplier(value) {\n\t\tif (value !== this._skyboxHighlightMultiplier) {\n\t\t\tthis._skyboxHighlightMultiplier = value;\n\t\t\tthis._resetSkyMesh();\n\t\t}\n\t}\n\tget skyboxHighlightMultiplier() {\n\t\treturn this._skyboxHighlightMultiplier;\n\t}\n\tset skyboxRotation(value) {\n\t\tif (!this._skyboxRotation.equals(value)) {\n\t\t\tconst isIdentity = value.equals(Quat.IDENTITY);\n\t\t\tthis._skyboxRotation.copy(value);\n\t\t\tif (isIdentity) {\n\t\t\t\tthis._skyboxRotationMat3.setIdentity();\n\t\t\t} else {\n\t\t\t\tthis._skyboxRotationMat4.setTRS(Vec3.ZERO, value, Vec3.ONE);\n\t\t\t\tthis._skyboxRotationMat3.invertMat4(this._skyboxRotationMat4);\n\t\t\t}\n\t\t\tif (!this._skyboxRotationShaderInclude && !isIdentity) {\n\t\t\t\tthis._skyboxRotationShaderInclude = true;\n\t\t\t\tthis._resetSkyMesh();\n\t\t\t}\n\t\t}\n\t}\n\tget skyboxRotation() {\n\t\treturn this._skyboxRotation;\n\t}\n\tdestroy() {\n\t\tthis._sky.destroy();\n\t\tthis.root = null;\n\t\tthis.off();\n\t}\n\tdrawLine(start, end, color3 = Color.WHITE, depthTest = true, layer = this.defaultDrawLayer) {\n\t\tconst batch = this.immediate.getBatch(layer, depthTest);\n\t\tbatch.addLines([start, end], [color3, color3]);\n\t}\n\tdrawLines(positions, colors, depthTest = true, layer = this.defaultDrawLayer) {\n\t\tconst batch = this.immediate.getBatch(layer, depthTest);\n\t\tbatch.addLines(positions, colors);\n\t}\n\tdrawLineArrays(positions, colors, depthTest = true, layer = this.defaultDrawLayer) {\n\t\tconst batch = this.immediate.getBatch(layer, depthTest);\n\t\tbatch.addLinesArrays(positions, colors);\n\t}\n\tapplySettings(settings) {\n\t\tconst physics = settings.physics;\n\t\tconst render = settings.render;\n\t\tthis._gravity.set(physics.gravity[0], physics.gravity[1], physics.gravity[2]);\n\t\tthis.ambientLight.set(render.global_ambient[0], render.global_ambient[1], render.global_ambient[2]);\n\t\tthis.ambientLuminance = render.ambientLuminance;\n\t\tthis.fog.type = render.fog;\n\t\tthis.fog.color.set(render.fog_color[0], render.fog_color[1], render.fog_color[2]);\n\t\tthis.fog.start = render.fog_start;\n\t\tthis.fog.end = render.fog_end;\n\t\tthis.fog.density = render.fog_density;\n\t\tthis.lightmapSizeMultiplier = render.lightmapSizeMultiplier;\n\t\tthis.lightmapMaxResolution = render.lightmapMaxResolution;\n\t\tthis.lightmapMode = render.lightmapMode;\n\t\tthis.exposure = render.exposure;\n\t\tthis._skyboxIntensity = render.skyboxIntensity ?? 1;\n\t\tthis._skyboxLuminance = render.skyboxLuminance ?? 2e4;\n\t\tthis._skyboxMip = render.skyboxMip ?? 0;\n\t\tif (render.skyboxRotation) {\n\t\t\tthis.skyboxRotation = new Quat().setFromEulerAngles(render.skyboxRotation[0], render.skyboxRotation[1], render.skyboxRotation[2]);\n\t\t}\n\t\tthis.sky.applySettings(render);\n\t\tthis.clusteredLightingEnabled = render.clusteredLightingEnabled ?? false;\n\t\tthis.lighting.applySettings(render);\n\t\tthis.gsplat.applySettings(render);\n\t\t[\n\t\t\t\"lightmapFilterEnabled\",\n\t\t\t\"lightmapFilterRange\",\n\t\t\t\"lightmapFilterSmoothness\",\n\t\t\t\"ambientBake\",\n\t\t\t\"ambientBakeNumSamples\",\n\t\t\t\"ambientBakeSpherePart\",\n\t\t\t\"ambientBakeOcclusionBrightness\",\n\t\t\t\"ambientBakeOcclusionContrast\"\n\t\t].forEach((setting) => {\n\t\t\tif (render.hasOwnProperty(setting)) {\n\t\t\t\tthis[setting] = render[setting];\n\t\t\t}\n\t\t});\n\t\tthis._resetSkyMesh();\n\t}\n\t// get the actual texture to use for skybox rendering\n\t_getSkyboxTex() {\n\t\tconst cubemaps = this._prefilteredCubemaps;\n\t\tif (this._skyboxMip) {\n\t\t\tconst skyboxMapping = [\n\t\t\t\t0,\n\t\t\t\t1,\n\t\t\t\t/* 2 */\n\t\t\t\t3,\n\t\t\t\t4,\n\t\t\t\t5,\n\t\t\t\t6\n\t\t\t];\n\t\t\treturn cubemaps[skyboxMapping[this._skyboxMip]] || this._envAtlas || cubemaps[0] || this._skyboxCubeMap;\n\t\t}\n\t\treturn this._skyboxCubeMap || cubemaps[0] || this._envAtlas;\n\t}\n\t_updateSkyMesh() {\n\t\tif (!this.sky.skyMesh) {\n\t\t\tthis.sky.updateSkyMesh();\n\t\t}\n\t\tthis.sky.update();\n\t}\n\t_resetSkyMesh() {\n\t\tthis.sky.resetSkyMesh();\n\t\tthis.updateShaders = true;\n\t}\n\tsetSkybox(cubemaps) {\n\t\tif (!cubemaps) {\n\t\t\tthis.skybox = null;\n\t\t\tthis.envAtlas = null;\n\t\t} else {\n\t\t\tthis.skybox = cubemaps[0] || null;\n\t\t\tif (cubemaps[1] && !cubemaps[1].cubemap) {\n\t\t\t\tthis.envAtlas = cubemaps[1];\n\t\t\t} else {\n\t\t\t\tthis.prefilteredCubemaps = cubemaps.slice(1);\n\t\t\t}\n\t\t}\n\t}\n\tget lightmapPixelFormat() {\n\t\treturn this.lightmapHDR && this.device.getRenderableHdrFormat() || PIXELFORMAT_RGBA8;\n\t}\n\t// ---- deprecated block start ----\n\tget defaultMaterial() {\n\t\treturn getDefaultMaterial(this.device);\n\t}\n\tset fogColor(value) {\n\t\tthis.fog.color = value;\n\t}\n\tget fogColor() {\n\t\treturn this.fog.color;\n\t}\n\tset fogEnd(value) {\n\t\tthis.fog.end = value;\n\t}\n\tget fogEnd() {\n\t\treturn this.fog.end;\n\t}\n\tset fogStart(value) {\n\t\tthis.fog.start = value;\n\t}\n\tget fogStart() {\n\t\treturn this.fog.start;\n\t}\n\tset fogDensity(value) {\n\t\tthis.fog.density = value;\n\t}\n\tget fogDensity() {\n\t\treturn this.fog.density;\n\t}\n\tset skyboxPrefiltered128(value) {\n\t\tthis._prefilteredCubemaps[0] = value;\n\t\tthis.updateShaders = true;\n\t}\n\tget skyboxPrefiltered128() {\n\t\treturn this._prefilteredCubemaps[0];\n\t}\n\tset skyboxPrefiltered64(value) {\n\t\tthis._prefilteredCubemaps[1] = value;\n\t\tthis.updateShaders = true;\n\t}\n\tget skyboxPrefiltered64() {\n\t\treturn this._prefilteredCubemaps[1];\n\t}\n\tset skyboxPrefiltered32(value) {\n\t\tthis._prefilteredCubemaps[2] = value;\n\t\tthis.updateShaders = true;\n\t}\n\tget skyboxPrefiltered32() {\n\t\treturn this._prefilteredCubemaps[2];\n\t}\n\tset skyboxPrefiltered16(value) {\n\t\tthis._prefilteredCubemaps[3] = value;\n\t\tthis.updateShaders = true;\n\t}\n\tget skyboxPrefiltered16() {\n\t\treturn this._prefilteredCubemaps[3];\n\t}\n\tset skyboxPrefiltered8(value) {\n\t\tthis._prefilteredCubemaps[4] = value;\n\t\tthis.updateShaders = true;\n\t}\n\tget skyboxPrefiltered8() {\n\t\treturn this._prefilteredCubemaps[4];\n\t}\n\tset skyboxPrefiltered4(value) {\n\t\tthis._prefilteredCubemaps[5] = value;\n\t\tthis.updateShaders = true;\n\t}\n\tget skyboxPrefiltered4() {\n\t\treturn this._prefilteredCubemaps[5];\n\t}\n\tget models() {\n\t\tthis._models ?? (this._models = []);\n\t\treturn this._models;\n\t}\n\t// ---- deprecated block end ----\n};\n\nvar Skin = class {\n\tconstructor(graphicsDevice, ibp, boneNames) {\n\t\tthis.device = graphicsDevice;\n\t\tthis.inverseBindPose = ibp;\n\t\tthis.boneNames = boneNames;\n\t}\n};\n\nvar spriteNormals = [\n\t0,\n\t0,\n\t1,\n\t0,\n\t0,\n\t1,\n\t0,\n\t0,\n\t1,\n\t0,\n\t0,\n\t1\n];\nvar spriteIndices = [\n\t0,\n\t1,\n\t3,\n\t2,\n\t3,\n\t1\n];\nvar Sprite = class extends EventHandler {\n\tconstructor(device, options2) {\n\t\tsuper();\n\t\tthis._device = device;\n\t\tthis._pixelsPerUnit = options2 && options2.pixelsPerUnit !== void 0 ? options2.pixelsPerUnit : 1;\n\t\tthis._renderMode = options2 && options2.renderMode !== void 0 ? options2.renderMode : SPRITE_RENDERMODE_SIMPLE;\n\t\tthis._atlas = options2 && options2.atlas !== void 0 ? options2.atlas : null;\n\t\tthis._frameKeys = options2 && options2.frameKeys !== void 0 ? options2.frameKeys : null;\n\t\tthis._meshes = [];\n\t\tthis._updatingProperties = false;\n\t\tthis._meshesDirty = false;\n\t\tif (this._atlas && this._frameKeys) {\n\t\t\tthis._createMeshes();\n\t\t}\n\t}\n\tset frameKeys(value) {\n\t\tthis._frameKeys = value;\n\t\tif (this._atlas && this._frameKeys) {\n\t\t\tif (this._updatingProperties) {\n\t\t\t\tthis._meshesDirty = true;\n\t\t\t} else {\n\t\t\t\tthis._createMeshes();\n\t\t\t}\n\t\t}\n\t\tthis.fire(\"set:frameKeys\", value);\n\t}\n\tget frameKeys() {\n\t\treturn this._frameKeys;\n\t}\n\tset atlas(value) {\n\t\tif (value === this._atlas) return;\n\t\tif (this._atlas) {\n\t\t\tthis._atlas.off(\"set:frames\", this._onSetFrames, this);\n\t\t\tthis._atlas.off(\"set:frame\", this._onFrameChanged, this);\n\t\t\tthis._atlas.off(\"remove:frame\", this._onFrameRemoved, this);\n\t\t}\n\t\tthis._atlas = value;\n\t\tif (this._atlas && this._frameKeys) {\n\t\t\tthis._atlas.on(\"set:frames\", this._onSetFrames, this);\n\t\t\tthis._atlas.on(\"set:frame\", this._onFrameChanged, this);\n\t\t\tthis._atlas.on(\"remove:frame\", this._onFrameRemoved, this);\n\t\t\tif (this._updatingProperties) {\n\t\t\t\tthis._meshesDirty = true;\n\t\t\t} else {\n\t\t\t\tthis._createMeshes();\n\t\t\t}\n\t\t}\n\t\tthis.fire(\"set:atlas\", value);\n\t}\n\tget atlas() {\n\t\treturn this._atlas;\n\t}\n\tset pixelsPerUnit(value) {\n\t\tif (this._pixelsPerUnit === value) return;\n\t\tthis._pixelsPerUnit = value;\n\t\tthis.fire(\"set:pixelsPerUnit\", value);\n\t\tif (this._atlas && this._frameKeys && this.renderMode === SPRITE_RENDERMODE_SIMPLE) {\n\t\t\tif (this._updatingProperties) {\n\t\t\t\tthis._meshesDirty = true;\n\t\t\t} else {\n\t\t\t\tthis._createMeshes();\n\t\t\t}\n\t\t}\n\t}\n\tget pixelsPerUnit() {\n\t\treturn this._pixelsPerUnit;\n\t}\n\tset renderMode(value) {\n\t\tif (this._renderMode === value) {\n\t\t\treturn;\n\t\t}\n\t\tconst prev = this._renderMode;\n\t\tthis._renderMode = value;\n\t\tthis.fire(\"set:renderMode\", value);\n\t\tif (prev === SPRITE_RENDERMODE_SIMPLE || value === SPRITE_RENDERMODE_SIMPLE) {\n\t\t\tif (this._atlas && this._frameKeys) {\n\t\t\t\tif (this._updatingProperties) {\n\t\t\t\t\tthis._meshesDirty = true;\n\t\t\t\t} else {\n\t\t\t\t\tthis._createMeshes();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tget renderMode() {\n\t\treturn this._renderMode;\n\t}\n\tget meshes() {\n\t\treturn this._meshes;\n\t}\n\t_createMeshes() {\n\t\tconst len = this._meshes.length;\n\t\tfor (let i2 = 0; i2 < len; i2++) {\n\t\t\tconst mesh = this._meshes[i2];\n\t\t\tif (mesh) {\n\t\t\t\tmesh.destroy();\n\t\t\t}\n\t\t}\n\t\tconst count = this._frameKeys.length;\n\t\tthis._meshes = new Array(count);\n\t\tconst createMeshFunc = this.renderMode === SPRITE_RENDERMODE_SLICED || this._renderMode === SPRITE_RENDERMODE_TILED ? this._create9SliceMesh : this._createSimpleMesh;\n\t\tfor (let i2 = 0; i2 < count; i2++) {\n\t\t\tconst frame = this._atlas.frames[this._frameKeys[i2]];\n\t\t\tthis._meshes[i2] = frame ? createMeshFunc.call(this, frame) : null;\n\t\t}\n\t\tthis.fire(\"set:meshes\");\n\t}\n\t_createSimpleMesh(frame) {\n\t\tconst rect = frame.rect;\n\t\tconst texWidth = this._atlas.texture.width;\n\t\tconst texHeight = this._atlas.texture.height;\n\t\tconst w = rect.z / this._pixelsPerUnit;\n\t\tconst h2 = rect.w / this._pixelsPerUnit;\n\t\tconst hp = frame.pivot.x;\n\t\tconst vp = frame.pivot.y;\n\t\tconst positions = [\n\t\t\t-hp * w,\n\t\t\t-vp * h2,\n\t\t\t0,\n\t\t\t(1 - hp) * w,\n\t\t\t-vp * h2,\n\t\t\t0,\n\t\t\t(1 - hp) * w,\n\t\t\t(1 - vp) * h2,\n\t\t\t0,\n\t\t\t-hp * w,\n\t\t\t(1 - vp) * h2,\n\t\t\t0\n\t\t];\n\t\tconst lu = rect.x / texWidth;\n\t\tconst bv = 1 - rect.y / texHeight;\n\t\tconst ru = (rect.x + rect.z) / texWidth;\n\t\tconst tv = 1 - (rect.y + rect.w) / texHeight;\n\t\tconst uvs = [\n\t\t\tlu,\n\t\t\tbv,\n\t\t\tru,\n\t\t\tbv,\n\t\t\tru,\n\t\t\ttv,\n\t\t\tlu,\n\t\t\ttv\n\t\t];\n\t\tconst geom = new Geometry();\n\t\tgeom.positions = positions;\n\t\tgeom.normals = spriteNormals;\n\t\tgeom.uvs = uvs;\n\t\tgeom.indices = spriteIndices;\n\t\treturn Mesh.fromGeometry(this._device, geom);\n\t}\n\t_create9SliceMesh() {\n\t\tconst he = Vec2.ONE;\n\t\tconst ws = 3;\n\t\tconst ls = 3;\n\t\tconst positions = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\t\tconst indices = [];\n\t\tlet vcounter = 0;\n\t\tfor (let i2 = 0; i2 <= ws; i2++) {\n\t\t\tconst u = i2 === 0 || i2 === ws ? 0 : 1;\n\t\t\tfor (let j = 0; j <= ls; j++) {\n\t\t\t\tconst x3 = -he.x + 2 * he.x * (i2 <= 1 ? 0 : 3) / ws;\n\t\t\t\tconst y2 = 0;\n\t\t\t\tconst z2 = -(-he.y + 2 * he.y * (j <= 1 ? 0 : 3) / ls);\n\t\t\t\tconst v6 = j === 0 || j === ls ? 0 : 1;\n\t\t\t\tpositions.push(-x3, y2, z2);\n\t\t\t\tnormals.push(0, 1, 0);\n\t\t\t\tuvs.push(u, v6);\n\t\t\t\tif (i2 < ws && j < ls) {\n\t\t\t\t\tindices.push(vcounter + ls + 1, vcounter + 1, vcounter);\n\t\t\t\t\tindices.push(vcounter + ls + 1, vcounter + ls + 2, vcounter + 1);\n\t\t\t\t}\n\t\t\t\tvcounter++;\n\t\t\t}\n\t\t}\n\t\tconst geom = new Geometry();\n\t\tgeom.positions = positions;\n\t\tgeom.normals = normals;\n\t\tgeom.uvs = uvs;\n\t\tgeom.indices = indices;\n\t\treturn Mesh.fromGeometry(this._device, geom);\n\t}\n\t_onSetFrames(frames) {\n\t\tif (this._updatingProperties) {\n\t\t\tthis._meshesDirty = true;\n\t\t} else {\n\t\t\tthis._createMeshes();\n\t\t}\n\t}\n\t_onFrameChanged(frameKey, frame) {\n\t\tconst idx = this._frameKeys.indexOf(frameKey);\n\t\tif (idx < 0) return;\n\t\tif (frame) {\n\t\t\tif (this.renderMode === SPRITE_RENDERMODE_SIMPLE) {\n\t\t\t\tthis._meshes[idx] = this._createSimpleMesh(frame);\n\t\t\t}\n\t\t} else {\n\t\t\tthis._meshes[idx] = null;\n\t\t}\n\t\tthis.fire(\"set:meshes\");\n\t}\n\t_onFrameRemoved(frameKey) {\n\t\tconst idx = this._frameKeys.indexOf(frameKey);\n\t\tif (idx < 0) return;\n\t\tthis._meshes[idx] = null;\n\t\tthis.fire(\"set:meshes\");\n\t}\n\tstartUpdate() {\n\t\tthis._updatingProperties = true;\n\t\tthis._meshesDirty = false;\n\t}\n\tendUpdate() {\n\t\tthis._updatingProperties = false;\n\t\tif (this._meshesDirty && this._atlas && this._frameKeys) {\n\t\t\tthis._createMeshes();\n\t\t}\n\t\tthis._meshesDirty = false;\n\t}\n\tdestroy() {\n\t\tfor (const mesh of this._meshes) {\n\t\t\tif (mesh) {\n\t\t\t\tmesh.destroy();\n\t\t\t}\n\t\t}\n\t\tthis._meshes.length = 0;\n\t}\n};\n\nvar TextureAtlas = class extends EventHandler {\n\tconstructor() {\n\t\tsuper();\n\t\tthis._texture = null;\n\t\tthis._frames = null;\n\t}\n\tset texture(value) {\n\t\tthis._texture = value;\n\t\tthis.fire(\"set:texture\", value);\n\t}\n\tget texture() {\n\t\treturn this._texture;\n\t}\n\tset frames(value) {\n\t\tthis._frames = value;\n\t\tthis.fire(\"set:frames\", value);\n\t}\n\tget frames() {\n\t\treturn this._frames;\n\t}\n\tsetFrame(key, data2) {\n\t\tlet frame = this._frames[key];\n\t\tif (!frame) {\n\t\t\tframe = {\n\t\t\t\trect: data2.rect.clone(),\n\t\t\t\tpivot: data2.pivot.clone(),\n\t\t\t\tborder: data2.border.clone()\n\t\t\t};\n\t\t\tthis._frames[key] = frame;\n\t\t} else {\n\t\t\tframe.rect.copy(data2.rect);\n\t\t\tframe.pivot.copy(data2.pivot);\n\t\t\tframe.border.copy(data2.border);\n\t\t}\n\t\tthis.fire(\"set:frame\", key.toString(), frame);\n\t}\n\tremoveFrame(key) {\n\t\tconst frame = this._frames[key];\n\t\tif (frame) {\n\t\t\tdelete this._frames[key];\n\t\t\tthis.fire(\"remove:frame\", key.toString(), frame);\n\t\t}\n\t}\n\tdestroy() {\n\t\tif (this._texture) {\n\t\t\tthis._texture.destroy();\n\t\t}\n\t}\n};\n\nvar AnimationKey = class {\n\tconstructor(time, position5, rotation7, scale2) {\n\t\tthis.time = time;\n\t\tthis.position = position5;\n\t\tthis.rotation = rotation7;\n\t\tthis.scale = scale2;\n\t}\n};\nvar AnimationNode = class {\n\tconstructor() {\n\t\tthis._name = \"\";\n\t\tthis._keys = [];\n\t}\n};\nvar Animation = class {\n\tname = \"\";\n\tduration = 0;\n\tconstructor() {\n\t\tthis._nodes = [];\n\t\tthis._nodeDict = {};\n\t}\n\tgetNode(name) {\n\t\treturn this._nodeDict[name];\n\t}\n\taddNode(node) {\n\t\tthis._nodes.push(node);\n\t\tthis._nodeDict[node._name] = node;\n\t}\n\tget nodes() {\n\t\treturn this._nodes;\n\t}\n};\n\nvar InterpolatedKey = class {\n\tconstructor() {\n\t\tthis._written = false;\n\t\tthis._name = \"\";\n\t\tthis._keyFrames = [];\n\t\tthis._quat = new Quat();\n\t\tthis._pos = new Vec3();\n\t\tthis._scale = new Vec3();\n\t\tthis._targetNode = null;\n\t}\n\tgetTarget() {\n\t\treturn this._targetNode;\n\t}\n\tsetTarget(node) {\n\t\tthis._targetNode = node;\n\t}\n};\nvar Skeleton = class {\n\tlooping = true;\n\tconstructor(graph) {\n\t\tthis._animation = null;\n\t\tthis._time = 0;\n\t\tthis._interpolatedKeys = [];\n\t\tthis._interpolatedKeyDict = {};\n\t\tthis._currKeyIndices = {};\n\t\tthis.graph = null;\n\t\tconst addInterpolatedKeys = (node) => {\n\t\t\tconst interpKey = new InterpolatedKey();\n\t\t\tinterpKey._name = node.name;\n\t\t\tthis._interpolatedKeys.push(interpKey);\n\t\t\tthis._interpolatedKeyDict[node.name] = interpKey;\n\t\t\tthis._currKeyIndices[node.name] = 0;\n\t\t\tfor (let i2 = 0; i2 < node._children.length; i2++) {\n\t\t\t\taddInterpolatedKeys(node._children[i2]);\n\t\t\t}\n\t\t};\n\t\taddInterpolatedKeys(graph);\n\t}\n\tset animation(value) {\n\t\tthis._animation = value;\n\t\tthis.currentTime = 0;\n\t}\n\tget animation() {\n\t\treturn this._animation;\n\t}\n\tset currentTime(value) {\n\t\tthis._time = value;\n\t\tconst numNodes = this._interpolatedKeys.length;\n\t\tfor (let i2 = 0; i2 < numNodes; i2++) {\n\t\t\tconst node = this._interpolatedKeys[i2];\n\t\t\tconst nodeName = node._name;\n\t\t\tthis._currKeyIndices[nodeName] = 0;\n\t\t}\n\t\tthis.addTime(0);\n\t\tthis.updateGraph();\n\t}\n\tget currentTime() {\n\t\treturn this._time;\n\t}\n\tget numNodes() {\n\t\treturn this._interpolatedKeys.length;\n\t}\n\taddTime(delta3) {\n\t\tif (this._animation !== null) {\n\t\t\tconst nodes = this._animation._nodes;\n\t\t\tconst duration = this._animation.duration;\n\t\t\tif (this._time === duration && !this.looping) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis._time += delta3;\n\t\t\tif (this._time > duration) {\n\t\t\t\tthis._time = this.looping ? 0 : duration;\n\t\t\t\tfor (let i2 = 0; i2 < nodes.length; i2++) {\n\t\t\t\t\tconst node = nodes[i2];\n\t\t\t\t\tconst nodeName = node._name;\n\t\t\t\t\tthis._currKeyIndices[nodeName] = 0;\n\t\t\t\t}\n\t\t\t} else if (this._time < 0) {\n\t\t\t\tthis._time = this.looping ? duration : 0;\n\t\t\t\tfor (let i2 = 0; i2 < nodes.length; i2++) {\n\t\t\t\t\tconst node = nodes[i2];\n\t\t\t\t\tconst nodeName = node._name;\n\t\t\t\t\tthis._currKeyIndices[nodeName] = node._keys.length - 2;\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst offset3 = delta3 >= 0 ? 1 : -1;\n\t\t\tfor (let i2 = 0; i2 < nodes.length; i2++) {\n\t\t\t\tconst node = nodes[i2];\n\t\t\t\tconst nodeName = node._name;\n\t\t\t\tconst keys = node._keys;\n\t\t\t\tconst interpKey = this._interpolatedKeyDict[nodeName];\n\t\t\t\tif (interpKey === void 0) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tlet foundKey = false;\n\t\t\t\tif (keys.length !== 1) {\n\t\t\t\t\tfor (let currKeyIndex = this._currKeyIndices[nodeName]; currKeyIndex < keys.length - 1 && currKeyIndex >= 0; currKeyIndex += offset3) {\n\t\t\t\t\t\tconst k1 = keys[currKeyIndex];\n\t\t\t\t\t\tconst k2 = keys[currKeyIndex + 1];\n\t\t\t\t\t\tif (k1.time <= this._time && k2.time >= this._time) {\n\t\t\t\t\t\t\tconst alpha = (this._time - k1.time) / (k2.time - k1.time);\n\t\t\t\t\t\t\tinterpKey._pos.lerp(k1.position, k2.position, alpha);\n\t\t\t\t\t\t\tinterpKey._quat.slerp(k1.rotation, k2.rotation, alpha);\n\t\t\t\t\t\t\tinterpKey._scale.lerp(k1.scale, k2.scale, alpha);\n\t\t\t\t\t\t\tinterpKey._written = true;\n\t\t\t\t\t\t\tthis._currKeyIndices[nodeName] = currKeyIndex;\n\t\t\t\t\t\t\tfoundKey = true;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (keys.length === 1 || !foundKey && this._time === 0 && this.looping) {\n\t\t\t\t\tinterpKey._pos.copy(keys[0].position);\n\t\t\t\t\tinterpKey._quat.copy(keys[0].rotation);\n\t\t\t\t\tinterpKey._scale.copy(keys[0].scale);\n\t\t\t\t\tinterpKey._written = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tblend(skel1, skel2, alpha) {\n\t\tconst numNodes = this._interpolatedKeys.length;\n\t\tfor (let i2 = 0; i2 < numNodes; i2++) {\n\t\t\tconst key1 = skel1._interpolatedKeys[i2];\n\t\t\tconst key2 = skel2._interpolatedKeys[i2];\n\t\t\tconst dstKey = this._interpolatedKeys[i2];\n\t\t\tif (key1._written && key2._written) {\n\t\t\t\tdstKey._quat.slerp(key1._quat, skel2._interpolatedKeys[i2]._quat, alpha);\n\t\t\t\tdstKey._pos.lerp(key1._pos, skel2._interpolatedKeys[i2]._pos, alpha);\n\t\t\t\tdstKey._scale.lerp(key1._scale, key2._scale, alpha);\n\t\t\t\tdstKey._written = true;\n\t\t\t} else if (key1._written) {\n\t\t\t\tdstKey._quat.copy(key1._quat);\n\t\t\t\tdstKey._pos.copy(key1._pos);\n\t\t\t\tdstKey._scale.copy(key1._scale);\n\t\t\t\tdstKey._written = true;\n\t\t\t} else if (key2._written) {\n\t\t\t\tdstKey._quat.copy(key2._quat);\n\t\t\t\tdstKey._pos.copy(key2._pos);\n\t\t\t\tdstKey._scale.copy(key2._scale);\n\t\t\t\tdstKey._written = true;\n\t\t\t}\n\t\t}\n\t}\n\tsetGraph(graph) {\n\t\tthis.graph = graph;\n\t\tif (graph) {\n\t\t\tfor (let i2 = 0; i2 < this._interpolatedKeys.length; i2++) {\n\t\t\t\tconst interpKey = this._interpolatedKeys[i2];\n\t\t\t\tconst graphNode = graph.findByName(interpKey._name);\n\t\t\t\tthis._interpolatedKeys[i2].setTarget(graphNode);\n\t\t\t}\n\t\t} else {\n\t\t\tfor (let i2 = 0; i2 < this._interpolatedKeys.length; i2++) {\n\t\t\t\tthis._interpolatedKeys[i2].setTarget(null);\n\t\t\t}\n\t\t}\n\t}\n\tupdateGraph() {\n\t\tif (this.graph) {\n\t\t\tfor (let i2 = 0; i2 < this._interpolatedKeys.length; i2++) {\n\t\t\t\tconst interpKey = this._interpolatedKeys[i2];\n\t\t\t\tif (interpKey._written) {\n\t\t\t\t\tconst transform = interpKey.getTarget();\n\t\t\t\t\ttransform.localPosition.copy(interpKey._pos);\n\t\t\t\t\ttransform.localRotation.copy(interpKey._quat);\n\t\t\t\t\ttransform.localScale.copy(interpKey._scale);\n\t\t\t\t\tif (!transform._dirtyLocal) {\n\t\t\t\t\t\ttransform._dirtifyLocal();\n\t\t\t\t\t}\n\t\t\t\t\tinterpKey._written = false;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar prefixSumSource = `\n@group(0) @binding(0) var<storage, read_write> items: array<u32>;\n@group(0) @binding(1) var<storage, read_write> blockSums: array<u32>;\nstruct PrefixSumUniforms {\n\telementCount: u32\n};\n@group(0) @binding(2) var<uniform> uniforms: PrefixSumUniforms;\nconst WORKGROUP_SIZE_X: u32 = {WORKGROUP_SIZE_X}u;\nconst WORKGROUP_SIZE_Y: u32 = {WORKGROUP_SIZE_Y}u;\nconst THREADS_PER_WORKGROUP: u32 = {THREADS_PER_WORKGROUP}u;\nconst ITEMS_PER_WORKGROUP: u32 = {ITEMS_PER_WORKGROUP}u;\nvar<workgroup> temp: array<u32, ITEMS_PER_WORKGROUP * 2>;\n@compute @workgroup_size(WORKGROUP_SIZE_X, WORKGROUP_SIZE_Y, 1)\nfn reduce_downsweep(\n\t@builtin(workgroup_id) w_id: vec3<u32>,\n\t@builtin(num_workgroups) w_dim: vec3<u32>,\n\t@builtin(local_invocation_index) TID: u32,\n) {\n\tlet WORKGROUP_ID = w_id.x + w_id.y * w_dim.x;\n\tlet WID = WORKGROUP_ID * THREADS_PER_WORKGROUP;\n\tlet GID = WID + TID;\n\t\n\tlet ELM_TID = TID * 2;\n\tlet ELM_GID = GID * 2;\n\t\n\ttemp[ELM_TID] = select(items[ELM_GID], 0u, ELM_GID >= uniforms.elementCount);\n\ttemp[ELM_TID + 1u] = select(items[ELM_GID + 1u], 0u, ELM_GID + 1u >= uniforms.elementCount);\n\tvar offset: u32 = 1u;\n\tfor (var d: u32 = ITEMS_PER_WORKGROUP >> 1u; d > 0u; d >>= 1u) {\n\t\tworkgroupBarrier();\n\t\tif (TID < d) {\n\t\t\tvar ai: u32 = offset * (ELM_TID + 1u) - 1u;\n\t\t\tvar bi: u32 = offset * (ELM_TID + 2u) - 1u;\n\t\t\ttemp[bi] += temp[ai];\n\t\t}\n\t\toffset *= 2u;\n\t}\n\tif (TID == 0u) {\n\t\tlet last_offset = ITEMS_PER_WORKGROUP - 1u;\n\t\tblockSums[WORKGROUP_ID] = temp[last_offset];\n\t\ttemp[last_offset] = 0u;\n\t}\n\tfor (var d: u32 = 1u; d < ITEMS_PER_WORKGROUP; d *= 2u) {\n\t\toffset >>= 1u;\n\t\tworkgroupBarrier();\n\t\tif (TID < d) {\n\t\t\tvar ai: u32 = offset * (ELM_TID + 1u) - 1u;\n\t\t\tvar bi: u32 = offset * (ELM_TID + 2u) - 1u;\n\t\t\tlet t: u32 = temp[ai];\n\t\t\ttemp[ai] = temp[bi];\n\t\t\ttemp[bi] += t;\n\t\t}\n\t}\n\tworkgroupBarrier();\n\tif (ELM_GID < uniforms.elementCount) {\n\t\titems[ELM_GID] = temp[ELM_TID];\n\t}\n\tif (ELM_GID + 1u < uniforms.elementCount) {\n\t\titems[ELM_GID + 1u] = temp[ELM_TID + 1u];\n\t}\n}\n@compute @workgroup_size(WORKGROUP_SIZE_X, WORKGROUP_SIZE_Y, 1)\nfn add_block_sums(\n\t@builtin(workgroup_id) w_id: vec3<u32>,\n\t@builtin(num_workgroups) w_dim: vec3<u32>,\n\t@builtin(local_invocation_index) TID: u32,\n) {\n\tlet WORKGROUP_ID = w_id.x + w_id.y * w_dim.x;\n\tlet WID = WORKGROUP_ID * THREADS_PER_WORKGROUP;\n\tlet GID = WID + TID;\n\tlet ELM_ID = GID * 2u;\n\tif (ELM_ID >= uniforms.elementCount) {\n\t\treturn;\n\t}\n\tlet blockSum = blockSums[WORKGROUP_ID];\n\titems[ELM_ID] += blockSum;\n\tif (ELM_ID + 1u >= uniforms.elementCount) {\n\t\treturn;\n\t}\n\titems[ELM_ID + 1u] += blockSum;\n}\n`;\n\nvar WORKGROUP_SIZE_X = 16;\nvar WORKGROUP_SIZE_Y = 16;\nvar THREADS_PER_WORKGROUP = WORKGROUP_SIZE_X * WORKGROUP_SIZE_Y;\nvar ITEMS_PER_WORKGROUP = 2 * THREADS_PER_WORKGROUP;\nvar PrefixSumKernel = class {\n\tdevice;\n\tpasses = [];\n\t_uniformBufferFormat = null;\n\t_bindGroupFormat = null;\n\t_scanShader = null;\n\t_addBlockShader = null;\n\tconstructor(device) {\n\t\tthis.device = device;\n\t\tthis._createFormatsAndShaders();\n\t}\n\tdestroy() {\n\t\tthis.destroyPasses();\n\t\tthis._scanShader?.destroy();\n\t\tthis._addBlockShader?.destroy();\n\t\tthis._bindGroupFormat?.destroy();\n\t\tthis._scanShader = null;\n\t\tthis._addBlockShader = null;\n\t\tthis._bindGroupFormat = null;\n\t\tthis._uniformBufferFormat = null;\n\t}\n\t_createFormatsAndShaders() {\n\t\tthis._uniformBufferFormat = new UniformBufferFormat(this.device, [\n\t\t\tnew UniformFormat(\"elementCount\", UNIFORMTYPE_UINT)\n\t\t]);\n\t\tthis._bindGroupFormat = new BindGroupFormat(this.device, [\n\t\t\tnew BindStorageBufferFormat(\"items\", SHADERSTAGE_COMPUTE, false),\n\t\t\tnew BindStorageBufferFormat(\"blockSums\", SHADERSTAGE_COMPUTE, false),\n\t\t\tnew BindUniformBufferFormat(\"uniforms\", SHADERSTAGE_COMPUTE)\n\t\t]);\n\t\tthis._scanShader = this._createShader(\"PrefixSumScan\", \"reduce_downsweep\");\n\t\tthis._addBlockShader = this._createShader(\"PrefixSumAddBlock\", \"add_block_sums\");\n\t}\n\tcreatePassesRecursive(dataBuffer, count) {\n\t\tconst workgroupCount = Math.ceil(count / ITEMS_PER_WORKGROUP);\n\t\tconst { x: dispatchX, y: dispatchY } = this.findOptimalDispatchSize(workgroupCount);\n\t\tconst blockSumBuffer = new StorageBuffer(this.device, workgroupCount * 4);\n\t\tconst scanCompute = new Compute(this.device, this._scanShader, \"PrefixSumScan\");\n\t\tscanCompute.setParameter(\"items\", dataBuffer);\n\t\tscanCompute.setParameter(\"blockSums\", blockSumBuffer);\n\t\tconst pass = {\n\t\t\tscanCompute,\n\t\t\taddBlockCompute: null,\n\t\t\tblockSumBuffer,\n\t\t\tdispatchX,\n\t\t\tdispatchY,\n\t\t\tcount,\n\t\t\tallocatedCount: count\n\t\t};\n\t\tthis.passes.push(pass);\n\t\tif (workgroupCount > 1) {\n\t\t\tthis.createPassesRecursive(blockSumBuffer, workgroupCount);\n\t\t\tconst addBlockCompute = new Compute(this.device, this._addBlockShader, \"PrefixSumAddBlock\");\n\t\t\taddBlockCompute.setParameter(\"items\", dataBuffer);\n\t\t\taddBlockCompute.setParameter(\"blockSums\", blockSumBuffer);\n\t\t\tpass.addBlockCompute = addBlockCompute;\n\t\t}\n\t}\n\t_createShader(name, entryPoint) {\n\t\tconst cdefines = /* @__PURE__ */ new Map();\n\t\tcdefines.set(\"{WORKGROUP_SIZE_X}\", WORKGROUP_SIZE_X);\n\t\tcdefines.set(\"{WORKGROUP_SIZE_Y}\", WORKGROUP_SIZE_Y);\n\t\tcdefines.set(\"{THREADS_PER_WORKGROUP}\", THREADS_PER_WORKGROUP);\n\t\tcdefines.set(\"{ITEMS_PER_WORKGROUP}\", ITEMS_PER_WORKGROUP);\n\t\treturn new Shader(this.device, {\n\t\t\tname,\n\t\t\tshaderLanguage: SHADERLANGUAGE_WGSL,\n\t\t\tcshader: prefixSumSource,\n\t\t\tcdefines,\n\t\t\tcomputeEntryPoint: entryPoint,\n\t\t\tcomputeBindGroupFormat: this._bindGroupFormat,\n\t\t\tcomputeUniformBufferFormats: { uniforms: this._uniformBufferFormat }\n\t\t});\n\t}\n\tfindOptimalDispatchSize(workgroupCount) {\n\t\tconst maxDimension = this.device.limits.maxComputeWorkgroupsPerDimension || 65535;\n\t\tif (workgroupCount <= maxDimension) {\n\t\t\treturn { x: workgroupCount, y: 1 };\n\t\t}\n\t\tconst x3 = Math.floor(Math.sqrt(workgroupCount));\n\t\tconst y2 = Math.ceil(workgroupCount / x3);\n\t\treturn { x: x3, y: y2 };\n\t}\n\tresize(dataBuffer, count) {\n\t\tconst requiredPasses = this._countPassesNeeded(count);\n\t\tconst currentPasses = this.passes.length;\n\t\tif (requiredPasses > currentPasses) {\n\t\t\tthis.destroyPasses();\n\t\t\tthis.createPassesRecursive(dataBuffer, count);\n\t\t\treturn;\n\t\t}\n\t\tlet levelCount = count;\n\t\tfor (let i2 = 0; i2 < this.passes.length; i2++) {\n\t\t\tconst workgroupCount = Math.ceil(levelCount / ITEMS_PER_WORKGROUP);\n\t\t\tconst { x: dispatchX, y: dispatchY } = this.findOptimalDispatchSize(workgroupCount);\n\t\t\tthis.passes[i2].count = levelCount;\n\t\t\tthis.passes[i2].dispatchX = dispatchX;\n\t\t\tthis.passes[i2].dispatchY = dispatchY;\n\t\t\tlevelCount = workgroupCount;\n\t\t\tif (workgroupCount <= 1) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tdestroyPasses() {\n\t\tfor (const pass of this.passes) {\n\t\t\tpass.blockSumBuffer?.destroy();\n\t\t}\n\t\tthis.passes.length = 0;\n\t}\n\t_countPassesNeeded(count) {\n\t\tlet passes = 0;\n\t\tlet levelCount = count;\n\t\twhile (levelCount > 0) {\n\t\t\tpasses++;\n\t\t\tconst workgroupCount = Math.ceil(levelCount / ITEMS_PER_WORKGROUP);\n\t\t\tif (workgroupCount <= 1) break;\n\t\t\tlevelCount = workgroupCount;\n\t\t}\n\t\treturn passes;\n\t}\n\tdispatch(device) {\n\t\tfor (let i2 = 0; i2 < this.passes.length; i2++) {\n\t\t\tconst pass = this.passes[i2];\n\t\t\tpass.scanCompute.setParameter(\"elementCount\", pass.count);\n\t\t\tpass.scanCompute.setupDispatch(pass.dispatchX, pass.dispatchY, 1);\n\t\t\tdevice.computeDispatch([pass.scanCompute], \"PrefixSumScan\");\n\t\t}\n\t\tfor (let i2 = this.passes.length - 1; i2 >= 0; i2--) {\n\t\t\tconst pass = this.passes[i2];\n\t\t\tif (pass.addBlockCompute) {\n\t\t\t\tpass.addBlockCompute.setParameter(\"elementCount\", pass.count);\n\t\t\t\tpass.addBlockCompute.setupDispatch(pass.dispatchX, pass.dispatchY, 1);\n\t\t\t\tdevice.computeDispatch([pass.addBlockCompute], \"PrefixSumAddBlock\");\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar radixSort4bitSource = `\n@group(0) @binding(0) var<storage, read> input: array<u32>;\n@group(0) @binding(1) var<storage, read_write> block_sums: array<u32>;\nstruct RadixSortUniforms {\n\tworkgroupCount: u32,\n\telementCount: u32\n};\n@group(0) @binding(2) var<uniform> uniforms: RadixSortUniforms;\n#ifdef USE_INDIRECT_SORT\n\t@group(0) @binding(3) var<storage, read> sortElementCount: array<u32>;\n#endif\nconst THREADS_PER_WORKGROUP: u32 = {THREADS_PER_WORKGROUP}u;\nconst WORKGROUP_SIZE_X: u32 = {WORKGROUP_SIZE_X}u;\nconst WORKGROUP_SIZE_Y: u32 = {WORKGROUP_SIZE_Y}u;\nconst CURRENT_BIT: u32 = {CURRENT_BIT}u;\nconst ELEMENTS_PER_THREAD: u32 = {ELEMENTS_PER_THREAD}u;\nconst ELEMENTS_PER_WORKGROUP: u32 = THREADS_PER_WORKGROUP * ELEMENTS_PER_THREAD;\nvar<workgroup> histogram: array<atomic<u32>, 16>;\n@compute @workgroup_size(WORKGROUP_SIZE_X, WORKGROUP_SIZE_Y, 1)\nfn main(\n\t@builtin(workgroup_id) w_id: vec3<u32>,\n\t@builtin(num_workgroups) w_dim: vec3<u32>,\n\t@builtin(local_invocation_index) TID: u32,\n) {\n\tlet WORKGROUP_ID = w_id.x + w_id.y * w_dim.x;\n\tlet WID = WORKGROUP_ID * ELEMENTS_PER_WORKGROUP;\n\tif (TID < 16u) {\n\t\tatomicStore(&histogram[TID], 0u);\n\t}\n\tworkgroupBarrier();\n\t#ifdef USE_INDIRECT_SORT\n\t\tlet elementCount = sortElementCount[0];\n\t#else\n\t\tlet elementCount = uniforms.elementCount;\n\t#endif\n\tfor (var r = 0u; r < ELEMENTS_PER_THREAD; r++) {\n\t\tlet GID = WID + r * THREADS_PER_WORKGROUP + TID;\n\t\tlet is_valid = GID < elementCount && WORKGROUP_ID < uniforms.workgroupCount;\n\t\tif (is_valid) {\n\t\t\tlet elm = input[GID];\n\t\t\tlet digit = (elm >> CURRENT_BIT) & 0xFu;\n\t\t\tatomicAdd(&histogram[digit], 1u);\n\t\t}\n\t}\n\tworkgroupBarrier();\n\tif (TID < 16u && WORKGROUP_ID < uniforms.workgroupCount) {\n\t\tblock_sums[TID * uniforms.workgroupCount + WORKGROUP_ID] = atomicLoad(&histogram[TID]);\n\t}\n}\n`;\n\nvar radixSortReorderSource = `\n@group(0) @binding(0) var<storage, read> inputKeys: array<u32>;\n@group(0) @binding(1) var<storage, read_write> outputKeys: array<u32>;\n@group(0) @binding(2) var<storage, read> prefix_block_sum: array<u32>;\n@group(0) @binding(3) var<storage, read> inputValues: array<u32>;\n@group(0) @binding(4) var<storage, read_write> outputValues: array<u32>;\nstruct RadixSortUniforms {\n\tworkgroupCount: u32,\n\telementCount: u32\n};\n@group(0) @binding(5) var<uniform> uniforms: RadixSortUniforms;\n#ifdef USE_INDIRECT_SORT\n\t@group(0) @binding(6) var<storage, read> sortElementCount: array<u32>;\n#endif\nconst THREADS_PER_WORKGROUP: u32 = {THREADS_PER_WORKGROUP}u;\nconst WORKGROUP_SIZE_X: u32 = {WORKGROUP_SIZE_X}u;\nconst WORKGROUP_SIZE_Y: u32 = {WORKGROUP_SIZE_Y}u;\nconst CURRENT_BIT: u32 = {CURRENT_BIT}u;\nconst IS_FIRST_PASS: u32 = {IS_FIRST_PASS}u;\nconst IS_LAST_PASS: u32 = {IS_LAST_PASS}u;\nconst ELEMENTS_PER_THREAD: u32 = {ELEMENTS_PER_THREAD}u;\nconst ELEMENTS_PER_WORKGROUP: u32 = THREADS_PER_WORKGROUP * ELEMENTS_PER_THREAD;\nvar<workgroup> digit_masks: array<atomic<u32>, 128>;\nvar<workgroup> digit_offsets: array<u32, 16>;\n@compute @workgroup_size(WORKGROUP_SIZE_X, WORKGROUP_SIZE_Y, 1)\nfn main(\n\t@builtin(workgroup_id) w_id: vec3<u32>,\n\t@builtin(num_workgroups) w_dim: vec3<u32>,\n\t@builtin(local_invocation_index) TID: u32,\n) {\n\tlet WORKGROUP_ID = w_id.x + w_id.y * w_dim.x;\n\tlet WID = WORKGROUP_ID * ELEMENTS_PER_WORKGROUP;\n\tlet word_idx = TID >> 5u;\n\tlet bit_idx = TID & 31u;\n\tif (TID < 16u) {\n\t\tdigit_offsets[TID] = 0u;\n\t}\n\tif (TID < 128u) {\n\t\tatomicStore(&digit_masks[TID], 0u);\n\t}\n\tworkgroupBarrier();\n\t#ifdef USE_INDIRECT_SORT\n\t\tlet elementCount = sortElementCount[0];\n\t#else\n\t\tlet elementCount = uniforms.elementCount;\n\t#endif\n\tfor (var round = 0u; round < ELEMENTS_PER_THREAD; round++) {\n\t\tlet GID = WID + round * THREADS_PER_WORKGROUP + TID;\n\t\tlet is_valid = GID < elementCount;\n\t\tlet k = select(0u, inputKeys[GID], is_valid);\n\t\tlet digit = select(16u, (k >> CURRENT_BIT) & 0xFu, is_valid);\n\t\tlet v = select(0u, select(inputValues[GID], GID, IS_FIRST_PASS == 1u), is_valid);\n\t\tif (is_valid) {\n\t\t\tatomicOr(&digit_masks[digit * 8u + word_idx], 1u << bit_idx);\n\t\t}\n\t\tworkgroupBarrier();\n\t\tif (is_valid) {\n\t\t\tlet base = digit * 8u;\n\t\t\tvar local_prefix = digit_offsets[digit];\n\t\t\tfor (var w = 0u; w < word_idx; w++) {\n\t\t\t\tlocal_prefix += countOneBits(atomicLoad(&digit_masks[base + w]));\n\t\t\t}\n\t\t\tlocal_prefix += countOneBits(atomicLoad(&digit_masks[base + word_idx]) & ((1u << bit_idx) - 1u));\n\t\t\tlet pid = digit * uniforms.workgroupCount + WORKGROUP_ID;\n\t\t\tlet sorted_position = prefix_block_sum[pid] + local_prefix;\n\t\t\tif (IS_LAST_PASS == 0u) {\n\t\t\t\toutputKeys[sorted_position] = k;\n\t\t\t}\n\t\t\toutputValues[sorted_position] = v;\n\t\t}\n\t\tif (round < ELEMENTS_PER_THREAD - 1u) {\n\t\t\tworkgroupBarrier();\n\t\t\tif (TID < 16u) {\n\t\t\t\tvar count = 0u;\n\t\t\t\tfor (var w = 0u; w < 8u; w++) {\n\t\t\t\t\tlet idx = TID * 8u + w;\n\t\t\t\t\tcount += countOneBits(atomicLoad(&digit_masks[idx]));\n\t\t\t\t\tatomicStore(&digit_masks[idx], 0u);\n\t\t\t\t}\n\t\t\t\tdigit_offsets[TID] += count;\n\t\t\t}\n\t\t\tworkgroupBarrier();\n\t\t}\n\t}\n}\n`;\n\nvar ComputeRadixSortBase = class {\n\tdevice;\n\t_indirect = false;\n\tconstructor(device, indirect = false) {\n\t\tthis.device = device;\n\t\tthis._indirect = indirect;\n\t}\n\tcapacity = 0;\n\t_elementCount = 0;\n\t_numBits = 0;\n\t_hasInitialValues = false;\n\t_skipLastPassKeyWrite = false;\n\t_destructiveKeys = false;\n\t_keys0 = null;\n\t_keys1 = null;\n\t_values0 = null;\n\t_values1 = null;\n\t_indirectInfo = new Uint32Array(4);\n\tget sortedIndices() {\n\t\tif (!this._values0) return null;\n\t\tconst numPasses = this._numBits / this.radixBits;\n\t\treturn numPasses % 2 === 1 ? this._values1 : this._values0;\n\t}\n\tget sortedKeys() {\n\t\tif (!this._keys0) {\n\t\t\treturn null;\n\t\t}\n\t\tconst radix = this.radixBits;\n\t\tconst numPasses = this._numBits / radix;\n\t\treturn numPasses % 2 === 0 ? this._keys1 : this._keys0;\n\t}\n\tget radixBits() {\n\t\treturn 0;\n\t}\n\tsort(keysBuffer, elementCount, numBits, initialValues, skipLastPassKeyWrite, destructiveKeys) {\n\t\treturn null;\n\t}\n\tsortIndirect(keysBuffer, maxElementCount, numBits, sortSlotBase, sortElementCountBuffer, initialValues, skipLastPassKeyWrite, destructiveKeys) {\n\t\treturn null;\n\t}\n\tprepareIndirect() {\n\t\treturn this._indirectInfo;\n\t}\n\t_allocatePingPongElementBuffers(effectiveCount) {\n\t\tconst elementSize = effectiveCount * 4;\n\t\tconst usage = BUFFERUSAGE_COPY_SRC | BUFFERUSAGE_COPY_DST;\n\t\tconst device = this.device;\n\t\tthis._keys0 = new StorageBuffer(device, elementSize, usage);\n\t\tif (!this._destructiveKeys) {\n\t\t\tthis._keys1 = new StorageBuffer(device, elementSize, usage);\n\t\t}\n\t\tthis._values0 = new StorageBuffer(device, elementSize, usage);\n\t\tthis._values1 = new StorageBuffer(device, elementSize, usage);\n\t}\n\t_destroyPingPongBuffers() {\n\t\tthis._keys0?.destroy();\n\t\tif (!this._destructiveKeys) this._keys1?.destroy();\n\t\tthis._values0?.destroy();\n\t\tthis._values1?.destroy();\n\t\tthis._keys0 = null;\n\t\tthis._keys1 = null;\n\t\tthis._values0 = null;\n\t\tthis._values1 = null;\n\t}\n\tdestroy() {\n\t}\n};\n\nvar WORKGROUP_SIZE_X2 = 16;\nvar WORKGROUP_SIZE_Y2 = 16;\nvar THREADS_PER_WORKGROUP2 = WORKGROUP_SIZE_X2 * WORKGROUP_SIZE_Y2;\nvar ELEMENTS_PER_THREAD = 8;\nvar ELEMENTS_PER_WORKGROUP = THREADS_PER_WORKGROUP2 * ELEMENTS_PER_THREAD;\nvar BITS_PER_PASS = 4;\nvar BUCKET_COUNT = 16;\nvar ComputeRadixSortMultipass = class extends ComputeRadixSortBase {\n\t_workgroupCount = 0;\n\t_allocatedWorkgroupCount = 0;\n\t_blockSums = null;\n\t_prefixSumKernel = null;\n\t_dispatchSize = new Vec2(1, 1);\n\t_histogramBindGroupFormat = null;\n\t_reorderBindGroupFormat = null;\n\t_uniformBufferFormat = null;\n\t_passes = [];\n\tconstructor(device, indirect = false) {\n\t\tsuper(device, indirect);\n\t\tconst info = this._indirectInfo;\n\t\tinfo[0] = 1;\n\t\tinfo[1] = ELEMENTS_PER_WORKGROUP;\n\t\tthis._uniformBufferFormat = new UniformBufferFormat(device, [\n\t\t\tnew UniformFormat(\"workgroupCount\", UNIFORMTYPE_UINT),\n\t\t\tnew UniformFormat(\"elementCount\", UNIFORMTYPE_UINT)\n\t\t]);\n\t\tconst histogramEntries = [\n\t\t\tnew BindStorageBufferFormat(\"input\", SHADERSTAGE_COMPUTE, true),\n\t\t\tnew BindStorageBufferFormat(\"block_sums\", SHADERSTAGE_COMPUTE, false),\n\t\t\tnew BindUniformBufferFormat(\"uniforms\", SHADERSTAGE_COMPUTE)\n\t\t];\n\t\tconst reorderEntries = [\n\t\t\tnew BindStorageBufferFormat(\"inputKeys\", SHADERSTAGE_COMPUTE, true),\n\t\t\tnew BindStorageBufferFormat(\"outputKeys\", SHADERSTAGE_COMPUTE, false),\n\t\t\tnew BindStorageBufferFormat(\"prefix_block_sum\", SHADERSTAGE_COMPUTE, true),\n\t\t\tnew BindStorageBufferFormat(\"inputValues\", SHADERSTAGE_COMPUTE, true),\n\t\t\tnew BindStorageBufferFormat(\"outputValues\", SHADERSTAGE_COMPUTE, false),\n\t\t\tnew BindUniformBufferFormat(\"uniforms\", SHADERSTAGE_COMPUTE)\n\t\t];\n\t\tif (indirect) {\n\t\t\thistogramEntries.push(new BindStorageBufferFormat(\"sortElementCount\", SHADERSTAGE_COMPUTE, true));\n\t\t\treorderEntries.push(new BindStorageBufferFormat(\"sortElementCount\", SHADERSTAGE_COMPUTE, true));\n\t\t}\n\t\tthis._histogramBindGroupFormat = new BindGroupFormat(device, histogramEntries);\n\t\tthis._reorderBindGroupFormat = new BindGroupFormat(device, reorderEntries);\n\t}\n\tdestroy() {\n\t\tthis._destroyBuffers();\n\t\tthis._destroyPasses();\n\t\tthis._histogramBindGroupFormat?.destroy();\n\t\tthis._reorderBindGroupFormat?.destroy();\n\t\tthis._histogramBindGroupFormat = null;\n\t\tthis._reorderBindGroupFormat = null;\n\t\tthis._uniformBufferFormat = null;\n\t\tsuper.destroy();\n\t}\n\t_destroyPasses() {\n\t\tfor (const pass of this._passes) {\n\t\t\tpass.histogramCompute.shader?.destroy();\n\t\t\tpass.reorderCompute.shader?.destroy();\n\t\t}\n\t\tthis._passes.length = 0;\n\t\tthis._numBits = 0;\n\t}\n\t_destroyBuffers() {\n\t\tthis._destroyPingPongBuffers();\n\t\tthis._blockSums?.destroy();\n\t\tthis._prefixSumKernel?.destroy();\n\t\tthis._blockSums = null;\n\t\tthis._prefixSumKernel = null;\n\t\tthis._workgroupCount = 0;\n\t\tthis._allocatedWorkgroupCount = 0;\n\t}\n\tget radixBits() {\n\t\treturn BITS_PER_PASS;\n\t}\n\t_createPasses(numBits, hasInitialValues, skipLastPassKeyWrite) {\n\t\tthis._destroyPasses();\n\t\tthis._numBits = numBits;\n\t\tthis._hasInitialValues = hasInitialValues;\n\t\tthis._skipLastPassKeyWrite = skipLastPassKeyWrite;\n\t\tconst numPasses = numBits / BITS_PER_PASS;\n\t\tconst suffix = this._indirect ? \"-Indirect\" : \"\";\n\t\tfor (let pass = 0; pass < numPasses; pass++) {\n\t\t\tconst bitOffset = pass * BITS_PER_PASS;\n\t\t\tconst isFirstPass = pass === 0 && !hasInitialValues;\n\t\t\tconst isLastPass = skipLastPassKeyWrite && pass === numPasses - 1;\n\t\t\tconst histogramShader = this._createShader(\n\t\t\t\t`RadixSort4bit-Histogram${suffix}-${bitOffset}`,\n\t\t\t\tradixSort4bitSource,\n\t\t\t\tbitOffset,\n\t\t\t\tfalse,\n\t\t\t\tfalse,\n\t\t\t\tthis._histogramBindGroupFormat\n\t\t\t);\n\t\t\tconst reorderShader = this._createShader(\n\t\t\t\t`RadixSort4bit-Reorder${suffix}-${bitOffset}`,\n\t\t\t\tradixSortReorderSource,\n\t\t\t\tbitOffset,\n\t\t\t\tisFirstPass,\n\t\t\t\tisLastPass,\n\t\t\t\tthis._reorderBindGroupFormat\n\t\t\t);\n\t\t\tconst histogramCompute = new Compute(this.device, histogramShader, `RadixSort4bit-Histogram${suffix}-${bitOffset}`);\n\t\t\tconst reorderCompute = new Compute(this.device, reorderShader, `RadixSort4bit-Reorder${suffix}-${bitOffset}`);\n\t\t\tthis._passes.push({ histogramCompute, reorderCompute });\n\t\t}\n\t}\n\t_allocateBuffers(elementCount, numBits, hasInitialValues, skipLastPassKeyWrite, forceRealloc = false) {\n\t\tconst effectiveCount = Math.max(elementCount, this.capacity);\n\t\tconst allocWorkgroupCount = Math.ceil(effectiveCount / ELEMENTS_PER_WORKGROUP);\n\t\tconst currentWorkgroupCount = Math.max(1, Math.ceil(elementCount / ELEMENTS_PER_WORKGROUP));\n\t\tconst buffersNeedRealloc = forceRealloc || allocWorkgroupCount !== this._allocatedWorkgroupCount || !this._keys0;\n\t\tconst passesNeedRecreate = numBits !== this._numBits || hasInitialValues !== this._hasInitialValues || skipLastPassKeyWrite !== this._skipLastPassKeyWrite;\n\t\tif (buffersNeedRealloc) {\n\t\t\tthis._destroyBuffers();\n\t\t\tthis._allocatedWorkgroupCount = allocWorkgroupCount;\n\t\t\tthis.capacity = effectiveCount;\n\t\t\tconst blockSumSize = BUCKET_COUNT * allocWorkgroupCount * 4;\n\t\t\tthis._allocatePingPongElementBuffers(effectiveCount);\n\t\t\tthis._blockSums = new StorageBuffer(this.device, blockSumSize, BUFFERUSAGE_COPY_SRC | BUFFERUSAGE_COPY_DST);\n\t\t\tthis._prefixSumKernel = new PrefixSumKernel(this.device);\n\t\t}\n\t\tthis._workgroupCount = currentWorkgroupCount;\n\t\tCompute.calcDispatchSize(currentWorkgroupCount, this._dispatchSize, this.device.limits.maxComputeWorkgroupsPerDimension || 65535);\n\t\tthis._prefixSumKernel.resize(this._blockSums, BUCKET_COUNT * currentWorkgroupCount);\n\t\tif (passesNeedRecreate) {\n\t\t\tthis._createPasses(numBits, hasInitialValues, skipLastPassKeyWrite);\n\t\t}\n\t}\n\t_createShader(name, source, currentBit, isFirstPass, isLastPass, bindGroupFormat) {\n\t\tconst cdefines = /* @__PURE__ */ new Map();\n\t\tcdefines.set(\"{WORKGROUP_SIZE_X}\", WORKGROUP_SIZE_X2);\n\t\tcdefines.set(\"{WORKGROUP_SIZE_Y}\", WORKGROUP_SIZE_Y2);\n\t\tcdefines.set(\"{THREADS_PER_WORKGROUP}\", THREADS_PER_WORKGROUP2);\n\t\tcdefines.set(\"{ELEMENTS_PER_THREAD}\", ELEMENTS_PER_THREAD);\n\t\tcdefines.set(\"{CURRENT_BIT}\", currentBit);\n\t\tcdefines.set(\"{IS_FIRST_PASS}\", isFirstPass ? 1 : 0);\n\t\tcdefines.set(\"{IS_LAST_PASS}\", isLastPass ? 1 : 0);\n\t\tif (this._indirect) {\n\t\t\tcdefines.set(\"USE_INDIRECT_SORT\", \"\");\n\t\t}\n\t\treturn new Shader(this.device, {\n\t\t\tname,\n\t\t\tshaderLanguage: SHADERLANGUAGE_WGSL,\n\t\t\tcshader: source,\n\t\t\tcdefines,\n\t\t\tcomputeBindGroupFormat: bindGroupFormat,\n\t\t\tcomputeUniformBufferFormats: { uniforms: this._uniformBufferFormat }\n\t\t});\n\t}\n\tsort(keysBuffer, elementCount, numBits = 16, initialValues, skipLastPassKeyWrite = false, destructiveKeys = false) {\n\t\treturn this._execute(keysBuffer, elementCount, numBits, -1, null, initialValues, skipLastPassKeyWrite, destructiveKeys);\n\t}\n\tsortIndirect(keysBuffer, maxElementCount, numBits, sortSlotBase, sortElementCountBuffer, initialValues, skipLastPassKeyWrite = false, destructiveKeys = false) {\n\t\treturn this._execute(keysBuffer, maxElementCount, numBits, sortSlotBase, sortElementCountBuffer, initialValues, skipLastPassKeyWrite, destructiveKeys);\n\t}\n\t_execute(keysBuffer, elementCount, numBits, sortSlotBase, sortElementCountBuffer, initialValues, skipLastPassKeyWrite = false, destructiveKeys = false) {\n\t\tthis._elementCount = elementCount;\n\t\tconst hasInitialValues = !!initialValues;\n\t\tconst prevDestructiveKeys = this._destructiveKeys;\n\t\tthis._destructiveKeys = destructiveKeys;\n\t\tthis._allocateBuffers(elementCount, numBits, hasInitialValues, skipLastPassKeyWrite, destructiveKeys !== prevDestructiveKeys);\n\t\tif (destructiveKeys) {\n\t\t\tthis._keys1 = keysBuffer;\n\t\t}\n\t\tconst device = this.device;\n\t\tconst numPasses = numBits / BITS_PER_PASS;\n\t\tconst suffix = this._indirect ? \"-Indirect\" : \"\";\n\t\tlet currentKeys = keysBuffer;\n\t\tlet currentValues = initialValues ?? this._values0;\n\t\tlet nextKeys = this._keys0;\n\t\tlet nextValues = this._values1;\n\t\tfor (let pass = 0; pass < numPasses; pass++) {\n\t\t\tconst { histogramCompute, reorderCompute } = this._passes[pass];\n\t\t\tconst isLastPass = pass === numPasses - 1;\n\t\t\tif (this._indirect) {\n\t\t\t\tthis._blockSums.clear();\n\t\t\t}\n\t\t\thistogramCompute.setParameter(\"input\", currentKeys);\n\t\t\thistogramCompute.setParameter(\"block_sums\", this._blockSums);\n\t\t\thistogramCompute.setParameter(\"workgroupCount\", this._workgroupCount);\n\t\t\thistogramCompute.setParameter(\"elementCount\", elementCount);\n\t\t\tif (this._indirect) {\n\t\t\t\thistogramCompute.setParameter(\"sortElementCount\", sortElementCountBuffer);\n\t\t\t\thistogramCompute.setupIndirectDispatch(sortSlotBase);\n\t\t\t} else {\n\t\t\t\thistogramCompute.setupDispatch(this._dispatchSize.x, this._dispatchSize.y, 1);\n\t\t\t}\n\t\t\tdevice.computeDispatch([histogramCompute], `RadixSort4bit-Histogram${suffix}`);\n\t\t\tthis._prefixSumKernel.dispatch(device);\n\t\t\treorderCompute.setParameter(\"inputKeys\", currentKeys);\n\t\t\treorderCompute.setParameter(\"outputKeys\", nextKeys);\n\t\t\treorderCompute.setParameter(\"prefix_block_sum\", this._blockSums);\n\t\t\treorderCompute.setParameter(\"inputValues\", currentValues);\n\t\t\treorderCompute.setParameter(\"outputValues\", nextValues);\n\t\t\treorderCompute.setParameter(\"workgroupCount\", this._workgroupCount);\n\t\t\treorderCompute.setParameter(\"elementCount\", elementCount);\n\t\t\tif (this._indirect) {\n\t\t\t\treorderCompute.setParameter(\"sortElementCount\", sortElementCountBuffer);\n\t\t\t\treorderCompute.setupIndirectDispatch(sortSlotBase);\n\t\t\t} else {\n\t\t\t\treorderCompute.setupDispatch(this._dispatchSize.x, this._dispatchSize.y, 1);\n\t\t\t}\n\t\t\tdevice.computeDispatch([reorderCompute], `RadixSort4bit-Reorder${suffix}`);\n\t\t\tif (!isLastPass) {\n\t\t\t\tcurrentKeys = nextKeys;\n\t\t\t\tnextKeys = currentKeys === this._keys0 ? this._keys1 : this._keys0;\n\t\t\t\tcurrentValues = nextValues;\n\t\t\t\tnextValues = currentValues === this._values0 ? this._values1 : this._values0;\n\t\t\t}\n\t\t}\n\t\treturn this.sortedIndices;\n\t}\n};\n\nvar onesweepGlobalHistSource = `\n@group(0) @binding(0) var<storage, read> b_sort: array<vec4<u32>>;\n@group(0) @binding(1) var<storage, read_write> b_globalHist: array<atomic<u32>>;\nstruct OneSweepUniforms {\n\tnumKeys: u32,\n\tthreadBlocks: u32,\n\tnumPasses: u32,\n\t_pad: u32\n};\n@group(0) @binding(2) var<uniform> uniforms: OneSweepUniforms;\n#ifdef USE_INDIRECT_SORT\n@group(0) @binding(3) var<storage, read> b_sortElementCount: array<u32>;\n#endif\nconst RADIX: u32 = 256u;\nconst MAX_PASSES: u32 = 4u;\nconst G_HIST_DIM: u32 = {G_HIST_DIM}u;\nconst G_HIST_PART_SIZE: u32 = {G_HIST_PART_SIZE}u;\nconst G_HIST_PART_SIZE_VEC: u32 = G_HIST_PART_SIZE / 4u;\nconst SHARED_HIST_SIZE: u32 = 2u * MAX_PASSES * RADIX;\nvar<workgroup> g_gHist: array<atomic<u32>, SHARED_HIST_SIZE>;\nfn histOffset(row: u32, pass_: u32) -> u32 {\n\treturn row * RADIX + pass_ * 2u * RADIX;\n}\n@compute @workgroup_size(G_HIST_DIM, 1, 1)\nfn main(\n\t@builtin(local_invocation_index) gtid: u32,\n\t@builtin(workgroup_id) gid: vec3<u32>,\n\t@builtin(num_workgroups) nwg: vec3<u32>,\n) {\n\tlet flatGid = gid.x + gid.y * nwg.x;\n\tlet numPasses = uniforms.numPasses;\n\t#ifdef USE_INDIRECT_SORT\n\t\tlet numKeys = b_sortElementCount[0];\n\t#else\n\t\tlet numKeys = uniforms.numKeys;\n\t#endif\n\tlet sharedEnd = 2u * numPasses * RADIX;\n\tfor (var i = gtid; i < sharedEnd; i = i + G_HIST_DIM) {\n\t\tatomicStore(&g_gHist[i], 0u);\n\t}\n\tworkgroupBarrier();\n\tlet row = gtid / 64u;\n\tlet numKeysVecFull = numKeys >> 2u;\n\tlet partitionStartVec = flatGid * G_HIST_PART_SIZE_VEC;\n\tlet partitionEndVec = min(partitionStartVec + G_HIST_PART_SIZE_VEC, numKeysVecFull);\n\tfor (var i = partitionStartVec + gtid; i < partitionEndVec; i = i + G_HIST_DIM) {\n\t\tlet q = b_sort[i];\n\t\tif (numPasses >= 1u) {\n\t\t\tlet off = histOffset(row, 0u);\n\t\t\tatomicAdd(&g_gHist[(q.x\t\t & 0xFFu) + off], 1u);\n\t\t\tatomicAdd(&g_gHist[(q.y\t\t & 0xFFu) + off], 1u);\n\t\t\tatomicAdd(&g_gHist[(q.z\t\t & 0xFFu) + off], 1u);\n\t\t\tatomicAdd(&g_gHist[(q.w\t\t & 0xFFu) + off], 1u);\n\t\t}\n\t\tif (numPasses >= 2u) {\n\t\t\tlet off = histOffset(row, 1u);\n\t\t\tatomicAdd(&g_gHist[((q.x >>  8u) & 0xFFu) + off], 1u);\n\t\t\tatomicAdd(&g_gHist[((q.y >>  8u) & 0xFFu) + off], 1u);\n\t\t\tatomicAdd(&g_gHist[((q.z >>  8u) & 0xFFu) + off], 1u);\n\t\t\tatomicAdd(&g_gHist[((q.w >>  8u) & 0xFFu) + off], 1u);\n\t\t}\n\t\tif (numPasses >= 3u) {\n\t\t\tlet off = histOffset(row, 2u);\n\t\t\tatomicAdd(&g_gHist[((q.x >> 16u) & 0xFFu) + off], 1u);\n\t\t\tatomicAdd(&g_gHist[((q.y >> 16u) & 0xFFu) + off], 1u);\n\t\t\tatomicAdd(&g_gHist[((q.z >> 16u) & 0xFFu) + off], 1u);\n\t\t\tatomicAdd(&g_gHist[((q.w >> 16u) & 0xFFu) + off], 1u);\n\t\t}\n\t\tif (numPasses >= 4u) {\n\t\t\tlet off = histOffset(row, 3u);\n\t\t\tatomicAdd(&g_gHist[((q.x >> 24u) & 0xFFu) + off], 1u);\n\t\t\tatomicAdd(&g_gHist[((q.y >> 24u) & 0xFFu) + off], 1u);\n\t\t\tatomicAdd(&g_gHist[((q.z >> 24u) & 0xFFu) + off], 1u);\n\t\t\tatomicAdd(&g_gHist[((q.w >> 24u) & 0xFFu) + off], 1u);\n\t\t}\n\t}\n\tlet tailIdx = numKeysVecFull;\n\tif ((numKeys & 3u) != 0u &&\n\t\ttailIdx >= partitionStartVec &&\n\t\ttailIdx <  partitionStartVec + G_HIST_PART_SIZE_VEC &&\n\t\t(tailIdx - partitionStartVec) % G_HIST_DIM == gtid) {\n\t\tlet q = b_sort[tailIdx];\n\t\tlet base = tailIdx << 2u;\n\t\tif (numPasses >= 1u) {\n\t\t\tlet off = histOffset(row, 0u);\n\t\t\tif (base + 0u < numKeys) { atomicAdd(&g_gHist[(q.x & 0xFFu) + off], 1u); }\n\t\t\tif (base + 1u < numKeys) { atomicAdd(&g_gHist[(q.y & 0xFFu) + off], 1u); }\n\t\t\tif (base + 2u < numKeys) { atomicAdd(&g_gHist[(q.z & 0xFFu) + off], 1u); }\n\t\t}\n\t\tif (numPasses >= 2u) {\n\t\t\tlet off = histOffset(row, 1u);\n\t\t\tif (base + 0u < numKeys) { atomicAdd(&g_gHist[((q.x >>  8u) & 0xFFu) + off], 1u); }\n\t\t\tif (base + 1u < numKeys) { atomicAdd(&g_gHist[((q.y >>  8u) & 0xFFu) + off], 1u); }\n\t\t\tif (base + 2u < numKeys) { atomicAdd(&g_gHist[((q.z >>  8u) & 0xFFu) + off], 1u); }\n\t\t}\n\t\tif (numPasses >= 3u) {\n\t\t\tlet off = histOffset(row, 2u);\n\t\t\tif (base + 0u < numKeys) { atomicAdd(&g_gHist[((q.x >> 16u) & 0xFFu) + off], 1u); }\n\t\t\tif (base + 1u < numKeys) { atomicAdd(&g_gHist[((q.y >> 16u) & 0xFFu) + off], 1u); }\n\t\t\tif (base + 2u < numKeys) { atomicAdd(&g_gHist[((q.z >> 16u) & 0xFFu) + off], 1u); }\n\t\t}\n\t\tif (numPasses >= 4u) {\n\t\t\tlet off = histOffset(row, 3u);\n\t\t\tif (base + 0u < numKeys) { atomicAdd(&g_gHist[((q.x >> 24u) & 0xFFu) + off], 1u); }\n\t\t\tif (base + 1u < numKeys) { atomicAdd(&g_gHist[((q.y >> 24u) & 0xFFu) + off], 1u); }\n\t\t\tif (base + 2u < numKeys) { atomicAdd(&g_gHist[((q.z >> 24u) & 0xFFu) + off], 1u); }\n\t\t}\n\t}\n\tworkgroupBarrier();\n\tfor (var i = gtid; i < RADIX; i = i + G_HIST_DIM) {\n\t\tfor (var p = 0u; p < numPasses; p = p + 1u) {\n\t\t\tlet row0 = atomicLoad(&g_gHist[i + histOffset(0u, p)]);\n\t\t\tlet row1 = atomicLoad(&g_gHist[i + histOffset(1u, p)]);\n\t\t\tlet total = row0 + row1;\n\t\t\tif (total != 0u) {\n\t\t\t\tatomicAdd(&b_globalHist[i + p * RADIX], total);\n\t\t\t}\n\t\t}\n\t}\n}\n`;\n\nvar onesweepScanSource = `\n@group(0) @binding(0) var<storage, read> b_globalHist: array<u32>;\n@group(0) @binding(1) var<storage, read_write> b_passHist: array<atomic<u32>>;\nstruct OneSweepScanUniforms {\n\tthreadBlocks: u32,\n\t_pad0: u32,\n\t_pad1: u32,\n\t_pad2: u32\n};\n@group(0) @binding(2) var<uniform> uniforms: OneSweepScanUniforms;\n#ifdef USE_INDIRECT_SORT\n@group(0) @binding(3) var<storage, read> b_sortElementCount: array<u32>;\n#endif\nconst RADIX: u32 = 256u;\nconst FLAG_INCLUSIVE: u32 = 2u;\nconst PART_SIZE: u32 = {PART_SIZE}u;\nconst MAX_SUBGROUPS: u32 = {MAX_SUBGROUPS}u;\nvar<workgroup> g_scan: array<u32, RADIX>;\nvar<workgroup> sg_totals: array<u32, MAX_SUBGROUPS>;\n@compute @workgroup_size(RADIX, 1, 1)\nfn main(\n\t@builtin(local_invocation_index) gtid: u32,\n\t@builtin(workgroup_id) gid: vec3<u32>,\n\t@builtin(subgroup_invocation_id) sgInvId: u32,\n\t@builtin(subgroup_size) sgSize: u32,\n) {\n\tlet pass_ = gid.x;\n\t#ifdef USE_INDIRECT_SORT\n\tlet numKeys = b_sortElementCount[0];\n\tlet threadBlocks = (numKeys + PART_SIZE - 1u) / PART_SIZE;\n\t#else\n\tlet threadBlocks = uniforms.threadBlocks;\n\t#endif\n\tlet waveIndex = gtid / sgSize;\n\tlet t = b_globalHist[gtid + pass_ * RADIX];\n\tlet sgExcl = subgroupExclusiveAdd(t);\n\tlet sgTotal = subgroupAdd(t);\n\tif (sgInvId == 0u) {\n\t\tsg_totals[waveIndex] = sgTotal;\n\t}\n\tworkgroupBarrier();\n\tif (gtid == 0u) {\n\t\tvar acc: u32 = 0u;\n\t\tfor (var i = 0u; i < MAX_SUBGROUPS; i = i + 1u) {\n\t\t\tlet v = sg_totals[i];\n\t\t\tsg_totals[i] = acc;\n\t\t\tacc = acc + v;\n\t\t}\n\t}\n\tworkgroupBarrier();\n\tlet excl = sgExcl + sg_totals[waveIndex];\n\tg_scan[gtid] = excl;\n\tlet dst = pass_ * threadBlocks * RADIX + gtid;\n\tatomicStore(&b_passHist[dst], (excl << 2u) | FLAG_INCLUSIVE);\n}\n`;\n\nvar onesweepBinningSource = `\n@group(0) @binding(0) var<storage, read> inputKeys: array<u32>;\n@group(0) @binding(1) var<storage, read_write> outputKeys: array<u32>;\n@group(0) @binding(2) var<storage, read> inputValues: array<u32>;\n@group(0) @binding(3) var<storage, read_write> outputValues: array<u32>;\n@group(0) @binding(4) var<storage, read_write> b_passHist: array<atomic<u32>>;\n@group(0) @binding(5) var<storage, read_write> b_index: array<atomic<u32>>;\nstruct OneSweepBinningUniforms {\n\tnumKeys: u32,\n\tthreadBlocks: u32,\n\tpass_: u32,\n\tflags: u32\n};\n@group(0) @binding(6) var<uniform> uniforms: OneSweepBinningUniforms;\n#ifdef USE_INDIRECT_SORT\n@group(0) @binding(7) var<storage, read> b_sortElementCount: array<u32>;\n#endif\nconst RADIX: u32 = 256u;\nconst RADIX_MASK: u32 = 255u;\nconst RADIX_LOG: u32 = 8u;\nconst D_DIM: u32 = {D_DIM}u;\nconst KEYS_PER_THREAD: u32 = {KEYS_PER_THREAD}u;\nconst PART_SIZE: u32 = D_DIM * KEYS_PER_THREAD;\nconst MAX_SUBGROUPS: u32 = {MAX_SUBGROUPS}u;\nconst WAVE_HISTS_SIZE: u32 = MAX_SUBGROUPS * RADIX;\nconst G_D_SIZE: u32 = max(PART_SIZE, WAVE_HISTS_SIZE);\nconst FLAG_NOT_READY: u32 = 0u;\nconst FLAG_REDUCTION: u32 = 1u;\nconst FLAG_INCLUSIVE: u32 = 2u;\nconst FLAG_MASK: u32 = 3u;\nvar<workgroup> g_d: array<atomic<u32>, G_D_SIZE>;\nvar<workgroup> digit_base: array<u32, RADIX>;\nvar<workgroup> sg_totals: array<u32, MAX_SUBGROUPS>;\nvar<workgroup> wg_partIndex: u32;\nfn passHistOffset(tb: u32, pass_: u32, partitionIdx: u32) -> u32 {\n\treturn pass_ * tb * RADIX + partitionIdx * RADIX;\n}\n@compute @workgroup_size(D_DIM, 1, 1)\nfn main(\n\t@builtin(local_invocation_index) TID: u32,\n\t@builtin(subgroup_invocation_id) sgInvId: u32,\n\t@builtin(subgroup_size) sgSize: u32,\n) {\n\tlet waveIndex = TID / sgSize;\n\tlet ltMask = (1u << sgInvId) - 1u;\n\tlet activeMask = select(0xFFFFFFFFu, (1u << sgSize) - 1u, sgSize < 32u);\n\tlet pass_ = uniforms.pass_;\n\tlet currentBit = pass_ << 3u;\n\t#ifdef USE_INDIRECT_SORT\n\tlet numKeys = b_sortElementCount[0];\n\tlet threadBlocks = (numKeys + PART_SIZE - 1u) / PART_SIZE;\n\t#else\n\tlet numKeys = uniforms.numKeys;\n\tlet threadBlocks = uniforms.threadBlocks;\n\t#endif\n\tlet isFirstPass = (uniforms.flags & 1u) != 0u;\n\tlet isLastPass = (uniforms.flags & 2u) != 0u;\n\tif (TID == 0u) {\n\t\twg_partIndex = atomicAdd(&b_index[pass_], 1u);\n\t}\n\tlet partitionIndex = workgroupUniformLoad(&wg_partIndex);\n\tfor (var i = TID; i < WAVE_HISTS_SIZE; i = i + D_DIM) {\n\t\tatomicStore(&g_d[i], 0u);\n\t}\n\tworkgroupBarrier();\n\tlet tileStart = partitionIndex * PART_SIZE;\n\tlet validInBlock = select(\n\t\t0u,\n\t\tmin(PART_SIZE, numKeys - tileStart),\n\t\ttileStart < numKeys\n\t);\n\tlet subPartSize = sgSize * KEYS_PER_THREAD;\n\tlet waveBase = tileStart + waveIndex * subPartSize;\n\tvar keys: array<u32, {KEYS_PER_THREAD}>;\n\tvar values: array<u32, {KEYS_PER_THREAD}>;\n\tvar validMask: u32 = 0u;\n\tfor (var i = 0u; i < KEYS_PER_THREAD; i = i + 1u) {\n\t\tlet gid = waveBase + sgInvId + i * sgSize;\n\t\tlet is_valid = gid < numKeys;\n\t\tkeys[i] = select(0xFFFFFFFFu, inputKeys[gid], is_valid);\n\t\tvalues[i] = select(\n\t\t\tselect(0u, inputValues[gid], is_valid),\n\t\t\tgid,\n\t\t\tisFirstPass\n\t\t);\n\t\tif (is_valid) {\n\t\t\tvalidMask = validMask | (1u << i);\n\t\t}\n\t}\n\tvar offsets: array<u32, {KEYS_PER_THREAD}>;\n\tfor (var i = 0u; i < KEYS_PER_THREAD; i = i + 1u) {\n\t\tlet k = keys[i];\n\t\tlet isValid = ((validMask >> i) & 1u) == 1u;\n\t\tlet digit = (k >> currentBit) & RADIX_MASK;\n\t\tvar waveFlag: u32 = activeMask;\n\t\tfor (var b = 0u; b < 8u; b = b + 1u) {\n\t\t\tlet t = ((digit >> b) & 1u) == 1u;\n\t\t\tlet ballot = subgroupBallot(t).x;\n\t\t\twaveFlag = waveFlag & select(~ballot, ballot, t);\n\t\t}\n\t\tlet validBallot = subgroupBallot(isValid).x;\n\t\twaveFlag = waveFlag & validBallot;\n\t\tlet peerBits = countOneBits(waveFlag & ltMask);\n\t\tlet totalBits = countOneBits(waveFlag);\n\t\tlet lowestRankPeer = firstTrailingBit(waveFlag);\n\t\tvar preIncrementVal: u32 = 0u;\n\t\tif (isValid && peerBits == 0u) {\n\t\t\tpreIncrementVal = atomicAdd(&g_d[waveIndex * RADIX + digit], totalBits);\n\t\t}\n\t\toffsets[i] = subgroupShuffle(preIncrementVal, lowestRankPeer) + peerBits;\n\t\tworkgroupBarrier();\n\t}\n\tvar myHistRed: u32 = 0u;\n\t{\n\t\tvar histReduction = atomicLoad(&g_d[TID]);\n\t\tfor (var w = 1u; w < MAX_SUBGROUPS; w = w + 1u) {\n\t\t\tlet idx = TID + w * RADIX;\n\t\t\tlet cnt = atomicLoad(&g_d[idx]);\n\t\t\thistReduction = histReduction + cnt;\n\t\t\tatomicStore(&g_d[idx], histReduction - cnt);\n\t\t}\n\t\tmyHistRed = histReduction;\n\t}\n\tif (partitionIndex + 1u < threadBlocks) {\n\t\tlet dst = passHistOffset(threadBlocks, pass_, partitionIndex + 1u) + TID;\n\t\tatomicAdd(&b_passHist[dst], FLAG_REDUCTION | (myHistRed << 2u));\n\t}\n\tlet warpExcl = subgroupExclusiveAdd(myHistRed);\n\tlet warpTotal = subgroupAdd(myHistRed);\n\tif (sgInvId == 0u) {\n\t\tsg_totals[waveIndex] = warpTotal;\n\t}\n\tworkgroupBarrier();\n\tif (TID == 0u) {\n\t\tvar acc: u32 = 0u;\n\t\tfor (var w = 0u; w < MAX_SUBGROUPS; w = w + 1u) {\n\t\t\tlet t = sg_totals[w];\n\t\t\tsg_totals[w] = acc;\n\t\t\tacc = acc + t;\n\t\t}\n\t}\n\tworkgroupBarrier();\n\tlet myDigitBase = warpExcl + sg_totals[waveIndex];\n\tvar scatterPos: array<u32, {KEYS_PER_THREAD}>;\n\tfor (var i = 0u; i < KEYS_PER_THREAD; i = i + 1u) {\n\t\tlet k = keys[i];\n\t\tlet digit = (k >> currentBit) & RADIX_MASK;\n\t\tlet warpBase = select(0u, atomicLoad(&g_d[waveIndex * RADIX + digit]), waveIndex > 0u);\n\t\tscatterPos[i] = offsets[i] + warpBase;\n\t}\n\tdigit_base[TID] = myDigitBase;\n\tworkgroupBarrier();\n\tfor (var i = 0u; i < KEYS_PER_THREAD; i = i + 1u) {\n\t\tlet k = keys[i];\n\t\tlet digit = (k >> currentBit) & RADIX_MASK;\n\t\tscatterPos[i] = scatterPos[i] + digit_base[digit];\n\t}\n\tworkgroupBarrier();\n\tif (TID < RADIX) {\n\t\tvar lookbackReduction: u32 = 0u;\n\t\tvar k: u32 = partitionIndex;\n\t\tvar done: bool = false;\n\t\tloop {\n\t\t\tif (done) { break; }\n\t\t\tlet flagPayload = atomicLoad(&b_passHist[passHistOffset(threadBlocks, pass_, k) + TID]);\n\t\t\tlet flag = flagPayload & FLAG_MASK;\n\t\t\tif (flag == FLAG_INCLUSIVE) {\n\t\t\t\tlookbackReduction = lookbackReduction + (flagPayload >> 2u);\n\t\t\t\tif (partitionIndex + 1u < threadBlocks) {\n\t\t\t\t\tlet dst = passHistOffset(threadBlocks, pass_, partitionIndex + 1u) + TID;\n\t\t\t\t\tatomicAdd(&b_passHist[dst], 1u | (lookbackReduction << 2u));\n\t\t\t\t}\n\t\t\t\tdigit_base[TID] = lookbackReduction - myDigitBase;\n\t\t\t\tdone = true;\n\t\t\t} else if (flag == FLAG_REDUCTION) {\n\t\t\t\tlookbackReduction = lookbackReduction + (flagPayload >> 2u);\n\t\t\t\tif (k == 0u) { done = true; }\n\t\t\t\telse { k = k - 1u; }\n\t\t\t}\n\t\t}\n\t}\n\tfor (var i = 0u; i < KEYS_PER_THREAD; i = i + 1u) {\n\t\tif (((validMask >> i) & 1u) == 1u) {\n\t\t\tatomicStore(&g_d[scatterPos[i]], keys[i]);\n\t\t}\n\t}\n\tworkgroupBarrier();\n\tvar linearDigits: array<u32, {KEYS_PER_THREAD}>;\n\tfor (var r = 0u; r < KEYS_PER_THREAD; r = r + 1u) {\n\t\tlet linearIdx = TID + r * D_DIM;\n\t\tif (linearIdx < validInBlock) {\n\t\t\tlet k = atomicLoad(&g_d[linearIdx]);\n\t\t\tlet digit = (k >> currentBit) & RADIX_MASK;\n\t\t\tlinearDigits[r] = digit;\n\t\t\tlet globalPos = digit_base[digit] + linearIdx;\n\t\t\tif (!isLastPass) {\n\t\t\t\toutputKeys[globalPos] = k;\n\t\t\t}\n\t\t}\n\t}\n\tworkgroupBarrier();\n\tfor (var i = 0u; i < KEYS_PER_THREAD; i = i + 1u) {\n\t\tif (((validMask >> i) & 1u) == 1u) {\n\t\t\tatomicStore(&g_d[scatterPos[i]], values[i]);\n\t\t}\n\t}\n\tworkgroupBarrier();\n\tfor (var r = 0u; r < KEYS_PER_THREAD; r = r + 1u) {\n\t\tlet linearIdx = TID + r * D_DIM;\n\t\tif (linearIdx < validInBlock) {\n\t\t\tlet v = atomicLoad(&g_d[linearIdx]);\n\t\t\tlet digit = linearDigits[r];\n\t\t\tlet globalPos = digit_base[digit] + linearIdx;\n\t\t\toutputValues[globalPos] = v;\n\t\t}\n\t}\n}\n`;\n\nvar D_DIM = 256;\nvar KEYS_PER_THREAD = 15;\nvar PART_SIZE = D_DIM * KEYS_PER_THREAD;\nvar G_HIST_DIM = 128;\nvar G_HIST_PART_SIZE = 32768;\nvar RADIX = 256;\nvar MAX_PASSES = 4;\nvar ComputeRadixSortOneSweep = class extends ComputeRadixSortBase {\n\t_threadBlocks = 0;\n\t_allocatedThreadBlocks = 0;\n\t_globalHist = null;\n\t_passHist = null;\n\t_index = null;\n\t_binningDispatchSize = new Vec2(1, 1);\n\t_globalHistDispatchSize = new Vec2(1, 1);\n\t_globalHistBindGroupFormat = null;\n\t_scanBindGroupFormat = null;\n\t_binningBindGroupFormat = null;\n\t_globalHistUniformFormat = null;\n\t_scanUniformFormat = null;\n\t_binningUniformFormat = null;\n\t_globalHistShader = null;\n\t_scanShader = null;\n\t_binningShader = null;\n\t_globalHistCompute = null;\n\t_scanCompute = null;\n\t_binningComputes = [];\n\tconstructor(device, indirect = false) {\n\t\tsuper(device, indirect);\n\t\tconst info = this._indirectInfo;\n\t\tinfo[0] = 2;\n\t\tinfo[1] = PART_SIZE;\n\t\tinfo[2] = G_HIST_PART_SIZE;\n\t\tthis._globalHistUniformFormat = new UniformBufferFormat(device, [\n\t\t\tnew UniformFormat(\"numKeys\", UNIFORMTYPE_UINT),\n\t\t\tnew UniformFormat(\"threadBlocks\", UNIFORMTYPE_UINT),\n\t\t\tnew UniformFormat(\"numPasses\", UNIFORMTYPE_UINT),\n\t\t\tnew UniformFormat(\"_pad\", UNIFORMTYPE_UINT)\n\t\t]);\n\t\tthis._scanUniformFormat = new UniformBufferFormat(device, [\n\t\t\tnew UniformFormat(\"threadBlocks\", UNIFORMTYPE_UINT),\n\t\t\tnew UniformFormat(\"_pad0\", UNIFORMTYPE_UINT),\n\t\t\tnew UniformFormat(\"_pad1\", UNIFORMTYPE_UINT),\n\t\t\tnew UniformFormat(\"_pad2\", UNIFORMTYPE_UINT)\n\t\t]);\n\t\tthis._binningUniformFormat = new UniformBufferFormat(device, [\n\t\t\tnew UniformFormat(\"numKeys\", UNIFORMTYPE_UINT),\n\t\t\tnew UniformFormat(\"threadBlocks\", UNIFORMTYPE_UINT),\n\t\t\tnew UniformFormat(\"pass_\", UNIFORMTYPE_UINT),\n\t\t\tnew UniformFormat(\"flags\", UNIFORMTYPE_UINT)\n\t\t]);\n\t\tconst minSubgroupSize = device.minSubgroupSize || device.maxSubgroupSize || 32;\n\t\tconst maxSubgroups = Math.max(1, Math.ceil(256 / minSubgroupSize));\n\t\tconst suffix = indirect ? \"Indirect\" : \"\";\n\t\tconst histGroupEntries = [\n\t\t\tnew BindStorageBufferFormat(\"b_sort\", SHADERSTAGE_COMPUTE, true),\n\t\t\tnew BindStorageBufferFormat(\"b_globalHist\", SHADERSTAGE_COMPUTE, false),\n\t\t\tnew BindUniformBufferFormat(\"uniforms\", SHADERSTAGE_COMPUTE)\n\t\t];\n\t\tconst scanGroupEntries = [\n\t\t\tnew BindStorageBufferFormat(\"b_globalHist\", SHADERSTAGE_COMPUTE, true),\n\t\t\tnew BindStorageBufferFormat(\"b_passHist\", SHADERSTAGE_COMPUTE, false),\n\t\t\tnew BindUniformBufferFormat(\"uniforms\", SHADERSTAGE_COMPUTE)\n\t\t];\n\t\tconst binGroupEntries = [\n\t\t\tnew BindStorageBufferFormat(\"inputKeys\", SHADERSTAGE_COMPUTE, true),\n\t\t\tnew BindStorageBufferFormat(\"outputKeys\", SHADERSTAGE_COMPUTE, false),\n\t\t\tnew BindStorageBufferFormat(\"inputValues\", SHADERSTAGE_COMPUTE, true),\n\t\t\tnew BindStorageBufferFormat(\"outputValues\", SHADERSTAGE_COMPUTE, false),\n\t\t\tnew BindStorageBufferFormat(\"b_passHist\", SHADERSTAGE_COMPUTE, false),\n\t\t\tnew BindStorageBufferFormat(\"b_index\", SHADERSTAGE_COMPUTE, false),\n\t\t\tnew BindUniformBufferFormat(\"uniforms\", SHADERSTAGE_COMPUTE)\n\t\t];\n\t\tif (indirect) {\n\t\t\thistGroupEntries.push(new BindStorageBufferFormat(\"b_sortElementCount\", SHADERSTAGE_COMPUTE, true));\n\t\t\tscanGroupEntries.push(new BindStorageBufferFormat(\"b_sortElementCount\", SHADERSTAGE_COMPUTE, true));\n\t\t\tbinGroupEntries.push(new BindStorageBufferFormat(\"b_sortElementCount\", SHADERSTAGE_COMPUTE, true));\n\t\t}\n\t\tthis._globalHistBindGroupFormat = new BindGroupFormat(device, histGroupEntries);\n\t\tthis._scanBindGroupFormat = new BindGroupFormat(device, scanGroupEntries);\n\t\tthis._binningBindGroupFormat = new BindGroupFormat(device, binGroupEntries);\n\t\tconst histDefines = /* @__PURE__ */ new Map();\n\t\thistDefines.set(\"{G_HIST_DIM}\", G_HIST_DIM);\n\t\thistDefines.set(\"{G_HIST_PART_SIZE}\", G_HIST_PART_SIZE);\n\t\tif (indirect) histDefines.set(\"USE_INDIRECT_SORT\", \"\");\n\t\tthis._globalHistShader = new Shader(device, {\n\t\t\tname: `OneSweepGlobalHist${suffix}`,\n\t\t\tshaderLanguage: SHADERLANGUAGE_WGSL,\n\t\t\tcshader: onesweepGlobalHistSource,\n\t\t\tcdefines: histDefines,\n\t\t\tcomputeBindGroupFormat: this._globalHistBindGroupFormat,\n\t\t\tcomputeUniformBufferFormats: { uniforms: this._globalHistUniformFormat }\n\t\t});\n\t\tconst scanDefines = /* @__PURE__ */ new Map();\n\t\tscanDefines.set(\"{MAX_SUBGROUPS}\", maxSubgroups);\n\t\tscanDefines.set(\"{PART_SIZE}\", PART_SIZE);\n\t\tif (indirect) scanDefines.set(\"USE_INDIRECT_SORT\", \"\");\n\t\tthis._scanShader = new Shader(device, {\n\t\t\tname: `OneSweepScan${suffix}`,\n\t\t\tshaderLanguage: SHADERLANGUAGE_WGSL,\n\t\t\tcshader: onesweepScanSource,\n\t\t\tcdefines: scanDefines,\n\t\t\tcomputeBindGroupFormat: this._scanBindGroupFormat,\n\t\t\tcomputeUniformBufferFormats: { uniforms: this._scanUniformFormat }\n\t\t});\n\t\tconst binDefines = /* @__PURE__ */ new Map();\n\t\tbinDefines.set(\"{D_DIM}\", D_DIM);\n\t\tbinDefines.set(\"{KEYS_PER_THREAD}\", KEYS_PER_THREAD);\n\t\tbinDefines.set(\"{MAX_SUBGROUPS}\", maxSubgroups);\n\t\tif (indirect) binDefines.set(\"USE_INDIRECT_SORT\", \"\");\n\t\tthis._binningShader = new Shader(device, {\n\t\t\tname: `OneSweepBinning${suffix}`,\n\t\t\tshaderLanguage: SHADERLANGUAGE_WGSL,\n\t\t\tcshader: onesweepBinningSource,\n\t\t\tcdefines: binDefines,\n\t\t\tcomputeBindGroupFormat: this._binningBindGroupFormat,\n\t\t\tcomputeUniformBufferFormats: { uniforms: this._binningUniformFormat }\n\t\t});\n\t\tthis._globalHistCompute = new Compute(device, this._globalHistShader, this._globalHistShader.name);\n\t\tthis._scanCompute = new Compute(device, this._scanShader, this._scanShader.name);\n\t}\n\tdestroy() {\n\t\tthis._destroyBuffers();\n\t\tthis._globalHistShader?.destroy();\n\t\tthis._scanShader?.destroy();\n\t\tthis._binningShader?.destroy();\n\t\tthis._globalHistBindGroupFormat?.destroy();\n\t\tthis._scanBindGroupFormat?.destroy();\n\t\tthis._binningBindGroupFormat?.destroy();\n\t\tthis._globalHistShader = null;\n\t\tthis._scanShader = null;\n\t\tthis._binningShader = null;\n\t\tthis._globalHistCompute = null;\n\t\tthis._scanCompute = null;\n\t\tthis._binningComputes.length = 0;\n\t\tthis._globalHistBindGroupFormat = null;\n\t\tthis._scanBindGroupFormat = null;\n\t\tthis._binningBindGroupFormat = null;\n\t\tthis._globalHistUniformFormat = null;\n\t\tthis._scanUniformFormat = null;\n\t\tthis._binningUniformFormat = null;\n\t\tsuper.destroy();\n\t}\n\t_destroyBuffers() {\n\t\tthis._destroyPingPongBuffers();\n\t\tthis._globalHist?.destroy();\n\t\tthis._passHist?.destroy();\n\t\tthis._index?.destroy();\n\t\tthis._globalHist = null;\n\t\tthis._passHist = null;\n\t\tthis._index = null;\n\t\tthis._allocatedThreadBlocks = 0;\n\t\tthis._threadBlocks = 0;\n\t}\n\tget radixBits() {\n\t\treturn 8;\n\t}\n\t_ensureBinningComputes(numPasses) {\n\t\twhile (this._binningComputes.length < numPasses) {\n\t\t\tthis._binningComputes.push(new Compute(this.device, this._binningShader, `OneSweepBinning-${this._binningComputes.length}`));\n\t\t}\n\t}\n\t_allocateBuffers(elementCount, forceRealloc = false) {\n\t\tconst effectiveCount = Math.max(elementCount, this.capacity);\n\t\tconst allocThreadBlocks = Math.max(1, Math.ceil(effectiveCount / PART_SIZE));\n\t\tconst currentThreadBlocks = Math.max(1, Math.ceil(elementCount / PART_SIZE));\n\t\tconst needRealloc = forceRealloc || allocThreadBlocks !== this._allocatedThreadBlocks || !this._keys0;\n\t\tif (needRealloc) {\n\t\t\tthis._destroyBuffers();\n\t\t\tthis._allocatedThreadBlocks = allocThreadBlocks;\n\t\t\tthis.capacity = effectiveCount;\n\t\t\tconst device = this.device;\n\t\t\tthis._allocatePingPongElementBuffers(effectiveCount);\n\t\t\tthis._globalHist = new StorageBuffer(device, MAX_PASSES * RADIX * 4, BUFFERUSAGE_COPY_DST);\n\t\t\tthis._passHist = new StorageBuffer(device, MAX_PASSES * allocThreadBlocks * RADIX * 4, BUFFERUSAGE_COPY_DST);\n\t\t\tthis._index = new StorageBuffer(device, MAX_PASSES * 4, BUFFERUSAGE_COPY_DST);\n\t\t}\n\t\tthis._threadBlocks = currentThreadBlocks;\n\t\tconst maxPerDim = this.device.limits.maxComputeWorkgroupsPerDimension || 65535;\n\t\tCompute.calcDispatchSize(currentThreadBlocks, this._binningDispatchSize, maxPerDim);\n\t\tconst histBlocks = Math.max(1, Math.ceil(elementCount / G_HIST_PART_SIZE));\n\t\tCompute.calcDispatchSize(histBlocks, this._globalHistDispatchSize, maxPerDim);\n\t}\n\tsort(keysBuffer, elementCount, numBits = 16, initialValues, skipLastPassKeyWrite = false, destructiveKeys = false) {\n\t\tconst numPasses = numBits / 8;\n\t\tconst hasInitialValues = !!initialValues;\n\t\tthis._elementCount = elementCount;\n\t\tthis._numBits = numBits;\n\t\tthis._hasInitialValues = hasInitialValues;\n\t\tthis._skipLastPassKeyWrite = skipLastPassKeyWrite;\n\t\tconst prevDestructiveKeys = this._destructiveKeys;\n\t\tthis._destructiveKeys = destructiveKeys;\n\t\tthis._allocateBuffers(elementCount, destructiveKeys !== prevDestructiveKeys);\n\t\tthis._ensureBinningComputes(numPasses);\n\t\tif (destructiveKeys) {\n\t\t\tthis._keys1 = keysBuffer;\n\t\t}\n\t\tconst device = this.device;\n\t\tthis._globalHist.clear();\n\t\tthis._passHist.clear(0, MAX_PASSES * this._threadBlocks * RADIX * 4);\n\t\tthis._index.clear();\n\t\tconst histCompute = this._globalHistCompute;\n\t\thistCompute.setParameter(\"b_sort\", keysBuffer);\n\t\thistCompute.setParameter(\"b_globalHist\", this._globalHist);\n\t\thistCompute.setParameter(\"numKeys\", elementCount);\n\t\thistCompute.setParameter(\"threadBlocks\", this._threadBlocks);\n\t\thistCompute.setParameter(\"numPasses\", numPasses);\n\t\thistCompute.setParameter(\"_pad\", 0);\n\t\thistCompute.setupDispatch(this._globalHistDispatchSize.x, this._globalHistDispatchSize.y, 1);\n\t\tdevice.computeDispatch([histCompute], \"OneSweep-GlobalHist\");\n\t\tconst scanCompute = this._scanCompute;\n\t\tscanCompute.setParameter(\"b_globalHist\", this._globalHist);\n\t\tscanCompute.setParameter(\"b_passHist\", this._passHist);\n\t\tscanCompute.setParameter(\"threadBlocks\", this._threadBlocks);\n\t\tscanCompute.setParameter(\"_pad0\", 0);\n\t\tscanCompute.setParameter(\"_pad1\", 0);\n\t\tscanCompute.setParameter(\"_pad2\", 0);\n\t\tscanCompute.setupDispatch(numPasses, 1, 1);\n\t\tdevice.computeDispatch([scanCompute], \"OneSweep-Scan\");\n\t\tlet currentKeys = keysBuffer;\n\t\tlet currentValues = initialValues ?? this._values0;\n\t\tlet nextKeys = this._keys0;\n\t\tlet nextValues = this._values1;\n\t\tfor (let pass = 0; pass < numPasses; pass++) {\n\t\t\tconst isFirstPass = pass === 0 && !hasInitialValues;\n\t\t\tconst isLastPass = pass === numPasses - 1;\n\t\t\tconst flags = (isFirstPass ? 1 : 0) | (isLastPass && skipLastPassKeyWrite ? 2 : 0);\n\t\t\tconst binCompute = this._binningComputes[pass];\n\t\t\tbinCompute.setParameter(\"inputKeys\", currentKeys);\n\t\t\tbinCompute.setParameter(\"outputKeys\", nextKeys);\n\t\t\tbinCompute.setParameter(\"inputValues\", currentValues);\n\t\t\tbinCompute.setParameter(\"outputValues\", nextValues);\n\t\t\tbinCompute.setParameter(\"b_passHist\", this._passHist);\n\t\t\tbinCompute.setParameter(\"b_index\", this._index);\n\t\t\tbinCompute.setParameter(\"numKeys\", elementCount);\n\t\t\tbinCompute.setParameter(\"threadBlocks\", this._threadBlocks);\n\t\t\tbinCompute.setParameter(\"pass_\", pass);\n\t\t\tbinCompute.setParameter(\"flags\", flags);\n\t\t\tbinCompute.setupDispatch(this._binningDispatchSize.x, this._binningDispatchSize.y, 1);\n\t\t\tdevice.computeDispatch([binCompute], `OneSweep-Binning-${pass}`);\n\t\t\tif (!isLastPass) {\n\t\t\t\tcurrentKeys = nextKeys;\n\t\t\t\tnextKeys = currentKeys === this._keys0 ? this._keys1 : this._keys0;\n\t\t\t\tcurrentValues = nextValues;\n\t\t\t\tnextValues = currentValues === this._values0 ? this._values1 : this._values0;\n\t\t\t}\n\t\t}\n\t\treturn this.sortedIndices;\n\t}\n\tsortIndirect(keysBuffer, maxElementCount, numBits, sortSlotBase, sortElementCountBuffer, initialValues, skipLastPassKeyWrite = false, destructiveKeys = false) {\n\t\tconst numPasses = numBits / 8;\n\t\tconst hasInitialValues = !!initialValues;\n\t\tthis._elementCount = maxElementCount;\n\t\tthis._numBits = numBits;\n\t\tthis._hasInitialValues = hasInitialValues;\n\t\tthis._skipLastPassKeyWrite = skipLastPassKeyWrite;\n\t\tconst prevDestructiveKeys = this._destructiveKeys;\n\t\tthis._destructiveKeys = destructiveKeys;\n\t\tthis._allocateBuffers(maxElementCount, destructiveKeys !== prevDestructiveKeys);\n\t\tthis._ensureBinningComputes(numPasses);\n\t\tif (destructiveKeys) {\n\t\t\tthis._keys1 = keysBuffer;\n\t\t}\n\t\tconst device = this.device;\n\t\tthis._globalHist.clear();\n\t\tthis._passHist.clear(0, MAX_PASSES * this._allocatedThreadBlocks * RADIX * 4);\n\t\tthis._index.clear();\n\t\tconst histCompute = this._globalHistCompute;\n\t\thistCompute.setParameter(\"b_sort\", keysBuffer);\n\t\thistCompute.setParameter(\"b_globalHist\", this._globalHist);\n\t\thistCompute.setParameter(\"b_sortElementCount\", sortElementCountBuffer);\n\t\thistCompute.setParameter(\"numKeys\", 0);\n\t\thistCompute.setParameter(\"threadBlocks\", 0);\n\t\thistCompute.setParameter(\"numPasses\", numPasses);\n\t\thistCompute.setParameter(\"_pad\", 0);\n\t\thistCompute.setupIndirectDispatch(sortSlotBase + 1);\n\t\tdevice.computeDispatch([histCompute], \"OneSweep-GlobalHistIndirect\");\n\t\tconst scanCompute = this._scanCompute;\n\t\tscanCompute.setParameter(\"b_globalHist\", this._globalHist);\n\t\tscanCompute.setParameter(\"b_passHist\", this._passHist);\n\t\tscanCompute.setParameter(\"b_sortElementCount\", sortElementCountBuffer);\n\t\tscanCompute.setParameter(\"threadBlocks\", 0);\n\t\tscanCompute.setParameter(\"_pad0\", 0);\n\t\tscanCompute.setParameter(\"_pad1\", 0);\n\t\tscanCompute.setParameter(\"_pad2\", 0);\n\t\tscanCompute.setupDispatch(numPasses, 1, 1);\n\t\tdevice.computeDispatch([scanCompute], \"OneSweep-ScanIndirect\");\n\t\tlet currentKeys = keysBuffer;\n\t\tlet currentValues = initialValues ?? this._values0;\n\t\tlet nextKeys = this._keys0;\n\t\tlet nextValues = this._values1;\n\t\tfor (let pass = 0; pass < numPasses; pass++) {\n\t\t\tconst isFirstPass = pass === 0 && !hasInitialValues;\n\t\t\tconst isLastPass = pass === numPasses - 1;\n\t\t\tconst flags = (isFirstPass ? 1 : 0) | (isLastPass && skipLastPassKeyWrite ? 2 : 0);\n\t\t\tconst binCompute = this._binningComputes[pass];\n\t\t\tbinCompute.setParameter(\"inputKeys\", currentKeys);\n\t\t\tbinCompute.setParameter(\"outputKeys\", nextKeys);\n\t\t\tbinCompute.setParameter(\"inputValues\", currentValues);\n\t\t\tbinCompute.setParameter(\"outputValues\", nextValues);\n\t\t\tbinCompute.setParameter(\"b_passHist\", this._passHist);\n\t\t\tbinCompute.setParameter(\"b_index\", this._index);\n\t\t\tbinCompute.setParameter(\"b_sortElementCount\", sortElementCountBuffer);\n\t\t\tbinCompute.setParameter(\"numKeys\", 0);\n\t\t\tbinCompute.setParameter(\"threadBlocks\", 0);\n\t\t\tbinCompute.setParameter(\"pass_\", pass);\n\t\t\tbinCompute.setParameter(\"flags\", flags);\n\t\t\tbinCompute.setupIndirectDispatch(sortSlotBase);\n\t\t\tdevice.computeDispatch([binCompute], `OneSweep-BinningIndirect-${pass}`);\n\t\t\tif (!isLastPass) {\n\t\t\t\tcurrentKeys = nextKeys;\n\t\t\t\tnextKeys = currentKeys === this._keys0 ? this._keys1 : this._keys0;\n\t\t\t\tcurrentValues = nextValues;\n\t\t\t\tnextValues = currentValues === this._values0 ? this._values1 : this._values0;\n\t\t\t}\n\t\t}\n\t\treturn this.sortedIndices;\n\t}\n};\n\nvar ComputeRadixSort = class {\n\t_impl;\n\tconstructor(device, options2 = {}) {\n\t\tconst kind = options2.kind ?? RADIX_SORT_AUTO;\n\t\tconst indirect = options2.indirect ?? false;\n\t\tlet chosen = kind;\n\t\tif (kind === RADIX_SORT_AUTO) {\n\t\t\tchosen = this._canUseOneSweep(device) ? RADIX_SORT_ONESWEEP : RADIX_SORT_PORTABLE;\n\t\t}\n\t\tif (chosen === RADIX_SORT_ONESWEEP) {\n\t\t\tif (!this._canUseOneSweep(device)) {\n\t\t\t}\n\t\t\tthis._impl = new ComputeRadixSortOneSweep(device, indirect);\n\t\t} else {\n\t\t\tthis._impl = new ComputeRadixSortMultipass(device, indirect);\n\t\t}\n\t}\n\t_canUseOneSweep(device) {\n\t\tif (!device.supportsCompute || !device.supportsSubgroups) return false;\n\t\tconst vendor = device.gpuAdapter?.info?.vendor?.toLowerCase?.();\n\t\tif (vendor !== \"nvidia\") return false;\n\t\tif (device.minSubgroupSize > 32) return false;\n\t\treturn true;\n\t}\n\tget sortedIndices() {\n\t\treturn this._impl.sortedIndices;\n\t}\n\tget sortedKeys() {\n\t\treturn this._impl.sortedKeys;\n\t}\n\tget radixBits() {\n\t\treturn this._impl.radixBits;\n\t}\n\tset capacity(value) {\n\t\tthis._impl.capacity = value;\n\t}\n\tget capacity() {\n\t\treturn this._impl.capacity;\n\t}\n\tsort(keysBuffer, elementCount, numBits = 16, initialValues, skipLastPassKeyWrite, destructiveKeys = false) {\n\t\treturn this._impl.sort(keysBuffer, elementCount, numBits, initialValues, skipLastPassKeyWrite, destructiveKeys);\n\t}\n\tsortIndirect(keysBuffer, maxElementCount, numBits, sortSlotBase, sortElementCountBuffer, initialValues, skipLastPassKeyWrite, destructiveKeys = false) {\n\t\treturn this._impl.sortIndirect(keysBuffer, maxElementCount, numBits, sortSlotBase, sortElementCountBuffer, initialValues, skipLastPassKeyWrite, destructiveKeys);\n\t}\n\tprepareIndirect() {\n\t\treturn this._impl.prepareIndirect();\n\t}\n\tdestroy() {\n\t\tthis._impl.destroy();\n\t}\n};\n\nvar _viewport3 = new Vec4();\nvar PostEffect = class {\n\tconstructor(graphicsDevice) {\n\t\tthis.device = graphicsDevice;\n\t\tthis.needsDepthBuffer = false;\n\t}\n\tstatic quadVertexShader = `\n\t\t\t\tattribute vec2 aPosition;\n\t\t\t\tvarying vec2 vUv0;\n\t\t\t\tvoid main(void)\n\t\t\t\t{\n\t\t\t\t\t\tgl_Position = vec4(aPosition, 0.0, 1.0);\n\t\t\t\t\t\tvUv0 = getImageEffectUV((aPosition.xy + 1.0) * 0.5);\n\t\t\t\t}\n\t\t`;\n\trender(inputTarget, outputTarget, rect) {\n\t}\n\tdrawQuad(target2, shader, rect) {\n\t\tlet viewport;\n\t\tif (rect) {\n\t\t\tconst w = target2 ? target2.width : this.device.width;\n\t\t\tconst h2 = target2 ? target2.height : this.device.height;\n\t\t\tviewport = _viewport3.set(rect.x * w, rect.y * h2, rect.z * w, rect.w * h2);\n\t\t}\n\t\tthis.device.setBlendState(BlendState.NOBLEND);\n\t\tdrawQuadWithShader(this.device, target2, shader, viewport);\n\t}\n};\n\nvar RenderPassShaderQuad = class extends RenderPass {\n\t_shader = null;\n\tquadRender = null;\n\tcullMode = CULLFACE_NONE;\n\tfrontFace = FRONTFACE_CCW;\n\tblendState = BlendState.NOBLEND;\n\tdepthState = DepthState.NODEPTH;\n\tstencilFront = null;\n\tstencilBack = null;\n\tviewport;\n\tscissor;\n\tset shader(shader) {\n\t\tthis.quadRender?.destroy();\n\t\tthis.quadRender = null;\n\t\tthis._shader = shader;\n\t\tif (shader) {\n\t\t\tthis.quadRender = new QuadRender(shader);\n\t\t}\n\t}\n\tget shader() {\n\t\treturn this._shader;\n\t}\n\texecute() {\n\t\tthis.device.setDrawStates(this.blendState, this.depthState, this.cullMode, this.frontFace, this.stencilFront, this.stencilBack);\n\t\tthis.quadRender?.render(this.viewport, this.scissor);\n\t}\n};\n\nvar LitMaterialOptions = class {\n\t// array of booleans indicating which UV channels are used by the material\n\tusedUvs;\n\t// custom GLSL shader chunk to be added to the shader\n\tshaderChunkGLSL;\n\t// custom WGSL shader chunk to be added to the shader\n\tshaderChunkWGSL;\n\t// lit options\n\tlitOptions = new LitShaderOptions();\n};\n\nvar dummyUvs = [0, 1, 2, 3, 4, 5, 6, 7];\nvar ShaderGeneratorLit = class extends ShaderGenerator {\n\tgenerateKey(options2) {\n\t\tconst definesHash = ShaderGenerator.definesHash(options2.defines);\n\t\tconst glslHash = hashCode(options2.shaderChunkGLSL ?? \"\");\n\t\tconst wgslHash = hashCode(options2.shaderChunkWGSL ?? \"\");\n\t\tconst loHash = LitOptionsUtils.generateKey(options2.litOptions);\n\t\tconst uvOptions = `${dummyUvs.map((dummy, index) => {\n\t\t\treturn options2.usedUvs[index] ? \"1\" : \"0\";\n\t\t}).join(\"\")}`;\n\t\treturn `lit_${definesHash}_${uvOptions}_${glslHash}_${wgslHash}_${loHash}`;\n\t}\n\tcreateShaderDefinition(device, options2) {\n\t\tconst allowWGSL = !!options2.shaderChunkWGSL;\n\t\tconst litShader = new LitShader(device, options2.litOptions, allowWGSL);\n\t\tconst definitionOptions = {\n\t\t\tname: \"LitShader\",\n\t\t\tshaderLanguage: litShader.shaderLanguage,\n\t\t\ttag: litShader.shaderPassInfo.isForward ? SHADERTAG_MATERIAL : void 0\n\t\t};\n\t\tconst usedUvSets = options2.usedUvs || [true];\n\t\tconst mapTransforms = [];\n\t\tlitShader.generateVertexShader(usedUvSets, usedUvSets, mapTransforms);\n\t\tlitShader.generateFragmentShader(\"\", litShader.shaderLanguage === SHADERLANGUAGE_WGSL ? options2.shaderChunkWGSL : options2.shaderChunkGLSL, \"vUv0\");\n\t\tconst includes = MapUtils.merge(litShader.chunks, litShader.includes);\n\t\tconst vDefines = litShader.vDefines;\n\t\toptions2.defines.forEach((value, key) => vDefines.set(key, value));\n\t\tconst fDefines = litShader.fDefines;\n\t\toptions2.defines.forEach((value, key) => fDefines.set(key, value));\n\t\tdefinitionOptions.attributes = litShader.attributes;\n\t\tdefinitionOptions.vertexCode = litShader.vshader;\n\t\tdefinitionOptions.vertexIncludes = includes;\n\t\tdefinitionOptions.vertexDefines = vDefines;\n\t\tdefinitionOptions.fragmentCode = litShader.fshader;\n\t\tdefinitionOptions.fragmentIncludes = includes;\n\t\tdefinitionOptions.fragmentDefines = fDefines;\n\t\treturn ShaderDefinitionUtils.createDefinition(device, definitionOptions);\n\t}\n};\nvar lit = new ShaderGeneratorLit();\n\nvar options = new LitMaterialOptions();\nvar LitMaterial = class extends Material {\n\tusedUvs = [true];\n\tshaderChunkGLSL = null;\n\tshaderChunkWGSL = null;\n\tuseLighting = true;\n\tuseFog = true;\n\tuseTonemap = true;\n\tuseSkybox = true;\n\tambientSH = null;\n\tpixelSnap = false;\n\tnineSlicedMode = null;\n\ttwoSidedLighting = false;\n\toccludeDirect = false;\n\toccludeSpecular = SPECOCC_AO;\n\toccludeSpecularIntensity = 1;\n\topacityFadesSpecular = true;\n\topacityDither = DITHER_NONE;\n\topacityShadowDither = DITHER_NONE;\n\tshadowCatcher = false;\n\tggxSpecular = false;\n\tfresnelModel = FRESNEL_SCHLICK;\n\tdynamicRefraction = false;\n\t// has members\n\thasAo = false;\n\thasSpecular = false;\n\thasSpecularityFactor = false;\n\thasLighting = false;\n\thasHeights = false;\n\thasNormals = false;\n\thasSheen = false;\n\thasRefraction = false;\n\thasIrridescence = false;\n\thasMetalness = false;\n\thasClearCoat = false;\n\thasClearCoatNormals = false;\n\tgetShaderVariant(params) {\n\t\toptions.usedUvs = this.usedUvs.slice();\n\t\toptions.shaderChunkGLSL = this.shaderChunkGLSL;\n\t\toptions.shaderChunkWGSL = this.shaderChunkWGSL;\n\t\toptions.defines = ShaderUtils.getCoreDefines(this, params);\n\t\tLitMaterialOptionsBuilder.update(options.litOptions, this, params.scene, params.cameraShaderParams, params.objDefs, params.pass, params.sortedLights);\n\t\tconst processingOptions = new ShaderProcessorOptions(params.viewUniformFormat, params.vertexFormat);\n\t\tconst library = getProgramLibrary(params.device);\n\t\tlibrary.register(\"lit\", lit);\n\t\tconst shader = library.getProgram(\"lit\", options, processingOptions, this.userId);\n\t\treturn shader;\n\t}\n};\n\nvar primitiveUv1Padding2 = 8 / 64;\nvar primitiveUv1PaddingScale2 = 1 - primitiveUv1Padding2 * 2;\nvar ConeBaseGeometry = class extends Geometry {\n\tconstructor(baseRadius, peakRadius, height, heightSegments, capSegments, roundedCaps) {\n\t\tsuper();\n\t\tconst pos = new Vec3();\n\t\tconst bottomToTop = new Vec3();\n\t\tconst norm = new Vec3();\n\t\tconst top = new Vec3();\n\t\tconst bottom = new Vec3();\n\t\tconst tangent = new Vec3();\n\t\tconst positions = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\t\tconst uvs1 = [];\n\t\tconst indices = [];\n\t\tlet offset3;\n\t\tif (height > 0) {\n\t\t\tfor (let i2 = 0; i2 <= heightSegments; i2++) {\n\t\t\t\tfor (let j = 0; j <= capSegments; j++) {\n\t\t\t\t\tconst theta = j / capSegments * 2 * Math.PI - Math.PI;\n\t\t\t\t\tconst sinTheta = Math.sin(theta);\n\t\t\t\t\tconst cosTheta = Math.cos(theta);\n\t\t\t\t\tbottom.set(sinTheta * baseRadius, -height / 2, cosTheta * baseRadius);\n\t\t\t\t\ttop.set(sinTheta * peakRadius, height / 2, cosTheta * peakRadius);\n\t\t\t\t\tpos.lerp(bottom, top, i2 / heightSegments);\n\t\t\t\t\tbottomToTop.sub2(top, bottom).normalize();\n\t\t\t\t\ttangent.set(cosTheta, 0, -sinTheta);\n\t\t\t\t\tnorm.cross(tangent, bottomToTop).normalize();\n\t\t\t\t\tpositions.push(pos.x, pos.y, pos.z);\n\t\t\t\t\tnormals.push(norm.x, norm.y, norm.z);\n\t\t\t\t\tlet u = j / capSegments;\n\t\t\t\t\tlet v6 = i2 / heightSegments;\n\t\t\t\t\tuvs.push(u, 1 - v6);\n\t\t\t\t\tconst _v2 = v6;\n\t\t\t\t\tv6 = u;\n\t\t\t\t\tu = _v2;\n\t\t\t\t\tu = u * primitiveUv1PaddingScale2 + primitiveUv1Padding2;\n\t\t\t\t\tv6 = v6 * primitiveUv1PaddingScale2 + primitiveUv1Padding2;\n\t\t\t\t\tu /= 3;\n\t\t\t\t\tuvs1.push(u, 1 - v6);\n\t\t\t\t\tif (i2 < heightSegments && j < capSegments) {\n\t\t\t\t\t\tconst first = i2 * (capSegments + 1) + j;\n\t\t\t\t\t\tconst second = i2 * (capSegments + 1) + (j + 1);\n\t\t\t\t\t\tconst third = (i2 + 1) * (capSegments + 1) + j;\n\t\t\t\t\t\tconst fourth = (i2 + 1) * (capSegments + 1) + (j + 1);\n\t\t\t\t\t\tindices.push(first, second, third);\n\t\t\t\t\t\tindices.push(second, fourth, third);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (roundedCaps) {\n\t\t\tconst latitudeBands = Math.floor(capSegments / 2);\n\t\t\tconst longitudeBands = capSegments;\n\t\t\tconst capOffset = height / 2;\n\t\t\tfor (let lat = 0; lat <= latitudeBands; lat++) {\n\t\t\t\tconst theta = lat * Math.PI * 0.5 / latitudeBands;\n\t\t\t\tconst sinTheta = Math.sin(theta);\n\t\t\t\tconst cosTheta = Math.cos(theta);\n\t\t\t\tfor (let lon = 0; lon <= longitudeBands; lon++) {\n\t\t\t\t\tconst phi = lon * 2 * Math.PI / longitudeBands - Math.PI / 2;\n\t\t\t\t\tconst sinPhi = Math.sin(phi);\n\t\t\t\t\tconst cosPhi = Math.cos(phi);\n\t\t\t\t\tconst x3 = cosPhi * sinTheta;\n\t\t\t\t\tconst y2 = cosTheta;\n\t\t\t\t\tconst z2 = sinPhi * sinTheta;\n\t\t\t\t\tlet u = 1 - lon / longitudeBands;\n\t\t\t\t\tlet v6 = 1 - lat / latitudeBands;\n\t\t\t\t\tpositions.push(x3 * peakRadius, y2 * peakRadius + capOffset, z2 * peakRadius);\n\t\t\t\t\tnormals.push(x3, y2, z2);\n\t\t\t\t\tuvs.push(u, 1 - v6);\n\t\t\t\t\tu = u * primitiveUv1PaddingScale2 + primitiveUv1Padding2;\n\t\t\t\t\tv6 = v6 * primitiveUv1PaddingScale2 + primitiveUv1Padding2;\n\t\t\t\t\tu /= 3;\n\t\t\t\t\tv6 /= 3;\n\t\t\t\t\tu += 1 / 3;\n\t\t\t\t\tuvs1.push(u, 1 - v6);\n\t\t\t\t}\n\t\t\t}\n\t\t\toffset3 = (heightSegments + 1) * (capSegments + 1);\n\t\t\tfor (let lat = 0; lat < latitudeBands; ++lat) {\n\t\t\t\tfor (let lon = 0; lon < longitudeBands; ++lon) {\n\t\t\t\t\tconst first = lat * (longitudeBands + 1) + lon;\n\t\t\t\t\tconst second = first + longitudeBands + 1;\n\t\t\t\t\tindices.push(offset3 + first + 1, offset3 + second, offset3 + first);\n\t\t\t\t\tindices.push(offset3 + first + 1, offset3 + second + 1, offset3 + second);\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (let lat = 0; lat <= latitudeBands; lat++) {\n\t\t\t\tconst theta = Math.PI * 0.5 + lat * Math.PI * 0.5 / latitudeBands;\n\t\t\t\tconst sinTheta = Math.sin(theta);\n\t\t\t\tconst cosTheta = Math.cos(theta);\n\t\t\t\tfor (let lon = 0; lon <= longitudeBands; lon++) {\n\t\t\t\t\tconst phi = lon * 2 * Math.PI / longitudeBands - Math.PI / 2;\n\t\t\t\t\tconst sinPhi = Math.sin(phi);\n\t\t\t\t\tconst cosPhi = Math.cos(phi);\n\t\t\t\t\tconst x3 = cosPhi * sinTheta;\n\t\t\t\t\tconst y2 = cosTheta;\n\t\t\t\t\tconst z2 = sinPhi * sinTheta;\n\t\t\t\t\tlet u = 1 - lon / longitudeBands;\n\t\t\t\t\tlet v6 = 1 - lat / latitudeBands;\n\t\t\t\t\tpositions.push(x3 * peakRadius, y2 * peakRadius - capOffset, z2 * peakRadius);\n\t\t\t\t\tnormals.push(x3, y2, z2);\n\t\t\t\t\tuvs.push(u, 1 - v6);\n\t\t\t\t\tu = u * primitiveUv1PaddingScale2 + primitiveUv1Padding2;\n\t\t\t\t\tv6 = v6 * primitiveUv1PaddingScale2 + primitiveUv1Padding2;\n\t\t\t\t\tu /= 3;\n\t\t\t\t\tv6 /= 3;\n\t\t\t\t\tu += 2 / 3;\n\t\t\t\t\tuvs1.push(u, 1 - v6);\n\t\t\t\t}\n\t\t\t}\n\t\t\toffset3 = (heightSegments + 1) * (capSegments + 1) + (longitudeBands + 1) * (latitudeBands + 1);\n\t\t\tfor (let lat = 0; lat < latitudeBands; ++lat) {\n\t\t\t\tfor (let lon = 0; lon < longitudeBands; ++lon) {\n\t\t\t\t\tconst first = lat * (longitudeBands + 1) + lon;\n\t\t\t\t\tconst second = first + longitudeBands + 1;\n\t\t\t\t\tindices.push(offset3 + first + 1, offset3 + second, offset3 + first);\n\t\t\t\t\tindices.push(offset3 + first + 1, offset3 + second + 1, offset3 + second);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\toffset3 = (heightSegments + 1) * (capSegments + 1);\n\t\t\tif (baseRadius > 0) {\n\t\t\t\tfor (let i2 = 0; i2 < capSegments; i2++) {\n\t\t\t\t\tconst theta = i2 / capSegments * 2 * Math.PI;\n\t\t\t\t\tconst x3 = Math.sin(theta);\n\t\t\t\t\tconst y2 = -height / 2;\n\t\t\t\t\tconst z2 = Math.cos(theta);\n\t\t\t\t\tlet u = 1 - (x3 + 1) / 2;\n\t\t\t\t\tlet v6 = (z2 + 1) / 2;\n\t\t\t\t\tpositions.push(x3 * baseRadius, y2, z2 * baseRadius);\n\t\t\t\t\tnormals.push(0, -1, 0);\n\t\t\t\t\tuvs.push(u, 1 - v6);\n\t\t\t\t\tu = u * primitiveUv1PaddingScale2 + primitiveUv1Padding2;\n\t\t\t\t\tv6 = v6 * primitiveUv1PaddingScale2 + primitiveUv1Padding2;\n\t\t\t\t\tu /= 3;\n\t\t\t\t\tv6 /= 3;\n\t\t\t\t\tu += 1 / 3;\n\t\t\t\t\tuvs1.push(u, 1 - v6);\n\t\t\t\t\tif (i2 > 1) {\n\t\t\t\t\t\tindices.push(offset3, offset3 + i2, offset3 + i2 - 1);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\toffset3 += capSegments;\n\t\t\tif (peakRadius > 0) {\n\t\t\t\tfor (let i2 = 0; i2 < capSegments; i2++) {\n\t\t\t\t\tconst theta = i2 / capSegments * 2 * Math.PI;\n\t\t\t\t\tconst x3 = Math.sin(theta);\n\t\t\t\t\tconst y2 = height / 2;\n\t\t\t\t\tconst z2 = Math.cos(theta);\n\t\t\t\t\tlet u = 1 - (x3 + 1) / 2;\n\t\t\t\t\tlet v6 = (z2 + 1) / 2;\n\t\t\t\t\tpositions.push(x3 * peakRadius, y2, z2 * peakRadius);\n\t\t\t\t\tnormals.push(0, 1, 0);\n\t\t\t\t\tuvs.push(u, 1 - v6);\n\t\t\t\t\tu = u * primitiveUv1PaddingScale2 + primitiveUv1Padding2;\n\t\t\t\t\tv6 = v6 * primitiveUv1PaddingScale2 + primitiveUv1Padding2;\n\t\t\t\t\tu /= 3;\n\t\t\t\t\tv6 /= 3;\n\t\t\t\t\tu += 2 / 3;\n\t\t\t\t\tuvs1.push(u, 1 - v6);\n\t\t\t\t\tif (i2 > 1) {\n\t\t\t\t\t\tindices.push(offset3, offset3 + i2 - 1, offset3 + i2);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis.positions = positions;\n\t\tthis.normals = normals;\n\t\tthis.uvs = uvs;\n\t\tthis.uvs1 = uvs1;\n\t\tthis.indices = indices;\n\t}\n};\n\nvar CapsuleGeometry = class extends ConeBaseGeometry {\n\tconstructor(opts = {}) {\n\t\tconst radius = opts.radius ?? 0.3;\n\t\tconst height = opts.height ?? 1;\n\t\tconst heightSegments = opts.heightSegments ?? 1;\n\t\tconst sides = opts.sides ?? 20;\n\t\tsuper(radius, radius, height - 2 * radius, heightSegments, sides, true);\n\t\tif (opts.calculateTangents) {\n\t\t\tthis.calculateTangents();\n\t\t}\n\t}\n};\n\nvar CircleGeometry = class extends Geometry {\n\tconstructor(opts = {}) {\n\t\tsuper();\n\t\tconst radius = opts.radius ?? 0.5;\n\t\tconst sectors = Math.max(Math.floor(opts.sectors ?? 64), 3);\n\t\tconst rings = Math.max(Math.floor(opts.rings ?? 8), 1);\n\t\tconst ringExponent = opts.ringExponent ?? 1;\n\t\tconst positions = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\t\tconst indices = [];\n\t\tpositions.push(0, 0, 0);\n\t\tnormals.push(0, 1, 0);\n\t\tuvs.push(0.5, 0.5);\n\t\tfor (let r = 1; r <= rings; r++) {\n\t\t\tconst ringRadius = radius * Math.pow(r / rings, ringExponent);\n\t\t\tfor (let j = 0; j < sectors; j++) {\n\t\t\t\tconst angle = 2 * Math.PI * j / sectors;\n\t\t\t\tconst x3 = ringRadius * Math.cos(angle);\n\t\t\t\tconst z2 = ringRadius * Math.sin(angle);\n\t\t\t\tpositions.push(x3, 0, z2);\n\t\t\t\tnormals.push(0, 1, 0);\n\t\t\t\tuvs.push(0.5 + x3 / (2 * radius), 0.5 + z2 / (2 * radius));\n\t\t\t}\n\t\t}\n\t\tconst ringVertex = (r, j) => 1 + (r - 1) * sectors + j % sectors;\n\t\tfor (let j = 0; j < sectors; j++) {\n\t\t\tindices.push(0, ringVertex(1, j + 1), ringVertex(1, j));\n\t\t}\n\t\tfor (let r = 1; r < rings; r++) {\n\t\t\tfor (let j = 0; j < sectors; j++) {\n\t\t\t\tconst inner = ringVertex(r, j);\n\t\t\t\tconst innerNext = ringVertex(r, j + 1);\n\t\t\t\tconst outer = ringVertex(r + 1, j);\n\t\t\t\tconst outerNext = ringVertex(r + 1, j + 1);\n\t\t\t\tindices.push(inner, outerNext, outer);\n\t\t\t\tindices.push(inner, innerNext, outerNext);\n\t\t\t}\n\t\t}\n\t\tthis.positions = positions;\n\t\tthis.normals = normals;\n\t\tthis.uvs = uvs;\n\t\tthis.uvs1 = uvs;\n\t\tthis.indices = indices;\n\t\tif (opts.calculateTangents) {\n\t\t\tthis.calculateTangents();\n\t\t}\n\t}\n};\n\nvar ConeGeometry = class extends ConeBaseGeometry {\n\tconstructor(opts = {}) {\n\t\tconst baseRadius = opts.baseRadius ?? 0.5;\n\t\tconst peakRadius = opts.peakRadius ?? 0;\n\t\tconst height = opts.height ?? 1;\n\t\tconst heightSegments = opts.heightSegments ?? 5;\n\t\tconst capSegments = opts.capSegments ?? 18;\n\t\tsuper(baseRadius, peakRadius, height, heightSegments, capSegments, false);\n\t\tif (opts.calculateTangents) {\n\t\t\tthis.calculateTangents();\n\t\t}\n\t}\n};\n\nvar CylinderGeometry = class extends ConeBaseGeometry {\n\tconstructor(opts = {}) {\n\t\tconst radius = opts.radius ?? 0.5;\n\t\tconst height = opts.height ?? 1;\n\t\tconst heightSegments = opts.heightSegments ?? 5;\n\t\tconst capSegments = opts.capSegments ?? 20;\n\t\tsuper(radius, radius, height, heightSegments, capSegments, false);\n\t\tif (opts.calculateTangents) {\n\t\t\tthis.calculateTangents();\n\t\t}\n\t}\n};\n\nvar PlaneGeometry = class extends Geometry {\n\tconstructor(opts = {}) {\n\t\tsuper();\n\t\tconst he = opts.halfExtents ?? new Vec2(0.5, 0.5);\n\t\tconst ws = opts.widthSegments ?? 5;\n\t\tconst ls = opts.lengthSegments ?? 5;\n\t\tconst positions = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\t\tconst indices = [];\n\t\tlet vcounter = 0;\n\t\tfor (let i2 = 0; i2 <= ws; i2++) {\n\t\t\tfor (let j = 0; j <= ls; j++) {\n\t\t\t\tconst x3 = -he.x + 2 * he.x * i2 / ws;\n\t\t\t\tconst y2 = 0;\n\t\t\t\tconst z2 = -(-he.y + 2 * he.y * j / ls);\n\t\t\t\tconst u = i2 / ws;\n\t\t\t\tconst v6 = j / ls;\n\t\t\t\tpositions.push(x3, y2, z2);\n\t\t\t\tnormals.push(0, 1, 0);\n\t\t\t\tuvs.push(u, 1 - v6);\n\t\t\t\tif (i2 < ws && j < ls) {\n\t\t\t\t\tindices.push(vcounter + ls + 1, vcounter + 1, vcounter);\n\t\t\t\t\tindices.push(vcounter + ls + 1, vcounter + ls + 2, vcounter + 1);\n\t\t\t\t}\n\t\t\t\tvcounter++;\n\t\t\t}\n\t\t}\n\t\tthis.positions = positions;\n\t\tthis.normals = normals;\n\t\tthis.uvs = uvs;\n\t\tthis.uvs1 = uvs;\n\t\tthis.indices = indices;\n\t\tif (opts.calculateTangents) {\n\t\t\tthis.calculateTangents();\n\t\t}\n\t}\n};\n\nvar TorusGeometry = class extends Geometry {\n\tconstructor(opts = {}) {\n\t\tsuper();\n\t\tconst rc = opts.tubeRadius ?? 0.2;\n\t\tconst rt = opts.ringRadius ?? 0.3;\n\t\tconst sectorAngle = (opts.sectorAngle ?? 360) * math.DEG_TO_RAD;\n\t\tconst segments = opts.segments ?? 30;\n\t\tconst sides = opts.sides ?? 20;\n\t\tconst positions = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\t\tconst indices = [];\n\t\tfor (let i2 = 0; i2 <= sides; i2++) {\n\t\t\tfor (let j = 0; j <= segments; j++) {\n\t\t\t\tconst x3 = Math.cos(sectorAngle * j / segments) * (rt + rc * Math.cos(2 * Math.PI * i2 / sides));\n\t\t\t\tconst y2 = Math.sin(2 * Math.PI * i2 / sides) * rc;\n\t\t\t\tconst z2 = Math.sin(sectorAngle * j / segments) * (rt + rc * Math.cos(2 * Math.PI * i2 / sides));\n\t\t\t\tconst nx = Math.cos(sectorAngle * j / segments) * Math.cos(2 * Math.PI * i2 / sides);\n\t\t\t\tconst ny = Math.sin(2 * Math.PI * i2 / sides);\n\t\t\t\tconst nz = Math.sin(sectorAngle * j / segments) * Math.cos(2 * Math.PI * i2 / sides);\n\t\t\t\tconst u = i2 / sides;\n\t\t\t\tconst v6 = 1 - j / segments;\n\t\t\t\tpositions.push(x3, y2, z2);\n\t\t\t\tnormals.push(nx, ny, nz);\n\t\t\t\tuvs.push(u, 1 - v6);\n\t\t\t\tif (i2 < sides && j < segments) {\n\t\t\t\t\tconst first = i2 * (segments + 1) + j;\n\t\t\t\t\tconst second = (i2 + 1) * (segments + 1) + j;\n\t\t\t\t\tconst third = i2 * (segments + 1) + (j + 1);\n\t\t\t\t\tconst fourth = (i2 + 1) * (segments + 1) + (j + 1);\n\t\t\t\t\tindices.push(first, second, third);\n\t\t\t\t\tindices.push(second, fourth, third);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis.positions = positions;\n\t\tthis.normals = normals;\n\t\tthis.uvs = uvs;\n\t\tthis.uvs1 = uvs;\n\t\tthis.indices = indices;\n\t\tif (opts.calculateTangents) {\n\t\t\tthis.calculateTangents();\n\t\t}\n\t}\n};\n\nvar ProgramLibrary = class {\n\tprocessedCache = /* @__PURE__ */ new Map();\n\tdefinitionsCache = /* @__PURE__ */ new Map();\n\t_generators = /* @__PURE__ */ new Map();\n\tconstructor(device, standardMaterial) {\n\t\tthis._device = device;\n\t\tthis._isClearingCache = false;\n\t\tthis._precached = false;\n\t\tthis._programsCollection = [];\n\t\tthis._defaultStdMatOption = new StandardMaterialOptions();\n\t\tthis._defaultStdMatOptionMin = new StandardMaterialOptions();\n\t\tconst defaultCameraShaderParams = new CameraShaderParams();\n\t\tstandardMaterial.shaderOptBuilder.updateRef(\n\t\t\tthis._defaultStdMatOption,\n\t\t\t{},\n\t\t\tdefaultCameraShaderParams,\n\t\t\tstandardMaterial,\n\t\t\tnull,\n\t\t\t[],\n\t\t\tSHADER_FORWARD,\n\t\t\tnull\n\t\t);\n\t\tstandardMaterial.shaderOptBuilder.updateMinRef(\n\t\t\tthis._defaultStdMatOptionMin,\n\t\t\t{},\n\t\t\tstandardMaterial,\n\t\t\tnull,\n\t\t\tSHADER_SHADOW,\n\t\t\tnull\n\t\t);\n\t\tdevice.on(\"destroy:shader\", (shader) => {\n\t\t\tthis.removeFromCache(shader);\n\t\t});\n\t}\n\tdestroy() {\n\t\tthis.clearCache();\n\t}\n\tregister(name, generator) {\n\t\tif (!this._generators.has(name)) {\n\t\t\tthis._generators.set(name, generator);\n\t\t}\n\t}\n\tunregister(name) {\n\t\tif (this._generators.has(name)) {\n\t\t\tthis._generators.delete(name);\n\t\t}\n\t}\n\tisRegistered(name) {\n\t\treturn this._generators.has(name);\n\t}\n\tgenerateShaderDefinition(generator, name, key, options2) {\n\t\tlet def = this.definitionsCache.get(key);\n\t\tif (!def) {\n\t\t\tlet lights2;\n\t\t\tif (options2.litOptions?.lights) {\n\t\t\t\tlights2 = options2.litOptions.lights;\n\t\t\t\toptions2.litOptions.lights = lights2.map((l) => {\n\t\t\t\t\tconst lcopy = l.clone ? l.clone() : l;\n\t\t\t\t\tlcopy.key = l.key;\n\t\t\t\t\treturn lcopy;\n\t\t\t\t});\n\t\t\t}\n\t\t\tthis.storeNewProgram(name, options2);\n\t\t\tif (options2.litOptions?.lights) {\n\t\t\t\toptions2.litOptions.lights = lights2;\n\t\t\t}\n\t\t\tif (this._precached) {\n\t\t\t}\n\t\t\tconst device = this._device;\n\t\t\tdef = generator.createShaderDefinition(device, options2);\n\t\t\tdef.name = def.name ?? (options2.pass ? `${name}-pass:${options2.pass}` : name);\n\t\t\tthis.definitionsCache.set(key, def);\n\t\t}\n\t\treturn def;\n\t}\n\tgetCachedShader(key) {\n\t\treturn this.processedCache.get(key);\n\t}\n\tsetCachedShader(key, shader) {\n\t\tthis.processedCache.set(key, shader);\n\t}\n\tgetProgram(name, options2, processingOptions, userMaterialId) {\n\t\tconst generator = this._generators.get(name);\n\t\tif (!generator) {\n\t\t\treturn null;\n\t\t}\n\t\tconst generationKeyString = generator.generateKey(options2);\n\t\tconst generationKey = hashCode(generationKeyString);\n\t\tconst processingKeyString = processingOptions.generateKey(this._device);\n\t\tconst processingKey = hashCode(processingKeyString);\n\t\tconst totalKey = `${generationKey}#${processingKey}`;\n\t\tlet processedShader = this.getCachedShader(totalKey);\n\t\tif (!processedShader) {\n\t\t\tconst generatedShaderDef = this.generateShaderDefinition(generator, name, generationKey, options2);\n\t\t\tlet passName = \"\";\n\t\t\tlet shaderPassInfo;\n\t\t\tif (options2.pass !== void 0) {\n\t\t\t\tshaderPassInfo = ShaderPass.get(this._device).getByIndex(options2.pass);\n\t\t\t\tpassName = `-${shaderPassInfo.name}`;\n\t\t\t}\n\t\t\tthis._device.fire(\"shader:generate\", {\n\t\t\t\tuserMaterialId,\n\t\t\t\tshaderPassInfo,\n\t\t\t\tdefinition: generatedShaderDef\n\t\t\t});\n\t\t\tconst shaderDefinition = {\n\t\t\t\tname: `${generatedShaderDef.name}${passName}-proc`,\n\t\t\t\tattributes: generatedShaderDef.attributes,\n\t\t\t\tvshader: generatedShaderDef.vshader,\n\t\t\t\tvincludes: generatedShaderDef.vincludes,\n\t\t\t\tfincludes: generatedShaderDef.fincludes,\n\t\t\t\tfshader: generatedShaderDef.fshader,\n\t\t\t\tprocessingOptions,\n\t\t\t\tshaderLanguage: generatedShaderDef.shaderLanguage,\n\t\t\t\tuseDualSourceBlending: generatedShaderDef.useDualSourceBlending,\n\t\t\t\tmeshUniformBufferFormat: generatedShaderDef.meshUniformBufferFormat,\n\t\t\t\tmeshBindGroupFormat: generatedShaderDef.meshBindGroupFormat\n\t\t\t};\n\t\t\tprocessedShader = new Shader(this._device, shaderDefinition);\n\t\t\tthis.setCachedShader(totalKey, processedShader);\n\t\t}\n\t\treturn processedShader;\n\t}\n\tstoreNewProgram(name, options2) {\n\t\tlet opt = {};\n\t\tif (name === \"standard\") {\n\t\t\tconst defaultMat = this._getDefaultStdMatOptions(options2.pass);\n\t\t\tfor (const p in options2) {\n\t\t\t\tif (options2.hasOwnProperty(p) && defaultMat[p] !== options2[p] || p === \"pass\") {\n\t\t\t\t\topt[p] = options2[p];\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (const p in options2.litOptions) {\n\t\t\t\topt[p] = options2.litOptions[p];\n\t\t\t}\n\t\t} else {\n\t\t\topt = options2;\n\t\t}\n\t\tthis._programsCollection.push(JSON.stringify({ name, options: opt }));\n\t}\n\t// run pc.getProgramLibrary(device).dumpPrograms(); from browser console to build shader options script\n\tdumpPrograms() {\n\t\tlet text = \"let device = pc.app ? pc.app.graphicsDevice : pc.Application.getApplication().graphicsDevice;\\n\";\n\t\ttext += \"let shaders = [\";\n\t\tif (this._programsCollection[0]) {\n\t\t\ttext += `\n\t${this._programsCollection[0]}`;\n\t\t}\n\t\tfor (let i2 = 1; i2 < this._programsCollection.length; ++i2) {\n\t\t\ttext += `,\n\t${this._programsCollection[i2]}`;\n\t\t}\n\t\ttext += \"\\n];\\n\";\n\t\ttext += \"pc.getProgramLibrary(device).precompile(shaders);\\n\";\n\t\ttext += `if (pc.version != \"${version}\" || pc.revision != \"${revision}\")\n`;\n\t\ttext += '\tconsole.warn(\"precompile-shaders.js: engine version mismatch, rebuild shaders lib with current engine\");';\n\t\tconst element = document.createElement(\"a\");\n\t\telement.setAttribute(\"href\", `data:text/plain;charset=utf-8,${encodeURIComponent(text)}`);\n\t\telement.setAttribute(\"download\", \"precompile-shaders.js\");\n\t\telement.style.display = \"none\";\n\t\tdocument.body.appendChild(element);\n\t\telement.click();\n\t\tdocument.body.removeChild(element);\n\t}\n\tclearCache() {\n\t\tthis._isClearingCache = true;\n\t\tthis.processedCache.forEach((shader) => {\n\t\t\tshader.destroy();\n\t\t});\n\t\tthis.processedCache.clear();\n\t\tthis._isClearingCache = false;\n\t}\n\tremoveFromCache(shader) {\n\t\tif (this._isClearingCache) {\n\t\t\treturn;\n\t\t}\n\t\tthis.processedCache.forEach((cachedShader, key) => {\n\t\t\tif (shader === cachedShader) {\n\t\t\t\tthis.processedCache.delete(key);\n\t\t\t}\n\t\t});\n\t}\n\t_getDefaultStdMatOptions(pass) {\n\t\tconst shaderPassInfo = ShaderPass.get(this._device).getByIndex(pass);\n\t\treturn pass === SHADER_PICK || pass === SHADER_PREPASS || shaderPassInfo.isShadow ? this._defaultStdMatOptionMin : this._defaultStdMatOption;\n\t}\n\tprecompile(cache) {\n\t\tif (cache) {\n\t\t\tconst shaders = new Array(cache.length);\n\t\t\tfor (let i2 = 0; i2 < cache.length; i2++) {\n\t\t\t\tif (cache[i2].name === \"standard\") {\n\t\t\t\t\tconst opt = cache[i2].options;\n\t\t\t\t\tconst defaultMat = this._getDefaultStdMatOptions(opt.pass);\n\t\t\t\t\tfor (const p in defaultMat) {\n\t\t\t\t\t\tif (defaultMat.hasOwnProperty(p) && opt[p] === void 0) {\n\t\t\t\t\t\t\topt[p] = defaultMat[p];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tshaders[i2] = this.getProgram(cache[i2].name, cache[i2].options);\n\t\t\t}\n\t\t}\n\t\tthis._precached = true;\n\t}\n};\n\nvar UploadStream = class {\n\t_deviceLostEvent = null;\n\tconstructor(device, useSingleBuffer = false) {\n\t\tthis.device = device;\n\t\tthis.useSingleBuffer = useSingleBuffer;\n\t\tthis.impl = device.createUploadStreamImpl(this);\n\t\tthis._deviceLostEvent = this.device.on(\"devicelost\", this._onDeviceLost, this);\n\t}\n\tdestroy() {\n\t\tthis._deviceLostEvent?.off();\n\t\tthis._deviceLostEvent = null;\n\t\tthis.impl?.destroy();\n\t\tthis.impl = null;\n\t}\n\tupload(data2, target2, offset3 = 0, size = data2.length) {\n\t\tthis.impl?.upload(data2, target2, offset3, size);\n\t}\n\t_onDeviceLost() {\n\t\tthis.impl?._onDeviceLost?.();\n\t}\n};\n\nvar gsplatCopyToWorkbuffer_default = `\n#define GSPLAT_CENTER_NOPROJ\nuniform vec3 model_scale;\nuniform vec4 model_rotation;\n#include \"gsplatHelpersVS\"\n#include \"gsplatFormatVS\"\n#include \"gsplatStructsVS\"\n#include \"gsplatDeclarationsVS\"\n#include \"gsplatCenterVS\"\n#include \"gsplatEvalSHVS\"\n#include \"gsplatQuatToMat3VS\"\n#include \"gsplatReadVS\"\n#include \"gsplatWorkBufferGeometryPS\"\n#include \"gsplatWorkBufferOutputVS\"\n#include \"gsplatWriteVS\"\n#include \"gsplatModifyVS\"\nflat varying ivec4 vSubDraw;\nuniform vec3 uColorMultiply;\n#ifdef GSPLAT_ID\n\tuniform uint uId;\n#endif\nvoid main(void) {\n\tint localRow = int(gl_FragCoord.y) - vSubDraw.w;\n\tint localCol = int(gl_FragCoord.x) - vSubDraw.y;\n\tuint originalIndex = uint(vSubDraw.x + localRow * vSubDraw.z + localCol);\n\tsetSplat(originalIndex);\n\tvec3 worldCenter;\n\tvec4 worldRotation = vec4(0.0, 0.0, 0.0, 1.0);\n\tvec3 worldScale = vec3(1.0);\n\t#if SH_BANDS > 0\n\t\tvec3 dir;\n\t#endif\n\t#ifdef GSPLAT_WORKBUFFER_GEOMETRY\n\t\tinitWorkBufferGeometry(ivec2(gl_FragCoord.xy));\n\t\tworldCenter = workBufferWorldCenter();\n\t\t#if SH_BANDS > 0\n\t\t\tdir = normalize(quatRotateInv(model_rotation, worldCenter - uCameraPosition));\n\t\t#endif\n\t#else\n\t\tvec3 modelCenter = getCenter();\n\t\tworldCenter = (matrix_model * vec4(modelCenter, 1.0)).xyz;\n\t\tSplatCenter center;\n\t\tinitCenter(modelCenter, center);\n\t\tvec4 srcRotation = getRotation().yzwx;\n\t\tvec3 srcScale = getScale();\n\t\tworldRotation = quatMul(model_rotation, srcRotation);\n\t\tif (worldRotation.w < 0.0) {\n\t\t\tworldRotation = -worldRotation;\n\t\t}\n\t\tworldScale = model_scale * srcScale;\n\t\tvec3 originalCenter = worldCenter;\n\t\tmodifySplatCenter(worldCenter);\n\t\tmodifySplatRotationScale(originalCenter, worldCenter, worldRotation, worldScale);\n\t\t#if SH_BANDS > 0\n\t\t\tdir = normalize(center.view * mat3(center.modelView));\n\t\t#endif\n\t#endif\n\tvec4 color = getColor();\n\t#if SH_BANDS > 0\n\t\tvec3 sh[SH_COEFFS];\n\t\tfloat scale;\n\t\treadSHData(sh, scale);\n\t\tcolor.xyz += evalSH(sh, dir) * scale;\n\t#endif\n\tmodifySplatColor(worldCenter, color);\n\tcolor.xyz *= uColorMultiply;\n\twriteSplat(worldCenter, worldRotation, worldScale, color);\n\t#ifdef GSPLAT_ID\n\t\twritePcId(uvec4(uId, 0u, 0u, 0u));\n\t#endif\n}\n`;\n\nvar gsplatCopyToWorkbuffer_default2 = `\n#define GSPLAT_CENTER_NOPROJ\nuniform model_scale: vec3f;\nuniform model_rotation: vec4f;\n#include \"gsplatHelpersVS\"\n#include \"gsplatFormatVS\"\n#include \"gsplatStructsVS\"\n#include \"gsplatDeclarationsVS\"\n#include \"gsplatCenterVS\"\n#include \"gsplatEvalSHVS\"\n#include \"gsplatQuatToMat3VS\"\n#include \"gsplatReadVS\"\n#include \"gsplatWorkBufferGeometryPS\"\nvar<private> processOutput: FragmentOutput;\n#include \"gsplatWorkBufferOutputVS\"\n#include \"gsplatWriteVS\"\n#include \"gsplatModifyVS\"\nvarying @interpolate(flat) vSubDraw: vec4i;\nuniform uColorMultiply: vec3f;\n#ifdef GSPLAT_ID\n\tuniform uId: u32;\n#endif\n@fragment\nfn fragmentMain(input: FragmentInput) -> FragmentOutput {\n\tlet localRow = i32(input.position.y) - input.vSubDraw.w;\n\tlet localCol = i32(input.position.x) - input.vSubDraw.y;\n\tlet originalIndex = u32(input.vSubDraw.x + localRow * input.vSubDraw.z + localCol);\n\tsetSplat(originalIndex);\n\tvar worldCenter: vec3f;\n\tvar worldRotation = vec4f(0.0, 0.0, 0.0, 1.0);\n\tvar worldScale = vec3f(1.0);\n\t#if SH_BANDS > 0\n\t\tvar dir: vec3f;\n\t#endif\n\t#ifdef GSPLAT_WORKBUFFER_GEOMETRY\n\t\tinitWorkBufferGeometry(vec2i(input.position.xy));\n\t\tworldCenter = workBufferWorldCenter();\n\t\t#if SH_BANDS > 0\n\t\t\tdir = normalize(quatRotateInv(uniform.model_rotation, worldCenter - uniform.uCameraPosition));\n\t\t#endif\n\t#else\n\t\tvar modelCenter = getCenter();\n\t\tworldCenter = (uniform.matrix_model * vec4f(modelCenter, 1.0)).xyz;\n\t\tvar center: SplatCenter;\n\t\tinitCenter(modelCenter, &center);\n\t\tlet srcRotation = getRotation().yzwx;\n\t\tlet srcScale = getScale();\n\t\tworldRotation = vec4f(quatMul(half4(uniform.model_rotation), half4(srcRotation)));\n\t\tif (worldRotation.w < 0.0) {\n\t\t\tworldRotation = -worldRotation;\n\t\t}\n\t\tworldScale = uniform.model_scale * srcScale;\n\t\tlet originalCenter = worldCenter;\n\t\tmodifySplatCenter(&worldCenter);\n\t\tmodifySplatRotationScale(originalCenter, worldCenter, &worldRotation, &worldScale);\n\t\t#if SH_BANDS > 0\n\t\t\tlet modelView = center.modelView;\n\t\t\tdir = normalize(center.view * mat3x3f(modelView[0].xyz, modelView[1].xyz, modelView[2].xyz));\n\t\t#endif\n\t#endif\n\tvar color = getColor();\n\t#if SH_BANDS > 0\n\t\tvar sh: array<half3, SH_COEFFS>;\n\t\tvar scale: f32;\n\t\treadSHData(&sh, &scale);\n\t\tcolor = vec4f(color.xyz + vec3f(evalSH(&sh, dir) * half(scale)), color.w);\n\t#endif\n\tmodifySplatColor(worldCenter, &color);\n\tcolor = vec4f(color.xyz * uniform.uColorMultiply, color.w);\n\twriteSplat(worldCenter, worldRotation, worldScale, color);\n\t#ifdef GSPLAT_ID\n\t\twritePcId(vec4u(uniform.uId, 0u, 0u, 0u));\n\t#endif\n\treturn processOutput;\n}\n`;\n\nvar gsplatCopyInstancedQuad_default = `\nattribute vec2 vertex_position;\nprecision highp usampler2D;\nuniform usampler2D uSubDrawData;\nuniform ivec2 uTextureSize;\nuniform int uSubDrawBase;\nflat varying ivec4 vSubDraw;\nvoid main(void) {\n\tint subDrawWidth = textureSize(uSubDrawData, 0).x;\n\tint idx = gl_InstanceID + uSubDrawBase;\n\tuvec4 data = texelFetch(uSubDrawData, ivec2(idx % subDrawWidth, idx / subDrawWidth), 0);\n\tint rowStart = int(data.r & 0xFFFFu);\n\tint numRows = int(data.r >> 16u);\n\tint colStart = int(data.g);\n\tint colEnd = int(data.b);\n\tint sourceBase = int(data.a);\n\tfloat u = float(gl_VertexID & 1);\n\tfloat v = float(gl_VertexID >> 1);\n\tvec4 ndc = vec4(colStart, colEnd, rowStart, rowStart + numRows) / vec4(uTextureSize.x, uTextureSize.x, uTextureSize.y, uTextureSize.y) * 2.0 - 1.0;\n\tgl_Position = vec4(mix(ndc.x, ndc.y, u), mix(ndc.z, ndc.w, v), 0.5, 1.0);\n\tvSubDraw = ivec4(sourceBase, colStart, colEnd - colStart, rowStart);\n}\n`;\n\nvar gsplatCopyInstancedQuad_default2 = `\nattribute vertex_position: vec2f;\nvar uSubDrawData: texture_2d<u32>;\nuniform uTextureSize: vec2i;\nuniform uSubDrawBase: i32;\nvarying @interpolate(flat) vSubDraw: vec4i;\n@vertex\nfn vertexMain(input: VertexInput) -> VertexOutput {\n\tvar output: VertexOutput;\n\tlet subDrawWidth = i32(textureDimensions(uSubDrawData, 0).x);\n\tlet instIdx = i32(input.instanceIndex) + uniform.uSubDrawBase;\n\tlet data = textureLoad(uSubDrawData, vec2i(instIdx % subDrawWidth, instIdx / subDrawWidth), 0);\n\tlet rowStart = i32(data.r & 0xFFFFu);\n\tlet numRows = i32(data.r >> 16u);\n\tlet colStart = i32(data.g);\n\tlet colEnd = i32(data.b);\n\tlet sourceBase = i32(data.a);\n\tlet u = f32(i32(input.vertexIndex) & 1);\n\tlet v = f32(i32(input.vertexIndex) >> 1u);\n\tlet ndc = vec4f(f32(colStart), f32(colEnd), f32(rowStart), f32(rowStart + numRows)) / vec4f(f32(uniform.uTextureSize.x), f32(uniform.uTextureSize.x), f32(uniform.uTextureSize.y), f32(uniform.uTextureSize.y)) * 2.0 - 1.0;\n\toutput.position = vec4f(mix(ndc.x, ndc.y, u), mix(-ndc.z, -ndc.w, v), 0.5, 1.0);\n\toutput.vSubDraw = vec4i(sourceBase, colStart, colEnd - colStart, rowStart);\n\treturn output;\n}\n`;\n\nvar _viewProjMat2 = new Mat4();\nvar _frustum = new Frustum();\nvar BOUNDS_ENTRY_FLOATS = 8;\nvar GSplatFrustumCuller = class {\n\tdevice;\n\tboundsBuffer = null;\n\ttotalBoundsEntries = 0;\n\t_allocatedBoundsEntries = 0;\n\t_boundsFloatView = null;\n\t_boundsUintView = null;\n\t_tmpSpheres = null;\n\ttransformsBuffer = null;\n\t_allocatedTransformCount = 0;\n\t_transformsData = null;\n\tfrustumPlanes = new Float32Array(24);\n\tfisheyeCameraPos = new Float32Array(3);\n\tfisheyeCameraForward = new Float32Array(3);\n\tfisheyeMaxTheta = Math.PI;\n\tconstructor(device) {\n\t\tthis.device = device;\n\t}\n\tdestroy() {\n\t\tthis.boundsBuffer?.destroy();\n\t\tthis.transformsBuffer?.destroy();\n\t}\n\tupdateBoundsData(boundsGroups) {\n\t\tlet totalEntries = 0;\n\t\tfor (let i2 = 0; i2 < boundsGroups.length; i2++) {\n\t\t\ttotalEntries += boundsGroups[i2].numBoundsEntries;\n\t\t}\n\t\tthis.totalBoundsEntries = totalEntries;\n\t\tif (totalEntries === 0) return;\n\t\tif (totalEntries > this._allocatedBoundsEntries) {\n\t\t\tthis.boundsBuffer?.destroy();\n\t\t\tthis._allocatedBoundsEntries = totalEntries;\n\t\t\tthis.boundsBuffer = new StorageBuffer(this.device, totalEntries * BOUNDS_ENTRY_FLOATS * 4, BUFFERUSAGE_COPY_DST);\n\t\t\tconst ab = new ArrayBuffer(totalEntries * BOUNDS_ENTRY_FLOATS * 4);\n\t\t\tthis._boundsFloatView = new Float32Array(ab);\n\t\t\tthis._boundsUintView = new Uint32Array(ab);\n\t\t\tthis._tmpSpheres = new Float32Array(totalEntries * 4);\n\t\t}\n\t\tconst floatView2 = this._boundsFloatView;\n\t\tconst uintView = this._boundsUintView;\n\t\tconst tmpSpheres = this._tmpSpheres;\n\t\tfor (let i2 = 0; i2 < boundsGroups.length; i2++) {\n\t\t\tconst group = boundsGroups[i2];\n\t\t\tconst base = group.boundsBaseIndex;\n\t\t\tconst count = group.numBoundsEntries;\n\t\t\tgroup.splat.writeBoundsSpheres(tmpSpheres, base * 4);\n\t\t\tfor (let j = 0; j < count; j++) {\n\t\t\t\tconst src = (base + j) * 4;\n\t\t\t\tconst dst = (base + j) * BOUNDS_ENTRY_FLOATS;\n\t\t\t\tfloatView2[dst + 0] = tmpSpheres[src + 0];\n\t\t\t\tfloatView2[dst + 1] = tmpSpheres[src + 1];\n\t\t\t\tfloatView2[dst + 2] = tmpSpheres[src + 2];\n\t\t\t\tfloatView2[dst + 3] = tmpSpheres[src + 3];\n\t\t\t\tuintView[dst + 4] = i2;\n\t\t\t}\n\t\t}\n\t\tthis.boundsBuffer.write(0, floatView2);\n\t}\n\tupdateTransformsData(boundsGroups) {\n\t\tconst numMatrices = boundsGroups.length;\n\t\tif (numMatrices === 0) return;\n\t\tif (numMatrices > this._allocatedTransformCount) {\n\t\t\tthis.transformsBuffer?.destroy();\n\t\t\tthis._allocatedTransformCount = numMatrices;\n\t\t\tthis.transformsBuffer = new StorageBuffer(this.device, numMatrices * 12 * 4, BUFFERUSAGE_COPY_DST);\n\t\t\tthis._transformsData = new Float32Array(numMatrices * 12);\n\t\t}\n\t\tconst data2 = this._transformsData;\n\t\tlet offset3 = 0;\n\t\tfor (let i2 = 0; i2 < boundsGroups.length; i2++) {\n\t\t\tconst m = boundsGroups[i2].splat.node.getWorldTransform().data;\n\t\t\tdata2[offset3++] = m[0];\n\t\t\tdata2[offset3++] = m[4];\n\t\t\tdata2[offset3++] = m[8];\n\t\t\tdata2[offset3++] = m[12];\n\t\t\tdata2[offset3++] = m[1];\n\t\t\tdata2[offset3++] = m[5];\n\t\t\tdata2[offset3++] = m[9];\n\t\t\tdata2[offset3++] = m[13];\n\t\t\tdata2[offset3++] = m[2];\n\t\t\tdata2[offset3++] = m[6];\n\t\t\tdata2[offset3++] = m[10];\n\t\t\tdata2[offset3++] = m[14];\n\t\t}\n\t\tthis.transformsBuffer.write(0, data2);\n\t}\n\tsetFrustumPlanes(frustum) {\n\t\tthis.frustumPlanes.set(frustum.planeData);\n\t}\n\tcomputeFrustumPlanes(projectionMatrix, viewMatrix) {\n\t\t_viewProjMat2.mul2(projectionMatrix, viewMatrix);\n\t\t_frustum.setFromMat4(_viewProjMat2);\n\t\tthis.setFrustumPlanes(_frustum);\n\t}\n\tsetFisheyeData(cameraPos, cameraForward, maxTheta) {\n\t\tthis.fisheyeCameraPos[0] = cameraPos.x;\n\t\tthis.fisheyeCameraPos[1] = cameraPos.y;\n\t\tthis.fisheyeCameraPos[2] = cameraPos.z;\n\t\tthis.fisheyeCameraForward[0] = cameraForward.x;\n\t\tthis.fisheyeCameraForward[1] = cameraForward.y;\n\t\tthis.fisheyeCameraForward[2] = cameraForward.z;\n\t\tthis.fisheyeMaxTheta = maxTheta;\n\t}\n};\n\nvar _viewMat2 = new Mat4();\nvar _invModelMat = new Mat4();\nvar _modelScale = new Vec3();\nvar _modelRotation = new Quat();\nvar _tmpSize = new Vec2();\nvar _whiteColor = [1, 1, 1];\nvar GSplatWorkBufferRenderPass = class extends RenderPass {\n\tsplats = [];\n\tcolorsByLod = void 0;\n\tcameraNode = null;\n\tworkBuffer;\n\tcolorOnly;\n\t_usesWorkBufferGeometry = false;\n\t_modelScaleData = new Float32Array(3);\n\t_modelRotationData = new Float32Array(4);\n\t_cameraPositionData = new Float32Array(3);\n\t_textureSize = new Int32Array(2);\n\t_subDrawTexture;\n\t_partialData = [];\n\tconstructor(device, workBuffer, colorOnly = false) {\n\t\tsuper(device);\n\t\tthis.workBuffer = workBuffer;\n\t\tthis.colorOnly = colorOnly;\n\t\tthis._subDrawTexture = Texture.createDataTexture2D(device, \"GsplatSubDrawData\", 1, 1, PIXELFORMAT_RGBA32U);\n\t}\n\tdestroy() {\n\t\tthis.splats.length = 0;\n\t\tthis._subDrawTexture.destroy();\n\t\tsuper.destroy();\n\t}\n\tinit(renderTarget) {\n\t\tsuper.init(renderTarget);\n\t\tthis.colorOps.clear = false;\n\t\tthis.depthStencilOps.clearDepth = false;\n\t}\n\tupdate(splats, cameraNode, colorsByLod, changedAllocIds = null) {\n\t\tthis.splats.length = 0;\n\t\tthis._partialData.length = 0;\n\t\tthis.colorsByLod = colorsByLod;\n\t\tconst textureWidth = this.workBuffer.textureSize;\n\t\tif (changedAllocIds) {\n\t\t\tconst requiredCapacity = changedAllocIds.size * 3;\n\t\t\tif (this._subDrawTexture.width * this._subDrawTexture.height < requiredCapacity) {\n\t\t\t\tTextureUtils.calcTextureSize(requiredCapacity, _tmpSize);\n\t\t\t\tthis._subDrawTexture.resize(_tmpSize.x, _tmpSize.y);\n\t\t\t}\n\t\t\tconst texData = this._subDrawTexture.lock();\n\t\t\tlet writeOffset = 0;\n\t\t\tfor (let i2 = 0; i2 < splats.length; i2++) {\n\t\t\t\tconst splatInfo = splats[i2];\n\t\t\t\tif (splatInfo.activeSplats <= 0) continue;\n\t\t\t\tconst intervals = splatInfo.intervals;\n\t\t\t\tconst numIntervals = intervals.length / 2;\n\t\t\t\tif (numIntervals === 0) {\n\t\t\t\t\tif (changedAllocIds.has(splatInfo.allocId)) {\n\t\t\t\t\t\tthis.splats.push(splatInfo);\n\t\t\t\t\t\tthis._partialData.push(0, 0);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tconst baseOffset = writeOffset;\n\t\t\t\t\tconst allocIds = splatInfo.intervalAllocIds;\n\t\t\t\t\tfor (let j = 0; j < numIntervals; j++) {\n\t\t\t\t\t\tif (changedAllocIds.has(allocIds[j])) {\n\t\t\t\t\t\t\twriteOffset = splatInfo.appendSubDraws(\n\t\t\t\t\t\t\t\ttexData,\n\t\t\t\t\t\t\t\twriteOffset,\n\t\t\t\t\t\t\t\tintervals[j * 2],\n\t\t\t\t\t\t\t\tintervals[j * 2 + 1] - intervals[j * 2],\n\t\t\t\t\t\t\t\tsplatInfo.intervalOffsets[j],\n\t\t\t\t\t\t\t\ttextureWidth\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tconst count = writeOffset - baseOffset;\n\t\t\t\t\tif (count > 0) {\n\t\t\t\t\t\tthis.splats.push(splatInfo);\n\t\t\t\t\t\tthis._partialData.push(baseOffset, count);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._subDrawTexture.unlock();\n\t\t} else {\n\t\t\tfor (let i2 = 0; i2 < splats.length; i2++) {\n\t\t\t\tconst splatInfo = splats[i2];\n\t\t\t\tif (splatInfo.activeSplats > 0) {\n\t\t\t\t\tthis.splats.push(splatInfo);\n\t\t\t\t\tthis._partialData.push(0, 0);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tlet usesWorkBufferGeometry = false;\n\t\tfor (let i2 = 0; i2 < this.splats.length; i2++) {\n\t\t\tif (this._partialData[i2 * 2 + 1] === 0) {\n\t\t\t\tthis.splats[i2].ensureSubDrawTexture(textureWidth);\n\t\t\t}\n\t\t\tusesWorkBufferGeometry || (usesWorkBufferGeometry = this.splats[i2].resource.supportsWorkBufferGeometry);\n\t\t}\n\t\tthis._usesWorkBufferGeometry = usesWorkBufferGeometry;\n\t\tthis.cameraNode = cameraNode;\n\t\treturn this.splats.length > 0;\n\t}\n\texecute() {\n\t\tconst { device, splats, cameraNode, _partialData } = this;\n\t\tdevice.setDrawStates();\n\t\tconst viewInvMat2 = cameraNode.getWorldTransform();\n\t\tconst viewMat2 = _viewMat2.copy(viewInvMat2).invert();\n\t\tdevice.scope.resolve(\"matrix_view\").setValue(viewMat2.data);\n\t\tif (this.colorOnly && this._usesWorkBufferGeometry) {\n\t\t\tdevice.scope.resolve(\"uWorkBufferTransformA\").setValue(this.workBuffer.getTexture(\"dataTransformA\"));\n\t\t\tdevice.scope.resolve(\"uWorkBufferTransformB\").setValue(this.workBuffer.getTexture(\"dataTransformB\"));\n\t\t\tconst cameraPos = cameraNode.getPosition();\n\t\t\tthis._cameraPositionData[0] = cameraPos.x;\n\t\t\tthis._cameraPositionData[1] = cameraPos.y;\n\t\t\tthis._cameraPositionData[2] = cameraPos.z;\n\t\t\tdevice.scope.resolve(\"uCameraPosition\").setValue(this._cameraPositionData);\n\t\t}\n\t\tfor (let i2 = 0; i2 < splats.length; i2++) {\n\t\t\tconst count = _partialData[i2 * 2 + 1];\n\t\t\tif (count > 0) {\n\t\t\t\tthis.renderSplat(splats[i2], this._subDrawTexture, count, _partialData[i2 * 2]);\n\t\t\t} else {\n\t\t\t\tthis.renderSplat(splats[i2]);\n\t\t\t}\n\t\t}\n\t}\n\trenderSplat(splatInfo, overrideSubDrawTexture, overrideSubDrawCount, subDrawBase = 0) {\n\t\tconst { device, resource } = splatInfo;\n\t\tconst scope = device.scope;\n\t\tconst subDrawTexture = overrideSubDrawTexture ?? splatInfo.subDrawTexture;\n\t\tconst subDrawCount = overrideSubDrawCount ?? splatInfo.subDrawCount;\n\t\tconst workBufferModifier = splatInfo.getWorkBufferModifier?.() ?? null;\n\t\tconst formatHash = resource.format.hash;\n\t\tconst formatDeclarations = resource.format.getInputDeclarations();\n\t\tconst workBufferRenderInfo = resource.getWorkBufferRenderInfo(\n\t\t\tthis.colorOnly,\n\t\t\tworkBufferModifier,\n\t\t\tformatHash,\n\t\t\tformatDeclarations,\n\t\t\tthis.workBuffer.format\n\t\t);\n\t\tworkBufferRenderInfo.material.setParameters(device);\n\t\tconst color3 = this.colorsByLod?.[splatInfo.lodIndex] ?? this.colorsByLod?.[0] ?? _whiteColor;\n\t\tscope.resolve(\"uColorMultiply\").setValue(color3);\n\t\tconst worldTransform = splatInfo.node.getWorldTransform();\n\t\tworldTransform.getScale(_modelScale);\n\t\t_modelRotation.setFromMat4(worldTransform);\n\t\tif (_modelRotation.w < 0) {\n\t\t\t_modelRotation.mulScalar(-1);\n\t\t}\n\t\tthis._modelScaleData[0] = _modelScale.x;\n\t\tthis._modelScaleData[1] = _modelScale.y;\n\t\tthis._modelScaleData[2] = _modelScale.z;\n\t\tthis._modelRotationData[0] = _modelRotation.x;\n\t\tthis._modelRotationData[1] = _modelRotation.y;\n\t\tthis._modelRotationData[2] = _modelRotation.z;\n\t\tthis._modelRotationData[3] = _modelRotation.w;\n\t\tscope.resolve(\"matrix_model\").setValue(worldTransform.data);\n\t\tscope.resolve(\"model_scale\").setValue(this._modelScaleData);\n\t\tscope.resolve(\"model_rotation\").setValue(this._modelRotationData);\n\t\tif (this.colorOnly && resource.supportsWorkBufferGeometry) {\n\t\t\t_invModelMat.copy(worldTransform).invert();\n\t\t\tscope.resolve(\"matrix_model_inverse\").setValue(_invModelMat.data);\n\t\t}\n\t\tscope.resolve(\"uId\").setValue(splatInfo.placementId);\n\t\tif (splatInfo.parameters) {\n\t\t\tfor (const param of splatInfo.parameters.values()) {\n\t\t\t\tparam.scopeId.setValue(param.data);\n\t\t\t}\n\t\t}\n\t\tconst instanceStreams = splatInfo.getInstanceStreams?.();\n\t\tif (instanceStreams) {\n\t\t\tinstanceStreams.syncWithFormat(splatInfo.resource.format);\n\t\t\tfor (const [name, texture] of instanceStreams.textures) {\n\t\t\t\tscope.resolve(name).setValue(texture);\n\t\t\t}\n\t\t}\n\t\tscope.resolve(\"uSubDrawData\").setValue(subDrawTexture);\n\t\tscope.resolve(\"uSubDrawBase\").setValue(subDrawBase);\n\t\tconst ts = this.workBuffer.textureSize;\n\t\tthis._textureSize[0] = ts;\n\t\tthis._textureSize[1] = ts;\n\t\tscope.resolve(\"uTextureSize\").setValue(this._textureSize);\n\t\tworkBufferRenderInfo.quadRender.render(void 0, void 0, subDrawCount);\n\t}\n};\n\nvar GSplatStreams = class {\n\tdevice;\n\tformat = null;\n\ttextures = /* @__PURE__ */ new Map();\n\t_textureDimensions = new Vec2();\n\t_isInstance = false;\n\t_formatVersion = -1;\n\tget textureDimensions() {\n\t\treturn this._textureDimensions;\n\t}\n\tconstructor(device, isInstance = false) {\n\t\tthis.device = device;\n\t\tthis._isInstance = isInstance;\n\t}\n\tdestroy() {\n\t\tfor (const texture of this.textures.values()) {\n\t\t\ttexture.destroy();\n\t\t}\n\t\tthis.textures.clear();\n\t}\n\tinit(format, numElements) {\n\t\tthis.format = format;\n\t\tthis._textureDimensions = TextureUtils.calcTextureSize(numElements, new Vec2());\n\t\tconst streams = this._isInstance ? format.instanceStreams : format.resourceStreams;\n\t\tfor (const stream of streams) {\n\t\t\tconst texture = this.createTexture(stream.name, stream.format, this._textureDimensions);\n\t\t\tthis.textures.set(stream.name, texture);\n\t\t}\n\t\tthis._formatVersion = format.extraStreamsVersion;\n\t}\n\tgetTexture(name) {\n\t\tthis.syncWithFormat(this.format);\n\t\treturn this.textures.get(name);\n\t}\n\tgetTexturesInOrder() {\n\t\tconst result = [];\n\t\tif (this.format) {\n\t\t\tconst allStreams = this._isInstance ? this.format.instanceStreams : this.format.resourceStreams;\n\t\t\tfor (const stream of allStreams) {\n\t\t\t\tconst texture = this.textures.get(stream.name);\n\t\t\t\tif (texture) {\n\t\t\t\t\tresult.push(texture);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\tsyncWithFormat(format) {\n\t\tif (format) {\n\t\t\tif (this.format === format && this._formatVersion === format.extraStreamsVersion) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.format = format;\n\t\t\tconst streams = this._isInstance ? format.instanceStreams : format.resourceStreams;\n\t\t\tfor (const stream of streams) {\n\t\t\t\tif (!this.textures.has(stream.name)) {\n\t\t\t\t\tconst texture = this.createTexture(stream.name, stream.format, this._textureDimensions);\n\t\t\t\t\tthis.textures.set(stream.name, texture);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._formatVersion = format.extraStreamsVersion;\n\t\t}\n\t}\n\tresize(width, height) {\n\t\tthis._textureDimensions.set(width, height);\n\t\tfor (const texture of this.textures.values()) {\n\t\t\ttexture.resize(width, height);\n\t\t}\n\t}\n\tcreateTexture(name, format, size, data2) {\n\t\treturn Texture.createDataTexture2D(this.device, name, size.x, size.y, format, data2 ? [data2] : void 0);\n\t}\n};\n\nvar id12 = 0;\nvar WorkBufferRenderInfo = class {\n\tmaterial;\n\tquadRender;\n\tconstructor(device, key, material, colorOnly, format) {\n\t\tthis.material = material;\n\t\tconst clonedDefines = new Map(material.defines);\n\t\tconst colorStream = format.getStream(\"dataColor\");\n\t\tif (colorStream.format === PIXELFORMAT_RGBA16U) {\n\t\t\tclonedDefines.set(\"GSPLAT_COLOR_UINT\", \"\");\n\t\t}\n\t\tif (colorOnly) {\n\t\t\tclonedDefines.set(\"GSPLAT_COLOR_ONLY\", \"\");\n\t\t}\n\t\tif (format.getStream(\"pcId\")) {\n\t\t\tclonedDefines.set(\"GSPLAT_ID\", \"\");\n\t\t}\n\t\tconst fragmentIncludes = material.hasShaderChunks ? device.isWebGPU ? material.shaderChunks.wgsl : material.shaderChunks.glsl : void 0;\n\t\tconst outputStreams = colorOnly ? [colorStream] : [...format.streams, ...format.extraStreams];\n\t\tconst fragmentOutputTypes = [];\n\t\tfor (const stream of outputStreams) {\n\t\t\tconst info = getGlslShaderType(stream.format);\n\t\t\tfragmentOutputTypes.push(info.returnType);\n\t\t}\n\t\tconst useInstanced = clonedDefines.has(\"GSPLAT_LOD\");\n\t\tconst shaderOptions = {\n\t\t\tuniqueName: `SplatCopyToWorkBuffer:${key}`,\n\t\t\tattributes: { vertex_position: SEMANTIC_POSITION },\n\t\t\tvertexDefines: clonedDefines,\n\t\t\tfragmentDefines: clonedDefines,\n\t\t\tfragmentGLSL: gsplatCopyToWorkbuffer_default,\n\t\t\tfragmentWGSL: gsplatCopyToWorkbuffer_default2,\n\t\t\tfragmentIncludes,\n\t\t\tfragmentOutputTypes\n\t\t};\n\t\tif (useInstanced) {\n\t\t\tshaderOptions.vertexGLSL = gsplatCopyInstancedQuad_default;\n\t\t\tshaderOptions.vertexWGSL = gsplatCopyInstancedQuad_default2;\n\t\t} else {\n\t\t\tshaderOptions.vertexChunk = \"fullscreenQuadVS\";\n\t\t}\n\t\tconst shader = ShaderUtils.createShader(device, shaderOptions);\n\t\tthis.quadRender = new QuadRender(shader);\n\t}\n\tdestroy() {\n\t\tthis.material?.destroy();\n\t\tthis.quadRender?.destroy();\n\t}\n};\nvar GSplatWorkBuffer = class {\n\tdevice;\n\tformat;\n\tid = id12++;\n\tstreams;\n\trenderTarget;\n\tcolorRenderTarget;\n\torderTexture;\n\torderBuffer;\n\tuploadStream;\n\trenderPass;\n\tcolorRenderPass;\n\tfrustumCuller;\n\tconstructor(device, format) {\n\t\tthis.device = device;\n\t\tthis.format = format;\n\t\tthis.frustumCuller = new GSplatFrustumCuller(device);\n\t\tthis.streams = new GSplatStreams(device);\n\t\tthis.streams.init(format, 1);\n\t\tthis._createRenderTargets();\n\t\tthis.uploadStream = new UploadStream(device, !device.isWebGPU);\n\t\tif (device.isWebGPU) {\n\t\t\tthis.orderBuffer = new StorageBuffer(device, 4, BUFFERUSAGE_COPY_DST);\n\t\t} else {\n\t\t\tthis.orderTexture = new Texture(device, {\n\t\t\t\tname: \"SplatGlobalOrder\",\n\t\t\t\twidth: 1,\n\t\t\t\theight: 1,\n\t\t\t\tformat: PIXELFORMAT_R32U,\n\t\t\t\tmipmaps: false,\n\t\t\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE\n\t\t\t});\n\t\t}\n\t\tthis.renderPass = new GSplatWorkBufferRenderPass(device, this);\n\t\tthis.renderPass.init(this.renderTarget);\n\t\tthis.colorRenderPass = new GSplatWorkBufferRenderPass(device, this, true);\n\t\tthis.colorRenderPass.init(this.colorRenderTarget);\n\t}\n\t_createRenderTargets() {\n\t\tthis.renderTarget?.destroy();\n\t\tthis.colorRenderTarget?.destroy();\n\t\tconst colorBuffers = this.streams.getTexturesInOrder();\n\t\tthis.renderTarget = new RenderTarget({\n\t\t\tname: `GsplatWorkBuffer-MRT-${this.id}`,\n\t\t\tcolorBuffers,\n\t\t\tdepth: false,\n\t\t\torigin: RENDERTARGET_ORIGIN_BOTTOM\n\t\t});\n\t\tconst colorTexture = this.streams.getTexture(\"dataColor\");\n\t\tthis.colorRenderTarget = new RenderTarget({\n\t\t\tname: `GsplatWorkBuffer-Color-${this.id}`,\n\t\t\tcolorBuffer: colorTexture,\n\t\t\tdepth: false,\n\t\t\torigin: RENDERTARGET_ORIGIN_BOTTOM\n\t\t});\n\t\tthis.renderPass?.init(this.renderTarget);\n\t\tthis.colorRenderPass?.init(this.colorRenderTarget);\n\t}\n\tsyncWithFormat() {\n\t\tconst prevVersion = this.streams._formatVersion;\n\t\tthis.streams.syncWithFormat(this.format);\n\t\tif (prevVersion !== this.streams._formatVersion) {\n\t\t\tthis._createRenderTargets();\n\t\t}\n\t}\n\tgetTexture(name) {\n\t\treturn this.streams.getTexture(name);\n\t}\n\tdestroy() {\n\t\tthis.renderPass?.destroy();\n\t\tthis.colorRenderPass?.destroy();\n\t\tthis.streams.destroy();\n\t\tthis.orderTexture?.destroy();\n\t\tthis.orderBuffer?.destroy();\n\t\tthis.renderTarget?.destroy();\n\t\tthis.colorRenderTarget?.destroy();\n\t\tthis.uploadStream.destroy();\n\t\tthis.frustumCuller.destroy();\n\t}\n\tget textureSize() {\n\t\treturn this.streams.textureDimensions.x;\n\t}\n\tsetOrderData(data2) {\n\t\tconst size = this.textureSize;\n\t\tif (this.device.isWebGPU) {\n\t\t\tthis.uploadStream.upload(data2, this.orderBuffer, 0, data2.length);\n\t\t} else {\n\t\t\tthis.uploadStream.upload(data2, this.orderTexture, 0, data2.length);\n\t\t}\n\t}\n\tresize(textureSize) {\n\t\tthis.renderTarget.resize(textureSize, textureSize);\n\t\tthis.colorRenderTarget.resize(textureSize, textureSize);\n\t\tthis.streams.resize(textureSize, textureSize);\n\t\tif (this.device.isWebGPU) {\n\t\t\tconst newByteSize = textureSize * textureSize * 4;\n\t\t\tif (this.orderBuffer.byteSize < newByteSize) {\n\t\t\t\tthis.orderBuffer.destroy();\n\t\t\t\tthis.orderBuffer = new StorageBuffer(this.device, newByteSize, BUFFERUSAGE_COPY_DST);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.orderTexture.resize(textureSize, textureSize);\n\t\t}\n\t}\n\trender(splats, cameraNode, colorsByLod, changedAllocIds = null) {\n\t\tif (this.renderPass.update(splats, cameraNode, colorsByLod, changedAllocIds)) {\n\t\t\tthis.renderPass.render();\n\t\t}\n\t}\n\trenderColor(splats, cameraNode, colorsByLod, changedAllocIds = null) {\n\t\tif (this.colorRenderPass.update(splats, cameraNode, colorsByLod, changedAllocIds)) {\n\t\t\tthis.colorRenderPass.render();\n\t\t}\n\t}\n};\n\nvar GSplatResourceCleanup = class _GSplatResourceCleanup {\n\tstatic _cache = new DeviceCache();\n\t_pendingDestroy = /* @__PURE__ */ new Set();\n\tstatic queueDestroy(device, resource) {\n\t\tthis._cache.get(device, () => new _GSplatResourceCleanup())._pendingDestroy.add(resource);\n\t}\n\tstatic process(device) {\n\t\tconst pending = this._cache.get(device, () => new _GSplatResourceCleanup())._pendingDestroy;\n\t\tfor (const resource of pending) {\n\t\t\tif (resource.refCount === 0) {\n\t\t\t\tresource._actualDestroy();\n\t\t\t\tpending.delete(resource);\n\t\t\t}\n\t\t}\n\t}\n\tdestroy() {\n\t\tthis._pendingDestroy.clear();\n\t}\n};\n\nvar id13 = 0;\nvar tempMap = /* @__PURE__ */ new Map();\nvar GSplatResourceBase = class _GSplatResourceBase {\n\tdevice;\n\tgsplatData;\n\tset centers(value) {\n\t\tthis._centers = value;\n\t}\n\tget centers() {\n\t\treturn this._centers;\n\t}\n\tget hasCenters() {\n\t\treturn this._centers != null;\n\t}\n\t_centers = null;\n\tcentersVersion = 0;\n\taabb;\n\tmesh = null;\n\tid = id13++;\n\tworkBufferRenderInfos = /* @__PURE__ */ new Map();\n\t_format = null;\n\tstreams;\n\tparameters = /* @__PURE__ */ new Map();\n\t_refCount = 0;\n\t_meshRefCount = 0;\n\tconstructor(device, gsplatData, options2 = {}) {\n\t\tthis.device = device;\n\t\tthis.gsplatData = gsplatData;\n\t\tthis.streams = new GSplatStreams(device);\n\t\tif (options2.prepareCenters !== false) {\n\t\t\tthis._centers = gsplatData.getCenters();\n\t\t} else {\n\t\t\tthis._centers = null;\n\t\t}\n\t\tthis.aabb = new BoundingBox();\n\t\tgsplatData.calcAabb(this.aabb);\n\t}\n\tdestroy() {\n\t\tif (this.refCount > 0) {\n\t\t\tGSplatResourceCleanup.queueDestroy(this.device, this);\n\t\t\treturn;\n\t\t}\n\t\tthis._actualDestroy();\n\t}\n\t_actualDestroy() {\n\t\tthis.streams.destroy();\n\t\tthis.mesh?.destroy();\n\t\tthis.workBufferRenderInfos.forEach((info) => info.destroy());\n\t\tthis.workBufferRenderInfos.clear();\n\t}\n\tincRefCount() {\n\t\tthis._refCount++;\n\t}\n\tdecRefCount() {\n\t\tthis._refCount--;\n\t}\n\tget refCount() {\n\t\treturn this._refCount;\n\t}\n\tensureMesh() {\n\t\tif (!this.mesh) {\n\t\t\tthis.mesh = _GSplatResourceBase.createMesh(this.device);\n\t\t\tthis.mesh.aabb.copy(this.aabb);\n\t\t}\n\t\tthis._meshRefCount++;\n\t}\n\treleaseMesh() {\n\t\tthis._meshRefCount--;\n\t\tif (this._meshRefCount < 1) {\n\t\t\tthis.mesh = null;\n\t\t}\n\t}\n\tget supportsWorkBufferGeometry() {\n\t\treturn false;\n\t}\n\tgetWorkBufferRenderInfo(colorOnly, workBufferModifier, formatHash, formatDeclarations, workBufferFormat) {\n\t\tthis.configureMaterialDefines(tempMap);\n\t\ttempMap.set(\"GSPLAT_LOD\", \"\");\n\t\tif (colorOnly) {\n\t\t\ttempMap.set(\"GSPLAT_COLOR_ONLY\", \"\");\n\t\t\tif (this.supportsWorkBufferGeometry) {\n\t\t\t\ttempMap.set(\"GSPLAT_WORKBUFFER_GEOMETRY\", \"\");\n\t\t\t\tif (workBufferFormat.dataFormat === GSPLATDATA_COMPACT) {\n\t\t\t\t\ttempMap.set(\"GSPLAT_WORKBUFFER_COMPACT\", \"\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tlet definesKey = \"\";\n\t\tfor (const [k, v6] of tempMap) {\n\t\t\tif (definesKey) definesKey += \";\";\n\t\t\tdefinesKey += `${k}=${v6}`;\n\t\t}\n\t\tconst key = `${formatHash};${workBufferFormat.hash};${workBufferModifier?.hash ?? 0};${definesKey}`;\n\t\tlet info = this.workBufferRenderInfos.get(key);\n\t\tif (!info) {\n\t\t\tconst material = new ShaderMaterial();\n\t\t\tthis.configureMaterial(material, workBufferModifier, formatDeclarations);\n\t\t\tconst chunks = this.device.isWebGPU ? material.shaderChunks.wgsl : material.shaderChunks.glsl;\n\t\t\tconst outputStreams = colorOnly ? [workBufferFormat.getStream(\"dataColor\")] : [...workBufferFormat.streams, ...workBufferFormat.extraStreams];\n\t\t\tlet outputCode = workBufferFormat.getOutputDeclarations(outputStreams);\n\t\t\tif (colorOnly && workBufferFormat.extraStreams.length > 0) {\n\t\t\t\toutputCode += `\n${workBufferFormat.getOutputStubs(workBufferFormat.extraStreams)}`;\n\t\t\t}\n\t\t\tchunks.set(\"gsplatWorkBufferOutputVS\", outputCode);\n\t\t\tconst writeCode = workBufferFormat.getWriteCode();\n\t\t\tif (writeCode) {\n\t\t\t\tchunks.set(\"gsplatWriteVS\", writeCode);\n\t\t\t}\n\t\t\ttempMap.forEach((v6, k) => material.setDefine(k, v6));\n\t\t\tinfo = new WorkBufferRenderInfo(this.device, key, material, colorOnly, workBufferFormat);\n\t\t\tthis.workBufferRenderInfos.set(key, info);\n\t\t}\n\t\ttempMap.clear();\n\t\treturn info;\n\t}\n\tstatic createMesh(device) {\n\t\tconst splatInstanceSize = _GSplatResourceBase.instanceSize;\n\t\tconst meshPositions = new Float32Array(12 * splatInstanceSize);\n\t\tconst meshIndices = new Uint32Array(6 * splatInstanceSize);\n\t\tfor (let i2 = 0; i2 < splatInstanceSize; ++i2) {\n\t\t\tmeshPositions.set([\n\t\t\t\t-1,\n\t\t\t\t-1,\n\t\t\t\ti2,\n\t\t\t\t1,\n\t\t\t\t-1,\n\t\t\t\ti2,\n\t\t\t\t1,\n\t\t\t\t1,\n\t\t\t\ti2,\n\t\t\t\t-1,\n\t\t\t\t1,\n\t\t\t\ti2\n\t\t\t], i2 * 12);\n\t\t\tconst b = i2 * 4;\n\t\t\tmeshIndices.set([\n\t\t\t\t0 + b,\n\t\t\t\t1 + b,\n\t\t\t\t2 + b,\n\t\t\t\t0 + b,\n\t\t\t\t2 + b,\n\t\t\t\t3 + b\n\t\t\t], i2 * 6);\n\t\t}\n\t\tconst mesh = new Mesh(device);\n\t\tmesh.setPositions(meshPositions, 3);\n\t\tmesh.setIndices(meshIndices);\n\t\tmesh.update();\n\t\treturn mesh;\n\t}\n\tstatic get instanceSize() {\n\t\treturn 128;\n\t}\n\tget numSplats() {\n\t\treturn this.gsplatData.numSplats;\n\t}\n\tget format() {\n\t\treturn this._format;\n\t}\n\tgetTexture(name) {\n\t\treturn this.streams.getTexture(name) ?? null;\n\t}\n\tget textureDimensions() {\n\t\treturn this.streams.textureDimensions;\n\t}\n\tconfigureMaterial(material, workBufferModifier, formatDeclarations) {\n\t\tthis.configureMaterialDefines(material.defines);\n\t\tthis.streams.syncWithFormat(this.format);\n\t\tconst chunks = this.device.isWebGPU ? material.shaderChunks.wgsl : material.shaderChunks.glsl;\n\t\tchunks.set(\"gsplatDeclarationsVS\", formatDeclarations);\n\t\tchunks.set(\"gsplatReadVS\", this.format.getReadCode());\n\t\tif (workBufferModifier?.code) {\n\t\t\tchunks.set(\"gsplatModifyVS\", workBufferModifier.code);\n\t\t}\n\t\tfor (const [name, texture] of this.streams.textures) {\n\t\t\tmaterial.setParameter(name, texture);\n\t\t}\n\t\tfor (const [name, value] of this.parameters) {\n\t\t\tmaterial.setParameter(name, value);\n\t\t}\n\t\tif (this.textureDimensions.x > 0) {\n\t\t\tmaterial.setParameter(\"splatTextureSize\", this.textureDimensions.x);\n\t\t}\n\t}\n\tconfigureMaterialDefines(defines) {\n\t}\n\tinstantiate() {\n\t}\n};\n\nvar GSplatContainer = class extends GSplatResourceBase {\n\t_maxSplats = 0;\n\t_numSplats = 0;\n\tconstructor(device, maxSplats, format) {\n\t\tconst aabb3 = new BoundingBox();\n\t\tconst gsplatData = {\n\t\t\tnumSplats: maxSplats,\n\t\t\tgetCenters: () => null,\n\t\t\tcalcAabb: (box) => box.copy(aabb3)\n\t\t};\n\t\tsuper(device, gsplatData, { prepareCenters: false });\n\t\tthis._format = format;\n\t\tthis._maxSplats = maxSplats;\n\t\tthis._numSplats = maxSplats;\n\t\tthis.streams.init(this._format, maxSplats);\n\t}\n\tset centers(value) {\n\t\tthis._centers = value;\n\t}\n\tget centers() {\n\t\tif (this._centers === null) {\n\t\t\tthis._centers = new Float32Array(this._maxSplats * 3);\n\t\t\tthis.centersVersion++;\n\t\t}\n\t\treturn this._centers;\n\t}\n\tget maxSplats() {\n\t\treturn this._maxSplats;\n\t}\n\tget numSplats() {\n\t\treturn this._numSplats;\n\t}\n\tupdate(numSplats = this._numSplats, centersUpdated = true) {\n\t\tthis._numSplats = math.clamp(numSplats, 0, this._maxSplats);\n\t\tif (centersUpdated) {\n\t\t\tthis.centersVersion++;\n\t\t}\n\t}\n\tconfigureMaterialDefines(defines) {\n\t\tdefines.set(\"SH_BANDS\", \"0\");\n\t}\n\tconfigureMaterial(material, workBufferModifier = null, formatDeclarations) {\n\t\tsuper.configureMaterial(material, workBufferModifier, formatDeclarations);\n\t\tconst chunks = this.device.isWebGPU ? material.shaderChunks.wgsl : material.shaderChunks.glsl;\n\t\tchunks.set(\"gsplatContainerDeclarationsVS\", this.format.getInputDeclarations());\n\t\tchunks.set(\"gsplatDeclarationsVS\", '#include \"gsplatContainerDeclVS\"');\n\t\tchunks.set(\"gsplatReadVS\", this.format.getReadCode());\n\t}\n};\n\nvar mat4 = new Mat4();\nvar quat = new Quat();\nvar aabb = new BoundingBox();\nvar aabb2 = new BoundingBox();\nvar debugColor = new Color(1, 1, 0, 0.4);\nvar SH_C0 = 0.28209479177387814;\nvar SplatIterator = class {\n\tconstructor(gsplatData, p, r, s2, c2) {\n\t\tconst activated = gsplatData.activated;\n\t\tconst x3 = gsplatData.getProp(\"x\");\n\t\tconst y2 = gsplatData.getProp(\"y\");\n\t\tconst z2 = gsplatData.getProp(\"z\");\n\t\tconst rx = gsplatData.getProp(\"rot_1\");\n\t\tconst ry = gsplatData.getProp(\"rot_2\");\n\t\tconst rz = gsplatData.getProp(\"rot_3\");\n\t\tconst rw = gsplatData.getProp(\"rot_0\");\n\t\tconst sx = gsplatData.getProp(\"scale_0\");\n\t\tconst sy = gsplatData.getProp(\"scale_1\");\n\t\tconst sz = gsplatData.getProp(\"scale_2\");\n\t\tconst cr = gsplatData.getProp(\"f_dc_0\");\n\t\tconst cg = gsplatData.getProp(\"f_dc_1\");\n\t\tconst cb = gsplatData.getProp(\"f_dc_2\");\n\t\tconst ca = gsplatData.getProp(\"opacity\");\n\t\tconst sigmoid = (v6) => {\n\t\t\tif (v6 > 0) {\n\t\t\t\treturn 1 / (1 + Math.exp(-v6));\n\t\t\t}\n\t\t\tconst t = Math.exp(v6);\n\t\t\treturn t / (1 + t);\n\t\t};\n\t\tthis.read = (i2) => {\n\t\t\tif (p) {\n\t\t\t\tp.x = x3[i2];\n\t\t\t\tp.y = y2[i2];\n\t\t\t\tp.z = z2[i2];\n\t\t\t}\n\t\t\tif (r) {\n\t\t\t\tr.set(rx[i2], ry[i2], rz[i2], rw[i2]);\n\t\t\t}\n\t\t\tif (s2) {\n\t\t\t\tif (activated) {\n\t\t\t\t\ts2.set(sx[i2], sy[i2], sz[i2]);\n\t\t\t\t} else {\n\t\t\t\t\ts2.set(Math.exp(sx[i2]), Math.exp(sy[i2]), Math.exp(sz[i2]));\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (c2) {\n\t\t\t\tc2.set(\n\t\t\t\t\t0.5 + cr[i2] * SH_C0,\n\t\t\t\t\t0.5 + cg[i2] * SH_C0,\n\t\t\t\t\t0.5 + cb[i2] * SH_C0,\n\t\t\t\t\tactivated ? ca[i2] : sigmoid(ca[i2])\n\t\t\t\t);\n\t\t\t}\n\t\t};\n\t}\n};\nvar calcSplatMat = (result, p, r) => {\n\tquat.set(r.x, r.y, r.z, r.w).normalize();\n\tresult.setTRS(p, quat, Vec3.ONE);\n};\nvar GSplatData = class _GSplatData {\n\telements;\n\tnumSplats;\n\tcomments;\n\tactivated = false;\n\tconstructor(elements, comments = []) {\n\t\tthis.elements = elements;\n\t\tthis.numSplats = this.getElement(\"vertex\").count;\n\t\tthis.comments = comments;\n\t}\n\tstatic calcSplatAabb(result, p, r, s2) {\n\t\tcalcSplatMat(mat4, p, r);\n\t\taabb.center.set(0, 0, 0);\n\t\taabb.halfExtents.set(s2.x * 2, s2.y * 2, s2.z * 2);\n\t\tresult.setFromTransformedAabb(aabb, mat4);\n\t}\n\t// access a named property\n\tgetProp(name, elementName = \"vertex\") {\n\t\treturn this.getElement(elementName)?.properties.find((p) => p.name === name)?.storage;\n\t}\n\t// access the named element\n\tgetElement(name) {\n\t\treturn this.elements.find((e) => e.name === name);\n\t}\n\t// add a new property\n\taddProp(name, storage) {\n\t\tthis.getElement(\"vertex\").properties.push({\n\t\t\ttype: \"float\",\n\t\t\tname,\n\t\t\tstorage,\n\t\t\tbyteSize: 4\n\t\t});\n\t}\n\tcreateIter(p, r, s2, c2) {\n\t\treturn new SplatIterator(this, p, r, s2, c2);\n\t}\n\tcalcAabb(result, pred) {\n\t\tlet mx, my, mz, Mx, My, Mz;\n\t\tlet first = true;\n\t\tconst x3 = this.getProp(\"x\");\n\t\tconst y2 = this.getProp(\"y\");\n\t\tconst z2 = this.getProp(\"z\");\n\t\tconst sx = this.getProp(\"scale_0\");\n\t\tconst sy = this.getProp(\"scale_1\");\n\t\tconst sz = this.getProp(\"scale_2\");\n\t\tfor (let i2 = 0; i2 < this.numSplats; ++i2) {\n\t\t\tif (pred && !pred(i2)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst px = x3[i2];\n\t\t\tconst py = y2[i2];\n\t\t\tconst pz = z2[i2];\n\t\t\tconst scale2 = Math.max(sx[i2], sy[i2], sz[i2]);\n\t\t\tif (!isFinite(px) || !isFinite(py) || !isFinite(pz) || !isFinite(scale2)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst scaleVal = 2 * (this.activated ? scale2 : Math.exp(scale2));\n\t\t\tif (first) {\n\t\t\t\tfirst = false;\n\t\t\t\tmx = px - scaleVal;\n\t\t\t\tmy = py - scaleVal;\n\t\t\t\tmz = pz - scaleVal;\n\t\t\t\tMx = px + scaleVal;\n\t\t\t\tMy = py + scaleVal;\n\t\t\t\tMz = pz + scaleVal;\n\t\t\t} else {\n\t\t\t\tmx = Math.min(mx, px - scaleVal);\n\t\t\t\tmy = Math.min(my, py - scaleVal);\n\t\t\t\tmz = Math.min(mz, pz - scaleVal);\n\t\t\t\tMx = Math.max(Mx, px + scaleVal);\n\t\t\t\tMy = Math.max(My, py + scaleVal);\n\t\t\t\tMz = Math.max(Mz, pz + scaleVal);\n\t\t\t}\n\t\t}\n\t\tif (!first) {\n\t\t\tresult.center.set((mx + Mx) * 0.5, (my + My) * 0.5, (mz + Mz) * 0.5);\n\t\t\tresult.halfExtents.set((Mx - mx) * 0.5, (My - my) * 0.5, (Mz - mz) * 0.5);\n\t\t}\n\t\treturn !first;\n\t}\n\tcalcAabbExact(result, pred) {\n\t\tconst p = new Vec3();\n\t\tconst r = new Quat();\n\t\tconst s2 = new Vec3();\n\t\tconst iter = this.createIter(p, r, s2);\n\t\tlet first = true;\n\t\tfor (let i2 = 0; i2 < this.numSplats; ++i2) {\n\t\t\tif (pred && !pred(i2)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\titer.read(i2);\n\t\t\tif (first) {\n\t\t\t\tfirst = false;\n\t\t\t\t_GSplatData.calcSplatAabb(result, p, r, s2);\n\t\t\t} else {\n\t\t\t\t_GSplatData.calcSplatAabb(aabb2, p, r, s2);\n\t\t\t\tresult.add(aabb2);\n\t\t\t}\n\t\t}\n\t\treturn !first;\n\t}\n\tgetCenters() {\n\t\tconst x3 = this.getProp(\"x\");\n\t\tconst y2 = this.getProp(\"y\");\n\t\tconst z2 = this.getProp(\"z\");\n\t\tconst result = new Float32Array(this.numSplats * 3);\n\t\tfor (let i2 = 0; i2 < this.numSplats; ++i2) {\n\t\t\tresult[i2 * 3 + 0] = x3[i2];\n\t\t\tresult[i2 * 3 + 1] = y2[i2];\n\t\t\tresult[i2 * 3 + 2] = z2[i2];\n\t\t}\n\t\treturn result;\n\t}\n\tcalcFocalPoint(result, pred) {\n\t\tconst x3 = this.getProp(\"x\");\n\t\tconst y2 = this.getProp(\"y\");\n\t\tconst z2 = this.getProp(\"z\");\n\t\tconst sx = this.getProp(\"scale_0\");\n\t\tconst sy = this.getProp(\"scale_1\");\n\t\tconst sz = this.getProp(\"scale_2\");\n\t\tresult.x = 0;\n\t\tresult.y = 0;\n\t\tresult.z = 0;\n\t\tlet sum = 0;\n\t\tfor (let i2 = 0; i2 < this.numSplats; ++i2) {\n\t\t\tif (pred && !pred(i2)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst px = x3[i2];\n\t\t\tconst py = y2[i2];\n\t\t\tconst pz = z2[i2];\n\t\t\tif (!isFinite(px) || !isFinite(py) || !isFinite(pz)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst maxScale = Math.max(sx[i2], sy[i2], sz[i2]);\n\t\t\tconst weight = 1 / (1 + (this.activated ? maxScale : Math.exp(maxScale)));\n\t\t\tresult.x += px * weight;\n\t\t\tresult.y += py * weight;\n\t\t\tresult.z += pz * weight;\n\t\t\tsum += weight;\n\t\t}\n\t\tresult.mulScalar(1 / sum);\n\t}\n\trenderWireframeBounds(scene, worldMat) {\n\t\tconst p = new Vec3();\n\t\tconst r = new Quat();\n\t\tconst s2 = new Vec3();\n\t\tconst min = new Vec3();\n\t\tconst max = new Vec3();\n\t\tconst iter = this.createIter(p, r, s2);\n\t\tfor (let i2 = 0; i2 < this.numSplats; ++i2) {\n\t\t\titer.read(i2);\n\t\t\tcalcSplatMat(mat4, p, r);\n\t\t\tmat4.mul2(worldMat, mat4);\n\t\t\tmin.set(s2.x * -2, s2.y * -2, s2.z * -2);\n\t\t\tmax.set(s2.x * 2, s2.y * 2, s2.z * 2);\n\t\t\tscene.immediate.drawWireAlignedBox(min, max, debugColor, true, scene.defaultDrawLayer, mat4);\n\t\t}\n\t}\n\tget isCompressed() {\n\t\treturn false;\n\t}\n\t// return the number of spherical harmonic bands present. value will be between 0 and 3 inclusive.\n\tget shBands() {\n\t\tconst numProps = () => {\n\t\t\tfor (let i2 = 0; i2 < 45; ++i2) {\n\t\t\t\tif (!this.getProp(`f_rest_${i2}`)) {\n\t\t\t\t\treturn i2;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn 45;\n\t\t};\n\t\tconst sizes = {\n\t\t\t9: 1,\n\t\t\t24: 2,\n\t\t\t45: 3\n\t\t};\n\t\treturn sizes[numProps()] ?? 0;\n\t}\n\tcalcMortonOrder() {\n\t\tconst calcMinMax = (arr) => {\n\t\t\tlet min = arr[0];\n\t\t\tlet max = arr[0];\n\t\t\tfor (let i2 = 1; i2 < arr.length; i2++) {\n\t\t\t\tif (arr[i2] < min) min = arr[i2];\n\t\t\t\tif (arr[i2] > max) max = arr[i2];\n\t\t\t}\n\t\t\treturn { min, max };\n\t\t};\n\t\tconst encodeMorton3 = (x4, y3, z3) => {\n\t\t\tconst Part1By2 = (x5) => {\n\t\t\t\tx5 &= 1023;\n\t\t\t\tx5 = (x5 ^ x5 << 16) & 4278190335;\n\t\t\t\tx5 = (x5 ^ x5 << 8) & 50393103;\n\t\t\t\tx5 = (x5 ^ x5 << 4) & 51130563;\n\t\t\t\tx5 = (x5 ^ x5 << 2) & 153391689;\n\t\t\t\treturn x5;\n\t\t\t};\n\t\t\treturn (Part1By2(z3) << 2) + (Part1By2(y3) << 1) + Part1By2(x4);\n\t\t};\n\t\tconst x3 = this.getProp(\"x\");\n\t\tconst y2 = this.getProp(\"y\");\n\t\tconst z2 = this.getProp(\"z\");\n\t\tconst { min: minX, max: maxX } = calcMinMax(x3);\n\t\tconst { min: minY, max: maxY } = calcMinMax(y2);\n\t\tconst { min: minZ, max: maxZ } = calcMinMax(z2);\n\t\tconst sizeX = minX === maxX ? 0 : 1024 / (maxX - minX);\n\t\tconst sizeY = minY === maxY ? 0 : 1024 / (maxY - minY);\n\t\tconst sizeZ = minZ === maxZ ? 0 : 1024 / (maxZ - minZ);\n\t\tconst codes = /* @__PURE__ */ new Map();\n\t\tfor (let i2 = 0; i2 < this.numSplats; i2++) {\n\t\t\tconst ix = Math.min(1023, Math.floor((x3[i2] - minX) * sizeX));\n\t\t\tconst iy = Math.min(1023, Math.floor((y2[i2] - minY) * sizeY));\n\t\t\tconst iz = Math.min(1023, Math.floor((z2[i2] - minZ) * sizeZ));\n\t\t\tconst code = encodeMorton3(ix, iy, iz);\n\t\t\tconst val = codes.get(code);\n\t\t\tif (val) {\n\t\t\t\tval.push(i2);\n\t\t\t} else {\n\t\t\t\tcodes.set(code, [i2]);\n\t\t\t}\n\t\t}\n\t\tconst keys = Array.from(codes.keys()).sort((a, b) => a - b);\n\t\tconst indices = new Uint32Array(this.numSplats);\n\t\tlet idx = 0;\n\t\tfor (let i2 = 0; i2 < keys.length; ++i2) {\n\t\t\tconst val = codes.get(keys[i2]);\n\t\t\tfor (let j = 0; j < val.length; ++j) {\n\t\t\t\tindices[idx++] = val[j];\n\t\t\t}\n\t\t}\n\t\treturn indices;\n\t}\n\t// reorder the splat data to aid in better gpu memory access at render time\n\treorder(order) {\n\t\tconst cache = /* @__PURE__ */ new Map();\n\t\tconst getStorage = (size) => {\n\t\t\tif (cache.has(size)) {\n\t\t\t\tconst buffer = cache.get(size);\n\t\t\t\tcache.delete(size);\n\t\t\t\treturn buffer;\n\t\t\t}\n\t\t\treturn new ArrayBuffer(size);\n\t\t};\n\t\tconst returnStorage = (buffer) => {\n\t\t\tcache.set(buffer.byteLength, buffer);\n\t\t};\n\t\tconst reorder = (data2) => {\n\t\t\tconst result = new data2.constructor(getStorage(data2.byteLength));\n\t\t\tfor (let i2 = 0; i2 < order.length; i2++) {\n\t\t\t\tresult[i2] = data2[order[i2]];\n\t\t\t}\n\t\t\treturnStorage(data2.buffer);\n\t\t\treturn result;\n\t\t};\n\t\tthis.elements.forEach((element) => {\n\t\t\telement.properties.forEach((property) => {\n\t\t\t\tif (property.storage) {\n\t\t\t\t\tproperty.storage = reorder(property.storage);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\t// reorder the splat data to aid in better gpu memory access at render time\n\treorderData() {\n\t\tthis.reorder(this.calcMortonOrder());\n\t}\n};\n\nfunction SortWorker() {\n\tconst myself = typeof self !== \"undefined\" && self || __require(\"node:worker_threads\").parentPort;\n\tlet order;\n\tlet centers;\n\tlet chunks;\n\tlet mapping;\n\tlet cameraPosition3;\n\tlet cameraDirection3;\n\tlet forceUpdate = false;\n\tconst lastCameraPosition = { x: 0, y: 0, z: 0 };\n\tconst lastCameraDirection = { x: 0, y: 0, z: 0 };\n\tconst boundMin = { x: 0, y: 0, z: 0 };\n\tconst boundMax = { x: 0, y: 0, z: 0 };\n\tlet distances;\n\tlet countBuffer;\n\tconst numBins = 32;\n\tconst binCount = new Array(numBins).fill(0);\n\tconst binBase = new Array(numBins).fill(0);\n\tconst binDivider = new Array(numBins).fill(0);\n\tconst binarySearch = (m, n, compare_fn) => {\n\t\twhile (m <= n) {\n\t\t\tconst k = n + m >> 1;\n\t\t\tconst cmp = compare_fn(k);\n\t\t\tif (cmp > 0) {\n\t\t\t\tm = k + 1;\n\t\t\t} else if (cmp < 0) {\n\t\t\t\tn = k - 1;\n\t\t\t} else {\n\t\t\t\treturn k;\n\t\t\t}\n\t\t}\n\t\treturn ~m;\n\t};\n\tconst update = () => {\n\t\tif (!order || !centers || centers.length === 0 || !cameraPosition3 || !cameraDirection3) return;\n\t\tconst sortStartTime = performance.now();\n\t\tconst px = cameraPosition3.x;\n\t\tconst py = cameraPosition3.y;\n\t\tconst pz = cameraPosition3.z;\n\t\tconst dx = cameraDirection3.x;\n\t\tconst dy = cameraDirection3.y;\n\t\tconst dz = cameraDirection3.z;\n\t\tconst epsilon = 1e-3;\n\t\tif (!forceUpdate && Math.abs(px - lastCameraPosition.x) < epsilon && Math.abs(py - lastCameraPosition.y) < epsilon && Math.abs(pz - lastCameraPosition.z) < epsilon && Math.abs(dx - lastCameraDirection.x) < epsilon && Math.abs(dy - lastCameraDirection.y) < epsilon && Math.abs(dz - lastCameraDirection.z) < epsilon) {\n\t\t\treturn;\n\t\t}\n\t\tforceUpdate = false;\n\t\tlastCameraPosition.x = px;\n\t\tlastCameraPosition.y = py;\n\t\tlastCameraPosition.z = pz;\n\t\tlastCameraDirection.x = dx;\n\t\tlastCameraDirection.y = dy;\n\t\tlastCameraDirection.z = dz;\n\t\tlet minDist;\n\t\tlet maxDist;\n\t\tfor (let i2 = 0; i2 < 8; ++i2) {\n\t\t\tconst x3 = i2 & 1 ? boundMin.x : boundMax.x;\n\t\t\tconst y2 = i2 & 2 ? boundMin.y : boundMax.y;\n\t\t\tconst z2 = i2 & 4 ? boundMin.z : boundMax.z;\n\t\t\tconst d = x3 * dx + y2 * dy + z2 * dz;\n\t\t\tif (i2 === 0) {\n\t\t\t\tminDist = maxDist = d;\n\t\t\t} else {\n\t\t\t\tminDist = Math.min(minDist, d);\n\t\t\t\tmaxDist = Math.max(maxDist, d);\n\t\t\t}\n\t\t}\n\t\tconst numVertices = centers.length / 3;\n\t\tconst compareBits = Math.max(10, Math.min(20, Math.round(Math.log2(numVertices / 4))));\n\t\tconst bucketCount = 2 ** compareBits + 1;\n\t\tif (distances?.length !== numVertices) {\n\t\t\tdistances = new Uint32Array(numVertices);\n\t\t}\n\t\tif (!countBuffer || countBuffer.length !== bucketCount) {\n\t\t\tcountBuffer = new Uint32Array(bucketCount);\n\t\t} else {\n\t\t\tcountBuffer.fill(0);\n\t\t}\n\t\tconst range = maxDist - minDist;\n\t\tif (range < 1e-6) {\n\t\t\tfor (let i2 = 0; i2 < numVertices; ++i2) {\n\t\t\t\tdistances[i2] = 0;\n\t\t\t\tcountBuffer[0]++;\n\t\t\t}\n\t\t} else {\n\t\t\tconst numChunks = chunks.length / 4;\n\t\t\tbinCount.fill(0);\n\t\t\tfor (let i2 = 0; i2 < numChunks; ++i2) {\n\t\t\t\tconst x3 = chunks[i2 * 4 + 0];\n\t\t\t\tconst y2 = chunks[i2 * 4 + 1];\n\t\t\t\tconst z2 = chunks[i2 * 4 + 2];\n\t\t\t\tconst r = chunks[i2 * 4 + 3];\n\t\t\t\tconst d = x3 * dx + y2 * dy + z2 * dz - minDist;\n\t\t\t\tconst binMin = Math.max(0, Math.floor((d - r) * numBins / range));\n\t\t\t\tconst binMax = Math.min(numBins, Math.ceil((d + r) * numBins / range));\n\t\t\t\tfor (let j = binMin; j < binMax; ++j) {\n\t\t\t\t\tbinCount[j]++;\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst binTotal = binCount.reduce((a, b) => a + b, 0);\n\t\t\tfor (let i2 = 0; i2 < numBins; ++i2) {\n\t\t\t\tbinDivider[i2] = binCount[i2] / binTotal * bucketCount >>> 0;\n\t\t\t}\n\t\t\tfor (let i2 = 0; i2 < numBins; ++i2) {\n\t\t\t\tbinBase[i2] = i2 === 0 ? 0 : binBase[i2 - 1] + binDivider[i2 - 1];\n\t\t\t}\n\t\t\tconst binRange = range / numBins;\n\t\t\tlet ii = 0;\n\t\t\tfor (let i2 = 0; i2 < numVertices; ++i2) {\n\t\t\t\tconst x3 = centers[ii++];\n\t\t\t\tconst y2 = centers[ii++];\n\t\t\t\tconst z2 = centers[ii++];\n\t\t\t\tconst d = (x3 * dx + y2 * dy + z2 * dz - minDist) / binRange;\n\t\t\t\tconst bin = d >>> 0;\n\t\t\t\tconst sortKey = binBase[bin] + binDivider[bin] * (d - bin) >>> 0;\n\t\t\t\tdistances[i2] = sortKey;\n\t\t\t\tcountBuffer[sortKey]++;\n\t\t\t}\n\t\t}\n\t\tfor (let i2 = 1; i2 < bucketCount; i2++) {\n\t\t\tcountBuffer[i2] += countBuffer[i2 - 1];\n\t\t}\n\t\tfor (let i2 = 0; i2 < numVertices; i2++) {\n\t\t\tconst distance = distances[i2];\n\t\t\tconst destIndex = --countBuffer[distance];\n\t\t\torder[destIndex] = i2;\n\t\t}\n\t\tconst cameraDist = px * dx + py * dy + pz * dz;\n\t\tconst dist = (i2) => {\n\t\t\tlet o = order[i2] * 3;\n\t\t\treturn centers[o++] * dx + centers[o++] * dy + centers[o] * dz - cameraDist;\n\t\t};\n\t\tconst findZero = () => {\n\t\t\tconst result = binarySearch(0, numVertices - 1, (i2) => -dist(i2));\n\t\t\treturn Math.min(numVertices, Math.abs(result));\n\t\t};\n\t\tconst count = dist(numVertices - 1) >= 0 ? findZero() : numVertices;\n\t\tif (mapping) {\n\t\t\tfor (let i2 = 0; i2 < numVertices; ++i2) {\n\t\t\t\torder[i2] = mapping[order[i2]];\n\t\t\t}\n\t\t}\n\t\tmyself.postMessage({\n\t\t\torder: order.buffer,\n\t\t\tcount,\n\t\t\tsortTime: performance.now() - sortStartTime\n\t\t}, [order.buffer]);\n\t\torder = null;\n\t};\n\tmyself.addEventListener(\"message\", (message) => {\n\t\tconst msgData = message.data ?? message;\n\t\tif (msgData.order) {\n\t\t\torder = new Uint32Array(msgData.order);\n\t\t}\n\t\tif (msgData.centers) {\n\t\t\tcenters = new Float32Array(msgData.centers);\n\t\t\tforceUpdate = true;\n\t\t\tif (msgData.chunks) {\n\t\t\t\tconst chunksSrc = new Float32Array(msgData.chunks);\n\t\t\t\tchunks = new Float32Array(msgData.chunks, 0, chunksSrc.length * 4 / 6);\n\t\t\t\tboundMin.x = chunksSrc[0];\n\t\t\t\tboundMin.y = chunksSrc[1];\n\t\t\t\tboundMin.z = chunksSrc[2];\n\t\t\t\tboundMax.x = chunksSrc[3];\n\t\t\t\tboundMax.y = chunksSrc[4];\n\t\t\t\tboundMax.z = chunksSrc[5];\n\t\t\t\tfor (let i2 = 0; i2 < chunksSrc.length / 6; ++i2) {\n\t\t\t\t\tconst mx = chunksSrc[i2 * 6 + 0];\n\t\t\t\t\tconst my = chunksSrc[i2 * 6 + 1];\n\t\t\t\t\tconst mz = chunksSrc[i2 * 6 + 2];\n\t\t\t\t\tconst Mx = chunksSrc[i2 * 6 + 3];\n\t\t\t\t\tconst My = chunksSrc[i2 * 6 + 4];\n\t\t\t\t\tconst Mz = chunksSrc[i2 * 6 + 5];\n\t\t\t\t\tchunks[i2 * 4 + 0] = (mx + Mx) * 0.5;\n\t\t\t\t\tchunks[i2 * 4 + 1] = (my + My) * 0.5;\n\t\t\t\t\tchunks[i2 * 4 + 2] = (mz + Mz) * 0.5;\n\t\t\t\t\tchunks[i2 * 4 + 3] = Math.sqrt((Mx - mx) ** 2 + (My - my) ** 2 + (Mz - mz) ** 2) * 0.5;\n\t\t\t\t\tif (mx < boundMin.x) boundMin.x = mx;\n\t\t\t\t\tif (my < boundMin.y) boundMin.y = my;\n\t\t\t\t\tif (mz < boundMin.z) boundMin.z = mz;\n\t\t\t\t\tif (Mx > boundMax.x) boundMax.x = Mx;\n\t\t\t\t\tif (My > boundMax.y) boundMax.y = My;\n\t\t\t\t\tif (Mz > boundMax.z) boundMax.z = Mz;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst numVertices = centers.length / 3;\n\t\t\t\tconst numChunks = Math.ceil(numVertices / 256);\n\t\t\t\tchunks = new Float32Array(numChunks * 4);\n\t\t\t\tboundMin.x = boundMin.y = boundMin.z = Infinity;\n\t\t\t\tboundMax.x = boundMax.y = boundMax.z = -Infinity;\n\t\t\t\tlet mx, my, mz, Mx, My, Mz;\n\t\t\t\tfor (let c2 = 0; c2 < numChunks; ++c2) {\n\t\t\t\t\tmx = my = mz = Infinity;\n\t\t\t\t\tMx = My = Mz = -Infinity;\n\t\t\t\t\tconst start = c2 * 256;\n\t\t\t\t\tconst end = Math.min(numVertices, (c2 + 1) * 256);\n\t\t\t\t\tfor (let i2 = start; i2 < end; ++i2) {\n\t\t\t\t\t\tconst x3 = centers[i2 * 3 + 0];\n\t\t\t\t\t\tconst y2 = centers[i2 * 3 + 1];\n\t\t\t\t\t\tconst z2 = centers[i2 * 3 + 2];\n\t\t\t\t\t\tconst validX = Number.isFinite(x3);\n\t\t\t\t\t\tconst validY = Number.isFinite(y2);\n\t\t\t\t\t\tconst validZ = Number.isFinite(z2);\n\t\t\t\t\t\tif (!validX) centers[i2 * 3 + 0] = 0;\n\t\t\t\t\t\tif (!validY) centers[i2 * 3 + 1] = 0;\n\t\t\t\t\t\tif (!validZ) centers[i2 * 3 + 2] = 0;\n\t\t\t\t\t\tif (!validX || !validY || !validZ) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (x3 < mx) mx = x3;\n\t\t\t\t\t\telse if (x3 > Mx) Mx = x3;\n\t\t\t\t\t\tif (y2 < my) my = y2;\n\t\t\t\t\t\telse if (y2 > My) My = y2;\n\t\t\t\t\t\tif (z2 < mz) mz = z2;\n\t\t\t\t\t\telse if (z2 > Mz) Mz = z2;\n\t\t\t\t\t\tif (x3 < boundMin.x) boundMin.x = x3;\n\t\t\t\t\t\telse if (x3 > boundMax.x) boundMax.x = x3;\n\t\t\t\t\t\tif (y2 < boundMin.y) boundMin.y = y2;\n\t\t\t\t\t\telse if (y2 > boundMax.y) boundMax.y = y2;\n\t\t\t\t\t\tif (z2 < boundMin.z) boundMin.z = z2;\n\t\t\t\t\t\telse if (z2 > boundMax.z) boundMax.z = z2;\n\t\t\t\t\t}\n\t\t\t\t\tchunks[c2 * 4 + 0] = (mx + Mx) * 0.5;\n\t\t\t\t\tchunks[c2 * 4 + 1] = (my + My) * 0.5;\n\t\t\t\t\tchunks[c2 * 4 + 2] = (mz + Mz) * 0.5;\n\t\t\t\t\tchunks[c2 * 4 + 3] = Math.sqrt((Mx - mx) ** 2 + (My - my) ** 2 + (Mz - mz) ** 2) * 0.5;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (msgData.hasOwnProperty(\"mapping\")) {\n\t\t\tmapping = msgData.mapping ? new Uint32Array(msgData.mapping) : null;\n\t\t\tforceUpdate = true;\n\t\t}\n\t\tif (msgData.cameraPosition) cameraPosition3 = msgData.cameraPosition;\n\t\tif (msgData.cameraDirection) cameraDirection3 = msgData.cameraDirection;\n\t\tupdate();\n\t});\n}\n\nvar GSplatSorter = class extends EventHandler {\n\tworker;\n\ttarget;\n\torderData;\n\tcenters;\n\tscene;\n\tuploadStream;\n\tpendingSorted = null;\n\tconstructor(device, scene) {\n\t\tsuper();\n\t\tthis.scene = scene ?? null;\n\t\tthis.uploadStream = new UploadStream(device, !device.isWebGPU);\n\t\tconst messageHandler = (message) => {\n\t\t\tconst msgData = message.data ?? message;\n\t\t\tif (this.scene && msgData.sortTime !== void 0) {\n\t\t\t\tthis.scene.fire(\"gsplat:sorted\", msgData.sortTime);\n\t\t\t}\n\t\t\tconst newOrder = msgData.order;\n\t\t\tconst oldOrder = this.orderData;\n\t\t\tthis.worker.postMessage({\n\t\t\t\torder: oldOrder\n\t\t\t}, [oldOrder]);\n\t\t\tthis.orderData = newOrder;\n\t\t\tthis.pendingSorted = {\n\t\t\t\tcount: msgData.count,\n\t\t\t\tdata: new Uint32Array(newOrder)\n\t\t\t};\n\t\t\tthis.fire(\"updated\");\n\t\t};\n\t\tconst workerSource = `(${SortWorker.toString()})()`;\n\t\tif (platform.environment === \"node\") {\n\t\t\tthis.worker = new Worker(workerSource, {\n\t\t\t\teval: true\n\t\t\t});\n\t\t\tthis.worker.on(\"message\", messageHandler);\n\t\t} else {\n\t\t\tthis.worker = new Worker(URL.createObjectURL(new Blob([workerSource], {\n\t\t\t\ttype: \"application/javascript\"\n\t\t\t})));\n\t\t\tthis.worker.addEventListener(\"message\", messageHandler);\n\t\t}\n\t}\n\tdestroy() {\n\t\tthis.worker.terminate();\n\t\tthis.worker = null;\n\t\tthis.uploadStream.destroy();\n\t\tthis.uploadStream = null;\n\t}\n\tinit(target2, numSplats, centers, chunks) {\n\t\tthis.target = target2;\n\t\tthis.centers = centers.slice();\n\t\tconst orderBuffer = new Uint32Array(numSplats);\n\t\tfor (let i2 = 0; i2 < numSplats; ++i2) {\n\t\t\torderBuffer[i2] = i2;\n\t\t}\n\t\tthis.orderData = new ArrayBuffer(numSplats * 4);\n\t\tconst obj = {\n\t\t\torder: orderBuffer.buffer,\n\t\t\tcenters: centers.buffer,\n\t\t\tchunks: chunks?.buffer\n\t\t};\n\t\tconst transfer = [orderBuffer.buffer, centers.buffer].concat(chunks ? [chunks.buffer] : []);\n\t\tthis.worker.postMessage(obj, transfer);\n\t}\n\tapplyPendingSorted() {\n\t\tif (this.pendingSorted) {\n\t\t\tconst { count, data: data2 } = this.pendingSorted;\n\t\t\tthis.pendingSorted = null;\n\t\t\tthis.uploadStream.upload(data2, this.target);\n\t\t\treturn count;\n\t\t}\n\t\treturn -1;\n\t}\n\tsetMapping(mapping) {\n\t\tif (mapping) {\n\t\t\tconst centers = new Float32Array(mapping.length * 3);\n\t\t\tfor (let i2 = 0; i2 < mapping.length; ++i2) {\n\t\t\t\tconst src = mapping[i2] * 3;\n\t\t\t\tconst dst = i2 * 3;\n\t\t\t\tcenters[dst + 0] = this.centers[src + 0];\n\t\t\t\tcenters[dst + 1] = this.centers[src + 1];\n\t\t\t\tcenters[dst + 2] = this.centers[src + 2];\n\t\t\t}\n\t\t\tthis.worker.postMessage({\n\t\t\t\tcenters: centers.buffer,\n\t\t\t\tmapping: mapping.buffer\n\t\t\t}, [centers.buffer, mapping.buffer]);\n\t\t} else {\n\t\t\tconst centers = this.centers.slice();\n\t\t\tthis.worker.postMessage({\n\t\t\t\tcenters: centers.buffer,\n\t\t\t\tmapping: null\n\t\t\t}, [centers.buffer]);\n\t\t}\n\t}\n\tsetCamera(pos, dir4) {\n\t\tthis.worker.postMessage({\n\t\t\tcameraPosition: { x: pos.x, y: pos.y, z: pos.z },\n\t\t\tcameraDirection: { x: dir4.x, y: dir4.y, z: dir4.z }\n\t\t});\n\t}\n};\n\nvar mat = new Mat4();\nvar cameraPosition = new Vec3();\nvar cameraDirection = new Vec3();\nvar GSplatInstance = class {\n\tresource;\n\torderTexture;\n\torderBuffer;\n\t_material;\n\tmeshInstance;\n\toptions = {};\n\tsorter = null;\n\tlastCameraPosition = new Vec3();\n\tlastCameraDirection = new Vec3();\n\tcameras = [];\n\tconstructor(resource, options2 = {}) {\n\t\tthis.resource = resource;\n\t\tconst device = resource.device;\n\t\tconst dims = resource.streams.textureDimensions;\n\t\tconst numSplats = dims.x * dims.y;\n\t\tif (device.isWebGPU) {\n\t\t\tthis.orderBuffer = new StorageBuffer(device, numSplats * 4, BUFFERUSAGE_COPY_DST);\n\t\t} else {\n\t\t\tthis.orderTexture = resource.streams.createTexture(\n\t\t\t\t\"splatOrder\",\n\t\t\t\tPIXELFORMAT_R32U,\n\t\t\t\tdims\n\t\t\t);\n\t\t}\n\t\tif (options2.material) {\n\t\t\tthis._material = options2.material;\n\t\t\tthis._material.setDefine(\"{GSPLAT_INSTANCE_SIZE}\", String(GSplatResourceBase.instanceSize));\n\t\t\tthis.setMaterialOrderData(this._material);\n\t\t\tthis._material.setParameter(\"alphaClipForward\", 1 / 255);\n\t\t} else {\n\t\t\tthis._material = new ShaderMaterial({\n\t\t\t\tuniqueName: \"SplatMaterial\",\n\t\t\t\tvertexGLSL: '#include \"gsplatVS\"',\n\t\t\t\tfragmentGLSL: '#include \"gsplatPS\"',\n\t\t\t\tvertexWGSL: '#include \"gsplatVS\"',\n\t\t\t\tfragmentWGSL: '#include \"gsplatPS\"',\n\t\t\t\tattributes: {\n\t\t\t\t\tvertex_position: SEMANTIC_POSITION\n\t\t\t\t}\n\t\t\t});\n\t\t\tthis.configureMaterial(this._material);\n\t\t\tthis._material.update();\n\t\t}\n\t\tresource.ensureMesh();\n\t\tthis.meshInstance = new MeshInstance(resource.mesh, this._material);\n\t\tthis.meshInstance.setInstancing(true, true);\n\t\tthis.meshInstance.gsplatInstance = this;\n\t\tthis.meshInstance.instancingCount = 0;\n\t\tif (resource.hasCenters) {\n\t\t\tconst centers = resource.centers.slice();\n\t\t\tconst chunks = resource.chunks?.slice();\n\t\t\tconst orderTarget = this.orderBuffer ?? this.orderTexture;\n\t\t\tthis.sorter = new GSplatSorter(device, options2.scene);\n\t\t\tthis.sorter.init(orderTarget, numSplats, centers, chunks);\n\t\t} else {\n\t\t}\n\t}\n\tdestroy() {\n\t\tthis.resource?.releaseMesh();\n\t\tthis.orderTexture?.destroy();\n\t\tthis.orderBuffer?.destroy();\n\t\tthis.material?.destroy();\n\t\tthis.meshInstance?.destroy();\n\t\tthis.sorter?.destroy();\n\t}\n\tsetMaterialOrderData(material) {\n\t\tif (this.orderBuffer) {\n\t\t\tmaterial.setParameter(\"splatOrder\", this.orderBuffer);\n\t\t} else {\n\t\t\tmaterial.setParameter(\"splatOrder\", this.orderTexture);\n\t\t\tmaterial.setParameter(\"splatTextureSize\", this.orderTexture.width);\n\t\t}\n\t}\n\tset material(value) {\n\t\tif (this._material !== value) {\n\t\t\tthis._material = value;\n\t\t\tthis._material.setDefine(\"{GSPLAT_INSTANCE_SIZE}\", String(GSplatResourceBase.instanceSize));\n\t\t\tthis.setMaterialOrderData(this._material);\n\t\t\tthis._material.setParameter(\"alphaClipForward\", 1 / 255);\n\t\t\tif (this.meshInstance) {\n\t\t\t\tthis.meshInstance.material = value;\n\t\t\t}\n\t\t}\n\t}\n\tget material() {\n\t\treturn this._material;\n\t}\n\tconfigureMaterial(material, options2 = {}) {\n\t\tthis.resource.configureMaterial(material, null, this.resource.format.getInputDeclarations());\n\t\tmaterial.setDefine(\"{GSPLAT_INSTANCE_SIZE}\", GSplatResourceBase.instanceSize);\n\t\tmaterial.setParameter(\"numSplats\", 0);\n\t\tthis.setMaterialOrderData(material);\n\t\tmaterial.setParameter(\"alphaClip\", 0.3);\n\t\tmaterial.setParameter(\"alphaClipForward\", 1 / 255);\n\t\tmaterial.setParameter(\"minPixelSize\", 2);\n\t\tmaterial.setDefine(`DITHER_${options2.dither ? \"BLUENOISE\" : \"NONE\"}`, \"\");\n\t\tmaterial.cull = CULLFACE_NONE;\n\t\tmaterial.blendType = options2.dither ? BLEND_NONE : BLEND_PREMULTIPLIED;\n\t\tmaterial.depthWrite = !!options2.dither;\n\t}\n\tsort(cameraNode) {\n\t\tif (this.sorter) {\n\t\t\tconst cameraMat = cameraNode.getWorldTransform();\n\t\t\tcameraMat.getTranslation(cameraPosition);\n\t\t\tcameraMat.getZ(cameraDirection);\n\t\t\tconst modelMat = this.meshInstance.node.getWorldTransform();\n\t\t\tconst invModelMat3 = mat.invert(modelMat);\n\t\t\tinvModelMat3.transformPoint(cameraPosition, cameraPosition);\n\t\t\tinvModelMat3.transformVector(cameraDirection, cameraDirection);\n\t\t\tif (!cameraPosition.equalsApprox(this.lastCameraPosition) || !cameraDirection.equalsApprox(this.lastCameraDirection)) {\n\t\t\t\tthis.lastCameraPosition.copy(cameraPosition);\n\t\t\t\tthis.lastCameraDirection.copy(cameraDirection);\n\t\t\t\tthis.sorter.setCamera(cameraPosition, cameraDirection);\n\t\t\t}\n\t\t}\n\t}\n\tupdate() {\n\t\tconst count = this.sorter?.applyPendingSorted() ?? -1;\n\t\tif (count >= 0) {\n\t\t\tthis.meshInstance.instancingCount = Math.ceil(count / GSplatResourceBase.instanceSize);\n\t\t\tthis.material.setParameter(\"numSplats\", count);\n\t\t}\n\t\tif (this.cameras.length > 0) {\n\t\t\tconst camera = this.cameras[0];\n\t\t\tthis.sort(camera._node);\n\t\t\tthis.cameras.length = 0;\n\t\t}\n\t}\n};\n\nvar gsplatProcess_default = `\nuniform uint splatTextureSize;\nuniform uint dstTextureSize;\nuniform uint srcNumSplats;\nuniform uint dstNumSplats;\n#include \"gsplatSplatVS\"\n#include \"gsplatProcessInputVS\"\n#include \"gsplatProcessOutputVS\"\n#include \"gsplatProcessReadVS\"\n#include \"gsplatProcessChunk\"\nvoid main(void) {\n\tivec2 fragCoords = ivec2(gl_FragCoord.xy);\n\t\n\tuint splatIndex = uint(fragCoords.y * int(dstTextureSize) + fragCoords.x);\n\t\n\tif (splatIndex >= dstNumSplats) discard;\n\t\n\tsetSplat(splatIndex);\n\t\n\tprocess();\n}\n`;\n\nvar gsplatProcess_default2 = `\nuniform splatTextureSize: u32;\nuniform dstTextureSize: u32;\nuniform srcNumSplats: u32;\nuniform dstNumSplats: u32;\n#include \"gsplatSplatVS\"\n#include \"gsplatProcessInputVS\"\nvar<private> processOutput: FragmentOutput;\n#include \"gsplatProcessOutputVS\"\n#include \"gsplatProcessReadVS\"\n#include \"gsplatProcessChunk\"\n@fragment\nfn fragmentMain(input: FragmentInput) -> FragmentOutput {\n\tlet fragCoords = vec2i(input.position.xy);\n\t\n\tlet splatIndex = u32(fragCoords.y * i32(uniform.dstTextureSize) + fragCoords.x);\n\t\n\tif (splatIndex >= uniform.dstNumSplats) {\n\t\tdiscard;\n\t}\n\t\n\tsetSplat(splatIndex);\n\t\n\tprocess();\n\t\n\treturn processOutput;\n}\n`;\n\nvar GSplatProcessor = class {\n\t_device;\n\t_source;\n\t_destination;\n\t_srcResource;\n\t_dstResource;\n\t_dstStreamDescriptors;\n\t_dstStreamNames;\n\t_useAllInputStreams;\n\t_srcTextures = [];\n\t_renderTarget = null;\n\t_quadRender = null;\n\t_renderPass = null;\n\t_parameters = /* @__PURE__ */ new Map();\n\tblendState = BlendState.NOBLEND;\n\tconstructor(device, source, destination, options2) {\n\t\tthis._device = device;\n\t\tthis._source = source;\n\t\tthis._destination = destination;\n\t\tthis._srcResource = source.resource ?? source.component?.resource;\n\t\tthis._dstResource = destination.resource ?? destination.component?.resource;\n\t\tthis._dstStreamDescriptors = [];\n\t\tthis._dstStreamNames = /* @__PURE__ */ new Set();\n\t\tfor (const streamName of destination.streams) {\n\t\t\tconst stream = this._dstResource.format.getStream(streamName);\n\t\t\tif (stream) {\n\t\t\t\tthis._dstStreamDescriptors.push(stream);\n\t\t\t\tthis._dstStreamNames.add(stream.name);\n\t\t\t}\n\t\t}\n\t\tthis._useAllInputStreams = !source.streams?.length;\n\t\tconst srcFormat = this._srcResource.format;\n\t\tconst srcStreams = this._useAllInputStreams ? [...srcFormat.streams, ...srcFormat.extraStreams] : source.streams.map((name) => ({ name }));\n\t\tfor (const stream of srcStreams) {\n\t\t\tconst texture = this._resolveTexture(source, stream.name, this._srcResource);\n\t\t\tthis._srcTextures.push({ name: stream.name, texture });\n\t\t}\n\t\tthis._createRenderTarget();\n\t\tthis._createShader(options2);\n\t\tthis._renderPass = new RenderPassShaderQuad(device);\n\t\tthis._renderPass.quadRender = this._quadRender;\n\t\tthis._renderPass.init(this._renderTarget);\n\t\tthis._renderPass.colorOps.clear = false;\n\t\tthis._renderPass.depthStencilOps.clearDepth = false;\n\t}\n\tdestroy() {\n\t\tthis._renderTarget?.destroy();\n\t\tthis._renderTarget = null;\n\t\tthis._quadRender?.destroy();\n\t\tthis._quadRender = null;\n\t\tthis._renderPass?.destroy();\n\t\tthis._renderPass = null;\n\t\tthis._parameters.clear();\n\t}\n\t_resolveTexture(binding, name, resource) {\n\t\tif (binding.component) {\n\t\t\tconst stream = resource.format.getStream(name);\n\t\t\tif (stream?.storage === GSPLAT_STREAM_INSTANCE) {\n\t\t\t\tconst texture2 = binding.component.getInstanceTexture(name);\n\t\t\t\tif (texture2) {\n\t\t\t\t\treturn texture2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tconst texture = resource.getTexture(name);\n\t\tif (!texture) {\n\t\t}\n\t\treturn texture;\n\t}\n\t_createRenderTarget() {\n\t\tconst colorBuffers = [];\n\t\tfor (const stream of this._dstStreamDescriptors) {\n\t\t\tconst texture = this._resolveTexture(this._destination, stream.name, this._dstResource);\n\t\t\tif (texture) {\n\t\t\t\tcolorBuffers.push(texture);\n\t\t\t} else {\n\t\t\t}\n\t\t}\n\t\tif (colorBuffers.length > 0) {\n\t\t\tthis._renderTarget = new RenderTarget({\n\t\t\t\tname: \"GSplatProcessor-MRT\",\n\t\t\t\tcolorBuffers,\n\t\t\t\tdepth: false,\n\t\t\t\torigin: RENDERTARGET_ORIGIN_BOTTOM\n\t\t\t});\n\t\t}\n\t}\n\t_createShader(options2) {\n\t\tconst { processGLSL = \"\", processWGSL = \"\" } = options2;\n\t\tconst device = this._device;\n\t\tconst srcFormat = this._srcResource.format;\n\t\tconst dstFormat = this._dstResource.format;\n\t\tlet inputDeclarations = \"\";\n\t\tlet readCode = \"\";\n\t\tif (this._useAllInputStreams) {\n\t\t\tconst allStreams = [...srcFormat.streams, ...srcFormat.extraStreams];\n\t\t\tconst sameResource = this._srcResource === this._dstResource;\n\t\t\tconst inputStreamNames = allStreams.filter((s2) => !sameResource || !this._dstStreamNames.has(s2.name)).map((s2) => s2.name);\n\t\t\tinputDeclarations = srcFormat.getInputDeclarations(inputStreamNames);\n\t\t\treadCode = srcFormat.getReadCode();\n\t\t} else {\n\t\t\tinputDeclarations = srcFormat.getInputDeclarations(this._source.streams);\n\t\t}\n\t\tconst outputDeclarations = dstFormat.getOutputDeclarations(this._dstStreamDescriptors);\n\t\tconst fragmentOutputTypes = this._dstStreamDescriptors.map((stream) => {\n\t\t\tconst info = getGlslShaderType(stream.format);\n\t\t\treturn info.returnType;\n\t\t});\n\t\tconst defines = /* @__PURE__ */ new Map();\n\t\tthis._srcResource.configureMaterialDefines(defines);\n\t\tdefines.set(\"SH_BANDS\", \"0\");\n\t\tconst isWebGPU = device.isWebGPU;\n\t\tconst includes = /* @__PURE__ */ new Map();\n\t\tincludes.set(\"gsplatProcessInputVS\", inputDeclarations);\n\t\tincludes.set(\"gsplatProcessOutputVS\", outputDeclarations);\n\t\tincludes.set(\"gsplatProcessReadVS\", readCode);\n\t\tincludes.set(\"gsplatProcessChunk\", isWebGPU ? processWGSL : processGLSL);\n\t\tconst hash = hashCode([\n\t\t\tisWebGPU ? processWGSL : processGLSL,\n\t\t\tthis._useAllInputStreams ? \"1\" : \"0\"\n\t\t].join(\"|\"));\n\t\tconst outputStreams = this._dstStreamDescriptors.map((s2) => s2.name).join(\",\");\n\t\tconst shader = ShaderUtils.createShader(device, {\n\t\t\tuniqueName: `GSplatProcessor:${srcFormat.hash};${hash};out=${outputStreams}`,\n\t\t\tattributes: { vertex_position: SEMANTIC_POSITION },\n\t\t\tvertexDefines: defines,\n\t\t\tfragmentDefines: defines,\n\t\t\tvertexChunk: \"fullscreenQuadVS\",\n\t\t\tfragmentGLSL: gsplatProcess_default,\n\t\t\tfragmentWGSL: gsplatProcess_default2,\n\t\t\tfragmentIncludes: includes,\n\t\t\tfragmentOutputTypes\n\t\t});\n\t\tthis._quadRender = new QuadRender(shader);\n\t}\n\tsetParameter(name, data2) {\n\t\tconst scopeId = this._device.scope.resolve(name);\n\t\tthis._parameters.set(name, { scopeId, data: data2 });\n\t}\n\tgetParameter(name) {\n\t\treturn this._parameters.get(name)?.data;\n\t}\n\tdeleteParameter(name) {\n\t\tthis._parameters.delete(name);\n\t}\n\tprocess() {\n\t\tif (!this._renderPass) {\n\t\t\treturn;\n\t\t}\n\t\tconst device = this._device;\n\t\tfor (const { name, texture } of this._srcTextures) {\n\t\t\tdevice.scope.resolve(name).setValue(texture);\n\t\t}\n\t\tdevice.scope.resolve(\"splatTextureSize\").setValue(this._srcResource.textureDimensions.x);\n\t\tdevice.scope.resolve(\"dstTextureSize\").setValue(this._dstResource.textureDimensions.x);\n\t\tdevice.scope.resolve(\"srcNumSplats\").setValue(this._srcResource.numSplats);\n\t\tdevice.scope.resolve(\"dstNumSplats\").setValue(this._dstResource.numSplats);\n\t\tfor (const [name, value] of this._srcResource.parameters) {\n\t\t\tdevice.scope.resolve(name).setValue(value);\n\t\t}\n\t\tfor (const [, param] of this._parameters) {\n\t\t\tparam.scopeId.setValue(param.data);\n\t\t}\n\t\tthis._renderPass.blendState = this.blendState;\n\t\tthis._renderPass.render();\n\t}\n};\n\nvar getSHData = (gsplatData, numCoeffs) => {\n\tconst result = [];\n\tfor (let i2 = 0; i2 < numCoeffs; ++i2) {\n\t\tresult.push(gsplatData.getProp(`f_rest_${i2}`));\n\t}\n\treturn result;\n};\nvar GSplatResource = class extends GSplatResourceBase {\n\tshBands;\n\tconstructor(device, gsplatData, options2 = {}) {\n\t\tsuper(device, gsplatData, options2);\n\t\tconst numSplats = gsplatData.numSplats;\n\t\tthis.shBands = gsplatData.shBands;\n\t\tconst streams = [\n\t\t\t{ name: \"splatColor\", format: PIXELFORMAT_RGBA16F },\n\t\t\t{ name: \"transformA\", format: PIXELFORMAT_RGBA32U },\n\t\t\t{ name: \"transformB\", format: PIXELFORMAT_RGBA16F }\n\t\t];\n\t\tif (this.shBands > 0) {\n\t\t\tstreams.push({ name: \"splatSH_1to3\", format: PIXELFORMAT_RGBA32U });\n\t\t\tif (this.shBands > 1) {\n\t\t\t\tstreams.push({ name: \"splatSH_4to7\", format: PIXELFORMAT_RGBA32U });\n\t\t\t\tif (this.shBands > 2) {\n\t\t\t\t\tstreams.push({ name: \"splatSH_8to11\", format: PIXELFORMAT_RGBA32U });\n\t\t\t\t\tstreams.push({ name: \"splatSH_12to15\", format: PIXELFORMAT_RGBA32U });\n\t\t\t\t} else {\n\t\t\t\t\tstreams.push({ name: \"splatSH_8to11\", format: PIXELFORMAT_R32U });\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis._format = new GSplatFormat(device, streams, {\n\t\t\treadGLSL: '#include \"gsplatUncompressedVS\"',\n\t\t\treadWGSL: '#include \"gsplatUncompressedVS\"'\n\t\t});\n\t\tthis.streams.init(this.format, numSplats);\n\t\tthis.updateColorData(gsplatData);\n\t\tthis.updateTransformData(gsplatData);\n\t\tif (this.shBands > 0) {\n\t\t\tthis.updateSHData(gsplatData);\n\t\t}\n\t}\n\tconfigureMaterialDefines(defines) {\n\t\tdefines.set(\"SH_BANDS\", this.shBands);\n\t}\n\tupdateColorData(gsplatData) {\n\t\tconst texture = this.streams.getTexture(\"splatColor\");\n\t\tif (!texture) {\n\t\t\treturn;\n\t\t}\n\t\tconst float2Half = FloatPacking.float2Half;\n\t\tconst data2 = texture.lock();\n\t\tconst cr = gsplatData.getProp(\"f_dc_0\");\n\t\tconst cg = gsplatData.getProp(\"f_dc_1\");\n\t\tconst cb = gsplatData.getProp(\"f_dc_2\");\n\t\tconst ca = gsplatData.getProp(\"opacity\");\n\t\tconst activated = gsplatData.activated;\n\t\tconst SH_C04 = 0.28209479177387814;\n\t\tfor (let i2 = 0; i2 < this.numSplats; ++i2) {\n\t\t\tconst r = cr[i2] * SH_C04 + 0.5;\n\t\t\tconst g = cg[i2] * SH_C04 + 0.5;\n\t\t\tconst b = cb[i2] * SH_C04 + 0.5;\n\t\t\tconst a = activated ? ca[i2] : 1 / (1 + Math.exp(-ca[i2]));\n\t\t\tdata2[i2 * 4 + 0] = float2Half(r);\n\t\t\tdata2[i2 * 4 + 1] = float2Half(g);\n\t\t\tdata2[i2 * 4 + 2] = float2Half(b);\n\t\t\tdata2[i2 * 4 + 3] = float2Half(a);\n\t\t}\n\t\ttexture.unlock();\n\t}\n\tupdateTransformData(gsplatData) {\n\t\tconst float2Half = FloatPacking.float2Half;\n\t\tconst transformA = this.streams.getTexture(\"transformA\");\n\t\tconst transformB = this.streams.getTexture(\"transformB\");\n\t\tif (!transformA) {\n\t\t\treturn;\n\t\t}\n\t\tconst dataA = transformA.lock();\n\t\tconst dataAFloat32 = new Float32Array(dataA.buffer);\n\t\tconst dataB = transformB.lock();\n\t\tconst p = new Vec3();\n\t\tconst r = new Quat();\n\t\tconst s2 = new Vec3();\n\t\tconst iter = gsplatData.createIter(p, r, s2);\n\t\tfor (let i2 = 0; i2 < this.numSplats; i2++) {\n\t\t\titer.read(i2);\n\t\t\tr.normalize();\n\t\t\tif (r.w < 0) {\n\t\t\t\tr.mulScalar(-1);\n\t\t\t}\n\t\t\tdataAFloat32[i2 * 4 + 0] = p.x;\n\t\t\tdataAFloat32[i2 * 4 + 1] = p.y;\n\t\t\tdataAFloat32[i2 * 4 + 2] = p.z;\n\t\t\tdataA[i2 * 4 + 3] = float2Half(r.x) | float2Half(r.y) << 16;\n\t\t\tdataB[i2 * 4 + 0] = float2Half(s2.x);\n\t\t\tdataB[i2 * 4 + 1] = float2Half(s2.y);\n\t\t\tdataB[i2 * 4 + 2] = float2Half(s2.z);\n\t\t\tdataB[i2 * 4 + 3] = float2Half(r.z);\n\t\t}\n\t\ttransformA.unlock();\n\t\ttransformB.unlock();\n\t}\n\tupdateSHData(gsplatData) {\n\t\tconst sh1to3Texture = this.streams.getTexture(\"splatSH_1to3\");\n\t\tconst sh4to7Texture = this.streams.getTexture(\"splatSH_4to7\");\n\t\tconst sh8to11Texture = this.streams.getTexture(\"splatSH_8to11\");\n\t\tconst sh12to15Texture = this.streams.getTexture(\"splatSH_12to15\");\n\t\tconst sh1to3Data = sh1to3Texture.lock();\n\t\tconst sh4to7Data = sh4to7Texture?.lock();\n\t\tconst sh8to11Data = sh8to11Texture?.lock();\n\t\tconst sh12to15Data = sh12to15Texture?.lock();\n\t\tconst numCoeffs = {\n\t\t\t1: 3,\n\t\t\t2: 8,\n\t\t\t3: 15\n\t\t}[this.shBands];\n\t\tconst src = getSHData(gsplatData, numCoeffs * 3);\n\t\tconst t11 = (1 << 11) - 1;\n\t\tconst t10 = (1 << 10) - 1;\n\t\tconst float32 = new Float32Array(1);\n\t\tconst uint32 = new Uint32Array(float32.buffer);\n\t\tconst c2 = new Array(numCoeffs * 3).fill(0);\n\t\tfor (let i2 = 0; i2 < gsplatData.numSplats; ++i2) {\n\t\t\tfor (let j = 0; j < numCoeffs; ++j) {\n\t\t\t\tc2[j * 3] = src[j][i2];\n\t\t\t\tc2[j * 3 + 1] = src[j + numCoeffs][i2];\n\t\t\t\tc2[j * 3 + 2] = src[j + numCoeffs * 2][i2];\n\t\t\t}\n\t\t\tlet max = c2[0];\n\t\t\tfor (let j = 1; j < numCoeffs * 3; ++j) {\n\t\t\t\tmax = Math.max(max, Math.abs(c2[j]));\n\t\t\t}\n\t\t\tif (max === 0) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tfor (let j = 0; j < numCoeffs; ++j) {\n\t\t\t\tc2[j * 3 + 0] = Math.max(0, Math.min(t11, Math.floor((c2[j * 3 + 0] / max * 0.5 + 0.5) * t11 + 0.5)));\n\t\t\t\tc2[j * 3 + 1] = Math.max(0, Math.min(t10, Math.floor((c2[j * 3 + 1] / max * 0.5 + 0.5) * t10 + 0.5)));\n\t\t\t\tc2[j * 3 + 2] = Math.max(0, Math.min(t11, Math.floor((c2[j * 3 + 2] / max * 0.5 + 0.5) * t11 + 0.5)));\n\t\t\t}\n\t\t\tfloat32[0] = max;\n\t\t\tsh1to3Data[i2 * 4 + 0] = uint32[0];\n\t\t\tsh1to3Data[i2 * 4 + 1] = c2[0] << 21 | c2[1] << 11 | c2[2];\n\t\t\tsh1to3Data[i2 * 4 + 2] = c2[3] << 21 | c2[4] << 11 | c2[5];\n\t\t\tsh1to3Data[i2 * 4 + 3] = c2[6] << 21 | c2[7] << 11 | c2[8];\n\t\t\tif (this.shBands > 1) {\n\t\t\t\tsh4to7Data[i2 * 4 + 0] = c2[9] << 21 | c2[10] << 11 | c2[11];\n\t\t\t\tsh4to7Data[i2 * 4 + 1] = c2[12] << 21 | c2[13] << 11 | c2[14];\n\t\t\t\tsh4to7Data[i2 * 4 + 2] = c2[15] << 21 | c2[16] << 11 | c2[17];\n\t\t\t\tsh4to7Data[i2 * 4 + 3] = c2[18] << 21 | c2[19] << 11 | c2[20];\n\t\t\t\tif (this.shBands > 2) {\n\t\t\t\t\tsh8to11Data[i2 * 4 + 0] = c2[21] << 21 | c2[22] << 11 | c2[23];\n\t\t\t\t\tsh8to11Data[i2 * 4 + 1] = c2[24] << 21 | c2[25] << 11 | c2[26];\n\t\t\t\t\tsh8to11Data[i2 * 4 + 2] = c2[27] << 21 | c2[28] << 11 | c2[29];\n\t\t\t\t\tsh8to11Data[i2 * 4 + 3] = c2[30] << 21 | c2[31] << 11 | c2[32];\n\t\t\t\t\tsh12to15Data[i2 * 4 + 0] = c2[33] << 21 | c2[34] << 11 | c2[35];\n\t\t\t\t\tsh12to15Data[i2 * 4 + 1] = c2[36] << 21 | c2[37] << 11 | c2[38];\n\t\t\t\t\tsh12to15Data[i2 * 4 + 2] = c2[39] << 21 | c2[40] << 11 | c2[41];\n\t\t\t\t\tsh12to15Data[i2 * 4 + 3] = c2[42] << 21 | c2[43] << 11 | c2[44];\n\t\t\t\t} else {\n\t\t\t\t\tsh8to11Data[i2] = c2[21] << 21 | c2[22] << 11 | c2[23];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tsh1to3Texture.unlock();\n\t\tsh4to7Texture?.unlock();\n\t\tsh8to11Texture?.unlock();\n\t\tsh12to15Texture?.unlock();\n\t}\n};\n\nvar gsplatSogCenters_default = `\n#include \"gsplatPackingPS\"\nuniform highp sampler2D means_l;\nuniform highp sampler2D means_u;\nuniform highp uint numSplats;\nuniform highp vec3 means_mins;\nuniform highp vec3 means_maxs;\nvoid main(void) {\n\tint w = int(textureSize(means_l, 0).x);\n\tivec2 uv = ivec2(gl_FragCoord.xy);\n\tif (uint(uv.x + uv.y * w) >= numSplats) {\n\t\tdiscard;\n\t}\n\tvec3 l = texelFetch(means_l, uv, 0).xyz;\n\tvec3 u = texelFetch(means_u, uv, 0).xyz;\n\tvec3 n = (l + u * 256.0) / 257.0;\n\tvec3 v = mix(means_mins, means_maxs, n);\n\tvec3 center = sign(v) * (exp(abs(v)) - 1.0);\n\tpcFragColor0 = uvec4(floatBitsToUint(center), 0u);\n}\n`;\n\nvar gsplatSogCenters_default2 = `\nvar means_l: texture_2d<f32>;\nvar means_u: texture_2d<f32>;\nuniform numSplats: u32;\nuniform means_mins: vec3f;\nuniform means_maxs: vec3f;\n@fragment\nfn fragmentMain(input: FragmentInput) -> FragmentOutput {\n\tvar output: FragmentOutput;\n\tlet w: u32 = textureDimensions(means_l, 0).x;\n\tlet uv: vec2<i32> = vec2<i32>(input.position.xy);\n\tif (u32(uv.x + uv.y * i32(w)) >= uniform.numSplats) {\n\t\tdiscard;\n\t\treturn output;\n\t}\n\tlet l: vec3f = textureLoad(means_l, uv, 0).xyz;\n\tlet u: vec3f = textureLoad(means_u, uv, 0).xyz;\n\tlet n: vec3f = (l + u * 256.0) / 257.0;\n\tlet v: vec3f = mix(uniform.means_mins, uniform.means_maxs, n);\n\tlet center: vec3f = sign(v) * (exp(abs(v)) - 1.0);\n\tlet packed: vec4<u32> = bitcast<vec4<u32>>(vec4f(center, 0.0));\n\toutput.color = packed;\n\treturn output;\n}\n`;\n\nvar SH_C02 = 0.28209479177387814;\nvar readImageDataAsync = (texture) => {\n\tif (texture.device.isNull) {\n\t\treturn new Promise((resolve2) => {\n\t\t\tresolve2(new Uint8Array(texture.width * texture.height * 4));\n\t\t});\n\t}\n\treturn texture.read(0, 0, texture.width, texture.height, {\n\t\tmipLevel: 0,\n\t\tface: 0,\n\t\timmediate: true\n\t});\n};\nvar resolve = (scope, values) => {\n\tfor (const key in values) {\n\t\tscope.resolve(key).setValue(values[key]);\n\t}\n};\nvar GSplatSogIterator = class {\n\tconstructor(data2, p, r, s2, c2, sh) {\n\t\tconst lerp = (a, b, t) => a * (1 - t) + b * t;\n\t\tconst { meta, shBands } = data2;\n\t\tconst { means, scales, sh0, shN } = meta;\n\t\tconst means_l_data = p && data2.means_l._levels[0];\n\t\tconst means_u_data = p && data2.means_u._levels[0];\n\t\tconst quats_data = r && data2.quats._levels[0];\n\t\tconst scales_data = s2 && data2.scales._levels[0];\n\t\tconst sh0_data = c2 && data2.sh0._levels[0];\n\t\tconst sh_labels_data = sh && data2.sh_labels._levels[0];\n\t\tconst sh_centroids_data = sh && data2.sh_centroids._levels[0];\n\t\tconst norm = Math.SQRT2;\n\t\tconst coeffs = { 1: 3, 2: 8, 3: 15 }[shBands] ?? 0;\n\t\tthis.read = (i2) => {\n\t\t\tif (p) {\n\t\t\t\tconst nx = lerp(means.mins[0], means.maxs[0], ((means_u_data[i2 * 4 + 0] << 8) + means_l_data[i2 * 4 + 0]) / 65535);\n\t\t\t\tconst ny = lerp(means.mins[1], means.maxs[1], ((means_u_data[i2 * 4 + 1] << 8) + means_l_data[i2 * 4 + 1]) / 65535);\n\t\t\t\tconst nz = lerp(means.mins[2], means.maxs[2], ((means_u_data[i2 * 4 + 2] << 8) + means_l_data[i2 * 4 + 2]) / 65535);\n\t\t\t\tp.x = Math.sign(nx) * (Math.exp(Math.abs(nx)) - 1);\n\t\t\t\tp.y = Math.sign(ny) * (Math.exp(Math.abs(ny)) - 1);\n\t\t\t\tp.z = Math.sign(nz) * (Math.exp(Math.abs(nz)) - 1);\n\t\t\t}\n\t\t\tif (r) {\n\t\t\t\tconst a = (quats_data[i2 * 4 + 0] / 255 - 0.5) * norm;\n\t\t\t\tconst b = (quats_data[i2 * 4 + 1] / 255 - 0.5) * norm;\n\t\t\t\tconst c3 = (quats_data[i2 * 4 + 2] / 255 - 0.5) * norm;\n\t\t\t\tconst d = Math.sqrt(Math.max(0, 1 - (a * a + b * b + c3 * c3)));\n\t\t\t\tconst mode = quats_data[i2 * 4 + 3] - 252;\n\t\t\t\tswitch (mode) {\n\t\t\t\t\tcase 0:\n\t\t\t\t\t\tr.set(a, b, c3, d);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 1:\n\t\t\t\t\t\tr.set(d, b, c3, a);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 2:\n\t\t\t\t\t\tr.set(b, d, c3, a);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 3:\n\t\t\t\t\t\tr.set(b, c3, d, a);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (s2) {\n\t\t\t\tif (meta.version === 2) {\n\t\t\t\t\tconst sx = scales.codebook[scales_data[i2 * 4 + 0]];\n\t\t\t\t\tconst sy = scales.codebook[scales_data[i2 * 4 + 1]];\n\t\t\t\t\tconst sz = scales.codebook[scales_data[i2 * 4 + 2]];\n\t\t\t\t\ts2.set(sx, sy, sz);\n\t\t\t\t} else {\n\t\t\t\t\tconst sx = lerp(scales.mins[0], scales.maxs[0], scales_data[i2 * 4 + 0] / 255);\n\t\t\t\t\tconst sy = lerp(scales.mins[1], scales.maxs[1], scales_data[i2 * 4 + 1] / 255);\n\t\t\t\t\tconst sz = lerp(scales.mins[2], scales.maxs[2], scales_data[i2 * 4 + 2] / 255);\n\t\t\t\t\ts2.set(sx, sy, sz);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (c2) {\n\t\t\t\tif (meta.version === 2) {\n\t\t\t\t\tconst r2 = sh0.codebook[sh0_data[i2 * 4 + 0]];\n\t\t\t\t\tconst g = sh0.codebook[sh0_data[i2 * 4 + 1]];\n\t\t\t\t\tconst b = sh0.codebook[sh0_data[i2 * 4 + 2]];\n\t\t\t\t\tconst a = sh0_data[i2 * 4 + 3] / 255;\n\t\t\t\t\tc2.set(\n\t\t\t\t\t\t0.5 + r2 * SH_C02,\n\t\t\t\t\t\t0.5 + g * SH_C02,\n\t\t\t\t\t\t0.5 + b * SH_C02,\n\t\t\t\t\t\ta\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tconst r2 = lerp(sh0.mins[0], sh0.maxs[0], sh0_data[i2 * 4 + 0] / 255);\n\t\t\t\t\tconst g = lerp(sh0.mins[1], sh0.maxs[1], sh0_data[i2 * 4 + 1] / 255);\n\t\t\t\t\tconst b = lerp(sh0.mins[2], sh0.maxs[2], sh0_data[i2 * 4 + 2] / 255);\n\t\t\t\t\tconst a = lerp(sh0.mins[3], sh0.maxs[3], sh0_data[i2 * 4 + 3] / 255);\n\t\t\t\t\tc2.set(\n\t\t\t\t\t\t0.5 + r2 * SH_C02,\n\t\t\t\t\t\t0.5 + g * SH_C02,\n\t\t\t\t\t\t0.5 + b * SH_C02,\n\t\t\t\t\t\t1 / (1 + Math.exp(-a))\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (sh) {\n\t\t\t\tconst n = sh_labels_data[i2 * 4 + 0] + (sh_labels_data[i2 * 4 + 1] << 8);\n\t\t\t\tconst u = n % 64 * coeffs;\n\t\t\t\tconst v6 = Math.floor(n / 64);\n\t\t\t\tif (meta.version === 2) {\n\t\t\t\t\tfor (let j = 0; j < 3; ++j) {\n\t\t\t\t\t\tfor (let k = 0; k < coeffs; ++k) {\n\t\t\t\t\t\t\tsh[j * 15 + k] = shN.codebook[sh_centroids_data[(u + k) * 4 + j + v6 * data2.sh_centroids.width * 4]];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tfor (let j = 0; j < 3; ++j) {\n\t\t\t\t\t\tfor (let k = 0; k < coeffs; ++k) {\n\t\t\t\t\t\t\tsh[j * 15 + k] = lerp(shN.mins, shN.maxs, sh_centroids_data[(u + k) * 4 + j + v6 * data2.sh_centroids.width * 4] / 255);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n};\nvar GSplatSogData = class {\n\tmeta;\n\tnumSplats;\n\tmeans_l;\n\tmeans_u;\n\tquats;\n\tscales;\n\tsh0;\n\tsh_centroids;\n\tsh_labels;\n\tcodebookTexture = null;\n\turl = \"\";\n\t_centers = null;\n\t// Marked when resource is destroyed, to abort any in-flight async preparation\n\tdestroyed = false;\n\tshBands = 0;\n\t_destroyGpuResources() {\n\t\tthis.means_l?.destroy();\n\t\tthis.means_u?.destroy();\n\t\tthis.quats?.destroy();\n\t\tthis.scales?.destroy();\n\t\tthis.sh0?.destroy();\n\t\tthis.sh_centroids?.destroy();\n\t\tthis.sh_labels?.destroy();\n\t\tthis.codebookTexture?.destroy();\n\t\tthis.codebookTexture = null;\n\t}\n\t// calculate the number of bands given the centroids texture width\n\tstatic calcBands(centroidsWidth) {\n\t\tconst shBandsWidths = { 192: 1, 512: 2, 960: 3 };\n\t\treturn shBandsWidths[centroidsWidth] ?? 0;\n\t}\n\tdestroy() {\n\t\tthis.destroyed = true;\n\t\tthis._destroyGpuResources();\n\t}\n\tcreateIter(p, r, s2, c2, sh) {\n\t\treturn new GSplatSogIterator(this, p, r, s2, c2, sh);\n\t}\n\tcalcAabb(result) {\n\t\tconst { mins, maxs } = this.meta.means;\n\t\tconst map = (v6) => Math.sign(v6) * (Math.exp(Math.abs(v6)) - 1);\n\t\tresult.center.set(\n\t\t\t(map(mins[0]) + map(maxs[0])) * 0.5,\n\t\t\t(map(mins[1]) + map(maxs[1])) * 0.5,\n\t\t\t(map(mins[2]) + map(maxs[2])) * 0.5\n\t\t);\n\t\tresult.halfExtents.set(\n\t\t\t(map(maxs[0]) - map(mins[0])) * 0.5,\n\t\t\t(map(maxs[1]) - map(mins[1])) * 0.5,\n\t\t\t(map(maxs[2]) - map(mins[2])) * 0.5\n\t\t);\n\t}\n\tgetCenters() {\n\t\tconst centers = this._centers;\n\t\tthis._centers = null;\n\t\treturn centers;\n\t}\n\t// use bound center for focal point\n\tcalcFocalPoint(result, pred) {\n\t\tconst { mins, maxs } = this.meta.means;\n\t\tconst map = (v6) => Math.sign(v6) * (Math.exp(Math.abs(v6)) - 1);\n\t\tresult.set(\n\t\t\t(map(mins[0]) + map(maxs[0])) * 0.5,\n\t\t\t(map(mins[1]) + map(maxs[1])) * 0.5,\n\t\t\t(map(mins[2]) + map(maxs[2])) * 0.5\n\t\t);\n\t}\n\tget isSog() {\n\t\treturn true;\n\t}\n\tasync decompress() {\n\t\tconst members = [\n\t\t\t\"x\",\n\t\t\t\"y\",\n\t\t\t\"z\",\n\t\t\t\"f_dc_0\",\n\t\t\t\"f_dc_1\",\n\t\t\t\"f_dc_2\",\n\t\t\t\"opacity\",\n\t\t\t\"scale_0\",\n\t\t\t\"scale_1\",\n\t\t\t\"scale_2\",\n\t\t\t\"rot_0\",\n\t\t\t\"rot_1\",\n\t\t\t\"rot_2\",\n\t\t\t\"rot_3\"\n\t\t];\n\t\tthis._patchCodebooks();\n\t\tconst { shBands } = this;\n\t\tconst { means_l, means_u, quats, scales, sh0, sh_labels, sh_centroids } = this;\n\t\tmeans_l._levels[0] = await readImageDataAsync(means_l);\n\t\tmeans_u._levels[0] = await readImageDataAsync(means_u);\n\t\tquats._levels[0] = await readImageDataAsync(quats);\n\t\tscales._levels[0] = await readImageDataAsync(scales);\n\t\tsh0._levels[0] = await readImageDataAsync(sh0);\n\t\tif (shBands > 0) {\n\t\t\tsh_labels._levels[0] = await readImageDataAsync(sh_labels);\n\t\t\tsh_centroids._levels[0] = await readImageDataAsync(sh_centroids);\n\t\t\tconst shMembers = [];\n\t\t\tfor (let i2 = 0; i2 < 45; ++i2) {\n\t\t\t\tshMembers.push(`f_rest_${i2}`);\n\t\t\t}\n\t\t\tmembers.splice(members.indexOf(\"f_dc_0\") + 1, 0, ...shMembers);\n\t\t}\n\t\tconst data2 = {};\n\t\tmembers.forEach((name) => {\n\t\t\tdata2[name] = new Float32Array(this.numSplats);\n\t\t});\n\t\tconst p = new Vec3();\n\t\tconst r = new Quat();\n\t\tconst s2 = new Vec3();\n\t\tconst c2 = new Vec4();\n\t\tconst sh = shBands > 0 ? new Float32Array(45) : null;\n\t\tconst iter = this.createIter(p, r, s2, c2, sh);\n\t\tfor (let i2 = 0; i2 < this.numSplats; ++i2) {\n\t\t\titer.read(i2);\n\t\t\tdata2.x[i2] = p.x;\n\t\t\tdata2.y[i2] = p.y;\n\t\t\tdata2.z[i2] = p.z;\n\t\t\tdata2.rot_1[i2] = r.x;\n\t\t\tdata2.rot_2[i2] = r.y;\n\t\t\tdata2.rot_3[i2] = r.z;\n\t\t\tdata2.rot_0[i2] = r.w;\n\t\t\tdata2.scale_0[i2] = s2.x;\n\t\t\tdata2.scale_1[i2] = s2.y;\n\t\t\tdata2.scale_2[i2] = s2.z;\n\t\t\tdata2.f_dc_0[i2] = (c2.x - 0.5) / SH_C02;\n\t\t\tdata2.f_dc_1[i2] = (c2.y - 0.5) / SH_C02;\n\t\t\tdata2.f_dc_2[i2] = (c2.z - 0.5) / SH_C02;\n\t\t\tdata2.opacity[i2] = c2.w <= 0 ? -40 : c2.w >= 1 ? 40 : -Math.log(1 / c2.w - 1);\n\t\t\tif (sh) {\n\t\t\t\tfor (let c3 = 0; c3 < 45; ++c3) {\n\t\t\t\t\tdata2[`f_rest_${c3}`][i2] = sh[c3];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn new GSplatData([{\n\t\t\tname: \"vertex\",\n\t\t\tcount: this.numSplats,\n\t\t\tproperties: members.map((name) => {\n\t\t\t\treturn {\n\t\t\t\t\tname,\n\t\t\t\t\ttype: \"float\",\n\t\t\t\t\tbyteSize: 4,\n\t\t\t\t\tstorage: data2[name]\n\t\t\t\t};\n\t\t\t})\n\t\t}]);\n\t}\n\tasync generateCenters() {\n\t\tconst { device, width, height } = this.means_l;\n\t\tconst { scope } = device;\n\t\tconst centersTexture = new Texture(device, {\n\t\t\tname: \"sogCentersTexture\",\n\t\t\twidth,\n\t\t\theight,\n\t\t\tformat: PIXELFORMAT_RGBA32U,\n\t\t\tmipmaps: false\n\t\t});\n\t\tconst shader = ShaderUtils.createShader(device, {\n\t\t\tuniqueName: \"GsplatSogCentersShader\",\n\t\t\tattributes: { vertex_position: SEMANTIC_POSITION },\n\t\t\tvertexChunk: \"fullscreenQuadVS\",\n\t\t\tfragmentGLSL: gsplatSogCenters_default,\n\t\t\tfragmentWGSL: gsplatSogCenters_default2,\n\t\t\tfragmentOutputTypes: [\"uvec4\"]\n\t\t});\n\t\tconst renderTarget = new RenderTarget({\n\t\t\tcolorBuffer: centersTexture,\n\t\t\tdepth: false,\n\t\t\tmipLevel: 0\n\t\t});\n\t\tresolve(scope, {\n\t\t\tmeans_l: this.means_l,\n\t\t\tmeans_u: this.means_u,\n\t\t\tnumSplats: this.numSplats,\n\t\t\tmeans_mins: this.meta.means.mins,\n\t\t\tmeans_maxs: this.meta.means.maxs\n\t\t});\n\t\tconst quad = new QuadRender(shader);\n\t\tconst renderPass = new RenderPassShaderQuad(device);\n\t\trenderPass.quadRender = quad;\n\t\trenderPass.name = \"SogGenerateCenters\";\n\t\trenderPass.init(renderTarget);\n\t\trenderPass.colorOps.clear = false;\n\t\trenderPass.depthStencilOps.clearDepth = false;\n\t\trenderPass.render();\n\t\tquad.destroy();\n\t\trenderTarget.destroy();\n\t\tconst u32 = await readImageDataAsync(centersTexture);\n\t\tif (this.destroyed || device._destroyed) {\n\t\t\tcentersTexture.destroy();\n\t\t\treturn;\n\t\t}\n\t\tconst asFloat = new Float32Array(u32.buffer);\n\t\tconst result = new Float32Array(this.numSplats * 3);\n\t\tfor (let i2 = 0; i2 < this.numSplats; i2++) {\n\t\t\tconst base = i2 * 4;\n\t\t\tresult[i2 * 3 + 0] = asFloat[base + 0];\n\t\t\tresult[i2 * 3 + 1] = asFloat[base + 1];\n\t\t\tresult[i2 * 3 + 2] = asFloat[base + 2];\n\t\t}\n\t\tthis._centers = result;\n\t\tcentersTexture.destroy();\n\t}\n\t_createCodebookTexture() {\n\t\tconst device = this.means_l.device;\n\t\tconst { scales, sh0, shN } = this.meta;\n\t\tconst scalesCb = scales.codebook;\n\t\tconst sh0Cb = sh0.codebook;\n\t\tconst shNCb = shN?.codebook;\n\t\tconst data2 = new Float32Array(256 * 4);\n\t\tfor (let i2 = 0; i2 < 256; i2++) data2[i2 * 4] = scalesCb[i2];\n\t\tfor (let i2 = 0; i2 < 256; i2++) data2[i2 * 4 + 1] = sh0Cb[i2];\n\t\tif (shNCb) {\n\t\t\tfor (let i2 = 0; i2 < 256; i2++) data2[i2 * 4 + 2] = shNCb[i2];\n\t\t}\n\t\tconst urlSuffix = this.url ? `_${this.url}` : \"\";\n\t\tthis.codebookTexture = new Texture(device, {\n\t\t\tname: `sogCodebook${urlSuffix}`,\n\t\t\twidth: 256,\n\t\t\theight: 1,\n\t\t\tformat: PIXELFORMAT_RGBA32F,\n\t\t\tmipmaps: false,\n\t\t\tminFilter: FILTER_NEAREST,\n\t\t\tmagFilter: FILTER_NEAREST,\n\t\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE,\n\t\t\tlevels: [data2]\n\t\t});\n\t}\n\t_patchCodebooks() {\n\t\t[\"scales\", \"sh0\", \"shN\"].forEach((name) => {\n\t\t\tconst codebook = this.meta[name]?.codebook;\n\t\t\tif (codebook?.[0] === null) {\n\t\t\t\tcodebook[0] = codebook[1] + (codebook[1] - codebook[255]) / 255;\n\t\t\t}\n\t\t});\n\t}\n\tprepareCodebook() {\n\t\tconst device = this.means_l?.device;\n\t\tif (this.destroyed || !device || device._destroyed) return;\n\t\tthis._patchCodebooks();\n\t\tif (this.meta.version === 2) {\n\t\t\tthis._createCodebookTexture();\n\t\t}\n\t}\n\tasync prepareGpuData() {\n\t\tconst device = this.means_l?.device;\n\t\tif (this.destroyed || !device || device._destroyed) return;\n\t\tawait this.generateCenters();\n\t}\n};\n\nvar GSplatSogResource = class extends GSplatResourceBase {\n\tconstructor(device, gsplatData, options2 = {}) {\n\t\tsuper(device, gsplatData, options2);\n\t\tconst { meta, means_l } = gsplatData;\n\t\tconst isV2 = meta.version === 2;\n\t\tconst hasSH = gsplatData.shBands > 0;\n\t\tif (means_l) {\n\t\t\tthis.streams.textureDimensions.set(means_l.width, means_l.height);\n\t\t}\n\t\tthis.streams.textures.set(\"means_l\", gsplatData.means_l);\n\t\tthis.streams.textures.set(\"means_u\", gsplatData.means_u);\n\t\tthis.streams.textures.set(\"quats\", gsplatData.quats);\n\t\tthis.streams.textures.set(\"scales\", gsplatData.scales);\n\t\tthis.streams.textures.set(\"sh0\", gsplatData.sh0);\n\t\tif (hasSH) {\n\t\t\tthis.streams.textures.set(\"sh_labels\", gsplatData.sh_labels);\n\t\t\tthis.streams.textures.set(\"sh_centroids\", gsplatData.sh_centroids);\n\t\t}\n\t\tif (isV2) {\n\t\t\tthis.streams.textures.set(\"sogCodebook\", gsplatData.codebookTexture);\n\t\t}\n\t\tconst streams = [\n\t\t\t{ name: \"means_l\", format: PIXELFORMAT_RGBA8 },\n\t\t\t{ name: \"means_u\", format: PIXELFORMAT_RGBA8 },\n\t\t\t{ name: \"quats\", format: PIXELFORMAT_RGBA8 },\n\t\t\t{ name: \"scales\", format: PIXELFORMAT_RGBA8 },\n\t\t\t{ name: \"sh0\", format: PIXELFORMAT_RGBA8 }\n\t\t];\n\t\tif (hasSH) {\n\t\t\tstreams.push({ name: \"sh_labels\", format: PIXELFORMAT_RGBA8 });\n\t\t\tstreams.push({ name: \"sh_centroids\", format: PIXELFORMAT_RGBA8 });\n\t\t}\n\t\tif (isV2) {\n\t\t\tstreams.push({ name: \"sogCodebook\", format: PIXELFORMAT_RGBA32F });\n\t\t}\n\t\tthis._format = new GSplatFormat(device, streams, {\n\t\t\treadGLSL: '#include \"gsplatSogVS\"',\n\t\t\treadWGSL: '#include \"gsplatSogVS\"'\n\t\t});\n\t\tthis._populateParameters();\n\t}\n\treleaseTextureSources() {\n\t\tconst d = this.gsplatData;\n\t\td.means_l?.setReleaseSourceAfterUpload();\n\t\td.means_u?.setReleaseSourceAfterUpload();\n\t\td.quats?.setReleaseSourceAfterUpload();\n\t\td.scales?.setReleaseSourceAfterUpload();\n\t\td.sh0?.setReleaseSourceAfterUpload();\n\t\td.sh_centroids?.setReleaseSourceAfterUpload();\n\t\td.sh_labels?.setReleaseSourceAfterUpload();\n\t}\n\t_actualDestroy() {\n\t\tthis.streams.textures.delete(\"means_l\");\n\t\tthis.streams.textures.delete(\"means_u\");\n\t\tthis.streams.textures.delete(\"quats\");\n\t\tthis.streams.textures.delete(\"scales\");\n\t\tthis.streams.textures.delete(\"sh0\");\n\t\tthis.streams.textures.delete(\"sh_labels\");\n\t\tthis.streams.textures.delete(\"sh_centroids\");\n\t\tthis.streams.textures.delete(\"sogCodebook\");\n\t\tthis.gsplatData.destroy();\n\t\tsuper._actualDestroy();\n\t}\n\t_populateParameters() {\n\t\tconst { meta } = this.gsplatData;\n\t\tif (meta.means) {\n\t\t\tthis.parameters.set(\"means_mins\", meta.means.mins);\n\t\t\tthis.parameters.set(\"means_maxs\", meta.means.maxs);\n\t\t}\n\t\tif (meta.version !== 2) {\n\t\t\tif (meta.scales) {\n\t\t\t\tthis.parameters.set(\"scales_mins\", meta.scales.mins);\n\t\t\t\tthis.parameters.set(\"scales_maxs\", meta.scales.maxs);\n\t\t\t}\n\t\t\tif (meta.sh0) {\n\t\t\t\tthis.parameters.set(\"sh0_mins\", meta.sh0.mins);\n\t\t\t\tthis.parameters.set(\"sh0_maxs\", meta.sh0.maxs);\n\t\t\t}\n\t\t\tif (meta.shN) {\n\t\t\t\tthis.parameters.set(\"shN_mins\", meta.shN.mins);\n\t\t\t\tthis.parameters.set(\"shN_maxs\", meta.shN.maxs);\n\t\t\t}\n\t\t}\n\t}\n\tconfigureMaterialDefines(defines) {\n\t\tconst gsplatData = this.gsplatData;\n\t\tdefines.set(\"SH_BANDS\", gsplatData.shBands);\n\t\tif (gsplatData.meta.version === 2) {\n\t\t\tdefines.set(\"SOG_V2\", \"\");\n\t\t}\n\t}\n\t// SOG geometry getters compile out under GSPLAT_WORKBUFFER_GEOMETRY (see sog.js chunk),\n\t// letting color-only (SH) updates skip the means/quats/scales source reads\n\tget supportsWorkBufferGeometry() {\n\t\treturn true;\n\t}\n};\n\nvar FILLMODE_NONE = \"NONE\";\nvar FILLMODE_FILL_WINDOW = \"FILL_WINDOW\";\nvar FILLMODE_KEEP_ASPECT = \"KEEP_ASPECT\";\nvar RESOLUTION_AUTO = \"AUTO\";\nvar RESOLUTION_FIXED = \"FIXED\";\n\nvar currentApplication;\nfunction getApplication() {\n\treturn currentApplication;\n}\nfunction setApplication(app2) {\n\tcurrentApplication = app2;\n}\n\nvar _createdLoadingScreen = false;\nvar script = {\n\t// set during script load to be used for initializing script\n\tapp: null,\n\tcreateLoadingScreen(callback) {\n\t\tif (_createdLoadingScreen) {\n\t\t\treturn;\n\t\t}\n\t\t_createdLoadingScreen = true;\n\t\tconst app2 = getApplication();\n\t\tcallback(app2);\n\t}\n};\n\nvar FrameGraph = class {\n\trenderPasses = [];\n\trenderTargetMap = /* @__PURE__ */ new Map();\n\tmultiview = null;\n\tbeginMultiView(device) {\n\t\tthis.multiview = new FramePassMultiView(device);\n\t}\n\tendMultiView() {\n\t\tconst wrap = this.multiview;\n\t\tthis.multiview = null;\n\t\tif (wrap?.children.length) {\n\t\t\tthis.renderPasses.push(wrap);\n\t\t}\n\t}\n\taddRenderPass(renderPass) {\n\t\trenderPass.frameUpdate();\n\t\tconst beforePasses = renderPass.beforePasses;\n\t\tfor (let i2 = 0; i2 < beforePasses.length; i2++) {\n\t\t\tconst pass = beforePasses[i2];\n\t\t\tif (pass.enabled) {\n\t\t\t\tthis.addRenderPass(pass);\n\t\t\t}\n\t\t}\n\t\tif (renderPass.enabled) {\n\t\t\tif (this.multiview) {\n\t\t\t\tthis.multiview.addChild(renderPass);\n\t\t\t} else {\n\t\t\t\tthis.renderPasses.push(renderPass);\n\t\t\t}\n\t\t}\n\t\tconst afterPasses = renderPass.afterPasses;\n\t\tfor (let i2 = 0; i2 < afterPasses.length; i2++) {\n\t\t\tconst pass = afterPasses[i2];\n\t\t\tif (pass.enabled) {\n\t\t\t\tthis.addRenderPass(pass);\n\t\t\t}\n\t\t}\n\t}\n\treset() {\n\t\tthis.renderPasses.length = 0;\n\t}\n\tcompile() {\n\t\tthis._compilePasses(this.renderPasses);\n\t\tfor (let i2 = 0; i2 < this.renderPasses.length; i2++) {\n\t\t\tconst pass = this.renderPasses[i2];\n\t\t\tif (pass instanceof FramePassMultiView) {\n\t\t\t\tthis._compilePasses(pass.children);\n\t\t\t}\n\t\t}\n\t}\n\t_compilePasses(passes) {\n\t\tconst renderTargetMap = this.renderTargetMap;\n\t\tfor (let i2 = 0; i2 < passes.length; i2++) {\n\t\t\tconst renderPass = passes[i2];\n\t\t\trenderPass._skipStart = false;\n\t\t\trenderPass._skipEnd = false;\n\t\t\tconst renderTarget = renderPass.renderTarget;\n\t\t\tif (renderTarget !== void 0) {\n\t\t\t\tconst prevPass = renderTargetMap.get(renderTarget);\n\t\t\t\tif (prevPass) {\n\t\t\t\t\tconst count = renderPass.colorArrayOps.length;\n\t\t\t\t\tfor (let j = 0; j < count; j++) {\n\t\t\t\t\t\tconst colorOps = renderPass.colorArrayOps[j];\n\t\t\t\t\t\tif (!colorOps.clear) {\n\t\t\t\t\t\t\tprevPass.colorArrayOps[j].store = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!renderPass.depthStencilOps.clearDepth) {\n\t\t\t\t\t\tprevPass.depthStencilOps.storeDepth = true;\n\t\t\t\t\t}\n\t\t\t\t\tif (!renderPass.depthStencilOps.clearStencil) {\n\t\t\t\t\t\tprevPass.depthStencilOps.storeStencil = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\trenderTargetMap.set(renderTarget, renderPass);\n\t\t\t}\n\t\t}\n\t\tfor (let i2 = 0; i2 < passes.length - 1; i2++) {\n\t\t\tconst firstPass = passes[i2];\n\t\t\tconst firstRT = firstPass.renderTarget;\n\t\t\tconst secondPass = passes[i2 + 1];\n\t\t\tconst secondRT = secondPass.renderTarget;\n\t\t\tif (firstRT !== secondRT || firstRT === void 0) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (secondPass.depthStencilOps.clearDepth || secondPass.depthStencilOps.clearStencil || secondPass.colorArrayOps.some((colorOps) => colorOps.clear)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (firstPass.afterPasses.length > 0) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (secondPass.beforePasses.length > 0) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tfirstPass._skipEnd = true;\n\t\t\tsecondPass._skipStart = true;\n\t\t}\n\t\tlet lastCubeTexture = null;\n\t\tlet lastCubeRenderPass = null;\n\t\tfor (let i2 = 0; i2 < passes.length; i2++) {\n\t\t\tconst renderPass = passes[i2];\n\t\t\tconst renderTarget = renderPass.renderTarget;\n\t\t\tconst thisTexture = renderTarget?.colorBuffer;\n\t\t\tif (thisTexture?.cubemap) {\n\t\t\t\tif (lastCubeTexture === thisTexture) {\n\t\t\t\t\tconst count = lastCubeRenderPass.colorArrayOps.length;\n\t\t\t\t\tfor (let j = 0; j < count; j++) {\n\t\t\t\t\t\tlastCubeRenderPass.colorArrayOps[j].mipmaps = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tlastCubeTexture = renderTarget.colorBuffer;\n\t\t\t\tlastCubeRenderPass = renderPass;\n\t\t\t} else if (renderPass.requiresCubemaps) {\n\t\t\t\tlastCubeTexture = null;\n\t\t\t\tlastCubeRenderPass = null;\n\t\t\t}\n\t\t}\n\t\trenderTargetMap.clear();\n\t}\n\trender(device) {\n\t\tthis.compile();\n\t\tconst renderPasses = this.renderPasses;\n\t\tfor (let i2 = 0; i2 < renderPasses.length; i2++) {\n\t\t\trenderPasses[i2].render();\n\t\t}\n\t}\n};\n\nvar AreaLightCacheEntry = class {\n\tconstructor(texture0, texture1) {\n\t\tthis.texture0 = texture0;\n\t\tthis.texture1 = texture1;\n\t}\n\tdestroy() {\n\t\tthis.texture0?.destroy();\n\t\tthis.texture1?.destroy();\n\t}\n};\nvar deviceCache4 = new DeviceCache();\nvar AreaLightLuts = class _AreaLightLuts {\n\tstatic createTexture(device, format, size, postfix = \"\") {\n\t\tconst tex = new Texture(device, {\n\t\t\tname: `AreaLightLUT${postfix}`,\n\t\t\twidth: size,\n\t\t\theight: size,\n\t\t\tformat,\n\t\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE,\n\t\t\ttype: TEXTURETYPE_DEFAULT,\n\t\t\tmagFilter: FILTER_LINEAR,\n\t\t\tminFilter: FILTER_NEAREST,\n\t\t\tanisotropy: 1,\n\t\t\tmipmaps: false\n\t\t});\n\t\treturn tex;\n\t}\n\tstatic applyTextures(device, texture1, texture2) {\n\t\tdeviceCache4.remove(device);\n\t\tdeviceCache4.get(device, () => {\n\t\t\treturn new AreaLightCacheEntry(texture1, texture1 === texture2 ? null : texture2);\n\t\t});\n\t\tdevice.scope.resolve(\"areaLightsLutTex1\").setValue(texture1);\n\t\tdevice.scope.resolve(\"areaLightsLutTex2\").setValue(texture2);\n\t}\n\t// placeholder LUT textures for area light\n\tstatic createPlaceholder(device) {\n\t\tconst texture = _AreaLightLuts.createTexture(device, PIXELFORMAT_RGBA16F, 2, \"placeholder\");\n\t\tconst pixels = texture.lock();\n\t\tpixels.fill(0);\n\t\ttexture.unlock();\n\t\t_AreaLightLuts.applyTextures(device, texture, texture);\n\t}\n\t// creates LUT texture used by area lights\n\tstatic set(device, ltcMat1, ltcMat2) {\n\t\tfunction buildTexture(device2, data3, format) {\n\t\t\tconst texture = _AreaLightLuts.createTexture(device2, format, 64);\n\t\t\ttexture.lock().set(data3);\n\t\t\ttexture.unlock();\n\t\t\treturn texture;\n\t\t}\n\t\tfunction convertToHalfFloat(data3) {\n\t\t\tconst count = data3.length;\n\t\t\tconst ret = new Uint16Array(count);\n\t\t\tconst float2Half = FloatPacking.float2Half;\n\t\t\tfor (let i2 = 0; i2 < count; i2++) {\n\t\t\t\tret[i2] = float2Half(data3[i2]);\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t\tconst srcData1 = ltcMat1;\n\t\tconst srcData2 = ltcMat2;\n\t\tconst data1 = convertToHalfFloat(srcData1);\n\t\tconst data2 = convertToHalfFloat(srcData2);\n\t\tconst tex1 = buildTexture(device, data1, PIXELFORMAT_RGBA16F);\n\t\tconst tex2 = buildTexture(device, data2, PIXELFORMAT_RGBA16F);\n\t\t_AreaLightLuts.applyTextures(device, tex1, tex2);\n\t}\n};\n\nvar DEFAULT_LOCALE = \"en-US\";\nvar DEFAULT_LOCALE_FALLBACKS = {\n\t\"en\": \"en-US\",\n\t\"es\": \"en-ES\",\n\t\"zh\": \"zh-CN\",\n\t\"zh-HK\": \"zh-TW\",\n\t\"zh-TW\": \"zh-HK\",\n\t\"zh-MO\": \"zh-HK\",\n\t\"fr\": \"fr-FR\",\n\t\"de\": \"de-DE\",\n\t\"it\": \"it-IT\",\n\t\"ru\": \"ru-RU\",\n\t\"ja\": \"ja-JP\"\n};\n\nvar PLURALS = {};\nfunction definePluralFn(locales, fn) {\n\tfor (let i2 = 0, len = locales.length; i2 < len; i2++) {\n\t\tPLURALS[locales[i2]] = fn;\n\t}\n}\nfunction getLang(locale) {\n\tconst idx = locale.indexOf(\"-\");\n\tif (idx !== -1) {\n\t\treturn locale.substring(0, idx);\n\t}\n\treturn locale;\n}\nfunction replaceLang(locale, desiredLang) {\n\tconst idx = locale.indexOf(\"-\");\n\tif (idx !== -1) {\n\t\treturn desiredLang + locale.substring(idx);\n\t}\n\treturn desiredLang;\n}\nfunction findAvailableLocale(desiredLocale, availableLocales) {\n\tif (availableLocales[desiredLocale]) {\n\t\treturn desiredLocale;\n\t}\n\tlet fallback = DEFAULT_LOCALE_FALLBACKS[desiredLocale];\n\tif (fallback && availableLocales[fallback]) {\n\t\treturn fallback;\n\t}\n\tconst lang = getLang(desiredLocale);\n\tfallback = DEFAULT_LOCALE_FALLBACKS[lang];\n\tif (availableLocales[fallback]) {\n\t\treturn fallback;\n\t}\n\tif (availableLocales[lang]) {\n\t\treturn lang;\n\t}\n\treturn DEFAULT_LOCALE;\n}\ndefinePluralFn([\n\t\"ja\",\n\t\"ko\",\n\t\"th\",\n\t\"vi\",\n\t\"zh\",\n\t\"id\"\n], (n) => {\n\treturn 0;\n});\ndefinePluralFn([\n\t\"fa\",\n\t\"hi\"\n], (n) => {\n\tif (n >= 0 && n <= 1) {\n\t\treturn 0;\n\t}\n\treturn 1;\n});\ndefinePluralFn([\n\t\"fr\",\n\t\"pt\"\n], (n) => {\n\tif (n >= 0 && n < 2) {\n\t\treturn 0;\n\t}\n\treturn 1;\n});\ndefinePluralFn([\n\t\"da\"\n], (n) => {\n\tif (n === 1 || !Number.isInteger(n) && n >= 0 && n <= 1) {\n\t\treturn 0;\n\t}\n\treturn 1;\n});\ndefinePluralFn([\n\t\"de\",\n\t\"en\",\n\t\"it\",\n\t\"el\",\n\t\"es\",\n\t\"tr\",\n\t\"fi\",\n\t\"sv\",\n\t\"nb\",\n\t\"no\",\n\t\"ur\"\n], (n) => {\n\tif (n === 1) {\n\t\treturn 0;\n\t}\n\treturn 1;\n});\ndefinePluralFn([\n\t\"ru\",\n\t\"uk\"\n], (n) => {\n\tif (Number.isInteger(n)) {\n\t\tconst mod10 = n % 10;\n\t\tconst mod100 = n % 100;\n\t\tif (mod10 === 1 && mod100 !== 11) {\n\t\t\treturn 0;\n\t\t} else if (mod10 >= 2 && mod10 <= 4 && (mod100 < 12 || mod100 > 14)) {\n\t\t\treturn 1;\n\t\t} else if (mod10 === 0 || mod10 >= 5 && mod10 <= 9 || mod100 >= 11 && mod100 <= 14) {\n\t\t\treturn 2;\n\t\t}\n\t}\n\treturn 3;\n});\ndefinePluralFn([\n\t\"pl\"\n], (n) => {\n\tif (Number.isInteger(n)) {\n\t\tif (n === 1) {\n\t\t\treturn 0;\n\t\t}\n\t\tconst mod10 = n % 10;\n\t\tconst mod100 = n % 100;\n\t\tif (mod10 >= 2 && mod10 <= 4 && (mod100 < 12 || mod100 > 14)) {\n\t\t\treturn 1;\n\t\t} else if (mod10 >= 0 && mod10 <= 1 || mod10 >= 5 && mod10 <= 9 || mod100 >= 12 && mod100 <= 14) {\n\t\t\treturn 2;\n\t\t}\n\t}\n\treturn 3;\n});\ndefinePluralFn([\n\t\"ar\"\n], (n) => {\n\tif (n === 0) {\n\t\treturn 0;\n\t} else if (n === 1) {\n\t\treturn 1;\n\t} else if (n === 2) {\n\t\treturn 2;\n\t}\n\tif (Number.isInteger(n)) {\n\t\tconst mod100 = n % 100;\n\t\tif (mod100 >= 3 && mod100 <= 10) {\n\t\t\treturn 3;\n\t\t} else if (mod100 >= 11 && mod100 <= 99) {\n\t\t\treturn 4;\n\t\t}\n\t}\n\treturn 5;\n});\nvar DEFAULT_PLURAL_FN = PLURALS[getLang(DEFAULT_LOCALE)];\nfunction getPluralFn(lang) {\n\treturn PLURALS[lang] || DEFAULT_PLURAL_FN;\n}\n\nvar ABSOLUTE_URL = new RegExp(\n\t\"^\\\\s*(?:(?:[a-z]+[a-z0-9\\\\-+.]*:)?//|data:|blob:)\",\n\t\"i\"\n\t// non case-sensitive flag\n);\nvar ASSET_ANIMATION = \"animation\";\nvar ASSET_AUDIO = \"audio\";\nvar ASSET_IMAGE = \"image\";\nvar ASSET_JSON = \"json\";\nvar ASSET_MODEL = \"model\";\nvar ASSET_MATERIAL = \"material\";\nvar ASSET_TEXT = \"text\";\nvar ASSET_TEXTURE = \"texture\";\nvar ASSET_TEXTUREATLAS = \"textureatlas\";\nvar ASSET_CUBEMAP = \"cubemap\";\nvar ASSET_SHADER = \"shader\";\nvar ASSET_CSS = \"css\";\nvar ASSET_HTML = \"html\";\nvar ASSET_SCRIPT = \"script\";\nvar ASSET_CONTAINER = \"container\";\n\nvar AssetFile = class {\n\tconstructor(url = \"\", filename = \"\", hash = null, size = null, opt = null, contents = null) {\n\t\tthis.url = url;\n\t\tthis.filename = filename;\n\t\tthis.hash = hash;\n\t\tthis.size = size;\n\t\tthis.opt = opt;\n\t\tthis.contents = contents;\n\t}\n\t// Compare this AssetFile with another. Returns true if they have the same data\n\t// and false otherwise.\n\tequals(other) {\n\t\treturn this.url === other.url && this.filename === other.filename && this.hash === other.hash && this.size === other.size && this.opt === other.opt && this.contents === other.contents;\n\t}\n};\n\nvar assetIdCounter = -1;\nvar VARIANT_SUPPORT = {\n\tpvr: \"extCompressedTexturePVRTC\",\n\tdxt: \"extCompressedTextureS3TC\",\n\tetc2: \"extCompressedTextureETC\",\n\tetc1: \"extCompressedTextureETC1\",\n\tbasis: \"canvas\"\n\t// dummy, basis is always supported\n};\nvar VARIANT_DEFAULT_PRIORITY = [\"pvr\", \"dxt\", \"etc2\", \"etc1\", \"basis\"];\nvar Asset = class extends EventHandler {\n\tstatic EVENT_LOAD = \"load\";\n\tstatic EVENT_UNLOAD = \"unload\";\n\tstatic EVENT_REMOVE = \"remove\";\n\tstatic EVENT_ERROR = \"error\";\n\tstatic EVENT_CHANGE = \"change\";\n\tstatic EVENT_PROGRESS = \"progress\";\n\tstatic EVENT_ADDLOCALIZED = \"add:localized\";\n\tstatic EVENT_REMOVELOCALIZED = \"remove:localized\";\n\t_file = null;\n\t_i18n = {};\n\t_preload = false;\n\t_resources = [];\n\tid = assetIdCounter--;\n\tloaded = false;\n\tloading = false;\n\toptions = {};\n\tregistry = null;\n\ttags = new Tags(this);\n\ttype;\n\turlObject = null;\n\tconstructor(name, type, file, data2 = {}, options2 = {}) {\n\t\tsuper();\n\t\tthis._name = name || \"\";\n\t\tthis.type = type;\n\t\tthis._data = data2 || {};\n\t\tthis.options = options2 || {};\n\t\tif (file) this.file = file;\n\t}\n\tset name(value) {\n\t\tif (this._name === value) {\n\t\t\treturn;\n\t\t}\n\t\tconst old = this._name;\n\t\tthis._name = value;\n\t\tthis.fire(\"name\", this, this._name, old);\n\t}\n\tget name() {\n\t\treturn this._name;\n\t}\n\tset file(value) {\n\t\tif (value && value.variants && [\"texture\", \"textureatlas\", \"bundle\"].indexOf(this.type) !== -1) {\n\t\t\tconst app2 = this.registry?._loader?._app || getApplication();\n\t\t\tconst device = app2?.graphicsDevice;\n\t\t\tif (device) {\n\t\t\t\tfor (let i2 = 0, len = VARIANT_DEFAULT_PRIORITY.length; i2 < len; i2++) {\n\t\t\t\t\tconst variant = VARIANT_DEFAULT_PRIORITY[i2];\n\t\t\t\t\tif (value.variants[variant] && device[VARIANT_SUPPORT[variant]]) {\n\t\t\t\t\t\tvalue = value.variants[variant];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif (app2.enableBundles) {\n\t\t\t\t\t\tconst bundles = app2.bundles.listBundlesForAsset(this);\n\t\t\t\t\t\tif (bundles && bundles.find((b) => {\n\t\t\t\t\t\t\treturn b?.file?.variants[variant];\n\t\t\t\t\t\t})) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tconst oldFile = this._file;\n\t\tconst newFile = value ? new AssetFile(value.url, value.filename, value.hash, value.size, value.opt, value.contents) : null;\n\t\tif (!!newFile !== !!oldFile || newFile && !newFile.equals(oldFile)) {\n\t\t\tthis._file = newFile;\n\t\t\tthis.fire(\"change\", this, \"file\", newFile, oldFile);\n\t\t\tthis.reload();\n\t\t}\n\t}\n\tget file() {\n\t\treturn this._file;\n\t}\n\tset data(value) {\n\t\tconst old = this._data;\n\t\tthis._data = value;\n\t\tif (value !== old) {\n\t\t\tthis.fire(\"change\", this, \"data\", value, old);\n\t\t\tif (this.loaded) {\n\t\t\t\tthis.registry._loader.patch(this, this.registry);\n\t\t\t}\n\t\t}\n\t}\n\tget data() {\n\t\treturn this._data;\n\t}\n\tset resource(value) {\n\t\tconst _old = this._resources[0];\n\t\tthis._resources[0] = value;\n\t\tthis.fire(\"change\", this, \"resource\", value, _old);\n\t}\n\tget resource() {\n\t\treturn this._resources[0];\n\t}\n\tset resources(value) {\n\t\tconst _old = this._resources;\n\t\tthis._resources = value;\n\t\tthis.fire(\"change\", this, \"resources\", value, _old);\n\t}\n\tget resources() {\n\t\treturn this._resources;\n\t}\n\tset preload(value) {\n\t\tvalue = !!value;\n\t\tif (this._preload === value) {\n\t\t\treturn;\n\t\t}\n\t\tthis._preload = value;\n\t\tif (this._preload && !this.loaded && !this.loading && this.registry) {\n\t\t\tthis.registry.load(this);\n\t\t}\n\t}\n\tget preload() {\n\t\treturn this._preload;\n\t}\n\tset loadFaces(value) {\n\t\tvalue = !!value;\n\t\tif (!this.hasOwnProperty(\"_loadFaces\") || value !== this._loadFaces) {\n\t\t\tthis._loadFaces = value;\n\t\t\tif (this.loaded) {\n\t\t\t\tthis.registry._loader.patch(this, this.registry);\n\t\t\t}\n\t\t}\n\t}\n\tget loadFaces() {\n\t\treturn this._loadFaces;\n\t}\n\tgetFileUrl() {\n\t\tconst file = this.file;\n\t\tif (!file || !file.url) {\n\t\t\treturn null;\n\t\t}\n\t\tlet url = file.url;\n\t\tif (this.registry && this.registry.prefix && !ABSOLUTE_URL.test(url)) {\n\t\t\turl = this.registry.prefix + url;\n\t\t}\n\t\tif (this.type !== \"script\" && file.hash) {\n\t\t\tconst separator = url.indexOf(\"?\") !== -1 ? \"&\" : \"?\";\n\t\t\turl += `${separator}t=${file.hash}`;\n\t\t}\n\t\treturn url;\n\t}\n\tgetAbsoluteUrl(relativePath) {\n\t\tif (relativePath.startsWith(\"blob:\") || relativePath.startsWith(\"data:\")) {\n\t\t\treturn relativePath;\n\t\t}\n\t\tconst base = path.getDirectory(this.file.url);\n\t\treturn path.join(base, relativePath);\n\t}\n\tgetLocalizedAssetId(locale) {\n\t\tlocale = findAvailableLocale(locale, this._i18n);\n\t\treturn this._i18n[locale] || null;\n\t}\n\taddLocalizedAssetId(locale, assetId) {\n\t\tthis._i18n[locale] = assetId;\n\t\tthis.fire(\"add:localized\", locale, assetId);\n\t}\n\tremoveLocalizedAssetId(locale) {\n\t\tconst assetId = this._i18n[locale];\n\t\tif (assetId) {\n\t\t\tdelete this._i18n[locale];\n\t\t\tthis.fire(\"remove:localized\", locale, assetId);\n\t\t}\n\t}\n\tready(callback, scope) {\n\t\tscope = scope || this;\n\t\tif (this.loaded) {\n\t\t\tcallback.call(scope, this);\n\t\t} else {\n\t\t\tthis.once(\"load\", (asset) => {\n\t\t\t\tcallback.call(scope, asset);\n\t\t\t});\n\t\t}\n\t}\n\treload() {\n\t\tif (this.loaded) {\n\t\t\tthis.loaded = false;\n\t\t\tthis.registry.load(this);\n\t\t}\n\t}\n\tunload() {\n\t\tif (!this.loaded && this._resources.length === 0) {\n\t\t\treturn;\n\t\t}\n\t\tthis.fire(\"unload\", this);\n\t\tthis.registry?.fire(`unload:${this.id}`, this);\n\t\tconst old = this._resources;\n\t\tif (this.urlObject) {\n\t\t\tURL.revokeObjectURL(this.urlObject);\n\t\t\tthis.urlObject = null;\n\t\t}\n\t\tthis.resources = [];\n\t\tthis.loaded = false;\n\t\tif (this.file) {\n\t\t\tthis.registry?._loader.clearCache(this.getFileUrl(), this.type);\n\t\t}\n\t\tfor (let i2 = 0; i2 < old.length; ++i2) {\n\t\t\told[i2]?.destroy?.();\n\t\t}\n\t}\n\tstatic fetchArrayBuffer(loadUrl, callback, asset, maxRetries = 0) {\n\t\tif (asset?.file?.contents) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tcallback(null, asset.file.contents);\n\t\t\t});\n\t\t} else {\n\t\t\thttp.get(loadUrl, {\n\t\t\t\tcache: true,\n\t\t\t\tresponseType: \"arraybuffer\",\n\t\t\t\tretry: maxRetries > 0,\n\t\t\t\tmaxRetries,\n\t\t\t\tprogress: asset\n\t\t\t}, callback);\n\t\t}\n\t}\n};\n\nvar TagsCache = class {\n\t_index = {};\n\t_key;\n\tconstructor(key = null) {\n\t\tthis._key = key;\n\t}\n\taddItem(item) {\n\t\tconst tags = item.tags._list;\n\t\tfor (const tag of tags) {\n\t\t\tthis.add(tag, item);\n\t\t}\n\t}\n\tremoveItem(item) {\n\t\tconst tags = item.tags._list;\n\t\tfor (const tag of tags) {\n\t\t\tthis.remove(tag, item);\n\t\t}\n\t}\n\tadd(tag, item) {\n\t\tif (this._index[tag] && this._index[tag].list.indexOf(item) !== -1) {\n\t\t\treturn;\n\t\t}\n\t\tif (!this._index[tag]) {\n\t\t\tthis._index[tag] = {\n\t\t\t\tlist: []\n\t\t\t};\n\t\t\tif (this._key) {\n\t\t\t\tthis._index[tag].keys = {};\n\t\t\t}\n\t\t}\n\t\tthis._index[tag].list.push(item);\n\t\tif (this._key) {\n\t\t\tthis._index[tag].keys[item[this._key]] = item;\n\t\t}\n\t}\n\tremove(tag, item) {\n\t\tif (!this._index[tag]) {\n\t\t\treturn;\n\t\t}\n\t\tif (this._key) {\n\t\t\tif (!this._index[tag].keys[item[this._key]]) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tconst ind = this._index[tag].list.indexOf(item);\n\t\tif (ind === -1) {\n\t\t\treturn;\n\t\t}\n\t\tthis._index[tag].list.splice(ind, 1);\n\t\tif (this._key) {\n\t\t\tdelete this._index[tag].keys[item[this._key]];\n\t\t}\n\t\tif (this._index[tag].list.length === 0) {\n\t\t\tdelete this._index[tag];\n\t\t}\n\t}\n\tfind(args) {\n\t\tconst index = {};\n\t\tconst items = [];\n\t\tlet item, tag, tags, tagsRest, missingIndex;\n\t\tconst sort = (a, b) => {\n\t\t\treturn this._index[a].list.length - this._index[b].list.length;\n\t\t};\n\t\tfor (let i2 = 0; i2 < args.length; i2++) {\n\t\t\ttag = args[i2];\n\t\t\tif (tag instanceof Array) {\n\t\t\t\tif (tag.length === 0) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (tag.length === 1) {\n\t\t\t\t\ttag = tag[0];\n\t\t\t\t} else {\n\t\t\t\t\tmissingIndex = false;\n\t\t\t\t\tfor (let t = 0; t < tag.length; t++) {\n\t\t\t\t\t\tif (!this._index[tag[t]]) {\n\t\t\t\t\t\t\tmissingIndex = true;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (missingIndex) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\ttags = tag.slice(0).sort(sort);\n\t\t\t\t\ttagsRest = tags.slice(1);\n\t\t\t\t\tif (tagsRest.length === 1) {\n\t\t\t\t\t\ttagsRest = tagsRest[0];\n\t\t\t\t\t}\n\t\t\t\t\tfor (let n = 0; n < this._index[tags[0]].list.length; n++) {\n\t\t\t\t\t\titem = this._index[tags[0]].list[n];\n\t\t\t\t\t\tif ((this._key ? !index[item[this._key]] : items.indexOf(item) === -1) && item.tags.has(tagsRest)) {\n\t\t\t\t\t\t\tif (this._key) {\n\t\t\t\t\t\t\t\tindex[item[this._key]] = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\titems.push(item);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (tag && typeof tag === \"string\" && this._index[tag]) {\n\t\t\t\tfor (let n = 0; n < this._index[tag].list.length; n++) {\n\t\t\t\t\titem = this._index[tag].list[n];\n\t\t\t\t\tif (this._key) {\n\t\t\t\t\t\tif (!index[item[this._key]]) {\n\t\t\t\t\t\t\tindex[item[this._key]] = true;\n\t\t\t\t\t\t\titems.push(item);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (items.indexOf(item) === -1) {\n\t\t\t\t\t\titems.push(item);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn items;\n\t}\n};\n\nvar AssetRegistry = class extends EventHandler {\n\tstatic EVENT_LOAD = \"load\";\n\tstatic EVENT_ADD = \"add\";\n\tstatic EVENT_REMOVE = \"remove\";\n\tstatic EVENT_ERROR = \"error\";\n\t_assets = /* @__PURE__ */ new Set();\n\t_loader;\n\t_idToAsset = /* @__PURE__ */ new Map();\n\t_urlToAsset = /* @__PURE__ */ new Map();\n\t_nameToAsset = /* @__PURE__ */ new Map();\n\t_tags = new TagsCache(\"id\");\n\tprefix = null;\n\tbundles = null;\n\tconstructor(loader) {\n\t\tsuper();\n\t\tthis._loader = loader;\n\t}\n\tget loader() {\n\t\treturn this._loader;\n\t}\n\tlist(filters = {}) {\n\t\tconst assets = Array.from(this._assets);\n\t\tif (filters.preload !== void 0) {\n\t\t\treturn assets.filter((asset) => asset.preload === filters.preload);\n\t\t}\n\t\treturn assets;\n\t}\n\tadd(asset) {\n\t\tif (this._assets.has(asset)) return;\n\t\tthis._assets.add(asset);\n\t\tthis._idToAsset.set(asset.id, asset);\n\t\tif (asset.file?.url) {\n\t\t\tthis._urlToAsset.set(asset.file.url, asset);\n\t\t}\n\t\tif (!this._nameToAsset.has(asset.name)) {\n\t\t\tthis._nameToAsset.set(asset.name, /* @__PURE__ */ new Set());\n\t\t}\n\t\tthis._nameToAsset.get(asset.name).add(asset);\n\t\tasset.on(\"name\", this._onNameChange, this);\n\t\tasset.registry = this;\n\t\tthis._tags.addItem(asset);\n\t\tasset.tags.on(\"add\", this._onTagAdd, this);\n\t\tasset.tags.on(\"remove\", this._onTagRemove, this);\n\t\tthis.fire(\"add\", asset);\n\t\tthis.fire(`add:${asset.id}`, asset);\n\t\tif (asset.file?.url) {\n\t\t\tthis.fire(`add:url:${asset.file.url}`, asset);\n\t\t}\n\t\tif (asset.preload) {\n\t\t\tthis.load(asset);\n\t\t}\n\t}\n\tremove(asset) {\n\t\tif (!this._assets.has(asset)) return false;\n\t\tthis._assets.delete(asset);\n\t\tthis._idToAsset.delete(asset.id);\n\t\tif (asset.file?.url) {\n\t\t\tthis._urlToAsset.delete(asset.file.url);\n\t\t}\n\t\tasset.off(\"name\", this._onNameChange, this);\n\t\tif (this._nameToAsset.has(asset.name)) {\n\t\t\tconst items = this._nameToAsset.get(asset.name);\n\t\t\titems.delete(asset);\n\t\t\tif (items.size === 0) {\n\t\t\t\tthis._nameToAsset.delete(asset.name);\n\t\t\t}\n\t\t}\n\t\tthis._tags.removeItem(asset);\n\t\tasset.tags.off(\"add\", this._onTagAdd, this);\n\t\tasset.tags.off(\"remove\", this._onTagRemove, this);\n\t\tasset.fire(\"remove\", asset);\n\t\tthis.fire(\"remove\", asset);\n\t\tthis.fire(`remove:${asset.id}`, asset);\n\t\tif (asset.file?.url) {\n\t\t\tthis.fire(`remove:url:${asset.file.url}`, asset);\n\t\t}\n\t\treturn true;\n\t}\n\tdestroy() {\n\t\tfor (const asset of this._assets) {\n\t\t\tasset.off(\"name\", this._onNameChange, this);\n\t\t\tasset.tags.off(\"add\", this._onTagAdd, this);\n\t\t\tasset.tags.off(\"remove\", this._onTagRemove, this);\n\t\t\tif (asset.registry === this) {\n\t\t\t\tasset.registry = null;\n\t\t\t}\n\t\t}\n\t\tthis._assets.clear();\n\t\tthis._idToAsset.clear();\n\t\tthis._urlToAsset.clear();\n\t\tthis._nameToAsset.clear();\n\t\tthis._tags = null;\n\t\tthis.bundles = null;\n\t\tthis.off();\n\t}\n\tget(id14) {\n\t\treturn this._idToAsset.get(Number(id14));\n\t}\n\tgetByUrl(url) {\n\t\treturn this._urlToAsset.get(url);\n\t}\n\tload(asset, options2) {\n\t\tif ((asset.loading || asset.loaded) && !options2?.force) {\n\t\t\treturn;\n\t\t}\n\t\tconst file = asset.file;\n\t\tconst _fireLoad = () => {\n\t\t\tthis.fire(\"load\", asset);\n\t\t\tthis.fire(`load:${asset.id}`, asset);\n\t\t\tif (file && file.url) {\n\t\t\t\tthis.fire(`load:url:${file.url}`, asset);\n\t\t\t}\n\t\t\tasset.fire(\"load\", asset);\n\t\t};\n\t\tconst _opened = (resource) => {\n\t\t\tif (resource instanceof Array) {\n\t\t\t\tasset.resources = resource;\n\t\t\t} else {\n\t\t\t\tasset.resource = resource;\n\t\t\t}\n\t\t\tthis._loader.patch(asset, this);\n\t\t\tif (asset.type === \"bundle\") {\n\t\t\t\tconst assetIds = asset.data.assets;\n\t\t\t\tfor (let i2 = 0; i2 < assetIds.length; i2++) {\n\t\t\t\t\tconst assetInBundle = this._idToAsset.get(assetIds[i2]);\n\t\t\t\t\tif (assetInBundle && !assetInBundle.loaded) {\n\t\t\t\t\t\tthis.load(assetInBundle, { force: true });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (asset.resource.loaded) {\n\t\t\t\t\t_fireLoad();\n\t\t\t\t} else {\n\t\t\t\t\tthis.fire(\"load:start\", asset);\n\t\t\t\t\tthis.fire(`load:start:${asset.id}`, asset);\n\t\t\t\t\tif (file && file.url) {\n\t\t\t\t\t\tthis.fire(`load:start:url:${file.url}`, asset);\n\t\t\t\t\t}\n\t\t\t\t\tasset.fire(\"load:start\", asset);\n\t\t\t\t\tasset.resource.on(\"load\", _fireLoad);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t_fireLoad();\n\t\t\t}\n\t\t};\n\t\tconst _loaded = (err2, resource, extra) => {\n\t\t\tasset.loaded = true;\n\t\t\tasset.loading = false;\n\t\t\tif (err2) {\n\t\t\t\tthis.fire(\"error\", err2, asset);\n\t\t\t\tthis.fire(`error:${asset.id}`, err2, asset);\n\t\t\t\tasset.fire(\"error\", err2, asset);\n\t\t\t} else {\n\t\t\t\tif (asset.type === \"script\") {\n\t\t\t\t\tconst handler = this._loader.getHandler(\"script\");\n\t\t\t\t\tif (handler._cache[asset.id] && handler._cache[asset.id].parentNode === document.head) {\n\t\t\t\t\t\tdocument.head.removeChild(handler._cache[asset.id]);\n\t\t\t\t\t}\n\t\t\t\t\tif (extra) {\n\t\t\t\t\t\thandler._cache[asset.id] = extra;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t_opened(resource);\n\t\t\t}\n\t\t};\n\t\tif (file || asset.type === \"cubemap\") {\n\t\t\tthis.fire(\"load:start\", asset);\n\t\t\tthis.fire(`load:${asset.id}:start`, asset);\n\t\t\tasset.loading = true;\n\t\t\tconst fileUrl = asset.getFileUrl();\n\t\t\tif (asset.type === \"bundle\") {\n\t\t\t\tconst assetIds = asset.data.assets;\n\t\t\t\tfor (let i2 = 0; i2 < assetIds.length; i2++) {\n\t\t\t\t\tconst assetInBundle = this._idToAsset.get(assetIds[i2]);\n\t\t\t\t\tif (!assetInBundle) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tif (assetInBundle.loaded || assetInBundle.resource || assetInBundle.loading) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tassetInBundle.loading = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._loader.load(fileUrl, asset.type, _loaded, asset, options2);\n\t\t} else {\n\t\t\tconst resource = this._loader.open(asset.type, asset.data);\n\t\t\tasset.loaded = true;\n\t\t\t_opened(resource);\n\t\t}\n\t}\n\tloadFromUrl(url, type, callback) {\n\t\tthis.loadFromUrlAndFilename(url, null, type, callback);\n\t}\n\tloadFromUrlAndFilename(url, filename, type, callback) {\n\t\tconst name = path.getBasename(filename || url);\n\t\tconst file = {\n\t\t\tfilename: filename || name,\n\t\t\turl\n\t\t};\n\t\tlet asset = this.getByUrl(url);\n\t\tif (!asset) {\n\t\t\tasset = new Asset(name, type, file);\n\t\t\tthis.add(asset);\n\t\t} else if (asset.loaded) {\n\t\t\tcallback(asset.loadFromUrlError || null, asset);\n\t\t\treturn;\n\t\t}\n\t\tconst startLoad = (asset2) => {\n\t\t\tasset2.once(\"load\", (loadedAsset) => {\n\t\t\t\tif (type === \"material\") {\n\t\t\t\t\tthis._loadTextures(loadedAsset, (err2, textures) => {\n\t\t\t\t\t\tcallback(err2, loadedAsset);\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tcallback(null, loadedAsset);\n\t\t\t\t}\n\t\t\t});\n\t\t\tasset2.once(\"error\", (err2) => {\n\t\t\t\tif (err2) {\n\t\t\t\t\tthis.loadFromUrlError = err2;\n\t\t\t\t}\n\t\t\t\tcallback(err2, asset2);\n\t\t\t});\n\t\t\tthis.load(asset2);\n\t\t};\n\t\tif (asset.resource) {\n\t\t\tcallback(null, asset);\n\t\t} else if (type === \"model\") {\n\t\t\tthis._loadModel(asset, startLoad);\n\t\t} else {\n\t\t\tstartLoad(asset);\n\t\t}\n\t}\n\t// private method used for engine-only loading of model data\n\t_loadModel(modelAsset, continuation) {\n\t\tconst url = modelAsset.getFileUrl();\n\t\tconst ext = path.getExtension(url);\n\t\tif (ext === \".json\" || ext === \".glb\") {\n\t\t\tconst dir4 = path.getDirectory(url);\n\t\t\tconst basename = path.getBasename(url);\n\t\t\tconst mappingUrl = path.join(dir4, basename.replace(ext, \".mapping.json\"));\n\t\t\tthis._loader.load(mappingUrl, \"json\", (err2, data2) => {\n\t\t\t\tif (err2) {\n\t\t\t\t\tmodelAsset.data = { mapping: [] };\n\t\t\t\t\tcontinuation(modelAsset);\n\t\t\t\t} else {\n\t\t\t\t\tthis._loadMaterials(modelAsset, data2, (e, materials) => {\n\t\t\t\t\t\tmodelAsset.data = data2;\n\t\t\t\t\t\tcontinuation(modelAsset);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tcontinuation(modelAsset);\n\t\t}\n\t}\n\t// private method used for engine-only loading of model materials\n\t_loadMaterials(modelAsset, mapping, callback) {\n\t\tconst materials = [];\n\t\tlet count = 0;\n\t\tconst onMaterialLoaded = (err2, materialAsset) => {\n\t\t\tthis._loadTextures(materialAsset, (err3, textures) => {\n\t\t\t\tmaterials.push(materialAsset);\n\t\t\t\tif (materials.length === count) {\n\t\t\t\t\tcallback(null, materials);\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\t\tfor (let i2 = 0; i2 < mapping.mapping.length; i2++) {\n\t\t\tconst path2 = mapping.mapping[i2].path;\n\t\t\tif (path2) {\n\t\t\t\tcount++;\n\t\t\t\tconst url = modelAsset.getAbsoluteUrl(path2);\n\t\t\t\tthis.loadFromUrl(url, \"material\", onMaterialLoaded);\n\t\t\t}\n\t\t}\n\t\tif (count === 0) {\n\t\t\tcallback(null, materials);\n\t\t}\n\t}\n\t// private method used for engine-only loading of the textures referenced by\n\t// the material asset\n\t_loadTextures(materialAsset, callback) {\n\t\tconst textures = [];\n\t\tlet count = 0;\n\t\tconst data2 = materialAsset.data;\n\t\tif (data2.mappingFormat !== \"path\") {\n\t\t\tcallback(null, textures);\n\t\t\treturn;\n\t\t}\n\t\tconst onTextureLoaded = (err2, texture) => {\n\t\t\tif (err2) console.error(`Failed to load material texture for \"${materialAsset.name}\": ${err2?.message ?? err2}`, err2);\n\t\t\ttextures.push(texture);\n\t\t\tif (textures.length === count) {\n\t\t\t\tcallback(null, textures);\n\t\t\t}\n\t\t};\n\t\tconst texParams = standardMaterialTextureParameters;\n\t\tfor (let i2 = 0; i2 < texParams.length; i2++) {\n\t\t\tconst path2 = data2[texParams[i2]];\n\t\t\tif (path2 && typeof path2 === \"string\") {\n\t\t\t\tcount++;\n\t\t\t\tconst url = materialAsset.getAbsoluteUrl(path2);\n\t\t\t\tthis.loadFromUrl(url, \"texture\", onTextureLoaded);\n\t\t\t}\n\t\t}\n\t\tif (count === 0) {\n\t\t\tcallback(null, textures);\n\t\t}\n\t}\n\t_onTagAdd(tag, asset) {\n\t\tthis._tags.add(tag, asset);\n\t}\n\t_onTagRemove(tag, asset) {\n\t\tthis._tags.remove(tag, asset);\n\t}\n\t_onNameChange(asset, name, nameOld) {\n\t\tif (this._nameToAsset.has(nameOld)) {\n\t\t\tconst items = this._nameToAsset.get(nameOld);\n\t\t\titems.delete(asset);\n\t\t\tif (items.size === 0) {\n\t\t\t\tthis._nameToAsset.delete(nameOld);\n\t\t\t}\n\t\t}\n\t\tif (!this._nameToAsset.has(asset.name)) {\n\t\t\tthis._nameToAsset.set(asset.name, /* @__PURE__ */ new Set());\n\t\t}\n\t\tthis._nameToAsset.get(asset.name).add(asset);\n\t}\n\tfindByTag(...query) {\n\t\treturn this._tags.find(query);\n\t}\n\tfilter(callback) {\n\t\treturn Array.from(this._assets).filter((asset) => callback(asset));\n\t}\n\tfind(name, type) {\n\t\tconst items = this._nameToAsset.get(name);\n\t\tif (!items) return null;\n\t\tfor (const asset of items) {\n\t\t\tif (!type || asset.type === type) {\n\t\t\t\treturn asset;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\tfindAll(name, type) {\n\t\tconst items = this._nameToAsset.get(name);\n\t\tif (!items) return [];\n\t\tconst results = Array.from(items);\n\t\tif (!type) return results;\n\t\treturn results.filter((asset) => asset.type === type);\n\t}\n\tlog() {\n\t}\n\tgetAssetById(id14) {\n\t\treturn this.get(id14);\n\t}\n};\n\nvar BundleRegistry = class {\n\t_idToBundle = /* @__PURE__ */ new Map();\n\t_assetToBundles = /* @__PURE__ */ new Map();\n\t_urlsToBundles = /* @__PURE__ */ new Map();\n\t_fileRequests = /* @__PURE__ */ new Map();\n\tconstructor(assets) {\n\t\tthis._assets = assets;\n\t\tthis._assets.bundles = this;\n\t\tthis._assets.on(\"add\", this._onAssetAdd, this);\n\t\tthis._assets.on(\"remove\", this._onAssetRemove, this);\n\t}\n\t_onAssetAdd(asset) {\n\t\tif (asset.type === \"bundle\") {\n\t\t\tthis._idToBundle.set(asset.id, asset);\n\t\t\tthis._assets.on(`load:start:${asset.id}`, this._onBundleLoadStart, this);\n\t\t\tthis._assets.on(`load:${asset.id}`, this._onBundleLoad, this);\n\t\t\tthis._assets.on(`error:${asset.id}`, this._onBundleError, this);\n\t\t\tconst assetIds = asset.data.assets;\n\t\t\tfor (let i2 = 0; i2 < assetIds.length; i2++) {\n\t\t\t\tthis._indexAssetInBundle(assetIds[i2], asset);\n\t\t\t}\n\t\t} else {\n\t\t\tif (this._assetToBundles.has(asset.id)) {\n\t\t\t\tthis._indexAssetFileUrls(asset);\n\t\t\t}\n\t\t}\n\t}\n\t_unbindAssetEvents(id14) {\n\t\tthis._assets.off(`load:start:${id14}`, this._onBundleLoadStart, this);\n\t\tthis._assets.off(`load:${id14}`, this._onBundleLoad, this);\n\t\tthis._assets.off(`error:${id14}`, this._onBundleError, this);\n\t}\n\t// Index the specified asset id and its file URLs so that\n\t// the registry knows that the asset is in that bundle\n\t_indexAssetInBundle(id14, bundle) {\n\t\tlet bundles = this._assetToBundles.get(id14);\n\t\tif (!bundles) {\n\t\t\tbundles = /* @__PURE__ */ new Set();\n\t\t\tthis._assetToBundles.set(id14, bundles);\n\t\t}\n\t\tbundles.add(bundle);\n\t\tconst asset = this._assets.get(id14);\n\t\tif (asset) this._indexAssetFileUrls(asset);\n\t}\n\t// Index the file URLs of the specified asset\n\t_indexAssetFileUrls(asset) {\n\t\tconst urls = this._getAssetFileUrls(asset);\n\t\tif (!urls) return;\n\t\tfor (let i2 = 0; i2 < urls.length; i2++) {\n\t\t\tconst bundles = this._assetToBundles.get(asset.id);\n\t\t\tif (!bundles) continue;\n\t\t\tthis._urlsToBundles.set(urls[i2], bundles);\n\t\t}\n\t}\n\t// Get all the possible URLs of an asset\n\t_getAssetFileUrls(asset) {\n\t\tlet url = asset.getFileUrl();\n\t\tif (!url) return null;\n\t\turl = url.split(\"?\")[0];\n\t\tconst urls = [url];\n\t\tif (asset.type === \"font\") {\n\t\t\tconst numFiles = asset.data.info.maps.length;\n\t\t\tfor (let i2 = 1; i2 < numFiles; i2++) {\n\t\t\t\turls.push(url.replace(\".png\", `${i2}.png`));\n\t\t\t}\n\t\t}\n\t\treturn urls;\n\t}\n\t// Remove asset from internal indexes\n\t_onAssetRemove(asset) {\n\t\tif (asset.type === \"bundle\") {\n\t\t\tthis._idToBundle.delete(asset.id);\n\t\t\tthis._unbindAssetEvents(asset.id);\n\t\t\tconst assetIds = asset.data.assets;\n\t\t\tfor (let i2 = 0; i2 < assetIds.length; i2++) {\n\t\t\t\tconst bundles = this._assetToBundles.get(assetIds[i2]);\n\t\t\t\tif (!bundles) continue;\n\t\t\t\tbundles.delete(asset);\n\t\t\t\tif (bundles.size === 0) {\n\t\t\t\t\tthis._assetToBundles.delete(assetIds[i2]);\n\t\t\t\t\tfor (const [url, otherBundles] of this._urlsToBundles) {\n\t\t\t\t\t\tif (otherBundles !== bundles) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis._urlsToBundles.delete(url);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._onBundleError(`Bundle ${asset.id} was removed`);\n\t\t} else {\n\t\t\tconst bundles = this._assetToBundles.get(asset.id);\n\t\t\tif (!bundles) return;\n\t\t\tthis._assetToBundles.delete(asset.id);\n\t\t\tconst urls = this._getAssetFileUrls(asset);\n\t\t\tif (!urls) return;\n\t\t\tfor (let i2 = 0; i2 < urls.length; i2++) {\n\t\t\t\tthis._urlsToBundles.delete(urls[i2]);\n\t\t\t}\n\t\t}\n\t}\n\t_onBundleLoadStart(asset) {\n\t\tasset.resource.on(\"add\", (url, data2) => {\n\t\t\tconst callbacks = this._fileRequests.get(url);\n\t\t\tif (!callbacks) return;\n\t\t\tfor (let i2 = 0; i2 < callbacks.length; i2++) {\n\t\t\t\tcallbacks[i2](null, data2);\n\t\t\t}\n\t\t\tthis._fileRequests.delete(url);\n\t\t});\n\t}\n\t// If we have any pending file requests\n\t// that can be satisfied by the specified bundle\n\t// then resolve them\n\t_onBundleLoad(asset) {\n\t\tif (!asset.resource) {\n\t\t\tthis._onBundleError(`Bundle ${asset.id} failed to load`);\n\t\t\treturn;\n\t\t}\n\t\tif (!this._fileRequests) {\n\t\t\treturn;\n\t\t}\n\t\tfor (const [url, requests] of this._fileRequests) {\n\t\t\tconst bundles = this._urlsToBundles.get(url);\n\t\t\tif (!bundles || !bundles.has(asset)) continue;\n\t\t\tconst decodedUrl = decodeURIComponent(url);\n\t\t\tlet err2, data2;\n\t\t\tif (asset.resource.has(decodedUrl)) {\n\t\t\t\tdata2 = asset.resource.get(decodedUrl);\n\t\t\t} else if (asset.resource.loaded) {\n\t\t\t\terr2 = `Bundle ${asset.id} does not contain URL ${url}`;\n\t\t\t} else {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tfor (let i2 = 0; i2 < requests.length; i2++) {\n\t\t\t\trequests[i2](err2, err2 || data2);\n\t\t\t}\n\t\t\tthis._fileRequests.delete(url);\n\t\t}\n\t}\n\t// If we have outstanding file requests for any\n\t// of the URLs in the specified bundle then search for\n\t// other bundles that can satisfy these requests.\n\t// If we do not find any other bundles then fail\n\t// those pending file requests with the specified error.\n\t_onBundleError(err2) {\n\t\tfor (const [url, requests] of this._fileRequests) {\n\t\t\tconst bundle = this._findLoadedOrLoadingBundleForUrl(url);\n\t\t\tif (!bundle) {\n\t\t\t\tfor (let i2 = 0; i2 < requests.length; i2++) {\n\t\t\t\t\trequests[i2](err2);\n\t\t\t\t}\n\t\t\t\tthis._fileRequests.delete(url);\n\t\t\t}\n\t\t}\n\t}\n\t// Finds a bundle that contains the specified URL but\n\t// only returns the bundle if it's either loaded or being loaded\n\t_findLoadedOrLoadingBundleForUrl(url) {\n\t\tconst bundles = this._urlsToBundles.get(url);\n\t\tif (!bundles) return null;\n\t\tlet candidate = null;\n\t\tfor (const bundle of bundles) {\n\t\t\tif (bundle.loaded && bundle.resource) {\n\t\t\t\treturn bundle;\n\t\t\t} else if (bundle.loading) {\n\t\t\t\tcandidate = bundle;\n\t\t\t}\n\t\t}\n\t\treturn candidate;\n\t}\n\tlistBundlesForAsset(asset) {\n\t\tconst bundles = this._assetToBundles.get(asset.id);\n\t\tif (bundles) return Array.from(bundles);\n\t\treturn null;\n\t}\n\tlist() {\n\t\treturn Array.from(this._idToBundle.values());\n\t}\n\thasUrl(url) {\n\t\treturn this._urlsToBundles.has(url);\n\t}\n\turlIsLoadedOrLoading(url) {\n\t\treturn !!this._findLoadedOrLoadingBundleForUrl(url);\n\t}\n\tloadUrl(url, callback) {\n\t\tconst bundle = this._findLoadedOrLoadingBundleForUrl(url);\n\t\tif (!bundle) {\n\t\t\tcallback(`URL ${url} not found in any bundles`);\n\t\t\treturn;\n\t\t}\n\t\tif (bundle.loaded) {\n\t\t\tconst decodedUrl = decodeURIComponent(url);\n\t\t\tif (bundle.resource.has(decodedUrl)) {\n\t\t\t\tcallback(null, bundle.resource.get(decodedUrl));\n\t\t\t\treturn;\n\t\t\t} else if (bundle.resource.loaded) {\n\t\t\t\tcallback(`Bundle ${bundle.id} does not contain URL ${url}`);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tlet callbacks = this._fileRequests.get(url);\n\t\tif (!callbacks) {\n\t\t\tcallbacks = [];\n\t\t\tthis._fileRequests.set(url, callbacks);\n\t\t}\n\t\tcallbacks.push(callback);\n\t}\n\tdestroy() {\n\t\tthis._assets.off(\"add\", this._onAssetAdd, this);\n\t\tthis._assets.off(\"remove\", this._onAssetRemove, this);\n\t\tfor (const id14 of this._idToBundle.keys()) {\n\t\t\tthis._unbindAssetEvents(id14);\n\t\t}\n\t\tthis._assets = null;\n\t\tthis._idToBundle.clear();\n\t\tthis._idToBundle = null;\n\t\tthis._assetToBundles.clear();\n\t\tthis._assetToBundles = null;\n\t\tthis._urlsToBundles.clear();\n\t\tthis._urlsToBundles = null;\n\t\tthis._fileRequests.clear();\n\t\tthis._fileRequests = null;\n\t}\n};\n\nvar ComponentSystemRegistry = class extends EventHandler {\n\tanim;\n\tanimation;\n\taudiolistener;\n\tbutton;\n\tcamera;\n\tcollision;\n\telement;\n\tgsplat;\n\tjoint;\n\tlayoutchild;\n\tlayoutgroup;\n\tlight;\n\tmodel;\n\tparticlesystem;\n\trender;\n\trigidbody;\n\tscreen;\n\tscript;\n\tscrollbar;\n\tscrollview;\n\tsound;\n\tsprite;\n\tzone;\n\tconstructor() {\n\t\tsuper();\n\t\tthis.list = [];\n\t}\n\tadd(system) {\n\t\tconst id14 = system.id;\n\t\tif (this[id14]) {\n\t\t\tthrow new Error(`ComponentSystem name '${id14}' already registered or not allowed`);\n\t\t}\n\t\tthis[id14] = system;\n\t\tthis.list.push(system);\n\t}\n\tremove(system) {\n\t\tconst id14 = system.id;\n\t\tif (!this[id14]) {\n\t\t\tthrow new Error(`No ComponentSystem named '${id14}' registered`);\n\t\t}\n\t\tconst index = this.list.indexOf(this[id14]);\n\t\tif (index !== -1) {\n\t\t\tthis.list.splice(index, 1);\n\t\t}\n\t\tdelete this[id14];\n\t}\n\tdestroy() {\n\t\tthis.off();\n\t\tfor (let i2 = 0; i2 < this.list.length; i2++) {\n\t\t\tthis.list[i2].destroy();\n\t\t}\n\t}\n};\n\nvar Bundle = class extends EventHandler {\n\t_index = /* @__PURE__ */ new Map();\n\t_loaded = false;\n\tstatic EVENT_ADD = \"add\";\n\tstatic EVENT_LOAD = \"load\";\n\taddFile(url, data2) {\n\t\tif (this._index.has(url)) {\n\t\t\treturn;\n\t\t}\n\t\tthis._index.set(url, data2);\n\t\tthis.fire(\"add\", url, data2);\n\t}\n\thas(url) {\n\t\treturn this._index.has(url);\n\t}\n\tget(url) {\n\t\treturn this._index.get(url) || null;\n\t}\n\tdestroy() {\n\t\tthis._index.clear();\n\t}\n\tset loaded(value) {\n\t\tif (!value || this._loaded) {\n\t\t\treturn;\n\t\t}\n\t\tthis._loaded = true;\n\t\tthis.fire(\"load\");\n\t}\n\tget loaded() {\n\t\treturn this._loaded;\n\t}\n};\n\nvar Untar = class extends EventHandler {\n\theaderSize = 512;\n\tpaddingSize = 512;\n\tbytesRead = 0;\n\tbytesReceived = 0;\n\theaderRead = false;\n\treader = null;\n\tdata = new Uint8Array(0);\n\tdecoder = null;\n\tprefix = \"\";\n\tfileName = \"\";\n\tfileSize = 0;\n\tfileType = \"\";\n\tustarFormat = \"\";\n\tconstructor(fetchPromise, assetsPrefix = \"\") {\n\t\tsuper();\n\t\tthis.prefix = assetsPrefix || \"\";\n\t\tthis.reader = fetchPromise.body.getReader();\n\t\tthis.reader.read().then((res) => {\n\t\t\tthis.pump(res.done, res.value);\n\t\t}).catch((err2) => {\n\t\t\tthis.fire(\"error\", err2);\n\t\t});\n\t}\n\tpump(done, value) {\n\t\tif (done) {\n\t\t\tthis.fire(\"done\");\n\t\t\treturn null;\n\t\t}\n\t\tthis.bytesReceived += value.byteLength;\n\t\tconst data2 = new Uint8Array(this.data.length + value.length);\n\t\tdata2.set(this.data);\n\t\tdata2.set(value, this.data.length);\n\t\tthis.data = data2;\n\t\twhile (this.readFile()) ;\n\t\treturn this.reader.read().then((res) => {\n\t\t\tthis.pump(res.done, res.value);\n\t\t}).catch((err2) => {\n\t\t\tthis.fire(\"error\", err2);\n\t\t});\n\t}\n\treadFile() {\n\t\tif (!this.headerRead && this.bytesReceived > this.bytesRead + this.headerSize) {\n\t\t\tthis.headerRead = true;\n\t\t\tconst view = new DataView(this.data.buffer, this.bytesRead, this.headerSize);\n\t\t\tthis.decoder ?? (this.decoder = new TextDecoder(\"windows-1252\"));\n\t\t\tconst headers = this.decoder.decode(view);\n\t\t\tthis.fileName = headers.substring(0, 100).replace(/\\0/g, \"\");\n\t\t\tthis.fileSize = parseInt(headers.substring(124, 136), 8);\n\t\t\tthis.fileType = headers.substring(156, 157);\n\t\t\tthis.ustarFormat = headers.substring(257, 263);\n\t\t\tif (this.ustarFormat.indexOf(\"ustar\") !== -1) {\n\t\t\t\tconst prefix = headers.substring(345, 500).replace(/\\0/g, \"\");\n\t\t\t\tif (prefix.length > 0) {\n\t\t\t\t\tthis.fileName = prefix.trim() + this.fileName.trim();\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.bytesRead += 512;\n\t\t}\n\t\tif (this.headerRead) {\n\t\t\tif (this.bytesReceived < this.bytesRead + this.fileSize) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif (this.fileType === \"\" || this.fileType === \"0\") {\n\t\t\t\tconst dataView = new DataView(this.data.buffer, this.bytesRead, this.fileSize);\n\t\t\t\tconst file = {\n\t\t\t\t\tname: this.prefix + this.fileName,\n\t\t\t\t\tsize: this.fileSize,\n\t\t\t\t\tdata: dataView\n\t\t\t\t};\n\t\t\t\tthis.fire(\"file\", file);\n\t\t\t}\n\t\t\tthis.bytesRead += this.fileSize;\n\t\t\tthis.headerRead = false;\n\t\t\tconst bytesRemained = this.bytesRead % this.paddingSize;\n\t\t\tif (bytesRemained !== 0) {\n\t\t\t\tthis.bytesRead += this.paddingSize - bytesRemained;\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n};\n\nvar ResourceHandler = class {\n\thandlerType = \"\";\n\t_app;\n\t_maxRetries = 0;\n\t_parsers = [];\n\tconstructor(app2, handlerType) {\n\t\tthis._app = app2;\n\t\tthis.handlerType = handlerType;\n\t}\n\tget app() {\n\t\treturn this._app;\n\t}\n\tset maxRetries(value) {\n\t\tthis._maxRetries = value;\n\t}\n\tget maxRetries() {\n\t\treturn this._maxRetries;\n\t}\n\taddParser(parser, decider) {\n\t\tif (decider !== void 0) {\n\t\t}\n\t\tif (!parser || typeof parser.canParse !== \"function\") {\n\t\t\treturn;\n\t\t}\n\t\tparser.handler = this;\n\t\tthis._parsers.push(parser);\n\t}\n\tremoveParser(parser) {\n\t\tconst index = this._parsers.indexOf(parser);\n\t\tif (index !== -1) {\n\t\t\tthis._parsers.splice(index, 1);\n\t\t\tparser.handler = null;\n\t\t}\n\t}\n\tget parsers() {\n\t\treturn this._parsers.slice();\n\t}\n\tfetch(url, responseType, callback, asset) {\n\t\tif (typeof url === \"string\") {\n\t\t\turl = { load: url, original: url };\n\t\t}\n\t\tif (responseType === Http.ResponseType.ARRAY_BUFFER) {\n\t\t\tAsset.fetchArrayBuffer(url.load, callback, asset, this.maxRetries);\n\t\t\treturn;\n\t\t}\n\t\thttp.get(url.load, {\n\t\t\tresponseType,\n\t\t\tretry: this.maxRetries > 0,\n\t\t\tmaxRetries: this.maxRetries\n\t\t}, callback);\n\t}\n\t_makeContext(url, asset) {\n\t\tconst original = url && typeof url === \"object\" ? url.original : url;\n\t\tconst clean = original ? original.split(\"?\")[0] : \"\";\n\t\treturn {\n\t\t\turl: original ?? null,\n\t\t\text: original ? path.getExtension(clean).toLowerCase().replace(\".\", \"\") : \"\",\n\t\t\tbasename: original ? path.getBasename(clean).toLowerCase() : \"\",\n\t\t\tasset,\n\t\t\tapp: this._app\n\t\t};\n\t}\n\t_selectParser(context) {\n\t\tfor (let i2 = this._parsers.length - 1; i2 >= 0; i2--) {\n\t\t\tif (this._parsers[i2].canParse(context)) {\n\t\t\t\treturn this._parsers[i2];\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\tload(url, callback, asset) {\n\t\tif (this._parsers.length === 0) {\n\t\t\treturn;\n\t\t}\n\t\tif (typeof url === \"string\") {\n\t\t\turl = {\n\t\t\t\tload: url,\n\t\t\t\toriginal: url\n\t\t\t};\n\t\t}\n\t\tconst context = this._makeContext(url, asset);\n\t\tconst parser = this._selectParser(context);\n\t\tif (!parser) {\n\t\t\tcallback(`No parser found for resource: ${context.url}`);\n\t\t\treturn;\n\t\t}\n\t\tparser.load(url, callback, asset);\n\t}\n\topen(url, data2, asset) {\n\t\tif (this._parsers.length === 0) {\n\t\t\treturn data2;\n\t\t}\n\t\tconst parser = this._selectParser(this._makeContext(url, asset));\n\t\treturn parser?.open ? parser.open(url, data2, asset) : data2;\n\t}\n\tpatch(asset, assets) {\n\t}\n};\n\nvar BundleHandler = class extends ResourceHandler {\n\tconstructor(app2) {\n\t\tsuper(app2, \"bundle\");\n\t\tthis._assets = app2.assets;\n\t}\n\t_fetchRetries(url, options2, retries = 0) {\n\t\treturn new Promise((resolve2, reject) => {\n\t\t\tconst tryFetch = () => {\n\t\t\t\tfetch(url, options2).then(resolve2).catch((err2) => {\n\t\t\t\t\tretries++;\n\t\t\t\t\tif (retries < this.maxRetries) {\n\t\t\t\t\t\ttryFetch();\n\t\t\t\t\t} else {\n\t\t\t\t\t\treject(err2);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t};\n\t\t\ttryFetch();\n\t\t});\n\t}\n\tload(url, callback) {\n\t\tif (typeof url === \"string\") {\n\t\t\turl = {\n\t\t\t\tload: url,\n\t\t\t\toriginal: url\n\t\t\t};\n\t\t}\n\t\tthis._fetchRetries(url.load, {\n\t\t\tmode: \"cors\"\n\t\t}, this.maxRetries).then((res) => {\n\t\t\tconst bundle = new Bundle();\n\t\t\tcallback(null, bundle);\n\t\t\tconst untar = new Untar(res, this._assets.prefix);\n\t\t\tuntar.on(\"file\", (file) => {\n\t\t\t\tbundle.addFile(file.name, file.data);\n\t\t\t});\n\t\t\tuntar.on(\"done\", () => {\n\t\t\t\tbundle.loaded = true;\n\t\t\t});\n\t\t\tuntar.on(\"error\", (err2) => {\n\t\t\t\tcallback(err2);\n\t\t\t});\n\t\t}).catch((err2) => {\n\t\t\tcallback(err2);\n\t\t});\n\t}\n\topen(url, bundle) {\n\t\treturn bundle;\n\t}\n};\n\nvar ResourceLoader = class _ResourceLoader {\n\tconstructor(app2) {\n\t\tthis._handlers = {};\n\t\tthis._requests = {};\n\t\tthis._cache = {};\n\t\tthis._app = app2;\n\t}\n\taddHandler(type, handler) {\n\t\tthis._handlers[type] = handler;\n\t\thandler._loader = this;\n\t}\n\tremoveHandler(type) {\n\t\tdelete this._handlers[type];\n\t}\n\tgetHandler(type) {\n\t\treturn this._handlers[type];\n\t}\n\tstatic makeKey(url, type) {\n\t\treturn `${url}-${type}`;\n\t}\n\tload(url, type, callback, asset, options2) {\n\t\tconst handler = this._handlers[type];\n\t\tif (!handler) {\n\t\t\tconst err2 = `No resource handler for asset type: '${type}' when loading [${url}]`;\n\t\t\tcallback(err2);\n\t\t\treturn;\n\t\t}\n\t\tif (!url) {\n\t\t\tthis._loadNull(handler, callback, asset);\n\t\t\treturn;\n\t\t}\n\t\tconst key = _ResourceLoader.makeKey(url, type);\n\t\tif (this._cache[key] !== void 0) {\n\t\t\tcallback(null, this._cache[key]);\n\t\t} else if (this._requests[key]) {\n\t\t\tthis._requests[key].push(callback);\n\t\t} else {\n\t\t\tthis._requests[key] = [callback];\n\t\t\tconst self2 = this;\n\t\t\tconst handleLoad = function(err2, urlObj) {\n\t\t\t\tif (err2) {\n\t\t\t\t\tself2._onFailure(key, err2);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (urlObj.load instanceof DataView) {\n\t\t\t\t\tif (handler.openBinary) {\n\t\t\t\t\t\tif (!self2._requests[key]) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst data2 = handler.openBinary(urlObj.load);\n\t\t\t\t\t\t\tself2._onSuccess(key, data2);\n\t\t\t\t\t\t} catch (err3) {\n\t\t\t\t\t\t\tself2._onFailure(key, err3);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\turlObj.load = URL.createObjectURL(new Blob([urlObj.load]));\n\t\t\t\t\tif (asset) {\n\t\t\t\t\t\tif (asset.urlObject) {\n\t\t\t\t\t\t\tURL.revokeObjectURL(asset.urlObject);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tasset.urlObject = urlObj.load;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\thandler.load(urlObj, (err3, data2, extra) => {\n\t\t\t\t\tif (!self2._requests[key]) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tif (err3) {\n\t\t\t\t\t\tself2._onFailure(key, err3);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\ttry {\n\t\t\t\t\t\tself2._onSuccess(key, handler.open(urlObj.original, data2, asset), extra);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\tself2._onFailure(key, e);\n\t\t\t\t\t}\n\t\t\t\t}, asset);\n\t\t\t};\n\t\t\tconst normalizedUrl = url.split(\"?\")[0];\n\t\t\tif (this._app.enableBundles && this._app.bundles.hasUrl(normalizedUrl) && !(options2 && options2.bundlesIgnore)) {\n\t\t\t\tif (!this._app.bundles.urlIsLoadedOrLoading(normalizedUrl)) {\n\t\t\t\t\tconst bundles = this._app.bundles.listBundlesForAsset(asset);\n\t\t\t\t\tlet bundle;\n\t\t\t\t\tif (options2 && options2.bundlesFilter) {\n\t\t\t\t\t\tbundle = options2.bundlesFilter(bundles);\n\t\t\t\t\t}\n\t\t\t\t\tif (!bundle) {\n\t\t\t\t\t\tbundles?.sort((a, b) => {\n\t\t\t\t\t\t\treturn a.file.size - b.file.size;\n\t\t\t\t\t\t});\n\t\t\t\t\t\tbundle = bundles?.[0];\n\t\t\t\t\t}\n\t\t\t\t\tif (bundle) this._app.assets?.load(bundle);\n\t\t\t\t}\n\t\t\t\tthis._app.bundles.loadUrl(normalizedUrl, (err2, fileUrlFromBundle) => {\n\t\t\t\t\thandleLoad(err2, {\n\t\t\t\t\t\tload: fileUrlFromBundle,\n\t\t\t\t\t\toriginal: normalizedUrl\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\thandleLoad(null, {\n\t\t\t\t\tload: url,\n\t\t\t\t\toriginal: asset && asset.file.filename || url\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\t// load an asset with no url, skipping bundles and caching\n\t_loadNull(handler, callback, asset) {\n\t\tconst onLoad = function(err2, data2, extra) {\n\t\t\tif (err2) {\n\t\t\t\tcallback(err2);\n\t\t\t} else {\n\t\t\t\ttry {\n\t\t\t\t\tcallback(null, handler.open(null, data2, asset), extra);\n\t\t\t\t} catch (e) {\n\t\t\t\t\tcallback(e);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\thandler.load(null, onLoad, asset);\n\t}\n\t_onSuccess(key, result, extra) {\n\t\tif (result !== null) {\n\t\t\tthis._cache[key] = result;\n\t\t} else {\n\t\t\tdelete this._cache[key];\n\t\t}\n\t\tfor (let i2 = 0; i2 < this._requests[key].length; i2++) {\n\t\t\tthis._requests[key][i2](null, result, extra);\n\t\t}\n\t\tdelete this._requests[key];\n\t}\n\t_onFailure(key, err2) {\n\t\tconsole.error(`Failed to load resource [${key}]: ${err2?.message ?? err2}`, err2);\n\t\tif (this._requests[key]) {\n\t\t\tfor (let i2 = 0; i2 < this._requests[key].length; i2++) {\n\t\t\t\tthis._requests[key][i2](err2);\n\t\t\t}\n\t\t\tdelete this._requests[key];\n\t\t}\n\t}\n\topen(type, data2) {\n\t\tconst handler = this._handlers[type];\n\t\tif (!handler) {\n\t\t\tconsole.warn(`No resource handler found for: ${type}`);\n\t\t\treturn data2;\n\t\t}\n\t\treturn handler.open(null, data2);\n\t}\n\tpatch(asset, assets) {\n\t\tconst handler = this._handlers[asset.type];\n\t\tif (!handler) {\n\t\t\tconsole.warn(`No resource handler found for: ${asset.type}`);\n\t\t\treturn;\n\t\t}\n\t\tif (handler.patch) {\n\t\t\thandler.patch(asset, assets);\n\t\t}\n\t}\n\tclearCache(url, type) {\n\t\tconst key = _ResourceLoader.makeKey(url, type);\n\t\tdelete this._cache[key];\n\t}\n\tgetFromCache(url, type) {\n\t\tconst key = _ResourceLoader.makeKey(url, type);\n\t\tif (this._cache[key]) {\n\t\t\treturn this._cache[key];\n\t\t}\n\t\treturn void 0;\n\t}\n\tenableRetry(maxRetries = 5) {\n\t\tmaxRetries = Math.max(0, Math.floor(maxRetries)) || 0;\n\t\tfor (const key in this._handlers) {\n\t\t\tthis._handlers[key].maxRetries = maxRetries;\n\t\t}\n\t}\n\tdisableRetry() {\n\t\tfor (const key in this._handlers) {\n\t\t\tthis._handlers[key].maxRetries = 0;\n\t\t}\n\t}\n\tset maxConcurrentRequests(value) {\n\t\thttp.maxConcurrentRequests = Math.max(0, Math.floor(value)) || 0;\n\t}\n\tget maxConcurrentRequests() {\n\t\treturn http.maxConcurrentRequests;\n\t}\n\tset withCredentials(value) {\n\t\thttp.withCredentials = !!value;\n\t}\n\tget withCredentials() {\n\t\treturn http.withCredentials;\n\t}\n\tdestroy() {\n\t\tthis._handlers = {};\n\t\tthis._requests = {};\n\t\tthis._cache = {};\n\t\tthis._app = null;\n\t}\n};\n\nvar I18nParser = class {\n\t_validate(data2) {\n\t\tif (!data2.header) {\n\t\t\tthrow new Error('I18n#addData: Missing \"header\" field');\n\t\t}\n\t\tif (!data2.header.version) {\n\t\t\tthrow new Error('I18n#addData: Missing \"header.version\" field');\n\t\t}\n\t\tif (data2.header.version !== 1) {\n\t\t\tthrow new Error('I18n#addData: Invalid \"header.version\" field');\n\t\t}\n\t\tif (!data2.data) {\n\t\t\tthrow new Error('I18n#addData: Missing \"data\" field');\n\t\t} else if (!Array.isArray(data2.data)) {\n\t\t\tthrow new Error('I18n#addData: \"data\" field must be an array');\n\t\t}\n\t\tfor (let i2 = 0, len = data2.data.length; i2 < len; i2++) {\n\t\t\tconst entry = data2.data[i2];\n\t\t\tif (!entry.info) {\n\t\t\t\tthrow new Error(`I18n#addData: missing \"data[${i2}].info\" field`);\n\t\t\t}\n\t\t\tif (!entry.info.locale) {\n\t\t\t\tthrow new Error(`I18n#addData: missing \"data[${i2}].info.locale\" field`);\n\t\t\t}\n\t\t\tif (typeof entry.info.locale !== \"string\") {\n\t\t\t\tthrow new Error(`I18n#addData: \"data[${i2}].info.locale\" must be a string`);\n\t\t\t}\n\t\t\tif (!entry.messages) {\n\t\t\t\tthrow new Error(`I18n#addData: missing \"data[${i2}].messages\" field`);\n\t\t\t}\n\t\t}\n\t}\n\tparse(data2) {\n\t\treturn data2.data;\n\t}\n};\n\nvar I18n = class _I18n extends EventHandler {\n\tstatic EVENT_CHANGE = \"change\";\n\tconstructor(app2) {\n\t\tsuper();\n\t\tthis.locale = DEFAULT_LOCALE;\n\t\tthis._translations = {};\n\t\tthis._availableLangs = {};\n\t\tthis._app = app2;\n\t\tthis._assets = [];\n\t\tthis._parser = new I18nParser();\n\t}\n\tset assets(value) {\n\t\tconst index = {};\n\t\tfor (let i3 = 0, len = value.length; i3 < len; i3++) {\n\t\t\tconst id14 = value[i3] instanceof Asset ? value[i3].id : value[i3];\n\t\t\tindex[id14] = true;\n\t\t}\n\t\tlet i2 = this._assets.length;\n\t\twhile (i2--) {\n\t\t\tconst id14 = this._assets[i2];\n\t\t\tif (!index[id14]) {\n\t\t\t\tthis._app.assets.off(`add:${id14}`, this._onAssetAdd, this);\n\t\t\t\tconst asset = this._app.assets.get(id14);\n\t\t\t\tif (asset) {\n\t\t\t\t\tthis._onAssetRemove(asset);\n\t\t\t\t}\n\t\t\t\tthis._assets.splice(i2, 1);\n\t\t\t}\n\t\t}\n\t\tfor (const id14 in index) {\n\t\t\tconst idNum = parseInt(id14, 10);\n\t\t\tif (this._assets.indexOf(idNum) !== -1) continue;\n\t\t\tthis._assets.push(idNum);\n\t\t\tconst asset = this._app.assets.get(idNum);\n\t\t\tif (!asset) {\n\t\t\t\tthis._app.assets.once(`add:${idNum}`, this._onAssetAdd, this);\n\t\t\t} else {\n\t\t\t\tthis._onAssetAdd(asset);\n\t\t\t}\n\t\t}\n\t}\n\tget assets() {\n\t\treturn this._assets;\n\t}\n\tset locale(value) {\n\t\tif (this._locale === value) {\n\t\t\treturn;\n\t\t}\n\t\tlet lang = getLang(value);\n\t\tif (lang === \"in\") {\n\t\t\tlang = \"id\";\n\t\t\tvalue = replaceLang(value, lang);\n\t\t\tif (this._locale === value) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tconst old = this._locale;\n\t\tthis._locale = value;\n\t\tthis._lang = lang;\n\t\tthis._pluralFn = getPluralFn(this._lang);\n\t\tthis.fire(_I18n.EVENT_CHANGE, value, old);\n\t}\n\tget locale() {\n\t\treturn this._locale;\n\t}\n\tstatic findAvailableLocale(desiredLocale, availableLocales) {\n\t\treturn findAvailableLocale(desiredLocale, availableLocales);\n\t}\n\tfindAvailableLocale(desiredLocale) {\n\t\tif (this._translations[desiredLocale]) {\n\t\t\treturn desiredLocale;\n\t\t}\n\t\tconst lang = getLang(desiredLocale);\n\t\treturn this._findFallbackLocale(desiredLocale, lang);\n\t}\n\tgetText(key, locale) {\n\t\tlet result = key;\n\t\tlet lang;\n\t\tif (!locale) {\n\t\t\tlocale = this._locale;\n\t\t\tlang = this._lang;\n\t\t}\n\t\tlet translations = this._translations[locale];\n\t\tif (!translations) {\n\t\t\tif (!lang) {\n\t\t\t\tlang = getLang(locale);\n\t\t\t}\n\t\t\tlocale = this._findFallbackLocale(locale, lang);\n\t\t\ttranslations = this._translations[locale];\n\t\t}\n\t\tif (translations && translations.hasOwnProperty(key)) {\n\t\t\tresult = translations[key];\n\t\t\tif (Array.isArray(result)) {\n\t\t\t\tresult = result[0];\n\t\t\t}\n\t\t\tif (result === null || result === void 0) {\n\t\t\t\tresult = key;\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\tgetPluralText(key, n, locale) {\n\t\tlet result = key;\n\t\tlet lang;\n\t\tlet pluralFn;\n\t\tif (!locale) {\n\t\t\tlocale = this._locale;\n\t\t\tlang = this._lang;\n\t\t\tpluralFn = this._pluralFn;\n\t\t} else {\n\t\t\tlang = getLang(locale);\n\t\t\tpluralFn = getPluralFn(lang);\n\t\t}\n\t\tlet translations = this._translations[locale];\n\t\tif (!translations) {\n\t\t\tlocale = this._findFallbackLocale(locale, lang);\n\t\t\tlang = getLang(locale);\n\t\t\tpluralFn = getPluralFn(lang);\n\t\t\ttranslations = this._translations[locale];\n\t\t}\n\t\tif (translations && translations[key] && pluralFn) {\n\t\t\tconst index = pluralFn(n);\n\t\t\tresult = translations[key][index];\n\t\t\tif (result === null || result === void 0) {\n\t\t\t\tresult = key;\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\taddData(data2) {\n\t\tlet parsed;\n\t\ttry {\n\t\t\tparsed = this._parser.parse(data2);\n\t\t} catch (err2) {\n\t\t\tconsole.error(`I18n.addData: failed to parse localization data: ${err2?.message ?? err2}`, err2);\n\t\t\treturn;\n\t\t}\n\t\tfor (let i2 = 0, len = parsed.length; i2 < len; i2++) {\n\t\t\tconst entry = parsed[i2];\n\t\t\tconst locale = entry.info.locale;\n\t\t\tconst messages = entry.messages;\n\t\t\tif (!this._translations[locale]) {\n\t\t\t\tthis._translations[locale] = {};\n\t\t\t\tconst lang = getLang(locale);\n\t\t\t\tif (!this._availableLangs[lang]) {\n\t\t\t\t\tthis._availableLangs[lang] = locale;\n\t\t\t\t}\n\t\t\t}\n\t\t\tObject.assign(this._translations[locale], messages);\n\t\t\tthis.fire(\"data:add\", locale, messages);\n\t\t}\n\t}\n\tremoveData(data2) {\n\t\tlet parsed;\n\t\ttry {\n\t\t\tparsed = this._parser.parse(data2);\n\t\t} catch (err2) {\n\t\t\tconsole.error(`I18n.removeData: failed to parse localization data: ${err2?.message ?? err2}`, err2);\n\t\t\treturn;\n\t\t}\n\t\tfor (let i2 = 0, len = parsed.length; i2 < len; i2++) {\n\t\t\tconst entry = parsed[i2];\n\t\t\tconst locale = entry.info.locale;\n\t\t\tconst translations = this._translations[locale];\n\t\t\tif (!translations) continue;\n\t\t\tconst messages = entry.messages;\n\t\t\tfor (const key in messages) {\n\t\t\t\tdelete translations[key];\n\t\t\t}\n\t\t\tif (Object.keys(translations).length === 0) {\n\t\t\t\tdelete this._translations[locale];\n\t\t\t\tdelete this._availableLangs[getLang(locale)];\n\t\t\t}\n\t\t\tthis.fire(\"data:remove\", locale, messages);\n\t\t}\n\t}\n\tdestroy() {\n\t\tthis._translations = null;\n\t\tthis._availableLangs = null;\n\t\tthis._assets = null;\n\t\tthis._parser = null;\n\t\tthis.off();\n\t}\n\t// Finds a fallback locale for the specified locale and language.\n\t// 1) First tries DEFAULT_LOCALE_FALLBACKS\n\t// 2) If no translation exists for that locale return the first locale available for that language.\n\t// 3) If no translation exists for that either then return the DEFAULT_LOCALE\n\t_findFallbackLocale(locale, lang) {\n\t\tlet result = DEFAULT_LOCALE_FALLBACKS[locale];\n\t\tif (result && this._translations[result]) {\n\t\t\treturn result;\n\t\t}\n\t\tresult = DEFAULT_LOCALE_FALLBACKS[lang];\n\t\tif (result && this._translations[result]) {\n\t\t\treturn result;\n\t\t}\n\t\tresult = this._availableLangs[lang];\n\t\tif (result && this._translations[result]) {\n\t\t\treturn result;\n\t\t}\n\t\treturn DEFAULT_LOCALE;\n\t}\n\t_onAssetAdd(asset) {\n\t\tasset.on(\"load\", this._onAssetLoad, this);\n\t\tasset.on(\"change\", this._onAssetChange, this);\n\t\tasset.on(\"remove\", this._onAssetRemove, this);\n\t\tasset.on(\"unload\", this._onAssetUnload, this);\n\t\tif (asset.resource) {\n\t\t\tthis._onAssetLoad(asset);\n\t\t}\n\t}\n\t_onAssetLoad(asset) {\n\t\tthis.addData(asset.resource);\n\t}\n\t_onAssetChange(asset) {\n\t\tif (asset.resource) {\n\t\t\tthis.addData(asset.resource);\n\t\t}\n\t}\n\t_onAssetRemove(asset) {\n\t\tasset.off(\"load\", this._onAssetLoad, this);\n\t\tasset.off(\"change\", this._onAssetChange, this);\n\t\tasset.off(\"remove\", this._onAssetRemove, this);\n\t\tasset.off(\"unload\", this._onAssetUnload, this);\n\t\tif (asset.resource) {\n\t\t\tthis.removeData(asset.resource);\n\t\t}\n\t\tthis._app.assets.once(`add:${asset.id}`, this._onAssetAdd, this);\n\t}\n\t_onAssetUnload(asset) {\n\t\tif (asset.resource) {\n\t\t\tthis.removeData(asset.resource);\n\t\t}\n\t}\n};\n\nvar SCRIPT_INITIALIZE = \"initialize\";\nvar SCRIPT_POST_INITIALIZE = \"postInitialize\";\nvar SCRIPT_UPDATE = \"update\";\nvar SCRIPT_POST_UPDATE = \"postUpdate\";\nvar SCRIPT_SWAP = \"swap\";\nvar reservedScriptNames = /* @__PURE__ */ new Set([\n\t\"system\",\n\t\"entity\",\n\t\"create\",\n\t\"destroy\",\n\t\"swap\",\n\t\"move\",\n\t\"data\",\n\t\"scripts\",\n\t\"_scripts\",\n\t\"_scriptsIndex\",\n\t\"_scriptsData\",\n\t\"_declarationOrder\",\n\t\"enabled\",\n\t\"_oldState\",\n\t\"onEnable\",\n\t\"onDisable\",\n\t\"onPostStateChange\",\n\t\"_onSetEnabled\",\n\t\"_checkState\",\n\t\"_onBeforeRemove\",\n\t\"_onInitializeAttributes\",\n\t\"_onInitialize\",\n\t\"_onPostInitialize\",\n\t\"_onUpdate\",\n\t\"_onPostUpdate\",\n\t\"_callbacks\",\n\t\"_callbackActive\",\n\t\"has\",\n\t\"get\",\n\t\"on\",\n\t\"off\",\n\t\"fire\",\n\t\"once\",\n\t\"hasEvent\",\n\t// 'worker' is reserved to prevent users from overwriting the native Worker constructor\n\t\"worker\"\n]);\n\nvar Script = class extends EventHandler {\n\tstatic EVENT_ENABLE = \"enable\";\n\tstatic EVENT_DISABLE = \"disable\";\n\tstatic EVENT_STATE = \"state\";\n\tstatic EVENT_DESTROY = \"destroy\";\n\tstatic EVENT_ATTR = \"attr\";\n\tstatic EVENT_ERROR = \"error\";\n\tapp;\n\tentity;\n\t_enabled;\n\t_enabledOld;\n\t_initialized;\n\t_postInitialized;\n\t__destroyed;\n\t__scriptType;\n\t__executionOrder;\n\tconstructor(args) {\n\t\tsuper();\n\t\tthis.initScript(args);\n\t}\n\tset enabled(value) {\n\t\tthis._enabled = !!value;\n\t\tif (this.enabled === this._enabledOld) return;\n\t\tthis._enabledOld = this.enabled;\n\t\tthis.fire(this.enabled ? \"enable\" : \"disable\");\n\t\tthis.fire(\"state\", this.enabled);\n\t\tif (!this._initialized && this.enabled) {\n\t\t\tthis._initialized = true;\n\t\t\tthis.fire(\"preInitialize\");\n\t\t\tif (this.initialize) {\n\t\t\t\tthis.entity.script._scriptMethod(this, SCRIPT_INITIALIZE);\n\t\t\t}\n\t\t}\n\t\tif (this._initialized && !this._postInitialized && this.enabled && !this.entity.script._beingEnabled) {\n\t\t\tthis._postInitialized = true;\n\t\t\tif (this.postInitialize) {\n\t\t\t\tthis.entity.script._scriptMethod(this, SCRIPT_POST_INITIALIZE);\n\t\t\t}\n\t\t}\n\t}\n\tget enabled() {\n\t\treturn this._enabled && !this._destroyed && this.entity.script.enabled && this.entity.enabled;\n\t}\n\tinitScript(args) {\n\t\tconst script2 = this.constructor;\n\t\tthis.app = args.app;\n\t\tthis.entity = args.entity;\n\t\tthis._enabled = typeof args.enabled === \"boolean\" ? args.enabled : true;\n\t\tthis._enabledOld = this.enabled;\n\t\tthis.__destroyed = false;\n\t\tthis.__scriptType = script2;\n\t\tthis.__executionOrder = -1;\n\t}\n\tstatic __name = null;\n\t// Will be assigned when calling createScript or registerScript.\n\tstatic __getScriptName = getScriptName;\n\tstatic set scriptName(value) {\n\t\tthis.__name = value;\n\t}\n\tstatic get scriptName() {\n\t\treturn this.__name;\n\t}\n};\nvar funcNameRegex = /^\\s*function(?:\\s|\\s*\\/\\*.*\\*\\/\\s*)+([^(\\s\\/]*)\\s*/;\nvar toLowerCamelCase = (str) => str ? str[0].toLowerCase() + str.substring(1) : str;\nfunction getScriptName(constructorFn) {\n\tif (typeof constructorFn !== \"function\") return void 0;\n\tif (Object.prototype.hasOwnProperty.call(constructorFn, \"scriptName\") && constructorFn.scriptName) {\n\t\treturn constructorFn.scriptName;\n\t}\n\tif (\"name\" in Function.prototype) return constructorFn.name;\n\tif (constructorFn === Function || constructorFn === Function.prototype.constructor) return \"Function\";\n\tconst match = `${constructorFn}`.match(funcNameRegex);\n\treturn match ? match[1] : void 0;\n}\nfunction getScriptRegistryName(constructorFn) {\n\tif (typeof constructorFn !== \"function\") return void 0;\n\tif (Object.prototype.hasOwnProperty.call(constructorFn, \"__name\") && constructorFn.__name) {\n\t\treturn constructorFn.__name;\n\t}\n\tif (Object.prototype.hasOwnProperty.call(constructorFn, \"scriptName\") && constructorFn.scriptName) {\n\t\treturn constructorFn.scriptName;\n\t}\n\tconst name = getScriptName(constructorFn);\n\treturn name ? toLowerCamelCase(name) : void 0;\n}\n\nvar ScriptRegistry = class extends EventHandler {\n\t_scripts = /* @__PURE__ */ new Map();\n\t_list = [];\n\t_scriptSchemas = /* @__PURE__ */ new Map();\n\tconstructor(app2) {\n\t\tsuper();\n\t\tthis.app = app2;\n\t}\n\tdestroy() {\n\t\tthis.app = null;\n\t\tthis.off();\n\t}\n\taddSchema(id14, schema) {\n\t\tif (!schema) return;\n\t\tthis._scriptSchemas.set(id14, schema);\n\t}\n\tgetSchema(id14) {\n\t\treturn this._scriptSchemas.get(id14);\n\t}\n\tadd(script2) {\n\t\tconst scriptName = getScriptRegistryName(script2);\n\t\tif (!scriptName) {\n\t\t\treturn false;\n\t\t}\n\t\tif (reservedScriptNames.has(scriptName)) {\n\t\t\treturn false;\n\t\t}\n\t\tscript2.__name = scriptName;\n\t\tif (this._scripts.has(scriptName)) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (script2.prototype.swap) {\n\t\t\t\t\tconst old = this._scripts.get(scriptName);\n\t\t\t\t\tconst ind = this._list.indexOf(old);\n\t\t\t\t\tthis._list[ind] = script2;\n\t\t\t\t\tthis._scripts.set(scriptName, script2);\n\t\t\t\t\tthis.fire(\"swap\", scriptName, script2);\n\t\t\t\t\tthis.fire(`swap:${scriptName}`, script2);\n\t\t\t\t} else {\n\t\t\t\t\tconsole.warn(`script registry already has '${scriptName}' script, define 'swap' method for new script type to enable code hot swapping`);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn false;\n\t\t}\n\t\tthis._scripts.set(scriptName, script2);\n\t\tthis._list.push(script2);\n\t\tthis.fire(\"add\", scriptName, script2);\n\t\tthis.fire(`add:${scriptName}`, script2);\n\t\tsetTimeout(() => {\n\t\t\tif (!this._scripts.has(scriptName)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (!this.app || !this.app.systems || !this.app.systems.script) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst components2 = this.app.systems.script._components;\n\t\t\tconst scriptInstances = [];\n\t\t\tconst scriptInstancesInitialized = [];\n\t\t\tfor (components2.loopIndex = 0; components2.loopIndex < components2.length; components2.loopIndex++) {\n\t\t\t\tconst component = components2.items[components2.loopIndex];\n\t\t\t\tconst indexData = component._scriptsIndex[scriptName];\n\t\t\t\tif (indexData && indexData.awaiting) {\n\t\t\t\t\tconst scriptInstance = component.create(scriptName, {\n\t\t\t\t\t\tpreloading: true,\n\t\t\t\t\t\tind: component._awaitingInsertIndex(scriptName),\n\t\t\t\t\t\tenabled: indexData.enabled,\n\t\t\t\t\t\tattributes: indexData.attributes,\n\t\t\t\t\t\tproperties: indexData.properties\n\t\t\t\t\t});\n\t\t\t\t\tif (scriptInstance) {\n\t\t\t\t\t\tscriptInstances.push(scriptInstance);\n\t\t\t\t\t}\n\t\t\t\t\tfor (const script3 of component.scripts) {\n\t\t\t\t\t\tcomponent.initializeAttributes(script3);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (let i2 = 0; i2 < scriptInstances.length; i2++) {\n\t\t\t\tif (scriptInstances[i2].enabled) {\n\t\t\t\t\tscriptInstances[i2]._initialized = true;\n\t\t\t\t\tscriptInstancesInitialized.push(scriptInstances[i2]);\n\t\t\t\t\tif (scriptInstances[i2].initialize) {\n\t\t\t\t\t\tscriptInstances[i2].initialize();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (let i2 = 0; i2 < scriptInstancesInitialized.length; i2++) {\n\t\t\t\tif (!scriptInstancesInitialized[i2].enabled || scriptInstancesInitialized[i2]._postInitialized) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tscriptInstancesInitialized[i2]._postInitialized = true;\n\t\t\t\tif (scriptInstancesInitialized[i2].postInitialize) {\n\t\t\t\t\tscriptInstancesInitialized[i2].postInitialize();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn true;\n\t}\n\tremove(nameOrType) {\n\t\tlet scriptType = nameOrType;\n\t\tlet scriptName = nameOrType;\n\t\tif (typeof scriptName !== \"string\") {\n\t\t\tscriptName = scriptType.__name;\n\t\t} else {\n\t\t\tscriptType = this.get(scriptName);\n\t\t}\n\t\tif (this.get(scriptName) !== scriptType) {\n\t\t\treturn false;\n\t\t}\n\t\tthis._scripts.delete(scriptName);\n\t\tconst ind = this._list.indexOf(scriptType);\n\t\tthis._list.splice(ind, 1);\n\t\tthis.fire(\"remove\", scriptName, scriptType);\n\t\tthis.fire(`remove:${scriptName}`, scriptType);\n\t\treturn true;\n\t}\n\tget(name) {\n\t\treturn this._scripts.get(name) || null;\n\t}\n\thas(nameOrType) {\n\t\tif (typeof nameOrType === \"string\") {\n\t\t\treturn this._scripts.has(nameOrType);\n\t\t}\n\t\tif (!nameOrType) return false;\n\t\tconst scriptName = nameOrType.__name;\n\t\treturn this._scripts.get(scriptName) === nameOrType;\n\t}\n\tlist() {\n\t\treturn this._list;\n\t}\n};\n\nvar cmpStaticOrder = (a, b) => a.constructor.order - b.constructor.order;\nvar sortStaticOrder = (arr) => arr.sort(cmpStaticOrder);\nvar _enableList = [];\nvar tmpPool = [];\nvar getTempArray = () => {\n\treturn tmpPool.pop() ?? [];\n};\nvar releaseTempArray = (a) => {\n\ta.length = 0;\n\ttmpPool.push(a);\n};\nvar Entity = class _Entity extends GraphNode {\n\tstatic EVENT_DESTROY = \"destroy\";\n\tanim;\n\tanimation;\n\taudiolistener;\n\tbutton;\n\tcamera;\n\tcollision;\n\telement;\n\tgsplat;\n\tjoint;\n\tlayoutchild;\n\tlayoutgroup;\n\tlight;\n\tmodel;\n\tparticlesystem;\n\trender;\n\trigidbody;\n\tscreen;\n\tscript;\n\tscrollbar;\n\tscrollview;\n\tsound;\n\tsprite;\n\tc = {};\n\t_app;\n\t_destroying = false;\n\t_guid = null;\n\t_template = false;\n\tconstructor(name, app2 = getApplication()) {\n\t\tsuper(name);\n\t\tthis._app = app2;\n\t}\n\taddComponent(type, data2) {\n\t\tconst system = this._app.systems[type];\n\t\tif (!system) {\n\t\t\treturn null;\n\t\t}\n\t\tif (this.c[type]) {\n\t\t\treturn null;\n\t\t}\n\t\treturn system.addComponent(this, data2);\n\t}\n\tremoveComponent(type) {\n\t\tconst system = this._app.systems[type];\n\t\tif (!system) {\n\t\t\treturn;\n\t\t}\n\t\tif (!this.c[type]) {\n\t\t\treturn;\n\t\t}\n\t\tsystem.removeComponent(this);\n\t}\n\tfindComponent(type) {\n\t\tconst entity = this.findOne((entity2) => entity2.c?.[type]);\n\t\treturn entity && entity.c[type];\n\t}\n\tfindComponents(type) {\n\t\treturn this.find((entity) => entity.c?.[type]).map((entity) => entity.c[type]);\n\t}\n\tfindScript(nameOrType) {\n\t\tconst entity = this.findOne((node) => node.c?.script?.has(nameOrType));\n\t\treturn entity?.c.script.get(nameOrType);\n\t}\n\tfindScripts(nameOrType) {\n\t\tconst entities = this.find((node) => node.c?.script?.has(nameOrType));\n\t\treturn entities.map((entity) => entity.c.script.get(nameOrType));\n\t}\n\tset guid(value) {\n\t\tconst index = this._app._entityIndex;\n\t\tif (this._guid) {\n\t\t\tdelete index[this._guid];\n\t\t}\n\t\tthis._guid = value;\n\t\tindex[this._guid] = this;\n\t}\n\tget guid() {\n\t\tif (!this._guid) {\n\t\t\tthis.guid = guid.create();\n\t\t}\n\t\treturn this._guid;\n\t}\n\tgetGuid() {\n\t\treturn this.guid;\n\t}\n\tsetGuid(guid2) {\n\t\tthis.guid = guid2;\n\t}\n\t_notifyHierarchyStateChanged(node, enabled) {\n\t\tlet enableFirst = false;\n\t\tif (node === this && _enableList.length === 0) {\n\t\t\tenableFirst = true;\n\t\t}\n\t\tnode._beingEnabled = true;\n\t\tnode._onHierarchyStateChanged(enabled);\n\t\tif (node._onHierarchyStatePostChanged) {\n\t\t\t_enableList.push(node);\n\t\t}\n\t\tconst c2 = node._children;\n\t\tfor (let i2 = 0, len = c2.length; i2 < len; i2++) {\n\t\t\tif (c2[i2]._enabled) {\n\t\t\t\tthis._notifyHierarchyStateChanged(c2[i2], enabled);\n\t\t\t}\n\t\t}\n\t\tnode._beingEnabled = false;\n\t\tif (enableFirst) {\n\t\t\tfor (let i2 = 0; i2 < _enableList.length; i2++) {\n\t\t\t\t_enableList[i2]._onHierarchyStatePostChanged();\n\t\t\t}\n\t\t\t_enableList.length = 0;\n\t\t}\n\t}\n\t_onHierarchyStateChanged(enabled) {\n\t\tsuper._onHierarchyStateChanged(enabled);\n\t\tconst components2 = this._getSortedComponents();\n\t\tfor (let i2 = 0; i2 < components2.length; i2++) {\n\t\t\tconst component = components2[i2];\n\t\t\tif (component.enabled) {\n\t\t\t\tif (enabled) {\n\t\t\t\t\tcomponent.onEnable();\n\t\t\t\t} else {\n\t\t\t\t\tcomponent.onDisable();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treleaseTempArray(components2);\n\t}\n\t_onHierarchyStatePostChanged() {\n\t\tconst components2 = this._getSortedComponents();\n\t\tfor (let i2 = 0; i2 < components2.length; i2++) {\n\t\t\tcomponents2[i2].onPostStateChange();\n\t\t}\n\t\treleaseTempArray(components2);\n\t}\n\tfindByGuid(guid2) {\n\t\tif (this._guid === guid2) return this;\n\t\tconst e = this._app._entityIndex[guid2];\n\t\tif (e && (e === this || e.isDescendantOf(this))) {\n\t\t\treturn e;\n\t\t}\n\t\treturn null;\n\t}\n\tdestroy() {\n\t\tthis._destroying = true;\n\t\tfor (const name in this.c) {\n\t\t\tthis.c[name].enabled = false;\n\t\t}\n\t\tfor (const name in this.c) {\n\t\t\tthis.c[name].system.removeComponent(this);\n\t\t}\n\t\tsuper.destroy();\n\t\tif (this._guid) {\n\t\t\tdelete this._app._entityIndex[this._guid];\n\t\t}\n\t\tthis._destroying = false;\n\t}\n\tclone() {\n\t\tconst duplicatedIdsMap = {};\n\t\tconst clone = this._cloneRecursively(duplicatedIdsMap);\n\t\tduplicatedIdsMap[this.guid] = clone;\n\t\tresolveDuplicatedEntityReferenceProperties(this, this, clone, duplicatedIdsMap);\n\t\treturn clone;\n\t}\n\t_getSortedComponents() {\n\t\tconst components2 = this.c;\n\t\tconst sortedArray = getTempArray();\n\t\tlet needSort = 0;\n\t\tfor (const type in components2) {\n\t\t\tif (components2.hasOwnProperty(type)) {\n\t\t\t\tconst component = components2[type];\n\t\t\t\tneedSort |= component.constructor.order !== 0;\n\t\t\t\tsortedArray.push(component);\n\t\t\t}\n\t\t}\n\t\tif (needSort && sortedArray.length > 1) {\n\t\t\tsortStaticOrder(sortedArray);\n\t\t}\n\t\treturn sortedArray;\n\t}\n\t_cloneRecursively(duplicatedIdsMap) {\n\t\tconst clone = new this.constructor(void 0, this._app);\n\t\tsuper._cloneInternal(clone);\n\t\tfor (const type in this.c) {\n\t\t\tconst component = this.c[type];\n\t\t\tcomponent.system.cloneComponent(this, clone);\n\t\t}\n\t\tfor (let i2 = 0; i2 < this._children.length; i2++) {\n\t\t\tconst oldChild = this._children[i2];\n\t\t\tif (oldChild instanceof _Entity) {\n\t\t\t\tconst newChild = oldChild._cloneRecursively(duplicatedIdsMap);\n\t\t\t\tclone.addChild(newChild);\n\t\t\t\tduplicatedIdsMap[oldChild.guid] = newChild;\n\t\t\t}\n\t\t}\n\t\treturn clone;\n\t}\n};\nfunction resolveDuplicatedEntityReferenceProperties(oldSubtreeRoot, oldEntity, newEntity, duplicatedIdsMap) {\n\tif (oldEntity instanceof Entity) {\n\t\tconst components2 = oldEntity.c;\n\t\tfor (const componentName in components2) {\n\t\t\tconst component = components2[componentName];\n\t\t\tconst entityProperties = component.system.getPropertiesOfType(\"entity\");\n\t\t\tfor (let i2 = 0, len = entityProperties.length; i2 < len; i2++) {\n\t\t\t\tconst propertyDescriptor = entityProperties[i2];\n\t\t\t\tconst propertyName = propertyDescriptor.name;\n\t\t\t\tconst oldEntityReferenceId = component[propertyName];\n\t\t\t\tconst entityIsWithinOldSubtree = !!oldSubtreeRoot.findByGuid(oldEntityReferenceId);\n\t\t\t\tif (entityIsWithinOldSubtree) {\n\t\t\t\t\tconst newEntityReferenceId = duplicatedIdsMap[oldEntityReferenceId].guid;\n\t\t\t\t\tif (newEntityReferenceId) {\n\t\t\t\t\t\tnewEntity.c[componentName][propertyName] = newEntityReferenceId;\n\t\t\t\t\t} else {\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (components2.script) {\n\t\t\tnewEntity.script.resolveDuplicatedEntityReferenceProperties(components2.script, duplicatedIdsMap);\n\t\t}\n\t\tif (components2.render) {\n\t\t\tnewEntity.render.resolveDuplicatedEntityReferenceProperties(components2.render, duplicatedIdsMap);\n\t\t}\n\t\tif (components2.button) {\n\t\t\tnewEntity.button.resolveDuplicatedEntityReferenceProperties(components2.button, duplicatedIdsMap);\n\t\t}\n\t\tif (components2.joint) {\n\t\t\tnewEntity.joint.resolveDuplicatedEntityReferenceProperties(components2.joint, duplicatedIdsMap);\n\t\t}\n\t\tif (components2.scrollview) {\n\t\t\tnewEntity.scrollview.resolveDuplicatedEntityReferenceProperties(components2.scrollview, duplicatedIdsMap);\n\t\t}\n\t\tif (components2.scrollbar) {\n\t\t\tnewEntity.scrollbar.resolveDuplicatedEntityReferenceProperties(components2.scrollbar, duplicatedIdsMap);\n\t\t}\n\t\tif (components2.anim) {\n\t\t\tnewEntity.anim.resolveDuplicatedEntityReferenceProperties(components2.anim, duplicatedIdsMap);\n\t\t}\n\t\tconst _old = oldEntity.children.filter((e) => e instanceof Entity);\n\t\tconst _new = newEntity.children.filter((e) => e instanceof Entity);\n\t\tfor (let i2 = 0, len = _old.length; i2 < len; i2++) {\n\t\t\tresolveDuplicatedEntityReferenceProperties(oldSubtreeRoot, _old[i2], _new[i2], duplicatedIdsMap);\n\t\t}\n\t}\n}\n\nvar SceneRegistryItem = class {\n\tname;\n\turl;\n\tdata = null;\n\t_loading = false;\n\t_onLoadedCallbacks = [];\n\tconstructor(name, url) {\n\t\tthis.name = name;\n\t\tthis.url = url;\n\t}\n\tget loaded() {\n\t\treturn !!this.data;\n\t}\n\tget loading() {\n\t\treturn this._loading;\n\t}\n};\n\nvar SceneRegistry = class {\n\t_app;\n\t_list = [];\n\t_index = {};\n\t_urlIndex = {};\n\tconstructor(app2) {\n\t\tthis._app = app2;\n\t}\n\tdestroy() {\n\t\tthis._app = null;\n\t}\n\tlist() {\n\t\treturn this._list;\n\t}\n\tadd(name, url) {\n\t\tif (this._index.hasOwnProperty(name)) {\n\t\t\treturn false;\n\t\t}\n\t\tconst item = new SceneRegistryItem(name, url);\n\t\tconst i2 = this._list.push(item);\n\t\tthis._index[item.name] = i2 - 1;\n\t\tthis._urlIndex[item.url] = i2 - 1;\n\t\treturn true;\n\t}\n\tfind(name) {\n\t\tif (this._index.hasOwnProperty(name)) {\n\t\t\treturn this._list[this._index[name]];\n\t\t}\n\t\treturn null;\n\t}\n\tfindByUrl(url) {\n\t\tif (this._urlIndex.hasOwnProperty(url)) {\n\t\t\treturn this._list[this._urlIndex[url]];\n\t\t}\n\t\treturn null;\n\t}\n\tremove(name) {\n\t\tif (this._index.hasOwnProperty(name)) {\n\t\t\tconst idx = this._index[name];\n\t\t\tlet item = this._list[idx];\n\t\t\tdelete this._urlIndex[item.url];\n\t\t\tdelete this._index[name];\n\t\t\tthis._list.splice(idx, 1);\n\t\t\tfor (let i2 = 0; i2 < this._list.length; i2++) {\n\t\t\t\titem = this._list[i2];\n\t\t\t\tthis._index[item.name] = i2;\n\t\t\t\tthis._urlIndex[item.url] = i2;\n\t\t\t}\n\t\t}\n\t}\n\t_loadSceneData(sceneItem, storeInCache, callback) {\n\t\tconst app2 = this._app;\n\t\tlet url = sceneItem;\n\t\tif (typeof sceneItem === \"string\") {\n\t\t\tsceneItem = this.findByUrl(url) || this.find(url) || new SceneRegistryItem(\"Untitled\", url);\n\t\t}\n\t\turl = sceneItem.url;\n\t\tif (!url) {\n\t\t\tcallback(\"Cannot find scene to load\");\n\t\t\treturn;\n\t\t}\n\t\tif (sceneItem.loaded) {\n\t\t\tcallback(null, sceneItem);\n\t\t\treturn;\n\t\t}\n\t\tif (app2.assets && app2.assets.prefix && !ABSOLUTE_URL.test(url)) {\n\t\t\turl = path.join(app2.assets.prefix, url);\n\t\t}\n\t\tsceneItem._onLoadedCallbacks.push(callback);\n\t\tif (!sceneItem._loading) {\n\t\t\tconst handler = app2.loader.getHandler(\"hierarchy\");\n\t\t\thandler.load(url, (err2, data2) => {\n\t\t\t\tsceneItem.data = data2;\n\t\t\t\tsceneItem._loading = false;\n\t\t\t\tfor (let i2 = 0; i2 < sceneItem._onLoadedCallbacks.length; i2++) {\n\t\t\t\t\tsceneItem._onLoadedCallbacks[i2](err2, sceneItem);\n\t\t\t\t}\n\t\t\t\tif (!storeInCache) {\n\t\t\t\t\tsceneItem.data = null;\n\t\t\t\t}\n\t\t\t\tsceneItem._onLoadedCallbacks.length = 0;\n\t\t\t});\n\t\t}\n\t\tsceneItem._loading = true;\n\t}\n\tloadSceneData(sceneItem, callback) {\n\t\tthis._loadSceneData(sceneItem, true, callback);\n\t}\n\tunloadSceneData(sceneItem) {\n\t\tif (typeof sceneItem === \"string\") {\n\t\t\tsceneItem = this.findByUrl(sceneItem);\n\t\t}\n\t\tif (sceneItem) {\n\t\t\tsceneItem.data = null;\n\t\t}\n\t}\n\t_loadSceneHierarchy(sceneItem, onBeforeAddHierarchy, callback) {\n\t\tthis._loadSceneData(sceneItem, false, (err2, sceneItem2) => {\n\t\t\tif (err2) {\n\t\t\t\tif (callback) {\n\t\t\t\t\tcallback(err2);\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (onBeforeAddHierarchy) {\n\t\t\t\tonBeforeAddHierarchy(sceneItem2);\n\t\t\t}\n\t\t\tconst app2 = this._app;\n\t\t\tconst _loaded = () => {\n\t\t\t\tconst handler = app2.loader.getHandler(\"hierarchy\");\n\t\t\t\tapp2.systems.script.preloading = true;\n\t\t\t\tconst entity = handler.open(sceneItem2.url, sceneItem2.data);\n\t\t\t\tapp2.systems.script.preloading = false;\n\t\t\t\tapp2.loader.clearCache(sceneItem2.url, \"hierarchy\");\n\t\t\t\tapp2.root.addChild(entity);\n\t\t\t\tapp2.systems.fire(\"initialize\", entity);\n\t\t\t\tapp2.systems.fire(\"postInitialize\", entity);\n\t\t\t\tapp2.systems.fire(\"postPostInitialize\", entity);\n\t\t\t\tif (callback) callback(null, entity);\n\t\t\t};\n\t\t\tapp2._preloadScripts(sceneItem2.data, _loaded);\n\t\t});\n\t}\n\tloadSceneHierarchy(sceneItem, callback) {\n\t\tthis._loadSceneHierarchy(sceneItem, null, callback);\n\t}\n\tloadSceneSettings(sceneItem, callback) {\n\t\tthis._loadSceneData(sceneItem, false, (err2, sceneItem2) => {\n\t\t\tif (!err2) {\n\t\t\t\tthis._app.applySceneSettings(sceneItem2.data.settings);\n\t\t\t\tif (callback) {\n\t\t\t\t\tcallback(null);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (callback) {\n\t\t\t\t\tcallback(err2);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\tchangeScene(sceneItem, callback) {\n\t\tconst app2 = this._app;\n\t\tconst onBeforeAddHierarchy = (sceneItem2) => {\n\t\t\tconst { children } = app2.root;\n\t\t\twhile (children.length) {\n\t\t\t\tchildren[0].destroy();\n\t\t\t}\n\t\t\tapp2.applySceneSettings(sceneItem2.data.settings);\n\t\t};\n\t\tthis._loadSceneHierarchy(sceneItem, onBeforeAddHierarchy, callback);\n\t}\n\tloadScene(url, callback) {\n\t\tconst app2 = this._app;\n\t\tconst handler = app2.loader.getHandler(\"scene\");\n\t\tif (app2.assets && app2.assets.prefix && !ABSOLUTE_URL.test(url)) {\n\t\t\turl = path.join(app2.assets.prefix, url);\n\t\t}\n\t\thandler.load(url, (err2, data2) => {\n\t\t\tif (!err2) {\n\t\t\t\tconst _loaded = () => {\n\t\t\t\t\tapp2.systems.script.preloading = true;\n\t\t\t\t\tconst scene = handler.open(url, data2);\n\t\t\t\t\tconst sceneItem = this.findByUrl(url);\n\t\t\t\t\tif (sceneItem && !sceneItem.loaded) {\n\t\t\t\t\t\tsceneItem.data = data2;\n\t\t\t\t\t}\n\t\t\t\t\tapp2.systems.script.preloading = false;\n\t\t\t\t\tapp2.loader.clearCache(url, \"scene\");\n\t\t\t\t\tapp2.loader.patch({\n\t\t\t\t\t\tresource: scene,\n\t\t\t\t\t\ttype: \"scene\"\n\t\t\t\t\t}, app2.assets);\n\t\t\t\t\tapp2.root.addChild(scene.root);\n\t\t\t\t\tif (app2.systems.rigidbody) {\n\t\t\t\t\t\tapp2.systems.rigidbody.gravity.set(scene._gravity.x, scene._gravity.y, scene._gravity.z);\n\t\t\t\t\t}\n\t\t\t\t\tif (callback) {\n\t\t\t\t\t\tcallback(null, scene);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tapp2._preloadScripts(data2, _loaded);\n\t\t\t} else {\n\t\t\t\tif (callback) {\n\t\t\t\t\tcallback(err2);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n};\n\nvar ApplicationStats = class {\n\t_app;\n\tconstructor(app2) {\n\t\tthis._app = app2;\n\t\tconst device = app2.graphicsDevice;\n\t\tthis.frame = {\n\t\t\tfps: 0,\n\t\t\tms: 0,\n\t\t\tdt: 0,\n\t\t\tupdateStart: 0,\n\t\t\tupdateTime: 0,\n\t\t\trenderStart: 0,\n\t\t\trenderTime: 0,\n\t\t\tphysicsStart: 0,\n\t\t\tphysicsTime: 0,\n\t\t\tscriptUpdateStart: 0,\n\t\t\tscriptUpdate: 0,\n\t\t\tscriptPostUpdateStart: 0,\n\t\t\tscriptPostUpdate: 0,\n\t\t\tanimUpdateStart: 0,\n\t\t\tanimUpdate: 0,\n\t\t\tcullTime: 0,\n\t\t\tsortTime: 0,\n\t\t\tskinTime: 0,\n\t\t\tmorphTime: 0,\n\t\t\tinstancingTime: 0,\n\t\t\t// deprecated\n\t\t\ttriangles: 0,\n\t\t\tgsplats: 0,\n\t\t\tgsplatSort: 0,\n\t\t\tgsplatBufferCopy: 0,\n\t\t\totherPrimitives: 0,\n\t\t\tshaders: 0,\n\t\t\tmaterials: 0,\n\t\t\tcameras: 0,\n\t\t\tshadowMapUpdates: 0,\n\t\t\tshadowMapTime: 0,\n\t\t\tdepthMapTime: 0,\n\t\t\t// deprecated\n\t\t\tforwardTime: 0,\n\t\t\tlightClustersTime: 0,\n\t\t\tlightClusters: 0,\n\t\t\t_timeToCountFrames: 0,\n\t\t\t_fpsAccum: 0\n\t\t};\n\t\tthis.drawCalls = {\n\t\t\tforward: 0,\n\t\t\tdepth: 0,\n\t\t\t// deprecated\n\t\t\tshadow: 0,\n\t\t\timmediate: 0,\n\t\t\t// deprecated\n\t\t\tmisc: 0,\n\t\t\t// everything that is not forward/depth/shadow (post effect quads etc)\n\t\t\ttotal: 0,\n\t\t\t// total = forward + depth + shadow + misc\n\t\t\t// Some of forward/depth/shadow/misc draw calls:\n\t\t\tskinned: 0,\n\t\t\tinstanced: 0,\n\t\t\t// deprecated\n\t\t\tremovedByInstancing: 0\n\t\t\t// deprecated\n\t\t};\n\t\tthis.misc = {\n\t\t\trenderTargetCreationTime: 0\n\t\t};\n\t\tthis.particles = {\n\t\t\tupdatesPerFrame: 0,\n\t\t\t_updatesPerFrame: 0,\n\t\t\tframeTime: 0,\n\t\t\t_frameTime: 0\n\t\t};\n\t\tthis.shaders = device._shaderStats;\n\t\tthis.vram = device._vram;\n\t\tthis.gpu = device.gpuProfiler?.passTimings ?? /* @__PURE__ */ new Map();\n\t\tObject.defineProperty(this.vram, \"totalUsed\", {\n\t\t\tget: function() {\n\t\t\t\treturn this.tex + this.vb + this.ib + this.ub + this.sb;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(this.vram, \"geom\", {\n\t\t\tget: function() {\n\t\t\t\treturn this.vb + this.ib;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(this.vram, \"buffers\", {\n\t\t\tget: function() {\n\t\t\t\treturn this.ub + this.sb;\n\t\t\t}\n\t\t});\n\t}\n\tget scene() {\n\t\treturn this._app.scene._stats;\n\t}\n\tget lightmapper() {\n\t\treturn this._app.lightmapper?.stats;\n\t}\n\tget batcher() {\n\t\tconst batcher = this._app._batcher;\n\t\treturn batcher ? batcher._stats : null;\n\t}\n\tupdateBasic(now2, dt, ms, renderer, device) {\n\t\tconst stats = this.frame;\n\t\tstats.dt = dt;\n\t\tstats.ms = ms;\n\t\tif (now2 > stats._timeToCountFrames) {\n\t\t\tstats.fps = stats._fpsAccum;\n\t\t\tstats._fpsAccum = 0;\n\t\t\tstats._timeToCountFrames = now2 + 1e3;\n\t\t} else {\n\t\t\tstats._fpsAccum++;\n\t\t}\n\t\tthis.drawCalls.total = device._drawCallsPerFrame;\n\t\tdevice._drawCallsPerFrame = 0;\n\t\tstats.gsplats = renderer._gsplatCount;\n\t\tstats.gsplatBufferCopy = renderer._gsplatBufferCopy ?? 0;\n\t}\n\tupdateDetailed(renderer, device) {\n\t\tlet stats = this.frame;\n\t\tstats.cameras = renderer._camerasRendered;\n\t\tstats.materials = renderer._materialSwitches;\n\t\tstats.shaders = device._shaderSwitchesPerFrame;\n\t\tstats.shadowMapUpdates = renderer._shadowMapUpdates;\n\t\tstats.shadowMapTime = renderer._shadowMapTime;\n\t\tstats.depthMapTime = renderer._depthMapTime;\n\t\tstats.forwardTime = renderer._forwardTime;\n\t\tconst prims = device._primsPerFrame;\n\t\tstats.triangles = prims[PRIMITIVE_TRIANGLES] / 3 + Math.max(prims[PRIMITIVE_TRISTRIP] - 2, 0) + Math.max(prims[PRIMITIVE_TRIFAN] - 2, 0);\n\t\tstats.cullTime = renderer._cullTime;\n\t\tstats.sortTime = renderer._sortTime;\n\t\tstats.skinTime = renderer._skinTime;\n\t\tstats.morphTime = renderer._morphTime;\n\t\tstats.lightClusters = renderer._lightClusters;\n\t\tstats.lightClustersTime = renderer._lightClustersTime;\n\t\tstats.otherPrimitives = 0;\n\t\tfor (let i2 = 0; i2 < prims.length; i2++) {\n\t\t\tif (i2 < PRIMITIVE_TRIANGLES) {\n\t\t\t\tstats.otherPrimitives += prims[i2];\n\t\t\t}\n\t\t\tprims[i2] = 0;\n\t\t}\n\t\trenderer._camerasRendered = 0;\n\t\trenderer._materialSwitches = 0;\n\t\trenderer._shadowMapUpdates = 0;\n\t\tdevice._shaderSwitchesPerFrame = 0;\n\t\trenderer._cullTime = 0;\n\t\trenderer._layerCompositionUpdateTime = 0;\n\t\trenderer._lightClustersTime = 0;\n\t\trenderer._sortTime = 0;\n\t\trenderer._skinTime = 0;\n\t\trenderer._morphTime = 0;\n\t\trenderer._shadowMapTime = 0;\n\t\trenderer._depthMapTime = 0;\n\t\trenderer._forwardTime = 0;\n\t\tstats = this.drawCalls;\n\t\tstats.forward = renderer._forwardDrawCalls;\n\t\tstats.culled = renderer._numDrawCallsCulled;\n\t\tstats.depth = 0;\n\t\tstats.shadow = renderer._shadowDrawCalls;\n\t\tstats.skinned = renderer._skinDrawCalls;\n\t\tstats.immediate = 0;\n\t\tstats.instanced = 0;\n\t\tstats.removedByInstancing = 0;\n\t\tstats.misc = stats.total - (stats.forward + stats.shadow);\n\t\trenderer._depthDrawCalls = 0;\n\t\trenderer._shadowDrawCalls = 0;\n\t\trenderer._forwardDrawCalls = 0;\n\t\trenderer._numDrawCallsCulled = 0;\n\t\trenderer._skinDrawCalls = 0;\n\t\trenderer._immediateRendered = 0;\n\t\trenderer._instancedDrawCalls = 0;\n\t\tthis.misc.renderTargetCreationTime = device.renderTargetCreationTime;\n\t\tstats = this.particles;\n\t\tstats.updatesPerFrame = stats._updatesPerFrame;\n\t\tstats.frameTime = stats._frameTime;\n\t\tstats._updatesPerFrame = 0;\n\t\tstats._frameTime = 0;\n\t}\n\tframeEnd() {\n\t\tthis.frame.gsplatSort = 0;\n\t}\n};\n\nvar alphaTest_default = `\nuniform float alpha_ref;\nvoid alphaTest(float a) {\n\tif (a < alpha_ref) discard;\n}\n`;\n\nvar ambient_default = `\n#ifdef LIT_AMBIENT_SOURCE == AMBIENTSH\n\tuniform vec3 ambientSH[9];\n#endif\n#if LIT_AMBIENT_SOURCE == ENVALATLAS\n\t#include \"envAtlasPS\"\n\t#ifndef ENV_ATLAS\n\t#define ENV_ATLAS\n\t\tuniform sampler2D texture_envAtlas;\n\t#endif\n#endif\nvoid addAmbient(vec3 worldNormal) {\n\t#ifdef LIT_AMBIENT_SOURCE == AMBIENTSH\n\t\tvec3 n = cubeMapRotate(worldNormal);\n\t\tvec3 color =\n\t\t\tambientSH[0] +\n\t\t\tambientSH[1] * n.x +\n\t\t\tambientSH[2] * n.y +\n\t\t\tambientSH[3] * n.z +\n\t\t\tambientSH[4] * n.x * n.z +\n\t\t\tambientSH[5] * n.z * n.y +\n\t\t\tambientSH[6] * n.y * n.x +\n\t\t\tambientSH[7] * (3.0 * n.z * n.z - 1.0) +\n\t\t\tambientSH[8] * (n.x * n.x - n.y * n.y);\n\t\tdDiffuseLight += processEnvironment(max(color, vec3(0.0)));\n\t#endif\n\t#if LIT_AMBIENT_SOURCE == ENVALATLAS\n\t\tvec3 dir = normalize(cubeMapRotate(worldNormal) * vec3(-1.0, 1.0, 1.0));\n\t\tvec2 uv = mapUv(toSphericalUv(dir), vec4(128.0, 256.0 + 128.0, 64.0, 32.0) / atlasSize);\n\t\tvec4 raw = texture2D(texture_envAtlas, uv);\n\t\tvec3 linear = {ambientDecode}(raw);\n\t\tdDiffuseLight += processEnvironment(linear);\n\t#endif\n\t#if LIT_AMBIENT_SOURCE == CONSTANT\n\t\tdDiffuseLight += light_globalAmbient;\n\t#endif\n}\n`;\n\nvar anisotropy_default = `\n#ifdef LIT_GGX_SPECULAR\n\tuniform float material_anisotropyIntensity;\n\tuniform vec2 material_anisotropyRotation;\n#endif\nvoid getAnisotropy() {\n\tdAnisotropy = 0.0;\n\tdAnisotropyRotation = vec2(1.0, 0.0);\n#ifdef LIT_GGX_SPECULAR\n\tdAnisotropy = material_anisotropyIntensity;\n\tdAnisotropyRotation = material_anisotropyRotation;\n#endif\n\t#ifdef STD_ANISOTROPY_TEXTURE\n\tvec3 anisotropyTex = texture2DBias({STD_ANISOTROPY_TEXTURE_NAME}, {STD_ANISOTROPY_TEXTURE_UV}, textureBias).rgb;\n\tdAnisotropy *= anisotropyTex.b;\n\tvec2 anisotropyRotationFromTex = anisotropyTex.rg * 2.0 - vec2(1.0);\n\tmat2 rotationMatrix = mat2(dAnisotropyRotation.x, dAnisotropyRotation.y, -dAnisotropyRotation.y, dAnisotropyRotation.x);\n\tdAnisotropyRotation = rotationMatrix * anisotropyRotationFromTex;\n\t#endif\n\t\n\tdAnisotropy = clamp(dAnisotropy, 0.0, 1.0);\n}\n`;\n\nvar ao_default = `\n#if defined(STD_AO_TEXTURE) || defined(STD_AO_VERTEX)\n\tuniform float material_aoIntensity;\n#endif\n#ifdef STD_AODETAIL_TEXTURE\n\t#include \"detailModesPS\"\n#endif\nvoid getAO() {\n\tdAo = 1.0;\n\t#ifdef STD_AO_TEXTURE\n\t\tfloat aoBase = texture2DBias({STD_AO_TEXTURE_NAME}, {STD_AO_TEXTURE_UV}, textureBias).{STD_AO_TEXTURE_CHANNEL};\n\t\t#ifdef STD_AODETAIL_TEXTURE\n\t\t\tfloat aoDetail = texture2DBias({STD_AODETAIL_TEXTURE_NAME}, {STD_AODETAIL_TEXTURE_UV}, textureBias).{STD_AODETAIL_TEXTURE_CHANNEL};\n\t\t\taoBase = detailMode_{STD_AODETAIL_DETAILMODE}(vec3(aoBase), vec3(aoDetail)).r;\n\t\t#endif\n\t\tdAo *= aoBase;\n\t#endif\n\t#ifdef STD_AO_VERTEX\n\t\tdAo *= saturate(vVertexColor.{STD_AO_VERTEX_CHANNEL});\n\t#endif\n\t#if defined(STD_AO_TEXTURE) || defined(STD_AO_VERTEX)\n\t\tdAo = mix(1.0, dAo, material_aoIntensity);\n\t#endif\n}\n`;\n\nvar aoDiffuseOcc_default = `\nvoid occludeDiffuse(float ao) {\n\tdDiffuseLight *= ao;\n}\n`;\n\nvar aoSpecOcc_default = `\n#if LIT_OCCLUDE_SPECULAR != NONE\n\t#ifdef LIT_OCCLUDE_SPECULAR_FLOAT\n\t\tuniform float material_occludeSpecularIntensity;\n\t#endif\n#endif\nvoid occludeSpecular(float gloss, float ao, vec3 worldNormal, vec3 viewDir) {\n\t#if LIT_OCCLUDE_SPECULAR == AO\n\t\t#ifdef LIT_OCCLUDE_SPECULAR_FLOAT\n\t\t\tfloat specOcc = mix(1.0, ao, material_occludeSpecularIntensity);\n\t\t#else\n\t\t\tfloat specOcc = ao;\n\t\t#endif\n\t#endif\n\t#if LIT_OCCLUDE_SPECULAR == GLOSSDEPENDENT\n\t\tfloat specPow = exp2(gloss * 11.0);\n\t\tfloat specOcc = saturate(pow(dot(worldNormal, viewDir) + ao, 0.01 * specPow) - 1.0 + ao);\n\t\t#ifdef LIT_OCCLUDE_SPECULAR_FLOAT\n\t\t\tspecOcc = mix(1.0, specOcc, material_occludeSpecularIntensity);\n\t\t#endif\n\t#endif\n\t#if LIT_OCCLUDE_SPECULAR != NONE\n\t\tdSpecularLight *= specOcc;\n\t\tdReflection *= specOcc;\n\t\t#ifdef LIT_SHEEN\n\t\t\tsSpecularLight *= specOcc;\n\t\t\tsReflection *= specOcc;\n\t\t#endif\n\t#endif\n}\n`;\n\nvar bakeDirLmEnd_default = `\n\tvec4 dirLm = texture2D(texture_dirLightMap, vUv1);\n\tif (bakeDir > 0.5) {\n\t\tif (dAtten > 0.00001) {\n\t\t\tdirLm.xyz = dirLm.xyz * 2.0 - vec3(1.0);\n\t\t\tdAtten = saturate(dAtten);\n\t\t\tgl_FragColor.rgb = normalize(dLightDirNormW.xyz*dAtten + dirLm.xyz*dirLm.w) * 0.5 + vec3(0.5);\n\t\t\tgl_FragColor.a = dirLm.w + dAtten;\n\t\t\tgl_FragColor.a = max(gl_FragColor.a, 1.0 / 255.0);\n\t\t} else {\n\t\t\tgl_FragColor = dirLm;\n\t\t}\n\t} else {\n\t\tgl_FragColor.rgb = dirLm.xyz;\n\t\tgl_FragColor.a = max(dirLm.w, dAtten > 0.00001 ? (1.0/255.0) : 0.0);\n\t}\n`;\n\nvar bakeLmEnd_default = `\n#ifdef LIT_LIGHTMAP_BAKING_ADD_AMBIENT\n\tdDiffuseLight = ((dDiffuseLight - 0.5) * max(ambientBakeOcclusionContrast + 1.0, 0.0)) + 0.5;\n\tdDiffuseLight += vec3(ambientBakeOcclusionBrightness);\n\tdDiffuseLight = saturate(dDiffuseLight);\n\tdDiffuseLight *= dAmbientLight;\n#endif\n#ifdef LIGHTMAP_RGBM\n\tgl_FragColor.rgb = dDiffuseLight;\n\tgl_FragColor.rgb = pow(gl_FragColor.rgb, vec3(0.5));\n\tgl_FragColor.rgb /= 8.0;\n\tgl_FragColor.a = clamp( max( max( gl_FragColor.r, gl_FragColor.g ), max( gl_FragColor.b, 1.0 / 255.0 ) ), 0.0,1.0 );\n\tgl_FragColor.a = ceil(gl_FragColor.a * 255.0) / 255.0;\n\tgl_FragColor.rgb /= gl_FragColor.a;\n#else\n\tgl_FragColor = vec4(dDiffuseLight, 1.0);\n#endif\n`;\n\nvar base_default = `\nuniform vec3 view_position;\nuniform vec3 light_globalAmbient;\nfloat square(float x) {\n\treturn x*x;\n}\nfloat saturate(float x) {\n\treturn clamp(x, 0.0, 1.0);\n}\nvec3 saturate(vec3 x) {\n\treturn clamp(x, vec3(0.0), vec3(1.0));\n}\n`;\n\nvar baseNineSliced_default = `\n#define NINESLICED\nvarying vec2 vMask;\nvarying vec2 vTiledUv;\nuniform mediump vec4 innerOffset;\nuniform mediump vec2 outerScale;\nuniform mediump vec4 atlasRect;\nvec2 nineSlicedUv;\n`;\n\nvar baseNineSlicedTiled_default = `\n#define NINESLICED\n#define NINESLICETILED\nvarying vec2 vMask;\nvarying vec2 vTiledUv;\nuniform mediump vec4 innerOffset;\nuniform mediump vec2 outerScale;\nuniform mediump vec4 atlasRect;\nvec2 nineSlicedUv;\n`;\n\nvar bayer_default = `\nfloat bayer2(vec2 p) {\n\treturn mod(2.0 * p.y + p.x + 1.0, 4.0);\n}\nfloat bayer4(vec2 p) {\n\tvec2 p1 = mod(p, 2.0);\n\tvec2 p2 = floor(0.5 * mod(p, 4.0));\n\treturn 4.0 * bayer2(p1) + bayer2(p2);\n}\nfloat bayer8(vec2 p) {\n\tvec2 p1 = mod(p, 2.0);\n\tvec2 p2 = floor(0.5 * mod(p, 4.0));\n\tvec2 p4 = floor(0.25 * mod(p, 8.0));\n\treturn 4.0 * (4.0 * bayer2(p1) + bayer2(p2)) + bayer2(p4);\n}\nfloat bayer16(vec2 p) {\n\tvec2 p1 = mod(p, 2.0);\n\tvec2 p2 = floor(0.5 * mod(p, 4.0));\n\tvec2 p4 = floor(0.25 * mod(p, 8.0));\n\tvec2 p8 = floor(0.125 * mod(p, 16.0));\n\treturn 4.0 * (4.0 * (4.0 * bayer2(p1) + bayer2(p2)) + bayer2(p4)) + bayer2(p8);\n}\n`;\n\nvar blurVSM_default = `\nvarying vec2 vUv0;\nuniform sampler2D source;\nuniform vec2 pixelOffset;\n#ifdef GAUSS\n\tuniform float weight[{SAMPLES}];\n#endif\nvoid main(void) {\n\tvec3 moments = vec3(0.0);\n\tvec2 uv = vUv0 - pixelOffset * (float({SAMPLES}) * 0.5);\n\tfor (int i = 0; i < {SAMPLES}; i++) {\n\t\tvec4 c = texture2D(source, uv + pixelOffset * float(i));\n\t\t#ifdef GAUSS\n\t\t\tmoments += c.xyz * weight[i];\n\t\t#else\n\t\t\tmoments += c.xyz;\n\t\t#endif\n\t}\n\t#ifndef GAUSS\n\t\tmoments *= 1.0 / float({SAMPLES});\n\t#endif\n\tgl_FragColor = vec4(moments.x, moments.y, moments.z, 1.0);\n}\n`;\n\nvar clearCoat_default = `\nuniform float material_clearCoat;\nvoid getClearCoat() {\n\tccSpecularity = material_clearCoat;\n\t#ifdef STD_CLEARCOAT_TEXTURE\n\tccSpecularity *= texture2DBias({STD_CLEARCOAT_TEXTURE_NAME}, {STD_CLEARCOAT_TEXTURE_UV}, textureBias).{STD_CLEARCOAT_TEXTURE_CHANNEL};\n\t#endif\n\t#ifdef STD_CLEARCOAT_VERTEX\n\tccSpecularity *= saturate(vVertexColor.{STD_CLEARCOAT_VERTEX_CHANNEL});\n\t#endif\n}\n`;\n\nvar clearCoatGloss_default = `\nuniform float material_clearCoatGloss;\nvoid getClearCoatGlossiness() {\n\tccGlossiness = material_clearCoatGloss;\n\t#ifdef STD_CLEARCOATGLOSS_TEXTURE\n\tccGlossiness *= texture2DBias({STD_CLEARCOATGLOSS_TEXTURE_NAME}, {STD_CLEARCOATGLOSS_TEXTURE_UV}, textureBias).{STD_CLEARCOATGLOSS_TEXTURE_CHANNEL};\n\t#endif\n\t#ifdef STD_CLEARCOATGLOSS_VERTEX\n\tccGlossiness *= saturate(vVertexColor.{STD_CLEARCOATGLOSS_VERTEX_CHANNEL});\n\t#endif\n\t#ifdef STD_CLEARCOATGLOSS_INVERT\n\tccGlossiness = 1.0 - ccGlossiness;\n\t#endif\n\tccGlossiness += 0.0000001;\n}\n`;\n\nvar clearCoatNormal_default = `\n#ifdef STD_CLEARCOATNORMAL_TEXTURE\nuniform float material_clearCoatBumpiness;\n#endif\nvoid getClearCoatNormal() {\n#ifdef STD_CLEARCOATNORMAL_TEXTURE\n\tvec3 normalMap = {STD_CLEARCOATNORMAL_TEXTURE_DECODE}(texture2DBias({STD_CLEARCOATNORMAL_TEXTURE_NAME}, {STD_CLEARCOATNORMAL_TEXTURE_UV}, textureBias));\n\tnormalMap = mix(vec3(0.0, 0.0, 1.0), normalMap, material_clearCoatBumpiness);\n\tccNormalW = normalize(dTBN * normalMap);\n#else\n\tccNormalW = dVertexNormalW;\n#endif\n}\n`;\n\nvar clusteredLightUtils_default = `\nvec2 getCubemapFaceCoordinates(const vec3 dir, out float faceIndex, out vec2 tileOffset)\n{\n\tvec3 vAbs = abs(dir);\n\tfloat ma;\n\tvec2 uv;\n\tif (vAbs.z >= vAbs.x && vAbs.z >= vAbs.y) {\n\t\tfaceIndex = dir.z < 0.0 ? 5.0 : 4.0;\n\t\tma = 0.5 / vAbs.z;\n\t\tuv = vec2(dir.z < 0.0 ? -dir.x : dir.x, -dir.y);\n\t\ttileOffset.x = 2.0;\n\t\ttileOffset.y = dir.z < 0.0 ? 1.0 : 0.0;\n\t} else if(vAbs.y >= vAbs.x) {\n\t\tfaceIndex = dir.y < 0.0 ? 3.0 : 2.0;\n\t\tma = 0.5 / vAbs.y;\n\t\tuv = vec2(dir.x, dir.y < 0.0 ? -dir.z : dir.z);\n\t\ttileOffset.x = 1.0;\n\t\ttileOffset.y = dir.y < 0.0 ? 1.0 : 0.0;\n\t} else {\n\t\tfaceIndex = dir.x < 0.0 ? 1.0 : 0.0;\n\t\tma = 0.5 / vAbs.x;\n\t\tuv = vec2(dir.x < 0.0 ? dir.z : -dir.z, -dir.y);\n\t\ttileOffset.x = 0.0;\n\t\ttileOffset.y = dir.x < 0.0 ? 1.0 : 0.0;\n\t}\n\treturn uv * ma + 0.5;\n}\nvec2 getCubemapAtlasCoordinates(const vec3 omniAtlasViewport, float shadowEdgePixels, float shadowTextureResolution, const vec3 dir) {\n\tfloat faceIndex;\n\tvec2 tileOffset;\n\tvec2 uv = getCubemapFaceCoordinates(dir, faceIndex, tileOffset);\n\tfloat atlasFaceSize = omniAtlasViewport.z;\n\tfloat tileSize = shadowTextureResolution * atlasFaceSize;\n\tfloat offset = shadowEdgePixels / tileSize;\n\tuv = uv * vec2(1.0 - offset * 2.0) + vec2(offset * 1.0);\n\tuv *= atlasFaceSize;\n\tuv += tileOffset * atlasFaceSize;\n\tuv += omniAtlasViewport.xy;\n\treturn uv;\n}\n`;\n\nvar clusteredLightCookies_default = `\nvec3 _getCookieClustered(TEXTURE_ACCEPT(tex), vec2 uv, float intensity, vec4 cookieChannel) {\n\tvec4 pixel = mix(vec4(1.0), texture2DLod(tex, uv, 0.0), intensity);\n\tbool isRgb = dot(cookieChannel.rgb, vec3(1.0)) == 3.0;\n\treturn isRgb ? pixel.rgb : vec3(dot(pixel, cookieChannel));\n}\nvec3 getCookie2DClustered(TEXTURE_ACCEPT(tex), mat4 transform, vec3 worldPosition, float intensity, vec4 cookieChannel) {\n\tvec4 projPos = transform * vec4(worldPosition, 1.0);\n\treturn _getCookieClustered(TEXTURE_PASS(tex), projPos.xy / projPos.w, intensity, cookieChannel);\n}\nvec3 getCookieCubeClustered(TEXTURE_ACCEPT(tex), vec3 dir, float intensity, vec4 cookieChannel, float shadowTextureResolution, float shadowEdgePixels, vec3 omniAtlasViewport) {\n\tvec2 uv = getCubemapAtlasCoordinates(omniAtlasViewport, shadowEdgePixels, shadowTextureResolution, dir);\n\treturn _getCookieClustered(TEXTURE_PASS(tex), uv, intensity, cookieChannel);\n}\n`;\n\nvar clusteredLightShadows_default = `\nvec3 _getShadowCoordPerspZbuffer(mat4 shadowMatrix, vec4 shadowParams, vec3 wPos) {\n\tvec4 projPos = shadowMatrix * vec4(wPos, 1.0);\n\tprojPos.xyz /= projPos.w;\n\treturn projPos.xyz;\n}\nvec3 getShadowCoordPerspZbufferNormalOffset(mat4 shadowMatrix, vec4 shadowParams, vec3 normal) {\n\tvec3 wPos = vPositionW + normal * shadowParams.y;\n\treturn _getShadowCoordPerspZbuffer(shadowMatrix, shadowParams, wPos);\n}\nvec3 normalOffsetPointShadow(vec4 shadowParams, vec3 lightPos, vec3 lightDir, vec3 lightDirNorm, vec3 normal) {\n\tfloat distScale = length(lightDir);\n\tvec3 wPos = vPositionW + normal * shadowParams.y * clamp(1.0 - dot(normal, -lightDirNorm), 0.0, 1.0) * distScale;\n\tvec3 dir = wPos - lightPos;\n\treturn dir;\n}\n#if defined(CLUSTER_SHADOW_TYPE_PCF1)\nfloat getShadowOmniClusteredPCF1(SHADOWMAP_ACCEPT(shadowMap), vec4 shadowParams, vec3 omniAtlasViewport, float shadowEdgePixels, vec3 lightDir) {\n\tfloat shadowTextureResolution = shadowParams.x;\n\tvec2 uv = getCubemapAtlasCoordinates(omniAtlasViewport, shadowEdgePixels, shadowTextureResolution, lightDir);\n\tfloat shadowZ = length(lightDir) * shadowParams.w + shadowParams.z;\n\treturn textureShadow(shadowMap, vec3(uv, shadowZ));\n}\n#endif\n#if defined(CLUSTER_SHADOW_TYPE_PCF3)\nfloat getShadowOmniClusteredPCF3(SHADOWMAP_ACCEPT(shadowMap), vec4 shadowParams, vec3 omniAtlasViewport, float shadowEdgePixels, vec3 lightDir) {\n\tfloat shadowTextureResolution = shadowParams.x;\n\tvec2 uv = getCubemapAtlasCoordinates(omniAtlasViewport, shadowEdgePixels, shadowTextureResolution, lightDir);\n\tfloat shadowZ = length(lightDir) * shadowParams.w + shadowParams.z;\n\tvec3 shadowCoord = vec3(uv, shadowZ);\n\treturn getShadowPCF3x3(SHADOWMAP_PASS(shadowMap), shadowCoord, shadowParams);\n}\n#endif\n#if defined(CLUSTER_SHADOW_TYPE_PCF5)\nfloat getShadowOmniClusteredPCF5(SHADOWMAP_ACCEPT(shadowMap), vec4 shadowParams, vec3 omniAtlasViewport, float shadowEdgePixels, vec3 lightDir) {\n\tfloat shadowTextureResolution = shadowParams.x;\n\tvec2 uv = getCubemapAtlasCoordinates(omniAtlasViewport, shadowEdgePixels, shadowTextureResolution, lightDir);\n\tfloat shadowZ = length(lightDir) * shadowParams.w + shadowParams.z;\n\tvec3 shadowCoord = vec3(uv, shadowZ);\n\treturn getShadowPCF5x5(SHADOWMAP_PASS(shadowMap), shadowCoord, shadowParams);\n}\n#endif\n#if defined(CLUSTER_SHADOW_TYPE_PCF1)\nfloat getShadowSpotClusteredPCF1(SHADOWMAP_ACCEPT(shadowMap), vec3 shadowCoord, vec4 shadowParams) {\n\treturn textureShadow(shadowMap, shadowCoord);\n}\n#endif\n#if defined(CLUSTER_SHADOW_TYPE_PCF3)\nfloat getShadowSpotClusteredPCF3(SHADOWMAP_ACCEPT(shadowMap), vec3 shadowCoord, vec4 shadowParams) {\n\treturn getShadowSpotPCF3x3(SHADOWMAP_PASS(shadowMap), shadowCoord, shadowParams);\n}\n#endif\n#if defined(CLUSTER_SHADOW_TYPE_PCF5)\nfloat getShadowSpotClusteredPCF5(SHADOWMAP_ACCEPT(shadowMap), vec3 shadowCoord, vec4 shadowParams) {\n\treturn getShadowPCF5x5(SHADOWMAP_PASS(shadowMap), shadowCoord, shadowParams);\n}\n#endif\n`;\n\nvar clusteredLight_default = `\n#include \"lightBufferDefinesPS\"\n#include \"clusteredLightUtilsPS\"\n#ifdef CLUSTER_COOKIES\n\t#include \"clusteredLightCookiesPS\"\n#endif\n#ifdef CLUSTER_SHADOWS\n\t#include \"clusteredLightShadowsPS\"\n#endif\nuniform highp usampler2D clusterWorldTexture;\nuniform highp sampler2D lightsTexture;\n#ifdef CLUSTER_SHADOWS\n\tuniform sampler2DShadow shadowAtlasTexture;\n#endif\n#ifdef CLUSTER_COOKIES\n\tuniform sampler2D cookieAtlasTexture;\n#endif\nuniform int clusterMaxCells;\nuniform int numClusteredLights;\nuniform int clusterTextureWidth;\nuniform vec3 clusterCellsCountByBoundsSize;\nuniform vec3 clusterBoundsMin;\nuniform vec3 clusterBoundsDelta;\nuniform ivec3 clusterCellsDot;\nuniform ivec3 clusterCellsMax;\nuniform vec2 shadowAtlasParams;\nstruct ClusterLightData {\n\tvec3 position;\n\tint lightIndex;\n\tvec3 direction;\n\tuint shape;\n\tvec3 color;\n\tfloat shadowIntensity;\n\tfloat range;\n\tfloat biasesData;\n\tfloat cookieIntensity;\n\tbool isSpot;\n\tbool falloffModeLinear;\n\tbool isDynamic;\n\tbool isLightmapped;\n};\nstruct ClusterLightSpotData {\n\tfloat innerConeAngleCos;\n\tfloat outerConeAngleCos;\n};\nstruct ClusterLightAreaData {\n\tvec3 halfWidth;\n\tvec3 halfHeight;\n};\nstruct ClusterLightShadowData {\n\tfloat shadowBias;\n\tfloat shadowNormalBias;\n};\nmat4 lightProjectionMatrix;\nuint clusterLightData_flags;\nfloat clusterLightData_anglesData;\nuint clusterLightData_colorBFlagsData;\nvec4 sampleLightTextureF(int lightIndex, int index) {\n\treturn texelFetch(lightsTexture, ivec2(index, lightIndex), 0);\n}\nClusterLightData decodeClusterLightCore(int lightIndex) {\n\tClusterLightData clusterLightData;\n\tclusterLightData.lightIndex = lightIndex;\n\tvec4 halfData = sampleLightTextureF(lightIndex, {CLUSTER_TEXTURE_COLOR_ANGLES_BIAS});\n\tclusterLightData_anglesData = halfData.z;\n\tclusterLightData.biasesData = halfData.w;\n\tclusterLightData_colorBFlagsData = floatBitsToUint(halfData.y);\n\tvec2 colorRG = unpackHalf2x16(floatBitsToUint(halfData.x));\n\tvec2 colorB_flags = unpackHalf2x16(clusterLightData_colorBFlagsData);\n\tclusterLightData.color = vec3(colorRG, colorB_flags.x) * {LIGHT_COLOR_DIVIDER};\n\tvec4 lightPosRange = sampleLightTextureF(lightIndex, {CLUSTER_TEXTURE_POSITION_RANGE});\n\tclusterLightData.position = lightPosRange.xyz;\n\tclusterLightData.range = lightPosRange.w;\n\tvec4 lightDir_Flags = sampleLightTextureF(lightIndex, {CLUSTER_TEXTURE_DIRECTION_FLAGS});\n\tclusterLightData.direction = lightDir_Flags.xyz;\n\tclusterLightData_flags = floatBitsToUint(lightDir_Flags.w);\n\tclusterLightData.isSpot = (clusterLightData_flags & (1u << 30u)) != 0u;\n\tclusterLightData.shape = (clusterLightData_flags >> 28u) & 0x3u;\n\tclusterLightData.falloffModeLinear = (clusterLightData_flags & (1u << 27u)) == 0u;\n\tclusterLightData.shadowIntensity = float((clusterLightData_flags >> 0u) & 0xFFu) / 255.0;\n\tclusterLightData.cookieIntensity = float((clusterLightData_flags >> 8u) & 0xFFu) / 255.0;\n\tclusterLightData.isDynamic = (clusterLightData_flags & (1u << 22u)) != 0u;\n\tclusterLightData.isLightmapped = (clusterLightData_flags & (1u << 21u)) != 0u;\n\treturn clusterLightData;\n}\nClusterLightSpotData decodeClusterLightSpot() {\n\tuint angleFlags = (clusterLightData_colorBFlagsData >> 16u) & 0xFFFFu;\n\tvec2 angleValues = unpackHalf2x16(floatBitsToUint(clusterLightData_anglesData));\n\tfloat innerVal = angleValues.x;\n\tfloat outerVal = angleValues.y;\n\tfloat innerIsVersine = float(angleFlags & 1u);\n\tfloat outerIsVersine = float((angleFlags >> 1u) & 1u);\n\treturn ClusterLightSpotData(\n\t\tmix(innerVal, 1.0 - innerVal, innerIsVersine),\n\t\tmix(outerVal, 1.0 - outerVal, outerIsVersine)\n\t);\n}\nvec3 decodeClusterLightOmniAtlasViewport(int lightIndex) {\n\treturn sampleLightTextureF(lightIndex, {CLUSTER_TEXTURE_PROJ_MAT_0}).xyz;\n}\nClusterLightAreaData decodeClusterLightAreaData(int lightIndex) {\n\treturn ClusterLightAreaData(\n\t\tsampleLightTextureF(lightIndex, {CLUSTER_TEXTURE_AREA_DATA_WIDTH}).xyz,\n\t\tsampleLightTextureF(lightIndex, {CLUSTER_TEXTURE_AREA_DATA_HEIGHT}).xyz\n\t);\n}\nmat4 decodeClusterLightProjectionMatrixData(int lightIndex) {\n\tvec4 m0 = sampleLightTextureF(lightIndex, {CLUSTER_TEXTURE_PROJ_MAT_0});\n\tvec4 m1 = sampleLightTextureF(lightIndex, {CLUSTER_TEXTURE_PROJ_MAT_1});\n\tvec4 m2 = sampleLightTextureF(lightIndex, {CLUSTER_TEXTURE_PROJ_MAT_2});\n\tvec4 m3 = sampleLightTextureF(lightIndex, {CLUSTER_TEXTURE_PROJ_MAT_3});\n\treturn mat4(m0, m1, m2, m3);\n}\nClusterLightShadowData decodeClusterLightShadowData(float biasesData) {\n\tvec2 biases = unpackHalf2x16(floatBitsToUint(biasesData));\n\treturn ClusterLightShadowData(biases.x, biases.y);\n}\nvec4 decodeClusterLightCookieData() {\n\tuint cookieFlags = (clusterLightData_flags >> 23u) & 0x0Fu;\n\tvec4 mask = vec4(uvec4(cookieFlags) & uvec4(1u, 2u, 4u, 8u));\n\treturn step(1.0, mask);\n}\nvoid evaluateLight(\n\tClusterLightData light, \n\tvec3 worldNormal, \n\tvec3 viewDir, \n\tvec3 reflectionDir,\n#if defined(LIT_CLEARCOAT)\n\tvec3 clearcoatReflectionDir,\n#endif\n\tfloat gloss, \n\tvec3 specularity, \n\tvec3 geometricNormal, \n\tmat3 tbn, \n#if defined(LIT_IRIDESCENCE)\n\tvec3 iridescenceFresnel,\n#endif\n\tvec3 clearcoat_worldNormal,\n\tfloat clearcoat_gloss,\n\tfloat sheen_gloss,\n\tfloat iridescence_intensity\n) {\n\tvec3 cookieAttenuation = vec3(1.0);\n\tfloat diffuseAttenuation = 1.0;\n\tfloat falloffAttenuation = 1.0;\n\tvec3 lightDirW = evalOmniLight(light.position);\n\tvec3 lightDirNormW = normalize(lightDirW);\n\t#ifdef CLUSTER_AREALIGHTS\n\tif (light.shape != {LIGHTSHAPE_PUNCTUAL}) {\n\t\tClusterLightAreaData areaData = decodeClusterLightAreaData(light.lightIndex);\n\t\tif (light.shape == {LIGHTSHAPE_RECT}) {\n\t\t\tcalcRectLightValues(light.position, areaData.halfWidth, areaData.halfHeight);\n\t\t} else if (light.shape == {LIGHTSHAPE_DISK}) {\n\t\t\tcalcDiskLightValues(light.position, areaData.halfWidth, areaData.halfHeight);\n\t\t} else {\n\t\t\tcalcSphereLightValues(light.position, areaData.halfWidth, areaData.halfHeight);\n\t\t}\n\t\tfalloffAttenuation = getFalloffWindow(light.range, lightDirW);\n\t} else\n\t#endif\n\t{\n\t\tif (light.falloffModeLinear)\n\t\t\tfalloffAttenuation = getFalloffLinear(light.range, lightDirW);\n\t\telse\n\t\t\tfalloffAttenuation = getFalloffInvSquared(light.range, lightDirW);\n\t}\n\tif (falloffAttenuation > 0.00001) {\n\t\t#ifdef CLUSTER_AREALIGHTS\n\t\tif (light.shape != {LIGHTSHAPE_PUNCTUAL}) {\n\t\t\tif (light.shape == {LIGHTSHAPE_RECT}) {\n\t\t\t\tdiffuseAttenuation = getRectLightDiffuse(worldNormal, viewDir, lightDirW, lightDirNormW) * 16.0;\n\t\t\t} else if (light.shape == {LIGHTSHAPE_DISK}) {\n\t\t\t\tdiffuseAttenuation = getDiskLightDiffuse(worldNormal, viewDir, lightDirW, lightDirNormW) * 16.0;\n\t\t\t} else {\n\t\t\t\tdiffuseAttenuation = getSphereLightDiffuse(worldNormal, viewDir, lightDirW, lightDirNormW) * 16.0;\n\t\t\t}\n\t\t} else\n\t\t#endif\n\t\t{\n\t\t\tfalloffAttenuation *= getLightDiffuse(worldNormal, viewDir, lightDirNormW); \n\t\t}\n\t\tif (light.isSpot) {\n\t\t\tClusterLightSpotData spotData = decodeClusterLightSpot();\n\t\t\tfalloffAttenuation *= getSpotEffect(light.direction, spotData.innerConeAngleCos, spotData.outerConeAngleCos, lightDirNormW);\n\t\t}\n\t\t#if defined(CLUSTER_COOKIES) || defined(CLUSTER_SHADOWS)\n\t\tif (falloffAttenuation > 0.00001) {\n\t\t\tif (light.shadowIntensity > 0.0 || light.cookieIntensity > 0.0) {\n\t\t\t\tvec3 omniAtlasViewport = vec3(0.0);\n\t\t\t\tif (light.isSpot) {\n\t\t\t\t\tlightProjectionMatrix = decodeClusterLightProjectionMatrixData(light.lightIndex);\n\t\t\t\t} else {\n\t\t\t\t\tomniAtlasViewport = decodeClusterLightOmniAtlasViewport(light.lightIndex);\n\t\t\t\t}\n\t\t\t\tfloat shadowTextureResolution = shadowAtlasParams.x;\n\t\t\t\tfloat shadowEdgePixels = shadowAtlasParams.y;\n\t\t\t\t#ifdef CLUSTER_COOKIES\n\t\t\t\tif (light.cookieIntensity > 0.0) {\n\t\t\t\t\tvec4 cookieChannelMask = decodeClusterLightCookieData();\n\t\t\t\t\tif (light.isSpot) {\n\t\t\t\t\t\tcookieAttenuation = getCookie2DClustered(TEXTURE_PASS(cookieAtlasTexture), lightProjectionMatrix, vPositionW, light.cookieIntensity, cookieChannelMask);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcookieAttenuation = getCookieCubeClustered(TEXTURE_PASS(cookieAtlasTexture), lightDirW, light.cookieIntensity, cookieChannelMask, shadowTextureResolution, shadowEdgePixels, omniAtlasViewport);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t#endif\n\t\t\t\t#ifdef CLUSTER_SHADOWS\n\t\t\t\tif (light.shadowIntensity > 0.0) {\n\t\t\t\t\tClusterLightShadowData shadowData = decodeClusterLightShadowData(light.biasesData);\n\t\t\t\t\tvec4 shadowParams = vec4(shadowTextureResolution, shadowData.shadowNormalBias, shadowData.shadowBias, 1.0 / light.range);\n\t\t\t\t\tif (light.isSpot) {\n\t\t\t\t\t\tvec3 shadowCoord = getShadowCoordPerspZbufferNormalOffset(lightProjectionMatrix, shadowParams, geometricNormal);\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if defined(CLUSTER_SHADOW_TYPE_PCF1)\n\t\t\t\t\t\t\tfloat shadow = getShadowSpotClusteredPCF1(SHADOWMAP_PASS(shadowAtlasTexture), shadowCoord, shadowParams);\n\t\t\t\t\t\t#elif defined(CLUSTER_SHADOW_TYPE_PCF3)\n\t\t\t\t\t\t\tfloat shadow = getShadowSpotClusteredPCF3(SHADOWMAP_PASS(shadowAtlasTexture), shadowCoord, shadowParams);\n\t\t\t\t\t\t#elif defined(CLUSTER_SHADOW_TYPE_PCF5)\n\t\t\t\t\t\t\tfloat shadow = getShadowSpotClusteredPCF5(SHADOWMAP_PASS(shadowAtlasTexture), shadowCoord, shadowParams);\n\t\t\t\t\t\t#elif defined(CLUSTER_SHADOW_TYPE_PCSS)\n\t\t\t\t\t\t\tfloat shadow = getShadowSpotClusteredPCSS(SHADOWMAP_PASS(shadowAtlasTexture), shadowCoord, shadowParams);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\tfalloffAttenuation *= mix(1.0, shadow, light.shadowIntensity);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvec3 dir = normalOffsetPointShadow(shadowParams, light.position, lightDirW, lightDirNormW, geometricNormal);\n\t\t\t\t\t\t#if defined(CLUSTER_SHADOW_TYPE_PCF1)\n\t\t\t\t\t\t\tfloat shadow = getShadowOmniClusteredPCF1(SHADOWMAP_PASS(shadowAtlasTexture), shadowParams, omniAtlasViewport, shadowEdgePixels, dir);\n\t\t\t\t\t\t#elif defined(CLUSTER_SHADOW_TYPE_PCF3)\n\t\t\t\t\t\t\tfloat shadow = getShadowOmniClusteredPCF3(SHADOWMAP_PASS(shadowAtlasTexture), shadowParams, omniAtlasViewport, shadowEdgePixels, dir);\n\t\t\t\t\t\t#elif defined(CLUSTER_SHADOW_TYPE_PCF5)\n\t\t\t\t\t\t\tfloat shadow = getShadowOmniClusteredPCF5(SHADOWMAP_PASS(shadowAtlasTexture), shadowParams, omniAtlasViewport, shadowEdgePixels, dir);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\tfalloffAttenuation *= mix(1.0, shadow, light.shadowIntensity);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t#endif\n\t\t\t}\n\t\t}\n\t\t#endif\n\t\t#ifdef CLUSTER_AREALIGHTS\n\t\tif (light.shape != {LIGHTSHAPE_PUNCTUAL}) {\n\t\t\t{\n\t\t\t\tvec3 areaDiffuse = (diffuseAttenuation * falloffAttenuation) * light.color * cookieAttenuation;\n\t\t\t\t#if defined(LIT_SPECULAR)\n\t\t\t\t\tareaDiffuse = mix(areaDiffuse, vec3(0), dLTCSpecFres);\n\t\t\t\t#endif\n\t\t\t\tdDiffuseLight += areaDiffuse;\n\t\t\t}\n\t\t\t#ifdef LIT_SPECULAR\n\t\t\t\tfloat areaLightSpecular;\n\t\t\t\tif (light.shape == {LIGHTSHAPE_RECT}) {\n\t\t\t\t\tareaLightSpecular = getRectLightSpecular(worldNormal, viewDir);\n\t\t\t\t} else if (light.shape == {LIGHTSHAPE_DISK}) {\n\t\t\t\t\tareaLightSpecular = getDiskLightSpecular(worldNormal, viewDir);\n\t\t\t\t} else {\n\t\t\t\t\tareaLightSpecular = getSphereLightSpecular(worldNormal, viewDir);\n\t\t\t\t}\n\t\t\t\tdSpecularLight += dLTCSpecFres * areaLightSpecular * falloffAttenuation * light.color * cookieAttenuation;\n\t\t\t\t#ifdef LIT_CLEARCOAT\n\t\t\t\t\tfloat areaLightSpecularCC;\n\t\t\t\t\tif (light.shape == {LIGHTSHAPE_RECT}) {\n\t\t\t\t\t\tareaLightSpecularCC = getRectLightSpecular(clearcoat_worldNormal, viewDir);\n\t\t\t\t\t} else if (light.shape == {LIGHTSHAPE_DISK}) {\n\t\t\t\t\t\tareaLightSpecularCC = getDiskLightSpecular(clearcoat_worldNormal, viewDir);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tareaLightSpecularCC = getSphereLightSpecular(clearcoat_worldNormal, viewDir);\n\t\t\t\t\t}\n\t\t\t\t\tccSpecularLight += ccLTCSpecFres * areaLightSpecularCC * falloffAttenuation * light.color  * cookieAttenuation;\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t} else\n\t\t#endif\n\t\t{\n\t\t\t{\n\t\t\t\tvec3 punctualDiffuse = falloffAttenuation * light.color * cookieAttenuation;\n\t\t\t\t#if defined(CLUSTER_AREALIGHTS)\n\t\t\t\t#if defined(LIT_SPECULAR)\n\t\t\t\t\tpunctualDiffuse = mix(punctualDiffuse, vec3(0), specularity);\n\t\t\t\t#endif\n\t\t\t\t#endif\n\t\t\t\tdDiffuseLight += punctualDiffuse;\n\t\t\t}\n\t \n\t\t\t#ifdef LIT_SPECULAR\n\t\t\t\tvec3 halfDir = normalize(-lightDirNormW + viewDir);\n\t\t\t\t\n\t\t\t\t#ifdef LIT_SPECULAR_FRESNEL\n\t\t\t\t\tdSpecularLight += \n\t\t\t\t\t\tgetLightSpecular(halfDir, reflectionDir, worldNormal, viewDir, lightDirNormW, gloss, tbn) * falloffAttenuation * light.color * cookieAttenuation * \n\t\t\t\t\t\tgetFresnel(\n\t\t\t\t\t\t\tdot(viewDir, halfDir), \n\t\t\t\t\t\t\tgloss, \n\t\t\t\t\t\t\tspecularity\n\t\t\t\t\t\t#if defined(LIT_IRIDESCENCE)\n\t\t\t\t\t\t\t, iridescenceFresnel,\n\t\t\t\t\t\t\tiridescence_intensity\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t);\n\t\t\t\t#else\n\t\t\t\t\tdSpecularLight += getLightSpecular(halfDir, reflectionDir, worldNormal, viewDir, lightDirNormW, gloss, tbn) * falloffAttenuation * light.color * cookieAttenuation * specularity;\n\t\t\t\t#endif\n\t\t\t\t#ifdef LIT_CLEARCOAT\n\t\t\t\t\t#ifdef LIT_SPECULAR_FRESNEL\n\t\t\t\t\t\tccSpecularLight += getLightSpecular(halfDir, clearcoatReflectionDir, clearcoat_worldNormal, viewDir, lightDirNormW, clearcoat_gloss, tbn) * falloffAttenuation * light.color * cookieAttenuation * getFresnelCC(dot(viewDir, halfDir));\n\t\t\t\t\t#else\n\t\t\t\t\t\tccSpecularLight += getLightSpecular(halfDir, clearcoatReflectionDir, clearcoat_worldNormal, viewDir, lightDirNormW, clearcoat_gloss, tbn) * falloffAttenuation * light.color * cookieAttenuation; \n\t\t\t\t\t#endif\n\t\t\t\t#endif\n\t\t\t\t#ifdef LIT_SHEEN\n\t\t\t\t\tsSpecularLight += getLightSpecularSheen(halfDir, worldNormal, viewDir, lightDirNormW, sheen_gloss) * falloffAttenuation * light.color * cookieAttenuation;\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t}\n\t}\n\tdAtten = falloffAttenuation;\n\tdLightDirNormW = lightDirNormW;\n}\nvoid evaluateClusterLight(\n\tint lightIndex, \n\tvec3 worldNormal, \n\tvec3 viewDir, \n\tvec3 reflectionDir, \n#if defined(LIT_CLEARCOAT)\n\tvec3 clearcoatReflectionDir,\n#endif\n\tfloat gloss, \n\tvec3 specularity, \n\tvec3 geometricNormal, \n\tmat3 tbn, \n#if defined(LIT_IRIDESCENCE)\n\tvec3 iridescenceFresnel,\n#endif\n\tvec3 clearcoat_worldNormal,\n\tfloat clearcoat_gloss,\n\tfloat sheen_gloss,\n\tfloat iridescence_intensity\n) {\n\tClusterLightData clusterLightData = decodeClusterLightCore(lightIndex);\n\t#ifdef CLUSTER_MESH_DYNAMIC_LIGHTS\n\t\tbool acceptLightMask = clusterLightData.isDynamic;\n\t#else\n\t\tbool acceptLightMask = clusterLightData.isLightmapped;\n\t#endif\n\tif (acceptLightMask)\n\t\tevaluateLight(\n\t\t\tclusterLightData, \n\t\t\tworldNormal, \n\t\t\tviewDir, \n\t\t\treflectionDir, \n#if defined(LIT_CLEARCOAT)\n\t\t\tclearcoatReflectionDir, \n#endif\n\t\t\tgloss, \n\t\t\tspecularity, \n\t\t\tgeometricNormal, \n\t\t\ttbn, \n#if defined(LIT_IRIDESCENCE)\n\t\t\tiridescenceFresnel,\n#endif\n\t\t\tclearcoat_worldNormal,\n\t\t\tclearcoat_gloss,\n\t\t\tsheen_gloss,\n\t\t\tiridescence_intensity\n\t\t);\n}\nvoid addClusteredLights(\n\tvec3 worldNormal, \n\tvec3 viewDir, \n\tvec3 reflectionDir, \n#if defined(LIT_CLEARCOAT)\n\tvec3 clearcoatReflectionDir,\n#endif\n\tfloat gloss, \n\tvec3 specularity, \n\tvec3 geometricNormal, \n\tmat3 tbn, \n#if defined(LIT_IRIDESCENCE)\n\tvec3 iridescenceFresnel,\n#endif\n\tvec3 clearcoat_worldNormal,\n\tfloat clearcoat_gloss,\n\tfloat sheen_gloss,\n\tfloat iridescence_intensity\n) {\n\tif (numClusteredLights <= 1)\n\t\treturn;\n\tivec3 cellCoords = ivec3(floor((vPositionW - clusterBoundsMin) * clusterCellsCountByBoundsSize));\n\tif (!(any(lessThan(cellCoords, ivec3(0))) || any(greaterThanEqual(cellCoords, clusterCellsMax)))) {\n\t\tint cellIndex = cellCoords.x * clusterCellsDot.x + cellCoords.y * clusterCellsDot.y + cellCoords.z * clusterCellsDot.z;\n\t\tint clusterV = cellIndex / clusterTextureWidth;\n\t\tint clusterU = cellIndex - clusterV * clusterTextureWidth;\n\t\tfor (int lightCellIndex = 0; lightCellIndex < clusterMaxCells; lightCellIndex++) {\n\t\t\tuint lightIndex = texelFetch(clusterWorldTexture, ivec2(clusterU + lightCellIndex, clusterV), 0).x;\n\t\t\tif (lightIndex == 0u)\n\t\t\t\tbreak;\n\t\t\tevaluateClusterLight(\n\t\t\t\tint(lightIndex), \n\t\t\t\tworldNormal, \n\t\t\t\tviewDir, \n\t\t\t\treflectionDir,\n#if defined(LIT_CLEARCOAT)\n\t\t\t\tclearcoatReflectionDir,\n#endif\n\t\t\t\tgloss, \n\t\t\t\tspecularity, \n\t\t\t\tgeometricNormal, \n\t\t\t\ttbn, \n#if defined(LIT_IRIDESCENCE)\n\t\t\t\tiridescenceFresnel,\n#endif\n\t\t\t\tclearcoat_worldNormal,\n\t\t\t\tclearcoat_gloss,\n\t\t\t\tsheen_gloss,\n\t\t\t\tiridescence_intensity\n\t\t\t); \n\t\t}\n\t}\n}\n`;\n\nvar combine_default = `\nvec3 combineColor(vec3 albedo, vec3 sheenSpecularity, float clearcoatSpecularity) {\n\tvec3 ret = vec3(0);\n#ifdef LIT_OLD_AMBIENT\n\tret += (dDiffuseLight - light_globalAmbient) * albedo + material_ambient * light_globalAmbient;\n#else\n\tret += albedo * dDiffuseLight;\n#endif\n#ifdef LIT_SPECULAR\n\tret += dSpecularLight;\n#endif\n#ifdef LIT_REFLECTIONS\n\tret += dReflection.rgb * dReflection.a;\n#endif\n#ifdef LIT_SHEEN\n\tfloat sheenScaling = 1.0 - max(max(sheenSpecularity.r, sheenSpecularity.g), sheenSpecularity.b) * 0.157;\n\tret = ret * sheenScaling + (sSpecularLight + sReflection.rgb) * sheenSpecularity;\n#endif\n#ifdef LIT_CLEARCOAT\n\tfloat clearCoatScaling = 1.0 - ccFresnel * clearcoatSpecularity;\n\tret = ret * clearCoatScaling + (ccSpecularLight + ccReflection) * clearcoatSpecularity;\n#endif\n\treturn ret;\n}\n`;\n\nvar cookie_blit_2d_default = `\n\tvarying vec2 uv0;\n\tuniform sampler2D blitTexture;\n\tvoid main(void) {\n\t\tgl_FragColor = texture2D(blitTexture, uv0);\n\t}\n`;\n\nvar cookie_blit_cube_default = `\n\tvarying vec2 uv0;\n\tuniform samplerCube blitTexture;\n\tuniform mat4 invViewProj;\n\tvoid main(void) {\n\t\tvec4 projPos = vec4(uv0 * 2.0 - 1.0, 0.5, 1.0);\n\t\tvec4 worldPos = invViewProj * projPos;\n\t\tgl_FragColor = textureCube(blitTexture, worldPos.xyz);\n\t}\n`;\n\nvar cookie_blit_default = `\n\tattribute vec2 vertex_position;\n\tvarying vec2 uv0;\n\tvoid main(void) {\n\t\tgl_Position = vec4(vertex_position, 0.5, 1.0);\n\t\tuv0 = vertex_position.xy * 0.5 + 0.5;\n\t\t#ifndef WEBGPU\n\t\t\tuv0.y = 1.0 - uv0.y;\n\t\t#endif\n\t}\n`;\n\nvar cookie_default = `\nvec4 getCookie2D(sampler2D tex, mat4 transform, float intensity) {\n\tvec4 projPos = transform * vec4(vPositionW, 1.0);\n\tprojPos.xy /= projPos.w;\n\treturn mix(vec4(1.0), texture2D(tex, projPos.xy), intensity);\n}\nvec4 getCookie2DClip(sampler2D tex, mat4 transform, float intensity) {\n\tvec4 projPos = transform * vec4(vPositionW, 1.0);\n\tprojPos.xy /= projPos.w;\n\tif (projPos.x < 0.0 || projPos.x > 1.0 || projPos.y < 0.0 || projPos.y > 1.0 || projPos.z < 0.0) return vec4(0.0);\n\treturn mix(vec4(1.0), texture2D(tex, projPos.xy), intensity);\n}\nvec4 getCookie2DXform(sampler2D tex, mat4 transform, float intensity, vec4 cookieMatrix, vec2 cookieOffset) {\n\tvec4 projPos = transform * vec4(vPositionW, 1.0);\n\tprojPos.xy /= projPos.w;\n\tprojPos.xy += cookieOffset;\n\tvec2 uv = mat2(cookieMatrix) * (projPos.xy-vec2(0.5)) + vec2(0.5);\n\treturn mix(vec4(1.0), texture2D(tex, uv), intensity);\n}\nvec4 getCookie2DClipXform(sampler2D tex, mat4 transform, float intensity, vec4 cookieMatrix, vec2 cookieOffset) {\n\tvec4 projPos = transform * vec4(vPositionW, 1.0);\n\tprojPos.xy /= projPos.w;\n\tprojPos.xy += cookieOffset;\n\tif (projPos.x < 0.0 || projPos.x > 1.0 || projPos.y < 0.0 || projPos.y > 1.0 || projPos.z < 0.0) return vec4(0.0);\n\tvec2 uv = mat2(cookieMatrix) * (projPos.xy-vec2(0.5)) + vec2(0.5);\n\treturn mix(vec4(1.0), texture2D(tex, uv), intensity);\n}\nvec4 getCookieCube(samplerCube tex, mat4 transform, float intensity) {\n\treturn mix(vec4(1.0), textureCube(tex, dLightDirNormW * mat3(transform)), intensity);\n}\n`;\n\nvar cubeMapProject_default = `\n#if LIT_CUBEMAP_PROJECTION == BOX\n\tuniform vec3 envBoxMin;\n\tuniform vec3 envBoxMax;\n#endif\nvec3 cubeMapProject(vec3 nrdir) {\n\t#if LIT_CUBEMAP_PROJECTION == NONE\n\t\treturn cubeMapRotate(nrdir);\n\t#endif\n\t#if LIT_CUBEMAP_PROJECTION == BOX\n\t\tnrdir = cubeMapRotate(nrdir);\n\t\tvec3 rbmax = (envBoxMax - vPositionW) / nrdir;\n\t\tvec3 rbmin = (envBoxMin - vPositionW) / nrdir;\n\t\tvec3 rbminmax = mix(rbmin, rbmax, vec3(greaterThan(nrdir, vec3(0.0))));\n\t\tfloat fa = min(min(rbminmax.x, rbminmax.y), rbminmax.z);\n\t\tvec3 posonbox = vPositionW + nrdir * fa;\n\t\tvec3 envBoxPos = (envBoxMin + envBoxMax) * 0.5;\n\t\treturn normalize(posonbox - envBoxPos);\n\t#endif\n}\n`;\n\nvar cubeMapRotate_default = `\n#ifdef CUBEMAP_ROTATION\nuniform mat3 cubeMapRotationMatrix;\n#endif\nvec3 cubeMapRotate(vec3 refDir) {\n#ifdef CUBEMAP_ROTATION\n\treturn refDir * cubeMapRotationMatrix;\n#else\n\treturn refDir;\n#endif\n}\n`;\n\nvar debug_output_default = `\n#ifdef DEBUG_ALBEDO_PASS\ngl_FragColor = vec4(gammaCorrectOutput(dAlbedo), 1.0);\n#endif\n#ifdef DEBUG_UV0_PASS\ngl_FragColor = vec4(litArgs_albedo , 1.0);\n#endif\n#ifdef DEBUG_WORLD_NORMAL_PASS\ngl_FragColor = vec4(litArgs_worldNormal * 0.5 + 0.5, 1.0);\n#endif\n#ifdef DEBUG_OPACITY_PASS\ngl_FragColor = vec4(vec3(litArgs_opacity) , 1.0);\n#endif\n#ifdef DEBUG_SPECULARITY_PASS\ngl_FragColor = vec4(litArgs_specularity, 1.0);\n#endif\n#ifdef DEBUG_GLOSS_PASS\ngl_FragColor = vec4(vec3(litArgs_gloss) , 1.0);\n#endif\n#ifdef DEBUG_METALNESS_PASS\ngl_FragColor = vec4(vec3(litArgs_metalness) , 1.0);\n#endif\n#ifdef DEBUG_AO_PASS\ngl_FragColor = vec4(vec3(litArgs_ao) , 1.0);\n#endif\n#ifdef DEBUG_EMISSION_PASS\ngl_FragColor = vec4(gammaCorrectOutput(litArgs_emission), 1.0);\n#endif\n`;\n\nvar debug_process_frontend_default = `\n#ifdef DEBUG_LIGHTING_PASS\nlitArgs_albedo = vec3(0.5);\n#endif\n#ifdef DEBUG_UV0_PASS\n#ifdef VARYING_VUV0\nlitArgs_albedo = vec3(vUv0, 0);\n#else\nlitArgs_albedo = vec3(0);\n#endif\n#endif\n`;\n\nvar decode_default = `\n#ifndef _DECODE_INCLUDED_\n#define _DECODE_INCLUDED_\nvec3 decodeLinear(vec4 raw) {\n\treturn raw.rgb;\n}\nfloat decodeGamma(float raw) {\n\treturn pow(raw, 2.2);\n}\nvec3 decodeGamma(vec3 raw) {\n\treturn pow(raw, vec3(2.2));\n}\nvec3 decodeGamma(vec4 raw) {\n\treturn pow(raw.xyz, vec3(2.2));\n}\nvec3 decodeRGBM(vec4 raw) {\n\tvec3 color = (8.0 * raw.a) * raw.rgb;\n\treturn color * color;\n}\nvec3 decodeRGBP(vec4 raw) {\n\tvec3 color = raw.rgb * (-raw.a * 7.0 + 8.0);\n\treturn color * color;\n}\nvec3 decodeRGBE(vec4 raw) {\n\tif (raw.a == 0.0) {\n\t\treturn vec3(0.0, 0.0, 0.0);\n\t} else {\n\t\treturn raw.xyz * pow(2.0, raw.w * 255.0 - 128.0);\n\t}\n}\nvec4 passThrough(vec4 raw) {\n\treturn raw;\n}\nvec3 unpackNormalXYZ(vec4 nmap) {\n\treturn nmap.xyz * 2.0 - 1.0;\n}\nvec3 unpackNormalXY(vec4 nmap) {\n\tvec3 normal;\n\tnormal.xy = nmap.wy * 2.0 - 1.0;\n\tnormal.z = sqrt(1.0 - clamp(dot(normal.xy, normal.xy), 0.0, 1.0));\n\treturn normal;\n}\n#endif\n`;\n\nvar detailModes_default = `\n#ifndef _DETAILMODES_INCLUDED_\n#define _DETAILMODES_INCLUDED_\nvec3 detailMode_mul(vec3 c1, vec3 c2) {\n\treturn c1 * c2;\n}\nvec3 detailMode_add(vec3 c1, vec3 c2) {\n\treturn c1 + c2;\n}\nvec3 detailMode_screen(vec3 c1, vec3 c2) {\n\treturn 1.0 - (1.0 - c1)*(1.0 - c2);\n}\nvec3 detailMode_overlay(vec3 c1, vec3 c2) {\n\treturn mix(1.0 - 2.0 * (1.0 - c1)*(1.0 - c2), 2.0 * c1 * c2, step(c1, vec3(0.5)));\n}\nvec3 detailMode_min(vec3 c1, vec3 c2) {\n\treturn min(c1, c2);\n}\nvec3 detailMode_max(vec3 c1, vec3 c2) {\n\treturn max(c1, c2);\n}\n#endif\n`;\n\nvar diffuse_default = `\nuniform vec3 material_diffuse;\n#ifdef STD_DIFFUSEDETAIL_TEXTURE\n\t#include \"detailModesPS\"\n#endif\nvoid getAlbedo() {\n\tdAlbedo = material_diffuse.rgb;\n\t#ifdef STD_DIFFUSE_TEXTURE\n\t\tvec3 albedoTexture = {STD_DIFFUSE_TEXTURE_DECODE}(texture2DBias({STD_DIFFUSE_TEXTURE_NAME}, {STD_DIFFUSE_TEXTURE_UV}, textureBias)).{STD_DIFFUSE_TEXTURE_CHANNEL};\n\t\t#ifdef STD_DIFFUSEDETAIL_TEXTURE\n\t\t\tvec3 albedoDetail = {STD_DIFFUSEDETAIL_TEXTURE_DECODE}(texture2DBias({STD_DIFFUSEDETAIL_TEXTURE_NAME}, {STD_DIFFUSEDETAIL_TEXTURE_UV}, textureBias)).{STD_DIFFUSEDETAIL_TEXTURE_CHANNEL};\n\t\t\talbedoTexture = detailMode_{STD_DIFFUSEDETAIL_DETAILMODE}(albedoTexture, albedoDetail);\n\t\t#endif\n\t\tdAlbedo *= albedoTexture;\n\t#endif\n\t#ifdef STD_DIFFUSE_VERTEX\n\t\tdAlbedo *= saturate(vVertexColor.{STD_DIFFUSE_VERTEX_CHANNEL});\n\t#endif\n}\n`;\n\nvar emissive_default = `\nuniform vec3 material_emissive;\nuniform float material_emissiveIntensity;\nvoid getEmission() {\n\tdEmission = material_emissive * material_emissiveIntensity;\n\t#ifdef STD_EMISSIVE_TEXTURE\n\tdEmission *= {STD_EMISSIVE_TEXTURE_DECODE}(texture2DBias({STD_EMISSIVE_TEXTURE_NAME}, {STD_EMISSIVE_TEXTURE_UV}, textureBias)).{STD_EMISSIVE_TEXTURE_CHANNEL};\n\t#endif\n\t#ifdef STD_EMISSIVE_VERTEX\n\tdEmission *= saturate(vVertexColor.{STD_EMISSIVE_VERTEX_CHANNEL});\n\t#endif\n}\n`;\n\nvar encode_default = `\nvec4 encodeLinear(vec3 source) {\n\treturn vec4(source, 1.0);\n}\nvec4 encodeGamma(vec3 source) {\n\treturn vec4(pow(source + 0.0000001, vec3(1.0 / 2.2)), 1.0);\n}\nvec4 encodeRGBM(vec3 source) {\n\tvec4 result;\n\tresult.rgb = pow(source.rgb, vec3(0.5));\n\tresult.rgb *= 1.0 / 8.0;\n\tresult.a = saturate( max( max( result.r, result.g ), max( result.b, 1.0 / 255.0 ) ) );\n\tresult.a = ceil(result.a * 255.0) / 255.0;\n\tresult.rgb /= result.a;\n\treturn result;\n}\nvec4 encodeRGBP(vec3 source) {\n\tvec3 gamma = pow(source, vec3(0.5));\n\tfloat maxVal = min(8.0, max(1.0, max(gamma.x, max(gamma.y, gamma.z))));\n\tfloat v = 1.0 - ((maxVal - 1.0) / 7.0);\n\tv = ceil(v * 255.0) / 255.0;\n\treturn vec4(gamma / (-v * 7.0 + 8.0), v);\t\n}\nvec4 encodeRGBE(vec3 source) {\n\tfloat maxVal = max(source.x, max(source.y, source.z));\n\tif (maxVal < 1e-32) {\n\t\treturn vec4(0, 0, 0, 0);\n\t} else {\n\t\tfloat e = ceil(log2(maxVal));\n\t\treturn vec4(source / pow(2.0, e), (e + 128.0) / 255.0);\n\t}\n}\n`;\n\nvar end_default = `\n\tgl_FragColor.rgb = combineColor(litArgs_albedo, litArgs_sheen_specularity, litArgs_clearcoat_specularity);\n\tgl_FragColor.rgb += litArgs_emission;\n\tgl_FragColor.rgb = addFog(gl_FragColor.rgb);\n\tgl_FragColor.rgb = toneMap(gl_FragColor.rgb);\n\tgl_FragColor.rgb = gammaCorrectOutput(gl_FragColor.rgb);\n`;\n\nvar envAtlas_default = `\n#ifndef _ENVATLAS_INCLUDED_\n#define _ENVATLAS_INCLUDED_\nconst float atlasSize = 512.0;\nconst float seamSize = 1.0 / atlasSize;\nvec2 mapUv(vec2 uv, vec4 rect) {\n\treturn vec2(mix(rect.x + seamSize, rect.x + rect.z - seamSize, uv.x),\n\t\t\t\tmix(rect.y + seamSize, rect.y + rect.w - seamSize, uv.y));\n}\nvec2 mapRoughnessUv(vec2 uv, float level) {\n\tfloat t = 1.0 / exp2(level);\n\treturn mapUv(uv, vec4(0, 1.0 - t, t, t * 0.5));\n}\nvec2 mapShinyUv(vec2 uv, float level) {\n\tfloat t = 1.0 / exp2(level);\n\treturn mapUv(uv, vec4(1.0 - t, 1.0 - t, t, t * 0.5));\n}\n#endif\n`;\n\nvar envProc_default = `\n#ifdef LIT_SKYBOX_INTENSITY\n\tuniform float skyboxIntensity;\n#endif\nvec3 processEnvironment(vec3 color) {\n\t#ifdef LIT_SKYBOX_INTENSITY\n\t\treturn color * skyboxIntensity;\n\t#else\n\t\treturn color;\n\t#endif\n}\n`;\n\nvar falloffInvSquared_default = `\nfloat getFalloffWindow(float lightRadius, vec3 lightDir) {\n\tfloat sqrDist = dot(lightDir, lightDir);\n\tfloat invRadius = 1.0 / lightRadius;\n\treturn square(saturate(1.0 - square(sqrDist * square(invRadius))));\n}\nfloat getFalloffInvSquared(float lightRadius, vec3 lightDir) {\n\tfloat sqrDist = dot(lightDir, lightDir);\n\tfloat falloff = 1.0 / (sqrDist + 1.0);\n\tfloat invRadius = 1.0 / lightRadius;\n\tfalloff *= 16.0;\n\tfalloff *= square(saturate(1.0 - square(sqrDist * square(invRadius))));\n\treturn falloff;\n}\n`;\n\nvar falloffLinear_default = `\nfloat getFalloffLinear(float lightRadius, vec3 lightDir) {\n\tfloat d = length(lightDir);\n\treturn max(((lightRadius - d) / lightRadius), 0.0);\n}\n`;\n\nvar flat_normal_default = `\n#ifndef TBNBASIS\n\t#define TBNBASIS\n\tuniform float tbnBasis;\n#endif\nvec3 getFlatNormal(vec3 worldPos) {\n\tvec3 normal = cross(dFdx(worldPos), dFdy(worldPos));\n\tfloat basis = gl_FrontFacing ? tbnBasis : -tbnBasis;\n\tfloat len = length(normal);\n\treturn len > 0.0 ? normal * (basis / len) : vec3(0.0, 1.0, 0.0);\n}\n`;\n\nvar float_as_uint_default = `\n#ifndef FLOAT_AS_UINT\n#define FLOAT_AS_UINT\nvec4 float2uint(float value) {\n\tuint intBits = floatBitsToUint(value);\n\treturn vec4(\n\t\tfloat((intBits >> 24u) & 0xFFu) / 255.0,\n\t\tfloat((intBits >> 16u) & 0xFFu) / 255.0,\n\t\tfloat((intBits >> 8u) & 0xFFu) / 255.0,\n\t\tfloat(intBits & 0xFFu) / 255.0\n\t);\n}\nfloat uint2float(vec4 value) {\n\tuint intBits = \n\t\t(uint(value.r * 255.0) << 24u) |\n\t\t(uint(value.g * 255.0) << 16u) |\n\t\t(uint(value.b * 255.0) << 8u) |\n\t\tuint(value.a * 255.0);\n\treturn uintBitsToFloat(intBits);\n}\nvec4 float2vec4(float value) {\n\t#if defined(CAPS_TEXTURE_FLOAT_RENDERABLE)\n\t\treturn vec4(value, 1.0, 1.0, 1.0);\n\t#else\n\t\treturn float2uint(value);\n\t#endif\n}\n#endif\n`;\n\nvar scene_textures_default = `\n#ifndef SCENE_TEXTURES\n#define SCENE_TEXTURES\nvoid writeSceneTextureDepth(float linearDepth, float alpha) {\n\t#ifdef SCENE_TEXTURE_DEPTH\n\t\tpcFragColor{SCENE_TEXTURE_DEPTH_SLOT} = vec4(alpha / max(linearDepth, 1e-6), 0.0, 0.0, alpha);\n\t#endif\n}\n#endif\n`;\n\nvar fog_default = `\nfloat dBlendModeFogFactor = 1.0;\n#if (FOG != NONE)\n\tuniform vec3 fog_color;\n\t#if (FOG == LINEAR)\n\t\tuniform float fog_start;\n\t\tuniform float fog_end;\n\t#else\n\t\tuniform float fog_density;\n\t#endif\n#endif\n#ifdef VERTEXSHADER\n\tfloat getFogFactor(float depth) {\n#else\n\tfloat getFogFactor() {\n\t\tfloat depth = gl_FragCoord.z / gl_FragCoord.w;\n#endif\n\tfloat fogFactor = 0.0;\n\t#if (FOG == LINEAR)\n\t\tfogFactor = (fog_end - depth) / (fog_end - fog_start);\n\t#elif (FOG == EXP)\n\t\tfogFactor = exp(-depth * fog_density);\n\t#elif (FOG == EXP2)\n\t\tfogFactor = exp(-depth * depth * fog_density * fog_density);\n\t#endif\n\treturn clamp(fogFactor, 0.0, 1.0);\n}\n#ifdef VERTEXSHADER\n\tvec3 addFog(vec3 color, float depth) {\n\t\t#if (FOG != NONE)\n\t\t\treturn mix(fog_color * dBlendModeFogFactor, color, getFogFactor(depth));\n\t\t#endif\n\t\treturn color;\n\t}\n#else\n\tvec3 addFog(vec3 color) {\n\t\t#if (FOG != NONE)\n\t\t\treturn mix(fog_color * dBlendModeFogFactor, color, getFogFactor());\n\t\t#endif\n\t\treturn color;\n\t}\n#endif\n`;\n\nvar fresnelSchlick_default = `\nfloat pow5(float x) {\n\tfloat x2 = x * x;\n\treturn x2 * x2 * x;\n}\nvec3 getFresnel(\n\t\tfloat cosTheta, \n\t\tfloat gloss, \n\t\tvec3 specularity\n#if defined(LIT_IRIDESCENCE)\n\t\t, vec3 iridescenceFresnel, \n\t\tfloat iridescenceIntensity\n#endif\n\t) {\n\tfloat fresnel = pow5(1.0 - saturate(cosTheta));\n\tfloat glossSq = gloss * gloss;\n\tfloat specIntensity = max(specularity.r, max(specularity.g, specularity.b));\n\tvec3 ret = specularity + (max(vec3(glossSq * specIntensity), specularity) - specularity) * fresnel;\n#if defined(LIT_IRIDESCENCE)\n\treturn mix(ret, iridescenceFresnel, iridescenceIntensity);\n#else\n\treturn ret;\n#endif\t\n}\nfloat getFresnelCC(float cosTheta) {\n\tfloat fresnel = pow5(1.0 - saturate(cosTheta));\n\treturn 0.04 + (1.0 - 0.04) * fresnel;\n}\n`;\n\nvar fullscreenQuad_default = `\nattribute vec2 vertex_position;\nvarying vec2 vUv0;\nvoid main(void)\n{\n\tgl_Position = vec4(vertex_position, 0.5, 1.0);\n\tvUv0 = vertex_position.xy * 0.5 + 0.5;\n}\n`;\n\nvar gamma_default = `\n#include \"decodePS\"\n#if (GAMMA == SRGB)\n\tfloat gammaCorrectInput(float color) {\n\t\treturn decodeGamma(color);\n\t}\n\tvec3 gammaCorrectInput(vec3 color) {\n\t\treturn decodeGamma(color);\n\t}\n\tvec4 gammaCorrectInput(vec4 color) {\n\t\treturn vec4(decodeGamma(color.xyz), color.w);\n\t}\n\tvec3 gammaCorrectOutput(vec3 color) {\n\t\treturn pow(color + 0.0000001, vec3(1.0 / 2.2));\n\t}\n#else\n\tfloat gammaCorrectInput(float color) {\n\t\treturn color;\n\t}\n\tvec3 gammaCorrectInput(vec3 color) {\n\t\treturn color;\n\t}\n\tvec4 gammaCorrectInput(vec4 color) {\n\t\treturn color;\n\t}\n\tvec3 gammaCorrectOutput(vec3 color) {\n\t\treturn color;\n\t}\n#endif\n`;\n\nvar gloss_default = `\n#ifdef STD_GLOSS_CONSTANT\nuniform float material_gloss;\n#endif\nvoid getGlossiness() {\n\tdGlossiness = 1.0;\n\t#ifdef STD_GLOSS_CONSTANT\n\tdGlossiness *= material_gloss;\n\t#endif\n\t#ifdef STD_GLOSS_TEXTURE\n\tdGlossiness *= texture2DBias({STD_GLOSS_TEXTURE_NAME}, {STD_GLOSS_TEXTURE_UV}, textureBias).{STD_GLOSS_TEXTURE_CHANNEL};\n\t#endif\n\t#ifdef STD_GLOSS_VERTEX\n\tdGlossiness *= saturate(vVertexColor.{STD_GLOSS_VERTEX_CHANNEL});\n\t#endif\n\t#ifdef STD_GLOSS_INVERT\n\tdGlossiness = 1.0 - dGlossiness;\n\t#endif\n\tdGlossiness += 0.0000001;\n}\n`;\n\nvar quad_default = `\n\tattribute vec2 aPosition;\n\tvarying vec2 uv0;\n\tvoid main(void)\n\t{\n\t\tgl_Position = vec4(aPosition, 0.0, 1.0);\n\t\tuv0 = getImageEffectUV((aPosition.xy + 1.0) * 0.5);\n\t}\n`;\n\nvar immediateLine_default = `\n\t\t#include \"gammaPS\"\n\t\tvarying vec4 color;\n\t\tvoid main(void) {\n\t\t\tgl_FragColor = vec4(gammaCorrectOutput(decodeGamma(color.rgb)), color.a);\n\t\t}\n`;\n\nvar immediateLine_default2 = `\n\tattribute vec4 vertex_position;\n\tattribute vec4 vertex_color;\n\tuniform mat4 matrix_model;\n\tuniform mat4 matrix_viewProjection;\n\tvarying vec4 color;\n\tvoid main(void) {\n\t\tcolor = vertex_color;\n\t\tgl_Position = matrix_viewProjection * matrix_model * vertex_position;\n\t}\n`;\n\nvar iridescenceDiffraction_default = `\nuniform float material_iridescenceRefractionIndex;\nfloat iridescence_iorToFresnel(float transmittedIor, float incidentIor) {\n\treturn pow((transmittedIor - incidentIor) / (transmittedIor + incidentIor), 2.0);\n}\nvec3 iridescence_iorToFresnel(vec3 transmittedIor, float incidentIor) {\n\treturn pow((transmittedIor - vec3(incidentIor)) / (transmittedIor + vec3(incidentIor)), vec3(2.0));\n}\nvec3 iridescence_fresnelToIor(vec3 f0) {\n\tvec3 sqrtF0 = sqrt(f0);\n\treturn (vec3(1.0) + sqrtF0) / (vec3(1.0) - sqrtF0);\n}\nvec3 iridescence_sensitivity(float opd, vec3 shift) {\n\tfloat PI = 3.141592653589793;\n\tfloat phase = 2.0 * PI * opd * 1.0e-9;\n\tconst vec3 val = vec3(5.4856e-13, 4.4201e-13, 5.2481e-13);\n\tconst vec3 pos = vec3(1.6810e+06, 1.7953e+06, 2.2084e+06);\n\tconst vec3 var = vec3(4.3278e+09, 9.3046e+09, 6.6121e+09);\n\tvec3 xyz = val * sqrt(2.0 * PI * var) * cos(pos * phase + shift) * exp(-pow(phase, 2.0) * var);\n\txyz.x += 9.7470e-14 * sqrt(2.0 * PI * 4.5282e+09) * cos(2.2399e+06 * phase + shift[0]) * exp(-4.5282e+09 * pow(phase, 2.0));\n\txyz /= vec3(1.0685e-07);\n\tconst mat3 XYZ_TO_REC709 = mat3(\n\t\t3.2404542, -0.9692660,  0.0556434,\n\t   -1.5371385,  1.8760108, -0.2040259,\n\t   -0.4985314,  0.0415560,  1.0572252\n\t);\n\treturn XYZ_TO_REC709 * xyz;\n}\nfloat iridescence_fresnel(float cosTheta, float f0) {\n\tfloat x = clamp(1.0 - cosTheta, 0.0, 1.0);\n\tfloat x2 = x * x;\n\tfloat x5 = x * x2 * x2;\n\treturn f0 + (1.0 - f0) * x5;\n} \nvec3 iridescence_fresnel(float cosTheta, vec3 f0) {\n\tfloat x = clamp(1.0 - cosTheta, 0.0, 1.0);\n\tfloat x2 = x * x;\n\tfloat x5 = x * x2 * x2; \n\treturn f0 + (vec3(1.0) - f0) * x5;\n}\nvec3 calcIridescence(float outsideIor, float cosTheta, vec3 base_f0, float iridescenceThickness) {\n\tfloat PI = 3.141592653589793;\n\tfloat iridescenceIor = mix(outsideIor, material_iridescenceRefractionIndex, smoothstep(0.0, 0.03, iridescenceThickness));\n\tfloat sinTheta2Sq = pow(outsideIor / iridescenceIor, 2.0) * (1.0 - pow(cosTheta, 2.0));\n\tfloat cosTheta2Sq = 1.0 - sinTheta2Sq;\n\tif (cosTheta2Sq < 0.0) {\n\t\treturn vec3(1.0);\n\t}\n\tfloat cosTheta2 = sqrt(cosTheta2Sq);\n\tfloat r0 = iridescence_iorToFresnel(iridescenceIor, outsideIor);\n\tfloat r12 = iridescence_fresnel(cosTheta, r0);\n\tfloat r21 = r12;\n\tfloat t121 = 1.0 - r12;\n\tfloat phi12 = iridescenceIor < outsideIor ? PI : 0.0;\n\tfloat phi21 = PI - phi12;\n\tvec3 baseIor = iridescence_fresnelToIor(base_f0 + vec3(0.0001));\n\tvec3 r1 = iridescence_iorToFresnel(baseIor, iridescenceIor);\n\tvec3 r23 = iridescence_fresnel(cosTheta2, r1);\n\tvec3 phi23 = vec3(0.0);\n\tif (baseIor[0] < iridescenceIor) phi23[0] = PI;\n\tif (baseIor[1] < iridescenceIor) phi23[1] = PI;\n\tif (baseIor[2] < iridescenceIor) phi23[2] = PI;\n\tfloat opd = 2.0 * iridescenceIor * iridescenceThickness * cosTheta2;\n\tvec3 phi = vec3(phi21) + phi23; \n\tvec3 r123Sq = clamp(r12 * r23, 1e-5, 0.9999);\n\tvec3 r123 = sqrt(r123Sq);\n\tvec3 rs = pow(t121, 2.0) * r23 / (1.0 - r123Sq);\n\tvec3 c0 = r12 + rs;\n\tvec3 i = c0;\n\tvec3 cm = rs - t121;\n\tfor (int m = 1; m <= 2; m++) {\n\t\tcm *= r123;\n\t\tvec3 sm = 2.0 * iridescence_sensitivity(float(m) * opd, float(m) * phi);\n\t\ti += cm * sm;\n\t}\n\treturn max(i, vec3(0.0));\n}\nvec3 getIridescence(float cosTheta, vec3 specularity, float iridescenceThickness) {\n\treturn calcIridescence(1.0, cosTheta, specularity, iridescenceThickness);\n}\n`;\n\nvar iridescence_default = `\n#ifdef STD_IRIDESCENCE_CONSTANT\nuniform float material_iridescence;\n#endif\nvoid getIridescence() {\n\tfloat iridescence = 1.0;\n\t#ifdef STD_IRIDESCENCE_CONSTANT\n\tiridescence *= material_iridescence;\n\t#endif\n\t#ifdef STD_IRIDESCENCE_TEXTURE\n\tiridescence *= texture2DBias({STD_IRIDESCENCE_TEXTURE_NAME}, {STD_IRIDESCENCE_TEXTURE_UV}, textureBias).{STD_IRIDESCENCE_TEXTURE_CHANNEL};\n\t#endif\n\tdIridescence = iridescence; \n}\n`;\n\nvar iridescenceThickness_default = `\nuniform float material_iridescenceThicknessMax;\n#ifdef STD_IRIDESCENCETHICKNESS_TEXTURE\nuniform float material_iridescenceThicknessMin;\n#endif\nvoid getIridescenceThickness() {\n\t#ifdef STD_IRIDESCENCETHICKNESS_TEXTURE\n\t\tfloat blend = texture2DBias({STD_IRIDESCENCETHICKNESS_TEXTURE_NAME}, {STD_IRIDESCENCETHICKNESS_TEXTURE_UV}, textureBias).{STD_IRIDESCENCETHICKNESS_TEXTURE_CHANNEL};\n\t\tfloat iridescenceThickness = mix(material_iridescenceThicknessMin, material_iridescenceThicknessMax, blend);\n\t#else\n\t\tfloat iridescenceThickness = material_iridescenceThicknessMax;\n\t#endif\n\tdIridescenceThickness = iridescenceThickness; \n}\n`;\n\nvar ior_default = `\n#ifdef STD_IOR_CONSTANT\nuniform float material_refractionIndex;\n#endif\nvoid getIor() {\n#ifdef STD_IOR_CONSTANT\n\tdIor = material_refractionIndex;\n#else\n\tdIor = 1.0 / 1.5;\n#endif\n}\n`;\n\nvar lightDeclaration_default = `\n#if defined(LIGHT{i})\n\tuniform vec3 light{i}_color;\n\t#if LIGHT{i}TYPE == DIRECTIONAL\n\t\tuniform vec3 light{i}_direction;\n\t#else\n\t\t#define LIT_CODE_LIGHTS_POINT\n\t\tuniform vec3 light{i}_position;\n\t\tuniform float light{i}_radius;\n\t\t#if LIGHT{i}TYPE == SPOT\n\t\t\t#define LIT_CODE_LIGHTS_SPOT\n\t\t\tuniform vec3 light{i}_direction;\n\t\t\tuniform float light{i}_innerConeAngle;\n\t\t\tuniform float light{i}_outerConeAngle;\n\t\t#endif\n\t#endif\n\t#if LIGHT{i}SHAPE != PUNCTUAL\n\t\t#define LIT_CODE_FALLOFF_SQUARED\n\t\t#if LIGHT{i}TYPE == DIRECTIONAL\n\t\t\tuniform vec3 light{i}_position;\n\t\t#endif\n\t\tuniform vec3 light{i}_halfWidth;\n\t\tuniform vec3 light{i}_halfHeight;\n\t#else\n\t\t#if LIGHT{i}FALLOFF == LINEAR\n\t\t\t#define LIT_CODE_FALLOFF_LINEAR\n\t\t#endif\n\t\t#if LIGHT{i}FALLOFF == INVERSESQUARED\n\t\t\t#define LIT_CODE_FALLOFF_SQUARED\n\t\t#endif\n\t#endif\n\t#if defined(LIGHT{i}CASTSHADOW)\n\t\t#if LIGHT{i}TYPE != OMNI\n\t\t\tuniform mat4 light{i}_shadowMatrix;\n\t\t#endif\n\t\tuniform float light{i}_shadowIntensity;\n\t\tuniform vec4 light{i}_shadowParams;\n\t\t#if LIGHT{i}SHADOWTYPE == PCSS_32F\n\t\t\tuniform float light{i}_shadowSearchArea;\n\t\t\tuniform vec4 light{i}_cameraParams;\n\t\t\t#if LIGHT{i}TYPE == DIRECTIONAL\n\t\t\t\tuniform vec4 light{i}_softShadowParams;\n\t\t\t\tuniform vec4 light{i}_shadowCascadeRadii;\n\t\t\t#endif\n\t\t#endif\n\t\t#if LIGHT{i}TYPE == DIRECTIONAL\n\t\t\tuniform mat4 light{i}_shadowMatrixPalette[4];\n\t\t\tuniform vec4 light{i}_shadowCascadeDistances;\n\t\t\tuniform int light{i}_shadowCascadeCount;\n\t\t\tuniform float light{i}_shadowCascadeBlend;\n\t\t#endif\n\t\t#if LIGHT{i}TYPE == OMNI\n\t\t\t#if defined(LIGHT{i}SHADOW_PCF)\n\t\t\t\tuniform samplerCubeShadow light{i}_shadowMap;\n\t\t\t#else\n\t\t\t\tuniform samplerCube light{i}_shadowMap;\n\t\t\t#endif\n\t\t#else\n\t\t\t#if defined(LIGHT{i}SHADOW_PCF)\n\t\t\t\tuniform sampler2DShadow light{i}_shadowMap;\n\t\t\t#else\n\t\t\t\tuniform sampler2D light{i}_shadowMap;\n\t\t\t#endif\n\t\t#endif\n\t#endif\n\t#if defined(LIGHT{i}COOKIE)\n\t\t#define LIT_CODE_COOKIE\n\t\t#if LIGHT{i}TYPE == OMNI\n\t\t\tuniform samplerCube light{i}_cookie;\n\t\t\tuniform float light{i}_cookieIntensity;\n\t\t\tuniform mat4 light{i}_shadowMatrix;\n\t\t#endif\n\t\t#if LIGHT{i}TYPE == SPOT\n\t\t\tuniform sampler2D light{i}_cookie;\n\t\t\tuniform float light{i}_cookieIntensity;\n\t\t\t#if !defined(LIGHT{i}CASTSHADOW)\n\t\t\t\tuniform mat4 light{i}_shadowMatrix;\n\t\t\t#endif\n\t\t\t#if defined(LIGHT{i}COOKIE_TRANSFORM)\n\t\t\t\tuniform vec4 light{i}_cookieMatrix;\n\t\t\t\tuniform vec2 light{i}_cookieOffset;\n\t\t\t#endif\n\t\t#endif\n\t#endif\n#endif\n`;\n\nvar lightDiffuseLambert_default = `\nfloat getLightDiffuse(vec3 worldNormal, vec3 viewDir, vec3 lightDirNorm) {\n\treturn max(dot(worldNormal, -lightDirNorm), 0.0);\n}\n`;\n\nvar lightDirPoint_default = `\nvec3 evalOmniLight(vec3 lightPosW) {\n\treturn vPositionW - lightPosW;\n}\n`;\n\nvar lightEvaluation_default = `\n#if defined(LIGHT{i})\n\tevaluateLight{i}(\n\t\t#if defined(LIT_IRIDESCENCE)\n\t\t\tiridescenceFresnel\n\t\t#endif\n\t);\n#endif\n`;\n\nvar lightFunctionLight_default = `\n#if defined(LIGHT{i})\nvoid evaluateLight{i}(\n\t#if defined(LIT_IRIDESCENCE)\n\t\tvec3 iridescenceFresnel\n\t#endif\n) {\n\tvec3 lightColor = light{i}_color;\n\t#if LIGHT{i}TYPE == DIRECTIONAL && !defined(LIT_SHADOW_CATCHER)\n\t\tif (all(equal(lightColor, vec3(0.0)))) {\n\t\t\treturn;\n\t\t}\n\t#endif\n\t#if LIGHT{i}TYPE == DIRECTIONAL\n\t\tdLightDirNormW = light{i}_direction;\n\t\tdAtten = 1.0;\n\t#else\n\t\t\n\t\tvec3 lightDirW = evalOmniLight(light{i}_position);\n\t\tdLightDirNormW = normalize(lightDirW);\n\t\t#if defined(LIGHT{i}COOKIE)\n\t\t\t#if LIGHT{i}TYPE == SPOT\n\t\t\t\t#ifdef LIGHT{i}COOKIE_FALLOFF\n\t\t\t\t\t#ifdef LIGHT{i}COOKIE_TRANSFORM\n\t\t\t\t\t\tvec3 cookieAttenuation = getCookie2DXform(light{i}_cookie, light{i}_shadowMatrix, light{i}_cookieIntensity, light{i}_cookieMatrix, light{i}_cookieOffset).{LIGHT{i}COOKIE_CHANNEL};\n\t\t\t\t\t#else\n\t\t\t\t\t\tvec3 cookieAttenuation = getCookie2D(light{i}_cookie, light{i}_shadowMatrix, light{i}_cookieIntensity).{LIGHT{i}COOKIE_CHANNEL};\n\t\t\t\t\t#endif\n\t\t\t\t#else\n\t\t\t\t\t#ifdef LIGHT{i}COOKIE_TRANSFORM\n\t\t\t\t\t\tvec3 cookieAttenuation = getCookie2DClipXform(light{i}_cookie, light{i}_shadowMatrix, light{i}_cookieIntensity, light{i}_cookieMatrix, light{i}_cookieOffset).{LIGHT{i}COOKIE_CHANNEL};\n\t\t\t\t\t#else\n\t\t\t\t\t\tvec3 cookieAttenuation = getCookie2DClip(light{i}_cookie, light{i}_shadowMatrix, light{i}_cookieIntensity).{LIGHT{i}COOKIE_CHANNEL};\n\t\t\t\t\t#endif\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t\t#if LIGHT{i}TYPE == OMNI\n\t\t\t\tvec3 cookieAttenuation = getCookieCube(light{i}_cookie, light{i}_shadowMatrix, light{i}_cookieIntensity).{LIGHT{i}COOKIE_CHANNEL};\n\t\t\t#endif\n\t\t\tlightColor *= cookieAttenuation;\n\t\t#endif\n\t\t#if LIGHT{i}SHAPE == PUNCTUAL\n\t\t\t#if LIGHT{i}FALLOFF == LINEAR\n\t\t\t\tdAtten = getFalloffLinear(light{i}_radius, lightDirW);\n\t\t\t#else\n\t\t\t\tdAtten = getFalloffInvSquared(light{i}_radius, lightDirW);\n\t\t\t#endif\n\t\t#else\n\t\t\tdAtten = getFalloffWindow(light{i}_radius, lightDirW);\n\t\t#endif\n\t\t#if LIGHT{i}TYPE == SPOT\n\t\t\t#if !defined(LIGHT{i}COOKIE) || defined(LIGHT{i}COOKIE_FALLOFF)\n\t\t\t\tdAtten *= getSpotEffect(light{i}_direction, light{i}_innerConeAngle, light{i}_outerConeAngle, dLightDirNormW);\n\t\t\t#endif\n\t\t#endif\n\t#endif\n\tif (dAtten < 0.00001) {\n\t\treturn;\n\t}\n\t#if LIGHT{i}SHAPE != PUNCTUAL\n\t\t#if LIGHT{i}SHAPE == RECT\n\t\t\tcalcRectLightValues(light{i}_position, light{i}_halfWidth, light{i}_halfHeight);\n\t\t#elif LIGHT{i}SHAPE == DISK\n\t\t\tcalcDiskLightValues(light{i}_position, light{i}_halfWidth, light{i}_halfHeight);\n\t\t#elif LIGHT{i}SHAPE == SPHERE\n\t\t\tcalcSphereLightValues(light{i}_position, light{i}_halfWidth, light{i}_halfHeight);\n\t\t#endif\n\t#endif\n\t#if LIGHT{i}SHAPE != PUNCTUAL\n\t\t#if LIGHT{i}TYPE == DIRECTIONAL\n\t\t\tfloat attenDiffuse = getLightDiffuse(litArgs_worldNormal, dViewDirW, dLightDirNormW);\n\t\t#else\n\t\t\t#if LIGHT{i}SHAPE == RECT\n\t\t\t\tfloat attenDiffuse = getRectLightDiffuse(litArgs_worldNormal, dViewDirW, lightDirW, dLightDirNormW) * 16.0;\n\t\t\t#elif LIGHT{i}SHAPE == DISK\n\t\t\t\tfloat attenDiffuse = getDiskLightDiffuse(litArgs_worldNormal, dViewDirW, lightDirW, dLightDirNormW) * 16.0;\n\t\t\t#elif LIGHT{i}SHAPE == SPHERE\n\t\t\t\tfloat attenDiffuse = getSphereLightDiffuse(litArgs_worldNormal, dViewDirW, lightDirW, dLightDirNormW) * 16.0;\n\t\t\t#endif\n\t\t#endif\n\t#else\n\t\tdAtten *= getLightDiffuse(litArgs_worldNormal, vec3(0.0), dLightDirNormW);\n\t#endif\n\t#ifdef LIGHT{i}CASTSHADOW\n\t\t#if LIGHT{i}TYPE == DIRECTIONAL\n\t\t\tfloat shadow = getShadow{i}(vec3(0.0));\n\t\t#else\n\t\t\tfloat shadow = getShadow{i}(lightDirW);\n\t\t#endif\n\t\tshadow = mix(1.0, shadow, light{i}_shadowIntensity);\n\t\tdAtten *= shadow;\n\t\t#if defined(LIT_SHADOW_CATCHER) && LIGHT{i}TYPE == DIRECTIONAL\n\t\t\tdShadowCatcher *= shadow;\n\t\t#endif\t\t\t\n\t#endif\n\t#if defined(STD_PARALLAX_SELF_SHADOW) && LIGHT{i}TYPE == DIRECTIONAL\n\t\tdAtten *= getParallaxSelfShadow(dLightDirNormW);\n\t#endif\n\t#if LIGHT{i}SHAPE != PUNCTUAL\n\t\t#ifdef LIT_SPECULAR\n\t\t\tdDiffuseLight += ((attenDiffuse * dAtten) * lightColor) * (1.0 - dLTCSpecFres);\n\t\t#else\n\t\t\tdDiffuseLight += (attenDiffuse * dAtten) * lightColor;\n\t\t#endif\t\t\t\t\t\t\n\t#else\n\t\t#if defined(AREA_LIGHTS) && defined(LIT_SPECULAR)\n\t\t\tdDiffuseLight += (dAtten * lightColor) * (1.0 - litArgs_specularity);\n\t\t#else\n\t\t\tdDiffuseLight += dAtten * lightColor;\n\t\t#endif\n\t#endif\n\t#ifdef LIGHT{i}AFFECT_SPECULARITY\n\t\t#if LIGHT{i}SHAPE != PUNCTUAL\n\t\t\t#ifdef LIT_CLEARCOAT\n\t\t\t\t#if LIGHT{i}SHAPE == RECT\n\t\t\t\t\tccSpecularLight += ccLTCSpecFres * getRectLightSpecular(litArgs_clearcoat_worldNormal, dViewDirW) * dAtten * lightColor;\n\t\t\t\t#elif LIGHT{i}SHAPE == DISK\n\t\t\t\t\tccSpecularLight += ccLTCSpecFres * getDiskLightSpecular(litArgs_clearcoat_worldNormal, dViewDirW) * dAtten * lightColor;\n\t\t\t\t#elif LIGHT{i}SHAPE == SPHERE\n\t\t\t\t\tccSpecularLight += ccLTCSpecFres * getSphereLightSpecular(litArgs_clearcoat_worldNormal, dViewDirW) * dAtten * lightColor;\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t\t#ifdef LIT_SPECULAR\n\t\t\t\t#if LIGHT{i}SHAPE == RECT\n\t\t\t\t\tdSpecularLight += dLTCSpecFres * getRectLightSpecular(litArgs_worldNormal, dViewDirW) * dAtten * lightColor;\n\t\t\t\t#elif LIGHT{i}SHAPE == DISK\n\t\t\t\t\tdSpecularLight += dLTCSpecFres * getDiskLightSpecular(litArgs_worldNormal, dViewDirW) * dAtten * lightColor;\n\t\t\t\t#elif LIGHT{i}SHAPE == SPHERE\n\t\t\t\t\tdSpecularLight += dLTCSpecFres * getSphereLightSpecular(litArgs_worldNormal, dViewDirW) * dAtten * lightColor;\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t#else\n\t\t\t#if LIGHT{i}TYPE == DIRECTIONAL && LIT_FRESNEL_MODEL != NONE\n\t\t\t\t#define LIGHT{i}FRESNEL\n\t\t\t#endif\n\t\t\t#ifdef LIT_SPECULAR\n\t\t\t\tvec3 halfDirW = normalize(-dLightDirNormW + dViewDirW);\n\t\t\t#endif\n\t\t\t#ifdef LIT_CLEARCOAT\n\t\t\t\tvec3 lightspecularCC = getLightSpecular(halfDirW, ccReflDirW, litArgs_clearcoat_worldNormal, dViewDirW, dLightDirNormW, litArgs_clearcoat_gloss, dTBN) * dAtten * lightColor;\n\t\t\t\t#ifdef LIGHT{i}FRESNEL\n\t\t\t\t\tlightspecularCC *= getFresnelCC(dot(dViewDirW, halfDirW));\n\t\t\t\t#endif\n\t\t\t\tccSpecularLight += lightspecularCC;\n\t\t\t#endif\n\t\t\t#ifdef LIT_SHEEN\n\t\t\t\tsSpecularLight += getLightSpecularSheen(halfDirW, litArgs_worldNormal, dViewDirW, dLightDirNormW, litArgs_sheen_gloss) * dAtten * lightColor;\n\t\t\t#endif\n\t\t\t#ifdef LIT_SPECULAR\n\t\t\t\tvec3 lightSpecular = getLightSpecular(halfDirW, dReflDirW, litArgs_worldNormal, dViewDirW, dLightDirNormW, litArgs_gloss, dTBN) * dAtten * lightColor;\n\t\t\t\t#ifdef LIGHT{i}FRESNEL\n\t\t\t\t\t#if defined(LIT_IRIDESCENCE)\n\t\t\t\t\t\tlightSpecular *= getFresnel(dot(dViewDirW, halfDirW), litArgs_gloss, litArgs_specularity, iridescenceFresnel, litArgs_iridescence_intensity);\n\t\t\t\t\t#else\n\t\t\t\t\t\tlightSpecular *= getFresnel(dot(dViewDirW, halfDirW), litArgs_gloss, litArgs_specularity);\n\t\t\t\t\t#endif\n\t\t\t\t#else\n\t\t\t\t\tlightSpecular *= litArgs_specularity;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\tdSpecularLight += lightSpecular;\n\t\t\t#endif\n\t\t#endif\n\t#endif\n}\n#endif\n`;\n\nvar lightFunctionShadow_default = `\n#ifdef LIGHT{i}CASTSHADOW\n\t#ifdef LIGHT{i}_SHADOW_SAMPLE_POINT\n\t\tvec3 getShadowSampleCoordOmni{i}(vec4 shadowParams, vec3 worldPosition, vec3 lightPos, inout vec3 lightDir, vec3 lightDirNorm, vec3 normal) {\n\t\t\t#ifdef LIGHT{i}_SHADOW_SAMPLE_NORMAL_OFFSET\n\t\t\t\tfloat distScale = length(lightDir);\n\t\t\t\tvec3 surfacePosition = worldPosition + normal * shadowParams.y * clamp(1.0 - dot(normal, -lightDirNorm), 0.0, 1.0) * distScale;\n\t\t\t\tlightDir = surfacePosition - lightPos;\n\t\t\t#endif\n\t\t\treturn lightDir;\n\t\t}\n\t#endif\n\t#ifndef LIGHT{i}_SHADOW_SAMPLE_POINT\n\t\tvec3 getShadowSampleCoord{i}(mat4 shadowTransform, vec4 shadowParams, vec3 worldPosition, vec3 lightPos, inout vec3 lightDir, vec3 lightDirNorm, vec3 normal) {\n\t\t\tvec3 surfacePosition = worldPosition;\n\t\t\t#ifdef LIGHT{i}_SHADOW_SAMPLE_SOURCE_ZBUFFER\n\t\t\t\t#ifdef LIGHT{i}_SHADOW_SAMPLE_NORMAL_OFFSET\n\t\t\t\t\tsurfacePosition = surfacePosition + normal * shadowParams.y;\n\t\t\t\t#endif\n\t\t\t#else\n\t\t\t\t#ifdef LIGHT{i}_SHADOW_SAMPLE_NORMAL_OFFSET\n\t\t\t\t\t#ifdef LIGHT{i}_SHADOW_SAMPLE_ORTHO\n\t\t\t\t\t\tfloat distScale = 1.0;\n\t\t\t\t\t#else\n\t\t\t\t\t\tfloat distScale = abs(dot(worldPosition - lightPos, lightDirNorm));\n\t\t\t\t\t#endif\n\t\t\t\t\tsurfacePosition = surfacePosition + normal * shadowParams.y * clamp(1.0 - dot(normal, -lightDirNorm), 0.0, 1.0) * distScale;\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t\tvec4 positionInShadowSpace = shadowTransform * vec4(surfacePosition, 1.0);\n\t\t\t#ifdef LIGHT{i}_SHADOW_SAMPLE_ORTHO\n\t\t\t\tpositionInShadowSpace.z = saturate(positionInShadowSpace.z) - 0.0001;\n\t\t\t#else\n\t\t\t\t#ifdef LIGHT{i}_SHADOW_SAMPLE_SOURCE_ZBUFFER\n\t\t\t\t\tpositionInShadowSpace.xyz /= positionInShadowSpace.w;\n\t\t\t\t#else\n\t\t\t\t\tpositionInShadowSpace.xy /= positionInShadowSpace.w;\n\t\t\t\t\tpositionInShadowSpace.z = length(lightDir) * shadowParams.w;\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t\treturn positionInShadowSpace.xyz;\n\t\t}\n\t#endif\n\tfloat getShadow{i}(vec3 lightDirW) {\n\t\t#if LIGHT{i}TYPE == OMNI\n\t\t\tvec3 shadowCoord = getShadowSampleCoordOmni{i}(light{i}_shadowParams, vPositionW, light{i}_position, lightDirW, dLightDirNormW, dVertexNormalW);\n\t\t#else\n\t\t\t#ifdef LIGHT{i}_SHADOW_CASCADES\n\t\t\t\tint cascadeIndex = getShadowCascadeIndex(light{i}_shadowCascadeDistances, light{i}_shadowCascadeCount);\n\t\t\t\t#ifdef LIGHT{i}_SHADOW_CASCADE_BLEND\n\t\t\t\t\tcascadeIndex = ditherShadowCascadeIndex(cascadeIndex, light{i}_shadowCascadeDistances, light{i}_shadowCascadeCount, light{i}_shadowCascadeBlend);\n\t\t\t\t#endif\n\t\t\t\tmat4 shadowMatrix = light{i}_shadowMatrixPalette[cascadeIndex];\n\t\t\t#else\n\t\t\t\tmat4 shadowMatrix = light{i}_shadowMatrix;\n\t\t\t#endif\n\t\t\t#if LIGHT{i}TYPE == DIRECTIONAL\n\t\t\t\tvec3 shadowCoord = getShadowSampleCoord{i}(shadowMatrix, light{i}_shadowParams, vPositionW, vec3(0.0), lightDirW, dLightDirNormW, dVertexNormalW);\n\t\t\t#else\n\t\t\t\tvec3 shadowCoord = getShadowSampleCoord{i}(shadowMatrix, light{i}_shadowParams, vPositionW, light{i}_position, lightDirW, dLightDirNormW, dVertexNormalW);\n\t\t\t#endif\n\t\t#endif\n\t\t#if LIGHT{i}TYPE == DIRECTIONAL\n\t\t\tshadowCoord = fadeShadow(shadowCoord, light{i}_shadowCascadeDistances);\n\t\t#endif\n\t\t#if LIGHT{i}TYPE == DIRECTIONAL\n\t\t\t#if LIGHT{i}SHADOWTYPE == VSM_16F\n\t\t\t\treturn getShadowVSM16(SHADOWMAP_PASS(light{i}_shadowMap), shadowCoord, light{i}_shadowParams, 5.54);\n\t\t\t#endif\n\t\t\t#if LIGHT{i}SHADOWTYPE == VSM_32F\n\t\t\t\treturn getShadowVSM32(SHADOWMAP_PASS(light{i}_shadowMap), shadowCoord, light{i}_shadowParams, 15.0);\n\t\t\t#endif\n\t\t\t#if LIGHT{i}SHADOWTYPE == PCSS_32F\n\t\t\t\t#if LIGHT{i}SHAPE != PUNCTUAL\n\t\t\t\t\tvec2 shadowSearchArea = vec2(length(light{i}_halfWidth), length(light{i}_halfHeight)) * light{i}_shadowSearchArea;\n\t\t\t\t\treturn getShadowPCSS(SHADOWMAP_PASS(light{i}_shadowMap), shadowCoord, light{i}_shadowParams, light{i}_cameraParams, shadowSearchArea, lightDirW);\n\t\t\t\t#else\n\t\t\t\t\tvec4 pcssCameraParams = light{i}_cameraParams;\n\t\t\t\t\t#ifdef LIGHT{i}_SHADOW_CASCADES\n\t\t\t\t\t\tpcssCameraParams.x = light{i}_shadowCascadeRadii[cascadeIndex];\n\t\t\t\t\t#endif\n\t\t\t\t\treturn getShadowPCSS(SHADOWMAP_PASS(light{i}_shadowMap), shadowCoord, light{i}_shadowParams, pcssCameraParams, light{i}_softShadowParams, lightDirW);\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t\t#if LIGHT{i}SHADOWTYPE == PCF1_16F || LIGHT{i}SHADOWTYPE == PCF1_32F\n\t\t\t\treturn getShadowPCF1x1(SHADOWMAP_PASS(light{i}_shadowMap), shadowCoord, light{i}_shadowParams);\n\t\t\t#endif\n\t\t\t#if LIGHT{i}SHADOWTYPE == PCF3_16F || LIGHT{i}SHADOWTYPE == PCF3_32F\n\t\t\t\treturn getShadowPCF3x3(SHADOWMAP_PASS(light{i}_shadowMap), shadowCoord, light{i}_shadowParams);\n\t\t\t#endif\n\t\t\t#if LIGHT{i}SHADOWTYPE == PCF5_16F || LIGHT{i}SHADOWTYPE == PCF5_32F\n\t\t\t\treturn getShadowPCF5x5(SHADOWMAP_PASS(light{i}_shadowMap), shadowCoord, light{i}_shadowParams);\n\t\t\t#endif\n\t\t#endif\n\t\t#if LIGHT{i}TYPE == SPOT\n\t\t\t#if LIGHT{i}SHADOWTYPE == VSM_16F\n\t\t\t\treturn getShadowSpotVSM16(SHADOWMAP_PASS(light{i}_shadowMap), shadowCoord, light{i}_shadowParams, 5.54, lightDirW);\n\t\t\t#endif\n\t\t\t#if LIGHT{i}SHADOWTYPE == VSM_32F\n\t\t\t\treturn getShadowSpotVSM32(SHADOWMAP_PASS(light{i}_shadowMap), shadowCoord, light{i}_shadowParams, 15.0, lightDirW);\n\t\t\t#endif\n\t\t\t#if LIGHT{i}SHADOWTYPE == PCSS_32F\n\t\t\t\t#if LIGHT{i}SHAPE != PUNCTUAL\n\t\t\t\t\tvec2 shadowSearchArea = vec2(length(light{i}_halfWidth), length(light{i}_halfHeight)) * light{i}_shadowSearchArea;\n\t\t\t\t#else\n\t\t\t\t\tvec2 shadowSearchArea = vec2(light{i}_shadowSearchArea);\n\t\t\t\t#endif\n\t\t\t\treturn getShadowSpotPCSS(SHADOWMAP_PASS(light{i}_shadowMap), shadowCoord, light{i}_shadowParams, light{i}_cameraParams, shadowSearchArea, lightDirW);\n\t\t\t#endif\n\t\t\t#if LIGHT{i}SHADOWTYPE == PCF1_16F || LIGHT{i}SHADOWTYPE == PCF1_32F\n\t\t\t\treturn getShadowSpotPCF1x1(SHADOWMAP_PASS(light{i}_shadowMap), shadowCoord, light{i}_shadowParams);\n\t\t\t#endif\n\t\t\t#if LIGHT{i}SHADOWTYPE == PCF3_16F || LIGHT{i}SHADOWTYPE == PCF3_32F\n\t\t\t\treturn getShadowSpotPCF3x3(SHADOWMAP_PASS(light{i}_shadowMap), shadowCoord, light{i}_shadowParams);\n\t\t\t#endif\n\t\t\t#if LIGHT{i}SHADOWTYPE == PCF5_16F || LIGHT{i}SHADOWTYPE == PCF5_32F\n\t\t\t\treturn getShadowSpotPCF5x5(SHADOWMAP_PASS(light{i}_shadowMap), shadowCoord, light{i}_shadowParams);\n\t\t\t#endif\n\t\t#endif\n\t\t#if LIGHT{i}TYPE == OMNI\n\t\t\t#if LIGHT{i}SHADOWTYPE == PCSS_32F\n\t\t\t\t#if LIGHT{i}SHAPE != PUNCTUAL\n\t\t\t\t\tvec2 shadowSearchArea = vec2(length(light{i}_halfWidth), length(light{i}_halfHeight)) * light{i}_shadowSearchArea;\n\t\t\t\t#else\n\t\t\t\t\tvec2 shadowSearchArea = vec2(light{i}_shadowSearchArea);\n\t\t\t\t#endif\n\t\t\t\treturn getShadowOmniPCSS(SHADOWMAP_PASS(light{i}_shadowMap), shadowCoord, light{i}_shadowParams, light{i}_cameraParams, shadowSearchArea, lightDirW);\n\t\t\t#endif\n\t\t\t#if LIGHT{i}SHADOWTYPE == PCF1_16F || LIGHT{i}SHADOWTYPE == PCF1_32F\n\t\t\t\treturn getShadowOmniPCF1x1(SHADOWMAP_PASS(light{i}_shadowMap), shadowCoord, light{i}_shadowParams, lightDirW);\n\t\t\t#endif\n\t\t\t#if LIGHT{i}SHADOWTYPE == PCF3_16F || LIGHT{i}SHADOWTYPE == PCF3_32F\n\t\t\t\treturn getShadowOmniPCF3x3(SHADOWMAP_PASS(light{i}_shadowMap), shadowCoord, light{i}_shadowParams, lightDirW);\n\t\t\t#endif\n\t\t#endif\n\t}\n#endif\n`;\n\nvar lighting_default = `\n#ifdef LIT_CLUSTERED_LIGHTS\n\t#define LIT_CODE_FALLOFF_LINEAR\n\t#define LIT_CODE_FALLOFF_SQUARED\n\t#define LIT_CODE_LIGHTS_POINT\n\t#define LIT_CODE_LIGHTS_SPOT\n#endif\n#ifdef AREA_LIGHTS\n\tuniform highp sampler2D areaLightsLutTex1;\n\tuniform highp sampler2D areaLightsLutTex2;\n#endif\n#ifdef LIT_LIGHTING\n\t#include \"lightDiffuseLambertPS\"\n\t#if defined(AREA_LIGHTS) || defined(LIT_CLUSTERED_AREA_LIGHTS)\n\t\t#include \"ltcPS\"\n\t#endif\n#endif\n#ifdef SHADOW_DIRECTIONAL\n\t#include \"shadowCascadesPS\"\n#endif\n#if defined(SHADOW_KIND_PCF1)\n\t#include \"shadowPCF1PS\"\n#endif\n#if defined(SHADOW_KIND_PCF3)\n\t#include \"shadowPCF3PS\"\n#endif\n#if defined(SHADOW_KIND_PCF5)\n\t#include \"shadowPCF5PS\"\n#endif\n#if defined(SHADOW_KIND_PCSS)\n\t#include \"linearizeDepthPS\"\n\t#include \"shadowPCSSPS\"\n\t#include \"shadowSoftPS\"\n#endif\n#if defined(SHADOW_KIND_VSM)\n\t#include \"shadowEVSMPS\"\n#endif\n#ifdef LIT_CODE_FALLOFF_LINEAR\n\t#include \"falloffLinearPS\"\n#endif\n#ifdef LIT_CODE_FALLOFF_SQUARED\n\t#include \"falloffInvSquaredPS\"\n#endif\n#ifdef LIT_CODE_LIGHTS_POINT\n\t#include \"lightDirPointPS\"\n#endif\n#ifdef LIT_CODE_LIGHTS_SPOT\n\t#include \"spotPS\"\n#endif\n#ifdef LIT_CODE_COOKIE\n\t#include \"cookiePS\"\n#endif\n#ifdef LIT_CLUSTERED_LIGHTS\n\t#include \"clusteredLightPS\"\n#endif\n#ifdef LIGHT_COUNT > 0\n\t#include \"lightFunctionShadowPS, LIGHT_COUNT\"\n\t#include \"lightFunctionLightPS, LIGHT_COUNT\"\n#endif\n`;\n\nvar lightmapAdd_default = `\nvoid addLightMap(\n\tvec3 lightmap, \n\tvec3 dir, \n\tvec3 worldNormal, \n\tvec3 viewDir, \n\tvec3 reflectionDir, \n\tfloat gloss, \n\tvec3 specularity, \n\tvec3 vertexNormal, \n\tmat3 tbn\n#if defined(LIT_IRIDESCENCE)\n\tvec3 iridescenceFresnel, \n\tfloat iridescenceIntensity\n#endif\n) {\n\t#if defined(LIT_SPECULAR) && defined(LIT_DIR_LIGHTMAP)\n\t\tif (dot(dir, dir) < 0.0001) {\n\t\t\t\tdDiffuseLight += lightmap;\n\t\t} else {\n\t\t\tfloat vlight = saturate(dot(dir, -vertexNormal));\n\t\t\tfloat flight = saturate(dot(dir, -worldNormal));\n\t\t\tfloat nlight = (flight / max(vlight, 0.01)) * 0.5;\n\t\t\tdDiffuseLight += lightmap * nlight * 2.0;\n\t\t\tvec3 halfDir = normalize(-dir + viewDir);\n\t\t\tvec3 specularLight = lightmap * getLightSpecular(halfDir, reflectionDir, worldNormal, viewDir, dir, gloss, tbn);\n\t\t\t#ifdef LIT_SPECULAR_FRESNEL\n\t\t\t\tspecularLight *= \n\t\t\t\t\tgetFresnel(dot(viewDir, halfDir), \n\t\t\t\t\tgloss, \n\t\t\t\t\tspecularity\n\t\t\t\t#if defined(LIT_IRIDESCENCE)\n\t\t\t\t\t, iridescenceFresnel,\n\t\t\t\t\tiridescenceIntensity\n\t\t\t\t#endif\n\t\t\t\t\t);\n\t\t\t#endif\n\t\t\tdSpecularLight += specularLight;\n\t\t}\n\t#else\n\t\tdDiffuseLight += lightmap;\n\t#endif\n}\n`;\n\nvar lightmap_default = `\n#ifdef STD_LIGHTMAP_DIR\n\tvec3 dLightmapDir;\n\tuniform sampler2D texture_dirLightMap;\n#endif\nvoid getLightMap() {\n\tdLightmap = vec3(1.0);\n\t#ifdef STD_LIGHT_TEXTURE\n\t\tdLightmap *= {STD_LIGHT_TEXTURE_DECODE}(texture2DBias({STD_LIGHT_TEXTURE_NAME}, {STD_LIGHT_TEXTURE_UV}, textureBias)).{STD_LIGHT_TEXTURE_CHANNEL};\n\t\t#ifdef STD_LIGHTMAP_DIR\n\t\t\tvec3 dir = texture2DBias(texture_dirLightMap, {STD_LIGHT_TEXTURE_UV}, textureBias).xyz * 2.0 - 1.0;\n\t\t\tfloat dirDot = dot(dir, dir);\n\t\t\tdLightmapDir = (dirDot > 0.001) ? dir / sqrt(dirDot) : vec3(0.0);\n\t\t#endif\n\t#endif\n\t#ifdef STD_LIGHT_VERTEX\n\t\tdLightmap *= saturate(vVertexColor.{STD_LIGHT_VERTEX_CHANNEL});\n\t#endif\n}\n`;\n\nvar lightSpecularAnisoGGX_default = `\nfloat calcLightSpecular(float gloss, vec3 worldNormal, vec3 viewDir, vec3 h, vec3 lightDirNorm, mat3 tbn) {\n\tfloat PI = 3.141592653589793;\n\tfloat roughness = max((1.0 - gloss) * (1.0 - gloss), 0.001);\n\tfloat alphaRoughness = roughness * roughness;\n\tfloat anisotropy = dAnisotropy;\n\tvec2 direction = dAnisotropyRotation;\n\tfloat at = mix(alphaRoughness, 1.0, anisotropy * anisotropy);\n\tfloat ab = clamp(alphaRoughness, 0.001, 1.0);\n\tvec3 anisotropicT = normalize(tbn * vec3(direction, 0.0));\n\tvec3 anisotropicB = normalize(cross(tbn[2], anisotropicT));\n\tfloat NoH = dot(worldNormal, h);\n\tfloat ToH = dot(anisotropicT, h);\n\tfloat BoH = dot(anisotropicB, h);\n\tfloat a2 = at * ab;\n\tvec3 v = vec3(ab * ToH, at * BoH, a2 * NoH);\n\tfloat v2 = dot(v, v);\n\tfloat w2 = a2 / v2;\n\tfloat D = a2 * w2 * w2 * (1.0 / PI);\n\tfloat ToV = dot(anisotropicT, viewDir);\n\tfloat BoV = dot(anisotropicB, viewDir);\n\tfloat ToL = dot(anisotropicT, -lightDirNorm);\n\tfloat BoL = dot(anisotropicB, -lightDirNorm);\n\tfloat NoV = dot(worldNormal, viewDir);\n\tfloat NoL = dot(worldNormal, -lightDirNorm);\n\tfloat lambdaV = NoL * length(vec3(at * ToV, ab * BoV, NoV));\n\tfloat lambdaL = NoV * length(vec3(at * ToL, ab * BoL, NoL));\n\tfloat G = 0.5 / (lambdaV + lambdaL);\n\treturn D * G;\n}\nfloat getLightSpecular(vec3 h, vec3 reflDir, vec3 worldNormal, vec3 viewDir, vec3 lightDirNorm, float gloss, mat3 tbn) {\n\treturn calcLightSpecular(gloss, worldNormal, viewDir, h, lightDirNorm, tbn);\n}\n`;\n\nvar lightSpecularGGX_default = `\nfloat calcLightSpecular(float gloss, vec3 worldNormal, vec3 viewDir, vec3 h, vec3 lightDirNorm) {\n\tconst float PI = 3.141592653589793;\n\tfloat roughness = max((1.0 - gloss) * (1.0 - gloss), 0.001);\n\tfloat alpha = roughness * roughness;\n\tfloat NoH = max(dot(worldNormal, h), 0.0);\n\tfloat NoV = max(dot(worldNormal, viewDir), 0.0);\n\tfloat NoL = max(dot(worldNormal, -lightDirNorm), 0.0);\n\tfloat NoH2 = NoH * NoH;\n\tfloat denom = NoH2 * (alpha - 1.0) + 1.0;\n\tfloat D = alpha / (PI * denom * denom);\n\tfloat alpha2 = alpha * alpha;\n\tfloat lambdaV = NoL * sqrt(NoV * NoV * (1.0 - alpha2) + alpha2);\n\tfloat lambdaL = NoV * sqrt(NoL * NoL * (1.0 - alpha2) + alpha2);\n\tfloat G = 0.5 / max(lambdaV + lambdaL, 0.00001);\n\treturn D * G;\n}\nfloat getLightSpecular(vec3 h, vec3 reflDir, vec3 worldNormal, vec3 viewDir, vec3 lightDirNorm, float gloss, mat3 tbn) {\n\treturn calcLightSpecular(gloss, worldNormal, viewDir, h, lightDirNorm);\n}\n`;\n\nvar lightSpecularBlinn_default = `\nfloat calcLightSpecular(float gloss, vec3 worldNormal, vec3 h) {\n\tfloat nh = max( dot( h, worldNormal ), 0.0 );\n\tfloat specPow = exp2(gloss * 11.0);\n\tspecPow = max(specPow, 0.0001);\n\treturn pow(nh, specPow) * (specPow + 2.0) / 8.0;\n}\nfloat getLightSpecular(vec3 h, vec3 reflDir, vec3 worldNormal, vec3 viewDir, vec3 lightDirNorm, float gloss, mat3 tbn) {\n\treturn calcLightSpecular(gloss, worldNormal, h);\n}\n`;\n\nvar lightSheen_default = `\nfloat sheenD(vec3 normal, vec3 h, float roughness) {\n\tconst float PI = 3.141592653589793;\n\tfloat invR = 1.0 / (roughness * roughness);\n\tfloat cos2h = max(dot(normal, h), 0.0);\n\tcos2h *= cos2h;\n\tfloat sin2h = max(1.0 - cos2h, 0.0078125);\n\treturn (2.0 + invR) * pow(sin2h, invR * 0.5) / (2.0 * PI);\n}\nfloat sheenV(vec3 normal, vec3 viewDir, vec3 light) {\n\tfloat NoV = max(dot(normal, viewDir), 0.000001);\n\tfloat NoL = max(dot(normal, light), 0.000001);\n\treturn 1.0 / (4.0 * (NoL + NoV - NoL * NoV));\n}\nfloat getLightSpecularSheen(vec3 h, vec3 worldNormal, vec3 viewDir, vec3 lightDirNorm, float sheenGloss) {\n\tfloat D = sheenD(worldNormal, h, sheenGloss);\n\tfloat V = sheenV(worldNormal, viewDir, -lightDirNorm);\n\treturn D * V;\n}\n`;\n\nvar linearizeDepth_default = `\n#ifndef LINEARIZE_DEPTH\n#define LINEARIZE_DEPTH\nfloat linearizeDepthWithParams(float z, vec4 cameraParams) {\n\tif (cameraParams.w == 0.0)\n\t\treturn (cameraParams.z * cameraParams.y) / (cameraParams.y + z * (cameraParams.z - cameraParams.y));\n\telse\n\t\treturn cameraParams.z + z * (cameraParams.y - cameraParams.z);\n}\n#ifndef CAMERAPLANES\n\t#define CAMERAPLANES\n\tuniform vec4 camera_params;\n#endif\nfloat linearizeDepth(float z) {\n\treturn linearizeDepthWithParams(z, camera_params);\n}\n#endif\n`;\n\nvar litForwardBackend_default = `\nvoid evaluateBackend() {\n\t#ifdef LIT_SSAO\n\t\tlitArgs_ao *= texture2DLod(ssaoTexture, gl_FragCoord.xy * ssaoTextureSizeInv, 0.0).r;\n\t#endif\n\t#ifdef LIT_NEEDS_NORMAL\n\t\t#ifdef LIT_SPECULAR\n\t\t\tgetReflDir(litArgs_worldNormal, dViewDirW, litArgs_gloss, dTBN);\n\t\t#endif\n\t\t#ifdef LIT_CLEARCOAT\n\t\t\tccReflDirW = normalize(-reflect(dViewDirW, litArgs_clearcoat_worldNormal));\n\t\t#endif\n\t#endif\n\t#if defined(LIT_SPECULAR_OR_REFLECTION) || defined(LIT_REFRACTION)\n\t\t#ifdef LIT_METALNESS\n\t\t\tfloat f0 = 1.0 / litArgs_ior;\n\t\t\tf0 = (f0 - 1.0) / (f0 + 1.0);\n\t\t\tf0 *= f0;\n\t\t\t#ifdef LIT_SPECULARITY_FACTOR\n\t\t\t\tlitArgs_specularity = getSpecularModulate(litArgs_specularity, litArgs_albedo, litArgs_metalness, f0, litArgs_specularityFactor);\n\t\t\t#else\n\t\t\t\tlitArgs_specularity = getSpecularModulate(litArgs_specularity, litArgs_albedo, litArgs_metalness, f0, 1.0);\n\t\t\t#endif\n\t\t\tlitArgs_albedo = getAlbedoModulate(litArgs_albedo, litArgs_metalness);\n\t\t#endif\n\t\t#ifdef LIT_IRIDESCENCE\n\t\t\tvec3 iridescenceFresnel = getIridescence(saturate(dot(dViewDirW, litArgs_worldNormal)), litArgs_specularity, litArgs_iridescence_thickness);\n\t\t#endif\n\t#endif\n\t#ifdef LIT_ADD_AMBIENT\n\t\taddAmbient(litArgs_worldNormal);\n\t\t#ifdef LIT_SPECULAR\n\t\t\tdDiffuseLight = dDiffuseLight * (1.0 - litArgs_specularity);\n\t\t#endif\n\t\t#ifdef LIT_SEPARATE_AMBIENT\n\t\t\tvec3 dAmbientLight = dDiffuseLight;\n\t\t\tdDiffuseLight = vec3(0);\n\t\t#endif\n\t#endif\n\t#ifndef LIT_OLD_AMBIENT\n\t\tdDiffuseLight *= material_ambient;\n\t#endif\n\t#ifdef LIT_AO\n\t\t#ifndef LIT_OCCLUDE_DIRECT\n\t\t\toccludeDiffuse(litArgs_ao);\n\t\t#endif\n\t#endif\n\t#ifdef LIT_LIGHTMAP\n\t\taddLightMap(\n\t\t\tlitArgs_lightmap, \n\t\t\tlitArgs_lightmapDir, \n\t\t\tlitArgs_worldNormal, \n\t\t\tdViewDirW, \n\t\t\tdReflDirW, \n\t\t\tlitArgs_gloss, \n\t\t\tlitArgs_specularity, \n\t\t\tdVertexNormalW,\n\t\t\tdTBN\n\t\t#if defined(LIT_IRIDESCENCE)\n\t\t\t, iridescenceFresnel,\n\t\t\tlitArgs_iridescence_intensity\n\t\t#endif\n\t\t);\n\t#endif\n\t#ifdef LIT_LIGHTING || LIT_REFLECTIONS\n\t\t#ifdef LIT_REFLECTIONS\n\t\t\t#ifdef LIT_CLEARCOAT\n\t\t\t\taddReflectionCC(ccReflDirW, litArgs_clearcoat_gloss);\n\t\t\t\n\t\t\t\t#ifdef LIT_SPECULAR_FRESNEL\n\t\t\t\t\tccFresnel = getFresnelCC(dot(dViewDirW, litArgs_clearcoat_worldNormal));\n\t\t\t\t\tccReflection *= ccFresnel;\n\t\t\t\t#else\n\t\t\t\t\tccFresnel = 0.0;\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t\t#ifdef LIT_SPECULARITY_FACTOR\n\t\t\t\tccReflection *= litArgs_specularityFactor;\n\t\t\t#endif\n\t\t\t#ifdef LIT_SHEEN\n\t\t\t\taddReflectionSheen(litArgs_worldNormal, dViewDirW, litArgs_sheen_gloss);\n\t\t\t#endif\n\t\t\taddReflection(dReflDirW, litArgs_gloss);\n\t\t\t#ifdef LIT_FRESNEL_MODEL\n\t\t\t\tdReflection.rgb *= getFresnel(\n\t\t\t\t\tdot(dViewDirW, litArgs_worldNormal), \n\t\t\t\t\tlitArgs_gloss, \n\t\t\t\t\tlitArgs_specularity\n\t\t\t\t#if defined(LIT_IRIDESCENCE)\n\t\t\t\t\t, iridescenceFresnel,\n\t\t\t\t\tlitArgs_iridescence_intensity\n\t\t\t\t#endif\n\t\t\t\t\t);\n\t\t\t#else\n\t\t\t\tdReflection.rgb *= litArgs_specularity;\n\t\t\t#endif\n\t\t#endif\n\t\t#ifdef AREA_LIGHTS\n\t\t\tdSpecularLight *= litArgs_specularity;\n\t\t\t#ifdef LIT_SPECULAR\n\t\t\t\tcalcLTCLightValues(litArgs_gloss, litArgs_worldNormal, dViewDirW, litArgs_specularity, litArgs_clearcoat_gloss, litArgs_clearcoat_worldNormal, litArgs_clearcoat_specularity);\n\t\t\t#endif\n\t\t#endif\n\t\t\n\t\t#ifdef LIGHT_COUNT > 0\n\t\t\t#include \"lightEvaluationPS, LIGHT_COUNT\"\n\t\t#endif\n\t\t#ifdef LIT_CLUSTERED_LIGHTS\n\t\t\taddClusteredLights(litArgs_worldNormal, dViewDirW, dReflDirW,\n\t\t\t\t#if defined(LIT_CLEARCOAT)\n\t\t\t\t\t\tccReflDirW,\n\t\t\t\t#endif\n\t\t\t\t\t\tlitArgs_gloss, litArgs_specularity, dVertexNormalW, dTBN, \n\t\t\t\t#if defined(LIT_IRIDESCENCE)\n\t\t\t\t\t\tiridescenceFresnel,\n\t\t\t\t#endif\n\t\t\t\t\t\tlitArgs_clearcoat_worldNormal, litArgs_clearcoat_gloss, litArgs_sheen_gloss, litArgs_iridescence_intensity\n\t\t\t);\n\t\t#endif\n\t\t#ifdef AREA_LIGHTS\n\t\t\t#ifdef LIT_CLEARCOAT\n\t\t\t\tlitArgs_clearcoat_specularity = 1.0;\n\t\t\t#endif\n\t\t\t#ifdef LIT_SPECULAR\n\t\t\t\tlitArgs_specularity = vec3(1);\n\t\t\t#endif\n\t\t#endif\n\t#endif\n\t#ifdef LIT_REFRACTION\n\t\taddRefraction(\n\t\t\tlitArgs_worldNormal,\n\t\t\tdViewDirW,\n\t\t\tlitArgs_thickness,\n\t\t\tlitArgs_gloss,\n\t\t\tlitArgs_specularity,\n\t\t\tlitArgs_albedo,\n\t\t\tlitArgs_transmission,\n\t\t\tlitArgs_ior,\n\t\t\tlitArgs_dispersion\n\t\t\t#if defined(LIT_IRIDESCENCE)\n\t\t\t\t, iridescenceFresnel,\n\t\t\t\tlitArgs_iridescence_intensity\n\t\t\t#endif\n\t\t);\n\t#endif\n\t#ifdef LIT_AO\n\t\t#ifdef LIT_OCCLUDE_DIRECT\n\t\t\toccludeDiffuse(litArgs_ao);\n\t\t#endif\n\t\t#if LIT_OCCLUDE_SPECULAR != NONE\n\t\t\toccludeSpecular(litArgs_gloss, litArgs_ao, litArgs_worldNormal, dViewDirW);\n\t\t#endif\n\t#endif\n\t#if !defined(LIT_OPACITY_FADES_SPECULAR)\n\t\t#if LIT_BLEND_TYPE == NORMAL || LIT_BLEND_TYPE == PREMULTIPLIED\n\t\t\tfloat specLum = dot((dSpecularLight + dReflection.rgb * dReflection.a), vec3( 0.2126, 0.7152, 0.0722 ));\n\t\t\t#ifdef LIT_CLEARCOAT\n\t\t\t\tspecLum += dot(ccSpecularLight * litArgs_clearcoat_specularity + ccReflection * litArgs_clearcoat_specularity, vec3( 0.2126, 0.7152, 0.0722 ));\n\t\t\t#endif\n\t\t\tlitArgs_opacity = clamp(litArgs_opacity + gammaCorrectInput(specLum), 0.0, 1.0);\n\t\t#endif\n\t\tlitArgs_opacity *= material_alphaFade;\n\t#endif\n\t#ifdef LIT_LIGHTMAP_BAKING\n\t\t#ifdef LIT_LIGHTMAP_BAKING_COLOR\n\t\t\t#include \"bakeLmEndPS\"\n\t\t#endif\n\t\t#ifdef LIT_LIGHTMAP_BAKING_DIR\n\t\t\t#include \"bakeDirLmEndPS\"\n\t\t#endif\n\t#else\n\t\t#include \"endPS\"\n\t\t#include \"outputAlphaPS\"\n\t#endif\n\t#ifdef LIT_MSDF\n\t\tgl_FragColor = applyMsdf(gl_FragColor);\n\t#endif\n\t#include \"outputPS\"\n\t#include \"debugOutputPS\"\n\t#ifdef LIT_SHADOW_CATCHER\n\t\tgl_FragColor.rgb = vec3(dShadowCatcher);\n\t#endif\n\t#include \"outlineOutputPS\"\n}\n`;\n\nvar litForwardDeclaration_default = `\nvec3 sReflection;\nvec3 dVertexNormalW;\nvec3 dTangentW;\nvec3 dBinormalW;\nvec3 dViewDirW;\nvec3 dReflDirW;\nvec3 ccReflDirW;\nvec3 dLightDirNormW;\nfloat dAtten;\nmat3 dTBN;\nvec4 dReflection;\nvec3 dDiffuseLight;\nvec3 dSpecularLight;\nfloat ccFresnel;\nvec3 ccReflection;\nvec3 ccSpecularLight;\nfloat ccSpecularityNoFres;\nvec3 sSpecularLight;\n#ifdef LIT_DISPERSION\n\tuniform float material_dispersion;\n#endif\n#ifndef LIT_OPACITY_FADES_SPECULAR\n\tuniform float material_alphaFade;\n#endif\n#ifdef LIT_SSAO\n\tuniform sampler2D ssaoTexture;\n\tuniform vec2 ssaoTextureSizeInv;\n#endif\n#ifdef LIT_SHADOW_CATCHER\n\tfloat dShadowCatcher = 1.0;\n#endif\n#if LIGHT_COUNT > 0\n\t#include \"lightDeclarationPS, LIGHT_COUNT\"\n#endif\n#ifdef LIT_SPECULAR\n\t#if LIT_FRESNEL_MODEL == NONE && !defined(LIT_REFLECTIONS) && !defined(LIT_DIFFUSE_MAP) \n\t\t#define LIT_OLD_AMBIENT\n\t#endif\n#endif\n#ifdef STD_LIGHTMAP_DIR\n\tuniform float bakeDir;\n#endif\n#ifdef LIT_LIGHTMAP_BAKING_ADD_AMBIENT\n\tuniform float ambientBakeOcclusionContrast;\n\tuniform float ambientBakeOcclusionBrightness;\n#endif\n`;\n\nvar litForwardMain_default = `\n#include \"sceneTexturesPS\"\nvoid main(void) {\n\t#include \"litUserMainStartPS\"\n\tdReflection = vec4(0);\n\t#ifdef LIT_CLEARCOAT\n\t\tccSpecularLight = vec3(0);\n\t\tccReflection = vec3(0);\n\t#endif\n\t#if LIT_NONE_SLICE_MODE == SLICED\n\t\t#include \"startNineSlicedPS\"\n\t#elif LIT_NONE_SLICE_MODE == TILED\n\t\t#include \"startNineSlicedTiledPS\"\n\t#endif\n\t#ifdef LIT_NEEDS_NORMAL\n\t\t#ifdef FLAT_SHADING\n\t\t\tdVertexNormalW = getFlatNormal(vPositionW);\n\t\t#else\n\t\t\tdVertexNormalW = normalize(vNormalW);\n\t\t#endif\n\t\t#ifdef LIT_TANGENTS\n\t\t\t#if defined(LIT_HEIGHTS) || defined(LIT_USE_NORMALS) || defined(LIT_USE_CLEARCOAT_NORMALS) || defined(LIT_GGX_SPECULAR)\n\t\t\t\tdTangentW = vTangentW;\n\t\t\t\tdBinormalW = vBinormalW;\n\t\t\t#endif\n\t\t#endif\n\t\tgetViewDir();\n\t\t#ifdef LIT_TBN\n\t\t\tgetTBN(dTangentW, dBinormalW, dVertexNormalW);\n\t\t\t#ifdef LIT_TWO_SIDED_LIGHTING\n\t\t\t\thandleTwoSidedLighting();\n\t\t\t#endif\n\t\t#endif\n\t#endif\n\tevaluateFrontend();\n\t#include \"debugProcessFrontendPS\"\n\tevaluateBackend();\n\t#ifdef SCENE_TEXTURE_DEPTH\n\t\twriteSceneTextureDepth(vLinearDepth, 1.0);\n\t#endif\n\t#include \"litUserMainEndPS\"\n}\n`;\n\nvar litForwardPostCode_default = `\n#ifdef LIT_NEEDS_NORMAL\n\t#include \"cubeMapRotatePS\"\n\t#include \"cubeMapProjectPS\"\n\t#include \"envProcPS\"\n#endif\n#if defined(LIT_SPECULAR_OR_REFLECTION) || defined(LIT_REFRACTION)\n\t#ifdef LIT_METALNESS\n\t\t#include \"metalnessModulatePS\"\n\t#endif\n\t#ifdef LIT_IRIDESCENCE\n\t\t#include \"iridescenceDiffractionPS\"\n\t#endif\n#endif\n#if defined(LIT_SPECULAR_OR_REFLECTION) || defined(LIT_REFRACTION)\n\t#if LIT_FRESNEL_MODEL == SCHLICK\n\t\t#include \"fresnelSchlickPS\"\n\t#endif\n#endif\n#ifdef LIT_AO\n\t#include \"aoDiffuseOccPS\"\n\t#include \"aoSpecOccPS\"\n#endif\n#if LIT_REFLECTION_SOURCE == ENVATLASHQ\n\t#include \"envAtlasPS\"\n\t#include \"reflectionEnvHQPS\"\n#elif LIT_REFLECTION_SOURCE == ENVATLAS\n\t#include \"envAtlasPS\"\n\t#include \"reflectionEnvPS\"\n#elif LIT_REFLECTION_SOURCE == CUBEMAP\n\t#include \"reflectionCubePS\"\n#elif LIT_REFLECTION_SOURCE == SPHEREMAP\n\t#include \"reflectionSpherePS\"\n#endif\n#ifdef LIT_REFLECTIONS\n\t#ifdef LIT_CLEARCOAT\n\t\t#include \"reflectionCCPS\"\n\t#endif\n\t#ifdef LIT_SHEEN\n\t\t#include \"reflectionSheenPS\"\n\t#endif\n#endif\n#ifdef LIT_REFRACTION\n\t#if defined(LIT_DYNAMIC_REFRACTION)\n\t\t#include \"refractionDynamicPS\"\n\t#elif LIT_REFLECTION_SOURCE != NONE\n\t\t#include \"refractionCubePS\"\n\t#endif\n#endif\n#ifdef LIT_SHEEN\n\t#include \"lightSheenPS\"\n#endif\nuniform vec3 material_ambient;\n#ifdef LIT_SPECULAR\n\t#ifdef LIT_LIGHTING\n\t\t#ifdef LIT_GGX_SPECULAR\n\t\t\t#ifdef LIT_ANISOTROPY\n\t\t\t\t#include \"lightSpecularAnisoGGXPS\"\n\t\t\t#else\n\t\t\t\t#include \"lightSpecularGGXPS\"\n\t\t\t#endif\n\t\t#else\n\t\t\t#include \"lightSpecularBlinnPS\"\n\t\t#endif\n\t#endif\n#endif\n#include \"combinePS\"\n#ifdef LIT_LIGHTMAP\n\t#include \"lightmapAddPS\"\n#endif\n#ifdef LIT_ADD_AMBIENT\n\t#include \"ambientPS\"\n#endif\n#ifdef LIT_MSDF\n\t#include \"msdfPS\"\n#endif\n#ifdef LIT_NEEDS_NORMAL\n\t#include \"viewDirPS\"\n\t#ifdef LIT_SPECULAR\n\t\t#ifdef LIT_ANISOTROPY\n\t\t\t#include \"reflDirAnisoPS\"\n\t\t#else\n\t\t\t#include \"reflDirPS\"\n\t\t#endif\n\t#endif\n#endif\n#include \"lightingPS\"\n`;\n\nvar litForwardPreCode_default = `\n#include \"basePS\"\n#include \"sphericalPS\"\n#include \"decodePS\"\n#include \"gammaPS\"\n#include \"tonemappingPS\"\n#include \"fogPS\"\n#if LIT_NONE_SLICE_MODE == SLICED\n\t#include \"baseNineSlicedPS\"\n#elif LIT_NONE_SLICE_MODE == TILED\n\t#include \"baseNineSlicedTiledPS\"\n#endif\n#ifdef FLAT_SHADING\n\t#include \"flatNormalPS\"\n#endif\n#ifdef LIT_TBN\n\t#include \"TBNPS\"\n\t#ifdef LIT_TWO_SIDED_LIGHTING\n\t\t#include \"twoSidedLightingPS\"\n\t#endif\n#endif\n`;\n\nvar litMain_default = `\n#include \"varyingsPS\"\n#include \"litUserDeclarationPS\"\n#include \"frontendDeclPS\"\n#include \"outlineDeclarationPS\"\n#if defined(PICK_PASS) || defined(PREPASS_PASS)\n\t#include \"frontendCodePS\"\n\t#include \"litUserCodePS\"\n\t#include \"litOtherMainPS\"\n#elif defined(SHADOW_PASS)\n\t#include \"frontendCodePS\"\n\t#include \"litUserCodePS\"\n\t#include \"litShadowMainPS\"\n#else\n\t#include \"litForwardDeclarationPS\"\n\t#include \"litForwardPreCodePS\"\n\t#include \"frontendCodePS\"\n\t#include \"litForwardPostCodePS\"\n\t#include \"litForwardBackendPS\"\n\t#include \"litUserCodePS\"\n\t#include \"litForwardMainPS\"\n#endif\n`;\n\nvar litMain_default2 = `\n#include \"varyingsVS\"\n#include  \"litUserDeclarationVS\"\n#ifdef VERTEX_COLOR\n\tattribute vec4 vertex_color;\n#endif\n#ifdef NINESLICED\n\tvarying vec2 vMask;\n\tvarying vec2 vTiledUv;\n\tuniform mediump vec4 innerOffset;\n\tuniform mediump vec2 outerScale;\n\tuniform mediump vec4 atlasRect;\n#endif\nvec3 dPositionW;\nmat4 dModelMatrix;\n#include \"transformCoreVS\"\n#ifdef UV0\n\tattribute vec2 vertex_texCoord0;\n\t#include \"uv0VS\"\n#endif\n#ifdef UV1\n\tattribute vec2 vertex_texCoord1;\n\t#include \"uv1VS\"\n#endif\n#ifdef LINEAR_DEPTH\n\t#ifndef VIEWMATRIX\n\t#define VIEWMATRIX\n\t\tuniform mat4 matrix_view;\n\t#endif\n#endif\n#include \"transformVS\"\n#ifdef NORMALS\n\t#include \"normalCoreVS\"\n\t#include \"normalVS\"\n#endif\n#ifdef TANGENTS\n\tattribute vec4 vertex_tangent;\n#endif\n#include \"uvTransformUniformsPS, UV_TRANSFORMS_COUNT\"\n#ifdef MSDF\n\t#include \"msdfVS\"\n#endif\n#include  \"litUserCodeVS\"\n#ifdef VERTEX_COLOR\n\tvec3 decodeGamma(vec3 raw) {\n\t\treturn pow(raw, vec3(2.2));\n\t}\n\tvec4 gammaCorrectInput(vec4 color) {\n\t\treturn vec4(decodeGamma(color.xyz), color.w);\n\t}\n#endif\nvoid main(void) {\n\t#include \"litUserMainStartVS\"\n\tgl_PointSize = 1.0;\n\tgl_Position = getPosition();\n\tvPositionW = getWorldPosition();\n\t#ifdef NORMALS\n\t\tvNormalW = getNormal();\n\t#endif\n\t#ifdef TANGENTS\n\t\tvTangentW = normalize(dNormalMatrix * vertex_tangent.xyz);\n\t\tvBinormalW = cross(vNormalW, vTangentW) * vertex_tangent.w;\n\t#elif defined(GGX_SPECULAR)\n\t\tvObjectSpaceUpW = normalize(dNormalMatrix * vec3(0, 1, 0));\n\t#endif\n\t#ifdef UV0\n\t\tvec2 uv0 = getUv0();\n\t\t#ifdef UV0_UNMODIFIED\n\t\t\tvUv0 = uv0;\n\t\t#endif\n\t#endif\n\t#ifdef UV1\n\t\tvec2 uv1 = getUv1();\n\t\t#ifdef UV1_UNMODIFIED\n\t\t\tvUv1 = uv1;\n\t\t#endif\n\t#endif\n\t#include \"uvTransformVS, UV_TRANSFORMS_COUNT\"\n\t#ifdef VERTEX_COLOR\n\t\t#ifdef STD_VERTEX_COLOR_GAMMA\n\t\t\tvVertexColor = gammaCorrectInput(vertex_color);\n\t\t#else\n\t\t\tvVertexColor = vertex_color;\n\t\t#endif\n\t#endif\n\t#ifdef LINEAR_DEPTH\n\t\tvLinearDepth = -(matrix_view * vec4(vPositionW, 1.0)).z;\n\t#endif\n\t#ifdef MSDF\n\t\tunpackMsdfParams();\n\t#endif\n\t#include \"litUserMainEndVS\"\n}\n`;\n\nvar litOtherMain_default = `\n#ifdef PICK_PASS\n\t#include \"pickPS\"\n#endif\n#ifdef PREPASS_PASS\n\t#include \"floatAsUintPS\"\n#endif\nvoid main(void) {\n\t#include \"litUserMainStartPS\"\n\tevaluateFrontend();\n\t#ifdef PICK_PASS\n\t\tpcFragColor0 = getPickOutput();\n\t\t#ifdef DEPTH_PICK_PASS\n\t\t\tpcFragColor1 = getPickDepth();\n\t\t#endif\n\t#endif\n\t#ifdef PREPASS_PASS\n\t\tgl_FragColor = float2vec4(vLinearDepth);\n\t#endif\n\t#include \"litUserMainEndPS\"\n}\n`;\n\nvar litShaderArgs_default = `\nvec3 litArgs_albedo;\nfloat litArgs_opacity;\nvec3 litArgs_emission;\nvec3 litArgs_worldNormal;\nfloat litArgs_ao;\nvec3 litArgs_lightmap;\nvec3 litArgs_lightmapDir;\nfloat litArgs_metalness;\nvec3 litArgs_specularity;\nfloat litArgs_specularityFactor;\nfloat litArgs_gloss;\nfloat litArgs_sheen_gloss;\nvec3 litArgs_sheen_specularity;\nfloat litArgs_transmission;\nfloat litArgs_thickness;\nfloat litArgs_ior;\nfloat litArgs_dispersion;\nfloat litArgs_iridescence_intensity;\nfloat litArgs_iridescence_thickness;\nvec3 litArgs_clearcoat_worldNormal;\nfloat litArgs_clearcoat_specularity;\nfloat litArgs_clearcoat_gloss;\n`;\n\nvar litShaderCore_default = `\n\t#if LIT_NONE_SLICE_MODE == TILED\n\t\tconst float textureBias = -1000.0;\n\t#else\n\t\tuniform float textureBias;\n\t#endif\n\t#include \"litShaderArgsPS\"\n`;\n\nvar litShadowMain_default = `\n#if LIGHT_TYPE != DIRECTIONAL\n\tuniform vec3 view_position;\n\tuniform float light_radius;\n#endif\n#if SHADOW_TYPE == PCSS_32F\n\t#include \"linearizeDepthPS\"\n#endif\nvoid main(void) {\n\t#include \"litUserMainStartPS\"\n\tevaluateFrontend();\n\t#ifdef PERSPECTIVE_DEPTH\n\t\tfloat depth = gl_FragCoord.z;\n\t\t#if SHADOW_TYPE == PCSS_32F\n\t\t\t#if LIGHT_TYPE != DIRECTIONAL\n\t\t\t\tdepth = linearizeDepthWithParams(depth, camera_params);\n\t\t\t#endif\n\t\t#endif\n\t#else\n\t\tfloat depth = min(distance(view_position, vPositionW) / light_radius, 0.99999);\n\t\t#define MODIFIED_DEPTH\n\t#endif\n\t#if SHADOW_TYPE == VSM_16F || SHADOW_TYPE == VSM_32F\n\t\tif (!(depth >= 0.0 && depth <= 1.0)) discard;\n\t\t#if SHADOW_TYPE == VSM_32F\n\t\t\tfloat exponent = 15.0;\n\t\t#else\n\t\t\tfloat exponent = 5.54;\n\t\t#endif\n\t\tdepth = 2.0 * depth - 1.0;\n\t\tdepth =  exp(exponent * depth);\n\t\tgl_FragColor = vec4(depth, depth*depth, 1.0, 1.0);\n\t#else\n\t\t#if SHADOW_TYPE == PCSS_32F\n\t\t\tgl_FragColor.r = depth;\n\t\t#else\n\t\t\t#ifdef MODIFIED_DEPTH\n\t\t\t\tgl_FragDepth = depth;\n\t\t\t#endif\n\t\t\tgl_FragColor = vec4(1.0);\n\t\t#endif\n\t#endif\n\t#include \"litUserMainEndPS\"\n}\n`;\n\nvar ltc_default = `\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nstruct Coords {\n\tvec3 coord0;\n\tvec3 coord1;\n\tvec3 coord2;\n\tvec3 coord3;\n};\nfloat LTC_EvaluateRect( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in Coords rectCoords) {\n\tvec3 v1 = rectCoords.coord1 - rectCoords.coord0;\n\tvec3 v2 = rectCoords.coord3 - rectCoords.coord0;\n\t\n\tvec3 lightNormal = cross( v1, v2 );\n\tfloat factor = sign(-dot( lightNormal, P - rectCoords.coord0 ));\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 =  factor * cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords.coord0 - P );\n\tcoords[ 1 ] = mat * ( rectCoords.coord1 - P );\n\tcoords[ 2 ] = mat * ( rectCoords.coord2 - P );\n\tcoords[ 3 ] = mat * ( rectCoords.coord3 - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn result;\n}\nCoords dLTCCoords;\nCoords getLTCLightCoords(vec3 lightPos, vec3 halfWidth, vec3 halfHeight){\n\tCoords coords;\n\tcoords.coord0 = lightPos + halfWidth - halfHeight;\n\tcoords.coord1 = lightPos - halfWidth - halfHeight;\n\tcoords.coord2 = lightPos - halfWidth + halfHeight;\n\tcoords.coord3 = lightPos + halfWidth + halfHeight;\n\treturn coords;\n}\nfloat dSphereRadius;\nCoords getSphereLightCoords(vec3 lightPos, vec3 halfWidth, vec3 halfHeight){\n\tdSphereRadius = max(length(halfWidth), length(halfHeight));\n\tvec3 f = reflect(normalize(lightPos - view_position), vNormalW);\n\tvec3 w = normalize(cross(f, halfHeight));\n\tvec3 h = normalize(cross(f, w));\n\treturn getLTCLightCoords(lightPos, w * dSphereRadius, h * dSphereRadius);\n}\nvec2 dLTCUV;\n#ifdef LIT_CLEARCOAT\n\tvec2 ccLTCUV;\n#endif\nvec2 getLTCLightUV(float gloss, vec3 worldNormal, vec3 viewDir)\n{\n\tfloat roughness = max((1.0 - gloss) * (1.0 - gloss), 0.001);\n\treturn LTC_Uv( worldNormal, viewDir, roughness );\n}\nvec3 dLTCSpecFres;\n#ifdef LIT_CLEARCOAT\n\tvec3 ccLTCSpecFres;\n#endif\nvec3 getLTCLightSpecFres(vec2 uv, vec3 specularity)\n{\n\tvec4 t2 = texture2DLod(areaLightsLutTex2, uv, 0.0);\n\treturn specularity * t2.x + ( vec3( 1.0 ) - specularity) * t2.y;\n}\nvoid calcLTCLightValues(float gloss, vec3 worldNormal, vec3 viewDir, vec3 specularity, float clearcoatGloss, vec3 clearcoatWorldNormal, float clearcoatSpecularity)\n{\n\tdLTCUV = getLTCLightUV(gloss, worldNormal, viewDir);\n\tdLTCSpecFres = getLTCLightSpecFres(dLTCUV, specularity); \n#ifdef LIT_CLEARCOAT\n\tccLTCUV = getLTCLightUV(clearcoatGloss, clearcoatWorldNormal, viewDir);\n\tccLTCSpecFres = getLTCLightSpecFres(ccLTCUV, vec3(clearcoatSpecularity));\n#endif\n}\nvoid calcRectLightValues(vec3 lightPos, vec3 halfWidth, vec3 halfHeight) {\n\tdLTCCoords = getLTCLightCoords(lightPos, halfWidth, halfHeight);\n}\nvoid calcDiskLightValues(vec3 lightPos, vec3 halfWidth, vec3 halfHeight) {\n\tcalcRectLightValues(lightPos, halfWidth, halfHeight);\n}\nvoid calcSphereLightValues(vec3 lightPos, vec3 halfWidth, vec3 halfHeight) {\n\tdLTCCoords = getSphereLightCoords(lightPos, halfWidth, halfHeight);\n}\nvec3 SolveCubic(vec4 Coefficient)\n{\n\tfloat pi = 3.14159;\n\tCoefficient.xyz /= Coefficient.w;\n\tCoefficient.yz /= 3.0;\n\tfloat A = Coefficient.w;\n\tfloat B = Coefficient.z;\n\tfloat C = Coefficient.y;\n\tfloat D = Coefficient.x;\n\tvec3 Delta = vec3(\n\t\t-Coefficient.z * Coefficient.z + Coefficient.y,\n\t\t-Coefficient.y * Coefficient.z + Coefficient.x,\n\t\tdot(vec2(Coefficient.z, -Coefficient.y), Coefficient.xy)\n\t);\n\tfloat Discriminant = dot(vec2(4.0 * Delta.x, -Delta.y), Delta.zy);\n\tvec2 xlc, xsc;\n\t{\n\t\tfloat A_a = 1.0;\n\t\tfloat C_a = Delta.x;\n\t\tfloat D_a = -2.0 * B * Delta.x + Delta.y;\n\t\tfloat Theta = atan(sqrt(Discriminant), -D_a) / 3.0;\n\t\tfloat x_1a = 2.0 * sqrt(-C_a) * cos(Theta);\n\t\tfloat x_3a = 2.0 * sqrt(-C_a) * cos(Theta + (2.0 / 3.0) * pi);\n\t\tfloat xl;\n\t\tif ((x_1a + x_3a) > 2.0 * B)\n\t\t\txl = x_1a;\n\t\telse\n\t\t\txl = x_3a;\n\t\txlc = vec2(xl - B, A);\n\t}\n\t{\n\t\tfloat A_d = D;\n\t\tfloat C_d = Delta.z;\n\t\tfloat D_d = -D * Delta.y + 2.0 * C * Delta.z;\n\t\tfloat Theta = atan(D * sqrt(Discriminant), -D_d) / 3.0;\n\t\tfloat x_1d = 2.0 * sqrt(-C_d) * cos(Theta);\n\t\tfloat x_3d = 2.0 * sqrt(-C_d) * cos(Theta + (2.0 / 3.0) * pi);\n\t\tfloat xs;\n\t\tif (x_1d + x_3d < 2.0 * C)\n\t\t\txs = x_1d;\n\t\telse\n\t\t\txs = x_3d;\n\t\txsc = vec2(-D, xs + C);\n\t}\n\tfloat E =  xlc.y * xsc.y;\n\tfloat F = -xlc.x * xsc.y - xlc.y * xsc.x;\n\tfloat G =  xlc.x * xsc.x;\n\tvec2 xmc = vec2(C * F - B * G, -B * F + C * E);\n\tvec3 Root = vec3(xsc.x / xsc.y, xmc.x / xmc.y, xlc.x / xlc.y);\n\tif (Root.x < Root.y && Root.x < Root.z)\n\t\tRoot.xyz = Root.yxz;\n\telse if (Root.z < Root.x && Root.z < Root.y)\n\t\tRoot.xyz = Root.xzy;\n\treturn Root;\n}\nfloat LTC_EvaluateDisk(vec3 N, vec3 V, vec3 P, mat3 Minv, Coords points)\n{\n\tvec3 T1 = normalize(V - N * dot(V, N));\n\tvec3 T2 = cross(N, T1);\n\tmat3 R = transposeMat3( mat3( T1, T2, N ) );\n\tvec3 L_[ 3 ];\n\tL_[ 0 ] = R * ( points.coord0 - P );\n\tL_[ 1 ] = R * ( points.coord1 - P );\n\tL_[ 2 ] = R * ( points.coord2 - P );\n\tvec3 C  = 0.5 * (L_[0] + L_[2]);\n\tvec3 V1 = 0.5 * (L_[1] - L_[2]);\n\tvec3 V2 = 0.5 * (L_[1] - L_[0]);\n\tC  = Minv * C;\n\tV1 = Minv * V1;\n\tV2 = Minv * V2;\n\tfloat a, b;\n\tfloat d11 = dot(V1, V1);\n\tfloat d22 = dot(V2, V2);\n\tfloat d12 = dot(V1, V2);\n\tif (abs(d12) / sqrt(d11 * d22) > 0.0001)\n\t{\n\t\tfloat tr = d11 + d22;\n\t\tfloat det = -d12 * d12 + d11 * d22;\n\t\tdet = sqrt(det);\n\t\tfloat u = 0.5 * sqrt(tr - 2.0 * det);\n\t\tfloat v = 0.5 * sqrt(tr + 2.0 * det);\n\t\tfloat e_max = (u + v) * (u + v);\n\t\tfloat e_min = (u - v) * (u - v);\n\t\tvec3 V1_, V2_;\n\t\tif (d11 > d22)\n\t\t{\n\t\t\tV1_ = d12 * V1 + (e_max - d11) * V2;\n\t\t\tV2_ = d12 * V1 + (e_min - d11) * V2;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tV1_ = d12*V2 + (e_max - d22)*V1;\n\t\t\tV2_ = d12*V2 + (e_min - d22)*V1;\n\t\t}\n\t\ta = 1.0 / e_max;\n\t\tb = 1.0 / e_min;\n\t\tV1 = normalize(V1_);\n\t\tV2 = normalize(V2_);\n\t}\n\telse\n\t{\n\t\ta = 1.0 / dot(V1, V1);\n\t\tb = 1.0 / dot(V2, V2);\n\t\tV1 *= sqrt(a);\n\t\tV2 *= sqrt(b);\n\t}\n\tvec3 V3 = normalize(cross(V1, V2));\n\tif (dot(C, V3) < 0.0)\n\t\tV3 *= -1.0;\n\tfloat L  = dot(V3, C);\n\tfloat x0 = dot(V1, C) / L;\n\tfloat y0 = dot(V2, C) / L;\n\tfloat E1 = inversesqrt(a);\n\tfloat E2 = inversesqrt(b);\n\ta *= L * L;\n\tb *= L * L;\n\tfloat c0 = a * b;\n\tfloat c1 = a * b * (1.0 + x0 * x0 + y0 * y0) - a - b;\n\tfloat c2 = 1.0 - a * (1.0 + x0 * x0) - b * (1.0 + y0 * y0);\n\tfloat c3 = 1.0;\n\tvec3 roots = SolveCubic(vec4(c0, c1, c2, c3));\n\tfloat e1 = roots.x;\n\tfloat e2 = roots.y;\n\tfloat e3 = roots.z;\n\tvec3 avgDir = vec3(a * x0 / (a - e2), b * y0 / (b - e2), 1.0);\n\tmat3 rotate = mat3(V1, V2, V3);\n\tavgDir = rotate * avgDir;\n\tavgDir = normalize(avgDir);\n\tfloat L1 = sqrt(-e2 / e3);\n\tfloat L2 = sqrt(-e2 / e1);\n\tfloat formFactor = max(0.0, L1 * L2 * inversesqrt((1.0 + L1 * L1) * (1.0 + L2 * L2)));\n\t\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tvec2 uv = vec2(avgDir.z * 0.5 + 0.5, formFactor);\n\tuv = uv*LUT_SCALE + LUT_BIAS;\n\tfloat scale = texture2DLod(areaLightsLutTex2, uv, 0.0).w;\n\treturn formFactor*scale;\n}\nfloat FixNan(float value) {\n\t#ifdef WEBGPU\n\t\treturn value != value ? 0.0 : value;\n\t#else\n\t\treturn isnan(value) ? 0.0 : value;\n\t#endif\n}\nfloat getRectLightDiffuse(vec3 worldNormal, vec3 viewDir, vec3 lightDir, vec3 lightDirNorm) {\n\treturn LTC_EvaluateRect( worldNormal, viewDir, vPositionW, mat3( 1.0 ), dLTCCoords );\n}\nfloat getDiskLightDiffuse(vec3 worldNormal, vec3 viewDir, vec3 lightDir, vec3 lightDirNorm) {\n\treturn FixNan(LTC_EvaluateDisk( worldNormal, viewDir, vPositionW, mat3( 1.0 ), dLTCCoords ));\n}\nfloat getSphereLightDiffuse(vec3 worldNormal, vec3 viewDir, vec3 lightDir, vec3 lightDirNorm) {\n\tfloat falloff = dSphereRadius / (dot(lightDir, lightDir) + dSphereRadius);\n\treturn FixNan(getLightDiffuse(worldNormal, viewDir, lightDirNorm) * falloff);\n}\nmat3 getLTCLightInvMat(vec2 uv)\n{\n\tvec4 t1 = texture2DLod(areaLightsLutTex1, uv, 0.0);\n\treturn mat3(\n\t\tvec3( t1.x, 0, t1.y ),\n\t\tvec3(\t0, 1,\t0 ),\n\t\tvec3( t1.z, 0, t1.w )\n\t);\n}\nfloat calcRectLightSpecular(vec3 worldNormal, vec3 viewDir, vec2 uv) {\n\tmat3 mInv = getLTCLightInvMat(uv);\n\treturn LTC_EvaluateRect( worldNormal, viewDir, vPositionW, mInv, dLTCCoords );\n}\nfloat getRectLightSpecular(vec3 worldNormal, vec3 viewDir) {\n\treturn calcRectLightSpecular(worldNormal, viewDir, dLTCUV);\n}\nfloat calcDiskLightSpecular(vec3 worldNormal, vec3 viewDir, vec2 uv) {\n\tmat3 mInv = getLTCLightInvMat(uv);\n\treturn LTC_EvaluateDisk( worldNormal, viewDir, vPositionW, mInv, dLTCCoords );\n}\nfloat getDiskLightSpecular(vec3 worldNormal, vec3 viewDir) {\n\treturn calcDiskLightSpecular(worldNormal, viewDir, dLTCUV);\n}\nfloat getSphereLightSpecular(vec3 worldNormal, vec3 viewDir) {\n\treturn calcDiskLightSpecular(worldNormal, viewDir, dLTCUV);\n}\n`;\n\nvar metalness_default = `\n#ifdef STD_METALNESS_CONSTANT\nuniform float material_metalness;\n#endif\nvoid getMetalness() {\n\tfloat metalness = 1.0;\n\t#ifdef STD_METALNESS_CONSTANT\n\tmetalness *= material_metalness;\n\t#endif\n\t#ifdef STD_METALNESS_TEXTURE\n\tmetalness *= texture2DBias({STD_METALNESS_TEXTURE_NAME}, {STD_METALNESS_TEXTURE_UV}, textureBias).{STD_METALNESS_TEXTURE_CHANNEL};\n\t#endif\n\t#ifdef STD_METALNESS_VERTEX\n\tmetalness *= saturate(vVertexColor.{STD_METALNESS_VERTEX_CHANNEL});\n\t#endif\n\tdMetalness = metalness;\n}\n`;\n\nvar msdf_default = `\nuniform sampler2D texture_msdfMap;\nfloat median(float r, float g, float b) {\n\treturn max(min(r, g), min(max(r, g), b));\n}\nuniform float font_sdfIntensity;\nuniform float font_pxrange;\n#ifndef LIT_MSDF_TEXT_ATTRIBUTE\n\tuniform vec4 outline_color;\n\tuniform float outline_thickness;\n\tuniform vec4 shadow_color;\n\tuniform vec2 shadow_offset;\n#else\n\tvarying vec4 outline_color;\n\tvarying float outline_thickness;\n\tvarying vec4 shadow_color;\n\tvarying vec2 shadow_offset;\n#endif\nvec4 applyMsdf(vec4 color) {\n\tfloat srcAlpha = max(color.a, 0.0001);\n\tcolor.rgb = gammaCorrectInput(color.rgb / srcAlpha) * srcAlpha;\n\tvec3 tsample = texture2D(texture_msdfMap, vUv0).rgb;\n\tvec2 uvShdw = vUv0 - shadow_offset;\n\tvec3 ssample = texture2D(texture_msdfMap, uvShdw).rgb;\n\tfloat sigDist = median(tsample.r, tsample.g, tsample.b);\n\tfloat sigDistShdw = median(ssample.r, ssample.g, ssample.b);\n\tfloat edge = 0.5 - 0.5 * font_sdfIntensity;\n\tvec2 unitRange = vec2(font_pxrange) / vec2(textureSize(texture_msdfMap, 0));\n\tfloat screenPxRange = max(0.5 * dot(unitRange, 1.0 / max(fwidth(vUv0), vec2(1e-6))), 2.5);\n\tfloat inside = clamp(screenPxRange * (sigDist - edge) + 0.5, 0.0, 1.0);\n\tfloat outline = clamp(screenPxRange * (sigDist + outline_thickness - edge) + 0.5, 0.0, 1.0);\n\tfloat shadow = clamp(screenPxRange * (sigDistShdw + outline_thickness - edge) + 0.5, 0.0, 1.0);\n\tvec4 tcolor = (outline > inside) ? outline * vec4(outline_color.a * outline_color.rgb, outline_color.a) : vec4(0.0);\n\ttcolor = mix(tcolor, color, inside);\n\tvec4 scolor = (shadow > outline) ? shadow * vec4(shadow_color.a * shadow_color.rgb, shadow_color.a) : tcolor;\n\ttcolor = mix(scolor, tcolor, outline);\n\ttcolor.rgb = gammaCorrectOutput(tcolor.rgb / max(tcolor.a, 0.0001)) * tcolor.a;\n\t\n\treturn tcolor;\n}\n`;\n\nvar metalnessModulate_default = `\nvec3 getSpecularModulate(in vec3 specularity, in vec3 albedo, in float metalness, in float f0, in float specularityFactor) {\n\tvec3 dielectricF0 = f0 * specularity * specularityFactor;\n\treturn mix(dielectricF0, albedo, metalness);\n}\nvec3 getAlbedoModulate(in vec3 albedo, in float metalness) {\n\treturn albedo * (1.0 - metalness);\n}\n`;\n\nvar morph_default = `\n\tvarying vec2 uv0;\n\tuniform sampler2DArray morphTexture;\n\tuniform highp float morphFactor[{MORPH_TEXTURE_MAX_COUNT}];\n\tuniform highp uint morphIndex[{MORPH_TEXTURE_MAX_COUNT}];\n\tuniform int count;\n\t#ifdef MORPH_INT\n\t\tuniform vec3 aabbSize;\n\t\tuniform vec3 aabbMin;\n\t#endif\n\tvoid main (void) {\n\t\thighp vec3 color = vec3(0, 0, 0);\n\t\tivec2 pixelCoords = ivec2(uv0 * vec2(textureSize(morphTexture, 0).xy));\n\t\t\n\t\tfor (int i = 0; i < count; i++) {\n\t\t\tuint textureIndex = morphIndex[i];\n\t\t\tvec3 delta = texelFetch(morphTexture, ivec3(pixelCoords, int(textureIndex)), 0).xyz;\n\t\t\tcolor += morphFactor[i] * delta;\n\t\t}\n\t\t#ifdef MORPH_INT\n\t\t\tcolor = (color - aabbMin) / aabbSize * 65535.0;\n\t\t\tgl_FragColor = uvec4(color, 1u);\n\t\t#else\n\t\t\tgl_FragColor = vec4(color, 1.0);\n\t\t#endif\n\t}\n`;\n\nvar morph_default2 = `\n\tattribute vec2 vertex_position;\n\tvarying vec2 uv0;\n\tvoid main(void) {\n\t\tgl_Position = vec4(vertex_position, 0.5, 1.0);\n\t\tuv0 = vertex_position.xy * 0.5 + 0.5;\n\t}\n`;\n\nvar msdf_default2 = `\nattribute vec3 vertex_outlineParameters;\nattribute vec3 vertex_shadowParameters;\nvarying vec4 outline_color;\nvarying float outline_thickness;\nvarying vec4 shadow_color;\nvarying vec2 shadow_offset;\nvoid unpackMsdfParams() {\n\tvec3 little = mod(vertex_outlineParameters, 256.);\n\tvec3 big = (vertex_outlineParameters - little) / 256.;\n\toutline_color.rb = little.xy / 255.;\n\toutline_color.ga = big.xy / 255.;\n\toutline_thickness = little.z / 255. * 0.2;\n\tlittle = mod(vertex_shadowParameters, 256.);\n\tbig = (vertex_shadowParameters - little) / 256.;\n\tshadow_color.rb = little.xy / 255.;\n\tshadow_color.ga = big.xy / 255.;\n\tshadow_offset = (vec2(little.z, big.z) / 127. - 1.) * 0.005;\n}\n`;\n\nvar normal_default = `\nmat3 dNormalMatrix;\nvec3 getNormal() {\n\tdNormalMatrix = getNormalMatrix(dModelMatrix);\n\tvec3 localNormal = getLocalNormal(vertex_normal);\n\treturn normalize(dNormalMatrix * localNormal);\n}\n`;\n\nvar normalCore_default = `\nattribute vec3 vertex_normal;\nuniform mat3 matrix_normal;\n#ifdef MORPHING_NORMAL\n\t#ifdef MORPHING_INT\n\t\tuniform highp usampler2D morphNormalTex;\n\t#else\n\t\tuniform highp sampler2D morphNormalTex;\n\t#endif\n#endif\nvec3 getLocalNormal(vec3 vertexNormal) {\n\tvec3 localNormal = vertex_normal;\n\t#ifdef MORPHING_NORMAL\n\t\tivec2 morphUV = getTextureMorphCoords();\n\t\t#ifdef MORPHING_INT\n\t\t\tvec3 morphNormal = vec3(texelFetch(morphNormalTex, ivec2(morphUV), 0).xyz) / 65535.0 * 2.0 - 1.0;\n\t\t#else\n\t\t\tvec3 morphNormal = texelFetch(morphNormalTex, ivec2(morphUV), 0).xyz;\n\t\t#endif\n\t\tlocalNormal += morphNormal;\n\t#endif\n\treturn localNormal;\n}\n#if defined(SKIN) || defined(BATCH)\n\tmat3 getNormalMatrix(mat4 modelMatrix) {\n\t\treturn mat3(modelMatrix[0].xyz, modelMatrix[1].xyz, modelMatrix[2].xyz);\n\t}\n#elif defined(INSTANCING)\n\tmat3 getNormalMatrix(mat4 modelMatrix) {\n\t\treturn mat3(modelMatrix[0].xyz, modelMatrix[1].xyz, modelMatrix[2].xyz);\n\t}\n#else\n\tmat3 getNormalMatrix(mat4 modelMatrix) {\n\t\treturn matrix_normal;\n\t}\n#endif\n`;\n\nvar normalMap_default = `\n#ifdef STD_NORMAL_TEXTURE\n\tuniform float material_bumpiness;\n#endif\n#ifdef STD_NORMALDETAIL_TEXTURE\n\tuniform float material_normalDetailMapBumpiness;\n\tvec3 blendNormals(vec3 n1, vec3 n2) {\n\t\tn1 += vec3(0, 0, 1);\n\t\tn2 *= vec3(-1, -1, 1);\n\t\treturn n1 * dot(n1, n2) / n1.z - n2;\n\t}\n#endif\nvoid getNormal() {\n#ifdef STD_NORMAL_TEXTURE\n\tvec3 normalMap = {STD_NORMAL_TEXTURE_DECODE}(texture2DBias({STD_NORMAL_TEXTURE_NAME}, {STD_NORMAL_TEXTURE_UV}, textureBias));\n\tnormalMap = mix(vec3(0.0, 0.0, 1.0), normalMap, material_bumpiness);\n\t#ifdef STD_NORMALDETAIL_TEXTURE\n\t\tvec3 normalDetailMap = {STD_NORMALDETAIL_TEXTURE_DECODE}(texture2DBias({STD_NORMALDETAIL_TEXTURE_NAME}, {STD_NORMALDETAIL_TEXTURE_UV}, textureBias));\n\t\tnormalDetailMap = mix(vec3(0.0, 0.0, 1.0), normalDetailMap, material_normalDetailMapBumpiness);\n\t\tnormalMap = blendNormals(normalMap, normalDetailMap);\n\t#endif\n\tdNormalW = normalize(dTBN * normalMap);\n#else\n\tdNormalW = dVertexNormalW;\n#endif\n}\n`;\n\nvar opacity_default = `\nuniform float material_opacity;\nuniform float material_alphaDitherScale;\nvoid getOpacity() {\n\tdAlpha = material_opacity;\n\t#ifdef STD_OPACITY_TEXTURE\n\tdAlpha *= texture2DBias({STD_OPACITY_TEXTURE_NAME}, {STD_OPACITY_TEXTURE_UV}, textureBias).{STD_OPACITY_TEXTURE_CHANNEL};\n\t#endif\n\t#ifdef STD_OPACITY_VERTEX\n\tdAlpha *= clamp(vVertexColor.{STD_OPACITY_VERTEX_CHANNEL}, 0.0, 1.0);\n\t#endif\n}\n`;\n\nvar opacity_dither_default = `\n#if STD_OPACITY_DITHER == BAYER2 || STD_OPACITY_DITHER == BAYER4 || STD_OPACITY_DITHER == BAYER8 || STD_OPACITY_DITHER == BAYER16\n\t#include \"bayerPS\"\n#endif\nuniform vec4 blueNoiseJitter;\n#if STD_OPACITY_DITHER == BLUENOISE\n\tuniform sampler2D blueNoiseTex32;\n#endif\nvoid opacityDither(float alpha, float id) {\n\tif (alpha <= 0.0)\n\t\tdiscard;\n\tif (alpha >= 1.0)\n\t\treturn;\n\t#if STD_OPACITY_DITHER == BAYER8\n\t\tfloat noise = bayer8(floor(mod(gl_FragCoord.xy + blueNoiseJitter.xy + id, 8.0))) / 64.0;\n\t#else\n\t\t#if STD_OPACITY_DITHER == BAYER2\n\t\t\tfloat noise = bayer2(floor(mod(gl_FragCoord.xy + blueNoiseJitter.xy + id, 2.0))) / 4.0;\n\t\t#endif\n\t\t#if STD_OPACITY_DITHER == BAYER4\n\t\t\tfloat noise = bayer4(floor(mod(gl_FragCoord.xy + blueNoiseJitter.xy + id, 4.0))) / 16.0;\n\t\t#endif\n\t\t#if STD_OPACITY_DITHER == BAYER16\n\t\t\tfloat noise = bayer16(floor(mod(gl_FragCoord.xy + blueNoiseJitter.xy + id, 16.0))) / 256.0;\n\t\t#endif\n\t\t#if STD_OPACITY_DITHER == BLUENOISE\n\t\t\tvec2 uv = fract(gl_FragCoord.xy / 32.0 + blueNoiseJitter.xy + id);\n\t\t\tfloat noise = texture2DLod(blueNoiseTex32, uv, 0.0).y;\n\t\t#endif\n\t\t#if STD_OPACITY_DITHER == IGNNOISE\n\t\t\tvec3 magic = vec3(0.06711056, 0.00583715, 52.9829189);\n\t\t\tfloat noise = fract(magic.z * fract(dot(gl_FragCoord.xy + blueNoiseJitter.xy + id, magic.xy)));\n\t\t#endif\n\t#endif\n\tnoise = pow(noise, 2.2);\n\tif (alpha < noise)\n\t\tdiscard;\n}\n`;\n\nvar outline_declaration_default = `\n#ifdef PCOUTLINE_PASS\nuniform vec3 pcOutlineColor;\n#endif\n`;\n\nvar outline_output_default = `\n#ifdef PCOUTLINE_PASS\ngl_FragColor.rgb = gammaCorrectOutput(pcOutlineColor);\n#endif\n`;\n\nvar output_default = `\n`;\n\nvar outputAlpha_default = `\n#if LIT_BLEND_TYPE == NORMAL || LIT_BLEND_TYPE == ADDITIVEALPHA || defined(LIT_ALPHA_TO_COVERAGE)\n\tgl_FragColor.a = litArgs_opacity;\n#elif LIT_BLEND_TYPE == PREMULTIPLIED\n\tgl_FragColor.rgb *= litArgs_opacity;\n\tgl_FragColor.a = litArgs_opacity;\n#else\n\tgl_FragColor.a = 1.0;\n#endif\n`;\n\nvar outputTex2D_default = `\nvarying vec2 vUv0;\nuniform sampler2D source;\nvoid main(void) {\n\tgl_FragColor = texture2D(source, vUv0);\n}\n`;\n\nvar sheen_default = `\nuniform vec3 material_sheen;\nvoid getSheen() {\n\tvec3 sheenColor = material_sheen;\n\t#ifdef STD_SHEEN_TEXTURE\n\tsheenColor *= {STD_SHEEN_TEXTURE_DECODE}(texture2DBias({STD_SHEEN_TEXTURE_NAME}, {STD_SHEEN_TEXTURE_UV}, textureBias)).{STD_SHEEN_TEXTURE_CHANNEL};\n\t#endif\n\t#ifdef STD_SHEEN_VERTEX\n\tsheenColor *= saturate(vVertexColor.{STD_SHEEN_VERTEX_CHANNEL});\n\t#endif\n\tsSpecularity = sheenColor;\n}\n`;\n\nvar sheenGloss_default = `\nuniform float material_sheenGloss;\nvoid getSheenGlossiness() {\n\tfloat sheenGlossiness = material_sheenGloss;\n\t#ifdef STD_SHEENGLOSS_TEXTURE\n\tsheenGlossiness *= texture2DBias({STD_SHEENGLOSS_TEXTURE_NAME}, {STD_SHEENGLOSS_TEXTURE_UV}, textureBias).{STD_SHEENGLOSS_TEXTURE_CHANNEL};\n\t#endif\n\t#ifdef STD_SHEENGLOSS_VERTEX\n\tsheenGlossiness *= saturate(vVertexColor.{STD_SHEENGLOSS_VERTEX_CHANNEL});\n\t#endif\n\t#ifdef STD_SHEENGLOSS_INVERT\n\tsheenGlossiness = 1.0 - sheenGlossiness;\n\t#endif\n\tsGlossiness = sheenGlossiness + 0.0000001;\n}\n`;\n\nvar parallax_default = `\nuniform float material_heightMapFactor;\nuniform float material_heightMapBase;\n#if STD_PARALLAX == OCCLUSION\n\tuniform float material_parallaxSamples;\n\tconst float parallaxMaxSlope = 5.0;\n\tconst float parallaxTexelsPerStep = 2.0;\n\tconst float parallaxFadeMin = 1.0;\n\tconst float parallaxFadeMax = 3.0;\n\tconst int parallaxRefineSteps = 5;\n#endif\nvoid getParallax() {\n\tfloat parallaxScale = material_heightMapFactor;\n\tvec3 viewDirT = normalize(dViewDirW * dTBN);\n\tvec2 viewDirUv = vec2(viewDirT.x, -viewDirT.y);\n\t#if STD_PARALLAX == OCCLUSION\n\t\tvec2 march = -parallaxScale * viewDirUv / max(viewDirT.z, 0.0001);\n\t\tfloat marchLength = length(march);\n\t\tfloat maxMarchLength = parallaxScale * parallaxMaxSlope;\n\t\tvec2 uvSpan = marchLength > maxMarchLength ? march * (maxMarchLength / marchLength) : march;\n\t\tfloat geomDepth = 1.0 - material_heightMapBase;\n\t\tvec2 entryUv = {STD_HEIGHT_TEXTURE_UV} - uvSpan * geomDepth;\n\t\tvec2 heightMapSize = vec2(textureSize({STD_HEIGHT_TEXTURE_NAME}, 0));\n\t\tvec2 uvTexels = {STD_HEIGHT_TEXTURE_UV} * heightMapSize;\n\t\tvec2 texelsDx = dFdx(uvTexels);\n\t\tvec2 texelsDy = dFdy(uvTexels);\n\t\tfloat lod = max(0.0, 0.5 * log2(max(dot(texelsDx, texelsDx), dot(texelsDy, texelsDy))));\n\t\tfloat marchTexels = length(uvSpan * heightMapSize) / exp2(lod);\n\t\tfloat fade = clamp((marchTexels - parallaxFadeMin) / (parallaxFadeMax - parallaxFadeMin), 0.0, 1.0);\n\t\tdUvOffset = vec2(0.0);\n\t\t#ifdef STD_PARALLAX_SELF_SHADOW\n\t\t\tdParallaxHitDepth = 0.0;\n\t\t\tdParallaxLod = lod;\n\t\t#endif\n\t\tif (fade > 0.0) {\n\t\t\tfloat steps = clamp(marchTexels / parallaxTexelsPerStep, 1.0, material_parallaxSamples);\n\t\t\tfloat stepSize = 1.0 / steps;\n\t\t\tfloat rayDepth = 0.0;\n\t\t\tfloat surfaceDepth = 1.0 - texture2DLod({STD_HEIGHT_TEXTURE_NAME}, entryUv, lod).{STD_HEIGHT_TEXTURE_CHANNEL};\n\t\t\tfloat prevRayDepth = rayDepth;\n\t\t\tfloat prevSurfaceDepth = surfaceDepth;\n\t\t\tfor (float i = 0.0; i < steps; i += 1.0) {\n\t\t\t\tif (rayDepth >= surfaceDepth) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tprevRayDepth = rayDepth;\n\t\t\t\tprevSurfaceDepth = surfaceDepth;\n\t\t\t\trayDepth += stepSize;\n\t\t\t\tsurfaceDepth = 1.0 - texture2DLod({STD_HEIGHT_TEXTURE_NAME}, entryUv + uvSpan * rayDepth, lod).{STD_HEIGHT_TEXTURE_CHANNEL};\n\t\t\t}\n\t\t\tfloat hitDepth = rayDepth;\n\t\t\tif (rayDepth >= surfaceDepth) {\n\t\t\t\tfloat interval = (rayDepth - prevRayDepth) * 0.5;\n\t\t\t\thitDepth = rayDepth - interval;\n\t\t\t\tfor (int i = 0; i < parallaxRefineSteps; i++) {\n\t\t\t\t\tinterval *= 0.5;\n\t\t\t\t\tfloat refineDepth = 1.0 - texture2DLod({STD_HEIGHT_TEXTURE_NAME}, entryUv + uvSpan * hitDepth, lod).{STD_HEIGHT_TEXTURE_CHANNEL};\n\t\t\t\t\thitDepth += hitDepth >= refineDepth ? -interval : interval;\n\t\t\t\t}\n\t\t\t}\n\t\t\tfloat hitBelowTop = clamp(hitDepth, 0.0, 1.0);\n\t\t\tdUvOffset = uvSpan * ((hitBelowTop - geomDepth) * fade);\n\t\t\t#ifdef STD_PARALLAX_SELF_SHADOW\n\t\t\t\tdParallaxHitDepth = hitBelowTop * fade;\n\t\t\t#endif\n\t\t}\n\t#else\n\t\tfloat height = texture2DBias({STD_HEIGHT_TEXTURE_NAME}, {STD_HEIGHT_TEXTURE_UV}, textureBias).{STD_HEIGHT_TEXTURE_CHANNEL};\n\t\theight = (height - material_heightMapBase) * parallaxScale;\n\t\tdUvOffset = height * viewDirUv;\n\t#endif\n}\n#ifdef STD_PARALLAX_SELF_SHADOW\n\tuniform float material_parallaxShadowSamples;\n\tconst float parallaxShadowHardness = 16.0;\n\tconst float parallaxShadowMaxSlope = 20.0;\n\tfloat getParallaxSelfShadow(vec3 lightDirNormW) {\n\t\tif (dParallaxHitDepth <= 0.0) {\n\t\t\treturn 1.0;\n\t\t}\n\t\tvec3 lightDirT = normalize(-lightDirNormW * dTBN);\n\t\tvec2 lightDirUv = vec2(lightDirT.x, -lightDirT.y);\n\t\tif (lightDirT.z <= 0.0) {\n\t\t\treturn 1.0;\n\t\t}\n\t\tfloat parallaxScale = material_heightMapFactor;\n\t\tvec2 climb = parallaxScale * lightDirUv / lightDirT.z;\n\t\tfloat climbLength = length(climb);\n\t\tfloat maxClimbLength = parallaxScale * parallaxShadowMaxSlope;\n\t\tvec2 uvPerDepth = climbLength > maxClimbLength ? climb * (maxClimbLength / climbLength) : climb;\n\t\tvec2 heightMapSize = vec2(textureSize({STD_HEIGHT_TEXTURE_NAME}, 0));\n\t\tfloat marchTexels = length(uvPerDepth * dParallaxHitDepth * heightMapSize) / exp2(dParallaxLod);\n\t\tfloat steps = clamp(marchTexels / parallaxTexelsPerStep, 1.0, material_parallaxShadowSamples);\n\t\tvec2 hitUv = {STD_HEIGHT_TEXTURE_UV} + dUvOffset;\n\t\tfloat blocked = 0.0;\n\t\tfor (float i = 0.0; i < steps; i += 1.0) {\n\t\t\tfloat t = (i + 1.0) / steps;\n\t\t\tfloat climbed = dParallaxHitDepth * t;\n\t\t\tfloat rayDepth = dParallaxHitDepth - climbed;\n\t\t\tfloat fieldDepth = 1.0 - texture2DLod({STD_HEIGHT_TEXTURE_NAME}, hitUv + uvPerDepth * climbed, dParallaxLod).{STD_HEIGHT_TEXTURE_CHANNEL};\n\t\t\tblocked = max(blocked, max(0.0, rayDepth - fieldDepth) * max(0.0, 1.0 - t));\n\t\t}\n\t\treturn clamp(1.0 - blocked * parallaxShadowHardness, 0.0, 1.0);\n\t}\n#endif\n`;\n\nvar pick_default = `\nvec4 encodePickOutput(uint id) {\n\tconst vec4 inv = vec4(1.0 / 255.0);\n\tconst uvec4 shifts = uvec4(16, 8, 0, 24);\n\tuvec4 col = (uvec4(id) >> shifts) & uvec4(0xff);\n\treturn vec4(col) * inv;\n}\n#ifndef PICK_CUSTOM_ID\n\tuniform uint meshInstanceId;\n\tvec4 getPickOutput() {\n\t\treturn encodePickOutput(meshInstanceId);\n\t}\n#endif\n#ifdef DEPTH_PICK_PASS\n\t#include \"floatAsUintPS\"\n\t#ifndef CAMERAPLANES\n\t\t#define CAMERAPLANES\n\t\tuniform vec4 camera_params;\n\t#endif\n\tvec4 getPickDepth() {\n\t\tfloat linearDepth;\n\t\tif (camera_params.w > 0.5) {\n\t\t\tlinearDepth = gl_FragCoord.z;\n\t\t} else {\n\t\t\tfloat viewDist = 1.0 / gl_FragCoord.w;\n\t\t\tlinearDepth = (viewDist - camera_params.z) / (camera_params.y - camera_params.z);\n\t\t}\n\t\treturn float2uint(linearDepth);\n\t}\n#endif\n`;\n\nvar reflDir_default = `\nvoid getReflDir(vec3 worldNormal, vec3 viewDir, float gloss, mat3 tbn) {\n\tdReflDirW = normalize(-reflect(viewDir, worldNormal));\n}\n`;\n\nvar reflDirAniso_default = `\nvoid getReflDir(vec3 worldNormal, vec3 viewDir, float gloss, mat3 tbn) {\n\tfloat roughness = sqrt(1.0 - min(gloss, 1.0));\n\tvec2 direction = dAnisotropyRotation;\n\tvec3 anisotropicT = normalize(tbn * vec3(direction, 0.0));\n\tvec3 anisotropicB = normalize(cross(tbn[2], anisotropicT));\n\tfloat anisotropy = dAnisotropy;\n\tvec3 anisotropicDirection = anisotropicB;\n\tvec3 anisotropicTangent = cross(anisotropicDirection, viewDir);\n\tvec3 anisotropicNormal = cross(anisotropicTangent, anisotropicDirection);\n\tfloat bendFactor = 1.0 - anisotropy * (1.0 - roughness);\n\tfloat bendFactor4 = bendFactor * bendFactor * bendFactor * bendFactor;\n\tvec3 bentNormal = normalize(mix(normalize(anisotropicNormal), normalize(worldNormal), bendFactor4));\n\tdReflDirW = reflect(-viewDir, bentNormal);\n}\n`;\n\nvar reflectionCC_default = `\n#ifdef LIT_CLEARCOAT\nvoid addReflectionCC(vec3 reflDir, float gloss) {\n\tccReflection += calcReflection(reflDir, gloss);\n}\n#endif\n`;\n\nvar reflectionCube_default = `\nuniform samplerCube texture_cubeMap;\nuniform float material_reflectivity;\nvec3 calcReflection(vec3 reflDir, float gloss) {\n\tvec3 lookupVec = cubeMapProject(reflDir);\n\tlookupVec.x *= -1.0;\n\treturn {reflectionDecode}(textureCube(texture_cubeMap, lookupVec));\n}\nvoid addReflection(vec3 reflDir, float gloss) {   \n\tdReflection += vec4(calcReflection(reflDir, gloss), material_reflectivity);\n}\n`;\n\nvar reflectionEnvHQ_default = `\n#ifndef ENV_ATLAS\n\t#define ENV_ATLAS\n\tuniform sampler2D texture_envAtlas;\n#endif\nuniform samplerCube texture_cubeMap;\nuniform float material_reflectivity;\nvec3 calcReflection(vec3 reflDir, float gloss) {\n\tvec3 dir = cubeMapProject(reflDir) * vec3(-1.0, 1.0, 1.0);\n\tvec2 uv = toSphericalUv(dir);\n\tfloat level = saturate(1.0 - gloss) * 5.0;\n\tfloat ilevel = floor(level);\n\tfloat flevel = level - ilevel;\n\tvec3 sharp = {reflectionCubemapDecode}(textureCube(texture_cubeMap, dir));\n\tvec3 roughA = {reflectionDecode}(texture2D(texture_envAtlas, mapRoughnessUv(uv, ilevel)));\n\tvec3 roughB = {reflectionDecode}(texture2D(texture_envAtlas, mapRoughnessUv(uv, ilevel + 1.0)));\n\treturn processEnvironment(mix(sharp, mix(roughA, roughB, flevel), min(level, 1.0)));\n}\nvoid addReflection(vec3 reflDir, float gloss) {   \n\tdReflection += vec4(calcReflection(reflDir, gloss), material_reflectivity);\n}\n`;\n\nvar reflectionEnv_default = `\n#ifndef ENV_ATLAS\n#define ENV_ATLAS\n\tuniform sampler2D texture_envAtlas;\n#endif\nuniform float material_reflectivity;\nfloat shinyMipLevel(vec2 uv) {\n\tvec2 dx = dFdx(uv);\n\tvec2 dy = dFdy(uv);\n\tvec2 uv2 = vec2(fract(uv.x + 0.5), uv.y);\n\tvec2 dx2 = dFdx(uv2);\n\tvec2 dy2 = dFdy(uv2);\n\tfloat maxd = min(max(dot(dx, dx), dot(dy, dy)), max(dot(dx2, dx2), dot(dy2, dy2)));\n\treturn clamp(0.5 * log2(maxd) - 1.0 + textureBias, 0.0, 5.0);\n}\nvec3 calcReflection(vec3 reflDir, float gloss) {\n\tvec3 dir = cubeMapProject(reflDir) * vec3(-1.0, 1.0, 1.0);\n\tvec2 uv = toSphericalUv(dir);\n\tfloat level = saturate(1.0 - gloss) * 5.0;\n\tfloat ilevel = floor(level);\n\tfloat level2 = shinyMipLevel(uv * atlasSize);\n\tfloat ilevel2 = floor(level2);\n\tvec2 uv0, uv1;\n\tfloat weight;\n\tif (ilevel == 0.0) {\n\t\tuv0 = mapShinyUv(uv, ilevel2);\n\t\tuv1 = mapShinyUv(uv, ilevel2 + 1.0);\n\t\tweight = level2 - ilevel2;\n\t} else {\n\t\tuv0 = uv1 = mapRoughnessUv(uv, ilevel);\n\t\tweight = 0.0;\n\t}\n\tvec3 linearA = {reflectionDecode}(texture2D(texture_envAtlas, uv0));\n\tvec3 linearB = {reflectionDecode}(texture2D(texture_envAtlas, uv1));\n\tvec3 linear0 = mix(linearA, linearB, weight);\n\tvec3 linear1 = {reflectionDecode}(texture2D(texture_envAtlas, mapRoughnessUv(uv, ilevel + 1.0)));\n\treturn processEnvironment(mix(linear0, linear1, level - ilevel));\n}\nvoid addReflection(vec3 reflDir, float gloss) {   \n\tdReflection += vec4(calcReflection(reflDir, gloss), material_reflectivity);\n}\n`;\n\nvar reflectionSphere_default = `\n#ifndef VIEWMATRIX\n\t#define VIEWMATRIX\n\tuniform mat4 matrix_view;\n#endif\nuniform sampler2D texture_sphereMap;\nuniform float material_reflectivity;\nvec3 calcReflection(vec3 reflDir, float gloss) {\n\tvec3 reflDirV = (mat3(matrix_view) * reflDir);\n\tfloat m = 2.0 * sqrt(dot(reflDirV.xy, reflDirV.xy) + (reflDirV.z + 1.0) * (reflDirV.z + 1.0));\n\tvec2 sphereMapUv = reflDirV.xy / m + 0.5;\n\treturn {reflectionDecode}(texture2D(texture_sphereMap, sphereMapUv));\n}\nvoid addReflection(vec3 reflDir, float gloss) {   \n\tdReflection += vec4(calcReflection(reflDir, gloss), material_reflectivity);\n}\n`;\n\nvar reflectionSheen_default = `\nvoid addReflectionSheen(vec3 worldNormal, vec3 viewDir, float gloss) {\n\tfloat NoV = dot(worldNormal, viewDir);\n\tfloat alphaG = gloss * gloss;\n\tfloat a = gloss < 0.25 ? -339.2 * alphaG + 161.4 * gloss - 25.9 : -8.48 * alphaG + 14.3 * gloss - 9.95;\n\tfloat b = gloss < 0.25 ? 44.0 * alphaG - 23.7 * gloss + 3.26 : 1.97 * alphaG - 3.27 * gloss + 0.72;\n\tfloat DG = exp( a * NoV + b ) + ( gloss < 0.25 ? 0.0 : 0.1 * ( gloss - 0.25 ) );\n\tsReflection += calcReflection(worldNormal, 0.0) * saturate(DG);\n}\n`;\n\nvar refractionCube_default = `\nvec3 refract2(vec3 viewVec, vec3 normal, float IOR) {\n\tfloat vn = dot(viewVec, normal);\n\tfloat k = 1.0 - IOR * IOR * (1.0 - vn * vn);\n\tvec3 refrVec = IOR * viewVec - (IOR * vn + sqrt(k)) * normal;\n\treturn refrVec;\n}\nvoid addRefraction(\n\tvec3 worldNormal, \n\tvec3 viewDir, \n\tfloat thickness, \n\tfloat gloss, \n\tvec3 specularity, \n\tvec3 albedo, \n\tfloat transmission,\n\tfloat refractionIndex,\n\tfloat dispersion\n#if defined(LIT_IRIDESCENCE)\n\t, vec3 iridescenceFresnel,\n\tfloat iridescenceIntensity\n#endif \n) {\n\tvec4 tmpRefl = dReflection;\n\tvec3 reflectionDir = refract2(-viewDir, worldNormal, refractionIndex);\n\tdReflection = vec4(0);\n\taddReflection(reflectionDir, gloss);\n\tdDiffuseLight = mix(dDiffuseLight, dReflection.rgb * albedo, transmission);\n\tdReflection = tmpRefl;\n}\n`;\n\nvar refractionDynamic_default = `\nuniform float material_invAttenuationDistance;\nuniform vec3 material_attenuation;\nvec3 evalRefractionColor(vec3 refractionVector, float gloss, float refractionIndex) {\n\tvec4 pointOfRefraction = vec4(vPositionW + refractionVector, 1.0);\n\tvec4 projectionPoint = matrix_viewProjection * pointOfRefraction;\n\tvec2 uv = getGrabScreenPos(projectionPoint);\n\tfloat iorToRoughness = (1.0 - gloss) * clamp((1.0 / refractionIndex) * 2.0 - 2.0, 0.0, 1.0);\n\tfloat refractionLod = log2(uScreenSize.x) * iorToRoughness;\n\tvec3 refraction = texture2DLod(uSceneColorMap, uv, refractionLod).rgb;\n\t#ifdef SCENE_COLORMAP_GAMMA\n\t\trefraction = decodeGamma(refraction);\n\t#endif\n\treturn refraction;\n}\nvoid addRefraction(\n\tvec3 worldNormal, \n\tvec3 viewDir, \n\tfloat thickness, \n\tfloat gloss, \n\tvec3 specularity, \n\tvec3 albedo, \n\tfloat transmission,\n\tfloat refractionIndex,\n\tfloat dispersion\n#if defined(LIT_IRIDESCENCE)\n\t, vec3 iridescenceFresnel,\n\tfloat iridescenceIntensity\n#endif\n) {\n\tvec3 modelScale;\n\tmodelScale.x = length(vec3(matrix_model[0].xyz));\n\tmodelScale.y = length(vec3(matrix_model[1].xyz));\n\tmodelScale.z = length(vec3(matrix_model[2].xyz));\n\tvec3 scale = thickness * modelScale;\n\tvec3 refractionVector = normalize(refract(-viewDir, worldNormal, refractionIndex)) * scale;\n\tvec3 refraction = evalRefractionColor(refractionVector, gloss, refractionIndex);\n\t#ifdef LIT_DISPERSION\n\t\tfloat halfSpread = (1.0 / refractionIndex - 1.0) * 0.025 * dispersion;\n\t\tfloat refractionIndexR = refractionIndex - halfSpread;\n\t\trefractionVector = normalize(refract(-viewDir, worldNormal, refractionIndexR)) * scale;\n\t\trefraction.r = evalRefractionColor(refractionVector, gloss, refractionIndexR).r;\n\t\tfloat refractionIndexB = refractionIndex + halfSpread;\n\t\trefractionVector = normalize(refract(-viewDir, worldNormal, refractionIndexB)) * scale;\n\t\trefraction.b = evalRefractionColor(refractionVector, gloss, refractionIndexB).b;\n\t#endif\n\tvec3 transmittance;\n\tif (material_invAttenuationDistance != 0.0)\n\t{\n\t\tvec3 attenuation = -log(material_attenuation) * material_invAttenuationDistance;\n\t\ttransmittance = exp(-attenuation * length(refractionVector));\n\t}\n\telse\n\t{\n\t\ttransmittance = vec3(1.0);\n\t}\n\tvec3 fresnel = vec3(1.0) - \n\t\tgetFresnel(\n\t\t\tdot(viewDir, worldNormal), \n\t\t\tgloss, \n\t\t\tspecularity\n\t\t#if defined(LIT_IRIDESCENCE)\n\t\t\t, iridescenceFresnel,\n\t\t\tiridescenceIntensity\n\t\t#endif\n\t\t);\n\tdDiffuseLight = mix(dDiffuseLight, refraction * transmittance * fresnel, transmission);\n}\n`;\n\nvar reproject_default = `\nvarying vec2 vUv0;\n#ifdef CUBEMAP_SOURCE\n\tuniform samplerCube sourceCube;\n#else\n\tuniform sampler2D sourceTex;\n#endif\n#ifdef USE_SAMPLES_TEX\n\tuniform sampler2D samplesTex;\n\tuniform vec2 samplesTexInverseSize;\n#endif\nuniform vec3 params;\nfloat targetFace() { return params.x; }\nfloat targetTotalPixels() { return params.y; }\nfloat sourceTotalPixels() { return params.z; }\nfloat PI = 3.141592653589793;\nfloat saturate(float x) {\n\treturn clamp(x, 0.0, 1.0);\n}\n#include \"decodePS\"\n#include \"encodePS\"\nvec3 modifySeams(vec3 dir, float scale) {\n\tvec3 adir = abs(dir);\n\tfloat M = max(max(adir.x, adir.y), adir.z);\n\treturn dir / M * vec3(\n\t\tadir.x == M ? 1.0 : scale,\n\t\tadir.y == M ? 1.0 : scale,\n\t\tadir.z == M ? 1.0 : scale\n\t);\n}\nvec2 toSpherical(vec3 dir) {\n\treturn vec2(dir.xz == vec2(0.0) ? 0.0 : atan(dir.x, dir.z), asin(dir.y));\n}\nvec3 fromSpherical(vec2 uv) {\n\treturn vec3(cos(uv.y) * sin(uv.x),\n\t\t\t\tsin(uv.y),\n\t\t\t\tcos(uv.y) * cos(uv.x));\n}\nvec3 getDirectionEquirect() {\n\treturn fromSpherical((vec2(vUv0.x, 1.0 - vUv0.y) * 2.0 - 1.0) * vec2(PI, PI * 0.5));\n}\nfloat signNotZero(float k){\n\treturn(k >= 0.0) ? 1.0 : -1.0;\n}\nvec2 signNotZero(vec2 v) {\n\treturn vec2(signNotZero(v.x), signNotZero(v.y));\n}\nvec3 octDecode(vec2 o) {\n\tvec3 v = vec3(o.x, 1.0 - abs(o.x) - abs(o.y), o.y);\n\tif (v.y < 0.0) {\n\t\tv.xz = (1.0 - abs(v.zx)) * signNotZero(v.xz);\n\t}\n\treturn normalize(v);\n}\nvec3 getDirectionOctahedral() {\n\treturn octDecode(vec2(vUv0.x, 1.0 - vUv0.y) * 2.0 - 1.0);\n}\nvec2 octEncode(in vec3 v) {\n\tfloat l1norm = abs(v.x) + abs(v.y) + abs(v.z);\n\tvec2 result = v.xz * (1.0 / l1norm);\n\tif (v.y < 0.0) {\n\t\tresult = (1.0 - abs(result.yx)) * signNotZero(result.xy);\n\t}\n\treturn result;\n}\n#ifdef CUBEMAP_SOURCE\n\tvec4 sampleCubemap(vec3 dir) {\n\t\treturn textureCube(sourceCube, modifySeams(dir, 1.0));\n\t}\n\tvec4 sampleCubemap(vec2 sph) {\n\t\treturn sampleCubemap(fromSpherical(sph));\n\t}\n\tvec4 sampleCubemap(vec3 dir, float mipLevel) {\n\t\treturn textureCubeLod(sourceCube, modifySeams(dir, 1.0), mipLevel);\n\t}\n\tvec4 sampleCubemap(vec2 sph, float mipLevel) {\n\t\treturn sampleCubemap(fromSpherical(sph), mipLevel);\n\t}\n#else\n\tvec4 sampleEquirect(vec2 sph) {\n\t\tvec2 uv = sph / vec2(PI * 2.0, PI) + 0.5;\n\t\treturn texture2D(sourceTex, vec2(uv.x, 1.0 - uv.y));\n\t}\n\tvec4 sampleEquirect(vec3 dir) {\n\t\treturn sampleEquirect(toSpherical(dir));\n\t}\n\tvec4 sampleEquirect(vec2 sph, float mipLevel) {\n\t\tvec2 uv = sph / vec2(PI * 2.0, PI) + 0.5;\n\t\treturn texture2DLod(sourceTex, vec2(uv.x, 1.0 - uv.y), mipLevel);\n\t}\n\tvec4 sampleEquirect(vec3 dir, float mipLevel) {\n\t\treturn sampleEquirect(toSpherical(dir), mipLevel);\n\t}\n\tvec4 sampleOctahedral(vec3 dir) {\n\t\tvec2 uv = octEncode(dir) * 0.5 + 0.5;\n\t\treturn texture2D(sourceTex, vec2(uv.x, 1.0 - uv.y));\n\t}\n\tvec4 sampleOctahedral(vec2 sph) {\n\t\treturn sampleOctahedral(fromSpherical(sph));\n\t}\n\tvec4 sampleOctahedral(vec3 dir, float mipLevel) {\n\t\tvec2 uv = octEncode(dir) * 0.5 + 0.5;\n\t\treturn texture2DLod(sourceTex, vec2(uv.x, 1.0 - uv.y), mipLevel);\n\t}\n\tvec4 sampleOctahedral(vec2 sph, float mipLevel) {\n\t\treturn sampleOctahedral(fromSpherical(sph), mipLevel);\n\t}\n#endif\nvec3 getDirectionCubemap() {\n\tvec2 st = vUv0 * 2.0 - 1.0;\n\tfloat face = targetFace();\n\tvec3 vec;\n\tif (face == 0.0) {\n\t\tvec = vec3(1, -st.y, -st.x);\n\t} else if (face == 1.0) {\n\t\tvec = vec3(-1, -st.y, st.x);\n\t} else if (face == 2.0) {\n\t\tvec = vec3(st.x, 1, st.y);\n\t} else if (face == 3.0) {\n\t\tvec = vec3(st.x, -1, -st.y);\n\t} else if (face == 4.0) {\n\t\tvec = vec3(st.x, -st.y, 1);\n\t} else {\n\t\tvec = vec3(-st.x, -st.y, -1);\n\t}\n\treturn normalize(modifySeams(vec, 1.0));\n}\nmat3 matrixFromVector(vec3 n) {\n\tfloat a = 1.0 / (1.0 + n.z);\n\tfloat b = -n.x * n.y * a;\n\tvec3 b1 = vec3(1.0 - n.x * n.x * a, b, -n.x);\n\tvec3 b2 = vec3(b, 1.0 - n.y * n.y * a, -n.y);\n\treturn mat3(b1, b2, n);\n}\nmat3 matrixFromVectorSlow(vec3 n) {\n\tvec3 up = (1.0 - abs(n.y) <= 0.0000001) ? vec3(0.0, 0.0, n.y > 0.0 ? 1.0 : -1.0) : vec3(0.0, 1.0, 0.0);\n\tvec3 x = normalize(cross(up, n));\n\tvec3 y = cross(n, x);\n\treturn mat3(x, y, n);\n}\nvec4 reproject() {\n\tif ({NUM_SAMPLES} <= 1) {\n\t\treturn {ENCODE_FUNC}({DECODE_FUNC}({SOURCE_FUNC}({TARGET_FUNC}())));\n\t} else {\n\t\tvec3 t = {TARGET_FUNC}();\n\t\tvec3 tu = dFdx(t);\n\t\tvec3 tv = dFdy(t);\n\t\tvec3 result = vec3(0.0);\n\t\tfor (float u = 0.0; u < {NUM_SAMPLES_SQRT}; ++u) {\n\t\t\tfor (float v = 0.0; v < {NUM_SAMPLES_SQRT}; ++v) {\n\t\t\t\tresult += {DECODE_FUNC}({SOURCE_FUNC}(normalize(t +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttu * (u / {NUM_SAMPLES_SQRT} - 0.5) +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttv * (v / {NUM_SAMPLES_SQRT} - 0.5))));\n\t\t\t}\n\t\t}\n\t\treturn {ENCODE_FUNC}(result / ({NUM_SAMPLES_SQRT} * {NUM_SAMPLES_SQRT}));\n\t}\n}\nvec4 unpackFloat = vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0);\n#ifdef USE_SAMPLES_TEX\n\tvoid unpackSample(int i, out vec3 L, out float mipLevel) {\n\t\tfloat u = (float(i * 4) + 0.5) * samplesTexInverseSize.x;\n\t\tfloat v = (floor(u) + 0.5) * samplesTexInverseSize.y;\n\t\tvec4 raw;\n\t\traw.x = dot(texture2D(samplesTex, vec2(u, v)), unpackFloat); u += samplesTexInverseSize.x;\n\t\traw.y = dot(texture2D(samplesTex, vec2(u, v)), unpackFloat); u += samplesTexInverseSize.x;\n\t\traw.z = dot(texture2D(samplesTex, vec2(u, v)), unpackFloat); u += samplesTexInverseSize.x;\n\t\traw.w = dot(texture2D(samplesTex, vec2(u, v)), unpackFloat);\n\t\tL.xyz = raw.xyz * 2.0 - 1.0;\n\t\tmipLevel = raw.w * 8.0;\n\t}\n\tvec4 prefilterSamples() {\n\t\tmat3 vecSpace = matrixFromVectorSlow({TARGET_FUNC}());\n\t\tvec3 L;\n\t\tfloat mipLevel;\n\t\tvec3 result = vec3(0.0);\n\t\tfloat totalWeight = 0.0;\n\t\tfor (int i = 0; i < {NUM_SAMPLES}; ++i) {\n\t\t\tunpackSample(i, L, mipLevel);\n\t\t\tresult += {DECODE_FUNC}({SOURCE_FUNC}(vecSpace * L, mipLevel)) * L.z;\n\t\t\ttotalWeight += L.z;\n\t\t}\n\t\treturn {ENCODE_FUNC}(result / totalWeight);\n\t}\n\tvec4 prefilterSamplesUnweighted() {\n\t\tmat3 vecSpace = matrixFromVectorSlow({TARGET_FUNC}());\n\t\tvec3 L;\n\t\tfloat mipLevel;\n\t\tvec3 result = vec3(0.0);\n\t\tfloat totalWeight = 0.0;\n\t\tfor (int i = 0; i < {NUM_SAMPLES}; ++i) {\n\t\t\tunpackSample(i, L, mipLevel);\n\t\t\tresult += {DECODE_FUNC}({SOURCE_FUNC}(vecSpace * L, mipLevel));\n\t\t}\n\t\treturn {ENCODE_FUNC}(result / float({NUM_SAMPLES}));\n\t}\n#endif\nvoid main(void) {\n\tgl_FragColor = {PROCESS_FUNC}();\n}\n`;\n\nvar reproject_default2 = `\nattribute vec2 vertex_position;\nuniform vec4 uvMod;\nvarying vec2 vUv0;\nvoid main(void) {\n\tgl_Position = vec4(vertex_position, 0.5, 1.0);\n\tvUv0 = getImageEffectUV((vertex_position.xy * 0.5 + 0.5) * uvMod.xy + uvMod.zw);\n}\n`;\n\nvar screenDepth_default = `\nuniform highp sampler2D uSceneDepthMap;\n#if defined(SCENE_DEPTHMAP_LINEAR) && defined(SCENE_DEPTHMAP_PACKED)\n\t#include \"floatAsUintPS\"\n#endif\n#ifndef SCREENSIZE\n\t#define SCREENSIZE\n\tuniform vec4 uScreenSize;\n#endif\n#ifndef VIEWMATRIX\n\t#define VIEWMATRIX\n\tuniform mat4 matrix_view;\n#endif\n#ifndef LINEARIZE_DEPTH\n\t#define LINEARIZE_DEPTH\n\t\n\t#ifndef CAMERAPLANES\n\t\t#define CAMERAPLANES\n\t\tuniform vec4 camera_params;\n\t#endif\n\tfloat linearizeDepth(float z) {\n\t\tif (camera_params.w == 0.0)\n\t\t\treturn (camera_params.z * camera_params.y) / (camera_params.y + z * (camera_params.z - camera_params.y));\n\t\telse\n\t\t\treturn camera_params.z + z * (camera_params.y - camera_params.z);\n\t}\n#endif\nfloat delinearizeDepth(float linearDepth) {\n\tif (camera_params.w == 0.0) {\n\t\treturn (camera_params.y * (camera_params.z - linearDepth)) / (linearDepth * (camera_params.z - camera_params.y));\n\t} else {\n\t\treturn (linearDepth - camera_params.z) / (camera_params.y - camera_params.z);\n\t}\n}\nfloat getLinearScreenDepth(vec2 uv) {\n\t#ifdef SCENE_DEPTHMAP_LINEAR\n\t\t#ifdef SCENE_DEPTHMAP_PACKED\n\t\t\tivec2 texel = ivec2(uv * vec2(textureSize(uSceneDepthMap, 0)));\n\t\t\treturn uint2float(texelFetch(uSceneDepthMap, texel, 0));\n\t\t#elif defined(SCENE_DEPTHMAP_RECIPROCAL)\n\t\t\tfloat recip = texture2D(uSceneDepthMap, uv).r;\n\t\t\treturn recip > 0.0 ? 1.0 / recip : camera_params.y;\n\t\t#else\n\t\t\treturn texture2D(uSceneDepthMap, uv).r;\n\t\t#endif\n\t#else\n\t\treturn linearizeDepth(texture2D(uSceneDepthMap, uv).r);\n\t#endif\n}\n#ifndef VERTEXSHADER\n\tfloat getLinearScreenDepth() {\n\t\tvec2 uv = gl_FragCoord.xy * uScreenSize.zw;\n\t\treturn getLinearScreenDepth(uv);\n\t}\n#endif\nfloat getLinearDepth(vec3 pos) {\n\treturn -(matrix_view * vec4(pos, 1.0)).z;\n}\n`;\n\nvar shadowCascades_default = `\nint getShadowCascadeIndex(vec4 shadowCascadeDistances, int shadowCascadeCount) {\n\tfloat depth = 1.0 / gl_FragCoord.w;\n\tvec4 comparisons = step(shadowCascadeDistances, vec4(depth));\n\tint cascadeIndex = int(dot(comparisons, vec4(1.0)));\n\treturn min(cascadeIndex, shadowCascadeCount - 1);\n}\nint ditherShadowCascadeIndex(int cascadeIndex, vec4 shadowCascadeDistances, int shadowCascadeCount, float blendFactor) {\n \n\tif (cascadeIndex < shadowCascadeCount - 1) {\n\t\tfloat currentRangeEnd = shadowCascadeDistances[cascadeIndex];\n\t\tfloat transitionStart = blendFactor * currentRangeEnd;\n\t\tfloat depth = 1.0 / gl_FragCoord.w;\n\t\tif (depth > transitionStart) {\n\t\t\tfloat transitionFactor = smoothstep(transitionStart, currentRangeEnd, depth);\n\t\t\tfloat dither = fract(sin(dot(gl_FragCoord.xy, vec2(12.9898, 78.233))) * 43758.5453);\n\t\t\tif (dither < transitionFactor) {\n\t\t\t\tcascadeIndex += 1;\n\t\t\t}\n\t\t}\n\t}\n\treturn cascadeIndex;\n}\nvec3 fadeShadow(vec3 shadowCoord, vec4 shadowCascadeDistances) {\t\t\t\t  \n\tfloat depth = 1.0 / gl_FragCoord.w;\n\tif (depth > shadowCascadeDistances.w) {\n\t\tshadowCoord.z = -9999999.0;\n\t}\n\treturn shadowCoord;\n}\n`;\n\nvar shadow_caster_default = `\nvec4 getShadowOutput() {\n\tfloat depth = gl_FragCoord.z;\n\t#if SHADOW_TYPE == VSM_16F || SHADOW_TYPE == VSM_32F\n\t\tif (!(depth >= 0.0 && depth <= 1.0)) discard;\n\t\t#if SHADOW_TYPE == VSM_32F\n\t\t\tfloat exponent = 15.0;\n\t\t#else\n\t\t\tfloat exponent = 5.54;\n\t\t#endif\n\t\tdepth = 2.0 * depth - 1.0;\n\t\tdepth = exp(exponent * depth);\n\t\treturn vec4(depth, depth * depth, 1.0, 1.0);\n\t#elif SHADOW_TYPE == PCSS_32F\n\t\treturn vec4(depth, 0.0, 0.0, 1.0);\n\t#else\n\t\treturn vec4(1.0);\n\t#endif\n}\n`;\n\nvar shadowEVSM_default = `\nfloat linstep(float a, float b, float v) {\n\treturn saturate((v - a) / (b - a));\n}\nfloat reduceLightBleeding(float pMax, float amount) {\n\t return linstep(amount, 1.0, pMax);\n}\nfloat chebyshevUpperBound(vec2 moments, float mean, float minVariance, float lightBleedingReduction) {\n\tfloat variance = moments.y - (moments.x * moments.x);\n\tvariance = max(variance, minVariance);\n\tfloat d = mean - moments.x;\n\tfloat pMax = variance / (variance + (d * d));\n\tpMax = reduceLightBleeding(pMax, lightBleedingReduction);\n\treturn (mean <= moments.x ? 1.0 : pMax);\n}\nfloat calculateEVSM(vec3 moments, float Z, float vsmBias, float exponent) {\n\tZ = 2.0 * Z - 1.0;\n\tfloat warpedDepth = exp(exponent * Z);\n\tmoments.xy += vec2(warpedDepth, warpedDepth*warpedDepth) * (1.0 - moments.z);\n\tfloat VSMBias = vsmBias;\n\tfloat depthScale = VSMBias * exponent * warpedDepth;\n\tfloat minVariance1 = depthScale * depthScale;\n\treturn chebyshevUpperBound(moments.xy, warpedDepth, minVariance1, 0.1);\n}\nfloat VSM16(TEXTURE_ACCEPT(tex), vec2 texCoords, float resolution, float Z, float vsmBias, float exponent) {\n\tvec3 moments = texture2DLod(tex, texCoords, 0.0).xyz;\n\treturn calculateEVSM(moments, Z, vsmBias, exponent);\n}\nfloat getShadowVSM16(TEXTURE_ACCEPT(shadowMap), vec3 shadowCoord, vec4 shadowParams, float exponent) {\n\treturn VSM16(TEXTURE_PASS(shadowMap), shadowCoord.xy, shadowParams.x, shadowCoord.z, shadowParams.y, exponent);\n}\nfloat getShadowSpotVSM16(TEXTURE_ACCEPT(shadowMap), vec3 shadowCoord, vec4 shadowParams, float exponent, vec3 lightDir) {\n\treturn VSM16(TEXTURE_PASS(shadowMap), shadowCoord.xy, shadowParams.x, length(lightDir) * shadowParams.w + shadowParams.z, shadowParams.y, exponent);\n}\nfloat VSM32(TEXTURE_ACCEPT(tex), vec2 texCoords, float resolution, float Z, float vsmBias, float exponent) {\n\t#ifdef CAPS_TEXTURE_FLOAT_FILTERABLE\n\t\tvec3 moments = texture2DLod(tex, texCoords, 0.0).xyz;\n\t#else\n\t\tfloat pixelSize = 1.0 / resolution;\n\t\ttexCoords -= vec2(pixelSize);\n\t\tvec3 s00 = texture2DLod(tex, texCoords, 0.0).xyz;\n\t\tvec3 s10 = texture2DLod(tex, texCoords + vec2(pixelSize, 0), 0.0).xyz;\n\t\tvec3 s01 = texture2DLod(tex, texCoords + vec2(0, pixelSize), 0.0).xyz;\n\t\tvec3 s11 = texture2DLod(tex, texCoords + vec2(pixelSize), 0.0).xyz;\n\t\tvec2 fr = fract(texCoords * resolution);\n\t\tvec3 h0 = mix(s00, s10, fr.x);\n\t\tvec3 h1 = mix(s01, s11, fr.x);\n\t\tvec3 moments = mix(h0, h1, fr.y);\n\t#endif\n\treturn calculateEVSM(moments, Z, vsmBias, exponent);\n}\nfloat getShadowVSM32(TEXTURE_ACCEPT(shadowMap), vec3 shadowCoord, vec4 shadowParams, float exponent) {\n\treturn VSM32(TEXTURE_PASS(shadowMap), shadowCoord.xy, shadowParams.x, shadowCoord.z, shadowParams.y, exponent);\n}\nfloat getShadowSpotVSM32(TEXTURE_ACCEPT(shadowMap), vec3 shadowCoord, vec4 shadowParams, float exponent, vec3 lightDir) {\n\tfloat Z = length(lightDir) * shadowParams.w + shadowParams.z;\n\treturn VSM32(TEXTURE_PASS(shadowMap), shadowCoord.xy, shadowParams.x, Z, shadowParams.y, exponent);\n}\n`;\n\nvar shadowPCF1_default = `\nfloat getShadowPCF1x1(SHADOWMAP_ACCEPT(shadowMap), vec3 shadowCoord, vec4 shadowParams) {\n\treturn textureShadow(shadowMap, shadowCoord);\n}\nfloat getShadowSpotPCF1x1(SHADOWMAP_ACCEPT(shadowMap), vec3 shadowCoord, vec4 shadowParams) {\n\treturn textureShadow(shadowMap, shadowCoord);\n}\n#ifndef WEBGPU\nfloat getShadowOmniPCF1x1(samplerCubeShadow shadowMap, vec3 shadowCoord, vec4 shadowParams, vec3 lightDir) {\n\tfloat shadowZ = length(lightDir) * shadowParams.w + shadowParams.z;\n\treturn texture(shadowMap, vec4(lightDir, shadowZ));\n}\n#endif\n`;\n\nvar shadowPCF3_default = `\nfloat _getShadowPCF3x3(SHADOWMAP_ACCEPT(shadowMap), vec3 shadowCoord, vec3 shadowParams) {\n\tfloat z = shadowCoord.z;\n\tvec2 uv = shadowCoord.xy * shadowParams.x;\n\tfloat shadowMapSizeInv = 1.0 / shadowParams.x;\n\tvec2 base_uv = floor(uv + 0.5);\n\tfloat s = (uv.x + 0.5 - base_uv.x);\n\tfloat t = (uv.y + 0.5 - base_uv.y); \n\tbase_uv -= vec2(0.5);\n\tbase_uv *= shadowMapSizeInv;\n\tfloat sum = 0.0;\n\tfloat uw0 = (3.0 - 2.0 * s);\n\tfloat uw1 = (1.0 + 2.0 * s);\n\tfloat u0 = (2.0 - s) / uw0 - 1.0;\n\tfloat u1 = s / uw1 + 1.0;\n\tfloat vw0 = (3.0 - 2.0 * t);\n\tfloat vw1 = (1.0 + 2.0 * t);\n\tfloat v0 = (2.0 - t) / vw0 - 1.0;\n\tfloat v1 = t / vw1 + 1.0;\n\tu0 = u0 * shadowMapSizeInv + base_uv.x;\n\tv0 = v0 * shadowMapSizeInv + base_uv.y;\n\tu1 = u1 * shadowMapSizeInv + base_uv.x;\n\tv1 = v1 * shadowMapSizeInv + base_uv.y;\n\tsum += uw0 * vw0 * textureShadow(shadowMap, vec3(u0, v0, z));\n\tsum += uw1 * vw0 * textureShadow(shadowMap, vec3(u1, v0, z));\n\tsum += uw0 * vw1 * textureShadow(shadowMap, vec3(u0, v1, z));\n\tsum += uw1 * vw1 * textureShadow(shadowMap, vec3(u1, v1, z));\n\tsum *= 1.0f / 16.0;\n\treturn sum;\n}\nfloat getShadowPCF3x3(SHADOWMAP_ACCEPT(shadowMap), vec3 shadowCoord, vec4 shadowParams) {\n\treturn _getShadowPCF3x3(SHADOWMAP_PASS(shadowMap), shadowCoord, shadowParams.xyz);\n}\nfloat getShadowSpotPCF3x3(SHADOWMAP_ACCEPT(shadowMap), vec3 shadowCoord, vec4 shadowParams) {\n\treturn _getShadowPCF3x3(SHADOWMAP_PASS(shadowMap), shadowCoord, shadowParams.xyz);\n}\n#ifndef WEBGPU\nfloat getShadowOmniPCF3x3(samplerCubeShadow shadowMap, vec4 shadowParams, vec3 dir) {\n\t\n\tfloat shadowZ = length(dir) * shadowParams.w + shadowParams.z;\n\tfloat z = 1.0 / float(textureSize(shadowMap, 0));\n\tvec3 tc = normalize(dir);\n\tmediump vec4 shadows;\n\tshadows.x = texture(shadowMap, vec4(tc + vec3( z, z, z), shadowZ));\n\tshadows.y = texture(shadowMap, vec4(tc + vec3(-z,-z, z), shadowZ));\n\tshadows.z = texture(shadowMap, vec4(tc + vec3(-z, z,-z), shadowZ));\n\tshadows.w = texture(shadowMap, vec4(tc + vec3( z,-z,-z), shadowZ));\n\treturn dot(shadows, vec4(0.25));\n}\nfloat getShadowOmniPCF3x3(samplerCubeShadow shadowMap, vec3 shadowCoord, vec4 shadowParams, vec3 lightDir) {\n\treturn getShadowOmniPCF3x3(shadowMap, shadowParams, lightDir);\n}\n#endif\n`;\n\nvar shadowPCF5_default = `\nfloat _getShadowPCF5x5(SHADOWMAP_ACCEPT(shadowMap), vec3 shadowCoord, vec3 shadowParams) {\n\tfloat z = shadowCoord.z;\n\tvec2 uv = shadowCoord.xy * shadowParams.x;\n\tfloat shadowMapSizeInv = 1.0 / shadowParams.x;\n\tvec2 base_uv = floor(uv + 0.5);\n\tfloat s = (uv.x + 0.5 - base_uv.x);\n\tfloat t = (uv.y + 0.5 - base_uv.y);\n\tbase_uv -= vec2(0.5);\n\tbase_uv *= shadowMapSizeInv;\n\tfloat uw0 = (4.0 - 3.0 * s);\n\tfloat uw1 = 7.0;\n\tfloat uw2 = (1.0 + 3.0 * s);\n\tfloat u0 = (3.0 - 2.0 * s) / uw0 - 2.0;\n\tfloat u1 = (3.0 + s) / uw1;\n\tfloat u2 = s / uw2 + 2.0;\n\tfloat vw0 = (4.0 - 3.0 * t);\n\tfloat vw1 = 7.0;\n\tfloat vw2 = (1.0 + 3.0 * t);\n\tfloat v0 = (3.0 - 2.0 * t) / vw0 - 2.0;\n\tfloat v1 = (3.0 + t) / vw1;\n\tfloat v2 = t / vw2 + 2.0;\n\tfloat sum = 0.0;\n\tu0 = u0 * shadowMapSizeInv + base_uv.x;\n\tv0 = v0 * shadowMapSizeInv + base_uv.y;\n\tu1 = u1 * shadowMapSizeInv + base_uv.x;\n\tv1 = v1 * shadowMapSizeInv + base_uv.y;\n\tu2 = u2 * shadowMapSizeInv + base_uv.x;\n\tv2 = v2 * shadowMapSizeInv + base_uv.y;\n\tsum += uw0 * vw0 * textureShadow(shadowMap, vec3(u0, v0, z));\n\tsum += uw1 * vw0 * textureShadow(shadowMap, vec3(u1, v0, z));\n\tsum += uw2 * vw0 * textureShadow(shadowMap, vec3(u2, v0, z));\n\tsum += uw0 * vw1 * textureShadow(shadowMap, vec3(u0, v1, z));\n\tsum += uw1 * vw1 * textureShadow(shadowMap, vec3(u1, v1, z));\n\tsum += uw2 * vw1 * textureShadow(shadowMap, vec3(u2, v1, z));\n\tsum += uw0 * vw2 * textureShadow(shadowMap, vec3(u0, v2, z));\n\tsum += uw1 * vw2 * textureShadow(shadowMap, vec3(u1, v2, z));\n\tsum += uw2 * vw2 * textureShadow(shadowMap, vec3(u2, v2, z));\n\tsum *= 1.0f / 144.0;\n\tsum = saturate(sum);\n\treturn sum;\n}\nfloat getShadowPCF5x5(SHADOWMAP_ACCEPT(shadowMap), vec3 shadowCoord, vec4 shadowParams) {\n\treturn _getShadowPCF5x5(SHADOWMAP_PASS(shadowMap), shadowCoord, shadowParams.xyz);\n}\nfloat getShadowSpotPCF5x5(SHADOWMAP_ACCEPT(shadowMap), vec3 shadowCoord, vec4 shadowParams) {\n\treturn _getShadowPCF5x5(SHADOWMAP_PASS(shadowMap), shadowCoord, shadowParams.xyz);\n}\n`;\n\nvar shadowPCSS_default = `\n#define PCSS_SAMPLE_COUNT 16\nuniform float pcssDiskSamples[PCSS_SAMPLE_COUNT];\nuniform float pcssSphereSamples[PCSS_SAMPLE_COUNT];\nvec2 vogelDisk(int sampleIndex, float count, float phi, float r) {\n\tconst float GoldenAngle = 2.4;\n\tfloat theta = float(sampleIndex) * GoldenAngle + phi;\n\tfloat sine = sin(theta);\n\tfloat cosine = cos(theta);\n\treturn vec2(r * cosine, r * sine);\n}\nvec3 vogelSphere(int sampleIndex, float count, float phi, float r) {\n\tconst float GoldenAngle = 2.4;\n\tfloat theta = float(sampleIndex) * GoldenAngle + phi;\n\tfloat weight = float(sampleIndex) / count;\n\treturn vec3(cos(theta) * r, weight, sin(theta) * r);\n}\nfloat noise(vec2 screenPos) {\n\tconst float PHI = 1.61803398874989484820459;\n\treturn fract(sin(dot(screenPos * PHI, screenPos)) * screenPos.x);\n}\nfloat viewSpaceDepth(float depth, mat4 invProjection) {\n\tfloat z = depth * 2.0 - 1.0;\n\tvec4 clipSpace = vec4(0.0, 0.0, z, 1.0);\n\tvec4 viewSpace = invProjection * clipSpace;\n\treturn viewSpace.z;\n}\nfloat PCSSBlockerDistance(TEXTURE_ACCEPT(shadowMap), vec2 sampleCoords[PCSS_SAMPLE_COUNT], vec2 shadowCoords, vec2 searchSize, float z, vec4 cameraParams) {\n\tfloat blockers = 0.0;\n\tfloat averageBlocker = 0.0;\n\tfor (int i = 0; i < PCSS_SAMPLE_COUNT; i++) {\n\t\tvec2 offset = sampleCoords[i] * searchSize;\n\t\tvec2 sampleUV = shadowCoords + offset;\n\t\tfloat blocker = texture2DLod(shadowMap, sampleUV, 0.0).r;\n\t\tfloat isBlocking = step(blocker, z);\n\t\tblockers += isBlocking;\n\t\taverageBlocker += blocker * isBlocking;\n\t}\n\tif (blockers > 0.0)\n\t\treturn averageBlocker / blockers;\n\treturn -1.0;\n}\nfloat PCSS(TEXTURE_ACCEPT(shadowMap), vec3 shadowCoords, vec4 cameraParams, vec2 shadowSearchArea) {\n\tfloat receiverDepth = linearizeDepthWithParams(shadowCoords.z, cameraParams);\n\tvec2 samplePoints[PCSS_SAMPLE_COUNT];\n\tconst float PI = 3.141592653589793;\n\tfloat noise = noise( gl_FragCoord.xy ) * 2.0 * PI;\n\tfor (int i = 0; i < PCSS_SAMPLE_COUNT; i++) {\n\t\tfloat pcssPresample = pcssDiskSamples[i];\n\t\tsamplePoints[i] = vogelDisk(i, float(PCSS_SAMPLE_COUNT), noise, pcssPresample);\n\t}\n\tfloat averageBlocker = PCSSBlockerDistance(TEXTURE_PASS(shadowMap), samplePoints, shadowCoords.xy, shadowSearchArea, receiverDepth, cameraParams);\n\tif (averageBlocker == -1.0) {\n\t\treturn 1.0;\n\t} else {\n\t\tfloat depthDifference = (receiverDepth - averageBlocker) / 3.0;\n\t\tvec2 filterRadius = depthDifference * shadowSearchArea;\n\t\tfloat shadow = 0.0;\n\t\tfor (int i = 0; i < PCSS_SAMPLE_COUNT; i ++)\n\t\t{\n\t\t\tvec2 sampleUV = samplePoints[i] * filterRadius;\n\t\t\tsampleUV = shadowCoords.xy + sampleUV;\n\t\t\tfloat depth = texture2DLod(shadowMap, sampleUV, 0.0).r;\n\t\t\tshadow += step(receiverDepth, depth);\n\t\t}\n\t\treturn shadow / float(PCSS_SAMPLE_COUNT);\n\t} \n}\n#ifndef WEBGPU\nfloat PCSSCubeBlockerDistance(samplerCube shadowMap, vec3 lightDirNorm, vec3 samplePoints[PCSS_SAMPLE_COUNT], float z, float shadowSearchArea) {\n\tfloat blockers = 0.0;\n\tfloat averageBlocker = 0.0;\n\tfor (int i = 0; i < PCSS_SAMPLE_COUNT; i++) {\n\t\tvec3 sampleDir = lightDirNorm + samplePoints[i] * shadowSearchArea;\n\t\tsampleDir = normalize(sampleDir);\n\t\tfloat blocker = textureCubeLod(shadowMap, sampleDir, 0.0).r;\n\t\tfloat isBlocking = step(blocker, z);\n\t\tblockers += isBlocking;\n\t\taverageBlocker += blocker * isBlocking;\n\t}\n\tif (blockers > 0.0)\n\t\treturn averageBlocker / blockers;\n\treturn -1.0;\n}\nfloat PCSSCube(samplerCube shadowMap, vec4 shadowParams, vec3 shadowCoords, vec4 cameraParams, float shadowSearchArea, vec3 lightDir) {\n\t\n\tvec3 samplePoints[PCSS_SAMPLE_COUNT];\n\tconst float PI = 3.141592653589793;\n\tfloat noise = noise( gl_FragCoord.xy ) * 2.0 * PI;\n\tfor (int i = 0; i < PCSS_SAMPLE_COUNT; i++) {\n\t\tfloat r = pcssSphereSamples[i];\n\t\tsamplePoints[i] = vogelSphere(i, float(PCSS_SAMPLE_COUNT), noise, r);\n\t}\n\tfloat receiverDepth = length(lightDir) * shadowParams.w + shadowParams.z;\n\tvec3 lightDirNorm = normalize(lightDir);\n\t\n\tfloat averageBlocker = PCSSCubeBlockerDistance(shadowMap, lightDirNorm, samplePoints, receiverDepth, shadowSearchArea);\n\tif (averageBlocker == -1.0) {\n\t\treturn 1.0;\n\t} else {\n\t\tfloat filterRadius = ((receiverDepth - averageBlocker) / averageBlocker) * shadowSearchArea;\n\t\tfloat shadow = 0.0;\n\t\tfor (int i = 0; i < PCSS_SAMPLE_COUNT; i++)\n\t\t{\n\t\t\tvec3 offset = samplePoints[i] * filterRadius;\n\t\t\tvec3 sampleDir = lightDirNorm + offset;\n\t\t\tsampleDir = normalize(sampleDir);\n\t\t\tfloat depth = textureCubeLod(shadowMap, sampleDir, 0.0).r;\n\t\t\tshadow += step(receiverDepth, depth);\n\t\t}\n\t\treturn shadow / float(PCSS_SAMPLE_COUNT);\n\t}\n}\nfloat getShadowOmniPCSS(samplerCube shadowMap, vec3 shadowCoord, vec4 shadowParams, vec4 cameraParams, vec2 shadowSearchArea, vec3 lightDir) {\n\treturn PCSSCube(shadowMap, shadowParams, shadowCoord, cameraParams, shadowSearchArea.x, lightDir);\n}\n#endif\nfloat getShadowSpotPCSS(TEXTURE_ACCEPT(shadowMap), vec3 shadowCoord, vec4 shadowParams, vec4 cameraParams, vec2 shadowSearchArea, vec3 lightDir) {\n\treturn PCSS(TEXTURE_PASS(shadowMap), shadowCoord, cameraParams, shadowSearchArea);\n}\n`;\n\nvar shadowSoft_default = `\nhighp float fractSinRand(const in vec2 uv) {\n\tconst float PI = 3.141592653589793;\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\n\thighp float dt = dot(uv.xy, vec2(a, b)), sn = mod(dt, PI);\n\treturn fract(sin(sn) * c);\n}\nstruct VogelDiskData {\n\tfloat invNumSamples;\n\tfloat initialAngle;\n\tfloat currentPointId;\n};\nvoid prepareDiskConstants(out VogelDiskData data, int sampleCount, float randomSeed) {\n\tconst float pi2 = 6.28318530718;\n\tdata.invNumSamples = 1.0 / float(sampleCount);\n\tdata.initialAngle = randomSeed * pi2;\n\tdata.currentPointId = 0.0;\n}\nvec2 generateDiskSample(inout VogelDiskData data) {\n\tconst float GOLDEN_ANGLE = 2.399963;\n\tfloat r = sqrt((data.currentPointId + 0.5) * data.invNumSamples);\n\tfloat theta = data.currentPointId * GOLDEN_ANGLE + data.initialAngle;\n\tvec2 offset = vec2(cos(theta), sin(theta)) * pow(r, 1.33);\n\tdata.currentPointId += 1.0;\n\treturn offset;\n}\nvoid PCSSFindBlocker(TEXTURE_ACCEPT(shadowMap), out float avgBlockerDepth, out int numBlockers,\n\tvec2 shadowCoords, float z, int shadowBlockerSamples, float searchWidthUv, float randomSeed) {\n\tVogelDiskData diskData;\n\tprepareDiskConstants(diskData, shadowBlockerSamples, randomSeed);\n\tfloat blockerSum = 0.0;\n\tnumBlockers = 0;\n\tfor( int i = 0; i < shadowBlockerSamples; ++i ) {\n\t\tvec2 diskUV = generateDiskSample(diskData);\n\t\tvec2 sampleUV = shadowCoords + diskUV * searchWidthUv;\n\t\tfloat shadowMapDepth = texture2DLod(shadowMap, sampleUV, 0.0).r;\n\t\tif ( shadowMapDepth < z ) {\n\t\t\tblockerSum += shadowMapDepth;\n\t\t\tnumBlockers++;\n\t\t}\n\t}\n\tavgBlockerDepth = blockerSum / float(numBlockers);\n}\nfloat PCSSFilter(TEXTURE_ACCEPT(shadowMap), vec2 uv, float receiverDepth, int shadowSamples, float filterRadius, float randomSeed) {\n\tVogelDiskData diskData;\n\tprepareDiskConstants(diskData, shadowSamples, randomSeed);\n\tfloat sum = 0.0;\n\tfor (int i = 0; i < shadowSamples; i++) {\n\t\tvec2 offsetUV = generateDiskSample(diskData) * filterRadius;\n\t\tfloat depth = texture2DLod(shadowMap, uv + offsetUV, 0.0).r;\n\t\tsum += step(receiverDepth, depth);\n\t}\n\treturn sum / float(shadowSamples);\n}\nfloat PCSSDirectional(TEXTURE_ACCEPT(shadowMap), vec3 shadowCoords, vec4 cameraParams, vec4 softShadowParams) {\n\tfloat receiverDepth = shadowCoords.z;\n\tfloat receiverDepthClamped = min(receiverDepth, 0.9999);\n\tfloat randomSeed = fractSinRand(gl_FragCoord.xy);\n\tint shadowSamples = int(softShadowParams.x);\n\tint shadowBlockerSamples = int(softShadowParams.y);\n\tfloat penumbraSize = softShadowParams.z;\n\tfloat penumbraFalloff = softShadowParams.w;\n\tfloat orthoRadius = cameraParams.x;\n\tfloat depthRange = cameraParams.y - cameraParams.z;\n\tfloat worldPerUv = 2.0 * orthoRadius;\n\tfloat filterRadius;\n\tif (shadowBlockerSamples > 0) {\n\t\tfloat searchWidthUv = (penumbraSize * depthRange) / worldPerUv;\n\t\tfloat avgBlockerDepth = 0.0;\n\t\tint numBlockers = 0;\n\t\tPCSSFindBlocker(TEXTURE_PASS(shadowMap), avgBlockerDepth, numBlockers, shadowCoords.xy, receiverDepthClamped, shadowBlockerSamples, searchWidthUv, randomSeed);\n\t\tif (numBlockers < 1)\n\t\t\treturn 1.0f;\n\t\tfloat worldDist = max((receiverDepth - avgBlockerDepth) * depthRange, 0.0);\n\t\tfloat t = clamp(worldDist / depthRange, 0.0, 1.0);\n\t\tfloat shape = 1.0 - pow(1.0 - t, penumbraFalloff);\n\t\tfloat penumbraWorld = shape * penumbraSize * depthRange;\n\t\tfilterRadius = penumbraWorld / worldPerUv;\n\t} else {\n\t\tfilterRadius = penumbraSize / worldPerUv;\n\t}\n\treturn PCSSFilter(TEXTURE_PASS(shadowMap), shadowCoords.xy, receiverDepthClamped, shadowSamples, filterRadius, randomSeed);\n}\nfloat getShadowPCSS(TEXTURE_ACCEPT(shadowMap), vec3 shadowCoord, vec4 shadowParams, vec4 cameraParams, vec4 softShadowParams, vec3 lightDir) {\n\treturn PCSSDirectional(TEXTURE_PASS(shadowMap), shadowCoord, cameraParams, softShadowParams);\n}\n`;\n\nvar skinBatch_default = `\nattribute float vertex_boneIndices;\nuniform highp sampler2D texture_poseMap;\nmat4 getBoneMatrix(const in float indexFloat) {\n\tint width = textureSize(texture_poseMap, 0).x;\n\tint index = int(indexFloat + 0.5) * 3;\n\tint iy = index / width;\n\tint ix = index % width;\n\tvec4 v1 = texelFetch(texture_poseMap, ivec2(ix + 0, iy), 0);\n\tvec4 v2 = texelFetch(texture_poseMap, ivec2(ix + 1, iy), 0);\n\tvec4 v3 = texelFetch(texture_poseMap, ivec2(ix + 2, iy), 0);\n\treturn mat4(\n\t\tv1.x, v2.x, v3.x, 0,\n\t\tv1.y, v2.y, v3.y, 0,\n\t\tv1.z, v2.z, v3.z, 0,\n\t\tv1.w, v2.w, v3.w, 1\n\t);\n}\n`;\n\nvar skin_default = `\nattribute vec4 vertex_boneWeights;\nattribute vec4 vertex_boneIndices;\nuniform highp sampler2D texture_poseMap;\nvoid getBoneMatrix(const in int width, const in int index, out vec4 v1, out vec4 v2, out vec4 v3) {\n\tint v = index / width;\n\tint u = index % width;\n\tv1 = texelFetch(texture_poseMap, ivec2(u + 0, v), 0);\n\tv2 = texelFetch(texture_poseMap, ivec2(u + 1, v), 0);\n\tv3 = texelFetch(texture_poseMap, ivec2(u + 2, v), 0);\n}\nmat4 getSkinMatrix(const in vec4 indicesFloat, const in vec4 weights) {\n\tint width = textureSize(texture_poseMap, 0).x;\n\tivec4 indices = ivec4(indicesFloat + 0.5) * 3;\n\tvec4 a1, a2, a3;\n\tgetBoneMatrix(width, indices.x, a1, a2, a3);\n\tvec4 b1, b2, b3;\n\tgetBoneMatrix(width, indices.y, b1, b2, b3);\n\tvec4 c1, c2, c3;\n\tgetBoneMatrix(width, indices.z, c1, c2, c3);\n\tvec4 d1, d2, d3;\n\tgetBoneMatrix(width, indices.w, d1, d2, d3);\n\tvec4 v1 = a1 * weights.x + b1 * weights.y + c1 * weights.z + d1 * weights.w;\n\tvec4 v2 = a2 * weights.x + b2 * weights.y + c2 * weights.z + d2 * weights.w;\n\tvec4 v3 = a3 * weights.x + b3 * weights.y + c3 * weights.z + d3 * weights.w;\n\tfloat one = dot(weights, vec4(1.0));\n\treturn mat4(\n\t\tv1.x, v2.x, v3.x, 0,\n\t\tv1.y, v2.y, v3.y, 0,\n\t\tv1.z, v2.z, v3.z, 0,\n\t\tv1.w, v2.w, v3.w, one\n\t);\n}\n`;\n\nvar skybox_default = `\n\t#define LIT_SKYBOX_INTENSITY\n\t#include \"envProcPS\"\n\t#include \"gammaPS\"\n\t#include \"tonemappingPS\"\n\t#include \"sceneTexturesPS\"\n\t#if defined(PREPASS_PASS) || (defined(SCENE_TEXTURE_DEPTH) && defined(SKYMESH))\n\t\tvarying float vLinearDepth;\n\t#endif\n\t#ifdef PREPASS_PASS\n\t\t#include \"floatAsUintPS\"\n\t#endif\n\tvarying vec3 vViewDir;\n\tuniform float skyboxHighlightMultiplier;\n\t#if defined(SKY_FISHEYE) && !defined(SKYMESH)\n\t\tuniform float fisheye_k;\n\t\tuniform float fisheye_invK;\n\t\tuniform float fisheye_projMat00;\n\t\tuniform float fisheye_projMat11;\n\t\tuniform mat4 matrix_view;\n\t\tuniform mat3 cubeMapRotationMatrix;\n\t\tvarying vec3 vClipXYW;\n\t#endif\n\t#ifdef SKY_CUBEMAP\n\t\tuniform samplerCube texture_cubeMap;\n\t\t#ifdef SKYMESH\n\t\t\tvarying vec3 vWorldPos;\n\t\t\tuniform mat3 cubeMapRotationMatrix;\n\t\t\tuniform vec3 projectedSkydomeCenter;\n\t\t#endif\n\t#else\n\t\t#include \"sphericalPS\"\n\t\t#include \"envAtlasPS\"\n\t\tuniform sampler2D texture_envAtlas;\n\t\tuniform float mipLevel;\n\t#endif\n\tvoid main(void) {\n\t\t#ifdef PREPASS_PASS\n\t\t\tgl_FragColor = float2vec4(vLinearDepth);\n\t\t#else\n\t\t\t#if defined(SKY_FISHEYE) && !defined(SKYMESH)\n\t\t\t\tvec2 ndc = vClipXYW.xy / vClipXYW.z;\n\t\t\t\tfloat px = ndc.x / fisheye_projMat00;\n\t\t\t\tfloat py = ndc.y / fisheye_projMat11;\n\t\t\t\tfloat r = sqrt(px * px + py * py);\n\t\t\t\tfloat theta = fisheye_k * atan(r * fisheye_invK);\n\t\t\t\tfloat sinT = sin(theta);\n\t\t\t\tfloat cosT = cos(theta);\n\t\t\t\tvec3 camDir = (r > 1e-6)\n\t\t\t\t\t? vec3(px / r * sinT, py / r * sinT, -cosT)\n\t\t\t\t\t: vec3(0.0, 0.0, -1.0);\n\t\t\t\tvec3 dir = transpose(mat3(matrix_view)) * camDir;\n\t\t\t\tdir = dir * cubeMapRotationMatrix;\n\t\t\t#elif defined(SKY_CUBEMAP) && defined(SKYMESH)\n\t\t\t\tvec3 envDir = normalize(vWorldPos - projectedSkydomeCenter);\n\t\t\t\tvec3 dir = envDir * cubeMapRotationMatrix;\n\t\t\t#else\n\t\t\t\tvec3 dir = vViewDir;\n\t\t\t#endif\n\t\t\t#ifdef SKY_CUBEMAP\n\t\t\t\tdir.x *= -1.0;\n\t\t\t\tvec3 linear = {SKYBOX_DECODE_FNC}(textureCube(texture_cubeMap, dir));\n\t\t\t#else\n\t\t\t\tdir *= vec3(-1.0, 1.0, 1.0);\n\t\t\t\tvec2 uv = toSphericalUv(normalize(dir));\n\t\t\t\tvec3 linear = {SKYBOX_DECODE_FNC}(texture2D(texture_envAtlas, mapRoughnessUv(uv, mipLevel)));\n\t\t\t#endif\n\t\t\tif (any(greaterThanEqual(linear, vec3(64.0)))) {\n\t\t\t\tlinear *= skyboxHighlightMultiplier;\n\t\t\t}\n\t\t\tgl_FragColor = vec4(gammaCorrectOutput(toneMap(processEnvironment(linear))), 1.0);\n\t\t\t#if defined(SCENE_TEXTURE_DEPTH) && defined(SKYMESH)\n\t\t\t\twriteSceneTextureDepth(vLinearDepth, 1.0);\n\t\t\t#endif\n\t\t#endif\n\t}\n`;\n\nvar skybox_default2 = `\nattribute vec4 aPosition;\nuniform mat4 matrix_view;\nuniform mat4 matrix_projectionSkybox;\nuniform mat3 cubeMapRotationMatrix;\nvarying vec3 vViewDir;\n#ifdef SKY_FISHEYE\n\tvarying vec3 vClipXYW;\n#endif\n#if defined(PREPASS_PASS) || (defined(SCENE_TEXTURE_DEPTH) && defined(SKYMESH))\n\tvarying float vLinearDepth;\n#endif\n#ifdef SKYMESH\n\tuniform mat4 matrix_model;\n\tvarying vec3 vWorldPos;\n#endif\nvoid main(void) {\n\tmat4 view = matrix_view;\n\t#ifdef SKYMESH\n\t\tvec4 worldPos = matrix_model * aPosition;\n\t\tvWorldPos = worldPos.xyz;\n\t\tgl_Position = matrix_projectionSkybox * (view * worldPos);\n\t\t#if defined(PREPASS_PASS) || defined(SCENE_TEXTURE_DEPTH)\n\t\t\tvLinearDepth = -(matrix_view * vec4(vWorldPos, 1.0)).z;\n\t\t#endif\n\t#else\n\t\tview[3][0] = view[3][1] = view[3][2] = 0.0;\n\t\tvViewDir = aPosition.xyz * cubeMapRotationMatrix;\n\t\t#ifdef SKY_FISHEYE\n\t\t\tvec4 viewPos = view * aPosition;\n\t\t\tgl_Position = vec4(viewPos.xy, 0.0, -viewPos.z);\n\t\t\tvClipXYW = vec3(gl_Position.xy, gl_Position.w);\n\t\t#else\n\t\t\tgl_Position = matrix_projectionSkybox * (view * aPosition);\n\t\t#endif\n\t\t#ifdef PREPASS_PASS\n\t\t\tvLinearDepth = -gl_Position.w;\n\t\t#endif\n\t#endif\n\tgl_Position.z = gl_Position.w - 1.0e-7;\n}\n`;\n\nvar specular_default = `\n#ifdef STD_SPECULAR_CONSTANT\nuniform vec3 material_specular;\n#endif\nvoid getSpecularity() {\n\tvec3 specularColor = vec3(1,1,1);\n\t#ifdef STD_SPECULAR_CONSTANT\n\tspecularColor *= material_specular;\n\t#endif\n\t#ifdef STD_SPECULAR_TEXTURE\n\tspecularColor *= {STD_SPECULAR_TEXTURE_DECODE}(texture2DBias({STD_SPECULAR_TEXTURE_NAME}, {STD_SPECULAR_TEXTURE_UV}, textureBias)).{STD_SPECULAR_TEXTURE_CHANNEL};\n\t#endif\n\t#ifdef STD_SPECULAR_VERTEX\n\tspecularColor *= saturate(vVertexColor.{STD_SPECULAR_VERTEX_CHANNEL});\n\t#endif\n\tdSpecularity = specularColor;\n}\n`;\n\nvar spherical_default = `\nvec2 toSpherical(vec3 dir) {\n\treturn vec2(dir.xz == vec2(0.0) ? 0.0 : atan(dir.x, dir.z), asin(dir.y));\n}\nvec2 toSphericalUv(vec3 dir) {\n\tconst float PI = 3.141592653589793;\n\tvec2 uv = toSpherical(dir) / vec2(PI * 2.0, PI) + 0.5;\n\treturn vec2(uv.x, 1.0 - uv.y);\n}\n`;\n\nvar specularityFactor_default = `\n#ifdef STD_SPECULARITYFACTOR_CONSTANT\nuniform float material_specularityFactor;\n#endif\nvoid getSpecularityFactor() {\n\tfloat specularityFactor = 1.0;\n\t#ifdef STD_SPECULARITYFACTOR_CONSTANT\n\tspecularityFactor *= material_specularityFactor;\n\t#endif\n\t#ifdef STD_SPECULARITYFACTOR_TEXTURE\n\tspecularityFactor *= texture2DBias({STD_SPECULARITYFACTOR_TEXTURE_NAME}, {STD_SPECULARITYFACTOR_TEXTURE_UV}, textureBias).{STD_SPECULARITYFACTOR_TEXTURE_CHANNEL};\n\t#endif\n\t#ifdef STD_SPECULARITYFACTOR_VERTEX\n\tspecularityFactor *= saturate(vVertexColor.{STD_SPECULARITYFACTOR_VERTEX_CHANNEL});\n\t#endif\n\tdSpecularityFactor = specularityFactor;\n}\n`;\n\nvar spot_default = `\nfloat getSpotEffect(vec3 lightSpotDir, float lightInnerConeAngle, float lightOuterConeAngle, vec3 lightDirNorm) {\n\tfloat cosAngle = dot(lightDirNorm, lightSpotDir);\n\treturn smoothstep(lightOuterConeAngle, lightInnerConeAngle, cosAngle);\n}\n`;\n\nvar startNineSliced_default = `\n\tnineSlicedUv = vec2(vUv0.x, 1.0 - vUv0.y);\n`;\n\nvar startNineSlicedTiled_default = `\n\tvec2 tileMask = step(vMask, vec2(0.99999));\n\tvec2 tileSize = 0.5 * (innerOffset.xy + innerOffset.zw);\n\tvec2 tileScale = vec2(1.0) / (vec2(1.0) - tileSize);\n\tvec2 clampedUv = mix(innerOffset.xy * 0.5, vec2(1.0) - innerOffset.zw * 0.5, fract((vTiledUv - tileSize) * tileScale));\n\tclampedUv = clampedUv * atlasRect.zw + atlasRect.xy;\n\tnineSlicedUv = vUv0 * tileMask + clampedUv * (vec2(1.0) - tileMask);\n\tnineSlicedUv.y = 1.0 - nineSlicedUv.y;\n\t\n`;\n\nvar stdDeclaration_default = `\n\tfloat dAlpha = 1.0;\n\t#if LIT_BLEND_TYPE != NONE || defined(LIT_ALPHA_TEST) || defined(LIT_ALPHA_TO_COVERAGE) || STD_OPACITY_DITHER != NONE\n\t\t#ifdef STD_OPACITY_TEXTURE_ALLOCATE\n\t\t\tuniform sampler2D texture_opacityMap;\n\t\t#endif\n\t#endif\n\t#ifdef FORWARD_PASS\n\t\tvec3 dAlbedo;\n\t\tvec3 dNormalW;\n\t\tvec3 dSpecularity = vec3(0.0);\n\t\tfloat dGlossiness = 0.0;\n\t\t#ifdef LIT_REFRACTION\n\t\t\tfloat dTransmission;\n\t\t\tfloat dThickness;\n\t\t\t#ifndef LIT_METALNESS\n\t\t\t\tfloat dIor;\n\t\t\t#endif\n\t\t#endif\n\t\t#ifdef LIT_SCENE_COLOR\n\t\t\tuniform sampler2D uSceneColorMap;\n\t\t#endif\n\t\t#ifdef LIT_SCREEN_SIZE\n\t\t\tuniform vec4 uScreenSize;\n\t\t#endif\n\t\t#ifdef LIT_TRANSFORMS\n\t\t\tuniform mat4 matrix_viewProjection;\n\t\t\tuniform mat4 matrix_model;\n\t\t#endif\n\t\t#ifdef STD_HEIGHT_MAP\n\t\t\tvec2 dUvOffset;\n\t\t\t#ifdef STD_PARALLAX_SELF_SHADOW\n\t\t\t\tfloat dParallaxHitDepth;\n\t\t\t\tfloat dParallaxLod;\n\t\t\t#endif\n\t\t\t#ifdef STD_HEIGHT_TEXTURE_ALLOCATE\n\t\t\t\tuniform sampler2D texture_heightMap;\n\t\t\t#endif\n\t\t#endif\n\t\t#ifdef STD_DIFFUSE_TEXTURE_ALLOCATE\n\t\t\tuniform sampler2D texture_diffuseMap;\n\t\t#endif\n\t\t#ifdef STD_DIFFUSEDETAIL_TEXTURE_ALLOCATE\n\t\t\tuniform sampler2D texture_diffuseDetailMap;\n\t\t#endif\n\t\t#ifdef STD_NORMAL_TEXTURE_ALLOCATE\n\t\t\tuniform sampler2D texture_normalMap;\n\t\t#endif\n\t\t#ifdef STD_NORMALDETAIL_TEXTURE_ALLOCATE\n\t\t\tuniform sampler2D texture_normalDetailMap;\n\t\t#endif\n\t\t#ifdef STD_THICKNESS_TEXTURE_ALLOCATE\n\t\t\tuniform sampler2D texture_thicknessMap;\n\t\t#endif\n\t\t#ifdef STD_REFRACTION_TEXTURE_ALLOCATE\n\t\t\tuniform sampler2D texture_refractionMap;\n\t\t#endif\n\t\t#ifdef LIT_IRIDESCENCE\n\t\t\tfloat dIridescence;\n\t\t\tfloat dIridescenceThickness;\n\t\t\t#ifdef STD_IRIDESCENCE_THICKNESS_TEXTURE_ALLOCATE\n\t\t\t\tuniform sampler2D texture_iridescenceThicknessMap;\n\t\t\t#endif\n\t\t\t#ifdef STD_IRIDESCENCE_TEXTURE_ALLOCATE\n\t\t\t\tuniform sampler2D texture_iridescenceMap;\n\t\t\t#endif\n\t\t#endif\n\t\t#ifdef LIT_CLEARCOAT\n\t\t\tfloat ccSpecularity;\n\t\t\tfloat ccGlossiness;\n\t\t\tvec3 ccNormalW;\n\t\t#endif\n\t\t#ifdef LIT_GGX_SPECULAR\n\t\t\tfloat dAnisotropy;\n\t\t\tvec2 dAnisotropyRotation;\n\t\t#endif\n\t\t#if defined(LIT_SPECULAR_OR_REFLECTION) || defined(LIT_REFRACTION)\n\t\t\t#ifdef LIT_SHEEN\n\t\t\t\tvec3 sSpecularity;\n\t\t\t\tfloat sGlossiness;\n\t\t\t\t#ifdef STD_SHEEN_TEXTURE_ALLOCATE\n\t\t\t\t\tuniform sampler2D texture_sheenMap;\n\t\t\t\t#endif\n\t\t\t\t#ifdef STD_SHEENGLOSS_TEXTURE_ALLOCATE\n\t\t\t\t\tuniform sampler2D texture_sheenGlossMap;\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t\t#ifdef LIT_METALNESS\n\t\t\t\tfloat dMetalness;\n\t\t\t\tfloat dIor;\n\t\t\t\t#ifdef STD_METALNESS_TEXTURE_ALLOCATE\n\t\t\t\t\tuniform sampler2D texture_metalnessMap;\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t\t#ifdef LIT_SPECULARITY_FACTOR\n\t\t\t\tfloat dSpecularityFactor;\n\t\t\t\t#ifdef STD_SPECULARITYFACTOR_TEXTURE_ALLOCATE\n\t\t\t\t\tuniform sampler2D texture_specularityFactorMap;\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t\t#ifdef STD_SPECULAR_COLOR\n\t\t\t\t#ifdef STD_SPECULAR_TEXTURE_ALLOCATE\n\t\t\t\t\tuniform sampler2D texture_specularMap;\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t\t#ifdef STD_GLOSS_TEXTURE_ALLOCATE\n\t\t\t\tuniform sampler2D texture_glossMap;\n\t\t\t#endif\n\t\t#endif\n\t\t#ifdef STD_AO\n\t\t\tfloat dAo;\n\t\t\t#ifdef STD_AO_TEXTURE_ALLOCATE\n\t\t\t\tuniform sampler2D texture_aoMap;\n\t\t\t#endif\n\t\t\t#ifdef STD_AODETAIL_TEXTURE_ALLOCATE\n\t\t\t\tuniform sampler2D texture_aoDetailMap;\n\t\t\t#endif\n\t\t#endif\n\t\tvec3 dEmission;\n\t\t#ifdef STD_EMISSIVE_TEXTURE_ALLOCATE\n\t\t\tuniform sampler2D texture_emissiveMap;\n\t\t#endif\n\t\t#ifdef LIT_CLEARCOAT\n\t\t\t#ifdef STD_CLEARCOAT_TEXTURE_ALLOCATE\n\t\t\t\tuniform sampler2D texture_clearCoatMap;\n\t\t\t#endif\n\t\t\t#ifdef STD_CLEARCOATGLOSS_TEXTURE_ALLOCATE\n\t\t\t\tuniform sampler2D texture_clearCoatGlossMap;\n\t\t\t#endif\n\t\t\t#ifdef STD_CLEARCOATNORMAL_TEXTURE_ALLOCATE\n\t\t\t\tuniform sampler2D texture_clearCoatNormalMap;\n\t\t\t#endif\n\t\t#endif\n\t\t\n\t\t#ifdef LIT_GGX_SPECULAR\n\t\t\t#ifdef STD_ANISOTROPY_TEXTURE_ALLOCATE\n\t\t\t\tuniform sampler2D texture_anisotropyMap;\n\t\t\t#endif\n\t\t#endif\n\t\t#if defined(STD_LIGHTMAP) || defined(STD_LIGHT_VERTEX_COLOR)\n\t\t\tvec3 dLightmap;\n\t\t\t#ifdef STD_LIGHT_TEXTURE_ALLOCATE\n\t\t\t\tuniform sampler2D texture_lightMap;\n\t\t\t#endif\n\t\t#endif\n\t#endif\n\t#include \"litShaderCorePS\"\n`;\n\nvar stdFrontEnd_default = `\n\t#if defined(FORWARD_PASS) && defined(STD_HEIGHT_MAP)\n\t\t#include \"parallaxPS\"\n\t#endif\n\t#if LIT_BLEND_TYPE != NONE || defined(LIT_ALPHA_TEST) || defined(LIT_ALPHA_TO_COVERAGE) || STD_OPACITY_DITHER != NONE\n\t\t#include \"opacityPS\"\n\t\t#if defined(LIT_ALPHA_TEST)\n\t\t\t#include \"alphaTestPS\"\n\t\t#endif\n\t\t#if STD_OPACITY_DITHER != NONE\n\t\t\t#include \"opacityDitherPS\"\n\t\t#endif\n\t#endif\n\t#ifdef FORWARD_PASS\n\t\t#include  \"diffusePS\"\n\t\t#ifdef LIT_NEEDS_NORMAL\n\t\t\t#include \"normalMapPS\"\n\t\t#endif\n\t\t#ifdef LIT_REFRACTION\n\t\t\t#include \"transmissionPS\"\n\t\t\t#include \"thicknessPS\"\n\t\t\t#ifndef LIT_METALNESS\n\t\t\t\t#include \"iorPS\"\n\t\t\t#endif\n\t\t#endif\n\t\t#ifdef LIT_IRIDESCENCE\n\t\t\t#include \"iridescencePS\"\n\t\t\t#include \"iridescenceThicknessPS\"\n\t\t#endif\n\t\t#if defined(LIT_SPECULAR_OR_REFLECTION) || defined(LIT_REFRACTION)\n\t\t\t#ifdef LIT_SHEEN\n\t\t\t\t#include \"sheenPS\"\n\t\t\t\t#include \"sheenGlossPS\"\n\t\t\t#endif\n\t\t\t#ifdef LIT_METALNESS\n\t\t\t\t#include \"metalnessPS\"\n\t\t\t\t#include \"iorPS\"\n\t\t\t#endif\n\t\t\t#ifdef LIT_SPECULARITY_FACTOR\n\t\t\t\t#include \"specularityFactorPS\"\n\t\t\t#endif\n\t\t\t#ifdef STD_SPECULAR_COLOR\n\t\t\t\t#include \"specularPS\"\n\t\t\t#else\n\t\t\t\tvoid getSpecularity() { \n\t\t\t\t\tdSpecularity = vec3(1);\n\t\t\t\t}\n\t\t\t#endif\n\t\t\t#include \"glossPS\"\n\t\t#endif\n\t\t#ifdef STD_AO\n\t\t\t#include \"aoPS\"\n\t\t#endif\n\t\t#include \"emissivePS\"\n\t\t#ifdef LIT_CLEARCOAT\n\t\t\t#include \"clearCoatPS\"\n\t\t\t#include \"clearCoatGlossPS\"\n\t\t\t#include \"clearCoatNormalPS\"\n\t\t#endif\n\t\t#if defined(LIT_SPECULAR) && defined(LIT_LIGHTING) && defined(LIT_GGX_SPECULAR)\n\t\t\t#include \"anisotropyPS\"\n\t\t#endif\n\t\t#if defined(STD_LIGHTMAP) || defined(STD_LIGHT_VERTEX_COLOR)\n\t\t\t#include \"lightmapPS\"\n\t\t#endif\n\t#endif\n\tvoid evaluateFrontend() {\n\t\t#if defined(FORWARD_PASS) && defined(STD_HEIGHT_MAP)\n\t\t\tgetParallax();\n\t\t#endif\n\t\t#if LIT_BLEND_TYPE != NONE || defined(LIT_ALPHA_TEST) || defined(LIT_ALPHA_TO_COVERAGE) || STD_OPACITY_DITHER != NONE\n\t\t\tgetOpacity();\n\t\t\t#if defined(LIT_ALPHA_TEST)\n\t\t\t\talphaTest(dAlpha);\n\t\t\t#endif\n\t\t\t#if STD_OPACITY_DITHER != NONE\n\t\t\t\topacityDither(dAlpha * material_alphaDitherScale, 0.0);\n\t\t\t#endif\n\t\t\tlitArgs_opacity = dAlpha;\n\t\t#endif\n\t\t#ifdef FORWARD_PASS\n\t\t\tgetAlbedo();\n\t\t\tlitArgs_albedo = dAlbedo;\n\t\t\t#ifdef LIT_NEEDS_NORMAL\n\t\t\t\tgetNormal();\n\t\t\t\tlitArgs_worldNormal = dNormalW;\n\t\t\t#endif\n\t\t\t#ifdef LIT_REFRACTION\n\t\t\t\tgetRefraction();\n\t\t\t\tlitArgs_transmission = dTransmission;\n\t\t\t\tgetThickness();\n\t\t\t\tlitArgs_thickness = dThickness;\n\t\t\t\t#ifndef LIT_METALNESS\n\t\t\t\t\tgetIor();\n\t\t\t\t\tlitArgs_ior = dIor;\n\t\t\t\t#endif\n\t\t\t\t#ifdef LIT_DISPERSION\n\t\t\t\t\tlitArgs_dispersion = material_dispersion;\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t\t#ifdef LIT_IRIDESCENCE\n\t\t\t\tgetIridescence();\n\t\t\t\tgetIridescenceThickness();\n\t\t\t\tlitArgs_iridescence_intensity = dIridescence;\n\t\t\t\tlitArgs_iridescence_thickness = dIridescenceThickness;\n\t\t\t#endif\n\t\t\t#if defined(LIT_SPECULAR_OR_REFLECTION) || defined(LIT_REFRACTION)\n\t\t\t\t#ifdef LIT_SHEEN\n\t\t\t\t\tgetSheen();\n\t\t\t\t\tlitArgs_sheen_specularity = sSpecularity;\n\t\t\t\t\tgetSheenGlossiness();\n\t\t\t\t\tlitArgs_sheen_gloss = sGlossiness;\n\t\t\t\t#endif\n\t\t\t\t#ifdef LIT_METALNESS\n\t\t\t\t\tgetMetalness();\n\t\t\t\t\tlitArgs_metalness = dMetalness;\n\t\t\t\t\tgetIor();\n\t\t\t\t\tlitArgs_ior = dIor;\n\t\t\t\t#endif\n\t\t\t\t#ifdef LIT_SPECULARITY_FACTOR\n\t\t\t\t\tgetSpecularityFactor();\n\t\t\t\t\tlitArgs_specularityFactor = dSpecularityFactor;\n\t\t\t\t#endif\n\t\t\t\tgetGlossiness();\n\t\t\t\tgetSpecularity();\n\t\t\t\tlitArgs_specularity = dSpecularity;\n\t\t\t\tlitArgs_gloss = dGlossiness;\n\t\t\t#endif\n\t\t\t#ifdef STD_AO\n\t\t\t\tgetAO();\n\t\t\t\tlitArgs_ao = dAo;\n\t\t\t#endif\n\t\t\tgetEmission();\n\t\t\tlitArgs_emission = dEmission;\n\t\t\t#ifdef LIT_CLEARCOAT\n\t\t\t\tgetClearCoat();\n\t\t\t\tgetClearCoatGlossiness();\n\t\t\t\tgetClearCoatNormal();\n\t\t\t\tlitArgs_clearcoat_specularity = ccSpecularity;\n\t\t\t\tlitArgs_clearcoat_gloss = ccGlossiness;\n\t\t\t\tlitArgs_clearcoat_worldNormal = ccNormalW;\n\t\t\t#endif\n\t\t\t#if defined(LIT_SPECULAR) && defined(LIT_LIGHTING) && defined(LIT_GGX_SPECULAR)\n\t\t\t\tgetAnisotropy();\n\t\t\t#endif\n\t\t\t#if defined(STD_LIGHTMAP) || defined(STD_LIGHT_VERTEX_COLOR)\n\t\t\t\tgetLightMap();\n\t\t\t\tlitArgs_lightmap = dLightmap;\n\t\t\t\t#ifdef STD_LIGHTMAP_DIR\n\t\t\t\t\tlitArgs_lightmapDir = dLightmapDir;\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t#endif\n\t}\n`;\n\nvar TBN_default = `\n#ifdef LIT_TANGENTS\n\t#define TBN_TANGENTS\n#else\n\t#if defined(LIT_USE_NORMALS) || defined(LIT_USE_CLEARCOAT_NORMALS) || defined(LIT_HEIGHTS)\n\t\t#define TBN_DERIVATIVES\n\t#endif\n#endif\n#if defined(TBN_DERIVATIVES)\n\t#ifndef TBNBASIS\n\t\t#define TBNBASIS\n\t\tuniform float tbnBasis;\n\t#endif\n#endif\nvoid getTBN(vec3 tangent, vec3 binormal, vec3 normal) {\n\t#ifdef TBN_TANGENTS\n\t\tdTBN = mat3(normalize(tangent), normalize(binormal), normalize(normal));\n\t#elif defined(TBN_DERIVATIVES)\n\t\tvec2 uv = {lightingUv};\n\t\tvec3 dp1 = dFdx( vPositionW );\n\t\tvec3 dp2 = dFdy( vPositionW );\n\t\tvec2 duv1 = dFdx( uv );\n\t\tvec2 duv2 = dFdy( uv );\n\t\tvec3 dp2perp = cross( dp2, normal );\n\t\tvec3 dp1perp = cross( normal, dp1 );\n\t\tvec3 T = dp2perp * duv1.x + dp1perp * duv2.x;\n\t\tvec3 B = dp2perp * duv1.y + dp1perp * duv2.y;\n\t\tfloat denom = max( dot(T,T), dot(B,B) );\n\t\tfloat invmax = (denom == 0.0) ? 0.0 : tbnBasis / sqrt( denom );\n\t\tdTBN = mat3(T * invmax, -B * invmax, normal );\n\t#else\n\t\tvec3 B = cross(normal, vObjectSpaceUpW);\n\t\tvec3 T = cross(normal, B);\n\t\tif (dot(B,B)==0.0)\n\t\t{\n\t\t\tfloat major=max(max(normal.x, normal.y), normal.z);\n\t\t\tif (normal.x == major)\n\t\t\t{\n\t\t\t\tB = cross(normal, vec3(0,1,0));\n\t\t\t\tT = cross(normal, B);\n\t\t\t}\n\t\t\telse if (normal.y == major)\n\t\t\t{\n\t\t\t\tB = cross(normal, vec3(0,0,1));\n\t\t\t\tT = cross(normal, B);\n\t\t\t}\n\t\t\telse if (normal.z == major)\n\t\t\t{\n\t\t\t\tB = cross(normal, vec3(1,0,0));\n\t\t\t\tT = cross(normal, B);\n\t\t\t}\n\t\t}\n\t\tdTBN = mat3(normalize(T), normalize(B), normalize(normal));\n\t#endif\n}\n`;\n\nvar thickness_default = `\n#ifdef STD_THICKNESS_CONSTANT\nuniform float material_thickness;\n#endif\nvoid getThickness() {\n\tdThickness = 1.0;\n\t#ifdef STD_THICKNESS_CONSTANT\n\tdThickness *= material_thickness;\n\t#endif\n\t#ifdef STD_THICKNESS_TEXTURE\n\tdThickness *= texture2DBias({STD_THICKNESS_TEXTURE_NAME}, {STD_THICKNESS_TEXTURE_UV}, textureBias).{STD_THICKNESS_TEXTURE_CHANNEL};\n\t#endif\n\t#ifdef STD_THICKNESS_VERTEX\n\tdThickness *= saturate(vVertexColor.{STD_THICKNESS_VERTEX_CHANNEL});\n\t#endif\n}\n`;\n\nvar tonemapping_default = `\n#ifndef TONEMAP_NO_EXPOSURE_UNIFORM\n\t#if TONEMAP != NONE\n\t\tuniform float exposure;\n\t\tfloat getExposure() { return exposure; }\n\t#else\n\t\tfloat getExposure() { return 1.0; }\n\t#endif\n#endif\n#if (TONEMAP == NONE)\n\t#include \"tonemappingNonePS\"\n#elif TONEMAP == FILMIC\n\t#include \"tonemappingFilmicPS\"\n#elif TONEMAP == LINEAR\n\t#include \"tonemappingLinearPS\"\n#elif TONEMAP == HEJL\n\t#include \"tonemappingHejlPS\"\n#elif TONEMAP == ACES\n\t#include \"tonemappingAcesPS\"\n#elif TONEMAP == ACES2\n\t#include \"tonemappingAces2PS\"\n#elif TONEMAP == NEUTRAL\n\t#include \"tonemappingNeutralPS\"\n#endif\n`;\n\nvar tonemappingAces_default = `\nvec3 toneMap(vec3 color) {\n\tfloat tA = 2.51;\n\tfloat tB = 0.03;\n\tfloat tC = 2.43;\n\tfloat tD = 0.59;\n\tfloat tE = 0.14;\n\tvec3 x = color * getExposure();\n\treturn (x*(tA*x+tB))/(x*(tC*x+tD)+tE);\n}\n`;\n\nvar tonemappingAces2_default = `\nconst mat3 ACESInputMat = mat3(\n\t0.59719, 0.35458, 0.04823,\n\t0.07600, 0.90834, 0.01566,\n\t0.02840, 0.13383, 0.83777\n);\nconst mat3 ACESOutputMat = mat3(\n\t 1.60475, -0.53108, -0.07367,\n\t-0.10208,  1.10813, -0.00605,\n\t-0.00327, -0.07276,  1.07602\n);\nvec3 RRTAndODTFit(vec3 v) {\n\tvec3 a = v * (v + 0.0245786) - 0.000090537;\n\tvec3 b = v * (0.983729 * v + 0.4329510) + 0.238081;\n\treturn a / b;\n}\nvec3 toneMap(vec3 color) {\n\tcolor *= getExposure() / 0.6;\n\tcolor = color * ACESInputMat;\n\tcolor = RRTAndODTFit(color);\n\tcolor = color * ACESOutputMat;\n\tcolor = clamp(color, 0.0, 1.0);\n\treturn color;\n}\n`;\n\nvar tonemappingFilmic_default = `\nconst float A =  0.15;\nconst float B =  0.50;\nconst float C =  0.10;\nconst float D =  0.20;\nconst float E =  0.02;\nconst float F =  0.30;\nconst float W =  11.2;\nvec3 uncharted2Tonemap(vec3 x) {\n\t return ((x*(A*x+C*B)+D*E)/(x*(A*x+B)+D*F))-E/F;\n}\nvec3 toneMap(vec3 color) {\n\tcolor = uncharted2Tonemap(color * getExposure());\n\tvec3 whiteScale = 1.0 / uncharted2Tonemap(vec3(W,W,W));\n\tcolor = color * whiteScale;\n\treturn color;\n}\n`;\n\nvar tonemappingHejl_default = `\nvec3 toneMap(vec3 color) {\n\tcolor *= getExposure();\n\tconst float  A = 0.22, B = 0.3, C = .1, D = 0.2, E = .01, F = 0.3;\n\tconst float Scl = 1.25;\n\tvec3 h = max( vec3(0.0), color - vec3(0.004) );\n\treturn (h*((Scl*A)*h+Scl*vec3(C*B,C*B,C*B))+Scl*vec3(D*E,D*E,D*E)) / (h*(A*h+vec3(B,B,B))+vec3(D*F,D*F,D*F)) - Scl*vec3(E/F,E/F,E/F);\n}\n`;\n\nvar tonemappingLinear_default = `\nvec3 toneMap(vec3 color) {\n\treturn color * getExposure();\n}\n`;\n\nvar tonemappingNeutral_default = `\nvec3 toneMap(vec3 color) {\n\tcolor *= getExposure();\n\tfloat startCompression = 0.8 - 0.04;\n\tfloat desaturation = 0.15;\n\tfloat x = min(color.r, min(color.g, color.b));\n\tfloat offset = x < 0.08 ? x - 6.25 * x * x : 0.04;\n\tcolor -= offset;\n\tfloat peak = max(color.r, max(color.g, color.b));\n\tif (peak < startCompression) return color;\n\tfloat d = 1. - startCompression;\n\tfloat newPeak = 1. - d * d / (peak + d - startCompression);\n\tcolor *= newPeak / peak;\n\tfloat g = 1. - 1. / (desaturation * (peak - newPeak) + 1.);\n\treturn mix(color, newPeak * vec3(1, 1, 1), g);\n}\n`;\n\nvar tonemappingNone_default = `\nvec3 toneMap(vec3 color) {\n\treturn color;\n}\n`;\n\nvar transform_default = `\n#ifdef PIXELSNAP\nuniform vec4 uScreenSize;\n#endif\n#ifdef SCREENSPACE\nuniform float projectionFlipY;\n#endif\nvec4 evalWorldPosition(vec3 vertexPosition, mat4 modelMatrix) {\n\tvec3 localPos = getLocalPosition(vertexPosition);\n\t#ifdef NINESLICED\n\t\tlocalPos.xz *= outerScale;\n\t\tvec2 positiveUnitOffset = clamp(vertexPosition.xz, vec2(0.0), vec2(1.0));\n\t\tvec2 negativeUnitOffset = clamp(-vertexPosition.xz, vec2(0.0), vec2(1.0));\n\t\tlocalPos.xz += (-positiveUnitOffset * innerOffset.xy + negativeUnitOffset * innerOffset.zw) * vertex_texCoord0.xy;\n\t\tvTiledUv = (localPos.xz - outerScale + innerOffset.xy) * -0.5 + 1.0;\n\t\tlocalPos.xz *= -0.5;\n\t\tlocalPos = localPos.xzy;\n\t#endif\n\tvec4 posW = modelMatrix * vec4(localPos, 1.0);\n\t#ifdef SCREENSPACE\n\t\tposW.zw = vec2(0.0, 1.0);\n\t#endif\n\treturn posW;\n}\nvec4 getPosition() {\n\tdModelMatrix = getModelMatrix();\n\tvec4 posW = evalWorldPosition(vertex_position.xyz, dModelMatrix);\n\tdPositionW = posW.xyz;\n\tvec4 screenPos;\n\t#ifdef UV1LAYOUT\n\t\tscreenPos = vec4(vertex_texCoord1.xy * 2.0 - 1.0, 0.5, 1);\n\t\t#ifdef WEBGPU\n\t\t\tscreenPos.y *= -1.0;\n\t\t#endif\n\t#else\n\t\t#ifdef SCREENSPACE\n\t\t\tscreenPos = posW;\n\t\t\tscreenPos.y *= projectionFlipY;\n\t\t#else\n\t\t\tscreenPos = matrix_viewProjection * posW;\n\t\t#endif\n\t\t#ifdef PIXELSNAP\n\t\t\tscreenPos.xy = (screenPos.xy * 0.5) + 0.5;\n\t\t\tscreenPos.xy *= uScreenSize.xy;\n\t\t\tscreenPos.xy = floor(screenPos.xy);\n\t\t\tscreenPos.xy *= uScreenSize.zw;\n\t\t\tscreenPos.xy = (screenPos.xy * 2.0) - 1.0;\n\t\t#endif\n\t#endif\n\treturn screenPos;\n}\nvec3 getWorldPosition() {\n\treturn dPositionW;\n}\n`;\n\nvar transformCore_default = `\nattribute vec4 vertex_position;\nuniform mat4 matrix_viewProjection;\nuniform mat4 matrix_model;\n#ifdef MORPHING\n\tuniform vec2 morph_tex_params;\n\tattribute uint morph_vertex_id;\n\tivec2 getTextureMorphCoords() {\n\t\tivec2 textureSize = ivec2(morph_tex_params);\n\t\tint morphGridV = int(morph_vertex_id) / textureSize.x;\n\t\tint morphGridU = int(morph_vertex_id) - (morphGridV * textureSize.x);\n\t\t#ifdef WEBGPU\n\t\t\tmorphGridV = textureSize.y - morphGridV - 1;\n\t\t#endif\n\t\treturn ivec2(morphGridU, morphGridV);\n\t}\n\t#ifdef MORPHING_POSITION\n\t\t#ifdef MORPHING_INT\n\t\t\tuniform vec3 aabbSize;\n\t\t\tuniform vec3 aabbMin;\n\t\t\tuniform usampler2D morphPositionTex;\n\t\t#else\n\t\t\tuniform highp sampler2D morphPositionTex;\n\t\t#endif\n\t#endif\n#endif\n#ifdef defined(BATCH)\n\t#include \"skinBatchVS\"\n\tmat4 getModelMatrix() {\n\t\treturn getBoneMatrix(vertex_boneIndices);\n\t}\n#elif defined(SKIN)\n\t#include \"skinVS\"\n\tmat4 getModelMatrix() {\n\t\treturn matrix_model * getSkinMatrix(vertex_boneIndices, vertex_boneWeights);\n\t}\n#elif defined(INSTANCING)\n\t#include \"transformInstancingVS\"\n#else\n\tmat4 getModelMatrix() {\n\t\treturn matrix_model;\n\t}\n#endif\nvec3 getLocalPosition(vec3 vertexPosition) {\n\tvec3 localPos = vertexPosition;\n\t#ifdef MORPHING_POSITION\n\t\tivec2 morphUV = getTextureMorphCoords();\n\t\t#ifdef MORPHING_INT\n\t\t\tvec3 morphPos = vec3(texelFetch(morphPositionTex, ivec2(morphUV), 0).xyz) / 65535.0 * aabbSize + aabbMin;\n\t\t#else\n\t\t\tvec3 morphPos = texelFetch(morphPositionTex, ivec2(morphUV), 0).xyz;\n\t\t#endif\n\t\tlocalPos += morphPos;\n\t#endif\n\treturn localPos;\n}\n`;\n\nvar transformInstancing_default = `\nattribute vec4 instance_line1;\nattribute vec4 instance_line2;\nattribute vec4 instance_line3;\nattribute vec4 instance_line4;\nmat4 getModelMatrix() {\n\treturn matrix_model * mat4(instance_line1, instance_line2, instance_line3, instance_line4);\n}\n`;\n\nvar transmission_default = `\n#ifdef STD_REFRACTION_CONSTANT\nuniform float material_refraction;\n#endif\nvoid getRefraction() {\n\tfloat refraction = 1.0;\n\t#ifdef STD_REFRACTION_CONSTANT\n\trefraction = material_refraction;\n\t#endif\n\t#ifdef STD_REFRACTION_TEXTURE\n\trefraction *= texture2DBias({STD_REFRACTION_TEXTURE_NAME}, {STD_REFRACTION_TEXTURE_UV}, textureBias).{STD_REFRACTION_TEXTURE_CHANNEL};\n\t#endif\n\t#ifdef STD_REFRACTION_VERTEX\n\trefraction *= saturate(vVertexColor.{STD_REFRACTION_VERTEX_CHANNEL});\n\t#endif\n\tdTransmission = refraction;\n}\n`;\n\nvar twoSidedLighting_default = `\nvoid handleTwoSidedLighting() {\n\tif (!gl_FrontFacing) dTBN[2] = -dTBN[2];\n}\n`;\n\nvar uv0_default = `\n#ifdef NINESLICED\n\tvec2 getUv0() {\n\t\tvec2 uv = vertex_position.xz;\n\t\tvec2 positiveUnitOffset = clamp(vertex_position.xz, vec2(0.0), vec2(1.0));\n\t\tvec2 negativeUnitOffset = clamp(-vertex_position.xz, vec2(0.0), vec2(1.0));\n\t\tuv += (-positiveUnitOffset * innerOffset.xy + negativeUnitOffset * innerOffset.zw) * vertex_texCoord0.xy;\n\t\tuv = uv * -0.5 + 0.5;\n\t\tuv = uv * atlasRect.zw + atlasRect.xy;\n\t\tvMask = vertex_texCoord0.xy;\n\t\treturn uv;\n\t}\n#else\n\tvec2 getUv0() {\n\t\treturn vertex_texCoord0;\n\t}\n#endif\n`;\n\nvar uv1_default = `\nvec2 getUv1() {\n\treturn vertex_texCoord1;\n}\n`;\n\nvar uvTransform_default = `\nvUV{TRANSFORM_UV_{i}}_{TRANSFORM_ID_{i}} = vec2(\n\tdot(vec3(uv{TRANSFORM_UV_{i}}, 1), {TRANSFORM_NAME_{i}}0),\n\tdot(vec3(uv{TRANSFORM_UV_{i}}, 1), {TRANSFORM_NAME_{i}}1)\n);\n`;\n\nvar uvTransformUniforms_default = `\n\tuniform vec3 {TRANSFORM_NAME_{i}}0;\n\tuniform vec3 {TRANSFORM_NAME_{i}}1;\n`;\n\nvar viewDir_default = `\nvoid getViewDir() {\n\tdViewDirW = normalize(view_position - vPositionW);\n}\n`;\n\nvar shaderChunksGLSL = {\n\talphaTestPS: alphaTest_default,\n\tambientPS: ambient_default,\n\tanisotropyPS: anisotropy_default,\n\taoPS: ao_default,\n\taoDiffuseOccPS: aoDiffuseOcc_default,\n\taoSpecOccPS: aoSpecOcc_default,\n\tbakeDirLmEndPS: bakeDirLmEnd_default,\n\tbakeLmEndPS: bakeLmEnd_default,\n\tbasePS: base_default,\n\tbaseNineSlicedPS: baseNineSliced_default,\n\tbaseNineSlicedTiledPS: baseNineSlicedTiled_default,\n\tbayerPS: bayer_default,\n\tblurVSMPS: blurVSM_default,\n\tclearCoatPS: clearCoat_default,\n\tclearCoatGlossPS: clearCoatGloss_default,\n\tclearCoatNormalPS: clearCoatNormal_default,\n\tclusteredLightCookiesPS: clusteredLightCookies_default,\n\tclusteredLightShadowsPS: clusteredLightShadows_default,\n\tclusteredLightUtilsPS: clusteredLightUtils_default,\n\tclusteredLightPS: clusteredLight_default,\n\tcombinePS: combine_default,\n\tcookieBlit2DPS: cookie_blit_2d_default,\n\tcookieBlitCubePS: cookie_blit_cube_default,\n\tcookieBlitVS: cookie_blit_default,\n\tcookiePS: cookie_default,\n\tcubeMapProjectPS: cubeMapProject_default,\n\tcubeMapRotatePS: cubeMapRotate_default,\n\tdebugOutputPS: debug_output_default,\n\tdebugProcessFrontendPS: debug_process_frontend_default,\n\tdetailModesPS: detailModes_default,\n\tdiffusePS: diffuse_default,\n\tdecodePS: decode_default,\n\temissivePS: emissive_default,\n\tencodePS: encode_default,\n\tendPS: end_default,\n\tenvAtlasPS: envAtlas_default,\n\tenvProcPS: envProc_default,\n\tfalloffInvSquaredPS: falloffInvSquared_default,\n\tfalloffLinearPS: falloffLinear_default,\n\tflatNormalPS: flat_normal_default,\n\tfloatAsUintPS: float_as_uint_default,\n\tsceneTexturesPS: scene_textures_default,\n\tfogPS: fog_default,\n\tfresnelSchlickPS: fresnelSchlick_default,\n\tfrontendCodePS: \"\",\n\t// empty chunk, supplied by the shader generator\n\tfrontendDeclPS: \"\",\n\t// empty chunk, supplied by the shader generator\n\tfullscreenQuadVS: fullscreenQuad_default,\n\tgammaPS: gamma_default,\n\tgles3PS: gles3_default,\n\tgles3VS: gles3_default2,\n\tglossPS: gloss_default,\n\tquadVS: quad_default,\n\timmediateLinePS: immediateLine_default,\n\timmediateLineVS: immediateLine_default2,\n\tiridescenceDiffractionPS: iridescenceDiffraction_default,\n\tiridescencePS: iridescence_default,\n\tiridescenceThicknessPS: iridescenceThickness_default,\n\tiorPS: ior_default,\n\tlightDeclarationPS: lightDeclaration_default,\n\tlightDiffuseLambertPS: lightDiffuseLambert_default,\n\tlightDirPointPS: lightDirPoint_default,\n\tlightEvaluationPS: lightEvaluation_default,\n\tlightFunctionLightPS: lightFunctionLight_default,\n\tlightFunctionShadowPS: lightFunctionShadow_default,\n\tlightingPS: lighting_default,\n\tlightmapAddPS: lightmapAdd_default,\n\tlightmapPS: lightmap_default,\n\tlightSpecularAnisoGGXPS: lightSpecularAnisoGGX_default,\n\tlightSpecularGGXPS: lightSpecularGGX_default,\n\tlightSpecularBlinnPS: lightSpecularBlinn_default,\n\tlightSheenPS: lightSheen_default,\n\tlinearizeDepthPS: linearizeDepth_default,\n\tlitForwardBackendPS: litForwardBackend_default,\n\tlitForwardDeclarationPS: litForwardDeclaration_default,\n\tlitForwardMainPS: litForwardMain_default,\n\tlitForwardPostCodePS: litForwardPostCode_default,\n\tlitForwardPreCodePS: litForwardPreCode_default,\n\tlitMainPS: litMain_default,\n\tlitMainVS: litMain_default2,\n\tlitOtherMainPS: litOtherMain_default,\n\tlitShaderArgsPS: litShaderArgs_default,\n\tlitShaderCorePS: litShaderCore_default,\n\tlitShadowMainPS: litShadowMain_default,\n\tlitUserDeclarationPS: \"\",\n\t// empty chunk allowing user to add custom code\n\tlitUserDeclarationVS: \"\",\n\t// empty chunk allowing user to add custom code\n\tlitUserCodePS: \"\",\n\t// empty chunk allowing user to add custom code\n\tlitUserCodeVS: \"\",\n\t// empty chunk allowing user to add custom code\n\tlitUserMainStartPS: \"\",\n\t// empty chunk allowing user to add custom code\n\tlitUserMainStartVS: \"\",\n\t// empty chunk allowing user to add custom code\n\tlitUserMainEndPS: \"\",\n\t// empty chunk allowing user to add custom code\n\tlitUserMainEndVS: \"\",\n\t// empty chunk allowing user to add custom code\n\tltcPS: ltc_default,\n\tmetalnessPS: metalness_default,\n\tmetalnessModulatePS: metalnessModulate_default,\n\tmorphPS: morph_default,\n\tmorphVS: morph_default2,\n\tmsdfPS: msdf_default,\n\tmsdfVS: msdf_default2,\n\tnormalVS: normal_default,\n\tnormalCoreVS: normalCore_default,\n\tnormalMapPS: normalMap_default,\n\topacityPS: opacity_default,\n\topacityDitherPS: opacity_dither_default,\n\toutlineDeclarationPS: outline_declaration_default,\n\toutlineOutputPS: outline_output_default,\n\toutputPS: output_default,\n\toutputAlphaPS: outputAlpha_default,\n\toutputTex2DPS: outputTex2D_default,\n\tsheenPS: sheen_default,\n\tsheenGlossPS: sheenGloss_default,\n\tparallaxPS: parallax_default,\n\tpickPS: pick_default,\n\treflDirPS: reflDir_default,\n\treflDirAnisoPS: reflDirAniso_default,\n\treflectionCCPS: reflectionCC_default,\n\treflectionCubePS: reflectionCube_default,\n\treflectionEnvHQPS: reflectionEnvHQ_default,\n\treflectionEnvPS: reflectionEnv_default,\n\treflectionSpherePS: reflectionSphere_default,\n\treflectionSheenPS: reflectionSheen_default,\n\trefractionCubePS: refractionCube_default,\n\trefractionDynamicPS: refractionDynamic_default,\n\treprojectPS: reproject_default,\n\treprojectVS: reproject_default2,\n\tscreenDepthPS: screenDepth_default,\n\tshadowCascadesPS: shadowCascades_default,\n\tshadowCasterPS: shadow_caster_default,\n\tshadowEVSMPS: shadowEVSM_default,\n\tshadowPCF1PS: shadowPCF1_default,\n\tshadowPCF3PS: shadowPCF3_default,\n\tshadowPCF5PS: shadowPCF5_default,\n\tshadowPCSSPS: shadowPCSS_default,\n\tshadowSoftPS: shadowSoft_default,\n\tskinBatchVS: skinBatch_default,\n\tskinVS: skin_default,\n\tskyboxPS: skybox_default,\n\tskyboxVS: skybox_default2,\n\tspecularPS: specular_default,\n\tsphericalPS: spherical_default,\n\tspecularityFactorPS: specularityFactor_default,\n\tspotPS: spot_default,\n\tstartNineSlicedPS: startNineSliced_default,\n\tstartNineSlicedTiledPS: startNineSlicedTiled_default,\n\tstdDeclarationPS: stdDeclaration_default,\n\tstdFrontEndPS: stdFrontEnd_default,\n\tTBNPS: TBN_default,\n\tthicknessPS: thickness_default,\n\ttonemappingPS: tonemapping_default,\n\ttonemappingAcesPS: tonemappingAces_default,\n\ttonemappingAces2PS: tonemappingAces2_default,\n\ttonemappingFilmicPS: tonemappingFilmic_default,\n\ttonemappingHejlPS: tonemappingHejl_default,\n\ttonemappingLinearPS: tonemappingLinear_default,\n\ttonemappingNeutralPS: tonemappingNeutral_default,\n\ttonemappingNonePS: tonemappingNone_default,\n\ttransformVS: transform_default,\n\ttransformCoreVS: transformCore_default,\n\ttransformInstancingVS: transformInstancing_default,\n\ttransmissionPS: transmission_default,\n\ttwoSidedLightingPS: twoSidedLighting_default,\n\tuv0VS: uv0_default,\n\tuv1VS: uv1_default,\n\tuvTransformVS: uvTransform_default,\n\tuvTransformUniformsPS: uvTransformUniforms_default,\n\tviewDirPS: viewDir_default,\n\twebgpuPS: webgpu_default,\n\twebgpuVS: webgpu_default2\n};\n\nvar alphaTest_default2 = `\nuniform alpha_ref: f32;\nfn alphaTest(a: f32) {\n\tif (a < uniform.alpha_ref) {\n\t\tdiscard;\n\t}\n}\n`;\n\nvar ambient_default2 = `\n#if LIT_AMBIENT_SOURCE == AMBIENTSH\n\tuniform ambientSH: array<vec3f, 9>;\n#endif\n#if LIT_AMBIENT_SOURCE == ENVALATLAS\n\t#include \"envAtlasPS\"\n\t#ifndef ENV_ATLAS\n\t\t#define ENV_ATLAS\n\t\tvar texture_envAtlas: texture_2d<f32>;\n\t\tvar texture_envAtlasSampler: sampler;\n\t#endif\n#endif\nfn addAmbient(worldNormal: vec3f) {\n\t#ifdef LIT_AMBIENT_SOURCE == AMBIENTSH\n\t\tlet n: vec3f = cubeMapRotate(worldNormal);\n\t\tlet color: vec3f =\n\t\t\tuniform.ambientSH[0] +\n\t\t\tuniform.ambientSH[1] * n.x +\n\t\t\tuniform.ambientSH[2] * n.y +\n\t\t\tuniform.ambientSH[3] * n.z +\n\t\t\tuniform.ambientSH[4] * n.x * n.z +\n\t\t\tuniform.ambientSH[5] * n.z * n.y +\n\t\t\tuniform.ambientSH[6] * n.y * n.x +\n\t\t\tuniform.ambientSH[7] * (3.0 * n.z * n.z - 1.0) +\n\t\t\tuniform.ambientSH[8] * (n.x * n.x - n.y * n.y);\n\t\tdDiffuseLight += processEnvironment(max(color, vec3f(0.0)));\n\t#endif\n\t#if LIT_AMBIENT_SOURCE == ENVALATLAS\n\t\tlet dir: vec3f = normalize(cubeMapRotate(worldNormal) * vec3f(-1.0, 1.0, 1.0));\n\t\tlet uv: vec2f = mapUv(toSphericalUv(dir), vec4f(128.0, 256.0 + 128.0, 64.0, 32.0) / atlasSize);\n\t\tlet raw: vec4f = textureSample(texture_envAtlas, texture_envAtlasSampler, uv);\n\t\tlet linear: vec3f = {ambientDecode}(raw);\n\t\tdDiffuseLight += processEnvironment(linear);\n\t#endif\n\t#if LIT_AMBIENT_SOURCE == CONSTANT\n\t\tdDiffuseLight += uniform.light_globalAmbient;\n\t#endif\n}\n`;\n\nvar anisotropy_default2 = `\n#ifdef LIT_GGX_SPECULAR\n\tuniform material_anisotropyIntensity: f32;\n\tuniform material_anisotropyRotation: vec2f;\n#endif\nfn getAnisotropy() {\n\tdAnisotropy = 0.0;\n\tdAnisotropyRotation = vec2f(1.0, 0.0);\n#ifdef LIT_GGX_SPECULAR\n\tdAnisotropy = uniform.material_anisotropyIntensity;\n\tdAnisotropyRotation = uniform.material_anisotropyRotation;\n#endif\n#ifdef STD_ANISOTROPY_TEXTURE\n\tlet anisotropyTex: vec3f = textureSampleBias({STD_ANISOTROPY_TEXTURE_NAME}, {STD_ANISOTROPY_TEXTURE_NAME}Sampler, {STD_ANISOTROPY_TEXTURE_UV}, uniform.textureBias).rgb;\n\tdAnisotropy *= anisotropyTex.b;\n\tlet anisotropyRotationFromTex: vec2f = anisotropyTex.rg * 2.0 - vec2f(1.0);\n\tlet rotationMatrix: mat2x2f = mat2x2f(dAnisotropyRotation.x, dAnisotropyRotation.y, -dAnisotropyRotation.y, dAnisotropyRotation.x);\n\tdAnisotropyRotation = rotationMatrix * anisotropyRotationFromTex;\n#endif\n\tdAnisotropy = clamp(dAnisotropy, 0.0, 1.0);\n}\n`;\n\nvar ao_default2 = `\n#if defined(STD_AO_TEXTURE) || defined(STD_AO_VERTEX)\n\tuniform material_aoIntensity: f32;\n#endif\n#ifdef STD_AODETAIL_TEXTURE\n\t#include \"detailModesPS\"\n#endif\nfn getAO() {\n\tdAo = 1.0;\n\t#ifdef STD_AO_TEXTURE\n\t\tvar aoBase: f32 = textureSampleBias({STD_AO_TEXTURE_NAME}, {STD_AO_TEXTURE_NAME}Sampler, {STD_AO_TEXTURE_UV}, uniform.textureBias).{STD_AO_TEXTURE_CHANNEL};\n\t\t#ifdef STD_AODETAIL_TEXTURE\n\t\t\tvar aoDetail: f32 = textureSampleBias({STD_AODETAIL_TEXTURE_NAME}, {STD_AODETAIL_TEXTURE_NAME}Sampler, {STD_AODETAIL_TEXTURE_UV}, uniform.textureBias).{STD_AODETAIL_TEXTURE_CHANNEL};\n\t\t\taoBase = detailMode_{STD_AODETAIL_DETAILMODE}(vec3f(aoBase), vec3f(aoDetail)).r;\n\t\t#endif\n\t\tdAo = dAo * aoBase;\n\t#endif\n\t#ifdef STD_AO_VERTEX\n\t\tdAo = dAo * saturate(vVertexColor.{STD_AO_VERTEX_CHANNEL});\n\t#endif\n\t#if defined(STD_AO_TEXTURE) || defined(STD_AO_VERTEX)\n\t\tdAo = mix(1.0, dAo, uniform.material_aoIntensity);\n\t#endif\n}\n`;\n\nvar aoDiffuseOcc_default2 = `\nfn occludeDiffuse(ao: f32) {\n\tdDiffuseLight = dDiffuseLight * ao;\n}\n`;\n\nvar aoSpecOcc_default2 = `\n#if LIT_OCCLUDE_SPECULAR != NONE\n\t#ifdef LIT_OCCLUDE_SPECULAR_FLOAT\n\t\tuniform material_occludeSpecularIntensity: f32;\n\t#endif\n#endif\nfn occludeSpecular(gloss: f32, ao: f32, worldNormal: vec3f, viewDir: vec3f) {\n\t#if LIT_OCCLUDE_SPECULAR == AO\n\t\t#ifdef LIT_OCCLUDE_SPECULAR_FLOAT\n\t\t\tvar specOcc: f32 = mix(1.0, ao, uniform.material_occludeSpecularIntensity);\n\t\t#else\n\t\t\tvar specOcc: f32 = ao;\n\t\t#endif\n\t#endif\n\t#if LIT_OCCLUDE_SPECULAR == GLOSSDEPENDENT\n\t\tvar specPow: f32 = exp2(gloss * 11.0);\n\t\tvar specOcc: f32 = saturate(pow(dot(worldNormal, viewDir) + ao, 0.01 * specPow) - 1.0 + ao);\n\t\t#ifdef LIT_OCCLUDE_SPECULAR_FLOAT\n\t\t\tspecOcc = mix(1.0, specOcc, uniform.material_occludeSpecularIntensity);\n\t\t#endif\n\t#endif\n\t#if LIT_OCCLUDE_SPECULAR != NONE\n\t\tdSpecularLight = dSpecularLight * specOcc;\n\t\tdReflection = dReflection * specOcc;\n\t\t#ifdef LIT_SHEEN\n\t\t\tsSpecularLight = sSpecularLight * specOcc;\n\t\t\tsReflection = sReflection * specOcc;\n\t\t#endif\n\t#endif\n}\n`;\n\nvar bakeDirLmEnd_default2 = `\n\tlet dirLm = textureSample(texture_dirLightMap, texture_dirLightMapSampler, vUv1);\n\tif (uniform.bakeDir > 0.5) {\n\t\tif (dAtten > 0.00001) {\n\t\t\tlet unpacked_dir = dirLm.xyz * 2.0 - vec3f(1.0);\n\t\t\tdAtten = clamp(dAtten, 0.0, 1.0);\n\t\t\tlet combined_dir = dLightDirNormW.xyz * dAtten + unpacked_dir * dirLm.w;\n\t\t\tlet finalRgb = normalize(combined_dir) * 0.5 + vec3f(0.5);\n\t\t\tlet finalA = max(dirLm.w + dAtten, 1.0 / 255.0);\n\t\t\toutput.color = vec4f(finalRgb, finalA);\n\t\t} else {\n\t\t\toutput.color = dirLm;\n\t\t}\n\t} else {\n\t\tlet alpha_min = select(0.0, 1.0 / 255.0, dAtten > 0.00001);\n\t\tlet finalA = max(dirLm.w, alpha_min);\n\t\toutput.color = vec4f(dirLm.rgb, finalA);\n\t}\n`;\n\nvar bakeLmEnd_default2 = `\n#ifdef LIT_LIGHTMAP_BAKING_ADD_AMBIENT\n\tdDiffuseLight = ((dDiffuseLight - 0.5) * max(uniform.ambientBakeOcclusionContrast + 1.0, 0.0)) + 0.5;\n\tdDiffuseLight = dDiffuseLight + vec3f(uniform.ambientBakeOcclusionBrightness);\n\tdDiffuseLight = saturate3(dDiffuseLight);\n\tdDiffuseLight = dDiffuseLight * dAmbientLight;\n#endif\n#ifdef LIGHTMAP_RGBM\n\tvar temp_color_rgbm = vec4f(dDiffuseLight, 1.0);\n\ttemp_color_rgbm = vec4f(pow(temp_color_rgbm.rgb, vec3f(0.5)), temp_color_rgbm.a);\n\ttemp_color_rgbm = vec4f(temp_color_rgbm.rgb / 8.0, temp_color_rgbm.a);\n\tlet max_g_b = max(temp_color_rgbm.g, max(temp_color_rgbm.b, 1.0 / 255.0));\n\tlet max_rgb = max(temp_color_rgbm.r, max_g_b);\n\ttemp_color_rgbm.a = clamp(max_rgb, 0.0, 1.0);\n\ttemp_color_rgbm.a = ceil(temp_color_rgbm.a * 255.0) / 255.0;\n\ttemp_color_rgbm = vec4f(temp_color_rgbm.rgb / temp_color_rgbm.a, temp_color_rgbm.a);\n\toutput.color = temp_color_rgbm;\n#else\n\toutput.color = vec4f(dDiffuseLight, 1.0);\n#endif\n`;\n\nvar base_default2 = `\nuniform view_position: vec3f;\nuniform light_globalAmbient: vec3f;\nfn square(x: f32) -> f32 {\n\treturn x*x;\n}\nfn saturate(x: f32) -> f32 {\n\treturn clamp(x, 0.0, 1.0);\n}\nfn saturate3(x: vec3f) -> vec3f {\n\treturn clamp(x, vec3f(0.0), vec3f(1.0));\n}\n`;\n\nvar baseNineSliced_default2 = `\n#define NINESLICED\nvarying vMask: vec2f;\nvarying vTiledUv: vec2f;\nuniform innerOffset: vec4f;\nuniform outerScale: vec2f;\nuniform atlasRect: vec4f;\nvar<private> nineSlicedUv: vec2f;\n`;\n\nvar baseNineSlicedTiled_default2 = `\n#define NINESLICED\n#define NINESLICETILED\nvarying vMask: vec2f;\nvarying vTiledUv: vec2f;\nuniform innerOffset: vec4f;\nuniform outerScale: vec2f;\nuniform atlasRect: vec4f;\nvar<private> nineSlicedUv: vec2f;\n`;\n\nvar bayer_default2 = `\nfn bayer2(p: vec2f) -> f32 {\n\treturn (2.0 * p.y + p.x + 1.0) % 4.0;\n}\nfn bayer4(p: vec2f) -> f32 {\n\tlet p1: vec2f = p % vec2f(2.0);\n\tlet p2: vec2f = floor(0.5 * (p % vec2f(4.0)));\n\treturn 4.0 * bayer2(p1) + bayer2(p2);\n}\nfn bayer8(p: vec2f) -> f32 {\n\tlet p1: vec2f = p % vec2f(2.0);\n\tlet p2: vec2f = floor(0.5 * (p % vec2f(4.0)));\n\tlet p4: vec2f = floor(0.25 * (p % vec2f(8.0)));\n\treturn 4.0 * (4.0 * bayer2(p1) + bayer2(p2)) + bayer2(p4);\n}\nfn bayer16(p: vec2f) -> f32 {\n\tlet p1: vec2f = p % vec2f(2.0);\n\tlet p2: vec2f = floor(0.5 * (p % vec2f(4.0)));\n\tlet p4: vec2f = floor(0.25 * (p % vec2f(8.0)));\n\tlet p8: vec2f = floor(0.125 * (p % vec2f(16.0)));\n\treturn 4.0 * (4.0 * (4.0 * bayer2(p1) + bayer2(p2)) + bayer2(p4)) + bayer2(p8);\n}\n`;\n\nvar blurVSM_default2 = `\nvarying vUv0: vec2f;\nvar source: texture_2d<f32>;\nvar sourceSampler: sampler;\n#ifdef GAUSS\n\tuniform weight: array<f32, {SAMPLES}>;\n#endif\nuniform pixelOffset: vec2f;\n@fragment\nfn fragmentMain(input: FragmentInput) -> FragmentOutput {\n\tvar output: FragmentOutput;\n\tvar moments: vec3f = vec3f(0.0);\n\tlet uv: vec2f = input.vUv0 - uniform.pixelOffset * (f32({SAMPLES}) * 0.5);\n\tfor (var i: i32 = 0; i < {SAMPLES}; i = i + 1) {\n\t\tlet c: vec4f = textureSample(source, sourceSampler, uv + uniform.pixelOffset * f32(i));\n\t\t#ifdef GAUSS\n\t\t\tmoments = moments + c.xyz * uniform.weight[i].element;\n\t\t#else\n\t\t\tmoments = moments + c.xyz;\n\t\t#endif\n\t}\n\t#ifndef GAUSS\n\t\tmoments = moments * (1.0 / f32({SAMPLES}));\n\t#endif\n\toutput.color = vec4f(moments, 1.0);\n\treturn output;\n}\n`;\n\nvar clearCoat_default2 = `\nuniform material_clearCoat: f32;\nfn getClearCoat() {\n\tccSpecularity = uniform.material_clearCoat;\n\t#ifdef STD_CLEARCOAT_TEXTURE\n\tccSpecularity = ccSpecularity * textureSampleBias({STD_CLEARCOAT_TEXTURE_NAME}, {STD_CLEARCOAT_TEXTURE_NAME}Sampler, {STD_CLEARCOAT_TEXTURE_UV}, uniform.textureBias).{STD_CLEARCOAT_TEXTURE_CHANNEL};\n\t#endif\n\t#ifdef STD_CLEARCOAT_VERTEX\n\tccSpecularity = ccSpecularity * saturate(vVertexColor.{STD_CLEARCOAT_VERTEX_CHANNEL});\n\t#endif\n}\n`;\n\nvar clearCoatGloss_default2 = `\n\tuniform material_clearCoatGloss: f32;\nfn getClearCoatGlossiness() {\n\tccGlossiness = uniform.material_clearCoatGloss;\n\t#ifdef STD_CLEARCOATGLOSS_TEXTURE\n\tccGlossiness = ccGlossiness * textureSampleBias({STD_CLEARCOATGLOSS_TEXTURE_NAME}, {STD_CLEARCOATGLOSS_TEXTURE_NAME}Sampler, {STD_CLEARCOATGLOSS_TEXTURE_UV}, uniform.textureBias).{STD_CLEARCOATGLOSS_TEXTURE_CHANNEL};\n\t#endif\n\t#ifdef STD_CLEARCOATGLOSS_VERTEX\n\tccGlossiness = ccGlossiness * saturate(vVertexColor.{STD_CLEARCOATGLOSS_VERTEX_CHANNEL});\n\t#endif\n\t#ifdef STD_CLEARCOATGLOSS_INVERT\n\tccGlossiness = 1.0 - ccGlossiness;\n\t#endif\n\tccGlossiness += 0.0000001;\n}\n`;\n\nvar clearCoatNormal_default2 = `\n#ifdef STD_CLEARCOATNORMAL_TEXTURE\n\tuniform material_clearCoatBumpiness: f32;\n#endif\nfn getClearCoatNormal() {\n#ifdef STD_CLEARCOATNORMAL_TEXTURE\n\tvar normalMap: vec3f = {STD_CLEARCOATNORMAL_TEXTURE_DECODE}(textureSampleBias({STD_CLEARCOATNORMAL_TEXTURE_NAME}, {STD_CLEARCOATNORMAL_TEXTURE_NAME}Sampler, {STD_CLEARCOATNORMAL_TEXTURE_UV}, uniform.textureBias));\n\tnormalMap = mix(vec3f(0.0, 0.0, 1.0), normalMap, uniform.material_clearCoatBumpiness);\n\tccNormalW = normalize(dTBN * normalMap);\n#else\n\tccNormalW = dVertexNormalW;\n#endif\n}\n`;\n\nvar clusteredLightUtils_default2 = `\nstruct FaceCoords {\n\tuv: vec2f,\n\tfaceIndex: f32,\n\ttileOffset: vec2f,\n}\nfn getCubemapFaceCoordinates(dir: vec3f) -> FaceCoords {\n\tvar faceIndex: f32;\n\tvar tileOffset: vec2f;\n\tvar uv: vec2f;\n\tlet vAbs: vec3f = abs(dir);\n\tvar ma: f32;\n\tif (vAbs.z >= vAbs.x && vAbs.z >= vAbs.y) {\n\t\tlet is_neg_z = dir.z < 0.0;\n\t\tfaceIndex = select(4.0, 5.0, is_neg_z);\n\t\tma = 0.5 / vAbs.z;\n\t\tuv = vec2f(select(dir.x, -dir.x, is_neg_z), -dir.y);\n\t\ttileOffset = vec2f(2.0, select(0.0, 1.0, is_neg_z));\n\t} else if (vAbs.y >= vAbs.x) {\n\t\tlet is_neg_y = dir.y < 0.0;\n\t\tfaceIndex = select(2.0, 3.0, is_neg_y);\n\t\tma = 0.5 / vAbs.y;\n\t\tuv = vec2f(dir.x, select(dir.z, -dir.z, is_neg_y));\n\t\ttileOffset = vec2f(1.0, select(0.0, 1.0, is_neg_y));\n\t} else {\n\t\tlet is_neg_x = dir.x < 0.0;\n\t\tfaceIndex = select(0.0, 1.0, is_neg_x);\n\t\tma = 0.5 / vAbs.x;\n\t\tuv = vec2f(select(-dir.z, dir.z, is_neg_x), -dir.y);\n\t\ttileOffset = vec2f(0.0, select(0.0, 1.0, is_neg_x));\n\t}\n\tuv = uv * ma + 0.5;\n\treturn FaceCoords(uv, faceIndex, tileOffset);\n}\nfn getCubemapAtlasCoordinates(omniAtlasViewport: vec3f, shadowEdgePixels: f32, shadowTextureResolution: f32, dir: vec3f) -> vec2f {\n\tlet faceData: FaceCoords = getCubemapFaceCoordinates(dir);\n\tvar uv: vec2f = faceData.uv;\n\tlet tileOffset: vec2f = faceData.tileOffset;\n\tlet atlasFaceSize: f32 = omniAtlasViewport.z;\n\tlet tileSize: f32 = shadowTextureResolution * atlasFaceSize;\n\tvar offset: f32 = shadowEdgePixels / tileSize;\n\tuv = uv * (1.0 - offset * 2.0) + offset;\n\tuv = uv * atlasFaceSize;\n\tuv = uv + tileOffset * atlasFaceSize;\n\tuv = uv + omniAtlasViewport.xy;\n\treturn uv;\n}\n`;\n\nvar clusteredLightCookies_default2 = `\nfn _getCookieClustered(tex: texture_2d<f32>, texSampler: sampler, uv: vec2f, intensity: f32, cookieChannel: vec4f) -> vec3f {\n\tlet pixel: vec4f = mix(vec4f(1.0), textureSampleLevel(tex, texSampler, uv, 0.0), intensity);\n\tlet isRgb: bool = dot(cookieChannel.rgb, vec3f(1.0)) == 3.0;\n\treturn select(vec3f(dot(pixel, cookieChannel)), pixel.rgb, isRgb);\n}\nfn getCookie2DClustered(tex: texture_2d<f32>, texSampler: sampler, transform: mat4x4f, worldPosition: vec3f, intensity: f32, cookieChannel: vec4f) -> vec3f {\n\tlet projPos: vec4f = transform * vec4f(worldPosition, 1.0);\n\treturn _getCookieClustered(tex, texSampler, projPos.xy / projPos.w, intensity, cookieChannel);\n}\nfn getCookieCubeClustered(tex: texture_2d<f32>, texSampler: sampler, dir: vec3f, intensity: f32, cookieChannel: vec4f, shadowTextureResolution: f32, shadowEdgePixels: f32, omniAtlasViewport: vec3f) -> vec3f {\n\tlet uv: vec2f = getCubemapAtlasCoordinates(omniAtlasViewport, shadowEdgePixels, shadowTextureResolution, dir);\n\treturn _getCookieClustered(tex, texSampler, uv, intensity, cookieChannel);\n}\n`;\n\nvar clusteredLightShadows_default2 = `\nfn _getShadowCoordPerspZbuffer(shadowMatrix: mat4x4f, shadowParams: vec4f, wPos: vec3f) -> vec3f {\n\tvar projPos = shadowMatrix * vec4f(wPos, 1.0);\n\treturn projPos.xyz / projPos.w;\n}\nfn getShadowCoordPerspZbufferNormalOffset(shadowMatrix: mat4x4f, shadowParams: vec4f, normal: vec3f) -> vec3f {\n\tlet wPos: vec3f = vPositionW + normal * shadowParams.y;\n\treturn _getShadowCoordPerspZbuffer(shadowMatrix, shadowParams, wPos);\n}\nfn normalOffsetPointShadow(shadowParams: vec4f, lightPos: vec3f, lightDir: vec3f, lightDirNorm: vec3f, normal: vec3f) -> vec3f {\n\tlet distScale: f32 = length(lightDir);\n\tlet wPos: vec3f = vPositionW + normal * shadowParams.y * clamp(1.0 - dot(normal, -lightDirNorm), 0.0, 1.0) * distScale;\n\tlet dir: vec3f = wPos - lightPos;\n\treturn dir;\n}\n#if defined(CLUSTER_SHADOW_TYPE_PCF1)\n\tfn getShadowOmniClusteredPCF1(shadowMap: texture_depth_2d, shadowMapSampler: sampler_comparison, shadowParams: vec4f, omniAtlasViewport: vec3f, shadowEdgePixels: f32, lightDir: vec3f) -> f32 {\n\t\tlet shadowTextureResolution: f32 = shadowParams.x;\n\t\tlet uv: vec2f = getCubemapAtlasCoordinates(omniAtlasViewport, shadowEdgePixels, shadowTextureResolution, lightDir);\n\t\tlet shadowZ: f32 = length(lightDir) * shadowParams.w + shadowParams.z;\n\t\treturn textureSampleCompareLevel(shadowMap, shadowMapSampler, uv, shadowZ);\n\t}\n#endif\n#if defined(CLUSTER_SHADOW_TYPE_PCF3)\n\tfn getShadowOmniClusteredPCF3(shadowMap: texture_depth_2d, shadowMapSampler: sampler_comparison, shadowParams: vec4f, omniAtlasViewport: vec3f, shadowEdgePixels: f32, lightDir: vec3f) -> f32 {\n\t\tlet shadowTextureResolution: f32 = shadowParams.x;\n\t\tlet uv: vec2f = getCubemapAtlasCoordinates(omniAtlasViewport, shadowEdgePixels, shadowTextureResolution, lightDir);\n\t\tlet shadowZ: f32 = length(lightDir) * shadowParams.w + shadowParams.z;\n\t\tlet shadowCoord: vec3f = vec3f(uv, shadowZ);\n\t\treturn getShadowPCF3x3(shadowMap, shadowMapSampler, shadowCoord, shadowParams);\n\t}\n#endif\n#if defined(CLUSTER_SHADOW_TYPE_PCF5)\n\tfn getShadowOmniClusteredPCF5(shadowMap: texture_depth_2d, shadowMapSampler: sampler_comparison, shadowParams: vec4f, omniAtlasViewport: vec3f, shadowEdgePixels: f32, lightDir: vec3f) -> f32 {\n\t\tlet shadowTextureResolution: f32 = shadowParams.x;\n\t\tlet uv: vec2f = getCubemapAtlasCoordinates(omniAtlasViewport, shadowEdgePixels, shadowTextureResolution, lightDir);\n\t\tlet shadowZ: f32 = length(lightDir) * shadowParams.w + shadowParams.z;\n\t\tlet shadowCoord: vec3f = vec3f(uv, shadowZ);\n\t\treturn getShadowPCF5x5(shadowMap, shadowMapSampler, shadowCoord, shadowParams);\n\t}\n#endif\n#if defined(CLUSTER_SHADOW_TYPE_PCF1)\n\tfn getShadowSpotClusteredPCF1(shadowMap: texture_depth_2d, shadowMapSampler: sampler_comparison, shadowCoord: vec3f, shadowParams: vec4f) -> f32 {\n\t\treturn textureSampleCompareLevel(shadowMap, shadowMapSampler, shadowCoord.xy, shadowCoord.z);\n\t}\n#endif\n\t#if defined(CLUSTER_SHADOW_TYPE_PCF3)\n\tfn getShadowSpotClusteredPCF3(shadowMap: texture_depth_2d, shadowMapSampler: sampler_comparison, shadowCoord: vec3f, shadowParams: vec4f) -> f32 {\n\t\treturn getShadowSpotPCF3x3(shadowMap, shadowMapSampler, shadowCoord, shadowParams);\n\t}\n#endif\n\t#if defined(CLUSTER_SHADOW_TYPE_PCF5)\n\tfn getShadowSpotClusteredPCF5(shadowMap: texture_depth_2d, shadowMapSampler: sampler_comparison, shadowCoord: vec3f, shadowParams: vec4f) -> f32 {\n\t\treturn getShadowPCF5x5(shadowMap, shadowMapSampler, shadowCoord, shadowParams);\n\t}\n#endif\n`;\n\nvar clusteredLight_default2 = `\n#include \"lightBufferDefinesPS\"\n#include \"clusteredLightUtilsPS\"\n#ifdef CLUSTER_COOKIES\n\t#include \"clusteredLightCookiesPS\"\n#endif\n#ifdef CLUSTER_SHADOWS\n\t#include \"clusteredLightShadowsPS\"\n#endif\nvar clusterWorldTexture: texture_2d<u32>;\nvar lightsTexture: texture_2d<uff>;\n#ifdef CLUSTER_SHADOWS\n\tvar shadowAtlasTexture: texture_depth_2d;\n\tvar shadowAtlasTextureSampler: sampler_comparison;\n#endif\n#ifdef CLUSTER_COOKIES\n\tvar cookieAtlasTexture: texture_2d<f32>;\n\tvar cookieAtlasTextureSampler: sampler;\n#endif\nuniform clusterMaxCells: i32;\nuniform numClusteredLights: i32;\nuniform clusterTextureWidth: i32;\nuniform clusterCellsCountByBoundsSize: vec3f;\nuniform clusterBoundsMin: vec3f;\nuniform clusterBoundsDelta: vec3f;\nuniform clusterCellsDot: vec3i;\nuniform clusterCellsMax: vec3i;\nuniform shadowAtlasParams: vec2f;\nstruct ClusterLightData {\n\tposition: vec3f,\n\tlightIndex: i32,\n\tdirection: vec3f,\n\tshape: u32,\n\tcolor: vec3f,\n\tshadowIntensity: f32,\n\trange: f32,\n\tbiasesData: f32,\n\tcookieIntensity: f32,\n\tisSpot: bool,\n\tfalloffModeLinear: bool,\n\tisDynamic: bool,\n\tisLightmapped: bool\n}\nstruct ClusterLightSpotData {\n\tinnerConeAngleCos: f32,\n\touterConeAngleCos: f32\n}\nstruct ClusterLightAreaData {\n\thalfWidth: vec3f,\n\thalfHeight: vec3f\n}\nstruct ClusterLightShadowData {\n\tshadowBias: f32,\n\tshadowNormalBias: f32\n}\nvar<private> lightProjectionMatrix: mat4x4f;\nvar<private> clusterLightData_flags: u32;\nvar<private> clusterLightData_anglesData: f32;\nvar<private> clusterLightData_colorBFlagsData: u32;\nfn sampleLightTextureF(lightIndex: i32, index: i32) -> vec4f {\n\treturn textureLoad(lightsTexture, vec2<i32>(index, lightIndex), 0);\n}\nfn decodeClusterLightCore(lightIndex: i32) -> ClusterLightData {\n\tvar clusterLightData: ClusterLightData;\n\tclusterLightData.lightIndex = lightIndex;\n\tlet halfData: vec4f = sampleLightTextureF(lightIndex, {CLUSTER_TEXTURE_COLOR_ANGLES_BIAS});\n\tclusterLightData_anglesData = halfData.z;\n\tclusterLightData.biasesData = halfData.w;\n\tclusterLightData_colorBFlagsData = bitcast<u32>(halfData.y);\n\tlet colorRG: vec2f = unpack2x16float(bitcast<u32>(halfData.x));\n\tlet colorB_flags: vec2f = unpack2x16float(clusterLightData_colorBFlagsData);\n\tclusterLightData.color = vec3f(colorRG, colorB_flags.x) * {LIGHT_COLOR_DIVIDER};\n\tlet lightPosRange: vec4f = sampleLightTextureF(lightIndex, {CLUSTER_TEXTURE_POSITION_RANGE});\n\tclusterLightData.position = lightPosRange.xyz;\n\tclusterLightData.range = lightPosRange.w;\n\tlet lightDir_Flags: vec4f = sampleLightTextureF(lightIndex, {CLUSTER_TEXTURE_DIRECTION_FLAGS});\n\tclusterLightData.direction = lightDir_Flags.xyz;\n\tclusterLightData_flags = bitcast<u32>(lightDir_Flags.w);\n\tclusterLightData.isSpot = (clusterLightData_flags & (1u << 30u)) != 0u;\n\tclusterLightData.shape = (clusterLightData_flags >> 28u) & 0x3u;\n\tclusterLightData.falloffModeLinear = (clusterLightData_flags & (1u << 27u)) == 0u;\n\tclusterLightData.shadowIntensity = f32((clusterLightData_flags >> 0u) & 0xFFu) / 255.0;\n\tclusterLightData.cookieIntensity = f32((clusterLightData_flags >> 8u) & 0xFFu) / 255.0;\n\tclusterLightData.isDynamic = (clusterLightData_flags & (1u << 22u)) != 0u;\n\tclusterLightData.isLightmapped = (clusterLightData_flags & (1u << 21u)) != 0u;\n\treturn clusterLightData;\n}\nfn decodeClusterLightSpot() -> ClusterLightSpotData {\n\tlet angleFlags: u32 = (clusterLightData_colorBFlagsData >> 16u) & 0xFFFFu;\n\tlet angleValues: vec2f = unpack2x16float(bitcast<u32>(clusterLightData_anglesData));\n\tlet innerVal: f32 = angleValues.x;\n\tlet outerVal: f32 = angleValues.y;\n\tlet innerIsVersine: bool = (angleFlags & 1u) != 0u;\n\tlet outerIsVersine: bool = ((angleFlags >> 1u) & 1u) != 0u;\n\treturn ClusterLightSpotData(\n\t\tselect(innerVal, 1.0 - innerVal, innerIsVersine),\n\t\tselect(outerVal, 1.0 - outerVal, outerIsVersine)\n\t);\n}\nfn decodeClusterLightOmniAtlasViewport(lightIndex: i32) -> vec3f {\n\treturn sampleLightTextureF(lightIndex, {CLUSTER_TEXTURE_PROJ_MAT_0}).xyz;\n}\nfn decodeClusterLightAreaData(lightIndex: i32) -> ClusterLightAreaData {\n\treturn ClusterLightAreaData(\n\t\tsampleLightTextureF(lightIndex, {CLUSTER_TEXTURE_AREA_DATA_WIDTH}).xyz,\n\t\tsampleLightTextureF(lightIndex, {CLUSTER_TEXTURE_AREA_DATA_HEIGHT}).xyz\n\t);\n}\nfn decodeClusterLightProjectionMatrixData(lightIndex: i32) -> mat4x4f {\n\tlet m0: vec4f = sampleLightTextureF(lightIndex, {CLUSTER_TEXTURE_PROJ_MAT_0});\n\tlet m1: vec4f = sampleLightTextureF(lightIndex, {CLUSTER_TEXTURE_PROJ_MAT_1});\n\tlet m2: vec4f = sampleLightTextureF(lightIndex, {CLUSTER_TEXTURE_PROJ_MAT_2});\n\tlet m3: vec4f = sampleLightTextureF(lightIndex, {CLUSTER_TEXTURE_PROJ_MAT_3});\n\treturn mat4x4f(m0, m1, m2, m3);\n}\nfn decodeClusterLightShadowData(biasesData: f32) -> ClusterLightShadowData {\n\tlet biases: vec2f = unpack2x16float(bitcast<u32>(biasesData));\n\treturn ClusterLightShadowData(biases.x, biases.y);\n}\nfn decodeClusterLightCookieData() -> vec4f {\n\tlet cookieFlags: u32 = (clusterLightData_flags >> 23u) & 0x0Fu;\n\tlet mask_uvec: vec4<u32> = vec4<u32>(cookieFlags) & vec4<u32>(1u, 2u, 4u, 8u);\n\treturn step(vec4f(1.0), vec4f(mask_uvec));\n}\nfn evaluateLight(\n\tlight: ClusterLightData,\n\tworldNormal: vec3f,\n\tviewDir: vec3f,\n\treflectionDir: vec3f,\n#if defined(LIT_CLEARCOAT)\n\tclearcoatReflectionDir: vec3f,\n#endif\n\tgloss: f32,\n\tspecularity: vec3f,\n\tgeometricNormal: vec3f,\n\ttbn: mat3x3f,\n#if defined(LIT_IRIDESCENCE)\n\tiridescenceFresnel: vec3f,\n#endif\n\tclearcoat_worldNormal: vec3f,\n\tclearcoat_gloss: f32,\n\tsheen_gloss: f32,\n\tiridescence_intensity: f32\n) {\n\tvar cookieAttenuation: vec3f = vec3f(1.0);\n\tvar diffuseAttenuation: f32 = 1.0;\n\tvar falloffAttenuation: f32 = 1.0;\n\tlet lightDirW: vec3f = evalOmniLight(light.position);\n\tlet lightDirNormW: vec3f = normalize(lightDirW);\n\t#ifdef CLUSTER_AREALIGHTS\n\tif (light.shape != {LIGHTSHAPE_PUNCTUAL}) {\n\t\tlet areaData: ClusterLightAreaData = decodeClusterLightAreaData(light.lightIndex);\n\t\tif (light.shape == {LIGHTSHAPE_RECT}) {\n\t\t\tcalcRectLightValues(light.position, areaData.halfWidth, areaData.halfHeight);\n\t\t} else if (light.shape == {LIGHTSHAPE_DISK}) {\n\t\t\tcalcDiskLightValues(light.position, areaData.halfWidth, areaData.halfHeight);\n\t\t} else {\n\t\t\tcalcSphereLightValues(light.position, areaData.halfWidth, areaData.halfHeight);\n\t\t}\n\t\tfalloffAttenuation = getFalloffWindow(light.range, lightDirW);\n\t} else\n\t#endif\n\t{\n\t\tif (light.falloffModeLinear) {\n\t\t\tfalloffAttenuation = getFalloffLinear(light.range, lightDirW);\n\t\t} else {\n\t\t\tfalloffAttenuation = getFalloffInvSquared(light.range, lightDirW);\n\t\t}\n\t}\n\tif (falloffAttenuation > 0.00001) {\n\t\t#ifdef CLUSTER_AREALIGHTS\n\t\tif (light.shape != {LIGHTSHAPE_PUNCTUAL}) {\n\t\t\tif (light.shape == {LIGHTSHAPE_RECT}) {\n\t\t\t\tdiffuseAttenuation = getRectLightDiffuse(worldNormal, viewDir, lightDirW, lightDirNormW) * 16.0;\n\t\t\t} else if (light.shape == {LIGHTSHAPE_DISK}) {\n\t\t\t\tdiffuseAttenuation = getDiskLightDiffuse(worldNormal, viewDir, lightDirW, lightDirNormW) * 16.0;\n\t\t\t} else {\n\t\t\t\tdiffuseAttenuation = getSphereLightDiffuse(worldNormal, viewDir, lightDirW, lightDirNormW) * 16.0;\n\t\t\t}\n\t\t} else\n\t\t#endif\n\t\t{\n\t\t\tfalloffAttenuation = falloffAttenuation * getLightDiffuse(worldNormal, viewDir, lightDirNormW);\n\t\t}\n\t\tif (light.isSpot) {\n\t\t\tlet spotData: ClusterLightSpotData = decodeClusterLightSpot();\n\t\t\tfalloffAttenuation = falloffAttenuation * getSpotEffect(light.direction, spotData.innerConeAngleCos, spotData.outerConeAngleCos, lightDirNormW);\n\t\t}\n\t\t#if defined(CLUSTER_COOKIES) || defined(CLUSTER_SHADOWS)\n\t\tif (falloffAttenuation > 0.00001) {\n\t\t\tif (light.shadowIntensity > 0.0 || light.cookieIntensity > 0.0) {\n\t\t\t\tvar omniAtlasViewport: vec3f = vec3f(0.0);\n\t\t\t\tif (light.isSpot) {\n\t\t\t\t\tlightProjectionMatrix = decodeClusterLightProjectionMatrixData(light.lightIndex);\n\t\t\t\t} else {\n\t\t\t\t\tomniAtlasViewport = decodeClusterLightOmniAtlasViewport(light.lightIndex);\n\t\t\t\t}\n\t\t\t\tlet shadowTextureResolution: f32 = uniform.shadowAtlasParams.x;\n\t\t\t\tlet shadowEdgePixels: f32 = uniform.shadowAtlasParams.y;\n\t\t\t\t#ifdef CLUSTER_COOKIES\n\t\t\t\tif (light.cookieIntensity > 0.0) {\n\t\t\t\t\tlet cookieChannelMask: vec4f = decodeClusterLightCookieData();\n\t\t\t\t\tif (light.isSpot) {\n\t\t\t\t\t\tcookieAttenuation = getCookie2DClustered(cookieAtlasTexture, cookieAtlasTextureSampler, lightProjectionMatrix, vPositionW, light.cookieIntensity, cookieChannelMask);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcookieAttenuation = getCookieCubeClustered(cookieAtlasTexture, cookieAtlasTextureSampler, lightDirW, light.cookieIntensity, cookieChannelMask, shadowTextureResolution, shadowEdgePixels, omniAtlasViewport);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t#endif\n\t\t\t\t#ifdef CLUSTER_SHADOWS\n\t\t\t\tif (light.shadowIntensity > 0.0) {\n\t\t\t\t\tlet shadowData: ClusterLightShadowData = decodeClusterLightShadowData(light.biasesData);\n\t\t\t\t\tlet shadowParams: vec4f = vec4f(shadowTextureResolution, shadowData.shadowNormalBias, shadowData.shadowBias, 1.0 / light.range);\n\t\t\t\t\tif (light.isSpot) {\n\t\t\t\t\t\tlet shadowCoord: vec3f = getShadowCoordPerspZbufferNormalOffset(lightProjectionMatrix, shadowParams, geometricNormal);\n\t\t\t\t\t\t#if defined(CLUSTER_SHADOW_TYPE_PCF1)\n\t\t\t\t\t\t\tlet shadow: f32 = getShadowSpotClusteredPCF1(shadowAtlasTexture, shadowAtlasTextureSampler, shadowCoord, shadowParams);\n\t\t\t\t\t\t#elif defined(CLUSTER_SHADOW_TYPE_PCF3)\n\t\t\t\t\t\t\tlet shadow: f32 = getShadowSpotClusteredPCF3(shadowAtlasTexture, shadowAtlasTextureSampler, shadowCoord, shadowParams);\n\t\t\t\t\t\t#elif defined(CLUSTER_SHADOW_TYPE_PCF5)\n\t\t\t\t\t\t\tlet shadow: f32 = getShadowSpotClusteredPCF5(shadowAtlasTexture, shadowAtlasTextureSampler, shadowCoord, shadowParams);\n\t\t\t\t\t\t#elif defined(CLUSTER_SHADOW_TYPE_PCSS)\n\t\t\t\t\t\t\tlet shadow: f32 = getShadowSpotClusteredPCSS(shadowAtlasTexture, shadowAtlasTextureSampler, shadowCoord, shadowParams);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\tfalloffAttenuation = falloffAttenuation * mix(1.0, shadow, light.shadowIntensity);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlet dir: vec3f = normalOffsetPointShadow(shadowParams, light.position, lightDirW, lightDirNormW, geometricNormal);\n\t\t\t\t\t\t#if defined(CLUSTER_SHADOW_TYPE_PCF1)\n\t\t\t\t\t\t\tlet shadow: f32 = getShadowOmniClusteredPCF1(shadowAtlasTexture, shadowAtlasTextureSampler, shadowParams, omniAtlasViewport, shadowEdgePixels, dir);\n\t\t\t\t\t\t#elif defined(CLUSTER_SHADOW_TYPE_PCF3)\n\t\t\t\t\t\t\tlet shadow: f32 = getShadowOmniClusteredPCF3(shadowAtlasTexture, shadowAtlasTextureSampler, shadowParams, omniAtlasViewport, shadowEdgePixels, dir);\n\t\t\t\t\t\t#elif defined(CLUSTER_SHADOW_TYPE_PCF5)\n\t\t\t\t\t\t\tlet shadow: f32 = getShadowOmniClusteredPCF5(shadowAtlasTexture, shadowAtlasTextureSampler, shadowParams, omniAtlasViewport, shadowEdgePixels, dir);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\tfalloffAttenuation = falloffAttenuation * mix(1.0, shadow, light.shadowIntensity);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t#endif\n\t\t\t}\n\t\t}\n\t\t#endif\n\t\t#ifdef CLUSTER_AREALIGHTS\n\t\tif (light.shape != {LIGHTSHAPE_PUNCTUAL}) {\n\t\t\t{\n\t\t\t\tvar areaDiffuse: vec3f = (diffuseAttenuation * falloffAttenuation) * light.color * cookieAttenuation;\n\t\t\t\t#if defined(LIT_SPECULAR)\n\t\t\t\t\tareaDiffuse = mix(areaDiffuse, vec3f(0.0), dLTCSpecFres);\n\t\t\t\t#endif\n\t\t\t\tdDiffuseLight = dDiffuseLight + areaDiffuse;\n\t\t\t}\n\t\t\t#ifdef LIT_SPECULAR\n\t\t\t\tvar areaLightSpecular: f32;\n\t\t\t\tif (light.shape == {LIGHTSHAPE_RECT}) {\n\t\t\t\t\tareaLightSpecular = getRectLightSpecular(worldNormal, viewDir);\n\t\t\t\t} else if (light.shape == {LIGHTSHAPE_DISK}) {\n\t\t\t\t\tareaLightSpecular = getDiskLightSpecular(worldNormal, viewDir);\n\t\t\t\t} else {\n\t\t\t\t\tareaLightSpecular = getSphereLightSpecular(worldNormal, viewDir);\n\t\t\t\t}\n\t\t\t\tdSpecularLight = dSpecularLight + dLTCSpecFres * areaLightSpecular * falloffAttenuation * light.color * cookieAttenuation;\n\t\t\t\t#ifdef LIT_CLEARCOAT\n\t\t\t\t\tvar areaLightSpecularCC: f32;\n\t\t\t\t\tif (light.shape == {LIGHTSHAPE_RECT}) {\n\t\t\t\t\t\tareaLightSpecularCC = getRectLightSpecular(clearcoat_worldNormal, viewDir);\n\t\t\t\t\t} else if (light.shape == {LIGHTSHAPE_DISK}) {\n\t\t\t\t\t\tareaLightSpecularCC = getDiskLightSpecular(clearcoat_worldNormal, viewDir);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tareaLightSpecularCC = getSphereLightSpecular(clearcoat_worldNormal, viewDir);\n\t\t\t\t\t}\n\t\t\t\t\tccSpecularLight = ccSpecularLight + ccLTCSpecFres * areaLightSpecularCC * falloffAttenuation * light.color  * cookieAttenuation;\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t} else\n\t\t#endif\n\t\t{\n\t\t\t{\n\t\t\t\tvar punctualDiffuse: vec3f = falloffAttenuation * light.color * cookieAttenuation;\n\t\t\t\t#if defined(CLUSTER_AREALIGHTS)\n\t\t\t\t#if defined(LIT_SPECULAR)\n\t\t\t\t\tpunctualDiffuse = mix(punctualDiffuse, vec3f(0.0), specularity);\n\t\t\t\t#endif\n\t\t\t\t#endif\n\t\t\t\tdDiffuseLight = dDiffuseLight + punctualDiffuse;\n\t\t\t}\n\t\t\t#ifdef LIT_SPECULAR\n\t\t\t\tlet halfDir: vec3f = normalize(-lightDirNormW + viewDir);\n\t\t\t\t#ifdef LIT_SPECULAR_FRESNEL\n\t\t\t\t\tdSpecularLight = dSpecularLight +\n\t\t\t\t\t\tgetLightSpecular(halfDir, reflectionDir, worldNormal, viewDir, lightDirNormW, gloss, tbn) * falloffAttenuation * light.color * cookieAttenuation *\n\t\t\t\t\t\tgetFresnel(\n\t\t\t\t\t\t\tdot(viewDir, halfDir),\n\t\t\t\t\t\t\tgloss,\n\t\t\t\t\t\t\tspecularity\n\t\t\t\t\t\t#if defined(LIT_IRIDESCENCE)\n\t\t\t\t\t\t\t, iridescenceFresnel,\n\t\t\t\t\t\t\tiridescence_intensity\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t);\n\t\t\t\t#else\n\t\t\t\t\tdSpecularLight = dSpecularLight + getLightSpecular(halfDir, reflectionDir, worldNormal, viewDir, lightDirNormW, gloss, tbn) * falloffAttenuation * light.color * cookieAttenuation * specularity;\n\t\t\t\t#endif\n\t\t\t\t#ifdef LIT_CLEARCOAT\n\t\t\t\t\t#ifdef LIT_SPECULAR_FRESNEL\n\t\t\t\t\t\tccSpecularLight = ccSpecularLight + getLightSpecular(halfDir, clearcoatReflectionDir, clearcoat_worldNormal, viewDir, lightDirNormW, clearcoat_gloss, tbn) * falloffAttenuation * light.color * cookieAttenuation * getFresnelCC(dot(viewDir, halfDir));\n\t\t\t\t\t#else\n\t\t\t\t\t\tccSpecularLight = ccSpecularLight + getLightSpecular(halfDir, clearcoatReflectionDir, clearcoat_worldNormal, viewDir, lightDirNormW, clearcoat_gloss, tbn) * falloffAttenuation * light.color * cookieAttenuation;\n\t\t\t\t\t#endif\n\t\t\t\t#endif\n\t\t\t\t#ifdef LIT_SHEEN\n\t\t\t\t\tsSpecularLight = sSpecularLight + getLightSpecularSheen(halfDir, worldNormal, viewDir, lightDirNormW, sheen_gloss) * falloffAttenuation * light.color * cookieAttenuation;\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t}\n\t}\n\tdAtten = falloffAttenuation;\n\tdLightDirNormW = lightDirNormW;\n}\nfn evaluateClusterLight(\n\tlightIndex: i32,\n\tworldNormal: vec3f,\n\tviewDir: vec3f,\n\treflectionDir: vec3f,\n#if defined(LIT_CLEARCOAT)\n\tclearcoatReflectionDir: vec3f,\n#endif\n\tgloss: f32,\n\tspecularity: vec3f,\n\tgeometricNormal: vec3f,\n\ttbn: mat3x3f,\n#if defined(LIT_IRIDESCENCE)\n\tiridescenceFresnel: vec3f,\n#endif\n\tclearcoat_worldNormal: vec3f,\n\tclearcoat_gloss: f32,\n\tsheen_gloss: f32,\n\tiridescence_intensity: f32\n) {\n\tlet clusterLightData: ClusterLightData = decodeClusterLightCore(lightIndex);\n\t#ifdef CLUSTER_MESH_DYNAMIC_LIGHTS\n\t\tlet acceptLightMask: bool = clusterLightData.isDynamic;\n\t#else\n\t\tlet acceptLightMask: bool = clusterLightData.isLightmapped;\n\t#endif\n\tif (acceptLightMask) {\n\t\tevaluateLight(\n\t\t\tclusterLightData,\n\t\t\tworldNormal,\n\t\t\tviewDir,\n\t\t\treflectionDir,\n#if defined(LIT_CLEARCOAT)\n\t\t\tclearcoatReflectionDir,\n#endif\n\t\t\tgloss,\n\t\t\tspecularity,\n\t\t\tgeometricNormal,\n\t\t\ttbn,\n#if defined(LIT_IRIDESCENCE)\n\t\t\tiridescenceFresnel,\n#endif\n\t\t\tclearcoat_worldNormal,\n\t\t\tclearcoat_gloss,\n\t\t\tsheen_gloss,\n\t\t\tiridescence_intensity\n\t\t);\n\t}\n}\nfn addClusteredLights(\n\tworldNormal: vec3f,\n\tviewDir: vec3f,\n\treflectionDir: vec3f,\n#if defined(LIT_CLEARCOAT)\n\tclearcoatReflectionDir: vec3f,\n#endif\n\tgloss: f32,\n\tspecularity: vec3f,\n\tgeometricNormal: vec3f,\n\ttbn: mat3x3f,\n#if defined(LIT_IRIDESCENCE)\n\tiridescenceFresnel: vec3f,\n#endif\n\tclearcoat_worldNormal: vec3f,\n\tclearcoat_gloss: f32,\n\tsheen_gloss: f32,\n\tiridescence_intensity: f32\n) {\n\tif (uniform.numClusteredLights <= 1) {\n\t\treturn;\n\t}\n\tlet cellCoords: vec3i = vec3i(floor((vPositionW - uniform.clusterBoundsMin) * uniform.clusterCellsCountByBoundsSize));\n\tif (!(any(cellCoords < vec3i(0)) || any(cellCoords >= uniform.clusterCellsMax))) {\n\t\tlet cellIndex: i32 = cellCoords.x * uniform.clusterCellsDot.x + cellCoords.y * uniform.clusterCellsDot.y + cellCoords.z * uniform.clusterCellsDot.z;\n\t\tlet clusterV: i32 = cellIndex / uniform.clusterTextureWidth;\n\t\tlet clusterU: i32 = cellIndex - clusterV * uniform.clusterTextureWidth;\n\t\tfor (var lightCellIndex: i32 = 0; lightCellIndex < uniform.clusterMaxCells; lightCellIndex = lightCellIndex + 1) {\n\t\t\tlet lightIndex: u32 = textureLoad(clusterWorldTexture, vec2<i32>(clusterU + lightCellIndex, clusterV), 0).r;\n\t\t\tif (lightIndex == 0u) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tevaluateClusterLight(\n\t\t\t\ti32(lightIndex),\n\t\t\t\tworldNormal,\n\t\t\t\tviewDir,\n\t\t\t\treflectionDir,\n#if defined(LIT_CLEARCOAT)\n\t\t\t\tclearcoatReflectionDir,\n#endif\n\t\t\t\tgloss,\n\t\t\t\tspecularity,\n\t\t\t\tgeometricNormal,\n\t\t\t\ttbn,\n#if defined(LIT_IRIDESCENCE)\n\t\t\t\tiridescenceFresnel,\n#endif\n\t\t\t\tclearcoat_worldNormal,\n\t\t\t\tclearcoat_gloss,\n\t\t\t\tsheen_gloss,\n\t\t\t\tiridescence_intensity\n\t\t\t);\n\t\t}\n\t}\n}`;\n\nvar combine_default2 = `\nfn combineColor(albedo: vec3f, sheenSpecularity: vec3f, clearcoatSpecularity: f32) -> vec3f {\n\tvar ret: vec3f = vec3f(0.0);\n\t#ifdef LIT_OLD_AMBIENT\n\t\tret = ret + ((dDiffuseLight - uniform.light_globalAmbient) * albedo + uniform.material_ambient * uniform.light_globalAmbient);\n\t#else\n\t\tret = ret + (albedo * dDiffuseLight);\n\t#endif\n\t#ifdef LIT_SPECULAR\n\t\tret = ret + dSpecularLight;\n\t#endif\n\t#ifdef LIT_REFLECTIONS\n\t\tret = ret + (dReflection.rgb * dReflection.a);\n\t#endif\n\t#ifdef LIT_SHEEN\n\t\tlet sheenScaling: f32 = 1.0 - max(max(sheenSpecularity.r, sheenSpecularity.g), sheenSpecularity.b) * 0.157;\n\t\tret = ret * sheenScaling + (sSpecularLight + sReflection.rgb) * sheenSpecularity;\n\t#endif\n\t#ifdef LIT_CLEARCOAT\n\t\tlet clearCoatScaling: f32 = 1.0 - ccFresnel * clearcoatSpecularity;\n\t\tret = ret * clearCoatScaling + (ccSpecularLight + ccReflection) * clearcoatSpecularity;\n\t#endif\n\treturn ret;\n}\n`;\n\nvar cookie_blit_2d_default2 = `\n\tvarying uv0: vec2f;\n\tvar blitTexture: texture_2d<f32>;\n\tvar blitTextureSampler : sampler;\n\t@fragment\n\tfn fragmentMain(input : FragmentInput) -> FragmentOutput {\n\t\tvar output: FragmentOutput;\n\t\toutput.color = textureSample(blitTexture, blitTextureSampler, input.uv0);\n\t\treturn output;\n\t}\n`;\n\nvar cookie_blit_cube_default2 = `\n\tvarying uv0: vec2f;\n\tuniform invViewProj: mat4x4<f32>;\n\tvar blitTexture: texture_cube<f32>;\n\tvar blitTextureSampler : sampler;\n\t@fragment\n\tfn fragmentMain(input : FragmentInput) -> FragmentOutput {\n\t\tvar output: FragmentOutput;\n\t\tvar projPos = vec4f(input.uv0 * 2.0 - 1.0, 0.5, 1.0);\n\t\tvar worldPos = uniform.invViewProj * projPos;\n\t\toutput.color = textureSample(blitTexture, blitTextureSampler, worldPos.xyz);\n\t\treturn output;\n\t}\n`;\n\nvar cookie_blit_default2 = `\n\tattribute vertex_position: vec2f;\n\tvarying uv0: vec2f;\n\t@vertex\n\tfn vertexMain(input: VertexInput) -> VertexOutput {\n\t\tvar output: VertexOutput;\n\t\toutput.position = vec4f(input.vertex_position, 0.5, 1.0);\n\t\toutput.uv0 = input.vertex_position * 0.5 + vec2f(0.5, 0.5);\n\t\toutput.uv0.y = 1.0 - output.uv0.y;\n\t\treturn output;\n\t}\n`;\n\nvar cubeMapProject_default2 = `\n#if LIT_CUBEMAP_PROJECTION == BOX\n\tuniform envBoxMin: vec3f;\n\tuniform envBoxMax: vec3f;\n#endif\nfn cubeMapProject(nrdir: vec3f) -> vec3f {\n\t#if LIT_CUBEMAP_PROJECTION == NONE\n\t\treturn cubeMapRotate(nrdir);\n\t#endif\n\t#if LIT_CUBEMAP_PROJECTION == BOX\n\t\tlet nrdir_rotated: vec3f = cubeMapRotate(nrdir);\n\t\tlet rbmax: vec3f = (uniform.envBoxMax - vPositionW) / nrdir_rotated;\n\t\tlet rbmin: vec3f = (uniform.envBoxMin - vPositionW) / nrdir_rotated;\n\t\tlet rbminmax: vec3f = select(rbmin, rbmax, nrdir_rotated > vec3f(0.0));\n\t\tlet fa: f32 = min(min(rbminmax.x, rbminmax.y), rbminmax.z);\n\t\tlet posonbox: vec3f = vPositionW + nrdir_rotated * fa;\n\t\tlet envBoxPos: vec3f = (uniform.envBoxMin + uniform.envBoxMax) * 0.5;\n\t\treturn normalize(posonbox - envBoxPos);\n\t#endif\n}\n`;\n\nvar cubeMapRotate_default2 = `\n#ifdef CUBEMAP_ROTATION\nuniform cubeMapRotationMatrix: mat3x3f;\n#endif\nfn cubeMapRotate(refDir: vec3f) -> vec3f {\n#ifdef CUBEMAP_ROTATION\n\treturn refDir * uniform.cubeMapRotationMatrix;\n#else\n\treturn refDir;\n#endif\n}\n`;\n\nvar debug_output_default2 = `\n#ifdef DEBUG_ALBEDO_PASS\noutput.color = vec4(gammaCorrectOutput(dAlbedo), 1.0);\n#endif\n#ifdef DEBUG_UV0_PASS\noutput.color = vec4f(litArgs_albedo , 1.0);\n#endif\n#ifdef DEBUG_WORLD_NORMAL_PASS\noutput.color = vec4f(litArgs_worldNormal * 0.5 + 0.5, 1.0);\n#endif\n#ifdef DEBUG_OPACITY_PASS\noutput.color = vec4f(vec3f(litArgs_opacity) , 1.0);\n#endif\n#ifdef DEBUG_SPECULARITY_PASS\noutput.color = vec4f(litArgs_specularity, 1.0);\n#endif\n#ifdef DEBUG_GLOSS_PASS\noutput.color = vec4f(vec3f(litArgs_gloss) , 1.0);\n#endif\n#ifdef DEBUG_METALNESS_PASS\noutput.color = vec4f(vec3f(litArgs_metalness) , 1.0);\n#endif\n#ifdef DEBUG_AO_PASS\noutput.color = vec4f(vec3f(litArgs_ao) , 1.0);\n#endif\n#ifdef DEBUG_EMISSION_PASS\noutput.color = vec4f(gammaCorrectOutput(litArgs_emission), 1.0);\n#endif\n`;\n\nvar debug_process_frontend_default2 = `\n#ifdef DEBUG_LIGHTING_PASS\n\tlitArgs_albedo = vec3f(0.5);\n#endif\n#ifdef DEBUG_UV0_PASS\n#ifdef VARYING_VUV0\n\tlitArgs_albedo = vec3f(vUv0, 0.0);\n#else\n\tlitArgs_albedo = vec3f(0.0);\n#endif\n#endif\n`;\n\nvar decode_default2 = `\n#ifndef _DECODE_INCLUDED_\n#define _DECODE_INCLUDED_\nfn decodeLinear(raw: vec4f) -> vec3f {\n\treturn raw.rgb;\n}\nfn decodeGammaFloat(raw: f32) -> f32 {\n\treturn pow(raw, 2.2);\n}\nfn decodeGamma3(raw: vec3f) -> vec3f {\n\treturn pow(raw, vec3f(2.2));\n}\nfn decodeGamma(raw: vec4f) -> vec3f {\n\treturn pow(raw.xyz, vec3f(2.2));\n}\nfn decodeRGBM(raw: vec4f) -> vec3f {\n\tlet color = (8.0 * raw.a) * raw.rgb;\n\treturn color * color;\n}\nfn decodeRGBP(raw: vec4f) -> vec3f {\n\tlet color = raw.rgb * (-raw.a * 7.0 + 8.0);\n\treturn color * color;\n}\nfn decodeRGBE(raw: vec4f) -> vec3f {\n\treturn select(vec3f(0.0), raw.xyz * pow(2.0, raw.w * 255.0 - 128.0), raw.a != 0.0);\n}\nfn passThrough(raw: vec4f) -> vec4f {\n\treturn raw;\n}\nfn unpackNormalXYZ(nmap: vec4f) -> vec3f {\n\treturn nmap.xyz * 2.0 - 1.0;\n}\nfn unpackNormalXY(nmap: vec4f) -> vec3f {\n\tvar xy = nmap.wy * 2.0 - 1.0;\n\treturn vec3f(xy, sqrt(1.0 - clamp(dot(xy, xy), 0.0, 1.0)));\n}\n#endif\n`;\n\nvar detailModes_default2 = `\n#ifndef _DETAILMODES_INCLUDED_\n#define _DETAILMODES_INCLUDED_\nfn detailMode_mul(c1: vec3f, c2: vec3f) -> vec3f {\n\treturn c1 * c2;\n}\nfn detailMode_add(c1: vec3f, c2: vec3f) -> vec3f {\n\treturn c1 + c2;\n}\nfn detailMode_screen(c1: vec3f, c2: vec3f) -> vec3f {\n\treturn 1.0 - (1.0 - c1)*(1.0 - c2);\n}\nfn detailMode_overlay(c1: vec3f, c2: vec3f) -> vec3f {\n\treturn mix(1.0 - 2.0 * (1.0 - c1)*(1.0 - c2), 2.0 * c1 * c2, step(c1, vec3f(0.5)));\n}\nfn detailMode_min(c1: vec3f, c2: vec3f) -> vec3f {\n\treturn min(c1, c2);\n}\nfn detailMode_max(c1: vec3f, c2: vec3f) -> vec3f {\n\treturn max(c1, c2);\n}\n#endif\n`;\n\nvar diffuse_default2 = `\nuniform material_diffuse: vec3f;\n#ifdef STD_DIFFUSEDETAIL_TEXTURE\n\t#include \"detailModesPS\"\n#endif\nfn getAlbedo() {\n\tdAlbedo = uniform.material_diffuse.rgb;\n\t#ifdef STD_DIFFUSE_TEXTURE\n\t\tvar albedoTexture: vec3f = {STD_DIFFUSE_TEXTURE_DECODE}(textureSampleBias({STD_DIFFUSE_TEXTURE_NAME}, {STD_DIFFUSE_TEXTURE_NAME}Sampler, {STD_DIFFUSE_TEXTURE_UV}, uniform.textureBias)).{STD_DIFFUSE_TEXTURE_CHANNEL};\n\t\t#ifdef STD_DIFFUSEDETAIL_TEXTURE\n\t\t\tvar albedoDetail: vec3f = {STD_DIFFUSEDETAIL_TEXTURE_DECODE}(textureSampleBias({STD_DIFFUSEDETAIL_TEXTURE_NAME}, {STD_DIFFUSEDETAIL_TEXTURE_NAME}Sampler, {STD_DIFFUSEDETAIL_TEXTURE_UV}, uniform.textureBias)).{STD_DIFFUSEDETAIL_TEXTURE_CHANNEL};\n\t\t\talbedoTexture = detailMode_{STD_DIFFUSEDETAIL_DETAILMODE}(albedoTexture, albedoDetail);\n\t\t#endif\n\t\tdAlbedo = dAlbedo * albedoTexture;\n\t#endif\n\t#ifdef STD_DIFFUSE_VERTEX\n\t\tdAlbedo = dAlbedo * saturate3(vVertexColor.{STD_DIFFUSE_VERTEX_CHANNEL});\n\t#endif\n}\n`;\n\nvar emissive_default2 = `\nuniform material_emissive: vec3f;\nuniform material_emissiveIntensity: f32;\nfn getEmission() {\n\tdEmission = uniform.material_emissive * uniform.material_emissiveIntensity;\n\t#ifdef STD_EMISSIVE_TEXTURE\n\tdEmission *= {STD_EMISSIVE_TEXTURE_DECODE}(textureSampleBias({STD_EMISSIVE_TEXTURE_NAME}, {STD_EMISSIVE_TEXTURE_NAME}Sampler, {STD_EMISSIVE_TEXTURE_UV}, uniform.textureBias)).{STD_EMISSIVE_TEXTURE_CHANNEL};\n\t#endif\n\t#ifdef STD_EMISSIVE_VERTEX\n\tdEmission = dEmission * saturate3(vVertexColor.{STD_EMISSIVE_VERTEX_CHANNEL});\n\t#endif\n}\n`;\n\nvar encode_default2 = `\nfn encodeLinear(source: vec3f) -> vec4f {\n\treturn vec4f(source, 1.0);\n}\nfn encodeGamma(source: vec3f) -> vec4f {\n\treturn vec4f(pow(source + vec3f(0.0000001), vec3f(1.0 / 2.2)), 1.0);\n}\nfn encodeRGBM(source: vec3f) -> vec4f {\n\tvar color: vec3f = pow(source, vec3f(0.5));\n\tcolor *= 1.0 / 8.0;\n\tvar a: f32 = saturate(max(max(color.r, color.g), max(color.b, 1.0 / 255.0)));\n\ta = ceil(a * 255.0) / 255.0;\n\tcolor /= a;\n\treturn vec4f(color, a);\n}\nfn encodeRGBP(source: vec3f) -> vec4f {\n\tvar gamma: vec3f = pow(source, vec3f(0.5));\n\tvar maxVal: f32 = min(8.0, max(1.0, max(gamma.x, max(gamma.y, gamma.z))));\n\tvar v: f32 = 1.0 - ((maxVal - 1.0) / 7.0);\n\tv = ceil(v * 255.0) / 255.0;\n\treturn vec4f(gamma / (-v * 7.0 + 8.0), v);\n}\nfn encodeRGBE(source: vec3f) -> vec4f {\n\tvar maxVal: f32 = max(source.x, max(source.y, source.z));\n\tif (maxVal < 1e-32) {\n\t\treturn vec4f(0.0, 0.0, 0.0, 0.0);\n\t} else {\n\t\tvar e: f32 = ceil(log2(maxVal));\n\t\treturn vec4f(source / pow(2.0, e), (e + 128.0) / 255.0);\n\t}\n}\n`;\n\nvar end_default2 = `\n\tvar finalRgb: vec3f = combineColor(litArgs_albedo, litArgs_sheen_specularity, litArgs_clearcoat_specularity);\n\tfinalRgb = finalRgb + litArgs_emission;\n\tfinalRgb = addFog(finalRgb);\n\tfinalRgb = toneMap(finalRgb);\n\tfinalRgb = gammaCorrectOutput(finalRgb);\n\toutput.color = vec4f(finalRgb, output.color.a);\n`;\n\nvar envAtlas_default2 = `\n#ifndef _ENVATLAS_INCLUDED_\n#define _ENVATLAS_INCLUDED_\nconst atlasSize : f32 = 512.0;\nconst seamSize : f32 = 1.0 / atlasSize;\nfn mapUv(uv : vec2f, rect : vec4f) -> vec2f {\n\treturn vec2f(mix(rect.x + seamSize, rect.x + rect.z - seamSize, uv.x),\n\t\t\t\t mix(rect.y + seamSize, rect.y + rect.w - seamSize, uv.y));\n}\nfn mapRoughnessUv(uv : vec2f, level : f32) -> vec2f {\n\tlet t : f32 = 1.0 / exp2(level);\n\treturn mapUv(uv, vec4f(0.0, 1.0 - t, t, t * 0.5));\n}\nfn mapShinyUv(uv : vec2f, level : f32) -> vec2f {\n\tlet t : f32 = 1.0 / exp2(level);\n\treturn mapUv(uv, vec4f(1.0 - t, 1.0 - t, t, t * 0.5));\n}\n#endif\n`;\n\nvar envProc_default2 = `\n#ifdef LIT_SKYBOX_INTENSITY\n\tuniform skyboxIntensity : f32;\n#endif\nfn processEnvironment(color : vec3f) -> vec3f {\n\t#ifdef LIT_SKYBOX_INTENSITY\n\t\treturn color * uniform.skyboxIntensity;\n\t#else\n\t\treturn color;\n\t#endif\n}\n`;\n\nvar falloffInvSquared_default2 = `\nfn getFalloffWindow(lightRadius: f32, lightDir: vec3f) -> f32 {\n\tlet sqrDist: f32 = dot(lightDir, lightDir);\n\tlet invRadius: f32 = 1.0 / lightRadius;\n\treturn square(saturate(1.0 - square(sqrDist * square(invRadius))));\n}\nfn getFalloffInvSquared(lightRadius: f32, lightDir: vec3f) -> f32 {\n\tlet sqrDist: f32 = dot(lightDir, lightDir);\n\tvar falloff: f32 = 1.0 / (sqrDist + 1.0);\n\tlet invRadius: f32 = 1.0 / lightRadius;\n\tfalloff = falloff * 16.0;\n\tfalloff = falloff * square(saturate(1.0 - square(sqrDist * square(invRadius))));\n\treturn falloff;\n}\n`;\n\nvar falloffLinear_default2 = `\nfn getFalloffLinear(lightRadius: f32, lightDir: vec3f) -> f32 {\n\tlet d: f32 = length(lightDir);\n\treturn max(((lightRadius - d) / lightRadius), 0.0);\n}\n`;\n\nvar flat_normal_default2 = `\n#ifndef TBNBASIS\n\t#define TBNBASIS\n\tuniform tbnBasis: f32;\n#endif\nfn getFlatNormal(worldPos: vec3f) -> vec3f {\n\tlet normal: vec3f = cross(dpdx(worldPos), dpdy(worldPos));\n\tlet basis: f32 = select(-uniform.tbnBasis, uniform.tbnBasis, pcFrontFacing);\n\tlet len: f32 = length(normal);\n\treturn select(vec3f(0.0, 1.0, 0.0), normal * (basis / len), len > 0.0);\n}\n`;\n\nvar float_as_uint_default2 = `\n#ifndef FLOAT_AS_UINT\n#define FLOAT_AS_UINT\nfn float2uint(value: f32) -> vec4f {\n\tlet intBits = bitcast<u32>(value);\n\treturn vec4f(\n\t\tf32((intBits >> 24u) & 0xffu),\n\t\tf32((intBits >> 16u) & 0xffu),\n\t\tf32((intBits >> 8u) & 0xffu),\n\t\tf32(intBits & 0xffu)\n\t) / 255.0;\n}\nfn uint2float(value: vec4f) -> f32 {\n\tlet rgba_u32 = vec4<u32>(value * 255.0);\n\tlet intBits: u32 =\n\t\t(rgba_u32.r << 24u) |\n\t\t(rgba_u32.g << 16u) |\n\t\t(rgba_u32.b << 8u)  |\n\t\t rgba_u32.a;\n\treturn bitcast<f32>(intBits);\n}\nfn float2vec4(value: f32) -> vec4f {\n\t#if defined(CAPS_TEXTURE_FLOAT_RENDERABLE)\n\t\treturn vec4f(value, 1.0, 1.0, 1.0);\n\t#else\n\t\treturn float2uint(value);\n\t#endif\n}\n#endif\n`;\n\nvar scene_textures_default2 = `\n#ifndef SCENE_TEXTURES\n#define SCENE_TEXTURES\nfn writeSceneTextureDepth(output: ptr<function, FragmentOutput>, linearDepth: f32, alpha: f32) {\n\t#ifdef SCENE_TEXTURE_DEPTH\n\t\t(*output).color{SCENE_TEXTURE_DEPTH_SLOT} = vec4f(alpha / max(linearDepth, 1e-6), 0.0, 0.0, alpha);\n\t#endif\n}\n#endif\n`;\n\nvar fog_default2 = `\n#include \"fogMathPS\"\nvar<private> dBlendModeFogFactor : f32 = 1.0;\n#if (FOG != NONE)\n\tuniform fog_color : vec3f;\n\t\n\t#if (FOG == LINEAR)\n\t\tuniform fog_start : f32;\n\t\tuniform fog_end : f32;\n\t#else\n\t\tuniform fog_density : f32;\n\t#endif\n#endif\n#ifdef VERTEXSHADER\n\tfn getFogFactor(depth: f32) -> f32 {\n#else\n\tfn getFogFactor() -> f32 {\n\t\tlet depth = pcPosition.z / pcPosition.w;\n#endif\n\t#if (FOG == LINEAR)\n\t\treturn evaluateFogFactorLinear(depth, uniform.fog_start, uniform.fog_end);\n\t#elif (FOG == EXP)\n\t\treturn evaluateFogFactorExp(depth, uniform.fog_density);\n\t#elif (FOG == EXP2)\n\t\treturn evaluateFogFactorExp2(depth, uniform.fog_density);\n\t#else\n\t\treturn 1.0;\n\t#endif\n}\n#ifdef VERTEXSHADER\n\tfn addFog(color: vec3f, depth: f32) -> vec3f {\n\t\t#if (FOG != NONE)\n\t\t\treturn mix(uniform.fog_color * dBlendModeFogFactor, color, getFogFactor(depth));\n\t\t#else\n\t\t\treturn color;\n\t\t#endif\n\t}\n#else\n\tfn addFog(color: vec3f) -> vec3f {\n\t\t#if (FOG != NONE)\n\t\t\treturn mix(uniform.fog_color * dBlendModeFogFactor, color, getFogFactor());\n\t\t#else\n\t\t\treturn color;\n\t\t#endif\n\t}\n#endif\n`;\n\nvar fogMath_default = `\nfn evaluateFogFactorLinear(depth: f32, fogStart: f32, fogEnd: f32) -> f32 {\n\treturn clamp((fogEnd - depth) / (fogEnd - fogStart), 0.0, 1.0);\n}\nfn evaluateFogFactorExp(depth: f32, fogDensity: f32) -> f32 {\n\treturn clamp(exp(-depth * fogDensity), 0.0, 1.0);\n}\nfn evaluateFogFactorExp2(depth: f32, fogDensity: f32) -> f32 {\n\treturn clamp(exp(-depth * depth * fogDensity * fogDensity), 0.0, 1.0);\n}\n`;\n\nvar fresnelSchlick_default2 = `\nfn pow5(x: f32) -> f32 {\n\tlet x2: f32 = x * x;\n\treturn x2 * x2 * x;\n}\nfn getFresnel(\n\t\tcosTheta: f32,\n\t\tgloss: f32,\n\t\tspecularity: vec3f\n\t#if defined(LIT_IRIDESCENCE)\n\t\t, iridescenceFresnel: vec3f,\n\t\tiridescenceIntensity: f32\n\t#endif\n) -> vec3f {\n\tlet fresnel: f32 = pow5(1.0 - saturate(cosTheta));\n\tlet glossSq: f32 = gloss * gloss;\n\tlet specIntensity: f32 = max(specularity.r, max(specularity.g, specularity.b));\n\tlet ret: vec3f = specularity + (max(vec3f(glossSq * specIntensity), specularity) - specularity) * fresnel;\n\t#if defined(LIT_IRIDESCENCE)\n\t\treturn mix(ret, iridescenceFresnel, iridescenceIntensity);\n\t#else\n\t\treturn ret;\n\t#endif\n}\nfn getFresnelCC(cosTheta: f32) -> f32 {\n\tlet fresnel: f32 = pow5(1.0 - saturate(cosTheta));\n\treturn 0.04 + (1.0 - 0.04) * fresnel;\n}`;\n\nvar fullscreenQuad_default2 = `\nattribute vertex_position: vec2f;\nvarying vUv0: vec2f;\n@vertex\nfn vertexMain(input: VertexInput) -> VertexOutput {\n\tvar output: VertexOutput;\n\toutput.position = vec4f(input.vertex_position, 0.5, 1.0);\n\toutput.vUv0 = input.vertex_position.xy * 0.5 + vec2f(0.5);\n\treturn output;\n}\n`;\n\nvar gamma_default2 = `\n#include \"decodePS\"\n#if (GAMMA == SRGB)\n\tfn gammaCorrectInput(color: f32) -> f32 {\n\t\treturn decodeGammaFloat(color);\n\t}\n\tfn gammaCorrectInputVec3(color: vec3f) -> vec3f {\n\t\treturn decodeGamma3(color);\n\t}\n\tfn gammaCorrectInputVec4(color: vec4f) -> vec4f {\n\t\treturn vec4f(decodeGamma3(color.xyz), color.w);\n\t}\n\tfn gammaCorrectOutput(color: vec3f) -> vec3f {\n\t\treturn pow(color + 0.0000001, vec3f(1.0 / 2.2));\n\t}\n#else\n\tfn gammaCorrectInput(color: f32) -> f32 {\n\t\treturn color;\n\t}\n\tfn gammaCorrectInputVec3(color: vec3f) -> vec3f {\n\t\treturn color;\n\t}\n\tfn gammaCorrectInputVec4(color: vec4f) -> vec4f {\n\t\treturn color;\n\t}\n\tfn gammaCorrectOutput(color: vec3f) -> vec3f {\n\t\treturn color;\n\t}\n#endif\n`;\n\nvar gloss_default2 = `\n#ifdef STD_GLOSS_CONSTANT\n\tuniform material_gloss: f32;\n#endif\nfn getGlossiness() {\n\tdGlossiness = 1.0;\n\t#ifdef STD_GLOSS_CONSTANT\n\tdGlossiness = dGlossiness * uniform.material_gloss;\n\t#endif\n\t#ifdef STD_GLOSS_TEXTURE\n\tdGlossiness = dGlossiness * textureSampleBias({STD_GLOSS_TEXTURE_NAME}, {STD_GLOSS_TEXTURE_NAME}Sampler, {STD_GLOSS_TEXTURE_UV}, uniform.textureBias).{STD_GLOSS_TEXTURE_CHANNEL};\n\t#endif\n\t#ifdef STD_GLOSS_VERTEX\n\tdGlossiness = dGlossiness * saturate(vVertexColor.{STD_GLOSS_VERTEX_CHANNEL});\n\t#endif\n\t#ifdef STD_GLOSS_INVERT\n\tdGlossiness = 1.0 - dGlossiness;\n\t#endif\n\tdGlossiness = dGlossiness + 0.0000001;\n}\n`;\n\nvar quad_default2 = `\n\tattribute aPosition: vec2f;\n\tvarying uv0: vec2f;\n\t@vertex fn vertexMain(input: VertexInput) -> VertexOutput {\n\t\tvar output: VertexOutput;\n\t\toutput.position = vec4f(input.aPosition, 0.0, 1.0);\n\t\toutput.uv0 = getImageEffectUV((input.aPosition + 1.0) * 0.5);\n\t\treturn output;\n\t}\n`;\n\nvar indirect_core_default = `\nstruct DrawIndexedIndirectArgs {\n\tindexCount: u32,\n\tinstanceCount: u32,\n\tfirstIndex: u32,\n\tbaseVertex: i32,\n\tfirstInstance: u32\n};\nstruct DrawIndirectArgs {\n\tvertexCount: u32,\n\tinstanceCount: u32,\n\tfirstVertex: u32,\n\tfirstInstance: u32,\n\t_pad: u32\n};\n`;\n\nvar immediateLine_default3 = `\n\t#include \"gammaPS\"\n\tvarying color: vec4f;\n\t@fragment\n\tfn fragmentMain(input : FragmentInput) -> FragmentOutput {\n\t\tvar output: FragmentOutput;\n\t\toutput.color = vec4f(gammaCorrectOutput(decodeGamma3(input.color.rgb)), input.color.a);\n\t\treturn output;\n\t}\n`;\n\nvar immediateLine_default4 = `\n\tattribute vertex_position: vec4f;\n\tattribute vertex_color: vec4f;\n\tuniform matrix_model: mat4x4f;\n\tuniform matrix_viewProjection: mat4x4f;\n\tvarying color: vec4f;\n\t@vertex\n\tfn vertexMain(input : VertexInput) -> VertexOutput {\n\t\tvar output : VertexOutput;\n\t\toutput.color = input.vertex_color;\n\t\toutput.position = uniform.matrix_viewProjection * uniform.matrix_model * input.vertex_position;\n\t\treturn output;\n\t}\n`;\n\nvar iridescenceDiffraction_default2 = `\nuniform material_iridescenceRefractionIndex: f32;\nfn iridescence_iorToFresnelScalar(transmittedIor: f32, incidentIor: f32) -> f32 {\n\treturn pow((transmittedIor - incidentIor) / (transmittedIor + incidentIor), 2.0);\n}\nfn iridescence_iorToFresnelVec3(transmittedIor: vec3f, incidentIor: f32) -> vec3f {\n\treturn pow((transmittedIor - vec3f(incidentIor)) / (transmittedIor + vec3f(incidentIor)), vec3f(2.0));\n}\nfn iridescence_fresnelToIor(f0: vec3f) -> vec3f {\n\tlet sqrtF0: vec3f = sqrt(f0);\n\treturn (vec3f(1.0) + sqrtF0) / (vec3f(1.0) - sqrtF0);\n}\nconst XYZ_TO_REC709: mat3x3f = mat3x3f(\n\tvec3f(3.2404542, -1.5371385, -0.4985314),\n\tvec3f(-0.9692660,  1.8760108,  0.0415560),\n\tvec3f(0.0556434, -0.2040259,  1.0572252)\n);\nfn iridescence_sensitivity(opd: f32, shift: vec3f) -> vec3f {\n\tlet PI: f32 = 3.141592653589793;\n\tlet phase: f32 = 2.0 * PI * opd * 1.0e-9;\n\tconst val: vec3f = vec3f(5.4856e-13, 4.4201e-13, 5.2481e-13);\n\tconst pos: vec3f = vec3f(1.6810e+06, 1.7953e+06, 2.2084e+06);\n\tconst var_: vec3f = vec3f(4.3278e+09, 9.3046e+09, 6.6121e+09);\n\tvar xyz: vec3f = val * sqrt(2.0 * PI * var_) * cos(pos * phase + shift) * exp(-pow(phase, 2.0) * var_);\n\txyz.x = xyz.x + 9.7470e-14 * sqrt(2.0 * PI * 4.5282e+09) * cos(2.2399e+06 * phase + shift[0]) * exp(-4.5282e+09 * pow(phase, 2.0));\n\txyz = xyz / vec3f(1.0685e-07);\n\treturn XYZ_TO_REC709 * xyz;\n}\nfn iridescence_fresnelScalar(cosTheta: f32, f0: f32) -> f32 {\n\tlet x: f32 = clamp(1.0 - cosTheta, 0.0, 1.0);\n\tlet x2: f32 = x * x;\n\tlet x5: f32 = x * x2 * x2;\n\treturn f0 + (1.0 - f0) * x5;\n}\nfn iridescence_fresnelVec3(cosTheta: f32, f0: vec3f) -> vec3f {\n\tlet x: f32 = clamp(1.0 - cosTheta, 0.0, 1.0);\n\tlet x2: f32 = x * x;\n\tlet x5: f32 = x * x2 * x2;\n\treturn f0 + (vec3f(1.0) - f0) * x5;\n}\nfn calcIridescence(outsideIor: f32, cosTheta: f32, base_f0: vec3f, iridescenceThickness: f32) -> vec3f {\n\tlet PI: f32 = 3.141592653589793;\n\tlet iridescenceIor: f32 = mix(outsideIor, uniform.material_iridescenceRefractionIndex, smoothstep(0.0, 0.03, iridescenceThickness));\n\tlet sinTheta2Sq: f32 = pow(outsideIor / iridescenceIor, 2.0) * (1.0 - pow(cosTheta, 2.0));\n\tlet cosTheta2Sq: f32 = 1.0 - sinTheta2Sq;\n\tif (cosTheta2Sq < 0.0) {\n\t\treturn vec3f(1.0);\n\t}\n\tlet cosTheta2: f32 = sqrt(cosTheta2Sq);\n\tlet r0: f32 = iridescence_iorToFresnelScalar(iridescenceIor, outsideIor);\n\tlet r12: f32 = iridescence_fresnelScalar(cosTheta, r0);\n\tlet r21: f32 = r12;\n\tlet t121: f32 = 1.0 - r12;\n\tlet phi12: f32 = select(0.0, PI, iridescenceIor < outsideIor);\n\tlet phi21: f32 = PI - phi12;\n\tlet baseIor: vec3f = iridescence_fresnelToIor(base_f0 + vec3f(0.0001));\n\tlet r1: vec3f = iridescence_iorToFresnelVec3(baseIor, iridescenceIor);\n\tlet r23: vec3f = iridescence_fresnelVec3(cosTheta2, r1);\n\tlet phi23: vec3f = select(vec3f(0.0), vec3f(PI), baseIor < vec3f(iridescenceIor));\n\tlet opd: f32 = 2.0 * iridescenceIor * iridescenceThickness * cosTheta2;\n\tlet phi: vec3f = vec3f(phi21) + phi23;\n\tlet r123Sq: vec3f = clamp(vec3f(r12) * r23, vec3f(1e-5), vec3f(0.9999));\n\tlet r123: vec3f = sqrt(r123Sq);\n\tlet rs: vec3f = pow(vec3f(t121), vec3f(2.0)) * r23 / (vec3f(1.0) - r123Sq);\n\tlet c0: vec3f = vec3f(r12) + rs;\n\tvar i_irid: vec3f = c0;\n\tvar cm: vec3f = rs - vec3f(t121);\n\tcm = cm * r123;\n\tlet sm1: vec3f = 2.0 * iridescence_sensitivity(1.0 * opd, 1.0 * phi);\n\ti_irid = i_irid + cm * sm1;\n\tcm = cm * r123;\n\tlet sm2: vec3f = 2.0 * iridescence_sensitivity(2.0 * opd, 2.0 * phi);\n\ti_irid = i_irid + cm * sm2;\n\treturn max(i_irid, vec3f(0.0));\n}\nfn getIridescenceDiffraction(cosTheta: f32, specularity: vec3f, iridescenceThickness: f32) -> vec3f {\n\treturn calcIridescence(1.0, cosTheta, specularity, iridescenceThickness);\n}\n`;\n\nvar iridescence_default2 = `\n#ifdef STD_IRIDESCENCE_CONSTANT\n\tuniform material_iridescence: f32;\n#endif\nfn getIridescence() {\n\tvar iridescence = 1.0;\n\t#ifdef STD_IRIDESCENCE_CONSTANT\n\tiridescence = iridescence * uniform.material_iridescence;\n\t#endif\n\t#ifdef STD_IRIDESCENCE_TEXTURE\n\tiridescence = iridescence * textureSampleBias({STD_IRIDESCENCE_TEXTURE_NAME}, {STD_IRIDESCENCE_TEXTURE_NAME}Sampler, {STD_IRIDESCENCE_TEXTURE_UV}, uniform.textureBias).{STD_IRIDESCENCE_TEXTURE_CHANNEL};\n\t#endif\n\tdIridescence = iridescence; \n}\n`;\n\nvar iridescenceThickness_default2 = `\nuniform material_iridescenceThicknessMax: f32;\n#ifdef STD_IRIDESCENCETHICKNESS_TEXTURE\n\tuniform material_iridescenceThicknessMin: f32;\n#endif\nfn getIridescenceThickness() {\n\t#ifdef STD_IRIDESCENCETHICKNESS_TEXTURE\n\t\tvar blend: f32 = textureSampleBias({STD_IRIDESCENCETHICKNESS_TEXTURE_NAME}, {STD_IRIDESCENCETHICKNESS_TEXTURE_NAME}Sampler, {STD_IRIDESCENCETHICKNESS_TEXTURE_UV}, uniform.textureBias).{STD_IRIDESCENCETHICKNESS_TEXTURE_CHANNEL};\n\t\tvar iridescenceThickness: f32 = mix(uniform.material_iridescenceThicknessMin, uniform.material_iridescenceThicknessMax, blend);\n\t#else\n\t\tvar iridescenceThickness: f32 = uniform.material_iridescenceThicknessMax;\n\t#endif\n\tdIridescenceThickness = iridescenceThickness; \n}\n`;\n\nvar ior_default2 = `\n#ifdef STD_IOR_CONSTANT\n\tuniform material_refractionIndex: f32;\n#endif\nfn getIor() {\n#ifdef STD_IOR_CONSTANT\n\tdIor = uniform.material_refractionIndex;\n#else\n\tdIor = 1.0 / 1.5;\n#endif\n}\n`;\n\nvar lightDeclaration_default2 = `\n#if defined(LIGHT{i})\n\tuniform light{i}_color: vec3f;\n\t#if LIGHT{i}TYPE == DIRECTIONAL\n\t\tuniform light{i}_direction: vec3f;\n\t#else\n\t\t#define LIT_CODE_LIGHTS_POINT\n\t\tuniform light{i}_position: vec3f;\n\t\tuniform light{i}_radius: f32;\n\t\t#if LIGHT{i}TYPE == SPOT\n\t\t\t#define LIT_CODE_LIGHTS_SPOT\n\t\t\tuniform light{i}_direction: vec3f;\n\t\t\tuniform light{i}_innerConeAngle: f32;\n\t\t\tuniform light{i}_outerConeAngle: f32;\n\t\t#endif\n\t#endif\n\t#if LIGHT{i}SHAPE != PUNCTUAL\n\t\t#define LIT_CODE_FALLOFF_SQUARED\n\t\t#if LIGHT{i}TYPE == DIRECTIONAL\n\t\t\tuniform light{i}_position: vec3f;\n\t\t#endif\n\t\tuniform light{i}_halfWidth: vec3f;\n\t\tuniform light{i}_halfHeight: vec3f;\n\t#else\n\t\t#if LIGHT{i}FALLOFF == LINEAR\n\t\t\t#define LIT_CODE_FALLOFF_LINEAR\n\t\t#endif\n\t\t#if LIGHT{i}FALLOFF == INVERSESQUARED\n\t\t\t#define LIT_CODE_FALLOFF_SQUARED\n\t\t#endif\n\t#endif\n\t#if defined(LIGHT{i}CASTSHADOW)\n\t\t#if LIGHT{i}TYPE != OMNI\n\t\t\tuniform light{i}_shadowMatrix: mat4x4f;\n\t\t#endif\n\t\tuniform light{i}_shadowIntensity: f32;\n\t\tuniform light{i}_shadowParams: vec4f;\n\t\t#if LIGHT{i}SHADOWTYPE == PCSS_32F\n\t\t\tuniform light{i}_shadowSearchArea: f32;\n\t\t\tuniform light{i}_cameraParams: vec4f;\n\t\t\t#if LIGHT{i}TYPE == DIRECTIONAL\n\t\t\t\tuniform light{i}_softShadowParams: vec4f;\n\t\t\t\tuniform light{i}_shadowCascadeRadii: vec4f;\n\t\t\t#endif\n\t\t#endif\n\t\t#if LIGHT{i}TYPE == DIRECTIONAL\n\t\t\tuniform light{i}_shadowMatrixPalette: array<mat4x4f, 4>;\n\t\t\tuniform light{i}_shadowCascadeDistances: vec4f;\n\t\t\tuniform light{i}_shadowCascadeCount: i32;\n\t\t\tuniform light{i}_shadowCascadeBlend: f32;\n\t\t#endif\n\t\t#if LIGHT{i}TYPE == OMNI\n\t\t\tNOT SUPPORTED\n\t\t#else\n\t\t\t#if defined(LIGHT{i}SHADOW_PCF)\n\t\t\t\tvar light{i}_shadowMap: texture_depth_2d;\n\t\t\t\tvar light{i}_shadowMapSampler: sampler_comparison;\n\t\t\t#else\n\t\t\t\tvar light{i}_shadowMap: texture_2d<f32>;\n\t\t\t\tvar light{i}_shadowMapSampler: sampler;\n\t\t\t#endif\n\t\t#endif\n\t#endif\n\t#if defined(LIGHT{i}COOKIE)\n\t\t#define LIT_CODE_COOKIE\n\t\t#if LIGHT{i}TYPE == OMNI\n\t\t\tNOT SUPPORTED\n\t\t#endif\n\t\t#if LIGHT{i}TYPE == SPOT\n\t\t\tNOT SUPPORTED\n\t\t#endif\n\t#endif\n#endif\n`;\n\nvar lightDiffuseLambert_default2 = `\nfn getLightDiffuse(worldNormal: vec3f, viewDir: vec3f, lightDirNorm: vec3f) -> f32 {\n\treturn max(dot(worldNormal, -lightDirNorm), 0.0);\n}\n`;\n\nvar lightDirPoint_default2 = `\nfn evalOmniLight(lightPosW: vec3f) -> vec3f {\n\treturn vPositionW - lightPosW;\n}\n`;\n\nvar lightEvaluation_default2 = `\n#if defined(LIGHT{i})\n\tevaluateLight{i}(\n\t\t#if defined(LIT_IRIDESCENCE)\n\t\t\tiridescenceFresnel\n\t\t#endif\n\t);\n#endif\n`;\n\nvar lightFunctionLight_default2 = `\n#if defined(LIGHT{i})\nfn evaluateLight{i}(\n\t#if defined(LIT_IRIDESCENCE)\n\t\tiridescenceFresnel: vec3f\n\t#endif\n) {\n\tvar lightColor: vec3f = uniform.light{i}_color;\n\t#if LIGHT{i}TYPE == DIRECTIONAL && !defined(LIT_SHADOW_CATCHER)\n\t\tif (all(lightColor == vec3f(0.0, 0.0, 0.0))) {\n\t\t\treturn;\n\t\t}\n\t#endif\n\t#if LIGHT{i}TYPE == DIRECTIONAL\n\t\tdLightDirNormW = uniform.light{i}_direction;\n\t\tdAtten = 1.0;\n\t#else\n\t\tvar lightDirW: vec3f = evalOmniLight(uniform.light{i}_position);\n\t\tdLightDirNormW = normalize(lightDirW);\n\t\t#if defined(LIGHT{i}COOKIE)\n\t\t\t#if LIGHT{i}TYPE == SPOT\n\t\t\t\t#ifdef LIGHT{i}COOKIE_FALLOFF\n\t\t\t\t\t#ifdef LIGHT{i}COOKIE_TRANSFORM\n\t\t\t\t\t\tvar cookieAttenuation: vec3f = getCookie2DXform(uniform.light{i}_cookie, uniform.light{i}_shadowMatrix, uniform.light{i}_cookieIntensity, uniform.light{i}_cookieMatrix, uniform.light{i}_cookieOffset).{LIGHT{i}COOKIE_CHANNEL};\n\t\t\t\t\t#else\n\t\t\t\t\t\tvar cookieAttenuation: vec3f = getCookie2D(uniform.light{i}_cookie, uniform.light{i}_shadowMatrix, uniform.light{i}_cookieIntensity).{LIGHT{i}COOKIE_CHANNEL};\n\t\t\t\t\t#endif\n\t\t\t\t#else\n\t\t\t\t\t#ifdef LIGHT{i}COOKIE_TRANSFORM\n\t\t\t\t\t\tvar cookieAttenuation: vec3f = getCookie2DClipXform(uniform.light{i}_cookie, uniform.light{i}_shadowMatrix, uniform.light{i}_cookieIntensity, uniform.light{i}_cookieMatrix, uniform.light{i}_cookieOffset).{LIGHT{i}COOKIE_CHANNEL};\n\t\t\t\t\t#else\n\t\t\t\t\t\tvar cookieAttenuation: vec3f = getCookie2DClip(uniform.light{i}_cookie, uniform.light{i}_shadowMatrix, uniform.light{i}_cookieIntensity).{LIGHT{i}COOKIE_CHANNEL};\n\t\t\t\t\t#endif\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t\t#if LIGHT{i}TYPE == OMNI\n\t\t\t\tvar cookieAttenuation: vec3f = getCookieCube(uniform.light{i}_cookie, uniform.light{i}_shadowMatrix, uniform.light{i}_cookieIntensity).{LIGHT{i}COOKIE_CHANNEL};\n\t\t\t#endif\n\t\t\tlightColor = lightColor * cookieAttenuation;\n\t\t#endif\n\t\t#if LIGHT{i}SHAPE == PUNCTUAL\n\t\t\t#if LIGHT{i}FALLOFF == LINEAR\n\t\t\t\tdAtten = getFalloffLinear(uniform.light{i}_radius, lightDirW);\n\t\t\t#else\n\t\t\t\tdAtten = getFalloffInvSquared(uniform.light{i}_radius, lightDirW);\n\t\t\t#endif\n\t\t#else\n\t\t\tdAtten = getFalloffWindow(uniform.light{i}_radius, lightDirW);\n\t\t#endif\n\t\t#if LIGHT{i}TYPE == SPOT\n\t\t\t#if !defined(LIGHT{i}COOKIE) || defined(LIGHT{i}COOKIE_FALLOFF)\n\t\t\t\tdAtten = dAtten * getSpotEffect(uniform.light{i}_direction, uniform.light{i}_innerConeAngle, uniform.light{i}_outerConeAngle, dLightDirNormW);\n\t\t\t#endif\n\t\t#endif\n\t#endif\n\tif (dAtten < 0.00001) {\n\t\treturn;\n\t}\n\t#if LIGHT{i}SHAPE != PUNCTUAL\n\t\t#if LIGHT{i}SHAPE == RECT\n\t\t\tcalcRectLightValues(uniform.light{i}_position, uniform.light{i}_halfWidth, uniform.light{i}_halfHeight);\n\t\t#elif LIGHT{i}SHAPE == DISK\n\t\t\tcalcDiskLightValues(uniform.light{i}_position, uniform.light{i}_halfWidth, uniform.light{i}_halfHeight);\n\t\t#elif LIGHT{i}SHAPE == SPHERE\n\t\t\tcalcSphereLightValues(uniform.light{i}_position, uniform.light{i}_halfWidth, uniform.light{i}_halfHeight);\n\t\t#endif\n\t#endif\n\t#if LIGHT{i}SHAPE != PUNCTUAL\n\t\t#if LIGHT{i}TYPE == DIRECTIONAL\n\t\t\tvar attenDiffuse: f32 = getLightDiffuse(litArgs_worldNormal, dViewDirW, dLightDirNormW);\n\t\t#else\n\t\t\t#if LIGHT{i}SHAPE == RECT\n\t\t\t\tvar attenDiffuse: f32 = getRectLightDiffuse(litArgs_worldNormal, dViewDirW, lightDirW, dLightDirNormW) * 16.0;\n\t\t\t#elif LIGHT{i}SHAPE == DISK\n\t\t\t\tvar attenDiffuse: f32 = getDiskLightDiffuse(litArgs_worldNormal, dViewDirW, lightDirW, dLightDirNormW) * 16.0;\n\t\t\t#elif LIGHT{i}SHAPE == SPHERE\n\t\t\t\tvar attenDiffuse: f32 = getSphereLightDiffuse(litArgs_worldNormal, dViewDirW, lightDirW, dLightDirNormW) * 16.0;\n\t\t\t#endif\n\t\t#endif\n\t#else\n\t\tdAtten = dAtten * getLightDiffuse(litArgs_worldNormal, vec3(0.0), dLightDirNormW);\n\t#endif\n\t#ifdef LIGHT{i}CASTSHADOW\n\t\t#if LIGHT{i}TYPE == DIRECTIONAL\n\t\t\tvar shadow: f32 = getShadow{i}(vec3(0.0));\n\t\t#else\n\t\t\tvar shadow: f32 = getShadow{i}(lightDirW);\n\t\t#endif\n\t\tshadow = mix(1.0, shadow, uniform.light{i}_shadowIntensity);\n\t\tdAtten = dAtten * shadow;\n\t\t#if defined(LIT_SHADOW_CATCHER) && LIGHT{i}TYPE == DIRECTIONAL\n\t\t\tdShadowCatcher = dShadowCatcher * shadow;\n\t\t#endif\t\t\t\n\t#endif\n\t#if defined(STD_PARALLAX_SELF_SHADOW) && LIGHT{i}TYPE == DIRECTIONAL\n\t\tdAtten = dAtten * getParallaxSelfShadow(dLightDirNormW);\n\t#endif\n\t#if LIGHT{i}SHAPE != PUNCTUAL\n\t\t#ifdef LIT_SPECULAR\n\t\t\tdDiffuseLight = dDiffuseLight + (((attenDiffuse * dAtten) * lightColor) * (1.0 - dLTCSpecFres));\n\t\t#else\n\t\t\tdDiffuseLight = dDiffuseLight + ((attenDiffuse * dAtten) * lightColor);\n\t\t#endif\t\t\t\t\t\t\n\t#else\n\t\t#if defined(AREA_LIGHTS) && defined(LIT_SPECULAR)\n\t\t\tdDiffuseLight = dDiffuseLight + ((dAtten * lightColor) * (1.0 - litArgs_specularity));\n\t\t#else\n\t\t\tdDiffuseLight = dDiffuseLight + (dAtten * lightColor);\n\t\t#endif\n\t#endif\n\t#ifdef LIGHT{i}AFFECT_SPECULARITY\n\t\t#if LIGHT{i}SHAPE != PUNCTUAL\n\t\t\t#ifdef LIT_CLEARCOAT\n\t\t\t\t#if LIGHT{i}SHAPE == RECT\n\t\t\t\t\tccSpecularLight = ccSpecularLight + (ccLTCSpecFres * getRectLightSpecular(litArgs_clearcoat_worldNormal, dViewDirW) * dAtten * lightColor);\n\t\t\t\t#elif LIGHT{i}SHAPE == DISK\n\t\t\t\t\tccSpecularLight = ccSpecularLight + (ccLTCSpecFres * getDiskLightSpecular(litArgs_clearcoat_worldNormal, dViewDirW) * dAtten * lightColor);\n\t\t\t\t#elif LIGHT{i}SHAPE == SPHERE\n\t\t\t\t\tccSpecularLight = ccSpecularLight + (ccLTCSpecFres * getSphereLightSpecular(litArgs_clearcoat_worldNormal, dViewDirW) * dAtten * lightColor);\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t\t#ifdef LIT_SPECULAR\n\t\t\t\t#if LIGHT{i}SHAPE == RECT\n\t\t\t\t\tdSpecularLight = dSpecularLight + (dLTCSpecFres * getRectLightSpecular(litArgs_worldNormal, dViewDirW) * dAtten * lightColor);\n\t\t\t\t#elif LIGHT{i}SHAPE == DISK\n\t\t\t\t\tdSpecularLight = dSpecularLight + (dLTCSpecFres * getDiskLightSpecular(litArgs_worldNormal, dViewDirW) * dAtten * lightColor);\n\t\t\t\t#elif LIGHT{i}SHAPE == SPHERE\n\t\t\t\t\tdSpecularLight = dSpecularLight + (dLTCSpecFres * getSphereLightSpecular(litArgs_worldNormal, dViewDirW) * dAtten * lightColor);\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t#else\n\t\t\t#if LIGHT{i}TYPE == DIRECTIONAL && LIT_FRESNEL_MODEL != NONE\n\t\t\t\t#define LIGHT{i}FRESNEL\n\t\t\t#endif\n\t\t\t#ifdef LIT_SPECULAR\n\t\t\t\tvar halfDirW: vec3f = normalize(-dLightDirNormW + dViewDirW);\n\t\t\t#endif\n\t\t\t#ifdef LIT_CLEARCOAT\n\t\t\t\tvar lightspecularCC: vec3f = getLightSpecular(halfDirW, ccReflDirW, litArgs_clearcoat_worldNormal, dViewDirW, dLightDirNormW, litArgs_clearcoat_gloss, dTBN) * dAtten * lightColor;\n\t\t\t\t#ifdef LIGHT{i}FRESNEL\n\t\t\t\t\tlightspecularCC = lightspecularCC * getFresnelCC(dot(dViewDirW, halfDirW));\n\t\t\t\t#endif\n\t\t\t\tccSpecularLight = ccSpecularLight + lightspecularCC;\n\t\t\t#endif\n\t\t\t#ifdef LIT_SHEEN\n\t\t\t\tsSpecularLight = sSpecularLight + (getLightSpecularSheen(halfDirW, litArgs_worldNormal, dViewDirW, dLightDirNormW, litArgs_sheen_gloss) * dAtten * lightColor);\n\t\t\t#endif\n\t\t\t#ifdef LIT_SPECULAR\n\t\t\t\tvar lightSpecular: vec3f = getLightSpecular(halfDirW, dReflDirW, litArgs_worldNormal, dViewDirW, dLightDirNormW, litArgs_gloss, dTBN) * dAtten * lightColor;\n\t\t\t\t#ifdef LIGHT{i}FRESNEL\n\t\t\t\t\t#if defined(LIT_IRIDESCENCE)\n\t\t\t\t\t\tlightSpecular = lightSpecular * getFresnel(dot(dViewDirW, halfDirW), litArgs_gloss, litArgs_specularity, iridescenceFresnel, litArgs_iridescence_intensity);\n\t\t\t\t\t#else\n\t\t\t\t\t\tlightSpecular = lightSpecular * getFresnel(dot(dViewDirW, halfDirW), litArgs_gloss, litArgs_specularity);\n\t\t\t\t\t#endif\n\t\t\t\t#else\n\t\t\t\t\tlightSpecular = lightSpecular * litArgs_specularity;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\tdSpecularLight = dSpecularLight + lightSpecular;\n\t\t\t#endif\n\t\t#endif\n\t#endif\n}\n#endif\n`;\n\nvar lightFunctionShadow_default2 = `\n#ifdef LIGHT{i}CASTSHADOW\n\t#ifdef LIGHT{i}_SHADOW_SAMPLE_POINT\n\t\tfn getShadowSampleCoordOmni{i}(shadowParams: vec4f, worldPosition: vec3f, lightPos: vec3f, lightDir: ptr<function, vec3f>, lightDirNorm: vec3f, normal: vec3f) -> vec3f {\n\t\t\t#ifdef LIGHT{i}_SHADOW_SAMPLE_NORMAL_OFFSET\n\t\t\t\tlet distScale: f32 = length(*lightDir);\n\t\t\t\tvar surfacePosition = worldPosition + normal * shadowParams.y * clamp(1.0 - dot(normal, -lightDirNorm), 0.0, 1.0) * distScale;\n\t\t\t\t*lightDir = surfacePosition - lightPos;\n\t\t\t#endif\n\t\t\treturn *lightDir;\n\t\t}\n\t#endif\n\t#ifndef LIGHT{i}_SHADOW_SAMPLE_POINT\n\t\tfn getShadowSampleCoord{i}(shadowTransform: mat4x4f, shadowParams: vec4f, worldPosition: vec3f, lightPos: vec3f, lightDir: ptr<function, vec3f>, lightDirNorm: vec3f, normal: vec3f) -> vec3f {\n\t\t\tvar surfacePosition = worldPosition;\n\t\t\t#ifdef LIGHT{i}_SHADOW_SAMPLE_SOURCE_ZBUFFER\n\t\t\t\t#ifdef LIGHT{i}_SHADOW_SAMPLE_NORMAL_OFFSET\n\t\t\t\t\tsurfacePosition = surfacePosition + normal * shadowParams.y;\n\t\t\t\t#endif\n\t\t\t#else\n\t\t\t\t#ifdef LIGHT{i}_SHADOW_SAMPLE_NORMAL_OFFSET\n\t\t\t\t\t#ifdef LIGHT{i}_SHADOW_SAMPLE_ORTHO\n\t\t\t\t\t\tvar distScale: f32 = 1.0;\n\t\t\t\t\t#else\n\t\t\t\t\t\tvar distScale: f32 = abs(dot(worldPosition - lightPos, lightDirNorm));\n\t\t\t\t\t#endif\n\t\t\t\t\tsurfacePosition = surfacePosition + normal * shadowParams.y * clamp(1.0 - dot(normal, -lightDirNorm), 0.0, 1.0) * distScale;\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t\tvar positionInShadowSpace: vec4f = shadowTransform * vec4f(surfacePosition, 1.0);\n\t\t\t#ifdef LIGHT{i}_SHADOW_SAMPLE_ORTHO\n\t\t\t\tpositionInShadowSpace.z = saturate(positionInShadowSpace.z) - 0.0001;\n\t\t\t#else\n\t\t\t\t#ifdef LIGHT{i}_SHADOW_SAMPLE_SOURCE_ZBUFFER\n\t\t\t\t\tpositionInShadowSpace.xyz = positionInShadowSpace.xyz / positionInShadowSpace.w;\n\t\t\t\t#else\n\t\t\t\t\tpositionInShadowSpace.xy = positionInShadowSpace.xy / positionInShadowSpace.w;\n\t\t\t\t\tpositionInShadowSpace.z = length(*lightDir) * shadowParams.w;\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t\treturn positionInShadowSpace.xyz;\n\t\t}\n\t#endif\n\tfn getShadow{i}(lightDirW_in: vec3f) -> f32 {\n\t\tvar lightDirArg = lightDirW_in;\n\t\t#if LIGHT{i}TYPE == OMNI\n\t\t\tvar shadowCoord: vec3f = getShadowSampleCoordOmni{i}(uniform.light{i}_shadowParams, vPositionW, uniform.light{i}_position, &lightDirArg, dLightDirNormW, dVertexNormalW);\n\t\t#else\n\t\t\t#ifdef LIGHT{i}_SHADOW_CASCADES\n\t\t\t\tvar cascadeIndex: i32 = getShadowCascadeIndex(uniform.light{i}_shadowCascadeDistances, uniform.light{i}_shadowCascadeCount);\n\t\t\t\t#ifdef LIGHT{i}_SHADOW_CASCADE_BLEND\n\t\t\t\t\tcascadeIndex = ditherShadowCascadeIndex(cascadeIndex, uniform.light{i}_shadowCascadeDistances, uniform.light{i}_shadowCascadeCount, uniform.light{i}_shadowCascadeBlend);\n\t\t\t\t#endif\n\t\t\t\tvar shadowMatrix: mat4x4f = uniform.light{i}_shadowMatrixPalette[cascadeIndex];\n\t\t\t#else\n\t\t\t\tvar shadowMatrix: mat4x4f = uniform.light{i}_shadowMatrix;\n\t\t\t#endif\n\t\t\t#if LIGHT{i}TYPE == DIRECTIONAL\n\t\t\t\tvar shadowCoord: vec3f = getShadowSampleCoord{i}(shadowMatrix, uniform.light{i}_shadowParams, vPositionW, vec3f(0.0), &lightDirArg, dLightDirNormW, dVertexNormalW);\n\t\t\t#else\n\t\t\t\tvar shadowCoord: vec3f = getShadowSampleCoord{i}(shadowMatrix, uniform.light{i}_shadowParams, vPositionW, uniform.light{i}_position, &lightDirArg, dLightDirNormW, dVertexNormalW);\n\t\t\t#endif\n\t\t#endif\n\t\t#if LIGHT{i}TYPE == DIRECTIONAL\n\t\t\tshadowCoord = fadeShadow(shadowCoord, uniform.light{i}_shadowCascadeDistances);\n\t\t#endif\n\t\t#if LIGHT{i}TYPE == DIRECTIONAL\n\t\t\t#if LIGHT{i}SHADOWTYPE == VSM_16F\n\t\t\t\treturn getShadowVSM16(light{i}_shadowMap, light{i}_shadowMapSampler, shadowCoord, uniform.light{i}_shadowParams, 5.54);\n\t\t\t#endif\n\t\t\t#if LIGHT{i}SHADOWTYPE == VSM_32F\n\t\t\t\treturn getShadowVSM32(light{i}_shadowMap, light{i}_shadowMapSampler, shadowCoord, uniform.light{i}_shadowParams, 15.0);\n\t\t\t#endif\n\t\t\t#if LIGHT{i}SHADOWTYPE == PCSS_32F\n\t\t\t\t#if LIGHT{i}SHAPE != PUNCTUAL\n\t\t\t\t\tlet shadowSearchArea = vec2f(length(uniform.light{i}_halfWidth), length(uniform.light{i}_halfHeight)) * uniform.light{i}_shadowSearchArea;\n\t\t\t\t\treturn getShadowPCSS(light{i}_shadowMap, light{i}_shadowMapSampler, shadowCoord, uniform.light{i}_shadowParams, uniform.light{i}_cameraParams, shadowSearchArea, lightDirW_in);\n\t\t\t\t#else\n\t\t\t\t\tvar pcssCameraParams: vec4f = uniform.light{i}_cameraParams;\n\t\t\t\t\t#ifdef LIGHT{i}_SHADOW_CASCADES\n\t\t\t\t\t\tvar cascadeRadii: vec4f = uniform.light{i}_shadowCascadeRadii;\n\t\t\t\t\t\tpcssCameraParams.x = cascadeRadii[cascadeIndex];\n\t\t\t\t\t#endif\n\t\t\t\t\treturn getShadowPCSS(light{i}_shadowMap, light{i}_shadowMapSampler, shadowCoord, uniform.light{i}_shadowParams, pcssCameraParams, uniform.light{i}_softShadowParams, lightDirW_in);\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t\t#if LIGHT{i}SHADOWTYPE == PCF1_16F || LIGHT{i}SHADOWTYPE == PCF1_32F\n\t\t\t\treturn getShadowPCF1x1(light{i}_shadowMap, light{i}_shadowMapSampler, shadowCoord, uniform.light{i}_shadowParams);\n\t\t\t#endif\n\t\t\t#if LIGHT{i}SHADOWTYPE == PCF3_16F || LIGHT{i}SHADOWTYPE == PCF3_32F\n\t\t\t\treturn getShadowPCF3x3(light{i}_shadowMap, light{i}_shadowMapSampler, shadowCoord, uniform.light{i}_shadowParams);\n\t\t\t#endif\n\t\t\t#if LIGHT{i}SHADOWTYPE == PCF5_16F || LIGHT{i}SHADOWTYPE == PCF5_32F\n\t\t\t\treturn getShadowPCF5x5(light{i}_shadowMap, light{i}_shadowMapSampler, shadowCoord, uniform.light{i}_shadowParams);\n\t\t\t#endif\n\t\t#endif\n\t\t#if LIGHT{i}TYPE == SPOT\n\t\t\t#if LIGHT{i}SHADOWTYPE == VSM_16F\n\t\t\t\treturn getShadowSpotVSM16(light{i}_shadowMap, light{i}_shadowMapSampler, shadowCoord, uniform.light{i}_shadowParams, 5.54, lightDirW_in);\n\t\t\t#endif\n\t\t\t#if LIGHT{i}SHADOWTYPE == VSM_32F\n\t\t\t\treturn getShadowSpotVSM32(light{i}_shadowMap, light{i}_shadowMapSampler, shadowCoord, uniform.light{i}_shadowParams, 15.0, lightDirW_in);\n\t\t\t#endif\n\t\t\t#if LIGHT{i}SHADOWTYPE == PCSS_32F\n\t\t\t\t#if LIGHT{i}SHAPE != PUNCTUAL\n\t\t\t\t\tvar shadowSearchArea: vec2f = vec2f(length(uniform.light{i}_halfWidth), length(uniform.light{i}_halfHeight)) * uniform.light{i}_shadowSearchArea;\n\t\t\t\t#else\n\t\t\t\t\tvar shadowSearchArea: vec2f = vec2f(uniform.light{i}_shadowSearchArea);\n\t\t\t\t#endif\n\t\t\t\treturn getShadowSpotPCSS(light{i}_shadowMap, light{i}_shadowMapSampler, shadowCoord, uniform.light{i}_shadowParams, uniform.light{i}_cameraParams, shadowSearchArea, lightDirW_in);\n\t\t\t#endif\n\t\t\t#if LIGHT{i}SHADOWTYPE == PCF1_16F || LIGHT{i}SHADOWTYPE == PCF1_32F\n\t\t\t\treturn getShadowSpotPCF1x1(light{i}_shadowMap, light{i}_shadowMapSampler, shadowCoord, uniform.light{i}_shadowParams);\n\t\t\t#endif\n\t\t\t#if LIGHT{i}SHADOWTYPE == PCF3_16F || LIGHT{i}SHADOWTYPE == PCF3_32F\n\t\t\t\treturn getShadowSpotPCF3x3(light{i}_shadowMap, light{i}_shadowMapSampler, shadowCoord, uniform.light{i}_shadowParams);\n\t\t\t#endif\n\t\t\t#if LIGHT{i}SHADOWTYPE == PCF5_16F || LIGHT{i}SHADOWTYPE == PCF5_32F\n\t\t\t\treturn getShadowSpotPCF5x5(light{i}_shadowMap, light{i}_shadowMapSampler, shadowCoord, uniform.light{i}_shadowParams);\n\t\t\t#endif\n\t\t#endif\n\t\t#if LIGHT{i}TYPE == OMNI\n\t\t\t#if LIGHT{i}SHADOWTYPE == PCSS_32F\n\t\t\t\t var shadowSearchArea: vec2f;\n\t\t\t\t #if LIGHT{i}SHAPE != PUNCTUAL\n\t\t\t\t\tvar shadowSearchArea: vec2f = vec2f(length(uniform.light{i}_halfWidth), length(uniform.light{i}_halfHeight)) * uniform.light{i}_shadowSearchArea;\n\t\t\t\t#else\n\t\t\t\t\tvar shadowSearchArea: vec2f = vec2f(uniform.light{i}_shadowSearchArea);\n\t\t\t\t#endif\n\t\t\t\treturn getShadowOmniPCSS(light{i}_shadowMap, light{i}_shadowMapSampler, shadowCoord, uniform.light{i}_shadowParams, uniform.light{i}_cameraParams, shadowSearchArea, lightDirW_in);\n\t\t\t#endif\n\t\t\t#if LIGHT{i}SHADOWTYPE == PCF1_16F || LIGHT{i}SHADOWTYPE == PCF1_32F\n\t\t\t\treturn getShadowOmniPCF1x1(light{i}_shadowMap, light{i}_shadowMapSampler, shadowCoord, uniform.light{i}_shadowParams, lightDirW_in);\n\t\t\t#endif\n\t\t\t#if LIGHT{i}SHADOWTYPE == PCF3_16F || LIGHT{i}SHADOWTYPE == PCF3_32F\n\t\t\t\treturn getShadowOmniPCF3x3(light{i}_shadowMap, light{i}_shadowMapSampler, shadowCoord, uniform.light{i}_shadowParams, lightDirW_in);\n\t\t\t#endif\n\t\t#endif\n\t}\n#endif\n`;\n\nvar lighting_default2 = `\n#ifdef LIT_CLUSTERED_LIGHTS\n\t#define LIT_CODE_FALLOFF_LINEAR\n\t#define LIT_CODE_FALLOFF_SQUARED\n\t#define LIT_CODE_LIGHTS_POINT\n\t#define LIT_CODE_LIGHTS_SPOT\n#endif\n#ifdef AREA_LIGHTS\n\tvar areaLightsLutTex1: texture_2d<f32>;\n\tvar areaLightsLutTex1Sampler: sampler;\n\tvar areaLightsLutTex2: texture_2d<f32>;\n\tvar areaLightsLutTex2Sampler: sampler;\n#endif\n#ifdef LIT_LIGHTING\n\t#include \"lightDiffuseLambertPS\"\n\t#if defined(AREA_LIGHTS) || defined(LIT_CLUSTERED_AREA_LIGHTS)\n\t\t#include \"ltcPS\"\n\t#endif\n#endif\n#ifdef SHADOW_DIRECTIONAL\n\t#include \"shadowCascadesPS\"\n#endif\n#if defined(SHADOW_KIND_PCF1)\n\t#include \"shadowPCF1PS\"\n#endif\n#if defined(SHADOW_KIND_PCF3)\n\t#include \"shadowPCF3PS\"\n#endif\n#if defined(SHADOW_KIND_PCF5)\n\t#include \"shadowPCF5PS\"\n#endif\n#if defined(SHADOW_KIND_PCSS)\n\t#include \"linearizeDepthPS\"\n\t#include \"shadowSoftPS\"\n#endif\n#if defined(SHADOW_KIND_VSM)\n\t#include \"shadowEVSMPS\"\n#endif\n#ifdef LIT_CODE_FALLOFF_LINEAR\n\t#include \"falloffLinearPS\"\n#endif\n#ifdef LIT_CODE_FALLOFF_SQUARED\n\t#include \"falloffInvSquaredPS\"\n#endif\n#ifdef LIT_CODE_LIGHTS_POINT\n\t#include \"lightDirPointPS\"\n#endif\n#ifdef LIT_CODE_LIGHTS_SPOT\n\t#include \"spotPS\"\n#endif\n#ifdef LIT_CODE_COOKIE\n\t#include \"cookiePS\"\n#endif\n#ifdef LIT_CLUSTERED_LIGHTS\n\t#include \"clusteredLightPS\"\n#endif\n#ifdef LIGHT_COUNT > 0\n\t#include \"lightFunctionShadowPS, LIGHT_COUNT\"\n\t#include \"lightFunctionLightPS, LIGHT_COUNT\"\n#endif\n`;\n\nvar lightmapAdd_default2 = `\nfn addLightMap(\n\tlightmap: vec3f,\n\tdir: vec3f,\n\tworldNormal: vec3f,\n\tviewDir: vec3f,\n\treflectionDir: vec3f,\n\tgloss: f32,\n\tspecularity: vec3f,\n\tvertexNormal: vec3f,\n\ttbn: mat3x3f\n#if defined(LIT_IRIDESCENCE)\n\t, iridescenceFresnel: vec3f,\n\tiridescenceIntensity: f32\n#endif\n) {\n\t#if defined(LIT_SPECULAR) && defined(LIT_DIR_LIGHTMAP)\n\t\tif (dot(dir, dir) < 0.0001) {\n\t\t\t\tdDiffuseLight = dDiffuseLight + lightmap;\n\t\t} else {\n\t\t\tlet vlight: f32 = saturate(dot(dir, -vertexNormal));\n\t\t\tlet flight: f32 = saturate(dot(dir, -worldNormal));\n\t\t\tlet nlight: f32 = (flight / max(vlight, 0.01)) * 0.5;\n\t\t\tdDiffuseLight = dDiffuseLight + lightmap * nlight * 2.0;\n\t\t\tlet halfDir: vec3f = normalize(-dir + viewDir);\n\t\t\tvar specularLight: vec3f = lightmap * getLightSpecular(halfDir, reflectionDir, worldNormal, viewDir, dir, gloss, tbn);\n\t\t\t#ifdef LIT_SPECULAR_FRESNEL\n\t\t\t\tspecularLight = specularLight *\n\t\t\t\t\tgetFresnel(dot(viewDir, halfDir),\n\t\t\t\t\tgloss,\n\t\t\t\t\tspecularity\n\t\t\t\t#if defined(LIT_IRIDESCENCE)\n\t\t\t\t\t, iridescenceFresnel,\n\t\t\t\t\tiridescenceIntensity\n\t\t\t\t#endif\n\t\t\t\t\t);\n\t\t\t#endif\n\t\t\tdSpecularLight = dSpecularLight + specularLight;\n\t\t}\n\t#else\n\t\tdDiffuseLight = dDiffuseLight + lightmap;\n\t#endif\n}\n`;\n\nvar lightmap_default2 = `\n#ifdef STD_LIGHTMAP_DIR\n\tvar<private> dLightmapDir: vec3f;\n\tvar texture_dirLightMap: texture_2d<f32>;\n\tvar texture_dirLightMapSampler: sampler;\n#endif\nfn getLightMap() {\n\tdLightmap = vec3f(1.0);\n\t#ifdef STD_LIGHT_TEXTURE\n\t\tdLightmap = dLightmap * {STD_LIGHT_TEXTURE_DECODE}(textureSampleBias({STD_LIGHT_TEXTURE_NAME}, {STD_LIGHT_TEXTURE_NAME}Sampler, {STD_LIGHT_TEXTURE_UV}, uniform.textureBias)).{STD_LIGHT_TEXTURE_CHANNEL};\n\t\t#ifdef STD_LIGHTMAP_DIR\n\t\t\tvar dir: vec3f = textureSampleBias(texture_dirLightMap, texture_dirLightMapSampler, {STD_LIGHT_TEXTURE_UV}, uniform.textureBias).xyz * 2.0 - 1.0;\n\t\t\tvar dirDot = dot(dir, dir);\n\t\t\tdLightmapDir = select(vec3(0.0), dir / sqrt(dirDot), dirDot > 0.001);\n\t\t#endif\n\t#endif\n\t#ifdef STD_LIGHT_VERTEX\n\t\tdLightmap = dLightmap * saturate(vVertexColor.{STD_LIGHT_VERTEX_CHANNEL});\n\t#endif\n}\n`;\n\nvar lightSpecularAnisoGGX_default2 = `\nfn calcLightSpecular(gloss: f32, worldNormal: vec3f, viewDir: vec3f, h: vec3f, lightDirNorm: vec3f, tbn: mat3x3f) -> f32 {\n\tlet PI: f32 = 3.141592653589793;\n\tlet roughness: f32 = max((1.0 - gloss) * (1.0 - gloss), 0.001);\n\tlet alphaRoughness: f32 = roughness * roughness;\n\tlet anisotropy: f32 = dAnisotropy;\n\tlet direction: vec2f = dAnisotropyRotation;\n\tlet at: f32 = mix(alphaRoughness, 1.0, anisotropy * anisotropy);\n\tlet ab: f32 = clamp(alphaRoughness, 0.001, 1.0);\n\tlet anisotropicT: vec3f = normalize(tbn * vec3f(direction, 0.0));\n\tlet anisotropicB: vec3f = normalize(cross(tbn[2], anisotropicT));\n\tlet NoH: f32 = dot(worldNormal, h);\n\tlet ToH: f32 = dot(anisotropicT, h);\n\tlet BoH: f32 = dot(anisotropicB, h);\n\tlet a2: f32 = at * ab;\n\tlet v: vec3f = vec3f(ab * ToH, at * BoH, a2 * NoH);\n\tlet v2: f32 = dot(v, v);\n\tlet w2: f32 = a2 / v2;\n\tlet D: f32 = a2 * w2 * w2 * (1.0 / PI);\n\tlet ToV: f32 = dot(anisotropicT, viewDir);\n\tlet BoV: f32 = dot(anisotropicB, viewDir);\n\tlet ToL: f32 = dot(anisotropicT, -lightDirNorm);\n\tlet BoL: f32 = dot(anisotropicB, -lightDirNorm);\n\tlet NoV: f32 = dot(worldNormal, viewDir);\n\tlet NoL: f32 = dot(worldNormal, -lightDirNorm);\n\tlet lambdaV: f32 = NoL * length(vec3f(at * ToV, ab * BoV, NoV));\n\tlet lambdaL: f32 = NoV * length(vec3f(at * ToL, ab * BoL, NoL));\n\tlet G: f32 = 0.5 / (lambdaV + lambdaL);\n\treturn D * G;\n}\nfn getLightSpecular(h: vec3f, reflDir: vec3f, worldNormal: vec3f, viewDir: vec3f, lightDirNorm: vec3f, gloss: f32, tbn: mat3x3f) -> f32 {\n\treturn calcLightSpecular(gloss, worldNormal, viewDir, h, lightDirNorm, tbn);\n}\n`;\n\nvar lightSpecularGGX_default2 = `\nfn calcLightSpecular(gloss: f32, worldNormal: vec3f, viewDir: vec3f, h: vec3f, lightDirNorm: vec3f) -> f32 {\n\tconst PI: f32 = 3.141592653589793;\n\tlet roughness: f32 = max((1.0 - gloss) * (1.0 - gloss), 0.001);\n\tlet alpha: f32 = roughness * roughness;\n\tlet NoH: f32 = max(dot(worldNormal, h), 0.0);\n\tlet NoV: f32 = max(dot(worldNormal, viewDir), 0.0);\n\tlet NoL: f32 = max(dot(worldNormal, -lightDirNorm), 0.0);\n\tlet NoH2: f32 = NoH * NoH;\n\tlet denom: f32 = NoH2 * (alpha - 1.0) + 1.0;\n\tlet D: f32 = alpha / (PI * denom * denom);\n\tlet alpha2: f32 = alpha * alpha;\n\tlet lambdaV: f32 = NoL * sqrt(NoV * NoV * (1.0 - alpha2) + alpha2);\n\tlet lambdaL: f32 = NoV * sqrt(NoL * NoL * (1.0 - alpha2) + alpha2);\n\tlet G: f32 = 0.5 / max(lambdaV + lambdaL, 0.00001);\n\treturn D * G;\n}\nfn getLightSpecular(h: vec3f, reflDir: vec3f, worldNormal: vec3f, viewDir: vec3f, lightDirNorm: vec3f, gloss: f32, tbn: mat3x3f) -> f32 {\n\treturn calcLightSpecular(gloss, worldNormal, viewDir, h, lightDirNorm);\n}\n`;\n\nvar lightSpecularBlinn_default2 = `\nfn calcLightSpecular(gloss: f32, worldNormal: vec3f, h: vec3f) -> f32 {\n\tlet nh: f32 = max( dot( h, worldNormal ), 0.0 );\n\tvar specPow: f32 = exp2(gloss * 11.0);\n\tspecPow = max(specPow, 0.0001);\n\treturn pow(nh, specPow) * (specPow + 2.0) / 8.0;\n}\nfn getLightSpecular(h: vec3f, reflDir: vec3f, worldNormal: vec3f, viewDir: vec3f, lightDirNorm: vec3f, gloss: f32, tbn: mat3x3f) -> f32 {\n\treturn calcLightSpecular(gloss, worldNormal, h);\n}\n`;\n\nvar lightSheen_default2 = `\nfn sheenD(normal: vec3f, h: vec3f, roughness: f32) -> f32 {\n\tlet PI: f32 = 3.141592653589793;\n\tlet invR: f32 = 1.0 / (roughness * roughness);\n\tvar cos2h: f32 = max(dot(normal, h), 0.0);\n\tcos2h = cos2h * cos2h;\n\tlet sin2h: f32 = max(1.0 - cos2h, 0.0078125);\n\treturn (2.0 + invR) * pow(sin2h, invR * 0.5) / (2.0 * PI);\n}\nfn sheenV(normal: vec3f, viewDir: vec3f, light: vec3f) -> f32 {\n\tlet NoV: f32 = max(dot(normal, viewDir), 0.000001);\n\tlet NoL: f32 = max(dot(normal, light), 0.000001);\n\treturn 1.0 / (4.0 * (NoL + NoV - NoL * NoV));\n}\nfn getLightSpecularSheen(h: vec3f, worldNormal: vec3f, viewDir: vec3f, lightDirNorm: vec3f, sheenGloss: f32) -> f32 {\n\tlet D: f32 = sheenD(worldNormal, h, sheenGloss);\n\tlet V: f32 = sheenV(worldNormal, viewDir, -lightDirNorm);\n\treturn D * V;\n}`;\n\nvar linearizeDepth_default2 = `\n#ifndef LINEARIZE_DEPTH\n#define LINEARIZE_DEPTH\nfn linearizeDepthWithParams(z: f32, cameraParams: vec4f) -> f32 {\n\tif (cameraParams.w == 0.0) {\n\t\treturn (cameraParams.z * cameraParams.y) / (cameraParams.y + z * (cameraParams.z - cameraParams.y));\n\t} else {\n\t\treturn cameraParams.z + z * (cameraParams.y - cameraParams.z);\n\t}\n}\n#ifndef CAMERAPLANES\n\t#define CAMERAPLANES\n\tuniform camera_params: vec4f;\n#endif\nfn linearizeDepth(z: f32) -> f32 {\n\treturn linearizeDepthWithParams(z, uniform.camera_params);\n}\n#endif\n`;\n\nvar litForwardBackend_default2 = `\nfn evaluateBackend() -> FragmentOutput {\n\tvar output: FragmentOutput;\n\t#ifdef LIT_SSAO\n\t\tlitArgs_ao = litArgs_ao * textureSampleLevel(ssaoTexture, ssaoTextureSampler, pcPosition.xy * uniform.ssaoTextureSizeInv, 0.0).r;\n\t#endif\n\t#ifdef LIT_NEEDS_NORMAL\n\t\t#ifdef LIT_SPECULAR\n\t\t\tgetReflDir(litArgs_worldNormal, dViewDirW, litArgs_gloss, dTBN);\n\t\t#endif\n\t\t#ifdef LIT_CLEARCOAT\n\t\t\tccReflDirW = normalize(-reflect(dViewDirW, litArgs_clearcoat_worldNormal));\n\t\t#endif\n\t#endif\n\t#if defined(LIT_SPECULAR_OR_REFLECTION) || defined(LIT_REFRACTION)\n\t\t#ifdef LIT_METALNESS\n\t\t\tvar f0: f32 = 1.0 / litArgs_ior;\n\t\t\tf0 = (f0 - 1.0) / (f0 + 1.0);\n\t\t\tf0 = f0 * f0;\n\t\t\t#ifdef LIT_SPECULARITY_FACTOR\n\t\t\t\tlitArgs_specularity = getSpecularModulate(litArgs_specularity, litArgs_albedo, litArgs_metalness, f0, litArgs_specularityFactor);\n\t\t\t#else\n\t\t\t\tlitArgs_specularity = getSpecularModulate(litArgs_specularity, litArgs_albedo, litArgs_metalness, f0, 1.0);\n\t\t\t#endif\n\t\t\tlitArgs_albedo = getAlbedoModulate(litArgs_albedo, litArgs_metalness);\n\t\t#endif\n\t\t#ifdef LIT_IRIDESCENCE\n\t\t\tvar iridescenceFresnel: vec3f = getIridescenceDiffraction(saturate(dot(dViewDirW, litArgs_worldNormal)), litArgs_specularity, litArgs_iridescence_thickness);\n\t\t#endif\n\t#endif\n\t#ifdef LIT_ADD_AMBIENT\n\t\taddAmbient(litArgs_worldNormal);\n\t\t#ifdef LIT_SPECULAR\n\t\t\tdDiffuseLight = dDiffuseLight * (1.0 - litArgs_specularity);\n\t\t#endif\n\t\t#ifdef LIT_SEPARATE_AMBIENT\n\t\t\tvar dAmbientLight: vec3f = dDiffuseLight;\n\t\t\tdDiffuseLight = vec3(0.0);\n\t\t#endif\n\t#endif\n\t#ifndef LIT_OLD_AMBIENT\n\t\tdDiffuseLight = dDiffuseLight * uniform.material_ambient;\n\t#endif\n\t#ifdef LIT_AO\n\t\t#ifndef LIT_OCCLUDE_DIRECT\n\t\t\toccludeDiffuse(litArgs_ao);\n\t\t#endif\n\t#endif\n\t#ifdef LIT_LIGHTMAP\n\t\taddLightMap(\n\t\t\tlitArgs_lightmap, \n\t\t\tlitArgs_lightmapDir, \n\t\t\tlitArgs_worldNormal, \n\t\t\tdViewDirW, \n\t\t\tdReflDirW, \n\t\t\tlitArgs_gloss, \n\t\t\tlitArgs_specularity, \n\t\t\tdVertexNormalW,\n\t\t\tdTBN\n\t\t#if defined(LIT_IRIDESCENCE)\n\t\t\t, iridescenceFresnel,\n\t\t\tlitArgs_iridescence_intensity\n\t\t#endif\n\t\t);\n\t#endif\n\t#ifdef LIT_LIGHTING || LIT_REFLECTIONS\n\t\t#ifdef LIT_REFLECTIONS\n\t\t\t#ifdef LIT_CLEARCOAT\n\t\t\t\taddReflectionCC(ccReflDirW, litArgs_clearcoat_gloss);\n\t\t\t\n\t\t\t\t#ifdef LIT_SPECULAR_FRESNEL\n\t\t\t\t\tccFresnel = getFresnelCC(dot(dViewDirW, litArgs_clearcoat_worldNormal));\n\t\t\t\t\tccReflection = ccReflection * ccFresnel;\n\t\t\t\t#else\n\t\t\t\t\tccFresnel = 0.0;\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t\t#ifdef LIT_SPECULARITY_FACTOR\n\t\t\t\tccReflection = ccReflection * litArgs_specularityFactor;\n\t\t\t#endif\n\t\t\t#ifdef LIT_SHEEN\n\t\t\t\taddReflectionSheen(litArgs_worldNormal, dViewDirW, litArgs_sheen_gloss);\n\t\t\t#endif\n\t\t\taddReflection(dReflDirW, litArgs_gloss);\n\t\t\t#ifdef LIT_FRESNEL_MODEL\n\t\t\t\tdReflection = vec4f(\n\t\t\t\t\tdReflection.rgb * getFresnel(\n\t\t\t\t\t\tdot(dViewDirW, litArgs_worldNormal),\n\t\t\t\t\t\tlitArgs_gloss,\n\t\t\t\t\t\tlitArgs_specularity\n\t\t\t\t\t#if defined(LIT_IRIDESCENCE)\n\t\t\t\t\t\t, iridescenceFresnel,\n\t\t\t\t\t\tlitArgs_iridescence_intensity\n\t\t\t\t\t#endif\n\t\t\t\t\t\t),\n\t\t\t\t\tdReflection.a\n\t\t\t\t);\n\t\t\t#else\n\t\t\t\tdReflection = vec4f(dReflection.rgb * litArgs_specularity, dReflection.a);\n\t\t\t#endif\n\t\t#endif\n\t\t#ifdef AREA_LIGHTS\n\t\t\tdSpecularLight = dSpecularLight * litArgs_specularity;\n\t\t\t#ifdef LIT_SPECULAR\n\t\t\t\tcalcLTCLightValues(litArgs_gloss, litArgs_worldNormal, dViewDirW, litArgs_specularity, litArgs_clearcoat_gloss, litArgs_clearcoat_worldNormal, litArgs_clearcoat_specularity);\n\t\t\t#endif\n\t\t#endif\n\t\t\n\t\t#ifdef LIGHT_COUNT > 0\n\t\t\t#include \"lightEvaluationPS, LIGHT_COUNT\"\n\t\t#endif\n\t\t#ifdef LIT_CLUSTERED_LIGHTS\n\t\t\taddClusteredLights(litArgs_worldNormal, dViewDirW, dReflDirW,\n\t\t\t\t#if defined(LIT_CLEARCOAT)\n\t\t\t\t\t\tccReflDirW,\n\t\t\t\t#endif\n\t\t\t\t\t\tlitArgs_gloss, litArgs_specularity, dVertexNormalW, dTBN, \n\t\t\t\t#if defined(LIT_IRIDESCENCE)\n\t\t\t\t\t\tiridescenceFresnel,\n\t\t\t\t#endif\n\t\t\t\t\t\tlitArgs_clearcoat_worldNormal, litArgs_clearcoat_gloss, litArgs_sheen_gloss, litArgs_iridescence_intensity\n\t\t\t);\n\t\t#endif\n\t\t#ifdef AREA_LIGHTS\n\t\t\t#ifdef LIT_CLEARCOAT\n\t\t\t\tlitArgs_clearcoat_specularity = 1.0;\n\t\t\t#endif\n\t\t\t#ifdef LIT_SPECULAR\n\t\t\t\tlitArgs_specularity = vec3(1.0);\n\t\t\t#endif\n\t\t#endif\n\t#endif\n\t#ifdef LIT_REFRACTION\n\t\taddRefraction(\n\t\t\tlitArgs_worldNormal,\n\t\t\tdViewDirW,\n\t\t\tlitArgs_thickness,\n\t\t\tlitArgs_gloss,\n\t\t\tlitArgs_specularity,\n\t\t\tlitArgs_albedo,\n\t\t\tlitArgs_transmission,\n\t\t\tlitArgs_ior,\n\t\t\tlitArgs_dispersion\n\t\t\t#if defined(LIT_IRIDESCENCE)\n\t\t\t\t, iridescenceFresnel,\n\t\t\t\tlitArgs_iridescence_intensity\n\t\t\t#endif\n\t\t);\n\t#endif\n\t#ifdef LIT_AO\n\t\t#ifdef LIT_OCCLUDE_DIRECT\n\t\t\toccludeDiffuse(litArgs_ao);\n\t\t#endif\n\t\t#if LIT_OCCLUDE_SPECULAR != NONE\n\t\t\toccludeSpecular(litArgs_gloss, litArgs_ao, litArgs_worldNormal, dViewDirW);\n\t\t#endif\n\t#endif\n\t#if !defined(LIT_OPACITY_FADES_SPECULAR)\n\t\t#if LIT_BLEND_TYPE == NORMAL || LIT_BLEND_TYPE == PREMULTIPLIED\n\t\t\tvar specLum: f32 = dot((dSpecularLight + dReflection.rgb * dReflection.a), vec3f( 0.2126, 0.7152, 0.0722 ));\n\t\t\t#ifdef LIT_CLEARCOAT\n\t\t\t\tspecLum = specLum + dot(ccSpecularLight * litArgs_clearcoat_specularity + ccReflection * litArgs_clearcoat_specularity, vec3f( 0.2126, 0.7152, 0.0722 ));\n\t\t\t#endif\n\t\t\tlitArgs_opacity = clamp(litArgs_opacity + gammaCorrectInput(specLum), 0.0, 1.0);\n\t\t#endif\n\t\tlitArgs_opacity = litArgs_opacity * uniform.material_alphaFade;\n\t#endif\n\t#ifdef LIT_LIGHTMAP_BAKING\n\t\t#ifdef LIT_LIGHTMAP_BAKING_COLOR\n\t\t\t#include \"bakeLmEndPS\"\n\t\t#endif\n\t\t#ifdef LIT_LIGHTMAP_BAKING_DIR\n\t\t\t#include \"bakeDirLmEndPS\"\n\t\t#endif\n\t#else\n\t\t#include \"endPS\"\n\t\t#include \"outputAlphaPS\"\n\t#endif\n\t#ifdef LIT_MSDF\n\t\toutput.color = applyMsdf(output.color);\n\t#endif\n\t#include \"outputPS\"\n\t#include \"debugOutputPS\"\n\t#ifdef LIT_SHADOW_CATCHER\n\t\toutput.color = vec4f(vec3f(dShadowCatcher), output.color.a);\n\t#endif\n\t#include \"outlineOutputPS\"\n\treturn output;\n}\n`;\n\nvar litForwardDeclaration_default2 = `\nvar<private> sReflection: vec3f;\nvar<private> dVertexNormalW: vec3f;\nvar<private> dTangentW: vec3f;\nvar<private> dBinormalW: vec3f;\nvar<private> dViewDirW: vec3f;\nvar<private> dReflDirW: vec3f;\nvar<private> ccReflDirW: vec3f;\nvar<private> dLightDirNormW: vec3f;\nvar<private> dAtten: f32;\nvar<private> dTBN: mat3x3f;\nvar<private> dReflection: vec4f;\nvar<private> dDiffuseLight: vec3f;\nvar<private> dSpecularLight: vec3f;\nvar<private> ccFresnel: f32;\nvar<private> ccReflection: vec3f;\nvar<private> ccSpecularLight: vec3f;\nvar<private> ccSpecularityNoFres: f32;\nvar<private> sSpecularLight: vec3f;\n#ifdef LIT_DISPERSION\n\tuniform material_dispersion: f32;\n#endif\n#ifndef LIT_OPACITY_FADES_SPECULAR\n\tuniform material_alphaFade: f32;\n#endif\n#ifdef LIT_SSAO\n\tvar ssaoTexture : texture_2d<f32>;\n\tvar ssaoTextureSampler : sampler;\n\tuniform ssaoTextureSizeInv: vec2f;\n#endif\n#ifdef LIT_SHADOW_CATCHER\n\tvar<private> dShadowCatcher: f32 = 1.0;\n#endif\n#if LIGHT_COUNT > 0\n\t#include \"lightDeclarationPS, LIGHT_COUNT\"\n#endif\n#ifdef LIT_SPECULAR\n\t#if LIT_FRESNEL_MODEL == NONE && !defined(LIT_REFLECTIONS) && !defined(LIT_DIFFUSE_MAP) \n\t\t#define LIT_OLD_AMBIENT\n\t#endif\n#endif\n#ifdef STD_LIGHTMAP_DIR\n\tuniform bakeDir: f32;\n#endif\n#ifdef LIT_LIGHTMAP_BAKING_ADD_AMBIENT\n\tuniform ambientBakeOcclusionContrast: f32;\n\tuniform ambientBakeOcclusionBrightness: f32;\n#endif\n`;\n\nvar litForwardMain_default2 = `\n#include \"sceneTexturesPS\"\n@fragment\nfn fragmentMain(input: FragmentInput) -> FragmentOutput {\n\t#include \"litUserMainStartPS\"\n\tdReflection = vec4f(0.0);\n\t#ifdef LIT_CLEARCOAT\n\t\tccSpecularLight = vec3f(0.0);\n\t\tccReflection = vec3f(0.0);\n\t#endif\n\t#if LIT_NONE_SLICE_MODE == SLICED\n\t\t#include \"startNineSlicedPS\"\n\t#elif LIT_NONE_SLICE_MODE == TILED\n\t\t#include \"startNineSlicedTiledPS\"\n\t#endif\n\t#ifdef LIT_NEEDS_NORMAL\n\t\t#ifdef FLAT_SHADING\n\t\t\tdVertexNormalW = getFlatNormal(vPositionW);\n\t\t#else\n\t\t\tdVertexNormalW = normalize(vNormalW);\n\t\t#endif\n\t\t#ifdef LIT_TANGENTS\n\t\t\t#if defined(LIT_HEIGHTS) || defined(LIT_USE_NORMALS) || defined(LIT_USE_CLEARCOAT_NORMALS) || defined(LIT_GGX_SPECULAR)\n\t\t\t\tdTangentW = vTangentW;\n\t\t\t\tdBinormalW = vBinormalW;\n\t\t\t#endif\n\t\t#endif\n\t\tgetViewDir();\n\t\t#ifdef LIT_TBN\n\t\t\tgetTBN(dTangentW, dBinormalW, dVertexNormalW);\n\t\t\t#ifdef LIT_TWO_SIDED_LIGHTING\n\t\t\t\thandleTwoSidedLighting();\n\t\t\t#endif\n\t\t#endif\n\t#endif\n\tevaluateFrontend();\n\t#include \"debugProcessFrontendPS\"\n\tvar output: FragmentOutput = evaluateBackend();\n\t#ifdef SCENE_TEXTURE_DEPTH\n\t\twriteSceneTextureDepth(&output, vLinearDepth, 1.0);\n\t#endif\n\t#include \"litUserMainEndPS\"\n\treturn output;\n}\n`;\n\nvar litForwardPostCode_default2 = `\n#ifdef LIT_NEEDS_NORMAL\n\t#include \"cubeMapRotatePS\"\n\t#include \"cubeMapProjectPS\"\n\t#include \"envProcPS\"\n#endif\n#if defined(LIT_SPECULAR_OR_REFLECTION) || defined(LIT_REFRACTION)\n\t#ifdef LIT_METALNESS\n\t\t#include \"metalnessModulatePS\"\n\t#endif\n\t#ifdef LIT_IRIDESCENCE\n\t\t#include \"iridescenceDiffractionPS\"\n\t#endif\n#endif\n#if defined(LIT_SPECULAR_OR_REFLECTION) || defined(LIT_REFRACTION)\n\t#if LIT_FRESNEL_MODEL == SCHLICK\n\t\t#include \"fresnelSchlickPS\"\n\t#endif\n#endif\n#ifdef LIT_AO\n\t#include \"aoDiffuseOccPS\"\n\t#include \"aoSpecOccPS\"\n#endif\n#if LIT_REFLECTION_SOURCE == ENVATLASHQ\n\t#include \"envAtlasPS\"\n\t#include \"reflectionEnvHQPS\"\n#elif LIT_REFLECTION_SOURCE == ENVATLAS\n\t#include \"envAtlasPS\"\n\t#include \"reflectionEnvPS\"\n#elif LIT_REFLECTION_SOURCE == CUBEMAP\n\t#include \"reflectionCubePS\"\n#elif LIT_REFLECTION_SOURCE == SPHEREMAP\n\t#include \"reflectionSpherePS\"\n#endif\n#ifdef LIT_REFLECTIONS\n\t#ifdef LIT_CLEARCOAT\n\t\t#include \"reflectionCCPS\"\n\t#endif\n\t#ifdef LIT_SHEEN\n\t\t#include \"reflectionSheenPS\"\n\t#endif\n#endif\n#ifdef LIT_REFRACTION\n\t#if defined(LIT_DYNAMIC_REFRACTION)\n\t\t#include \"refractionDynamicPS\"\n\t#elif LIT_REFLECTION_SOURCE != NONE\n\t\t#include \"refractionCubePS\"\n\t#endif\n#endif\n#ifdef LIT_SHEEN\n\t#include \"lightSheenPS\"\n#endif\nuniform material_ambient: vec3f;\n#ifdef LIT_SPECULAR\n\t#ifdef LIT_LIGHTING\n\t\t#ifdef LIT_GGX_SPECULAR\n\t\t\t#ifdef LIT_ANISOTROPY\n\t\t\t\t#include \"lightSpecularAnisoGGXPS\"\n\t\t\t#else\n\t\t\t\t#include \"lightSpecularGGXPS\"\n\t\t\t#endif\n\t\t#else\n\t\t\t#include \"lightSpecularBlinnPS\"\n\t\t#endif\n\t#endif\n#endif\n#include \"combinePS\"\n#ifdef LIT_LIGHTMAP\n\t#include \"lightmapAddPS\"\n#endif\n#ifdef LIT_ADD_AMBIENT\n\t#include \"ambientPS\"\n#endif\n#ifdef LIT_MSDF\n\t#include \"msdfPS\"\n#endif\n#ifdef LIT_NEEDS_NORMAL\n\t#include \"viewDirPS\"\n\t#ifdef LIT_SPECULAR\n\t\t#ifdef LIT_ANISOTROPY\n\t\t\t#include \"reflDirAnisoPS\"\n\t\t#else\n\t\t\t#include \"reflDirPS\"\n\t\t#endif\n\t#endif\n#endif\n#include \"lightingPS\"\n`;\n\nvar litForwardPreCode_default2 = `\n#include \"basePS\"\n#include \"sphericalPS\"\n#include \"decodePS\"\n#include \"gammaPS\"\n#include \"tonemappingPS\"\n#include \"fogPS\"\n#if LIT_NONE_SLICE_MODE == SLICED\n\t#include \"baseNineSlicedPS\"\n#elif LIT_NONE_SLICE_MODE == TILED\n\t#include \"baseNineSlicedTiledPS\"\n#endif\n#ifdef FLAT_SHADING\n\t#include \"flatNormalPS\"\n#endif\n#ifdef LIT_TBN\n\t#include \"TBNPS\"\n\t#ifdef LIT_TWO_SIDED_LIGHTING\n\t\t#include \"twoSidedLightingPS\"\n\t#endif\n#endif\n`;\n\nvar litMain_default3 = `\n#include \"varyingsPS\"\n#include \"litUserDeclarationPS\"\n#include \"frontendDeclPS\"\n#include \"outlineDeclarationPS\"\n#if defined(PICK_PASS) || defined(PREPASS_PASS)\n\t#include \"frontendCodePS\"\n\t#include \"litUserCodePS\"\n\t#include \"litOtherMainPS\"\n#elif defined(SHADOW_PASS)\n\t#include \"frontendCodePS\"\n\t#include \"litUserCodePS\"\n\t#include \"litShadowMainPS\"\n#else\n\t#include \"litForwardDeclarationPS\"\n\t#include \"litForwardPreCodePS\"\n\t#include \"frontendCodePS\"\n\t#include \"litForwardPostCodePS\"\n\t#include \"litForwardBackendPS\"\n\t#include \"litUserCodePS\"\n\t#include \"litForwardMainPS\"\n#endif\n`;\n\nvar litMain_default4 = `\n#include \"varyingsVS\"\n#include  \"litUserDeclarationVS\"\n#ifdef VERTEX_COLOR\n\tattribute vertex_color: vec4f;\n#endif\n#ifdef NINESLICED\n\tvarying vMask: vec2f;\n\tvarying vTiledUv: vec2f;\n\tvar<private> dMaskGlobal: vec2f;\n\tvar<private> dTiledUvGlobal: vec2f;\n\tuniform innerOffset: vec4f;\n\tuniform outerScale: vec2f;\n\tuniform atlasRect: vec4f;\n#endif\nvar<private> dPositionW: vec3f;\nvar<private> dModelMatrix: mat4x4f;\n#include \"transformCoreVS\"\n#ifdef UV0\n\tattribute vertex_texCoord0: vec2f;\n\t#include \"uv0VS\"\n#endif\n#ifdef UV1\n\tattribute vertex_texCoord1: vec2f;\n\t#include \"uv1VS\"\n#endif\n#ifdef LINEAR_DEPTH\n\t#ifndef VIEWMATRIX\n\t#define VIEWMATRIX\n\t\tuniform matrix_view: mat4x4f;\n\t#endif\n#endif\n#include \"transformVS\"\n#ifdef NORMALS\n\t#include \"normalCoreVS\"\n\t#include \"normalVS\"\n#endif\n#ifdef TANGENTS\n\tattribute vertex_tangent: vec4f;\n#endif\n#include \"uvTransformUniformsPS, UV_TRANSFORMS_COUNT\"\n#ifdef MSDF\n\t#include \"msdfVS\"\n#endif\n#include  \"litUserCodeVS\"\n#ifdef VERTEX_COLOR\n\tfn decodeGamma3(raw: vec3f) -> vec3f {\n\t\treturn pow(raw, vec3f(2.2));\n\t}\n\tfn gammaCorrectInputVec4(color: vec4f) -> vec4f {\n\t\treturn vec4f(decodeGamma3(color.xyz), color.w);\n\t}\n#endif\n@vertex\nfn vertexMain(input : VertexInput) -> VertexOutput {\n\t#include \"litUserMainStartVS\"\n\tvar output : VertexOutput;\n\toutput.position = getPosition();\n\toutput.vPositionW = getWorldPosition();\n\t#ifdef NORMALS\n\t\toutput.vNormalW = getNormal();\n\t#endif\n\t#ifdef TANGENTS\n\t\toutput.vTangentW = normalize(dNormalMatrix * vertex_tangent.xyz);\n\t\toutput.vBinormalW = cross(output.vNormalW, output.vTangentW) * vertex_tangent.w;\n\t#elif defined(GGX_SPECULAR)\n\t\toutput.vObjectSpaceUpW = normalize(dNormalMatrix * vec3f(0.0, 1.0, 0.0));\n\t#endif\n\t#ifdef UV0\n\t\tvar uv0: vec2f = getUv0();\n\t\t#ifdef UV0_UNMODIFIED\n\t\t\toutput.vUv0 = uv0;\n\t\t#endif\n\t#endif\n\t#ifdef UV1\n\t\tvar uv1: vec2f = getUv1();\n\t\t#ifdef UV1_UNMODIFIED\n\t\t\toutput.vUv1 = uv1;\n\t\t#endif\n\t#endif\n\t#include \"uvTransformVS, UV_TRANSFORMS_COUNT\"\n\t#ifdef VERTEX_COLOR\n\t\t#ifdef STD_VERTEX_COLOR_GAMMA\n\t\t\toutput.vVertexColor = gammaCorrectInputVec4(vertex_color);\n\t\t#else\n\t\t\toutput.vVertexColor = vertex_color;\n\t\t#endif\n\t#endif\n\t#ifdef LINEAR_DEPTH\n\t\toutput.vLinearDepth = -(uniform.matrix_view * vec4f(output.vPositionW, 1.0)).z;\n\t#endif\n\t#ifdef MSDF\n\t\tunpackMsdfParams();\n\t\toutput.outline_color = dOutlineColor;\n\t\toutput.outline_thickness = dOutlineThickness;\n\t\toutput.shadow_color = dShadowColor;\n\t\toutput.shadow_offset = dShadowOffset;\n\t#endif\n\t#ifdef NINESLICED\n\t\toutput.vMask = dMaskGlobal;\n\t\toutput.vTiledUv = dTiledUvGlobal;\n\t#endif\n\t#include \"litUserMainEndVS\"\n\treturn output;\n}\n`;\n\nvar litOtherMain_default2 = `\n#ifdef PICK_PASS\n\t#include \"pickPS\"\n#endif\n#ifdef PREPASS_PASS\n\t#include \"floatAsUintPS\"\n#endif\n@fragment\nfn fragmentMain(input: FragmentInput) -> FragmentOutput {\n\t#include \"litUserMainStartPS\"\n\tvar output: FragmentOutput;\n\t\n\tevaluateFrontend();\n\t#ifdef PICK_PASS\n\t\toutput.color = getPickOutput();\n\t\t#ifdef DEPTH_PICK_PASS\n\t\t\toutput.color1 = getPickDepth();\n\t\t#endif\n\t#endif\n\t#ifdef PREPASS_PASS\n\t\toutput.color = float2vec4(vLinearDepth);\n\t#endif\n\t#include \"litUserMainEndPS\"\n\treturn output;\n}\n`;\n\nvar litShaderArgs_default2 = `\nvar<private> litArgs_albedo: vec3f;\nvar<private> litArgs_opacity: f32;\nvar<private> litArgs_emission: vec3f;\nvar<private> litArgs_worldNormal: vec3f;\nvar<private> litArgs_ao: f32;\nvar<private> litArgs_lightmap: vec3f;\nvar<private> litArgs_lightmapDir: vec3f;\nvar<private> litArgs_metalness: f32;\nvar<private> litArgs_specularity: vec3f;\nvar<private> litArgs_specularityFactor: f32;\nvar<private> litArgs_gloss: f32;\nvar<private> litArgs_sheen_gloss: f32;\nvar<private> litArgs_sheen_specularity: vec3f;\nvar<private> litArgs_transmission: f32;\nvar<private> litArgs_thickness: f32;\nvar<private> litArgs_ior: f32;\nvar<private> litArgs_dispersion: f32;\nvar<private> litArgs_iridescence_intensity: f32;\nvar<private> litArgs_iridescence_thickness: f32;\nvar<private> litArgs_clearcoat_worldNormal: vec3f;\nvar<private> litArgs_clearcoat_specularity: f32;\nvar<private> litArgs_clearcoat_gloss: f32;\n`;\n\nvar litShaderCore_default2 = `\n\tuniform textureBias: f32;\n\t#include \"litShaderArgsPS\"\n`;\n\nvar litShadowMain_default2 = `\n#if LIGHT_TYPE != DIRECTIONAL\n\tuniform view_position: vec3f;\n\tuniform light_radius: f32;\n#endif\n#if SHADOW_TYPE == PCSS_32F\n\t#include \"linearizeDepthPS\"\n#endif\n@fragment\nfn fragmentMain(input: FragmentInput) -> FragmentOutput {\n\t#include \"litUserMainStartPS\"\n\tvar output: FragmentOutput;\n\tevaluateFrontend();\n\t#ifdef PERSPECTIVE_DEPTH\n\t\tvar depth: f32 = input.position.z;\n\t\t#if SHADOW_TYPE == PCSS_32F\n\t\t\t#if LIGHT_TYPE != DIRECTIONAL\n\t\t\t\tdepth = linearizeDepthWithParams(depth, camera_params);\n\t\t\t#endif\n\t\t#endif\n\t#else\n\t\tvar depth: f32 = min(distance(uniform.view_position, input.vPositionW) / uniform.light_radius, 0.99999);\n\t\t#define MODIFIED_DEPTH\n\t#endif\n\t#if SHADOW_TYPE == VSM_16F || SHADOW_TYPE == VSM_32F\n\t\tif (!(depth >= 0.0 && depth <= 1.0)) {\n\t\t\tdiscard;\n\t\t}\n\t\t#if SHADOW_TYPE == VSM_32F\n\t\t\tvar exponent: f32 = 15.0;\n\t\t#else\n\t\t\tvar exponent: f32 = 5.54;\n\t\t#endif\n\t\tvar depth_vsm = 2.0 * depth - 1.0;\n\t\tdepth_vsm = exp(exponent * depth_vsm);\n\t\toutput.color = vec4f(depth_vsm, depth_vsm * depth_vsm, 1.0, 1.0);\n\t#else\n\t\t#if SHADOW_TYPE == PCSS_32F\n\t\t\toutput.color = vec4f(depth, 0.0, 0.0, 1.0);\n\t\t#else\n\t\t\t#ifdef MODIFIED_DEPTH\n\t\t\t\toutput.fragDepth = depth;\n\t\t\t#endif\n\t\t\toutput.color = vec4f(1.0);\n\t\t#endif\n\t#endif\n\t#include \"litUserMainEndPS\"\n\t\n\treturn output;\n}\n`;\n\nvar ltc_default2 = `\nfn LTC_Uv(N: vec3f, V: vec3f, roughness: f32) -> vec2f {\n\tconst LUT_SIZE: f32 = 64.0;\n\tconst LUT_SCALE: f32 = (LUT_SIZE - 1.0) / LUT_SIZE;\n\tconst LUT_BIAS: f32 = 0.5 / LUT_SIZE;\n\tlet dotNV: f32 = saturate(dot( N, V ));\n\tlet uv: vec2f = vec2f( roughness, sqrt( 1.0 - dotNV ) );\n\treturn uv * LUT_SCALE + LUT_BIAS;\n}\nfn LTC_ClippedSphereFormFactor( f: vec3f ) -> f32 {\n\tlet l: f32 = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nfn LTC_EdgeVectorFormFactor( v1: vec3f, v2: vec3f ) -> vec3f {\n\tlet x: f32 = dot( v1, v2 );\n\tlet y: f32 = abs( x );\n\tlet a: f32 = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tlet b: f32 = 3.4175940 + ( 4.1616724 + y ) * y;\n\tlet v: f32 = a / b;\n\tlet inv_sqrt_term = inverseSqrt( max( 1.0 - x * x, 1e-7f ) );\n\tlet theta_sintheta: f32 = select( (0.5 * inv_sqrt_term - v), v, x > 0.0 );\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nstruct Coords {\n\tcoord0: vec3f,\n\tcoord1: vec3f,\n\tcoord2: vec3f,\n\tcoord3: vec3f,\n}\nfn LTC_EvaluateRect( N: vec3f, V: vec3f, P: vec3f, mInv: mat3x3f, rectCoords: Coords) -> f32 {\n\tlet v1: vec3f = rectCoords.coord1 - rectCoords.coord0;\n\tlet v2: vec3f = rectCoords.coord3 - rectCoords.coord0;\n\tlet lightNormal: vec3f = cross( v1, v2 );\n\tlet factor: f32 = sign(-dot( lightNormal, P - rectCoords.coord0 ));\n\tlet T1: vec3f = normalize( V - N * dot( V, N ) );\n\tlet T2: vec3f = factor * cross( N, T1 );\n\tlet mat: mat3x3f = mInv * transpose( mat3x3f( T1, T2, N ) );\n\tvar coords: array<vec3f, 4>;\n\tcoords[0] = mat * ( rectCoords.coord0 - P );\n\tcoords[1] = mat * ( rectCoords.coord1 - P );\n\tcoords[2] = mat * ( rectCoords.coord2 - P );\n\tcoords[3] = mat * ( rectCoords.coord3 - P );\n\tcoords[0] = normalize( coords[0] );\n\tcoords[1] = normalize( coords[1] );\n\tcoords[2] = normalize( coords[2] );\n\tcoords[3] = normalize( coords[3] );\n\tvar vectorFormFactor: vec3f = vec3f( 0.0 );\n\tvectorFormFactor = vectorFormFactor + LTC_EdgeVectorFormFactor( coords[0], coords[1] );\n\tvectorFormFactor = vectorFormFactor + LTC_EdgeVectorFormFactor( coords[1], coords[2] );\n\tvectorFormFactor = vectorFormFactor + LTC_EdgeVectorFormFactor( coords[2], coords[3] );\n\tvectorFormFactor = vectorFormFactor + LTC_EdgeVectorFormFactor( coords[3], coords[0] );\n\tlet result: f32 = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn result;\n}\nvar<private> dLTCCoords: Coords;\nfn getLTCLightCoords(lightPos: vec3f, halfWidth: vec3f, halfHeight: vec3f) -> Coords {\n\tvar coords: Coords;\n\tcoords.coord0 = lightPos + halfWidth - halfHeight;\n\tcoords.coord1 = lightPos - halfWidth - halfHeight;\n\tcoords.coord2 = lightPos - halfWidth + halfHeight;\n\tcoords.coord3 = lightPos + halfWidth + halfHeight;\n\treturn coords;\n}\nvar<private> dSphereRadius: f32;\nfn getSphereLightCoords(lightPos: vec3f, halfWidth: vec3f, halfHeight: vec3f) -> Coords {\n\tdSphereRadius = max(length(halfWidth), length(halfHeight));\n\tlet f: vec3f = reflect(normalize(lightPos - uniform.view_position), vNormalW);\n\tlet w: vec3f = normalize(cross(f, halfHeight));\n\tlet h: vec3f = normalize(cross(f, w));\n\treturn getLTCLightCoords(lightPos, w * dSphereRadius, h * dSphereRadius);\n}\nvar<private> dLTCUV: vec2f;\n#ifdef LIT_CLEARCOAT\n\tvar<private> ccLTCUV: vec2f;\n#endif\nfn getLTCLightUV(gloss: f32, worldNormal: vec3f, viewDir: vec3f) -> vec2f {\n\tlet roughness: f32 = max((1.0 - gloss) * (1.0 - gloss), 0.001);\n\treturn LTC_Uv( worldNormal, viewDir, roughness );\n}\nvar<private> dLTCSpecFres: vec3f;\n#ifdef LIT_CLEARCOAT\n\tvar<private> ccLTCSpecFres: vec3f;\n#endif\nfn getLTCLightSpecFres(uv: vec2f, specularity: vec3f) -> vec3f {\n\tlet t2: vec4f = textureSampleLevel(areaLightsLutTex2, areaLightsLutTex2Sampler, uv, 0.0);\n\treturn specularity * t2.x + ( vec3f( 1.0 ) - specularity) * t2.y;\n}\nfn calcLTCLightValues(gloss: f32, worldNormal: vec3f, viewDir: vec3f, specularity: vec3f, clearcoatGloss: f32, clearcoatWorldNormal: vec3f, clearcoatSpecularity: f32) {\n\tdLTCUV = getLTCLightUV(gloss, worldNormal, viewDir);\n\tdLTCSpecFres = getLTCLightSpecFres(dLTCUV, specularity);\n\t#ifdef LIT_CLEARCOAT\n\t\tccLTCUV = getLTCLightUV(clearcoatGloss, clearcoatWorldNormal, viewDir);\n\t\tccLTCSpecFres = getLTCLightSpecFres(ccLTCUV, vec3f(clearcoatSpecularity));\n\t#endif\n}\nfn calcRectLightValues(lightPos: vec3f, halfWidth: vec3f, halfHeight: vec3f) {\n\tdLTCCoords = getLTCLightCoords(lightPos, halfWidth, halfHeight);\n}\nfn calcDiskLightValues(lightPos: vec3f, halfWidth: vec3f, halfHeight: vec3f) {\n\tcalcRectLightValues(lightPos, halfWidth, halfHeight);\n}\nfn calcSphereLightValues(lightPos: vec3f, halfWidth: vec3f, halfHeight: vec3f) {\n\tdLTCCoords = getSphereLightCoords(lightPos, halfWidth, halfHeight);\n}\nfn SolveCubic(Coefficient_in: vec4f) -> vec3f {\n\tlet pi: f32 = 3.14159;\n\tvar Coefficient = Coefficient_in;\n\tCoefficient = vec4f(Coefficient.xyz / Coefficient.w, Coefficient.w);\n\tlet new_yz: vec2f = Coefficient.yz / 3.0;\n\tCoefficient = vec4f(Coefficient.x, new_yz.x, new_yz.y, Coefficient.w);\n\t\n\tlet A: f32 = Coefficient.w;\n\tlet B: f32 = Coefficient.z;\n\tlet C: f32 = Coefficient.y;\n\tlet D: f32 = Coefficient.x;\n\tlet Delta: vec3f = vec3f(\n\t\t-Coefficient.z * Coefficient.z + Coefficient.y,\n\t\t-Coefficient.y * Coefficient.z + Coefficient.x,\n\t\tdot(vec2f(Coefficient.z, -Coefficient.y), Coefficient.xy)\n\t);\n\tlet Discriminant: f32 = dot(vec2f(4.0 * Delta.x, -Delta.y), Delta.zy);\n\tvar xlc: vec2f;\n\tvar xsc: vec2f;\n\t{\n\t\tlet A_a: f32 = 1.0;\n\t\tlet C_a: f32 = Delta.x;\n\t\tlet D_a: f32 = -2.0 * B * Delta.x + Delta.y;\n\t\tlet Theta: f32 = atan2(sqrt(Discriminant), -D_a) / 3.0;\n\t\tlet sqrt_neg_Ca = sqrt(-C_a);\n\t\tlet x_1a: f32 = 2.0 * sqrt_neg_Ca * cos(Theta);\n\t\tlet x_3a: f32 = 2.0 * sqrt_neg_Ca * cos(Theta + (2.0 / 3.0) * pi);\n\t\tlet xl: f32 = select(x_3a, x_1a, (x_1a + x_3a) > 2.0 * B);\n\t\txlc = vec2f(xl - B, A);\n\t}\n\t{\n\t\tlet A_d: f32 = D;\n\t\tlet C_d: f32 = Delta.z;\n\t\tlet D_d: f32 = -D * Delta.y + 2.0 * C * Delta.z;\n\t\tlet Theta: f32 = atan2(D * sqrt(Discriminant), -D_d) / 3.0;\n\t\tlet sqrt_neg_Cd = sqrt(-C_d);\n\t\tlet x_1d: f32 = 2.0 * sqrt_neg_Cd * cos(Theta);\n\t\tlet x_3d: f32 = 2.0 * sqrt_neg_Cd * cos(Theta + (2.0 / 3.0) * pi);\n\t\tlet xs: f32 = select(x_3d, x_1d, x_1d + x_3d < 2.0 * C);\n\t\txsc = vec2f(-D, xs + C);\n\t}\n\tlet E: f32 =  xlc.y * xsc.y;\n\tlet F: f32 = -xlc.x * xsc.y - xlc.y * xsc.x;\n\tlet G: f32 =  xlc.x * xsc.x;\n\tlet xmc: vec2f = vec2f(C * F - B * G, -B * F + C * E);\n\tvar Root: vec3f = vec3f(xsc.x / xsc.y, xmc.x / xmc.y, xlc.x / xlc.y);\n\tif (Root.x < Root.y && Root.x < Root.z) {\n\t\tRoot = Root.yxz;\n\t} else if (Root.z < Root.x && Root.z < Root.y) {\n\t\tRoot = Root.xzy;\n\t}\n\treturn Root;\n}\nfn LTC_EvaluateDisk(N: vec3f, V: vec3f, P: vec3f, Minv: mat3x3f, points: Coords) -> f32 {\n\tlet T1: vec3f = normalize(V - N * dot(V, N));\n\tlet T2: vec3f = cross(N, T1);\n\tlet R: mat3x3f = transpose( mat3x3f( T1, T2, N ) );\n\tvar L_: array<vec3f, 3>;\n\tL_[0] = R * ( points.coord0 - P );\n\tL_[1] = R * ( points.coord1 - P );\n\tL_[2] = R * ( points.coord2 - P );\n\tlet C: vec3f  = 0.5 * (L_[0] + L_[2]);\n\tvar V1: vec3f = 0.5 * (L_[1] - L_[2]);\n\tvar V2: vec3f = 0.5 * (L_[1] - L_[0]);\n\tlet C_Minv: vec3f  = Minv * C;\n\tlet V1_Minv: vec3f = Minv * V1;\n\tlet V2_Minv: vec3f = Minv * V2;\n\tvar a: f32;\n\tvar b: f32;\n\tlet d11: f32 = dot(V1_Minv, V1_Minv);\n\tlet d22: f32 = dot(V2_Minv, V2_Minv);\n\tlet d12: f32 = dot(V1_Minv, V2_Minv);\n\tif (abs(d12) / sqrt(d11 * d22) > 0.0001) {\n\t\tlet tr: f32 = d11 + d22;\n\t\tlet det_inner: f32 = -d12 * d12 + d11 * d22;\n\t\tlet det: f32 = sqrt(det_inner);\n\t\tlet u: f32 = 0.5 * sqrt(tr - 2.0 * det);\n\t\tlet v: f32 = 0.5 * sqrt(tr + 2.0 * det);\n\t\tlet e_max: f32 = (u + v) * (u + v);\n\t\tlet e_min: f32 = (u - v) * (u - v);\n\t\tvar V1_: vec3f;\n\t\tvar V2_: vec3f;\n\t\tif (d11 > d22) {\n\t\t\tV1_ = d12 * V1_Minv + (e_max - d11) * V2_Minv;\n\t\t\tV2_ = d12 * V1_Minv + (e_min - d11) * V2_Minv;\n\t\t} else {\n\t\t\tV1_ = d12*V2_Minv + (e_max - d22)*V1_Minv;\n\t\t\tV2_ = d12*V2_Minv + (e_min - d22)*V1_Minv;\n\t\t}\n\t\ta = 1.0 / e_max;\n\t\tb = 1.0 / e_min;\n\t\tV1 = normalize(V1_);\n\t\tV2 = normalize(V2_);\n\t} else {\n\t\ta = 1.0 / dot(V1_Minv, V1_Minv);\n\t\tb = 1.0 / dot(V2_Minv, V2_Minv);\n\t\tV1 = V1_Minv * sqrt(a);\n\t\tV2 = V2_Minv * sqrt(b);\n\t}\n\tvar V3: vec3f = normalize(cross(V1, V2));\n\tif (dot(C_Minv, V3) < 0.0) {\n\t\tV3 = V3 * -1.0;\n\t}\n\tlet L: f32  = dot(V3, C_Minv);\n\tlet x0: f32 = dot(V1, C_Minv) / L;\n\tlet y0: f32 = dot(V2, C_Minv) / L;\n\tlet E1: f32 = inverseSqrt(a);\n\tlet E2: f32 = inverseSqrt(b);\n\tlet a_scaled = a * L * L;\n\tlet b_scaled = b * L * L;\n\tlet c0: f32 = a_scaled * b_scaled;\n\tlet c1: f32 = a_scaled * b_scaled * (1.0 + x0 * x0 + y0 * y0) - a_scaled - b_scaled;\n\tlet c2: f32 = 1.0 - a_scaled * (1.0 + x0 * x0) - b_scaled * (1.0 + y0 * y0);\n\tlet c3: f32 = 1.0;\n\tlet roots: vec3f = SolveCubic(vec4f(c0, c1, c2, c3));\n\tlet e1: f32 = roots.x;\n\tlet e2: f32 = roots.y;\n\tlet e3: f32 = roots.z;\n\tvar avgDir: vec3f = vec3f(a_scaled * x0 / (a_scaled - e2), b_scaled * y0 / (b_scaled - e2), 1.0);\n\tlet rotate: mat3x3f = mat3x3f(V1, V2, V3);\n\tavgDir = rotate * avgDir;\n\tavgDir = normalize(avgDir);\n\tlet L1: f32 = sqrt(-e2 / e3);\n\tlet L2: f32 = sqrt(-e2 / e1);\n\tlet formFactor: f32 = max(0.0, L1 * L2 * inverseSqrt((1.0 + L1 * L1) * (1.0 + L2 * L2)));\n\tconst LUT_SIZE_disk: f32 = 64.0;\n\tconst LUT_SCALE_disk: f32 = ( LUT_SIZE_disk - 1.0 ) / LUT_SIZE_disk;\n\tconst LUT_BIAS_disk: f32 = 0.5 / LUT_SIZE_disk;\n\tvar uv: vec2f = vec2f(avgDir.z * 0.5 + 0.5, formFactor);\n\tuv = uv * LUT_SCALE_disk + LUT_BIAS_disk;\n\tlet scale: f32 = textureSampleLevel(areaLightsLutTex2, areaLightsLutTex2Sampler, uv, 0.0).w;\n\treturn formFactor * scale;\n}\nfn FixNan(value: f32) -> f32 {\n\treturn select(value, 0.0, value != value);\n}\nfn getRectLightDiffuse(worldNormal: vec3f, viewDir: vec3f, lightDir: vec3f, lightDirNorm: vec3f) -> f32 {\n\tlet identityMat = mat3x3f(vec3f(1.0, 0.0, 0.0), vec3f(0.0, 1.0, 0.0), vec3f(0.0, 0.0, 1.0));\n\treturn LTC_EvaluateRect( worldNormal, viewDir, vPositionW, identityMat, dLTCCoords );\n}\nfn getDiskLightDiffuse(worldNormal: vec3f, viewDir: vec3f, lightDir: vec3f, lightDirNorm: vec3f) -> f32 {\n\tlet identityMat = mat3x3f(vec3f(1.0, 0.0, 0.0), vec3f(0.0, 1.0, 0.0), vec3f(0.0, 0.0, 1.0));\n\treturn FixNan(LTC_EvaluateDisk( worldNormal, viewDir, vPositionW, identityMat, dLTCCoords ));\n}\nfn getSphereLightDiffuse(worldNormal: vec3f, viewDir: vec3f, lightDir: vec3f, lightDirNorm: vec3f) -> f32 {\n\tlet falloff: f32 = dSphereRadius / (dot(lightDir, lightDir) + dSphereRadius);\n\treturn FixNan(getLightDiffuse(worldNormal, viewDir, lightDirNorm) * falloff);\n}\nfn getLTCLightInvMat(uv: vec2f) -> mat3x3f {\n\tlet t1: vec4f = textureSampleLevel(areaLightsLutTex1, areaLightsLutTex1Sampler, uv, 0.0);\n\treturn mat3x3f(\n\t\tvec3f( t1.x, 0.0, t1.y ),\n\t\tvec3f( 0.0, 1.0, 0.0 ),\n\t\tvec3f( t1.z, 0.0, t1.w )\n\t);\n}\nfn calcRectLightSpecular(worldNormal: vec3f, viewDir: vec3f, uv: vec2f) -> f32 {\n\tlet mInv: mat3x3f = getLTCLightInvMat(uv);\n\treturn LTC_EvaluateRect( worldNormal, viewDir, vPositionW, mInv, dLTCCoords );\n}\nfn getRectLightSpecular(worldNormal: vec3f, viewDir: vec3f) -> f32 {\n\treturn calcRectLightSpecular(worldNormal, viewDir, dLTCUV);\n}\nfn calcDiskLightSpecular(worldNormal: vec3f, viewDir: vec3f, uv: vec2f) -> f32 {\n\tlet mInv: mat3x3f = getLTCLightInvMat(uv);\n\treturn LTC_EvaluateDisk( worldNormal, viewDir, vPositionW, mInv, dLTCCoords );\n}\nfn getDiskLightSpecular(worldNormal: vec3f, viewDir: vec3f) -> f32 {\n\treturn calcDiskLightSpecular(worldNormal, viewDir, dLTCUV);\n}\nfn getSphereLightSpecular(worldNormal: vec3f, viewDir: vec3f) -> f32 {\n\treturn calcDiskLightSpecular(worldNormal, viewDir, dLTCUV);\n}\n`;\n\nvar metalness_default2 = `\n#ifdef STD_METALNESS_CONSTANT\nuniform material_metalness: f32;\n#endif\nfn getMetalness() {\n\tvar metalness: f32 = 1.0;\n\t#ifdef STD_METALNESS_CONSTANT\n\t\tmetalness = metalness * uniform.material_metalness;\n\t#endif\n\t#ifdef STD_METALNESS_TEXTURE\n\t\tmetalness = metalness * textureSampleBias({STD_METALNESS_TEXTURE_NAME}, {STD_METALNESS_TEXTURE_NAME}Sampler, {STD_METALNESS_TEXTURE_UV}, uniform.textureBias).{STD_METALNESS_TEXTURE_CHANNEL};\n\t#endif\n\t#ifdef STD_METALNESS_VERTEX\n\tmetalness = metalness * saturate(vVertexColor.{STD_METALNESS_VERTEX_CHANNEL});\n\t#endif\n\tdMetalness = metalness;\n}\n`;\n\nvar msdf_default3 = `\nvar texture_msdfMap: texture_2d<f32>;\nvar texture_msdfMapSampler: sampler;\nfn median(r: f32, g: f32, b: f32) -> f32 {\n\treturn max(min(r, g), min(max(r, g), b));\n}\nuniform font_sdfIntensity: f32;\nuniform font_pxrange: f32;\n#ifndef LIT_MSDF_TEXT_ATTRIBUTE\n\tuniform outline_color: vec4f;\n\tuniform outline_thickness: f32;\n\tuniform shadow_color: vec4f;\n\tuniform shadow_offset: vec2f;\n#else\n\tvarying outline_color: vec4f;\n\tvarying outline_thickness: f32;\n\tvarying shadow_color: vec4f;\n\tvarying shadow_offset: vec2f;\n#endif\nfn applyMsdf(color_in: vec4f) -> vec4f {\n\t#ifndef LIT_MSDF_TEXT_ATTRIBUTE\n\t\tvar outline_colorValue = uniform.outline_color;\n\t\tvar outline_thicknessValue = uniform.outline_thickness;\n\t\tvar shadow_colorValue = uniform.shadow_color;\n\t\tvar shadow_offsetValue = uniform.shadow_offset;\n\t#else\n\t\tvar outline_colorValue = outline_color;\n\t\tvar outline_thicknessValue = outline_thickness;\n\t\tvar shadow_colorValue = shadow_color;\n\t\tvar shadow_offsetValue = shadow_offset;\n\t#endif\n\tlet srcAlpha: f32 = max(color_in.a, 0.0001);\n\tvar color = vec4f(gammaCorrectInputVec3(color_in.rgb / srcAlpha) * srcAlpha, color_in.a);\n\tlet tsample: vec3f = textureSample(texture_msdfMap, texture_msdfMapSampler, vUv0).rgb;\n\tlet uvShdw: vec2f = vUv0 - shadow_offsetValue;\n\tlet ssample: vec3f = textureSample(texture_msdfMap, texture_msdfMapSampler, uvShdw).rgb;\n\tlet sigDist: f32 = median(tsample.r, tsample.g, tsample.b);\n\tlet sigDistShdw: f32 = median(ssample.r, ssample.g, ssample.b);\n\tlet edge: f32 = 0.5 - 0.5 * uniform.font_sdfIntensity;\n\tlet unitRange: vec2f = vec2f(uniform.font_pxrange) / vec2f(textureDimensions(texture_msdfMap, 0));\n\tlet uvDeriv: vec2f = max(abs(dpdx(vUv0)) + abs(dpdy(vUv0)), vec2f(1e-6));\n\tlet screenPxRange: f32 = max(0.5 * dot(unitRange, vec2f(1.0) / uvDeriv), 2.5);\n\tlet inside: f32 = clamp(screenPxRange * (sigDist - edge) + 0.5, 0.0, 1.0);\n\tlet outline: f32 = clamp(screenPxRange * (sigDist + outline_thicknessValue - edge) + 0.5, 0.0, 1.0);\n\tlet shadow: f32 = clamp(screenPxRange * (sigDistShdw + outline_thicknessValue - edge) + 0.5, 0.0, 1.0);\n\tlet tcolor_outline: vec4f = outline * vec4f(outline_colorValue.a * outline_colorValue.rgb, outline_colorValue.a);\n\tvar tcolor: vec4f = select(vec4f(0.0), tcolor_outline, outline > inside);\n\ttcolor = mix(tcolor, color, inside);\n\tlet scolor_shadow: vec4f = shadow * vec4f(shadow_colorValue.a * shadow_colorValue.rgb, shadow_colorValue.a);\n\tlet scolor: vec4f = select(tcolor, scolor_shadow, shadow > outline);\n\ttcolor = mix(scolor, tcolor, outline);\n\ttcolor = vec4f(gammaCorrectOutput(tcolor.rgb / max(tcolor.a, 0.0001)) * tcolor.a, tcolor.a);\n\treturn tcolor;\n}\n`;\n\nvar metalnessModulate_default2 = `\nfn getSpecularModulate(specularity: vec3f, albedo: vec3f, metalness: f32, f0: f32, specularityFactor: f32) -> vec3f {\n\tlet dielectricF0: vec3f = f0 * specularity * specularityFactor;\n\treturn mix(dielectricF0, albedo, metalness);\n}\nfn getAlbedoModulate(albedo: vec3f, metalness: f32) -> vec3f {\n\treturn albedo * (1.0 - metalness);\n}\n`;\n\nvar morph_default3 = `\n\tvarying uv0: vec2f;\n\tvar morphTexture: texture_2d_array<f32>;\n\tuniform morphFactor: array<f32, {MORPH_TEXTURE_MAX_COUNT}>;\n\tuniform morphIndex: array<u32, {MORPH_TEXTURE_MAX_COUNT}>;\n\tuniform count: u32;\n\t@fragment\n\tfn fragmentMain(input : FragmentInput) -> FragmentOutput {\n\t\tvar color = vec3f(0, 0, 0);\n\t\tlet textureDims = textureDimensions(morphTexture);\n\t\tlet pixelCoords = vec2i(input.uv0 * vec2f(textureDims));\n\t\t\n\t\tfor (var i: u32 = 0; i < uniform.count; i = i + 1) {\n\t\t\tvar textureIndex: u32 = uniform.morphIndex[i].element;\n\t\t\tvar delta = textureLoad(morphTexture, pixelCoords, textureIndex, 0).xyz;\n\t\t\tcolor += uniform.morphFactor[i].element * delta;\n\t\t}\n\t\tvar output: FragmentOutput;\n\t\toutput.color = vec4f(color, 1.0);\n\t\treturn output;\n\t}\n`;\n\nvar morph_default4 = `\n\tattribute vertex_position: vec2f;\n\tvarying uv0: vec2f;\n\t@vertex\n\tfn vertexMain(input: VertexInput) -> VertexOutput {\n\t\tvar output: VertexOutput;\n\t\toutput.position = vec4f(input.vertex_position, 0.5, 1.0);\n\t\toutput.uv0 = input.vertex_position * 0.5 + vec2f(0.5, 0.5);\n\t\treturn output;\n\t}\n`;\n\nvar msdf_default4 = `\nattribute vertex_outlineParameters: vec3f;\nattribute vertex_shadowParameters: vec3f;\nvarying outline_color: vec4f;\nvarying outline_thickness: f32;\nvarying shadow_color: vec4f;\nvarying shadow_offset: vec2f;\nvar<private> dOutlineColor: vec4f;\nvar<private> dOutlineThickness: f32;\nvar<private> dShadowColor: vec4f;\nvar<private> dShadowOffset: vec2f;\nfn unpackMsdfParams() {\n\tlet little: vec3f = vertex_outlineParameters % vec3f(256.0);\n\tlet big: vec3f = (vertex_outlineParameters - little) / 256.0;\n\tdOutlineColor = vec4f(little.x, big.x, little.y, big.y) / 255.0;\n\tdOutlineThickness = little.z / 255.0 * 0.2;\n\tlet little_shadow = vertex_shadowParameters % vec3f(256.0);\n\tlet big_shadow = (vertex_shadowParameters - little_shadow) / 256.0;\n\tdShadowColor = vec4f(little_shadow.x, big_shadow.x, little_shadow.y, big_shadow.y) / 255.0;\n\tdShadowOffset = (vec2f(little_shadow.z, big_shadow.z) / 127.0 - 1.0) * 0.005;\n}\n`;\n\nvar normal_default2 = `\nvar<private> dNormalMatrix: mat3x3f;\nfn getNormal() -> vec3f {\n\tdNormalMatrix = getNormalMatrix(dModelMatrix);\n\tlet localNormal: vec3f = getLocalNormal(vertex_normal);\n\treturn normalize(dNormalMatrix * localNormal);\n}`;\n\nvar normalCore_default2 = `\nattribute vertex_normal: vec3f;\nuniform matrix_normal: mat3x3f;\n#ifdef MORPHING_NORMAL\n\t#ifdef MORPHING_INT\n\t\tvar morphNormalTex: texture_2d<u32>;\n\t\tvar morphNormalTexSampler: sampler;\n\t#else\n\t\tvar morphNormalTex: texture_2d<f32>;\n\t\tvar morphNormalTexSampler: sampler;\n\t#endif\n#endif\nfn getLocalNormal(vertexNormal: vec3f) -> vec3f {\n\tvar localNormal: vec3f = vertexNormal;\n\t#ifdef MORPHING_NORMAL\n\t\tlet morphUV: vec2i = getTextureMorphCoords();\n\t\t#ifdef MORPHING_INT\n\t\t\tlet morphNormalInt: vec4u = textureLoad(morphNormalTex, morphUV, 0);\n\t\t\tlet morphNormalF: vec3f = vec3f(morphNormalInt.xyz) / 65535.0 * 2.0 - 1.0;\n\t\t\tlocalNormal = localNormal + morphNormalF;\n\t\t#else\n\t\t\tlet morphNormal: vec3f = textureLoad(morphNormalTex, morphUV, 0).xyz;\n\t\t\tlocalNormal = localNormal + morphNormal;\n\t\t#endif\n\t#endif\n\treturn localNormal;\n}\n#if defined(SKIN) || defined(BATCH)\n\tfn getNormalMatrix(modelMatrix: mat4x4f) -> mat3x3f {\n\t\treturn mat3x3f(modelMatrix[0].xyz, modelMatrix[1].xyz, modelMatrix[2].xyz);\n\t}\n#elif defined(INSTANCING)\n\tfn getNormalMatrix(modelMatrix: mat4x4f) -> mat3x3f {\n\t\treturn mat3x3f(modelMatrix[0].xyz, modelMatrix[1].xyz, modelMatrix[2].xyz);\n\t}\n#else\n\tfn getNormalMatrix(modelMatrix: mat4x4f) -> mat3x3f {\n\t\treturn uniform.matrix_normal;\n\t}\n#endif\n`;\n\nvar normalMap_default2 = `\n#ifdef STD_NORMAL_TEXTURE\n\tuniform material_bumpiness: f32;\n#endif\n#ifdef STD_NORMALDETAIL_TEXTURE\n\tuniform material_normalDetailMapBumpiness: f32;\n\tfn blendNormals(inN1: vec3f, inN2: vec3f) -> vec3f {\n\t\tlet n1: vec3f = inN1 + vec3f(0.0, 0.0, 1.0);\n\t\tlet n2: vec3f = inN2 * vec3f(-1.0, -1.0, 1.0);\n\t\treturn n1 * dot(n1, n2) / n1.z - n2;\n\t}\n#endif\nfn getNormal() {\n#ifdef STD_NORMAL_TEXTURE\n\tvar normalMap: vec3f = {STD_NORMAL_TEXTURE_DECODE}(textureSampleBias({STD_NORMAL_TEXTURE_NAME}, {STD_NORMAL_TEXTURE_NAME}Sampler, {STD_NORMAL_TEXTURE_UV}, uniform.textureBias));\n\tnormalMap = mix(vec3f(0.0, 0.0, 1.0), normalMap, uniform.material_bumpiness);\n\t#ifdef STD_NORMALDETAIL_TEXTURE\n\t\tvar normalDetailMap: vec3f = {STD_NORMALDETAIL_TEXTURE_DECODE}(textureSampleBias({STD_NORMALDETAIL_TEXTURE_NAME}, {STD_NORMALDETAIL_TEXTURE_NAME}Sampler, {STD_NORMALDETAIL_TEXTURE_UV}, uniform.textureBias));\n\t\tnormalDetailMap = mix(vec3f(0.0, 0.0, 1.0), normalDetailMap, uniform.material_normalDetailMapBumpiness);\n\t\tnormalMap = blendNormals(normalMap, normalDetailMap);\n\t#endif\n\tdNormalW = normalize(dTBN * normalMap);\n#else\n\tdNormalW = dVertexNormalW;\n#endif\n}\n`;\n\nvar opacity_default2 = `\nuniform material_opacity: f32;\nuniform material_alphaDitherScale: f32;\nfn getOpacity() {\n\tdAlpha = uniform.material_opacity;\n\t#ifdef STD_OPACITY_TEXTURE\n\tdAlpha = dAlpha * textureSampleBias({STD_OPACITY_TEXTURE_NAME}, {STD_OPACITY_TEXTURE_NAME}Sampler, {STD_OPACITY_TEXTURE_UV}, uniform.textureBias).{STD_OPACITY_TEXTURE_CHANNEL};\n\t#endif\n\t#ifdef STD_OPACITY_VERTEX\n\tdAlpha = dAlpha * clamp(vVertexColor.{STD_OPACITY_VERTEX_CHANNEL}, 0.0, 1.0);\n\t#endif\n}\n`;\n\nvar opacity_dither_default2 = `\n#if STD_OPACITY_DITHER == BAYER2 || STD_OPACITY_DITHER == BAYER4 || STD_OPACITY_DITHER == BAYER8 || STD_OPACITY_DITHER == BAYER16\n\t#include \"bayerPS\"\n#endif\nuniform blueNoiseJitter: vec4f;\n#if STD_OPACITY_DITHER == BLUENOISE\n\tvar blueNoiseTex32 : texture_2d<f32>;\n\tvar blueNoiseTex32Sampler : sampler;\n#endif\nfn opacityDither(alpha: f32, id: f32) {\n\tif (alpha <= 0.0) {\n\t\tdiscard;\n\t}\n\tif (alpha >= 1.0) {\n\t\treturn;\n\t}\n\t#if STD_OPACITY_DITHER == BAYER8\n\t\tvar noise: f32 = bayer8(floor((pcPosition.xy + uniform.blueNoiseJitter.xy + id) % vec2f(8.0))) / 64.0;\n\t#else\n\t\t#if STD_OPACITY_DITHER == BAYER2\n\t\t\tvar noise: f32 = bayer2(floor((pcPosition.xy + uniform.blueNoiseJitter.xy + id) % vec2f(2.0))) / 4.0;\n\t\t#endif\n\t\t#if STD_OPACITY_DITHER == BAYER4\n\t\t\tvar noise: f32 = bayer4(floor((pcPosition.xy + uniform.blueNoiseJitter.xy + id) % vec2f(4.0))) / 16.0;\n\t\t#endif\n\t\t#if STD_OPACITY_DITHER == BAYER16\n\t\t\tvar noise: f32 = bayer16(floor((pcPosition.xy + uniform.blueNoiseJitter.xy + id) % vec2f(16.0))) / 256.0;\n\t\t#endif\n\t\t#if STD_OPACITY_DITHER == BLUENOISE\n\t\t\tvar uv = fract(pcPosition.xy / 32.0 + uniform.blueNoiseJitter.xy + id);\n\t\t\tvar noise: f32 = textureSampleLevel(blueNoiseTex32, blueNoiseTex32Sampler, uv, 0.0).y;\n\t\t#endif\n\t\t#if STD_OPACITY_DITHER == IGNNOISE\n\t\t\tvar magic = vec3f(0.06711056, 0.00583715, 52.9829189);\n\t\t\tvar noise: f32 = fract(magic.z * fract(dot(pcPosition.xy + uniform.blueNoiseJitter.xy + id, magic.xy)));\n\t\t#endif\n\t#endif\n\tnoise = pow(noise, 2.2);\n\tif (alpha < noise) {\n\t\tdiscard;\n\t}\n}\n`;\n\nvar outline_declaration_default2 = `\n#ifdef PCOUTLINE_PASS\nuniform pcOutlineColor: vec3f;\n#endif\n`;\n\nvar outline_output_default2 = `\n#ifdef PCOUTLINE_PASS\noutput.color = vec4f(gammaCorrectOutput(uniform.pcOutlineColor), output.color.a);\n#endif\n`;\n\nvar output_default2 = `\n`;\n\nvar outputAlpha_default2 = `\n#if LIT_BLEND_TYPE == NORMAL || LIT_BLEND_TYPE == ADDITIVEALPHA || defined(LIT_ALPHA_TO_COVERAGE)\n\toutput.color = vec4f(output.color.rgb, litArgs_opacity);\n#elif LIT_BLEND_TYPE == PREMULTIPLIED\n\toutput.color = vec4f(output.color.rgb * litArgs_opacity, litArgs_opacity);\n#else\n\toutput.color = vec4f(output.color.rgb, 1.0);\n#endif\n`;\n\nvar outputTex2D_default2 = `\nvarying vUv0: vec2f;\nvar source: texture_2d<f32>;\nvar sourceSampler: sampler;\n@fragment fn fragmentMain(input : FragmentInput) -> FragmentOutput {\n\tvar output: FragmentOutput;\n\toutput.color = textureSample(source, sourceSampler, input.vUv0);\n\treturn output;\n}\n`;\n\nvar sheen_default2 = `\nuniform material_sheen: vec3f;\nfn getSheen() {\n\tvar sheenColor = uniform.material_sheen;\n\t#ifdef STD_SHEEN_TEXTURE\n\tsheenColor = sheenColor * {STD_SHEEN_TEXTURE_DECODE}(textureSampleBias({STD_SHEEN_TEXTURE_NAME}, {STD_SHEEN_TEXTURE_NAME}Sampler, {STD_SHEEN_TEXTURE_UV}, uniform.textureBias)).{STD_SHEEN_TEXTURE_CHANNEL};\n\t#endif\n\t#ifdef STD_SHEEN_VERTEX\n\tsheenColor = sheenColor * saturate3(vVertexColor.{STD_SHEEN_VERTEX_CHANNEL});\n\t#endif\n\tsSpecularity = sheenColor;\n}\n`;\n\nvar sheenGloss_default2 = `\nuniform material_sheenGloss: f32;\nfn getSheenGlossiness() {\n\tvar sheenGlossiness = uniform.material_sheenGloss;\n\t#ifdef STD_SHEENGLOSS_TEXTURE\n\tsheenGlossiness = sheenGlossiness * textureSampleBias({STD_SHEENGLOSS_TEXTURE_NAME}, {STD_SHEENGLOSS_TEXTURE_NAME}Sampler, {STD_SHEENGLOSS_TEXTURE_UV}, uniform.textureBias).{STD_SHEENGLOSS_TEXTURE_CHANNEL};\n\t#endif\n\t#ifdef STD_SHEENGLOSS_VERTEX\n\tsheenGlossiness = sheenGlossiness * saturate(vVertexColor.{STD_SHEENGLOSS_VERTEX_CHANNEL});\n\t#endif\n\t#ifdef STD_SHEENGLOSS_INVERT\n\tsheenGlossiness = 1.0 - sheenGlossiness;\n\t#endif\n\tsGlossiness = sheenGlossiness + 0.0000001;\n}\n`;\n\nvar parallax_default2 = `\nuniform material_heightMapFactor: f32;\nuniform material_heightMapBase: f32;\n#if STD_PARALLAX == OCCLUSION\n\tuniform material_parallaxSamples: f32;\n\tconst parallaxMaxSlope: f32 = 5.0;\n\tconst parallaxTexelsPerStep: f32 = 2.0;\n\tconst parallaxFadeMin: f32 = 1.0;\n\tconst parallaxFadeMax: f32 = 3.0;\n\tconst parallaxRefineSteps: i32 = 5;\n#endif\nfn getParallax() {\n\tvar parallaxScale = uniform.material_heightMapFactor;\n\tvar viewDirT: vec3f = normalize(dViewDirW * dTBN);\n\tvar viewDirUv: vec2f = vec2f(viewDirT.x, -viewDirT.y);\n\t#if STD_PARALLAX == OCCLUSION\n\t\tlet march: vec2f = -parallaxScale * viewDirUv / max(viewDirT.z, 0.0001);\n\t\tlet marchLength: f32 = length(march);\n\t\tlet maxMarchLength: f32 = parallaxScale * parallaxMaxSlope;\n\t\tlet uvSpan: vec2f = select(march, march * (maxMarchLength / marchLength), marchLength > maxMarchLength);\n\t\tlet geomDepth: f32 = 1.0 - uniform.material_heightMapBase;\n\t\tlet entryUv: vec2f = {STD_HEIGHT_TEXTURE_UV} - uvSpan * geomDepth;\n\t\tlet heightMapSize: vec2f = vec2f(textureDimensions({STD_HEIGHT_TEXTURE_NAME}, 0));\n\t\tlet uvTexels: vec2f = {STD_HEIGHT_TEXTURE_UV} * heightMapSize;\n\t\tlet texelsDx: vec2f = dpdx(uvTexels);\n\t\tlet texelsDy: vec2f = dpdy(uvTexels);\n\t\tlet lod: f32 = max(0.0, 0.5 * log2(max(dot(texelsDx, texelsDx), dot(texelsDy, texelsDy))));\n\t\tlet marchTexels: f32 = length(uvSpan * heightMapSize) / exp2(lod);\n\t\tlet fade: f32 = clamp((marchTexels - parallaxFadeMin) / (parallaxFadeMax - parallaxFadeMin), 0.0, 1.0);\n\t\tdUvOffset = vec2f(0.0);\n\t\t#ifdef STD_PARALLAX_SELF_SHADOW\n\t\t\tdParallaxHitDepth = 0.0;\n\t\t\tdParallaxLod = lod;\n\t\t#endif\n\t\tif (fade > 0.0) {\n\t\t\tlet steps: f32 = clamp(marchTexels / parallaxTexelsPerStep, 1.0, uniform.material_parallaxSamples);\n\t\t\tlet stepSize: f32 = 1.0 / steps;\n\t\t\tvar rayDepth: f32 = 0.0;\n\t\t\tvar surfaceDepth: f32 = 1.0 - textureSampleLevel({STD_HEIGHT_TEXTURE_NAME}, {STD_HEIGHT_TEXTURE_NAME}Sampler, entryUv, lod).{STD_HEIGHT_TEXTURE_CHANNEL};\n\t\t\tvar prevRayDepth: f32 = rayDepth;\n\t\t\tvar prevSurfaceDepth: f32 = surfaceDepth;\n\t\t\tfor (var i: f32 = 0.0; i < steps; i += 1.0) {\n\t\t\t\tif (rayDepth >= surfaceDepth) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tprevRayDepth = rayDepth;\n\t\t\t\tprevSurfaceDepth = surfaceDepth;\n\t\t\t\trayDepth += stepSize;\n\t\t\t\tsurfaceDepth = 1.0 - textureSampleLevel({STD_HEIGHT_TEXTURE_NAME}, {STD_HEIGHT_TEXTURE_NAME}Sampler, entryUv + uvSpan * rayDepth, lod).{STD_HEIGHT_TEXTURE_CHANNEL};\n\t\t\t}\n\t\t\tvar hitDepth: f32 = rayDepth;\n\t\t\tif (rayDepth >= surfaceDepth) {\n\t\t\t\tvar interval: f32 = (rayDepth - prevRayDepth) * 0.5;\n\t\t\t\thitDepth = rayDepth - interval;\n\t\t\t\tfor (var i: i32 = 0; i < parallaxRefineSteps; i++) {\n\t\t\t\t\tinterval *= 0.5;\n\t\t\t\t\tlet refineDepth: f32 = 1.0 - textureSampleLevel({STD_HEIGHT_TEXTURE_NAME}, {STD_HEIGHT_TEXTURE_NAME}Sampler, entryUv + uvSpan * hitDepth, lod).{STD_HEIGHT_TEXTURE_CHANNEL};\n\t\t\t\t\thitDepth += select(interval, -interval, hitDepth >= refineDepth);\n\t\t\t\t}\n\t\t\t}\n\t\t\tlet hitBelowTop: f32 = clamp(hitDepth, 0.0, 1.0);\n\t\t\tdUvOffset = uvSpan * ((hitBelowTop - geomDepth) * fade);\n\t\t\t#ifdef STD_PARALLAX_SELF_SHADOW\n\t\t\t\tdParallaxHitDepth = hitBelowTop * fade;\n\t\t\t#endif\n\t\t}\n\t#else\n\t\tvar height: f32 = textureSampleBias({STD_HEIGHT_TEXTURE_NAME}, {STD_HEIGHT_TEXTURE_NAME}Sampler, {STD_HEIGHT_TEXTURE_UV}, uniform.textureBias).{STD_HEIGHT_TEXTURE_CHANNEL};\n\t\theight = (height - uniform.material_heightMapBase) * parallaxScale;\n\t\tdUvOffset = height * viewDirUv;\n\t#endif\n}\n#ifdef STD_PARALLAX_SELF_SHADOW\n\tuniform material_parallaxShadowSamples: f32;\n\tconst parallaxShadowHardness: f32 = 16.0;\n\tconst parallaxShadowMaxSlope: f32 = 20.0;\n\tfn getParallaxSelfShadow(lightDirNormW: vec3f) -> f32 {\n\t\tif (dParallaxHitDepth <= 0.0) {\n\t\t\treturn 1.0;\n\t\t}\n\t\tlet lightDirT: vec3f = normalize(-lightDirNormW * dTBN);\n\t\tlet lightDirUv: vec2f = vec2f(lightDirT.x, -lightDirT.y);\n\t\tif (lightDirT.z <= 0.0) {\n\t\t\treturn 1.0;\n\t\t}\n\t\tlet parallaxScale: f32 = uniform.material_heightMapFactor;\n\t\tlet climb: vec2f = parallaxScale * lightDirUv / lightDirT.z;\n\t\tlet climbLength: f32 = length(climb);\n\t\tlet maxClimbLength: f32 = parallaxScale * parallaxShadowMaxSlope;\n\t\tlet uvPerDepth: vec2f = select(climb, climb * (maxClimbLength / climbLength), climbLength > maxClimbLength);\n\t\tlet heightMapSize: vec2f = vec2f(textureDimensions({STD_HEIGHT_TEXTURE_NAME}, 0));\n\t\tlet marchTexels: f32 = length(uvPerDepth * dParallaxHitDepth * heightMapSize) / exp2(dParallaxLod);\n\t\tlet steps: f32 = clamp(marchTexels / parallaxTexelsPerStep, 1.0, uniform.material_parallaxShadowSamples);\n\t\tlet hitUv: vec2f = {STD_HEIGHT_TEXTURE_UV} + dUvOffset;\n\t\tvar blocked: f32 = 0.0;\n\t\tfor (var i: f32 = 0.0; i < steps; i += 1.0) {\n\t\t\tlet t: f32 = (i + 1.0) / steps;\n\t\t\tlet climbed: f32 = dParallaxHitDepth * t;\n\t\t\tlet rayDepth: f32 = dParallaxHitDepth - climbed;\n\t\t\tlet fieldDepth: f32 = 1.0 - textureSampleLevel({STD_HEIGHT_TEXTURE_NAME}, {STD_HEIGHT_TEXTURE_NAME}Sampler, hitUv + uvPerDepth * climbed, dParallaxLod).{STD_HEIGHT_TEXTURE_CHANNEL};\n\t\t\tblocked = max(blocked, max(0.0, rayDepth - fieldDepth) * max(0.0, 1.0 - t));\n\t\t}\n\t\treturn clamp(1.0 - blocked * parallaxShadowHardness, 0.0, 1.0);\n\t}\n#endif\n`;\n\nvar pick_default2 = `\nfn encodePickOutput(id: u32) -> vec4f {\n\tlet inv: vec4f = vec4f(1.0 / 255.0);\n\tlet shifts: vec4u = vec4u(16u, 8u, 0u, 24u);\n\tlet col: vec4u = (vec4u(id) >> shifts) & vec4u(0xffu);\n\treturn vec4f(col) * inv;\n}\n#ifndef PICK_CUSTOM_ID\n\tuniform meshInstanceId: u32;\n\tfn getPickOutput() -> vec4f {\n\t\treturn encodePickOutput(uniform.meshInstanceId);\n\t}\n#endif\n#ifdef DEPTH_PICK_PASS\n\t#include \"floatAsUintPS\"\n\t#ifndef CAMERAPLANES\n\t\t#define CAMERAPLANES\n\t\tuniform camera_params: vec4f;\n\t#endif\n\tfn getPickDepth() -> vec4f {\n\t\tvar linearDepth: f32;\n\t\tif (uniform.camera_params.w > 0.5) {\n\t\t\tlinearDepth = pcPosition.z;\n\t\t} else {\n\t\t\tlet viewDist = 1.0 / pcPosition.w;\n\t\t\tlinearDepth = (viewDist - uniform.camera_params.z) / (uniform.camera_params.y - uniform.camera_params.z);\n\t\t}\n\t\treturn float2uint(linearDepth);\n\t}\n#endif\n`;\n\nvar reflDir_default2 = `\nfn getReflDir(worldNormal: vec3f, viewDir: vec3f, gloss: f32, tbn: mat3x3f) {\n\tdReflDirW = normalize(-reflect(viewDir, worldNormal));\n}\n`;\n\nvar reflDirAniso_default2 = `\nfn getReflDir(worldNormal: vec3f, viewDir: vec3f, gloss: f32, tbn: mat3x3f) {\n\tlet roughness: f32 = sqrt(1.0 - min(gloss, 1.0));\n\tlet direction: vec2f = dAnisotropyRotation;\n\tlet anisotropicT: vec3f = normalize(tbn * vec3f(direction, 0.0));\n\tlet anisotropicB: vec3f = normalize(cross(tbn[2], anisotropicT));\n\tlet anisotropy: f32 = dAnisotropy;\n\tlet anisotropicDirection: vec3f = anisotropicB;\n\tlet anisotropicTangent: vec3f = cross(anisotropicDirection, viewDir);\n\tlet anisotropicNormal: vec3f = cross(anisotropicTangent, anisotropicDirection);\n\tlet bendFactor: f32 = 1.0 - anisotropy * (1.0 - roughness);\n\tlet bendFactor4: f32 = bendFactor * bendFactor * bendFactor * bendFactor;\n\tlet bentNormal: vec3f = normalize(mix(normalize(anisotropicNormal), normalize(worldNormal), bendFactor4));\n\tdReflDirW = reflect(-viewDir, bentNormal);\n}`;\n\nvar reflectionCC_default2 = `\n#ifdef LIT_CLEARCOAT\nfn addReflectionCC(reflDir: vec3f, gloss: f32) {\n\tccReflection = ccReflection + calcReflection(reflDir, gloss);\n}\n#endif\n`;\n\nvar reflectionCube_default2 = `\nvar texture_cubeMap: texture_cube<f32>;\nvar texture_cubeMapSampler: sampler;\nuniform material_reflectivity: f32;\nfn calcReflection(reflDir: vec3f, gloss: f32) -> vec3f {\n\tvar lookupVec: vec3f = cubeMapProject(reflDir);\n\tlookupVec.x = lookupVec.x * -1.0;\n\treturn {reflectionDecode}(textureSample(texture_cubeMap, texture_cubeMapSampler, lookupVec));\n}\nfn addReflection(reflDir: vec3f, gloss: f32) {\n\tdReflection = dReflection + vec4f(calcReflection(reflDir, gloss), uniform.material_reflectivity);\n}\n`;\n\nvar reflectionEnvHQ_default2 = `\n#ifndef ENV_ATLAS\n\t#define ENV_ATLAS\n\tvar texture_envAtlas: texture_2d<f32>;\n\tvar texture_envAtlasSampler: sampler;\n#endif\nvar texture_cubeMap: texture_cube<f32>;\nvar texture_cubeMapSampler: sampler;\nuniform material_reflectivity: f32;\nfn calcReflection(reflDir: vec3f, gloss: f32) -> vec3f {\n\tlet dir: vec3f = cubeMapProject(reflDir) * vec3f(-1.0, 1.0, 1.0);\n\tlet uv: vec2f = toSphericalUv(dir);\n\tlet level: f32 = saturate(1.0 - gloss) * 5.0;\n\tlet ilevel: f32 = floor(level);\n\tlet flevel: f32 = level - ilevel;\n\tlet sharp: vec3f = {reflectionCubemapDecode}(textureSample(texture_cubeMap, texture_cubeMapSampler, dir));\n\tlet roughA: vec3f = {reflectionDecode}(textureSample(texture_envAtlas, texture_envAtlasSampler, mapRoughnessUv(uv, ilevel)));\n\tlet roughB: vec3f = {reflectionDecode}(textureSample(texture_envAtlas, texture_envAtlasSampler, mapRoughnessUv(uv, ilevel + 1.0)));\n\treturn processEnvironment(mix(sharp, mix(roughA, roughB, flevel), min(level, 1.0)));\n}\nfn addReflection(reflDir: vec3f, gloss: f32) {\n\tdReflection = dReflection + vec4f(calcReflection(reflDir, gloss), uniform.material_reflectivity);\n}\n`;\n\nvar reflectionEnv_default2 = `\n#ifndef ENV_ATLAS\n#define ENV_ATLAS\n\tvar texture_envAtlas: texture_2d<f32>;\n\tvar texture_envAtlasSampler: sampler;\n#endif\nuniform material_reflectivity: f32;\nfn shinyMipLevel(uv: vec2f) -> f32 {\n\tlet dx: vec2f = dpdx(uv);\n\tlet dy: vec2f = dpdy(uv);\n\tlet uv2: vec2f = vec2f(fract(uv.x + 0.5), uv.y);\n\tlet dx2: vec2f = dpdx(uv2);\n\tlet dy2: vec2f = dpdy(uv2);\n\tlet maxd: f32 = min(max(dot(dx, dx), dot(dy, dy)), max(dot(dx2, dx2), dot(dy2, dy2)));\n\treturn clamp(0.5 * log2(maxd) - 1.0 + uniform.textureBias, 0.0, 5.0);\n}\nfn calcReflection(reflDir: vec3f, gloss: f32) -> vec3f {\n\tlet dir: vec3f = cubeMapProject(reflDir) * vec3f(-1.0, 1.0, 1.0);\n\tlet uv: vec2f = toSphericalUv(dir);\n\tlet level: f32 = saturate(1.0 - gloss) * 5.0;\n\tlet ilevel: f32 = floor(level);\n\tlet level2: f32 = shinyMipLevel(uv * atlasSize);\n\tlet ilevel2: f32 = floor(level2);\n\tvar uv0: vec2f;\n\tvar uv1: vec2f;\n\tvar weight: f32;\n\tif (ilevel == 0.0) {\n\t\tuv0 = mapShinyUv(uv, ilevel2);\n\t\tuv1 = mapShinyUv(uv, ilevel2 + 1.0);\n\t\tweight = level2 - ilevel2;\n\t} else {\n\t\tuv0 = mapRoughnessUv(uv, ilevel);\n\t\tuv1 = uv0;\n\t\tweight = 0.0;\n\t}\n\tlet linearA: vec3f = {reflectionDecode}(textureSample(texture_envAtlas, texture_envAtlasSampler, uv0));\n\tlet linearB: vec3f = {reflectionDecode}(textureSample(texture_envAtlas, texture_envAtlasSampler, uv1));\n\tlet linear0: vec3f = mix(linearA, linearB, weight);\n\tlet linear1: vec3f = {reflectionDecode}(textureSample(texture_envAtlas, texture_envAtlasSampler, mapRoughnessUv(uv, ilevel + 1.0)));\n\treturn processEnvironment(mix(linear0, linear1, level - ilevel));\n}\nfn addReflection(reflDir: vec3f, gloss: f32) {\n\tdReflection = dReflection + vec4f(calcReflection(reflDir, gloss), uniform.material_reflectivity);\n}\n`;\n\nvar reflectionSphere_default2 = `\n#ifndef VIEWMATRIX\n\t#define VIEWMATRIX\n\tuniform matrix_view: mat4x4f;\n#endif\nvar texture_sphereMap: texture_2d<f32>;\nvar texture_sphereMapSampler: sampler;\nuniform material_reflectivity: f32;\nfn calcReflection(reflDir: vec3f, gloss: f32) -> vec3f {\n\tlet viewRotationMatrix = mat3x3f(uniform.matrix_view[0].xyz, uniform.matrix_view[1].xyz, uniform.matrix_view[2].xyz);\n\tlet reflDirV: vec3f = viewRotationMatrix * reflDir;\n\tlet m: f32 = 2.0 * sqrt(dot(reflDirV.xy, reflDirV.xy) + (reflDirV.z + 1.0) * (reflDirV.z + 1.0));\n\tlet sphereMapUv: vec2f = reflDirV.xy / m + 0.5;\n\treturn {reflectionDecode}(textureSample(texture_sphereMap, texture_sphereMapSampler, sphereMapUv));\n}\nfn addReflection(reflDir: vec3f, gloss: f32) {\n\tdReflection = dReflection + vec4f(calcReflection(reflDir, gloss), uniform.material_reflectivity);\n}\n`;\n\nvar reflectionSheen_default2 = `\nfn addReflectionSheen(worldNormal: vec3f, viewDir: vec3f, gloss: f32) {\n\tlet NoV: f32 = dot(worldNormal, viewDir);\n\tlet alphaG: f32 = gloss * gloss;\n\tlet a: f32 = select(\n\t\t-8.48 * alphaG + 14.3 * gloss - 9.95,\n\t\t-339.2 * alphaG + 161.4 * gloss - 25.9,\n\t\tgloss < 0.25\n\t);\n\tlet b: f32 = select(\n\t\t1.97 * alphaG - 3.27 * gloss + 0.72,\n\t\t44.0 * alphaG - 23.7 * gloss + 3.26,\n\t\tgloss < 0.25\n\t);\n\tlet dg_add: f32 = select(\n\t\t0.1 * ( gloss - 0.25 ),\n\t\t0.0,\n\t\tgloss < 0.25\n\t);\n\tlet dg: f32 = exp( a * NoV + b ) + dg_add;\n\tsReflection = sReflection + (calcReflection(worldNormal, 0.0) * saturate(dg));\n}`;\n\nvar refractionCube_default2 = `\nfn refract2(viewVec: vec3f, normal: vec3f, IOR: f32) -> vec3f {\n\tlet vn: f32 = dot(viewVec, normal);\n\tlet k: f32 = 1.0 - IOR * IOR * (1.0 - vn * vn);\n\tlet refrVec: vec3f = IOR * viewVec - (IOR * vn + sqrt(k)) * normal;\n\treturn refrVec;\n}\nfn addRefraction(\n\tworldNormal: vec3f,\n\tviewDir: vec3f,\n\tthickness: f32,\n\tgloss: f32,\n\tspecularity: vec3f,\n\talbedo: vec3f,\n\ttransmission: f32,\n\trefractionIndex: f32,\n\tdispersion: f32\n#if defined(LIT_IRIDESCENCE)\n\t, iridescenceFresnel: vec3f,\n\tiridescenceIntensity: f32\n#endif\n) {\n\tlet tmpRefl: vec4f = dReflection;\n\tlet reflectionDir: vec3f = refract2(-viewDir, worldNormal, refractionIndex);\n\tdReflection = vec4f(0.0);\n\taddReflection(reflectionDir, gloss);\n\tdDiffuseLight = mix(dDiffuseLight, dReflection.rgb * albedo, transmission);\n\tdReflection = tmpRefl;\n}\n`;\n\nvar refractionDynamic_default2 = `\nuniform material_invAttenuationDistance: f32;\nuniform material_attenuation: vec3f;\nfn evalRefractionColor(refractionVector: vec3f, gloss: f32, refractionIndex: f32) -> vec3f {\n\tlet pointOfRefraction: vec4f = vec4f(vPositionW + refractionVector, 1.0);\n\tlet projectionPoint: vec4f = uniform.matrix_viewProjection * pointOfRefraction;\n\tlet uv: vec2f = getGrabScreenPos(projectionPoint);\n\tlet iorToRoughness: f32 = (1.0 - gloss) * clamp((1.0 / refractionIndex) * 2.0 - 2.0, 0.0, 1.0);\n\tlet refractionLod: f32 = log2(uniform.uScreenSize.x) * iorToRoughness;\n\tvar refraction: vec3f = textureSampleLevel(uSceneColorMap, uSceneColorMapSampler, uv, refractionLod).rgb;\n\t#ifdef SCENE_COLORMAP_GAMMA\n\t\trefraction = decodeGamma3(refraction);\n\t#endif\n\treturn refraction;\n}\nfn addRefraction(\n\tworldNormal: vec3f,\n\tviewDir: vec3f,\n\tthickness: f32,\n\tgloss: f32,\n\tspecularity: vec3f,\n\talbedo: vec3f,\n\ttransmission: f32,\n\trefractionIndex: f32,\n\tdispersion: f32,\n#if defined(LIT_IRIDESCENCE)\n\tiridescenceFresnel: vec3f,\n\tiridescenceIntensity: f32\n#endif\n) {\n\tvar modelScale: vec3f;\n\tmodelScale.x = length(uniform.matrix_model[0].xyz);\n\tmodelScale.y = length(uniform.matrix_model[1].xyz);\n\tmodelScale.z = length(uniform.matrix_model[2].xyz);\n\tlet scale: vec3f = thickness * modelScale;\n\tvar refractionVector = normalize(refract(-viewDir, worldNormal, refractionIndex)) * scale;\n\tvar refraction = evalRefractionColor(refractionVector, gloss, refractionIndex);\n\t#ifdef LIT_DISPERSION\n\t\tlet halfSpread: f32 = (1.0 / refractionIndex - 1.0) * 0.025 * dispersion;\n\t\tlet refractionIndexR: f32 = refractionIndex - halfSpread;\n\t\trefractionVector = normalize(refract(-viewDir, worldNormal, refractionIndexR)) * scale;\n\t\trefraction.r = evalRefractionColor(refractionVector, gloss, refractionIndexR).r;\n\t\tlet refractionIndexB: f32 = refractionIndex + halfSpread;\n\t\trefractionVector = normalize(refract(-viewDir, worldNormal, refractionIndexB)) * scale;\n\t\trefraction.b = evalRefractionColor(refractionVector, gloss, refractionIndexB).b;\n\t#endif\n\tvar transmittance: vec3f;\n\tif (uniform.material_invAttenuationDistance != 0.0)\n\t{\n\t\tlet attenuation: vec3f = -log(uniform.material_attenuation) * uniform.material_invAttenuationDistance;\n\t\ttransmittance = exp(-attenuation * length(refractionVector));\n\t}\n\telse\n\t{\n\t\ttransmittance = vec3f(1.0);\n\t}\n\tlet fresnel: vec3f = vec3f(1.0) -\n\t\tgetFresnel(\n\t\t\tdot(viewDir, worldNormal),\n\t\t\tgloss,\n\t\t\tspecularity\n\t\t#if defined(LIT_IRIDESCENCE)\n\t\t\t, iridescenceFresnel,\n\t\t\tiridescenceIntensity\n\t\t#endif\n\t\t);\n\tdDiffuseLight = mix(dDiffuseLight, refraction * transmittance * fresnel, transmission);\n}\n`;\n\nvar reproject_default3 = `\nvarying vUv0: vec2f;\n#ifdef CUBEMAP_SOURCE\n\tvar sourceCube: texture_cube<f32>;\n\tvar sourceCubeSampler : sampler;\n#else\n\tvar sourceTex: texture_2d<f32>;\n\tvar sourceTexSampler : sampler;\n#endif\n#ifdef USE_SAMPLES_TEX\n\tvar samplesTex: texture_2d<f32>;\n\tvar samplesTexSampler : sampler;\n\tuniform samplesTexInverseSize: vec2f;\n#endif\nuniform params: vec3f;\nfn targetFace() -> f32 { return uniform.params.x; }\nfn targetTotalPixels() -> f32 { return uniform.params.y; }\nfn sourceTotalPixels() -> f32 { return uniform.params.z; }\nconst PI: f32 = 3.141592653589793;\nfn saturate(x: f32) -> f32 {\n\treturn clamp(x, 0.0, 1.0);\n}\n#include \"decodePS\"\n#include \"encodePS\"\nfn modifySeams(dir: vec3f, scale: f32) -> vec3f {\n\tlet adir = abs(dir);\n\tlet M = max(max(adir.x, adir.y), adir.z);\n\treturn dir / M * vec3f(\n\t\tselect(scale, 1.0, adir.x == M),\n\t\tselect(scale, 1.0, adir.y == M),\n\t\tselect(scale, 1.0, adir.z == M)\n\t);\n}\nfn toSpherical(dir: vec3f) -> vec2f {\n\tlet nonZeroXZ = any(dir.xz != vec2f(0.0, 0.0));\n\treturn vec2f(select(0.0, atan2(dir.x, dir.z), nonZeroXZ), asin(dir.y));\n}\nfn fromSpherical(uv: vec2f) -> vec3f {\n\treturn vec3f(cos(uv.y) * sin(uv.x),\n\t\t\t\tsin(uv.y),\n\t\t\t\tcos(uv.y) * cos(uv.x));\n}\nfn getDirectionEquirect(uv: vec2f) -> vec3f {\n\treturn fromSpherical((vec2f(uv.x, 1.0 - uv.y) * 2.0 - 1.0) * vec2f(PI, PI * 0.5));\n}\nfn signNotZero(k: f32) -> f32 {\n\treturn select(-1.0, 1.0, k >= 0.0);\n}\nfn signNotZeroVec2(v: vec2f) -> vec2f {\n\treturn vec2f(signNotZero(v.x), signNotZero(v.y));\n}\nfn octDecode(o: vec2f) -> vec3f {\n\tvar v = vec3f(o.x, 1.0 - abs(o.x) - abs(o.y), o.y);\n\tif (v.y < 0.0) {\n\t\tvar temp: vec2f = (1.0 - abs(v.zx)) * signNotZeroVec2(v.xz);\n\t\tv = vec3f(temp.x, v.y, temp.y);\n\t}\n\treturn normalize(v);\n}\nfn getDirectionOctahedral(uv: vec2f) -> vec3f {\n\treturn octDecode(vec2f(uv.x, 1.0 - uv.y) * 2.0 - 1.0);\n}\nfn octEncode(v: vec3f) -> vec2f {\n\tlet l1norm = abs(v.x) + abs(v.y) + abs(v.z);\n\tvar result = v.xz * (1.0 / l1norm);\n\tif (v.y < 0.0) {\n\t\tresult = (1.0 - abs(result.yx)) * signNotZeroVec2(result.xy);\n\t}\n\treturn result;\n}\n#ifdef CUBEMAP_SOURCE\n\tfn sampleCubemapDir(dir: vec3f) -> vec4f {\n\t\treturn textureSample(sourceCube, sourceCubeSampler, modifySeams(dir, 1.0));\n\t}\n\tfn sampleCubemapSph(sph: vec2f) -> vec4f {\n\t\treturn sampleCubemapDir(fromSpherical(sph));\n\t}\n\tfn sampleCubemapDirLod(dir: vec3f, mipLevel: f32) -> vec4f {\n\t\treturn textureSampleLevel(sourceCube, sourceCubeSampler, modifySeams(dir, 1.0), mipLevel);\n\t}\n\tfn sampleCubemapSphLod(sph: vec2f, mipLevel: f32) -> vec4f {\n\t\treturn sampleCubemapDirLod(fromSpherical(sph), mipLevel);\n\t}\n#else\n\tfn sampleEquirectSph(sph: vec2f) -> vec4f {\n\t\tlet uv = sph / vec2f(PI * 2.0, PI) + 0.5;\n\t\treturn textureSample(sourceTex, sourceTexSampler, vec2f(uv.x, 1.0 - uv.y));\n\t}\n\tfn sampleEquirectDir(dir: vec3f) -> vec4f {\n\t\treturn sampleEquirectSph(toSpherical(dir));\n\t}\n\tfn sampleEquirectSphLod(sph: vec2f, mipLevel: f32) -> vec4f {\n\t\tlet uv = sph / vec2f(PI * 2.0, PI) + 0.5;\n\t\treturn textureSampleLevel(sourceTex, sourceTexSampler, vec2f(uv.x, 1.0 - uv.y), mipLevel);\n\t}\n\tfn sampleEquirectDirLod(dir: vec3f, mipLevel: f32) -> vec4f {\n\t\treturn sampleEquirectSphLod(toSpherical(dir), mipLevel);\n\t}\n\tfn sampleOctahedralDir(dir: vec3f) -> vec4f {\n\t\tlet uv = octEncode(dir) * 0.5 + 0.5;\n\t\treturn textureSample(sourceTex, sourceTexSampler, vec2f(uv.x, 1.0 - uv.y));\n\t}\n\tfn sampleOctahedralSph(sph: vec2f) -> vec4f {\n\t\treturn sampleOctahedralDir(fromSpherical(sph));\n\t}\n\tfn sampleOctahedralDirLod(dir: vec3f, mipLevel: f32) -> vec4f {\n\t\tlet uv = octEncode(dir) * 0.5 + 0.5;\n\t\treturn textureSampleLevel(sourceTex, sourceTexSampler, vec2f(uv.x, 1.0 - uv.y), mipLevel);\n\t}\n\tfn sampleOctahedralSphLod(sph: vec2f, mipLevel: f32) -> vec4f {\n\t\treturn sampleOctahedralDirLod(fromSpherical(sph), mipLevel);\n\t}\n#endif\nfn getDirectionCubemap(uv: vec2f) -> vec3f {\n\tlet st = uv * 2.0 - 1.0;\n\tlet face = targetFace();\n\tvar vec: vec3f;\n\tif (face == 0.0) {\n\t\tvec = vec3f(1, -st.y, -st.x);\n\t} else if (face == 1.0) {\n\t\tvec = vec3f(-1, -st.y, st.x);\n\t} else if (face == 2.0) {\n\t\tvec = vec3f(st.x, 1, st.y);\n\t} else if (face == 3.0) {\n\t\tvec = vec3f(st.x, -1, -st.y);\n\t} else if (face == 4.0) {\n\t\tvec = vec3f(st.x, -st.y, 1);\n\t} else {\n\t\tvec = vec3f(-st.x, -st.y, -1);\n\t}\n\treturn normalize(modifySeams(vec, 1.0));\n}\nfn matrixFromVector(n: vec3f) -> mat3x3f {\n\tlet a = 1.0 / (1.0 + n.z);\n\tlet b = -n.x * n.y * a;\n\tlet b1 = vec3f(1.0 - n.x * n.x * a, b, -n.x);\n\tlet b2 = vec3f(b, 1.0 - n.y * n.y * a, -n.y);\n\treturn mat3x3f(b1, b2, n);\n}\nfn matrixFromVectorSlow(n: vec3f) -> mat3x3f {\n\tlet up = select(vec3f(0.0, 0.0, select(-1.0, 1.0, n.y > 0.0)), vec3f(0.0, 1.0, 0.0), abs(n.y) > 0.0000001);\n\tlet x = normalize(cross(up, n));\n\tlet y = cross(n, x);\n\treturn mat3x3f(x, y, n);\n}\nfn reproject(uv: vec2f) -> vec4f {\n\tif ({NUM_SAMPLES} <= 1) {\n\t\treturn {ENCODE_FUNC}({DECODE_FUNC}({SOURCE_FUNC}Dir({TARGET_FUNC}(uv))));\n\t} else {\n\t\tlet t = {TARGET_FUNC}(uv);\n\t\tlet tu = dpdx(t);\n\t\tlet tv = dpdy(t);\n\t\tvar result = vec3f(0.0);\n\t\tfor (var u = 0.0; u < {NUM_SAMPLES_SQRT}; u += 1.0) {\n\t\t\tfor (var v = 0.0; v < {NUM_SAMPLES_SQRT}; v += 1.0) {\n\t\t\t\tresult += {DECODE_FUNC}({SOURCE_FUNC}Dir(normalize(t +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttu * (u / {NUM_SAMPLES_SQRT} - 0.5) +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttv * (v / {NUM_SAMPLES_SQRT} - 0.5))));\n\t\t\t}\n\t\t}\n\t\treturn {ENCODE_FUNC}(result / ({NUM_SAMPLES_SQRT} * {NUM_SAMPLES_SQRT}));\n\t}\n}\nconst unpackFloat: vec4f = vec4f(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0);\n#ifdef USE_SAMPLES_TEX\n\tfn unpackSample(i: i32, L: ptr<function, vec3f>, mipLevel: ptr<function, f32>) {\n\t\tvar u = (f32(i * 4) + 0.5) * uniform.samplesTexInverseSize.x;\n\t\tvar v = (floor(u) + 0.5) * uniform.samplesTexInverseSize.y;\n\t\tvar raw: vec4f;\n\t\traw.x = dot(textureSample(samplesTex, samplesTexSampler, vec2f(u, v)), unpackFloat); u += uniform.samplesTexInverseSize.x;\n\t\traw.y = dot(textureSample(samplesTex, samplesTexSampler, vec2f(u, v)), unpackFloat); u += uniform.samplesTexInverseSize.x;\n\t\traw.z = dot(textureSample(samplesTex, samplesTexSampler, vec2f(u, v)), unpackFloat); u += uniform.samplesTexInverseSize.x;\n\t\traw.w = dot(textureSample(samplesTex, samplesTexSampler, vec2f(u, v)), unpackFloat);\n\t\t*L = raw.xyz * 2.0 - 1.0;\n\t\t*mipLevel = raw.w * 8.0;\n\t}\n\tfn prefilterSamples(uv: vec2f) -> vec4f {\n\t\tlet vecSpace = matrixFromVectorSlow({TARGET_FUNC}(uv));\n\t\tvar L: vec3f;\n\t\tvar mipLevel: f32;\n\t\tvar result = vec3f(0.0);\n\t\tvar totalWeight = 0.0;\n\t\tfor (var i = 0; i < {NUM_SAMPLES}; i += 1) {\n\t\t\tunpackSample(i, &L, &mipLevel);\n\t\t\tresult += {DECODE_FUNC}({SOURCE_FUNC}DirLod(vecSpace * L, mipLevel)) * L.z;\n\t\t\ttotalWeight += L.z;\n\t\t}\n\t\treturn {ENCODE_FUNC}(result / totalWeight);\n\t}\n\tfn prefilterSamplesUnweighted(uv: vec2f) -> vec4f {\n\t\tlet vecSpace = matrixFromVectorSlow({TARGET_FUNC}(uv));\n\t\tvar L: vec3f;\n\t\tvar mipLevel: f32;\n\t\tvar result = vec3f(0.0);\n\t\tfor (var i = 0; i < {NUM_SAMPLES}; i += 1) {\n\t\t\tunpackSample(i, &L, &mipLevel);\n\t\t\tresult += {DECODE_FUNC}({SOURCE_FUNC}DirLod(vecSpace * L, mipLevel));\n\t\t}\n\t\treturn {ENCODE_FUNC}(result / f32({NUM_SAMPLES}));\n\t}\n#endif\n@fragment\nfn fragmentMain(input : FragmentInput) -> FragmentOutput {\n\tvar output: FragmentOutput;\n\toutput.color = {PROCESS_FUNC}(input.vUv0);\n\treturn output;\n}\n`;\n\nvar reproject_default4 = `\nattribute vertex_position: vec2f;\nuniform uvMod: vec4f;\nvarying vUv0: vec2f;\n@vertex\nfn vertexMain(input: VertexInput) -> VertexOutput {\n\tvar output: VertexOutput;\n\toutput.position = vec4f(input.vertex_position, 0.5, 1.0);\n\toutput.vUv0 = getImageEffectUV((input.vertex_position * 0.5 + vec2f(0.5, 0.5)) * uniform.uvMod.xy + uniform.uvMod.zw);\n\treturn output;\n}\n`;\n\nvar screenDepth_default2 = `\nvar uSceneDepthMap: texture_2d<uff>;\n#ifndef SCREENSIZE\n\t#define SCREENSIZE\n\tuniform uScreenSize: vec4f;\n#endif\n#ifndef VIEWMATRIX\n\t#define VIEWMATRIX\n\tuniform matrix_view: mat4x4f;\n#endif\n#ifndef LINEARIZE_DEPTH\n\t#define LINEARIZE_DEPTH\n\t#ifndef CAMERAPLANES\n\t\t#define CAMERAPLANES\n\t\tuniform camera_params: vec4f;\n\t#endif\n\tfn linearizeDepth(z: f32) -> f32 {\n\t\tif (uniform.camera_params.w == 0.0) {\n\t\t\treturn (uniform.camera_params.z * uniform.camera_params.y) / (uniform.camera_params.y + z * (uniform.camera_params.z - uniform.camera_params.y));\n\t\t} else {\n\t\t\treturn uniform.camera_params.z + z * (uniform.camera_params.y - uniform.camera_params.z);\n\t\t}\n\t}\n#endif\nfn delinearizeDepth(linearDepth: f32) -> f32 {\n\tif (uniform.camera_params.w == 0.0) {\n\t\treturn (uniform.camera_params.y * (uniform.camera_params.z - linearDepth)) / (linearDepth * (uniform.camera_params.z - uniform.camera_params.y));\n\t} else {\n\t\treturn (linearDepth - uniform.camera_params.z) / (uniform.camera_params.y - uniform.camera_params.z);\n\t}\n}\nfn getLinearScreenDepth(uv: vec2f) -> f32 {\n\tlet textureSize = textureDimensions(uSceneDepthMap, 0);\n\tlet texel: vec2i = vec2i(uv * vec2f(textureSize));\n\t#ifdef SCENE_DEPTHMAP_LINEAR\n\t\t#ifdef SCENE_DEPTHMAP_RECIPROCAL\n\t\t\tlet recip: f32 = textureLoad(uSceneDepthMap, texel, 0).r;\n\t\t\treturn select(uniform.camera_params.y, 1.0 / recip, recip > 0.0);\n\t\t#else\n\t\t\treturn textureLoad(uSceneDepthMap, texel, 0).r;\n\t\t#endif\n\t#else\n\t\treturn linearizeDepth(textureLoad(uSceneDepthMap, texel, 0).r);\n\t#endif\n}\n#ifndef VERTEXSHADER\n\tfn getLinearScreenDepthFrag() -> f32 {\n\t\tlet uv: vec2f = pcPosition.xy * uniform.uScreenSize.zw;\n\t\treturn getLinearScreenDepth(uv);\n\t}\n#endif\nfn getLinearDepth(pos: vec3f) -> f32 {\n\treturn -(uniform.matrix_view * vec4f(pos, 1.0)).z;\n}\n`;\n\nvar shadowCascades_default2 = `\nfn getShadowCascadeIndex(shadowCascadeDistances: vec4f, shadowCascadeCount: i32) -> i32 {\n\tlet depth: f32 = 1.0 / pcPosition.w;\n\tlet comparisons: vec4f = step(shadowCascadeDistances, vec4f(depth));\n\tlet cascadeIndex: i32 = i32(dot(comparisons, vec4f(1.0)));\n\treturn min(cascadeIndex, shadowCascadeCount - 1);\n}\nfn ditherShadowCascadeIndex(cascadeIndex_in: i32, shadowCascadeDistances: vec4f, shadowCascadeCount: i32, blendFactor: f32) -> i32 {\n\tvar cascadeIndex: i32 = cascadeIndex_in;\n\tif (cascadeIndex < shadowCascadeCount - 1) {\n\t\tlet currentRangeEnd: f32 = shadowCascadeDistances[cascadeIndex];\n\t\tlet transitionStart: f32 = blendFactor * currentRangeEnd;\n\t\tlet depth: f32 = 1.0 / pcPosition.w;\n\t\tif (depth > transitionStart) {\n\t\t\tlet transitionFactor: f32 = smoothstep(transitionStart, currentRangeEnd, depth);\n\t\t\tlet dither: f32 = fract(sin(dot(pcPosition.xy, vec2f(12.9898, 78.233))) * 43758.5453);\n\t\t\tif (dither < transitionFactor) {\n\t\t\t\tcascadeIndex = cascadeIndex + 1;\n\t\t\t}\n\t\t}\n\t}\n\treturn cascadeIndex;\n}\nfn fadeShadow(shadowCoord_in: vec3f, shadowCascadeDistances: vec4f) -> vec3f {\n\tvar shadowCoord: vec3f = shadowCoord_in;\n\tlet depth: f32 = 1.0 / pcPosition.w;\n\tif (depth > shadowCascadeDistances.w) {\n\t\tshadowCoord.z = -9999999.0;\n\t}\n\treturn shadowCoord;\n}\n`;\n\nvar shadow_caster_default2 = `\nfn getShadowOutput() -> vec4f {\n\tvar depth: f32 = pcPosition.z;\n\t#if SHADOW_TYPE == VSM_16F || SHADOW_TYPE == VSM_32F\n\t\tif (!(depth >= 0.0 && depth <= 1.0)) {\n\t\t\tdiscard;\n\t\t}\n\t\t#if SHADOW_TYPE == VSM_32F\n\t\t\tlet exponent: f32 = 15.0;\n\t\t#else\n\t\t\tlet exponent: f32 = 5.54;\n\t\t#endif\n\t\tdepth = 2.0 * depth - 1.0;\n\t\tdepth = exp(exponent * depth);\n\t\treturn vec4f(depth, depth * depth, 1.0, 1.0);\n\t#elif SHADOW_TYPE == PCSS_32F\n\t\treturn vec4f(depth, 0.0, 0.0, 1.0);\n\t#else\n\t\treturn vec4f(1.0);\n\t#endif\n}\n`;\n\nvar shadowEVSM_default2 = `\nfn linstep(a: f32, b: f32, v: f32) -> f32 {\n\treturn clamp((v - a) / (b - a), 0.0, 1.0);\n}\nfn reduceLightBleeding(pMax: f32, amount: f32) -> f32 {\n\t return linstep(amount, 1.0, pMax);\n}\nfn chebyshevUpperBound(moments: vec2f, mean: f32, minVariance: f32, lightBleedingReduction: f32) -> f32 {\n\tvar variance: f32 = moments.y - (moments.x * moments.x);\n\tvariance = max(variance, minVariance);\n\tlet d: f32 = mean - moments.x;\n\tvar pMax: f32 = variance / (variance + (d * d));\n\tpMax = reduceLightBleeding(pMax, lightBleedingReduction);\n\treturn select(pMax, 1.0, mean <= moments.x);\n}\nfn calculateEVSM(moments_in: vec3f, Z_in: f32, vsmBias: f32, exponent: f32) -> f32 {\n\tlet Z: f32 = 2.0 * Z_in - 1.0;\n\tlet warpedDepth: f32 = exp(exponent * Z);\n\tlet moments: vec2f = moments_in.xy + vec2f(warpedDepth, warpedDepth*warpedDepth) * (1.0 - moments_in.z);\n\tlet VSMBias: f32 = vsmBias;\n\tlet depthScale: f32 = VSMBias * exponent * warpedDepth;\n\tlet minVariance1: f32 = depthScale * depthScale;\n\treturn chebyshevUpperBound(moments, warpedDepth, minVariance1, 0.1);\n}\nfn VSM16(tex: texture_2d<f32>, texSampler: sampler, texCoords: vec2f, resolution: f32, Z: f32, vsmBias: f32, exponent: f32) -> f32 {\n\tlet moments: vec3f = textureSampleLevel(tex, texSampler, texCoords, 0.0).xyz;\n\treturn calculateEVSM(moments, Z, vsmBias, exponent);\n}\nfn getShadowVSM16(shadowMap: texture_2d<f32>, shadowMapSampler: sampler, shadowCoord: vec3f, shadowParams: vec4f, exponent: f32) -> f32 {\n\treturn VSM16(shadowMap, shadowMapSampler, shadowCoord.xy, shadowParams.x, shadowCoord.z, shadowParams.y, exponent);\n}\nfn getShadowSpotVSM16(shadowMap: texture_2d<f32>, shadowMapSampler: sampler, shadowCoord: vec3f, shadowParams: vec4f, exponent: f32, lightDir: vec3f) -> f32 {\n\tlet Z: f32 = length(lightDir) * shadowParams.w + shadowParams.z;\n\treturn VSM16(shadowMap, shadowMapSampler, shadowCoord.xy, shadowParams.x, Z, shadowParams.y, exponent);\n}\nfn VSM32(tex: texture_2d<f32>, texSampler: sampler, texCoords_in: vec2f, resolution: f32, Z: f32, vsmBias: f32, exponent: f32) -> f32 {\n\t#ifdef CAPS_TEXTURE_FLOAT_FILTERABLE\n\t\tvar moments: vec3f = textureSampleLevel(tex, texSampler, texCoords_in, 0.0).xyz;\n\t#else\n\t\tvar pixelSize : f32 = 1.0 / resolution;\n\t\tlet texCoords: vec2f = texCoords_in - vec2f(pixelSize);\n\t\tlet s00: vec3f = textureSampleLevel(tex, texSampler, texCoords, 0.0).xyz;\n\t\tlet s10: vec3f = textureSampleLevel(tex, texSampler, texCoords + vec2f(pixelSize, 0.0), 0.0).xyz;\n\t\tlet s01: vec3f = textureSampleLevel(tex, texSampler, texCoords + vec2f(0.0, pixelSize), 0.0).xyz;\n\t\tlet s11: vec3f = textureSampleLevel(tex, texSampler, texCoords + vec2f(pixelSize), 0.0).xyz;\n\t\tlet fr: vec2f = fract(texCoords * resolution);\n\t\tlet h0: vec3f = mix(s00, s10, fr.x);\n\t\tlet h1: vec3f = mix(s01, s11, fr.x);\n\t\tvar moments: vec3f = mix(h0, h1, fr.y);\n\t#endif\n\treturn calculateEVSM(moments, Z, vsmBias, exponent);\n}\nfn getShadowVSM32(shadowMap: texture_2d<f32>, shadowMapSampler: sampler, shadowCoord: vec3f, shadowParams: vec4f, exponent: f32) -> f32 {\n\treturn VSM32(shadowMap, shadowMapSampler, shadowCoord.xy, shadowParams.x, shadowCoord.z, shadowParams.y, exponent);\n}\nfn getShadowSpotVSM32(shadowMap: texture_2d<f32>, shadowMapSampler: sampler, shadowCoord: vec3f, shadowParams: vec4f, exponent: f32, lightDir: vec3f) -> f32 {\n\tlet Z: f32 = length(lightDir) * shadowParams.w + shadowParams.z;\n\treturn VSM32(shadowMap, shadowMapSampler, shadowCoord.xy, shadowParams.x, Z, shadowParams.y, exponent);\n}\n`;\n\nvar shadowPCF1_default2 = `\nfn getShadowPCF1x1(shadowMap: texture_depth_2d, shadowMapSampler: sampler_comparison, shadowCoord: vec3f, shadowParams: vec4f) -> f32 {\n\treturn textureSampleCompareLevel(shadowMap, shadowMapSampler, shadowCoord.xy, shadowCoord.z);\n}\nfn getShadowSpotPCF1x1(shadowMap: texture_depth_2d, shadowMapSampler: sampler_comparison, shadowCoord: vec3f, shadowParams: vec4f) -> f32 {\n\treturn textureSampleCompareLevel(shadowMap, shadowMapSampler, shadowCoord.xy, shadowCoord.z);\n}\n`;\n\nvar shadowPCF3_default2 = `\nfn _getShadowPCF3x3(shadowMap: texture_depth_2d, shadowMapSampler: sampler_comparison, shadowCoord: vec3f, shadowParams: vec3f) -> f32 {\n\tlet z: f32 = shadowCoord.z;\n\tlet uv: vec2f = shadowCoord.xy * shadowParams.x;\n\tlet shadowMapSizeInv: f32 = 1.0 / shadowParams.x;\n\tlet base_uv_temp: vec2f = floor(uv + 0.5);\n\tlet s: f32 = (uv.x + 0.5 - base_uv_temp.x);\n\tlet t: f32 = (uv.y + 0.5 - base_uv_temp.y);\n\tlet base_uv: vec2f = (base_uv_temp - vec2f(0.5)) * shadowMapSizeInv;\n\tvar sum: f32 = 0.0;\n\tlet uw0: f32 = (3.0 - 2.0 * s);\n\tlet uw1: f32 = (1.0 + 2.0 * s);\n\tlet u0_offset: f32 = (2.0 - s) / uw0 - 1.0;\n\tlet u1_offset: f32 = s / uw1 + 1.0;\n\tlet vw0: f32 = (3.0 - 2.0 * t);\n\tlet vw1: f32 = (1.0 + 2.0 * t);\n\tlet v0_offset: f32 = (2.0 - t) / vw0 - 1.0;\n\tlet v1_offset: f32 = t / vw1 + 1.0;\n\tlet u0: f32 = u0_offset * shadowMapSizeInv + base_uv.x;\n\tlet v0: f32 = v0_offset * shadowMapSizeInv + base_uv.y;\n\tlet u1: f32 = u1_offset * shadowMapSizeInv + base_uv.x;\n\tlet v1: f32 = v1_offset * shadowMapSizeInv + base_uv.y;\n\tsum = sum + uw0 * vw0 * textureSampleCompareLevel(shadowMap, shadowMapSampler, vec2f(u0, v0), z);\n\tsum = sum + uw1 * vw0 * textureSampleCompareLevel(shadowMap, shadowMapSampler, vec2f(u1, v0), z);\n\tsum = sum + uw0 * vw1 * textureSampleCompareLevel(shadowMap, shadowMapSampler, vec2f(u0, v1), z);\n\tsum = sum + uw1 * vw1 * textureSampleCompareLevel(shadowMap, shadowMapSampler, vec2f(u1, v1), z);\n\tsum = sum * (1.0 / 16.0);\n\treturn sum;\n}\nfn getShadowPCF3x3(shadowMap: texture_depth_2d, shadowMapSampler: sampler_comparison, shadowCoord: vec3f, shadowParams: vec4f) -> f32 {\n\treturn _getShadowPCF3x3(shadowMap, shadowMapSampler, shadowCoord, shadowParams.xyz);\n}\nfn getShadowSpotPCF3x3(shadowMap: texture_depth_2d, shadowMapSampler: sampler_comparison, shadowCoord: vec3f, shadowParams: vec4f) -> f32 {\n\treturn _getShadowPCF3x3(shadowMap, shadowMapSampler, shadowCoord, shadowParams.xyz);\n}\n`;\n\nvar shadowPCF5_default2 = `\nfn _getShadowPCF5x5(shadowMap: texture_depth_2d, shadowMapSampler: sampler_comparison, shadowCoord: vec3f, shadowParams: vec3f) -> f32 {\n\tlet z: f32 = shadowCoord.z;\n\tlet uv: vec2f = shadowCoord.xy * shadowParams.x;\n\tlet shadowMapSizeInv: f32 = 1.0 / shadowParams.x;\n\tlet base_uv_temp: vec2f = floor(uv + 0.5);\n\tlet s: f32 = (uv.x + 0.5 - base_uv_temp.x);\n\tlet t: f32 = (uv.y + 0.5 - base_uv_temp.y);\n\tlet base_uv: vec2f = (base_uv_temp - vec2f(0.5)) * shadowMapSizeInv;\n\tlet uw0: f32 = (4.0 - 3.0 * s);\n\tlet uw1: f32 = 7.0;\n\tlet uw2: f32 = (1.0 + 3.0 * s);\n\tlet u0_offset: f32 = (3.0 - 2.0 * s) / uw0 - 2.0;\n\tlet u1_offset: f32 = (3.0 + s) / uw1;\n\tlet u2_offset: f32 = s / uw2 + 2.0;\n\tlet vw0: f32 = (4.0 - 3.0 * t);\n\tlet vw1: f32 = 7.0;\n\tlet vw2: f32 = (1.0 + 3.0 * t);\n\tlet v0_offset: f32 = (3.0 - 2.0 * t) / vw0 - 2.0;\n\tlet v1_offset: f32 = (3.0 + t) / vw1;\n\tlet v2_offset: f32 = t / vw2 + 2.0;\n\tvar sum: f32 = 0.0;\n\tlet u0: f32 = u0_offset * shadowMapSizeInv + base_uv.x;\n\tlet v0: f32 = v0_offset * shadowMapSizeInv + base_uv.y;\n\tlet u1: f32 = u1_offset * shadowMapSizeInv + base_uv.x;\n\tlet v1: f32 = v1_offset * shadowMapSizeInv + base_uv.y;\n\tlet u2: f32 = u2_offset * shadowMapSizeInv + base_uv.x;\n\tlet v2: f32 = v2_offset * shadowMapSizeInv + base_uv.y;\n\tsum = sum + uw0 * vw0 * textureSampleCompareLevel(shadowMap, shadowMapSampler, vec2f(u0, v0), z);\n\tsum = sum + uw1 * vw0 * textureSampleCompareLevel(shadowMap, shadowMapSampler, vec2f(u1, v0), z);\n\tsum = sum + uw2 * vw0 * textureSampleCompareLevel(shadowMap, shadowMapSampler, vec2f(u2, v0), z);\n\tsum = sum + uw0 * vw1 * textureSampleCompareLevel(shadowMap, shadowMapSampler, vec2f(u0, v1), z);\n\tsum = sum + uw1 * vw1 * textureSampleCompareLevel(shadowMap, shadowMapSampler, vec2f(u1, v1), z);\n\tsum = sum + uw2 * vw1 * textureSampleCompareLevel(shadowMap, shadowMapSampler, vec2f(u2, v1), z);\n\tsum = sum + uw0 * vw2 * textureSampleCompareLevel(shadowMap, shadowMapSampler, vec2f(u0, v2), z);\n\tsum = sum + uw1 * vw2 * textureSampleCompareLevel(shadowMap, shadowMapSampler, vec2f(u1, v2), z);\n\tsum = sum + uw2 * vw2 * textureSampleCompareLevel(shadowMap, shadowMapSampler, vec2f(u2, v2), z);\n\tsum = sum * (1.0 / 144.0);\n\tsum = saturate(sum);\n\treturn sum;\n}\nfn getShadowPCF5x5(shadowMap: texture_depth_2d, shadowMapSampler: sampler_comparison, shadowCoord: vec3f, shadowParams: vec4f) -> f32 {\n\treturn _getShadowPCF5x5(shadowMap, shadowMapSampler, shadowCoord, shadowParams.xyz);\n}\nfn getShadowSpotPCF5x5(shadowMap: texture_depth_2d, shadowMapSampler: sampler_comparison, shadowCoord: vec3f, shadowParams: vec4f) -> f32 {\n\treturn _getShadowPCF5x5(shadowMap, shadowMapSampler, shadowCoord, shadowParams.xyz);\n}\n`;\n\nvar shadowSoft_default2 = `\nfn fractSinRand(uv: vec2f) -> f32 {\n\tlet PI: f32 = 3.141592653589793;\n\tlet a: f32 = 12.9898; let b: f32 = 78.233; let c: f32 = 43758.5453;\n\tlet dt: f32 = dot(uv.xy, vec2f(a, b));\n\tlet sn: f32 = dt % PI;\n\treturn fract(sin(sn) * c);\n}\nstruct VogelDiskData {\n\tinvNumSamples: f32,\n\tinitialAngle: f32,\n\tcurrentPointId: f32,\n}\nfn prepareDiskConstants(data: ptr<function, VogelDiskData>, sampleCount: i32, randomSeed: f32) {\n\tlet pi2: f32 = 6.28318530718;\n\tdata.invNumSamples = 1.0 / f32(sampleCount);\n\tdata.initialAngle = randomSeed * pi2;\n\tdata.currentPointId = 0.0;\n}\nfn generateDiskSample(data: ptr<function, VogelDiskData>) -> vec2f {\n\tlet GOLDEN_ANGLE: f32 = 2.399963;\n\tlet r: f32 = sqrt((data.currentPointId + 0.5) * data.invNumSamples);\n\tlet theta: f32 = data.currentPointId * GOLDEN_ANGLE + data.initialAngle;\n\tlet offset: vec2f = vec2f(cos(theta), sin(theta)) * pow(r, 1.33);\n\tdata.currentPointId = data.currentPointId + 1.0;\n\treturn offset;\n}\nfn PCSSFindBlocker(shadowMap: texture_2d<f32>, shadowMapSampler: sampler, avgBlockerDepth: ptr<function, f32>, numBlockers: ptr<function, i32>,\n\tshadowCoords: vec2f, z: f32, shadowBlockerSamples: i32, searchWidthUv: f32, randomSeed: f32) {\n\tvar diskData: VogelDiskData;\n\tprepareDiskConstants(&diskData, shadowBlockerSamples, randomSeed);\n\tvar blockerSum: f32 = 0.0;\n\tvar numBlockers_local: i32 = 0;\n\tfor( var i: i32 = 0; i < shadowBlockerSamples; i = i + 1 ) {\n\t\tlet diskUV: vec2f = generateDiskSample(&diskData);\n\t\tlet sampleUV: vec2f = shadowCoords + diskUV * searchWidthUv;\n\t\tlet shadowMapDepth: f32 = textureSampleLevel(shadowMap, shadowMapSampler, sampleUV, 0.0).r;\n\t\tif ( shadowMapDepth < z ) {\n\t\t\tblockerSum = blockerSum + shadowMapDepth;\n\t\t\tnumBlockers_local = numBlockers_local + 1;\n\t\t}\n\t}\n\t*avgBlockerDepth = blockerSum / f32(numBlockers_local);\n\t*numBlockers = numBlockers_local;\n}\nfn PCSSFilter(shadowMap: texture_2d<f32>, shadowMapSampler: sampler, uv: vec2f, receiverDepth: f32, shadowSamples: i32, filterRadius: f32, randomSeed: f32) -> f32 {\n\tvar diskData: VogelDiskData;\n\tprepareDiskConstants(&diskData, shadowSamples, randomSeed);\n\tvar sum: f32 = 0.0;\n\tfor (var i: i32 = 0; i < shadowSamples; i = i + 1) {\n\t\tlet offsetUV: vec2f = generateDiskSample(&diskData) * filterRadius;\n\t\tlet depth: f32 = textureSampleLevel(shadowMap, shadowMapSampler, uv + offsetUV, 0.0).r;\n\t\tsum = sum + step(receiverDepth, depth);\n\t}\n\treturn sum / f32(shadowSamples);\n}\nfn PCSSDirectional(shadowMap: texture_2d<f32>, shadowMapSampler: sampler, shadowCoords: vec3f, cameraParams: vec4f, softShadowParams: vec4f) -> f32 {\n\tlet receiverDepth: f32 = shadowCoords.z;\n\tlet receiverDepthClamped: f32 = min(receiverDepth, 0.9999);\n\tlet randomSeed: f32 = fractSinRand(pcPosition.xy);\n\tlet shadowSamples: i32 = i32(softShadowParams.x);\n\tlet shadowBlockerSamples: i32 = i32(softShadowParams.y);\n\tlet penumbraSize: f32 = softShadowParams.z;\n\tlet penumbraFalloff: f32 = softShadowParams.w;\n\tlet orthoRadius: f32 = cameraParams.x;\n\tlet depthRange: f32 = cameraParams.y - cameraParams.z;\n\tlet worldPerUv: f32 = 2.0 * orthoRadius;\n\tvar filterRadius: f32;\n\tif (shadowBlockerSamples > 0) {\n\t\tlet searchWidthUv: f32 = (penumbraSize * depthRange) / worldPerUv;\n\t\tvar avgBlockerDepth: f32 = 0.0;\n\t\tvar numBlockers: i32 = 0;\n\t\tPCSSFindBlocker(shadowMap, shadowMapSampler, &avgBlockerDepth, &numBlockers, shadowCoords.xy, receiverDepthClamped, shadowBlockerSamples, searchWidthUv, randomSeed);\n\t\tif (numBlockers < 1) {\n\t\t\treturn 1.0;\n\t\t}\n\t\tlet worldDist: f32 = max((receiverDepth - avgBlockerDepth) * depthRange, 0.0);\n\t\tlet t: f32 = clamp(worldDist / depthRange, 0.0, 1.0);\n\t\tlet shape: f32 = 1.0 - pow(1.0 - t, penumbraFalloff);\n\t\tlet penumbraWorld: f32 = shape * penumbraSize * depthRange;\n\t\tfilterRadius = penumbraWorld / worldPerUv;\n\t} else {\n\t\tfilterRadius = penumbraSize / worldPerUv;\n\t}\n\treturn PCSSFilter(shadowMap, shadowMapSampler, shadowCoords.xy, receiverDepthClamped, shadowSamples, filterRadius, randomSeed);\n}\nfn getShadowPCSS(shadowMap: texture_2d<f32>, shadowMapSampler: sampler, shadowCoord: vec3f, shadowParams: vec4f, cameraParams: vec4f, softShadowParams: vec4f, lightDir: vec3f) -> f32 {\n\treturn PCSSDirectional(shadowMap, shadowMapSampler, shadowCoord, cameraParams, softShadowParams);\n}\n`;\n\nvar skinBatch_default2 = `\nattribute vertex_boneIndices: f32;\nvar texture_poseMap: texture_2d<uff>;\nfn getBoneMatrix(indexFloat: f32) -> mat4x4f {\n\tlet width = i32(textureDimensions(texture_poseMap).x);\n\tlet index: i32 = i32(indexFloat + 0.5) * 3;\n\tlet iy: i32 = index / width;\n\tlet ix: i32 = index % width;\n\tlet v1: vec4f = textureLoad(texture_poseMap, vec2i(ix + 0, iy), 0);\n\tlet v2: vec4f = textureLoad(texture_poseMap, vec2i(ix + 1, iy), 0);\n\tlet v3: vec4f = textureLoad(texture_poseMap, vec2i(ix + 2, iy), 0);\n\treturn mat4x4f(\n\t\tv1.x, v2.x, v3.x, 0,\n\t\tv1.y, v2.y, v3.y, 0,\n\t\tv1.z, v2.z, v3.z, 0,\n\t\tv1.w, v2.w, v3.w, 1.0\n\t);\n}\n`;\n\nvar skin_default2 = `\nattribute vertex_boneWeights: vec4f;\nattribute vertex_boneIndices: vec4f;\nvar texture_poseMap: texture_2d<uff>;\nstruct BoneMatrix {\n\tv1: vec4f,\n\tv2: vec4f,\n\tv3: vec4f,\n}\nfn getBoneMatrix(width: i32, index: i32) -> BoneMatrix {\n\tlet v = index / width;\n\tlet u = index % width;\n\tvar result: BoneMatrix;\n\tresult.v1 = textureLoad(texture_poseMap, vec2i(u + 0, v), 0);\n\tresult.v2 = textureLoad(texture_poseMap, vec2i(u + 1, v), 0);\n\tresult.v3 = textureLoad(texture_poseMap, vec2i(u + 2, v), 0);\n\treturn result;\n}\nfn getSkinMatrix(indicesFloat: vec4f, weights: vec4f) -> mat4x4f {\n\tlet width = i32(textureDimensions(texture_poseMap).x);\n\tvar indices = vec4i(indicesFloat + 0.5) * 3;\n\tlet boneA = getBoneMatrix(width, indices.x);\n\tlet boneB = getBoneMatrix(width, indices.y);\n\tlet boneC = getBoneMatrix(width, indices.z);\n\tlet boneD = getBoneMatrix(width, indices.w);\n\tlet v1 = boneA.v1 * weights.x + boneB.v1 * weights.y + boneC.v1 * weights.z + boneD.v1 * weights.w;\n\tlet v2 = boneA.v2 * weights.x + boneB.v2 * weights.y + boneC.v2 * weights.z + boneD.v2 * weights.w;\n\tlet v3 = boneA.v3 * weights.x + boneB.v3 * weights.y + boneC.v3 * weights.z + boneD.v3 * weights.w;\n\tlet one = dot(weights, vec4f(1.0, 1.0, 1.0, 1.0));\n\treturn mat4x4f(\n\t\tv1.x, v2.x, v3.x, 0,\n\t\tv1.y, v2.y, v3.y, 0,\n\t\tv1.z, v2.z, v3.z, 0,\n\t\tv1.w, v2.w, v3.w, one\n\t);\n}\n`;\n\nvar skybox_default3 = `\n\t#define LIT_SKYBOX_INTENSITY\n\t#include \"envProcPS\"\n\t#include \"gammaPS\"\n\t#include \"tonemappingPS\"\n\t#include \"sceneTexturesPS\"\n\t#if defined(PREPASS_PASS) || (defined(SCENE_TEXTURE_DEPTH) && defined(SKYMESH))\n\t\tvarying vLinearDepth: f32;\n\t#endif\n\t#ifdef PREPASS_PASS\n\t\t#include \"floatAsUintPS\"\n\t#endif\n\tvarying vViewDir : vec3f;\n\tuniform skyboxHighlightMultiplier : f32;\n\t#if defined(SKY_FISHEYE) && !defined(SKYMESH)\n\t\tuniform fisheye_k : f32;\n\t\tuniform fisheye_invK : f32;\n\t\tuniform fisheye_projMat00 : f32;\n\t\tuniform fisheye_projMat11 : f32;\n\t\tuniform matrix_view : mat4x4f;\n\t\tuniform cubeMapRotationMatrix : mat3x3f;\n\t\tvarying vClipXYW : vec3f;\n\t#endif\n\t#ifdef SKY_CUBEMAP\n\t\tvar texture_cubeMap : texture_cube<f32>;\n\t\tvar texture_cubeMap_sampler : sampler;\n\t\t#ifdef SKYMESH\n\t\t\tvarying vWorldPos : vec3f;\n\t\t\tuniform cubeMapRotationMatrix : mat3x3f;\n\t\t\tuniform projectedSkydomeCenter : vec3f;\n\t\t#endif\n\t#else\n\t\t#include \"sphericalPS\"\n\t\t#include \"envAtlasPS\"\n\t\tvar texture_envAtlas : texture_2d<f32>;\n\t\tvar texture_envAtlas_sampler : sampler;\n\t\tuniform mipLevel : f32;\n\t#endif\n\t@fragment\n\tfn fragmentMain(input : FragmentInput) -> FragmentOutput {\n\t\tvar output: FragmentOutput;\n\t\t#ifdef PREPASS_PASS\n\t\t\toutput.color = float2vec4(vLinearDepth);\n\t\t#else\n\t\t\tvar linear : vec3f;\n\t\t\tvar dir : vec3f;\n\t\t\t#if defined(SKY_FISHEYE) && !defined(SKYMESH)\n\t\t\t\tlet ndc : vec2f = input.vClipXYW.xy / input.vClipXYW.z;\n\t\t\t\tlet px : f32 = ndc.x / uniform.fisheye_projMat00;\n\t\t\t\tlet py : f32 = ndc.y / uniform.fisheye_projMat11;\n\t\t\t\tlet r : f32 = sqrt(px * px + py * py);\n\t\t\t\tlet theta : f32 = uniform.fisheye_k * atan(r * uniform.fisheye_invK);\n\t\t\t\tlet sinT : f32 = sin(theta);\n\t\t\t\tlet cosT : f32 = cos(theta);\n\t\t\t\tvar camDir : vec3f;\n\t\t\t\tif (r > 1e-6) {\n\t\t\t\t\tcamDir = vec3f(px / r * sinT, py / r * sinT, -cosT);\n\t\t\t\t} else {\n\t\t\t\t\tcamDir = vec3f(0.0, 0.0, -1.0);\n\t\t\t\t}\n\t\t\t\tlet viewMat3 : mat3x3f = mat3x3f(\n\t\t\t\t\tuniform.matrix_view[0].xyz,\n\t\t\t\t\tuniform.matrix_view[1].xyz,\n\t\t\t\t\tuniform.matrix_view[2].xyz\n\t\t\t\t);\n\t\t\t\tdir = transpose(viewMat3) * camDir;\n\t\t\t\tdir = dir * uniform.cubeMapRotationMatrix;\n\t\t\t#elif defined(SKY_CUBEMAP) && defined(SKYMESH)\n\t\t\t\tvar envDir : vec3f = normalize(input.vWorldPos - uniform.projectedSkydomeCenter);\n\t\t\t\tdir = envDir * uniform.cubeMapRotationMatrix;\n\t\t\t#else\n\t\t\t\tdir = input.vViewDir;\n\t\t\t#endif\n\t\t\t#ifdef SKY_CUBEMAP\n\t\t\t\tdir.x *= -1.0;\n\t\t\t\tlinear = {SKYBOX_DECODE_FNC}(textureSample(texture_cubeMap, texture_cubeMap_sampler, dir));\n\t\t\t#else\n\t\t\t\tdir *= vec3f(-1.0, 1.0, 1.0);\n\t\t\t\tlet uv : vec2f = toSphericalUv(normalize(dir));\n\t\t\t\tlinear = {SKYBOX_DECODE_FNC}(textureSample(texture_envAtlas, texture_envAtlas_sampler, mapRoughnessUv(uv, uniform.mipLevel)));\n\t\t\t#endif\n\t\t\tif (any(linear >= vec3f(64.0))) {\n\t\t\t\tlinear *= uniform.skyboxHighlightMultiplier;\n\t\t\t}\n\t\t\t\n\t\t\toutput.color = vec4f(gammaCorrectOutput(toneMap(processEnvironment(linear))), 1.0);\n\t\t\t#if defined(SCENE_TEXTURE_DEPTH) && defined(SKYMESH)\n\t\t\t\twriteSceneTextureDepth(&output, input.vLinearDepth, 1.0);\n\t\t\t#endif\n\t\t#endif\n\t\treturn output;\n\t}\n`;\n\nvar skybox_default4 = `\n\tattribute aPosition : vec4f;\n\tuniform matrix_view : mat4x4f;\n\tuniform matrix_projectionSkybox : mat4x4f;\n\tuniform cubeMapRotationMatrix : mat3x3f;\n\tvarying vViewDir : vec3f;\n\t#ifdef SKY_FISHEYE\n\t\tvarying vClipXYW : vec3f;\n\t#endif\n\t#if defined(PREPASS_PASS) || (defined(SCENE_TEXTURE_DEPTH) && defined(SKYMESH))\n\t\tvarying vLinearDepth: f32;\n\t#endif\n\t#ifdef SKYMESH\n\t\tuniform matrix_model : mat4x4f;\n\t\tvarying vWorldPos : vec3f;\n\t#endif\n\t@vertex\n\tfn vertexMain(input : VertexInput) -> VertexOutput {\n\t\tvar output : VertexOutput;\n\t\tvar view : mat4x4f = uniform.matrix_view;\n\t\t#ifdef SKYMESH\n\t\t\tvar worldPos : vec4f = uniform.matrix_model * input.aPosition;\n\t\t\toutput.vWorldPos = worldPos.xyz;\n\t\t\toutput.position = uniform.matrix_projectionSkybox * (view * worldPos);\n\t\t\t#if defined(PREPASS_PASS) || defined(SCENE_TEXTURE_DEPTH)\n\t\t\t\toutput.vLinearDepth = -(uniform.matrix_view * vec4f(worldPos.xyz, 1.0)).z;\n\t\t\t#endif\n\t\t#else\n\t\t\tview[3][0] = 0.0;\n\t\t\tview[3][1] = 0.0;\n\t\t\tview[3][2] = 0.0;\n\t\t\toutput.vViewDir = input.aPosition.xyz * uniform.cubeMapRotationMatrix;\n\t\t\t#ifdef SKY_FISHEYE\n\t\t\t\tvar viewPos : vec4f = view * input.aPosition;\n\t\t\t\toutput.position = vec4f(viewPos.xy, 0.0, -viewPos.z);\n\t\t\t\toutput.vClipXYW = vec3f(output.position.xy, output.position.w);\n\t\t\t#else\n\t\t\t\toutput.position = uniform.matrix_projectionSkybox * (view * input.aPosition);\n\t\t\t#endif\n\t\t\t#ifdef PREPASS_PASS\n\t\t\t\toutput.vLinearDepth = -pcPosition.w;\n\t\t\t#endif\n\t\t#endif\n\t\toutput.position.z = output.position.w - 1.0e-7;\n\t\treturn output;\n\t}\n`;\n\nvar sort_indirect_args_default = `\nfn writeSortIndirectArgs(\n\tbaseSlot: u32,\n\tcount: u32,\n\tslotInfo: vec4<u32>\n) {\n\tlet n = slotInfo.x;\n\tif (n >= 1u) {\n\t\tlet g = slotInfo.y;\n\t\tlet wc = (count + g - 1u) / g;\n\t\tlet off = baseSlot * 3u;\n\t\tindirectDispatchArgs[off + 0u] = wc;\n\t\tindirectDispatchArgs[off + 1u] = 1u;\n\t\tindirectDispatchArgs[off + 2u] = 1u;\n\t}\n\tif (n >= 2u) {\n\t\tlet g = slotInfo.z;\n\t\tlet wc = (count + g - 1u) / g;\n\t\tlet off = (baseSlot + 1u) * 3u;\n\t\tindirectDispatchArgs[off + 0u] = wc;\n\t\tindirectDispatchArgs[off + 1u] = 1u;\n\t\tindirectDispatchArgs[off + 2u] = 1u;\n\t}\n\tif (n >= 3u) {\n\t\tlet g = slotInfo.w;\n\t\tlet wc = (count + g - 1u) / g;\n\t\tlet off = (baseSlot + 2u) * 3u;\n\t\tindirectDispatchArgs[off + 0u] = wc;\n\t\tindirectDispatchArgs[off + 1u] = 1u;\n\t\tindirectDispatchArgs[off + 2u] = 1u;\n\t}\n}\n`;\n\nvar specular_default2 = `\n#ifdef STD_SPECULAR_CONSTANT\n\tuniform material_specular: vec3f;\n#endif\nfn getSpecularity() {\n\tvar specularColor = vec3f(1.0, 1.0, 1.0);\n\t#ifdef STD_SPECULAR_CONSTANT\n\tspecularColor = specularColor * uniform.material_specular;\n\t#endif\n\t#ifdef STD_SPECULAR_TEXTURE\n\tspecularColor = specularColor * {STD_SPECULAR_TEXTURE_DECODE}(textureSampleBias({STD_SPECULAR_TEXTURE_NAME}, {STD_SPECULAR_TEXTURE_NAME}Sampler, {STD_SPECULAR_TEXTURE_UV}, uniform.textureBias)).{STD_SPECULAR_TEXTURE_CHANNEL};\n\t#endif\n\t#ifdef STD_SPECULAR_VERTEX\n\tspecularColor = specularColor * saturate3(vVertexColor.{STD_SPECULAR_VERTEX_CHANNEL});\n\t#endif\n\tdSpecularity = specularColor;\n}\n`;\n\nvar spherical_default2 = `\nfn toSpherical(dir: vec3f) -> vec2f {\n\tlet angle_xz = select(0.0, atan2(dir.x, dir.z), any(dir.xz != vec2f(0.0)));\n\treturn vec2f(angle_xz, asin(dir.y));\n}\nfn toSphericalUv(dir : vec3f) -> vec2f {\n\tconst PI : f32 = 3.141592653589793;\n\tlet uv : vec2f = toSpherical(dir) / vec2f(PI * 2.0, PI) + vec2f(0.5, 0.5);\n\treturn vec2f(uv.x, 1.0 - uv.y);\n}\n`;\n\nvar specularityFactor_default2 = `\n#ifdef STD_SPECULARITYFACTOR_CONSTANT\n\tuniform material_specularityFactor: f32;\n#endif\nfn getSpecularityFactor() {\n\tvar specularityFactor = 1.0;\n\t#ifdef STD_SPECULARITYFACTOR_CONSTANT\n\tspecularityFactor = specularityFactor * uniform.material_specularityFactor;\n\t#endif\n\t#ifdef STD_SPECULARITYFACTOR_TEXTURE\n\tspecularityFactor = specularityFactor * textureSampleBias({STD_SPECULARITYFACTOR_TEXTURE_NAME}, {STD_SPECULARITYFACTOR_TEXTURE_NAME}Sampler, {STD_SPECULARITYFACTOR_TEXTURE_UV}, uniform.textureBias).{STD_SPECULARITYFACTOR_TEXTURE_CHANNEL};\n\t#endif\n\t#ifdef STD_SPECULARITYFACTOR_VERTEX\n\tspecularityFactor = specularityFactor * saturate(vVertexColor.{STD_SPECULARITYFACTOR_VERTEX_CHANNEL});\n\t#endif\n\tdSpecularityFactor = specularityFactor;\n}\n`;\n\nvar spot_default2 = `\nfn getSpotEffect(lightSpotDir: vec3f, lightInnerConeAngle: f32, lightOuterConeAngle: f32, lightDirNorm: vec3f) -> f32 {\n\tlet cosAngle: f32 = dot(lightDirNorm, lightSpotDir);\n\treturn smoothstep(lightOuterConeAngle, lightInnerConeAngle, cosAngle);\n}`;\n\nvar startNineSliced_default2 = `\n\tnineSlicedUv = vec2f(vUv0.x, 1.0 - vUv0.y);\n`;\n\nvar startNineSlicedTiled_default2 = `\n\tlet tileMask: vec2f = step(vMask, vec2f(0.99999));\n\tlet tileSize: vec2f = 0.5 * (uniform.innerOffset.xy + uniform.innerOffset.zw);\n\tlet tileScale: vec2f = vec2f(1.0) / (vec2f(1.0) - tileSize);\n\tvar clampedUv: vec2f = mix(uniform.innerOffset.xy * 0.5, vec2f(1.0) - uniform.innerOffset.zw * 0.5, fract((vTiledUv - tileSize) * tileScale));\n\tclampedUv = clampedUv * uniform.atlasRect.zw + uniform.atlasRect.xy;\n\tnineSlicedUv = vUv0 * tileMask + clampedUv * (vec2f(1.0) - tileMask);\n\tnineSlicedUv.y = 1.0 - nineSlicedUv.y;\n`;\n\nvar stdDeclaration_default2 = `\n\tvar<private> dAlpha: f32 = 1.0;\n\t#if LIT_BLEND_TYPE != NONE || defined(LIT_ALPHA_TEST) || defined(LIT_ALPHA_TO_COVERAGE) || STD_OPACITY_DITHER != NONE\n\t\t#ifdef STD_OPACITY_TEXTURE_ALLOCATE\n\t\t\tvar texture_opacityMap : texture_2d<f32>;\n\t\t\tvar texture_opacityMapSampler : sampler;\n\t\t#endif\n\t#endif\n\t#ifdef FORWARD_PASS\n\t\tvar<private> dAlbedo: vec3f;\n\t\tvar<private> dNormalW: vec3f;\n\t\tvar<private> dSpecularity: vec3f = vec3f(0.0, 0.0, 0.0);\n\t\tvar<private> dGlossiness: f32 = 0.0;\n\t\t#ifdef LIT_REFRACTION\n\t\t\tvar<private> dTransmission: f32;\n\t\t\tvar<private> dThickness: f32;\n\t\t\t#ifndef LIT_METALNESS\n\t\t\t\tvar<private> dIor: f32;\n\t\t\t#endif\n\t\t#endif\n\t\t#ifdef LIT_SCENE_COLOR\n\t\t\tvar uSceneColorMap : texture_2d<f32>;\n\t\t\tvar uSceneColorMapSampler : sampler;\n\t\t#endif\n\t\t#ifdef LIT_SCREEN_SIZE\n\t\t\tuniform uScreenSize: vec4f;\n\t\t#endif\n\t\t#ifdef LIT_TRANSFORMS\n\t\t\tvar<private> matrix_viewProjection: mat4x4f;\n\t\t\tvar<private> matrix_model: mat4x4f;\n\t\t#endif\n\t\t#ifdef STD_HEIGHT_MAP\n\t\t\tvar<private> dUvOffset: vec2f;\n\t\t\t#ifdef STD_PARALLAX_SELF_SHADOW\n\t\t\t\tvar<private> dParallaxHitDepth: f32;\n\t\t\t\tvar<private> dParallaxLod: f32;\n\t\t\t#endif\n\t\t\t#ifdef STD_HEIGHT_TEXTURE_ALLOCATE\n\t\t\t\tvar texture_heightMap : texture_2d<f32>;\n\t\t\t\tvar texture_heightMapSampler : sampler;\n\t\t\t#endif\n\t\t#endif\n\t\t#ifdef STD_DIFFUSE_TEXTURE_ALLOCATE\n\t\t\tvar texture_diffuseMap : texture_2d<f32>;\n\t\t\tvar texture_diffuseMapSampler : sampler;\n\t\t#endif\n\t\t#ifdef STD_DIFFUSEDETAIL_TEXTURE_ALLOCATE\n\t\t\tvar texture_diffuseDetailMap : texture_2d<f32>;\n\t\t\tvar texture_diffuseDetailMapSampler : sampler;\n\t\t#endif\n\t\t#ifdef STD_NORMAL_TEXTURE_ALLOCATE\n\t\t\tvar texture_normalMap : texture_2d<f32>;\n\t\t\tvar texture_normalMapSampler : sampler;\n\t\t#endif\n\t\t#ifdef STD_NORMALDETAIL_TEXTURE_ALLOCATE\n\t\t\tvar texture_normalDetailMap : texture_2d<f32>;\n\t\t\tvar texture_normalDetailMapSampler : sampler;\n\t\t#endif\n\t\t#ifdef STD_THICKNESS_TEXTURE_ALLOCATE\n\t\t\tvar texture_thicknessMap : texture_2d<f32>;\n\t\t\tvar texture_thicknessMapSampler : sampler;\n\t\t#endif\n\t\t#ifdef STD_REFRACTION_TEXTURE_ALLOCATE\n\t\t\tvar texture_refractionMap : texture_2d<f32>;\n\t\t\tvar texture_refractionMapSampler : sampler;\n\t\t#endif\n\t\t#ifdef LIT_IRIDESCENCE\n\t\t\tvar<private> dIridescence: f32;\n\t\t\tvar<private> dIridescenceThickness: f32;\n\t\t\t#ifdef STD_IRIDESCENCE_THICKNESS_TEXTURE_ALLOCATE\n\t\t\t\tvar texture_iridescenceThicknessMap : texture_2d<f32>;\n\t\t\t\tvar texture_iridescenceThicknessMapSampler : sampler;\n\t\t\t#endif\n\t\t\t#ifdef STD_IRIDESCENCE_TEXTURE_ALLOCATE\n\t\t\t\tvar texture_iridescenceMap : texture_2d<f32>;\n\t\t\t\tvar texture_iridescenceMapSampler : sampler;\n\t\t\t#endif\n\t\t#endif\n\t\t#ifdef LIT_CLEARCOAT\n\t\t\tvar<private> ccSpecularity: f32;\n\t\t\tvar<private> ccGlossiness: f32;\n\t\t\tvar<private> ccNormalW: vec3f;\n\t\t#endif\n\t\t#ifdef LIT_GGX_SPECULAR\n\t\t\tvar<private> dAnisotropy: f32;\n\t\t\tvar<private> dAnisotropyRotation: vec2f;\n\t\t#endif\n\t\t#if defined(LIT_SPECULAR_OR_REFLECTION) || defined(LIT_REFRACTION)\n\t\t\t#ifdef LIT_SHEEN\n\t\t\t\tvar<private> sSpecularity: vec3f;\n\t\t\t\tvar<private> sGlossiness: f32;\n\t\t\t\t#ifdef STD_SHEEN_TEXTURE_ALLOCATE\n\t\t\t\t\tvar texture_sheenMap : texture_2d<f32>;\n\t\t\t\t\tvar texture_sheenMapSampler : sampler;\n\t\t\t\t#endif\n\t\t\t\t#ifdef STD_SHEENGLOSS_TEXTURE_ALLOCATE\n\t\t\t\t\tvar texture_sheenGlossMap : texture_2d<f32>;\n\t\t\t\t\tvar texture_sheenGlossMapSampler : sampler;\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t\t#ifdef LIT_METALNESS\n\t\t\t\tvar<private> dMetalness: f32;\n\t\t\t\tvar<private> dIor: f32;\n\t\t\t\t#ifdef STD_METALNESS_TEXTURE_ALLOCATE\n\t\t\t\t\tvar texture_metalnessMap : texture_2d<f32>;\n\t\t\t\t\tvar texture_metalnessMapSampler : sampler;\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t\t#ifdef LIT_SPECULARITY_FACTOR\n\t\t\t\tvar<private> dSpecularityFactor: f32;\n\t\t\t\t#ifdef STD_SPECULARITYFACTOR_TEXTURE_ALLOCATE\n\t\t\t\t\tvar texture_specularityFactorMap : texture_2d<f32>;\n\t\t\t\t\tvar texture_specularityFactorMapSampler : sampler;\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t\t#ifdef STD_SPECULAR_COLOR\n\t\t\t\t#ifdef STD_SPECULAR_TEXTURE_ALLOCATE\n\t\t\t\t\tvar texture_specularMap : texture_2d<f32>;\n\t\t\t\t\tvar texture_specularMapSampler : sampler;\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t\t#ifdef STD_GLOSS_TEXTURE_ALLOCATE\n\t\t\t\tvar texture_glossMap : texture_2d<f32>;\n\t\t\t\tvar texture_glossMapSampler : sampler;\n\t\t\t#endif\n\t\t#endif\n\t\t#ifdef STD_AO\n\t\t\tvar <private> dAo: f32;\n\t\t\t#ifdef STD_AO_TEXTURE_ALLOCATE\n\t\t\t\tvar texture_aoMap : texture_2d<f32>;\n\t\t\t\tvar texture_aoMapSampler : sampler;\n\t\t\t#endif\n\t\t\t#ifdef STD_AODETAIL_TEXTURE_ALLOCATE\n\t\t\t\tvar texture_aoDetailMap : texture_2d<f32>;\n\t\t\t\tvar texture_aoDetailMapSampler : sampler;\n\t\t\t#endif\n\t\t#endif\n\t\tvar <private> dEmission: vec3f;\n\t\t#ifdef STD_EMISSIVE_TEXTURE_ALLOCATE\n\t\t\tvar texture_emissiveMap : texture_2d<f32>;\n\t\t\tvar texture_emissiveMapSampler : sampler;\n\t\t#endif\n\t\t#ifdef LIT_CLEARCOAT\n\t\t\t#ifdef STD_CLEARCOAT_TEXTURE_ALLOCATE\n\t\t\t\tvar texture_clearCoatMap : texture_2d<f32>;\n\t\t\t\tvar texture_clearCoatMapSampler : sampler;\n\t\t\t#endif\n\t\t\t#ifdef STD_CLEARCOATGLOSS_TEXTURE_ALLOCATE\n\t\t\t\tvar texture_clearCoatGlossMap : texture_2d<f32>;\n\t\t\t\tvar texture_clearCoatGlossMapSampler : sampler;\n\t\t\t#endif\n\t\t\t#ifdef STD_CLEARCOATNORMAL_TEXTURE_ALLOCATE\n\t\t\t\tvar texture_clearCoatNormalMap : texture_2d<f32>;\n\t\t\t\tvar texture_clearCoatNormalMapSampler : sampler;\n\t\t\t#endif\n\t\t#endif\n\t\t#ifdef LIT_GGX_SPECULAR\n\t\t\t#ifdef STD_ANISOTROPY_TEXTURE_ALLOCATE\n\t\t\t\tvar texture_anisotropyMap : texture_2d<f32>;\n\t\t\t\tvar texture_anisotropyMapSampler : sampler;\n\t\t\t#endif\n\t\t#endif\n\t\t#if defined(STD_LIGHTMAP) || defined(STD_LIGHT_VERTEX_COLOR)\n\t\t\tvar<private> dLightmap: vec3f;\n\t\t\t#ifdef STD_LIGHT_TEXTURE_ALLOCATE\n\t\t\t\tvar texture_lightMap : texture_2d<f32>;\n\t\t\t\tvar texture_lightMapSampler : sampler;\n\t\t\t#endif\n\t\t#endif\n\t#endif\n\t#include \"litShaderCorePS\"\n`;\n\nvar stdFrontEnd_default2 = `\n\t#if defined(FORWARD_PASS) && defined(STD_HEIGHT_MAP)\n\t\t#include \"parallaxPS\"\n\t#endif\n\t#if LIT_BLEND_TYPE != NONE || defined(LIT_ALPHA_TEST) || defined(LIT_ALPHA_TO_COVERAGE) || STD_OPACITY_DITHER != NONE\n\t\t#include \"opacityPS\"\n\t\t#if defined(LIT_ALPHA_TEST)\n\t\t\t#include \"alphaTestPS\"\n\t\t#endif\n\t\t#if STD_OPACITY_DITHER != NONE\n\t\t\t#include \"opacityDitherPS\"\n\t\t#endif\n\t#endif\n\t#ifdef FORWARD_PASS\n\t\t#include  \"diffusePS\"\n\t\t#ifdef LIT_NEEDS_NORMAL\n\t\t\t#include \"normalMapPS\"\n\t\t#endif\n\t\t#ifdef LIT_REFRACTION\n\t\t\t#include \"transmissionPS\"\n\t\t\t#include \"thicknessPS\"\n\t\t\t#ifndef LIT_METALNESS\n\t\t\t\t#include \"iorPS\"\n\t\t\t#endif\n\t\t#endif\n\t\t#ifdef LIT_IRIDESCENCE\n\t\t\t#include \"iridescencePS\"\n\t\t\t#include \"iridescenceThicknessPS\"\n\t\t#endif\n\t\t#if defined(LIT_SPECULAR_OR_REFLECTION) || defined(LIT_REFRACTION)\n\t\t\t#ifdef LIT_SHEEN\n\t\t\t\t#include \"sheenPS\"\n\t\t\t\t#include \"sheenGlossPS\"\n\t\t\t#endif\n\t\t\t#ifdef LIT_METALNESS\n\t\t\t\t#include \"metalnessPS\"\n\t\t\t\t#include \"iorPS\"\n\t\t\t#endif\n\t\t\t#ifdef LIT_SPECULARITY_FACTOR\n\t\t\t\t#include \"specularityFactorPS\"\n\t\t\t#endif\n\t\t\t#ifdef STD_SPECULAR_COLOR\n\t\t\t\t#include \"specularPS\"\n\t\t\t#else\n\t\t\t\tfn getSpecularity() { \n\t\t\t\t\tdSpecularity = vec3f(1.0, 1.0, 1.0);\n\t\t\t\t}\n\t\t\t#endif\n\t\t\t#include \"glossPS\"\n\t\t#endif\n\t\t#ifdef STD_AO\n\t\t\t#include \"aoPS\"\n\t\t#endif\n\t\t#include \"emissivePS\"\n\t\t#ifdef LIT_CLEARCOAT\n\t\t\t#include \"clearCoatPS\"\n\t\t\t#include \"clearCoatGlossPS\"\n\t\t\t#include \"clearCoatNormalPS\"\n\t\t#endif\n\t\t#if defined(LIT_SPECULAR) && defined(LIT_LIGHTING) && defined(LIT_GGX_SPECULAR)\n\t\t\t#include \"anisotropyPS\"\n\t\t#endif\n\t\t#if defined(STD_LIGHTMAP) || defined(STD_LIGHT_VERTEX_COLOR)\n\t\t\t#include \"lightmapPS\"\n\t\t#endif\n\t#endif\n\tfn evaluateFrontend() {\n\t\t#if defined(FORWARD_PASS) && defined(STD_HEIGHT_MAP)\n\t\t\tgetParallax();\n\t\t#endif\n\t\t#if LIT_BLEND_TYPE != NONE || defined(LIT_ALPHA_TEST) || defined(LIT_ALPHA_TO_COVERAGE) || STD_OPACITY_DITHER != NONE\n\t\t\tgetOpacity();\n\t\t\t#if defined(LIT_ALPHA_TEST)\n\t\t\t\talphaTest(dAlpha);\n\t\t\t#endif\n\t\t\t#if STD_OPACITY_DITHER != NONE\n\t\t\t\topacityDither(dAlpha * uniform.material_alphaDitherScale, 0.0);\n\t\t\t#endif\n\t\t\tlitArgs_opacity = dAlpha;\n\t\t#endif\n\t\t#ifdef FORWARD_PASS\n\t\t\tgetAlbedo();\n\t\t\tlitArgs_albedo = dAlbedo;\n\t\t\t#ifdef LIT_NEEDS_NORMAL\n\t\t\t\tgetNormal();\n\t\t\t\tlitArgs_worldNormal = dNormalW;\n\t\t\t#endif\n\t\t\t#ifdef LIT_REFRACTION\n\t\t\t\tgetRefraction();\n\t\t\t\tlitArgs_transmission = dTransmission;\n\t\t\t\tgetThickness();\n\t\t\t\tlitArgs_thickness = dThickness;\n\t\t\t\t#ifndef LIT_METALNESS\n\t\t\t\t\tgetIor();\n\t\t\t\t\tlitArgs_ior = dIor;\n\t\t\t\t#endif\n\t\t\t\t#ifdef LIT_DISPERSION\n\t\t\t\t\tlitArgs_dispersion = uniform.material_dispersion;\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t\t#ifdef LIT_IRIDESCENCE\n\t\t\t\tgetIridescence();\n\t\t\t\tgetIridescenceThickness();\n\t\t\t\tlitArgs_iridescence_intensity = dIridescence;\n\t\t\t\tlitArgs_iridescence_thickness = dIridescenceThickness;\n\t\t\t#endif\n\t\t\t#if defined(LIT_SPECULAR_OR_REFLECTION) || defined(LIT_REFRACTION)\n\t\t\t\t#ifdef LIT_SHEEN\n\t\t\t\t\tgetSheen();\n\t\t\t\t\tlitArgs_sheen_specularity = sSpecularity;\n\t\t\t\t\tgetSheenGlossiness();\n\t\t\t\t\tlitArgs_sheen_gloss = sGlossiness;\n\t\t\t\t#endif\n\t\t\t\t#ifdef LIT_METALNESS\n\t\t\t\t\tgetMetalness();\n\t\t\t\t\tlitArgs_metalness = dMetalness;\n\t\t\t\t\tgetIor();\n\t\t\t\t\tlitArgs_ior = dIor;\n\t\t\t\t#endif\n\t\t\t\t#ifdef LIT_SPECULARITY_FACTOR\n\t\t\t\t\tgetSpecularityFactor();\n\t\t\t\t\tlitArgs_specularityFactor = dSpecularityFactor;\n\t\t\t\t#endif\n\t\t\t\tgetGlossiness();\n\t\t\t\tgetSpecularity();\n\t\t\t\tlitArgs_specularity = dSpecularity;\n\t\t\t\tlitArgs_gloss = dGlossiness;\n\t\t\t#endif\n\t\t\t#ifdef STD_AO\n\t\t\t\tgetAO();\n\t\t\t\tlitArgs_ao = dAo;\n\t\t\t#endif\n\t\t\tgetEmission();\n\t\t\tlitArgs_emission = dEmission;\n\t\t\t#ifdef LIT_CLEARCOAT\n\t\t\t\tgetClearCoat();\n\t\t\t\tgetClearCoatGlossiness();\n\t\t\t\tgetClearCoatNormal();\n\t\t\t\tlitArgs_clearcoat_specularity = ccSpecularity;\n\t\t\t\tlitArgs_clearcoat_gloss = ccGlossiness;\n\t\t\t\tlitArgs_clearcoat_worldNormal = ccNormalW;\n\t\t\t#endif\n\t\t\t#if defined(LIT_SPECULAR) && defined(LIT_LIGHTING) && defined(LIT_GGX_SPECULAR)\n\t\t\t\tgetAnisotropy();\n\t\t\t#endif\n\t\t\t#if defined(STD_LIGHTMAP) || defined(STD_LIGHT_VERTEX_COLOR)\n\t\t\t\tgetLightMap();\n\t\t\t\tlitArgs_lightmap = dLightmap;\n\t\t\t\t#ifdef STD_LIGHTMAP_DIR\n\t\t\t\t\tlitArgs_lightmapDir = dLightmapDir;\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t#endif\n\t}\n`;\n\nvar TBN_default2 = `\n#ifdef LIT_TANGENTS\n\t#define TBN_TANGENTS\n#else\n\t#if defined(LIT_USE_NORMALS) || defined(LIT_USE_CLEARCOAT_NORMALS) || defined(LIT_HEIGHTS)\n\t\t#define TBN_DERIVATIVES\n\t#endif\n#endif\n#if defined(TBN_DERIVATIVES)\n\t#ifndef TBNBASIS\n\t\t#define TBNBASIS\n\t\tuniform tbnBasis: f32;\n\t#endif\n#endif\nfn getTBN(tangent: vec3f, binormal: vec3f, normal: vec3f) {\n\t#ifdef TBN_TANGENTS\n\t\tdTBN = mat3x3f(normalize(tangent), normalize(binormal), normalize(normal));\n\t#elif defined(TBN_DERIVATIVES)\n\t\tlet uv: vec2f = {lightingUv};\n\t\tlet dp1: vec3f = dpdx( vPositionW );\n\t\tlet dp2: vec3f = dpdy( vPositionW );\n\t\tlet duv1: vec2f = dpdx( uv );\n\t\tlet duv2: vec2f = dpdy( uv );\n\t\tlet dp2perp: vec3f = cross( dp2, normal );\n\t\tlet dp1perp: vec3f = cross( normal, dp1 );\n\t\tlet T: vec3f = dp2perp * duv1.x + dp1perp * duv2.x;\n\t\tlet B: vec3f = dp2perp * duv1.y + dp1perp * duv2.y;\n\t\tlet denom: f32 = max( dot(T, T), dot(B, B) );\n\t\tlet invmax: f32 = select(uniform.tbnBasis / sqrt( denom ), 0.0, denom == 0.0);\n\t\tdTBN = mat3x3f(T * invmax, -B * invmax, normal );\n\t#else\n\t\tvar B: vec3f = cross(normal, vObjectSpaceUpW);\n\t\tvar T: vec3f = cross(normal, B);\n\t\tif (dot(B,B) == 0.0)\n\t\t{\n\t\t\tlet major: f32 = max(max(normal.x, normal.y), normal.z);\n\t\t\tif (normal.x == major)\n\t\t\t{\n\t\t\t\tB = cross(normal, vec3f(0.0, 1.0, 0.0));\n\t\t\t\tT = cross(normal, B);\n\t\t\t}\n\t\t\telse if (normal.y == major)\n\t\t\t{\n\t\t\t\tB = cross(normal, vec3f(0.0, 0.0, 1.0));\n\t\t\t\tT = cross(normal, B);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tB = cross(normal, vec3f(1.0, 0.0, 0.0));\n\t\t\t\tT = cross(normal, B);\n\t\t\t}\n\t\t}\n\t\tdTBN = mat3x3f(normalize(T), normalize(B), normalize(normal));\n\t#endif\n}`;\n\nvar thickness_default2 = `\n#ifdef STD_THICKNESS_CONSTANT\nuniform material_thickness: f32;\n#endif\nfn getThickness() {\n\tdThickness = 1.0;\n\t#ifdef STD_THICKNESS_CONSTANT\n\tdThickness = dThickness * uniform.material_thickness;\n\t#endif\n\t#ifdef STD_THICKNESS_TEXTURE\n\tdThickness = dThickness * textureSampleBias({STD_THICKNESS_TEXTURE_NAME}, {STD_THICKNESS_TEXTURE_NAME}Sampler, {STD_THICKNESS_TEXTURE_UV}, uniform.textureBias).{STD_THICKNESS_TEXTURE_CHANNEL};\n\t#endif\n\t#ifdef STD_THICKNESS_VERTEX\n\tdThickness = dThickness * saturate(vVertexColor.{STD_THICKNESS_VERTEX_CHANNEL});\n\t#endif\n}\n`;\n\nvar tonemapping_default2 = `\n#ifndef TONEMAP_NO_EXPOSURE_UNIFORM\n\t#if TONEMAP != NONE\n\t\tuniform exposure: f32;\n\t\tfn getExposure() -> f32 { return uniform.exposure; }\n\t#else\n\t\tfn getExposure() -> f32 { return 1.0; }\n\t#endif\n#else\n\t#if TONEMAP != NONE\n\t\tfn getExposure() -> f32 { return uniforms.exposure; }\n\t#else\n\t\tfn getExposure() -> f32 { return 1.0; }\n\t#endif\n#endif\n#if (TONEMAP == NONE)\n\t#include \"tonemappingNonePS\"\n#elif TONEMAP == FILMIC\n\t#include \"tonemappingFilmicPS\"\n#elif TONEMAP == LINEAR\n\t#include \"tonemappingLinearPS\"\n#elif TONEMAP == HEJL\n\t#include \"tonemappingHejlPS\"\n#elif TONEMAP == ACES\n\t#include \"tonemappingAcesPS\"\n#elif TONEMAP == ACES2\n\t#include \"tonemappingAces2PS\"\n#elif TONEMAP == NEUTRAL\n\t#include \"tonemappingNeutralPS\"\n#endif\n`;\n\nvar tonemappingAces_default2 = `\nfn toneMap(color: vec3f) -> vec3f {\n\tlet tA: f32 = 2.51;\n\tlet tB: f32 = 0.03;\n\tlet tC: f32 = 2.43;\n\tlet tD: f32 = 0.59;\n\tlet tE: f32 = 0.14;\n\tlet x: vec3f = color * getExposure();\n\treturn (x * (tA * x + tB)) / (x * (tC * x + tD) + tE);\n}\n`;\n\nvar tonemappingAces2_default2 = `\nconst ACESInputMat: mat3x3f = mat3x3f(\n\tvec3f(0.59719, 0.35458, 0.04823),\n\tvec3f(0.07600, 0.90834, 0.01566),\n\tvec3f(0.02840, 0.13383, 0.83777)\n);\nconst ACESOutputMat: mat3x3f = mat3x3f(\n\tvec3f( 1.60475, -0.53108, -0.07367),\n\tvec3f(-0.10208,  1.10813, -0.00605),\n\tvec3f(-0.00327, -0.07276,  1.07602)\n);\nfn RRTAndODTFit(v: vec3f) -> vec3f {\n\tlet a: vec3f = v * (v + vec3f(0.0245786)) - vec3f(0.000090537);\n\tlet b: vec3f = v * (vec3f(0.983729) * v + vec3f(0.4329510)) + vec3f(0.238081);\n\treturn a / b;\n}\nfn toneMap(color: vec3f) -> vec3f {\n\tvar c: vec3f = color * (getExposure() / 0.6);\n\tc = c * ACESInputMat;\n\tc = RRTAndODTFit(c);\n\tc = c * ACESOutputMat;\n\treturn clamp(c, vec3f(0.0), vec3f(1.0));\n}\n`;\n\nvar tonemappingFilmic_default2 = `\nconst A: f32 = 0.15;\nconst B: f32 = 0.50;\nconst C: f32 = 0.10;\nconst D: f32 = 0.20;\nconst E: f32 = 0.02;\nconst F: f32 = 0.30;\nconst W: f32 = 11.2;\nfn uncharted2Tonemap(x: vec3f) -> vec3f {\n\treturn ((x * (A * x + C * B) + D * E) / (x * (A * x + B) + D * F)) - vec3f(E / F);\n}\nfn toneMap(color: vec3f) -> vec3f {\n\tvar c: vec3f = uncharted2Tonemap(color * getExposure());\n\tlet whiteScale: vec3f = vec3f(1.0) / uncharted2Tonemap(vec3f(W, W, W));\n\tc *= whiteScale;\n\treturn c;\n}\n`;\n\nvar tonemappingHejl_default2 = `\nfn toneMap(color: vec3f) -> vec3f {\n\tlet A: f32 = 0.22;\n\tlet B: f32 = 0.3;\n\tlet C: f32 = 0.1;\n\tlet D: f32 = 0.2;\n\tlet E: f32 = 0.01;\n\tlet F: f32 = 0.3;\n\tlet Scl: f32 = 1.25;\n\tlet adjusted_color = color * getExposure();\n\tlet h = max(vec3f(0.0), adjusted_color - vec3f(0.004));\n\treturn (h * ((Scl * A) * h + Scl * vec3f(C * B)) + Scl * vec3f(D * E)) /\n\t\t   (h * (A * h + vec3f(B)) + vec3f(D * F)) -\n\t\t   Scl * vec3f(E / F);\n}\n`;\n\nvar tonemappingLinear_default2 = `\nfn toneMap(color: vec3f) -> vec3f {\n\treturn color * getExposure();\n}\n`;\n\nvar tonemappingNeutral_default2 = `\nfn toneMap(col: vec3f) -> vec3f {\n\tvar color = col * getExposure();\n\tlet startCompression = 0.8 - 0.04;\n\tlet desaturation = 0.15;\n\tlet x = min(color.r, min(color.g, color.b));\n\tlet offset = select(0.04, x - 6.25 * x * x, x < 0.08);\n\tcolor -= vec3f(offset);\n\tlet peak = max(color.r, max(color.g, color.b));\n\tif (peak < startCompression) {\n\t\treturn color;\n\t}\n\tlet d = 1.0 - startCompression;\n\tlet newPeak = 1.0 - d * d / (peak + d - startCompression);\n\tcolor *= newPeak / peak;\n\tlet g = 1.0 - 1.0 / (desaturation * (peak - newPeak) + 1.0);\n\treturn mix(color, vec3f(newPeak), vec3f(g));\n}\n`;\n\nvar tonemappingNone_default2 = `\nfn toneMap(color: vec3f) -> vec3f {\n\treturn color;\n}\n`;\n\nvar transform_default2 = `\n#ifdef PIXELSNAP\n\tuniform uScreenSize: vec4f;\n#endif\n#ifdef SCREENSPACE\n\tuniform projectionFlipY: f32;\n#endif\nfn evalWorldPosition(vertexPosition: vec3f, modelMatrix: mat4x4f) -> vec4f {\n\tvar localPos: vec3f = getLocalPosition(vertexPosition);\n\t#ifdef NINESLICED\n\t\tvar localPosXZ: vec2f = localPos.xz;\n\t\tlocalPosXZ = localPosXZ * uniform.outerScale;\n\t\tlet positiveUnitOffset: vec2f = clamp(vertexPosition.xz, vec2f(0.0), vec2f(1.0));\n\t\tlet negativeUnitOffset: vec2f = clamp(-vertexPosition.xz, vec2f(0.0), vec2f(1.0));\n\t\tlocalPosXZ = localPosXZ + (-positiveUnitOffset * uniform.innerOffset.xy + negativeUnitOffset * uniform.innerOffset.zw) * vertex_texCoord0.xy;\n\t\tdTiledUvGlobal = (localPosXZ - uniform.outerScale + uniform.innerOffset.xy) * -0.5 + 1.0;\n\t\tlocalPosXZ = localPosXZ * -0.5;\n\t\tlocalPos = vec3f(localPosXZ.x, localPosXZ.y, localPos.y);\n\t#endif\n\tvar posW: vec4f = modelMatrix * vec4f(localPos, 1.0);\n\t#ifdef SCREENSPACE\n\t\tposW = vec4f(posW.xy, 0.0, 1.0);\n\t#endif\n\treturn posW;\n}\nfn getPosition() -> vec4f {\n\tdModelMatrix = getModelMatrix();\n\tlet posW: vec4f = evalWorldPosition(vertex_position.xyz, dModelMatrix);\n\tdPositionW = posW.xyz;\n\tvar screenPos: vec4f;\n\t#ifdef UV1LAYOUT\n\t\tscreenPos = vec4f(vertex_texCoord1.xy * 2.0 - 1.0, 0.5, 1.0);\n\t\tscreenPos.y *= -1.0;\n\t#else\n\t\t#ifdef SCREENSPACE\n\t\t\tscreenPos = posW;\n\t\t\tscreenPos.y *= uniform.projectionFlipY;\n\t\t#else\n\t\t\tscreenPos = uniform.matrix_viewProjection * posW;\n\t\t#endif\n\t\t#ifdef PIXELSNAP\n\t\t\tscreenPos.xy = (screenPos.xy * 0.5) + 0.5;\n\t\t\tscreenPos.xy *= uniforms.uScreenSize.xy;\n\t\t\tscreenPos.xy = floor(screenPos.xy);\n\t\t\tscreenPos.xy *= uniforms.uScreenSize.zw;\n\t\t\tscreenPos.xy = (screenPos.xy * 2.0) - 1.0;\n\t\t#endif\n\t#endif\n\treturn screenPos;\n}\nfn getWorldPosition() -> vec3f {\n\treturn dPositionW;\n}\n`;\n\nvar transformCore_default2 = `\n\tattribute vertex_position: vec4f;\n\tuniform matrix_viewProjection: mat4x4f;\n\tuniform matrix_model: mat4x4f;\n\t\n\t#ifdef MORPHING\n\t\tuniform morph_tex_params: vec2f;\n\t\tattribute morph_vertex_id: u32;\n\t\tfn getTextureMorphCoords() -> vec2i {\n\t\t\tvar textureSize: vec2i = vec2i(uniform.morph_tex_params);\n\t\t\tvar morphGridV: i32 = i32(morph_vertex_id) / textureSize.x;\n\t\t\tvar morphGridU: i32 = i32(morph_vertex_id) - (morphGridV * textureSize.x);\n\t\t\tmorphGridV = textureSize.y - morphGridV - 1;\n\t\t\treturn vec2i(morphGridU, morphGridV);\n\t\t}\n\t\t#ifdef MORPHING_POSITION\n\t\t\t#ifdef MORPHING_INT\n\t\t\t\tuniform aabbSize: vec3f;\n\t\t\t\tuniform aabbMin: vec3f;\n\t\t\t\tvar morphPositionTex: texture_2d<u32>;\n\t\t\t#else\n\t\t\t\tvar morphPositionTex: texture_2d<f32>;\n\t\t\t#endif\n\t\t#endif\n\t#endif\n\t#ifdef defined(BATCH)\n\t\t#include \"skinBatchVS\"\n\t\tfn getModelMatrix() -> mat4x4f {\n\t\t\treturn getBoneMatrix(vertex_boneIndices);\n\t\t}\n\t#elif defined(SKIN)\n\t\t#include \"skinVS\"\n\t\tfn getModelMatrix() -> mat4x4f {\n\t\t\treturn uniform.matrix_model * getSkinMatrix(vertex_boneIndices, vertex_boneWeights);\n\t\t}\n\t#elif defined(INSTANCING)\n\t\t#include \"transformInstancingVS\"\n\t#else\n\t\tfn getModelMatrix() -> mat4x4f {\n\t\t\treturn uniform.matrix_model;\n\t\t}\n\t#endif\n\tfn getLocalPosition(vertexPosition: vec3f) -> vec3f {\n\t\tvar localPos: vec3f = vertexPosition;\n\t\t#ifdef MORPHING_POSITION\n\t\t\tvar morphUV: vec2i = getTextureMorphCoords();\n\t\t\t#ifdef MORPHING_INT\n\t\t\t\tvar morphPos: vec3f = vec3f(textureLoad(morphPositionTex, morphUV, 0).xyz) / 65535.0 * uniform.aabbSize + uniform.aabbMin;\n\t\t\t#else\n\t\t\t\tvar morphPos: vec3f = textureLoad(morphPositionTex, morphUV, 0).xyz;\n\t\t\t#endif\n\t\t\tlocalPos += morphPos;\n\t\t#endif\n\t\treturn localPos;\n\t}\n`;\n\nvar transformInstancing_default2 = `\nattribute instance_line1: vec4f;\nattribute instance_line2: vec4f;\nattribute instance_line3: vec4f;\nattribute instance_line4: vec4f;\nfn getModelMatrix() -> mat4x4f {\n\treturn uniform.matrix_model * mat4x4f(instance_line1, instance_line2, instance_line3, instance_line4);\n}\n`;\n\nvar transmission_default2 = `\n#ifdef STD_REFRACTION_CONSTANT\n\tuniform material_refraction: f32;\n#endif\nfn getRefraction() {\n\tvar refraction: f32 = 1.0;\n\t#ifdef STD_REFRACTION_CONSTANT\n\trefraction = uniform.material_refraction;\n\t#endif\n\t#ifdef STD_REFRACTION_TEXTURE\n\trefraction = refraction * textureSampleBias({STD_REFRACTION_TEXTURE_NAME}, {STD_REFRACTION_TEXTURE_NAME}Sampler, {STD_REFRACTION_TEXTURE_UV}, uniform.textureBias).{STD_REFRACTION_TEXTURE_CHANNEL};\n\t#endif\n\t#ifdef STD_REFRACTION_VERTEX\n\trefraction = refraction * saturate(vVertexColor.{STD_REFRACTION_VERTEX_CHANNEL});\n\t#endif\n\tdTransmission = refraction;\n}\n`;\n\nvar twoSidedLighting_default2 = `\nfn handleTwoSidedLighting() {\n\tif (!pcFrontFacing) { dTBN[2] = -dTBN[2]; }\n}\n`;\n\nvar uv0_default2 = `\n#ifdef NINESLICED\n\tfn getUv0() -> vec2f {\n\t\tvar uv = vertex_position.xz;\n\t\tlet positiveUnitOffset = clamp(vertex_position.xz, vec2f(0.0, 0.0), vec2f(1.0, 1.0));\n\t\tlet negativeUnitOffset = clamp(-vertex_position.xz, vec2f(0.0, 0.0), vec2f(1.0, 1.0));\n\t\tuv = uv + ((-positiveUnitOffset * uniform.innerOffset.xy) + (negativeUnitOffset * uniform.innerOffset.zw)) * vertex_texCoord0.xy;\n\t\tuv = uv * -0.5 + vec2f(0.5, 0.5);\n\t\tuv = uv * uniform.atlasRect.zw + uniform.atlasRect.xy;\n\t\tdMaskGlobal = vertex_texCoord0.xy;\n\t\treturn uv;\n\t}\n#else\n\tfn getUv0() -> vec2f {\n\t\treturn vertex_texCoord0;\n\t}\n#endif\n`;\n\nvar uv1_default2 = `\nfn getUv1() -> vec2f {\n\treturn vertex_texCoord1;\n}\n`;\n\nvar uvTransform_default2 = `\noutput.vUV{TRANSFORM_UV_{i}}_{TRANSFORM_ID_{i}} = vec2f(\n\tdot(vec3f(uv{TRANSFORM_UV_{i}}, 1), uniform.{TRANSFORM_NAME_{i}}0),\n\tdot(vec3f(uv{TRANSFORM_UV_{i}}, 1), uniform.{TRANSFORM_NAME_{i}}1)\n);\n`;\n\nvar uvTransformUniforms_default2 = `\n\tuniform {TRANSFORM_NAME_{i}}0: vec3f;\n\tuniform {TRANSFORM_NAME_{i}}1: vec3f;\n`;\n\nvar viewDir_default2 = `\nfn getViewDir() {\n\tdViewDirW = normalize(uniform.view_position - vPositionW);\n}\n`;\n\nvar shaderChunksWGSL = {\n\talphaTestPS: alphaTest_default2,\n\tambientPS: ambient_default2,\n\tanisotropyPS: anisotropy_default2,\n\taoPS: ao_default2,\n\taoDiffuseOccPS: aoDiffuseOcc_default2,\n\taoSpecOccPS: aoSpecOcc_default2,\n\tbakeDirLmEndPS: bakeDirLmEnd_default2,\n\tbakeLmEndPS: bakeLmEnd_default2,\n\tbasePS: base_default2,\n\tbaseNineSlicedPS: baseNineSliced_default2,\n\tbaseNineSlicedTiledPS: baseNineSlicedTiled_default2,\n\tbayerPS: bayer_default2,\n\tblurVSMPS: blurVSM_default2,\n\tclearCoatPS: clearCoat_default2,\n\tclearCoatGlossPS: clearCoatGloss_default2,\n\tclearCoatNormalPS: clearCoatNormal_default2,\n\tclusteredLightCookiesPS: clusteredLightCookies_default2,\n\tclusteredLightShadowsPS: clusteredLightShadows_default2,\n\tclusteredLightUtilsPS: clusteredLightUtils_default2,\n\tclusteredLightPS: clusteredLight_default2,\n\tcombinePS: combine_default2,\n\tcookieBlit2DPS: cookie_blit_2d_default2,\n\tcookieBlitCubePS: cookie_blit_cube_default2,\n\tcookieBlitVS: cookie_blit_default2,\n\t// cookiePS,\n\tcubeMapProjectPS: cubeMapProject_default2,\n\tcubeMapRotatePS: cubeMapRotate_default2,\n\tdebugOutputPS: debug_output_default2,\n\tdebugProcessFrontendPS: debug_process_frontend_default2,\n\tdetailModesPS: detailModes_default2,\n\tdiffusePS: diffuse_default2,\n\tdecodePS: decode_default2,\n\temissivePS: emissive_default2,\n\tencodePS: encode_default2,\n\tendPS: end_default2,\n\tenvAtlasPS: envAtlas_default2,\n\tenvProcPS: envProc_default2,\n\tfalloffInvSquaredPS: falloffInvSquared_default2,\n\tfalloffLinearPS: falloffLinear_default2,\n\tflatNormalPS: flat_normal_default2,\n\tfloatAsUintPS: float_as_uint_default2,\n\tsceneTexturesPS: scene_textures_default2,\n\tfogPS: fog_default2,\n\tfogMathPS: fogMath_default,\n\tfresnelSchlickPS: fresnelSchlick_default2,\n\tfrontendCodePS: \"\",\n\t// empty chunk, supplied by the shader generator\n\tfrontendDeclPS: \"\",\n\t// empty chunk, supplied by the shader generator\n\tfullscreenQuadVS: fullscreenQuad_default2,\n\tgammaPS: gamma_default2,\n\tglossPS: gloss_default2,\n\tquadVS: quad_default2,\n\tindirectCoreCS: indirect_core_default,\n\timmediateLinePS: immediateLine_default3,\n\timmediateLineVS: immediateLine_default4,\n\tiridescenceDiffractionPS: iridescenceDiffraction_default2,\n\tiridescencePS: iridescence_default2,\n\tiridescenceThicknessPS: iridescenceThickness_default2,\n\tiorPS: ior_default2,\n\tlightDeclarationPS: lightDeclaration_default2,\n\tlightDiffuseLambertPS: lightDiffuseLambert_default2,\n\tlightDirPointPS: lightDirPoint_default2,\n\tlightEvaluationPS: lightEvaluation_default2,\n\tlightFunctionLightPS: lightFunctionLight_default2,\n\tlightFunctionShadowPS: lightFunctionShadow_default2,\n\tlightingPS: lighting_default2,\n\tlightmapAddPS: lightmapAdd_default2,\n\tlightmapPS: lightmap_default2,\n\tlightSpecularAnisoGGXPS: lightSpecularAnisoGGX_default2,\n\tlightSpecularGGXPS: lightSpecularGGX_default2,\n\tlightSpecularBlinnPS: lightSpecularBlinn_default2,\n\tlightSheenPS: lightSheen_default2,\n\tlinearizeDepthPS: linearizeDepth_default2,\n\tlitForwardBackendPS: litForwardBackend_default2,\n\tlitForwardDeclarationPS: litForwardDeclaration_default2,\n\tlitForwardMainPS: litForwardMain_default2,\n\tlitForwardPostCodePS: litForwardPostCode_default2,\n\tlitForwardPreCodePS: litForwardPreCode_default2,\n\tlitMainPS: litMain_default3,\n\tlitMainVS: litMain_default4,\n\tlitOtherMainPS: litOtherMain_default2,\n\tlitShaderArgsPS: litShaderArgs_default2,\n\tlitShaderCorePS: litShaderCore_default2,\n\tlitShadowMainPS: litShadowMain_default2,\n\tlitUserDeclarationPS: \"\",\n\t// empty chunk allowing user to add custom code\n\tlitUserDeclarationVS: \"\",\n\t// empty chunk allowing user to add custom code\n\tlitUserCodePS: \"\",\n\t// empty chunk allowing user to add custom code\n\tlitUserCodeVS: \"\",\n\t// empty chunk allowing user to add custom code\n\tlitUserMainStartPS: \"\",\n\t// empty chunk allowing user to add custom code\n\tlitUserMainStartVS: \"\",\n\t// empty chunk allowing user to add custom code\n\tlitUserMainEndPS: \"\",\n\t// empty chunk allowing user to add custom code\n\tlitUserMainEndVS: \"\",\n\t// empty chunk allowing user to add custom code\n\tltcPS: ltc_default2,\n\tmetalnessPS: metalness_default2,\n\tmetalnessModulatePS: metalnessModulate_default2,\n\tmorphPS: morph_default3,\n\tmorphVS: morph_default4,\n\tmsdfPS: msdf_default3,\n\tmsdfVS: msdf_default4,\n\tnormalVS: normal_default2,\n\tnormalCoreVS: normalCore_default2,\n\tnormalMapPS: normalMap_default2,\n\topacityPS: opacity_default2,\n\topacityDitherPS: opacity_dither_default2,\n\toutlineDeclarationPS: outline_declaration_default2,\n\toutlineOutputPS: outline_output_default2,\n\toutputPS: output_default2,\n\toutputAlphaPS: outputAlpha_default2,\n\toutputTex2DPS: outputTex2D_default2,\n\tsheenPS: sheen_default2,\n\tsheenGlossPS: sheenGloss_default2,\n\tparallaxPS: parallax_default2,\n\tpickPS: pick_default2,\n\treflDirPS: reflDir_default2,\n\treflDirAnisoPS: reflDirAniso_default2,\n\treflectionCCPS: reflectionCC_default2,\n\treflectionCubePS: reflectionCube_default2,\n\treflectionEnvHQPS: reflectionEnvHQ_default2,\n\treflectionEnvPS: reflectionEnv_default2,\n\treflectionSpherePS: reflectionSphere_default2,\n\treflectionSheenPS: reflectionSheen_default2,\n\trefractionCubePS: refractionCube_default2,\n\trefractionDynamicPS: refractionDynamic_default2,\n\treprojectPS: reproject_default3,\n\treprojectVS: reproject_default4,\n\tscreenDepthPS: screenDepth_default2,\n\tshadowCascadesPS: shadowCascades_default2,\n\tshadowCasterPS: shadow_caster_default2,\n\tshadowEVSMPS: shadowEVSM_default2,\n\tshadowPCF1PS: shadowPCF1_default2,\n\tshadowPCF3PS: shadowPCF3_default2,\n\tshadowPCF5PS: shadowPCF5_default2,\n\t// shadowPCSSPS,\n\tshadowSoftPS: shadowSoft_default2,\n\tskinBatchVS: skinBatch_default2,\n\tskinVS: skin_default2,\n\tskyboxPS: skybox_default3,\n\tskyboxVS: skybox_default4,\n\tsortIndirectArgsCS: sort_indirect_args_default,\n\tspecularPS: specular_default2,\n\tsphericalPS: spherical_default2,\n\tspecularityFactorPS: specularityFactor_default2,\n\tspotPS: spot_default2,\n\tstartNineSlicedPS: startNineSliced_default2,\n\tstartNineSlicedTiledPS: startNineSlicedTiled_default2,\n\tstdDeclarationPS: stdDeclaration_default2,\n\tstdFrontEndPS: stdFrontEnd_default2,\n\tTBNPS: TBN_default2,\n\tthicknessPS: thickness_default2,\n\ttonemappingPS: tonemapping_default2,\n\ttonemappingAcesPS: tonemappingAces_default2,\n\ttonemappingAces2PS: tonemappingAces2_default2,\n\ttonemappingFilmicPS: tonemappingFilmic_default2,\n\ttonemappingHejlPS: tonemappingHejl_default2,\n\ttonemappingLinearPS: tonemappingLinear_default2,\n\ttonemappingNeutralPS: tonemappingNeutral_default2,\n\ttonemappingNonePS: tonemappingNone_default2,\n\ttransformVS: transform_default2,\n\ttransformCoreVS: transformCore_default2,\n\ttransformInstancingVS: transformInstancing_default2,\n\ttransmissionPS: transmission_default2,\n\ttwoSidedLightingPS: twoSidedLighting_default2,\n\tuv0VS: uv0_default2,\n\tuv1VS: uv1_default2,\n\tuvTransformVS: uvTransform_default2,\n\tuvTransformUniformsPS: uvTransformUniforms_default2,\n\tviewDirPS: viewDir_default2,\n\twebgpuPS: webgpu_wgsl_default,\n\twebgpuVS: webgpu_wgsl_default2\n};\n\nvar app = null;\nvar AppBase = class _AppBase extends EventHandler {\n\t_batcher = null;\n\t_destroyRequested = false;\n\t_inFrameUpdate = false;\n\t_librariesLoaded = false;\n\t_fillMode = FILLMODE_KEEP_ASPECT;\n\t_resolutionMode = RESOLUTION_FIXED;\n\t_allowResize = true;\n\t_skyboxAsset = null;\n\t_soundManager;\n\t_visibilityChangeHandler;\n\t_entityIndex = {};\n\t_inTools = false;\n\t_scriptPrefix = \"\";\n\t_time = 0;\n\tenableBundles = typeof TextDecoder !== \"undefined\";\n\tframeRequestId;\n\ttick = (timestamp, xrFrame) => {\n\t\tif (!this.graphicsDevice) {\n\t\t\treturn;\n\t\t}\n\t\tif (this.frameRequestId) {\n\t\t\tthis.xr?.session?.cancelAnimationFrame(this.frameRequestId);\n\t\t\tcancelAnimationFrame(this.frameRequestId);\n\t\t\tthis.frameRequestId = null;\n\t\t}\n\t\tthis._inFrameUpdate = true;\n\t\tsetApplication(this);\n\t\tapp = this;\n\t\tconst currentTime = this._processTimestamp(timestamp) || now();\n\t\tconst ms = currentTime - (this._time || currentTime);\n\t\tlet dt = ms / 1e3;\n\t\tdt = math.clamp(dt, 0, this.maxDeltaTime);\n\t\tdt *= this.timeScale;\n\t\tthis._time = currentTime;\n\t\tthis.requestAnimationFrame();\n\t\tif (this.graphicsDevice.contextLost) {\n\t\t\treturn;\n\t\t}\n\t\tthis.stats.updateBasic(currentTime, dt, ms, this.renderer, this.graphicsDevice);\n\t\tthis.fire(\"frameupdate\", ms);\n\t\tlet skipUpdate = false;\n\t\tif (xrFrame) {\n\t\t\tskipUpdate = !this.xr?.update(xrFrame);\n\t\t}\n\t\tif (!skipUpdate) {\n\t\t\tthis.update(dt);\n\t\t\tthis.fire(\"framerender\");\n\t\t\tif (this.autoRender || this.renderNextFrame) {\n\t\t\t\tthis.render();\n\t\t\t\tthis.renderNextFrame = false;\n\t\t\t}\n\t\t\tthis.fire(\"frameend\");\n\t\t\tthis.stats.frameEnd();\n\t\t}\n\t\tthis._inFrameUpdate = false;\n\t\tif (this._destroyRequested) {\n\t\t\tthis.destroy();\n\t\t}\n\t};\n\ttimeScale = 1;\n\tmaxDeltaTime = 0.1;\n\t// Maximum delta is 0.1s or 10 fps.\n\tframe = 0;\n\tframeGraph = new FrameGraph();\n\trenderer;\n\tscriptsOrder = [];\n\tstats;\n\tautoRender = true;\n\trenderNextFrame = false;\n\tgraphicsDevice;\n\troot;\n\tscene;\n\tlightmapper = null;\n\tloader = new ResourceLoader(this);\n\tassets = new AssetRegistry(this.loader);\n\tbundles;\n\tscenes = new SceneRegistry(this);\n\tscripts = new ScriptRegistry(this);\n\tsystems = new ComponentSystemRegistry();\n\ti18n = new I18n(this);\n\tkeyboard = null;\n\tmouse = null;\n\ttouch = null;\n\tgamepads = null;\n\telementInput = null;\n\txr = null;\n\tconstructor(canvas) {\n\t\tsuper();\n\t\t_AppBase._applications[canvas.id] = this;\n\t\tsetApplication(this);\n\t\tapp = this;\n\t\tthis.root = new Entity();\n\t\tthis.root._enabledInHierarchy = true;\n\t}\n\tinit(appOptions) {\n\t\tconst {\n\t\t\tassetPrefix,\n\t\t\tbatchManager,\n\t\t\tcomponentSystems,\n\t\t\telementInput,\n\t\t\tgamepads: gamepads2,\n\t\t\tgraphicsDevice,\n\t\t\tkeyboard,\n\t\t\tlightmapper,\n\t\t\tmouse,\n\t\t\tphysicsWorld,\n\t\t\tresourceHandlers,\n\t\t\tscriptsOrder,\n\t\t\tscriptPrefix,\n\t\t\tsoundManager,\n\t\t\ttouch: touch2,\n\t\t\txr\n\t\t} = appOptions;\n\t\tthis.graphicsDevice = graphicsDevice;\n\t\tShaderChunks.get(graphicsDevice, SHADERLANGUAGE_GLSL).add(shaderChunksGLSL);\n\t\tShaderChunks.get(graphicsDevice, SHADERLANGUAGE_WGSL).add(shaderChunksWGSL);\n\t\tthis._initDefaultMaterial();\n\t\tthis._initProgramLibrary();\n\t\tthis.stats = new ApplicationStats(this);\n\t\tthis._soundManager = soundManager;\n\t\tthis.scene = new Scene(graphicsDevice);\n\t\tthis._registerSceneImmediate(this.scene);\n\t\tif (assetPrefix) this.assets.prefix = assetPrefix;\n\t\tthis.bundles = new BundleRegistry(this.assets);\n\t\tthis.scriptsOrder = scriptsOrder || [];\n\t\tthis.defaultLayerWorld = new Layer({ name: \"World\", id: LAYERID_WORLD });\n\t\tthis.defaultLayerDepth = new Layer({ name: \"Depth\", id: LAYERID_DEPTH, enabled: false, opaqueSortMode: SORTMODE_NONE });\n\t\tthis.defaultLayerSkybox = new Layer({ name: \"Skybox\", id: LAYERID_SKYBOX, opaqueSortMode: SORTMODE_NONE });\n\t\tthis.defaultLayerUi = new Layer({ name: \"UI\", id: LAYERID_UI, transparentSortMode: SORTMODE_MANUAL });\n\t\tthis.defaultLayerImmediate = new Layer({ name: \"Immediate\", id: LAYERID_IMMEDIATE, opaqueSortMode: SORTMODE_NONE });\n\t\tconst defaultLayerComposition = new LayerComposition(\"default\");\n\t\tdefaultLayerComposition.pushOpaque(this.defaultLayerWorld);\n\t\tdefaultLayerComposition.pushOpaque(this.defaultLayerDepth);\n\t\tdefaultLayerComposition.pushOpaque(this.defaultLayerSkybox);\n\t\tdefaultLayerComposition.pushTransparent(this.defaultLayerWorld);\n\t\tdefaultLayerComposition.pushOpaque(this.defaultLayerImmediate);\n\t\tdefaultLayerComposition.pushTransparent(this.defaultLayerImmediate);\n\t\tdefaultLayerComposition.pushTransparent(this.defaultLayerUi);\n\t\tthis.scene.layers = defaultLayerComposition;\n\t\tAreaLightLuts.createPlaceholder(graphicsDevice);\n\t\tthis.renderer = new ForwardRenderer(graphicsDevice, this.scene);\n\t\tif (lightmapper) {\n\t\t\tthis.lightmapper = new lightmapper(graphicsDevice, this.root, this.scene, this.renderer, this.assets);\n\t\t\tthis.once(\"prerender\", this._firstBake, this);\n\t\t}\n\t\tif (batchManager) {\n\t\t\tthis._batcher = new batchManager(graphicsDevice, this.root, this.scene);\n\t\t\tthis.once(\"prerender\", this._firstBatch, this);\n\t\t}\n\t\tthis.keyboard = keyboard || null;\n\t\tthis.mouse = mouse || null;\n\t\tthis.touch = touch2 || null;\n\t\tthis.gamepads = gamepads2 || null;\n\t\tif (elementInput) {\n\t\t\tthis.elementInput = elementInput;\n\t\t\tthis.elementInput.app = this;\n\t\t}\n\t\tthis.xr = xr ? new xr(this) : null;\n\t\tif (this.elementInput) this.elementInput.attachSelectEvents();\n\t\tthis._scriptPrefix = scriptPrefix || \"\";\n\t\tif (this.enableBundles) {\n\t\t\tthis.loader.addHandler(\"bundle\", new BundleHandler(this));\n\t\t}\n\t\tresourceHandlers.forEach((resourceHandler) => {\n\t\t\tconst handler = new resourceHandler(this);\n\t\t\tthis.loader.addHandler(handler.handlerType, handler);\n\t\t});\n\t\tthis.loader.enableRetry();\n\t\tcomponentSystems.forEach((componentSystem) => {\n\t\t\tthis.systems.add(new componentSystem(this));\n\t\t});\n\t\tif (physicsWorld) {\n\t\t\tthis.systems.rigidbody?.setPhysicsWorld(physicsWorld);\n\t\t}\n\t\tthis._visibilityChangeHandler = this.onVisibilityChange.bind(this);\n\t\tif (typeof document !== \"undefined\") {\n\t\t\tdocument.addEventListener(\"visibilitychange\", this._visibilityChangeHandler, false);\n\t\t}\n\t}\n\tstatic _applications = {};\n\tstatic getApplication(id14) {\n\t\treturn id14 ? _AppBase._applications[id14] : getApplication();\n\t}\n\t_initDefaultMaterial() {\n\t\tconst material = new StandardMaterial();\n\t\tmaterial.name = \"Default Material\";\n\t\tsetDefaultMaterial(this.graphicsDevice, material);\n\t}\n\t_initProgramLibrary() {\n\t\tconst library = new ProgramLibrary(this.graphicsDevice, new StandardMaterial());\n\t\tsetProgramLibrary(this.graphicsDevice, library);\n\t}\n\tget soundManager() {\n\t\treturn this._soundManager;\n\t}\n\tget batcher() {\n\t\treturn this._batcher;\n\t}\n\tget fillMode() {\n\t\treturn this._fillMode;\n\t}\n\tget resolutionMode() {\n\t\treturn this._resolutionMode;\n\t}\n\tconfigure(url, callback) {\n\t\thttp.get(url, (err2, response) => {\n\t\t\tif (err2) {\n\t\t\t\tcallback(err2);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst props = response.application_properties;\n\t\t\tconst scenes = response.scenes;\n\t\t\tconst assets = response.assets;\n\t\t\tthis._parseApplicationProperties(props, (err3) => {\n\t\t\t\tthis._parseScenes(scenes);\n\t\t\t\tthis._parseAssets(assets);\n\t\t\t\tif (!err3) {\n\t\t\t\t\tcallback(null);\n\t\t\t\t} else {\n\t\t\t\t\tcallback(err3);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\tpreload(callback) {\n\t\tthis.fire(\"preload:start\");\n\t\tconst assets = this.assets.list({\n\t\t\tpreload: true\n\t\t});\n\t\tif (assets.length === 0) {\n\t\t\tthis.fire(\"preload:end\");\n\t\t\tcallback();\n\t\t\treturn;\n\t\t}\n\t\tlet loadedCount = 0;\n\t\tconst onAssetLoadOrError = () => {\n\t\t\tloadedCount++;\n\t\t\tthis.fire(\"preload:progress\", loadedCount / assets.length);\n\t\t\tif (loadedCount === assets.length) {\n\t\t\t\tthis.fire(\"preload:end\");\n\t\t\t\tcallback();\n\t\t\t}\n\t\t};\n\t\tassets.forEach((asset) => {\n\t\t\tif (!asset.loaded) {\n\t\t\t\tasset.once(\"load\", onAssetLoadOrError);\n\t\t\t\tasset.once(\"error\", onAssetLoadOrError);\n\t\t\t\tthis.assets.load(asset);\n\t\t\t} else {\n\t\t\t\tonAssetLoadOrError();\n\t\t\t}\n\t\t});\n\t}\n\t_preloadScripts(sceneData, callback) {\n\t\tcallback();\n\t}\n\t// set application properties from data file\n\t_parseApplicationProperties(props, callback) {\n\t\tif (typeof props.maxAssetRetries === \"number\" && props.maxAssetRetries > 0) {\n\t\t\tthis.loader.enableRetry(props.maxAssetRetries);\n\t\t}\n\t\tif (typeof props.maxConcurrentRequests === \"number\" && props.maxConcurrentRequests >= 0) {\n\t\t\tthis.loader.maxConcurrentRequests = props.maxConcurrentRequests;\n\t\t}\n\t\tif (typeof props.withCredentials === \"boolean\") {\n\t\t\tthis.loader.withCredentials = props.withCredentials;\n\t\t}\n\t\tif (!props.useDevicePixelRatio) {\n\t\t\tprops.useDevicePixelRatio = props.use_device_pixel_ratio;\n\t\t}\n\t\tif (!props.resolutionMode) {\n\t\t\tprops.resolutionMode = props.resolution_mode;\n\t\t}\n\t\tif (!props.fillMode) {\n\t\t\tprops.fillMode = props.fill_mode;\n\t\t}\n\t\tthis._width = props.width;\n\t\tthis._height = props.height;\n\t\tif (props.useDevicePixelRatio) {\n\t\t\tthis.graphicsDevice.maxPixelRatio = window.devicePixelRatio;\n\t\t}\n\t\tthis.setCanvasResolution(props.resolutionMode, this._width, this._height);\n\t\tthis.setCanvasFillMode(props.fillMode, this._width, this._height);\n\t\tif (props.layers && props.layerOrder) {\n\t\t\tconst composition = new LayerComposition(\"application\");\n\t\t\tconst layers = {};\n\t\t\tfor (const key in props.layers) {\n\t\t\t\tconst data2 = props.layers[key];\n\t\t\t\tdata2.id = parseInt(key, 10);\n\t\t\t\tdata2.enabled = data2.id !== LAYERID_DEPTH;\n\t\t\t\tlayers[key] = new Layer(data2);\n\t\t\t}\n\t\t\tfor (let i2 = 0, len = props.layerOrder.length; i2 < len; i2++) {\n\t\t\t\tconst sublayer = props.layerOrder[i2];\n\t\t\t\tconst layer = layers[sublayer.layer];\n\t\t\t\tif (!layer) continue;\n\t\t\t\tif (sublayer.transparent) {\n\t\t\t\t\tcomposition.pushTransparent(layer);\n\t\t\t\t} else {\n\t\t\t\t\tcomposition.pushOpaque(layer);\n\t\t\t\t}\n\t\t\t\tcomposition.subLayerEnabled[i2] = sublayer.enabled;\n\t\t\t}\n\t\t\tthis.scene.layers = composition;\n\t\t}\n\t\tif (props.batchGroups) {\n\t\t\tconst batcher = this.batcher;\n\t\t\tif (batcher) {\n\t\t\t\tfor (let i2 = 0, len = props.batchGroups.length; i2 < len; i2++) {\n\t\t\t\t\tconst grp = props.batchGroups[i2];\n\t\t\t\t\tbatcher.addGroup(grp.name, grp.dynamic, grp.maxAabbSize, grp.id, grp.layers);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (props.i18nAssets) {\n\t\t\tthis.i18n.assets = props.i18nAssets;\n\t\t}\n\t\tthis._loadLibraries(props.libraries, callback);\n\t}\n\t_loadLibraries(urls, callback) {\n\t\tconst len = urls.length;\n\t\tlet count = len;\n\t\tconst regex = /^https?:\\/\\//;\n\t\tif (len) {\n\t\t\tconst onLoad = (err2, script2) => {\n\t\t\t\tcount--;\n\t\t\t\tif (err2) {\n\t\t\t\t\tcallback(err2);\n\t\t\t\t} else if (count === 0) {\n\t\t\t\t\tthis.onLibrariesLoaded();\n\t\t\t\t\tcallback(null);\n\t\t\t\t}\n\t\t\t};\n\t\t\tfor (let i2 = 0; i2 < len; ++i2) {\n\t\t\t\tlet url = urls[i2];\n\t\t\t\tif (!regex.test(url.toLowerCase()) && this._scriptPrefix) {\n\t\t\t\t\turl = path.join(this._scriptPrefix, url);\n\t\t\t\t}\n\t\t\t\tthis.loader.load(url, \"script\", onLoad);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.onLibrariesLoaded();\n\t\t\tcallback(null);\n\t\t}\n\t}\n\t_parseScenes(scenes) {\n\t\tif (!scenes) return;\n\t\tfor (let i2 = 0; i2 < scenes.length; i2++) {\n\t\t\tthis.scenes.add(scenes[i2].name, scenes[i2].url);\n\t\t}\n\t}\n\t_parseAssets(assets) {\n\t\tconst list = [];\n\t\tconst scriptsIndex = {};\n\t\tconst bundlesIndex = {};\n\t\tfor (let i2 = 0; i2 < this.scriptsOrder.length; i2++) {\n\t\t\tconst id14 = this.scriptsOrder[i2];\n\t\t\tif (!assets[id14]) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tscriptsIndex[id14] = true;\n\t\t\tlist.push(assets[id14]);\n\t\t}\n\t\tif (this.enableBundles) {\n\t\t\tfor (const id14 in assets) {\n\t\t\t\tif (assets[id14].type === \"bundle\") {\n\t\t\t\t\tbundlesIndex[id14] = true;\n\t\t\t\t\tlist.push(assets[id14]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor (const id14 in assets) {\n\t\t\tif (scriptsIndex[id14] || bundlesIndex[id14]) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tlist.push(assets[id14]);\n\t\t}\n\t\tfor (let i2 = 0; i2 < list.length; i2++) {\n\t\t\tconst data2 = list[i2];\n\t\t\tconst asset = new Asset(data2.name, data2.type, data2.file, data2.data);\n\t\t\tasset.id = parseInt(data2.id, 10);\n\t\t\tasset.preload = data2.preload ? data2.preload : false;\n\t\t\tasset.loaded = data2.type === \"script\" && data2.data && data2.data.loadingType > 0;\n\t\t\tasset.tags.add(data2.tags);\n\t\t\tif (data2.i18n) {\n\t\t\t\tfor (const locale in data2.i18n) {\n\t\t\t\t\tasset.addLocalizedAssetId(locale, data2.i18n[locale]);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.assets.add(asset);\n\t\t}\n\t}\n\tstart() {\n\t\tthis.frame = 0;\n\t\tthis.fire(\"start\", {\n\t\t\ttimestamp: now(),\n\t\t\ttarget: this\n\t\t});\n\t\tif (!this._librariesLoaded) {\n\t\t\tthis.onLibrariesLoaded();\n\t\t}\n\t\tthis.systems.fire(\"initialize\", this.root);\n\t\tthis.fire(\"initialize\");\n\t\tthis.systems.fire(\"postInitialize\", this.root);\n\t\tthis.systems.fire(\"postPostInitialize\", this.root);\n\t\tthis.fire(\"postinitialize\");\n\t\tthis.requestAnimationFrame();\n\t}\n\trequestAnimationFrame() {\n\t\tif (this.xr?.session) {\n\t\t\tthis.frameRequestId = this.xr.session.requestAnimationFrame(this.tick);\n\t\t} else {\n\t\t\tthis.frameRequestId = platform.browser || platform.worker ? requestAnimationFrame(this.tick) : null;\n\t\t}\n\t}\n\tinputUpdate(dt) {\n\t\tif (this.mouse) {\n\t\t\tthis.mouse.update();\n\t\t}\n\t\tif (this.keyboard) {\n\t\t\tthis.keyboard.update();\n\t\t}\n\t\tif (this.gamepads) {\n\t\t\tthis.gamepads.update();\n\t\t}\n\t}\n\tupdate(dt) {\n\t\tthis.frame++;\n\t\tthis.graphicsDevice.update();\n\t\tthis.stats.frame.scriptUpdateStart = now();\n\t\tthis.systems.fire(this._inTools ? \"toolsUpdate\" : \"update\", dt);\n\t\tthis.stats.frame.scriptUpdate = now() - this.stats.frame.scriptUpdateStart;\n\t\tthis.stats.frame.animUpdateStart = now();\n\t\tthis.systems.fire(\"animationUpdate\", dt);\n\t\tthis.stats.frame.animUpdate = now() - this.stats.frame.animUpdateStart;\n\t\tthis.stats.frame.scriptPostUpdateStart = now();\n\t\tthis.systems.fire(\"postUpdate\", dt);\n\t\tthis.stats.frame.scriptPostUpdate = now() - this.stats.frame.scriptPostUpdateStart;\n\t\tthis.fire(\"update\", dt);\n\t\tthis.inputUpdate(dt);\n\t}\n\trender() {\n\t\tthis.updateCanvasSize();\n\t\tthis.graphicsDevice.frameStart();\n\t\tthis.fire(\"prerender\");\n\t\tthis.root.syncHierarchy();\n\t\tif (this._batcher) {\n\t\t\tthis._batcher.updateAll();\n\t\t}\n\t\tthis.renderComposition(this.scene.layers);\n\t\tthis.fire(\"postrender\");\n\t\tthis.stats.frame.renderTime = now() - this.stats.frame.renderStart;\n\t\tthis.graphicsDevice.frameEnd();\n\t}\n\t// render a layer composition\n\trenderComposition(layerComposition) {\n\t\tthis.renderer.update(layerComposition);\n\t\tthis.renderer.buildFrameGraph(this.frameGraph, layerComposition);\n\t\tthis.renderer.cull(layerComposition);\n\t\tthis.frameGraph.render(this.graphicsDevice);\n\t}\n\tsetCanvasFillMode(mode, width, height) {\n\t\tthis._fillMode = mode;\n\t\tthis.resizeCanvas(width, height);\n\t}\n\tsetCanvasResolution(mode, width, height) {\n\t\tthis._resolutionMode = mode;\n\t\tif (mode === RESOLUTION_AUTO && width === void 0) {\n\t\t\twidth = this.graphicsDevice.canvas.clientWidth;\n\t\t\theight = this.graphicsDevice.canvas.clientHeight;\n\t\t}\n\t\tthis.graphicsDevice.resizeCanvas(width, height);\n\t}\n\tisHidden() {\n\t\treturn document.hidden;\n\t}\n\tonVisibilityChange() {\n\t\tif (this.isHidden()) {\n\t\t\tif (this._soundManager) {\n\t\t\t\tthis._soundManager.suspend();\n\t\t\t}\n\t\t} else {\n\t\t\tif (this._soundManager) {\n\t\t\t\tthis._soundManager.resume();\n\t\t\t}\n\t\t}\n\t}\n\tresizeCanvas(width, height) {\n\t\tif (!this._allowResize) return void 0;\n\t\tif (this.xr && this.xr.session) {\n\t\t\treturn void 0;\n\t\t}\n\t\tconst windowWidth = window.innerWidth;\n\t\tconst windowHeight = window.innerHeight;\n\t\tif (this._fillMode === FILLMODE_KEEP_ASPECT) {\n\t\t\tconst r = this.graphicsDevice.canvas.width / this.graphicsDevice.canvas.height;\n\t\t\tconst winR = windowWidth / windowHeight;\n\t\t\tif (r > winR) {\n\t\t\t\twidth = windowWidth;\n\t\t\t\theight = width / r;\n\t\t\t} else {\n\t\t\t\theight = windowHeight;\n\t\t\t\twidth = height * r;\n\t\t\t}\n\t\t} else if (this._fillMode === FILLMODE_FILL_WINDOW) {\n\t\t\twidth = windowWidth;\n\t\t\theight = windowHeight;\n\t\t}\n\t\tthis.graphicsDevice.canvas.style.width = `${width}px`;\n\t\tthis.graphicsDevice.canvas.style.height = `${height}px`;\n\t\tthis.updateCanvasSize();\n\t\treturn {\n\t\t\twidth,\n\t\t\theight\n\t\t};\n\t}\n\tupdateCanvasSize() {\n\t\tif (!this._allowResize || this.xr?.active) {\n\t\t\treturn;\n\t\t}\n\t\tif (this._resolutionMode === RESOLUTION_AUTO) {\n\t\t\tconst canvas = this.graphicsDevice.canvas;\n\t\t\tthis.graphicsDevice.resizeCanvas(canvas.clientWidth, canvas.clientHeight);\n\t\t}\n\t}\n\tonLibrariesLoaded() {\n\t\tthis._librariesLoaded = true;\n\t\tif (this.systems.rigidbody) {\n\t\t\tthis.systems.rigidbody.onLibraryLoaded();\n\t\t}\n\t}\n\tapplySceneSettings(settings) {\n\t\tlet asset;\n\t\tif (this.systems.rigidbody) {\n\t\t\tconst [x3, y2, z2] = settings.physics.gravity;\n\t\t\tthis.systems.rigidbody.gravity.set(x3, y2, z2);\n\t\t}\n\t\tthis.scene.applySettings(settings);\n\t\tif (settings.render.hasOwnProperty(\"skybox\")) {\n\t\t\tif (settings.render.skybox) {\n\t\t\t\tasset = this.assets.get(settings.render.skybox);\n\t\t\t\tif (asset) {\n\t\t\t\t\tthis.setSkybox(asset);\n\t\t\t\t} else {\n\t\t\t\t\tthis.assets.once(`add:${settings.render.skybox}`, this.setSkybox, this);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.setSkybox(null);\n\t\t\t}\n\t\t}\n\t}\n\tsetAreaLightLuts(ltcMat1, ltcMat2) {\n\t\tif (ltcMat1 && ltcMat2) {\n\t\t\tAreaLightLuts.set(this.graphicsDevice, ltcMat1, ltcMat2);\n\t\t} else {\n\t\t}\n\t}\n\tsetSkybox(asset) {\n\t\tif (asset !== this._skyboxAsset) {\n\t\t\tif (this._skyboxAsset) {\n\t\t\t\tthis.assets.off(`load:${this._skyboxAsset.id}`, this._onSkyboxChanged, this);\n\t\t\t\tthis.assets.off(`remove:${this._skyboxAsset.id}`, this._onSkyboxRemoved, this);\n\t\t\t\tthis._skyboxAsset.off(\"change\", this._onSkyboxChanged, this);\n\t\t\t}\n\t\t\tthis._skyboxAsset = asset;\n\t\t\tif (this._skyboxAsset) {\n\t\t\t\tthis.assets.on(`load:${this._skyboxAsset.id}`, this._onSkyboxChanged, this);\n\t\t\t\tthis.assets.once(`remove:${this._skyboxAsset.id}`, this._onSkyboxRemoved, this);\n\t\t\t\tthis._skyboxAsset.on(\"change\", this._onSkyboxChanged, this);\n\t\t\t\tif (this.scene.skyboxMip === 0 && !this._skyboxAsset.loadFaces) {\n\t\t\t\t\tthis._skyboxAsset.loadFaces = true;\n\t\t\t\t}\n\t\t\t\tthis.assets.load(this._skyboxAsset);\n\t\t\t}\n\t\t\tthis._onSkyboxChanged();\n\t\t}\n\t}\n\t_onSkyboxRemoved() {\n\t\tthis.setSkybox(null);\n\t}\n\t_onSkyboxChanged() {\n\t\tthis.scene.setSkybox(this._skyboxAsset ? this._skyboxAsset.resources : null);\n\t}\n\t_firstBake() {\n\t\tthis.lightmapper?.bake(null, this.scene.lightmapMode);\n\t}\n\t_firstBatch() {\n\t\tthis.batcher?.generate();\n\t}\n\t_processTimestamp(timestamp) {\n\t\treturn timestamp;\n\t}\n\tdrawLine(start, end, color3, depthTest, layer) {\n\t\tthis.scene.drawLine(start, end, color3, depthTest, layer);\n\t}\n\tdrawLines(positions, colors, depthTest = true, layer = this.scene.defaultDrawLayer) {\n\t\tthis.scene.drawLines(positions, colors, depthTest, layer);\n\t}\n\tdrawLineArrays(positions, colors, depthTest = true, layer = this.scene.defaultDrawLayer) {\n\t\tthis.scene.drawLineArrays(positions, colors, depthTest, layer);\n\t}\n\tdrawWireSphere() {\n\t}\n\tdrawWireAlignedBox() {\n\t}\n\tdrawMeshInstance(meshInstance, layer = this.scene.defaultDrawLayer) {\n\t\tthis.scene.immediate.drawMesh(null, null, null, meshInstance, layer);\n\t}\n\tdrawMesh(mesh, material, matrix2, layer = this.scene.defaultDrawLayer) {\n\t\tthis.scene.immediate.drawMesh(material, matrix2, mesh, null, layer);\n\t}\n\tdrawQuad(matrix2, material, layer = this.scene.defaultDrawLayer) {\n\t\tthis.scene.immediate.drawMesh(material, matrix2, this.scene.immediate.getQuadMesh(), null, layer);\n\t}\n\tdrawTexture(x3, y2, width, height, texture, material, layer = this.scene.defaultDrawLayer, filterable = true) {\n\t\tif (filterable === false && !this.graphicsDevice.isWebGPU) {\n\t\t\treturn;\n\t\t}\n\t\tconst matrix2 = new Mat4();\n\t\tmatrix2.setTRS(new Vec3(x3, y2, 0), Quat.IDENTITY, new Vec3(width, -height, 0));\n\t\tif (!material) {\n\t\t\tmaterial = new ShaderMaterial();\n\t\t\tmaterial.cull = CULLFACE_NONE;\n\t\t\tmaterial.setParameter(\"colorMap\", texture);\n\t\t\tmaterial.shaderDesc = filterable ? this.scene.immediate.getTextureShaderDesc(texture.encoding) : this.scene.immediate.getUnfilterableTextureShaderDesc();\n\t\t\tmaterial.update();\n\t\t}\n\t\tthis.drawQuad(matrix2, material, layer);\n\t}\n\tdrawDepthTexture(x3, y2, width, height, layer = this.scene.defaultDrawLayer) {\n\t\tconst material = new ShaderMaterial();\n\t\tmaterial.cull = CULLFACE_NONE;\n\t\tmaterial.shaderDesc = this.scene.immediate.getDepthTextureShaderDesc();\n\t\tmaterial.update();\n\t\tthis.drawTexture(x3, y2, width, height, null, material, layer);\n\t}\n\tdestroy() {\n\t\tif (this._inFrameUpdate) {\n\t\t\tthis._destroyRequested = true;\n\t\t\treturn;\n\t\t}\n\t\tconst canvasId = this.graphicsDevice.canvas.id;\n\t\tthis.fire(\"destroy\", this);\n\t\tthis.off(\"librariesloaded\");\n\t\tthis._gsplatSortedEvt?.off();\n\t\tthis._gsplatSortedEvt = null;\n\t\tif (typeof document !== \"undefined\") {\n\t\t\tdocument.removeEventListener(\"visibilitychange\", this._visibilityChangeHandler, false);\n\t\t}\n\t\tthis._visibilityChangeHandler = null;\n\t\tthis.root.destroy();\n\t\tthis.root = null;\n\t\tif (this.mouse) {\n\t\t\tthis.mouse.off();\n\t\t\tthis.mouse.detach();\n\t\t\tthis.mouse = null;\n\t\t}\n\t\tif (this.keyboard) {\n\t\t\tthis.keyboard.off();\n\t\t\tthis.keyboard.detach();\n\t\t\tthis.keyboard = null;\n\t\t}\n\t\tif (this.touch) {\n\t\t\tthis.touch.off();\n\t\t\tthis.touch.detach();\n\t\t\tthis.touch = null;\n\t\t}\n\t\tif (this.elementInput) {\n\t\t\tthis.elementInput.detach();\n\t\t\tthis.elementInput = null;\n\t\t}\n\t\tif (this.gamepads) {\n\t\t\tthis.gamepads.destroy();\n\t\t\tthis.gamepads = null;\n\t\t}\n\t\tthis.systems.destroy();\n\t\tthis.bundles.destroy();\n\t\tthis.bundles = null;\n\t\tthis.i18n.destroy();\n\t\tthis.i18n = null;\n\t\tconst scriptHandler = this.loader.getHandler(\"script\");\n\t\tscriptHandler?.clearCache();\n\t\tthis.loader.destroy();\n\t\tthis.loader = null;\n\t\tthis.systems = null;\n\t\tthis.context = null;\n\t\tthis.scripts.destroy();\n\t\tthis.scripts = null;\n\t\tthis.scenes.destroy();\n\t\tthis.scenes = null;\n\t\tthis.lightmapper?.destroy();\n\t\tthis.lightmapper = null;\n\t\tif (this._batcher) {\n\t\t\tthis._batcher.destroy();\n\t\t\tthis._batcher = null;\n\t\t}\n\t\tthis._entityIndex = {};\n\t\tthis.defaultLayerDepth.onDisable = null;\n\t\tthis.defaultLayerDepth.onEnable = null;\n\t\tthis.defaultLayerDepth = null;\n\t\tthis.defaultLayerWorld = null;\n\t\tthis.xr?.end();\n\t\tthis.xr?.destroy();\n\t\tthis.renderer.destroy();\n\t\tthis.renderer = null;\n\t\tconst assets = this.assets.list();\n\t\tfor (let i2 = 0; i2 < assets.length; i2++) {\n\t\t\tassets[i2].unload();\n\t\t\tassets[i2].off();\n\t\t}\n\t\tthis.assets.destroy();\n\t\tthis.assets = null;\n\t\tthis.scene.destroy();\n\t\tthis.scene = null;\n\t\tthis.graphicsDevice.destroy();\n\t\tthis.graphicsDevice = null;\n\t\tthis.off();\n\t\tthis._soundManager?.destroy();\n\t\tthis._soundManager = null;\n\t\tscript.app = null;\n\t\t_AppBase._applications[canvasId] = null;\n\t\tif (getApplication() === this) {\n\t\t\tsetApplication(null);\n\t\t}\n\t\tif (app === this) {\n\t\t\tapp = null;\n\t\t}\n\t\t_AppBase.cancelTick(this);\n\t}\n\tstatic cancelTick(app2) {\n\t\tif (app2.frameRequestId) {\n\t\t\tcancelAnimationFrame(app2.frameRequestId);\n\t\t\tapp2.frameRequestId = void 0;\n\t\t}\n\t}\n\tgetEntityFromIndex(guid2) {\n\t\treturn this._entityIndex[guid2];\n\t}\n\t_registerSceneImmediate(scene) {\n\t\tthis.on(\"postrender\", scene.immediate.onPostRender, scene.immediate);\n\t\tthis._gsplatSortedEvt = scene.on(\"gsplat:sorted\", (sortTime) => {\n\t\t\tthis.stats.frame.gsplatSort += sortTime;\n\t\t});\n\t}\n\tisFullscreen() {\n\t\treturn !!document.fullscreenElement;\n\t}\n\tenableFullscreen(element, success, error) {\n\t\telement = element || this.graphicsDevice.canvas;\n\t\tconst s2 = function() {\n\t\t\tsuccess();\n\t\t\tdocument.removeEventListener(\"fullscreenchange\", s2);\n\t\t};\n\t\tconst e = function() {\n\t\t\terror();\n\t\t\tdocument.removeEventListener(\"fullscreenerror\", e);\n\t\t};\n\t\tif (success) {\n\t\t\tdocument.addEventListener(\"fullscreenchange\", s2, false);\n\t\t}\n\t\tif (error) {\n\t\t\tdocument.addEventListener(\"fullscreenerror\", e, false);\n\t\t}\n\t\tif (element.requestFullscreen) {\n\t\t\telement.requestFullscreen(Element.ALLOW_KEYBOARD_INPUT);\n\t\t} else {\n\t\t\terror();\n\t\t}\n\t}\n\tdisableFullscreen(success) {\n\t\tconst s2 = function() {\n\t\t\tsuccess();\n\t\t\tdocument.removeEventListener(\"fullscreenchange\", s2);\n\t\t};\n\t\tif (success) {\n\t\t\tdocument.addEventListener(\"fullscreenchange\", s2, false);\n\t\t}\n\t\tdocument.exitFullscreen();\n\t}\n\tgetSceneUrl(name) {\n\t\tconst entry = this.scenes.find(name);\n\t\tif (entry) {\n\t\t\treturn entry.url;\n\t\t}\n\t\treturn null;\n\t}\n\tloadScene(url, callback) {\n\t\tthis.scenes.loadScene(url, callback);\n\t}\n\tloadSceneHierarchy(url, callback) {\n\t\tthis.scenes.loadSceneHierarchy(url, callback);\n\t}\n\tloadSceneSettings(url, callback) {\n\t\tthis.scenes.loadSceneSettings(url, callback);\n\t}\n};\nForwardRenderer.prototype.renderComposition = function(comp) {\n\tgetApplication().renderComposition(comp);\n};\n\nvar AppOptions = class {\n\telementInput;\n\tkeyboard;\n\tmouse;\n\ttouch;\n\tgamepads;\n\tscriptPrefix;\n\tassetPrefix;\n\tscriptsOrder;\n\tsoundManager;\n\tphysicsWorld;\n\tgraphicsDevice;\n\tlightmapper;\n\tbatchManager;\n\txr;\n\tcomponentSystems = [];\n\tresourceHandlers = [];\n};\n\nvar tempSphere2 = new BoundingSphere();\nvar BakeLight = class {\n\tconstructor(scene, light, lightingParams) {\n\t\tthis.scene = scene;\n\t\tthis.light = light;\n\t\tthis.store();\n\t\tlight.numCascades = 1;\n\t\tif (this.scene.clusteredLightingEnabled && !lightingParams.shadowsEnabled) {\n\t\t\tlight.castShadows = false;\n\t\t}\n\t\tif (light.type !== LIGHTTYPE_DIRECTIONAL) {\n\t\t\tlight._node.getWorldTransform();\n\t\t\tlight.getBoundingSphere(tempSphere2);\n\t\t\tthis.lightBounds = new BoundingBox();\n\t\t\tthis.lightBounds.center.copy(tempSphere2.center);\n\t\t\tthis.lightBounds.halfExtents.set(tempSphere2.radius, tempSphere2.radius, tempSphere2.radius);\n\t\t}\n\t}\n\tstore() {\n\t\tthis.mask = this.light.mask;\n\t\tthis.shadowUpdateMode = this.light.shadowUpdateMode;\n\t\tthis.enabled = this.light.enabled;\n\t\tthis.intensity = this.light.intensity;\n\t\tthis.rotation = this.light._node.getLocalRotation().clone();\n\t\tthis.numCascades = this.light.numCascades;\n\t\tthis.castShadows = this.light._castShadows;\n\t}\n\trestore() {\n\t\tconst light = this.light;\n\t\tlight.mask = this.mask;\n\t\tlight.shadowUpdateMode = this.shadowUpdateMode;\n\t\tlight.enabled = this.enabled;\n\t\tlight.intensity = this.intensity;\n\t\tlight._node.setLocalRotation(this.rotation);\n\t\tlight.numCascades = this.numCascades;\n\t\tlight._castShadows = this.castShadows;\n\t}\n\tstartBake() {\n\t\tthis.light.enabled = true;\n\t\tthis.light._destroyShadowMap();\n\t\tthis.light.beginFrame();\n\t}\n\tendBake(shadowMapCache) {\n\t\tconst light = this.light;\n\t\tlight.enabled = false;\n\t\tif (light.shadowMap) {\n\t\t\tif (light.shadowMap.cached) {\n\t\t\t\tshadowMapCache.add(light, light.shadowMap);\n\t\t\t}\n\t\t\tlight.shadowMap = null;\n\t\t}\n\t}\n};\n\nvar _tempPoint = new Vec2();\nvar BakeLightSimple = class extends BakeLight {\n\tconstructor(lightmapper, light) {\n\t\tsuper(lightmapper.scene, light, lightmapper.lightingParams);\n\t}\n\tget numVirtualLights() {\n\t\tif (this.light.type === LIGHTTYPE_DIRECTIONAL) {\n\t\t\treturn this.light.bakeNumSamples;\n\t\t}\n\t\treturn 1;\n\t}\n\tprepareVirtualLight(index, numVirtualLights) {\n\t\tconst light = this.light;\n\t\tlight._node.setLocalRotation(this.rotation);\n\t\tif (index > 0) {\n\t\t\tconst directionalSpreadAngle = light.bakeArea;\n\t\t\trandom.circlePointDeterministic(_tempPoint, index, numVirtualLights);\n\t\t\t_tempPoint.mulScalar(directionalSpreadAngle * 0.5);\n\t\t\tlight._node.rotateLocal(_tempPoint.x, 0, _tempPoint.y);\n\t\t}\n\t\tlight._node.getWorldTransform();\n\t\tconst gamma = 2.2;\n\t\tconst linearIntensity = Math.pow(this.intensity, gamma);\n\t\tlight.intensity = Math.pow(linearIntensity / numVirtualLights, 1 / gamma);\n\t}\n};\n\nvar _tempPoint2 = new Vec3();\nvar BakeLightAmbient = class extends BakeLight {\n\tconstructor(lightmapper) {\n\t\tconst scene = lightmapper.scene;\n\t\tconst lightEntity = new Entity(\"AmbientLight\");\n\t\tlightEntity.addComponent(\"light\", {\n\t\t\ttype: \"directional\",\n\t\t\taffectDynamic: true,\n\t\t\taffectLightmapped: false,\n\t\t\tbake: true,\n\t\t\tbakeNumSamples: scene.ambientBakeNumSamples,\n\t\t\tcastShadows: true,\n\t\t\tnormalOffsetBias: 0.05,\n\t\t\tshadowBias: 0.2,\n\t\t\tshadowDistance: 1,\n\t\t\t// this is updated during shadow map rendering\n\t\t\tshadowResolution: 2048,\n\t\t\tshadowType: SHADOW_PCF3_32F,\n\t\t\tcolor: Color.WHITE,\n\t\t\tintensity: 1,\n\t\t\tbakeDir: false\n\t\t});\n\t\tsuper(scene, lightEntity.light.light, lightmapper.lightingParams);\n\t}\n\tget numVirtualLights() {\n\t\treturn this.light.bakeNumSamples;\n\t}\n\tprepareVirtualLight(index, numVirtualLights) {\n\t\trandom.spherePointDeterministic(_tempPoint2, index, numVirtualLights, 0, this.scene.ambientBakeSpherePart);\n\t\tthis.light._node.lookAt(_tempPoint2.mulScalar(-1));\n\t\tthis.light._node.rotateLocal(90, 0, 0);\n\t\tconst gamma = 2.2;\n\t\tconst fullIntensity = 2 * Math.PI * this.scene.ambientBakeSpherePart;\n\t\tconst linearIntensity = Math.pow(fullIntensity, gamma);\n\t\tthis.light.intensity = Math.pow(linearIntensity / numVirtualLights, 1 / gamma);\n\t}\n};\n\nvar BakeMeshNode = class {\n\tconstructor(node, meshInstances = null) {\n\t\tthis.node = node;\n\t\tthis.component = node.render || node.model;\n\t\tmeshInstances = meshInstances || this.component.meshInstances;\n\t\tthis.store();\n\t\tthis.meshInstances = meshInstances;\n\t\tthis.bounds = null;\n\t\tthis.renderTargets = [];\n\t}\n\tstore() {\n\t\tthis.castShadows = this.component.castShadows;\n\t}\n\trestore() {\n\t\tthis.component.castShadows = this.castShadows;\n\t}\n};\n\nvar bilateralDeNoise_default = `\nfloat normpdf3(in vec3 v, in float sigma) {\n\treturn 0.39894 * exp(-0.5 * dot(v, v) / (sigma * sigma)) / sigma;\n}\nvec3 decodeRGBM(vec4 rgbm) {\n\tvec3 color = (8.0 * rgbm.a) * rgbm.rgb;\n\treturn color * color;\n}\nfloat saturate(float x) {\n\treturn clamp(x, 0.0, 1.0);\n}\nvec4 encodeRGBM(vec3 color) {\n\tvec4 encoded;\n\tencoded.rgb = pow(color.rgb, vec3(0.5));\n\tencoded.rgb *= 1.0 / 8.0;\n\tencoded.a = saturate( max( max( encoded.r, encoded.g ), max( encoded.b, 1.0 / 255.0 ) ) );\n\tencoded.a = ceil(encoded.a * 255.0) / 255.0;\n\tencoded.rgb /= encoded.a;\n\treturn encoded;\n}\nvec3 decode(vec4 pixel) {\n\t#if HDR\n\t\treturn pixel.rgb;\n\t#else\n\t\treturn decodeRGBM(pixel);\n\t#endif\n}\nbool isUsed(vec4 pixel) {\n\t#if HDR\n\t\treturn any(greaterThan(pixel.rgb, vec3(0.0)));\n\t#else\n\t\treturn pixel.a > 0.0;\n\t#endif\n}\nvarying vec2 vUv0;\nuniform sampler2D source;\nuniform vec2 pixelOffset;\nuniform vec2 sigmas;\nuniform float bZnorm;\nuniform float kernel[{MSIZE}];\nvoid main(void) {\n\t\n\tvec4 pixel = texture2DLod(source, vUv0, 0.0);\n\tif (!isUsed(pixel)) {\n\t\tgl_FragColor = pixel;\n\t\treturn ;\n\t}\n\tfloat sigma = sigmas.x;\n\tfloat bSigma = sigmas.y;\n\tvec3 pixelHdr = decode(pixel);\n\tvec3 accumulatedHdr = vec3(0.0);\n\tfloat accumulatedFactor = 0.000001;\n\tconst int kSize = ({MSIZE} - 1) / 2;\n\tfor (int i = -kSize; i <= kSize; ++i) {\n\t\tfor (int j = -kSize; j <= kSize; ++j) {\n\t\t\t\n\t\t\tvec2 coord = vUv0 + vec2(float(i), float(j)) * pixelOffset;\n\t\t\tvec4 pix = texture2DLod(source, coord, 0.0);\n\t\t\tif (isUsed(pix)) {\n\t\t\t\tvec3 hdr = decode(pix);\n\t\t\t\tfloat factor = kernel[kSize + j] * kernel[kSize + i];\n\t\t\t\tfactor *= normpdf3(hdr - pixelHdr, bSigma) * bZnorm;\n\t\t\t\taccumulatedHdr += factor * hdr;\n\t\t\t\taccumulatedFactor += factor;\n\t\t\t}\n\t\t}\n\t}\n\tvec3 finalHDR = accumulatedHdr / accumulatedFactor;\n\t#if HDR\n\t\tgl_FragColor = vec4(finalHDR, 1.0);\n\t#else\n\t\tgl_FragColor = encodeRGBM(finalHDR);\n\t#endif\n}\n`;\n\nvar dilate_default = `\nvarying vec2 vUv0;\nuniform sampler2D source;\nuniform vec2 pixelOffset;\nbool isUsed(vec4 pixel) {\n\t#if HDR\n\t\treturn any(greaterThan(pixel.rgb, vec3(0.0)));\n\t#else\n\t\treturn pixel.a > 0.0;\n\t#endif\n}\nvoid main(void) {\n\tvec4 c = texture2DLod(source, vUv0, 0.0);\n\tc = isUsed(c) ? c : texture2DLod(source, vUv0 - pixelOffset, 0.0);\n\tc = isUsed(c) ? c : texture2DLod(source, vUv0 + vec2(0, -pixelOffset.y), 0.0);\n\tc = isUsed(c) ? c : texture2DLod(source, vUv0 + vec2(pixelOffset.x, -pixelOffset.y), 0.0);\n\tc = isUsed(c) ? c : texture2DLod(source, vUv0 + vec2(-pixelOffset.x, 0), 0.0);\n\tc = isUsed(c) ? c : texture2DLod(source, vUv0 + vec2(pixelOffset.x, 0), 0.0);\n\tc = isUsed(c) ? c : texture2DLod(source, vUv0 + vec2(-pixelOffset.x, pixelOffset.y), 0.0);\n\tc = isUsed(c) ? c : texture2DLod(source, vUv0 + vec2(0, pixelOffset.y), 0.0);\n\tc = isUsed(c) ? c : texture2DLod(source, vUv0 + pixelOffset, 0.0);\n\tgl_FragColor = c;\n}\n`;\n\nvar bilateralDeNoise_default2 = `\nfn normpdf3(v: vec3f, sigma: f32) -> f32 {\n\treturn 0.39894 * exp(-0.5 * dot(v, v) / (sigma * sigma)) / sigma;\n}\nfn decodeRGBM(rgbm: vec4f) -> vec3f {\n\tlet color = (8.0 * rgbm.a) * rgbm.rgb;\n\treturn color * color;\n}\nfn saturate(x: f32) -> f32 {\n\treturn clamp(x, 0.0, 1.0);\n}\nfn encodeRGBM(color: vec3f) -> vec4f {\n\tvar encoded: vec4f;\n\tlet rgb_processed = pow(color.rgb, vec3f(0.5)) * (1.0 / 8.0);\n\tencoded = vec4f(rgb_processed, 0.0);\n\tlet max_g_b = max( encoded.g, max( encoded.b, 1.0 / 255.0 ) );\n\tlet max_rgb = max( encoded.r, max_g_b );\n\tencoded.a = clamp(max_rgb, 0.0, 1.0);\n\tencoded.a = ceil(encoded.a * 255.0) / 255.0;\n\tencoded = vec4f(encoded.rgb / encoded.a, encoded.a);\n\treturn encoded;\n}\nfn decode(pixel: vec4f) -> vec3f {\n\t#if HDR\n\t\treturn pixel.rgb;\n\t#else\n\t\treturn decodeRGBM(pixel);\n\t#endif\n}\nfn isUsed(pixel: vec4f) -> bool {\n\t#if HDR\n\t\treturn any(pixel.rgb > vec3f(0.0));\n\t#else\n\t\treturn pixel.a > 0.0;\n\t#endif\n}\nvarying vUv0: vec2f;\nvar source: texture_2d<f32>;\nvar sourceSampler: sampler;\nuniform kernel: array<f32, {MSIZE}>;\nuniform pixelOffset: vec2f;\nuniform sigmas: vec2f;\nuniform bZnorm: f32;\n@fragment\nfn fragmentMain(input: FragmentInput) -> FragmentOutput {\n\tvar output: FragmentOutput;\n\tlet pixel = textureSampleLevel(source, sourceSampler, input.vUv0, 0.0);\n\tif (!isUsed(pixel)) {\n\t\toutput.color = pixel;\n\t\treturn output;\n\t}\n\tlet sigma = uniform.sigmas.x;\n\tlet bSigma = uniform.sigmas.y;\n\tlet pixelHdr = decode(pixel);\n\tvar accumulatedHdr = vec3f(0.0);\n\tvar accumulatedFactor = 0.000001;\n\tconst kSize = ({MSIZE} - 1) / 2;\n\tfor (var i: i32 = -kSize; i <= kSize; i = i + 1) {\n\t\tfor (var j: i32 = -kSize; j <= kSize; j = j + 1) {\n\t\t\tlet coord = input.vUv0 + vec2f(f32(i), f32(j)) * uniform.pixelOffset;\n\t\t\tlet pix = textureSampleLevel(source, sourceSampler, coord, 0.0);\n\t\t\tif (isUsed(pix)) {\n\t\t\t\tlet hdr = decode(pix);\n\t\t\t\tvar factor = uniform.kernel[u32(kSize + j)].element * uniform.kernel[u32(kSize + i)].element;\n\t\t\t\tfactor = factor * normpdf3(hdr - pixelHdr, bSigma) * uniform.bZnorm;\n\t\t\t\taccumulatedHdr = accumulatedHdr + factor * hdr;\n\t\t\t\taccumulatedFactor = accumulatedFactor + factor;\n\t\t\t}\n\t\t}\n\t}\n\tlet finalHDR = accumulatedHdr / accumulatedFactor;\n\t#if HDR\n\t\toutput.color = vec4f(finalHDR, 1.0);\n\t#else\n\t\toutput.color = encodeRGBM(finalHDR);\n\t#endif\n\treturn output;\n}\n`;\n\nvar dilate_default2 = `\nvarying vUv0: vec2f;\nvar source: texture_2d<f32>;\nvar sourceSampler: sampler;\nuniform pixelOffset: vec2f;\nfn isUsed(pixel: vec4f) -> bool {\n\t#ifdef HDR\n\t\treturn any(pixel.rgb > vec3f(0.0));\n\t#else\n\t\treturn pixel.a > 0.0;\n\t#endif\n}\n@fragment\nfn fragmentMain(input: FragmentInput) -> FragmentOutput {\n\tvar c: vec4f = textureSampleLevel(source, sourceSampler, input.vUv0, 0.0);\n\tc = select(textureSampleLevel(source, sourceSampler, input.vUv0 - uniform.pixelOffset, 0.0), c, isUsed(c));\n\tc = select(textureSampleLevel(source, sourceSampler, input.vUv0 + vec2f(0.0, -uniform.pixelOffset.y), 0.0), c, isUsed(c));\n\tc = select(textureSampleLevel(source, sourceSampler, input.vUv0 + vec2f(uniform.pixelOffset.x, -uniform.pixelOffset.y), 0.0), c, isUsed(c));\n\tc = select(textureSampleLevel(source, sourceSampler, input.vUv0 + vec2f(-uniform.pixelOffset.x, 0.0), 0.0), c, isUsed(c));\n\tc = select(textureSampleLevel(source, sourceSampler, input.vUv0 + vec2f(uniform.pixelOffset.x, 0.0), 0.0), c, isUsed(c));\n\tc = select(textureSampleLevel(source, sourceSampler, input.vUv0 + vec2f(-uniform.pixelOffset.x, uniform.pixelOffset.y), 0.0), c, isUsed(c));\n\tc = select(textureSampleLevel(source, sourceSampler, input.vUv0 + vec2f(0.0, uniform.pixelOffset.y), 0.0), c, isUsed(c));\n\tc = select(textureSampleLevel(source, sourceSampler, input.vUv0 + uniform.pixelOffset, 0.0), c, isUsed(c));\n\tvar output: FragmentOutput;\n\toutput.color = c;\n\treturn output;\n}\n`;\n\nvar DENOISE_FILTER_SIZE = 15;\nvar lightmapFiltersChunksGLSL = {\n\tglslBilateralDeNoisePS: bilateralDeNoise_default,\n\tglslDilatePS: dilate_default\n};\nvar lightmapFiltersChunksWLSL = {\n\twgslBilateralDeNoisePS: bilateralDeNoise_default2,\n\twgslDilatePS: dilate_default2\n};\nvar LightmapFilters = class {\n\tshaderDilate = [];\n\tshaderDenoise = [];\n\tconstructor(device) {\n\t\tthis.device = device;\n\t\tShaderChunks.get(this.device, SHADERLANGUAGE_GLSL).add(lightmapFiltersChunksGLSL);\n\t\tShaderChunks.get(this.device, SHADERLANGUAGE_WGSL).add(lightmapFiltersChunksWLSL);\n\t\tthis.constantTexSource = device.scope.resolve(\"source\");\n\t\tthis.constantPixelOffset = device.scope.resolve(\"pixelOffset\");\n\t\tthis.pixelOffset = new Float32Array(2);\n\t\tthis.sigmas = null;\n\t\tthis.constantSigmas = null;\n\t\tthis.kernel = null;\n\t}\n\tsetSourceTexture(texture) {\n\t\tthis.constantTexSource.setValue(texture);\n\t}\n\tprepare(textureWidth, textureHeight) {\n\t\tthis.pixelOffset[0] = 1 / textureWidth;\n\t\tthis.pixelOffset[1] = 1 / textureHeight;\n\t\tthis.constantPixelOffset.setValue(this.pixelOffset);\n\t}\n\tprepareDenoise(filterRange, filterSmoothness, bakeHDR) {\n\t\tconst index = bakeHDR ? 0 : 1;\n\t\tif (!this.shaderDenoise[index]) {\n\t\t\tconst defines = /* @__PURE__ */ new Map();\n\t\t\tdefines.set(\"{MSIZE}\", 15);\n\t\t\tif (bakeHDR) defines.set(\"HDR\", \"\");\n\t\t\tthis.shaderDenoise[index] = ShaderUtils.createShader(this.device, {\n\t\t\t\tuniqueName: `lmBilateralDeNoise-${bakeHDR ? \"hdr\" : \"rgbm\"}`,\n\t\t\t\tattributes: { vertex_position: SEMANTIC_POSITION },\n\t\t\t\tvertexGLSL: ShaderChunks.get(this.device, SHADERLANGUAGE_GLSL).get(\"fullscreenQuadVS\"),\n\t\t\t\tvertexWGSL: ShaderChunks.get(this.device, SHADERLANGUAGE_WGSL).get(\"fullscreenQuadVS\"),\n\t\t\t\tfragmentGLSL: ShaderChunks.get(this.device, SHADERLANGUAGE_GLSL).get(\"glslBilateralDeNoisePS\"),\n\t\t\t\tfragmentWGSL: ShaderChunks.get(this.device, SHADERLANGUAGE_WGSL).get(\"wgslBilateralDeNoisePS\"),\n\t\t\t\tfragmentDefines: defines\n\t\t\t});\n\t\t\tthis.sigmas = new Float32Array(2);\n\t\t\tthis.constantSigmas = this.device.scope.resolve(\"sigmas\");\n\t\t\tthis.constantKernel = this.device.scope.resolve(\"kernel[0]\");\n\t\t\tthis.bZnorm = this.device.scope.resolve(\"bZnorm\");\n\t\t}\n\t\tthis.sigmas[0] = filterRange;\n\t\tthis.sigmas[1] = filterSmoothness;\n\t\tthis.constantSigmas.setValue(this.sigmas);\n\t\tthis.evaluateDenoiseUniforms(filterRange, filterSmoothness);\n\t}\n\tgetDenoise(bakeHDR) {\n\t\tconst index = bakeHDR ? 0 : 1;\n\t\treturn this.shaderDenoise[index];\n\t}\n\tgetDilate(device, bakeHDR) {\n\t\tconst index = bakeHDR ? 0 : 1;\n\t\tif (!this.shaderDilate[index]) {\n\t\t\tconst define = bakeHDR ? \"#define HDR\\n\" : \"\";\n\t\t\tthis.shaderDilate[index] = ShaderUtils.createShader(device, {\n\t\t\t\tuniqueName: `lmDilate-${bakeHDR ? \"hdr\" : \"rgbm\"}`,\n\t\t\t\tattributes: { vertex_position: SEMANTIC_POSITION },\n\t\t\t\tvertexGLSL: ShaderChunks.get(this.device, SHADERLANGUAGE_GLSL).get(\"fullscreenQuadVS\"),\n\t\t\t\tvertexWGSL: ShaderChunks.get(this.device, SHADERLANGUAGE_WGSL).get(\"fullscreenQuadVS\"),\n\t\t\t\tfragmentGLSL: define + ShaderChunks.get(this.device, SHADERLANGUAGE_GLSL).get(\"glslDilatePS\"),\n\t\t\t\tfragmentWGSL: define + ShaderChunks.get(this.device, SHADERLANGUAGE_WGSL).get(\"wgslDilatePS\")\n\t\t\t});\n\t\t}\n\t\treturn this.shaderDilate[index];\n\t}\n\tevaluateDenoiseUniforms(filterRange, filterSmoothness) {\n\t\tfunction normpdf(x3, sigma) {\n\t\t\treturn 0.39894 * Math.exp(-0.5 * x3 * x3 / (sigma * sigma)) / sigma;\n\t\t}\n\t\tthis.kernel = this.kernel || new Float32Array(DENOISE_FILTER_SIZE);\n\t\tconst kernel = this.kernel;\n\t\tconst kSize = Math.floor((DENOISE_FILTER_SIZE - 1) / 2);\n\t\tfor (let j = 0; j <= kSize; ++j) {\n\t\t\tconst value = normpdf(j, filterRange);\n\t\t\tkernel[kSize + j] = value;\n\t\t\tkernel[kSize - j] = value;\n\t\t}\n\t\tthis.constantKernel.setValue(this.kernel);\n\t\tconst bZnorm = 1 / normpdf(0, filterSmoothness);\n\t\tthis.bZnorm.setValue(bZnorm);\n\t}\n};\n\nvar RenderPassLightmapper = class extends RenderPass {\n\tconstructor(device, renderer, camera, worldClusters, receivers, lightArray) {\n\t\tsuper(device);\n\t\tthis.renderer = renderer;\n\t\tthis.camera = camera;\n\t\tthis.worldClusters = worldClusters;\n\t\tthis.receivers = receivers;\n\t\tthis.lightArray = lightArray;\n\t}\n\texecute() {\n\t\tconst device = this.device;\n\t\tconst { renderer, camera, receivers, renderTarget, worldClusters, lightArray } = this;\n\t\trenderer.renderForwardLayer(camera, renderTarget, null, void 0, SHADER_FORWARD, {\n\t\t\tmeshInstances: receivers,\n\t\t\tsplitLights: lightArray,\n\t\t\tlightClusters: worldClusters\n\t\t});\n\t}\n};\n\nvar MAX_LIGHTMAP_SIZE = 2048;\nvar PASS_COLOR = 0;\nvar PASS_DIR = 1;\nvar tempVec = new Vec3();\nvar Lightmapper = class {\n\tconstructor(device, root, scene, renderer, assets) {\n\t\tthis.device = device;\n\t\tthis.root = root;\n\t\tthis.scene = scene;\n\t\tthis.renderer = renderer;\n\t\tthis.assets = assets;\n\t\tthis.shadowMapCache = renderer.shadowMapCache;\n\t\tthis._tempSet = /* @__PURE__ */ new Set();\n\t\tthis._initCalled = false;\n\t\tthis.passMaterials = [];\n\t\tthis.ambientAOMaterial = null;\n\t\tthis.fog = \"\";\n\t\tthis.ambientLight = new Color();\n\t\tthis.renderTargets = /* @__PURE__ */ new Map();\n\t\tthis.stats = {\n\t\t\trenderPasses: 0,\n\t\t\tlightmapCount: 0,\n\t\t\ttotalRenderTime: 0,\n\t\t\tforwardTime: 0,\n\t\t\tfboTime: 0,\n\t\t\tshadowMapTime: 0,\n\t\t\tcompileTime: 0,\n\t\t\tshadersLinked: 0\n\t\t};\n\t}\n\tdestroy() {\n\t\tLightmapCache.decRef(this.blackTex);\n\t\tthis.blackTex = null;\n\t\tLightmapCache.destroy();\n\t\tthis.device = null;\n\t\tthis.root = null;\n\t\tthis.scene = null;\n\t\tthis.renderer = null;\n\t\tthis.assets = null;\n\t\tthis.camera?.destroy();\n\t\tthis.camera = null;\n\t}\n\tinitBake(device) {\n\t\tthis.bakeHDR = this.scene.lightmapPixelFormat !== PIXELFORMAT_RGBA8;\n\t\tif (!this._initCalled) {\n\t\t\tthis._initCalled = true;\n\t\t\tthis.lightmapFilters = new LightmapFilters(device);\n\t\t\tthis.constantBakeDir = device.scope.resolve(\"bakeDir\");\n\t\t\tthis.materials = [];\n\t\t\tthis.blackTex = new Texture(this.device, {\n\t\t\t\twidth: 4,\n\t\t\t\theight: 4,\n\t\t\t\tformat: PIXELFORMAT_RGBA8,\n\t\t\t\ttype: TEXTURETYPE_RGBM,\n\t\t\t\tname: \"lightmapBlack\"\n\t\t\t});\n\t\t\tLightmapCache.incRef(this.blackTex);\n\t\t\tconst camera = new Camera(this.device);\n\t\t\tcamera.clearColor.set(0, 0, 0, 0);\n\t\t\tcamera.clearColorBuffer = true;\n\t\t\tcamera.clearDepthBuffer = false;\n\t\t\tcamera.clearStencilBuffer = false;\n\t\t\tcamera.frustumCulling = false;\n\t\t\tcamera.projection = PROJECTION_ORTHOGRAPHIC;\n\t\t\tcamera.aspectRatio = 1;\n\t\t\tcamera.node = new GraphNode();\n\t\t\tthis.camera = camera;\n\t\t\tthis.camera.shaderParams.gammaCorrection = GAMMA_NONE;\n\t\t\tthis.camera.shaderParams.toneMapping = TONEMAP_LINEAR;\n\t\t}\n\t\tif (this.scene.clusteredLightingEnabled) {\n\t\t\tconst lightingParams = new LightingParams(device.supportsAreaLights, device.maxTextureSize, () => {\n\t\t\t});\n\t\t\tthis.lightingParams = lightingParams;\n\t\t\tconst srcParams = this.scene.lighting;\n\t\t\tlightingParams.shadowsEnabled = srcParams.shadowsEnabled;\n\t\t\tlightingParams.shadowAtlasResolution = srcParams.shadowAtlasResolution;\n\t\t\tlightingParams.cookiesEnabled = srcParams.cookiesEnabled;\n\t\t\tlightingParams.cookieAtlasResolution = srcParams.cookieAtlasResolution;\n\t\t\tlightingParams.areaLightsEnabled = srcParams.areaLightsEnabled;\n\t\t\tlightingParams.cells = new Vec3(3, 3, 3);\n\t\t\tlightingParams.maxLightsPerCell = 4;\n\t\t\tthis.worldClusters = new WorldClusters(device);\n\t\t\tthis.worldClusters.name = \"ClusterLightmapper\";\n\t\t\tthis.shadowLocalClusteredPass = new RenderPassShadowLocalClustered(\n\t\t\t\tdevice,\n\t\t\t\tthis.renderer.shadowRenderer,\n\t\t\t\tthis.renderer._shadowRendererLocal\n\t\t\t);\n\t\t}\n\t}\n\tfinishBake(bakeNodes) {\n\t\tthis.materials = [];\n\t\tfunction destroyRT(rt) {\n\t\t\tLightmapCache.decRef(rt.colorBuffer);\n\t\t\trt.destroy();\n\t\t}\n\t\tthis.renderTargets.forEach((rt) => {\n\t\t\tdestroyRT(rt);\n\t\t});\n\t\tthis.renderTargets.clear();\n\t\tbakeNodes.forEach((node) => {\n\t\t\tnode.renderTargets.forEach((rt) => {\n\t\t\t\tdestroyRT(rt);\n\t\t\t});\n\t\t\tnode.renderTargets.length = 0;\n\t\t});\n\t\tthis.ambientAOMaterial = null;\n\t\tif (this.worldClusters) {\n\t\t\tthis.worldClusters.destroy();\n\t\t\tthis.worldClusters = null;\n\t\t}\n\t}\n\tcreateMaterialForPass(scene, pass, addAmbient) {\n\t\tconst material = new StandardMaterial();\n\t\tmaterial.name = `lmMaterial-pass:${pass}-ambient:${addAmbient}`;\n\t\tmaterial.setDefine(\"UV1LAYOUT\", \"\");\n\t\tmaterial.setDefine(\"LIT_LIGHTMAP_BAKING\", \"\");\n\t\tif (pass === PASS_COLOR) {\n\t\t\tmaterial.setDefine(\"LIT_LIGHTMAP_BAKING_COLOR\", \"\");\n\t\t\tif (addAmbient) {\n\t\t\t\tmaterial.setDefine(\"LIT_LIGHTMAP_BAKING_ADD_AMBIENT\", \"\");\n\t\t\t} else {\n\t\t\t\tmaterial.ambient = new Color(0, 0, 0);\n\t\t\t}\n\t\t\tif (!this.bakeHDR) material.setDefine(\"LIGHTMAP_RGBM\", \"\");\n\t\t\tmaterial.lightMap = this.blackTex;\n\t\t} else {\n\t\t\tmaterial.setDefine(\"LIT_LIGHTMAP_BAKING_DIR\", \"\");\n\t\t\tmaterial.setDefine(\"STD_LIGHTMAP_DIR\", \"\");\n\t\t}\n\t\tmaterial.cull = CULLFACE_NONE;\n\t\tmaterial.forceUv1 = true;\n\t\tmaterial.update();\n\t\treturn material;\n\t}\n\tcreateMaterials(device, scene, passCount) {\n\t\tfor (let pass = 0; pass < passCount; pass++) {\n\t\t\tif (!this.passMaterials[pass]) {\n\t\t\t\tthis.passMaterials[pass] = this.createMaterialForPass(scene, pass, false);\n\t\t\t}\n\t\t}\n\t\tif (!this.ambientAOMaterial) {\n\t\t\tthis.ambientAOMaterial = this.createMaterialForPass(scene, 0, true);\n\t\t\tthis.ambientAOMaterial.onUpdateShader = function(options2) {\n\t\t\t\toptions2.litOptions.lightMapWithoutAmbient = true;\n\t\t\t\toptions2.litOptions.separateAmbient = true;\n\t\t\t\treturn options2;\n\t\t\t};\n\t\t}\n\t}\n\tcreateTexture(size, name) {\n\t\treturn new Texture(this.device, {\n\t\t\twidth: size,\n\t\t\theight: size,\n\t\t\tformat: this.scene.lightmapPixelFormat,\n\t\t\tmipmaps: false,\n\t\t\ttype: this.bakeHDR ? TEXTURETYPE_DEFAULT : TEXTURETYPE_RGBM,\n\t\t\tminFilter: FILTER_NEAREST,\n\t\t\tmagFilter: FILTER_NEAREST,\n\t\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE,\n\t\t\tname\n\t\t});\n\t}\n\t// recursively walk the hierarchy of nodes starting at the specified node\n\t// collect all nodes that need to be lightmapped to bakeNodes array\n\t// collect all nodes with geometry to allNodes array\n\tcollectModels(node, bakeNodes, allNodes) {\n\t\tif (!node.enabled) return;\n\t\tlet meshInstances;\n\t\tif (node.model?.model && node.model?.enabled) {\n\t\t\tif (allNodes) allNodes.push(new BakeMeshNode(node));\n\t\t\tif (node.model.lightmapped) {\n\t\t\t\tif (bakeNodes) {\n\t\t\t\t\tmeshInstances = node.model.model.meshInstances;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (node.render?.enabled) {\n\t\t\tif (allNodes) allNodes.push(new BakeMeshNode(node));\n\t\t\tif (node.render.lightmapped) {\n\t\t\t\tif (bakeNodes) {\n\t\t\t\t\tmeshInstances = node.render.meshInstances;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (meshInstances) {\n\t\t\tlet hasUv1 = true;\n\t\t\tfor (let i2 = 0; i2 < meshInstances.length; i2++) {\n\t\t\t\tif (!meshInstances[i2].mesh.vertexBuffer.format.hasUv1) {\n\t\t\t\t\thasUv1 = false;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (hasUv1) {\n\t\t\t\tconst notInstancedMeshInstances = [];\n\t\t\t\tfor (let i2 = 0; i2 < meshInstances.length; i2++) {\n\t\t\t\t\tconst mesh = meshInstances[i2].mesh;\n\t\t\t\t\tif (this._tempSet.has(mesh)) {\n\t\t\t\t\t\tbakeNodes.push(new BakeMeshNode(node, [meshInstances[i2]]));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnotInstancedMeshInstances.push(meshInstances[i2]);\n\t\t\t\t\t}\n\t\t\t\t\tthis._tempSet.add(mesh);\n\t\t\t\t}\n\t\t\t\tthis._tempSet.clear();\n\t\t\t\tif (notInstancedMeshInstances.length > 0) {\n\t\t\t\t\tbakeNodes.push(new BakeMeshNode(node, notInstancedMeshInstances));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor (let i2 = 0; i2 < node._children.length; i2++) {\n\t\t\tthis.collectModels(node._children[i2], bakeNodes, allNodes);\n\t\t}\n\t}\n\t// prepare all meshInstances that cast shadows into lightmaps\n\tprepareShadowCasters(nodes) {\n\t\tconst casters = [];\n\t\tfor (let n = 0; n < nodes.length; n++) {\n\t\t\tconst component = nodes[n].component;\n\t\t\tcomponent.castShadows = component.castShadowsLightmap;\n\t\t\tif (component.castShadowsLightmap) {\n\t\t\t\tconst meshes = nodes[n].meshInstances;\n\t\t\t\tfor (let i2 = 0; i2 < meshes.length; i2++) {\n\t\t\t\t\tmeshes[i2].visibleThisFrame = true;\n\t\t\t\t\tcasters.push(meshes[i2]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn casters;\n\t}\n\t// updates world transform for nodes\n\tupdateTransforms(nodes) {\n\t\tfor (let i2 = 0; i2 < nodes.length; i2++) {\n\t\t\tconst meshInstances = nodes[i2].meshInstances;\n\t\t\tfor (let j = 0; j < meshInstances.length; j++) {\n\t\t\t\tmeshInstances[j].node.getWorldTransform();\n\t\t\t}\n\t\t}\n\t}\n\t// Note: this function is also called by the Editor to display estimated LM size in the inspector,\n\t// do not change its signature.\n\tcalculateLightmapSize(node) {\n\t\tlet data2;\n\t\tconst sizeMult = this.scene.lightmapSizeMultiplier || 16;\n\t\tconst scale2 = tempVec;\n\t\tlet srcArea, lightmapSizeMultiplier;\n\t\tif (node.model) {\n\t\t\tlightmapSizeMultiplier = node.model.lightmapSizeMultiplier;\n\t\t\tif (node.model.asset) {\n\t\t\t\tdata2 = this.assets.get(node.model.asset).data;\n\t\t\t\tif (data2.area) {\n\t\t\t\t\tsrcArea = data2.area;\n\t\t\t\t}\n\t\t\t} else if (node.model._area) {\n\t\t\t\tdata2 = node.model;\n\t\t\t\tif (data2._area) {\n\t\t\t\t\tsrcArea = data2._area;\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (node.render) {\n\t\t\tlightmapSizeMultiplier = node.render.lightmapSizeMultiplier;\n\t\t\tif (node.render.type !== \"asset\") {\n\t\t\t\tif (node.render._area) {\n\t\t\t\t\tdata2 = node.render;\n\t\t\t\t\tif (data2._area) {\n\t\t\t\t\t\tsrcArea = data2._area;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tconst area = { x: 1, y: 1, z: 1, uv: 1 };\n\t\tif (srcArea) {\n\t\t\tarea.x = srcArea.x;\n\t\t\tarea.y = srcArea.y;\n\t\t\tarea.z = srcArea.z;\n\t\t\tarea.uv = srcArea.uv;\n\t\t}\n\t\tconst areaMult = lightmapSizeMultiplier || 1;\n\t\tarea.x *= areaMult;\n\t\tarea.y *= areaMult;\n\t\tarea.z *= areaMult;\n\t\tconst component = node.render || node.model;\n\t\tconst bounds = this.computeNodeBounds(component.meshInstances);\n\t\tscale2.copy(bounds.halfExtents);\n\t\tlet totalArea = area.x * scale2.y * scale2.z + area.y * scale2.x * scale2.z + area.z * scale2.x * scale2.y;\n\t\ttotalArea /= area.uv;\n\t\ttotalArea = Math.sqrt(totalArea);\n\t\tconst lightmapSize = Math.min(math.nextPowerOfTwo(totalArea * sizeMult), this.scene.lightmapMaxResolution || MAX_LIGHTMAP_SIZE);\n\t\treturn lightmapSize;\n\t}\n\tsetLightmapping(nodes, value, passCount, shaderDefs) {\n\t\tfor (let i2 = 0; i2 < nodes.length; i2++) {\n\t\t\tconst node = nodes[i2];\n\t\t\tconst meshInstances = node.meshInstances;\n\t\t\tfor (let j = 0; j < meshInstances.length; j++) {\n\t\t\t\tconst meshInstance = meshInstances[j];\n\t\t\t\tmeshInstance.setLightmapped(value);\n\t\t\t\tif (value) {\n\t\t\t\t\tif (shaderDefs) {\n\t\t\t\t\t\tmeshInstance._shaderDefs |= shaderDefs;\n\t\t\t\t\t}\n\t\t\t\t\tmeshInstance.mask = MASK_AFFECT_LIGHTMAPPED;\n\t\t\t\t\tfor (let pass = 0; pass < passCount; pass++) {\n\t\t\t\t\t\tconst tex = node.renderTargets[pass].colorBuffer;\n\t\t\t\t\t\ttex.minFilter = FILTER_LINEAR;\n\t\t\t\t\t\ttex.magFilter = FILTER_LINEAR;\n\t\t\t\t\t\tmeshInstance.setRealtimeLightmap(MeshInstance.lightmapParamNames[pass], tex);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tbake(nodes, mode = BAKE_COLORDIR) {\n\t\tconst device = this.device;\n\t\tconst startTime = now();\n\t\tthis.scene._updateSkyMesh();\n\t\tthis.stats.renderPasses = 0;\n\t\tthis.stats.shadowMapTime = 0;\n\t\tthis.stats.forwardTime = 0;\n\t\tconst startShaders = device._shaderStats.linked;\n\t\tconst startFboTime = device._renderTargetCreationTime;\n\t\tconst startCompileTime = device._shaderStats.compileTime;\n\t\tconst bakeNodes = [];\n\t\tconst allNodes = [];\n\t\tif (nodes) {\n\t\t\tfor (let i2 = 0; i2 < nodes.length; i2++) {\n\t\t\t\tthis.collectModels(nodes[i2], bakeNodes, null);\n\t\t\t}\n\t\t\tthis.collectModels(this.root, null, allNodes);\n\t\t} else {\n\t\t\tthis.collectModels(this.root, bakeNodes, allNodes);\n\t\t}\n\t\tif (bakeNodes.length > 0) {\n\t\t\tthis.renderer.shadowRenderer.frameUpdate();\n\t\t\tconst passCount = mode === BAKE_COLORDIR ? 2 : 1;\n\t\t\tthis.setLightmapping(bakeNodes, false, passCount);\n\t\t\tthis.initBake(device);\n\t\t\tthis.bakeInternal(passCount, bakeNodes, allNodes);\n\t\t\tlet shaderDefs = SHADERDEF_LM;\n\t\t\tif (mode === BAKE_COLORDIR) {\n\t\t\t\tshaderDefs |= SHADERDEF_DIRLM;\n\t\t\t}\n\t\t\tif (this.scene.ambientBake) {\n\t\t\t\tshaderDefs |= SHADERDEF_LMAMBIENT;\n\t\t\t}\n\t\t\tthis.setLightmapping(bakeNodes, true, passCount, shaderDefs);\n\t\t\tthis.finishBake(bakeNodes);\n\t\t}\n\t\tconst nowTime = now();\n\t\tthis.stats.totalRenderTime = nowTime - startTime;\n\t\tthis.stats.shadersLinked = device._shaderStats.linked - startShaders;\n\t\tthis.stats.compileTime = device._shaderStats.compileTime - startCompileTime;\n\t\tthis.stats.fboTime = device._renderTargetCreationTime - startFboTime;\n\t\tthis.stats.lightmapCount = bakeNodes.length;\n\t}\n\t// this allocates lightmap textures and render targets.\n\tallocateTextures(bakeNodes, passCount) {\n\t\tfor (let i2 = 0; i2 < bakeNodes.length; i2++) {\n\t\t\tconst bakeNode = bakeNodes[i2];\n\t\t\tconst size = this.calculateLightmapSize(bakeNode.node);\n\t\t\tfor (let pass = 0; pass < passCount; pass++) {\n\t\t\t\tconst tex = this.createTexture(size, `lightmapper_lightmap_${i2}`);\n\t\t\t\tLightmapCache.incRef(tex);\n\t\t\t\tbakeNode.renderTargets[pass] = new RenderTarget({\n\t\t\t\t\tcolorBuffer: tex,\n\t\t\t\t\tdepth: false\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (!this.renderTargets.has(size)) {\n\t\t\t\tconst tex = this.createTexture(size, `lightmapper_temp_lightmap_${size}`);\n\t\t\t\tLightmapCache.incRef(tex);\n\t\t\t\tthis.renderTargets.set(size, new RenderTarget({\n\t\t\t\t\tcolorBuffer: tex,\n\t\t\t\t\tdepth: false\n\t\t\t\t}));\n\t\t\t}\n\t\t}\n\t}\n\tprepareLightsToBake(allLights, bakeLights) {\n\t\tif (this.scene.ambientBake) {\n\t\t\tconst ambientLight = new BakeLightAmbient(this);\n\t\t\tbakeLights.push(ambientLight);\n\t\t}\n\t\tconst sceneLights = this.renderer.lights;\n\t\tfor (let i2 = 0; i2 < sceneLights.length; i2++) {\n\t\t\tconst light = sceneLights[i2];\n\t\t\tconst bakeLight = new BakeLightSimple(this, light);\n\t\t\tallLights.push(bakeLight);\n\t\t\tif (light.enabled && (light.mask & MASK_BAKE) !== 0) {\n\t\t\t\tlight.mask = MASK_BAKE | MASK_AFFECT_LIGHTMAPPED | MASK_AFFECT_DYNAMIC;\n\t\t\t\tlight.shadowUpdateMode = light.type === LIGHTTYPE_DIRECTIONAL ? SHADOWUPDATE_REALTIME : SHADOWUPDATE_THISFRAME;\n\t\t\t\tbakeLights.push(bakeLight);\n\t\t\t}\n\t\t}\n\t\tbakeLights.sort();\n\t}\n\trestoreLights(allLights) {\n\t\tfor (let i2 = 0; i2 < allLights.length; i2++) {\n\t\t\tallLights[i2].restore();\n\t\t}\n\t}\n\tsetupScene() {\n\t\tthis.ambientLight.copy(this.scene.ambientLight);\n\t\tif (!this.scene.ambientBake) {\n\t\t\tthis.scene.ambientLight.set(0, 0, 0);\n\t\t}\n\t\tthis.renderer.setSceneConstants();\n\t\tthis.device.scope.resolve(\"ambientBakeOcclusionContrast\").setValue(this.scene.ambientBakeOcclusionContrast);\n\t\tthis.device.scope.resolve(\"ambientBakeOcclusionBrightness\").setValue(this.scene.ambientBakeOcclusionBrightness);\n\t}\n\trestoreScene() {\n\t\tthis.scene.ambientLight.copy(this.ambientLight);\n\t}\n\t// compute bounding box for a single node\n\tcomputeNodeBounds(meshInstances) {\n\t\tconst bounds = new BoundingBox();\n\t\tif (meshInstances.length > 0) {\n\t\t\tbounds.copy(meshInstances[0].aabb);\n\t\t\tfor (let m = 1; m < meshInstances.length; m++) {\n\t\t\t\tbounds.add(meshInstances[m].aabb);\n\t\t\t}\n\t\t}\n\t\treturn bounds;\n\t}\n\t// compute bounding box for each node\n\tcomputeNodesBounds(nodes) {\n\t\tfor (let i2 = 0; i2 < nodes.length; i2++) {\n\t\t\tconst meshInstances = nodes[i2].meshInstances;\n\t\t\tnodes[i2].bounds = this.computeNodeBounds(meshInstances);\n\t\t}\n\t}\n\t// compute compound bounding box for an array of mesh instances\n\tcomputeBounds(meshInstances) {\n\t\tconst bounds = new BoundingBox();\n\t\tfor (let i2 = 0; i2 < meshInstances.length; i2++) {\n\t\t\tbounds.copy(meshInstances[0].aabb);\n\t\t\tfor (let m = 1; m < meshInstances.length; m++) {\n\t\t\t\tbounds.add(meshInstances[m].aabb);\n\t\t\t}\n\t\t}\n\t\treturn bounds;\n\t}\n\tbackupMaterials(meshInstances) {\n\t\tfor (let i2 = 0; i2 < meshInstances.length; i2++) {\n\t\t\tthis.materials[i2] = meshInstances[i2].material;\n\t\t}\n\t}\n\trestoreMaterials(meshInstances) {\n\t\tfor (let i2 = 0; i2 < meshInstances.length; i2++) {\n\t\t\tmeshInstances[i2].material = this.materials[i2];\n\t\t}\n\t}\n\tlightCameraPrepare(device, bakeLight) {\n\t\tconst light = bakeLight.light;\n\t\tlet shadowCam;\n\t\tif (light.type === LIGHTTYPE_SPOT) {\n\t\t\tconst lightRenderData = light.getRenderData(null, 0);\n\t\t\tshadowCam = lightRenderData.shadowCamera;\n\t\t\tshadowCam._node.setPosition(light._node.getPosition());\n\t\t\tshadowCam._node.setRotation(light._node.getRotation());\n\t\t\tshadowCam._node.rotateLocal(-90, 0, 0);\n\t\t\tshadowCam.projection = PROJECTION_PERSPECTIVE;\n\t\t\tshadowCam.nearClip = light.attenuationEnd / 1e3;\n\t\t\tshadowCam.farClip = light.attenuationEnd;\n\t\t\tshadowCam.aspectRatio = 1;\n\t\t\tshadowCam.fov = light._outerConeAngle * 2;\n\t\t\tshadowCam.updateFrustum();\n\t\t}\n\t\treturn shadowCam;\n\t}\n\t// prepares camera / frustum of the light for rendering the bakeNode\n\t// returns true if light affects the bakeNode\n\tlightCameraPrepareAndCull(bakeLight, bakeNode, shadowCam, casterBounds) {\n\t\tconst light = bakeLight.light;\n\t\tlet lightAffectsNode = true;\n\t\tif (light.type === LIGHTTYPE_DIRECTIONAL) {\n\t\t\ttempVec.copy(casterBounds.center);\n\t\t\ttempVec.y += casterBounds.halfExtents.y;\n\t\t\tthis.camera.node.setPosition(tempVec);\n\t\t\tthis.camera.node.setEulerAngles(-90, 0, 0);\n\t\t\tthis.camera.nearClip = 0;\n\t\t\tthis.camera.farClip = casterBounds.halfExtents.y * 2;\n\t\t\tconst frustumSize = Math.max(casterBounds.halfExtents.x, casterBounds.halfExtents.z);\n\t\t\tthis.camera.orthoHeight = frustumSize;\n\t\t} else {\n\t\t\tif (!bakeLight.lightBounds.intersects(bakeNode.bounds)) {\n\t\t\t\tlightAffectsNode = false;\n\t\t\t}\n\t\t}\n\t\tif (light.type === LIGHTTYPE_SPOT) {\n\t\t\tlet nodeVisible = false;\n\t\t\tconst meshInstances = bakeNode.meshInstances;\n\t\t\tfor (let i2 = 0; i2 < meshInstances.length; i2++) {\n\t\t\t\tif (meshInstances[i2]._isVisible(shadowCam)) {\n\t\t\t\t\tnodeVisible = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!nodeVisible) {\n\t\t\t\tlightAffectsNode = false;\n\t\t\t}\n\t\t}\n\t\treturn lightAffectsNode;\n\t}\n\t// set up light array for a single light\n\tsetupLightArray(lightArray, light) {\n\t\tlightArray[LIGHTTYPE_DIRECTIONAL].length = 0;\n\t\tlightArray[LIGHTTYPE_OMNI].length = 0;\n\t\tlightArray[LIGHTTYPE_SPOT].length = 0;\n\t\tlightArray[light.type][0] = light;\n\t\tlight.visibleThisFrame = true;\n\t}\n\trenderShadowMap(comp, shadowMapRendered, casters, bakeLight) {\n\t\tconst light = bakeLight.light;\n\t\tconst isClustered = this.scene.clusteredLightingEnabled;\n\t\tconst castShadow = light.castShadows && (!isClustered || this.scene.lighting.shadowsEnabled);\n\t\tif (!shadowMapRendered && castShadow) {\n\t\t\tif (!light.shadowMap && !isClustered) {\n\t\t\t\tlight.shadowMap = this.shadowMapCache.get(this.device, light);\n\t\t\t}\n\t\t\tif (light.type === LIGHTTYPE_DIRECTIONAL) {\n\t\t\t\tthis.renderer._shadowRendererDirectional.prepareShadowMap(light);\n\t\t\t\tthis.renderer._shadowRendererDirectional.cull(light, comp, this.camera, casters);\n\t\t\t\tconst shadowPass = this.renderer._shadowRendererDirectional.getLightRenderPass(light, this.camera);\n\t\t\t\tshadowPass?.render();\n\t\t\t} else {\n\t\t\t\tthis.renderer._shadowRendererLocal.cull(light, comp, casters);\n\t\t\t\tif (isClustered) {\n\t\t\t\t\tthis.shadowLocalClusteredPass.update([light]);\n\t\t\t\t\tif (this.shadowLocalClusteredPass.enabled) {\n\t\t\t\t\t\tthis.shadowLocalClusteredPass.render();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tconst faceCount = light.numShadowFaces;\n\t\t\t\t\tconst applyVsm = light._type === LIGHTTYPE_SPOT;\n\t\t\t\t\tfor (let face = 0; face < faceCount; face++) {\n\t\t\t\t\t\tconst renderPass = new RenderPassShadowLocalNonClustered(\n\t\t\t\t\t\t\tthis.device,\n\t\t\t\t\t\t\tthis.renderer.shadowRenderer,\n\t\t\t\t\t\t\tlight,\n\t\t\t\t\t\t\tface,\n\t\t\t\t\t\t\tapplyVsm\n\t\t\t\t\t\t);\n\t\t\t\t\t\trenderPass.render();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n\tpostprocessTextures(device, bakeNodes, passCount) {\n\t\tconst numDilates2x = 1;\n\t\tconst dilateShader = this.lightmapFilters.getDilate(device, this.bakeHDR);\n\t\tlet denoiseShader;\n\t\tconst filterLightmap = this.scene.lightmapFilterEnabled;\n\t\tif (filterLightmap) {\n\t\t\tthis.lightmapFilters.prepareDenoise(this.scene.lightmapFilterRange, this.scene.lightmapFilterSmoothness, this.bakeHDR);\n\t\t\tdenoiseShader = this.lightmapFilters.getDenoise(this.bakeHDR);\n\t\t}\n\t\tdevice.setBlendState(BlendState.NOBLEND);\n\t\tdevice.setDepthState(DepthState.NODEPTH);\n\t\tdevice.setStencilState(null, null);\n\t\tfor (let node = 0; node < bakeNodes.length; node++) {\n\t\t\tconst bakeNode = bakeNodes[node];\n\t\t\tfor (let pass = 0; pass < passCount; pass++) {\n\t\t\t\tconst nodeRT = bakeNode.renderTargets[pass];\n\t\t\t\tconst lightmap = nodeRT.colorBuffer;\n\t\t\t\tconst tempRT = this.renderTargets.get(lightmap.width);\n\t\t\t\tconst tempTex = tempRT.colorBuffer;\n\t\t\t\tthis.lightmapFilters.prepare(lightmap.width, lightmap.height);\n\t\t\t\tfor (let i2 = 0; i2 < numDilates2x; i2++) {\n\t\t\t\t\tthis.lightmapFilters.setSourceTexture(lightmap);\n\t\t\t\t\tconst bilateralFilterEnabled = filterLightmap && pass === 0 && i2 === 0;\n\t\t\t\t\tdrawQuadWithShader(device, tempRT, bilateralFilterEnabled ? denoiseShader : dilateShader);\n\t\t\t\t\tthis.lightmapFilters.setSourceTexture(tempTex);\n\t\t\t\t\tdrawQuadWithShader(device, nodeRT, dilateShader);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tbakeInternal(passCount, bakeNodes, allNodes) {\n\t\tconst scene = this.scene;\n\t\tconst comp = scene.layers;\n\t\tconst device = this.device;\n\t\tconst clusteredLightingEnabled = scene.clusteredLightingEnabled;\n\t\tthis.createMaterials(device, scene, passCount);\n\t\tthis.setupScene();\n\t\tcomp._update();\n\t\tthis.computeNodesBounds(bakeNodes);\n\t\tthis.allocateTextures(bakeNodes, passCount);\n\t\tthis.renderer.collectLights(comp);\n\t\tconst allLights = [], bakeLights = [];\n\t\tthis.prepareLightsToBake(allLights, bakeLights);\n\t\tthis.updateTransforms(allNodes);\n\t\tconst casters = this.prepareShadowCasters(allNodes);\n\t\tthis.renderer.updateCpuSkinMatrices(casters);\n\t\tthis.renderer.gpuUpdate(casters);\n\t\tconst casterBounds = this.computeBounds(casters);\n\t\tlet i2, j, rcv, m;\n\t\tfor (i2 = 0; i2 < bakeNodes.length; i2++) {\n\t\t\tconst bakeNode = bakeNodes[i2];\n\t\t\trcv = bakeNode.meshInstances;\n\t\t\tfor (j = 0; j < rcv.length; j++) {\n\t\t\t\tm = rcv[j];\n\t\t\t\tm.setLightmapped(false);\n\t\t\t\tm.mask = MASK_BAKE;\n\t\t\t\tm.setRealtimeLightmap(MeshInstance.lightmapParamNames[0], this.blackTex);\n\t\t\t\tm.setRealtimeLightmap(MeshInstance.lightmapParamNames[1], this.blackTex);\n\t\t\t}\n\t\t}\n\t\tfor (j = 0; j < bakeLights.length; j++) {\n\t\t\tbakeLights[j].light.enabled = false;\n\t\t}\n\t\tconst lightArray = [[], [], []];\n\t\tlet pass, node;\n\t\tlet shadersUpdatedOn1stPass = false;\n\t\tfor (i2 = 0; i2 < bakeLights.length; i2++) {\n\t\t\tconst bakeLight = bakeLights[i2];\n\t\t\tconst isAmbientLight = bakeLight instanceof BakeLightAmbient;\n\t\t\tconst isDirectional = bakeLight.light.type === LIGHTTYPE_DIRECTIONAL;\n\t\t\tlet numVirtualLights = bakeLight.numVirtualLights;\n\t\t\tif (passCount > 1 && numVirtualLights > 1 && bakeLight.light.bakeDir) {\n\t\t\t\tnumVirtualLights = 1;\n\t\t\t}\n\t\t\tfor (let virtualLightIndex = 0; virtualLightIndex < numVirtualLights; virtualLightIndex++) {\n\t\t\t\tif (numVirtualLights > 1) {\n\t\t\t\t\tbakeLight.prepareVirtualLight(virtualLightIndex, numVirtualLights);\n\t\t\t\t}\n\t\t\t\tbakeLight.startBake();\n\t\t\t\tlet shadowMapRendered = false;\n\t\t\t\tconst shadowCam = this.lightCameraPrepare(device, bakeLight);\n\t\t\t\tfor (node = 0; node < bakeNodes.length; node++) {\n\t\t\t\t\tconst bakeNode = bakeNodes[node];\n\t\t\t\t\trcv = bakeNode.meshInstances;\n\t\t\t\t\tconst lightAffectsNode = this.lightCameraPrepareAndCull(bakeLight, bakeNode, shadowCam, casterBounds);\n\t\t\t\t\tif (!lightAffectsNode) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tthis.setupLightArray(lightArray, bakeLight.light);\n\t\t\t\t\tconst clusterLights = isDirectional ? [] : [bakeLight.light];\n\t\t\t\t\tif (clusteredLightingEnabled) {\n\t\t\t\t\t\tthis.renderer.lightTextureAtlas.update(clusterLights, this.lightingParams);\n\t\t\t\t\t}\n\t\t\t\t\tshadowMapRendered = this.renderShadowMap(comp, shadowMapRendered, casters, bakeLight);\n\t\t\t\t\tif (clusteredLightingEnabled) {\n\t\t\t\t\t\tthis.worldClusters.update(clusterLights, this.lightingParams);\n\t\t\t\t\t}\n\t\t\t\t\tthis.backupMaterials(rcv);\n\t\t\t\t\tfor (pass = 0; pass < passCount; pass++) {\n\t\t\t\t\t\tif (pass > 0 && virtualLightIndex > 0) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (isAmbientLight && pass > 0) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst nodeRT = bakeNode.renderTargets[pass];\n\t\t\t\t\t\tconst lightmapSize = bakeNode.renderTargets[pass].colorBuffer.width;\n\t\t\t\t\t\tconst tempRT = this.renderTargets.get(lightmapSize);\n\t\t\t\t\t\tconst tempTex = tempRT.colorBuffer;\n\t\t\t\t\t\tif (pass === 0) {\n\t\t\t\t\t\t\tshadersUpdatedOn1stPass = scene.updateShaders;\n\t\t\t\t\t\t} else if (shadersUpdatedOn1stPass) {\n\t\t\t\t\t\t\tscene.updateShaders = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlet passMaterial = this.passMaterials[pass];\n\t\t\t\t\t\tif (isAmbientLight) {\n\t\t\t\t\t\t\tconst lastVirtualLightForPass = virtualLightIndex + 1 === numVirtualLights;\n\t\t\t\t\t\t\tif (lastVirtualLightForPass && pass === 0) {\n\t\t\t\t\t\t\t\tpassMaterial = this.ambientAOMaterial;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor (j = 0; j < rcv.length; j++) {\n\t\t\t\t\t\t\trcv[j].material = passMaterial;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.renderer.updateShaders(rcv);\n\t\t\t\t\t\tif (pass === PASS_DIR) {\n\t\t\t\t\t\t\tthis.constantBakeDir.setValue(bakeLight.light.bakeDir ? 1 : 0);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst renderPass = new RenderPassLightmapper(\n\t\t\t\t\t\t\tdevice,\n\t\t\t\t\t\t\tthis.renderer,\n\t\t\t\t\t\t\tthis.camera,\n\t\t\t\t\t\t\tclusteredLightingEnabled ? this.worldClusters : null,\n\t\t\t\t\t\t\trcv,\n\t\t\t\t\t\t\tlightArray\n\t\t\t\t\t\t);\n\t\t\t\t\t\trenderPass.init(tempRT);\n\t\t\t\t\t\trenderPass.colorOps.clear = true;\n\t\t\t\t\t\trenderPass.colorOps.clearValue.copy(this.camera.clearColor);\n\t\t\t\t\t\trenderPass.render();\n\t\t\t\t\t\trenderPass.destroy();\n\t\t\t\t\t\tbakeNode.renderTargets[pass] = tempRT;\n\t\t\t\t\t\tthis.renderTargets.set(lightmapSize, nodeRT);\n\t\t\t\t\t\tfor (j = 0; j < rcv.length; j++) {\n\t\t\t\t\t\t\tm = rcv[j];\n\t\t\t\t\t\t\tm.setRealtimeLightmap(MeshInstance.lightmapParamNames[pass], tempTex);\n\t\t\t\t\t\t\tm._shaderDefs |= SHADERDEF_LM;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tthis.restoreMaterials(rcv);\n\t\t\t\t}\n\t\t\t\tbakeLight.endBake(this.shadowMapCache);\n\t\t\t}\n\t\t}\n\t\tthis.postprocessTextures(device, bakeNodes, passCount);\n\t\tfor (node = 0; node < allNodes.length; node++) {\n\t\t\tallNodes[node].restore();\n\t\t}\n\t\tthis.restoreLights(allLights);\n\t\tthis.restoreScene();\n\t\tif (!clusteredLightingEnabled) {\n\t\t\tthis.shadowMapCache.clear();\n\t\t}\n\t}\n};\n\nvar ComponentSystem = class extends EventHandler {\n\tid;\n\textraDataProperties = [];\n\t_validProps = null;\n\tconstructor(app2) {\n\t\tsuper();\n\t\tthis.app = app2;\n\t\tthis.store = {};\n\t\tthis.schema = [];\n\t}\n\taddComponent(entity, data2 = {}) {\n\t\tconst component = new this.ComponentType(this, entity);\n\t\tconst componentData = this.DataType ? new this.DataType() : {};\n\t\tthis.store[entity.guid] = {\n\t\t\tentity,\n\t\t\tdata: componentData\n\t\t};\n\t\tentity[this.id] = component;\n\t\tentity.c[this.id] = component;\n\t\tthis.initializeComponentData(component, data2);\n\t\tthis.fire(\"add\", entity, component);\n\t\treturn component;\n\t}\n\tremoveComponent(entity) {\n\t\tconst id14 = this.id;\n\t\tconst record = this.store[entity.guid];\n\t\tconst component = entity.c[id14];\n\t\tcomponent.fire(\"beforeremove\");\n\t\tthis.fire(\"beforeremove\", entity, component);\n\t\tdelete this.store[entity.guid];\n\t\tentity[id14] = void 0;\n\t\tdelete entity.c[id14];\n\t\tthis.fire(\"remove\", entity, record.data);\n\t}\n\tcloneComponent(entity, clone) {\n\t\tconst src = this.store[entity.guid];\n\t\treturn this.addComponent(clone, src.data);\n\t}\n\tinitializeComponentData(component, data2 = {}, properties) {\n\t\tif (properties) {\n\t\t\tfor (let i2 = 0, len = properties.length; i2 < len; i2++) {\n\t\t\t\tconst descriptor = properties[i2];\n\t\t\t\tlet name, type;\n\t\t\t\tif (typeof descriptor === \"object\") {\n\t\t\t\t\tname = descriptor.name;\n\t\t\t\t\ttype = descriptor.type;\n\t\t\t\t} else {\n\t\t\t\t\tname = descriptor;\n\t\t\t\t\ttype = void 0;\n\t\t\t\t}\n\t\t\t\tlet value = data2[name];\n\t\t\t\tif (value !== void 0) {\n\t\t\t\t\tif (type !== void 0) {\n\t\t\t\t\t\tvalue = convertValue(value, type);\n\t\t\t\t\t}\n\t\t\t\t\tcomponent[name] = value;\n\t\t\t\t} else if (component.data && name in component.data) {\n\t\t\t\t\tcomponent[name] = component.data[name];\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (data2.enabled !== void 0) {\n\t\t\tcomponent.enabled = data2.enabled;\n\t\t}\n\t\tif (component.enabled && component.entity.enabled) {\n\t\t\tcomponent.onEnable();\n\t\t}\n\t}\n\tgetPropertiesOfType(type) {\n\t\tconst matchingProperties = [];\n\t\tconst schema = this.schema || [];\n\t\tschema.forEach((descriptor) => {\n\t\t\tif (descriptor && typeof descriptor === \"object\" && descriptor.type === type) {\n\t\t\t\tmatchingProperties.push(descriptor);\n\t\t\t}\n\t\t});\n\t\treturn matchingProperties;\n\t}\n\tdestroy() {\n\t\tthis.off();\n\t}\n};\nfunction convertValue(value, type) {\n\tif (!value) {\n\t\treturn value;\n\t}\n\tswitch (type) {\n\t\tcase \"rgb\":\n\t\t\tif (value instanceof Color) {\n\t\t\t\treturn value.clone();\n\t\t\t}\n\t\t\treturn new Color(value[0], value[1], value[2]);\n\t\tcase \"rgba\":\n\t\t\tif (value instanceof Color) {\n\t\t\t\treturn value.clone();\n\t\t\t}\n\t\t\treturn new Color(value[0], value[1], value[2], value[3]);\n\t\tcase \"vec2\":\n\t\t\tif (value instanceof Vec2) {\n\t\t\t\treturn value.clone();\n\t\t\t}\n\t\t\treturn new Vec2(value[0], value[1]);\n\t\tcase \"vec3\":\n\t\t\tif (value instanceof Vec3) {\n\t\t\t\treturn value.clone();\n\t\t\t}\n\t\t\treturn new Vec3(value[0], value[1], value[2]);\n\t\tcase \"vec4\":\n\t\t\tif (value instanceof Vec4) {\n\t\t\t\treturn value.clone();\n\t\t\t}\n\t\t\treturn new Vec4(value[0], value[1], value[2], value[3]);\n\t\tcase \"boolean\":\n\t\tcase \"number\":\n\t\tcase \"string\":\n\t\t\treturn value;\n\t\tcase \"entity\":\n\t\t\treturn value;\n\t\t// Entity fields should just be a string guid\n\t\tdefault:\n\t\t\tthrow new Error(`Could not convert unhandled type: ${type}`);\n\t}\n}\n\nvar INTERPOLATION_STEP = 0;\nvar INTERPOLATION_LINEAR = 1;\nvar INTERPOLATION_CUBIC = 2;\n\nvar AnimCache = class {\n\tconstructor() {\n\t\tthis._left = Infinity;\n\t\tthis._right = -Infinity;\n\t\tthis._len = 0;\n\t\tthis._recip = 0;\n\t\tthis._p0 = 0;\n\t\tthis._p1 = 0;\n\t\tthis._t = 0;\n\t\tthis._hermite = {\n\t\t\t// hermite weights, calculated on demand\n\t\t\tvalid: false,\n\t\t\tp0: 0,\n\t\t\tm0: 0,\n\t\t\tp1: 0,\n\t\t\tm1: 0\n\t\t};\n\t}\n\tupdate(time, input) {\n\t\tif (time < this._left || time >= this._right) {\n\t\t\tconst len = input.length;\n\t\t\tif (!len) {\n\t\t\t\tthis._left = -Infinity;\n\t\t\t\tthis._right = Infinity;\n\t\t\t\tthis._len = 0;\n\t\t\t\tthis._recip = 0;\n\t\t\t\tthis._p0 = this._p1 = 0;\n\t\t\t} else {\n\t\t\t\tif (time < input[0]) {\n\t\t\t\t\tthis._left = -Infinity;\n\t\t\t\t\tthis._right = input[0];\n\t\t\t\t\tthis._len = 0;\n\t\t\t\t\tthis._recip = 0;\n\t\t\t\t\tthis._p0 = this._p1 = 0;\n\t\t\t\t} else if (time >= input[len - 1]) {\n\t\t\t\t\tthis._left = input[len - 1];\n\t\t\t\t\tthis._right = Infinity;\n\t\t\t\t\tthis._len = 0;\n\t\t\t\t\tthis._recip = 0;\n\t\t\t\t\tthis._p0 = this._p1 = len - 1;\n\t\t\t\t} else {\n\t\t\t\t\tconst index = this._findKey(time, input);\n\t\t\t\t\tthis._left = input[index];\n\t\t\t\t\tthis._right = input[index + 1];\n\t\t\t\t\tthis._len = this._right - this._left;\n\t\t\t\t\tconst diff = 1 / this._len;\n\t\t\t\t\tthis._recip = isFinite(diff) ? diff : 0;\n\t\t\t\t\tthis._p0 = index;\n\t\t\t\t\tthis._p1 = index + 1;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis._t = this._recip === 0 ? 0 : (time - this._left) * this._recip;\n\t\tthis._hermite.valid = false;\n\t}\n\t_findKey(time, input) {\n\t\tlet index = 0;\n\t\twhile (time >= input[index + 1]) {\n\t\t\tindex++;\n\t\t}\n\t\treturn index;\n\t}\n\t// evaluate the output anim data at the current time\n\teval(result, interpolation, output) {\n\t\tconst data2 = output._data;\n\t\tconst comp = output._components;\n\t\tconst idx0 = this._p0 * comp;\n\t\tif (interpolation === INTERPOLATION_STEP) {\n\t\t\tfor (let i2 = 0; i2 < comp; ++i2) {\n\t\t\t\tresult[i2] = data2[idx0 + i2];\n\t\t\t}\n\t\t} else {\n\t\t\tconst t = this._t;\n\t\t\tconst idx1 = this._p1 * comp;\n\t\t\tswitch (interpolation) {\n\t\t\t\tcase INTERPOLATION_LINEAR:\n\t\t\t\t\tfor (let i2 = 0; i2 < comp; ++i2) {\n\t\t\t\t\t\tresult[i2] = math.lerp(data2[idx0 + i2], data2[idx1 + i2], t);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase INTERPOLATION_CUBIC: {\n\t\t\t\t\tconst hermite = this._hermite;\n\t\t\t\t\tif (!hermite.valid) {\n\t\t\t\t\t\tconst t2 = t * t;\n\t\t\t\t\t\tconst twot = t + t;\n\t\t\t\t\t\tconst omt = 1 - t;\n\t\t\t\t\t\tconst omt2 = omt * omt;\n\t\t\t\t\t\thermite.valid = true;\n\t\t\t\t\t\thermite.p0 = (1 + twot) * omt2;\n\t\t\t\t\t\thermite.m0 = t * omt2;\n\t\t\t\t\t\thermite.p1 = t2 * (3 - twot);\n\t\t\t\t\t\thermite.m1 = t2 * (t - 1);\n\t\t\t\t\t}\n\t\t\t\t\tconst p0 = (this._p0 * 3 + 1) * comp;\n\t\t\t\t\tconst m0 = (this._p0 * 3 + 2) * comp;\n\t\t\t\t\tconst p12 = (this._p1 * 3 + 1) * comp;\n\t\t\t\t\tconst m12 = (this._p1 * 3 + 0) * comp;\n\t\t\t\t\tfor (let i2 = 0; i2 < comp; ++i2) {\n\t\t\t\t\t\tresult[i2] = hermite.p0 * data2[p0 + i2] + hermite.m0 * data2[m0 + i2] * this._len + hermite.p1 * data2[p12 + i2] + hermite.m1 * data2[m12 + i2] * this._len;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar AnimSnapshot = class {\n\tconstructor(animTrack) {\n\t\tthis._name = `${animTrack.name}Snapshot`;\n\t\tthis._time = -1;\n\t\tthis._cache = [];\n\t\tthis._results = [];\n\t\tfor (let i2 = 0; i2 < animTrack._inputs.length; ++i2) {\n\t\t\tthis._cache[i2] = new AnimCache();\n\t\t}\n\t\tconst curves = animTrack._curves;\n\t\tconst outputs = animTrack._outputs;\n\t\tfor (let i2 = 0; i2 < curves.length; ++i2) {\n\t\t\tconst curve = curves[i2];\n\t\t\tconst output = outputs[curve._output];\n\t\t\tconst storage = [];\n\t\t\tfor (let j = 0; j < output._components; ++j) {\n\t\t\t\tstorage[j] = 0;\n\t\t\t}\n\t\t\tthis._results[i2] = storage;\n\t\t}\n\t}\n};\n\nvar AnimClip = class _AnimClip {\n\tstatic eventFrame = {\n\t\tstart: 0,\n\t\tend: 0,\n\t\tresidual: 0\n\t};\n\tconstructor(track, time, speed, playing, loop, eventHandler) {\n\t\tthis._name = track.name;\n\t\tthis._track = track;\n\t\tthis._snapshot = new AnimSnapshot(track);\n\t\tthis._playing = playing;\n\t\tthis._time = time;\n\t\tthis._speed = speed;\n\t\tthis._loop = loop;\n\t\tthis._blendWeight = 1;\n\t\tthis._blendOrder = 0;\n\t\tthis._eventHandler = eventHandler;\n\t\tthis.alignCursorToCurrentTime();\n\t}\n\tset name(name) {\n\t\tthis._name = name;\n\t}\n\tget name() {\n\t\treturn this._name;\n\t}\n\tset track(track) {\n\t\tthis._track = track;\n\t\tthis._snapshot = new AnimSnapshot(track);\n\t}\n\tget track() {\n\t\treturn this._track;\n\t}\n\tget snapshot() {\n\t\treturn this._snapshot;\n\t}\n\tset time(time) {\n\t\tthis._time = time;\n\t\tthis.alignCursorToCurrentTime();\n\t}\n\tget time() {\n\t\treturn this._time;\n\t}\n\tset speed(speed) {\n\t\tconst signChanged = Math.sign(speed) !== Math.sign(this._speed);\n\t\tthis._speed = speed;\n\t\tif (signChanged) {\n\t\t\tthis.alignCursorToCurrentTime();\n\t\t}\n\t}\n\tget speed() {\n\t\treturn this._speed;\n\t}\n\tset loop(loop) {\n\t\tthis._loop = loop;\n\t}\n\tget loop() {\n\t\treturn this._loop;\n\t}\n\tset blendWeight(blendWeight) {\n\t\tthis._blendWeight = blendWeight;\n\t}\n\tget blendWeight() {\n\t\treturn this._blendWeight;\n\t}\n\tset blendOrder(blendOrder) {\n\t\tthis._blendOrder = blendOrder;\n\t}\n\tget blendOrder() {\n\t\treturn this._blendOrder;\n\t}\n\tset eventCursor(value) {\n\t\tthis._eventCursor = value;\n\t}\n\tget eventCursor() {\n\t\treturn this._eventCursor;\n\t}\n\tget eventCursorEnd() {\n\t\treturn this.isReverse ? 0 : this._track.events.length - 1;\n\t}\n\tget nextEvent() {\n\t\treturn this._track.events[this._eventCursor];\n\t}\n\tget isReverse() {\n\t\treturn this._speed < 0;\n\t}\n\tnextEventAheadOfTime(time) {\n\t\tif (!this.nextEvent) return false;\n\t\treturn this.isReverse ? this.nextEvent.time <= time : this.nextEvent.time >= time;\n\t}\n\tnextEventBehindTime(time) {\n\t\tif (!this.nextEvent) return false;\n\t\tif (time === this.track.duration) {\n\t\t\treturn this.isReverse ? this.nextEvent.time >= time : this.nextEvent.time <= time;\n\t\t}\n\t\treturn this.isReverse ? this.nextEvent.time > time : this.nextEvent.time < time;\n\t}\n\tresetEventCursor() {\n\t\tthis._eventCursor = this.isReverse ? this._track.events.length - 1 : 0;\n\t}\n\tmoveEventCursor() {\n\t\tthis._eventCursor += this.isReverse ? -1 : 1;\n\t\tif (this._eventCursor >= this.track.events.length) {\n\t\t\tthis._eventCursor = 0;\n\t\t} else if (this._eventCursor < 0) {\n\t\t\tthis._eventCursor = this.track.events.length - 1;\n\t\t}\n\t}\n\tclipFrameTime(frameEndTime) {\n\t\tconst eventFrame = _AnimClip.eventFrame;\n\t\teventFrame.start = 0;\n\t\teventFrame.end = frameEndTime;\n\t\teventFrame.residual = 0;\n\t\tif (this.isReverse) {\n\t\t\tif (frameEndTime < 0) {\n\t\t\t\teventFrame.start = this.track.duration;\n\t\t\t\teventFrame.end = 0;\n\t\t\t\teventFrame.residual = frameEndTime + this.track.duration;\n\t\t\t}\n\t\t} else {\n\t\t\tif (frameEndTime > this.track.duration) {\n\t\t\t\teventFrame.start = 0;\n\t\t\t\teventFrame.end = this.track.duration;\n\t\t\t\teventFrame.residual = frameEndTime - this.track.duration;\n\t\t\t}\n\t\t}\n\t}\n\talignCursorToCurrentTime() {\n\t\tthis.resetEventCursor();\n\t\twhile (this.nextEventBehindTime(this._time) && this._eventCursor !== this.eventCursorEnd) {\n\t\t\tthis.moveEventCursor();\n\t\t}\n\t}\n\tfireNextEvent() {\n\t\tthis._eventHandler?.fire(this.nextEvent.name, { track: this.track, ...this.nextEvent });\n\t\tthis.moveEventCursor();\n\t}\n\tfireNextEventInFrame(frameStartTime, frameEndTime) {\n\t\tif (this.nextEventAheadOfTime(frameStartTime) && this.nextEventBehindTime(frameEndTime)) {\n\t\t\tthis.fireNextEvent();\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tactiveEventsForFrame(frameStartTime, frameEndTime) {\n\t\tconst eventFrame = _AnimClip.eventFrame;\n\t\tthis.clipFrameTime(frameEndTime);\n\t\tconst initialCursor = this.eventCursor;\n\t\twhile (this.fireNextEventInFrame(frameStartTime, eventFrame.end)) {\n\t\t\tif (initialCursor === this.eventCursor) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (this.loop && Math.abs(eventFrame.residual) > 0) {\n\t\t\tthis.activeEventsForFrame(eventFrame.start, eventFrame.residual);\n\t\t}\n\t}\n\tprogressForTime(time) {\n\t\treturn time * this._speed / this._track.duration;\n\t}\n\t_update(deltaTime) {\n\t\tif (this._playing) {\n\t\t\tlet time = this._time;\n\t\t\tconst duration = this._track.duration;\n\t\t\tconst speed = this._speed;\n\t\t\tconst loop = this._loop;\n\t\t\tif (this._track.events.length > 0 && duration > 0) {\n\t\t\t\tthis.activeEventsForFrame(time, time + speed * deltaTime);\n\t\t\t}\n\t\t\ttime += speed * deltaTime;\n\t\t\tif (speed >= 0) {\n\t\t\t\tif (time > duration) {\n\t\t\t\t\tif (loop) {\n\t\t\t\t\t\ttime = time % duration || 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttime = this._track.duration;\n\t\t\t\t\t\tthis.pause();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (time < 0) {\n\t\t\t\t\tif (loop) {\n\t\t\t\t\t\ttime = duration + (time % duration || 0);\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttime = 0;\n\t\t\t\t\t\tthis.pause();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._time = time;\n\t\t}\n\t\tif (this._time !== this._snapshot._time) {\n\t\t\tthis._track.eval(this._time, this._snapshot);\n\t\t}\n\t}\n\tplay() {\n\t\tthis._playing = true;\n\t\tthis._time = 0;\n\t}\n\tstop() {\n\t\tthis._playing = false;\n\t\tthis._time = 0;\n\t}\n\tpause() {\n\t\tthis._playing = false;\n\t}\n\tresume() {\n\t\tthis._playing = true;\n\t}\n\treset() {\n\t\tthis._time = 0;\n\t}\n};\n\nvar ANIM_INTERRUPTION_NONE = \"NONE\";\nvar ANIM_INTERRUPTION_PREV = \"PREV_STATE\";\nvar ANIM_INTERRUPTION_NEXT = \"NEXT_STATE\";\nvar ANIM_INTERRUPTION_PREV_NEXT = \"PREV_STATE_NEXT_STATE\";\nvar ANIM_INTERRUPTION_NEXT_PREV = \"NEXT_STATE_PREV_STATE\";\nvar ANIM_GREATER_THAN = \"GREATER_THAN\";\nvar ANIM_LESS_THAN = \"LESS_THAN\";\nvar ANIM_GREATER_THAN_EQUAL_TO = \"GREATER_THAN_EQUAL_TO\";\nvar ANIM_LESS_THAN_EQUAL_TO = \"LESS_THAN_EQUAL_TO\";\nvar ANIM_EQUAL_TO = \"EQUAL_TO\";\nvar ANIM_NOT_EQUAL_TO = \"NOT_EQUAL_TO\";\nvar ANIM_PARAMETER_INTEGER = \"INTEGER\";\nvar ANIM_PARAMETER_FLOAT = \"FLOAT\";\nvar ANIM_PARAMETER_BOOLEAN = \"BOOLEAN\";\nvar ANIM_PARAMETER_TRIGGER = \"TRIGGER\";\nvar ANIM_BLEND_1D = \"1D\";\nvar ANIM_BLEND_2D_DIRECTIONAL = \"2D_DIRECTIONAL\";\nvar ANIM_BLEND_2D_CARTESIAN = \"2D_CARTESIAN\";\nvar ANIM_BLEND_DIRECT = \"DIRECT\";\nvar ANIM_STATE_START = \"START\";\nvar ANIM_STATE_END = \"END\";\nvar ANIM_STATE_ANY = \"ANY\";\nvar ANIM_CONTROL_STATES = [ANIM_STATE_START, ANIM_STATE_END, ANIM_STATE_ANY];\nvar ANIM_LAYER_OVERWRITE = \"OVERWRITE\";\nvar ANIM_LAYER_ADDITIVE = \"ADDITIVE\";\n\nvar AnimBlend = class _AnimBlend {\n\tstatic dot(a, b) {\n\t\tconst len = a.length;\n\t\tlet result = 0;\n\t\tfor (let i2 = 0; i2 < len; ++i2) {\n\t\t\tresult += a[i2] * b[i2];\n\t\t}\n\t\treturn result;\n\t}\n\tstatic normalize(a) {\n\t\tlet l = _AnimBlend.dot(a, a);\n\t\tif (l > 0) {\n\t\t\tl = 1 / Math.sqrt(l);\n\t\t\tconst len = a.length;\n\t\t\tfor (let i2 = 0; i2 < len; ++i2) {\n\t\t\t\ta[i2] *= l;\n\t\t\t}\n\t\t}\n\t}\n\tstatic set(a, b, type) {\n\t\tconst len = a.length;\n\t\tif (type === \"quaternion\") {\n\t\t\tlet l = _AnimBlend.dot(b, b);\n\t\t\tif (l > 0) {\n\t\t\t\tl = 1 / Math.sqrt(l);\n\t\t\t}\n\t\t\tfor (let i2 = 0; i2 < len; ++i2) {\n\t\t\t\ta[i2] = b[i2] * l;\n\t\t\t}\n\t\t} else {\n\t\t\tfor (let i2 = 0; i2 < len; ++i2) {\n\t\t\t\ta[i2] = b[i2];\n\t\t\t}\n\t\t}\n\t}\n\tstatic blendVec(a, b, t, additive) {\n\t\tconst it = additive ? 1 : 1 - t;\n\t\tconst len = a.length;\n\t\tfor (let i2 = 0; i2 < len; ++i2) {\n\t\t\ta[i2] = a[i2] * it + b[i2] * t;\n\t\t}\n\t}\n\tstatic blendQuat(a, b, t, additive) {\n\t\tconst len = a.length;\n\t\tconst it = additive ? 1 : 1 - t;\n\t\tif (_AnimBlend.dot(a, b) < 0) {\n\t\t\tt = -t;\n\t\t}\n\t\tfor (let i2 = 0; i2 < len; ++i2) {\n\t\t\ta[i2] = a[i2] * it + b[i2] * t;\n\t\t}\n\t\tif (!additive) {\n\t\t\t_AnimBlend.normalize(a);\n\t\t}\n\t}\n\tstatic blend(a, b, t, type, additive) {\n\t\tif (type === \"quaternion\") {\n\t\t\t_AnimBlend.blendQuat(a, b, t, additive);\n\t\t} else {\n\t\t\t_AnimBlend.blendVec(a, b, t, additive);\n\t\t}\n\t}\n\tstatic stableSort(a, lessFunc) {\n\t\tconst len = a.length;\n\t\tfor (let i2 = 0; i2 < len - 1; ++i2) {\n\t\t\tfor (let j = i2 + 1; j < len; ++j) {\n\t\t\t\tif (lessFunc(a[j], a[i2])) {\n\t\t\t\t\tconst tmp = a[i2];\n\t\t\t\t\ta[i2] = a[j];\n\t\t\t\t\ta[j] = tmp;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar AnimTargetValue = class _AnimTargetValue {\n\tstatic TYPE_QUAT = \"quaternion\";\n\tstatic TYPE_VEC3 = \"vector3\";\n\tstatic q1 = new Quat();\n\tstatic q2 = new Quat();\n\tstatic q3 = new Quat();\n\tstatic quatArr = [0, 0, 0, 1];\n\tstatic vecArr = [0, 0, 0];\n\tstatic IDENTITY_QUAT_ARR = [0, 0, 0, 1];\n\tconstructor(component, type) {\n\t\tthis._component = component;\n\t\tthis.mask = new Int8Array(component.layers.length);\n\t\tthis.weights = new Float32Array(component.layers.length);\n\t\tthis.totalWeight = 0;\n\t\tthis.counter = 0;\n\t\tthis.layerCounter = 0;\n\t\tthis.valueType = type;\n\t\tthis.dirty = true;\n\t\tthis.value = type === _AnimTargetValue.TYPE_QUAT ? [0, 0, 0, 1] : [0, 0, 0];\n\t\tthis.baseValue = null;\n\t\tthis.setter = null;\n\t}\n\tget _normalizeWeights() {\n\t\treturn this._component.normalizeWeights;\n\t}\n\tgetWeight(index) {\n\t\tif (this.dirty) this.updateWeights();\n\t\tif (this._normalizeWeights && this.totalWeight === 0 || !this.mask[index]) {\n\t\t\treturn 0;\n\t\t} else if (this._normalizeWeights) {\n\t\t\treturn this.weights[index] / this.totalWeight;\n\t\t}\n\t\treturn math.clamp(this.weights[index], 0, 1);\n\t}\n\t_layerBlendType(index) {\n\t\treturn this._component.layers[index].blendType;\n\t}\n\tsetMask(index, value) {\n\t\tthis.mask[index] = value;\n\t\tif (this._normalizeWeights) {\n\t\t\tif (this._component.layers[index].blendType === ANIM_LAYER_OVERWRITE) {\n\t\t\t\tthis.mask = this.mask.fill(0, 0, index);\n\t\t\t}\n\t\t\tthis.dirty = true;\n\t\t}\n\t}\n\tupdateWeights() {\n\t\tthis.totalWeight = 0;\n\t\tfor (let i2 = 0; i2 < this.weights.length; i2++) {\n\t\t\tthis.weights[i2] = this._component.layers[i2].weight;\n\t\t\tthis.totalWeight += this.mask[i2] * this.weights[i2];\n\t\t}\n\t\tthis.dirty = false;\n\t}\n\tupdateValue(index, value) {\n\t\tif (this.counter === 0) {\n\t\t\tAnimBlend.set(this.value, _AnimTargetValue.IDENTITY_QUAT_ARR, this.valueType);\n\t\t\tif (!this._normalizeWeights) {\n\t\t\t\tAnimBlend.blend(this.value, this.baseValue, 1, this.valueType);\n\t\t\t}\n\t\t}\n\t\tif (!this.mask[index] || this.getWeight(index) === 0) return;\n\t\tif (this._layerBlendType(index) === ANIM_LAYER_ADDITIVE && !this._normalizeWeights) {\n\t\t\tif (this.valueType === _AnimTargetValue.TYPE_QUAT) {\n\t\t\t\tconst v6 = _AnimTargetValue.q1.set(this.value[0], this.value[1], this.value[2], this.value[3]);\n\t\t\t\tconst aV1 = _AnimTargetValue.q2.set(this.baseValue[0], this.baseValue[1], this.baseValue[2], this.baseValue[3]);\n\t\t\t\tconst aV2 = _AnimTargetValue.q3.set(value[0], value[1], value[2], value[3]);\n\t\t\t\tconst aV = aV1.invert().mul(aV2);\n\t\t\t\taV.slerp(Quat.IDENTITY, aV, this.getWeight(index));\n\t\t\t\tv6.mul(aV);\n\t\t\t\t_AnimTargetValue.quatArr[0] = v6.x;\n\t\t\t\t_AnimTargetValue.quatArr[1] = v6.y;\n\t\t\t\t_AnimTargetValue.quatArr[2] = v6.z;\n\t\t\t\t_AnimTargetValue.quatArr[3] = v6.w;\n\t\t\t\tAnimBlend.set(this.value, _AnimTargetValue.quatArr, this.valueType);\n\t\t\t} else {\n\t\t\t\t_AnimTargetValue.vecArr[0] = value[0] - this.baseValue[0];\n\t\t\t\t_AnimTargetValue.vecArr[1] = value[1] - this.baseValue[1];\n\t\t\t\t_AnimTargetValue.vecArr[2] = value[2] - this.baseValue[2];\n\t\t\t\tAnimBlend.blend(this.value, _AnimTargetValue.vecArr, this.getWeight(index), this.valueType, true);\n\t\t\t}\n\t\t} else {\n\t\t\tAnimBlend.blend(this.value, value, this.getWeight(index), this.valueType);\n\t\t}\n\t\tif (this.setter) this.setter(this.value);\n\t}\n\tunbind() {\n\t\tif (this.setter) {\n\t\t\tthis.setter(this.baseValue);\n\t\t}\n\t}\n};\n\nvar AnimEvaluator = class {\n\tconstructor(binder) {\n\t\tthis._binder = binder;\n\t\tthis._clips = [];\n\t\tthis._inputs = [];\n\t\tthis._outputs = [];\n\t\tthis._targets = {};\n\t}\n\tget clips() {\n\t\treturn this._clips;\n\t}\n\taddClip(clip) {\n\t\tconst targets = this._targets;\n\t\tconst binder = this._binder;\n\t\tconst curves = clip.track.curves;\n\t\tconst snapshot = clip.snapshot;\n\t\tconst inputs = [];\n\t\tconst outputs = [];\n\t\tfor (let i2 = 0; i2 < curves.length; ++i2) {\n\t\t\tconst curve = curves[i2];\n\t\t\tconst paths = curve.paths;\n\t\t\tfor (let j = 0; j < paths.length; ++j) {\n\t\t\t\tconst path2 = paths[j];\n\t\t\t\tconst resolved = binder.resolve(path2);\n\t\t\t\tlet target2 = targets[resolved && resolved.targetPath || null];\n\t\t\t\tif (!target2 && resolved) {\n\t\t\t\t\ttarget2 = {\n\t\t\t\t\t\ttarget: resolved,\n\t\t\t\t\t\t// resolved target instance\n\t\t\t\t\t\tvalue: [],\n\t\t\t\t\t\t// storage for calculated value\n\t\t\t\t\t\tcurves: 0,\n\t\t\t\t\t\t// number of curves driving this target\n\t\t\t\t\t\tblendCounter: 0\n\t\t\t\t\t\t// per-frame number of blends (used to identify first blend)\n\t\t\t\t\t};\n\t\t\t\t\tfor (let k = 0; k < target2.target.components; ++k) {\n\t\t\t\t\t\ttarget2.value.push(0);\n\t\t\t\t\t}\n\t\t\t\t\ttargets[resolved.targetPath] = target2;\n\t\t\t\t\tif (binder.animComponent) {\n\t\t\t\t\t\tif (!binder.animComponent.targets[resolved.targetPath]) {\n\t\t\t\t\t\t\tlet type;\n\t\t\t\t\t\t\tif (resolved.targetPath.substring(resolved.targetPath.length - 13) === \"localRotation\") {\n\t\t\t\t\t\t\t\ttype = AnimTargetValue.TYPE_QUAT;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ttype = AnimTargetValue.TYPE_VEC3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbinder.animComponent.targets[resolved.targetPath] = new AnimTargetValue(binder.animComponent, type);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbinder.animComponent.targets[resolved.targetPath].layerCounter++;\n\t\t\t\t\t\tbinder.animComponent.targets[resolved.targetPath].setMask(binder.layerIndex, 1);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (target2) {\n\t\t\t\t\ttarget2.curves++;\n\t\t\t\t\tinputs.push(snapshot._results[i2]);\n\t\t\t\t\toutputs.push(target2);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis._clips.push(clip);\n\t\tthis._inputs.push(inputs);\n\t\tthis._outputs.push(outputs);\n\t}\n\tremoveClip(index) {\n\t\tconst targets = this._targets;\n\t\tconst binder = this._binder;\n\t\tconst clips = this._clips;\n\t\tconst clip = clips[index];\n\t\tconst curves = clip.track.curves;\n\t\tfor (let i2 = 0; i2 < curves.length; ++i2) {\n\t\t\tconst curve = curves[i2];\n\t\t\tconst paths = curve.paths;\n\t\t\tfor (let j = 0; j < paths.length; ++j) {\n\t\t\t\tconst path2 = paths[j];\n\t\t\t\tconst target2 = this._binder.resolve(path2);\n\t\t\t\tif (target2) {\n\t\t\t\t\ttarget2.curves--;\n\t\t\t\t\tif (target2.curves === 0) {\n\t\t\t\t\t\tbinder.unresolve(path2);\n\t\t\t\t\t\tdelete targets[target2.targetPath];\n\t\t\t\t\t\tif (binder.animComponent) {\n\t\t\t\t\t\t\tbinder.animComponent.targets[target2.targetPath].layerCounter--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tclips.splice(index, 1);\n\t\tthis._inputs.splice(index, 1);\n\t\tthis._outputs.splice(index, 1);\n\t}\n\tremoveClips() {\n\t\twhile (this._clips.length > 0) {\n\t\t\tthis.removeClip(0);\n\t\t}\n\t}\n\tupdateClipTrack(name, animTrack) {\n\t\tthis._clips.forEach((clip) => {\n\t\t\tif (clip.name.includes(name)) {\n\t\t\t\tclip.track = animTrack;\n\t\t\t}\n\t\t});\n\t\tthis.rebind();\n\t}\n\tfindClip(name) {\n\t\tconst clips = this._clips;\n\t\tfor (let i2 = 0; i2 < clips.length; ++i2) {\n\t\t\tconst clip = clips[i2];\n\t\t\tif (clip.name === name) {\n\t\t\t\treturn clip;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\trebind() {\n\t\tthis._binder.rebind();\n\t\tthis._targets = {};\n\t\tconst clips = [...this.clips];\n\t\tthis.removeClips();\n\t\tclips.forEach((clip) => {\n\t\t\tthis.addClip(clip);\n\t\t});\n\t}\n\tassignMask(mask) {\n\t\treturn this._binder.assignMask(mask);\n\t}\n\tupdate(deltaTime, outputAnimation = true) {\n\t\tconst clips = this._clips;\n\t\tconst order = clips.map((c2, i2) => {\n\t\t\treturn i2;\n\t\t});\n\t\tAnimBlend.stableSort(order, (a, b) => {\n\t\t\treturn clips[a].blendOrder < clips[b].blendOrder;\n\t\t});\n\t\tfor (let i2 = 0; i2 < order.length; ++i2) {\n\t\t\tconst index = order[i2];\n\t\t\tconst clip = clips[index];\n\t\t\tconst inputs = this._inputs[index];\n\t\t\tconst outputs = this._outputs[index];\n\t\t\tconst blendWeight = clip.blendWeight;\n\t\t\tif (blendWeight > 0) {\n\t\t\t\tclip._update(deltaTime);\n\t\t\t}\n\t\t\tif (!outputAnimation) break;\n\t\t\tlet input;\n\t\t\tlet output;\n\t\t\tlet value;\n\t\t\tif (blendWeight >= 1) {\n\t\t\t\tfor (let j = 0; j < inputs.length; ++j) {\n\t\t\t\t\tinput = inputs[j];\n\t\t\t\t\toutput = outputs[j];\n\t\t\t\t\tvalue = output.value;\n\t\t\t\t\tAnimBlend.set(value, input, output.target.type);\n\t\t\t\t\toutput.blendCounter++;\n\t\t\t\t}\n\t\t\t} else if (blendWeight > 0) {\n\t\t\t\tfor (let j = 0; j < inputs.length; ++j) {\n\t\t\t\t\tinput = inputs[j];\n\t\t\t\t\toutput = outputs[j];\n\t\t\t\t\tvalue = output.value;\n\t\t\t\t\tif (output.blendCounter === 0) {\n\t\t\t\t\t\tAnimBlend.set(value, input, output.target.type);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tAnimBlend.blend(value, input, blendWeight, output.target.type);\n\t\t\t\t\t}\n\t\t\t\t\toutput.blendCounter++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tconst targets = this._targets;\n\t\tconst binder = this._binder;\n\t\tfor (const path2 in targets) {\n\t\t\tif (targets.hasOwnProperty(path2)) {\n\t\t\t\tconst target2 = targets[path2];\n\t\t\t\tif (binder.animComponent && target2.target.usesLayerBlending) {\n\t\t\t\t\tconst animTarget = binder.animComponent.targets[path2];\n\t\t\t\t\tif (animTarget.counter === animTarget.layerCounter) {\n\t\t\t\t\t\tanimTarget.counter = 0;\n\t\t\t\t\t}\n\t\t\t\t\tif (!animTarget.path) {\n\t\t\t\t\t\tanimTarget.path = path2;\n\t\t\t\t\t\tanimTarget.baseValue = target2.target.get();\n\t\t\t\t\t\tanimTarget.setter = target2.target.set;\n\t\t\t\t\t}\n\t\t\t\t\tanimTarget.updateValue(binder.layerIndex, target2.value);\n\t\t\t\t\tanimTarget.counter++;\n\t\t\t\t} else {\n\t\t\t\t\ttarget2.target.set(target2.value);\n\t\t\t\t}\n\t\t\t\ttarget2.blendCounter = 0;\n\t\t\t}\n\t\t}\n\t\tthis._binder.update(deltaTime);\n\t}\n};\n\nvar AnimEvents = class {\n\tconstructor(events) {\n\t\tthis._events = [...events];\n\t\tthis._events.sort((a, b) => a.time - b.time);\n\t}\n\tget events() {\n\t\treturn this._events;\n\t}\n};\n\nvar AnimTrack = class _AnimTrack {\n\tstatic EMPTY = Object.freeze(new _AnimTrack(\"empty\", Number.MAX_VALUE, [], [], []));\n\tconstructor(name, duration, inputs, outputs, curves, animEvents = new AnimEvents([])) {\n\t\tthis._name = name;\n\t\tthis._duration = duration;\n\t\tthis._inputs = inputs;\n\t\tthis._outputs = outputs;\n\t\tthis._curves = curves;\n\t\tthis._animEvents = animEvents;\n\t}\n\tget name() {\n\t\treturn this._name;\n\t}\n\tget duration() {\n\t\treturn this._duration;\n\t}\n\tget inputs() {\n\t\treturn this._inputs;\n\t}\n\tget outputs() {\n\t\treturn this._outputs;\n\t}\n\tget curves() {\n\t\treturn this._curves;\n\t}\n\tset events(animEvents) {\n\t\tthis._animEvents = animEvents;\n\t}\n\tget events() {\n\t\treturn this._animEvents.events;\n\t}\n\t// evaluate all track curves at the specified time and store results\n\t// in the provided snapshot.\n\teval(time, snapshot) {\n\t\tsnapshot._time = time;\n\t\tconst inputs = this._inputs;\n\t\tconst outputs = this._outputs;\n\t\tconst curves = this._curves;\n\t\tconst cache = snapshot._cache;\n\t\tconst results = snapshot._results;\n\t\tfor (let i2 = 0; i2 < inputs.length; ++i2) {\n\t\t\tcache[i2].update(time, inputs[i2]._data);\n\t\t}\n\t\tfor (let i2 = 0; i2 < curves.length; ++i2) {\n\t\t\tconst curve = curves[i2];\n\t\t\tconst output = outputs[curve._output];\n\t\t\tconst result = results[i2];\n\t\t\tcache[curve._input].eval(result, curve._interpolation, output);\n\t\t}\n\t}\n};\n\nvar AnimBinder = class {\n\t// join a list of path segments into a path string using the full stop character. If another character is supplied,\n\t// it will join using that character instead\n\tstatic joinPath(pathSegments, character) {\n\t\tcharacter = character || \".\";\n\t\tconst escape2 = function(string2) {\n\t\t\treturn string2.replace(/\\\\/g, \"\\\\\\\\\").replace(new RegExp(`\\\\${character}`, \"g\"), `\\\\${character}`);\n\t\t};\n\t\treturn pathSegments.map(escape2).join(character);\n\t}\n\t// split a path string into its segments and resolve character escaping\n\tstatic splitPath(path2, character) {\n\t\tcharacter = character || \".\";\n\t\tconst result = [];\n\t\tlet curr = \"\";\n\t\tlet i2 = 0;\n\t\twhile (i2 < path2.length) {\n\t\t\tlet c2 = path2[i2++];\n\t\t\tif (c2 === \"\\\\\" && i2 < path2.length) {\n\t\t\t\tc2 = path2[i2++];\n\t\t\t\tif (c2 === \"\\\\\" || c2 === character) {\n\t\t\t\t\tcurr += c2;\n\t\t\t\t} else {\n\t\t\t\t\tcurr += `\\\\${c2}`;\n\t\t\t\t}\n\t\t\t} else if (c2 === character) {\n\t\t\t\tresult.push(curr);\n\t\t\t\tcurr = \"\";\n\t\t\t} else {\n\t\t\t\tcurr += c2;\n\t\t\t}\n\t\t}\n\t\tif (curr.length > 0) {\n\t\t\tresult.push(curr);\n\t\t}\n\t\treturn result;\n\t}\n\tstatic encode(entityPath, component, propertyPath) {\n\t\treturn `${Array.isArray(entityPath) ? entityPath.join(\"/\") : entityPath}/${component}/${Array.isArray(propertyPath) ? propertyPath.join(\"/\") : propertyPath}`;\n\t}\n\tresolve(path2) {\n\t\treturn null;\n\t}\n\tunresolve(path2) {\n\t}\n\tupdate(deltaTime) {\n\t}\n};\n\nvar AnimTarget = class {\n\tconstructor(func, type, components2, targetPath) {\n\t\tif (func.set) {\n\t\t\tthis._set = func.set;\n\t\t\tthis._get = func.get;\n\t\t} else {\n\t\t\tthis._set = func;\n\t\t}\n\t\tthis._type = type;\n\t\tthis._components = components2;\n\t\tthis._targetPath = targetPath;\n\t\tthis._isTransform = this._targetPath.substring(this._targetPath.length - 13) === \"localRotation\" || this._targetPath.substring(this._targetPath.length - 13) === \"localPosition\" || this._targetPath.substring(this._targetPath.length - 10) === \"localScale\";\n\t\tthis._isWeight = this._targetPath.indexOf(\"weight.\") !== -1;\n\t}\n\tget set() {\n\t\treturn this._set;\n\t}\n\tget get() {\n\t\treturn this._get;\n\t}\n\tget type() {\n\t\treturn this._type;\n\t}\n\tget components() {\n\t\treturn this._components;\n\t}\n\tget targetPath() {\n\t\treturn this._targetPath;\n\t}\n\tget isTransform() {\n\t\treturn this._isTransform;\n\t}\n\tget isWeight() {\n\t\treturn this._isWeight;\n\t}\n\tget usesLayerBlending() {\n\t\treturn this._isTransform || this._isWeight;\n\t}\n};\n\nvar DefaultAnimBinder = class _DefaultAnimBinder {\n\tconstructor(graph) {\n\t\tthis.graph = graph;\n\t\tif (!graph) return;\n\t\tthis._mask = null;\n\t\tconst nodes = {};\n\t\tconst flatten = function(node) {\n\t\t\tnodes[node.name] = node;\n\t\t\tfor (let i2 = 0; i2 < node.children.length; ++i2) {\n\t\t\t\tflatten(node.children[i2]);\n\t\t\t}\n\t\t};\n\t\tflatten(graph);\n\t\tthis.nodes = nodes;\n\t\tthis.targetCache = {};\n\t\tconst findMeshInstances = function(node) {\n\t\t\tlet object = node;\n\t\t\twhile (object && !(object instanceof Entity)) {\n\t\t\t\tobject = object.parent;\n\t\t\t}\n\t\t\tlet meshInstances;\n\t\t\tif (object) {\n\t\t\t\tif (object.render) {\n\t\t\t\t\tmeshInstances = object.render.meshInstances;\n\t\t\t\t} else if (object.model) {\n\t\t\t\t\tmeshInstances = object.model.meshInstances;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn meshInstances;\n\t\t};\n\t\tthis.nodeCounts = {};\n\t\tthis.activeNodes = [];\n\t\tthis.handlers = {\n\t\t\t\"localPosition\": function(node) {\n\t\t\t\tconst object = node.localPosition;\n\t\t\t\tconst func = function(value) {\n\t\t\t\t\tobject.set(...value);\n\t\t\t\t};\n\t\t\t\treturn _DefaultAnimBinder.createAnimTarget(func, \"vector\", 3, node, \"localPosition\");\n\t\t\t},\n\t\t\t\"localRotation\": function(node) {\n\t\t\t\tconst object = node.localRotation;\n\t\t\t\tconst func = function(value) {\n\t\t\t\t\tobject.set(...value);\n\t\t\t\t};\n\t\t\t\treturn _DefaultAnimBinder.createAnimTarget(func, \"quaternion\", 4, node, \"localRotation\");\n\t\t\t},\n\t\t\t\"localScale\": function(node) {\n\t\t\t\tconst object = node.localScale;\n\t\t\t\tconst func = function(value) {\n\t\t\t\t\tobject.set(...value);\n\t\t\t\t};\n\t\t\t\treturn _DefaultAnimBinder.createAnimTarget(func, \"vector\", 3, node, \"localScale\");\n\t\t\t},\n\t\t\t\"weight\": function(node, weightName) {\n\t\t\t\tif (weightName.indexOf(\"name.\") === 0) {\n\t\t\t\t\tweightName = weightName.replace(\"name.\", \"\");\n\t\t\t\t} else {\n\t\t\t\t\tweightName = Number(weightName);\n\t\t\t\t}\n\t\t\t\tconst meshInstances = findMeshInstances(node);\n\t\t\t\tconst instances = [];\n\t\t\t\tif (meshInstances) {\n\t\t\t\t\tfor (let i2 = 0; i2 < meshInstances.length; ++i2) {\n\t\t\t\t\t\tif (meshInstances[i2].node.name === node.name && meshInstances[i2].morphInstance) {\n\t\t\t\t\t\t\tinstances.push(meshInstances[i2].morphInstance);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (instances.length > 0) {\n\t\t\t\t\tconst func = {\n\t\t\t\t\t\tset: (value) => {\n\t\t\t\t\t\t\tfor (let i2 = 0; i2 < instances.length; ++i2) {\n\t\t\t\t\t\t\t\tinstances[i2].setWeight(weightName, value[0]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\tget: () => {\n\t\t\t\t\t\t\treturn [instances[0].getWeight(weightName)];\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\treturn _DefaultAnimBinder.createAnimTarget(func, \"number\", 1, node, `weight.${weightName}`);\n\t\t\t\t}\n\t\t\t\treturn null;\n\t\t\t},\n\t\t\t\"materialTexture\": (node, textureName) => {\n\t\t\t\tconst meshInstances = findMeshInstances(node);\n\t\t\t\tif (meshInstances) {\n\t\t\t\t\tlet meshInstance;\n\t\t\t\t\tfor (let i2 = 0; i2 < meshInstances.length; ++i2) {\n\t\t\t\t\t\tif (meshInstances[i2].node.name === node.name) {\n\t\t\t\t\t\t\tmeshInstance = meshInstances[i2];\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (meshInstance) {\n\t\t\t\t\t\tconst func = (value) => {\n\t\t\t\t\t\t\tconst textureAsset = this.animComponent.system.app.assets.get(value[0]);\n\t\t\t\t\t\t\tif (textureAsset && textureAsset.resource && textureAsset.type === \"texture\") {\n\t\t\t\t\t\t\t\tmeshInstance.material[textureName] = textureAsset.resource;\n\t\t\t\t\t\t\t\tmeshInstance.material.update();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t\treturn _DefaultAnimBinder.createAnimTarget(func, \"vector\", 1, node, \"materialTexture\", \"material\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn null;\n\t\t\t}\n\t\t};\n\t}\n\t_isPathInMask = (path2, checkMaskValue) => {\n\t\tconst maskItem = this._mask[path2];\n\t\tif (!maskItem) return false;\n\t\telse if (maskItem.children || checkMaskValue && maskItem.value !== false) return true;\n\t\treturn false;\n\t};\n\t_isPathActive(path2) {\n\t\tif (!this._mask) return true;\n\t\tconst rootNodeNames = [path2.entityPath[0], this.graph.name];\n\t\tfor (let j = 0; j < rootNodeNames.length; ++j) {\n\t\t\tlet currEntityPath = rootNodeNames[j];\n\t\t\tif (this._isPathInMask(currEntityPath, path2.entityPath.length === 1)) return true;\n\t\t\tfor (let i2 = 1; i2 < path2.entityPath.length; i2++) {\n\t\t\t\tcurrEntityPath += `/${path2.entityPath[i2]}`;\n\t\t\t\tif (this._isPathInMask(currEntityPath, i2 === path2.entityPath.length - 1)) return true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\tfindNode(path2) {\n\t\tif (!this._isPathActive(path2)) {\n\t\t\treturn null;\n\t\t}\n\t\tlet node;\n\t\tif (this.graph) {\n\t\t\tnode = this.graph.findByPath(path2.entityPath);\n\t\t\tif (!node) {\n\t\t\t\tnode = this.graph.findByPath(path2.entityPath.slice(1));\n\t\t\t}\n\t\t}\n\t\tif (!node) {\n\t\t\tnode = this.nodes[path2.entityPath[path2.entityPath.length - 1] || \"\"];\n\t\t}\n\t\treturn node;\n\t}\n\tstatic createAnimTarget(func, type, valueCount, node, propertyPath, componentType) {\n\t\tconst targetPath = AnimBinder.encode(node.path, componentType ? componentType : \"entity\", propertyPath);\n\t\treturn new AnimTarget(func, type, valueCount, targetPath);\n\t}\n\tresolve(path2) {\n\t\tconst encodedPath = AnimBinder.encode(path2.entityPath, path2.component, path2.propertyPath);\n\t\tlet target2 = this.targetCache[encodedPath];\n\t\tif (target2) return target2;\n\t\tconst node = this.findNode(path2);\n\t\tif (!node) {\n\t\t\treturn null;\n\t\t}\n\t\tconst handler = this.handlers[path2.propertyPath];\n\t\tif (!handler) {\n\t\t\treturn null;\n\t\t}\n\t\ttarget2 = handler(node);\n\t\tif (!target2) {\n\t\t\treturn null;\n\t\t}\n\t\tthis.targetCache[encodedPath] = target2;\n\t\tif (!this.nodeCounts[node.path]) {\n\t\t\tthis.activeNodes.push(node);\n\t\t\tthis.nodeCounts[node.path] = 1;\n\t\t} else {\n\t\t\tthis.nodeCounts[node.path]++;\n\t\t}\n\t\treturn target2;\n\t}\n\tunresolve(path2) {\n\t\tif (path2.component !== \"graph\") {\n\t\t\treturn;\n\t\t}\n\t\tconst node = this.nodes[path2.entityPath[path2.entityPath.length - 1] || \"\"];\n\t\tthis.nodeCounts[node.path]--;\n\t\tif (this.nodeCounts[node.path] === 0) {\n\t\t\tconst activeNodes = this.activeNodes;\n\t\t\tconst i2 = activeNodes.indexOf(node.node);\n\t\t\tconst len = activeNodes.length;\n\t\t\tif (i2 < len - 1) {\n\t\t\t\tactiveNodes[i2] = activeNodes[len - 1];\n\t\t\t}\n\t\t\tactiveNodes.pop();\n\t\t}\n\t}\n\t// flag animating nodes as dirty\n\tupdate(deltaTime) {\n\t\tconst activeNodes = this.activeNodes;\n\t\tfor (let i2 = 0; i2 < activeNodes.length; ++i2) {\n\t\t\tactiveNodes[i2]._dirtifyLocal();\n\t\t}\n\t}\n\tassignMask(mask) {\n\t\tif (mask !== this._mask) {\n\t\t\tthis._mask = mask;\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n};\n\nvar Component = class _Component extends EventHandler {\n\tstatic order = 0;\n\tsystem;\n\tentity;\n\t_enabled = true;\n\tconstructor(system, entity) {\n\t\tsuper();\n\t\tthis.system = system;\n\t\tthis.entity = entity;\n\t\tif (this.system.schema?.length && !this._accessorsBuilt) {\n\t\t\tthis.buildAccessors(this.system.schema);\n\t\t}\n\t\tthis.on(\"set\", function(name, oldValue, newValue) {\n\t\t\tthis.fire(`set_${name}`, name, oldValue, newValue);\n\t\t});\n\t\tthis.on(\"set_enabled\", this.onSetEnabled, this);\n\t}\n\tstatic _buildAccessors(obj, schema) {\n\t\tschema.forEach((descriptor) => {\n\t\t\tconst name = typeof descriptor === \"object\" ? descriptor.name : descriptor;\n\t\t\tObject.defineProperty(obj, name, {\n\t\t\t\tget: function() {\n\t\t\t\t\treturn this.data[name];\n\t\t\t\t},\n\t\t\t\tset: function(value) {\n\t\t\t\t\tconst data2 = this.data;\n\t\t\t\t\tconst oldValue = data2[name];\n\t\t\t\t\tdata2[name] = value;\n\t\t\t\t\tthis.fire(\"set\", name, oldValue, value);\n\t\t\t\t},\n\t\t\t\tconfigurable: true\n\t\t\t});\n\t\t});\n\t\tobj._accessorsBuilt = true;\n\t}\n\tbuildAccessors(schema) {\n\t\t_Component._buildAccessors(this, schema);\n\t}\n\tonSetEnabled(name, oldValue, newValue) {\n\t\tif (oldValue !== newValue) {\n\t\t\tif (this.entity.enabled) {\n\t\t\t\tif (newValue) {\n\t\t\t\t\tthis.onEnable();\n\t\t\t\t} else {\n\t\t\t\t\tthis.onDisable();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tonEnable() {\n\t}\n\tonDisable() {\n\t}\n\tonPostStateChange() {\n\t}\n\tget data() {\n\t\tconst record = this.system.store[this.entity.guid];\n\t\treturn record ? record.data : null;\n\t}\n\tset enabled(value) {\n\t\tconst oldValue = this._enabled;\n\t\tthis._enabled = value;\n\t\tthis.fire(\"set\", \"enabled\", oldValue, value);\n\t}\n\tget enabled() {\n\t\treturn this._enabled;\n\t}\n};\n\nvar AnimationComponent = class extends Component {\n\t_animations = {};\n\t_assets = [];\n\t_loop = true;\n\tanimEvaluator = null;\n\tmodel = null;\n\tskeleton = null;\n\tfromSkel = null;\n\ttoSkel = null;\n\tanimationsIndex = {};\n\t_boundAssets = /* @__PURE__ */ new Set();\n\t_pendingAssetAdds = /* @__PURE__ */ new Set();\n\tprevAnim = null;\n\tcurrAnim = null;\n\tblend = 0;\n\tblending = false;\n\tblendSpeed = 0;\n\tactivate = true;\n\tspeed = 1;\n\tset animations(value) {\n\t\tthis._animations = value;\n\t\tthis.onSetAnimations();\n\t}\n\tget animations() {\n\t\treturn this._animations;\n\t}\n\tset assets(value) {\n\t\tconst assets = this._assets;\n\t\tthis._unbindAssets();\n\t\tif (assets && assets.length) {\n\t\t\tfor (let i2 = 0; i2 < assets.length; i2++) {\n\t\t\t\tif (assets[i2]) {\n\t\t\t\t\tconst id14 = assets[i2] instanceof Asset ? assets[i2].id : assets[i2];\n\t\t\t\t\tconst asset = this.system.app.assets.get(id14);\n\t\t\t\t\tif (asset) {\n\t\t\t\t\t\tconst animName = this.animationsIndex[asset.id];\n\t\t\t\t\t\tif (this.currAnim === animName) {\n\t\t\t\t\t\t\tthis._stopCurrentAnimation();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdelete this.animations[animName];\n\t\t\t\t\t\tdelete this.animationsIndex[asset.id];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis._assets = value;\n\t\tconst assetIds = value.map((value2) => {\n\t\t\treturn value2 instanceof Asset ? value2.id : value2;\n\t\t});\n\t\tthis.loadAnimationAssets(assetIds);\n\t}\n\tget assets() {\n\t\treturn this._assets;\n\t}\n\tset currentTime(currentTime) {\n\t\tif (this.skeleton) {\n\t\t\tthis.skeleton.currentTime = currentTime;\n\t\t\tthis.skeleton.addTime(0);\n\t\t\tthis.skeleton.updateGraph();\n\t\t}\n\t\tif (this.animEvaluator) {\n\t\t\tconst clips = this.animEvaluator.clips;\n\t\t\tfor (let i2 = 0; i2 < clips.length; ++i2) {\n\t\t\t\tclips[i2].time = currentTime;\n\t\t\t}\n\t\t}\n\t}\n\tget currentTime() {\n\t\tif (this.skeleton) {\n\t\t\treturn this.skeleton._time;\n\t\t}\n\t\tif (this.animEvaluator) {\n\t\t\tconst clips = this.animEvaluator.clips;\n\t\t\tif (clips.length > 0) {\n\t\t\t\treturn clips[clips.length - 1].time;\n\t\t\t}\n\t\t}\n\t\treturn 0;\n\t}\n\tget duration() {\n\t\tif (this.currAnim) {\n\t\t\treturn this.animations[this.currAnim].duration;\n\t\t}\n\t\treturn 0;\n\t}\n\tset loop(value) {\n\t\tthis._loop = value;\n\t\tif (this.skeleton) {\n\t\t\tthis.skeleton.looping = value;\n\t\t}\n\t\tif (this.animEvaluator) {\n\t\t\tfor (let i2 = 0; i2 < this.animEvaluator.clips.length; ++i2) {\n\t\t\t\tthis.animEvaluator.clips[i2].loop = value;\n\t\t\t}\n\t\t}\n\t}\n\tget loop() {\n\t\treturn this._loop;\n\t}\n\tplay(name, blendTime = 0) {\n\t\tif (!this.enabled || !this.entity.enabled) {\n\t\t\treturn;\n\t\t}\n\t\tif (!this.animations[name]) {\n\t\t\treturn;\n\t\t}\n\t\tthis.prevAnim = this.currAnim;\n\t\tthis.currAnim = name;\n\t\tif (this.model) {\n\t\t\tif (!this.skeleton && !this.animEvaluator) {\n\t\t\t\tthis._createAnimationController();\n\t\t\t}\n\t\t\tconst prevAnim = this.animations[this.prevAnim];\n\t\t\tconst currAnim = this.animations[this.currAnim];\n\t\t\tthis.blending = blendTime > 0 && !!this.prevAnim;\n\t\t\tif (this.blending) {\n\t\t\t\tthis.blend = 0;\n\t\t\t\tthis.blendSpeed = 1 / blendTime;\n\t\t\t}\n\t\t\tif (this.skeleton) {\n\t\t\t\tif (this.blending) {\n\t\t\t\t\tthis.fromSkel.animation = prevAnim;\n\t\t\t\t\tthis.fromSkel.addTime(this.skeleton._time);\n\t\t\t\t\tthis.toSkel.animation = currAnim;\n\t\t\t\t} else {\n\t\t\t\t\tthis.skeleton.animation = currAnim;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (this.animEvaluator) {\n\t\t\t\tconst animEvaluator = this.animEvaluator;\n\t\t\t\tif (this.blending) {\n\t\t\t\t\twhile (animEvaluator.clips.length > 1) {\n\t\t\t\t\t\tanimEvaluator.removeClip(0);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.animEvaluator.removeClips();\n\t\t\t\t}\n\t\t\t\tconst clip = new AnimClip(this.animations[this.currAnim], 0, 1, true, this.loop, this);\n\t\t\t\tclip.name = this.currAnim;\n\t\t\t\tclip.blendWeight = this.blending ? 0 : 1;\n\t\t\t\tclip.reset();\n\t\t\t\tthis.animEvaluator.addClip(clip);\n\t\t\t}\n\t\t}\n\t\tthis.playing = true;\n\t}\n\tgetAnimation(name) {\n\t\treturn this.animations[name];\n\t}\n\tsetModel(model) {\n\t\tif (model !== this.model) {\n\t\t\tthis._resetAnimationController();\n\t\t\tthis.model = model;\n\t\t\tif (this.animations && this.currAnim && this.animations[this.currAnim]) {\n\t\t\t\tthis.play(this.currAnim);\n\t\t\t}\n\t\t}\n\t}\n\tonSetAnimations() {\n\t\tconst modelComponent = this.entity.model;\n\t\tif (modelComponent) {\n\t\t\tconst m = modelComponent.model;\n\t\t\tif (m && m !== this.model) {\n\t\t\t\tthis.setModel(m);\n\t\t\t}\n\t\t}\n\t\tif (!this.currAnim && this.activate && this.enabled && this.entity.enabled) {\n\t\t\tconst animationNames = Object.keys(this._animations);\n\t\t\tif (animationNames.length > 0) {\n\t\t\t\tthis.play(animationNames[0]);\n\t\t\t}\n\t\t}\n\t}\n\t_resetAnimationController() {\n\t\tthis.skeleton = null;\n\t\tthis.fromSkel = null;\n\t\tthis.toSkel = null;\n\t\tthis.animEvaluator = null;\n\t}\n\t_createAnimationController() {\n\t\tconst model = this.model;\n\t\tconst animations = this.animations;\n\t\tlet hasJson = false;\n\t\tlet hasGlb = false;\n\t\tfor (const animation in animations) {\n\t\t\tif (animations.hasOwnProperty(animation)) {\n\t\t\t\tconst anim = animations[animation];\n\t\t\t\tif (anim.constructor === AnimTrack) {\n\t\t\t\t\thasGlb = true;\n\t\t\t\t} else {\n\t\t\t\t\thasJson = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tconst graph = model.getGraph();\n\t\tif (hasJson) {\n\t\t\tthis.fromSkel = new Skeleton(graph);\n\t\t\tthis.toSkel = new Skeleton(graph);\n\t\t\tthis.skeleton = new Skeleton(graph);\n\t\t\tthis.skeleton.looping = this.loop;\n\t\t\tthis.skeleton.setGraph(graph);\n\t\t} else if (hasGlb) {\n\t\t\tthis.animEvaluator = new AnimEvaluator(new DefaultAnimBinder(this.entity));\n\t\t}\n\t}\n\tloadAnimationAssets(ids3) {\n\t\tif (!ids3 || !ids3.length) {\n\t\t\treturn;\n\t\t}\n\t\tconst assets = this.system.app.assets;\n\t\tfor (let i2 = 0, l = ids3.length; i2 < l; i2++) {\n\t\t\tconst asset = assets.get(ids3[i2]);\n\t\t\tif (asset) {\n\t\t\t\tthis._bindAsset(asset);\n\t\t\t} else {\n\t\t\t\tconst evtName = `add:${ids3[i2]}`;\n\t\t\t\tif (!this._pendingAssetAdds.has(evtName)) {\n\t\t\t\t\tthis._pendingAssetAdds.add(evtName);\n\t\t\t\t\tassets.on(evtName, this._onAssetAdded, this);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t_bindAsset(asset) {\n\t\tthis._boundAssets.add(asset);\n\t\tasset.off(\"change\", this.onAssetChanged, this);\n\t\tasset.on(\"change\", this.onAssetChanged, this);\n\t\tasset.off(\"remove\", this.onAssetRemoved, this);\n\t\tasset.on(\"remove\", this.onAssetRemoved, this);\n\t\tif (asset.resource) {\n\t\t\tthis._onAssetReady(asset);\n\t\t} else {\n\t\t\tasset.off(\"load\", this._onAssetReady, this);\n\t\t\tasset.once(\"load\", this._onAssetReady, this);\n\t\t\tif (this.enabled && this.entity.enabled) {\n\t\t\t\tthis.system.app.assets.load(asset);\n\t\t\t}\n\t\t}\n\t}\n\t_unbindAssets() {\n\t\tconst registry = this.system.app.assets;\n\t\tthis._pendingAssetAdds.forEach((evtName) => {\n\t\t\tregistry.off(evtName, this._onAssetAdded, this);\n\t\t});\n\t\tthis._pendingAssetAdds.clear();\n\t\tthis._boundAssets.forEach((asset) => {\n\t\t\tasset.off(\"change\", this.onAssetChanged, this);\n\t\t\tasset.off(\"remove\", this.onAssetRemoved, this);\n\t\t\tasset.off(\"load\", this._onAssetReady, this);\n\t\t});\n\t\tthis._boundAssets.clear();\n\t}\n\t_onAssetAdded(asset) {\n\t\tconst evtName = `add:${asset.id}`;\n\t\tthis.system.app.assets.off(evtName, this._onAssetAdded, this);\n\t\tthis._pendingAssetAdds.delete(evtName);\n\t\tthis._bindAsset(asset);\n\t}\n\t_onAssetReady(asset) {\n\t\tif (asset.resources.length > 1) {\n\t\t\tfor (let i2 = 0; i2 < asset.resources.length; i2++) {\n\t\t\t\tthis.animations[asset.resources[i2].name] = asset.resources[i2];\n\t\t\t\tthis.animationsIndex[asset.id] = asset.resources[i2].name;\n\t\t\t}\n\t\t} else {\n\t\t\tthis.animations[asset.name] = asset.resource;\n\t\t\tthis.animationsIndex[asset.id] = asset.name;\n\t\t}\n\t\tthis.animations = this.animations;\n\t}\n\tonAssetChanged(asset, attribute, newValue, oldValue) {\n\t\tif (attribute === \"resource\" || attribute === \"resources\") {\n\t\t\tif (attribute === \"resources\" && newValue && newValue.length === 0) {\n\t\t\t\tnewValue = null;\n\t\t\t}\n\t\t\tif (newValue) {\n\t\t\t\tlet restarted = false;\n\t\t\t\tif (newValue.length > 1) {\n\t\t\t\t\tif (oldValue && oldValue.length > 1) {\n\t\t\t\t\t\tfor (let i2 = 0; i2 < oldValue.length; i2++) {\n\t\t\t\t\t\t\tdelete this.animations[oldValue[i2].name];\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete this.animations[asset.name];\n\t\t\t\t\t}\n\t\t\t\t\trestarted = false;\n\t\t\t\t\tfor (let i2 = 0; i2 < newValue.length; i2++) {\n\t\t\t\t\t\tthis.animations[newValue[i2].name] = newValue[i2];\n\t\t\t\t\t\tif (!restarted && this.currAnim === newValue[i2].name) {\n\t\t\t\t\t\t\tif (this.playing && this.enabled && this.entity.enabled) {\n\t\t\t\t\t\t\t\trestarted = true;\n\t\t\t\t\t\t\t\tthis.play(newValue[i2].name);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!restarted) {\n\t\t\t\t\t\tthis._stopCurrentAnimation();\n\t\t\t\t\t\tthis.onSetAnimations();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (oldValue && oldValue.length > 1) {\n\t\t\t\t\t\tfor (let i2 = 0; i2 < oldValue.length; i2++) {\n\t\t\t\t\t\t\tdelete this.animations[oldValue[i2].name];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tthis.animations[asset.name] = newValue[0] || newValue;\n\t\t\t\t\trestarted = false;\n\t\t\t\t\tif (this.currAnim === asset.name) {\n\t\t\t\t\t\tif (this.playing && this.enabled && this.entity.enabled) {\n\t\t\t\t\t\t\trestarted = true;\n\t\t\t\t\t\t\tthis.play(asset.name);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!restarted) {\n\t\t\t\t\t\tthis._stopCurrentAnimation();\n\t\t\t\t\t\tthis.onSetAnimations();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.animationsIndex[asset.id] = asset.name;\n\t\t\t} else {\n\t\t\t\tif (oldValue.length > 1) {\n\t\t\t\t\tfor (let i2 = 0; i2 < oldValue.length; i2++) {\n\t\t\t\t\t\tdelete this.animations[oldValue[i2].name];\n\t\t\t\t\t\tif (this.currAnim === oldValue[i2].name) {\n\t\t\t\t\t\t\tthis._stopCurrentAnimation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tdelete this.animations[asset.name];\n\t\t\t\t\tif (this.currAnim === asset.name) {\n\t\t\t\t\t\tthis._stopCurrentAnimation();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tdelete this.animationsIndex[asset.id];\n\t\t\t}\n\t\t}\n\t}\n\tonAssetRemoved(asset) {\n\t\tasset.off(\"remove\", this.onAssetRemoved, this);\n\t\tif (this.animations) {\n\t\t\tif (asset.resources.length > 1) {\n\t\t\t\tfor (let i2 = 0; i2 < asset.resources.length; i2++) {\n\t\t\t\t\tdelete this.animations[asset.resources[i2].name];\n\t\t\t\t\tif (this.currAnim === asset.resources[i2].name) {\n\t\t\t\t\t\tthis._stopCurrentAnimation();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdelete this.animations[asset.name];\n\t\t\t\tif (this.currAnim === asset.name) {\n\t\t\t\t\tthis._stopCurrentAnimation();\n\t\t\t\t}\n\t\t\t}\n\t\t\tdelete this.animationsIndex[asset.id];\n\t\t}\n\t}\n\t_stopCurrentAnimation() {\n\t\tthis.currAnim = null;\n\t\tthis.playing = false;\n\t\tif (this.skeleton) {\n\t\t\tthis.skeleton.currentTime = 0;\n\t\t\tthis.skeleton.animation = null;\n\t\t}\n\t\tif (this.animEvaluator) {\n\t\t\tfor (let i2 = 0; i2 < this.animEvaluator.clips.length; ++i2) {\n\t\t\t\tthis.animEvaluator.clips[i2].stop();\n\t\t\t}\n\t\t\tthis.animEvaluator.update(0);\n\t\t\tthis.animEvaluator.removeClips();\n\t\t}\n\t}\n\tonEnable() {\n\t\tsuper.onEnable();\n\t\tconst assets = this.assets;\n\t\tconst registry = this.system.app.assets;\n\t\tif (assets) {\n\t\t\tfor (let i2 = 0, len = assets.length; i2 < len; i2++) {\n\t\t\t\tlet asset = assets[i2];\n\t\t\t\tif (!(asset instanceof Asset)) {\n\t\t\t\t\tasset = registry.get(asset);\n\t\t\t\t}\n\t\t\t\tif (asset && !asset.resource) {\n\t\t\t\t\tregistry.load(asset);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (this.activate && !this.currAnim) {\n\t\t\tconst animationNames = Object.keys(this.animations);\n\t\t\tif (animationNames.length > 0) {\n\t\t\t\tthis.play(animationNames[0]);\n\t\t\t}\n\t\t}\n\t}\n\tonBeforeRemove() {\n\t\tthis._unbindAssets();\n\t\tthis.skeleton = null;\n\t\tthis.fromSkel = null;\n\t\tthis.toSkel = null;\n\t\tthis.animEvaluator = null;\n\t}\n\tupdate(dt) {\n\t\tif (this.blending) {\n\t\t\tthis.blend += dt * this.blendSpeed;\n\t\t\tif (this.blend >= 1) {\n\t\t\t\tthis.blend = 1;\n\t\t\t}\n\t\t}\n\t\tif (this.playing) {\n\t\t\tconst skeleton = this.skeleton;\n\t\t\tif (skeleton !== null && this.model !== null) {\n\t\t\t\tif (this.blending) {\n\t\t\t\t\tskeleton.blend(this.fromSkel, this.toSkel, this.blend);\n\t\t\t\t} else {\n\t\t\t\t\tconst delta3 = dt * this.speed;\n\t\t\t\t\tskeleton.addTime(delta3);\n\t\t\t\t\tif (this.speed > 0 && skeleton._time === skeleton.animation.duration && !this.loop) {\n\t\t\t\t\t\tthis.playing = false;\n\t\t\t\t\t} else if (this.speed < 0 && skeleton._time === 0 && !this.loop) {\n\t\t\t\t\t\tthis.playing = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (this.blending && this.blend === 1) {\n\t\t\t\t\tskeleton.animation = this.toSkel.animation;\n\t\t\t\t}\n\t\t\t\tskeleton.updateGraph();\n\t\t\t}\n\t\t}\n\t\tconst animEvaluator = this.animEvaluator;\n\t\tif (animEvaluator) {\n\t\t\tfor (let i2 = 0; i2 < animEvaluator.clips.length; ++i2) {\n\t\t\t\tconst clip = animEvaluator.clips[i2];\n\t\t\t\tclip.speed = this.speed;\n\t\t\t\tif (!this.playing) {\n\t\t\t\t\tclip.pause();\n\t\t\t\t} else {\n\t\t\t\t\tclip.resume();\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (this.blending && animEvaluator.clips.length > 1) {\n\t\t\t\tanimEvaluator.clips[1].blendWeight = this.blend;\n\t\t\t}\n\t\t\tanimEvaluator.update(dt);\n\t\t}\n\t\tif (this.blending && this.blend === 1) {\n\t\t\tthis.blending = false;\n\t\t}\n\t}\n};\n\nvar _properties = [\"activate\", \"enabled\", \"loop\", \"speed\", \"assets\"];\nvar AnimationComponentSystem = class extends ComponentSystem {\n\tconstructor(app2) {\n\t\tsuper(app2);\n\t\tthis.id = \"animation\";\n\t\tthis.ComponentType = AnimationComponent;\n\t\tthis.on(\"beforeremove\", this.onBeforeRemove, this);\n\t\tthis.app.systems.on(\"update\", this.onUpdate, this);\n\t}\n\tinitializeComponentData(component, data2) {\n\t\tfor (const property of _properties) {\n\t\t\tif (data2.hasOwnProperty(property)) {\n\t\t\t\tcomponent[property] = data2[property];\n\t\t\t}\n\t\t}\n\t\tsuper.initializeComponentData(component, data2);\n\t}\n\tcloneComponent(entity, clone) {\n\t\tconst c2 = entity.animation;\n\t\tconst data2 = {};\n\t\tfor (const property of _properties) {\n\t\t\tdata2[property] = property === \"assets\" ? c2.assets.slice() : c2[property];\n\t\t}\n\t\tconst component = this.addComponent(clone, data2);\n\t\tconst clonedAnimations = {};\n\t\tconst animations = c2.animations;\n\t\tfor (const key in animations) {\n\t\t\tif (animations.hasOwnProperty(key)) {\n\t\t\t\tclonedAnimations[key] = animations[key];\n\t\t\t}\n\t\t}\n\t\tcomponent.animations = clonedAnimations;\n\t\tconst clonedAnimationsIndex = {};\n\t\tconst animationsIndex = c2.animationsIndex;\n\t\tfor (const key in animationsIndex) {\n\t\t\tif (animationsIndex.hasOwnProperty(key)) {\n\t\t\t\tclonedAnimationsIndex[key] = animationsIndex[key];\n\t\t\t}\n\t\t}\n\t\tcomponent.animationsIndex = clonedAnimationsIndex;\n\t\treturn component;\n\t}\n\tonBeforeRemove(entity, component) {\n\t\tcomponent.onBeforeRemove();\n\t}\n\tonUpdate(dt) {\n\t\tconst components2 = this.store;\n\t\tfor (const id14 in components2) {\n\t\t\tif (components2.hasOwnProperty(id14)) {\n\t\t\t\tconst { entity } = components2[id14];\n\t\t\t\tif (entity.animation.enabled && entity.enabled) {\n\t\t\t\t\tentity.animation.update(dt);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tdestroy() {\n\t\tsuper.destroy();\n\t\tthis.app.systems.off(\"update\", this.onUpdate, this);\n\t}\n};\n\nvar AnimNode = class {\n\tconstructor(state, parent, name, point5, speed = 1) {\n\t\tthis._state = state;\n\t\tthis._parent = parent;\n\t\tthis._name = name;\n\t\tif (Array.isArray(point5)) {\n\t\t\tthis._point = new Vec2(point5[0], point5[1]);\n\t\t\tthis._pointLength = this._point.length();\n\t\t} else {\n\t\t\tthis._point = point5;\n\t\t\tthis._pointLength = point5;\n\t\t}\n\t\tthis._speed = speed;\n\t\tthis._weightedSpeed = 1;\n\t\tthis._weight = 1;\n\t\tthis._animTrack = null;\n\t}\n\tget parent() {\n\t\treturn this._parent;\n\t}\n\tget name() {\n\t\treturn this._name;\n\t}\n\tget path() {\n\t\treturn this._parent ? `${this._parent.path}.${this._name}` : this._name;\n\t}\n\tget point() {\n\t\treturn this._point;\n\t}\n\tget pointLength() {\n\t\treturn this._pointLength;\n\t}\n\tset weight(value) {\n\t\tthis._weight = value;\n\t}\n\tget weight() {\n\t\treturn this._parent ? this._parent.weight * this._weight : this._weight;\n\t}\n\tget normalizedWeight() {\n\t\tconst totalWeight = this._state.totalWeight;\n\t\tif (totalWeight === 0) return 0;\n\t\treturn this.weight / totalWeight;\n\t}\n\tget speed() {\n\t\treturn this._weightedSpeed * this._speed;\n\t}\n\tget absoluteSpeed() {\n\t\treturn Math.abs(this._speed);\n\t}\n\tset weightedSpeed(weightedSpeed) {\n\t\tthis._weightedSpeed = weightedSpeed;\n\t}\n\tget weightedSpeed() {\n\t\treturn this._weightedSpeed;\n\t}\n\tset animTrack(value) {\n\t\tthis._animTrack = value;\n\t}\n\tget animTrack() {\n\t\treturn this._animTrack;\n\t}\n};\n\nvar AnimBlendTree = class _AnimBlendTree extends AnimNode {\n\tconstructor(state, parent, name, point5, parameters, children, syncAnimations, createTree, findParameter) {\n\t\tsuper(state, parent, name, point5);\n\t\tthis._parameters = parameters;\n\t\tthis._parameterValues = new Array(parameters.length);\n\t\tthis._children = [];\n\t\tthis._findParameter = findParameter;\n\t\tthis._syncAnimations = syncAnimations !== false;\n\t\tthis._pointCache = {};\n\t\tfor (let i2 = 0; i2 < children.length; i2++) {\n\t\t\tconst child = children[i2];\n\t\t\tif (child.children) {\n\t\t\t\tthis._children.push(createTree(\n\t\t\t\t\tchild.type,\n\t\t\t\t\tstate,\n\t\t\t\t\tthis,\n\t\t\t\t\tchild.name,\n\t\t\t\t\t1,\n\t\t\t\t\tchild.parameter ? [child.parameter] : child.parameters,\n\t\t\t\t\tchild.children,\n\t\t\t\t\tchild.syncAnimations,\n\t\t\t\t\tcreateTree,\n\t\t\t\t\tfindParameter\n\t\t\t\t));\n\t\t\t} else {\n\t\t\t\tthis._children.push(new AnimNode(state, this, child.name, child.point, child.speed));\n\t\t\t}\n\t\t}\n\t}\n\tget weight() {\n\t\tthis.calculateWeights();\n\t\treturn this._parent ? this._parent.weight * this._weight : this._weight;\n\t}\n\tget syncAnimations() {\n\t\treturn this._syncAnimations;\n\t}\n\tgetChild(name) {\n\t\tfor (let i2 = 0; i2 < this._children.length; i2++) {\n\t\t\tif (this._children[i2].name === name) return this._children[i2];\n\t\t}\n\t\treturn null;\n\t}\n\tupdateParameterValues() {\n\t\tlet paramsEqual = true;\n\t\tfor (let i2 = 0; i2 < this._parameterValues.length; i2++) {\n\t\t\tconst updatedParameter = this._findParameter(this._parameters[i2]).value;\n\t\t\tif (this._parameterValues[i2] !== updatedParameter) {\n\t\t\t\tthis._parameterValues[i2] = updatedParameter;\n\t\t\t\tparamsEqual = false;\n\t\t\t}\n\t\t}\n\t\treturn paramsEqual;\n\t}\n\tgetNodeWeightedDuration(i2) {\n\t\treturn this._children[i2].animTrack.duration / this._children[i2].speedMultiplier * this._children[i2].weight;\n\t}\n\tgetNodeCount() {\n\t\tlet count = 0;\n\t\tfor (let i2 = 0; i2 < this._children.length; i2++) {\n\t\t\tconst child = this._children[i2];\n\t\t\tif (child.constructor === _AnimBlendTree) {\n\t\t\t\tcount += this._children[i2].getNodeCount();\n\t\t\t} else {\n\t\t\t\tcount++;\n\t\t\t}\n\t\t}\n\t\treturn count;\n\t}\n};\n\nvar AnimBlendTree1D = class extends AnimBlendTree {\n\tconstructor(state, parent, name, point5, parameters, children, syncAnimations, createTree, findParameter) {\n\t\tchildren.sort((a, b) => a.point - b.point);\n\t\tsuper(state, parent, name, point5, parameters, children, syncAnimations, createTree, findParameter);\n\t}\n\tcalculateWeights() {\n\t\tif (this.updateParameterValues()) return;\n\t\tlet weightedDurationSum = 0;\n\t\tthis._children[0].weight = 0;\n\t\tfor (let i2 = 0; i2 < this._children.length; i2++) {\n\t\t\tconst c1 = this._children[i2];\n\t\t\tif (i2 !== this._children.length - 1) {\n\t\t\t\tconst c2 = this._children[i2 + 1];\n\t\t\t\tif (c1.point === c2.point) {\n\t\t\t\t\tc1.weight = 0.5;\n\t\t\t\t\tc2.weight = 0.5;\n\t\t\t\t} else if (math.between(this._parameterValues[0], c1.point, c2.point, true)) {\n\t\t\t\t\tconst child2Distance = Math.abs(c1.point - c2.point);\n\t\t\t\t\tconst parameterDistance = Math.abs(c1.point - this._parameterValues[0]);\n\t\t\t\t\tconst weight = (child2Distance - parameterDistance) / child2Distance;\n\t\t\t\t\tc1.weight = weight;\n\t\t\t\t\tc2.weight = 1 - weight;\n\t\t\t\t} else {\n\t\t\t\t\tc2.weight = 0;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (this._syncAnimations) {\n\t\t\t\tweightedDurationSum += c1.animTrack.duration / c1.absoluteSpeed * c1.weight;\n\t\t\t}\n\t\t}\n\t\tif (this._syncAnimations) {\n\t\t\tfor (let i2 = 0; i2 < this._children.length; i2++) {\n\t\t\t\tconst child = this._children[i2];\n\t\t\t\tchild.weightedSpeed = child.animTrack.duration / child.absoluteSpeed / weightedDurationSum;\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar AnimBlendTreeCartesian2D = class _AnimBlendTreeCartesian2D extends AnimBlendTree {\n\tstatic _p = new Vec2();\n\tstatic _pip = new Vec2();\n\tpointDistanceCache(i2, j) {\n\t\tconst pointKey = `${i2}${j}`;\n\t\tif (!this._pointCache[pointKey]) {\n\t\t\tthis._pointCache[pointKey] = this._children[j].point.clone().sub(this._children[i2].point);\n\t\t}\n\t\treturn this._pointCache[pointKey];\n\t}\n\tcalculateWeights() {\n\t\tif (this.updateParameterValues()) return;\n\t\tlet weightSum, weightedDurationSum;\n\t\t_AnimBlendTreeCartesian2D._p.set(...this._parameterValues);\n\t\tweightSum = 0;\n\t\tweightedDurationSum = 0;\n\t\tfor (let i2 = 0; i2 < this._children.length; i2++) {\n\t\t\tconst child = this._children[i2];\n\t\t\tconst pi = child.point;\n\t\t\t_AnimBlendTreeCartesian2D._pip.set(_AnimBlendTreeCartesian2D._p.x, _AnimBlendTreeCartesian2D._p.y).sub(pi);\n\t\t\tlet minj = Number.MAX_VALUE;\n\t\t\tfor (let j = 0; j < this._children.length; j++) {\n\t\t\t\tif (i2 === j) continue;\n\t\t\t\tconst pipj = this.pointDistanceCache(i2, j);\n\t\t\t\tconst result = math.clamp(1 - _AnimBlendTreeCartesian2D._pip.dot(pipj) / pipj.lengthSq(), 0, 1);\n\t\t\t\tif (result < minj) minj = result;\n\t\t\t}\n\t\t\tchild.weight = minj;\n\t\t\tweightSum += minj;\n\t\t\tif (this._syncAnimations) {\n\t\t\t\tweightedDurationSum += child.animTrack.duration / child.absoluteSpeed * child.weight;\n\t\t\t}\n\t\t}\n\t\tfor (let i2 = 0; i2 < this._children.length; i2++) {\n\t\t\tconst child = this._children[i2];\n\t\t\tchild.weight = child._weight / weightSum;\n\t\t\tif (this._syncAnimations) {\n\t\t\t\tchild.weightedSpeed = child.animTrack.duration / child.absoluteSpeed / weightedDurationSum;\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar AnimBlendTreeDirectional2D = class _AnimBlendTreeDirectional2D extends AnimBlendTree {\n\tstatic _p = new Vec2();\n\tstatic _pip = new Vec2();\n\tpointCache(i2, j) {\n\t\tconst pointKey = `${i2}${j}`;\n\t\tif (!this._pointCache[pointKey]) {\n\t\t\tthis._pointCache[pointKey] = new Vec2(\n\t\t\t\t(this._children[j].pointLength - this._children[i2].pointLength) / ((this._children[j].pointLength + this._children[i2].pointLength) / 2),\n\t\t\t\tVec2.angleRad(this._children[i2].point, this._children[j].point) * 2\n\t\t\t);\n\t\t}\n\t\treturn this._pointCache[pointKey];\n\t}\n\tcalculateWeights() {\n\t\tif (this.updateParameterValues()) return;\n\t\tlet weightSum, weightedDurationSum;\n\t\t_AnimBlendTreeDirectional2D._p.set(...this._parameterValues);\n\t\tconst pLength = _AnimBlendTreeDirectional2D._p.length();\n\t\tweightSum = 0;\n\t\tweightedDurationSum = 0;\n\t\tfor (let i2 = 0; i2 < this._children.length; i2++) {\n\t\t\tconst child = this._children[i2];\n\t\t\tconst pi = child.point;\n\t\t\tconst piLength = child.pointLength;\n\t\t\tlet minj = Number.MAX_VALUE;\n\t\t\tfor (let j = 0; j < this._children.length; j++) {\n\t\t\t\tif (i2 === j) continue;\n\t\t\t\tconst pipj = this.pointCache(i2, j);\n\t\t\t\tconst pjLength = this._children[j].pointLength;\n\t\t\t\t_AnimBlendTreeDirectional2D._pip.set((pLength - piLength) / ((pjLength + piLength) / 2), Vec2.angleRad(pi, _AnimBlendTreeDirectional2D._p) * 2);\n\t\t\t\tconst result = math.clamp(1 - Math.abs(_AnimBlendTreeDirectional2D._pip.dot(pipj) / pipj.lengthSq()), 0, 1);\n\t\t\t\tif (result < minj) minj = result;\n\t\t\t}\n\t\t\tchild.weight = minj;\n\t\t\tweightSum += minj;\n\t\t\tif (this._syncAnimations) {\n\t\t\t\tweightedDurationSum += child.animTrack.duration / child.absoluteSpeed * child.weight;\n\t\t\t}\n\t\t}\n\t\tfor (let i2 = 0; i2 < this._children.length; i2++) {\n\t\t\tconst child = this._children[i2];\n\t\t\tchild.weight = child._weight / weightSum;\n\t\t\tif (this._syncAnimations) {\n\t\t\t\tconst weightedChildDuration = child.animTrack.duration / weightedDurationSum * weightSum;\n\t\t\t\tchild.weightedSpeed = child.absoluteSpeed * weightedChildDuration;\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar AnimBlendTreeDirect = class extends AnimBlendTree {\n\tcalculateWeights() {\n\t\tif (this.updateParameterValues()) return;\n\t\tlet weightSum = 0;\n\t\tlet weightedDurationSum = 0;\n\t\tfor (let i2 = 0; i2 < this._children.length; i2++) {\n\t\t\tweightSum += Math.max(this._parameterValues[i2], 0);\n\t\t\tif (this._syncAnimations) {\n\t\t\t\tconst child = this._children[i2];\n\t\t\t\tweightedDurationSum += child.animTrack.duration / child.absoluteSpeed * child.weight;\n\t\t\t}\n\t\t}\n\t\tfor (let i2 = 0; i2 < this._children.length; i2++) {\n\t\t\tconst child = this._children[i2];\n\t\t\tconst weight = Math.max(this._parameterValues[i2], 0);\n\t\t\tif (weightSum) {\n\t\t\t\tchild.weight = weight / weightSum;\n\t\t\t\tif (this._syncAnimations) {\n\t\t\t\t\tchild.weightedSpeed = child.animTrack.duration / child.absoluteSpeed / weightedDurationSum;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tchild.weight = 0;\n\t\t\t\tif (this._syncAnimations) {\n\t\t\t\t\tchild.weightedSpeed = 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar AnimState = class {\n\t_animations = {};\n\t_animationList = [];\n\tconstructor(controller, name, speed = 1, loop = true, blendTree) {\n\t\tthis._controller = controller;\n\t\tthis._name = name;\n\t\tthis._speed = speed;\n\t\tthis._loop = loop;\n\t\tthis._hasAnimations = false;\n\t\tif (blendTree) {\n\t\t\tthis._blendTree = this._createTree(\n\t\t\t\tblendTree.type,\n\t\t\t\tthis,\n\t\t\t\tnull,\n\t\t\t\tname,\n\t\t\t\t1,\n\t\t\t\tblendTree.parameter ? [blendTree.parameter] : blendTree.parameters,\n\t\t\t\tblendTree.children,\n\t\t\t\tblendTree.syncAnimations,\n\t\t\t\tthis._createTree,\n\t\t\t\tthis._controller.findParameter\n\t\t\t);\n\t\t} else {\n\t\t\tthis._blendTree = new AnimNode(this, null, name, 1, speed);\n\t\t}\n\t}\n\t_createTree(type, state, parent, name, point5, parameters, children, syncAnimations, createTree, findParameter) {\n\t\tswitch (type) {\n\t\t\tcase ANIM_BLEND_1D:\n\t\t\t\treturn new AnimBlendTree1D(state, parent, name, point5, parameters, children, syncAnimations, createTree, findParameter);\n\t\t\tcase ANIM_BLEND_2D_CARTESIAN:\n\t\t\t\treturn new AnimBlendTreeCartesian2D(state, parent, name, point5, parameters, children, syncAnimations, createTree, findParameter);\n\t\t\tcase ANIM_BLEND_2D_DIRECTIONAL:\n\t\t\t\treturn new AnimBlendTreeDirectional2D(state, parent, name, point5, parameters, children, syncAnimations, createTree, findParameter);\n\t\t\tcase ANIM_BLEND_DIRECT:\n\t\t\t\treturn new AnimBlendTreeDirect(state, parent, name, point5, parameters, children, syncAnimations, createTree, findParameter);\n\t\t}\n\t\treturn void 0;\n\t}\n\t_getNodeFromPath(path2) {\n\t\tlet currNode = this._blendTree;\n\t\tfor (let i2 = 1; i2 < path2.length; i2++) {\n\t\t\tcurrNode = currNode.getChild(path2[i2]);\n\t\t}\n\t\treturn currNode;\n\t}\n\taddAnimation(path2, animTrack) {\n\t\tconst pathString = path2.join(\".\");\n\t\tconst indexOfAnimation = this._animationList.findIndex((animation) => {\n\t\t\treturn animation.path === pathString;\n\t\t});\n\t\tif (indexOfAnimation >= 0) {\n\t\t\tthis._animationList[indexOfAnimation].animTrack = animTrack;\n\t\t} else {\n\t\t\tconst node = this._getNodeFromPath(path2);\n\t\t\tnode.animTrack = animTrack;\n\t\t\tthis._animationList.push(node);\n\t\t}\n\t\tthis._updateHasAnimations();\n\t}\n\t_updateHasAnimations() {\n\t\tthis._hasAnimations = this._animationList.length > 0 && this._animationList.every((animation) => animation.animTrack && animation.animTrack !== AnimTrack.EMPTY);\n\t}\n\tget name() {\n\t\treturn this._name;\n\t}\n\tset animations(value) {\n\t\tthis._animationList = value;\n\t\tthis._updateHasAnimations();\n\t}\n\tget animations() {\n\t\treturn this._animationList;\n\t}\n\tget hasAnimations() {\n\t\treturn this._hasAnimations;\n\t}\n\tset speed(value) {\n\t\tthis._speed = value;\n\t}\n\tget speed() {\n\t\treturn this._speed;\n\t}\n\tset loop(value) {\n\t\tthis._loop = value;\n\t}\n\tget loop() {\n\t\treturn this._loop;\n\t}\n\tget nodeCount() {\n\t\tif (!this._blendTree || this._blendTree.constructor === AnimNode) return 1;\n\t\treturn this._blendTree.getNodeCount();\n\t}\n\tget playable() {\n\t\treturn ANIM_CONTROL_STATES.indexOf(this.name) !== -1 || this.animations.length === this.nodeCount;\n\t}\n\tget looping() {\n\t\tif (this.animations.length > 0) {\n\t\t\tconst trackClipName = `${this.name}.${this.animations[0].animTrack.name}`;\n\t\t\tconst trackClip = this._controller.animEvaluator.findClip(trackClipName);\n\t\t\tif (trackClip) {\n\t\t\t\treturn trackClip.loop;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\tget totalWeight() {\n\t\tlet sum = 0;\n\t\tfor (let i2 = 0; i2 < this.animations.length; i2++) {\n\t\t\tsum += this.animations[i2].weight;\n\t\t}\n\t\treturn sum;\n\t}\n\tget timelineDuration() {\n\t\tlet duration = 0;\n\t\tfor (let i2 = 0; i2 < this.animations.length; i2++) {\n\t\t\tconst animation = this.animations[i2];\n\t\t\tif (animation.animTrack.duration > duration) {\n\t\t\t\tduration = animation.animTrack.duration;\n\t\t\t}\n\t\t}\n\t\treturn duration;\n\t}\n};\n\nvar AnimTransition = class {\n\tconstructor({ from, to, time = 0, priority = 0, conditions = [], exitTime = null, transitionOffset = null, interruptionSource = ANIM_INTERRUPTION_NONE }) {\n\t\tthis._from = from;\n\t\tthis._to = to;\n\t\tthis._time = time;\n\t\tthis._priority = priority;\n\t\tthis._conditions = conditions;\n\t\tthis._exitTime = exitTime;\n\t\tthis._transitionOffset = transitionOffset;\n\t\tthis._interruptionSource = interruptionSource;\n\t}\n\tget from() {\n\t\treturn this._from;\n\t}\n\tset to(value) {\n\t\tthis._to = value;\n\t}\n\tget to() {\n\t\treturn this._to;\n\t}\n\tget time() {\n\t\treturn this._time;\n\t}\n\tget priority() {\n\t\treturn this._priority;\n\t}\n\tget conditions() {\n\t\treturn this._conditions;\n\t}\n\tget exitTime() {\n\t\treturn this._exitTime;\n\t}\n\tget transitionOffset() {\n\t\treturn this._transitionOffset;\n\t}\n\tget interruptionSource() {\n\t\treturn this._interruptionSource;\n\t}\n\tget hasExitTime() {\n\t\treturn !!this.exitTime;\n\t}\n};\n\nvar AnimController = class {\n\t_states = {};\n\t_stateNames = [];\n\t_findTransitionsFromStateCache = {};\n\t_findTransitionsBetweenStatesCache = {};\n\t_previousStateName = null;\n\t_activeStateName = ANIM_STATE_START;\n\t_activeStateDuration = 0;\n\t_activeStateDurationDirty = true;\n\t_playing = false;\n\t_activate;\n\t_transitions;\n\t_currTransitionTime = 1;\n\t_totalTransitionTime = 1;\n\t_isTransitioning = false;\n\t_transitionInterruptionSource = ANIM_INTERRUPTION_NONE;\n\t_transitionPreviousStates = [];\n\t_timeInState = 0;\n\t_timeInStateBefore = 0;\n\tconstructor(animEvaluator, states, transitions, activate, eventHandler, findParameter, consumeTrigger) {\n\t\tthis._animEvaluator = animEvaluator;\n\t\tthis._eventHandler = eventHandler;\n\t\tthis._findParameter = findParameter;\n\t\tthis._consumeTrigger = consumeTrigger;\n\t\tfor (let i2 = 0; i2 < states.length; i2++) {\n\t\t\tthis._states[states[i2].name] = new AnimState(\n\t\t\t\tthis,\n\t\t\t\tstates[i2].name,\n\t\t\t\tstates[i2].speed,\n\t\t\t\tstates[i2].loop,\n\t\t\t\tstates[i2].blendTree\n\t\t\t);\n\t\t\tthis._stateNames.push(states[i2].name);\n\t\t}\n\t\tthis._transitions = transitions.map((transition) => {\n\t\t\treturn new AnimTransition({\n\t\t\t\t...transition\n\t\t\t});\n\t\t});\n\t\tthis._activate = activate;\n\t}\n\tget animEvaluator() {\n\t\treturn this._animEvaluator;\n\t}\n\tset activeState(stateName) {\n\t\tthis._activeStateName = stateName;\n\t}\n\tget activeState() {\n\t\treturn this._findState(this._activeStateName);\n\t}\n\tget activeStateName() {\n\t\treturn this._activeStateName;\n\t}\n\tget activeStateAnimations() {\n\t\treturn this.activeState.animations;\n\t}\n\tset previousState(stateName) {\n\t\tthis._previousStateName = stateName;\n\t}\n\tget previousState() {\n\t\treturn this._findState(this._previousStateName);\n\t}\n\tget previousStateName() {\n\t\treturn this._previousStateName;\n\t}\n\tget playable() {\n\t\tlet playable = true;\n\t\tfor (let i2 = 0; i2 < this._stateNames.length; i2++) {\n\t\t\tif (!this._states[this._stateNames[i2]].playable) {\n\t\t\t\tplayable = false;\n\t\t\t}\n\t\t}\n\t\treturn playable;\n\t}\n\tset playing(value) {\n\t\tthis._playing = value;\n\t}\n\tget playing() {\n\t\treturn this._playing;\n\t}\n\tget activeStateProgress() {\n\t\treturn this._getActiveStateProgressForTime(this._timeInState);\n\t}\n\tget activeStateDuration() {\n\t\tif (this._activeStateDurationDirty) {\n\t\t\tlet maxDuration = 0;\n\t\t\tfor (let i2 = 0; i2 < this.activeStateAnimations.length; i2++) {\n\t\t\t\tconst activeClip = this._animEvaluator.findClip(this.activeStateAnimations[i2].name);\n\t\t\t\tif (activeClip) {\n\t\t\t\t\tmaxDuration = Math.max(maxDuration, activeClip.track.duration);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._activeStateDuration = maxDuration;\n\t\t\tthis._activeStateDurationDirty = false;\n\t\t}\n\t\treturn this._activeStateDuration;\n\t}\n\tset activeStateCurrentTime(time) {\n\t\tthis._timeInStateBefore = time;\n\t\tthis._timeInState = time;\n\t\tfor (let i2 = 0; i2 < this.activeStateAnimations.length; i2++) {\n\t\t\tconst clip = this.animEvaluator.findClip(this.activeStateAnimations[i2].name);\n\t\t\tif (clip) {\n\t\t\t\tclip.time = time;\n\t\t\t}\n\t\t}\n\t}\n\tget activeStateCurrentTime() {\n\t\treturn this._timeInState;\n\t}\n\tget transitioning() {\n\t\treturn this._isTransitioning;\n\t}\n\tget transitionProgress() {\n\t\treturn this._currTransitionTime / this._totalTransitionTime;\n\t}\n\tget states() {\n\t\treturn this._stateNames;\n\t}\n\tassignMask(mask) {\n\t\treturn this._animEvaluator.assignMask(mask);\n\t}\n\t_findState(stateName) {\n\t\treturn this._states[stateName];\n\t}\n\t_getActiveStateProgressForTime(time) {\n\t\tif (this.activeStateName === ANIM_STATE_START || this.activeStateName === ANIM_STATE_END || this.activeStateName === ANIM_STATE_ANY) {\n\t\t\treturn 1;\n\t\t}\n\t\tconst activeClip = this._animEvaluator.findClip(this.activeStateAnimations[0].name);\n\t\tif (activeClip) {\n\t\t\treturn activeClip.progressForTime(time);\n\t\t}\n\t\treturn null;\n\t}\n\t_findTransitionsFromState(stateName) {\n\t\tlet transitions = this._findTransitionsFromStateCache[stateName];\n\t\tif (!transitions) {\n\t\t\ttransitions = this._transitions.filter((transition) => {\n\t\t\t\treturn transition.from === stateName;\n\t\t\t});\n\t\t\tsortPriority(transitions);\n\t\t\tthis._findTransitionsFromStateCache[stateName] = transitions;\n\t\t}\n\t\treturn transitions;\n\t}\n\t_findTransitionsBetweenStates(sourceStateName, destinationStateName) {\n\t\tlet transitions = this._findTransitionsBetweenStatesCache[`${sourceStateName}->${destinationStateName}`];\n\t\tif (!transitions) {\n\t\t\ttransitions = this._transitions.filter((transition) => {\n\t\t\t\treturn transition.from === sourceStateName && transition.to === destinationStateName;\n\t\t\t});\n\t\t\tsortPriority(transitions);\n\t\t\tthis._findTransitionsBetweenStatesCache[`${sourceStateName}->${destinationStateName}`] = transitions;\n\t\t}\n\t\treturn transitions;\n\t}\n\t_transitionHasConditionsMet(transition) {\n\t\tconst conditions = transition.conditions;\n\t\tfor (let i2 = 0; i2 < conditions.length; i2++) {\n\t\t\tconst condition = conditions[i2];\n\t\t\tconst parameter = this._findParameter(condition.parameterName);\n\t\t\tswitch (condition.predicate) {\n\t\t\t\tcase ANIM_GREATER_THAN:\n\t\t\t\t\tif (!(parameter.value > condition.value)) return false;\n\t\t\t\t\tbreak;\n\t\t\t\tcase ANIM_LESS_THAN:\n\t\t\t\t\tif (!(parameter.value < condition.value)) return false;\n\t\t\t\t\tbreak;\n\t\t\t\tcase ANIM_GREATER_THAN_EQUAL_TO:\n\t\t\t\t\tif (!(parameter.value >= condition.value)) return false;\n\t\t\t\t\tbreak;\n\t\t\t\tcase ANIM_LESS_THAN_EQUAL_TO:\n\t\t\t\t\tif (!(parameter.value <= condition.value)) return false;\n\t\t\t\t\tbreak;\n\t\t\t\tcase ANIM_EQUAL_TO:\n\t\t\t\t\tif (!(parameter.value === condition.value)) return false;\n\t\t\t\t\tbreak;\n\t\t\t\tcase ANIM_NOT_EQUAL_TO:\n\t\t\t\t\tif (!(parameter.value !== condition.value)) return false;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n\t_findTransition(from, to) {\n\t\tlet transitions = [];\n\t\tif (from && to) {\n\t\t\ttransitions = transitions.concat(this._findTransitionsBetweenStates(from, to));\n\t\t} else {\n\t\t\tif (!this._isTransitioning) {\n\t\t\t\ttransitions = transitions.concat(this._findTransitionsFromState(this._activeStateName));\n\t\t\t\ttransitions = transitions.concat(this._findTransitionsFromState(ANIM_STATE_ANY));\n\t\t\t} else {\n\t\t\t\tswitch (this._transitionInterruptionSource) {\n\t\t\t\t\tcase ANIM_INTERRUPTION_PREV:\n\t\t\t\t\t\ttransitions = transitions.concat(this._findTransitionsFromState(this._previousStateName));\n\t\t\t\t\t\ttransitions = transitions.concat(this._findTransitionsFromState(ANIM_STATE_ANY));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase ANIM_INTERRUPTION_NEXT:\n\t\t\t\t\t\ttransitions = transitions.concat(this._findTransitionsFromState(this._activeStateName));\n\t\t\t\t\t\ttransitions = transitions.concat(this._findTransitionsFromState(ANIM_STATE_ANY));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase ANIM_INTERRUPTION_PREV_NEXT:\n\t\t\t\t\t\ttransitions = transitions.concat(this._findTransitionsFromState(this._previousStateName));\n\t\t\t\t\t\ttransitions = transitions.concat(this._findTransitionsFromState(this._activeStateName));\n\t\t\t\t\t\ttransitions = transitions.concat(this._findTransitionsFromState(ANIM_STATE_ANY));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase ANIM_INTERRUPTION_NEXT_PREV:\n\t\t\t\t\t\ttransitions = transitions.concat(this._findTransitionsFromState(this._activeStateName));\n\t\t\t\t\t\ttransitions = transitions.concat(this._findTransitionsFromState(this._previousStateName));\n\t\t\t\t\t\ttransitions = transitions.concat(this._findTransitionsFromState(ANIM_STATE_ANY));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase ANIM_INTERRUPTION_NONE:\n\t\t\t\t\tdefault:\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\ttransitions = transitions.filter((transition) => {\n\t\t\tif (transition.to === this.activeStateName) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif (transition.hasExitTime) {\n\t\t\t\tlet progressBefore = this._getActiveStateProgressForTime(this._timeInStateBefore);\n\t\t\t\tlet progress = this._getActiveStateProgressForTime(this._timeInState);\n\t\t\t\tif (transition.exitTime < 1 && this.activeState.loop) {\n\t\t\t\t\tprogressBefore -= Math.floor(progressBefore);\n\t\t\t\t\tprogress -= Math.floor(progress);\n\t\t\t\t}\n\t\t\t\tif (progress === progressBefore) {\n\t\t\t\t\tif (progress !== transition.exitTime) {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t} else if (!(transition.exitTime > progressBefore && transition.exitTime <= progress)) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn this._transitionHasConditionsMet(transition);\n\t\t});\n\t\tif (transitions.length > 0) {\n\t\t\tconst transition = transitions[0];\n\t\t\tif (transition.to === ANIM_STATE_END) {\n\t\t\t\tconst startTransition = this._findTransitionsFromState(ANIM_STATE_START)[0];\n\t\t\t\ttransition.to = startTransition.to;\n\t\t\t}\n\t\t\treturn transition;\n\t\t}\n\t\treturn null;\n\t}\n\tupdateStateFromTransition(transition) {\n\t\tlet state;\n\t\tlet animation;\n\t\tlet clip;\n\t\tthis.previousState = transition.from ? this.activeStateName : null;\n\t\tthis.activeState = transition.to;\n\t\tthis._activeStateDurationDirty = true;\n\t\tfor (let i2 = 0; i2 < transition.conditions.length; i2++) {\n\t\t\tconst condition = transition.conditions[i2];\n\t\t\tconst parameter = this._findParameter(condition.parameterName);\n\t\t\tif (parameter.type === ANIM_PARAMETER_TRIGGER) {\n\t\t\t\tthis._consumeTrigger(condition.parameterName);\n\t\t\t}\n\t\t}\n\t\tif (this.previousState) {\n\t\t\tif (!this._isTransitioning) {\n\t\t\t\tthis._transitionPreviousStates = [];\n\t\t\t}\n\t\t\tthis._transitionPreviousStates.push({\n\t\t\t\tname: this._previousStateName,\n\t\t\t\tweight: 1\n\t\t\t});\n\t\t\tconst interpolatedTime = Math.min(this._totalTransitionTime !== 0 ? this._currTransitionTime / this._totalTransitionTime : 1, 1);\n\t\t\tfor (let i2 = 0; i2 < this._transitionPreviousStates.length; i2++) {\n\t\t\t\tif (!this._isTransitioning) {\n\t\t\t\t\tthis._transitionPreviousStates[i2].weight = 1;\n\t\t\t\t} else if (i2 !== this._transitionPreviousStates.length - 1) {\n\t\t\t\t\tthis._transitionPreviousStates[i2].weight *= 1 - interpolatedTime;\n\t\t\t\t} else {\n\t\t\t\t\tthis._transitionPreviousStates[i2].weight = interpolatedTime;\n\t\t\t\t}\n\t\t\t\tstate = this._findState(this._transitionPreviousStates[i2].name);\n\t\t\t\tfor (let j = 0; j < state.animations.length; j++) {\n\t\t\t\t\tanimation = state.animations[j];\n\t\t\t\t\tclip = this._animEvaluator.findClip(`${animation.name}.previous.${i2}`);\n\t\t\t\t\tif (!clip) {\n\t\t\t\t\t\tclip = this._animEvaluator.findClip(animation.name);\n\t\t\t\t\t\tclip.name = `${animation.name}.previous.${i2}`;\n\t\t\t\t\t}\n\t\t\t\t\tif (i2 !== this._transitionPreviousStates.length - 1) {\n\t\t\t\t\t\tclip.pause();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis._isTransitioning = true;\n\t\tthis._totalTransitionTime = transition.time;\n\t\tthis._currTransitionTime = 0;\n\t\tthis._transitionInterruptionSource = transition.interruptionSource;\n\t\tconst activeState = this.activeState;\n\t\tconst hasTransitionOffset = transition.transitionOffset && transition.transitionOffset > 0 && transition.transitionOffset < 1;\n\t\tlet timeInState = 0;\n\t\tlet timeInStateBefore = 0;\n\t\tif (hasTransitionOffset) {\n\t\t\tconst offsetTime = activeState.timelineDuration * transition.transitionOffset;\n\t\t\ttimeInState = offsetTime;\n\t\t\ttimeInStateBefore = offsetTime;\n\t\t}\n\t\tthis._timeInState = timeInState;\n\t\tthis._timeInStateBefore = timeInStateBefore;\n\t\tfor (let i2 = 0; i2 < activeState.animations.length; i2++) {\n\t\t\tclip = this._animEvaluator.findClip(activeState.animations[i2].name);\n\t\t\tif (!clip) {\n\t\t\t\tconst speed = Number.isFinite(activeState.animations[i2].speed) ? activeState.animations[i2].speed : activeState.speed;\n\t\t\t\tclip = new AnimClip(activeState.animations[i2].animTrack, this._timeInState, speed, true, activeState.loop, this._eventHandler);\n\t\t\t\tclip.name = activeState.animations[i2].name;\n\t\t\t\tthis._animEvaluator.addClip(clip);\n\t\t\t} else {\n\t\t\t\tclip.reset();\n\t\t\t}\n\t\t\tif (transition.time > 0) {\n\t\t\t\tclip.blendWeight = 0;\n\t\t\t} else {\n\t\t\t\tclip.blendWeight = activeState.animations[i2].normalizedWeight;\n\t\t\t}\n\t\t\tclip.play();\n\t\t\tif (hasTransitionOffset) {\n\t\t\t\tclip.time = activeState.timelineDuration * transition.transitionOffset;\n\t\t\t} else {\n\t\t\t\tconst startTime = activeState.speed >= 0 ? 0 : this.activeStateDuration;\n\t\t\t\tclip.time = startTime;\n\t\t\t}\n\t\t}\n\t}\n\t_transitionToState(newStateName) {\n\t\tif (!this._findState(newStateName)) {\n\t\t\treturn;\n\t\t}\n\t\tlet transition = this._findTransition(this._activeStateName, newStateName);\n\t\tif (!transition) {\n\t\t\tthis._animEvaluator.removeClips();\n\t\t\ttransition = new AnimTransition({ from: null, to: newStateName });\n\t\t}\n\t\tthis.updateStateFromTransition(transition);\n\t}\n\tassignAnimation(pathString, animTrack, speed, loop) {\n\t\tconst path2 = pathString.split(\".\");\n\t\tlet state = this._findState(path2[0]);\n\t\tif (!state) {\n\t\t\tstate = new AnimState(this, path2[0], speed);\n\t\t\tthis._states[path2[0]] = state;\n\t\t\tthis._stateNames.push(path2[0]);\n\t\t}\n\t\tstate.addAnimation(path2, animTrack);\n\t\tthis._animEvaluator.updateClipTrack(state.name, animTrack);\n\t\tif (speed !== void 0) {\n\t\t\tstate.speed = speed;\n\t\t}\n\t\tif (loop !== void 0) {\n\t\t\tstate.loop = loop;\n\t\t}\n\t\tif (!this._playing && this._activate && this.playable) {\n\t\t\tthis.play();\n\t\t}\n\t\tthis._activeStateDurationDirty = true;\n\t}\n\tremoveNodeAnimations(nodeName) {\n\t\tif (ANIM_CONTROL_STATES.indexOf(nodeName) !== -1) {\n\t\t\treturn false;\n\t\t}\n\t\tconst state = this._findState(nodeName);\n\t\tif (!state) {\n\t\t\treturn false;\n\t\t}\n\t\tstate.animations = [];\n\t\treturn true;\n\t}\n\tplay(stateName) {\n\t\tif (stateName) {\n\t\t\tthis._transitionToState(stateName);\n\t\t}\n\t\tthis._playing = true;\n\t}\n\tpause() {\n\t\tthis._playing = false;\n\t}\n\treset() {\n\t\tthis._previousStateName = null;\n\t\tthis._activeStateName = ANIM_STATE_START;\n\t\tthis._playing = false;\n\t\tthis._currTransitionTime = 1;\n\t\tthis._totalTransitionTime = 1;\n\t\tthis._isTransitioning = false;\n\t\tthis._timeInState = 0;\n\t\tthis._timeInStateBefore = 0;\n\t\tthis._animEvaluator.removeClips();\n\t}\n\trebind() {\n\t\tthis._animEvaluator.rebind();\n\t}\n\tupdate(dt) {\n\t\tif (!this._playing) {\n\t\t\treturn;\n\t\t}\n\t\tlet state;\n\t\tlet animation;\n\t\tlet clip;\n\t\tif (this.activeState.loop || this._timeInState < this.activeStateDuration) {\n\t\t\tthis._timeInStateBefore = this._timeInState;\n\t\t\tthis._timeInState += dt * this.activeState.speed;\n\t\t\tif (!this.activeState.loop && this._timeInState > this.activeStateDuration) {\n\t\t\t\tthis._timeInState = this.activeStateDuration;\n\t\t\t\tdt = this.activeStateDuration - this._timeInStateBefore;\n\t\t\t}\n\t\t}\n\t\tconst transition = this._findTransition(this._activeStateName);\n\t\tif (transition) {\n\t\t\tthis.updateStateFromTransition(transition);\n\t\t}\n\t\tif (this._isTransitioning) {\n\t\t\tthis._currTransitionTime += dt;\n\t\t\tif (this._currTransitionTime <= this._totalTransitionTime) {\n\t\t\t\tconst interpolatedTime = this._totalTransitionTime !== 0 ? this._currTransitionTime / this._totalTransitionTime : 1;\n\t\t\t\tfor (let i2 = 0; i2 < this._transitionPreviousStates.length; i2++) {\n\t\t\t\t\tstate = this._findState(this._transitionPreviousStates[i2].name);\n\t\t\t\t\tconst stateWeight = this._transitionPreviousStates[i2].weight;\n\t\t\t\t\tfor (let j = 0; j < state.animations.length; j++) {\n\t\t\t\t\t\tanimation = state.animations[j];\n\t\t\t\t\t\tclip = this._animEvaluator.findClip(`${animation.name}.previous.${i2}`);\n\t\t\t\t\t\tif (clip) {\n\t\t\t\t\t\t\tclip.blendWeight = (1 - interpolatedTime) * animation.normalizedWeight * stateWeight;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstate = this.activeState;\n\t\t\t\tfor (let i2 = 0; i2 < state.animations.length; i2++) {\n\t\t\t\t\tanimation = state.animations[i2];\n\t\t\t\t\tthis._animEvaluator.findClip(animation.name).blendWeight = interpolatedTime * animation.normalizedWeight;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis._isTransitioning = false;\n\t\t\t\tconst activeClips = this.activeStateAnimations.length;\n\t\t\t\tconst totalClips = this._animEvaluator.clips.length;\n\t\t\t\tfor (let i2 = 0; i2 < totalClips - activeClips; i2++) {\n\t\t\t\t\tthis._animEvaluator.removeClip(0);\n\t\t\t\t}\n\t\t\t\tthis._transitionPreviousStates = [];\n\t\t\t\tstate = this.activeState;\n\t\t\t\tfor (let i2 = 0; i2 < state.animations.length; i2++) {\n\t\t\t\t\tanimation = state.animations[i2];\n\t\t\t\t\tclip = this._animEvaluator.findClip(animation.name);\n\t\t\t\t\tif (clip) {\n\t\t\t\t\t\tclip.blendWeight = animation.normalizedWeight;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif (this.activeState._blendTree.constructor !== AnimNode) {\n\t\t\t\tstate = this.activeState;\n\t\t\t\tfor (let i2 = 0; i2 < state.animations.length; i2++) {\n\t\t\t\t\tanimation = state.animations[i2];\n\t\t\t\t\tclip = this._animEvaluator.findClip(animation.name);\n\t\t\t\t\tif (clip) {\n\t\t\t\t\t\tclip.blendWeight = animation.normalizedWeight;\n\t\t\t\t\t\tif (animation.parent.syncAnimations) {\n\t\t\t\t\t\t\tclip.speed = animation.speed;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis._animEvaluator.update(dt, this.activeState.hasAnimations);\n\t}\n\tfindParameter = (name) => {\n\t\treturn this._findParameter(name);\n\t};\n};\n\nvar v2 = new Vec2();\nvar v3 = new Vec3();\nvar v4 = new Vec4();\nvar c = new Color();\nvar q2 = new Quat();\nvar AnimComponentBinder = class _AnimComponentBinder extends DefaultAnimBinder {\n\tconstructor(animComponent, graph, layerName, mask, layerIndex) {\n\t\tsuper(graph);\n\t\tthis.animComponent = animComponent;\n\t\tthis._mask = mask;\n\t\tthis.layerName = layerName;\n\t\tthis.layerIndex = layerIndex;\n\t}\n\tstatic _packFloat(values) {\n\t\treturn values[0];\n\t}\n\tstatic _packBoolean(values) {\n\t\treturn !!values[0];\n\t}\n\tstatic _packVec2(values) {\n\t\tv2.x = values[0];\n\t\tv2.y = values[1];\n\t\treturn v2;\n\t}\n\tstatic _packVec3(values) {\n\t\tv3.x = values[0];\n\t\tv3.y = values[1];\n\t\tv3.z = values[2];\n\t\treturn v3;\n\t}\n\tstatic _packVec4(values) {\n\t\tv4.x = values[0];\n\t\tv4.y = values[1];\n\t\tv4.z = values[2];\n\t\tv4.w = values[3];\n\t\treturn v4;\n\t}\n\tstatic _packColor(values) {\n\t\tc.r = values[0];\n\t\tc.g = values[1];\n\t\tc.b = values[2];\n\t\tc.a = values[3];\n\t\treturn c;\n\t}\n\tstatic _packQuat(values) {\n\t\tq2.x = values[0];\n\t\tq2.y = values[1];\n\t\tq2.z = values[2];\n\t\tq2.w = values[3];\n\t\treturn q2;\n\t}\n\tresolve(path2) {\n\t\tconst encodedPath = AnimBinder.encode(path2.entityPath, path2.component, path2.propertyPath);\n\t\tlet target2 = this.targetCache[encodedPath];\n\t\tif (target2) return target2;\n\t\tlet entity;\n\t\tlet propertyComponent;\n\t\tlet targetPath;\n\t\tswitch (path2.component) {\n\t\t\tcase \"entity\":\n\t\t\t\tentity = this._getEntityFromHierarchy(path2.entityPath);\n\t\t\t\tif (!entity) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\ttargetPath = AnimBinder.encode(\n\t\t\t\t\tentity.path,\n\t\t\t\t\t\"entity\",\n\t\t\t\t\tpath2.propertyPath\n\t\t\t\t);\n\t\t\t\tpropertyComponent = entity;\n\t\t\t\tbreak;\n\t\t\tcase \"graph\":\n\t\t\t\tpropertyComponent = this.findNode(path2);\n\t\t\t\tif (!propertyComponent) return null;\n\t\t\t\ttargetPath = AnimBinder.encode(\n\t\t\t\t\tpropertyComponent.path,\n\t\t\t\t\t\"graph\",\n\t\t\t\t\tpath2.propertyPath\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tentity = this._getEntityFromHierarchy(path2.entityPath);\n\t\t\t\tif (!entity) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\tpropertyComponent = entity.findComponent(path2.component);\n\t\t\t\tif (!propertyComponent) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\ttargetPath = AnimBinder.encode(\n\t\t\t\t\tentity.path,\n\t\t\t\t\tpath2.component,\n\t\t\t\t\tpath2.propertyPath\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t}\n\t\ttarget2 = this._createAnimTargetForProperty(propertyComponent, path2.propertyPath, targetPath);\n\t\tthis.targetCache[encodedPath] = target2;\n\t\treturn target2;\n\t}\n\tupdate(deltaTime) {\n\t\tconst activeNodes = this.activeNodes;\n\t\tif (activeNodes) {\n\t\t\tfor (let i2 = 0; i2 < activeNodes.length; i2++) {\n\t\t\t\tactiveNodes[i2]._dirtifyLocal();\n\t\t\t}\n\t\t}\n\t}\n\t_getEntityFromHierarchy(entityHierarchy) {\n\t\tconst currEntity = this.animComponent.entity;\n\t\tif (entityHierarchy.length === 1) {\n\t\t\treturn currEntity;\n\t\t}\n\t\tif (currEntity.name !== entityHierarchy[0]) {\n\t\t\treturn null;\n\t\t}\n\t\treturn currEntity._parent.findByPath(entityHierarchy);\n\t}\n\t// resolve an object path\n\t_resolvePath(object, path2, resolveLeaf) {\n\t\tconst steps = path2.length - (resolveLeaf ? 0 : 1);\n\t\tfor (let i2 = 0; i2 < steps; i2++) {\n\t\t\tobject = object[path2[i2]];\n\t\t}\n\t\treturn object;\n\t}\n\t// construct a setter function for the property located at 'path' from the base object. packFunc\n\t// is a function which takes the animation values array and packages them for the target property\n\t// in the correct format (i.e. vec2, quat, color etc).\n\t_setter(object, path2, packFunc) {\n\t\tconst obj = this._resolvePath(object, path2);\n\t\tconst key = path2[path2.length - 1];\n\t\tconst setterFuncName = `set${key.substring(0, 1).toUpperCase()}${key.substring(1)}`;\n\t\tif (obj[setterFuncName]) {\n\t\t\tconst getterFunc = obj[`get${key.substring(0, 1).toUpperCase()}${key.substring(1)}`].bind(obj);\n\t\t\tlet baseValues = getterFunc();\n\t\t\tbaseValues = [baseValues.x, baseValues.y, baseValues.z, baseValues.w];\n\t\t\tconst setterFunc = obj[setterFuncName].bind(obj);\n\t\t\treturn {\n\t\t\t\tset: (values) => {\n\t\t\t\t\tsetterFunc(packFunc(values));\n\t\t\t\t},\n\t\t\t\tget: () => baseValues\n\t\t\t};\n\t\t}\n\t\tconst prop = obj[key];\n\t\tif (typeof prop === \"object\" && prop.hasOwnProperty(\"copy\")) {\n\t\t\treturn function(values) {\n\t\t\t\tprop.copy(packFunc(values));\n\t\t\t};\n\t\t}\n\t\tif ([Vec2, Vec3, Vec4, Color, Quat].indexOf(obj.constructor) !== -1 && path2.length > 1) {\n\t\t\tconst parent = path2.length > 2 ? this._resolvePath(object, path2.slice(0, -1)) : object;\n\t\t\tconst objKey = path2[path2.length - 2];\n\t\t\treturn function(values) {\n\t\t\t\tobj[key] = packFunc(values);\n\t\t\t\tparent[objKey] = obj;\n\t\t\t};\n\t\t}\n\t\treturn function(values) {\n\t\t\tobj[key] = packFunc(values);\n\t\t};\n\t}\n\t_createAnimTargetForProperty(propertyComponent, propertyHierarchy, targetPath) {\n\t\tif (this.handlers && propertyHierarchy[0].startsWith(\"weight.\")) {\n\t\t\treturn this.handlers.weight(propertyComponent, propertyHierarchy[0].replace(\"weight.\", \"\"));\n\t\t} else if (this.handlers && propertyHierarchy[0] === \"material\" && propertyHierarchy.length === 2) {\n\t\t\tconst materialPropertyName = propertyHierarchy[1];\n\t\t\tif (materialPropertyName.endsWith(\"Map\")) {\n\t\t\t\treturn this.handlers.materialTexture(propertyComponent, materialPropertyName);\n\t\t\t}\n\t\t}\n\t\tconst property = this._resolvePath(propertyComponent, propertyHierarchy, true);\n\t\tif (typeof property === \"undefined\") {\n\t\t\treturn null;\n\t\t}\n\t\tlet setter;\n\t\tlet animDataType;\n\t\tlet animDataComponents;\n\t\tif (typeof property === \"number\") {\n\t\t\tsetter = this._setter(propertyComponent, propertyHierarchy, _AnimComponentBinder._packFloat);\n\t\t\tanimDataType = \"vector\";\n\t\t\tanimDataComponents = 1;\n\t\t} else if (typeof property === \"boolean\") {\n\t\t\tsetter = this._setter(propertyComponent, propertyHierarchy, _AnimComponentBinder._packBoolean);\n\t\t\tanimDataType = \"vector\";\n\t\t\tanimDataComponents = 1;\n\t\t} else if (typeof property === \"object\") {\n\t\t\tswitch (property.constructor) {\n\t\t\t\tcase Vec2:\n\t\t\t\t\tsetter = this._setter(propertyComponent, propertyHierarchy, _AnimComponentBinder._packVec2);\n\t\t\t\t\tanimDataType = \"vector\";\n\t\t\t\t\tanimDataComponents = 2;\n\t\t\t\t\tbreak;\n\t\t\t\tcase Vec3:\n\t\t\t\t\tsetter = this._setter(propertyComponent, propertyHierarchy, _AnimComponentBinder._packVec3);\n\t\t\t\t\tanimDataType = \"vector\";\n\t\t\t\t\tanimDataComponents = 3;\n\t\t\t\t\tbreak;\n\t\t\t\tcase Vec4:\n\t\t\t\t\tsetter = this._setter(propertyComponent, propertyHierarchy, _AnimComponentBinder._packVec4);\n\t\t\t\t\tanimDataType = \"vector\";\n\t\t\t\t\tanimDataComponents = 4;\n\t\t\t\t\tbreak;\n\t\t\t\tcase Color:\n\t\t\t\t\tsetter = this._setter(propertyComponent, propertyHierarchy, _AnimComponentBinder._packColor);\n\t\t\t\t\tanimDataType = \"vector\";\n\t\t\t\t\tanimDataComponents = 4;\n\t\t\t\t\tbreak;\n\t\t\t\tcase Quat:\n\t\t\t\t\tsetter = this._setter(propertyComponent, propertyHierarchy, _AnimComponentBinder._packQuat);\n\t\t\t\t\tanimDataType = \"quaternion\";\n\t\t\t\t\tanimDataComponents = 4;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\t\tif (propertyHierarchy.indexOf(\"material\") !== -1) {\n\t\t\treturn new AnimTarget((values) => {\n\t\t\t\tsetter(values);\n\t\t\t\tpropertyComponent.material.update();\n\t\t\t}, animDataType, animDataComponents, targetPath);\n\t\t}\n\t\treturn new AnimTarget(setter, animDataType, animDataComponents, targetPath);\n\t}\n\trebind() {\n\t\tthis.targetCache = {};\n\t\tif (this.animComponent.rootBone) {\n\t\t\tthis.graph = this.animComponent.rootBone;\n\t\t} else {\n\t\t\tthis.graph = this.animComponent.entity;\n\t\t}\n\t\tconst nodes = {};\n\t\tconst flatten = function(node) {\n\t\t\tnodes[node.name] = node;\n\t\t\tfor (let i2 = 0; i2 < node.children.length; ++i2) {\n\t\t\t\tflatten(node.children[i2]);\n\t\t\t}\n\t\t};\n\t\tflatten(this.graph);\n\t\tthis.nodes = nodes;\n\t}\n};\n\nvar AnimComponentLayer = class {\n\t_name;\n\t_controller;\n\t_component;\n\t_weight;\n\t_blendType;\n\t_mask = null;\n\t_blendTime = 0;\n\t_blendTimeElapsed = 0;\n\t_startingWeight = 0;\n\t_targetWeight = 0;\n\tconstructor(name, controller, component, weight = 1, blendType = ANIM_LAYER_OVERWRITE) {\n\t\tthis._name = name;\n\t\tthis._controller = controller;\n\t\tthis._component = component;\n\t\tthis._weight = weight;\n\t\tthis._blendType = blendType;\n\t}\n\tget name() {\n\t\treturn this._name;\n\t}\n\tset playing(value) {\n\t\tthis._controller.playing = value;\n\t}\n\tget playing() {\n\t\treturn this._controller.playing;\n\t}\n\tget playable() {\n\t\treturn this._controller.playable;\n\t}\n\tget activeState() {\n\t\treturn this._controller.activeStateName;\n\t}\n\tget previousState() {\n\t\treturn this._controller.previousStateName;\n\t}\n\tget activeStateProgress() {\n\t\treturn this._controller.activeStateProgress;\n\t}\n\tget activeStateDuration() {\n\t\treturn this._controller.activeStateDuration;\n\t}\n\tset activeStateCurrentTime(time) {\n\t\tconst controller = this._controller;\n\t\tconst layerPlaying = controller.playing;\n\t\tcontroller.playing = true;\n\t\tcontroller.activeStateCurrentTime = time;\n\t\tif (!layerPlaying) {\n\t\t\tcontroller.update(0);\n\t\t}\n\t\tcontroller.playing = layerPlaying;\n\t}\n\tget activeStateCurrentTime() {\n\t\treturn this._controller.activeStateCurrentTime;\n\t}\n\tget transitioning() {\n\t\treturn this._controller.transitioning;\n\t}\n\tget transitionProgress() {\n\t\tif (this.transitioning) {\n\t\t\treturn this._controller.transitionProgress;\n\t\t}\n\t\treturn null;\n\t}\n\tget states() {\n\t\treturn this._controller.states;\n\t}\n\tset weight(value) {\n\t\tthis._weight = value;\n\t\tthis._component.dirtifyTargets();\n\t}\n\tget weight() {\n\t\treturn this._weight;\n\t}\n\tset blendType(value) {\n\t\tif (value !== this._blendType) {\n\t\t\tthis._blendType = value;\n\t\t\tif (this._controller.normalizeWeights) {\n\t\t\t\tthis._component.rebind();\n\t\t\t}\n\t\t}\n\t}\n\tget blendType() {\n\t\treturn this._blendType;\n\t}\n\tset mask(value) {\n\t\tif (this._controller.assignMask(value)) {\n\t\t\tthis._component.rebind();\n\t\t}\n\t\tthis._mask = value;\n\t}\n\tget mask() {\n\t\treturn this._mask;\n\t}\n\tplay(name) {\n\t\tthis._controller.play(name);\n\t}\n\tpause() {\n\t\tthis._controller.pause();\n\t}\n\treset() {\n\t\tthis._controller.reset();\n\t}\n\trebind() {\n\t\tthis._controller.rebind();\n\t}\n\tupdate(dt) {\n\t\tif (this._blendTime) {\n\t\t\tif (this._blendTimeElapsed < this._blendTime) {\n\t\t\t\tthis.weight = math.lerp(this._startingWeight, this._targetWeight, this._blendTimeElapsed / this._blendTime);\n\t\t\t\tthis._blendTimeElapsed += dt;\n\t\t\t} else {\n\t\t\t\tthis.weight = this._targetWeight;\n\t\t\t\tthis._blendTime = 0;\n\t\t\t\tthis._blendTimeElapsed = 0;\n\t\t\t\tthis._startingWeight = 0;\n\t\t\t\tthis._targetWeight = 0;\n\t\t\t}\n\t\t}\n\t\tthis._controller.update(dt);\n\t}\n\tblendToWeight(weight, time) {\n\t\tthis._startingWeight = this.weight;\n\t\tthis._targetWeight = weight;\n\t\tthis._blendTime = Math.max(0, time);\n\t\tthis._blendTimeElapsed = 0;\n\t}\n\tassignAnimation(nodePath, animTrack, speed, loop) {\n\t\tif (!(animTrack instanceof AnimTrack)) {\n\t\t\treturn;\n\t\t}\n\t\tthis._controller.assignAnimation(nodePath, animTrack, speed, loop);\n\t\tif (this._controller._transitions.length === 0) {\n\t\t\tthis._controller._transitions.push(new AnimTransition({\n\t\t\t\tfrom: \"START\",\n\t\t\t\tto: nodePath\n\t\t\t}));\n\t\t}\n\t\tif (this._component.activate && this._component.playable) {\n\t\t\tthis._component.playing = true;\n\t\t}\n\t}\n\tremoveNodeAnimations(nodeName) {\n\t\tif (this._controller.removeNodeAnimations(nodeName)) {\n\t\t\tthis._component.playing = false;\n\t\t}\n\t}\n\tgetAnimationAsset(stateName) {\n\t\treturn this._component.animationAssets[`${this.name}:${stateName}`];\n\t}\n\ttransition(to, time = 0, transitionOffset = null) {\n\t\tthis._controller.updateStateFromTransition(new AnimTransition({\n\t\t\tfrom: this._controller.activeStateName,\n\t\t\tto,\n\t\t\ttime,\n\t\t\ttransitionOffset\n\t\t}));\n\t}\n};\n\nvar AnimStateGraph = class {\n\tconstructor(data2) {\n\t\tthis._layers = [];\n\t\tthis._parameters = {};\n\t\tif (!Array.isArray(data2.layers)) {\n\t\t\tfor (const layerId in data2.layers) {\n\t\t\t\tconst dataLayer = data2.layers[layerId];\n\t\t\t\tconst layer = {\n\t\t\t\t\tname: dataLayer.name,\n\t\t\t\t\tblendType: dataLayer.blendType,\n\t\t\t\t\tweight: dataLayer.weight,\n\t\t\t\t\tstates: [],\n\t\t\t\t\ttransitions: []\n\t\t\t\t};\n\t\t\t\tfor (let i2 = 0; i2 < dataLayer.states.length; i2++) {\n\t\t\t\t\tlayer.states.push(data2.states[dataLayer.states[i2]]);\n\t\t\t\t}\n\t\t\t\tfor (let i2 = 0; i2 < dataLayer.transitions.length; i2++) {\n\t\t\t\t\tconst dataLayerTransition = data2.transitions[dataLayer.transitions[i2]];\n\t\t\t\t\tif (dataLayerTransition.conditions && !Array.isArray(dataLayerTransition.conditions)) {\n\t\t\t\t\t\tconst conditionKeys = Object.keys(dataLayerTransition.conditions);\n\t\t\t\t\t\tconst conditions = [];\n\t\t\t\t\t\tfor (let j = 0; j < conditionKeys.length; j++) {\n\t\t\t\t\t\t\tconst condition = dataLayerTransition.conditions[conditionKeys[j]];\n\t\t\t\t\t\t\tif (condition.parameterName) {\n\t\t\t\t\t\t\t\tconditions.push(condition);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdataLayerTransition.conditions = conditions;\n\t\t\t\t\t}\n\t\t\t\t\tif (Number.isInteger(dataLayerTransition.from)) {\n\t\t\t\t\t\tdataLayerTransition.from = data2.states[dataLayerTransition.from].name;\n\t\t\t\t\t}\n\t\t\t\t\tif (Number.isInteger(dataLayerTransition.to)) {\n\t\t\t\t\t\tdataLayerTransition.to = data2.states[dataLayerTransition.to].name;\n\t\t\t\t\t}\n\t\t\t\t\tlayer.transitions.push(dataLayerTransition);\n\t\t\t\t}\n\t\t\t\tthis._layers.push(layer);\n\t\t\t}\n\t\t} else {\n\t\t\tthis._layers = data2.layers;\n\t\t}\n\t\tfor (const paramId in data2.parameters) {\n\t\t\tconst param = data2.parameters[paramId];\n\t\t\tthis._parameters[param.name] = { type: param.type, value: param.value };\n\t\t}\n\t}\n\tget parameters() {\n\t\treturn Object.assign({}, this._parameters);\n\t}\n\tget layers() {\n\t\treturn this._layers;\n\t}\n};\n\nvar AnimComponent = class extends Component {\n\t_stateGraphAsset = null;\n\t_animationAssets = {};\n\t_speed = 1;\n\t_activate = true;\n\t_playing = false;\n\t_rootBone = null;\n\t_stateGraph = null;\n\t_layers = [];\n\t_layerIndices = {};\n\t_parameters = {};\n\t_targets = {};\n\t_consumedTriggers = /* @__PURE__ */ new Set();\n\t_normalizeWeights = false;\n\tset stateGraphAsset(value) {\n\t\tif (value === null) {\n\t\t\tthis.removeStateGraph();\n\t\t\treturn;\n\t\t}\n\t\tif (this._stateGraphAsset) {\n\t\t\tconst stateGraphAsset = this.system.app.assets.get(this._stateGraphAsset);\n\t\t\tstateGraphAsset.off(\"change\", this._onStateGraphAssetChangeEvent, this);\n\t\t}\n\t\tlet _id;\n\t\tlet _asset;\n\t\tif (value instanceof Asset) {\n\t\t\t_id = value.id;\n\t\t\t_asset = this.system.app.assets.get(_id);\n\t\t\tif (!_asset) {\n\t\t\t\tthis.system.app.assets.add(value);\n\t\t\t\t_asset = this.system.app.assets.get(_id);\n\t\t\t}\n\t\t} else {\n\t\t\t_id = value;\n\t\t\t_asset = this.system.app.assets.get(_id);\n\t\t}\n\t\tif (!_asset || this._stateGraphAsset === _id) {\n\t\t\treturn;\n\t\t}\n\t\tif (_asset.resource) {\n\t\t\tthis._stateGraph = _asset.resource;\n\t\t\tthis.loadStateGraph(this._stateGraph);\n\t\t\t_asset.on(\"change\", this._onStateGraphAssetChangeEvent, this);\n\t\t} else {\n\t\t\t_asset.once(\"load\", (asset) => {\n\t\t\t\tthis._stateGraph = asset.resource;\n\t\t\t\tthis.loadStateGraph(this._stateGraph);\n\t\t\t});\n\t\t\t_asset.on(\"change\", this._onStateGraphAssetChangeEvent, this);\n\t\t\tthis.system.app.assets.load(_asset);\n\t\t}\n\t\tthis._stateGraphAsset = _id;\n\t}\n\tget stateGraphAsset() {\n\t\treturn this._stateGraphAsset;\n\t}\n\tset normalizeWeights(value) {\n\t\tthis._normalizeWeights = value;\n\t\tthis.unbind();\n\t}\n\tget normalizeWeights() {\n\t\treturn this._normalizeWeights;\n\t}\n\tset animationAssets(value) {\n\t\tthis._animationAssets = value;\n\t\tthis.loadAnimationAssets();\n\t}\n\tget animationAssets() {\n\t\treturn this._animationAssets;\n\t}\n\tset speed(value) {\n\t\tthis._speed = value;\n\t}\n\tget speed() {\n\t\treturn this._speed;\n\t}\n\tset activate(value) {\n\t\tthis._activate = value;\n\t}\n\tget activate() {\n\t\treturn this._activate;\n\t}\n\tset playing(value) {\n\t\tthis._playing = value;\n\t}\n\tget playing() {\n\t\treturn this._playing;\n\t}\n\tset rootBone(value) {\n\t\tif (typeof value === \"string\") {\n\t\t\tconst entity = this.entity.root.findByGuid(value);\n\t\t\tthis._rootBone = entity;\n\t\t} else if (value instanceof Entity) {\n\t\t\tthis._rootBone = value;\n\t\t} else {\n\t\t\tthis._rootBone = null;\n\t\t}\n\t\tthis.rebind();\n\t}\n\tget rootBone() {\n\t\treturn this._rootBone;\n\t}\n\tset stateGraph(value) {\n\t\tthis._stateGraph = value;\n\t}\n\tget stateGraph() {\n\t\treturn this._stateGraph;\n\t}\n\tget layers() {\n\t\treturn this._layers;\n\t}\n\tset layerIndices(value) {\n\t\tthis._layerIndices = value;\n\t}\n\tget layerIndices() {\n\t\treturn this._layerIndices;\n\t}\n\tset parameters(value) {\n\t\tthis._parameters = value;\n\t}\n\tget parameters() {\n\t\treturn this._parameters;\n\t}\n\tset targets(value) {\n\t\tthis._targets = value;\n\t}\n\tget targets() {\n\t\treturn this._targets;\n\t}\n\tget playable() {\n\t\tfor (let i2 = 0; i2 < this._layers.length; i2++) {\n\t\t\tif (!this._layers[i2].playable) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n\tget baseLayer() {\n\t\tif (this._layers.length > 0) {\n\t\t\treturn this._layers[0];\n\t\t}\n\t\treturn null;\n\t}\n\t_onStateGraphAssetChangeEvent(asset) {\n\t\tconst prevAnimationAssets = this.animationAssets;\n\t\tconst prevMasks = this.layers.map((layer) => layer.mask);\n\t\tthis.removeStateGraph();\n\t\tthis._stateGraph = new AnimStateGraph(asset._data);\n\t\tthis.loadStateGraph(this._stateGraph);\n\t\tthis.animationAssets = prevAnimationAssets;\n\t\tthis.loadAnimationAssets();\n\t\tthis.layers.forEach((layer, i2) => {\n\t\t\tlayer.mask = prevMasks[i2];\n\t\t});\n\t\tthis.rebind();\n\t}\n\tdirtifyTargets() {\n\t\tconst targets = Object.values(this._targets);\n\t\tfor (let i2 = 0; i2 < targets.length; i2++) {\n\t\t\ttargets[i2].dirty = true;\n\t\t}\n\t}\n\t_addLayer({ name, states, transitions, weight, mask, blendType }) {\n\t\tlet graph;\n\t\tif (this.rootBone) {\n\t\t\tgraph = this.rootBone;\n\t\t} else {\n\t\t\tgraph = this.entity;\n\t\t}\n\t\tconst layerIndex = this._layers.length;\n\t\tconst animBinder = new AnimComponentBinder(this, graph, name, mask, layerIndex);\n\t\tconst animEvaluator = new AnimEvaluator(animBinder);\n\t\tconst controller = new AnimController(\n\t\t\tanimEvaluator,\n\t\t\tstates,\n\t\t\ttransitions,\n\t\t\tthis._activate,\n\t\t\tthis,\n\t\t\tthis.findParameter,\n\t\t\tthis.consumeTrigger\n\t\t);\n\t\tthis._layers.push(new AnimComponentLayer(name, controller, this, weight, blendType));\n\t\tthis._layerIndices[name] = layerIndex;\n\t\treturn this._layers[layerIndex];\n\t}\n\taddLayer(name, weight, mask, blendType) {\n\t\tconst layer = this.findAnimationLayer(name);\n\t\tif (layer) return layer;\n\t\tconst states = [\n\t\t\t{\n\t\t\t\t\"name\": \"START\",\n\t\t\t\t\"speed\": 1\n\t\t\t}\n\t\t];\n\t\tconst transitions = [];\n\t\treturn this._addLayer({ name, states, transitions, weight, mask, blendType });\n\t}\n\t_assignParameters(stateGraph) {\n\t\tthis._parameters = {};\n\t\tconst paramKeys = Object.keys(stateGraph.parameters);\n\t\tfor (let i2 = 0; i2 < paramKeys.length; i2++) {\n\t\t\tconst paramKey = paramKeys[i2];\n\t\t\tthis._parameters[paramKey] = {\n\t\t\t\ttype: stateGraph.parameters[paramKey].type,\n\t\t\t\tvalue: stateGraph.parameters[paramKey].value\n\t\t\t};\n\t\t}\n\t}\n\tloadStateGraph(stateGraph) {\n\t\tthis._stateGraph = stateGraph;\n\t\tthis._assignParameters(stateGraph);\n\t\tthis._layers = [];\n\t\tlet containsBlendTree = false;\n\t\tfor (let i2 = 0; i2 < stateGraph.layers.length; i2++) {\n\t\t\tconst layer = stateGraph.layers[i2];\n\t\t\tthis._addLayer({ ...layer });\n\t\t\tif (layer.states.some((state) => state.blendTree)) {\n\t\t\t\tcontainsBlendTree = true;\n\t\t\t}\n\t\t}\n\t\tif (!containsBlendTree) {\n\t\t\tthis.setupAnimationAssets();\n\t\t}\n\t}\n\tsetupAnimationAssets() {\n\t\tfor (let i2 = 0; i2 < this._layers.length; i2++) {\n\t\t\tconst layer = this._layers[i2];\n\t\t\tconst layerName = layer.name;\n\t\t\tfor (let j = 0; j < layer.states.length; j++) {\n\t\t\t\tconst stateName = layer.states[j];\n\t\t\t\tif (ANIM_CONTROL_STATES.indexOf(stateName) === -1) {\n\t\t\t\t\tconst stateKey = `${layerName}:${stateName}`;\n\t\t\t\t\tif (!this._animationAssets[stateKey]) {\n\t\t\t\t\t\tthis._animationAssets[stateKey] = {\n\t\t\t\t\t\t\tasset: null\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis.loadAnimationAssets();\n\t}\n\tloadAnimationAssets() {\n\t\tfor (let i2 = 0; i2 < this._layers.length; i2++) {\n\t\t\tconst layer = this._layers[i2];\n\t\t\tfor (let j = 0; j < layer.states.length; j++) {\n\t\t\t\tconst stateName = layer.states[j];\n\t\t\t\tif (ANIM_CONTROL_STATES.indexOf(stateName) !== -1) continue;\n\t\t\t\tconst animationAsset = this._animationAssets[`${layer.name}:${stateName}`];\n\t\t\t\tif (!animationAsset || !animationAsset.asset) {\n\t\t\t\t\tthis.findAnimationLayer(layer.name).assignAnimation(stateName, AnimTrack.EMPTY);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst assetId = animationAsset.asset;\n\t\t\t\tconst asset = this.system.app.assets.get(assetId);\n\t\t\t\tif (asset) {\n\t\t\t\t\tif (asset.resource) {\n\t\t\t\t\t\tthis.onAnimationAssetLoaded(layer.name, stateName, asset);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tasset.once(\"load\", function(layerName, stateName2) {\n\t\t\t\t\t\t\treturn function(asset2) {\n\t\t\t\t\t\t\t\tthis.onAnimationAssetLoaded(layerName, stateName2, asset2);\n\t\t\t\t\t\t\t}.bind(this);\n\t\t\t\t\t\t}.bind(this)(layer.name, stateName));\n\t\t\t\t\t\tthis.system.app.assets.load(asset);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tonAnimationAssetLoaded(layerName, stateName, asset) {\n\t\tthis.findAnimationLayer(layerName).assignAnimation(stateName, asset.resource);\n\t}\n\tremoveStateGraph() {\n\t\tthis._stateGraph = null;\n\t\tthis._stateGraphAsset = null;\n\t\tthis._animationAssets = {};\n\t\tthis._layers = [];\n\t\tthis._layerIndices = {};\n\t\tthis._parameters = {};\n\t\tthis._playing = false;\n\t\tthis.unbind();\n\t\tthis._targets = {};\n\t}\n\treset() {\n\t\tthis._assignParameters(this._stateGraph);\n\t\tfor (let i2 = 0; i2 < this._layers.length; i2++) {\n\t\t\tconst layerPlaying = this._layers[i2].playing;\n\t\t\tthis._layers[i2].reset();\n\t\t\tthis._layers[i2].playing = layerPlaying;\n\t\t}\n\t}\n\tunbind() {\n\t\tif (!this._normalizeWeights) {\n\t\t\tObject.keys(this._targets).forEach((targetKey) => {\n\t\t\t\tthis._targets[targetKey].unbind();\n\t\t\t});\n\t\t}\n\t}\n\trebind() {\n\t\tthis._targets = {};\n\t\tfor (let i2 = 0; i2 < this._layers.length; i2++) {\n\t\t\tthis._layers[i2].rebind();\n\t\t}\n\t}\n\tanimatesEntity(entity) {\n\t\tconst graph = this._rootBone || this.entity;\n\t\treturn graph === entity || graph.isAncestorOf(entity);\n\t}\n\tfindAnimationLayer(name) {\n\t\tconst layerIndex = this._layerIndices[name];\n\t\treturn this._layers[layerIndex] || null;\n\t}\n\taddAnimationState(nodeName, animTrack, speed = 1, loop = true, layerName = \"Base\") {\n\t\tif (!this._stateGraph) {\n\t\t\tthis.loadStateGraph(new AnimStateGraph({\n\t\t\t\t\"layers\": [\n\t\t\t\t\t{\n\t\t\t\t\t\t\"name\": layerName,\n\t\t\t\t\t\t\"states\": [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"name\": \"START\",\n\t\t\t\t\t\t\t\t\"speed\": 1\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"name\": nodeName,\n\t\t\t\t\t\t\t\t\"speed\": speed,\n\t\t\t\t\t\t\t\t\"loop\": loop,\n\t\t\t\t\t\t\t\t\"defaultState\": true\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t],\n\t\t\t\t\t\t\"transitions\": [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"from\": \"START\",\n\t\t\t\t\t\t\t\t\"to\": nodeName\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t]\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\t\"parameters\": {}\n\t\t\t}));\n\t\t}\n\t\tconst layer = this.findAnimationLayer(layerName);\n\t\tif (layer) {\n\t\t\tlayer.assignAnimation(nodeName, animTrack, speed, loop);\n\t\t} else {\n\t\t\tthis.addLayer(layerName)?.assignAnimation(nodeName, animTrack, speed, loop);\n\t\t}\n\t}\n\tassignAnimation(nodePath, animTrack, layerName, speed = 1, loop = true) {\n\t\tif (!this._stateGraph && nodePath.indexOf(\".\") === -1) {\n\t\t\tthis.loadStateGraph(new AnimStateGraph({\n\t\t\t\t\"layers\": [\n\t\t\t\t\t{\n\t\t\t\t\t\t\"name\": \"Base\",\n\t\t\t\t\t\t\"states\": [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"name\": \"START\",\n\t\t\t\t\t\t\t\t\"speed\": 1\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"name\": nodePath,\n\t\t\t\t\t\t\t\t\"speed\": speed,\n\t\t\t\t\t\t\t\t\"loop\": loop,\n\t\t\t\t\t\t\t\t\"defaultState\": true\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t],\n\t\t\t\t\t\t\"transitions\": [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"from\": \"START\",\n\t\t\t\t\t\t\t\t\"to\": nodePath\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t]\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\t\"parameters\": {}\n\t\t\t}));\n\t\t\tthis.baseLayer.assignAnimation(nodePath, animTrack);\n\t\t\treturn;\n\t\t}\n\t\tconst layer = layerName ? this.findAnimationLayer(layerName) : this.baseLayer;\n\t\tif (!layer) {\n\t\t\treturn;\n\t\t}\n\t\tlayer.assignAnimation(nodePath, animTrack, speed, loop);\n\t}\n\tremoveNodeAnimations(nodeName, layerName) {\n\t\tconst layer = layerName ? this.findAnimationLayer(layerName) : this.baseLayer;\n\t\tif (!layer) {\n\t\t\treturn;\n\t\t}\n\t\tlayer.removeNodeAnimations(nodeName);\n\t}\n\tgetParameterValue(name, type) {\n\t\tconst param = this._parameters[name];\n\t\tif (param && param.type === type) {\n\t\t\treturn param.value;\n\t\t}\n\t\treturn void 0;\n\t}\n\tsetParameterValue(name, type, value) {\n\t\tconst param = this._parameters[name];\n\t\tif (param && param.type === type) {\n\t\t\tparam.value = value;\n\t\t\treturn;\n\t\t}\n\t}\n\tfindParameter = (name) => {\n\t\treturn this._parameters[name];\n\t};\n\tconsumeTrigger = (name) => {\n\t\tthis._consumedTriggers.add(name);\n\t};\n\tgetFloat(name) {\n\t\treturn this.getParameterValue(name, ANIM_PARAMETER_FLOAT);\n\t}\n\tsetFloat(name, value) {\n\t\tthis.setParameterValue(name, ANIM_PARAMETER_FLOAT, value);\n\t}\n\tgetInteger(name) {\n\t\treturn this.getParameterValue(name, ANIM_PARAMETER_INTEGER);\n\t}\n\tsetInteger(name, value) {\n\t\tif (typeof value === \"number\" && value % 1 === 0) {\n\t\t\tthis.setParameterValue(name, ANIM_PARAMETER_INTEGER, value);\n\t\t} else {\n\t\t}\n\t}\n\tgetBoolean(name) {\n\t\treturn this.getParameterValue(name, ANIM_PARAMETER_BOOLEAN);\n\t}\n\tsetBoolean(name, value) {\n\t\tthis.setParameterValue(name, ANIM_PARAMETER_BOOLEAN, !!value);\n\t}\n\tgetTrigger(name) {\n\t\treturn this.getParameterValue(name, ANIM_PARAMETER_TRIGGER);\n\t}\n\tsetTrigger(name, singleFrame = false) {\n\t\tthis.setParameterValue(name, ANIM_PARAMETER_TRIGGER, true);\n\t\tif (singleFrame) {\n\t\t\tthis._consumedTriggers.add(name);\n\t\t}\n\t}\n\tresetTrigger(name) {\n\t\tthis.setParameterValue(name, ANIM_PARAMETER_TRIGGER, false);\n\t}\n\tonBeforeRemove() {\n\t\tif (Number.isFinite(this._stateGraphAsset)) {\n\t\t\tconst stateGraphAsset = this.system.app.assets.get(this._stateGraphAsset);\n\t\t\tstateGraphAsset.off(\"change\", this._onStateGraphAssetChangeEvent, this);\n\t\t}\n\t}\n\tupdate(dt) {\n\t\tfor (let i2 = 0; i2 < this.layers.length; i2++) {\n\t\t\tthis.layers[i2].update(dt * this.speed);\n\t\t}\n\t\tthis._consumedTriggers.forEach((trigger) => {\n\t\t\tthis.parameters[trigger].value = false;\n\t\t});\n\t\tthis._consumedTriggers.clear();\n\t}\n\tresolveDuplicatedEntityReferenceProperties(oldAnim, duplicatedIdsMap) {\n\t\tif (oldAnim.rootBone && duplicatedIdsMap[oldAnim.rootBone.guid]) {\n\t\t\tthis.rootBone = duplicatedIdsMap[oldAnim.rootBone.guid];\n\t\t} else {\n\t\t\tthis.rebind();\n\t\t}\n\t}\n};\n\nvar AnimComponentSystem = class extends ComponentSystem {\n\tconstructor(app2) {\n\t\tsuper(app2);\n\t\tthis.id = \"anim\";\n\t\tthis.ComponentType = AnimComponent;\n\t\tthis.extraDataProperties = [\"layers\", \"masks\"];\n\t\tthis.on(\"beforeremove\", this.onBeforeRemove, this);\n\t\tthis.app.systems.on(\"animationUpdate\", this.onAnimationUpdate, this);\n\t\tthis.app.systems.on(\"meshInstancesChange\", this.onMeshInstancesChange, this);\n\t}\n\tinitializeComponentData(component, data2, properties) {\n\t\tsuper.initializeComponentData(component, data2);\n\t\tconst complexProperties = [\"animationAssets\", \"stateGraph\", \"layers\", \"masks\"];\n\t\tObject.keys(data2).forEach((key) => {\n\t\t\tif (complexProperties.includes(key)) return;\n\t\t\tcomponent[key] = data2[key];\n\t\t});\n\t\tif (data2.stateGraph) {\n\t\t\tcomponent.stateGraph = data2.stateGraph;\n\t\t\tcomponent.loadStateGraph(component.stateGraph);\n\t\t}\n\t\tif (data2.layers) {\n\t\t\tdata2.layers.forEach((layer) => {\n\t\t\t\tconst cloneLayer = component.addLayer(layer.name, layer.weight, layer.mask, layer.blendType);\n\t\t\t\tlayer._controller.states.forEach((stateKey) => {\n\t\t\t\t\tlayer._controller._states[stateKey]._animationList.forEach((node) => {\n\t\t\t\t\t\tif (!node.animTrack || node.animTrack === AnimTrack.EMPTY) {\n\t\t\t\t\t\t\tconst animationAsset = this.app.assets.get(layer._component._animationAssets[`${layer.name}:${node.name}`].asset);\n\t\t\t\t\t\t\tif (animationAsset && !animationAsset.loaded) {\n\t\t\t\t\t\t\t\tanimationAsset.once(\"load\", () => {\n\t\t\t\t\t\t\t\t\tcloneLayer.assignAnimation(node.name, animationAsset.resource);\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcloneLayer.assignAnimation(node.name, node.animTrack);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t\tif (data2.animationAssets) {\n\t\t\tcomponent.animationAssets = Object.assign(component.animationAssets, data2.animationAssets);\n\t\t}\n\t\tif (data2.masks) {\n\t\t\tObject.keys(data2.masks).forEach((key) => {\n\t\t\t\tif (component.layers[key]) {\n\t\t\t\t\tconst maskData = data2.masks[key].mask;\n\t\t\t\t\tconst mask = {};\n\t\t\t\t\tObject.keys(maskData).forEach((maskKey) => {\n\t\t\t\t\t\tmask[decodeURI(maskKey)] = maskData[maskKey];\n\t\t\t\t\t});\n\t\t\t\t\tcomponent.layers[key].mask = mask;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\tonAnimationUpdate(dt) {\n\t\tconst components2 = this.store;\n\t\tfor (const id14 in components2) {\n\t\t\tif (components2.hasOwnProperty(id14)) {\n\t\t\t\tconst component = components2[id14].entity.anim;\n\t\t\t\tif (component.enabled && component.entity.enabled && component.playing) {\n\t\t\t\t\tcomponent.update(dt);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tonMeshInstancesChange(component) {\n\t\tconst components2 = this.store;\n\t\tfor (const id14 in components2) {\n\t\t\tif (components2.hasOwnProperty(id14)) {\n\t\t\t\tconst animComponent = components2[id14].entity.anim;\n\t\t\t\tif (animComponent.animatesEntity(component.entity)) {\n\t\t\t\t\tanimComponent.rebind();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tcloneComponent(entity, clone) {\n\t\tlet masks;\n\t\tif (!entity.anim.rootBone || entity.anim.rootBone === entity) {\n\t\t\tmasks = {};\n\t\t\tentity.anim.layers.forEach((layer, i2) => {\n\t\t\t\tif (layer.mask) {\n\t\t\t\t\tconst mask = {};\n\t\t\t\t\tObject.keys(layer.mask).forEach((path2) => {\n\t\t\t\t\t\tconst pathArr = path2.split(\"/\");\n\t\t\t\t\t\tpathArr.shift();\n\t\t\t\t\t\tconst clonePath = [clone.name, ...pathArr].join(\"/\");\n\t\t\t\t\t\tmask[clonePath] = layer.mask[path2];\n\t\t\t\t\t});\n\t\t\t\t\tmasks[i2] = { mask };\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tconst data2 = {\n\t\t\tenabled: entity.anim.enabled,\n\t\t\tstateGraphAsset: entity.anim.stateGraphAsset,\n\t\t\tanimationAssets: entity.anim.animationAssets,\n\t\t\tspeed: entity.anim.speed,\n\t\t\tactivate: entity.anim.activate,\n\t\t\tplaying: entity.anim.playing,\n\t\t\trootBone: entity.anim.rootBone,\n\t\t\tstateGraph: entity.anim.stateGraph,\n\t\t\tlayers: entity.anim.layers,\n\t\t\tlayerIndices: entity.anim.layerIndices,\n\t\t\tparameters: entity.anim.parameters,\n\t\t\tnormalizeWeights: entity.anim.normalizeWeights,\n\t\t\tmasks\n\t\t};\n\t\treturn this.addComponent(clone, data2);\n\t}\n\tonBeforeRemove(entity, component) {\n\t\tcomponent.onBeforeRemove();\n\t}\n\tdestroy() {\n\t\tsuper.destroy();\n\t\tthis.app.systems.off(\"animationUpdate\", this.onAnimationUpdate, this);\n\t\tthis.app.systems.off(\"meshInstancesChange\", this.onMeshInstancesChange, this);\n\t}\n};\n\nvar AudioListenerComponent = class extends Component {\n\tsetCurrentListener() {\n\t\tif (this.enabled && this.entity.audiolistener && this.entity.enabled) {\n\t\t\tthis.system.current = this.entity;\n\t\t\tconst position5 = this.system.current.getPosition();\n\t\t\tthis.system.manager.listener.setPosition(position5);\n\t\t}\n\t}\n\tonEnable() {\n\t\tthis.setCurrentListener();\n\t}\n\tonDisable() {\n\t\tif (this.system.current === this.entity) {\n\t\t\tthis.system.current = null;\n\t\t}\n\t}\n};\n\nvar AudioListenerComponentSystem = class extends ComponentSystem {\n\tconstructor(app2) {\n\t\tsuper(app2);\n\t\tthis.id = \"audiolistener\";\n\t\tthis.ComponentType = AudioListenerComponent;\n\t\tthis.manager = app2.soundManager;\n\t\tthis.current = null;\n\t\tthis.app.systems.on(\"update\", this.onUpdate, this);\n\t}\n\tcloneComponent(entity, clone) {\n\t\treturn this.addComponent(clone, {\n\t\t\tenabled: entity.audiolistener.enabled\n\t\t});\n\t}\n\tonUpdate(dt) {\n\t\tif (this.current) {\n\t\t\tconst position5 = this.current.getPosition();\n\t\t\tthis.manager.listener.setPosition(position5);\n\t\t\tconst wtm = this.current.getWorldTransform();\n\t\t\tthis.manager.listener.setOrientation(wtm);\n\t\t}\n\t}\n\tdestroy() {\n\t\tsuper.destroy();\n\t\tthis.app.systems.off(\"update\", this.onUpdate, this);\n\t}\n};\n\nvar BUTTON_TRANSITION_MODE_TINT = 0;\nvar BUTTON_TRANSITION_MODE_SPRITE_CHANGE = 1;\n\nvar ELEMENTTYPE_GROUP = \"group\";\nvar ELEMENTTYPE_IMAGE = \"image\";\nvar ELEMENTTYPE_TEXT = \"text\";\nvar FITMODE_STRETCH = \"stretch\";\nvar FITMODE_CONTAIN = \"contain\";\nvar FITMODE_COVER = \"cover\";\n\nvar VisualState = {\n\tDEFAULT: \"DEFAULT\",\n\tHOVER: \"HOVER\",\n\tPRESSED: \"PRESSED\",\n\tINACTIVE: \"INACTIVE\"\n};\nvar STATES_TO_TINT_NAMES = {};\nSTATES_TO_TINT_NAMES[VisualState.DEFAULT] = \"_defaultTint\";\nSTATES_TO_TINT_NAMES[VisualState.HOVER] = \"hoverTint\";\nSTATES_TO_TINT_NAMES[VisualState.PRESSED] = \"pressedTint\";\nSTATES_TO_TINT_NAMES[VisualState.INACTIVE] = \"inactiveTint\";\nvar STATES_TO_SPRITE_ASSET_NAMES = {};\nSTATES_TO_SPRITE_ASSET_NAMES[VisualState.DEFAULT] = \"_defaultSpriteAsset\";\nSTATES_TO_SPRITE_ASSET_NAMES[VisualState.HOVER] = \"hoverSpriteAsset\";\nSTATES_TO_SPRITE_ASSET_NAMES[VisualState.PRESSED] = \"pressedSpriteAsset\";\nSTATES_TO_SPRITE_ASSET_NAMES[VisualState.INACTIVE] = \"inactiveSpriteAsset\";\nvar STATES_TO_SPRITE_FRAME_NAMES = {};\nSTATES_TO_SPRITE_FRAME_NAMES[VisualState.DEFAULT] = \"_defaultSpriteFrame\";\nSTATES_TO_SPRITE_FRAME_NAMES[VisualState.HOVER] = \"hoverSpriteFrame\";\nSTATES_TO_SPRITE_FRAME_NAMES[VisualState.PRESSED] = \"pressedSpriteFrame\";\nSTATES_TO_SPRITE_FRAME_NAMES[VisualState.INACTIVE] = \"inactiveSpriteFrame\";\nvar ButtonComponent = class extends Component {\n\tstatic EVENT_MOUSEDOWN = \"mousedown\";\n\tstatic EVENT_MOUSEUP = \"mouseup\";\n\tstatic EVENT_MOUSEENTER = \"mouseenter\";\n\tstatic EVENT_MOUSELEAVE = \"mouseleave\";\n\tstatic EVENT_CLICK = \"click\";\n\tstatic EVENT_TOUCHSTART = \"touchstart\";\n\tstatic EVENT_TOUCHEND = \"touchend\";\n\tstatic EVENT_TOUCHCANCEL = \"touchcancel\";\n\tstatic EVENT_TOUCHLEAVE = \"touchleave\";\n\tstatic EVENT_SELECTSTART = \"selectstart\";\n\tstatic EVENT_SELECTEND = \"selectend\";\n\tstatic EVENT_SELECTENTER = \"selectenter\";\n\tstatic EVENT_SELECTLEAVE = \"selectleave\";\n\tstatic EVENT_HOVERSTART = \"hoverstart\";\n\tstatic EVENT_HOVEREND = \"hoverend\";\n\tstatic EVENT_PRESSEDSTART = \"pressedstart\";\n\tstatic EVENT_PRESSEDEND = \"pressedend\";\n\t_active = true;\n\t_hitPadding = new Vec4();\n\t_transitionMode = BUTTON_TRANSITION_MODE_TINT;\n\t_hoverTint = new Color(0.75, 0.75, 0.75);\n\t_pressedTint = new Color(0.5, 0.5, 0.5);\n\t_inactiveTint = new Color(0.25, 0.25, 0.25);\n\t_fadeDuration = 0;\n\t_hoverSpriteAsset = null;\n\t_hoverSpriteFrame = 0;\n\t_pressedSpriteAsset = null;\n\t_pressedSpriteFrame = 0;\n\t_inactiveSpriteAsset = null;\n\t_inactiveSpriteFrame = 0;\n\t_visualState = VisualState.DEFAULT;\n\t_isHovering = false;\n\t_hoveringCounter = 0;\n\t_isPressed = false;\n\t_hasHitElementListeners = false;\n\t_isApplyingTint = false;\n\t_isApplyingSprite = false;\n\t_tweenInfo = null;\n\t_defaultTint = new Color(1, 1, 1, 1);\n\t_defaultSpriteAsset = null;\n\t_defaultSpriteFrame = 0;\n\t_imageEntity = null;\n\t_evtElementAdd = null;\n\t_evtImageEntityElementAdd = null;\n\t_evtImageEntityElementRemove = null;\n\t_evtImageEntityElementColor = null;\n\t_evtImageEntityElementOpacity = null;\n\t_evtImageEntityElementSpriteAsset = null;\n\t_evtImageEntityElementSpriteFrame = null;\n\tconstructor(system, entity) {\n\t\tsuper(system, entity);\n\t\tthis._evtElementAdd = this.entity.on(\"element:add\", this._onElementComponentAdd, this);\n\t}\n\tset active(arg) {\n\t\tif (this._active === arg) {\n\t\t\treturn;\n\t\t}\n\t\tthis._active = arg;\n\t\tthis._updateVisualState();\n\t}\n\tget active() {\n\t\treturn this._active;\n\t}\n\tset imageEntity(arg) {\n\t\tlet newEntity;\n\t\tif (arg instanceof GraphNode) {\n\t\t\tnewEntity = arg;\n\t\t} else if (typeof arg === \"string\") {\n\t\t\tnewEntity = this.system.app.getEntityFromIndex(arg) ?? null;\n\t\t} else {\n\t\t\tnewEntity = null;\n\t\t}\n\t\tif (this._imageEntity === newEntity) {\n\t\t\treturn;\n\t\t}\n\t\tif (this._imageEntity) {\n\t\t\tthis._imageEntityUnsubscribe();\n\t\t}\n\t\tthis._imageEntity = newEntity;\n\t\tif (newEntity) {\n\t\t\tthis._imageEntitySubscribe();\n\t\t}\n\t}\n\tget imageEntity() {\n\t\treturn this._imageEntity;\n\t}\n\tset hitPadding(arg) {\n\t\tif (!arg) {\n\t\t\tthis._hitPadding = arg;\n\t\t} else if (arg instanceof Vec4) {\n\t\t\tthis._hitPadding = arg.clone();\n\t\t} else {\n\t\t\tthis._hitPadding = new Vec4(arg[0], arg[1], arg[2], arg[3]);\n\t\t}\n\t}\n\tget hitPadding() {\n\t\treturn this._hitPadding;\n\t}\n\tset transitionMode(arg) {\n\t\tif (this._transitionMode === arg) {\n\t\t\treturn;\n\t\t}\n\t\tconst oldMode = this._transitionMode;\n\t\tthis._transitionMode = arg;\n\t\tthis._cancelTween();\n\t\tthis._resetToDefaultVisualState(oldMode);\n\t\tthis._forceReapplyVisualState();\n\t}\n\tget transitionMode() {\n\t\treturn this._transitionMode;\n\t}\n\tset hoverTint(arg) {\n\t\tthis._setTint(\"_hoverTint\", arg);\n\t}\n\tget hoverTint() {\n\t\treturn this._hoverTint;\n\t}\n\tset pressedTint(arg) {\n\t\tthis._setTint(\"_pressedTint\", arg);\n\t}\n\tget pressedTint() {\n\t\treturn this._pressedTint;\n\t}\n\tset inactiveTint(arg) {\n\t\tthis._setTint(\"_inactiveTint\", arg);\n\t}\n\tget inactiveTint() {\n\t\treturn this._inactiveTint;\n\t}\n\tset fadeDuration(arg) {\n\t\tthis._fadeDuration = arg;\n\t}\n\tget fadeDuration() {\n\t\treturn this._fadeDuration;\n\t}\n\tset hoverSpriteAsset(arg) {\n\t\tthis._setTransitionValue(\"_hoverSpriteAsset\", arg);\n\t}\n\tget hoverSpriteAsset() {\n\t\treturn this._hoverSpriteAsset;\n\t}\n\tset hoverSpriteFrame(arg) {\n\t\tthis._setTransitionValue(\"_hoverSpriteFrame\", arg);\n\t}\n\tget hoverSpriteFrame() {\n\t\treturn this._hoverSpriteFrame;\n\t}\n\tset pressedSpriteAsset(arg) {\n\t\tthis._setTransitionValue(\"_pressedSpriteAsset\", arg);\n\t}\n\tget pressedSpriteAsset() {\n\t\treturn this._pressedSpriteAsset;\n\t}\n\tset pressedSpriteFrame(arg) {\n\t\tthis._setTransitionValue(\"_pressedSpriteFrame\", arg);\n\t}\n\tget pressedSpriteFrame() {\n\t\treturn this._pressedSpriteFrame;\n\t}\n\tset inactiveSpriteAsset(arg) {\n\t\tthis._setTransitionValue(\"_inactiveSpriteAsset\", arg);\n\t}\n\tget inactiveSpriteAsset() {\n\t\treturn this._inactiveSpriteAsset;\n\t}\n\tset inactiveSpriteFrame(arg) {\n\t\tthis._setTransitionValue(\"_inactiveSpriteFrame\", arg);\n\t}\n\tget inactiveSpriteFrame() {\n\t\treturn this._inactiveSpriteFrame;\n\t}\n\t_setTint(name, arg) {\n\t\tconst oldValue = this[name];\n\t\tlet value;\n\t\tif (!arg) {\n\t\t\tvalue = arg;\n\t\t} else if (arg instanceof Color) {\n\t\t\tvalue = arg.clone();\n\t\t} else {\n\t\t\tvalue = new Color(arg[0], arg[1], arg[2], arg[3]);\n\t\t}\n\t\tthis[name] = value;\n\t\tif (oldValue === value || oldValue instanceof Color && value instanceof Color && oldValue.equals(value)) {\n\t\t\treturn;\n\t\t}\n\t\tthis._forceReapplyVisualState();\n\t}\n\t_setTransitionValue(name, arg) {\n\t\tif (this[name] === arg) {\n\t\t\treturn;\n\t\t}\n\t\tthis[name] = arg;\n\t\tthis._forceReapplyVisualState();\n\t}\n\t_imageEntitySubscribe() {\n\t\tthis._evtImageEntityElementAdd = this._imageEntity.on(\"element:add\", this._onImageElementGain, this);\n\t\tif (this._imageEntity.element) {\n\t\t\tthis._onImageElementGain();\n\t\t}\n\t}\n\t_imageEntityUnsubscribe() {\n\t\tthis._evtImageEntityElementAdd?.off();\n\t\tthis._evtImageEntityElementAdd = null;\n\t\tif (this._imageEntity?.element) {\n\t\t\tthis._onImageElementLose();\n\t\t}\n\t}\n\t_imageEntityElementSubscribe() {\n\t\tconst element = this._imageEntity.element;\n\t\tthis._evtImageEntityElementRemove = element.once(\"beforeremove\", this._onImageElementLose, this);\n\t\tthis._evtImageEntityElementColor = element.on(\"set:color\", this._onSetColor, this);\n\t\tthis._evtImageEntityElementOpacity = element.on(\"set:opacity\", this._onSetOpacity, this);\n\t\tthis._evtImageEntityElementSpriteAsset = element.on(\"set:spriteAsset\", this._onSetSpriteAsset, this);\n\t\tthis._evtImageEntityElementSpriteFrame = element.on(\"set:spriteFrame\", this._onSetSpriteFrame, this);\n\t}\n\t_imageEntityElementUnsubscribe() {\n\t\tthis._evtImageEntityElementRemove?.off();\n\t\tthis._evtImageEntityElementRemove = null;\n\t\tthis._evtImageEntityElementColor?.off();\n\t\tthis._evtImageEntityElementColor = null;\n\t\tthis._evtImageEntityElementOpacity?.off();\n\t\tthis._evtImageEntityElementOpacity = null;\n\t\tthis._evtImageEntityElementSpriteAsset?.off();\n\t\tthis._evtImageEntityElementSpriteAsset = null;\n\t\tthis._evtImageEntityElementSpriteFrame?.off();\n\t\tthis._evtImageEntityElementSpriteFrame = null;\n\t}\n\t_onElementComponentRemove() {\n\t\tthis._toggleHitElementListeners(\"off\");\n\t}\n\t_onElementComponentAdd() {\n\t\tthis._toggleHitElementListeners(\"on\");\n\t}\n\t_onImageElementLose() {\n\t\tthis._imageEntityElementUnsubscribe();\n\t\tthis._cancelTween();\n\t\tthis._resetToDefaultVisualState(this.transitionMode);\n\t}\n\t_onImageElementGain() {\n\t\tthis._imageEntityElementSubscribe();\n\t\tthis._storeDefaultVisualState();\n\t\tthis._forceReapplyVisualState();\n\t}\n\t_toggleHitElementListeners(onOrOff) {\n\t\tif (this.entity.element) {\n\t\t\tconst isAdding = onOrOff === \"on\";\n\t\t\tif (isAdding && this._hasHitElementListeners) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.entity.element[onOrOff](\"beforeremove\", this._onElementComponentRemove, this);\n\t\t\tthis.entity.element[onOrOff](\"mouseenter\", this._onMouseEnter, this);\n\t\t\tthis.entity.element[onOrOff](\"mouseleave\", this._onMouseLeave, this);\n\t\t\tthis.entity.element[onOrOff](\"mousedown\", this._onMouseDown, this);\n\t\t\tthis.entity.element[onOrOff](\"mouseup\", this._onMouseUp, this);\n\t\t\tthis.entity.element[onOrOff](\"touchstart\", this._onTouchStart, this);\n\t\t\tthis.entity.element[onOrOff](\"touchend\", this._onTouchEnd, this);\n\t\t\tthis.entity.element[onOrOff](\"touchleave\", this._onTouchLeave, this);\n\t\t\tthis.entity.element[onOrOff](\"touchcancel\", this._onTouchCancel, this);\n\t\t\tthis.entity.element[onOrOff](\"selectstart\", this._onSelectStart, this);\n\t\t\tthis.entity.element[onOrOff](\"selectend\", this._onSelectEnd, this);\n\t\t\tthis.entity.element[onOrOff](\"selectenter\", this._onSelectEnter, this);\n\t\t\tthis.entity.element[onOrOff](\"selectleave\", this._onSelectLeave, this);\n\t\t\tthis.entity.element[onOrOff](\"click\", this._onClick, this);\n\t\t\tthis._hasHitElementListeners = isAdding;\n\t\t}\n\t}\n\t_storeDefaultVisualState() {\n\t\tconst element = this._imageEntity?.element;\n\t\tif (!element || element.type === ELEMENTTYPE_GROUP) {\n\t\t\treturn;\n\t\t}\n\t\tthis._storeDefaultColor(element.color);\n\t\tthis._storeDefaultOpacity(element.opacity);\n\t\tthis._storeDefaultSpriteAsset(element.spriteAsset);\n\t\tthis._storeDefaultSpriteFrame(element.spriteFrame);\n\t}\n\t_storeDefaultColor(color3) {\n\t\tthis._defaultTint.r = color3.r;\n\t\tthis._defaultTint.g = color3.g;\n\t\tthis._defaultTint.b = color3.b;\n\t}\n\t_storeDefaultOpacity(opacity) {\n\t\tthis._defaultTint.a = opacity;\n\t}\n\t_storeDefaultSpriteAsset(spriteAsset) {\n\t\tthis._defaultSpriteAsset = spriteAsset;\n\t}\n\t_storeDefaultSpriteFrame(spriteFrame) {\n\t\tthis._defaultSpriteFrame = spriteFrame;\n\t}\n\t_onSetColor(color3) {\n\t\tif (!this._isApplyingTint) {\n\t\t\tthis._storeDefaultColor(color3);\n\t\t\tthis._forceReapplyVisualState();\n\t\t}\n\t}\n\t_onSetOpacity(opacity) {\n\t\tif (!this._isApplyingTint) {\n\t\t\tthis._storeDefaultOpacity(opacity);\n\t\t\tthis._forceReapplyVisualState();\n\t\t}\n\t}\n\t_onSetSpriteAsset(spriteAsset) {\n\t\tif (!this._isApplyingSprite) {\n\t\t\tthis._storeDefaultSpriteAsset(spriteAsset);\n\t\t\tthis._forceReapplyVisualState();\n\t\t}\n\t}\n\t_onSetSpriteFrame(spriteFrame) {\n\t\tif (!this._isApplyingSprite) {\n\t\t\tthis._storeDefaultSpriteFrame(spriteFrame);\n\t\t\tthis._forceReapplyVisualState();\n\t\t}\n\t}\n\t_onMouseEnter(event) {\n\t\tthis._isHovering = true;\n\t\tthis._updateVisualState();\n\t\tthis._fireIfActive(\"mouseenter\", event);\n\t}\n\t_onMouseLeave(event) {\n\t\tthis._isHovering = false;\n\t\tthis._isPressed = false;\n\t\tthis._updateVisualState();\n\t\tthis._fireIfActive(\"mouseleave\", event);\n\t}\n\t_onMouseDown(event) {\n\t\tthis._isPressed = true;\n\t\tthis._updateVisualState();\n\t\tthis._fireIfActive(\"mousedown\", event);\n\t}\n\t_onMouseUp(event) {\n\t\tthis._isPressed = false;\n\t\tthis._updateVisualState();\n\t\tthis._fireIfActive(\"mouseup\", event);\n\t}\n\t_onTouchStart(event) {\n\t\tthis._isPressed = true;\n\t\tthis._updateVisualState();\n\t\tthis._fireIfActive(\"touchstart\", event);\n\t}\n\t_onTouchEnd(event) {\n\t\tevent.event.preventDefault();\n\t\tthis._isPressed = false;\n\t\tthis._updateVisualState();\n\t\tthis._fireIfActive(\"touchend\", event);\n\t}\n\t_onTouchLeave(event) {\n\t\tthis._isPressed = false;\n\t\tthis._updateVisualState();\n\t\tthis._fireIfActive(\"touchleave\", event);\n\t}\n\t_onTouchCancel(event) {\n\t\tthis._isPressed = false;\n\t\tthis._updateVisualState();\n\t\tthis._fireIfActive(\"touchcancel\", event);\n\t}\n\t_onSelectStart(event) {\n\t\tthis._isPressed = true;\n\t\tthis._updateVisualState();\n\t\tthis._fireIfActive(\"selectstart\", event);\n\t}\n\t_onSelectEnd(event) {\n\t\tthis._isPressed = false;\n\t\tthis._updateVisualState();\n\t\tthis._fireIfActive(\"selectend\", event);\n\t}\n\t_onSelectEnter(event) {\n\t\tthis._hoveringCounter++;\n\t\tif (this._hoveringCounter === 1) {\n\t\t\tthis._isHovering = true;\n\t\t\tthis._updateVisualState();\n\t\t}\n\t\tthis._fireIfActive(\"selectenter\", event);\n\t}\n\t_onSelectLeave(event) {\n\t\tthis._hoveringCounter--;\n\t\tif (this._hoveringCounter === 0) {\n\t\t\tthis._isHovering = false;\n\t\t\tthis._isPressed = false;\n\t\t\tthis._updateVisualState();\n\t\t}\n\t\tthis._fireIfActive(\"selectleave\", event);\n\t}\n\t_onClick(event) {\n\t\tthis._fireIfActive(\"click\", event);\n\t}\n\t_fireIfActive(name, event) {\n\t\tif (this._active) {\n\t\t\tthis.fire(name, event);\n\t\t}\n\t}\n\t_updateVisualState(force) {\n\t\tconst oldVisualState = this._visualState;\n\t\tconst newVisualState = this._determineVisualState();\n\t\tif ((oldVisualState !== newVisualState || force) && this.enabled) {\n\t\t\tthis._visualState = newVisualState;\n\t\t\tif (oldVisualState === VisualState.HOVER) {\n\t\t\t\tthis._fireIfActive(\"hoverend\");\n\t\t\t}\n\t\t\tif (oldVisualState === VisualState.PRESSED) {\n\t\t\t\tthis._fireIfActive(\"pressedend\");\n\t\t\t}\n\t\t\tif (newVisualState === VisualState.HOVER) {\n\t\t\t\tthis._fireIfActive(\"hoverstart\");\n\t\t\t}\n\t\t\tif (newVisualState === VisualState.PRESSED) {\n\t\t\t\tthis._fireIfActive(\"pressedstart\");\n\t\t\t}\n\t\t\tswitch (this.transitionMode) {\n\t\t\t\tcase BUTTON_TRANSITION_MODE_TINT: {\n\t\t\t\t\tconst tintName = STATES_TO_TINT_NAMES[this._visualState];\n\t\t\t\t\tconst tintColor = this[tintName];\n\t\t\t\t\tthis._applyTint(tintColor);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase BUTTON_TRANSITION_MODE_SPRITE_CHANGE: {\n\t\t\t\t\tconst spriteAssetName = STATES_TO_SPRITE_ASSET_NAMES[this._visualState];\n\t\t\t\t\tconst spriteFrameName = STATES_TO_SPRITE_FRAME_NAMES[this._visualState];\n\t\t\t\t\tconst spriteAsset = this[spriteAssetName];\n\t\t\t\t\tconst spriteFrame = this[spriteFrameName];\n\t\t\t\t\tthis._applySprite(spriteAsset, spriteFrame);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// Called when a property changes that mean the visual state must be reapplied,\n\t// even if the state enum has not changed. Examples of this are when the tint\n\t// value for one of the states is changed via the editor.\n\t_forceReapplyVisualState() {\n\t\tthis._updateVisualState(true);\n\t}\n\t// Called before the image entity changes, in order to restore the previous\n\t// image back to its original tint. Note that this happens immediately, i.e.\n\t// without any animation.\n\t_resetToDefaultVisualState(transitionMode) {\n\t\tif (!this._imageEntity?.element) {\n\t\t\treturn;\n\t\t}\n\t\tswitch (transitionMode) {\n\t\t\tcase BUTTON_TRANSITION_MODE_TINT:\n\t\t\t\tthis._cancelTween();\n\t\t\t\tthis._applyTintImmediately(this._defaultTint);\n\t\t\t\tbreak;\n\t\t\tcase BUTTON_TRANSITION_MODE_SPRITE_CHANGE:\n\t\t\t\tthis._applySprite(this._defaultSpriteAsset, this._defaultSpriteFrame);\n\t\t\t\tbreak;\n\t\t}\n\t}\n\t_determineVisualState() {\n\t\tif (!this.active) {\n\t\t\treturn VisualState.INACTIVE;\n\t\t} else if (this._isPressed) {\n\t\t\treturn VisualState.PRESSED;\n\t\t} else if (this._isHovering) {\n\t\t\treturn VisualState.HOVER;\n\t\t}\n\t\treturn VisualState.DEFAULT;\n\t}\n\t_applySprite(spriteAsset, spriteFrame) {\n\t\tconst element = this._imageEntity?.element;\n\t\tif (!element) {\n\t\t\treturn;\n\t\t}\n\t\tspriteFrame = spriteFrame || 0;\n\t\tthis._isApplyingSprite = true;\n\t\tif (element.spriteAsset !== spriteAsset) {\n\t\t\telement.spriteAsset = spriteAsset;\n\t\t}\n\t\tif (element.spriteFrame !== spriteFrame) {\n\t\t\telement.spriteFrame = spriteFrame;\n\t\t}\n\t\tthis._isApplyingSprite = false;\n\t}\n\t_applyTint(tintColor) {\n\t\tthis._cancelTween();\n\t\tif (this.fadeDuration === 0) {\n\t\t\tthis._applyTintImmediately(tintColor);\n\t\t} else {\n\t\t\tthis._applyTintWithTween(tintColor);\n\t\t}\n\t}\n\t_applyTintImmediately(tintColor) {\n\t\tconst element = this._imageEntity?.element;\n\t\tif (!tintColor || !element || element.type === ELEMENTTYPE_GROUP) {\n\t\t\treturn;\n\t\t}\n\t\tconst color3 = toColor3(tintColor);\n\t\tthis._isApplyingTint = true;\n\t\tif (!color3.equals(element.color)) {\n\t\t\telement.color = color3;\n\t\t}\n\t\tif (element.opacity !== tintColor.a) {\n\t\t\telement.opacity = tintColor.a;\n\t\t}\n\t\tthis._isApplyingTint = false;\n\t}\n\t_applyTintWithTween(tintColor) {\n\t\tconst element = this._imageEntity?.element;\n\t\tif (!tintColor || !element || element.type === ELEMENTTYPE_GROUP) {\n\t\t\treturn;\n\t\t}\n\t\tconst color3 = toColor3(tintColor);\n\t\tconst color4 = element.color;\n\t\tconst opacity = element.opacity;\n\t\tif (color3.equals(color4) && tintColor.a === opacity) return;\n\t\tthis._tweenInfo = {\n\t\t\tstartTime: now(),\n\t\t\tfrom: new Color(color4.r, color4.g, color4.b, opacity),\n\t\t\tto: tintColor.clone(),\n\t\t\tlerpColor: new Color()\n\t\t};\n\t}\n\t_updateTintTween() {\n\t\tconst elapsedTime = now() - this._tweenInfo.startTime;\n\t\tlet elapsedProportion = this.fadeDuration === 0 ? 1 : elapsedTime / this.fadeDuration;\n\t\telapsedProportion = math.clamp(elapsedProportion, 0, 1);\n\t\tif (Math.abs(elapsedProportion - 1) > 1e-5) {\n\t\t\tconst lerpColor = this._tweenInfo.lerpColor;\n\t\t\tlerpColor.lerp(this._tweenInfo.from, this._tweenInfo.to, elapsedProportion);\n\t\t\tthis._applyTintImmediately(\n\t\t\t\tnew Color(lerpColor.r, lerpColor.g, lerpColor.b, lerpColor.a)\n\t\t\t);\n\t\t} else {\n\t\t\tthis._applyTintImmediately(this._tweenInfo.to);\n\t\t\tthis._cancelTween();\n\t\t}\n\t}\n\t_cancelTween() {\n\t\tthis._tweenInfo = null;\n\t}\n\tonUpdate() {\n\t\tif (this._tweenInfo) {\n\t\t\tthis._updateTintTween();\n\t\t}\n\t}\n\tonEnable() {\n\t\tthis._isHovering = false;\n\t\tthis._hoveringCounter = 0;\n\t\tthis._isPressed = false;\n\t\tthis._toggleHitElementListeners(\"on\");\n\t\tthis._forceReapplyVisualState();\n\t}\n\tonDisable() {\n\t\tthis._toggleHitElementListeners(\"off\");\n\t\tthis._resetToDefaultVisualState(this.transitionMode);\n\t}\n\tonBeforeRemove() {\n\t\tthis._imageEntityUnsubscribe();\n\t\tthis._evtElementAdd?.off();\n\t\tthis._evtElementAdd = null;\n\t\tthis.onDisable();\n\t}\n\tresolveDuplicatedEntityReferenceProperties(oldButton, duplicatedIdsMap) {\n\t\tif (oldButton.imageEntity) {\n\t\t\tthis.imageEntity = duplicatedIdsMap[oldButton.imageEntity.guid];\n\t\t}\n\t}\n};\nfunction toColor3(color4) {\n\treturn new Color(color4.r, color4.g, color4.b);\n}\n\nvar _properties2 = [\n\t\"imageEntity\",\n\t\"active\",\n\t\"hitPadding\",\n\t\"transitionMode\",\n\t\"hoverTint\",\n\t\"pressedTint\",\n\t\"inactiveTint\",\n\t\"fadeDuration\",\n\t\"hoverSpriteAsset\",\n\t\"hoverSpriteFrame\",\n\t\"pressedSpriteAsset\",\n\t\"pressedSpriteFrame\",\n\t\"inactiveSpriteAsset\",\n\t\"inactiveSpriteFrame\"\n];\nvar ButtonComponentSystem = class extends ComponentSystem {\n\tconstructor(app2) {\n\t\tsuper(app2);\n\t\tthis.id = \"button\";\n\t\tthis.ComponentType = ButtonComponent;\n\t\tthis.on(\"beforeremove\", this.onBeforeRemove, this);\n\t\tthis.app.systems.on(\"update\", this.onUpdate, this);\n\t}\n\tinitializeComponentData(component, data2, properties) {\n\t\tfor (let i2 = 0; i2 < _properties2.length; i2++) {\n\t\t\tconst property = _properties2[i2];\n\t\t\tif (data2[property] !== void 0) {\n\t\t\t\tcomponent[property] = data2[property];\n\t\t\t}\n\t\t}\n\t\tsuper.initializeComponentData(component, data2);\n\t}\n\tcloneComponent(entity, clone) {\n\t\tconst c2 = entity.button;\n\t\tconst data2 = {\n\t\t\tenabled: c2.enabled\n\t\t};\n\t\tfor (let i2 = 0; i2 < _properties2.length; i2++) {\n\t\t\tconst property = _properties2[i2];\n\t\t\tdata2[property] = c2[property];\n\t\t}\n\t\treturn this.addComponent(clone, data2);\n\t}\n\tonUpdate(dt) {\n\t\tconst components2 = this.store;\n\t\tfor (const id14 in components2) {\n\t\t\tconst entity = components2[id14].entity;\n\t\t\tconst component = entity.button;\n\t\t\tif (component.enabled && entity.enabled) {\n\t\t\t\tcomponent.onUpdate();\n\t\t\t}\n\t\t}\n\t}\n\tonBeforeRemove(entity, component) {\n\t\tcomponent.onBeforeRemove();\n\t}\n\tdestroy() {\n\t\tsuper.destroy();\n\t\tthis.app.systems.off(\"update\", this.onUpdate, this);\n\t}\n};\n\nvar _vec3 = new Vec3();\nvar _quat = new Quat();\nvar CollisionComponent = class extends Component {\n\tstatic EVENT_CONTACT = \"contact\";\n\tstatic EVENT_COLLISIONSTART = \"collisionstart\";\n\tstatic EVENT_COLLISIONEND = \"collisionend\";\n\tstatic EVENT_TRIGGERENTER = \"triggerenter\";\n\tstatic EVENT_TRIGGERLEAVE = \"triggerleave\";\n\t_type = \"box\";\n\t_halfExtents = new Vec3(0.5, 0.5, 0.5);\n\t_linearOffset = new Vec3();\n\t_angularOffset = new Quat();\n\t_radius = 0.5;\n\t_axis = 1;\n\t_height = 2;\n\t_asset = null;\n\t_renderAsset = null;\n\t_convexHull = false;\n\t_shape = null;\n\t_model = null;\n\t_render = null;\n\t_checkVertexDuplicates = true;\n\t_initialized = false;\n\t_compoundParent = null;\n\t_hasOffset = false;\n\t_builtWorldScale = null;\n\tconstructor(system, entity) {\n\t\tsuper(system, entity);\n\t\tthis.entity.on(\"insert\", this._onInsert, this);\n\t}\n\tset type(arg) {\n\t\tif (this._type === arg) {\n\t\t\treturn;\n\t\t}\n\t\tconst previous = this._type;\n\t\tthis._type = arg;\n\t\tthis.system.changeType(this, previous, arg);\n\t}\n\tget type() {\n\t\treturn this._type;\n\t}\n\tset halfExtents(arg) {\n\t\tif (arg instanceof Vec3) {\n\t\t\tthis._halfExtents.copy(arg);\n\t\t} else {\n\t\t\tthis._halfExtents.set(arg[0], arg[1], arg[2]);\n\t\t}\n\t\tif (this._initialized && this._type === \"box\") {\n\t\t\tthis.system.recreatePhysicalShapes(this);\n\t\t}\n\t}\n\tget halfExtents() {\n\t\treturn this._halfExtents;\n\t}\n\tset linearOffset(arg) {\n\t\tif (arg instanceof Vec3) {\n\t\t\tthis._linearOffset.copy(arg);\n\t\t} else {\n\t\t\tthis._linearOffset.set(arg[0], arg[1], arg[2]);\n\t\t}\n\t\tthis._updateHasOffset();\n\t\tif (this._initialized) {\n\t\t\tthis.system.recreatePhysicalShapes(this);\n\t\t}\n\t}\n\tget linearOffset() {\n\t\treturn this._linearOffset;\n\t}\n\tset angularOffset(arg) {\n\t\tif (arg instanceof Quat) {\n\t\t\tthis._angularOffset.copy(arg);\n\t\t} else if (arg.length === 3) {\n\t\t\tthis._angularOffset.setFromEulerAngles(arg[0], arg[1], arg[2]);\n\t\t} else {\n\t\t\tthis._angularOffset.set(arg[0], arg[1], arg[2], arg[3]);\n\t\t}\n\t\tthis._updateHasOffset();\n\t\tif (this._initialized) {\n\t\t\tthis.system.recreatePhysicalShapes(this);\n\t\t}\n\t}\n\tget angularOffset() {\n\t\treturn this._angularOffset;\n\t}\n\tset radius(arg) {\n\t\tthis._radius = arg;\n\t\tconst t = this._type;\n\t\tif (this._initialized && (t === \"sphere\" || t === \"capsule\" || t === \"cylinder\" || t === \"cone\")) {\n\t\t\tthis.system.recreatePhysicalShapes(this);\n\t\t}\n\t}\n\tget radius() {\n\t\treturn this._radius;\n\t}\n\tset axis(arg) {\n\t\tthis._axis = arg;\n\t\tconst t = this._type;\n\t\tif (this._initialized && (t === \"capsule\" || t === \"cylinder\" || t === \"cone\")) {\n\t\t\tthis.system.recreatePhysicalShapes(this);\n\t\t}\n\t}\n\tget axis() {\n\t\treturn this._axis;\n\t}\n\tset height(arg) {\n\t\tthis._height = arg;\n\t\tconst t = this._type;\n\t\tif (this._initialized && (t === \"capsule\" || t === \"cylinder\" || t === \"cone\")) {\n\t\t\tthis.system.recreatePhysicalShapes(this);\n\t\t}\n\t}\n\tget height() {\n\t\treturn this._height;\n\t}\n\tset asset(arg) {\n\t\tconst assets = this.system.app.assets;\n\t\tif (this._asset) {\n\t\t\tconst asset = assets.get(this._asset);\n\t\t\tif (asset) {\n\t\t\t\tasset.off(\"remove\", this.onAssetRemoved, this);\n\t\t\t}\n\t\t}\n\t\tthis._asset = arg instanceof Asset ? arg.id : arg;\n\t\tif (arg) {\n\t\t\tconst asset = assets.get(this._asset);\n\t\t\tif (asset) {\n\t\t\t\tasset.off(\"remove\", this.onAssetRemoved, this);\n\t\t\t\tasset.on(\"remove\", this.onAssetRemoved, this);\n\t\t\t}\n\t\t}\n\t\tif (this._initialized && this._type === \"mesh\") {\n\t\t\tif (!arg) {\n\t\t\t\tthis._model = null;\n\t\t\t}\n\t\t\tthis.system.recreatePhysicalShapes(this);\n\t\t}\n\t}\n\tget asset() {\n\t\treturn this._asset;\n\t}\n\tset renderAsset(arg) {\n\t\tconst assets = this.system.app.assets;\n\t\tif (this._renderAsset) {\n\t\t\tconst asset = assets.get(this._renderAsset);\n\t\t\tif (asset) {\n\t\t\t\tasset.off(\"remove\", this.onRenderAssetRemoved, this);\n\t\t\t}\n\t\t}\n\t\tthis._renderAsset = arg instanceof Asset ? arg.id : arg;\n\t\tif (arg) {\n\t\t\tconst asset = assets.get(this._renderAsset);\n\t\t\tif (asset) {\n\t\t\t\tasset.off(\"remove\", this.onRenderAssetRemoved, this);\n\t\t\t\tasset.on(\"remove\", this.onRenderAssetRemoved, this);\n\t\t\t}\n\t\t}\n\t\tif (this._initialized && this._type === \"mesh\") {\n\t\t\tif (!arg) {\n\t\t\t\tthis._render = null;\n\t\t\t}\n\t\t\tthis.system.recreatePhysicalShapes(this);\n\t\t}\n\t}\n\tget renderAsset() {\n\t\treturn this._renderAsset;\n\t}\n\tset convexHull(arg) {\n\t\tthis._convexHull = arg;\n\t\tif (this._initialized && this._type === \"mesh\") {\n\t\t\tthis.system.doRecreatePhysicalShape(this);\n\t\t}\n\t}\n\tget convexHull() {\n\t\treturn this._convexHull;\n\t}\n\tset shape(arg) {\n\t\tthis._shape = arg;\n\t}\n\tget shape() {\n\t\treturn this._shape;\n\t}\n\tset model(arg) {\n\t\tthis._model = arg;\n\t\tif (this._initialized && this._type === \"mesh\") {\n\t\t\tthis.system.doRecreatePhysicalShape(this);\n\t\t}\n\t}\n\tget model() {\n\t\treturn this._model;\n\t}\n\tset render(arg) {\n\t\tthis._render = arg;\n\t\tif (this._initialized && this._type === \"mesh\") {\n\t\t\tthis.system.doRecreatePhysicalShape(this);\n\t\t}\n\t}\n\tget render() {\n\t\treturn this._render;\n\t}\n\tset checkVertexDuplicates(arg) {\n\t\tthis._checkVertexDuplicates = arg;\n\t}\n\tget checkVertexDuplicates() {\n\t\treturn this._checkVertexDuplicates;\n\t}\n\t_updateHasOffset() {\n\t\tthis._hasOffset = !this._linearOffset.equals(Vec3.ZERO) || !this._angularOffset.equals(Quat.IDENTITY);\n\t}\n\tonAssetRemoved(asset) {\n\t\tasset.off(\"remove\", this.onAssetRemoved, this);\n\t\tif (this._asset === asset.id) {\n\t\t\tthis.asset = null;\n\t\t}\n\t}\n\tonRenderAssetRemoved(asset) {\n\t\tasset.off(\"remove\", this.onRenderAssetRemoved, this);\n\t\tif (this._renderAsset === asset.id) {\n\t\t\tthis.renderAsset = null;\n\t\t}\n\t}\n\t_onInsert(parent) {\n\t\tconst world = this.system.physicsWorld;\n\t\tif (!world) {\n\t\t\treturn;\n\t\t}\n\t\tif (this._compoundParent) {\n\t\t\tthis.system.recreatePhysicalShapes(this);\n\t\t} else if (!this.entity.rigidbody) {\n\t\t\tlet ancestor = this.entity.parent;\n\t\t\twhile (ancestor) {\n\t\t\t\tif (ancestor.collision && ancestor.collision.type === \"compound\") {\n\t\t\t\t\tif (world.getCompoundChildCount(ancestor.collision.shape) === 0) {\n\t\t\t\t\t\tthis.system.recreatePhysicalShapes(ancestor.collision);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.system.recreatePhysicalShapes(this);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tancestor = ancestor.parent;\n\t\t\t}\n\t\t}\n\t}\n\t_updateEachDescendantTransform(entity) {\n\t\tif (!entity.collision || entity.collision._compoundParent !== this.collision._compoundParent) {\n\t\t\treturn;\n\t\t}\n\t\tthis.collision.system.updateCompoundChildTransform(entity, false);\n\t}\n\t_updateCompound() {\n\t\tconst entity = this.entity;\n\t\tif (entity._dirtyWorld) {\n\t\t\tlet dirty = entity._dirtyLocal;\n\t\t\tlet parent = entity;\n\t\t\twhile (parent && !dirty) {\n\t\t\t\tif (parent.collision && parent.collision === this._compoundParent) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif (parent._dirtyLocal) {\n\t\t\t\t\tdirty = true;\n\t\t\t\t}\n\t\t\t\tparent = parent.parent;\n\t\t\t}\n\t\t\tif (dirty) {\n\t\t\t\tentity.forEach(this._updateEachDescendantTransform, entity);\n\t\t\t\tconst bodyComponent = this._compoundParent.entity.rigidbody;\n\t\t\t\tif (bodyComponent) {\n\t\t\t\t\tbodyComponent.activate();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tgetShapePosition() {\n\t\tconst pos = this.entity.getPosition();\n\t\tif (this._hasOffset) {\n\t\t\tconst rot = this.entity.getRotation();\n\t\t\tconst lo = this._linearOffset;\n\t\t\t_quat.copy(rot).transformVector(lo, _vec3);\n\t\t\treturn _vec3.add(pos);\n\t\t}\n\t\treturn pos;\n\t}\n\tgetShapeRotation() {\n\t\tconst rot = this.entity.getRotation();\n\t\tif (this._hasOffset) {\n\t\t\treturn _quat.copy(rot).mul(this._angularOffset);\n\t\t}\n\t\treturn rot;\n\t}\n\tonEnable() {\n\t\tif (this._type === \"mesh\" && (this._asset || this._renderAsset) && this._initialized) {\n\t\t\tconst asset = this.system.app.assets.get(this._asset || this._renderAsset);\n\t\t\tif (asset && (!asset.resource || !this._shape)) {\n\t\t\t\tthis.system.recreatePhysicalShapes(this);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tif (this.entity.rigidbody) {\n\t\t\tif (this.entity.rigidbody.enabled) {\n\t\t\t\tthis.entity.rigidbody.enableSimulation();\n\t\t\t}\n\t\t} else if (this._compoundParent && this !== this._compoundParent) {\n\t\t\tif (this.system.physicsWorld.getCompoundChildCount(this._compoundParent.shape) === 0) {\n\t\t\t\tthis.system.recreatePhysicalShapes(this._compoundParent);\n\t\t\t} else {\n\t\t\t\tthis.system.updateCompoundChildTransform(this.entity, true);\n\t\t\t\tif (this._compoundParent.entity.rigidbody) {\n\t\t\t\t\tthis._compoundParent.entity.rigidbody.activate();\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (this.entity.trigger) {\n\t\t\tthis.entity.trigger.enable();\n\t\t}\n\t}\n\tonDisable() {\n\t\tif (this.entity.rigidbody) {\n\t\t\tthis.entity.rigidbody.disableSimulation();\n\t\t} else if (this._compoundParent && this !== this._compoundParent) {\n\t\t\tif (!this._compoundParent.entity._destroying) {\n\t\t\t\tthis.system._removeCompoundChild(this._compoundParent, this._shape);\n\t\t\t\tif (this._compoundParent.entity.rigidbody) {\n\t\t\t\t\tthis._compoundParent.entity.rigidbody.activate();\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (this.entity.trigger) {\n\t\t\tthis.entity.trigger.disable();\n\t\t}\n\t}\n\tonBeforeRemove() {\n\t\tif (this.asset) {\n\t\t\tthis.asset = null;\n\t\t}\n\t\tif (this.renderAsset) {\n\t\t\tthis.renderAsset = null;\n\t\t}\n\t\tthis.entity.off(\"insert\", this._onInsert, this);\n\t\tthis.off();\n\t}\n};\n\nvar BODYTYPE_STATIC = \"static\";\nvar BODYTYPE_DYNAMIC = \"dynamic\";\nvar BODYTYPE_KINEMATIC = \"kinematic\";\nvar BODYFLAG_STATIC_OBJECT = 1;\nvar BODYFLAG_KINEMATIC_OBJECT = 2;\nvar BODYFLAG_NORESPONSE_OBJECT = 4;\nvar BODYSTATE_ACTIVE_TAG = 1;\nvar BODYSTATE_ISLAND_SLEEPING = 2;\nvar BODYSTATE_WANTS_DEACTIVATION = 3;\nvar BODYSTATE_DISABLE_DEACTIVATION = 4;\nvar BODYSTATE_DISABLE_SIMULATION = 5;\nvar BODYGROUP_NONE = 0;\nvar BODYGROUP_DEFAULT = 1;\nvar BODYGROUP_DYNAMIC = 1;\nvar BODYGROUP_STATIC = 2;\nvar BODYGROUP_KINEMATIC = 4;\nvar BODYGROUP_ENGINE_1 = 8;\nvar BODYGROUP_TRIGGER = 16;\nvar BODYGROUP_ENGINE_2 = 32;\nvar BODYGROUP_ENGINE_3 = 64;\nvar BODYGROUP_USER_1 = 128;\nvar BODYGROUP_USER_2 = 256;\nvar BODYGROUP_USER_3 = 512;\nvar BODYGROUP_USER_4 = 1024;\nvar BODYGROUP_USER_5 = 2048;\nvar BODYGROUP_USER_6 = 4096;\nvar BODYGROUP_USER_7 = 8192;\nvar BODYGROUP_USER_8 = 16384;\nvar BODYMASK_NONE = 0;\nvar BODYMASK_ALL = 65535;\nvar BODYMASK_STATIC = 2;\nvar BODYMASK_NOT_STATIC = 65535 ^ 2;\nvar BODYMASK_NOT_STATIC_KINEMATIC = 65535 ^ (2 | 4);\n\nvar _position = new Vec3();\nvar _rotation = new Quat();\nvar Trigger = class {\n\tconstructor(app2, component) {\n\t\tthis.entity = component.entity;\n\t\tthis.component = component;\n\t\tthis.app = app2;\n\t\tthis.initialize();\n\t}\n\tinitialize() {\n\t\tconst entity = this.entity;\n\t\tconst shape = this.component.shape;\n\t\tconst world = this.app.systems.rigidbody.physicsWorld;\n\t\tif (shape && world) {\n\t\t\tif (entity.trigger) {\n\t\t\t\tentity.trigger.destroy();\n\t\t\t}\n\t\t\tthis._getEntityTransform(_position, _rotation);\n\t\t\tconst body = world.createBody({\n\t\t\t\ttype: BODYTYPE_DYNAMIC,\n\t\t\t\tmass: 1,\n\t\t\t\tshape,\n\t\t\t\tposition: _position,\n\t\t\t\trotation: _rotation,\n\t\t\t\tentity,\n\t\t\t\tnoContactResponse: true\n\t\t\t});\n\t\t\tbody.setRestitution(0);\n\t\t\tbody.setFriction(0);\n\t\t\tbody.setDamping(0, 0);\n\t\t\tbody.setLinearFactor(Vec3.ZERO);\n\t\t\tbody.setAngularFactor(Vec3.ZERO);\n\t\t\tthis.body = body;\n\t\t\tif (this.component.enabled && entity.enabled) {\n\t\t\t\tthis.enable();\n\t\t\t}\n\t\t}\n\t}\n\tdestroy() {\n\t\tif (!this.body) return;\n\t\tthis.disable();\n\t\tthis.app.systems.rigidbody.physicsWorld.destroyBody(this.body);\n\t\tthis.body = null;\n\t}\n\t_getEntityTransform(position5, rotation7) {\n\t\tposition5.copy(this.component.getShapePosition());\n\t\trotation7.copy(this.component.getShapeRotation());\n\t}\n\tupdateTransform() {\n\t\tthis._getEntityTransform(_position, _rotation);\n\t\tthis.body.setTransform(_position, _rotation);\n\t}\n\tenable() {\n\t\tif (!this.body) return;\n\t\tthis.app.systems.rigidbody.addTrigger(this);\n\t\tthis.updateTransform();\n\t}\n\tdisable() {\n\t\tif (!this.body) return;\n\t\tthis.app.systems.rigidbody.removeTrigger(this);\n\t}\n};\n\nvar mat42 = new Mat4();\nvar p1 = new Vec3();\nvar p2 = new Vec3();\nvar p3 = new Vec3();\nvar quat2 = new Quat();\nvar quat22 = new Quat();\nvar _properties3 = [\n\t\"halfExtents\",\n\t\"radius\",\n\t\"axis\",\n\t\"height\",\n\t\"convexHull\",\n\t\"model\",\n\t\"asset\",\n\t\"render\",\n\t\"renderAsset\",\n\t\"linearOffset\",\n\t\"angularOffset\",\n\t\"checkVertexDuplicates\"\n];\nvar collisionImpls = {\n\tbox: {\n\t\tcreatePhysicalShape: (system, entity, component) => system.physicsWorld?.createShape({\n\t\t\ttype: \"box\",\n\t\t\thalfExtents: component.halfExtents\n\t\t})\n\t},\n\tsphere: {\n\t\tcreatePhysicalShape: (system, entity, component) => system.physicsWorld?.createShape({\n\t\t\ttype: \"sphere\",\n\t\t\tradius: component.radius\n\t\t})\n\t},\n\tcapsule: {\n\t\tcreatePhysicalShape: (system, entity, component) => system.physicsWorld?.createShape({\n\t\t\ttype: \"capsule\",\n\t\t\taxis: component.axis,\n\t\t\tradius: component.radius,\n\t\t\theight: component.height\n\t\t})\n\t},\n\tcylinder: {\n\t\tcreatePhysicalShape: (system, entity, component) => system.physicsWorld?.createShape({\n\t\t\ttype: \"cylinder\",\n\t\t\taxis: component.axis,\n\t\t\tradius: component.radius,\n\t\t\theight: component.height\n\t\t})\n\t},\n\tcone: {\n\t\tcreatePhysicalShape: (system, entity, component) => system.physicsWorld?.createShape({\n\t\t\ttype: \"cone\",\n\t\t\taxis: component.axis,\n\t\t\tradius: component.radius,\n\t\t\theight: component.height\n\t\t})\n\t},\n\tmesh: {\n\t\tcreatePhysicalShape: createMeshShape,\n\t\trecreatePhysicalShapes: recreateMeshShapes,\n\t\tupdateTransform: updateMeshTransform\n\t},\n\tcompound: {\n\t\tcreatePhysicalShape: (system, entity, component) => system.physicsWorld?.createShape({\n\t\t\ttype: \"compound\"\n\t\t})\n\t}\n};\nfunction getImpl(type) {\n\tconst impl = collisionImpls[type];\n\treturn impl;\n}\nfunction beforeInitialize(system, component) {\n\tcomponent._shape = null;\n}\nfunction afterInitialize(system, component) {\n\tsystem.recreatePhysicalShapes(component);\n\tcomponent._initialized = true;\n}\nfunction recreateBody(entity) {\n\tentity.rigidbody.disableSimulation();\n\tentity.rigidbody.createBody();\n\tif (entity.enabled && entity.rigidbody.enabled) {\n\t\tentity.rigidbody.enableSimulation();\n\t}\n}\nfunction recreateTrigger(system, entity, component) {\n\tif (!entity.trigger) {\n\t\tentity.trigger = new Trigger(system.app, component);\n\t} else {\n\t\tentity.trigger.initialize();\n\t}\n}\nfunction destroyShape(system, component) {\n\tif (component._shape) {\n\t\tsystem.physicsWorld.destroyShape(component._shape);\n\t\tcomponent._shape = null;\n\t}\n}\nfunction beforeRemove(system, entity, component) {\n\tif (component._shape) {\n\t\tif (component._compoundParent && !component._compoundParent.entity._destroying) {\n\t\t\tsystem._removeCompoundChild(component._compoundParent, component._shape);\n\t\t\tif (component._compoundParent.entity.rigidbody) {\n\t\t\t\tcomponent._compoundParent.entity.rigidbody.activate();\n\t\t\t}\n\t\t}\n\t\tcomponent._compoundParent = null;\n\t\tdestroyShape(system, component);\n\t}\n}\nfunction recreateShapes(system, component) {\n\tconst entity = component.entity;\n\tconst world = system.physicsWorld;\n\tif (world) {\n\t\tif (entity.trigger) {\n\t\t\tentity.trigger.destroy();\n\t\t\tdelete entity.trigger;\n\t\t}\n\t\tif (component._shape) {\n\t\t\tif (component._compoundParent) {\n\t\t\t\tif (component !== component._compoundParent) {\n\t\t\t\t\tsystem._removeCompoundChild(component._compoundParent, component._shape);\n\t\t\t\t}\n\t\t\t\tif (component._compoundParent.entity.rigidbody) {\n\t\t\t\t\tcomponent._compoundParent.entity.rigidbody.activate();\n\t\t\t\t}\n\t\t\t}\n\t\t\tdestroyShape(system, component);\n\t\t}\n\t\tcomponent._shape = getImpl(component._type).createPhysicalShape(system, entity, component);\n\t\tconst firstCompoundChild = !component._compoundParent;\n\t\tif (component._type === \"compound\" && (!component._compoundParent || component === component._compoundParent)) {\n\t\t\tcomponent._compoundParent = component;\n\t\t\tentity.forEach(system._addEachDescendant, component);\n\t\t} else if (component._type !== \"compound\") {\n\t\t\tif (!entity.rigidbody) {\n\t\t\t\tcomponent._compoundParent = null;\n\t\t\t\tlet parent = entity.parent;\n\t\t\t\twhile (parent) {\n\t\t\t\t\tif (parent.collision && parent.collision.type === \"compound\") {\n\t\t\t\t\t\tcomponent._compoundParent = parent.collision;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tparent = parent.parent;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (component._compoundParent) {\n\t\t\tif (component !== component._compoundParent) {\n\t\t\t\tif (firstCompoundChild && world.getCompoundChildCount(component._compoundParent.shape) === 0) {\n\t\t\t\t\tsystem.recreatePhysicalShapes(component._compoundParent);\n\t\t\t\t} else {\n\t\t\t\t\tsystem.updateCompoundChildTransform(entity, true);\n\t\t\t\t\tif (component._compoundParent.entity.rigidbody) {\n\t\t\t\t\t\tcomponent._compoundParent.entity.rigidbody.activate();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (entity.rigidbody) {\n\t\t\trecreateBody(entity);\n\t\t} else if (!component._compoundParent) {\n\t\t\trecreateTrigger(system, entity, component);\n\t\t}\n\t}\n}\nfunction updateShapeTransform(system, component, position5, rotation7, scale2) {\n\tif (component.entity.trigger) {\n\t\tcomponent.entity.trigger.updateTransform();\n\t}\n}\nfunction createMeshSource(system, mesh, node, bakeScale, convexHull, checkDuplicates) {\n\tlet positions = null;\n\tlet stride = 0;\n\tlet indices = null;\n\tlet extracted = false;\n\tconst extract = () => {\n\t\tif (extracted) return;\n\t\textracted = true;\n\t\tif (convexHull) {\n\t\t\tpositions = [];\n\t\t\tmesh.getPositions(positions);\n\t\t\tstride = 3;\n\t\t} else {\n\t\t\tconst vb = mesh.vertexBuffer;\n\t\t\tconst format = vb.getFormat();\n\t\t\tfor (let i2 = 0; i2 < format.elements.length; i2++) {\n\t\t\t\tconst element = format.elements[i2];\n\t\t\t\tif (element.name === SEMANTIC_POSITION) {\n\t\t\t\t\tpositions = BufferUtils.createStorageView(vb, Float32Array, element.offset);\n\t\t\t\t\tstride = element.stride / 4;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tindices = [];\n\t\t\tmesh.getIndices(indices);\n\t\t}\n\t};\n\tconst source = {\n\t\tid: mesh.id,\n\t\tget positions() {\n\t\t\textract();\n\t\t\treturn positions;\n\t\t},\n\t\tget stride() {\n\t\t\textract();\n\t\t\treturn stride;\n\t\t},\n\t\tget indices() {\n\t\t\textract();\n\t\t\treturn indices;\n\t\t},\n\t\tbase: mesh.primitive[0].base,\n\t\tcount: mesh.primitive[0].count,\n\t\tconvexHull,\n\t\tcheckDuplicates,\n\t\tbakeScale,\n\t\tshapeScale: node ? system._getNodeScaling(node) : null,\n\t\tposition: new Vec3(),\n\t\trotation: new Quat()\n\t};\n\tif (node) {\n\t\tsystem._getNodeTransform(node, null, source.position, source.rotation);\n\t}\n\treturn source;\n}\nfunction createMeshShape(system, entity, component) {\n\tconst world = system.physicsWorld;\n\tif (!world) return void 0;\n\tif (component._model || component._render) {\n\t\tconst entityTransform = entity.getWorldTransform();\n\t\tconst scale2 = entityTransform.getScale();\n\t\tconst sources = [];\n\t\tlet shapeScale = null;\n\t\tif (component._render) {\n\t\t\tconst meshes = component._render.meshes;\n\t\t\tfor (let i2 = 0; i2 < meshes.length; i2++) {\n\t\t\t\tsources.push(createMeshSource(system, meshes[i2], null, scale2, component._convexHull, component._checkVertexDuplicates));\n\t\t\t}\n\t\t} else if (component._model) {\n\t\t\tconst meshInstances = component._model.meshInstances;\n\t\t\tfor (let i2 = 0; i2 < meshInstances.length; i2++) {\n\t\t\t\tsources.push(createMeshSource(system, meshInstances[i2].mesh, meshInstances[i2].node, null, false, component._checkVertexDuplicates));\n\t\t\t}\n\t\t\tshapeScale = scale2;\n\t\t}\n\t\tcomponent._builtWorldScale = scale2;\n\t\treturn world.createShape({\n\t\t\ttype: \"mesh\",\n\t\t\tsources,\n\t\t\tscale: shapeScale\n\t\t});\n\t}\n\treturn void 0;\n}\nfunction doRecreateMeshShape(system, component) {\n\tconst entity = component.entity;\n\tif (component._model || component._render) {\n\t\tdestroyShape(system, component);\n\t\tcomponent._shape = createMeshShape(system, entity, component);\n\t\tif (entity.rigidbody) {\n\t\t\trecreateBody(entity);\n\t\t} else {\n\t\t\trecreateTrigger(system, entity, component);\n\t\t}\n\t} else {\n\t\tbeforeRemove(system, entity, component);\n\t\tsystem.onRemove(entity);\n\t}\n}\nfunction loadMeshAsset(system, component, id14, property) {\n\tconst assets = system.app.assets;\n\tconst privateProperty = `_${property}`;\n\tconst previousPropertyValue = component[privateProperty];\n\tconst onAssetFullyReady = (asset2) => {\n\t\tif (component[privateProperty] !== previousPropertyValue) {\n\t\t\treturn;\n\t\t}\n\t\tcomponent[privateProperty] = asset2.resource;\n\t\tdoRecreateMeshShape(system, component);\n\t};\n\tconst loadAndHandleAsset = (asset2) => {\n\t\tasset2.ready((asset3) => {\n\t\t\tif (asset3.data.containerAsset) {\n\t\t\t\tconst containerAsset = assets.get(asset3.data.containerAsset);\n\t\t\t\tif (containerAsset.loaded) {\n\t\t\t\t\tonAssetFullyReady(asset3);\n\t\t\t\t} else {\n\t\t\t\t\tcontainerAsset.ready(() => {\n\t\t\t\t\t\tonAssetFullyReady(asset3);\n\t\t\t\t\t});\n\t\t\t\t\tassets.load(containerAsset);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tonAssetFullyReady(asset3);\n\t\t\t}\n\t\t});\n\t\tassets.load(asset2);\n\t};\n\tconst asset = assets.get(id14);\n\tif (asset) {\n\t\tloadAndHandleAsset(asset);\n\t} else {\n\t\tassets.once(`add:${id14}`, loadAndHandleAsset);\n\t}\n}\nfunction recreateMeshShapes(system, component) {\n\tif (component._renderAsset || component._asset) {\n\t\tif (component.enabled && component.entity.enabled) {\n\t\t\tloadMeshAsset(\n\t\t\t\tsystem,\n\t\t\t\tcomponent,\n\t\t\t\tcomponent._renderAsset || component._asset,\n\t\t\t\tcomponent._renderAsset ? \"render\" : \"model\"\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\t}\n\tdoRecreateMeshShape(system, component);\n}\nfunction updateMeshTransform(system, component, position5, rotation7, scale2) {\n\tif (component.shape && component._builtWorldScale) {\n\t\tconst entityTransform = component.entity.getWorldTransform();\n\t\tconst worldScale = entityTransform.getScale();\n\t\tif (!worldScale.equals(component._builtWorldScale)) {\n\t\t\tdoRecreateMeshShape(system, component);\n\t\t}\n\t}\n\tupdateShapeTransform(system, component, position5, rotation7, scale2);\n}\nvar CollisionComponentSystem = class extends ComponentSystem {\n\tconstructor(app2) {\n\t\tsuper(app2);\n\t\tthis.id = \"collision\";\n\t\tthis.ComponentType = CollisionComponent;\n\t\tthis.on(\"beforeremove\", this.onBeforeRemove, this);\n\t\tthis.on(\"remove\", this.onRemove, this);\n\t}\n\tget physicsWorld() {\n\t\treturn this.app.systems.rigidbody?.physicsWorld ?? null;\n\t}\n\tinitializeComponentData(component, data2) {\n\t\tif (data2.type) {\n\t\t\tcomponent._type = data2.type;\n\t\t}\n\t\tlet properties = _properties3;\n\t\tif (data2.asset !== void 0) {\n\t\t\tproperties = properties.filter((p) => p !== \"model\" && p !== \"render\");\n\t\t} else if (data2.model !== void 0) {\n\t\t\tproperties = properties.filter((p) => p !== \"asset\");\n\t\t}\n\t\tfor (const property of properties) {\n\t\t\tif (data2[property] !== void 0) {\n\t\t\t\tcomponent[property] = data2[property];\n\t\t\t}\n\t\t}\n\t\tconst impl = getImpl(component._type);\n\t\t(impl.beforeInitialize ?? beforeInitialize)(this, component);\n\t\tsuper.initializeComponentData(component, data2);\n\t\tafterInitialize(this, component);\n\t}\n\tcloneComponent(entity, clone) {\n\t\tconst c2 = entity.collision;\n\t\tconst data2 = {\n\t\t\tenabled: c2.enabled,\n\t\t\ttype: c2.type\n\t\t};\n\t\tfor (const property of _properties3) {\n\t\t\tdata2[property] = c2[property];\n\t\t}\n\t\treturn this.addComponent(clone, data2);\n\t}\n\tonBeforeRemove(entity, component) {\n\t\tbeforeRemove(this, entity, component);\n\t\tcomponent.onBeforeRemove();\n\t\tif (this.app.systems.rigidbody) {\n\t\t\tthis.app.systems.rigidbody.clearEntityCollisions(entity);\n\t\t}\n\t}\n\tonRemove(entity) {\n\t\tif (entity.rigidbody && entity.rigidbody._body) {\n\t\t\tentity.rigidbody.disableSimulation();\n\t\t}\n\t\tif (entity.trigger) {\n\t\t\tentity.trigger.destroy();\n\t\t\tdelete entity.trigger;\n\t\t}\n\t}\n\tupdateCompoundChildTransform(entity, forceUpdate) {\n\t\tconst parentComponent = entity.collision._compoundParent;\n\t\tif (parentComponent === entity.collision) return;\n\t\tif (entity.enabled && entity.collision.enabled && (entity._dirtyLocal || forceUpdate)) {\n\t\t\tthis._getNodeTransform(entity, parentComponent.entity, p3, quat22);\n\t\t\tthis.physicsWorld.updateCompoundChild(parentComponent.shape, entity.collision.shape, p3, quat22);\n\t\t}\n\t}\n\t_removeCompoundChild(collision, shape) {\n\t\tthis.physicsWorld.removeCompoundChild(collision.shape, shape);\n\t}\n\tonTransformChanged(component, position5, rotation7, scale2) {\n\t\tconst impl = getImpl(component.type);\n\t\t(impl.updateTransform ?? updateShapeTransform)(this, component, position5, rotation7, scale2);\n\t}\n\t// Destroys the previous collision type and creates a new one based on the new type provided\n\tchangeType(component, previousType, newType) {\n\t\tbeforeRemove(this, component.entity, component);\n\t\tthis.onRemove(component.entity);\n\t\tconst impl = getImpl(newType);\n\t\t(impl.beforeInitialize ?? beforeInitialize)(this, component);\n\t\tafterInitialize(this, component);\n\t}\n\t// Recreates rigid bodies or triggers for the specified component\n\trecreatePhysicalShapes(component) {\n\t\tconst impl = getImpl(component.type);\n\t\t(impl.recreatePhysicalShapes ?? recreateShapes)(this, component);\n\t}\n\tdoRecreatePhysicalShape(component) {\n\t\tdoRecreateMeshShape(this, component);\n\t}\n\t_addEachDescendant(entity) {\n\t\tif (!entity.collision || entity.rigidbody) {\n\t\t\treturn;\n\t\t}\n\t\tentity.collision._compoundParent = this;\n\t\tif (entity !== this.entity) {\n\t\t\tentity.collision.system.recreatePhysicalShapes(entity.collision);\n\t\t}\n\t}\n\t_calculateNodeRelativeTransform(node, relative) {\n\t\tif (node === relative) {\n\t\t\tconst scale2 = node.getWorldTransform().getScale();\n\t\t\tmat42.setScale(scale2.x, scale2.y, scale2.z);\n\t\t} else {\n\t\t\tthis._calculateNodeRelativeTransform(node.parent, relative);\n\t\t\tmat42.mul(node.getLocalTransform());\n\t\t}\n\t}\n\t_getNodeScaling(node) {\n\t\treturn node.getWorldTransform().getScale();\n\t}\n\t_getNodeTransform(node, relative, position5, rotation7) {\n\t\tlet pos, rot;\n\t\tif (relative) {\n\t\t\tthis._calculateNodeRelativeTransform(node, relative);\n\t\t\tpos = p1;\n\t\t\trot = quat2;\n\t\t\tmat42.getTranslation(pos);\n\t\t\trot.setFromMat4(mat42);\n\t\t} else {\n\t\t\tpos = node.getPosition();\n\t\t\trot = node.getRotation();\n\t\t}\n\t\tconst component = node.collision;\n\t\tif (component && component._hasOffset) {\n\t\t\tconst lo = component.linearOffset;\n\t\t\tconst ao = component.angularOffset;\n\t\t\tconst newOrigin = p2;\n\t\t\tquat2.copy(rot).transformVector(lo, newOrigin);\n\t\t\tnewOrigin.add(pos);\n\t\t\tquat2.copy(rot).mul(ao);\n\t\t\tposition5.copy(newOrigin);\n\t\t\trotation7.copy(quat2);\n\t\t} else {\n\t\t\tposition5.copy(pos);\n\t\t\trotation7.copy(rot);\n\t\t}\n\t}\n};\n\nvar _tempColor2 = new Color();\nvar _vertexFormatDeviceCache = new DeviceCache();\nvar ImageRenderable = class {\n\tconstructor(entity, mesh, material) {\n\t\tthis._entity = entity;\n\t\tthis._element = entity.element;\n\t\tthis.model = new Model();\n\t\tthis.node = new GraphNode();\n\t\tthis.model.graph = this.node;\n\t\tthis.mesh = mesh;\n\t\tthis.meshInstance = new MeshInstance(this.mesh, material, this.node);\n\t\tthis.meshInstance.name = `ImageElement: ${entity.name}`;\n\t\tthis.meshInstance.castShadow = false;\n\t\tthis.meshInstance.receiveShadow = false;\n\t\tthis._meshDirty = false;\n\t\tthis.model.meshInstances.push(this.meshInstance);\n\t\tthis._entity.addChild(this.model.graph);\n\t\tthis.model._entity = this._entity;\n\t\tthis.unmaskMeshInstance = null;\n\t}\n\tdestroy() {\n\t\tthis.setMaterial(null);\n\t\tthis._element.removeModelFromLayers(this.model);\n\t\tthis.model.destroy();\n\t\tthis.model = null;\n\t\tthis.node.remove();\n\t\tthis.node = null;\n\t\tthis.mesh = null;\n\t\tthis.meshInstance?.destroy();\n\t\tthis.meshInstance = null;\n\t\tthis.unmaskMeshInstance?.destroy();\n\t\tthis.unmaskMeshInstance = null;\n\t\tthis._entity = null;\n\t\tthis._element = null;\n\t}\n\tsetMesh(mesh) {\n\t\tif (!this.meshInstance) return;\n\t\tthis.mesh = mesh;\n\t\tthis.meshInstance.mesh = mesh;\n\t\tthis.meshInstance.visible = !!mesh;\n\t\tif (this.unmaskMeshInstance) {\n\t\t\tthis.unmaskMeshInstance.mesh = mesh;\n\t\t}\n\t\tthis.forceUpdateAabb();\n\t}\n\tsetMask(mask) {\n\t\tif (!this.meshInstance) return;\n\t\tif (this._entity.enabled && this._element.enabled) {\n\t\t\tthis._element.removeModelFromLayers(this.model);\n\t\t}\n\t\tif (mask) {\n\t\t\tthis.unmaskMeshInstance = new MeshInstance(this.mesh, this.meshInstance.material, this.node);\n\t\t\tthis.unmaskMeshInstance.name = `Unmask: ${this._entity.name}`;\n\t\t\tthis.unmaskMeshInstance.castShadow = false;\n\t\t\tthis.unmaskMeshInstance.receiveShadow = false;\n\t\t\tthis.unmaskMeshInstance.pick = false;\n\t\t\tthis.model.meshInstances.push(this.unmaskMeshInstance);\n\t\t\tfor (const name in this.meshInstance.parameters) {\n\t\t\t\tthis.unmaskMeshInstance.setParameter(name, this.meshInstance.parameters[name].data);\n\t\t\t}\n\t\t} else {\n\t\t\tconst idx = this.model.meshInstances.indexOf(this.unmaskMeshInstance);\n\t\t\tif (idx >= 0) {\n\t\t\t\tthis.model.meshInstances.splice(idx, 1);\n\t\t\t}\n\t\t}\n\t\tif (this._entity.enabled && this._element.enabled) {\n\t\t\tthis._element.addModelToLayers(this.model);\n\t\t}\n\t\tif (!mask) {\n\t\t\tthis.unmaskMeshInstance?.destroy();\n\t\t\tthis.unmaskMeshInstance = null;\n\t\t}\n\t}\n\tsetMaterial(material) {\n\t\tif (!this.meshInstance) return;\n\t\tthis.meshInstance.material = material;\n\t\tif (this.unmaskMeshInstance) {\n\t\t\tthis.unmaskMeshInstance.material = material;\n\t\t}\n\t}\n\tsetParameter(name, value) {\n\t\tif (!this.meshInstance) return;\n\t\tthis.meshInstance.setParameter(name, value);\n\t\tif (this.unmaskMeshInstance) {\n\t\t\tthis.unmaskMeshInstance.setParameter(name, value);\n\t\t}\n\t}\n\tdeleteParameter(name) {\n\t\tif (!this.meshInstance) return;\n\t\tthis.meshInstance.deleteParameter(name);\n\t\tif (this.unmaskMeshInstance) {\n\t\t\tthis.unmaskMeshInstance.deleteParameter(name);\n\t\t}\n\t}\n\tsetUnmaskDrawOrder() {\n\t\tif (!this.meshInstance) return;\n\t\tconst getLastChild = function(e) {\n\t\t\tlet last;\n\t\t\tconst c2 = e.children;\n\t\t\tconst l = c2.length;\n\t\t\tif (l) {\n\t\t\t\tfor (let i2 = 0; i2 < l; i2++) {\n\t\t\t\t\tif (c2[i2].element) {\n\t\t\t\t\t\tlast = c2[i2];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!last) return null;\n\t\t\t\tconst child = getLastChild(last);\n\t\t\t\tif (child) {\n\t\t\t\t\treturn child;\n\t\t\t\t}\n\t\t\t\treturn last;\n\t\t\t}\n\t\t\treturn null;\n\t\t};\n\t\tif (this.unmaskMeshInstance) {\n\t\t\tconst lastChild = getLastChild(this._entity);\n\t\t\tif (lastChild && lastChild.element) {\n\t\t\t\tthis.unmaskMeshInstance.drawOrder = lastChild.element.drawOrder + lastChild.element.getMaskOffset();\n\t\t\t} else {\n\t\t\t\tthis.unmaskMeshInstance.drawOrder = this.meshInstance.drawOrder + this._element.getMaskOffset();\n\t\t\t}\n\t\t}\n\t}\n\tsetDrawOrder(drawOrder) {\n\t\tif (!this.meshInstance) {\n\t\t\treturn;\n\t\t}\n\t\tthis.meshInstance.drawOrder = drawOrder;\n\t}\n\tsetCull(cull) {\n\t\tif (!this.meshInstance) return;\n\t\tconst element = this._element;\n\t\tlet visibleFn = null;\n\t\tif (cull && element._isScreenSpace()) {\n\t\t\tvisibleFn = function(camera) {\n\t\t\t\treturn element.isVisibleForCamera(camera);\n\t\t\t};\n\t\t}\n\t\tthis.meshInstance.cull = cull;\n\t\tthis.meshInstance.isVisibleFunc = visibleFn;\n\t\tif (this.unmaskMeshInstance) {\n\t\t\tthis.unmaskMeshInstance.cull = cull;\n\t\t\tthis.unmaskMeshInstance.isVisibleFunc = visibleFn;\n\t\t}\n\t}\n\tsetScreenSpace(screenSpace) {\n\t\tif (!this.meshInstance) return;\n\t\tthis.meshInstance.screenSpace = screenSpace;\n\t\tif (this.unmaskMeshInstance) {\n\t\t\tthis.unmaskMeshInstance.screenSpace = screenSpace;\n\t\t}\n\t}\n\tsetLayer(layer) {\n\t\tif (!this.meshInstance) return;\n\t\tthis.meshInstance.layer = layer;\n\t\tif (this.unmaskMeshInstance) {\n\t\t\tthis.unmaskMeshInstance.layer = layer;\n\t\t}\n\t}\n\tforceUpdateAabb(mask) {\n\t\tif (!this.meshInstance) return;\n\t\tthis.meshInstance._aabbVer = -1;\n\t\tif (this.unmaskMeshInstance) {\n\t\t\tthis.unmaskMeshInstance._aabbVer = -1;\n\t\t}\n\t}\n\tsetAabbFunc(fn) {\n\t\tif (!this.meshInstance) return;\n\t\tthis.meshInstance._updateAabbFunc = fn;\n\t\tif (this.unmaskMeshInstance) {\n\t\t\tthis.unmaskMeshInstance._updateAabbFunc = fn;\n\t\t}\n\t}\n};\nvar ImageElement = class {\n\t_evtSetMeshes = null;\n\tconstructor(element) {\n\t\tthis._element = element;\n\t\tthis._entity = element.entity;\n\t\tthis._system = element.system;\n\t\tthis._textureAsset = null;\n\t\tthis._texture = null;\n\t\tthis._materialAsset = null;\n\t\tthis._material = null;\n\t\tthis._spriteAsset = null;\n\t\tthis._sprite = null;\n\t\tthis._spriteFrame = 0;\n\t\tthis._pixelsPerUnit = null;\n\t\tthis._targetAspectRatio = -1;\n\t\tthis._rect = new Vec4(0, 0, 1, 1);\n\t\tthis._mask = false;\n\t\tthis._maskRef = 0;\n\t\tthis._outerScale = new Vec2();\n\t\tthis._outerScaleUniform = new Float32Array(2);\n\t\tthis._innerOffset = new Vec4();\n\t\tthis._innerOffsetUniform = new Float32Array(4);\n\t\tthis._atlasRect = new Vec4();\n\t\tthis._atlasRectUniform = new Float32Array(4);\n\t\tthis._defaultMesh = this._createMesh();\n\t\tthis._renderable = new ImageRenderable(this._entity, this._defaultMesh, this._material);\n\t\tthis._color = new Color(1, 1, 1, 1);\n\t\tthis._colorUniform = new Float32Array([1, 1, 1]);\n\t\tthis._updateRenderableEmissive();\n\t\tthis._renderable.setParameter(\"material_opacity\", 1);\n\t\tthis._updateAabbFunc = this._updateAabb.bind(this);\n\t\tthis._onScreenChange(this._element.screen);\n\t\tthis._element.on(\"resize\", this._onParentResizeOrPivotChange, this);\n\t\tthis._element.on(\"set:pivot\", this._onParentResizeOrPivotChange, this);\n\t\tthis._element.on(\"screen:set:screenspace\", this._onScreenSpaceChange, this);\n\t\tthis._element.on(\"set:screen\", this._onScreenChange, this);\n\t\tthis._element.on(\"set:draworder\", this._onDrawOrderChange, this);\n\t\tthis._element.on(\"screen:set:resolution\", this._onResolutionChange, this);\n\t\tif (!element._beingInitialized && element.enabled && element.entity.enabled) {\n\t\t\tthis.onEnable();\n\t\t}\n\t}\n\tdestroy() {\n\t\tthis.textureAsset = null;\n\t\tthis.spriteAsset = null;\n\t\tthis.materialAsset = null;\n\t\tthis._renderable.setMesh(this._defaultMesh);\n\t\tthis._renderable.destroy();\n\t\tthis._defaultMesh = null;\n\t\tthis._element.off(\"resize\", this._onParentResizeOrPivotChange, this);\n\t\tthis._element.off(\"set:pivot\", this._onParentResizeOrPivotChange, this);\n\t\tthis._element.off(\"screen:set:screenspace\", this._onScreenSpaceChange, this);\n\t\tthis._element.off(\"set:screen\", this._onScreenChange, this);\n\t\tthis._element.off(\"set:draworder\", this._onDrawOrderChange, this);\n\t\tthis._element.off(\"screen:set:resolution\", this._onResolutionChange, this);\n\t}\n\t_onResolutionChange(res) {\n\t}\n\t_onParentResizeOrPivotChange() {\n\t\tif (this._renderable.mesh) {\n\t\t\tthis._updateMesh(this._renderable.mesh);\n\t\t}\n\t}\n\t_onScreenSpaceChange(value) {\n\t\tthis._updateMaterial(value);\n\t}\n\t_onScreenChange(screen, previous) {\n\t\tif (screen) {\n\t\t\tthis._updateMaterial(screen.screen.screenSpace);\n\t\t} else {\n\t\t\tthis._updateMaterial(false);\n\t\t}\n\t}\n\t_onDrawOrderChange(order) {\n\t\tthis._renderable.setDrawOrder(order);\n\t\tif (this.mask && this._element.screen) {\n\t\t\tthis._element.screen.screen.once(\"syncdraworder\", function() {\n\t\t\t\tthis._renderable.setUnmaskDrawOrder();\n\t\t\t}, this);\n\t\t}\n\t}\n\t// Returns true if we are using a material\n\t// other than the default materials\n\t_hasUserMaterial() {\n\t\treturn !!this._materialAsset || !!this._material && this._system.defaultImageMaterials.indexOf(this._material) === -1;\n\t}\n\t_use9Slicing() {\n\t\treturn this.sprite && (this.sprite.renderMode === SPRITE_RENDERMODE_SLICED || this.sprite.renderMode === SPRITE_RENDERMODE_TILED);\n\t}\n\t_updateMaterial(screenSpace) {\n\t\tconst mask = !!this._mask;\n\t\tconst nineSliced = !!(this.sprite && this.sprite.renderMode === SPRITE_RENDERMODE_SLICED);\n\t\tconst nineTiled = !!(this.sprite && this.sprite.renderMode === SPRITE_RENDERMODE_TILED);\n\t\tif (!this._hasUserMaterial()) {\n\t\t\tthis._material = this._system.getImageElementMaterial(screenSpace, mask, nineSliced, nineTiled);\n\t\t}\n\t\tif (this._renderable) {\n\t\t\tthis._renderable.setCull(!this._element._isScreenSpace() || this._element._isScreenCulled());\n\t\t\tthis._renderable.setMaterial(this._material);\n\t\t\tthis._renderable.setScreenSpace(screenSpace);\n\t\t\tthis._renderable.setLayer(screenSpace ? LAYER_HUD : LAYER_WORLD);\n\t\t}\n\t}\n\t// build a quad for the image\n\t_createMesh() {\n\t\tconst element = this._element;\n\t\tconst w = element.calculatedWidth;\n\t\tconst h2 = element.calculatedHeight;\n\t\tconst r = this._rect;\n\t\tconst device = this._system.app.graphicsDevice;\n\t\tconst vertexData = new Float32Array([\n\t\t\tw,\n\t\t\t0,\n\t\t\t0,\n\t\t\t// position\n\t\t\t0,\n\t\t\t0,\n\t\t\t1,\n\t\t\t// normal\n\t\t\tr.x + r.z,\n\t\t\t1 - r.y,\n\t\t\t// uv\n\t\t\tw,\n\t\t\th2,\n\t\t\t0,\n\t\t\t// position\n\t\t\t0,\n\t\t\t0,\n\t\t\t1,\n\t\t\t// normal\n\t\t\tr.x + r.z,\n\t\t\t1 - (r.y + r.w),\n\t\t\t// uv\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t// position\n\t\t\t0,\n\t\t\t0,\n\t\t\t1,\n\t\t\t// normal\n\t\t\tr.x,\n\t\t\t1 - r.y,\n\t\t\t// uv\n\t\t\t0,\n\t\t\th2,\n\t\t\t0,\n\t\t\t// position\n\t\t\t0,\n\t\t\t0,\n\t\t\t1,\n\t\t\t// normal\n\t\t\tr.x,\n\t\t\t1 - (r.y + r.w)\n\t\t\t// uv\n\t\t]);\n\t\tconst vertexFormat = _vertexFormatDeviceCache.get(device, () => {\n\t\t\treturn new VertexFormat(device, [\n\t\t\t\t{ semantic: SEMANTIC_POSITION, components: 3, type: TYPE_FLOAT32 },\n\t\t\t\t{ semantic: SEMANTIC_NORMAL, components: 3, type: TYPE_FLOAT32 },\n\t\t\t\t{ semantic: SEMANTIC_TEXCOORD0, components: 2, type: TYPE_FLOAT32 }\n\t\t\t]);\n\t\t});\n\t\tconst vertexBuffer = new VertexBuffer(device, vertexFormat, 4, {\n\t\t\tdata: vertexData.buffer\n\t\t});\n\t\tconst mesh = new Mesh(device);\n\t\tmesh.vertexBuffer = vertexBuffer;\n\t\tmesh.primitive[0].type = PRIMITIVE_TRISTRIP;\n\t\tmesh.primitive[0].base = 0;\n\t\tmesh.primitive[0].count = 4;\n\t\tmesh.primitive[0].indexed = false;\n\t\tmesh.aabb.setMinMax(Vec3.ZERO, new Vec3(w, h2, 0));\n\t\tthis._updateMesh(mesh);\n\t\treturn mesh;\n\t}\n\t_updateMesh(mesh) {\n\t\tconst element = this._element;\n\t\tlet w = element.calculatedWidth;\n\t\tlet h2 = element.calculatedHeight;\n\t\tif (element.fitMode !== FITMODE_STRETCH && this._targetAspectRatio > 0) {\n\t\t\tconst actualRatio = element.calculatedWidth / element.calculatedHeight;\n\t\t\tif (element.fitMode === FITMODE_CONTAIN && actualRatio > this._targetAspectRatio || element.fitMode === FITMODE_COVER && actualRatio < this._targetAspectRatio) {\n\t\t\t\tw = element.calculatedHeight * this._targetAspectRatio;\n\t\t\t} else {\n\t\t\t\th2 = element.calculatedWidth / this._targetAspectRatio;\n\t\t\t}\n\t\t}\n\t\tconst screenSpace = element._isScreenSpace();\n\t\tthis._updateMaterial(screenSpace);\n\t\tif (this._renderable) this._renderable.forceUpdateAabb();\n\t\tif (this.sprite && (this.sprite.renderMode === SPRITE_RENDERMODE_SLICED || this.sprite.renderMode === SPRITE_RENDERMODE_TILED)) {\n\t\t\tconst frameData = this._sprite.atlas.frames[this._sprite.frameKeys[this._spriteFrame]];\n\t\t\tconst borderWidthScale = 2 / frameData.rect.z;\n\t\t\tconst borderHeightScale = 2 / frameData.rect.w;\n\t\t\tthis._innerOffset.set(\n\t\t\t\tframeData.border.x * borderWidthScale,\n\t\t\t\tframeData.border.y * borderHeightScale,\n\t\t\t\tframeData.border.z * borderWidthScale,\n\t\t\t\tframeData.border.w * borderHeightScale\n\t\t\t);\n\t\t\tconst tex = this.sprite.atlas.texture;\n\t\t\tthis._atlasRect.set(\n\t\t\t\tframeData.rect.x / tex.width,\n\t\t\t\tframeData.rect.y / tex.height,\n\t\t\t\tframeData.rect.z / tex.width,\n\t\t\t\tframeData.rect.w / tex.height\n\t\t\t);\n\t\t\tconst ppu = this._pixelsPerUnit !== null ? this._pixelsPerUnit : this.sprite.pixelsPerUnit;\n\t\t\tconst scaleMulX = frameData.rect.z / ppu;\n\t\t\tconst scaleMulY = frameData.rect.w / ppu;\n\t\t\tthis._outerScale.set(Math.max(w, this._innerOffset.x * scaleMulX), Math.max(h2, this._innerOffset.y * scaleMulY));\n\t\t\tlet scaleX = scaleMulX;\n\t\t\tlet scaleY = scaleMulY;\n\t\t\tthis._outerScale.x /= scaleMulX;\n\t\t\tthis._outerScale.y /= scaleMulY;\n\t\t\tscaleX *= math.clamp(w / (this._innerOffset.x * scaleMulX), 1e-4, 1);\n\t\t\tscaleY *= math.clamp(h2 / (this._innerOffset.y * scaleMulY), 1e-4, 1);\n\t\t\tif (this._renderable) {\n\t\t\t\tthis._innerOffsetUniform[0] = this._innerOffset.x;\n\t\t\t\tthis._innerOffsetUniform[1] = this._innerOffset.y;\n\t\t\t\tthis._innerOffsetUniform[2] = this._innerOffset.z;\n\t\t\t\tthis._innerOffsetUniform[3] = this._innerOffset.w;\n\t\t\t\tthis._renderable.setParameter(\"innerOffset\", this._innerOffsetUniform);\n\t\t\t\tthis._atlasRectUniform[0] = this._atlasRect.x;\n\t\t\t\tthis._atlasRectUniform[1] = this._atlasRect.y;\n\t\t\t\tthis._atlasRectUniform[2] = this._atlasRect.z;\n\t\t\t\tthis._atlasRectUniform[3] = this._atlasRect.w;\n\t\t\t\tthis._renderable.setParameter(\"atlasRect\", this._atlasRectUniform);\n\t\t\t\tthis._outerScaleUniform[0] = this._outerScale.x;\n\t\t\t\tthis._outerScaleUniform[1] = this._outerScale.y;\n\t\t\t\tthis._renderable.setParameter(\"outerScale\", this._outerScaleUniform);\n\t\t\t\tthis._renderable.setAabbFunc(this._updateAabbFunc);\n\t\t\t\tthis._renderable.node.setLocalScale(scaleX, scaleY, 1);\n\t\t\t\tthis._renderable.node.setLocalPosition((0.5 - element.pivot.x) * w, (0.5 - element.pivot.y) * h2, 0);\n\t\t\t}\n\t\t} else {\n\t\t\tconst vb = mesh.vertexBuffer;\n\t\t\tconst vertexDataF32 = new Float32Array(vb.lock());\n\t\t\tconst hp = element.pivot.x;\n\t\t\tconst vp = element.pivot.y;\n\t\t\tvertexDataF32[0] = w - hp * w;\n\t\t\tvertexDataF32[1] = 0 - vp * h2;\n\t\t\tvertexDataF32[8] = w - hp * w;\n\t\t\tvertexDataF32[9] = h2 - vp * h2;\n\t\t\tvertexDataF32[16] = 0 - hp * w;\n\t\t\tvertexDataF32[17] = 0 - vp * h2;\n\t\t\tvertexDataF32[24] = 0 - hp * w;\n\t\t\tvertexDataF32[25] = h2 - vp * h2;\n\t\t\tlet atlasTextureWidth = 1;\n\t\t\tlet atlasTextureHeight = 1;\n\t\t\tlet rect = this._rect;\n\t\t\tif (this._sprite && this._sprite.frameKeys[this._spriteFrame] && this._sprite.atlas) {\n\t\t\t\tconst frame = this._sprite.atlas.frames[this._sprite.frameKeys[this._spriteFrame]];\n\t\t\t\tif (frame) {\n\t\t\t\t\trect = frame.rect;\n\t\t\t\t\tatlasTextureWidth = this._sprite.atlas.texture.width;\n\t\t\t\t\tatlasTextureHeight = this._sprite.atlas.texture.height;\n\t\t\t\t}\n\t\t\t}\n\t\t\tvertexDataF32[6] = (rect.x + rect.z) / atlasTextureWidth;\n\t\t\tvertexDataF32[7] = 1 - rect.y / atlasTextureHeight;\n\t\t\tvertexDataF32[14] = (rect.x + rect.z) / atlasTextureWidth;\n\t\t\tvertexDataF32[15] = 1 - (rect.y + rect.w) / atlasTextureHeight;\n\t\t\tvertexDataF32[22] = rect.x / atlasTextureWidth;\n\t\t\tvertexDataF32[23] = 1 - rect.y / atlasTextureHeight;\n\t\t\tvertexDataF32[30] = rect.x / atlasTextureWidth;\n\t\t\tvertexDataF32[31] = 1 - (rect.y + rect.w) / atlasTextureHeight;\n\t\t\tvb.unlock();\n\t\t\tconst min = new Vec3(0 - hp * w, 0 - vp * h2, 0);\n\t\t\tconst max = new Vec3(w - hp * w, h2 - vp * h2, 0);\n\t\t\tmesh.aabb.setMinMax(min, max);\n\t\t\tif (this._renderable) {\n\t\t\t\tthis._renderable.node.setLocalScale(1, 1, 1);\n\t\t\t\tthis._renderable.node.setLocalPosition(0, 0, 0);\n\t\t\t\tthis._renderable.setAabbFunc(null);\n\t\t\t}\n\t\t}\n\t\tthis._meshDirty = false;\n\t}\n\t// Gets the mesh from the sprite asset\n\t// if the sprite is 9-sliced or the default mesh from the\n\t// image element and calls _updateMesh or sets meshDirty to true\n\t// if the component is currently being initialized. Also updates\n\t// aspect ratio. We need to call _updateSprite every time\n\t// something related to the sprite asset changes\n\t_updateSprite() {\n\t\tlet nineSlice = false;\n\t\tlet mesh = null;\n\t\tthis._targetAspectRatio = -1;\n\t\tif (this._sprite && this._sprite.atlas) {\n\t\t\tmesh = this._sprite.meshes[this.spriteFrame];\n\t\t\tnineSlice = this._sprite.renderMode === SPRITE_RENDERMODE_SLICED || this._sprite.renderMode === SPRITE_RENDERMODE_TILED;\n\t\t\tconst frameData = this._sprite.atlas.frames[this._sprite.frameKeys[this._spriteFrame]];\n\t\t\tif (frameData?.rect.w > 0) {\n\t\t\t\tthis._targetAspectRatio = frameData.rect.z / frameData.rect.w;\n\t\t\t}\n\t\t}\n\t\tthis.mesh = nineSlice ? mesh : this._defaultMesh;\n\t\tthis.refreshMesh();\n\t}\n\trefreshMesh() {\n\t\tif (this.mesh) {\n\t\t\tif (!this._element._beingInitialized) {\n\t\t\t\tthis._updateMesh(this.mesh);\n\t\t\t} else {\n\t\t\t\tthis._meshDirty = true;\n\t\t\t}\n\t\t}\n\t}\n\t// updates AABB while 9-slicing\n\t_updateAabb(aabb3) {\n\t\taabb3.center.set(0, 0, 0);\n\t\taabb3.halfExtents.set(this._outerScale.x * 0.5, this._outerScale.y * 0.5, 1e-3);\n\t\taabb3.setFromTransformedAabb(aabb3, this._renderable.node.getWorldTransform());\n\t\treturn aabb3;\n\t}\n\t_toggleMask() {\n\t\tthis._element._dirtifyMask();\n\t\tconst screenSpace = this._element._isScreenSpace();\n\t\tthis._updateMaterial(screenSpace);\n\t\tthis._renderable.setMask(!!this._mask);\n\t}\n\t_onMaterialLoad(asset) {\n\t\tthis.material = asset.resource;\n\t}\n\t_onMaterialAdded(asset) {\n\t\tthis._system.app.assets.off(`add:${asset.id}`, this._onMaterialAdded, this);\n\t\tif (this._materialAsset === asset.id) {\n\t\t\tthis._bindMaterialAsset(asset);\n\t\t}\n\t}\n\t_bindMaterialAsset(asset) {\n\t\tif (!this._entity.enabled) return;\n\t\tasset.on(\"load\", this._onMaterialLoad, this);\n\t\tasset.on(\"change\", this._onMaterialChange, this);\n\t\tasset.on(\"remove\", this._onMaterialRemove, this);\n\t\tif (asset.resource) {\n\t\t\tthis._onMaterialLoad(asset);\n\t\t} else {\n\t\t\tthis._system.app.assets.load(asset);\n\t\t}\n\t}\n\t_unbindMaterialAsset(asset) {\n\t\tasset.off(\"load\", this._onMaterialLoad, this);\n\t\tasset.off(\"change\", this._onMaterialChange, this);\n\t\tasset.off(\"remove\", this._onMaterialRemove, this);\n\t}\n\t_onMaterialChange() {\n\t}\n\t_onMaterialRemove() {\n\t}\n\t_onTextureAdded(asset) {\n\t\tthis._system.app.assets.off(`add:${asset.id}`, this._onTextureAdded, this);\n\t\tif (this._textureAsset === asset.id) {\n\t\t\tthis._bindTextureAsset(asset);\n\t\t}\n\t}\n\t_bindTextureAsset(asset) {\n\t\tif (!this._entity.enabled) return;\n\t\tasset.on(\"load\", this._onTextureLoad, this);\n\t\tasset.on(\"change\", this._onTextureChange, this);\n\t\tasset.on(\"remove\", this._onTextureRemove, this);\n\t\tif (asset.resource) {\n\t\t\tthis._onTextureLoad(asset);\n\t\t} else {\n\t\t\tthis._system.app.assets.load(asset);\n\t\t}\n\t}\n\t_unbindTextureAsset(asset) {\n\t\tasset.off(\"load\", this._onTextureLoad, this);\n\t\tasset.off(\"change\", this._onTextureChange, this);\n\t\tasset.off(\"remove\", this._onTextureRemove, this);\n\t}\n\t_onTextureLoad(asset) {\n\t\tthis.texture = asset.resource;\n\t}\n\t_onTextureChange(asset) {\n\t}\n\t_onTextureRemove(asset) {\n\t}\n\t// When sprite asset is added bind it\n\t_onSpriteAssetAdded(asset) {\n\t\tthis._system.app.assets.off(`add:${asset.id}`, this._onSpriteAssetAdded, this);\n\t\tif (this._spriteAsset === asset.id) {\n\t\t\tthis._bindSpriteAsset(asset);\n\t\t}\n\t}\n\t// Hook up event handlers on sprite asset\n\t_bindSpriteAsset(asset) {\n\t\tif (!this._entity.enabled) return;\n\t\tasset.on(\"load\", this._onSpriteAssetLoad, this);\n\t\tasset.on(\"change\", this._onSpriteAssetChange, this);\n\t\tasset.on(\"remove\", this._onSpriteAssetRemove, this);\n\t\tif (asset.resource) {\n\t\t\tthis._onSpriteAssetLoad(asset);\n\t\t} else {\n\t\t\tthis._system.app.assets.load(asset);\n\t\t}\n\t}\n\t_unbindSpriteAsset(asset) {\n\t\tasset.off(\"load\", this._onSpriteAssetLoad, this);\n\t\tasset.off(\"change\", this._onSpriteAssetChange, this);\n\t\tasset.off(\"remove\", this._onSpriteAssetRemove, this);\n\t\tif (asset.data.textureAtlasAsset) {\n\t\t\tthis._system.app.assets.off(`load:${asset.data.textureAtlasAsset}`, this._onTextureAtlasLoad, this);\n\t\t}\n\t}\n\t// When sprite asset is loaded make sure the texture atlas asset is loaded too\n\t// If so then set the sprite, otherwise wait for the atlas to be loaded first\n\t_onSpriteAssetLoad(asset) {\n\t\tif (!asset || !asset.resource) {\n\t\t\tthis.sprite = null;\n\t\t} else {\n\t\t\tif (!asset.resource.atlas) {\n\t\t\t\tconst atlasAssetId = asset.data.textureAtlasAsset;\n\t\t\t\tif (atlasAssetId) {\n\t\t\t\t\tconst assets = this._system.app.assets;\n\t\t\t\t\tassets.off(`load:${atlasAssetId}`, this._onTextureAtlasLoad, this);\n\t\t\t\t\tassets.once(`load:${atlasAssetId}`, this._onTextureAtlasLoad, this);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.sprite = asset.resource;\n\t\t\t}\n\t\t}\n\t}\n\t// When the sprite asset changes reset it\n\t_onSpriteAssetChange(asset) {\n\t\tthis._onSpriteAssetLoad(asset);\n\t}\n\t_onSpriteAssetRemove(asset) {\n\t}\n\t// Hook up event handlers on sprite asset\n\t_bindSprite(sprite) {\n\t\tthis._evtSetMeshes = sprite.on(\"set:meshes\", this._onSpriteMeshesChange, this);\n\t\tsprite.on(\"set:pixelsPerUnit\", this._onSpritePpuChange, this);\n\t\tsprite.on(\"set:atlas\", this._onAtlasTextureChange, this);\n\t\tif (sprite.atlas) {\n\t\t\tsprite.atlas.on(\"set:texture\", this._onAtlasTextureChange, this);\n\t\t}\n\t}\n\t_unbindSprite(sprite) {\n\t\tthis._evtSetMeshes?.off();\n\t\tthis._evtSetMeshes = null;\n\t\tsprite.off(\"set:pixelsPerUnit\", this._onSpritePpuChange, this);\n\t\tsprite.off(\"set:atlas\", this._onAtlasTextureChange, this);\n\t\tif (sprite.atlas) {\n\t\t\tsprite.atlas.off(\"set:texture\", this._onAtlasTextureChange, this);\n\t\t}\n\t}\n\t_onSpriteMeshesChange() {\n\t\tif (this._sprite) {\n\t\t\tthis._spriteFrame = math.clamp(this._spriteFrame, 0, this._sprite.frameKeys.length - 1);\n\t\t}\n\t\tthis._updateSprite();\n\t}\n\t_onSpritePpuChange() {\n\t\tif (this.sprite.renderMode !== SPRITE_RENDERMODE_SIMPLE && this._pixelsPerUnit === null) {\n\t\t\tthis._updateSprite();\n\t\t}\n\t}\n\t_onAtlasTextureChange() {\n\t\tif (this.sprite && this.sprite.atlas && this.sprite.atlas.texture) {\n\t\t\tthis._renderable.setParameter(\"texture_emissiveMap\", this._sprite.atlas.texture);\n\t\t\tthis._renderable.setParameter(\"texture_opacityMap\", this._sprite.atlas.texture);\n\t\t} else {\n\t\t\tthis._renderable.deleteParameter(\"texture_emissiveMap\");\n\t\t\tthis._renderable.deleteParameter(\"texture_opacityMap\");\n\t\t}\n\t}\n\t// When atlas is loaded try to reset the sprite asset\n\t_onTextureAtlasLoad(atlasAsset) {\n\t\tconst spriteAsset = this._spriteAsset;\n\t\tif (spriteAsset instanceof Asset) {\n\t\t\tthis._onSpriteAssetLoad(spriteAsset);\n\t\t} else {\n\t\t\tthis._onSpriteAssetLoad(this._system.app.assets.get(spriteAsset));\n\t\t}\n\t}\n\tonEnable() {\n\t\tif (this._materialAsset) {\n\t\t\tconst asset = this._system.app.assets.get(this._materialAsset);\n\t\t\tif (asset && asset.resource !== this._material) {\n\t\t\t\tthis._bindMaterialAsset(asset);\n\t\t\t}\n\t\t}\n\t\tif (this._textureAsset) {\n\t\t\tconst asset = this._system.app.assets.get(this._textureAsset);\n\t\t\tif (asset && asset.resource !== this._texture) {\n\t\t\t\tthis._bindTextureAsset(asset);\n\t\t\t}\n\t\t}\n\t\tif (this._spriteAsset) {\n\t\t\tconst asset = this._system.app.assets.get(this._spriteAsset);\n\t\t\tif (asset && asset.resource !== this._sprite) {\n\t\t\t\tthis._bindSpriteAsset(asset);\n\t\t\t}\n\t\t}\n\t\tthis._element.addModelToLayers(this._renderable.model);\n\t}\n\tonDisable() {\n\t\tthis._element.removeModelFromLayers(this._renderable.model);\n\t}\n\t_setStencil(stencilParams) {\n\t\tthis._renderable.meshInstance.stencilFront = stencilParams;\n\t\tthis._renderable.meshInstance.stencilBack = stencilParams;\n\t\tlet ref = 0;\n\t\tif (this._element.maskedBy) {\n\t\t\tref = this._element.maskedBy.element._image._maskRef;\n\t\t}\n\t\tif (this._renderable.unmaskMeshInstance) {\n\t\t\tconst sp = new StencilParameters({\n\t\t\t\tref: ref + 1,\n\t\t\t\tfunc: FUNC_EQUAL,\n\t\t\t\tzpass: STENCILOP_DECREMENT\n\t\t\t});\n\t\t\tthis._renderable.unmaskMeshInstance.stencilFront = sp;\n\t\t\tthis._renderable.unmaskMeshInstance.stencilBack = sp;\n\t\t}\n\t}\n\t_updateRenderableEmissive() {\n\t\t_tempColor2.linear(this._color);\n\t\tthis._colorUniform[0] = _tempColor2.r;\n\t\tthis._colorUniform[1] = _tempColor2.g;\n\t\tthis._colorUniform[2] = _tempColor2.b;\n\t\tthis._renderable.setParameter(\"material_emissive\", this._colorUniform);\n\t}\n\tset color(value) {\n\t\tconst { r, g, b } = value;\n\t\tif (this._color.r !== r || this._color.g !== g || this._color.b !== b) {\n\t\t\tthis._color.r = r;\n\t\t\tthis._color.g = g;\n\t\t\tthis._color.b = b;\n\t\t\tthis._updateRenderableEmissive();\n\t\t}\n\t\tif (this._element) {\n\t\t\tthis._element.fire(\"set:color\", this._color);\n\t\t}\n\t}\n\tget color() {\n\t\treturn this._color;\n\t}\n\tset opacity(value) {\n\t\tif (value !== this._color.a) {\n\t\t\tthis._color.a = value;\n\t\t\tthis._renderable.setParameter(\"material_opacity\", value);\n\t\t}\n\t\tif (this._element) {\n\t\t\tthis._element.fire(\"set:opacity\", value);\n\t\t}\n\t}\n\tget opacity() {\n\t\treturn this._color.a;\n\t}\n\tset rect(value) {\n\t\tlet x3, y2, z2, w;\n\t\tif (value instanceof Vec4) {\n\t\t\tx3 = value.x;\n\t\t\ty2 = value.y;\n\t\t\tz2 = value.z;\n\t\t\tw = value.w;\n\t\t} else {\n\t\t\tx3 = value[0];\n\t\t\ty2 = value[1];\n\t\t\tz2 = value[2];\n\t\t\tw = value[3];\n\t\t}\n\t\tif (x3 === this._rect.x && y2 === this._rect.y && z2 === this._rect.z && w === this._rect.w) {\n\t\t\treturn;\n\t\t}\n\t\tthis._rect.set(x3, y2, z2, w);\n\t\tif (this._renderable.mesh) {\n\t\t\tif (!this._element._beingInitialized) {\n\t\t\t\tthis._updateMesh(this._renderable.mesh);\n\t\t\t} else {\n\t\t\t\tthis._meshDirty = true;\n\t\t\t}\n\t\t}\n\t}\n\tget rect() {\n\t\treturn this._rect;\n\t}\n\t_removeMaterialAssetEvents() {\n\t\tif (this._materialAsset) {\n\t\t\tconst assets = this._system.app.assets;\n\t\t\tassets.off(`add:${this._materialAsset}`, this._onMaterialAdded, this);\n\t\t\tconst asset = assets.get(this._materialAsset);\n\t\t\tif (asset) {\n\t\t\t\tasset.off(\"load\", this._onMaterialLoad, this);\n\t\t\t\tasset.off(\"change\", this._onMaterialChange, this);\n\t\t\t\tasset.off(\"remove\", this._onMaterialRemove, this);\n\t\t\t}\n\t\t}\n\t}\n\tset material(value) {\n\t\tif (this._material === value) return;\n\t\tif (!value) {\n\t\t\tconst screenSpace = this._element._isScreenSpace();\n\t\t\tif (this.mask) {\n\t\t\t\tvalue = screenSpace ? this._system.defaultScreenSpaceImageMaskMaterial : this._system.defaultImageMaskMaterial;\n\t\t\t} else {\n\t\t\t\tvalue = screenSpace ? this._system.defaultScreenSpaceImageMaterial : this._system.defaultImageMaterial;\n\t\t\t}\n\t\t}\n\t\tthis._material = value;\n\t\tif (this._materialAsset) {\n\t\t\tconst asset = this._system.app.assets.get(this._materialAsset);\n\t\t\tif (!asset || asset.resource !== value) {\n\t\t\t\tthis._removeMaterialAssetEvents();\n\t\t\t\tthis._materialAsset = null;\n\t\t\t}\n\t\t}\n\t\tif (value) {\n\t\t\tthis._renderable.setMaterial(value);\n\t\t\tif (this._hasUserMaterial()) {\n\t\t\t\tthis._renderable.deleteParameter(\"material_opacity\");\n\t\t\t\tthis._renderable.deleteParameter(\"material_emissive\");\n\t\t\t} else {\n\t\t\t\tthis._updateRenderableEmissive();\n\t\t\t\tthis._renderable.setParameter(\"material_opacity\", this._color.a);\n\t\t\t}\n\t\t}\n\t}\n\tget material() {\n\t\treturn this._material;\n\t}\n\tset materialAsset(value) {\n\t\tconst assets = this._system.app.assets;\n\t\tlet _id = value;\n\t\tif (value instanceof Asset) {\n\t\t\t_id = value.id;\n\t\t}\n\t\tif (this._materialAsset !== _id) {\n\t\t\tthis._removeMaterialAssetEvents();\n\t\t\tthis._materialAsset = _id;\n\t\t\tif (this._materialAsset) {\n\t\t\t\tconst asset = assets.get(this._materialAsset);\n\t\t\t\tif (!asset) {\n\t\t\t\t\tthis._materialAsset = null;\n\t\t\t\t\tthis.material = null;\n\t\t\t\t\tthis._materialAsset = _id;\n\t\t\t\t\tassets.on(`add:${this._materialAsset}`, this._onMaterialAdded, this);\n\t\t\t\t} else {\n\t\t\t\t\tthis._bindMaterialAsset(asset);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis._materialAsset = null;\n\t\t\t\tthis.material = null;\n\t\t\t\tthis._materialAsset = _id;\n\t\t\t}\n\t\t}\n\t}\n\tget materialAsset() {\n\t\treturn this._materialAsset;\n\t}\n\tset texture(value) {\n\t\tif (this._texture === value) return;\n\t\tif (this._textureAsset) {\n\t\t\tconst textureAsset = this._system.app.assets.get(this._textureAsset);\n\t\t\tif (textureAsset && textureAsset.resource !== value) {\n\t\t\t\tthis.textureAsset = null;\n\t\t\t}\n\t\t}\n\t\tthis._texture = value;\n\t\tif (value) {\n\t\t\tif (this._spriteAsset) {\n\t\t\t\tthis.spriteAsset = null;\n\t\t\t}\n\t\t\tthis._renderable.setParameter(\"texture_emissiveMap\", this._texture);\n\t\t\tthis._renderable.setParameter(\"texture_opacityMap\", this._texture);\n\t\t\tthis._updateRenderableEmissive();\n\t\t\tthis._renderable.setParameter(\"material_opacity\", this._color.a);\n\t\t\tconst newAspectRatio = this._texture.width / this._texture.height;\n\t\t\tif (newAspectRatio !== this._targetAspectRatio) {\n\t\t\t\tthis._targetAspectRatio = newAspectRatio;\n\t\t\t\tif (this._element.fitMode !== FITMODE_STRETCH) {\n\t\t\t\t\tthis.refreshMesh();\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthis._renderable.deleteParameter(\"texture_emissiveMap\");\n\t\t\tthis._renderable.deleteParameter(\"texture_opacityMap\");\n\t\t\tthis._targetAspectRatio = -1;\n\t\t\tif (this._element.fitMode !== FITMODE_STRETCH) {\n\t\t\t\tthis.refreshMesh();\n\t\t\t}\n\t\t}\n\t}\n\tget texture() {\n\t\treturn this._texture;\n\t}\n\tset textureAsset(value) {\n\t\tconst assets = this._system.app.assets;\n\t\tlet _id = value;\n\t\tif (value instanceof Asset) {\n\t\t\t_id = value.id;\n\t\t}\n\t\tif (this._textureAsset !== _id) {\n\t\t\tif (this._textureAsset) {\n\t\t\t\tassets.off(`add:${this._textureAsset}`, this._onTextureAdded, this);\n\t\t\t\tconst _prev = assets.get(this._textureAsset);\n\t\t\t\tif (_prev) {\n\t\t\t\t\t_prev.off(\"load\", this._onTextureLoad, this);\n\t\t\t\t\t_prev.off(\"change\", this._onTextureChange, this);\n\t\t\t\t\t_prev.off(\"remove\", this._onTextureRemove, this);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._textureAsset = _id;\n\t\t\tif (this._textureAsset) {\n\t\t\t\tconst asset = assets.get(this._textureAsset);\n\t\t\t\tif (!asset) {\n\t\t\t\t\tthis.texture = null;\n\t\t\t\t\tassets.on(`add:${this._textureAsset}`, this._onTextureAdded, this);\n\t\t\t\t} else {\n\t\t\t\t\tthis._bindTextureAsset(asset);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.texture = null;\n\t\t\t}\n\t\t}\n\t}\n\tget textureAsset() {\n\t\treturn this._textureAsset;\n\t}\n\tset spriteAsset(value) {\n\t\tconst assets = this._system.app.assets;\n\t\tlet _id = value;\n\t\tif (value instanceof Asset) {\n\t\t\t_id = value.id;\n\t\t}\n\t\tif (this._spriteAsset !== _id) {\n\t\t\tif (this._spriteAsset) {\n\t\t\t\tassets.off(`add:${this._spriteAsset}`, this._onSpriteAssetAdded, this);\n\t\t\t\tconst _prev = assets.get(this._spriteAsset);\n\t\t\t\tif (_prev) {\n\t\t\t\t\tthis._unbindSpriteAsset(_prev);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._spriteAsset = _id;\n\t\t\tif (this._spriteAsset) {\n\t\t\t\tconst asset = assets.get(this._spriteAsset);\n\t\t\t\tif (!asset) {\n\t\t\t\t\tthis.sprite = null;\n\t\t\t\t\tassets.on(`add:${this._spriteAsset}`, this._onSpriteAssetAdded, this);\n\t\t\t\t} else {\n\t\t\t\t\tthis._bindSpriteAsset(asset);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.sprite = null;\n\t\t\t}\n\t\t}\n\t\tif (this._element) {\n\t\t\tthis._element.fire(\"set:spriteAsset\", _id);\n\t\t}\n\t}\n\tget spriteAsset() {\n\t\treturn this._spriteAsset;\n\t}\n\tset sprite(value) {\n\t\tif (this._sprite === value) return;\n\t\tif (this._sprite) {\n\t\t\tthis._unbindSprite(this._sprite);\n\t\t}\n\t\tif (this._spriteAsset) {\n\t\t\tconst spriteAsset = this._system.app.assets.get(this._spriteAsset);\n\t\t\tif (spriteAsset && spriteAsset.resource !== value) {\n\t\t\t\tthis.spriteAsset = null;\n\t\t\t}\n\t\t}\n\t\tthis._sprite = value;\n\t\tif (this._sprite) {\n\t\t\tthis._bindSprite(this._sprite);\n\t\t\tif (this._textureAsset) {\n\t\t\t\tthis.textureAsset = null;\n\t\t\t}\n\t\t}\n\t\tif (this._sprite && this._sprite.atlas && this._sprite.atlas.texture) {\n\t\t\tthis._renderable.setParameter(\"texture_emissiveMap\", this._sprite.atlas.texture);\n\t\t\tthis._renderable.setParameter(\"texture_opacityMap\", this._sprite.atlas.texture);\n\t\t} else {\n\t\t\tthis._renderable.deleteParameter(\"texture_emissiveMap\");\n\t\t\tthis._renderable.deleteParameter(\"texture_opacityMap\");\n\t\t}\n\t\tif (this._sprite) {\n\t\t\tthis._spriteFrame = math.clamp(this._spriteFrame, 0, this._sprite.frameKeys.length - 1);\n\t\t}\n\t\tthis._updateSprite();\n\t}\n\tget sprite() {\n\t\treturn this._sprite;\n\t}\n\tset spriteFrame(value) {\n\t\tconst oldValue = this._spriteFrame;\n\t\tif (this._sprite) {\n\t\t\tthis._spriteFrame = math.clamp(value, 0, this._sprite.frameKeys.length - 1);\n\t\t} else {\n\t\t\tthis._spriteFrame = value;\n\t\t}\n\t\tif (this._spriteFrame !== oldValue) {\n\t\t\tthis._updateSprite();\n\t\t}\n\t\tif (this._element) {\n\t\t\tthis._element.fire(\"set:spriteFrame\", value);\n\t\t}\n\t}\n\tget spriteFrame() {\n\t\treturn this._spriteFrame;\n\t}\n\tset mesh(value) {\n\t\tthis._renderable.setMesh(value);\n\t\tif (this._defaultMesh === value) {\n\t\t\tthis._renderable.setAabbFunc(null);\n\t\t} else {\n\t\t\tthis._renderable.setAabbFunc(this._updateAabbFunc);\n\t\t}\n\t}\n\tget mesh() {\n\t\treturn this._renderable.mesh;\n\t}\n\tset mask(value) {\n\t\tif (this._mask !== value) {\n\t\t\tthis._mask = value;\n\t\t\tthis._toggleMask();\n\t\t}\n\t}\n\tget mask() {\n\t\treturn this._mask;\n\t}\n\tset pixelsPerUnit(value) {\n\t\tif (this._pixelsPerUnit === value) return;\n\t\tthis._pixelsPerUnit = value;\n\t\tif (this._sprite && (this._sprite.renderMode === SPRITE_RENDERMODE_SLICED || this._sprite.renderMode === SPRITE_RENDERMODE_TILED)) {\n\t\t\tthis._updateSprite();\n\t\t}\n\t}\n\tget pixelsPerUnit() {\n\t\treturn this._pixelsPerUnit;\n\t}\n\t// private\n\tget aabb() {\n\t\tif (this._renderable.meshInstance) {\n\t\t\treturn this._renderable.meshInstance.aabb;\n\t\t}\n\t\treturn null;\n\t}\n};\n\nvar LocalizedAsset = class extends EventHandler {\n\tconstructor(app2) {\n\t\tsuper();\n\t\tthis._app = app2;\n\t\tapp2.i18n.on(I18n.EVENT_CHANGE, this._onSetLocale, this);\n\t\tthis._autoLoad = false;\n\t\tthis._disableLocalization = false;\n\t\tthis._defaultAsset = null;\n\t\tthis._localizedAsset = null;\n\t}\n\tset defaultAsset(value) {\n\t\tconst id14 = value instanceof Asset ? value.id : value;\n\t\tif (this._defaultAsset === id14) return;\n\t\tif (this._defaultAsset) {\n\t\t\tthis._unbindDefaultAsset();\n\t\t}\n\t\tthis._defaultAsset = id14;\n\t\tif (this._defaultAsset) {\n\t\t\tthis._bindDefaultAsset();\n\t\t}\n\t\tthis._onSetLocale(this._app.i18n.locale);\n\t}\n\tget defaultAsset() {\n\t\treturn this._defaultAsset;\n\t}\n\tset localizedAsset(value) {\n\t\tconst id14 = value instanceof Asset ? value.id : value;\n\t\tif (this._localizedAsset === id14) {\n\t\t\treturn;\n\t\t}\n\t\tif (this._localizedAsset) {\n\t\t\tthis._app.assets.off(`add:${this._localizedAsset}`, this._onLocalizedAssetAdd, this);\n\t\t\tthis._unbindLocalizedAsset();\n\t\t}\n\t\tthis._localizedAsset = id14;\n\t\tif (this._localizedAsset) {\n\t\t\tconst asset = this._app.assets.get(this._localizedAsset);\n\t\t\tif (!asset) {\n\t\t\t\tthis._app.assets.once(`add:${this._localizedAsset}`, this._onLocalizedAssetAdd, this);\n\t\t\t} else {\n\t\t\t\tthis._bindLocalizedAsset();\n\t\t\t}\n\t\t}\n\t}\n\tget localizedAsset() {\n\t\treturn this._localizedAsset;\n\t}\n\tset autoLoad(value) {\n\t\tif (this._autoLoad === value) return;\n\t\tthis._autoLoad = value;\n\t\tif (this._autoLoad && this._localizedAsset) {\n\t\t\tthis._unbindLocalizedAsset();\n\t\t\tthis._bindLocalizedAsset();\n\t\t}\n\t}\n\tget autoLoad() {\n\t\treturn this._autoLoad;\n\t}\n\tset disableLocalization(value) {\n\t\tif (this._disableLocalization === value) return;\n\t\tthis._disableLocalization = value;\n\t\tthis._onSetLocale(this._app.i18n.locale);\n\t}\n\tget disableLocalization() {\n\t\treturn this._disableLocalization;\n\t}\n\t_bindDefaultAsset() {\n\t\tconst asset = this._app.assets.get(this._defaultAsset);\n\t\tif (!asset) {\n\t\t\tthis._app.assets.once(`add:${this._defaultAsset}`, this._onDefaultAssetAdd, this);\n\t\t} else {\n\t\t\tthis._onDefaultAssetAdd(asset);\n\t\t}\n\t}\n\t_unbindDefaultAsset() {\n\t\tif (!this._defaultAsset) return;\n\t\tthis._app.assets.off(`add:${this._defaultAsset}`, this._onDefaultAssetAdd, this);\n\t\tconst asset = this._app.assets.get(this._defaultAsset);\n\t\tif (!asset) return;\n\t\tasset.off(\"add:localized\", this._onLocaleAdd, this);\n\t\tasset.off(\"remove:localized\", this._onLocaleRemove, this);\n\t\tasset.off(\"remove\", this._onDefaultAssetRemove, this);\n\t}\n\t_onDefaultAssetAdd(asset) {\n\t\tif (this._defaultAsset !== asset.id) return;\n\t\tasset.on(\"add:localized\", this._onLocaleAdd, this);\n\t\tasset.on(\"remove:localized\", this._onLocaleRemove, this);\n\t\tasset.once(\"remove\", this._onDefaultAssetRemove, this);\n\t}\n\t_onDefaultAssetRemove(asset) {\n\t\tif (this._defaultAsset !== asset.id) return;\n\t\tasset.off(\"add:localized\", this._onLocaleAdd, this);\n\t\tasset.off(\"remove:localized\", this._onLocaleAdd, this);\n\t\tthis._app.assets.once(`add:${this._defaultAsset}`, this._onDefaultAssetAdd, this);\n\t}\n\t_bindLocalizedAsset() {\n\t\tif (!this._autoLoad) return;\n\t\tconst asset = this._app.assets.get(this._localizedAsset);\n\t\tif (!asset) return;\n\t\tasset.on(\"load\", this._onLocalizedAssetLoad, this);\n\t\tasset.on(\"change\", this._onLocalizedAssetChange, this);\n\t\tasset.on(\"remove\", this._onLocalizedAssetRemove, this);\n\t\tif (asset.resource) {\n\t\t\tthis._onLocalizedAssetLoad(asset);\n\t\t} else {\n\t\t\tthis._app.assets.load(asset);\n\t\t}\n\t}\n\t_unbindLocalizedAsset() {\n\t\tconst asset = this._app.assets.get(this._localizedAsset);\n\t\tif (!asset) return;\n\t\tasset.off(\"load\", this._onLocalizedAssetLoad, this);\n\t\tasset.off(\"change\", this._onLocalizedAssetChange, this);\n\t\tasset.off(\"remove\", this._onLocalizedAssetRemove, this);\n\t}\n\t_onLocalizedAssetAdd(asset) {\n\t\tif (this._localizedAsset !== asset.id) return;\n\t\tthis._bindLocalizedAsset();\n\t}\n\t_onLocalizedAssetLoad(asset) {\n\t\tthis.fire(\"load\", asset);\n\t}\n\t_onLocalizedAssetChange(asset, name, newValue, oldValue) {\n\t\tthis.fire(\"change\", asset, name, newValue, oldValue);\n\t}\n\t_onLocalizedAssetRemove(asset) {\n\t\tif (this._localizedAsset === asset.id) {\n\t\t\tthis.localizedAsset = this._defaultAsset;\n\t\t}\n\t\tthis.fire(\"remove\", asset);\n\t}\n\t_onLocaleAdd(locale, assetId) {\n\t\tif (this._app.i18n.locale !== locale) return;\n\t\tthis._onSetLocale(locale);\n\t}\n\t_onLocaleRemove(locale, assetId) {\n\t\tif (this._app.i18n.locale !== locale) return;\n\t\tthis._onSetLocale(locale);\n\t}\n\t_onSetLocale(locale) {\n\t\tif (!this._defaultAsset) {\n\t\t\tthis.localizedAsset = null;\n\t\t\treturn;\n\t\t}\n\t\tconst asset = this._app.assets.get(this._defaultAsset);\n\t\tif (!asset || this._disableLocalization) {\n\t\t\tthis.localizedAsset = this._defaultAsset;\n\t\t\treturn;\n\t\t}\n\t\tconst localizedAssetId = asset.getLocalizedAssetId(locale);\n\t\tif (!localizedAssetId) {\n\t\t\tthis.localizedAsset = this._defaultAsset;\n\t\t\treturn;\n\t\t}\n\t\tthis.localizedAsset = localizedAssetId;\n\t}\n\tdestroy() {\n\t\tthis.defaultAsset = null;\n\t\tthis._app.i18n.off(I18n.EVENT_CHANGE, this._onSetLocale, this);\n\t\tthis.off();\n\t}\n};\n\nvar FONT_MSDF = \"msdf\";\nvar FONT_BITMAP = \"bitmap\";\n\nvar EOF_TOKEN = 0;\nvar ERROR_TOKEN = 1;\nvar TEXT_TOKEN = 2;\nvar OPEN_BRACKET_TOKEN = 3;\nvar CLOSE_BRACKET_TOKEN = 4;\nvar EQUALS_TOKEN = 5;\nvar STRING_TOKEN = 6;\nvar IDENTIFIER_TOKEN = 7;\nvar WHITESPACE_TOKEN = 8;\nvar WHITESPACE_CHARS = \" \t\\n\\r\\v\\f\";\nvar IDENTIFIER_REGEX = /[\\w|/]/;\nvar Scanner = class {\n\tconstructor(symbols) {\n\t\tthis._symbols = symbols;\n\t\tthis._index = 0;\n\t\tthis._last = 0;\n\t\tthis._cur = this._symbols.length > 0 ? this._symbols[0] : null;\n\t\tthis._buf = [];\n\t\tthis._mode = \"text\";\n\t\tthis._error = null;\n\t}\n\t// read the next token, ignore whitespace\n\tread() {\n\t\tlet token = this._read();\n\t\twhile (token === WHITESPACE_TOKEN) {\n\t\t\ttoken = this._read();\n\t\t}\n\t\tif (token !== EOF_TOKEN && token !== ERROR_TOKEN) {\n\t\t\tthis._last = this._index;\n\t\t}\n\t\treturn token;\n\t}\n\t// returns the buffer for the last returned token\n\tbuf() {\n\t\treturn this._buf;\n\t}\n\t// returns the index of end of the last successful token extraction\n\tlast() {\n\t\treturn this._last;\n\t}\n\t// return the error message\n\terror() {\n\t\treturn this._error;\n\t}\n\t// print the scanner output\n\tdebugPrint() {\n\t\tconst tokenStrings = [\"EOF\", \"ERROR\", \"TEXT\", \"OPEN_BRACKET\", \"CLOSE_BRACKET\", \"EQUALS\", \"STRING\", \"IDENTIFIER\", \"WHITESPACE\"];\n\t\tlet token = this.read();\n\t\tlet result = \"\";\n\t\twhile (true) {\n\t\t\tresult += `${(result.length > 0 ? \"\\n\" : \"\") + tokenStrings[token]} '${this.buf().join(\"\")}'`;\n\t\t\tif (token === EOF_TOKEN || token === ERROR_TOKEN) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\ttoken = this.read();\n\t\t}\n\t\treturn result;\n\t}\n\t// read the next token from the input stream and return the token\n\t_read() {\n\t\tthis._buf = [];\n\t\tif (this._eof()) {\n\t\t\treturn EOF_TOKEN;\n\t\t}\n\t\treturn this._mode === \"text\" ? this._text() : this._tag();\n\t}\n\t// read text block until eof or start of tag\n\t_text() {\n\t\twhile (true) {\n\t\t\tswitch (this._cur) {\n\t\t\t\tcase null:\n\t\t\t\t\treturn this._buf.length > 0 ? TEXT_TOKEN : EOF_TOKEN;\n\t\t\t\tcase \"[\":\n\t\t\t\t\tthis._mode = \"tag\";\n\t\t\t\t\treturn this._buf.length > 0 ? TEXT_TOKEN : this._tag();\n\t\t\t\tcase \"\\\\\":\n\t\t\t\t\tthis._next();\n\t\t\t\t\tswitch (this._cur) {\n\t\t\t\t\t\tcase \"[\":\n\t\t\t\t\t\t\tthis._store();\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tthis._output(\"\\\\\");\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tthis._store();\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\t// read tag block\n\t_tag() {\n\t\tswitch (this._cur) {\n\t\t\tcase null:\n\t\t\t\tthis._error = \"unexpected end of input reading tag\";\n\t\t\t\treturn ERROR_TOKEN;\n\t\t\tcase \"[\":\n\t\t\t\tthis._store();\n\t\t\t\treturn OPEN_BRACKET_TOKEN;\n\t\t\tcase \"]\":\n\t\t\t\tthis._store();\n\t\t\t\tthis._mode = \"text\";\n\t\t\t\treturn CLOSE_BRACKET_TOKEN;\n\t\t\tcase \"=\":\n\t\t\t\tthis._store();\n\t\t\t\treturn EQUALS_TOKEN;\n\t\t\tcase \" \":\n\t\t\tcase \"\t\":\n\t\t\tcase \"\\n\":\n\t\t\tcase \"\\r\":\n\t\t\tcase \"\\v\":\n\t\t\tcase \"\\f\":\n\t\t\t\treturn this._whitespace();\n\t\t\tcase '\"':\n\t\t\t\treturn this._string();\n\t\t\tdefault:\n\t\t\t\tif (!this._isIdentifierSymbol(this._cur)) {\n\t\t\t\t\tthis._error = \"unrecognized character\";\n\t\t\t\t\treturn ERROR_TOKEN;\n\t\t\t\t}\n\t\t\t\treturn this._identifier();\n\t\t}\n\t}\n\t_whitespace() {\n\t\tthis._store();\n\t\twhile (WHITESPACE_CHARS.indexOf(this._cur) !== -1) {\n\t\t\tthis._store();\n\t\t}\n\t\treturn WHITESPACE_TOKEN;\n\t}\n\t_string() {\n\t\tthis._next();\n\t\twhile (true) {\n\t\t\tswitch (this._cur) {\n\t\t\t\tcase null:\n\t\t\t\t\tthis._error = \"unexpected end of input reading string\";\n\t\t\t\t\treturn ERROR_TOKEN;\n\t\t\t\tcase '\"':\n\t\t\t\t\tthis._next();\n\t\t\t\t\treturn STRING_TOKEN;\n\t\t\t\tdefault:\n\t\t\t\t\tthis._store();\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\t_identifier() {\n\t\tthis._store();\n\t\twhile (this._cur !== null && this._isIdentifierSymbol(this._cur)) {\n\t\t\tthis._store();\n\t\t}\n\t\treturn IDENTIFIER_TOKEN;\n\t}\n\t_isIdentifierSymbol(s2) {\n\t\treturn s2.length === 1 && s2.match(IDENTIFIER_REGEX) !== null;\n\t}\n\t_eof() {\n\t\treturn this._cur === null;\n\t}\n\t_next() {\n\t\tif (!this._eof()) {\n\t\t\tthis._index++;\n\t\t\tthis._cur = this._index < this._symbols.length ? this._symbols[this._index] : null;\n\t\t}\n\t\treturn this._cur;\n\t}\n\t_store() {\n\t\tthis._buf.push(this._cur);\n\t\treturn this._next();\n\t}\n\t_output(c2) {\n\t\tthis._buf.push(c2);\n\t}\n};\nvar Parser = class {\n\tconstructor(symbols) {\n\t\tthis._scanner = new Scanner(symbols);\n\t\tthis._error = null;\n\t}\n\t// parse the incoming symbols placing resulting symbols in symbols\n\t// and tags in tags\n\t// tags is an array of the following structure:\n\t// {\n\t//     name: string;                    // tag name, for example 'color'\n\t//     value: string;                   // optional tag value, for example '#ff0000'\n\t//     attributes: {                    // list of attributes\n\t//         key: value;                  // optional key/value pairs\n\t//     }\n\t//     start: int;                      // first symbol to which this tag applies\n\t//     end: int;                        // last symbol to which this tag applies\n\t// }\n\tparse(symbols, tags) {\n\t\twhile (true) {\n\t\t\tconst token = this._scanner.read();\n\t\t\tswitch (token) {\n\t\t\t\tcase EOF_TOKEN:\n\t\t\t\t\treturn true;\n\t\t\t\tcase ERROR_TOKEN:\n\t\t\t\t\treturn false;\n\t\t\t\tcase TEXT_TOKEN:\n\t\t\t\t\tArray.prototype.push.apply(symbols, this._scanner.buf());\n\t\t\t\t\tbreak;\n\t\t\t\tcase OPEN_BRACKET_TOKEN:\n\t\t\t\t\tif (!this._parseTag(symbols, tags)) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t}\n\t// access an error message if the parser failed\n\terror() {\n\t\treturn `Error evaluating markup at #${this._scanner.last().toString()} (${this._scanner.error() || this._error})`;\n\t}\n\t_parseTag(symbols, tags) {\n\t\tlet token = this._scanner.read();\n\t\tif (token !== IDENTIFIER_TOKEN) {\n\t\t\tthis._error = \"expected identifier\";\n\t\t\treturn false;\n\t\t}\n\t\tconst name = this._scanner.buf().join(\"\");\n\t\tif (name[0] === \"/\") {\n\t\t\tfor (let index = tags.length - 1; index >= 0; --index) {\n\t\t\t\tif (name === `/${tags[index].name}` && tags[index].end === null) {\n\t\t\t\t\ttags[index].end = symbols.length;\n\t\t\t\t\ttoken = this._scanner.read();\n\t\t\t\t\tif (token !== CLOSE_BRACKET_TOKEN) {\n\t\t\t\t\t\tthis._error = \"expected close bracket\";\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._error = \"failed to find matching tag\";\n\t\t\treturn false;\n\t\t}\n\t\tconst tag = {\n\t\t\tname,\n\t\t\tvalue: null,\n\t\t\tattributes: {},\n\t\t\tstart: symbols.length,\n\t\t\tend: null\n\t\t};\n\t\ttoken = this._scanner.read();\n\t\tif (token === EQUALS_TOKEN) {\n\t\t\ttoken = this._scanner.read();\n\t\t\tif (token !== STRING_TOKEN) {\n\t\t\t\tthis._error = \"expected string\";\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\ttag.value = this._scanner.buf().join(\"\");\n\t\t\ttoken = this._scanner.read();\n\t\t}\n\t\twhile (true) {\n\t\t\tswitch (token) {\n\t\t\t\tcase CLOSE_BRACKET_TOKEN:\n\t\t\t\t\ttags.push(tag);\n\t\t\t\t\treturn true;\n\t\t\t\tcase IDENTIFIER_TOKEN: {\n\t\t\t\t\tconst identifier = this._scanner.buf().join(\"\");\n\t\t\t\t\ttoken = this._scanner.read();\n\t\t\t\t\tif (token !== EQUALS_TOKEN) {\n\t\t\t\t\t\tthis._error = \"expected equals\";\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\ttoken = this._scanner.read();\n\t\t\t\t\tif (token !== STRING_TOKEN) {\n\t\t\t\t\t\tthis._error = \"expected string\";\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tconst value = this._scanner.buf().join(\"\");\n\t\t\t\t\ttag.attributes[identifier] = value;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tthis._error = \"expected close bracket or identifier\";\n\t\t\t\t\treturn false;\n\t\t\t}\n\t\t\ttoken = this._scanner.read();\n\t\t}\n\t}\n};\nfunction merge(target2, source) {\n\tfor (const key in source) {\n\t\tif (!source.hasOwnProperty(key)) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst value = source[key];\n\t\tif (value instanceof Object) {\n\t\t\tif (!target2.hasOwnProperty(key)) {\n\t\t\t\ttarget2[key] = {};\n\t\t\t}\n\t\t\tmerge(target2[key], source[key]);\n\t\t} else {\n\t\t\ttarget2[key] = value;\n\t\t}\n\t}\n}\nfunction combineTags(tags) {\n\tif (tags.length === 0) {\n\t\treturn null;\n\t}\n\tconst result = {};\n\tfor (let index = 0; index < tags.length; ++index) {\n\t\tconst tag = tags[index];\n\t\tconst tmp = {};\n\t\ttmp[tag.name] = { value: tag.value, attributes: tag.attributes };\n\t\tmerge(result, tmp);\n\t}\n\treturn result;\n}\nfunction resolveMarkupTags(tags, numSymbols) {\n\tif (tags.length === 0) {\n\t\treturn null;\n\t}\n\tconst edges = {};\n\tfor (let index = 0; index < tags.length; ++index) {\n\t\tconst tag = tags[index];\n\t\tif (!edges.hasOwnProperty(tag.start)) {\n\t\t\tedges[tag.start] = { open: [tag], close: null };\n\t\t} else {\n\t\t\tif (edges[tag.start].open === null) {\n\t\t\t\tedges[tag.start].open = [tag];\n\t\t\t} else {\n\t\t\t\tedges[tag.start].open.push(tag);\n\t\t\t}\n\t\t}\n\t\tif (!edges.hasOwnProperty(tag.end)) {\n\t\t\tedges[tag.end] = { open: null, close: [tag] };\n\t\t} else {\n\t\t\tif (edges[tag.end].close === null) {\n\t\t\t\tedges[tag.end].close = [tag];\n\t\t\t} else {\n\t\t\t\tedges[tag.end].close.push(tag);\n\t\t\t}\n\t\t}\n\t}\n\tlet tagStack = [];\n\tfunction removeTags(tags2) {\n\t\ttagStack = tagStack.filter((tag) => {\n\t\t\treturn tags2.find((t) => {\n\t\t\t\treturn t === tag;\n\t\t\t}) === void 0;\n\t\t});\n\t}\n\tfunction addTags(tags2) {\n\t\tfor (let index = 0; index < tags2.length; ++index) {\n\t\t\ttagStack.push(tags2[index]);\n\t\t}\n\t}\n\tconst edgeKeys = Object.keys(edges).sort((a, b) => {\n\t\treturn a - b;\n\t});\n\tconst resolvedTags = [];\n\tfor (let index = 0; index < edgeKeys.length; ++index) {\n\t\tconst edge = edges[edgeKeys[index]];\n\t\tif (edge.close !== null) {\n\t\t\tremoveTags(edge.close);\n\t\t}\n\t\tif (edge.open !== null) {\n\t\t\taddTags(edge.open);\n\t\t}\n\t\tresolvedTags.push({\n\t\t\tstart: edgeKeys[index],\n\t\t\ttags: combineTags(tagStack)\n\t\t});\n\t}\n\tconst result = [];\n\tlet prevTag = null;\n\tfor (let index = 0; index < resolvedTags.length; ++index) {\n\t\tconst resolvedTag = resolvedTags[index];\n\t\twhile (result.length < resolvedTag.start) {\n\t\t\tresult.push(prevTag ? prevTag.tags : null);\n\t\t}\n\t\tprevTag = resolvedTag;\n\t}\n\twhile (result.length < numSymbols) {\n\t\tresult.push(null);\n\t}\n\treturn result;\n}\nfunction evaluateMarkup(symbols) {\n\tconst parser = new Parser(symbols);\n\tconst stripped_symbols = [];\n\tconst tags = [];\n\tif (!parser.parse(stripped_symbols, tags)) {\n\t\tconsole.warn(parser.error());\n\t\treturn {\n\t\t\tsymbols,\n\t\t\ttags: null\n\t\t};\n\t}\n\tconst invalidTag = tags.find((t) => {\n\t\treturn t.end === null;\n\t});\n\tif (invalidTag) {\n\t\tconsole.warn(`Markup error: found unclosed tag='${invalidTag.name}'`);\n\t\treturn {\n\t\t\tsymbols,\n\t\t\ttags: null\n\t\t};\n\t}\n\tconst resolved_tags = resolveMarkupTags(tags, stripped_symbols.length);\n\treturn {\n\t\tsymbols: stripped_symbols,\n\t\ttags: resolved_tags\n\t};\n}\nvar Markup = class {\n\tstatic evaluate(symbols) {\n\t\treturn evaluateMarkup(symbols);\n\t}\n};\n\nvar MeshInfo = class {\n\tconstructor() {\n\t\tthis.count = 0;\n\t\tthis.quad = 0;\n\t\tthis.lines = {};\n\t\tthis.positions = [];\n\t\tthis.normals = [];\n\t\tthis.uvs = [];\n\t\tthis.colors = [];\n\t\tthis.indices = [];\n\t\tthis.outlines = [];\n\t\tthis.shadows = [];\n\t\tthis.gapIndices = [];\n\t\tthis.meshInstance = null;\n\t}\n};\nfunction createTextMesh(device, meshInfo) {\n\tconst mesh = new Mesh(device);\n\tmesh.setPositions(meshInfo.positions);\n\tmesh.setNormals(meshInfo.normals);\n\tmesh.setColors32(meshInfo.colors);\n\tmesh.setUvs(0, meshInfo.uvs);\n\tmesh.setIndices(meshInfo.indices);\n\tmesh.setVertexStream(SEMANTIC_ATTR8, meshInfo.outlines, 3, void 0, TYPE_FLOAT32, false);\n\tmesh.setVertexStream(SEMANTIC_ATTR9, meshInfo.shadows, 3, void 0, TYPE_FLOAT32, false);\n\tmesh.update();\n\treturn mesh;\n}\nvar LINE_BREAK_CHAR = /^[\\r\\n]$/;\nvar WHITESPACE_CHAR = /^[ \\t]$/;\nvar WORD_BOUNDARY_CHAR = /^[ \\t\\-]|\\u200b$/;\nvar ALPHANUMERIC_CHAR = /^[a-z0-9]$/i;\nvar CJK_CHAR = /^[\\u1100-\\u11ff]|[\\u3000-\\u9fff\\ua960-\\ua97f]|[\\uac00-\\ud7ff]$/;\nvar NO_LINE_BREAK_CJK_CHAR = /^[〕〉》」』】〙〗〟ヽヾーァィゥェォッャュョヮヵヶぁぃぅぇぉっゃゅょゎゕゖㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ々〻]$/;\nvar CONTROL_CHARS = [\n\t\"\\u200B\",\n\t// zero width space\n\t\"\\u061C\",\n\t\"\\u200E\",\n\t\"\\u200F\",\n\t\"\\u202A\",\n\t\"\\u202B\",\n\t\"\\u202C\",\n\t\"\\u202D\",\n\t\"\\u202E\",\n\t\"\\u2066\",\n\t\"\\u2067\",\n\t\"\\u2068\",\n\t\"\\u2069\"\n];\nvar CONTROL_GLYPH_DATA = {\n\twidth: 0,\n\theight: 0,\n\txadvance: 0,\n\txoffset: 0,\n\tyoffset: 0\n};\nvar colorTmp = new Color();\nvar vec2Tmp = new Vec2();\nvar _tempColor3 = new Color();\nvar TextElement = class {\n\tconstructor(element) {\n\t\tthis._element = element;\n\t\tthis._system = element.system;\n\t\tthis._entity = element.entity;\n\t\tthis._text = \"\";\n\t\tthis._symbols = [];\n\t\tthis._colorPalette = [];\n\t\tthis._outlinePalette = [];\n\t\tthis._shadowPalette = [];\n\t\tthis._symbolColors = null;\n\t\tthis._symbolOutlineParams = null;\n\t\tthis._symbolShadowParams = null;\n\t\tthis._i18nKey = null;\n\t\tthis._fontAsset = new LocalizedAsset(this._system.app);\n\t\tthis._fontAsset.disableLocalization = true;\n\t\tthis._fontAsset.on(\"load\", this._onFontLoad, this);\n\t\tthis._fontAsset.on(\"change\", this._onFontChange, this);\n\t\tthis._fontAsset.on(\"remove\", this._onFontRemove, this);\n\t\tthis._font = null;\n\t\tthis._color = new Color(1, 1, 1, 1);\n\t\tthis._colorUniform = new Float32Array(3);\n\t\tthis._spacing = 1;\n\t\tthis._fontSize = 32;\n\t\tthis._fontMinY = 0;\n\t\tthis._fontMaxY = 0;\n\t\tthis._originalFontSize = 32;\n\t\tthis._maxFontSize = 32;\n\t\tthis._minFontSize = 8;\n\t\tthis._autoFitWidth = false;\n\t\tthis._autoFitHeight = false;\n\t\tthis._maxLines = -1;\n\t\tthis._lineHeight = 32;\n\t\tthis._scaledLineHeight = 32;\n\t\tthis._wrapLines = false;\n\t\tthis._justify = false;\n\t\tthis._drawOrder = 0;\n\t\tthis._alignment = new Vec2(0.5, 0.5);\n\t\tthis._autoWidth = true;\n\t\tthis._autoHeight = true;\n\t\tthis.width = 0;\n\t\tthis.height = 0;\n\t\tthis._node = new GraphNode();\n\t\tthis._model = new Model();\n\t\tthis._model.graph = this._node;\n\t\tthis._entity.addChild(this._node);\n\t\tthis._meshInfo = [];\n\t\tthis._material = null;\n\t\tthis._aabbDirty = true;\n\t\tthis._aabb = new BoundingBox();\n\t\tthis._noResize = false;\n\t\tthis._currentMaterialType = null;\n\t\tthis._maskedMaterialSrc = null;\n\t\tthis._rtlReorder = false;\n\t\tthis._unicodeConverter = false;\n\t\tthis._rtl = false;\n\t\tthis._outlineColor = new Color(0, 0, 0, 1);\n\t\tthis._outlineColorUniform = new Float32Array(4);\n\t\tthis._outlineThicknessScale = 0.2;\n\t\tthis._outlineThickness = 0;\n\t\tthis._shadowColor = new Color(0, 0, 0, 1);\n\t\tthis._shadowColorUniform = new Float32Array(4);\n\t\tthis._shadowOffsetScale = 5e-3;\n\t\tthis._shadowOffset = new Vec2(0, 0);\n\t\tthis._shadowOffsetUniform = new Float32Array(2);\n\t\tthis._enableMarkup = false;\n\t\tthis._onScreenChange(this._element.screen);\n\t\telement.on(\"resize\", this._onParentResize, this);\n\t\telement.on(\"set:screen\", this._onScreenChange, this);\n\t\telement.on(\"screen:set:screenspace\", this._onScreenSpaceChange, this);\n\t\telement.on(\"set:draworder\", this._onDrawOrderChange, this);\n\t\telement.on(\"set:pivot\", this._onPivotChange, this);\n\t\tthis._system.app.i18n.on(I18n.EVENT_CHANGE, this._onLocaleSet, this);\n\t\tthis._system.app.i18n.on(\"data:add\", this._onLocalizationData, this);\n\t\tthis._system.app.i18n.on(\"data:remove\", this._onLocalizationData, this);\n\t\tthis._rangeStart = 0;\n\t\tthis._rangeEnd = 0;\n\t\tif (!element._beingInitialized && element.enabled && element.entity.enabled) {\n\t\t\tthis.onEnable();\n\t\t}\n\t}\n\tdestroy() {\n\t\tthis._setMaterial(null);\n\t\tif (this._model) {\n\t\t\tthis._element.removeModelFromLayers(this._model);\n\t\t\tthis._model.destroy();\n\t\t\tthis._model = null;\n\t\t}\n\t\tthis._node.remove();\n\t\tthis._node = null;\n\t\tthis._fontAsset.destroy();\n\t\tthis.font = null;\n\t\tthis._element.off(\"resize\", this._onParentResize, this);\n\t\tthis._element.off(\"set:screen\", this._onScreenChange, this);\n\t\tthis._element.off(\"screen:set:screenspace\", this._onScreenSpaceChange, this);\n\t\tthis._element.off(\"set:draworder\", this._onDrawOrderChange, this);\n\t\tthis._element.off(\"set:pivot\", this._onPivotChange, this);\n\t\tthis._system.app.i18n.off(I18n.EVENT_CHANGE, this._onLocaleSet, this);\n\t\tthis._system.app.i18n.off(\"data:add\", this._onLocalizationData, this);\n\t\tthis._system.app.i18n.off(\"data:remove\", this._onLocalizationData, this);\n\t}\n\t_onParentResize(width, height) {\n\t\tif (this._noResize) return;\n\t\tif (this._font) this._updateText();\n\t}\n\t_onScreenChange(screen) {\n\t\tif (screen) {\n\t\t\tthis._updateMaterial(screen.screen.screenSpace);\n\t\t} else {\n\t\t\tthis._updateMaterial(false);\n\t\t}\n\t}\n\t_onScreenSpaceChange(value) {\n\t\tthis._updateMaterial(value);\n\t}\n\t_onDrawOrderChange(order) {\n\t\tthis._drawOrder = order;\n\t\tif (this._model) {\n\t\t\tfor (let i2 = 0, len = this._model.meshInstances.length; i2 < len; i2++) {\n\t\t\t\tthis._model.meshInstances[i2].drawOrder = order;\n\t\t\t}\n\t\t}\n\t}\n\t_onPivotChange(pivot) {\n\t\tif (this._font) {\n\t\t\tthis._updateText();\n\t\t}\n\t}\n\t_onLocaleSet(locale) {\n\t\tif (!this._i18nKey) return;\n\t\tif (this.fontAsset) {\n\t\t\tconst asset = this._system.app.assets.get(this.fontAsset);\n\t\t\tif (!asset || !asset.resource || asset.resource !== this._font) {\n\t\t\t\tthis.font = null;\n\t\t\t}\n\t\t}\n\t\tthis._resetLocalizedText();\n\t}\n\t_onLocalizationData(locale, messages) {\n\t\tif (this._i18nKey && messages[this._i18nKey]) {\n\t\t\tthis._resetLocalizedText();\n\t\t}\n\t}\n\t_resetLocalizedText() {\n\t\tthis._setText(this._system.app.i18n.getText(this._i18nKey));\n\t}\n\t_setText(text) {\n\t\tif (this.unicodeConverter) {\n\t\t\tconst unicodeConverterFunc = this._system.getUnicodeConverter();\n\t\t\tif (unicodeConverterFunc) {\n\t\t\t\ttext = unicodeConverterFunc(text);\n\t\t\t} else {\n\t\t\t\tconsole.warn(\"Element created with unicodeConverter option but no unicodeConverter function registered\");\n\t\t\t}\n\t\t}\n\t\tif (this._text !== text) {\n\t\t\tif (this._font) {\n\t\t\t\tthis._updateText(text);\n\t\t\t}\n\t\t\tthis._text = text;\n\t\t}\n\t}\n\t_updateText(text) {\n\t\tlet tags;\n\t\tif (text === void 0) text = this._text;\n\t\tthis._symbols = string.getSymbols(text.normalize ? text.normalize(\"NFC\") : text);\n\t\tif (this._symbols.length === 0) {\n\t\t\tthis._symbols = [\" \"];\n\t\t}\n\t\tif (this._enableMarkup) {\n\t\t\tconst results = Markup.evaluate(this._symbols);\n\t\t\tthis._symbols = results.symbols;\n\t\t\ttags = results.tags || [];\n\t\t}\n\t\tif (this._rtlReorder) {\n\t\t\tconst rtlReorderFunc = this._system.app.systems.element.getRtlReorder();\n\t\t\tif (rtlReorderFunc) {\n\t\t\t\tconst results = rtlReorderFunc(this._symbols);\n\t\t\t\tthis._rtl = results.rtl;\n\t\t\t\tthis._symbols = results.mapping.map(function(v6) {\n\t\t\t\t\treturn this._symbols[v6];\n\t\t\t\t}, this);\n\t\t\t\tif (tags) {\n\t\t\t\t\ttags = results.mapping.map((v6) => {\n\t\t\t\t\t\treturn tags[v6];\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconsole.warn(\"Element created with rtlReorder option but no rtlReorder function registered\");\n\t\t\t}\n\t\t} else {\n\t\t\tthis._rtl = false;\n\t\t}\n\t\tconst getColorThicknessHash = (color3, thickness) => {\n\t\t\treturn `${color3.toString(true).toLowerCase()}:${thickness.toFixed(2)}`;\n\t\t};\n\t\tconst getColorOffsetHash = (color3, offset3) => {\n\t\t\treturn `${color3.toString(true).toLowerCase()}:${offset3.x.toFixed(2)}:${offset3.y.toFixed(2)}`;\n\t\t};\n\t\tif (tags) {\n\t\t\tconst paletteMap = {};\n\t\t\tconst outlinePaletteMap = {};\n\t\t\tconst shadowPaletteMap = {};\n\t\t\t_tempColor3.linear(this._color);\n\t\t\tthis._colorPalette = [\n\t\t\t\tMath.round(_tempColor3.r * 255),\n\t\t\t\tMath.round(_tempColor3.g * 255),\n\t\t\t\tMath.round(_tempColor3.b * 255)\n\t\t\t];\n\t\t\t_tempColor3.linear(this._outlineColor);\n\t\t\tthis._outlinePalette = [\n\t\t\t\tMath.round(_tempColor3.r * 255),\n\t\t\t\tMath.round(_tempColor3.g * 255),\n\t\t\t\tMath.round(_tempColor3.b * 255),\n\t\t\t\tMath.round(_tempColor3.a * 255),\n\t\t\t\tMath.round(this._outlineThickness * 255)\n\t\t\t];\n\t\t\t_tempColor3.linear(this._shadowColor);\n\t\t\tthis._shadowPalette = [\n\t\t\t\tMath.round(_tempColor3.r * 255),\n\t\t\t\tMath.round(_tempColor3.g * 255),\n\t\t\t\tMath.round(_tempColor3.b * 255),\n\t\t\t\tMath.round(_tempColor3.a * 255),\n\t\t\t\tMath.round(this._shadowOffset.x * 127),\n\t\t\t\tMath.round(this._shadowOffset.y * 127)\n\t\t\t];\n\t\t\tthis._symbolColors = [];\n\t\t\tthis._symbolOutlineParams = [];\n\t\t\tthis._symbolShadowParams = [];\n\t\t\tpaletteMap[this._color.toString(false).toLowerCase()] = 0;\n\t\t\toutlinePaletteMap[getColorThicknessHash(this._outlineColor, this._outlineThickness)] = 0;\n\t\t\tshadowPaletteMap[getColorOffsetHash(this._shadowColor, this._shadowOffset)] = 0;\n\t\t\tfor (let i2 = 0, len = this._symbols.length; i2 < len; ++i2) {\n\t\t\t\tconst tag = tags[i2];\n\t\t\t\tlet color3 = 0;\n\t\t\t\tif (tag && tag.color && tag.color.value) {\n\t\t\t\t\tconst c2 = tag.color.value;\n\t\t\t\t\tif (c2.length === 7 && c2[0] === \"#\") {\n\t\t\t\t\t\tconst hex = c2.substring(1).toLowerCase();\n\t\t\t\t\t\tif (paletteMap.hasOwnProperty(hex)) {\n\t\t\t\t\t\t\tcolor3 = paletteMap[hex];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (/^[0-9a-f]{6}$/.test(hex)) {\n\t\t\t\t\t\t\t\tcolor3 = this._colorPalette.length / 3;\n\t\t\t\t\t\t\t\tpaletteMap[hex] = color3;\n\t\t\t\t\t\t\t\tcolorTmp.fromString(`#${hex}`);\n\t\t\t\t\t\t\t\t_tempColor3.linear(colorTmp);\n\t\t\t\t\t\t\t\tthis._colorPalette.push(Math.round(_tempColor3.r * 255));\n\t\t\t\t\t\t\t\tthis._colorPalette.push(Math.round(_tempColor3.g * 255));\n\t\t\t\t\t\t\t\tthis._colorPalette.push(Math.round(_tempColor3.b * 255));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis._symbolColors.push(color3);\n\t\t\t\tlet outline = 0;\n\t\t\t\tif (tag && tag.outline && (tag.outline.attributes.color || tag.outline.attributes.thickness)) {\n\t\t\t\t\tlet color4 = tag.outline.attributes.color ? colorTmp.fromString(tag.outline.attributes.color) : this._outlineColor;\n\t\t\t\t\tlet thickness = Number(tag.outline.attributes.thickness);\n\t\t\t\t\tif (Number.isNaN(color4.r) || Number.isNaN(color4.g) || Number.isNaN(color4.b) || Number.isNaN(color4.a)) {\n\t\t\t\t\t\tcolor4 = this._outlineColor;\n\t\t\t\t\t}\n\t\t\t\t\tif (Number.isNaN(thickness)) {\n\t\t\t\t\t\tthickness = this._outlineThickness;\n\t\t\t\t\t}\n\t\t\t\t\tconst outlineHash = getColorThicknessHash(color4, thickness);\n\t\t\t\t\tif (outlinePaletteMap.hasOwnProperty(outlineHash)) {\n\t\t\t\t\t\toutline = outlinePaletteMap[outlineHash];\n\t\t\t\t\t} else {\n\t\t\t\t\t\toutline = this._outlinePalette.length / 5;\n\t\t\t\t\t\toutlinePaletteMap[outlineHash] = outline;\n\t\t\t\t\t\t_tempColor3.linear(color4);\n\t\t\t\t\t\tthis._outlinePalette.push(\n\t\t\t\t\t\t\tMath.round(_tempColor3.r * 255),\n\t\t\t\t\t\t\tMath.round(_tempColor3.g * 255),\n\t\t\t\t\t\t\tMath.round(_tempColor3.b * 255),\n\t\t\t\t\t\t\tMath.round(_tempColor3.a * 255),\n\t\t\t\t\t\t\tMath.round(thickness * 255)\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis._symbolOutlineParams.push(outline);\n\t\t\t\tlet shadow = 0;\n\t\t\t\tif (tag && tag.shadow && (tag.shadow.attributes.color || tag.shadow.attributes.offset || tag.shadow.attributes.offsetX || tag.shadow.attributes.offsetY)) {\n\t\t\t\t\tlet color4 = tag.shadow.attributes.color ? colorTmp.fromString(tag.shadow.attributes.color) : this._shadowColor;\n\t\t\t\t\tconst off = Number(tag.shadow.attributes.offset);\n\t\t\t\t\tconst offX = Number(tag.shadow.attributes.offsetX);\n\t\t\t\t\tconst offY = Number(tag.shadow.attributes.offsetY);\n\t\t\t\t\tif (Number.isNaN(color4.r) || Number.isNaN(color4.g) || Number.isNaN(color4.b) || Number.isNaN(color4.a)) {\n\t\t\t\t\t\tcolor4 = this._shadowColor;\n\t\t\t\t\t}\n\t\t\t\t\tconst offset3 = vec2Tmp.set(\n\t\t\t\t\t\t!Number.isNaN(offX) ? offX : !Number.isNaN(off) ? off : this._shadowOffset.x,\n\t\t\t\t\t\t!Number.isNaN(offY) ? offY : !Number.isNaN(off) ? off : this._shadowOffset.y\n\t\t\t\t\t);\n\t\t\t\t\tconst shadowHash = getColorOffsetHash(color4, offset3);\n\t\t\t\t\tif (shadowPaletteMap.hasOwnProperty(shadowHash)) {\n\t\t\t\t\t\tshadow = shadowPaletteMap[shadowHash];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tshadow = this._shadowPalette.length / 6;\n\t\t\t\t\t\tshadowPaletteMap[shadowHash] = shadow;\n\t\t\t\t\t\t_tempColor3.linear(color4);\n\t\t\t\t\t\tthis._shadowPalette.push(\n\t\t\t\t\t\t\tMath.round(_tempColor3.r * 255),\n\t\t\t\t\t\t\tMath.round(_tempColor3.g * 255),\n\t\t\t\t\t\t\tMath.round(_tempColor3.b * 255),\n\t\t\t\t\t\t\tMath.round(_tempColor3.a * 255),\n\t\t\t\t\t\t\tMath.round(offset3.x * 127),\n\t\t\t\t\t\t\tMath.round(offset3.y * 127)\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis._symbolShadowParams.push(shadow);\n\t\t\t}\n\t\t} else {\n\t\t\tthis._colorPalette = [];\n\t\t\tthis._symbolColors = null;\n\t\t\tthis._symbolOutlineParams = null;\n\t\t\tthis._symbolShadowParams = null;\n\t\t}\n\t\tthis._updateMaterialEmissive();\n\t\tthis._updateMaterialOutline();\n\t\tthis._updateMaterialShadow();\n\t\tconst charactersPerTexture = this._calculateCharsPerTexture();\n\t\tlet removedModel = false;\n\t\tconst element = this._element;\n\t\tconst screenSpace = element._isScreenSpace();\n\t\tconst screenCulled = element._isScreenCulled();\n\t\tconst visibleFn = function(camera) {\n\t\t\treturn element.isVisibleForCamera(camera);\n\t\t};\n\t\tfor (let i2 = 0, len = this._meshInfo.length; i2 < len; i2++) {\n\t\t\tconst l = charactersPerTexture[i2] || 0;\n\t\t\tconst meshInfo = this._meshInfo[i2];\n\t\t\tif (meshInfo.count !== l) {\n\t\t\t\tif (!removedModel) {\n\t\t\t\t\telement.removeModelFromLayers(this._model);\n\t\t\t\t\tremovedModel = true;\n\t\t\t\t}\n\t\t\t\tmeshInfo.count = l;\n\t\t\t\tmeshInfo.positions.length = meshInfo.normals.length = l * 3 * 4;\n\t\t\t\tmeshInfo.indices.length = l * 3 * 2;\n\t\t\t\tmeshInfo.uvs.length = l * 2 * 4;\n\t\t\t\tmeshInfo.colors.length = l * 4 * 4;\n\t\t\t\tmeshInfo.outlines.length = l * 4 * 3;\n\t\t\t\tmeshInfo.shadows.length = l * 4 * 3;\n\t\t\t\tmeshInfo.gapIndices.length = this._justify ? l : 0;\n\t\t\t\tif (meshInfo.meshInstance) {\n\t\t\t\t\tthis._removeMeshInstance(meshInfo.meshInstance);\n\t\t\t\t}\n\t\t\t\tif (l === 0) {\n\t\t\t\t\tmeshInfo.meshInstance = null;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tfor (let v6 = 0; v6 < l; v6++) {\n\t\t\t\t\tmeshInfo.indices[v6 * 3 * 2 + 0] = v6 * 4;\n\t\t\t\t\tmeshInfo.indices[v6 * 3 * 2 + 1] = v6 * 4 + 1;\n\t\t\t\t\tmeshInfo.indices[v6 * 3 * 2 + 2] = v6 * 4 + 3;\n\t\t\t\t\tmeshInfo.indices[v6 * 3 * 2 + 3] = v6 * 4 + 2;\n\t\t\t\t\tmeshInfo.indices[v6 * 3 * 2 + 4] = v6 * 4 + 3;\n\t\t\t\t\tmeshInfo.indices[v6 * 3 * 2 + 5] = v6 * 4 + 1;\n\t\t\t\t\tmeshInfo.normals[v6 * 4 * 3 + 0] = 0;\n\t\t\t\t\tmeshInfo.normals[v6 * 4 * 3 + 1] = 0;\n\t\t\t\t\tmeshInfo.normals[v6 * 4 * 3 + 2] = -1;\n\t\t\t\t\tmeshInfo.normals[v6 * 4 * 3 + 3] = 0;\n\t\t\t\t\tmeshInfo.normals[v6 * 4 * 3 + 4] = 0;\n\t\t\t\t\tmeshInfo.normals[v6 * 4 * 3 + 5] = -1;\n\t\t\t\t\tmeshInfo.normals[v6 * 4 * 3 + 6] = 0;\n\t\t\t\t\tmeshInfo.normals[v6 * 4 * 3 + 7] = 0;\n\t\t\t\t\tmeshInfo.normals[v6 * 4 * 3 + 8] = -1;\n\t\t\t\t\tmeshInfo.normals[v6 * 4 * 3 + 9] = 0;\n\t\t\t\t\tmeshInfo.normals[v6 * 4 * 3 + 10] = 0;\n\t\t\t\t\tmeshInfo.normals[v6 * 4 * 3 + 11] = -1;\n\t\t\t\t}\n\t\t\t\tconst mesh = createTextMesh(this._system.app.graphicsDevice, meshInfo);\n\t\t\t\tconst mi = new MeshInstance(mesh, this._material, this._node);\n\t\t\t\tmi.name = `Text Element: ${this._entity.name}`;\n\t\t\t\tmi.castShadow = false;\n\t\t\t\tmi.receiveShadow = false;\n\t\t\t\tmi.cull = !screenSpace;\n\t\t\t\tmi.screenSpace = screenSpace;\n\t\t\t\tmi.drawOrder = this._drawOrder;\n\t\t\t\tif (screenCulled) {\n\t\t\t\t\tmi.cull = true;\n\t\t\t\t\tmi.isVisibleFunc = visibleFn;\n\t\t\t\t}\n\t\t\t\tthis._setTextureParams(mi, this._font.textures[i2]);\n\t\t\t\tmi.setParameter(\"material_emissive\", this._colorUniform);\n\t\t\t\tmi.setParameter(\"material_opacity\", this._color.a);\n\t\t\t\tmi.setParameter(\"font_sdfIntensity\", this._font.intensity);\n\t\t\t\tmi.setParameter(\"font_pxrange\", this._getPxRange(this._font));\n\t\t\t\tmi.setParameter(\"outline_color\", this._outlineColorUniform);\n\t\t\t\tmi.setParameter(\"outline_thickness\", this._outlineThicknessScale * this._outlineThickness);\n\t\t\t\tmi.setParameter(\"shadow_color\", this._shadowColorUniform);\n\t\t\t\tif (this._symbolShadowParams) {\n\t\t\t\t\tthis._shadowOffsetUniform[0] = 0;\n\t\t\t\t\tthis._shadowOffsetUniform[1] = 0;\n\t\t\t\t} else {\n\t\t\t\t\tconst ratio = -this._font.data.info.maps[i2].width / this._font.data.info.maps[i2].height;\n\t\t\t\t\tthis._shadowOffsetUniform[0] = this._shadowOffsetScale * this._shadowOffset.x;\n\t\t\t\t\tthis._shadowOffsetUniform[1] = ratio * this._shadowOffsetScale * this._shadowOffset.y;\n\t\t\t\t}\n\t\t\t\tmi.setParameter(\"shadow_offset\", this._shadowOffsetUniform);\n\t\t\t\tmeshInfo.meshInstance = mi;\n\t\t\t\tthis._model.meshInstances.push(mi);\n\t\t\t}\n\t\t}\n\t\tif (this._element.maskedBy) {\n\t\t\tthis._element._setMaskedBy(this._element.maskedBy);\n\t\t}\n\t\tif (removedModel && this._element.enabled && this._entity.enabled) {\n\t\t\tthis._element.addModelToLayers(this._model);\n\t\t}\n\t\tthis._updateMeshes();\n\t\tthis._rangeStart = 0;\n\t\tthis._rangeEnd = this._symbols.length;\n\t\tthis._updateRenderRange();\n\t}\n\t_removeMeshInstance(meshInstance) {\n\t\tmeshInstance.destroy();\n\t\tconst idx = this._model.meshInstances.indexOf(meshInstance);\n\t\tif (idx !== -1) {\n\t\t\tthis._model.meshInstances.splice(idx, 1);\n\t\t}\n\t}\n\t_setMaterial(material) {\n\t\tthis._material = material;\n\t\tif (this._model) {\n\t\t\tfor (let i2 = 0, len = this._model.meshInstances.length; i2 < len; i2++) {\n\t\t\t\tconst mi = this._model.meshInstances[i2];\n\t\t\t\tmi.material = material;\n\t\t\t}\n\t\t}\n\t}\n\t_updateMaterial(screenSpace) {\n\t\tconst element = this._element;\n\t\tconst screenCulled = element._isScreenCulled();\n\t\tconst visibleFn = function(camera) {\n\t\t\treturn element.isVisibleForCamera(camera);\n\t\t};\n\t\tconst msdf = this._font && this._font.type === FONT_MSDF;\n\t\tthis._material = this._system.getTextElementMaterial(screenSpace, msdf, this._enableMarkup);\n\t\tif (this._model) {\n\t\t\tfor (let i2 = 0, len = this._model.meshInstances.length; i2 < len; i2++) {\n\t\t\t\tconst mi = this._model.meshInstances[i2];\n\t\t\t\tmi.cull = !screenSpace;\n\t\t\t\tmi.material = this._material;\n\t\t\t\tmi.screenSpace = screenSpace;\n\t\t\t\tif (screenCulled) {\n\t\t\t\t\tmi.cull = true;\n\t\t\t\t\tmi.isVisibleFunc = visibleFn;\n\t\t\t\t} else {\n\t\t\t\t\tmi.isVisibleFunc = null;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t_updateMaterialEmissive() {\n\t\tif (this._symbolColors) {\n\t\t\tthis._colorUniform[0] = 1;\n\t\t\tthis._colorUniform[1] = 1;\n\t\t\tthis._colorUniform[2] = 1;\n\t\t} else {\n\t\t\t_tempColor3.linear(this._color);\n\t\t\tthis._colorUniform[0] = _tempColor3.r;\n\t\t\tthis._colorUniform[1] = _tempColor3.g;\n\t\t\tthis._colorUniform[2] = _tempColor3.b;\n\t\t}\n\t}\n\t_updateMaterialOutline() {\n\t\tif (this._symbolOutlineParams) {\n\t\t\tthis._outlineColorUniform[0] = 0;\n\t\t\tthis._outlineColorUniform[1] = 0;\n\t\t\tthis._outlineColorUniform[2] = 0;\n\t\t\tthis._outlineColorUniform[3] = 1;\n\t\t} else {\n\t\t\t_tempColor3.linear(this._outlineColor);\n\t\t\tthis._outlineColorUniform[0] = _tempColor3.r;\n\t\t\tthis._outlineColorUniform[1] = _tempColor3.g;\n\t\t\tthis._outlineColorUniform[2] = _tempColor3.b;\n\t\t\tthis._outlineColorUniform[3] = _tempColor3.a;\n\t\t}\n\t}\n\t_updateMaterialShadow() {\n\t\tif (this._symbolShadowParams) {\n\t\t\tthis._shadowColorUniform[0] = 0;\n\t\t\tthis._shadowColorUniform[1] = 0;\n\t\t\tthis._shadowColorUniform[2] = 0;\n\t\t\tthis._shadowColorUniform[3] = 0;\n\t\t} else {\n\t\t\t_tempColor3.linear(this._shadowColor);\n\t\t\tthis._shadowColorUniform[0] = _tempColor3.r;\n\t\t\tthis._shadowColorUniform[1] = _tempColor3.g;\n\t\t\tthis._shadowColorUniform[2] = _tempColor3.b;\n\t\t\tthis._shadowColorUniform[3] = _tempColor3.a;\n\t\t}\n\t}\n\t// char is space, tab, or dash\n\t_isWordBoundary(char) {\n\t\treturn WORD_BOUNDARY_CHAR.test(char);\n\t}\n\t_isValidNextChar(nextchar) {\n\t\treturn nextchar !== null && !NO_LINE_BREAK_CJK_CHAR.test(nextchar);\n\t}\n\t// char is a CJK character and next character is a CJK boundary\n\t_isNextCJKBoundary(char, nextchar) {\n\t\treturn CJK_CHAR.test(char) && (WORD_BOUNDARY_CHAR.test(nextchar) || ALPHANUMERIC_CHAR.test(nextchar));\n\t}\n\t// next character is a CJK character that can be a whole word\n\t_isNextCJKWholeWord(nextchar) {\n\t\treturn CJK_CHAR.test(nextchar);\n\t}\n\t_updateMeshes() {\n\t\tconst json = this._font.data;\n\t\tconst self2 = this;\n\t\tconst minFont = Math.min(this._minFontSize, this._maxFontSize);\n\t\tconst maxFont = this._maxFontSize;\n\t\tconst autoFit = this._shouldAutoFit();\n\t\tif (autoFit) {\n\t\t\tthis._fontSize = this._maxFontSize;\n\t\t}\n\t\tconst justify = this._justify;\n\t\tconst MAGIC = 32;\n\t\tconst l = this._symbols.length;\n\t\tlet _x = 0;\n\t\tlet _y = 0;\n\t\tlet _z = 0;\n\t\tlet _xMinusTrailingWhitespace = 0;\n\t\tlet lines = 1;\n\t\tlet wordStartX = 0;\n\t\tlet wordStartIndex = 0;\n\t\tlet lineStartIndex = 0;\n\t\tlet numWordsThisLine = 0;\n\t\tlet numCharsThisLine = 0;\n\t\tlet numBreaksThisLine = 0;\n\t\tlet numGapsThisLine = 0;\n\t\tlet numGapsAtWordStart = 0;\n\t\tlet prevWasWhitespace = false;\n\t\tlet seenNonWhitespaceThisLine = false;\n\t\tconst splitHorizontalAnchors = Math.abs(this._element.anchor.x - this._element.anchor.z) >= 1e-4;\n\t\tlet maxLineWidth = this._element.calculatedWidth;\n\t\tif (this.autoWidth && !splitHorizontalAnchors || !this._wrapLines) {\n\t\t\tmaxLineWidth = Number.POSITIVE_INFINITY;\n\t\t}\n\t\tlet fontMinY = 0;\n\t\tlet fontMaxY = 0;\n\t\tlet char, data2, quad, nextchar;\n\t\tfunction breakLine(symbols, lineBreakIndex, lineBreakX, lineGaps) {\n\t\t\tself2._lineWidths.push(Math.abs(lineBreakX));\n\t\t\tself2._lineGaps.push(lineGaps);\n\t\t\tconst sliceStart = lineStartIndex > lineBreakIndex ? lineBreakIndex + 1 : lineStartIndex;\n\t\t\tconst sliceEnd = lineStartIndex > lineBreakIndex ? lineStartIndex + 1 : lineBreakIndex;\n\t\t\tconst chars = symbols.slice(sliceStart, sliceEnd);\n\t\t\tif (numBreaksThisLine) {\n\t\t\t\tlet i2 = chars.length;\n\t\t\t\twhile (i2-- && numBreaksThisLine > 0) {\n\t\t\t\t\tif (LINE_BREAK_CHAR.test(chars[i2])) {\n\t\t\t\t\t\tchars.splice(i2, 1);\n\t\t\t\t\t\tnumBreaksThisLine--;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tself2._lineContents.push(chars.join(\"\"));\n\t\t\t_x = 0;\n\t\t\t_y -= self2._scaledLineHeight;\n\t\t\tlines++;\n\t\t\tnumWordsThisLine = 0;\n\t\t\tnumCharsThisLine = 0;\n\t\t\tnumBreaksThisLine = 0;\n\t\t\tnumGapsThisLine = 0;\n\t\t\tnumGapsAtWordStart = 0;\n\t\t\tprevWasWhitespace = false;\n\t\t\tseenNonWhitespaceThisLine = false;\n\t\t\twordStartX = 0;\n\t\t\tlineStartIndex = lineBreakIndex;\n\t\t}\n\t\tlet retryUpdateMeshes = true;\n\t\twhile (retryUpdateMeshes) {\n\t\t\tretryUpdateMeshes = false;\n\t\t\tif (autoFit) {\n\t\t\t\tthis._scaledLineHeight = this._lineHeight * this._fontSize / (this._maxFontSize || 1e-4);\n\t\t\t} else {\n\t\t\t\tthis._scaledLineHeight = this._lineHeight;\n\t\t\t}\n\t\t\tthis.width = 0;\n\t\t\tthis.height = 0;\n\t\t\tthis._lineWidths = [];\n\t\t\tthis._lineContents = [];\n\t\t\tthis._lineGaps = [];\n\t\t\t_x = 0;\n\t\t\t_y = 0;\n\t\t\t_z = 0;\n\t\t\t_xMinusTrailingWhitespace = 0;\n\t\t\tlines = 1;\n\t\t\twordStartX = 0;\n\t\t\twordStartIndex = 0;\n\t\t\tlineStartIndex = 0;\n\t\t\tnumWordsThisLine = 0;\n\t\t\tnumCharsThisLine = 0;\n\t\t\tnumBreaksThisLine = 0;\n\t\t\tnumGapsThisLine = 0;\n\t\t\tnumGapsAtWordStart = 0;\n\t\t\tprevWasWhitespace = false;\n\t\t\tseenNonWhitespaceThisLine = false;\n\t\t\tconst scale2 = this._fontSize / MAGIC;\n\t\t\tfontMinY = this._fontMinY * scale2;\n\t\t\tfontMaxY = this._fontMaxY * scale2;\n\t\t\tfor (let i2 = 0; i2 < this._meshInfo.length; i2++) {\n\t\t\t\tthis._meshInfo[i2].quad = 0;\n\t\t\t\tthis._meshInfo[i2].lines = {};\n\t\t\t}\n\t\t\tlet color_r = 255;\n\t\t\tlet color_g = 255;\n\t\t\tlet color_b = 255;\n\t\t\tlet outline_color_rg = 255 + 255 * 256;\n\t\t\tlet outline_color_ba = 255 + 255 * 256;\n\t\t\tlet outline_thickness = 0;\n\t\t\tlet shadow_color_rg = 255 + 255 * 256;\n\t\t\tlet shadow_color_ba = 255 + 255 * 256;\n\t\t\tlet shadow_offset_xy = 127 + 127 * 256;\n\t\t\tfor (let i2 = 0; i2 < l; i2++) {\n\t\t\t\tchar = this._symbols[i2];\n\t\t\t\tnextchar = i2 + 1 >= l ? null : this._symbols[i2 + 1];\n\t\t\t\tconst isLineBreak = LINE_BREAK_CHAR.test(char);\n\t\t\t\tif (isLineBreak) {\n\t\t\t\t\tnumBreaksThisLine++;\n\t\t\t\t\tif (!this._wrapLines || this._maxLines < 0 || lines < this._maxLines) {\n\t\t\t\t\t\tbreakLine(this._symbols, i2, _xMinusTrailingWhitespace, 0);\n\t\t\t\t\t\twordStartIndex = i2 + 1;\n\t\t\t\t\t\tlineStartIndex = i2 + 1;\n\t\t\t\t\t}\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tlet x3 = 0;\n\t\t\t\tlet y2 = 0;\n\t\t\t\tlet advance = 0;\n\t\t\t\tlet quadsize = 1;\n\t\t\t\tlet dataScale, size;\n\t\t\t\tdata2 = json.chars[char];\n\t\t\t\tif (!data2) {\n\t\t\t\t\tif (CONTROL_CHARS.indexOf(char) !== -1) {\n\t\t\t\t\t\tdata2 = CONTROL_GLYPH_DATA;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (json.chars[\" \"]) {\n\t\t\t\t\t\t\tdata2 = json.chars[\" \"];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfor (const key in json.chars) {\n\t\t\t\t\t\t\t\tdata2 = json.chars[key];\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (data2) {\n\t\t\t\t\tlet kerning = 0;\n\t\t\t\t\tif (numCharsThisLine > 0) {\n\t\t\t\t\t\tconst kernTable = this._font.data.kerning;\n\t\t\t\t\t\tif (kernTable) {\n\t\t\t\t\t\t\tconst kernLeft = kernTable[string.getCodePoint(this._symbols[i2 - 1]) || 0];\n\t\t\t\t\t\t\tif (kernLeft) {\n\t\t\t\t\t\t\t\tkerning = kernLeft[string.getCodePoint(this._symbols[i2]) || 0] || 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataScale = data2.scale || 1;\n\t\t\t\t\tsize = (data2.width + data2.height) / 2;\n\t\t\t\t\tquadsize = scale2 * size / dataScale;\n\t\t\t\t\tadvance = (data2.xadvance + kerning) * scale2;\n\t\t\t\t\tx3 = (data2.xoffset - kerning) * scale2;\n\t\t\t\t\ty2 = data2.yoffset * scale2;\n\t\t\t\t} else {\n\t\t\t\t\tconsole.error(`Couldn't substitute missing character: '${char}'`);\n\t\t\t\t}\n\t\t\t\tconst isWhitespace = WHITESPACE_CHAR.test(char);\n\t\t\t\tconst meshInfoId = data2 && data2.map || 0;\n\t\t\t\tconst ratio = -this._font.data.info.maps[meshInfoId].width / this._font.data.info.maps[meshInfoId].height;\n\t\t\t\tconst meshInfo = this._meshInfo[meshInfoId];\n\t\t\t\tconst candidateLineWidth = _x + this._spacing * advance;\n\t\t\t\tif (candidateLineWidth > maxLineWidth && numCharsThisLine > 0 && !isWhitespace) {\n\t\t\t\t\tif (this._maxLines < 0 || lines < this._maxLines) {\n\t\t\t\t\t\tif (numWordsThisLine === 0) {\n\t\t\t\t\t\t\twordStartIndex = i2;\n\t\t\t\t\t\t\tbreakLine(this._symbols, i2, _xMinusTrailingWhitespace, 0);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst backtrack = Math.max(i2 - wordStartIndex, 0);\n\t\t\t\t\t\t\tif (this._meshInfo.length <= 1) {\n\t\t\t\t\t\t\t\tmeshInfo.lines[lines - 1] -= backtrack;\n\t\t\t\t\t\t\t\tmeshInfo.quad -= backtrack;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tconst backtrackStart = wordStartIndex;\n\t\t\t\t\t\t\t\tconst backtrackEnd = i2;\n\t\t\t\t\t\t\t\tfor (let j = backtrackStart; j < backtrackEnd; j++) {\n\t\t\t\t\t\t\t\t\tconst backChar = this._symbols[j];\n\t\t\t\t\t\t\t\t\tconst backCharData = json.chars[backChar];\n\t\t\t\t\t\t\t\t\tconst backMeshInfo = this._meshInfo[backCharData && backCharData.map || 0];\n\t\t\t\t\t\t\t\t\tbackMeshInfo.lines[lines - 1] -= 1;\n\t\t\t\t\t\t\t\t\tbackMeshInfo.quad -= 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ti2 -= backtrack + 1;\n\t\t\t\t\t\t\tbreakLine(this._symbols, wordStartIndex, wordStartX, numGapsAtWordStart);\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tquad = meshInfo.quad;\n\t\t\t\tmeshInfo.lines[lines - 1] = quad;\n\t\t\t\tif (justify) {\n\t\t\t\t\tif (isWhitespace) {\n\t\t\t\t\t\tprevWasWhitespace = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (prevWasWhitespace && seenNonWhitespaceThisLine) {\n\t\t\t\t\t\t\tnumGapsThisLine++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tprevWasWhitespace = false;\n\t\t\t\t\t\tseenNonWhitespaceThisLine = true;\n\t\t\t\t\t}\n\t\t\t\t\tmeshInfo.gapIndices[quad] = numGapsThisLine;\n\t\t\t\t}\n\t\t\t\tlet left = _x - x3;\n\t\t\t\tlet right2 = left + quadsize;\n\t\t\t\tconst bottom = _y - y2;\n\t\t\t\tconst top = bottom + quadsize;\n\t\t\t\tif (this._rtl) {\n\t\t\t\t\tconst shift = quadsize - x3 - this._spacing * advance - x3;\n\t\t\t\t\tleft -= shift;\n\t\t\t\t\tright2 -= shift;\n\t\t\t\t}\n\t\t\t\tmeshInfo.positions[quad * 4 * 3 + 0] = left;\n\t\t\t\tmeshInfo.positions[quad * 4 * 3 + 1] = bottom;\n\t\t\t\tmeshInfo.positions[quad * 4 * 3 + 2] = _z;\n\t\t\t\tmeshInfo.positions[quad * 4 * 3 + 3] = right2;\n\t\t\t\tmeshInfo.positions[quad * 4 * 3 + 4] = bottom;\n\t\t\t\tmeshInfo.positions[quad * 4 * 3 + 5] = _z;\n\t\t\t\tmeshInfo.positions[quad * 4 * 3 + 6] = right2;\n\t\t\t\tmeshInfo.positions[quad * 4 * 3 + 7] = top;\n\t\t\t\tmeshInfo.positions[quad * 4 * 3 + 8] = _z;\n\t\t\t\tmeshInfo.positions[quad * 4 * 3 + 9] = left;\n\t\t\t\tmeshInfo.positions[quad * 4 * 3 + 10] = top;\n\t\t\t\tmeshInfo.positions[quad * 4 * 3 + 11] = _z;\n\t\t\t\tthis.width = Math.max(this.width, candidateLineWidth);\n\t\t\t\tlet fontSize;\n\t\t\t\tif (this._shouldAutoFitWidth() && this.width > this._element.calculatedWidth) {\n\t\t\t\t\tfontSize = Math.floor(this._element.fontSize * this._element.calculatedWidth / (this.width || 1e-4));\n\t\t\t\t\tfontSize = math.clamp(fontSize, minFont, maxFont);\n\t\t\t\t\tif (fontSize !== this._element.fontSize) {\n\t\t\t\t\t\tthis._fontSize = fontSize;\n\t\t\t\t\t\tretryUpdateMeshes = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.height = Math.max(this.height, fontMaxY - (_y + fontMinY));\n\t\t\t\tif (this._shouldAutoFitHeight() && this.height > this._element.calculatedHeight) {\n\t\t\t\t\tfontSize = math.clamp(this._fontSize - 1, minFont, maxFont);\n\t\t\t\t\tif (fontSize !== this._element.fontSize) {\n\t\t\t\t\t\tthis._fontSize = fontSize;\n\t\t\t\t\t\tretryUpdateMeshes = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t_x += this._spacing * advance;\n\t\t\t\tif (!isWhitespace) {\n\t\t\t\t\t_xMinusTrailingWhitespace = _x;\n\t\t\t\t}\n\t\t\t\tif (this._isWordBoundary(char) || this._isValidNextChar(nextchar) && (this._isNextCJKBoundary(char, nextchar) || this._isNextCJKWholeWord(nextchar))) {\n\t\t\t\t\tnumWordsThisLine++;\n\t\t\t\t\twordStartX = _xMinusTrailingWhitespace;\n\t\t\t\t\twordStartIndex = i2 + 1;\n\t\t\t\t\tnumGapsAtWordStart = numGapsThisLine;\n\t\t\t\t}\n\t\t\t\tnumCharsThisLine++;\n\t\t\t\tconst uv = this._getUv(char);\n\t\t\t\tmeshInfo.uvs[quad * 4 * 2 + 0] = uv[0];\n\t\t\t\tmeshInfo.uvs[quad * 4 * 2 + 1] = 1 - uv[1];\n\t\t\t\tmeshInfo.uvs[quad * 4 * 2 + 2] = uv[2];\n\t\t\t\tmeshInfo.uvs[quad * 4 * 2 + 3] = 1 - uv[1];\n\t\t\t\tmeshInfo.uvs[quad * 4 * 2 + 4] = uv[2];\n\t\t\t\tmeshInfo.uvs[quad * 4 * 2 + 5] = 1 - uv[3];\n\t\t\t\tmeshInfo.uvs[quad * 4 * 2 + 6] = uv[0];\n\t\t\t\tmeshInfo.uvs[quad * 4 * 2 + 7] = 1 - uv[3];\n\t\t\t\tif (this._symbolColors) {\n\t\t\t\t\tconst colorIdx = this._symbolColors[i2] * 3;\n\t\t\t\t\tcolor_r = this._colorPalette[colorIdx];\n\t\t\t\t\tcolor_g = this._colorPalette[colorIdx + 1];\n\t\t\t\t\tcolor_b = this._colorPalette[colorIdx + 2];\n\t\t\t\t}\n\t\t\t\tmeshInfo.colors[quad * 4 * 4 + 0] = color_r;\n\t\t\t\tmeshInfo.colors[quad * 4 * 4 + 1] = color_g;\n\t\t\t\tmeshInfo.colors[quad * 4 * 4 + 2] = color_b;\n\t\t\t\tmeshInfo.colors[quad * 4 * 4 + 3] = 255;\n\t\t\t\tmeshInfo.colors[quad * 4 * 4 + 4] = color_r;\n\t\t\t\tmeshInfo.colors[quad * 4 * 4 + 5] = color_g;\n\t\t\t\tmeshInfo.colors[quad * 4 * 4 + 6] = color_b;\n\t\t\t\tmeshInfo.colors[quad * 4 * 4 + 7] = 255;\n\t\t\t\tmeshInfo.colors[quad * 4 * 4 + 8] = color_r;\n\t\t\t\tmeshInfo.colors[quad * 4 * 4 + 9] = color_g;\n\t\t\t\tmeshInfo.colors[quad * 4 * 4 + 10] = color_b;\n\t\t\t\tmeshInfo.colors[quad * 4 * 4 + 11] = 255;\n\t\t\t\tmeshInfo.colors[quad * 4 * 4 + 12] = color_r;\n\t\t\t\tmeshInfo.colors[quad * 4 * 4 + 13] = color_g;\n\t\t\t\tmeshInfo.colors[quad * 4 * 4 + 14] = color_b;\n\t\t\t\tmeshInfo.colors[quad * 4 * 4 + 15] = 255;\n\t\t\t\tif (this._symbolOutlineParams) {\n\t\t\t\t\tconst outlineIdx = this._symbolOutlineParams[i2] * 5;\n\t\t\t\t\toutline_color_rg = this._outlinePalette[outlineIdx] + this._outlinePalette[outlineIdx + 1] * 256;\n\t\t\t\t\toutline_color_ba = this._outlinePalette[outlineIdx + 2] + this._outlinePalette[outlineIdx + 3] * 256;\n\t\t\t\t\toutline_thickness = this._outlinePalette[outlineIdx + 4];\n\t\t\t\t}\n\t\t\t\tmeshInfo.outlines[quad * 4 * 3 + 0] = outline_color_rg;\n\t\t\t\tmeshInfo.outlines[quad * 4 * 3 + 1] = outline_color_ba;\n\t\t\t\tmeshInfo.outlines[quad * 4 * 3 + 2] = outline_thickness;\n\t\t\t\tmeshInfo.outlines[quad * 4 * 3 + 3] = outline_color_rg;\n\t\t\t\tmeshInfo.outlines[quad * 4 * 3 + 4] = outline_color_ba;\n\t\t\t\tmeshInfo.outlines[quad * 4 * 3 + 5] = outline_thickness;\n\t\t\t\tmeshInfo.outlines[quad * 4 * 3 + 6] = outline_color_rg;\n\t\t\t\tmeshInfo.outlines[quad * 4 * 3 + 7] = outline_color_ba;\n\t\t\t\tmeshInfo.outlines[quad * 4 * 3 + 8] = outline_thickness;\n\t\t\t\tmeshInfo.outlines[quad * 4 * 3 + 9] = outline_color_rg;\n\t\t\t\tmeshInfo.outlines[quad * 4 * 3 + 10] = outline_color_ba;\n\t\t\t\tmeshInfo.outlines[quad * 4 * 3 + 11] = outline_thickness;\n\t\t\t\tif (this._symbolShadowParams) {\n\t\t\t\t\tconst shadowIdx = this._symbolShadowParams[i2] * 6;\n\t\t\t\t\tshadow_color_rg = this._shadowPalette[shadowIdx] + this._shadowPalette[shadowIdx + 1] * 256;\n\t\t\t\t\tshadow_color_ba = this._shadowPalette[shadowIdx + 2] + this._shadowPalette[shadowIdx + 3] * 256;\n\t\t\t\t\tshadow_offset_xy = this._shadowPalette[shadowIdx + 4] + 127 + Math.round(ratio * this._shadowPalette[shadowIdx + 5] + 127) * 256;\n\t\t\t\t}\n\t\t\t\tmeshInfo.shadows[quad * 4 * 3 + 0] = shadow_color_rg;\n\t\t\t\tmeshInfo.shadows[quad * 4 * 3 + 1] = shadow_color_ba;\n\t\t\t\tmeshInfo.shadows[quad * 4 * 3 + 2] = shadow_offset_xy;\n\t\t\t\tmeshInfo.shadows[quad * 4 * 3 + 3] = shadow_color_rg;\n\t\t\t\tmeshInfo.shadows[quad * 4 * 3 + 4] = shadow_color_ba;\n\t\t\t\tmeshInfo.shadows[quad * 4 * 3 + 5] = shadow_offset_xy;\n\t\t\t\tmeshInfo.shadows[quad * 4 * 3 + 6] = shadow_color_rg;\n\t\t\t\tmeshInfo.shadows[quad * 4 * 3 + 7] = shadow_color_ba;\n\t\t\t\tmeshInfo.shadows[quad * 4 * 3 + 8] = shadow_offset_xy;\n\t\t\t\tmeshInfo.shadows[quad * 4 * 3 + 9] = shadow_color_rg;\n\t\t\t\tmeshInfo.shadows[quad * 4 * 3 + 10] = shadow_color_ba;\n\t\t\t\tmeshInfo.shadows[quad * 4 * 3 + 11] = shadow_offset_xy;\n\t\t\t\tmeshInfo.quad++;\n\t\t\t}\n\t\t\tif (retryUpdateMeshes) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (lineStartIndex < l) {\n\t\t\t\tbreakLine(this._symbols, l, _x, 0);\n\t\t\t}\n\t\t}\n\t\tthis._noResize = true;\n\t\tthis.autoWidth = this._autoWidth;\n\t\tthis.autoHeight = this._autoHeight;\n\t\tthis._noResize = false;\n\t\tconst hp = this._element.pivot.x;\n\t\tconst vp = this._element.pivot.y;\n\t\tconst ha = this._alignment.x;\n\t\tconst va = this._alignment.y;\n\t\tfor (let i2 = 0; i2 < this._meshInfo.length; i2++) {\n\t\t\tif (this._meshInfo[i2].count === 0) continue;\n\t\t\tlet prevQuad = 0;\n\t\t\tfor (const line in this._meshInfo[i2].lines) {\n\t\t\t\tconst index = this._meshInfo[i2].lines[line];\n\t\t\t\tconst lineIndex = parseInt(line, 10);\n\t\t\t\tconst lw = this._lineWidths[lineIndex];\n\t\t\t\tconst slack = this._element.calculatedWidth - lw;\n\t\t\t\tconst numGaps = justify ? this._lineGaps[lineIndex] : 0;\n\t\t\t\tconst justified = numGaps > 0 && slack > 0;\n\t\t\t\tconst gapWidth = justified ? slack / numGaps : 0;\n\t\t\t\tconst hoffset = -hp * this._element.calculatedWidth + (justified ? 0 : ha * slack * (this._rtl ? -1 : 1));\n\t\t\t\tconst voffset = (1 - vp) * this._element.calculatedHeight - fontMaxY - (1 - va) * (this._element.calculatedHeight - this.height);\n\t\t\t\tfor (let quad2 = prevQuad; quad2 <= index; quad2++) {\n\t\t\t\t\tconst qoffset = justified ? hoffset + gapWidth * this._meshInfo[i2].gapIndices[quad2] : hoffset;\n\t\t\t\t\tthis._meshInfo[i2].positions[quad2 * 4 * 3] += qoffset;\n\t\t\t\t\tthis._meshInfo[i2].positions[quad2 * 4 * 3 + 3] += qoffset;\n\t\t\t\t\tthis._meshInfo[i2].positions[quad2 * 4 * 3 + 6] += qoffset;\n\t\t\t\t\tthis._meshInfo[i2].positions[quad2 * 4 * 3 + 9] += qoffset;\n\t\t\t\t\tthis._meshInfo[i2].positions[quad2 * 4 * 3 + 1] += voffset;\n\t\t\t\t\tthis._meshInfo[i2].positions[quad2 * 4 * 3 + 4] += voffset;\n\t\t\t\t\tthis._meshInfo[i2].positions[quad2 * 4 * 3 + 7] += voffset;\n\t\t\t\t\tthis._meshInfo[i2].positions[quad2 * 4 * 3 + 10] += voffset;\n\t\t\t\t}\n\t\t\t\tif (this._rtl) {\n\t\t\t\t\tfor (let quad2 = prevQuad; quad2 <= index; quad2++) {\n\t\t\t\t\t\tconst idx = quad2 * 4 * 3;\n\t\t\t\t\t\tfor (let vert = 0; vert < 4; ++vert) {\n\t\t\t\t\t\t\tthis._meshInfo[i2].positions[idx + vert * 3] = this._element.calculatedWidth - this._meshInfo[i2].positions[idx + vert * 3] + hoffset * 2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst tmp0 = this._meshInfo[i2].positions[idx + 3];\n\t\t\t\t\t\tconst tmp1 = this._meshInfo[i2].positions[idx + 6];\n\t\t\t\t\t\tthis._meshInfo[i2].positions[idx + 3] = this._meshInfo[i2].positions[idx + 0];\n\t\t\t\t\t\tthis._meshInfo[i2].positions[idx + 6] = this._meshInfo[i2].positions[idx + 9];\n\t\t\t\t\t\tthis._meshInfo[i2].positions[idx + 0] = tmp0;\n\t\t\t\t\t\tthis._meshInfo[i2].positions[idx + 9] = tmp1;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tprevQuad = index + 1;\n\t\t\t}\n\t\t\tconst numVertices = this._meshInfo[i2].count * 4;\n\t\t\tconst vertMax = this._meshInfo[i2].quad * 4;\n\t\t\tconst it = new VertexIterator(this._meshInfo[i2].meshInstance.mesh.vertexBuffer);\n\t\t\tfor (let v6 = 0; v6 < numVertices; v6++) {\n\t\t\t\tif (v6 >= vertMax) {\n\t\t\t\t\tit.element[SEMANTIC_POSITION].set(0, 0, 0);\n\t\t\t\t\tit.element[SEMANTIC_TEXCOORD0].set(0, 0);\n\t\t\t\t\tit.element[SEMANTIC_COLOR].set(0, 0, 0, 0);\n\t\t\t\t\tit.element[SEMANTIC_ATTR8].set(0, 0, 0, 0);\n\t\t\t\t\tit.element[SEMANTIC_ATTR9].set(0, 0, 0, 0);\n\t\t\t\t} else {\n\t\t\t\t\tit.element[SEMANTIC_POSITION].set(this._meshInfo[i2].positions[v6 * 3 + 0], this._meshInfo[i2].positions[v6 * 3 + 1], this._meshInfo[i2].positions[v6 * 3 + 2]);\n\t\t\t\t\tit.element[SEMANTIC_TEXCOORD0].set(this._meshInfo[i2].uvs[v6 * 2 + 0], this._meshInfo[i2].uvs[v6 * 2 + 1]);\n\t\t\t\t\tit.element[SEMANTIC_COLOR].set(\n\t\t\t\t\t\tthis._meshInfo[i2].colors[v6 * 4 + 0],\n\t\t\t\t\t\tthis._meshInfo[i2].colors[v6 * 4 + 1],\n\t\t\t\t\t\tthis._meshInfo[i2].colors[v6 * 4 + 2],\n\t\t\t\t\t\tthis._meshInfo[i2].colors[v6 * 4 + 3]\n\t\t\t\t\t);\n\t\t\t\t\tit.element[SEMANTIC_ATTR8].set(\n\t\t\t\t\t\tthis._meshInfo[i2].outlines[v6 * 3 + 0],\n\t\t\t\t\t\tthis._meshInfo[i2].outlines[v6 * 3 + 1],\n\t\t\t\t\t\tthis._meshInfo[i2].outlines[v6 * 3 + 2]\n\t\t\t\t\t);\n\t\t\t\t\tit.element[SEMANTIC_ATTR9].set(\n\t\t\t\t\t\tthis._meshInfo[i2].shadows[v6 * 3 + 0],\n\t\t\t\t\t\tthis._meshInfo[i2].shadows[v6 * 3 + 1],\n\t\t\t\t\t\tthis._meshInfo[i2].shadows[v6 * 3 + 2]\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tit.next();\n\t\t\t}\n\t\t\tit.end();\n\t\t\tthis._meshInfo[i2].meshInstance.mesh.aabb.compute(this._meshInfo[i2].positions);\n\t\t\tthis._meshInfo[i2].meshInstance._aabbVer = -1;\n\t\t}\n\t\tthis._aabbDirty = true;\n\t}\n\t_onFontRender() {\n\t\tthis.font = this._font;\n\t}\n\t_onFontLoad(asset) {\n\t\tif (this.font !== asset.resource) {\n\t\t\tif (this._i18nKey) {\n\t\t\t\tthis._text = this._system.app.i18n.getText(this._i18nKey);\n\t\t\t}\n\t\t\tthis.font = asset.resource;\n\t\t}\n\t}\n\t_onFontChange(asset, name, _new, _old) {\n\t\tif (name === \"data\") {\n\t\t\tthis._font.data = _new;\n\t\t\tconst maps = this._font.data.info.maps.length;\n\t\t\tfor (let i2 = 0; i2 < maps; i2++) {\n\t\t\t\tif (!this._meshInfo[i2]) continue;\n\t\t\t\tconst mi = this._meshInfo[i2].meshInstance;\n\t\t\t\tif (mi) {\n\t\t\t\t\tmi.setParameter(\"font_sdfIntensity\", this._font.intensity);\n\t\t\t\t\tmi.setParameter(\"font_pxrange\", this._getPxRange(this._font));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t_onFontRemove(asset) {\n\t}\n\t_setTextureParams(mi, texture) {\n\t\tif (this._font) {\n\t\t\tif (this._font.type === FONT_MSDF) {\n\t\t\t\tmi.deleteParameter(\"texture_emissiveMap\");\n\t\t\t\tmi.deleteParameter(\"texture_opacityMap\");\n\t\t\t\tmi.setParameter(\"texture_msdfMap\", texture);\n\t\t\t} else if (this._font.type === FONT_BITMAP) {\n\t\t\t\tmi.deleteParameter(\"texture_msdfMap\");\n\t\t\t\tmi.setParameter(\"texture_emissiveMap\", texture);\n\t\t\t\tmi.setParameter(\"texture_opacityMap\", texture);\n\t\t\t}\n\t\t}\n\t}\n\t_getPxRange(font) {\n\t\tconst keys = Object.keys(this._font.data.chars);\n\t\tfor (let i2 = 0; i2 < keys.length; i2++) {\n\t\t\tconst char = this._font.data.chars[keys[i2]];\n\t\t\tif (char.range) {\n\t\t\t\treturn (char.scale || 1) * char.range;\n\t\t\t}\n\t\t}\n\t\treturn 2;\n\t}\n\t_getUv(char) {\n\t\tconst data2 = this._font.data;\n\t\tif (!data2.chars[char]) {\n\t\t\tconst space = \" \";\n\t\t\tif (data2.chars[space]) {\n\t\t\t\treturn this._getUv(space);\n\t\t\t}\n\t\t\treturn [0, 0, 0, 0];\n\t\t}\n\t\tconst map = data2.chars[char].map;\n\t\tconst width = data2.info.maps[map].width;\n\t\tconst height = data2.info.maps[map].height;\n\t\tconst x3 = data2.chars[char].x;\n\t\tconst y2 = data2.chars[char].y;\n\t\tconst x1 = x3;\n\t\tconst y1 = y2;\n\t\tconst x22 = x3 + data2.chars[char].width;\n\t\tconst y22 = y2 - data2.chars[char].height;\n\t\tconst edge = 1 - data2.chars[char].height / height;\n\t\treturn [\n\t\t\tx1 / width,\n\t\t\tedge - y1 / height,\n\t\t\t// bottom left\n\t\t\tx22 / width,\n\t\t\tedge - y22 / height\n\t\t\t// top right\n\t\t];\n\t}\n\tonEnable() {\n\t\tthis._fontAsset.autoLoad = true;\n\t\tif (this._model) {\n\t\t\tthis._element.addModelToLayers(this._model);\n\t\t}\n\t}\n\tonDisable() {\n\t\tthis._fontAsset.autoLoad = false;\n\t\tif (this._model) {\n\t\t\tthis._element.removeModelFromLayers(this._model);\n\t\t}\n\t}\n\t_setStencil(stencilParams) {\n\t\tif (this._model) {\n\t\t\tconst instances = this._model.meshInstances;\n\t\t\tfor (let i2 = 0; i2 < instances.length; i2++) {\n\t\t\t\tinstances[i2].stencilFront = stencilParams;\n\t\t\t\tinstances[i2].stencilBack = stencilParams;\n\t\t\t}\n\t\t}\n\t}\n\t_shouldAutoFitWidth() {\n\t\treturn this._autoFitWidth && !this._autoWidth;\n\t}\n\t_shouldAutoFitHeight() {\n\t\treturn this._autoFitHeight && !this._autoHeight;\n\t}\n\t_shouldAutoFit() {\n\t\treturn this._autoFitWidth && !this._autoWidth || this._autoFitHeight && !this._autoHeight;\n\t}\n\t// calculate the number of characters per texture up to, but not including\n\t// the specified symbolIndex\n\t_calculateCharsPerTexture(symbolIndex) {\n\t\tconst charactersPerTexture = {};\n\t\tif (symbolIndex === void 0) {\n\t\t\tsymbolIndex = this._symbols.length;\n\t\t}\n\t\tfor (let i2 = 0, len = symbolIndex; i2 < len; i2++) {\n\t\t\tconst char = this._symbols[i2];\n\t\t\tlet info = this._font.data.chars[char];\n\t\t\tif (!info) {\n\t\t\t\tinfo = this._font.data.chars[\" \"];\n\t\t\t\tif (!info) {\n\t\t\t\t\tinfo = this._font.data.chars[Object.keys(this._font.data.chars)[0]];\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst map = info.map;\n\t\t\tif (!charactersPerTexture[map]) {\n\t\t\t\tcharactersPerTexture[map] = 1;\n\t\t\t} else {\n\t\t\t\tcharactersPerTexture[map]++;\n\t\t\t}\n\t\t}\n\t\treturn charactersPerTexture;\n\t}\n\t_updateRenderRange() {\n\t\tconst startChars = this._rangeStart === 0 ? 0 : this._calculateCharsPerTexture(this._rangeStart);\n\t\tconst endChars = this._rangeEnd === 0 ? 0 : this._calculateCharsPerTexture(this._rangeEnd);\n\t\tfor (let i2 = 0, len = this._meshInfo.length; i2 < len; i2++) {\n\t\t\tconst start = startChars[i2] || 0;\n\t\t\tconst end = endChars[i2] || 0;\n\t\t\tconst instance = this._meshInfo[i2].meshInstance;\n\t\t\tif (instance) {\n\t\t\t\tconst mesh = instance.mesh;\n\t\t\t\tif (mesh) {\n\t\t\t\t\tmesh.primitive[0].base = start * 3 * 2;\n\t\t\t\t\tmesh.primitive[0].count = (end - start) * 3 * 2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tset text(value) {\n\t\tthis._i18nKey = null;\n\t\tconst str = value != null && value.toString() || \"\";\n\t\tthis._setText(str);\n\t}\n\tget text() {\n\t\treturn this._text;\n\t}\n\tset key(value) {\n\t\tconst str = value !== null ? value.toString() : null;\n\t\tif (this._i18nKey === str) {\n\t\t\treturn;\n\t\t}\n\t\tthis._i18nKey = str;\n\t\tif (str) {\n\t\t\tthis._fontAsset.disableLocalization = false;\n\t\t\tthis._resetLocalizedText();\n\t\t} else {\n\t\t\tthis._fontAsset.disableLocalization = true;\n\t\t}\n\t}\n\tget key() {\n\t\treturn this._i18nKey;\n\t}\n\tset color(value) {\n\t\tconst r = value.r;\n\t\tconst g = value.g;\n\t\tconst b = value.b;\n\t\tif (this._color.r === r && this._color.g === g && this._color.b === b) {\n\t\t\treturn;\n\t\t}\n\t\tthis._color.r = r;\n\t\tthis._color.g = g;\n\t\tthis._color.b = b;\n\t\tif (!this._model) {\n\t\t\treturn;\n\t\t}\n\t\tif (this._symbolColors) {\n\t\t\tif (this._font) {\n\t\t\t\tthis._updateText();\n\t\t\t}\n\t\t} else {\n\t\t\t_tempColor3.linear(this._color);\n\t\t\tthis._colorUniform[0] = _tempColor3.r;\n\t\t\tthis._colorUniform[1] = _tempColor3.g;\n\t\t\tthis._colorUniform[2] = _tempColor3.b;\n\t\t\tfor (let i2 = 0, len = this._model.meshInstances.length; i2 < len; i2++) {\n\t\t\t\tconst mi = this._model.meshInstances[i2];\n\t\t\t\tmi.setParameter(\"material_emissive\", this._colorUniform);\n\t\t\t}\n\t\t}\n\t\tif (this._element) {\n\t\t\tthis._element.fire(\"set:color\", this._color);\n\t\t}\n\t}\n\tget color() {\n\t\treturn this._color;\n\t}\n\tset opacity(value) {\n\t\tif (this._color.a !== value) {\n\t\t\tthis._color.a = value;\n\t\t\tif (this._model) {\n\t\t\t\tfor (let i2 = 0, len = this._model.meshInstances.length; i2 < len; i2++) {\n\t\t\t\t\tconst mi = this._model.meshInstances[i2];\n\t\t\t\t\tmi.setParameter(\"material_opacity\", value);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (this._element) {\n\t\t\tthis._element.fire(\"set:opacity\", value);\n\t\t}\n\t}\n\tget opacity() {\n\t\treturn this._color.a;\n\t}\n\tset lineHeight(value) {\n\t\tconst _prev = this._lineHeight;\n\t\tthis._lineHeight = value;\n\t\tthis._scaledLineHeight = value;\n\t\tif (_prev !== value && this._font) {\n\t\t\tthis._updateText();\n\t\t}\n\t}\n\tget lineHeight() {\n\t\treturn this._lineHeight;\n\t}\n\tset wrapLines(value) {\n\t\tconst _prev = this._wrapLines;\n\t\tthis._wrapLines = value;\n\t\tif (_prev !== value && this._font) {\n\t\t\tthis._updateText();\n\t\t}\n\t}\n\tget wrapLines() {\n\t\treturn this._wrapLines;\n\t}\n\tset justify(value) {\n\t\tconst _prev = this._justify;\n\t\tthis._justify = value;\n\t\tif (_prev !== value && this._font) {\n\t\t\tthis._updateText();\n\t\t}\n\t}\n\tget justify() {\n\t\treturn this._justify;\n\t}\n\tget lines() {\n\t\treturn this._lineContents;\n\t}\n\tset spacing(value) {\n\t\tconst _prev = this._spacing;\n\t\tthis._spacing = value;\n\t\tif (_prev !== value && this._font) {\n\t\t\tthis._updateText();\n\t\t}\n\t}\n\tget spacing() {\n\t\treturn this._spacing;\n\t}\n\tset fontSize(value) {\n\t\tconst _prev = this._fontSize;\n\t\tthis._fontSize = value;\n\t\tthis._originalFontSize = value;\n\t\tif (_prev !== value && this._font) {\n\t\t\tthis._updateText();\n\t\t}\n\t}\n\tget fontSize() {\n\t\treturn this._fontSize;\n\t}\n\tset fontAsset(value) {\n\t\tthis._fontAsset.defaultAsset = value;\n\t}\n\tget fontAsset() {\n\t\treturn this._fontAsset.localizedAsset;\n\t}\n\tset font(value) {\n\t\tlet previousFontType;\n\t\tif (this._font) {\n\t\t\tpreviousFontType = this._font.type;\n\t\t\tif (this._font.off) this._font.off(\"render\", this._onFontRender, this);\n\t\t}\n\t\tthis._font = value;\n\t\tthis._fontMinY = 0;\n\t\tthis._fontMaxY = 0;\n\t\tif (!value) return;\n\t\tconst json = this._font.data;\n\t\tfor (const charId in json.chars) {\n\t\t\tconst data2 = json.chars[charId];\n\t\t\tif (data2.bounds) {\n\t\t\t\tthis._fontMinY = Math.min(this._fontMinY, data2.bounds[1]);\n\t\t\t\tthis._fontMaxY = Math.max(this._fontMaxY, data2.bounds[3]);\n\t\t\t}\n\t\t}\n\t\tif (this._font.on) this._font.on(\"render\", this._onFontRender, this);\n\t\tif (this._fontAsset.localizedAsset) {\n\t\t\tconst asset = this._system.app.assets.get(this._fontAsset.localizedAsset);\n\t\t\tif (asset.resource !== this._font) {\n\t\t\t\tthis._fontAsset.defaultAsset = null;\n\t\t\t}\n\t\t}\n\t\tif (value.type !== previousFontType) {\n\t\t\tconst screenSpace = this._element._isScreenSpace();\n\t\t\tthis._updateMaterial(screenSpace);\n\t\t}\n\t\tfor (let i2 = 0, len = this._font.textures.length; i2 < len; i2++) {\n\t\t\tif (!this._meshInfo[i2]) {\n\t\t\t\tthis._meshInfo[i2] = new MeshInfo();\n\t\t\t} else {\n\t\t\t\tconst mi = this._meshInfo[i2].meshInstance;\n\t\t\t\tif (mi) {\n\t\t\t\t\tmi.setParameter(\"font_sdfIntensity\", this._font.intensity);\n\t\t\t\t\tmi.setParameter(\"font_pxrange\", this._getPxRange(this._font));\n\t\t\t\t\tthis._setTextureParams(mi, this._font.textures[i2]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tlet removedModel = false;\n\t\tfor (let i2 = this._font.textures.length; i2 < this._meshInfo.length; i2++) {\n\t\t\tif (this._meshInfo[i2].meshInstance) {\n\t\t\t\tif (!removedModel) {\n\t\t\t\t\tthis._element.removeModelFromLayers(this._model);\n\t\t\t\t\tremovedModel = true;\n\t\t\t\t}\n\t\t\t\tthis._removeMeshInstance(this._meshInfo[i2].meshInstance);\n\t\t\t}\n\t\t}\n\t\tif (this._meshInfo.length > this._font.textures.length) {\n\t\t\tthis._meshInfo.length = this._font.textures.length;\n\t\t}\n\t\tthis._updateText();\n\t}\n\tget font() {\n\t\treturn this._font;\n\t}\n\tset alignment(value) {\n\t\tif (value instanceof Vec2) {\n\t\t\tthis._alignment.set(value.x, value.y);\n\t\t} else {\n\t\t\tthis._alignment.set(value[0], value[1]);\n\t\t}\n\t\tif (this._font) {\n\t\t\tthis._updateText();\n\t\t}\n\t}\n\tget alignment() {\n\t\treturn this._alignment;\n\t}\n\tset autoWidth(value) {\n\t\tconst old = this._autoWidth;\n\t\tthis._autoWidth = value;\n\t\tif (value && Math.abs(this._element.anchor.x - this._element.anchor.z) < 1e-4) {\n\t\t\tthis._element.width = this.width;\n\t\t}\n\t\tif (old !== value) {\n\t\t\tconst newFontSize = this._shouldAutoFit() ? this._maxFontSize : this._originalFontSize;\n\t\t\tif (newFontSize !== this._fontSize) {\n\t\t\t\tthis._fontSize = newFontSize;\n\t\t\t\tif (this._font) {\n\t\t\t\t\tthis._updateText();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tget autoWidth() {\n\t\treturn this._autoWidth;\n\t}\n\tset autoHeight(value) {\n\t\tconst old = this._autoHeight;\n\t\tthis._autoHeight = value;\n\t\tif (value && Math.abs(this._element.anchor.y - this._element.anchor.w) < 1e-4) {\n\t\t\tthis._element.height = this.height;\n\t\t}\n\t\tif (old !== value) {\n\t\t\tconst newFontSize = this._shouldAutoFit() ? this._maxFontSize : this._originalFontSize;\n\t\t\tif (newFontSize !== this._fontSize) {\n\t\t\t\tthis._fontSize = newFontSize;\n\t\t\t\tif (this._font) {\n\t\t\t\t\tthis._updateText();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tget autoHeight() {\n\t\treturn this._autoHeight;\n\t}\n\tset rtlReorder(value) {\n\t\tif (this._rtlReorder !== value) {\n\t\t\tthis._rtlReorder = value;\n\t\t\tif (this._font) {\n\t\t\t\tthis._updateText();\n\t\t\t}\n\t\t}\n\t}\n\tget rtlReorder() {\n\t\treturn this._rtlReorder;\n\t}\n\tset unicodeConverter(value) {\n\t\tif (this._unicodeConverter !== value) {\n\t\t\tthis._unicodeConverter = value;\n\t\t\tthis._setText(this._text);\n\t\t}\n\t}\n\tget unicodeConverter() {\n\t\treturn this._unicodeConverter;\n\t}\n\t// private\n\tget aabb() {\n\t\tif (this._aabbDirty) {\n\t\t\tlet initialized = false;\n\t\t\tfor (let i2 = 0; i2 < this._meshInfo.length; i2++) {\n\t\t\t\tif (!this._meshInfo[i2].meshInstance) continue;\n\t\t\t\tif (!initialized) {\n\t\t\t\t\tthis._aabb.copy(this._meshInfo[i2].meshInstance.aabb);\n\t\t\t\t\tinitialized = true;\n\t\t\t\t} else {\n\t\t\t\t\tthis._aabb.add(this._meshInfo[i2].meshInstance.aabb);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._aabbDirty = false;\n\t\t}\n\t\treturn this._aabb;\n\t}\n\tset outlineColor(value) {\n\t\tconst r = value instanceof Color ? value.r : value[0];\n\t\tconst g = value instanceof Color ? value.g : value[1];\n\t\tconst b = value instanceof Color ? value.b : value[2];\n\t\tconst a = value instanceof Color ? value.a : value[3];\n\t\tif (this._outlineColor.r === r && this._outlineColor.g === g && this._outlineColor.b === b && this._outlineColor.a === a) {\n\t\t\treturn;\n\t\t}\n\t\tthis._outlineColor.r = r;\n\t\tthis._outlineColor.g = g;\n\t\tthis._outlineColor.b = b;\n\t\tthis._outlineColor.a = a;\n\t\tif (!this._model) {\n\t\t\treturn;\n\t\t}\n\t\tif (this._symbolOutlineParams) {\n\t\t\tif (this._font) {\n\t\t\t\tthis._updateText();\n\t\t\t}\n\t\t} else {\n\t\t\t_tempColor3.linear(this._outlineColor);\n\t\t\tthis._outlineColorUniform[0] = _tempColor3.r;\n\t\t\tthis._outlineColorUniform[1] = _tempColor3.g;\n\t\t\tthis._outlineColorUniform[2] = _tempColor3.b;\n\t\t\tthis._outlineColorUniform[3] = _tempColor3.a;\n\t\t\tfor (let i2 = 0, len = this._model.meshInstances.length; i2 < len; i2++) {\n\t\t\t\tconst mi = this._model.meshInstances[i2];\n\t\t\t\tmi.setParameter(\"outline_color\", this._outlineColorUniform);\n\t\t\t}\n\t\t}\n\t\tif (this._element) {\n\t\t\tthis._element.fire(\"set:outline\", this._outlineColor);\n\t\t}\n\t}\n\tget outlineColor() {\n\t\treturn this._outlineColor;\n\t}\n\tset outlineThickness(value) {\n\t\tconst _prev = this._outlineThickness;\n\t\tthis._outlineThickness = value;\n\t\tif (_prev !== value && this._font) {\n\t\t\tif (!this._model) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (this._symbolOutlineParams) {\n\t\t\t\tif (this._font) {\n\t\t\t\t\tthis._updateText();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (let i2 = 0, len = this._model.meshInstances.length; i2 < len; i2++) {\n\t\t\t\t\tconst mi = this._model.meshInstances[i2];\n\t\t\t\t\tmi.setParameter(\"outline_thickness\", this._outlineThicknessScale * this._outlineThickness);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tget outlineThickness() {\n\t\treturn this._outlineThickness;\n\t}\n\tset shadowColor(value) {\n\t\tconst r = value instanceof Color ? value.r : value[0];\n\t\tconst g = value instanceof Color ? value.g : value[1];\n\t\tconst b = value instanceof Color ? value.b : value[2];\n\t\tconst a = value instanceof Color ? value.a : value[3];\n\t\tif (this._shadowColor.r === r && this._shadowColor.g === g && this._shadowColor.b === b && this._shadowColor.a === a) {\n\t\t\treturn;\n\t\t}\n\t\tthis._shadowColor.r = r;\n\t\tthis._shadowColor.g = g;\n\t\tthis._shadowColor.b = b;\n\t\tthis._shadowColor.a = a;\n\t\tif (!this._model) {\n\t\t\treturn;\n\t\t}\n\t\tif (this._symbolShadowParams) {\n\t\t\tif (this._font) {\n\t\t\t\tthis._updateText();\n\t\t\t}\n\t\t} else {\n\t\t\t_tempColor3.linear(this._shadowColor);\n\t\t\tthis._shadowColorUniform[0] = _tempColor3.r;\n\t\t\tthis._shadowColorUniform[1] = _tempColor3.g;\n\t\t\tthis._shadowColorUniform[2] = _tempColor3.b;\n\t\t\tthis._shadowColorUniform[3] = _tempColor3.a;\n\t\t\tfor (let i2 = 0, len = this._model.meshInstances.length; i2 < len; i2++) {\n\t\t\t\tconst mi = this._model.meshInstances[i2];\n\t\t\t\tmi.setParameter(\"shadow_color\", this._shadowColorUniform);\n\t\t\t}\n\t\t}\n\t}\n\tget shadowColor() {\n\t\treturn this._shadowColor;\n\t}\n\tset shadowOffset(value) {\n\t\tconst x3 = value instanceof Vec2 ? value.x : value[0], y2 = value instanceof Vec2 ? value.y : value[1];\n\t\tif (this._shadowOffset.x === x3 && this._shadowOffset.y === y2) {\n\t\t\treturn;\n\t\t}\n\t\tthis._shadowOffset.set(x3, y2);\n\t\tif (this._font && this._model) {\n\t\t\tif (this._symbolShadowParams) {\n\t\t\t\tthis._updateText();\n\t\t\t} else {\n\t\t\t\tfor (let i2 = 0, len = this._model.meshInstances.length; i2 < len; i2++) {\n\t\t\t\t\tconst ratio = -this._font.data.info.maps[i2].width / this._font.data.info.maps[i2].height;\n\t\t\t\t\tthis._shadowOffsetUniform[0] = this._shadowOffsetScale * this._shadowOffset.x;\n\t\t\t\t\tthis._shadowOffsetUniform[1] = ratio * this._shadowOffsetScale * this._shadowOffset.y;\n\t\t\t\t\tconst mi = this._model.meshInstances[i2];\n\t\t\t\t\tmi.setParameter(\"shadow_offset\", this._shadowOffsetUniform);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tget shadowOffset() {\n\t\treturn this._shadowOffset;\n\t}\n\tset minFontSize(value) {\n\t\tif (this._minFontSize === value) return;\n\t\tthis._minFontSize = value;\n\t\tif (this.font && this._shouldAutoFit()) {\n\t\t\tthis._updateText();\n\t\t}\n\t}\n\tget minFontSize() {\n\t\treturn this._minFontSize;\n\t}\n\tset maxFontSize(value) {\n\t\tif (this._maxFontSize === value) return;\n\t\tthis._maxFontSize = value;\n\t\tif (this.font && this._shouldAutoFit()) {\n\t\t\tthis._updateText();\n\t\t}\n\t}\n\tget maxFontSize() {\n\t\treturn this._maxFontSize;\n\t}\n\tset autoFitWidth(value) {\n\t\tif (this._autoFitWidth === value) return;\n\t\tthis._autoFitWidth = value;\n\t\tthis._fontSize = this._shouldAutoFit() ? this._maxFontSize : this._originalFontSize;\n\t\tif (this.font) {\n\t\t\tthis._updateText();\n\t\t}\n\t}\n\tget autoFitWidth() {\n\t\treturn this._autoFitWidth;\n\t}\n\tset autoFitHeight(value) {\n\t\tif (this._autoFitHeight === value) return;\n\t\tthis._autoFitHeight = value;\n\t\tthis._fontSize = this._shouldAutoFit() ? this._maxFontSize : this._originalFontSize;\n\t\tif (this.font) {\n\t\t\tthis._updateText();\n\t\t}\n\t}\n\tget autoFitHeight() {\n\t\treturn this._autoFitHeight;\n\t}\n\tset maxLines(value) {\n\t\tif (this._maxLines === value) return;\n\t\tif (value === null && this._maxLines === -1) return;\n\t\tthis._maxLines = value === null ? -1 : value;\n\t\tif (this.font && this._wrapLines) {\n\t\t\tthis._updateText();\n\t\t}\n\t}\n\tget maxLines() {\n\t\treturn this._maxLines;\n\t}\n\tset enableMarkup(value) {\n\t\tvalue = !!value;\n\t\tif (this._enableMarkup === value) return;\n\t\tthis._enableMarkup = value;\n\t\tif (this.font) {\n\t\t\tthis._updateText();\n\t\t}\n\t\tconst screenSpace = this._element._isScreenSpace();\n\t\tthis._updateMaterial(screenSpace);\n\t}\n\tget enableMarkup() {\n\t\treturn this._enableMarkup;\n\t}\n\tget symbols() {\n\t\treturn this._symbols;\n\t}\n\tget symbolColors() {\n\t\tif (this._symbolColors === null) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this._symbolColors.map(function(c2) {\n\t\t\treturn this._colorPalette.slice(c2 * 3, c2 * 3 + 3);\n\t\t}, this);\n\t}\n\t// NOTE: it is used only for tests\n\tget symbolOutlineParams() {\n\t\tif (this._symbolOutlineParams === null) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this._symbolOutlineParams.map(function(paramId) {\n\t\t\treturn this._outlinePalette.slice(paramId * 5, paramId * 5 + 5);\n\t\t}, this);\n\t}\n\t// NOTE: it is used only for tests\n\tget symbolShadowParams() {\n\t\tif (this._symbolShadowParams === null) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this._symbolShadowParams.map(function(paramId) {\n\t\t\treturn this._shadowPalette.slice(paramId * 6, paramId * 6 + 6);\n\t\t}, this);\n\t}\n\tget rtl() {\n\t\treturn this._rtl;\n\t}\n\tset rangeStart(rangeStart) {\n\t\trangeStart = Math.max(0, Math.min(rangeStart, this._symbols.length));\n\t\tif (rangeStart !== this._rangeStart) {\n\t\t\tthis._rangeStart = rangeStart;\n\t\t\tthis._updateRenderRange();\n\t\t}\n\t}\n\tget rangeStart() {\n\t\treturn this._rangeStart;\n\t}\n\tset rangeEnd(rangeEnd) {\n\t\trangeEnd = Math.max(this._rangeStart, Math.min(rangeEnd, this._symbols.length));\n\t\tif (rangeEnd !== this._rangeEnd) {\n\t\t\tthis._rangeEnd = rangeEnd;\n\t\t\tthis._updateRenderRange();\n\t\t}\n\t}\n\tget rangeEnd() {\n\t\treturn this._rangeEnd;\n\t}\n};\n\nvar position2 = new Vec3();\nvar invParentWtm2 = new Mat4();\nvar vecA = new Vec3();\nvar vecB = new Vec3();\nvar matA = new Mat4();\nvar matB = new Mat4();\nvar matC = new Mat4();\nvar matD = new Mat4();\nvar tmpCorners = [new Vec3(), new Vec3(), new Vec3(), new Vec3()];\nvar ElementComponent = class extends Component {\n\tstatic EVENT_MOUSEDOWN = \"mousedown\";\n\tstatic EVENT_MOUSEUP = \"mouseup\";\n\tstatic EVENT_MOUSEENTER = \"mouseenter\";\n\tstatic EVENT_MOUSELEAVE = \"mouseleave\";\n\tstatic EVENT_MOUSEMOVE = \"mousemove\";\n\tstatic EVENT_MOUSEWHEEL = \"mousewheel\";\n\tstatic EVENT_CLICK = \"click\";\n\tstatic EVENT_TOUCHSTART = \"touchstart\";\n\tstatic EVENT_TOUCHEND = \"touchend\";\n\tstatic EVENT_TOUCHMOVE = \"touchmove\";\n\tstatic EVENT_TOUCHCANCEL = \"touchcancel\";\n\t_evtLayersChanged = null;\n\t_evtLayerAdded = null;\n\t_evtLayerRemoved = null;\n\tconstructor(system, entity) {\n\t\tsuper(system, entity);\n\t\tthis._beingInitialized = false;\n\t\tthis._anchor = new Vec4();\n\t\tthis._localAnchor = new Vec4();\n\t\tthis._pivot = new Vec2();\n\t\tthis._width = this._calculatedWidth = 32;\n\t\tthis._height = this._calculatedHeight = 32;\n\t\tthis._margin = new Vec4(0, 0, -32, -32);\n\t\tthis._modelTransform = new Mat4();\n\t\tthis._screenToWorld = new Mat4();\n\t\tthis._anchorTransform = new Mat4();\n\t\tthis._anchorDirty = true;\n\t\tthis._parentWorldTransform = new Mat4();\n\t\tthis._screenTransform = new Mat4();\n\t\tthis._screenCorners = [new Vec3(), new Vec3(), new Vec3(), new Vec3()];\n\t\tthis._canvasCorners = [new Vec2(), new Vec2(), new Vec2(), new Vec2()];\n\t\tthis._worldCorners = [new Vec3(), new Vec3(), new Vec3(), new Vec3()];\n\t\tthis._cornersDirty = true;\n\t\tthis._canvasCornersDirty = true;\n\t\tthis._worldCornersDirty = true;\n\t\tthis.entity.on(\"insert\", this._onInsert, this);\n\t\tthis._patch();\n\t\tthis.screen = null;\n\t\tthis._type = ELEMENTTYPE_GROUP;\n\t\tthis._image = null;\n\t\tthis._text = null;\n\t\tthis._group = null;\n\t\tthis._drawOrder = 0;\n\t\tthis._fitMode = FITMODE_STRETCH;\n\t\tthis._useInput = false;\n\t\tthis._layers = [LAYERID_UI];\n\t\tthis._addedModels = [];\n\t\tthis._batchGroupId = -1;\n\t\tthis._offsetReadAt = 0;\n\t\tthis._maskOffset = 0.5;\n\t\tthis._maskedBy = null;\n\t}\n\tget _absLeft() {\n\t\treturn this._localAnchor.x + this._margin.x;\n\t}\n\tget _absRight() {\n\t\treturn this._localAnchor.z - this._margin.z;\n\t}\n\tget _absTop() {\n\t\treturn this._localAnchor.w - this._margin.w;\n\t}\n\tget _absBottom() {\n\t\treturn this._localAnchor.y + this._margin.y;\n\t}\n\tget _hasSplitAnchorsX() {\n\t\treturn Math.abs(this._anchor.x - this._anchor.z) > 1e-3;\n\t}\n\tget _hasSplitAnchorsY() {\n\t\treturn Math.abs(this._anchor.y - this._anchor.w) > 1e-3;\n\t}\n\tget aabb() {\n\t\tif (this._image) {\n\t\t\treturn this._image.aabb;\n\t\t}\n\t\tif (this._text) {\n\t\t\treturn this._text.aabb;\n\t\t}\n\t\treturn null;\n\t}\n\tset anchor(value) {\n\t\tif (value instanceof Vec4) {\n\t\t\tthis._anchor.copy(value);\n\t\t} else {\n\t\t\tthis._anchor.set(...value);\n\t\t}\n\t\tif (!this.entity._parent && !this.screen) {\n\t\t\tthis._calculateLocalAnchors();\n\t\t} else {\n\t\t\tthis._calculateSize(this._hasSplitAnchorsX, this._hasSplitAnchorsY);\n\t\t}\n\t\tthis._anchorDirty = true;\n\t\tif (!this.entity._dirtyLocal) {\n\t\t\tthis.entity._dirtifyLocal();\n\t\t}\n\t\tthis.fire(\"set:anchor\", this._anchor);\n\t}\n\tget anchor() {\n\t\treturn this._anchor;\n\t}\n\tset batchGroupId(value) {\n\t\tif (this._batchGroupId === value) {\n\t\t\treturn;\n\t\t}\n\t\tif (this.entity.enabled && this._batchGroupId >= 0) {\n\t\t\tthis.system.app.batcher?.remove(BatchGroup.ELEMENT, this.batchGroupId, this.entity);\n\t\t}\n\t\tif (this.entity.enabled && value >= 0) {\n\t\t\tthis.system.app.batcher?.insert(BatchGroup.ELEMENT, value, this.entity);\n\t\t}\n\t\tif (value < 0 && this._batchGroupId >= 0 && this.enabled && this.entity.enabled) {\n\t\t\tif (this._image && this._image._renderable.model) {\n\t\t\t\tthis.addModelToLayers(this._image._renderable.model);\n\t\t\t} else if (this._text && this._text._model) {\n\t\t\t\tthis.addModelToLayers(this._text._model);\n\t\t\t}\n\t\t}\n\t\tthis._batchGroupId = value;\n\t}\n\tget batchGroupId() {\n\t\treturn this._batchGroupId;\n\t}\n\tset bottom(value) {\n\t\tthis._margin.y = value;\n\t\tconst p = this.entity.getLocalPosition();\n\t\tconst wt = this._absTop;\n\t\tconst wb = this._localAnchor.y + value;\n\t\tthis._setHeight(wt - wb);\n\t\tp.y = value + this._calculatedHeight * this._pivot.y;\n\t\tthis.entity.setLocalPosition(p);\n\t}\n\tget bottom() {\n\t\treturn this._margin.y;\n\t}\n\tset calculatedWidth(value) {\n\t\tthis._setCalculatedWidth(value, true);\n\t}\n\tget calculatedWidth() {\n\t\treturn this._calculatedWidth;\n\t}\n\tset calculatedHeight(value) {\n\t\tthis._setCalculatedHeight(value, true);\n\t}\n\tget calculatedHeight() {\n\t\treturn this._calculatedHeight;\n\t}\n\tget canvasCorners() {\n\t\tif (!this._canvasCornersDirty || !this.screen || !this.screen.screen.screenSpace) {\n\t\t\treturn this._canvasCorners;\n\t\t}\n\t\tconst device = this.system.app.graphicsDevice;\n\t\tconst screenCorners = this.screenCorners;\n\t\tconst sx = device.canvas.clientWidth / device.width;\n\t\tconst sy = device.canvas.clientHeight / device.height;\n\t\tfor (let i2 = 0; i2 < 4; i2++) {\n\t\t\tthis._canvasCorners[i2].set(screenCorners[i2].x * sx, (device.height - screenCorners[i2].y) * sy);\n\t\t}\n\t\tthis._canvasCornersDirty = false;\n\t\treturn this._canvasCorners;\n\t}\n\tset drawOrder(value) {\n\t\tlet priority = 0;\n\t\tif (this.screen) {\n\t\t\tpriority = this.screen.screen.priority;\n\t\t}\n\t\tif (value > 16777215) {\n\t\t\tvalue = 16777215;\n\t\t}\n\t\tthis._drawOrder = (priority << 24) + value;\n\t\tthis.fire(\"set:draworder\", this._drawOrder);\n\t}\n\tget drawOrder() {\n\t\treturn this._drawOrder;\n\t}\n\tset height(value) {\n\t\tthis._height = value;\n\t\tif (!this._hasSplitAnchorsY) {\n\t\t\tthis._setCalculatedHeight(value, true);\n\t\t}\n\t\tthis.fire(\"set:height\", this._height);\n\t}\n\tget height() {\n\t\treturn this._height;\n\t}\n\tset layers(value) {\n\t\tif (this._addedModels.length) {\n\t\t\tfor (let i2 = 0; i2 < this._layers.length; i2++) {\n\t\t\t\tconst layer = this.system.app.scene.layers.getLayerById(this._layers[i2]);\n\t\t\t\tif (layer) {\n\t\t\t\t\tfor (let j = 0; j < this._addedModels.length; j++) {\n\t\t\t\t\t\tlayer.removeMeshInstances(this._addedModels[j].meshInstances);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis._layers = value;\n\t\tif (!this.enabled || !this.entity.enabled || !this._addedModels.length) {\n\t\t\treturn;\n\t\t}\n\t\tfor (let i2 = 0; i2 < this._layers.length; i2++) {\n\t\t\tconst layer = this.system.app.scene.layers.getLayerById(this._layers[i2]);\n\t\t\tif (layer) {\n\t\t\t\tfor (let j = 0; j < this._addedModels.length; j++) {\n\t\t\t\t\tlayer.addMeshInstances(this._addedModels[j].meshInstances);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tget layers() {\n\t\treturn this._layers;\n\t}\n\tset left(value) {\n\t\tthis._margin.x = value;\n\t\tconst p = this.entity.getLocalPosition();\n\t\tconst wr = this._absRight;\n\t\tconst wl = this._localAnchor.x + value;\n\t\tthis._setWidth(wr - wl);\n\t\tp.x = value + this._calculatedWidth * this._pivot.x;\n\t\tthis.entity.setLocalPosition(p);\n\t}\n\tget left() {\n\t\treturn this._margin.x;\n\t}\n\tset margin(value) {\n\t\tthis._margin.copy(value);\n\t\tthis._calculateSize(true, true);\n\t\tthis.fire(\"set:margin\", this._margin);\n\t}\n\tget margin() {\n\t\treturn this._margin;\n\t}\n\tget maskedBy() {\n\t\treturn this._maskedBy;\n\t}\n\tset pivot(value) {\n\t\tconst { pivot, margin } = this;\n\t\tconst prevX = pivot.x;\n\t\tconst prevY = pivot.y;\n\t\tif (value instanceof Vec2) {\n\t\t\tpivot.copy(value);\n\t\t} else {\n\t\t\tpivot.set(...value);\n\t\t}\n\t\tconst mx = margin.x + margin.z;\n\t\tconst dx = pivot.x - prevX;\n\t\tmargin.x += mx * dx;\n\t\tmargin.z -= mx * dx;\n\t\tconst my = margin.y + margin.w;\n\t\tconst dy = pivot.y - prevY;\n\t\tmargin.y += my * dy;\n\t\tmargin.w -= my * dy;\n\t\tthis._anchorDirty = true;\n\t\tthis._cornersDirty = true;\n\t\tthis._worldCornersDirty = true;\n\t\tthis._calculateSize(false, false);\n\t\tthis._flagChildrenAsDirty();\n\t\tthis.fire(\"set:pivot\", pivot);\n\t}\n\tget pivot() {\n\t\treturn this._pivot;\n\t}\n\tset right(value) {\n\t\tthis._margin.z = value;\n\t\tconst p = this.entity.getLocalPosition();\n\t\tconst wl = this._absLeft;\n\t\tconst wr = this._localAnchor.z - value;\n\t\tthis._setWidth(wr - wl);\n\t\tp.x = this._localAnchor.z - this._localAnchor.x - value - this._calculatedWidth * (1 - this._pivot.x);\n\t\tthis.entity.setLocalPosition(p);\n\t}\n\tget right() {\n\t\treturn this._margin.z;\n\t}\n\tget screenCorners() {\n\t\tif (!this._cornersDirty || !this.screen) {\n\t\t\treturn this._screenCorners;\n\t\t}\n\t\tthis._calcScreenCorners(this._absLeft, this._absBottom, this._absRight, this._absTop, this._screenCorners);\n\t\tthis._cornersDirty = false;\n\t\tthis._canvasCornersDirty = true;\n\t\tthis._worldCornersDirty = true;\n\t\treturn this._screenCorners;\n\t}\n\t// Transforms an anchor-space rectangle (defined by its left/bottom/right/top edges) into the 4\n\t// screen-space corners (bottom left, bottom right, top right, top left), populating and\n\t// returning the supplied array. This is the shared logic behind screenCorners.\n\t_calcScreenCorners(left, bottom, right2, top, corners) {\n\t\tconst parentBottomLeft = this.entity.parent && this.entity.parent.element && this.entity.parent.element.screenCorners[0];\n\t\tcorners[0].set(left, bottom, 0);\n\t\tcorners[1].set(right2, bottom, 0);\n\t\tcorners[2].set(right2, top, 0);\n\t\tcorners[3].set(left, top, 0);\n\t\tconst screenSpace = this.screen.screen.screenSpace;\n\t\tfor (let i2 = 0; i2 < 4; i2++) {\n\t\t\tthis._screenTransform.transformPoint(corners[i2], corners[i2]);\n\t\t\tif (screenSpace) {\n\t\t\t\tcorners[i2].mulScalar(this.screen.screen.scale);\n\t\t\t}\n\t\t\tif (parentBottomLeft) {\n\t\t\t\tcorners[i2].add(parentBottomLeft);\n\t\t\t}\n\t\t}\n\t\treturn corners;\n\t}\n\tget textWidth() {\n\t\treturn this._text ? this._text.width : 0;\n\t}\n\tget textHeight() {\n\t\treturn this._text ? this._text.height : 0;\n\t}\n\tset top(value) {\n\t\tthis._margin.w = value;\n\t\tconst p = this.entity.getLocalPosition();\n\t\tconst wb = this._absBottom;\n\t\tconst wt = this._localAnchor.w - value;\n\t\tthis._setHeight(wt - wb);\n\t\tp.y = this._localAnchor.w - this._localAnchor.y - value - this._calculatedHeight * (1 - this._pivot.y);\n\t\tthis.entity.setLocalPosition(p);\n\t}\n\tget top() {\n\t\treturn this._margin.w;\n\t}\n\tset type(value) {\n\t\tif (value !== this._type) {\n\t\t\tthis._type = value;\n\t\t\tif (this._image) {\n\t\t\t\tthis._image.destroy();\n\t\t\t\tthis._image = null;\n\t\t\t}\n\t\t\tif (this._text) {\n\t\t\t\tthis._text.destroy();\n\t\t\t\tthis._text = null;\n\t\t\t}\n\t\t\tif (value === ELEMENTTYPE_IMAGE) {\n\t\t\t\tthis._image = new ImageElement(this);\n\t\t\t} else if (value === ELEMENTTYPE_TEXT) {\n\t\t\t\tthis._text = new TextElement(this);\n\t\t\t}\n\t\t}\n\t}\n\tget type() {\n\t\treturn this._type;\n\t}\n\tset useInput(value) {\n\t\tif (this._useInput === value) {\n\t\t\treturn;\n\t\t}\n\t\tthis._useInput = value;\n\t\tif (this.system.app.elementInput) {\n\t\t\tif (value) {\n\t\t\t\tif (this.enabled && this.entity.enabled) {\n\t\t\t\t\tthis.system.app.elementInput.addElement(this);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.system.app.elementInput.removeElement(this);\n\t\t\t}\n\t\t} else {\n\t\t\tif (this._useInput === true) {\n\t\t\t}\n\t\t}\n\t\tthis.fire(\"set:useInput\", value);\n\t}\n\tget useInput() {\n\t\treturn this._useInput;\n\t}\n\tset fitMode(value) {\n\t\tthis._fitMode = value;\n\t\tthis._calculateSize(true, true);\n\t\tif (this._image) {\n\t\t\tthis._image.refreshMesh();\n\t\t}\n\t}\n\tget fitMode() {\n\t\treturn this._fitMode;\n\t}\n\tset width(value) {\n\t\tthis._width = value;\n\t\tif (!this._hasSplitAnchorsX) {\n\t\t\tthis._setCalculatedWidth(value, true);\n\t\t}\n\t\tthis.fire(\"set:width\", this._width);\n\t}\n\tget width() {\n\t\treturn this._width;\n\t}\n\tget worldCorners() {\n\t\tif (!this._worldCornersDirty) {\n\t\t\treturn this._worldCorners;\n\t\t}\n\t\tif (this.screen) {\n\t\t\tconst screenCorners = this.screenCorners;\n\t\t\tif (!this.screen.screen.screenSpace) {\n\t\t\t\tmatA.copy(this.screen.screen._screenMatrix);\n\t\t\t\tmatA.data[13] = -matA.data[13];\n\t\t\t\tmatA.mul2(this.screen.getWorldTransform(), matA);\n\t\t\t\tfor (let i2 = 0; i2 < 4; i2++) {\n\t\t\t\t\tmatA.transformPoint(screenCorners[i2], this._worldCorners[i2]);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tconst localPos = this.entity.getLocalPosition();\n\t\t\tmatA.setTranslate(-localPos.x, -localPos.y, -localPos.z);\n\t\t\tmatB.setTRS(Vec3.ZERO, this.entity.getLocalRotation(), this.entity.getLocalScale());\n\t\t\tmatC.setTranslate(localPos.x, localPos.y, localPos.z);\n\t\t\tconst entity = this.entity.parent ? this.entity.parent : this.entity;\n\t\t\tmatD.copy(entity.getWorldTransform());\n\t\t\tmatD.mul(matC).mul(matB).mul(matA);\n\t\t\tvecA.set(localPos.x - this.pivot.x * this.calculatedWidth, localPos.y - this.pivot.y * this.calculatedHeight, localPos.z);\n\t\t\tmatD.transformPoint(vecA, this._worldCorners[0]);\n\t\t\tvecA.set(localPos.x + (1 - this.pivot.x) * this.calculatedWidth, localPos.y - this.pivot.y * this.calculatedHeight, localPos.z);\n\t\t\tmatD.transformPoint(vecA, this._worldCorners[1]);\n\t\t\tvecA.set(localPos.x + (1 - this.pivot.x) * this.calculatedWidth, localPos.y + (1 - this.pivot.y) * this.calculatedHeight, localPos.z);\n\t\t\tmatD.transformPoint(vecA, this._worldCorners[2]);\n\t\t\tvecA.set(localPos.x - this.pivot.x * this.calculatedWidth, localPos.y + (1 - this.pivot.y) * this.calculatedHeight, localPos.z);\n\t\t\tmatD.transformPoint(vecA, this._worldCorners[3]);\n\t\t}\n\t\tthis._worldCornersDirty = false;\n\t\treturn this._worldCorners;\n\t}\n\tset fontSize(arg) {\n\t\tthis._setValue(\"fontSize\", arg);\n\t}\n\tget fontSize() {\n\t\tif (this._text) {\n\t\t\treturn this._text.fontSize;\n\t\t}\n\t\treturn null;\n\t}\n\tset minFontSize(arg) {\n\t\tthis._setValue(\"minFontSize\", arg);\n\t}\n\tget minFontSize() {\n\t\tif (this._text) {\n\t\t\treturn this._text.minFontSize;\n\t\t}\n\t\treturn null;\n\t}\n\tset maxFontSize(arg) {\n\t\tthis._setValue(\"maxFontSize\", arg);\n\t}\n\tget maxFontSize() {\n\t\tif (this._text) {\n\t\t\treturn this._text.maxFontSize;\n\t\t}\n\t\treturn null;\n\t}\n\tset maxLines(arg) {\n\t\tthis._setValue(\"maxLines\", arg);\n\t}\n\tget maxLines() {\n\t\tif (this._text) {\n\t\t\treturn this._text.maxLines;\n\t\t}\n\t\treturn null;\n\t}\n\tset autoFitWidth(arg) {\n\t\tthis._setValue(\"autoFitWidth\", arg);\n\t}\n\tget autoFitWidth() {\n\t\tif (this._text) {\n\t\t\treturn this._text.autoFitWidth;\n\t\t}\n\t\treturn null;\n\t}\n\tset autoFitHeight(arg) {\n\t\tthis._setValue(\"autoFitHeight\", arg);\n\t}\n\tget autoFitHeight() {\n\t\tif (this._text) {\n\t\t\treturn this._text.autoFitHeight;\n\t\t}\n\t\treturn null;\n\t}\n\tset color(arg) {\n\t\tthis._setValue(\"color\", arg);\n\t}\n\tget color() {\n\t\tif (this._text) {\n\t\t\treturn this._text.color;\n\t\t}\n\t\tif (this._image) {\n\t\t\treturn this._image.color;\n\t\t}\n\t\treturn null;\n\t}\n\tset font(arg) {\n\t\tthis._setValue(\"font\", arg);\n\t}\n\tget font() {\n\t\tif (this._text) {\n\t\t\treturn this._text.font;\n\t\t}\n\t\treturn null;\n\t}\n\tset fontAsset(arg) {\n\t\tthis._setValue(\"fontAsset\", arg);\n\t}\n\tget fontAsset() {\n\t\tif (this._text && typeof this._text.fontAsset === \"number\") {\n\t\t\treturn this._text.fontAsset;\n\t\t}\n\t\treturn null;\n\t}\n\tset spacing(arg) {\n\t\tthis._setValue(\"spacing\", arg);\n\t}\n\tget spacing() {\n\t\tif (this._text) {\n\t\t\treturn this._text.spacing;\n\t\t}\n\t\treturn null;\n\t}\n\tset lineHeight(arg) {\n\t\tthis._setValue(\"lineHeight\", arg);\n\t}\n\tget lineHeight() {\n\t\tif (this._text) {\n\t\t\treturn this._text.lineHeight;\n\t\t}\n\t\treturn null;\n\t}\n\tset wrapLines(arg) {\n\t\tthis._setValue(\"wrapLines\", arg);\n\t}\n\tget wrapLines() {\n\t\tif (this._text) {\n\t\t\treturn this._text.wrapLines;\n\t\t}\n\t\treturn null;\n\t}\n\tset justify(arg) {\n\t\tthis._setValue(\"justify\", arg);\n\t}\n\tget justify() {\n\t\tif (this._text) {\n\t\t\treturn this._text.justify;\n\t\t}\n\t\treturn null;\n\t}\n\tget lines() {\n\t\tif (this._text) {\n\t\t\treturn this._text.lines;\n\t\t}\n\t\treturn null;\n\t}\n\tset alignment(arg) {\n\t\tthis._setValue(\"alignment\", arg);\n\t}\n\tget alignment() {\n\t\tif (this._text) {\n\t\t\treturn this._text.alignment;\n\t\t}\n\t\treturn null;\n\t}\n\tset autoWidth(arg) {\n\t\tthis._setValue(\"autoWidth\", arg);\n\t}\n\tget autoWidth() {\n\t\tif (this._text) {\n\t\t\treturn this._text.autoWidth;\n\t\t}\n\t\treturn null;\n\t}\n\tset autoHeight(arg) {\n\t\tthis._setValue(\"autoHeight\", arg);\n\t}\n\tget autoHeight() {\n\t\tif (this._text) {\n\t\t\treturn this._text.autoHeight;\n\t\t}\n\t\treturn null;\n\t}\n\tset rtlReorder(arg) {\n\t\tthis._setValue(\"rtlReorder\", arg);\n\t}\n\tget rtlReorder() {\n\t\tif (this._text) {\n\t\t\treturn this._text.rtlReorder;\n\t\t}\n\t\treturn null;\n\t}\n\tset unicodeConverter(arg) {\n\t\tthis._setValue(\"unicodeConverter\", arg);\n\t}\n\tget unicodeConverter() {\n\t\tif (this._text) {\n\t\t\treturn this._text.unicodeConverter;\n\t\t}\n\t\treturn null;\n\t}\n\tset text(arg) {\n\t\tthis._setValue(\"text\", arg);\n\t}\n\tget text() {\n\t\tif (this._text) {\n\t\t\treturn this._text.text;\n\t\t}\n\t\treturn null;\n\t}\n\tset key(arg) {\n\t\tthis._setValue(\"key\", arg);\n\t}\n\tget key() {\n\t\tif (this._text) {\n\t\t\treturn this._text.key;\n\t\t}\n\t\treturn null;\n\t}\n\tset texture(arg) {\n\t\tthis._setValue(\"texture\", arg);\n\t}\n\tget texture() {\n\t\tif (this._image) {\n\t\t\treturn this._image.texture;\n\t\t}\n\t\treturn null;\n\t}\n\tset textureAsset(arg) {\n\t\tthis._setValue(\"textureAsset\", arg);\n\t}\n\tget textureAsset() {\n\t\tif (this._image) {\n\t\t\treturn this._image.textureAsset;\n\t\t}\n\t\treturn null;\n\t}\n\tset material(arg) {\n\t\tthis._setValue(\"material\", arg);\n\t}\n\tget material() {\n\t\tif (this._image) {\n\t\t\treturn this._image.material;\n\t\t}\n\t\treturn null;\n\t}\n\tset materialAsset(arg) {\n\t\tthis._setValue(\"materialAsset\", arg);\n\t}\n\tget materialAsset() {\n\t\tif (this._image) {\n\t\t\treturn this._image.materialAsset;\n\t\t}\n\t\treturn null;\n\t}\n\tset sprite(arg) {\n\t\tthis._setValue(\"sprite\", arg);\n\t}\n\tget sprite() {\n\t\tif (this._image) {\n\t\t\treturn this._image.sprite;\n\t\t}\n\t\treturn null;\n\t}\n\tset spriteAsset(arg) {\n\t\tthis._setValue(\"spriteAsset\", arg);\n\t}\n\tget spriteAsset() {\n\t\tif (this._image) {\n\t\t\treturn this._image.spriteAsset;\n\t\t}\n\t\treturn null;\n\t}\n\tset spriteFrame(arg) {\n\t\tthis._setValue(\"spriteFrame\", arg);\n\t}\n\tget spriteFrame() {\n\t\tif (this._image) {\n\t\t\treturn this._image.spriteFrame;\n\t\t}\n\t\treturn null;\n\t}\n\tset pixelsPerUnit(arg) {\n\t\tthis._setValue(\"pixelsPerUnit\", arg);\n\t}\n\tget pixelsPerUnit() {\n\t\tif (this._image) {\n\t\t\treturn this._image.pixelsPerUnit;\n\t\t}\n\t\treturn null;\n\t}\n\tset opacity(arg) {\n\t\tthis._setValue(\"opacity\", arg);\n\t}\n\tget opacity() {\n\t\tif (this._text) {\n\t\t\treturn this._text.opacity;\n\t\t}\n\t\tif (this._image) {\n\t\t\treturn this._image.opacity;\n\t\t}\n\t\treturn null;\n\t}\n\tset rect(arg) {\n\t\tthis._setValue(\"rect\", arg);\n\t}\n\tget rect() {\n\t\tif (this._image) {\n\t\t\treturn this._image.rect;\n\t\t}\n\t\treturn null;\n\t}\n\tset mask(arg) {\n\t\tthis._setValue(\"mask\", arg);\n\t}\n\tget mask() {\n\t\tif (this._image) {\n\t\t\treturn this._image.mask;\n\t\t}\n\t\treturn null;\n\t}\n\tset outlineColor(arg) {\n\t\tthis._setValue(\"outlineColor\", arg);\n\t}\n\tget outlineColor() {\n\t\tif (this._text) {\n\t\t\treturn this._text.outlineColor;\n\t\t}\n\t\treturn null;\n\t}\n\tset outlineThickness(arg) {\n\t\tthis._setValue(\"outlineThickness\", arg);\n\t}\n\tget outlineThickness() {\n\t\tif (this._text) {\n\t\t\treturn this._text.outlineThickness;\n\t\t}\n\t\treturn null;\n\t}\n\tset shadowColor(arg) {\n\t\tthis._setValue(\"shadowColor\", arg);\n\t}\n\tget shadowColor() {\n\t\tif (this._text) {\n\t\t\treturn this._text.shadowColor;\n\t\t}\n\t\treturn null;\n\t}\n\tset shadowOffset(arg) {\n\t\tthis._setValue(\"shadowOffset\", arg);\n\t}\n\tget shadowOffset() {\n\t\tif (this._text) {\n\t\t\treturn this._text.shadowOffset;\n\t\t}\n\t\treturn null;\n\t}\n\tset enableMarkup(arg) {\n\t\tthis._setValue(\"enableMarkup\", arg);\n\t}\n\tget enableMarkup() {\n\t\tif (this._text) {\n\t\t\treturn this._text.enableMarkup;\n\t\t}\n\t\treturn null;\n\t}\n\tset rangeStart(arg) {\n\t\tthis._setValue(\"rangeStart\", arg);\n\t}\n\tget rangeStart() {\n\t\tif (this._text) {\n\t\t\treturn this._text.rangeStart;\n\t\t}\n\t\treturn null;\n\t}\n\tset rangeEnd(arg) {\n\t\tthis._setValue(\"rangeEnd\", arg);\n\t}\n\tget rangeEnd() {\n\t\tif (this._text) {\n\t\t\treturn this._text.rangeEnd;\n\t\t}\n\t\treturn null;\n\t}\n\t_setValue(name, value) {\n\t\tif (this._text) {\n\t\t\tif (this._text[name] !== value) {\n\t\t\t\tthis._dirtyBatch();\n\t\t\t}\n\t\t\tthis._text[name] = value;\n\t\t} else if (this._image) {\n\t\t\tif (this._image[name] !== value) {\n\t\t\t\tthis._dirtyBatch();\n\t\t\t}\n\t\t\tthis._image[name] = value;\n\t\t}\n\t}\n\t_patch() {\n\t\tthis.entity._sync = this._sync;\n\t\tthis.entity.setPosition = this._setPosition;\n\t\tthis.entity.setLocalPosition = this._setLocalPosition;\n\t}\n\t_unpatch() {\n\t\tthis.entity._sync = Entity.prototype._sync;\n\t\tthis.entity.setPosition = Entity.prototype.setPosition;\n\t\tthis.entity.setLocalPosition = Entity.prototype.setLocalPosition;\n\t}\n\t_setPosition(x3, y2, z2) {\n\t\tif (!this.element.screen) {\n\t\t\tEntity.prototype.setPosition.call(this, x3, y2, z2);\n\t\t\treturn;\n\t\t}\n\t\tif (x3 instanceof Vec3) {\n\t\t\tposition2.copy(x3);\n\t\t} else {\n\t\t\tposition2.set(x3, y2, z2);\n\t\t}\n\t\tthis.getWorldTransform();\n\t\tinvParentWtm2.copy(this.element._screenToWorld).invert();\n\t\tinvParentWtm2.transformPoint(position2, this.localPosition);\n\t\tif (!this._dirtyLocal) {\n\t\t\tthis._dirtifyLocal();\n\t\t}\n\t}\n\t_setLocalPosition(x3, y2, z2) {\n\t\tif (x3 instanceof Vec3) {\n\t\t\tthis.localPosition.copy(x3);\n\t\t} else {\n\t\t\tthis.localPosition.set(x3, y2, z2);\n\t\t}\n\t\tconst element = this.element;\n\t\tconst p = this.localPosition;\n\t\tconst pvt = element._pivot;\n\t\telement._margin.x = p.x - element._calculatedWidth * pvt.x;\n\t\telement._margin.z = element._localAnchor.z - element._localAnchor.x - element._calculatedWidth - element._margin.x;\n\t\telement._margin.y = p.y - element._calculatedHeight * pvt.y;\n\t\telement._margin.w = element._localAnchor.w - element._localAnchor.y - element._calculatedHeight - element._margin.y;\n\t\tif (!this._dirtyLocal) {\n\t\t\tthis._dirtifyLocal();\n\t\t}\n\t}\n\t// this method overwrites GraphNode#sync and so operates in scope of the Entity.\n\t_sync() {\n\t\tconst element = this.element;\n\t\tconst screen = element.screen;\n\t\tif (screen) {\n\t\t\tif (element._anchorDirty) {\n\t\t\t\tlet resx = 0;\n\t\t\t\tlet resy = 0;\n\t\t\t\tlet px = 0;\n\t\t\t\tlet py = 1;\n\t\t\t\tif (this._parent && this._parent.element) {\n\t\t\t\t\tresx = this._parent.element.calculatedWidth;\n\t\t\t\t\tresy = this._parent.element.calculatedHeight;\n\t\t\t\t\tpx = this._parent.element.pivot.x;\n\t\t\t\t\tpy = this._parent.element.pivot.y;\n\t\t\t\t} else {\n\t\t\t\t\tconst resolution = screen.screen.resolution;\n\t\t\t\t\tresx = resolution.x / screen.screen.scale;\n\t\t\t\t\tresy = resolution.y / screen.screen.scale;\n\t\t\t\t}\n\t\t\t\telement._anchorTransform.setTranslate(resx * (element.anchor.x - px), -(resy * (py - element.anchor.y)), 0);\n\t\t\t\telement._anchorDirty = false;\n\t\t\t\telement._calculateLocalAnchors();\n\t\t\t}\n\t\t\tif (element._sizeDirty) {\n\t\t\t\telement._calculateSize(false, false);\n\t\t\t}\n\t\t}\n\t\tif (this._dirtyLocal) {\n\t\t\tthis.localTransform.setTRS(this.localPosition, this.localRotation, this.localScale);\n\t\t\tconst p = this.localPosition;\n\t\t\tconst pvt = element._pivot;\n\t\t\telement._margin.x = p.x - element._calculatedWidth * pvt.x;\n\t\t\telement._margin.z = element._localAnchor.z - element._localAnchor.x - element._calculatedWidth - element._margin.x;\n\t\t\telement._margin.y = p.y - element._calculatedHeight * pvt.y;\n\t\t\telement._margin.w = element._localAnchor.w - element._localAnchor.y - element._calculatedHeight - element._margin.y;\n\t\t\tthis._dirtyLocal = false;\n\t\t}\n\t\tif (!screen) {\n\t\t\tif (this._dirtyWorld) {\n\t\t\t\telement._cornersDirty = true;\n\t\t\t\telement._canvasCornersDirty = true;\n\t\t\t\telement._worldCornersDirty = true;\n\t\t\t}\n\t\t\tEntity.prototype._sync.call(this);\n\t\t\treturn;\n\t\t}\n\t\tif (this._dirtyWorld) {\n\t\t\tif (this._parent === null) {\n\t\t\t\tthis.worldTransform.copy(this.localTransform);\n\t\t\t} else {\n\t\t\t\tif (this._parent.element) {\n\t\t\t\t\telement._screenToWorld.mul2(\n\t\t\t\t\t\tthis._parent.element._modelTransform,\n\t\t\t\t\t\telement._anchorTransform\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\telement._screenToWorld.copy(element._anchorTransform);\n\t\t\t\t}\n\t\t\t\telement._modelTransform.mul2(element._screenToWorld, this.localTransform);\n\t\t\t\tif (screen) {\n\t\t\t\t\telement._screenToWorld.mul2(screen.screen._screenMatrix, element._screenToWorld);\n\t\t\t\t\tif (!screen.screen.screenSpace) {\n\t\t\t\t\t\telement._screenToWorld.mul2(screen.worldTransform, element._screenToWorld);\n\t\t\t\t\t}\n\t\t\t\t\tthis.worldTransform.mul2(element._screenToWorld, this.localTransform);\n\t\t\t\t\tconst parentWorldTransform = element._parentWorldTransform;\n\t\t\t\t\tparentWorldTransform.setIdentity();\n\t\t\t\t\tconst parent = this._parent;\n\t\t\t\t\tif (parent && parent.element && parent !== screen) {\n\t\t\t\t\t\tmatA.setTRS(Vec3.ZERO, parent.getLocalRotation(), parent.getLocalScale());\n\t\t\t\t\t\tparentWorldTransform.mul2(parent.element._parentWorldTransform, matA);\n\t\t\t\t\t}\n\t\t\t\t\tconst depthOffset = vecA;\n\t\t\t\t\tdepthOffset.set(0, 0, this.localPosition.z);\n\t\t\t\t\tconst pivotOffset = vecB;\n\t\t\t\t\tpivotOffset.set(\n\t\t\t\t\t\telement._absLeft + element._pivot.x * element.calculatedWidth,\n\t\t\t\t\t\telement._absBottom + element._pivot.y * element.calculatedHeight,\n\t\t\t\t\t\t0\n\t\t\t\t\t);\n\t\t\t\t\tmatA.setTranslate(-pivotOffset.x, -pivotOffset.y, -pivotOffset.z);\n\t\t\t\t\tmatB.setTRS(depthOffset, this.getLocalRotation(), this.getLocalScale());\n\t\t\t\t\tmatC.setTranslate(pivotOffset.x, pivotOffset.y, pivotOffset.z);\n\t\t\t\t\telement._screenTransform.mul2(element._parentWorldTransform, matC).mul(matB).mul(matA);\n\t\t\t\t\telement._cornersDirty = true;\n\t\t\t\t\telement._canvasCornersDirty = true;\n\t\t\t\t\telement._worldCornersDirty = true;\n\t\t\t\t} else {\n\t\t\t\t\tthis.worldTransform.copy(element._modelTransform);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._dirtyWorld = false;\n\t\t}\n\t}\n\t_onInsert(parent) {\n\t\tconst result = this._parseUpToScreen();\n\t\tthis.entity._dirtifyWorld();\n\t\tthis._updateScreen(result.screen);\n\t\tthis._dirtifyMask();\n\t}\n\t_dirtifyMask() {\n\t\tlet current = this.entity;\n\t\twhile (current) {\n\t\t\tconst next = current.parent;\n\t\t\tif ((next === null || next.screen) && current.element) {\n\t\t\t\tif (!this.system._prerender || !this.system._prerender.length) {\n\t\t\t\t\tthis.system._prerender = [];\n\t\t\t\t\tthis.system.app.once(\"prerender\", this._onPrerender, this);\n\t\t\t\t}\n\t\t\t\tconst i2 = this.system._prerender.indexOf(this.entity);\n\t\t\t\tif (i2 >= 0) {\n\t\t\t\t\tthis.system._prerender.splice(i2, 1);\n\t\t\t\t}\n\t\t\t\tconst j = this.system._prerender.indexOf(current);\n\t\t\t\tif (j < 0) {\n\t\t\t\t\tthis.system._prerender.push(current);\n\t\t\t\t}\n\t\t\t}\n\t\t\tcurrent = next;\n\t\t}\n\t}\n\t_onPrerender() {\n\t\tfor (let i2 = 0; i2 < this.system._prerender.length; i2++) {\n\t\t\tconst mask = this.system._prerender[i2];\n\t\t\tif (mask.element) {\n\t\t\t\tconst depth = 1;\n\t\t\t\tmask.element.syncMask(depth);\n\t\t\t}\n\t\t}\n\t\tthis.system._prerender.length = 0;\n\t}\n\t_bindScreen(screen) {\n\t\tscreen._bindElement(this);\n\t}\n\t_unbindScreen(screen) {\n\t\tscreen._unbindElement(this);\n\t}\n\t_updateScreen(screen) {\n\t\tif (this.screen && this.screen !== screen) {\n\t\t\tthis._unbindScreen(this.screen.screen);\n\t\t}\n\t\tconst previousScreen = this.screen;\n\t\tthis.screen = screen;\n\t\tif (this.screen) {\n\t\t\tthis._bindScreen(this.screen.screen);\n\t\t}\n\t\tthis._calculateSize(this._hasSplitAnchorsX, this._hasSplitAnchorsY);\n\t\tthis.fire(\"set:screen\", this.screen, previousScreen);\n\t\tthis._anchorDirty = true;\n\t\tconst children = this.entity.children;\n\t\tfor (let i2 = 0, l = children.length; i2 < l; i2++) {\n\t\t\tif (children[i2].element) {\n\t\t\t\tchildren[i2].element._updateScreen(screen);\n\t\t\t}\n\t\t}\n\t\tif (this.screen) {\n\t\t\tthis.screen.screen.syncDrawOrder();\n\t\t}\n\t}\n\tsyncMask(depth) {\n\t\tconst result = this._parseUpToScreen();\n\t\tthis._updateMask(result.mask, depth);\n\t}\n\t// set the maskedby property to the entity that is masking this element\n\t// - set the stencil buffer to check the mask value\n\t//   so as to only render inside the mask\n\t//   Note: if this entity is itself a mask the stencil params\n\t//   will be updated in updateMask to include masking\n\t_setMaskedBy(mask) {\n\t\tconst renderableElement = this._image || this._text;\n\t\tif (mask) {\n\t\t\tconst ref = mask.element._image._maskRef;\n\t\t\trenderableElement?._setStencil(new StencilParameters({\n\t\t\t\tref,\n\t\t\t\tfunc: FUNC_EQUAL\n\t\t\t}));\n\t\t\tthis._maskedBy = mask;\n\t\t} else {\n\t\t\trenderableElement?._setStencil(null);\n\t\t\tthis._maskedBy = null;\n\t\t}\n\t}\n\t// recursively update entity's stencil params\n\t// to render the correct value into the stencil buffer\n\t_updateMask(currentMask, depth) {\n\t\tif (currentMask) {\n\t\t\tthis._setMaskedBy(currentMask);\n\t\t\tif (this.mask) {\n\t\t\t\tconst ref = currentMask.element._image._maskRef;\n\t\t\t\tconst sp = new StencilParameters({\n\t\t\t\t\tref,\n\t\t\t\t\tfunc: FUNC_EQUAL,\n\t\t\t\t\tzpass: STENCILOP_INCREMENT\n\t\t\t\t});\n\t\t\t\tthis._image._setStencil(sp);\n\t\t\t\tthis._image._maskRef = depth;\n\t\t\t\tdepth++;\n\t\t\t\tcurrentMask = this.entity;\n\t\t\t}\n\t\t\tconst children = this.entity.children;\n\t\t\tfor (let i2 = 0, l = children.length; i2 < l; i2++) {\n\t\t\t\tchildren[i2].element?._updateMask(currentMask, depth);\n\t\t\t}\n\t\t\tif (this.mask) depth--;\n\t\t} else {\n\t\t\tthis._setMaskedBy(null);\n\t\t\tif (this.mask) {\n\t\t\t\tconst sp = new StencilParameters({\n\t\t\t\t\tref: depth,\n\t\t\t\t\tfunc: FUNC_ALWAYS,\n\t\t\t\t\tzpass: STENCILOP_REPLACE\n\t\t\t\t});\n\t\t\t\tthis._image._setStencil(sp);\n\t\t\t\tthis._image._maskRef = depth;\n\t\t\t\tdepth++;\n\t\t\t\tcurrentMask = this.entity;\n\t\t\t}\n\t\t\tconst children = this.entity.children;\n\t\t\tfor (let i2 = 0, l = children.length; i2 < l; i2++) {\n\t\t\t\tchildren[i2].element?._updateMask(currentMask, depth);\n\t\t\t}\n\t\t\tif (this.mask) {\n\t\t\t\tdepth--;\n\t\t\t}\n\t\t}\n\t}\n\t// search up the parent hierarchy until we reach a screen\n\t// this screen is the parent screen\n\t// also searches for masked elements to get the relevant mask\n\t_parseUpToScreen() {\n\t\tconst result = {\n\t\t\tscreen: null,\n\t\t\tmask: null\n\t\t};\n\t\tlet parent = this.entity._parent;\n\t\twhile (parent && !parent.screen) {\n\t\t\tif (parent.element && parent.element.mask) {\n\t\t\t\tif (!result.mask) result.mask = parent;\n\t\t\t}\n\t\t\tparent = parent.parent;\n\t\t}\n\t\tif (parent && parent.screen) {\n\t\t\tresult.screen = parent;\n\t\t}\n\t\treturn result;\n\t}\n\t_onScreenResize(res) {\n\t\tthis._anchorDirty = true;\n\t\tthis._cornersDirty = true;\n\t\tthis._worldCornersDirty = true;\n\t\tthis._calculateSize(this._hasSplitAnchorsX, this._hasSplitAnchorsY);\n\t\tthis.fire(\"screen:set:resolution\", res);\n\t}\n\t_onScreenSpaceChange() {\n\t\tthis.fire(\"screen:set:screenspace\", this.screen.screen.screenSpace);\n\t}\n\t_onScreenRemove() {\n\t\tif (this.screen) {\n\t\t\tif (this.screen._destroying) {\n\t\t\t\tthis.screen = null;\n\t\t\t} else {\n\t\t\t\tthis._updateScreen(null);\n\t\t\t}\n\t\t}\n\t}\n\t// store pixel positions of anchor relative to current parent resolution\n\t_calculateLocalAnchors() {\n\t\tlet resx = 1e3;\n\t\tlet resy = 1e3;\n\t\tconst parent = this.entity._parent;\n\t\tif (parent && parent.element) {\n\t\t\tresx = parent.element.calculatedWidth;\n\t\t\tresy = parent.element.calculatedHeight;\n\t\t} else if (this.screen) {\n\t\t\tconst res = this.screen.screen.resolution;\n\t\t\tconst scale2 = this.screen.screen.scale;\n\t\t\tresx = res.x / scale2;\n\t\t\tresy = res.y / scale2;\n\t\t}\n\t\tthis._localAnchor.set(\n\t\t\tthis._anchor.x * resx,\n\t\t\tthis._anchor.y * resy,\n\t\t\tthis._anchor.z * resx,\n\t\t\tthis._anchor.w * resy\n\t\t);\n\t}\n\t// internal - apply offset x,y to local position and find point in world space\n\tgetOffsetPosition(x3, y2) {\n\t\tconst p = this.entity.getLocalPosition().clone();\n\t\tp.x += x3;\n\t\tp.y += y2;\n\t\tthis._screenToWorld.transformPoint(p, p);\n\t\treturn p;\n\t}\n\tonLayersChanged(oldComp, newComp) {\n\t\tif (this._image) {\n\t\t\tthis.addModelToLayers(this._image._renderable.model);\n\t\t} else if (this._text) {\n\t\t\tthis.addModelToLayers(this._text._model);\n\t\t}\n\t\tthis._evtLayerAdded?.off();\n\t\tthis._evtLayerAdded = newComp.on(\"add\", this.onLayerAdded, this);\n\t\tthis._evtLayerRemoved?.off();\n\t\tthis._evtLayerRemoved = newComp.on(\"remove\", this.onLayerRemoved, this);\n\t}\n\tonLayerAdded(layer) {\n\t\tconst index = this.layers.indexOf(layer.id);\n\t\tif (index < 0) return;\n\t\tif (this._image) {\n\t\t\tlayer.addMeshInstances(this._image._renderable.model.meshInstances);\n\t\t} else if (this._text) {\n\t\t\tlayer.addMeshInstances(this._text._model.meshInstances);\n\t\t}\n\t}\n\tonLayerRemoved(layer) {\n\t\tconst index = this.layers.indexOf(layer.id);\n\t\tif (index < 0) return;\n\t\tif (this._image) {\n\t\t\tlayer.removeMeshInstances(this._image._renderable.model.meshInstances);\n\t\t} else if (this._text) {\n\t\t\tlayer.removeMeshInstances(this._text._model.meshInstances);\n\t\t}\n\t}\n\tonEnable() {\n\t\tconst scene = this.system.app.scene;\n\t\tconst layers = scene.layers;\n\t\tif (this._image) {\n\t\t\tthis._image.onEnable();\n\t\t}\n\t\tif (this._text) {\n\t\t\tthis._text.onEnable();\n\t\t}\n\t\tif (this._group) {\n\t\t\tthis._group.onEnable();\n\t\t}\n\t\tif (this.useInput && this.system.app.elementInput) {\n\t\t\tthis.system.app.elementInput.addElement(this);\n\t\t}\n\t\tthis._evtLayersChanged = scene.on(\"set:layers\", this.onLayersChanged, this);\n\t\tif (layers) {\n\t\t\tthis._evtLayerAdded = layers.on(\"add\", this.onLayerAdded, this);\n\t\t\tthis._evtLayerRemoved = layers.on(\"remove\", this.onLayerRemoved, this);\n\t\t}\n\t\tif (this._batchGroupId >= 0) {\n\t\t\tthis.system.app.batcher?.insert(BatchGroup.ELEMENT, this.batchGroupId, this.entity);\n\t\t}\n\t\tthis.fire(\"enableelement\");\n\t}\n\tonDisable() {\n\t\tconst scene = this.system.app.scene;\n\t\tconst layers = scene.layers;\n\t\tthis._evtLayersChanged?.off();\n\t\tthis._evtLayersChanged = null;\n\t\tif (layers) {\n\t\t\tthis._evtLayerAdded?.off();\n\t\t\tthis._evtLayerAdded = null;\n\t\t\tthis._evtLayerRemoved?.off();\n\t\t\tthis._evtLayerRemoved = null;\n\t\t}\n\t\tif (this._image) this._image.onDisable();\n\t\tif (this._text) this._text.onDisable();\n\t\tif (this._group) this._group.onDisable();\n\t\tif (this.system.app.elementInput && this.useInput) {\n\t\t\tthis.system.app.elementInput.removeElement(this);\n\t\t}\n\t\tif (this._batchGroupId >= 0) {\n\t\t\tthis.system.app.batcher?.remove(BatchGroup.ELEMENT, this.batchGroupId, this.entity);\n\t\t}\n\t\tthis.fire(\"disableelement\");\n\t}\n\tonBeforeRemove() {\n\t\tif (this.enabled && this.entity.enabled) {\n\t\t\tthis.onDisable();\n\t\t}\n\t\tthis.entity.off(\"insert\", this._onInsert, this);\n\t\tthis._unpatch();\n\t\tif (this._image) {\n\t\t\tthis._image.destroy();\n\t\t}\n\t\tif (this._text) {\n\t\t\tthis._text.destroy();\n\t\t}\n\t\tif (this.system.app.elementInput && this.useInput) {\n\t\t\tthis.system.app.elementInput.removeElement(this);\n\t\t}\n\t\tif (this.screen && this.screen.screen) {\n\t\t\tthis._unbindScreen(this.screen.screen);\n\t\t\tthis.screen.screen.syncDrawOrder();\n\t\t}\n\t\tthis.off();\n\t}\n\t_calculateSize(propagateCalculatedWidth, propagateCalculatedHeight) {\n\t\tif (!this.entity._parent && !this.screen) {\n\t\t\treturn;\n\t\t}\n\t\tthis._calculateLocalAnchors();\n\t\tconst newWidth = this._absRight - this._absLeft;\n\t\tconst newHeight = this._absTop - this._absBottom;\n\t\tif (propagateCalculatedWidth) {\n\t\t\tthis._setWidth(newWidth);\n\t\t} else {\n\t\t\tthis._setCalculatedWidth(newWidth, false);\n\t\t}\n\t\tif (propagateCalculatedHeight) {\n\t\t\tthis._setHeight(newHeight);\n\t\t} else {\n\t\t\tthis._setCalculatedHeight(newHeight, false);\n\t\t}\n\t\tconst p = this.entity.getLocalPosition();\n\t\tp.x = this._margin.x + this._calculatedWidth * this._pivot.x;\n\t\tp.y = this._margin.y + this._calculatedHeight * this._pivot.y;\n\t\tthis.entity.setLocalPosition(p);\n\t\tthis._sizeDirty = false;\n\t}\n\t_setWidth(w) {\n\t\tthis._width = w;\n\t\tthis._setCalculatedWidth(w, false);\n\t\tthis.fire(\"set:width\", this._width);\n\t}\n\t_setHeight(h2) {\n\t\tthis._height = h2;\n\t\tthis._setCalculatedHeight(h2, false);\n\t\tthis.fire(\"set:height\", this._height);\n\t}\n\t_setCalculatedWidth(value, updateMargins) {\n\t\tif (Math.abs(value - this._calculatedWidth) <= 1e-4) {\n\t\t\treturn;\n\t\t}\n\t\tthis._calculatedWidth = value;\n\t\tthis.entity._dirtifyLocal();\n\t\tif (updateMargins) {\n\t\t\tconst p = this.entity.getLocalPosition();\n\t\t\tconst pvt = this._pivot;\n\t\t\tthis._margin.x = p.x - this._calculatedWidth * pvt.x;\n\t\t\tthis._margin.z = this._localAnchor.z - this._localAnchor.x - this._calculatedWidth - this._margin.x;\n\t\t}\n\t\tthis._flagChildrenAsDirty();\n\t\tthis.fire(\"set:calculatedWidth\", this._calculatedWidth);\n\t\tthis.fire(\"resize\", this._calculatedWidth, this._calculatedHeight);\n\t}\n\t_setCalculatedHeight(value, updateMargins) {\n\t\tif (Math.abs(value - this._calculatedHeight) <= 1e-4) {\n\t\t\treturn;\n\t\t}\n\t\tthis._calculatedHeight = value;\n\t\tthis.entity._dirtifyLocal();\n\t\tif (updateMargins) {\n\t\t\tconst p = this.entity.getLocalPosition();\n\t\t\tconst pvt = this._pivot;\n\t\t\tthis._margin.y = p.y - this._calculatedHeight * pvt.y;\n\t\t\tthis._margin.w = this._localAnchor.w - this._localAnchor.y - this._calculatedHeight - this._margin.y;\n\t\t}\n\t\tthis._flagChildrenAsDirty();\n\t\tthis.fire(\"set:calculatedHeight\", this._calculatedHeight);\n\t\tthis.fire(\"resize\", this._calculatedWidth, this._calculatedHeight);\n\t}\n\t_flagChildrenAsDirty() {\n\t\tconst c2 = this.entity._children;\n\t\tfor (let i2 = 0, l = c2.length; i2 < l; i2++) {\n\t\t\tif (c2[i2].element) {\n\t\t\t\tc2[i2].element._anchorDirty = true;\n\t\t\t\tc2[i2].element._sizeDirty = true;\n\t\t\t}\n\t\t}\n\t}\n\taddModelToLayers(model) {\n\t\tthis._addedModels.push(model);\n\t\tfor (let i2 = 0; i2 < this.layers.length; i2++) {\n\t\t\tconst layer = this.system.app.scene.layers.getLayerById(this.layers[i2]);\n\t\t\tif (!layer) continue;\n\t\t\tlayer.addMeshInstances(model.meshInstances);\n\t\t}\n\t}\n\tremoveModelFromLayers(model) {\n\t\tconst idx = this._addedModels.indexOf(model);\n\t\tif (idx >= 0) {\n\t\t\tthis._addedModels.splice(idx, 1);\n\t\t}\n\t\tfor (let i2 = 0; i2 < this.layers.length; i2++) {\n\t\t\tconst layer = this.system.app.scene.layers.getLayerById(this.layers[i2]);\n\t\t\tif (!layer) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tlayer.removeMeshInstances(model.meshInstances);\n\t\t}\n\t}\n\tgetMaskOffset() {\n\t\tconst frame = this.system.app.frame;\n\t\tif (this._offsetReadAt !== frame) {\n\t\t\tthis._maskOffset = 0.5;\n\t\t\tthis._offsetReadAt = frame;\n\t\t}\n\t\tconst mo = this._maskOffset;\n\t\tthis._maskOffset -= 1e-3;\n\t\treturn mo;\n\t}\n\tisVisibleForCamera(camera) {\n\t\tlet clipL, clipR, clipT, clipB;\n\t\tif (this.maskedBy) {\n\t\t\tconst corners = this.maskedBy.element.screenCorners;\n\t\t\tclipL = Math.min(Math.min(corners[0].x, corners[1].x), Math.min(corners[2].x, corners[3].x));\n\t\t\tclipR = Math.max(Math.max(corners[0].x, corners[1].x), Math.max(corners[2].x, corners[3].x));\n\t\t\tclipB = Math.min(Math.min(corners[0].y, corners[1].y), Math.min(corners[2].y, corners[3].y));\n\t\t\tclipT = Math.max(Math.max(corners[0].y, corners[1].y), Math.max(corners[2].y, corners[3].y));\n\t\t} else {\n\t\t\tconst sw = this.system.app.graphicsDevice.width;\n\t\t\tconst sh = this.system.app.graphicsDevice.height;\n\t\t\tconst cameraWidth = camera._rect.z * sw;\n\t\t\tconst cameraHeight = camera._rect.w * sh;\n\t\t\tclipL = camera._rect.x * sw;\n\t\t\tclipR = clipL + cameraWidth;\n\t\t\tclipT = (1 - camera._rect.y) * sh;\n\t\t\tclipB = clipT - cameraHeight;\n\t\t}\n\t\tlet hitCorners = this.screenCorners;\n\t\tconst text = this._text;\n\t\tif (text) {\n\t\t\tconst overflowX = Math.max(0, text.width - this.calculatedWidth);\n\t\t\tconst overflowY = Math.max(0, text.height - this.calculatedHeight);\n\t\t\tif (overflowX > 0 || overflowY > 0) {\n\t\t\t\tconst ha = this.alignment.x;\n\t\t\t\tconst va = this.alignment.y;\n\t\t\t\thitCorners = this._calcScreenCorners(\n\t\t\t\t\tthis._absLeft - ha * overflowX,\n\t\t\t\t\tthis._absBottom - va * overflowY,\n\t\t\t\t\tthis._absRight + (1 - ha) * overflowX,\n\t\t\t\t\tthis._absTop + (1 - va) * overflowY,\n\t\t\t\t\ttmpCorners\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tconst left = Math.min(Math.min(hitCorners[0].x, hitCorners[1].x), Math.min(hitCorners[2].x, hitCorners[3].x));\n\t\tconst right2 = Math.max(Math.max(hitCorners[0].x, hitCorners[1].x), Math.max(hitCorners[2].x, hitCorners[3].x));\n\t\tconst bottom = Math.min(Math.min(hitCorners[0].y, hitCorners[1].y), Math.min(hitCorners[2].y, hitCorners[3].y));\n\t\tconst top = Math.max(Math.max(hitCorners[0].y, hitCorners[1].y), Math.max(hitCorners[2].y, hitCorners[3].y));\n\t\tif (right2 < clipL || left > clipR || bottom > clipT || top < clipB) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t}\n\t_isScreenSpace() {\n\t\tif (this.screen && this.screen.screen) {\n\t\t\treturn this.screen.screen.screenSpace;\n\t\t}\n\t\treturn false;\n\t}\n\t_isScreenCulled() {\n\t\tif (this.screen && this.screen.screen) {\n\t\t\treturn this.screen.screen.cull;\n\t\t}\n\t\treturn false;\n\t}\n\t_dirtyBatch() {\n\t\tif (this.batchGroupId !== -1) {\n\t\t\tthis.system.app.batcher?.markGroupDirty(this.batchGroupId);\n\t\t}\n\t}\n};\n\nvar ElementComponentSystem = class extends ComponentSystem {\n\tconstructor(app2) {\n\t\tsuper(app2);\n\t\tthis.id = \"element\";\n\t\tthis.ComponentType = ElementComponent;\n\t\tthis._unicodeConverter = null;\n\t\tthis._rtlReorder = null;\n\t\tthis._defaultTexture = new Texture(app2.graphicsDevice, {\n\t\t\twidth: 1,\n\t\t\theight: 1,\n\t\t\tformat: PIXELFORMAT_SRGBA8,\n\t\t\tname: \"element-system\"\n\t\t});\n\t\tconst pixels = this._defaultTexture.lock();\n\t\tconst pixelData = new Uint8Array(4);\n\t\tpixelData[0] = 255;\n\t\tpixelData[1] = 255;\n\t\tpixelData[2] = 255;\n\t\tpixelData[3] = 255;\n\t\tpixels.set(pixelData);\n\t\tthis._defaultTexture.unlock();\n\t\tthis.defaultImageMaterial = null;\n\t\tthis.defaultImage9SlicedMaterial = null;\n\t\tthis.defaultImage9TiledMaterial = null;\n\t\tthis.defaultImageMaskMaterial = null;\n\t\tthis.defaultImage9SlicedMaskMaterial = null;\n\t\tthis.defaultImage9TiledMaskMaterial = null;\n\t\tthis.defaultScreenSpaceImageMaterial = null;\n\t\tthis.defaultScreenSpaceImage9SlicedMaterial = null;\n\t\tthis.defaultScreenSpaceImage9TiledMaterial = null;\n\t\tthis.defaultScreenSpaceImageMask9SlicedMaterial = null;\n\t\tthis.defaultScreenSpaceImageMask9TiledMaterial = null;\n\t\tthis.defaultScreenSpaceImageMaskMaterial = null;\n\t\tthis._defaultTextMaterials = {};\n\t\tthis.defaultImageMaterials = [];\n\t\tthis.on(\"add\", this.onAddComponent, this);\n\t\tthis.on(\"beforeremove\", this.onBeforeRemove, this);\n\t}\n\tdestroy() {\n\t\tsuper.destroy();\n\t\tthis._defaultTexture.destroy();\n\t}\n\tinitializeComponentData(component, data2, properties) {\n\t\tcomponent._beingInitialized = true;\n\t\tif (data2.anchor !== void 0) {\n\t\t\tif (data2.anchor instanceof Vec4) {\n\t\t\t\tcomponent.anchor.copy(data2.anchor);\n\t\t\t} else {\n\t\t\t\tcomponent.anchor.set(data2.anchor[0], data2.anchor[1], data2.anchor[2], data2.anchor[3]);\n\t\t\t}\n\t\t}\n\t\tif (data2.pivot !== void 0) {\n\t\t\tif (data2.pivot instanceof Vec2) {\n\t\t\t\tcomponent.pivot.copy(data2.pivot);\n\t\t\t} else {\n\t\t\t\tcomponent.pivot.set(data2.pivot[0], data2.pivot[1]);\n\t\t\t}\n\t\t}\n\t\tconst splitHorAnchors = Math.abs(component.anchor.x - component.anchor.z) > 1e-3;\n\t\tconst splitVerAnchors = Math.abs(component.anchor.y - component.anchor.w) > 1e-3;\n\t\tlet _marginChange = false;\n\t\tlet color3;\n\t\tif (data2.margin !== void 0) {\n\t\t\tif (data2.margin instanceof Vec4) {\n\t\t\t\tcomponent.margin.copy(data2.margin);\n\t\t\t} else {\n\t\t\t\tcomponent._margin.set(data2.margin[0], data2.margin[1], data2.margin[2], data2.margin[3]);\n\t\t\t}\n\t\t\t_marginChange = true;\n\t\t}\n\t\tif (data2.left !== void 0) {\n\t\t\tcomponent._margin.x = data2.left;\n\t\t\t_marginChange = true;\n\t\t}\n\t\tif (data2.bottom !== void 0) {\n\t\t\tcomponent._margin.y = data2.bottom;\n\t\t\t_marginChange = true;\n\t\t}\n\t\tif (data2.right !== void 0) {\n\t\t\tcomponent._margin.z = data2.right;\n\t\t\t_marginChange = true;\n\t\t}\n\t\tif (data2.top !== void 0) {\n\t\t\tcomponent._margin.w = data2.top;\n\t\t\t_marginChange = true;\n\t\t}\n\t\tif (_marginChange) {\n\t\t\tcomponent.margin = component._margin;\n\t\t}\n\t\tlet shouldForceSetAnchor = false;\n\t\tif (data2.width !== void 0 && !splitHorAnchors) {\n\t\t\tcomponent.width = data2.width;\n\t\t} else if (splitHorAnchors) {\n\t\t\tshouldForceSetAnchor = true;\n\t\t}\n\t\tif (data2.height !== void 0 && !splitVerAnchors) {\n\t\t\tcomponent.height = data2.height;\n\t\t} else if (splitVerAnchors) {\n\t\t\tshouldForceSetAnchor = true;\n\t\t}\n\t\tif (shouldForceSetAnchor) {\n\t\t\tcomponent.anchor = component.anchor;\n\t\t}\n\t\tif (data2.enabled !== void 0) {\n\t\t\tcomponent.enabled = data2.enabled;\n\t\t}\n\t\tif (data2.useInput !== void 0) {\n\t\t\tcomponent.useInput = data2.useInput;\n\t\t}\n\t\tif (data2.fitMode !== void 0) {\n\t\t\tcomponent.fitMode = data2.fitMode;\n\t\t}\n\t\tcomponent.batchGroupId = data2.batchGroupId === void 0 || data2.batchGroupId === null ? -1 : data2.batchGroupId;\n\t\tif (data2.layers && Array.isArray(data2.layers)) {\n\t\t\tcomponent.layers = data2.layers.slice(0);\n\t\t}\n\t\tif (data2.type !== void 0) {\n\t\t\tcomponent.type = data2.type;\n\t\t}\n\t\tif (component.type === ELEMENTTYPE_IMAGE) {\n\t\t\tif (data2.rect !== void 0) {\n\t\t\t\tcomponent.rect = data2.rect;\n\t\t\t}\n\t\t\tif (data2.color !== void 0) {\n\t\t\t\tcolor3 = data2.color;\n\t\t\t\tif (!(color3 instanceof Color)) {\n\t\t\t\t\tcolor3 = new Color(data2.color[0], data2.color[1], data2.color[2]);\n\t\t\t\t}\n\t\t\t\tcomponent.color = color3;\n\t\t\t}\n\t\t\tif (data2.opacity !== void 0) component.opacity = data2.opacity;\n\t\t\tif (data2.textureAsset !== void 0) component.textureAsset = data2.textureAsset;\n\t\t\tif (data2.texture) component.texture = data2.texture;\n\t\t\tif (data2.spriteAsset !== void 0) component.spriteAsset = data2.spriteAsset;\n\t\t\tif (data2.sprite) component.sprite = data2.sprite;\n\t\t\tif (data2.spriteFrame !== void 0) component.spriteFrame = data2.spriteFrame;\n\t\t\tif (data2.pixelsPerUnit !== void 0 && data2.pixelsPerUnit !== null) component.pixelsPerUnit = data2.pixelsPerUnit;\n\t\t\tif (data2.materialAsset !== void 0) component.materialAsset = data2.materialAsset;\n\t\t\tif (data2.material) component.material = data2.material;\n\t\t\tif (data2.mask !== void 0) {\n\t\t\t\tcomponent.mask = data2.mask;\n\t\t\t}\n\t\t} else if (component.type === ELEMENTTYPE_TEXT) {\n\t\t\tif (data2.autoWidth !== void 0) component.autoWidth = data2.autoWidth;\n\t\t\tif (data2.autoHeight !== void 0) component.autoHeight = data2.autoHeight;\n\t\t\tif (data2.rtlReorder !== void 0) component.rtlReorder = data2.rtlReorder;\n\t\t\tif (data2.unicodeConverter !== void 0) component.unicodeConverter = data2.unicodeConverter;\n\t\t\tif (data2.text !== null && data2.text !== void 0) {\n\t\t\t\tcomponent.text = data2.text;\n\t\t\t} else if (data2.key !== null && data2.key !== void 0) {\n\t\t\t\tcomponent.key = data2.key;\n\t\t\t}\n\t\t\tif (data2.color !== void 0) {\n\t\t\t\tcolor3 = data2.color;\n\t\t\t\tif (!(color3 instanceof Color)) {\n\t\t\t\t\tcolor3 = new Color(color3[0], color3[1], color3[2]);\n\t\t\t\t}\n\t\t\t\tcomponent.color = color3;\n\t\t\t}\n\t\t\tif (data2.opacity !== void 0) {\n\t\t\t\tcomponent.opacity = data2.opacity;\n\t\t\t}\n\t\t\tif (data2.spacing !== void 0) component.spacing = data2.spacing;\n\t\t\tif (data2.fontSize !== void 0) {\n\t\t\t\tcomponent.fontSize = data2.fontSize;\n\t\t\t\tif (!data2.lineHeight) component.lineHeight = data2.fontSize;\n\t\t\t}\n\t\t\tif (data2.lineHeight !== void 0) component.lineHeight = data2.lineHeight;\n\t\t\tif (data2.maxLines !== void 0) component.maxLines = data2.maxLines;\n\t\t\tif (data2.wrapLines !== void 0) component.wrapLines = data2.wrapLines;\n\t\t\tif (data2.justify !== void 0) component.justify = data2.justify;\n\t\t\tif (data2.minFontSize !== void 0) component.minFontSize = data2.minFontSize;\n\t\t\tif (data2.maxFontSize !== void 0) component.maxFontSize = data2.maxFontSize;\n\t\t\tif (data2.autoFitWidth) component.autoFitWidth = data2.autoFitWidth;\n\t\t\tif (data2.autoFitHeight) component.autoFitHeight = data2.autoFitHeight;\n\t\t\tif (data2.fontAsset !== void 0) component.fontAsset = data2.fontAsset;\n\t\t\tif (data2.font !== void 0) component.font = data2.font;\n\t\t\tif (data2.alignment !== void 0) component.alignment = data2.alignment;\n\t\t\tif (data2.outlineColor !== void 0) component.outlineColor = data2.outlineColor;\n\t\t\tif (data2.outlineThickness !== void 0) component.outlineThickness = data2.outlineThickness;\n\t\t\tif (data2.shadowColor !== void 0) component.shadowColor = data2.shadowColor;\n\t\t\tif (data2.shadowOffset !== void 0) component.shadowOffset = data2.shadowOffset;\n\t\t\tif (data2.enableMarkup !== void 0) component.enableMarkup = data2.enableMarkup;\n\t\t}\n\t\tconst result = component._parseUpToScreen();\n\t\tif (result.screen) {\n\t\t\tcomponent._updateScreen(result.screen);\n\t\t}\n\t\tsuper.initializeComponentData(component, data2, []);\n\t\tcomponent._beingInitialized = false;\n\t\tif (component.type === ELEMENTTYPE_IMAGE && component._image._meshDirty) {\n\t\t\tcomponent._image._updateMesh(component._image.mesh);\n\t\t}\n\t}\n\tonAddComponent(entity, component) {\n\t\tentity.fire(\"element:add\");\n\t}\n\tonBeforeRemove(entity, component) {\n\t\tcomponent.onBeforeRemove();\n\t}\n\tcloneComponent(entity, clone) {\n\t\tconst source = entity.element;\n\t\tconst data2 = {\n\t\t\tenabled: source.enabled,\n\t\t\twidth: source.width,\n\t\t\theight: source.height,\n\t\t\tanchor: source.anchor.clone(),\n\t\t\tpivot: source.pivot.clone(),\n\t\t\tmargin: source.margin.clone(),\n\t\t\talignment: source.alignment && source.alignment.clone() || source.alignment,\n\t\t\tautoWidth: source.autoWidth,\n\t\t\tautoHeight: source.autoHeight,\n\t\t\ttype: source.type,\n\t\t\trect: source.rect && source.rect.clone() || source.rect,\n\t\t\trtlReorder: source.rtlReorder,\n\t\t\tunicodeConverter: source.unicodeConverter,\n\t\t\tmaterialAsset: source.materialAsset,\n\t\t\tmaterial: source.material,\n\t\t\tcolor: source.color && source.color.clone() || source.color,\n\t\t\topacity: source.opacity,\n\t\t\ttextureAsset: source.textureAsset,\n\t\t\ttexture: source.texture,\n\t\t\tspriteAsset: source.spriteAsset,\n\t\t\tsprite: source.sprite,\n\t\t\tspriteFrame: source.spriteFrame,\n\t\t\tpixelsPerUnit: source.pixelsPerUnit,\n\t\t\tspacing: source.spacing,\n\t\t\tlineHeight: source.lineHeight,\n\t\t\twrapLines: source.wrapLines,\n\t\t\tjustify: source.justify,\n\t\t\tlayers: source.layers,\n\t\t\tfontSize: source.fontSize,\n\t\t\tminFontSize: source.minFontSize,\n\t\t\tmaxFontSize: source.maxFontSize,\n\t\t\tautoFitWidth: source.autoFitWidth,\n\t\t\tautoFitHeight: source.autoFitHeight,\n\t\t\tmaxLines: source.maxLines,\n\t\t\tfontAsset: source.fontAsset,\n\t\t\tfont: source.font,\n\t\t\tuseInput: source.useInput,\n\t\t\tfitMode: source.fitMode,\n\t\t\tbatchGroupId: source.batchGroupId,\n\t\t\tmask: source.mask,\n\t\t\toutlineColor: source.outlineColor && source.outlineColor.clone() || source.outlineColor,\n\t\t\toutlineThickness: source.outlineThickness,\n\t\t\tshadowColor: source.shadowColor && source.shadowColor.clone() || source.shadowColor,\n\t\t\tshadowOffset: source.shadowOffset && source.shadowOffset.clone() || source.shadowOffset,\n\t\t\tenableMarkup: source.enableMarkup\n\t\t};\n\t\tif (source.key !== void 0 && source.key !== null) {\n\t\t\tdata2.key = source.key;\n\t\t} else {\n\t\t\tdata2.text = source.text;\n\t\t}\n\t\treturn this.addComponent(clone, data2);\n\t}\n\tgetTextElementMaterial(screenSpace, msdf, textAttibutes) {\n\t\tconst hash = (screenSpace && 1 << 0) | (msdf && 1 << 1) | (textAttibutes && 1 << 2);\n\t\tlet material = this._defaultTextMaterials[hash];\n\t\tif (material) {\n\t\t\treturn material;\n\t\t}\n\t\tlet name = \"TextMaterial\";\n\t\tmaterial = new StandardMaterial();\n\t\tif (msdf) {\n\t\t\tmaterial.msdfMap = this._defaultTexture;\n\t\t\tmaterial.msdfTextAttribute = textAttibutes;\n\t\t\tmaterial.emissive.set(1, 1, 1);\n\t\t} else {\n\t\t\tname = `Bitmap${name}`;\n\t\t\tmaterial.emissive.set(1, 1, 1);\n\t\t\tmaterial.emissiveMap = this._defaultTexture;\n\t\t\tmaterial.opacityMap = this._defaultTexture;\n\t\t\tmaterial.opacityMapChannel = \"a\";\n\t\t}\n\t\tif (screenSpace) {\n\t\t\tname = `ScreenSpace${name}`;\n\t\t\tmaterial.depthTest = false;\n\t\t}\n\t\tmaterial.name = `default${name}`;\n\t\tmaterial.useLighting = false;\n\t\tmaterial.useTonemap = false;\n\t\tmaterial.useFog = false;\n\t\tmaterial.useSkybox = false;\n\t\tmaterial.diffuse.set(0, 0, 0);\n\t\tmaterial.opacity = 0.5;\n\t\tmaterial.blendType = BLEND_PREMULTIPLIED;\n\t\tmaterial.depthWrite = false;\n\t\tmaterial.emissiveVertexColor = true;\n\t\tmaterial.update();\n\t\tthis._defaultTextMaterials[hash] = material;\n\t\treturn material;\n\t}\n\t_createBaseImageMaterial() {\n\t\tconst material = new StandardMaterial();\n\t\tmaterial.diffuse.set(0, 0, 0);\n\t\tmaterial.emissive.set(1, 1, 1);\n\t\tmaterial.emissiveMap = this._defaultTexture;\n\t\tmaterial.opacityMap = this._defaultTexture;\n\t\tmaterial.opacityMapChannel = \"a\";\n\t\tmaterial.useLighting = false;\n\t\tmaterial.useTonemap = false;\n\t\tmaterial.useFog = false;\n\t\tmaterial.useSkybox = false;\n\t\tmaterial.blendType = BLEND_PREMULTIPLIED;\n\t\tmaterial.depthWrite = false;\n\t\treturn material;\n\t}\n\tgetImageElementMaterial(screenSpace, mask, nineSliced, nineSliceTiled) {\n\t\tif (screenSpace) {\n\t\t\tif (mask) {\n\t\t\t\tif (nineSliced) {\n\t\t\t\t\tif (!this.defaultScreenSpaceImageMask9SlicedMaterial) {\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMask9SlicedMaterial = this._createBaseImageMaterial();\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMask9SlicedMaterial.name = \"defaultScreenSpaceImageMask9SlicedMaterial\";\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMask9SlicedMaterial.nineSlicedMode = SPRITE_RENDERMODE_SLICED;\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMask9SlicedMaterial.depthTest = false;\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMask9SlicedMaterial.alphaTest = 1;\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMask9SlicedMaterial.redWrite = false;\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMask9SlicedMaterial.greenWrite = false;\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMask9SlicedMaterial.blueWrite = false;\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMask9SlicedMaterial.alphaWrite = false;\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMask9SlicedMaterial.update();\n\t\t\t\t\t\tthis.defaultImageMaterials.push(this.defaultScreenSpaceImageMask9SlicedMaterial);\n\t\t\t\t\t}\n\t\t\t\t\treturn this.defaultScreenSpaceImageMask9SlicedMaterial;\n\t\t\t\t} else if (nineSliceTiled) {\n\t\t\t\t\tif (!this.defaultScreenSpaceImageMask9TiledMaterial) {\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMask9TiledMaterial = this.defaultScreenSpaceImage9TiledMaterial.clone();\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMask9TiledMaterial.name = \"defaultScreenSpaceImageMask9TiledMaterial\";\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMask9TiledMaterial.nineSlicedMode = SPRITE_RENDERMODE_TILED;\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMask9TiledMaterial.depthTest = false;\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMask9TiledMaterial.alphaTest = 1;\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMask9TiledMaterial.redWrite = false;\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMask9TiledMaterial.greenWrite = false;\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMask9TiledMaterial.blueWrite = false;\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMask9TiledMaterial.alphaWrite = false;\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMask9TiledMaterial.update();\n\t\t\t\t\t\tthis.defaultImageMaterials.push(this.defaultScreenSpaceImageMask9TiledMaterial);\n\t\t\t\t\t}\n\t\t\t\t\treturn this.defaultScreenSpaceImageMask9TiledMaterial;\n\t\t\t\t} else {\n\t\t\t\t\tif (!this.defaultScreenSpaceImageMaskMaterial) {\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMaskMaterial = this._createBaseImageMaterial();\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMaskMaterial.name = \"defaultScreenSpaceImageMaskMaterial\";\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMaskMaterial.depthTest = false;\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMaskMaterial.alphaTest = 1;\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMaskMaterial.redWrite = false;\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMaskMaterial.greenWrite = false;\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMaskMaterial.blueWrite = false;\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMaskMaterial.alphaWrite = false;\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMaskMaterial.update();\n\t\t\t\t\t\tthis.defaultImageMaterials.push(this.defaultScreenSpaceImageMaskMaterial);\n\t\t\t\t\t}\n\t\t\t\t\treturn this.defaultScreenSpaceImageMaskMaterial;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (nineSliced) {\n\t\t\t\t\tif (!this.defaultScreenSpaceImage9SlicedMaterial) {\n\t\t\t\t\t\tthis.defaultScreenSpaceImage9SlicedMaterial = this._createBaseImageMaterial();\n\t\t\t\t\t\tthis.defaultScreenSpaceImage9SlicedMaterial.name = \"defaultScreenSpaceImage9SlicedMaterial\";\n\t\t\t\t\t\tthis.defaultScreenSpaceImage9SlicedMaterial.nineSlicedMode = SPRITE_RENDERMODE_SLICED;\n\t\t\t\t\t\tthis.defaultScreenSpaceImage9SlicedMaterial.depthTest = false;\n\t\t\t\t\t\tthis.defaultScreenSpaceImage9SlicedMaterial.update();\n\t\t\t\t\t\tthis.defaultImageMaterials.push(this.defaultScreenSpaceImage9SlicedMaterial);\n\t\t\t\t\t}\n\t\t\t\t\treturn this.defaultScreenSpaceImage9SlicedMaterial;\n\t\t\t\t} else if (nineSliceTiled) {\n\t\t\t\t\tif (!this.defaultScreenSpaceImage9TiledMaterial) {\n\t\t\t\t\t\tthis.defaultScreenSpaceImage9TiledMaterial = this._createBaseImageMaterial();\n\t\t\t\t\t\tthis.defaultScreenSpaceImage9TiledMaterial.name = \"defaultScreenSpaceImage9TiledMaterial\";\n\t\t\t\t\t\tthis.defaultScreenSpaceImage9TiledMaterial.nineSlicedMode = SPRITE_RENDERMODE_TILED;\n\t\t\t\t\t\tthis.defaultScreenSpaceImage9TiledMaterial.depthTest = false;\n\t\t\t\t\t\tthis.defaultScreenSpaceImage9TiledMaterial.update();\n\t\t\t\t\t\tthis.defaultImageMaterials.push(this.defaultScreenSpaceImage9TiledMaterial);\n\t\t\t\t\t}\n\t\t\t\t\treturn this.defaultScreenSpaceImage9TiledMaterial;\n\t\t\t\t} else {\n\t\t\t\t\tif (!this.defaultScreenSpaceImageMaterial) {\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMaterial = this._createBaseImageMaterial();\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMaterial.name = \"defaultScreenSpaceImageMaterial\";\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMaterial.depthTest = false;\n\t\t\t\t\t\tthis.defaultScreenSpaceImageMaterial.update();\n\t\t\t\t\t\tthis.defaultImageMaterials.push(this.defaultScreenSpaceImageMaterial);\n\t\t\t\t\t}\n\t\t\t\t\treturn this.defaultScreenSpaceImageMaterial;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif (mask) {\n\t\t\t\tif (nineSliced) {\n\t\t\t\t\tif (!this.defaultImage9SlicedMaskMaterial) {\n\t\t\t\t\t\tthis.defaultImage9SlicedMaskMaterial = this._createBaseImageMaterial();\n\t\t\t\t\t\tthis.defaultImage9SlicedMaskMaterial.name = \"defaultImage9SlicedMaskMaterial\";\n\t\t\t\t\t\tthis.defaultImage9SlicedMaskMaterial.nineSlicedMode = SPRITE_RENDERMODE_SLICED;\n\t\t\t\t\t\tthis.defaultImage9SlicedMaskMaterial.alphaTest = 1;\n\t\t\t\t\t\tthis.defaultImage9SlicedMaskMaterial.redWrite = false;\n\t\t\t\t\t\tthis.defaultImage9SlicedMaskMaterial.greenWrite = false;\n\t\t\t\t\t\tthis.defaultImage9SlicedMaskMaterial.blueWrite = false;\n\t\t\t\t\t\tthis.defaultImage9SlicedMaskMaterial.alphaWrite = false;\n\t\t\t\t\t\tthis.defaultImage9SlicedMaskMaterial.update();\n\t\t\t\t\t\tthis.defaultImageMaterials.push(this.defaultImage9SlicedMaskMaterial);\n\t\t\t\t\t}\n\t\t\t\t\treturn this.defaultImage9SlicedMaskMaterial;\n\t\t\t\t} else if (nineSliceTiled) {\n\t\t\t\t\tif (!this.defaultImage9TiledMaskMaterial) {\n\t\t\t\t\t\tthis.defaultImage9TiledMaskMaterial = this._createBaseImageMaterial();\n\t\t\t\t\t\tthis.defaultImage9TiledMaskMaterial.name = \"defaultImage9TiledMaskMaterial\";\n\t\t\t\t\t\tthis.defaultImage9TiledMaskMaterial.nineSlicedMode = SPRITE_RENDERMODE_TILED;\n\t\t\t\t\t\tthis.defaultImage9TiledMaskMaterial.alphaTest = 1;\n\t\t\t\t\t\tthis.defaultImage9TiledMaskMaterial.redWrite = false;\n\t\t\t\t\t\tthis.defaultImage9TiledMaskMaterial.greenWrite = false;\n\t\t\t\t\t\tthis.defaultImage9TiledMaskMaterial.blueWrite = false;\n\t\t\t\t\t\tthis.defaultImage9TiledMaskMaterial.alphaWrite = false;\n\t\t\t\t\t\tthis.defaultImage9TiledMaskMaterial.update();\n\t\t\t\t\t\tthis.defaultImageMaterials.push(this.defaultImage9TiledMaskMaterial);\n\t\t\t\t\t}\n\t\t\t\t\treturn this.defaultImage9TiledMaskMaterial;\n\t\t\t\t} else {\n\t\t\t\t\tif (!this.defaultImageMaskMaterial) {\n\t\t\t\t\t\tthis.defaultImageMaskMaterial = this._createBaseImageMaterial();\n\t\t\t\t\t\tthis.defaultImageMaskMaterial.name = \"defaultImageMaskMaterial\";\n\t\t\t\t\t\tthis.defaultImageMaskMaterial.alphaTest = 1;\n\t\t\t\t\t\tthis.defaultImageMaskMaterial.redWrite = false;\n\t\t\t\t\t\tthis.defaultImageMaskMaterial.greenWrite = false;\n\t\t\t\t\t\tthis.defaultImageMaskMaterial.blueWrite = false;\n\t\t\t\t\t\tthis.defaultImageMaskMaterial.alphaWrite = false;\n\t\t\t\t\t\tthis.defaultImageMaskMaterial.update();\n\t\t\t\t\t\tthis.defaultImageMaterials.push(this.defaultImageMaskMaterial);\n\t\t\t\t\t}\n\t\t\t\t\treturn this.defaultImageMaskMaterial;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (nineSliced) {\n\t\t\t\t\tif (!this.defaultImage9SlicedMaterial) {\n\t\t\t\t\t\tthis.defaultImage9SlicedMaterial = this._createBaseImageMaterial();\n\t\t\t\t\t\tthis.defaultImage9SlicedMaterial.name = \"defaultImage9SlicedMaterial\";\n\t\t\t\t\t\tthis.defaultImage9SlicedMaterial.nineSlicedMode = SPRITE_RENDERMODE_SLICED;\n\t\t\t\t\t\tthis.defaultImage9SlicedMaterial.update();\n\t\t\t\t\t\tthis.defaultImageMaterials.push(this.defaultImage9SlicedMaterial);\n\t\t\t\t\t}\n\t\t\t\t\treturn this.defaultImage9SlicedMaterial;\n\t\t\t\t} else if (nineSliceTiled) {\n\t\t\t\t\tif (!this.defaultImage9TiledMaterial) {\n\t\t\t\t\t\tthis.defaultImage9TiledMaterial = this._createBaseImageMaterial();\n\t\t\t\t\t\tthis.defaultImage9TiledMaterial.name = \"defaultImage9TiledMaterial\";\n\t\t\t\t\t\tthis.defaultImage9TiledMaterial.nineSlicedMode = SPRITE_RENDERMODE_TILED;\n\t\t\t\t\t\tthis.defaultImage9TiledMaterial.update();\n\t\t\t\t\t\tthis.defaultImageMaterials.push(this.defaultImage9TiledMaterial);\n\t\t\t\t\t}\n\t\t\t\t\treturn this.defaultImage9TiledMaterial;\n\t\t\t\t} else {\n\t\t\t\t\tif (!this.defaultImageMaterial) {\n\t\t\t\t\t\tthis.defaultImageMaterial = this._createBaseImageMaterial();\n\t\t\t\t\t\tthis.defaultImageMaterial.name = \"defaultImageMaterial\";\n\t\t\t\t\t\tthis.defaultImageMaterial.update();\n\t\t\t\t\t\tthis.defaultImageMaterials.push(this.defaultImageMaterial);\n\t\t\t\t\t}\n\t\t\t\t\treturn this.defaultImageMaterial;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tregisterUnicodeConverter(func) {\n\t\tthis._unicodeConverter = func;\n\t}\n\tregisterRtlReorder(func) {\n\t\tthis._rtlReorder = func;\n\t}\n\tgetUnicodeConverter() {\n\t\treturn this._unicodeConverter;\n\t}\n\tgetRtlReorder() {\n\t\treturn this._rtlReorder;\n\t}\n};\n\nvar JOINTTYPE_FIXED = \"fixed\";\nvar JOINTTYPE_BALL = \"ball\";\nvar JOINTTYPE_HINGE = \"hinge\";\nvar JOINTTYPE_SLIDER = \"slider\";\nvar JOINTTYPE_6DOF = \"6dof\";\nvar MOTION_FREE = \"free\";\nvar MOTION_LIMITED = \"limited\";\nvar MOTION_LOCKED = \"locked\";\n\nvar _mat = new Mat4();\nvar _jointMat = new Mat4();\nvar _frameMatA = new Mat4();\nvar _frameMatB = new Mat4();\nvar _vec32 = new Vec3();\nvar _vec3b = new Vec3();\nvar _jointTypes = /* @__PURE__ */ new Set([JOINTTYPE_FIXED, JOINTTYPE_BALL, JOINTTYPE_HINGE, JOINTTYPE_SLIDER, JOINTTYPE_6DOF]);\nvar _breakSeparation = 0.2;\nfunction setVec2(target2, value) {\n\tconst x3 = value instanceof Vec2 ? value.x : value[0];\n\tconst y2 = value instanceof Vec2 ? value.y : value[1];\n\tif (target2.x !== x3 || target2.y !== y2) {\n\t\ttarget2.set(x3, y2);\n\t\treturn true;\n\t}\n\treturn false;\n}\nfunction setVec3(target2, value) {\n\tconst x3 = value instanceof Vec3 ? value.x : value[0];\n\tconst y2 = value instanceof Vec3 ? value.y : value[1];\n\tconst z2 = value instanceof Vec3 ? value.z : value[2];\n\tif (target2.x !== x3 || target2.y !== y2 || target2.z !== z2) {\n\t\ttarget2.set(x3, y2, z2);\n\t\treturn true;\n\t}\n\treturn false;\n}\nvar JointComponent = class extends Component {\n\tstatic EVENT_BREAK = \"break\";\n\t_joint = null;\n\t_type = JOINTTYPE_FIXED;\n\t_entityA = null;\n\t_entityB = null;\n\t_enableCollision = false;\n\t_breakImpulse = Infinity;\n\t_broken = false;\n\t_initialized = false;\n\t// hinge, slider and ball\n\t_enableLimits = false;\n\t_limits = new Vec2(-45, 45);\n\t_motorSpeed = 0;\n\t_maxMotorForce = 0;\n\t_swingLimitY = 45;\n\t_swingLimitZ = 45;\n\t_twistLimit = 20;\n\t// 6dof\n\t_linearMotionX = MOTION_LOCKED;\n\t_linearMotionY = MOTION_LOCKED;\n\t_linearMotionZ = MOTION_LOCKED;\n\t_linearLimitsX = new Vec2();\n\t_linearLimitsY = new Vec2();\n\t_linearLimitsZ = new Vec2();\n\t_linearStiffness = new Vec3();\n\t_linearDamping = new Vec3(1, 1, 1);\n\t_linearEquilibrium = new Vec3();\n\t_angularMotionX = MOTION_LOCKED;\n\t_angularMotionY = MOTION_LOCKED;\n\t_angularMotionZ = MOTION_LOCKED;\n\t_angularLimitsX = new Vec2();\n\t_angularLimitsY = new Vec2();\n\t_angularLimitsZ = new Vec2();\n\t_angularStiffness = new Vec3();\n\t_angularDamping = new Vec3(1, 1, 1);\n\t_angularEquilibrium = new Vec3();\n\t// event bookkeeping\n\t_evtEntityADestroy = null;\n\t_evtEntityBDestroy = null;\n\t_evtSimEnabledA = null;\n\t_evtSimEnabledB = null;\n\t_evtBodyTeardown = [];\n\t// joint frame anchors captured at constraint creation, used for break detection on ammo\n\t// builds that expose no constraint state\n\t_anchorA = new Vec3();\n\t_anchorB = new Vec3();\n\t_axisA = new Vec3();\n\tset type(type) {\n\t\tif (this._type !== type) {\n\t\t\tif (!_jointTypes.has(type)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis._destroyConstraint();\n\t\t\tthis._broken = false;\n\t\t\tthis._type = type;\n\t\t\tthis._tryCreateConstraint();\n\t\t}\n\t}\n\tget type() {\n\t\treturn this._type;\n\t}\n\tset entityA(arg) {\n\t\tthis._setJointEntity(\"_entityA\", \"_evtEntityADestroy\", arg);\n\t}\n\tget entityA() {\n\t\treturn this._entityA;\n\t}\n\tset entityB(arg) {\n\t\tthis._setJointEntity(\"_entityB\", \"_evtEntityBDestroy\", arg);\n\t}\n\tget entityB() {\n\t\treturn this._entityB;\n\t}\n\tset enableCollision(enableCollision) {\n\t\tif (this._enableCollision !== enableCollision) {\n\t\t\tthis._destroyConstraint();\n\t\t\tthis._enableCollision = enableCollision;\n\t\t\tthis._tryCreateConstraint();\n\t\t}\n\t}\n\tget enableCollision() {\n\t\treturn this._enableCollision;\n\t}\n\tset breakImpulse(impulse) {\n\t\tif (this._breakImpulse !== impulse) {\n\t\t\tthis._breakImpulse = impulse;\n\t\t\tconst joint = this._joint;\n\t\t\tif (joint) {\n\t\t\t\tjoint.setBreakImpulse(impulse);\n\t\t\t\tif (Number.isFinite(impulse)) {\n\t\t\t\t\tthis.system._breakable.add(this);\n\t\t\t\t} else {\n\t\t\t\t\tthis.system._breakable.delete(this);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tget breakImpulse() {\n\t\treturn this._breakImpulse;\n\t}\n\tget constraint() {\n\t\treturn this._joint ? this._joint.nativeJoint : null;\n\t}\n\tget isBroken() {\n\t\treturn this._broken;\n\t}\n\tset enableLimits(arg) {\n\t\tif (this._enableLimits !== arg) {\n\t\t\tthis._enableLimits = arg;\n\t\t\tthis._updateLimits();\n\t\t}\n\t}\n\tget enableLimits() {\n\t\treturn this._enableLimits;\n\t}\n\tset limits(arg) {\n\t\tif (setVec2(this._limits, arg)) {\n\t\t\tthis._updateLimits();\n\t\t}\n\t}\n\tget limits() {\n\t\treturn this._limits;\n\t}\n\tset motorSpeed(arg) {\n\t\tif (this._motorSpeed !== arg) {\n\t\t\tthis._motorSpeed = arg;\n\t\t\tthis._updateMotor();\n\t\t}\n\t}\n\tget motorSpeed() {\n\t\treturn this._motorSpeed;\n\t}\n\tset maxMotorForce(arg) {\n\t\tif (this._maxMotorForce !== arg) {\n\t\t\tthis._maxMotorForce = arg;\n\t\t\tthis._updateMotor();\n\t\t}\n\t}\n\tget maxMotorForce() {\n\t\treturn this._maxMotorForce;\n\t}\n\tset swingLimitY(arg) {\n\t\tif (this._swingLimitY !== arg) {\n\t\t\tthis._swingLimitY = arg;\n\t\t\tthis._updateLimits();\n\t\t}\n\t}\n\tget swingLimitY() {\n\t\treturn this._swingLimitY;\n\t}\n\tset swingLimitZ(arg) {\n\t\tif (this._swingLimitZ !== arg) {\n\t\t\tthis._swingLimitZ = arg;\n\t\t\tthis._updateLimits();\n\t\t}\n\t}\n\tget swingLimitZ() {\n\t\treturn this._swingLimitZ;\n\t}\n\tset twistLimit(arg) {\n\t\tif (this._twistLimit !== arg) {\n\t\t\tthis._twistLimit = arg;\n\t\t\tthis._updateLimits();\n\t\t}\n\t}\n\tget twistLimit() {\n\t\treturn this._twistLimit;\n\t}\n\tset linearMotionX(arg) {\n\t\tif (this._linearMotionX !== arg) {\n\t\t\tthis._linearMotionX = arg;\n\t\t\tthis._updateLimits();\n\t\t}\n\t}\n\tget linearMotionX() {\n\t\treturn this._linearMotionX;\n\t}\n\tset linearMotionY(arg) {\n\t\tif (this._linearMotionY !== arg) {\n\t\t\tthis._linearMotionY = arg;\n\t\t\tthis._updateLimits();\n\t\t}\n\t}\n\tget linearMotionY() {\n\t\treturn this._linearMotionY;\n\t}\n\tset linearMotionZ(arg) {\n\t\tif (this._linearMotionZ !== arg) {\n\t\t\tthis._linearMotionZ = arg;\n\t\t\tthis._updateLimits();\n\t\t}\n\t}\n\tget linearMotionZ() {\n\t\treturn this._linearMotionZ;\n\t}\n\tset linearLimitsX(arg) {\n\t\tif (setVec2(this._linearLimitsX, arg)) {\n\t\t\tthis._updateLimits();\n\t\t}\n\t}\n\tget linearLimitsX() {\n\t\treturn this._linearLimitsX;\n\t}\n\tset linearLimitsY(arg) {\n\t\tif (setVec2(this._linearLimitsY, arg)) {\n\t\t\tthis._updateLimits();\n\t\t}\n\t}\n\tget linearLimitsY() {\n\t\treturn this._linearLimitsY;\n\t}\n\tset linearLimitsZ(arg) {\n\t\tif (setVec2(this._linearLimitsZ, arg)) {\n\t\t\tthis._updateLimits();\n\t\t}\n\t}\n\tget linearLimitsZ() {\n\t\treturn this._linearLimitsZ;\n\t}\n\tset linearStiffness(arg) {\n\t\tif (setVec3(this._linearStiffness, arg)) {\n\t\t\tthis._updateSpring();\n\t\t}\n\t}\n\tget linearStiffness() {\n\t\treturn this._linearStiffness;\n\t}\n\tset linearDamping(arg) {\n\t\tif (setVec3(this._linearDamping, arg)) {\n\t\t\tthis._updateSpring();\n\t\t}\n\t}\n\tget linearDamping() {\n\t\treturn this._linearDamping;\n\t}\n\tset linearEquilibrium(arg) {\n\t\tif (setVec3(this._linearEquilibrium, arg)) {\n\t\t\tthis._updateSpring();\n\t\t}\n\t}\n\tget linearEquilibrium() {\n\t\treturn this._linearEquilibrium;\n\t}\n\tset angularMotionX(arg) {\n\t\tif (this._angularMotionX !== arg) {\n\t\t\tthis._angularMotionX = arg;\n\t\t\tthis._updateLimits();\n\t\t}\n\t}\n\tget angularMotionX() {\n\t\treturn this._angularMotionX;\n\t}\n\tset angularMotionY(arg) {\n\t\tif (this._angularMotionY !== arg) {\n\t\t\tthis._angularMotionY = arg;\n\t\t\tthis._updateLimits();\n\t\t}\n\t}\n\tget angularMotionY() {\n\t\treturn this._angularMotionY;\n\t}\n\tset angularMotionZ(arg) {\n\t\tif (this._angularMotionZ !== arg) {\n\t\t\tthis._angularMotionZ = arg;\n\t\t\tthis._updateLimits();\n\t\t}\n\t}\n\tget angularMotionZ() {\n\t\treturn this._angularMotionZ;\n\t}\n\tset angularLimitsX(arg) {\n\t\tif (setVec2(this._angularLimitsX, arg)) {\n\t\t\tthis._updateLimits();\n\t\t}\n\t}\n\tget angularLimitsX() {\n\t\treturn this._angularLimitsX;\n\t}\n\tset angularLimitsY(arg) {\n\t\tif (setVec2(this._angularLimitsY, arg)) {\n\t\t\tthis._updateLimits();\n\t\t}\n\t}\n\tget angularLimitsY() {\n\t\treturn this._angularLimitsY;\n\t}\n\tset angularLimitsZ(arg) {\n\t\tif (setVec2(this._angularLimitsZ, arg)) {\n\t\t\tthis._updateLimits();\n\t\t}\n\t}\n\tget angularLimitsZ() {\n\t\treturn this._angularLimitsZ;\n\t}\n\tset angularStiffness(arg) {\n\t\tif (setVec3(this._angularStiffness, arg)) {\n\t\t\tthis._updateSpring();\n\t\t}\n\t}\n\tget angularStiffness() {\n\t\treturn this._angularStiffness;\n\t}\n\tset angularDamping(arg) {\n\t\tif (setVec3(this._angularDamping, arg)) {\n\t\t\tthis._updateSpring();\n\t\t}\n\t}\n\tget angularDamping() {\n\t\treturn this._angularDamping;\n\t}\n\tset angularEquilibrium(arg) {\n\t\tif (setVec3(this._angularEquilibrium, arg)) {\n\t\t\tthis._updateSpring();\n\t\t}\n\t}\n\tget angularEquilibrium() {\n\t\treturn this._angularEquilibrium;\n\t}\n\trefreshFrames() {\n\t\tthis._destroyConstraint();\n\t\tthis._broken = false;\n\t\tthis._tryCreateConstraint();\n\t}\n\t_setJointEntity(prop, evtProp, arg) {\n\t\tlet entity;\n\t\tif (arg instanceof GraphNode) {\n\t\t\tentity = arg;\n\t\t} else if (typeof arg === \"string\") {\n\t\t\tentity = this.system.app.getEntityFromIndex(arg) ?? null;\n\t\t} else {\n\t\t\tentity = null;\n\t\t}\n\t\tif (this[prop] === entity) {\n\t\t\treturn;\n\t\t}\n\t\tthis._destroyConstraint();\n\t\tthis[evtProp]?.off();\n\t\tthis[evtProp] = null;\n\t\tthis[prop] = entity;\n\t\tif (entity) {\n\t\t\tthis[evtProp] = entity.once(\"destroy\", () => {\n\t\t\t\tthis[evtProp] = null;\n\t\t\t\tthis[prop] = null;\n\t\t\t\tthis._destroyConstraint();\n\t\t\t});\n\t\t}\n\t\tthis._broken = false;\n\t\tthis._tryCreateConstraint();\n\t}\n\t_isBodyReady(entity) {\n\t\tconst rigidbody = entity.rigidbody;\n\t\treturn !!(rigidbody && rigidbody._body && rigidbody._simulationEnabled);\n\t}\n\t_subscribeBodyAvailable() {\n\t\tif (!this._evtSimEnabledA && this._entityA?.rigidbody) {\n\t\t\tthis._evtSimEnabledA = this._entityA.rigidbody.once(\"simulationenabled\", this._onBodyAvailable, this);\n\t\t}\n\t\tif (!this._evtSimEnabledB && this._entityB?.rigidbody) {\n\t\t\tthis._evtSimEnabledB = this._entityB.rigidbody.once(\"simulationenabled\", this._onBodyAvailable, this);\n\t\t}\n\t}\n\t_clearBodyAvailableSubscriptions() {\n\t\tthis._evtSimEnabledA?.off();\n\t\tthis._evtSimEnabledA = null;\n\t\tthis._evtSimEnabledB?.off();\n\t\tthis._evtSimEnabledB = null;\n\t}\n\t_onBodyAvailable() {\n\t\tthis._clearBodyAvailableSubscriptions();\n\t\tthis._tryCreateConstraint();\n\t}\n\t_onBodyLost() {\n\t\tthis._destroyConstraint();\n\t\tthis._tryCreateConstraint();\n\t}\n\t_tryCreateConstraint() {\n\t\tconst system = this.system;\n\t\tif (this._joint || !this._initialized || !this.enabled || !this.entity.enabled || this._broken || !this._entityA || this._entityA === this._entityB) {\n\t\t\tsystem._pending.delete(this);\n\t\t\tthis._clearBodyAvailableSubscriptions();\n\t\t\treturn;\n\t\t}\n\t\tif (!this._isBodyReady(this._entityA) || this._entityB && !this._isBodyReady(this._entityB)) {\n\t\t\tsystem._pending.add(this);\n\t\t\tthis._subscribeBodyAvailable();\n\t\t\treturn;\n\t\t}\n\t\tsystem._pending.delete(this);\n\t\tthis._clearBodyAvailableSubscriptions();\n\t\tthis._createConstraint();\n\t}\n\t_createFrame(bodyEntity, anchor, axis, frame) {\n\t\t_jointMat.setTRS(this.entity.getPosition(), this.entity.getRotation(), Vec3.ONE);\n\t\tif (bodyEntity) {\n\t\t\t_mat.setTRS(bodyEntity.getPosition(), bodyEntity.getRotation(), Vec3.ONE);\n\t\t\t_mat.invert();\n\t\t\t_mat.mul(_jointMat);\n\t\t} else {\n\t\t\t_mat.copy(_jointMat);\n\t\t}\n\t\t_mat.getTranslation(_vec32);\n\t\tanchor.copy(_vec32);\n\t\t_mat.getX(axis).normalize();\n\t\tframe.copy(_mat);\n\t}\n\t_createConstraint() {\n\t\tconst entityA = this._entityA;\n\t\tconst entityB = this._entityB;\n\t\tconst rigidbodyA = entityA.rigidbody;\n\t\tconst rigidbodyB = entityB ? entityB.rigidbody : null;\n\t\tthis._createFrame(entityA, this._anchorA, this._axisA, _frameMatA);\n\t\tthis._createFrame(entityB, this._anchorB, _vec3b, _frameMatB);\n\t\tconst world = this.system.app.systems.rigidbody.physicsWorld;\n\t\tthis._joint = world.createJoint({\n\t\t\ttype: this._type,\n\t\t\tbodyA: rigidbodyA._body,\n\t\t\tbodyB: rigidbodyB ? rigidbodyB._body : null,\n\t\t\tframeA: _frameMatA,\n\t\t\tframeB: _frameMatB,\n\t\t\tenableCollision: this._enableCollision,\n\t\t\tsettings: this\n\t\t});\n\t\tif (Number.isFinite(this._breakImpulse)) {\n\t\t\tthis.system._breakable.add(this);\n\t\t}\n\t\tthis._evtBodyTeardown.push(\n\t\t\trigidbodyA.on(\"simulationdisabled\", this._onBodyLost, this),\n\t\t\trigidbodyA.on(\"beforeremove\", this._onBodyLost, this)\n\t\t);\n\t\tif (rigidbodyB) {\n\t\t\tthis._evtBodyTeardown.push(\n\t\t\t\trigidbodyB.on(\"simulationdisabled\", this._onBodyLost, this),\n\t\t\t\trigidbodyB.on(\"beforeremove\", this._onBodyLost, this)\n\t\t\t);\n\t\t}\n\t\tthis._activateBodies();\n\t}\n\t_destroyConstraint() {\n\t\tthis.system._pending.delete(this);\n\t\tthis._clearBodyAvailableSubscriptions();\n\t\tconst joint = this._joint;\n\t\tif (joint) {\n\t\t\tthis.system._breakable.delete(this);\n\t\t\tfor (let i2 = 0; i2 < this._evtBodyTeardown.length; i2++) {\n\t\t\t\tthis._evtBodyTeardown[i2].off();\n\t\t\t}\n\t\t\tthis._evtBodyTeardown.length = 0;\n\t\t\tthis.system.app.systems.rigidbody.physicsWorld.destroyJoint(joint);\n\t\t\tthis._joint = null;\n\t\t\tthis._activateBodies();\n\t\t}\n\t}\n\t_isAnchorSeparated() {\n\t\tif (this._type === JOINTTYPE_6DOF) {\n\t\t\treturn false;\n\t\t}\n\t\tconst entityA = this._entityA;\n\t\t_mat.setTRS(entityA.getPosition(), entityA.getRotation(), Vec3.ONE);\n\t\t_mat.transformPoint(this._anchorA, _vec32);\n\t\tconst entityB = this._entityB;\n\t\tif (entityB) {\n\t\t\t_jointMat.setTRS(entityB.getPosition(), entityB.getRotation(), Vec3.ONE);\n\t\t\t_jointMat.transformPoint(this._anchorB, _vec3b);\n\t\t} else {\n\t\t\t_vec3b.copy(this._anchorB);\n\t\t}\n\t\t_vec3b.sub(_vec32);\n\t\tif (this._type === JOINTTYPE_SLIDER) {\n\t\t\t_mat.transformVector(this._axisA, _vec32);\n\t\t\tconst slide = _vec3b.dot(_vec32);\n\t\t\t_vec3b.sub(_vec32.mulScalar(slide));\n\t\t}\n\t\treturn _vec3b.lengthSq() > _breakSeparation * _breakSeparation;\n\t}\n\t_checkBroken() {\n\t\tconst joint = this._joint;\n\t\tif (!joint) {\n\t\t\treturn;\n\t\t}\n\t\tlet broken = joint.isBroken();\n\t\tif (broken === null) {\n\t\t\tbroken = this._isAnchorSeparated();\n\t\t}\n\t\tif (broken) {\n\t\t\tthis._broken = true;\n\t\t\tthis._destroyConstraint();\n\t\t\tthis.fire(\"break\");\n\t\t}\n\t}\n\t_activateBodies() {\n\t\tthis._entityA?.rigidbody?.activate();\n\t\tthis._entityB?.rigidbody?.activate();\n\t}\n\t_updateLimits() {\n\t\tif (this._joint && this._joint.updateLimits(this)) {\n\t\t\tthis._activateBodies();\n\t\t}\n\t}\n\t_updateMotor() {\n\t\tif (this._joint && this._joint.updateMotor(this)) {\n\t\t\tthis._activateBodies();\n\t\t}\n\t}\n\t_updateSpring() {\n\t\tif (this._joint && this._joint.updateSpring(this)) {\n\t\t\tthis._activateBodies();\n\t\t}\n\t}\n\tonEnable() {\n\t\tthis._broken = false;\n\t\tthis._tryCreateConstraint();\n\t}\n\tonDisable() {\n\t\tthis._destroyConstraint();\n\t}\n\tonBeforeRemove() {\n\t\tthis._destroyConstraint();\n\t\tthis._evtEntityADestroy?.off();\n\t\tthis._evtEntityADestroy = null;\n\t\tthis._evtEntityBDestroy?.off();\n\t\tthis._evtEntityBDestroy = null;\n\t}\n\tresolveDuplicatedEntityReferenceProperties(oldJoint, duplicatedIdsMap) {\n\t\tif (oldJoint.entityA) {\n\t\t\tconst newEntityA = duplicatedIdsMap[oldJoint.entityA.guid];\n\t\t\tif (newEntityA) {\n\t\t\t\tthis.entityA = newEntityA;\n\t\t\t}\n\t\t}\n\t\tif (oldJoint.entityB) {\n\t\t\tconst newEntityB = duplicatedIdsMap[oldJoint.entityB.guid];\n\t\t\tif (newEntityB) {\n\t\t\t\tthis.entityB = newEntityB;\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar _properties4 = [\n\t\"type\",\n\t\"enableCollision\",\n\t\"breakImpulse\",\n\t\"enableLimits\",\n\t\"limits\",\n\t\"motorSpeed\",\n\t\"maxMotorForce\",\n\t\"swingLimitY\",\n\t\"swingLimitZ\",\n\t\"twistLimit\",\n\t\"linearMotionX\",\n\t\"linearMotionY\",\n\t\"linearMotionZ\",\n\t\"linearLimitsX\",\n\t\"linearLimitsY\",\n\t\"linearLimitsZ\",\n\t\"linearStiffness\",\n\t\"linearDamping\",\n\t\"linearEquilibrium\",\n\t\"angularMotionX\",\n\t\"angularMotionY\",\n\t\"angularMotionZ\",\n\t\"angularLimitsX\",\n\t\"angularLimitsY\",\n\t\"angularLimitsZ\",\n\t\"angularStiffness\",\n\t\"angularDamping\",\n\t\"angularEquilibrium\",\n\t// entity references are assigned last so the constraint is created with full configuration\n\t\"entityA\",\n\t\"entityB\"\n];\nvar JointComponentSystem = class extends ComponentSystem {\n\t_pending = /* @__PURE__ */ new Set();\n\t_breakable = /* @__PURE__ */ new Set();\n\tconstructor(app2) {\n\t\tsuper(app2);\n\t\tthis.id = \"joint\";\n\t\tthis.ComponentType = JointComponent;\n\t\tthis.on(\"beforeremove\", this.onBeforeRemove, this);\n\t\tthis.app.systems.on(\"update\", this.onUpdate, this);\n\t\tthis.app.systems.on(\"postUpdate\", this.onPostUpdate, this);\n\t}\n\tinitializeComponentData(component, data2, properties) {\n\t\tfor (let i2 = 0; i2 < _properties4.length; i2++) {\n\t\t\tconst property = _properties4[i2];\n\t\t\tif (data2[property] !== void 0) {\n\t\t\t\tcomponent[property] = data2[property];\n\t\t\t}\n\t\t}\n\t\tcomponent._initialized = true;\n\t\tsuper.initializeComponentData(component, data2);\n\t}\n\tcloneComponent(entity, clone) {\n\t\tconst c2 = entity.joint;\n\t\tconst data2 = {\n\t\t\tenabled: c2.enabled\n\t\t};\n\t\tfor (let i2 = 0; i2 < _properties4.length; i2++) {\n\t\t\tconst property = _properties4[i2];\n\t\t\tdata2[property] = c2[property];\n\t\t}\n\t\treturn this.addComponent(clone, data2);\n\t}\n\tonBeforeRemove(entity, component) {\n\t\tcomponent.onBeforeRemove();\n\t}\n\tonUpdate(dt) {\n\t\tfor (const component of this._pending) {\n\t\t\tcomponent._tryCreateConstraint();\n\t\t}\n\t}\n\tonPostUpdate(dt) {\n\t\tfor (const component of this._breakable) {\n\t\t\tcomponent._checkBroken();\n\t\t}\n\t}\n\tdestroy() {\n\t\tsuper.destroy();\n\t\tthis.app.systems.off(\"update\", this.onUpdate, this);\n\t\tthis.app.systems.off(\"postUpdate\", this.onPostUpdate, this);\n\t}\n};\n\nvar LayoutChildComponent = class extends Component {\n\t_minWidth = 0;\n\t_minHeight = 0;\n\t_maxWidth = null;\n\t_maxHeight = null;\n\t_fitWidthProportion = 0;\n\t_fitHeightProportion = 0;\n\t_excludeFromLayout = false;\n\tset minWidth(value) {\n\t\tif (value !== this._minWidth) {\n\t\t\tthis._minWidth = value;\n\t\t\tthis.fire(\"resize\");\n\t\t}\n\t}\n\tget minWidth() {\n\t\treturn this._minWidth;\n\t}\n\tset minHeight(value) {\n\t\tif (value !== this._minHeight) {\n\t\t\tthis._minHeight = value;\n\t\t\tthis.fire(\"resize\");\n\t\t}\n\t}\n\tget minHeight() {\n\t\treturn this._minHeight;\n\t}\n\tset maxWidth(value) {\n\t\tif (value !== this._maxWidth) {\n\t\t\tthis._maxWidth = value;\n\t\t\tthis.fire(\"resize\");\n\t\t}\n\t}\n\tget maxWidth() {\n\t\treturn this._maxWidth;\n\t}\n\tset maxHeight(value) {\n\t\tif (value !== this._maxHeight) {\n\t\t\tthis._maxHeight = value;\n\t\t\tthis.fire(\"resize\");\n\t\t}\n\t}\n\tget maxHeight() {\n\t\treturn this._maxHeight;\n\t}\n\tset fitWidthProportion(value) {\n\t\tif (value !== this._fitWidthProportion) {\n\t\t\tthis._fitWidthProportion = value;\n\t\t\tthis.fire(\"resize\");\n\t\t}\n\t}\n\tget fitWidthProportion() {\n\t\treturn this._fitWidthProportion;\n\t}\n\tset fitHeightProportion(value) {\n\t\tif (value !== this._fitHeightProportion) {\n\t\t\tthis._fitHeightProportion = value;\n\t\t\tthis.fire(\"resize\");\n\t\t}\n\t}\n\tget fitHeightProportion() {\n\t\treturn this._fitHeightProportion;\n\t}\n\tset excludeFromLayout(value) {\n\t\tif (value !== this._excludeFromLayout) {\n\t\t\tthis._excludeFromLayout = value;\n\t\t\tthis.fire(\"resize\");\n\t\t}\n\t}\n\tget excludeFromLayout() {\n\t\treturn this._excludeFromLayout;\n\t}\n};\n\nvar LayoutChildComponentSystem = class extends ComponentSystem {\n\tconstructor(app2) {\n\t\tsuper(app2);\n\t\tthis.id = \"layoutchild\";\n\t\tthis.ComponentType = LayoutChildComponent;\n\t}\n\tinitializeComponentData(component, data2, properties) {\n\t\tif (data2.enabled !== void 0) component.enabled = data2.enabled;\n\t\tif (data2.minWidth !== void 0) component.minWidth = data2.minWidth;\n\t\tif (data2.minHeight !== void 0) component.minHeight = data2.minHeight;\n\t\tif (data2.maxWidth !== void 0) component.maxWidth = data2.maxWidth;\n\t\tif (data2.maxHeight !== void 0) component.maxHeight = data2.maxHeight;\n\t\tif (data2.fitWidthProportion !== void 0) component.fitWidthProportion = data2.fitWidthProportion;\n\t\tif (data2.fitHeightProportion !== void 0) component.fitHeightProportion = data2.fitHeightProportion;\n\t\tif (data2.excludeFromLayout !== void 0) component.excludeFromLayout = data2.excludeFromLayout;\n\t\tsuper.initializeComponentData(component, data2, []);\n\t}\n\tcloneComponent(entity, clone) {\n\t\tconst layoutChild = entity.layoutchild;\n\t\treturn this.addComponent(clone, {\n\t\t\tenabled: layoutChild.enabled,\n\t\t\tminWidth: layoutChild.minWidth,\n\t\t\tminHeight: layoutChild.minHeight,\n\t\t\tmaxWidth: layoutChild.maxWidth,\n\t\t\tmaxHeight: layoutChild.maxHeight,\n\t\t\tfitWidthProportion: layoutChild.fitWidthProportion,\n\t\t\tfitHeightProportion: layoutChild.fitHeightProportion,\n\t\t\texcludeFromLayout: layoutChild.excludeFromLayout\n\t\t});\n\t}\n};\n\nvar FITTING_NONE = 0;\nvar FITTING_STRETCH = 1;\nvar FITTING_SHRINK = 2;\nvar FITTING_BOTH = 3;\n\nvar AXIS_MAPPINGS = {};\nAXIS_MAPPINGS[ORIENTATION_HORIZONTAL] = {\n\taxis: \"x\",\n\tsize: \"width\",\n\tcalculatedSize: \"calculatedWidth\",\n\tminSize: \"minWidth\",\n\tmaxSize: \"maxWidth\",\n\tfitting: \"widthFitting\",\n\tfittingProportion: \"fitWidthProportion\"\n};\nAXIS_MAPPINGS[ORIENTATION_VERTICAL] = {\n\taxis: \"y\",\n\tsize: \"height\",\n\tcalculatedSize: \"calculatedHeight\",\n\tminSize: \"minHeight\",\n\tmaxSize: \"maxHeight\",\n\tfitting: \"heightFitting\",\n\tfittingProportion: \"fitHeightProportion\"\n};\nvar OPPOSITE_ORIENTATION = {};\nOPPOSITE_ORIENTATION[ORIENTATION_HORIZONTAL] = ORIENTATION_VERTICAL;\nOPPOSITE_ORIENTATION[ORIENTATION_VERTICAL] = ORIENTATION_HORIZONTAL;\nvar PROPERTY_DEFAULTS = {\n\tminWidth: 0,\n\tminHeight: 0,\n\tmaxWidth: Number.POSITIVE_INFINITY,\n\tmaxHeight: Number.POSITIVE_INFINITY,\n\twidth: null,\n\theight: null,\n\tfitWidthProportion: 0,\n\tfitHeightProportion: 0\n};\nvar FITTING_ACTION = {\n\tNONE: \"NONE\",\n\tAPPLY_STRETCHING: \"APPLY_STRETCHING\",\n\tAPPLY_SHRINKING: \"APPLY_SHRINKING\"\n};\nvar availableSpace = new Vec2();\nfunction createCalculator(orientation) {\n\tlet options2;\n\tconst a = AXIS_MAPPINGS[orientation];\n\tconst b = AXIS_MAPPINGS[OPPOSITE_ORIENTATION[orientation]];\n\tfunction minExtentA(element, size) {\n\t\treturn -size[a.size] * element.pivot[a.axis];\n\t}\n\tfunction minExtentB(element, size) {\n\t\treturn -size[b.size] * element.pivot[b.axis];\n\t}\n\tfunction maxExtentA(element, size) {\n\t\treturn size[a.size] * (1 - element.pivot[a.axis]);\n\t}\n\tfunction maxExtentB(element, size) {\n\t\treturn size[b.size] * (1 - element.pivot[b.axis]);\n\t}\n\tfunction calculateAll(allElements, layoutOptions) {\n\t\tallElements = allElements.filter(shouldIncludeInLayout);\n\t\toptions2 = layoutOptions;\n\t\tavailableSpace.x = options2.containerSize.x - options2.padding.x - options2.padding.z;\n\t\tavailableSpace.y = options2.containerSize.y - options2.padding.y - options2.padding.w;\n\t\tresetAnchors(allElements);\n\t\tconst lines = reverseLinesIfRequired(splitLines(allElements));\n\t\tconst sizes = calculateSizesOnAxisB(lines, calculateSizesOnAxisA(lines));\n\t\tconst positions = calculateBasePositions(lines, sizes);\n\t\tapplyAlignmentAndPadding(lines, sizes, positions);\n\t\tapplySizesAndPositions(lines, sizes, positions);\n\t\treturn createLayoutInfo(lines);\n\t}\n\tfunction shouldIncludeInLayout(element) {\n\t\tconst layoutChildComponent = element.entity.layoutchild;\n\t\treturn !layoutChildComponent || !layoutChildComponent.enabled || !layoutChildComponent.excludeFromLayout;\n\t}\n\tfunction resetAnchors(allElements) {\n\t\tfor (let i2 = 0; i2 < allElements.length; ++i2) {\n\t\t\tconst element = allElements[i2];\n\t\t\tconst anchor = element.anchor;\n\t\t\tif (anchor.x !== 0 || anchor.y !== 0 || anchor.z !== 0 || anchor.w !== 0) {\n\t\t\t\telement.anchor = Vec4.ZERO;\n\t\t\t}\n\t\t}\n\t}\n\tfunction splitLines(allElements) {\n\t\tif (!options2.wrap) {\n\t\t\treturn [allElements];\n\t\t}\n\t\tconst lines = [[]];\n\t\tconst sizes = getElementSizeProperties(allElements);\n\t\tlet runningSize = 0;\n\t\tconst allowOverrun = options2[a.fitting] === FITTING_SHRINK;\n\t\tfor (let i2 = 0; i2 < allElements.length; ++i2) {\n\t\t\tif (lines[lines.length - 1].length > 0) {\n\t\t\t\trunningSize += options2.spacing[a.axis];\n\t\t\t}\n\t\t\tconst idealElementSize = sizes[i2][a.size];\n\t\t\trunningSize += idealElementSize;\n\t\t\tif (!allowOverrun && runningSize > availableSpace[a.axis] && lines[lines.length - 1].length !== 0) {\n\t\t\t\trunningSize = idealElementSize;\n\t\t\t\tlines.push([]);\n\t\t\t}\n\t\t\tlines[lines.length - 1].push(allElements[i2]);\n\t\t\tif (allowOverrun && runningSize > availableSpace[a.axis] && i2 !== allElements.length - 1) {\n\t\t\t\trunningSize = 0;\n\t\t\t\tlines.push([]);\n\t\t\t}\n\t\t}\n\t\treturn lines;\n\t}\n\tfunction reverseLinesIfRequired(lines) {\n\t\tconst reverseAxisA = options2.orientation === ORIENTATION_HORIZONTAL && options2.reverseX || options2.orientation === ORIENTATION_VERTICAL && options2.reverseY;\n\t\tconst reverseAxisB = options2.orientation === ORIENTATION_HORIZONTAL && options2.reverseY || options2.orientation === ORIENTATION_VERTICAL && options2.reverseX;\n\t\tif (reverseAxisA) {\n\t\t\tfor (let lineIndex = 0; lineIndex < lines.length; ++lineIndex) {\n\t\t\t\tif (reverseAxisA) {\n\t\t\t\t\tlines[lineIndex].reverse();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (reverseAxisB) {\n\t\t\tlines.reverse();\n\t\t}\n\t\treturn lines;\n\t}\n\tfunction calculateSizesOnAxisA(lines) {\n\t\tconst sizesAllLines = [];\n\t\tfor (let lineIndex = 0; lineIndex < lines.length; ++lineIndex) {\n\t\t\tconst line = lines[lineIndex];\n\t\t\tconst sizesThisLine = getElementSizeProperties(line);\n\t\t\tconst idealRequiredSpace = calculateTotalSpace(sizesThisLine, a);\n\t\t\tconst fittingAction = determineFittingAction(options2[a.fitting], idealRequiredSpace, availableSpace[a.axis]);\n\t\t\tif (fittingAction === FITTING_ACTION.APPLY_STRETCHING) {\n\t\t\t\tstretchSizesToFitContainer(sizesThisLine, idealRequiredSpace, a);\n\t\t\t} else if (fittingAction === FITTING_ACTION.APPLY_SHRINKING) {\n\t\t\t\tshrinkSizesToFitContainer(sizesThisLine, idealRequiredSpace, a);\n\t\t\t}\n\t\t\tsizesAllLines.push(sizesThisLine);\n\t\t}\n\t\treturn sizesAllLines;\n\t}\n\tfunction calculateSizesOnAxisB(lines, sizesAllLines) {\n\t\tconst largestElementsForEachLine = [];\n\t\tconst largestSizesForEachLine = [];\n\t\tfor (let lineIndex = 0; lineIndex < lines.length; ++lineIndex) {\n\t\t\tconst line = lines[lineIndex];\n\t\t\tline.largestElement = null;\n\t\t\tline.largestSize = { width: Number.NEGATIVE_INFINITY, height: Number.NEGATIVE_INFINITY };\n\t\t\tfor (let elementIndex = 0; elementIndex < line.length; ++elementIndex) {\n\t\t\t\tconst sizesThisElement = sizesAllLines[lineIndex][elementIndex];\n\t\t\t\tif (sizesThisElement[b.size] > line.largestSize[b.size]) {\n\t\t\t\t\tline.largestElement = line[elementIndex];\n\t\t\t\t\tline.largestSize = sizesThisElement;\n\t\t\t\t}\n\t\t\t}\n\t\t\tlargestElementsForEachLine.push(line.largestElement);\n\t\t\tlargestSizesForEachLine.push(line.largestSize);\n\t\t}\n\t\tconst idealRequiredSpace = calculateTotalSpace(largestSizesForEachLine, b);\n\t\tconst fittingAction = determineFittingAction(options2[b.fitting], idealRequiredSpace, availableSpace[b.axis]);\n\t\tif (fittingAction === FITTING_ACTION.APPLY_STRETCHING) {\n\t\t\tstretchSizesToFitContainer(largestSizesForEachLine, idealRequiredSpace, b);\n\t\t} else if (fittingAction === FITTING_ACTION.APPLY_SHRINKING) {\n\t\t\tshrinkSizesToFitContainer(largestSizesForEachLine, idealRequiredSpace, b);\n\t\t}\n\t\tfor (let lineIndex = 0; lineIndex < lines.length; ++lineIndex) {\n\t\t\tconst line = lines[lineIndex];\n\t\t\tfor (let elementIndex = 0; elementIndex < line.length; ++elementIndex) {\n\t\t\t\tconst sizesForThisElement = sizesAllLines[lineIndex][elementIndex];\n\t\t\t\tconst currentSize = sizesForThisElement[b.size];\n\t\t\t\tconst availableSize = lines.length === 1 ? availableSpace[b.axis] : line.largestSize[b.size];\n\t\t\t\tconst elementFittingAction = determineFittingAction(options2[b.fitting], currentSize, availableSize);\n\t\t\t\tif (elementFittingAction === FITTING_ACTION.APPLY_STRETCHING) {\n\t\t\t\t\tsizesForThisElement[b.size] = Math.min(availableSize, sizesForThisElement[b.maxSize]);\n\t\t\t\t} else if (elementFittingAction === FITTING_ACTION.APPLY_SHRINKING) {\n\t\t\t\t\tsizesForThisElement[b.size] = Math.max(availableSize, sizesForThisElement[b.minSize]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn sizesAllLines;\n\t}\n\tfunction determineFittingAction(fittingMode, currentSize, availableSize) {\n\t\tswitch (fittingMode) {\n\t\t\tcase FITTING_NONE:\n\t\t\t\treturn FITTING_ACTION.NONE;\n\t\t\tcase FITTING_STRETCH:\n\t\t\t\tif (currentSize < availableSize) {\n\t\t\t\t\treturn FITTING_ACTION.APPLY_STRETCHING;\n\t\t\t\t}\n\t\t\t\treturn FITTING_ACTION.NONE;\n\t\t\tcase FITTING_SHRINK:\n\t\t\t\tif (currentSize >= availableSize) {\n\t\t\t\t\treturn FITTING_ACTION.APPLY_SHRINKING;\n\t\t\t\t}\n\t\t\t\treturn FITTING_ACTION.NONE;\n\t\t\tcase FITTING_BOTH:\n\t\t\t\tif (currentSize < availableSize) {\n\t\t\t\t\treturn FITTING_ACTION.APPLY_STRETCHING;\n\t\t\t\t}\n\t\t\t\treturn FITTING_ACTION.APPLY_SHRINKING;\n\t\t\tdefault:\n\t\t\t\tthrow new Error(`Unrecognized fitting mode: ${fittingMode}`);\n\t\t}\n\t}\n\tfunction calculateTotalSpace(sizes, axis) {\n\t\tconst totalSizes = sumValues(sizes, axis.size);\n\t\tconst totalSpacing = (sizes.length - 1) * options2.spacing[axis.axis];\n\t\treturn totalSizes + totalSpacing;\n\t}\n\tfunction stretchSizesToFitContainer(sizesThisLine, idealRequiredSpace, axis) {\n\t\tconst ascendingMaxSizeOrder = getTraversalOrder(sizesThisLine, axis.maxSize);\n\t\tconst fittingProportions = getNormalizedValues(sizesThisLine, axis.fittingProportion);\n\t\tconst fittingProportionSums = createSumArray(fittingProportions, ascendingMaxSizeOrder);\n\t\tlet remainingUndershoot = availableSpace[axis.axis] - idealRequiredSpace;\n\t\tfor (let i2 = 0; i2 < sizesThisLine.length; ++i2) {\n\t\t\tconst index = ascendingMaxSizeOrder[i2];\n\t\t\tconst targetIncrease = calculateAdjustment(index, remainingUndershoot, fittingProportions, fittingProportionSums);\n\t\t\tconst targetSize = sizesThisLine[index][axis.size] + targetIncrease;\n\t\t\tconst maxSize = sizesThisLine[index][axis.maxSize];\n\t\t\tconst actualSize = Math.min(targetSize, maxSize);\n\t\t\tsizesThisLine[index][axis.size] = actualSize;\n\t\t\tconst actualIncrease = Math.max(targetSize - actualSize, 0);\n\t\t\tconst appliedIncrease = targetIncrease - actualIncrease;\n\t\t\tremainingUndershoot -= appliedIncrease;\n\t\t}\n\t}\n\tfunction shrinkSizesToFitContainer(sizesThisLine, idealRequiredSpace, axis) {\n\t\tconst descendingMinSizeOrder = getTraversalOrder(sizesThisLine, axis.minSize, true);\n\t\tconst fittingProportions = getNormalizedValues(sizesThisLine, axis.fittingProportion);\n\t\tconst inverseFittingProportions = invertNormalizedValues(fittingProportions);\n\t\tconst inverseFittingProportionSums = createSumArray(inverseFittingProportions, descendingMinSizeOrder);\n\t\tlet remainingOvershoot = idealRequiredSpace - availableSpace[axis.axis];\n\t\tfor (let i2 = 0; i2 < sizesThisLine.length; ++i2) {\n\t\t\tconst index = descendingMinSizeOrder[i2];\n\t\t\tconst targetReduction = calculateAdjustment(index, remainingOvershoot, inverseFittingProportions, inverseFittingProportionSums);\n\t\t\tconst targetSize = sizesThisLine[index][axis.size] - targetReduction;\n\t\t\tconst minSize = sizesThisLine[index][axis.minSize];\n\t\t\tconst actualSize = Math.max(targetSize, minSize);\n\t\t\tsizesThisLine[index][axis.size] = actualSize;\n\t\t\tconst actualReduction = Math.max(actualSize - targetSize, 0);\n\t\t\tconst appliedReduction = targetReduction - actualReduction;\n\t\t\tremainingOvershoot -= appliedReduction;\n\t\t}\n\t}\n\tfunction calculateAdjustment(index, remainingAdjustment, fittingProportions, fittingProportionSums) {\n\t\tconst proportion = fittingProportions[index];\n\t\tconst sumOfRemainingProportions = fittingProportionSums[index];\n\t\tif (Math.abs(proportion) < 1e-5 && Math.abs(sumOfRemainingProportions) < 1e-5) {\n\t\t\treturn remainingAdjustment;\n\t\t}\n\t\treturn remainingAdjustment * proportion / sumOfRemainingProportions;\n\t}\n\tfunction calculateBasePositions(lines, sizes) {\n\t\tconst cursor = {};\n\t\tcursor[a.axis] = 0;\n\t\tcursor[b.axis] = 0;\n\t\tlines[a.size] = Number.NEGATIVE_INFINITY;\n\t\tconst positionsAllLines = [];\n\t\tfor (let lineIndex = 0; lineIndex < lines.length; ++lineIndex) {\n\t\t\tconst line = lines[lineIndex];\n\t\t\tif (line.length === 0) {\n\t\t\t\tpositionsAllLines.push([]);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst positionsThisLine = [];\n\t\t\tconst sizesThisLine = sizes[lineIndex];\n\t\t\tfor (let elementIndex = 0; elementIndex < line.length; ++elementIndex) {\n\t\t\t\tconst element = line[elementIndex];\n\t\t\t\tconst sizesThisElement = sizesThisLine[elementIndex];\n\t\t\t\tcursor[b.axis] -= minExtentB(element, sizesThisElement);\n\t\t\t\tcursor[a.axis] -= minExtentA(element, sizesThisElement);\n\t\t\t\tpositionsThisLine[elementIndex] = {};\n\t\t\t\tpositionsThisLine[elementIndex][a.axis] = cursor[a.axis];\n\t\t\t\tpositionsThisLine[elementIndex][b.axis] = cursor[b.axis];\n\t\t\t\tcursor[b.axis] += minExtentB(element, sizesThisElement);\n\t\t\t\tcursor[a.axis] += maxExtentA(element, sizesThisElement) + options2.spacing[a.axis];\n\t\t\t}\n\t\t\tline[a.size] = cursor[a.axis] - options2.spacing[a.axis];\n\t\t\tline[b.size] = line.largestSize[b.size];\n\t\t\tlines[a.size] = Math.max(lines[a.size], line[a.size]);\n\t\t\tcursor[a.axis] = 0;\n\t\t\tcursor[b.axis] += line[b.size] + options2.spacing[b.axis];\n\t\t\tpositionsAllLines.push(positionsThisLine);\n\t\t}\n\t\tlines[b.size] = cursor[b.axis] - options2.spacing[b.axis];\n\t\treturn positionsAllLines;\n\t}\n\tfunction applyAlignmentAndPadding(lines, sizes, positions) {\n\t\tconst alignmentA = options2.alignment[a.axis];\n\t\tconst alignmentB = options2.alignment[b.axis];\n\t\tconst paddingA = options2.padding[a.axis];\n\t\tconst paddingB = options2.padding[b.axis];\n\t\tfor (let lineIndex = 0; lineIndex < lines.length; ++lineIndex) {\n\t\t\tconst line = lines[lineIndex];\n\t\t\tconst sizesThisLine = sizes[lineIndex];\n\t\t\tconst positionsThisLine = positions[lineIndex];\n\t\t\tconst axisAOffset = (availableSpace[a.axis] - line[a.size]) * alignmentA + paddingA;\n\t\t\tconst axisBOffset = (availableSpace[b.axis] - lines[b.size]) * alignmentB + paddingB;\n\t\t\tfor (let elementIndex = 0; elementIndex < line.length; ++elementIndex) {\n\t\t\t\tconst withinLineAxisBOffset = (line[b.size] - sizesThisLine[elementIndex][b.size]) * options2.alignment[b.axis];\n\t\t\t\tpositionsThisLine[elementIndex][a.axis] += axisAOffset;\n\t\t\t\tpositionsThisLine[elementIndex][b.axis] += axisBOffset + withinLineAxisBOffset;\n\t\t\t}\n\t\t}\n\t}\n\tfunction applySizesAndPositions(lines, sizes, positions) {\n\t\tfor (let lineIndex = 0; lineIndex < lines.length; ++lineIndex) {\n\t\t\tconst line = lines[lineIndex];\n\t\t\tconst sizesThisLine = sizes[lineIndex];\n\t\t\tconst positionsThisLine = positions[lineIndex];\n\t\t\tfor (let elementIndex = 0; elementIndex < line.length; ++elementIndex) {\n\t\t\t\tconst element = line[elementIndex];\n\t\t\t\telement[a.calculatedSize] = sizesThisLine[elementIndex][a.size];\n\t\t\t\telement[b.calculatedSize] = sizesThisLine[elementIndex][b.size];\n\t\t\t\tif (options2.orientation === ORIENTATION_HORIZONTAL) {\n\t\t\t\t\telement.entity.setLocalPosition(\n\t\t\t\t\t\tpositionsThisLine[elementIndex][a.axis],\n\t\t\t\t\t\tpositionsThisLine[elementIndex][b.axis],\n\t\t\t\t\t\telement.entity.getLocalPosition().z\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\telement.entity.setLocalPosition(\n\t\t\t\t\t\tpositionsThisLine[elementIndex][b.axis],\n\t\t\t\t\t\tpositionsThisLine[elementIndex][a.axis],\n\t\t\t\t\t\telement.entity.getLocalPosition().z\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tfunction createLayoutInfo(lines) {\n\t\tconst layoutWidth = lines.width;\n\t\tconst layoutHeight = lines.height;\n\t\tconst xOffset = (availableSpace.x - layoutWidth) * options2.alignment.x + options2.padding.x;\n\t\tconst yOffset = (availableSpace.y - layoutHeight) * options2.alignment.y + options2.padding.y;\n\t\treturn {\n\t\t\tbounds: new Vec4(\n\t\t\t\txOffset,\n\t\t\t\tyOffset,\n\t\t\t\tlayoutWidth,\n\t\t\t\tlayoutHeight\n\t\t\t)\n\t\t};\n\t}\n\tfunction getElementSizeProperties(elements) {\n\t\tconst sizeProperties = [];\n\t\tfor (let i2 = 0; i2 < elements.length; ++i2) {\n\t\t\tconst element = elements[i2];\n\t\t\tconst minWidth = Math.max(getProperty(element, \"minWidth\"), 0);\n\t\t\tconst minHeight = Math.max(getProperty(element, \"minHeight\"), 0);\n\t\t\tconst maxWidth = Math.max(getProperty(element, \"maxWidth\"), minWidth);\n\t\t\tconst maxHeight = Math.max(getProperty(element, \"maxHeight\"), minHeight);\n\t\t\tconst width = clamp(getProperty(element, \"width\"), minWidth, maxWidth);\n\t\t\tconst height = clamp(getProperty(element, \"height\"), minHeight, maxHeight);\n\t\t\tconst fitWidthProportion = getProperty(element, \"fitWidthProportion\");\n\t\t\tconst fitHeightProportion = getProperty(element, \"fitHeightProportion\");\n\t\t\tsizeProperties.push({\n\t\t\t\tminWidth,\n\t\t\t\tminHeight,\n\t\t\t\tmaxWidth,\n\t\t\t\tmaxHeight,\n\t\t\t\twidth,\n\t\t\t\theight,\n\t\t\t\tfitWidthProportion,\n\t\t\t\tfitHeightProportion\n\t\t\t});\n\t\t}\n\t\treturn sizeProperties;\n\t}\n\tfunction getProperty(element, propertyName) {\n\t\tconst layoutChildComponent = element.entity.layoutchild;\n\t\tif (layoutChildComponent && layoutChildComponent.enabled && layoutChildComponent[propertyName] !== void 0 && layoutChildComponent[propertyName] !== null) {\n\t\t\treturn layoutChildComponent[propertyName];\n\t\t} else if (element[propertyName] !== void 0) {\n\t\t\treturn element[propertyName];\n\t\t}\n\t\treturn PROPERTY_DEFAULTS[propertyName];\n\t}\n\tfunction clamp(value, min, max) {\n\t\treturn Math.min(Math.max(value, min), max);\n\t}\n\tfunction sumValues(items, propertyName) {\n\t\treturn items.reduce((accumulator, current) => {\n\t\t\treturn accumulator + current[propertyName];\n\t\t}, 0);\n\t}\n\tfunction getNormalizedValues(items, propertyName) {\n\t\tconst sum = sumValues(items, propertyName);\n\t\tconst normalizedValues = [];\n\t\tconst numItems = items.length;\n\t\tif (sum === 0) {\n\t\t\tfor (let i2 = 0; i2 < numItems; ++i2) {\n\t\t\t\tnormalizedValues.push(1 / numItems);\n\t\t\t}\n\t\t} else {\n\t\t\tfor (let i2 = 0; i2 < numItems; ++i2) {\n\t\t\t\tnormalizedValues.push(items[i2][propertyName] / sum);\n\t\t\t}\n\t\t}\n\t\treturn normalizedValues;\n\t}\n\tfunction invertNormalizedValues(values) {\n\t\tif (values.length === 1) {\n\t\t\treturn [1];\n\t\t}\n\t\tconst invertedValues = [];\n\t\tconst numValues = values.length;\n\t\tfor (let i2 = 0; i2 < numValues; ++i2) {\n\t\t\tinvertedValues.push((1 - values[i2]) / (numValues - 1));\n\t\t}\n\t\treturn invertedValues;\n\t}\n\tfunction getTraversalOrder(items, orderBy, descending) {\n\t\titems.forEach(assignIndex);\n\t\treturn items.slice().sort((itemA, itemB) => {\n\t\t\treturn descending ? itemB[orderBy] - itemA[orderBy] : itemA[orderBy] - itemB[orderBy];\n\t\t}).map(getIndex);\n\t}\n\tfunction assignIndex(item, index) {\n\t\titem.index = index;\n\t}\n\tfunction getIndex(item) {\n\t\treturn item.index;\n\t}\n\tfunction createSumArray(values, order) {\n\t\tconst sumArray = [];\n\t\tsumArray[order[values.length - 1]] = values[order[values.length - 1]];\n\t\tfor (let i2 = values.length - 2; i2 >= 0; --i2) {\n\t\t\tsumArray[order[i2]] = sumArray[order[i2 + 1]] + values[order[i2]];\n\t\t}\n\t\treturn sumArray;\n\t}\n\treturn calculateAll;\n}\nvar CALCULATE_FNS = {};\nCALCULATE_FNS[ORIENTATION_HORIZONTAL] = createCalculator(ORIENTATION_HORIZONTAL);\nCALCULATE_FNS[ORIENTATION_VERTICAL] = createCalculator(ORIENTATION_VERTICAL);\nvar LayoutCalculator = class {\n\tcalculateLayout(elements, options2) {\n\t\tconst calculateFn = CALCULATE_FNS[options2.orientation];\n\t\tif (!calculateFn) {\n\t\t\tthrow new Error(`Unrecognized orientation value: ${options2.orientation}`);\n\t\t} else {\n\t\t\treturn calculateFn(elements, options2);\n\t\t}\n\t}\n};\n\nfunction getElement(entity) {\n\treturn entity.element;\n}\nfunction isEnabledAndHasEnabledElement(entity) {\n\treturn entity.enabled && entity.element && entity.element.enabled;\n}\nvar LayoutGroupComponent = class extends Component {\n\t_orientation = ORIENTATION_HORIZONTAL;\n\t_reverseX = false;\n\t_reverseY = true;\n\t_alignment = new Vec2(0, 1);\n\t_padding = new Vec4();\n\t_spacing = new Vec2();\n\t_widthFitting = FITTING_NONE;\n\t_heightFitting = FITTING_NONE;\n\t_wrap = false;\n\t_layoutCalculator = new LayoutCalculator();\n\tconstructor(system, entity) {\n\t\tsuper(system, entity);\n\t\tthis._listenForReflowEvents(this.entity, \"on\");\n\t\tthis.entity.children.forEach((child) => {\n\t\t\tthis._listenForReflowEvents(child, \"on\");\n\t\t});\n\t\tthis.entity.on(\"childinsert\", this._onChildInsert, this);\n\t\tthis.entity.on(\"childremove\", this._onChildRemove, this);\n\t\tsystem.app.systems.element.on(\"add\", this._onElementOrLayoutComponentAdd, this);\n\t\tsystem.app.systems.element.on(\"beforeremove\", this._onElementOrLayoutComponentRemove, this);\n\t\tsystem.app.systems.layoutchild.on(\"add\", this._onElementOrLayoutComponentAdd, this);\n\t\tsystem.app.systems.layoutchild.on(\"beforeremove\", this._onElementOrLayoutComponentRemove, this);\n\t}\n\tset orientation(value) {\n\t\tif (value !== this._orientation) {\n\t\t\tthis._orientation = value;\n\t\t\tthis._scheduleReflow();\n\t\t}\n\t}\n\tget orientation() {\n\t\treturn this._orientation;\n\t}\n\tset reverseX(value) {\n\t\tif (value !== this._reverseX) {\n\t\t\tthis._reverseX = value;\n\t\t\tthis._scheduleReflow();\n\t\t}\n\t}\n\tget reverseX() {\n\t\treturn this._reverseX;\n\t}\n\tset reverseY(value) {\n\t\tif (value !== this._reverseY) {\n\t\t\tthis._reverseY = value;\n\t\t\tthis._scheduleReflow();\n\t\t}\n\t}\n\tget reverseY() {\n\t\treturn this._reverseY;\n\t}\n\tset alignment(value) {\n\t\tif (!value.equals(this._alignment)) {\n\t\t\tthis._alignment.copy(value);\n\t\t\tthis._scheduleReflow();\n\t\t}\n\t}\n\tget alignment() {\n\t\treturn this._alignment;\n\t}\n\tset padding(value) {\n\t\tif (!value.equals(this._padding)) {\n\t\t\tthis._padding.copy(value);\n\t\t\tthis._scheduleReflow();\n\t\t}\n\t}\n\tget padding() {\n\t\treturn this._padding;\n\t}\n\tset spacing(value) {\n\t\tif (!value.equals(this._spacing)) {\n\t\t\tthis._spacing.copy(value);\n\t\t\tthis._scheduleReflow();\n\t\t}\n\t}\n\tget spacing() {\n\t\treturn this._spacing;\n\t}\n\tset widthFitting(value) {\n\t\tif (value !== this._widthFitting) {\n\t\t\tthis._widthFitting = value;\n\t\t\tthis._scheduleReflow();\n\t\t}\n\t}\n\tget widthFitting() {\n\t\treturn this._widthFitting;\n\t}\n\tset heightFitting(value) {\n\t\tif (value !== this._heightFitting) {\n\t\t\tthis._heightFitting = value;\n\t\t\tthis._scheduleReflow();\n\t\t}\n\t}\n\tget heightFitting() {\n\t\treturn this._heightFitting;\n\t}\n\tset wrap(value) {\n\t\tif (value !== this._wrap) {\n\t\t\tthis._wrap = value;\n\t\t\tthis._scheduleReflow();\n\t\t}\n\t}\n\tget wrap() {\n\t\treturn this._wrap;\n\t}\n\t_isSelfOrChild(entity) {\n\t\treturn entity === this.entity || this.entity.children.indexOf(entity) !== -1;\n\t}\n\t_listenForReflowEvents(target2, onOff) {\n\t\tif (target2.element) {\n\t\t\ttarget2.element[onOff](\"enableelement\", this._scheduleReflow, this);\n\t\t\ttarget2.element[onOff](\"disableelement\", this._scheduleReflow, this);\n\t\t\ttarget2.element[onOff](\"resize\", this._scheduleReflow, this);\n\t\t\ttarget2.element[onOff](\"set:pivot\", this._scheduleReflow, this);\n\t\t}\n\t\tif (target2.layoutchild) {\n\t\t\ttarget2.layoutchild[onOff](\"set_enabled\", this._scheduleReflow, this);\n\t\t\ttarget2.layoutchild[onOff](\"resize\", this._scheduleReflow, this);\n\t\t}\n\t}\n\t_onElementOrLayoutComponentAdd(entity) {\n\t\tif (this._isSelfOrChild(entity)) {\n\t\t\tthis._listenForReflowEvents(entity, \"on\");\n\t\t\tthis._scheduleReflow();\n\t\t}\n\t}\n\t_onElementOrLayoutComponentRemove(entity) {\n\t\tif (this._isSelfOrChild(entity)) {\n\t\t\tthis._listenForReflowEvents(entity, \"off\");\n\t\t\tthis._scheduleReflow();\n\t\t}\n\t}\n\t_onChildInsert(child) {\n\t\tthis._listenForReflowEvents(child, \"on\");\n\t\tthis._scheduleReflow();\n\t}\n\t_onChildRemove(child) {\n\t\tthis._listenForReflowEvents(child, \"off\");\n\t\tthis._scheduleReflow();\n\t}\n\t_scheduleReflow() {\n\t\tif (this.enabled && this.entity && this.entity.enabled && !this._isPerformingReflow) {\n\t\t\tthis.system.scheduleReflow(this);\n\t\t}\n\t}\n\treflow() {\n\t\tconst container = getElement(this.entity);\n\t\tconst elements = this.entity.children.filter(isEnabledAndHasEnabledElement).map(getElement);\n\t\tif (!container || elements.length === 0) {\n\t\t\treturn;\n\t\t}\n\t\tconst containerWidth = Math.max(container.calculatedWidth, 0);\n\t\tconst containerHeight = Math.max(container.calculatedHeight, 0);\n\t\tconst options2 = {\n\t\t\torientation: this._orientation,\n\t\t\treverseX: this._reverseX,\n\t\t\treverseY: this._reverseY,\n\t\t\talignment: this._alignment,\n\t\t\tpadding: this._padding,\n\t\t\tspacing: this._spacing,\n\t\t\twidthFitting: this._widthFitting,\n\t\t\theightFitting: this._heightFitting,\n\t\t\twrap: this._wrap,\n\t\t\tcontainerSize: new Vec2(containerWidth, containerHeight)\n\t\t};\n\t\tthis._isPerformingReflow = true;\n\t\tconst layoutInfo = this._layoutCalculator.calculateLayout(elements, options2);\n\t\tthis._isPerformingReflow = false;\n\t\tthis.fire(\"reflow\", layoutInfo);\n\t}\n\tonEnable() {\n\t\tthis._scheduleReflow();\n\t}\n\tonBeforeRemove() {\n\t\tthis.entity.off(\"childinsert\", this._onChildInsert, this);\n\t\tthis.entity.off(\"childremove\", this._onChildRemove, this);\n\t\tthis._listenForReflowEvents(this.entity, \"off\");\n\t\tthis.entity.children.forEach((child) => {\n\t\t\tthis._listenForReflowEvents(child, \"off\");\n\t\t});\n\t\tthis.system.app.systems.element.off(\"add\", this._onElementOrLayoutComponentAdd, this);\n\t\tthis.system.app.systems.element.off(\"beforeremove\", this._onElementOrLayoutComponentRemove, this);\n\t\tthis.system.app.systems.layoutchild.off(\"add\", this._onElementOrLayoutComponentAdd, this);\n\t\tthis.system.app.systems.layoutchild.off(\"beforeremove\", this._onElementOrLayoutComponentRemove, this);\n\t}\n};\n\nvar MAX_ITERATIONS = 100;\nvar LayoutGroupComponentSystem = class extends ComponentSystem {\n\tconstructor(app2) {\n\t\tsuper(app2);\n\t\tthis.id = \"layoutgroup\";\n\t\tthis.ComponentType = LayoutGroupComponent;\n\t\tthis._reflowQueue = [];\n\t\tthis.on(\"beforeremove\", this.onBeforeRemove, this);\n\t\tthis.app.systems.on(\"postUpdate\", this._onPostUpdate, this);\n\t}\n\tinitializeComponentData(component, data2, properties) {\n\t\tif (data2.enabled !== void 0) component.enabled = data2.enabled;\n\t\tif (data2.orientation !== void 0) component.orientation = data2.orientation;\n\t\tif (data2.reverseX !== void 0) component.reverseX = data2.reverseX;\n\t\tif (data2.reverseY !== void 0) component.reverseY = data2.reverseY;\n\t\tif (data2.alignment !== void 0) {\n\t\t\tcomponent.alignment = Array.isArray(data2.alignment) ? new Vec2(data2.alignment) : data2.alignment;\n\t\t}\n\t\tif (data2.padding !== void 0) {\n\t\t\tcomponent.padding = Array.isArray(data2.padding) ? new Vec4(data2.padding) : data2.padding;\n\t\t}\n\t\tif (data2.spacing !== void 0) {\n\t\t\tcomponent.spacing = Array.isArray(data2.spacing) ? new Vec2(data2.spacing) : data2.spacing;\n\t\t}\n\t\tif (data2.widthFitting !== void 0) component.widthFitting = data2.widthFitting;\n\t\tif (data2.heightFitting !== void 0) component.heightFitting = data2.heightFitting;\n\t\tif (data2.wrap !== void 0) component.wrap = data2.wrap;\n\t\tsuper.initializeComponentData(component, data2, []);\n\t}\n\tcloneComponent(entity, clone) {\n\t\tconst layoutGroup = entity.layoutgroup;\n\t\treturn this.addComponent(clone, {\n\t\t\tenabled: layoutGroup.enabled,\n\t\t\torientation: layoutGroup.orientation,\n\t\t\treverseX: layoutGroup.reverseX,\n\t\t\treverseY: layoutGroup.reverseY,\n\t\t\talignment: layoutGroup.alignment,\n\t\t\tpadding: layoutGroup.padding,\n\t\t\tspacing: layoutGroup.spacing,\n\t\t\twidthFitting: layoutGroup.widthFitting,\n\t\t\theightFitting: layoutGroup.heightFitting,\n\t\t\twrap: layoutGroup.wrap\n\t\t});\n\t}\n\tscheduleReflow(component) {\n\t\tif (this._reflowQueue.indexOf(component) === -1) {\n\t\t\tthis._reflowQueue.push(component);\n\t\t}\n\t}\n\t_onPostUpdate() {\n\t\tthis._processReflowQueue();\n\t}\n\t_processReflowQueue() {\n\t\tif (this._reflowQueue.length === 0) {\n\t\t\treturn;\n\t\t}\n\t\tlet iterationCount = 0;\n\t\twhile (this._reflowQueue.length > 0) {\n\t\t\tconst queue2 = this._reflowQueue.slice();\n\t\t\tthis._reflowQueue.length = 0;\n\t\t\tqueue2.sort((componentA, componentB) => {\n\t\t\t\treturn componentA.entity.graphDepth - componentB.entity.graphDepth;\n\t\t\t});\n\t\t\tfor (let i2 = 0; i2 < queue2.length; ++i2) {\n\t\t\t\tqueue2[i2].reflow();\n\t\t\t}\n\t\t\tif (++iterationCount >= MAX_ITERATIONS) {\n\t\t\t\tconsole.warn(\"Max reflow iterations limit reached, bailing.\");\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tonBeforeRemove(entity, component) {\n\t\tcomponent.onBeforeRemove();\n\t}\n\tdestroy() {\n\t\tsuper.destroy();\n\t\tthis.app.systems.off(\"postUpdate\", this._onPostUpdate, this);\n\t}\n};\n\nvar PrimitivesCache = class {\n\tmap = /* @__PURE__ */ new Map();\n\t// destroy all created primitives when the device is destroyed\n\tdestroy(device) {\n\t\tthis.map.forEach((primData) => primData.mesh.destroy());\n\t}\n};\nvar _primitivesCache = new DeviceCache();\nvar getShapePrimitive = (device, type) => {\n\tconst cache = _primitivesCache.get(device, () => {\n\t\treturn new PrimitivesCache();\n\t});\n\tlet primData = cache.map.get(type);\n\tif (!primData) {\n\t\tlet mesh, area;\n\t\tswitch (type) {\n\t\t\tcase \"box\":\n\t\t\t\tmesh = Mesh.fromGeometry(device, new BoxGeometry());\n\t\t\t\tarea = { x: 2, y: 2, z: 2, uv: 2 / 3 };\n\t\t\t\tbreak;\n\t\t\tcase \"capsule\":\n\t\t\t\tmesh = Mesh.fromGeometry(device, new CapsuleGeometry({ radius: 0.5, height: 2 }));\n\t\t\t\tarea = { x: Math.PI * 2, y: Math.PI, z: Math.PI * 2, uv: 1 / 3 + 1 / 3 / 3 * 2 };\n\t\t\t\tbreak;\n\t\t\tcase \"cone\":\n\t\t\t\tmesh = Mesh.fromGeometry(device, new ConeGeometry({ baseRadius: 0.5, peakRadius: 0, height: 1 }));\n\t\t\t\tarea = { x: 2.54, y: 2.54, z: 2.54, uv: 1 / 3 + 1 / 3 / 3 };\n\t\t\t\tbreak;\n\t\t\tcase \"cylinder\":\n\t\t\t\tmesh = Mesh.fromGeometry(device, new CylinderGeometry({ radius: 0.5, height: 1 }));\n\t\t\t\tarea = { x: Math.PI, y: 0.79 * 2, z: Math.PI, uv: 1 / 3 + 1 / 3 / 3 * 2 };\n\t\t\t\tbreak;\n\t\t\tcase \"plane\":\n\t\t\t\tmesh = Mesh.fromGeometry(device, new PlaneGeometry({ halfExtents: new Vec2(0.5, 0.5), widthSegments: 1, lengthSegments: 1 }));\n\t\t\t\tarea = { x: 0, y: 1, z: 0, uv: 1 };\n\t\t\t\tbreak;\n\t\t\tcase \"sphere\":\n\t\t\t\tmesh = Mesh.fromGeometry(device, new SphereGeometry({ radius: 0.5 }));\n\t\t\t\tarea = { x: Math.PI, y: Math.PI, z: Math.PI, uv: 1 };\n\t\t\t\tbreak;\n\t\t\tcase \"torus\":\n\t\t\t\tmesh = Mesh.fromGeometry(device, new TorusGeometry({ tubeRadius: 0.2, ringRadius: 0.3 }));\n\t\t\t\tarea = { x: Math.PI * 0.5 * 0.5 - Math.PI * 0.1 * 0.1, y: 0.4, z: 0.4, uv: 1 };\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthrow new Error(`Invalid primitive type: ${type}`);\n\t\t}\n\t\tmesh.incRefCount();\n\t\tprimData = { mesh, area };\n\t\tcache.map.set(type, primData);\n\t}\n\treturn primData;\n};\n\nvar ModelComponent = class extends Component {\n\t_type = \"asset\";\n\t_asset = null;\n\t_model = null;\n\t_mapping = {};\n\t_castShadows = true;\n\t_receiveShadows = true;\n\t_materialAsset = null;\n\t_material;\n\t_castShadowsLightmap = true;\n\t_lightmapped = false;\n\t_lightmapSizeMultiplier = 1;\n\tisStatic = false;\n\t_layers = [LAYERID_WORLD];\n\t// assign to the default world layer\n\t_batchGroupId = -1;\n\t_customAabb = null;\n\t_area = null;\n\t_materialEvents = null;\n\t_clonedModel = false;\n\t_evtLayersChanged = null;\n\t_evtLayerAdded = null;\n\t_evtLayerRemoved = null;\n\tconstructor(system, entity) {\n\t\tsuper(system, entity);\n\t\tthis._material = system.defaultMaterial;\n\t\tentity.on(\"remove\", this.onRemoveChild, this);\n\t\tentity.on(\"removehierarchy\", this.onRemoveChild, this);\n\t\tentity.on(\"insert\", this.onInsertChild, this);\n\t\tentity.on(\"inserthierarchy\", this.onInsertChild, this);\n\t}\n\tset meshInstances(value) {\n\t\tif (!this._model) {\n\t\t\treturn;\n\t\t}\n\t\tthis._model.meshInstances = value;\n\t}\n\tget meshInstances() {\n\t\tif (!this._model) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this._model.meshInstances;\n\t}\n\tset customAabb(value) {\n\t\tthis._customAabb = value;\n\t\tif (this._model) {\n\t\t\tconst mi = this._model.meshInstances;\n\t\t\tif (mi) {\n\t\t\t\tfor (let i2 = 0; i2 < mi.length; i2++) {\n\t\t\t\t\tmi[i2].setCustomAabb(this._customAabb);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tget customAabb() {\n\t\treturn this._customAabb;\n\t}\n\tset type(value) {\n\t\tif (this._type === value) return;\n\t\tthis._area = null;\n\t\tthis._type = value;\n\t\tif (value === \"asset\") {\n\t\t\tif (this._asset !== null) {\n\t\t\t\tthis._bindModelAsset(this._asset);\n\t\t\t} else {\n\t\t\t\tthis.model = null;\n\t\t\t}\n\t\t} else {\n\t\t\tconst primData = getShapePrimitive(this.system.app.graphicsDevice, value);\n\t\t\tthis._area = primData.area;\n\t\t\tconst mesh = primData.mesh;\n\t\t\tconst node = new GraphNode();\n\t\t\tconst model = new Model();\n\t\t\tmodel.graph = node;\n\t\t\tmodel.meshInstances = [new MeshInstance(mesh, this._material, node)];\n\t\t\tthis.model = model;\n\t\t\tthis._asset = null;\n\t\t}\n\t}\n\tget type() {\n\t\treturn this._type;\n\t}\n\tset asset(value) {\n\t\tconst assets = this.system.app.assets;\n\t\tlet _id = value;\n\t\tif (value instanceof Asset) {\n\t\t\t_id = value.id;\n\t\t}\n\t\tif (this._asset !== _id) {\n\t\t\tif (this._asset) {\n\t\t\t\tassets.off(`add:${this._asset}`, this._onModelAssetAdded, this);\n\t\t\t\tconst _prev = assets.get(this._asset);\n\t\t\t\tif (_prev) {\n\t\t\t\t\tthis._unbindModelAsset(_prev);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._asset = _id;\n\t\t\tif (this._asset) {\n\t\t\t\tconst asset = assets.get(this._asset);\n\t\t\t\tif (!asset) {\n\t\t\t\t\tthis.model = null;\n\t\t\t\t\tassets.on(`add:${this._asset}`, this._onModelAssetAdded, this);\n\t\t\t\t} else {\n\t\t\t\t\tthis._bindModelAsset(asset);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.model = null;\n\t\t\t}\n\t\t}\n\t}\n\tget asset() {\n\t\treturn this._asset;\n\t}\n\tset model(value) {\n\t\tif (this._model === value) {\n\t\t\treturn;\n\t\t}\n\t\tif (value && value._immutable) {\n\t\t\treturn;\n\t\t}\n\t\tif (this._model) {\n\t\t\tthis._model._immutable = false;\n\t\t\tthis.removeModelFromLayers();\n\t\t\tthis._model.getGraph().destroy();\n\t\t\tdelete this._model._entity;\n\t\t\tif (this._clonedModel) {\n\t\t\t\tthis._model.destroy();\n\t\t\t\tthis._clonedModel = false;\n\t\t\t}\n\t\t}\n\t\tthis._model = value;\n\t\tif (this._model) {\n\t\t\tthis._model._immutable = true;\n\t\t\tconst meshInstances = this._model.meshInstances;\n\t\t\tfor (let i2 = 0; i2 < meshInstances.length; i2++) {\n\t\t\t\tmeshInstances[i2].castShadow = this._castShadows;\n\t\t\t\tmeshInstances[i2].receiveShadow = this._receiveShadows;\n\t\t\t\tmeshInstances[i2].setCustomAabb(this._customAabb);\n\t\t\t}\n\t\t\tthis.lightmapped = this._lightmapped;\n\t\t\tthis.entity.addChild(this._model.graph);\n\t\t\tif (this.enabled && this.entity.enabled) {\n\t\t\t\tthis.addModelToLayers();\n\t\t\t}\n\t\t\tthis._model._entity = this.entity;\n\t\t\tif (this.entity.animation) {\n\t\t\t\tthis.entity.animation.setModel(this._model);\n\t\t\t}\n\t\t\tif (this.entity.anim) {\n\t\t\t\tthis.entity.anim.rebind();\n\t\t\t}\n\t\t\tif (this.type === \"asset\") {\n\t\t\t\tthis.mapping = this._mapping;\n\t\t\t} else {\n\t\t\t\tthis._unsetMaterialEvents();\n\t\t\t}\n\t\t}\n\t}\n\tget model() {\n\t\treturn this._model;\n\t}\n\tset lightmapped(value) {\n\t\tif (value !== this._lightmapped) {\n\t\t\tthis._lightmapped = value;\n\t\t\tif (this._model) {\n\t\t\t\tconst mi = this._model.meshInstances;\n\t\t\t\tfor (let i2 = 0; i2 < mi.length; i2++) {\n\t\t\t\t\tmi[i2].setLightmapped(value);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tget lightmapped() {\n\t\treturn this._lightmapped;\n\t}\n\tset castShadows(value) {\n\t\tif (this._castShadows === value) return;\n\t\tconst model = this._model;\n\t\tif (model) {\n\t\t\tconst layers = this.layers;\n\t\t\tconst scene = this.system.app.scene;\n\t\t\tif (this._castShadows && !value) {\n\t\t\t\tfor (let i2 = 0; i2 < layers.length; i2++) {\n\t\t\t\t\tconst layer = this.system.app.scene.layers.getLayerById(this.layers[i2]);\n\t\t\t\t\tif (!layer) continue;\n\t\t\t\t\tlayer.removeShadowCasters(model.meshInstances);\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst meshInstances = model.meshInstances;\n\t\t\tfor (let i2 = 0; i2 < meshInstances.length; i2++) {\n\t\t\t\tmeshInstances[i2].castShadow = value;\n\t\t\t}\n\t\t\tif (!this._castShadows && value) {\n\t\t\t\tfor (let i2 = 0; i2 < layers.length; i2++) {\n\t\t\t\t\tconst layer = scene.layers.getLayerById(layers[i2]);\n\t\t\t\t\tif (!layer) continue;\n\t\t\t\t\tlayer.addShadowCasters(model.meshInstances);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis._castShadows = value;\n\t}\n\tget castShadows() {\n\t\treturn this._castShadows;\n\t}\n\tset receiveShadows(value) {\n\t\tif (this._receiveShadows === value) return;\n\t\tthis._receiveShadows = value;\n\t\tif (this._model) {\n\t\t\tconst meshInstances = this._model.meshInstances;\n\t\t\tfor (let i2 = 0, len = meshInstances.length; i2 < len; i2++) {\n\t\t\t\tmeshInstances[i2].receiveShadow = value;\n\t\t\t}\n\t\t}\n\t}\n\tget receiveShadows() {\n\t\treturn this._receiveShadows;\n\t}\n\tset castShadowsLightmap(value) {\n\t\tthis._castShadowsLightmap = value;\n\t}\n\tget castShadowsLightmap() {\n\t\treturn this._castShadowsLightmap;\n\t}\n\tset lightmapSizeMultiplier(value) {\n\t\tthis._lightmapSizeMultiplier = value;\n\t}\n\tget lightmapSizeMultiplier() {\n\t\treturn this._lightmapSizeMultiplier;\n\t}\n\tset layers(value) {\n\t\tconst layers = this.system.app.scene.layers;\n\t\tif (this.meshInstances) {\n\t\t\tfor (let i2 = 0; i2 < this._layers.length; i2++) {\n\t\t\t\tconst layer = layers.getLayerById(this._layers[i2]);\n\t\t\t\tif (!layer) continue;\n\t\t\t\tlayer.removeMeshInstances(this.meshInstances);\n\t\t\t}\n\t\t}\n\t\tthis._layers.length = 0;\n\t\tfor (let i2 = 0; i2 < value.length; i2++) {\n\t\t\tthis._layers[i2] = value[i2];\n\t\t}\n\t\tif (!this.enabled || !this.entity.enabled || !this.meshInstances) return;\n\t\tfor (let i2 = 0; i2 < this._layers.length; i2++) {\n\t\t\tconst layer = layers.getLayerById(this._layers[i2]);\n\t\t\tif (!layer) continue;\n\t\t\tlayer.addMeshInstances(this.meshInstances);\n\t\t}\n\t}\n\tget layers() {\n\t\treturn this._layers;\n\t}\n\tset batchGroupId(value) {\n\t\tif (this._batchGroupId === value) return;\n\t\tif (this.entity.enabled && this._batchGroupId >= 0) {\n\t\t\tthis.system.app.batcher?.remove(BatchGroup.MODEL, this.batchGroupId, this.entity);\n\t\t}\n\t\tif (this.entity.enabled && value >= 0) {\n\t\t\tthis.system.app.batcher?.insert(BatchGroup.MODEL, value, this.entity);\n\t\t}\n\t\tif (value < 0 && this._batchGroupId >= 0 && this.enabled && this.entity.enabled) {\n\t\t\tthis.addModelToLayers();\n\t\t}\n\t\tthis._batchGroupId = value;\n\t}\n\tget batchGroupId() {\n\t\treturn this._batchGroupId;\n\t}\n\tset materialAsset(value) {\n\t\tlet _id = value;\n\t\tif (value instanceof Asset) {\n\t\t\t_id = value.id;\n\t\t}\n\t\tconst assets = this.system.app.assets;\n\t\tif (_id !== this._materialAsset) {\n\t\t\tif (this._materialAsset) {\n\t\t\t\tassets.off(`add:${this._materialAsset}`, this._onMaterialAssetAdd, this);\n\t\t\t\tconst _prev = assets.get(this._materialAsset);\n\t\t\t\tif (_prev) {\n\t\t\t\t\tthis._unbindMaterialAsset(_prev);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._materialAsset = _id;\n\t\t\tif (this._materialAsset) {\n\t\t\t\tconst asset = assets.get(this._materialAsset);\n\t\t\t\tif (!asset) {\n\t\t\t\t\tthis._setMaterial(this.system.defaultMaterial);\n\t\t\t\t\tassets.on(`add:${this._materialAsset}`, this._onMaterialAssetAdd, this);\n\t\t\t\t} else {\n\t\t\t\t\tthis._bindMaterialAsset(asset);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis._setMaterial(this.system.defaultMaterial);\n\t\t\t}\n\t\t}\n\t}\n\tget materialAsset() {\n\t\treturn this._materialAsset;\n\t}\n\tset material(value) {\n\t\tif (this._material === value) {\n\t\t\treturn;\n\t\t}\n\t\tthis.materialAsset = null;\n\t\tthis._setMaterial(value);\n\t}\n\tget material() {\n\t\treturn this._material;\n\t}\n\tset mapping(value) {\n\t\tif (this._type !== \"asset\") {\n\t\t\treturn;\n\t\t}\n\t\tthis._unsetMaterialEvents();\n\t\tif (!value) {\n\t\t\tvalue = {};\n\t\t}\n\t\tthis._mapping = value;\n\t\tif (!this._model) return;\n\t\tconst meshInstances = this._model.meshInstances;\n\t\tconst modelAsset = this.asset ? this.system.app.assets.get(this.asset) : null;\n\t\tconst assetMapping = modelAsset ? modelAsset.data.mapping : null;\n\t\tlet asset = null;\n\t\tfor (let i2 = 0, len = meshInstances.length; i2 < len; i2++) {\n\t\t\tif (value[i2] !== void 0) {\n\t\t\t\tif (value[i2]) {\n\t\t\t\t\tasset = this.system.app.assets.get(value[i2]);\n\t\t\t\t\tthis._loadAndSetMeshInstanceMaterial(asset, meshInstances[i2], i2);\n\t\t\t\t} else {\n\t\t\t\t\tmeshInstances[i2].material = this.system.defaultMaterial;\n\t\t\t\t}\n\t\t\t} else if (assetMapping) {\n\t\t\t\tif (assetMapping[i2] && (assetMapping[i2].material || assetMapping[i2].path)) {\n\t\t\t\t\tif (assetMapping[i2].material !== void 0) {\n\t\t\t\t\t\tasset = this.system.app.assets.get(assetMapping[i2].material);\n\t\t\t\t\t} else if (assetMapping[i2].path !== void 0) {\n\t\t\t\t\t\tconst url = this._getMaterialAssetUrl(assetMapping[i2].path);\n\t\t\t\t\t\tif (url) {\n\t\t\t\t\t\t\tasset = this.system.app.assets.getByUrl(url);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tthis._loadAndSetMeshInstanceMaterial(asset, meshInstances[i2], i2);\n\t\t\t\t} else {\n\t\t\t\t\tmeshInstances[i2].material = this.system.defaultMaterial;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tget mapping() {\n\t\treturn this._mapping;\n\t}\n\taddModelToLayers() {\n\t\tconst layers = this.system.app.scene.layers;\n\t\tfor (let i2 = 0; i2 < this._layers.length; i2++) {\n\t\t\tconst layer = layers.getLayerById(this._layers[i2]);\n\t\t\tif (layer) {\n\t\t\t\tlayer.addMeshInstances(this.meshInstances);\n\t\t\t}\n\t\t}\n\t}\n\tremoveModelFromLayers() {\n\t\tconst layers = this.system.app.scene.layers;\n\t\tfor (let i2 = 0; i2 < this._layers.length; i2++) {\n\t\t\tconst layer = layers.getLayerById(this._layers[i2]);\n\t\t\tif (!layer) continue;\n\t\t\tlayer.removeMeshInstances(this.meshInstances);\n\t\t}\n\t}\n\tonRemoveChild() {\n\t\tif (this._model) {\n\t\t\tthis.removeModelFromLayers();\n\t\t}\n\t}\n\tonInsertChild() {\n\t\tif (this._model && this.enabled && this.entity.enabled) {\n\t\t\tthis.addModelToLayers();\n\t\t}\n\t}\n\tonBeforeRemove() {\n\t\tif (this.enabled && this.entity.enabled) {\n\t\t\tthis.onDisable();\n\t\t}\n\t\tthis.asset = null;\n\t\tthis.model = null;\n\t\tthis.materialAsset = null;\n\t\tthis._unsetMaterialEvents();\n\t\tthis.entity.off(\"remove\", this.onRemoveChild, this);\n\t\tthis.entity.off(\"removehierarchy\", this.onRemoveChild, this);\n\t\tthis.entity.off(\"insert\", this.onInsertChild, this);\n\t\tthis.entity.off(\"inserthierarchy\", this.onInsertChild, this);\n\t}\n\tonLayersChanged(oldComp, newComp) {\n\t\tthis.addModelToLayers();\n\t\tthis._evtLayerAdded?.off();\n\t\tthis._evtLayerAdded = newComp.on(\"add\", this.onLayerAdded, this);\n\t\tthis._evtLayerRemoved?.off();\n\t\tthis._evtLayerRemoved = newComp.on(\"remove\", this.onLayerRemoved, this);\n\t}\n\tonLayerAdded(layer) {\n\t\tconst index = this.layers.indexOf(layer.id);\n\t\tif (index < 0) return;\n\t\tlayer.addMeshInstances(this.meshInstances);\n\t}\n\tonLayerRemoved(layer) {\n\t\tconst index = this.layers.indexOf(layer.id);\n\t\tif (index < 0) return;\n\t\tlayer.removeMeshInstances(this.meshInstances);\n\t}\n\t_setMaterialEvent(index, event, id14, handler) {\n\t\tconst evt = `${event}:${id14}`;\n\t\tthis.system.app.assets.on(evt, handler, this);\n\t\tif (!this._materialEvents) {\n\t\t\tthis._materialEvents = [];\n\t\t}\n\t\tif (!this._materialEvents[index]) {\n\t\t\tthis._materialEvents[index] = {};\n\t\t}\n\t\tthis._materialEvents[index][evt] = {\n\t\t\tid: id14,\n\t\t\thandler\n\t\t};\n\t}\n\t_unsetMaterialEvents() {\n\t\tconst assets = this.system.app.assets;\n\t\tconst events = this._materialEvents;\n\t\tif (!events) {\n\t\t\treturn;\n\t\t}\n\t\tfor (let i2 = 0, len = events.length; i2 < len; i2++) {\n\t\t\tif (!events[i2]) continue;\n\t\t\tconst evt = events[i2];\n\t\t\tfor (const key in evt) {\n\t\t\t\tassets.off(key, evt[key].handler, this);\n\t\t\t}\n\t\t}\n\t\tthis._materialEvents = null;\n\t}\n\t_getAssetByIdOrPath(idOrPath) {\n\t\tlet asset = null;\n\t\tconst isPath = isNaN(parseInt(idOrPath, 10));\n\t\tif (!isPath) {\n\t\t\tasset = this.system.app.assets.get(idOrPath);\n\t\t} else if (this.asset) {\n\t\t\tconst url = this._getMaterialAssetUrl(idOrPath);\n\t\t\tif (url) {\n\t\t\t\tasset = this.system.app.assets.getByUrl(url);\n\t\t\t}\n\t\t}\n\t\treturn asset;\n\t}\n\t_getMaterialAssetUrl(path2) {\n\t\tif (!this.asset) return null;\n\t\tconst modelAsset = this.system.app.assets.get(this.asset);\n\t\treturn modelAsset ? modelAsset.getAbsoluteUrl(path2) : null;\n\t}\n\t_loadAndSetMeshInstanceMaterial(materialAsset, meshInstance, index) {\n\t\tconst assets = this.system.app.assets;\n\t\tif (!materialAsset) {\n\t\t\treturn;\n\t\t}\n\t\tif (materialAsset.resource) {\n\t\t\tmeshInstance.material = materialAsset.resource;\n\t\t\tthis._setMaterialEvent(index, \"remove\", materialAsset.id, function() {\n\t\t\t\tmeshInstance.material = this.system.defaultMaterial;\n\t\t\t});\n\t\t} else {\n\t\t\tthis._setMaterialEvent(index, \"load\", materialAsset.id, function(asset) {\n\t\t\t\tmeshInstance.material = asset.resource;\n\t\t\t\tthis._setMaterialEvent(index, \"remove\", materialAsset.id, function() {\n\t\t\t\t\tmeshInstance.material = this.system.defaultMaterial;\n\t\t\t\t});\n\t\t\t});\n\t\t\tif (this.enabled && this.entity.enabled) {\n\t\t\t\tassets.load(materialAsset);\n\t\t\t}\n\t\t}\n\t}\n\tonEnable() {\n\t\tconst app2 = this.system.app;\n\t\tconst scene = app2.scene;\n\t\tconst layers = scene?.layers;\n\t\tthis._evtLayersChanged = scene.on(\"set:layers\", this.onLayersChanged, this);\n\t\tif (layers) {\n\t\t\tthis._evtLayerAdded = layers.on(\"add\", this.onLayerAdded, this);\n\t\t\tthis._evtLayerRemoved = layers.on(\"remove\", this.onLayerRemoved, this);\n\t\t}\n\t\tconst isAsset = this._type === \"asset\";\n\t\tlet asset;\n\t\tif (this._model) {\n\t\t\tthis.addModelToLayers();\n\t\t} else if (isAsset && this._asset) {\n\t\t\tasset = app2.assets.get(this._asset);\n\t\t\tif (asset && asset.resource !== this._model) {\n\t\t\t\tthis._bindModelAsset(asset);\n\t\t\t}\n\t\t}\n\t\tif (this._materialAsset) {\n\t\t\tasset = app2.assets.get(this._materialAsset);\n\t\t\tif (asset && asset.resource !== this._material) {\n\t\t\t\tthis._bindMaterialAsset(asset);\n\t\t\t}\n\t\t}\n\t\tif (isAsset) {\n\t\t\tif (this._mapping) {\n\t\t\t\tfor (const index in this._mapping) {\n\t\t\t\t\tif (this._mapping[index]) {\n\t\t\t\t\t\tasset = this._getAssetByIdOrPath(this._mapping[index]);\n\t\t\t\t\t\tif (asset && !asset.resource) {\n\t\t\t\t\t\t\tapp2.assets.load(asset);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (this._batchGroupId >= 0) {\n\t\t\tapp2.batcher?.insert(BatchGroup.MODEL, this.batchGroupId, this.entity);\n\t\t}\n\t}\n\tonDisable() {\n\t\tconst app2 = this.system.app;\n\t\tconst scene = app2.scene;\n\t\tconst layers = scene.layers;\n\t\tthis._evtLayersChanged?.off();\n\t\tthis._evtLayersChanged = null;\n\t\tif (layers) {\n\t\t\tthis._evtLayerAdded?.off();\n\t\t\tthis._evtLayerAdded = null;\n\t\t\tthis._evtLayerRemoved?.off();\n\t\t\tthis._evtLayerRemoved = null;\n\t\t}\n\t\tif (this._batchGroupId >= 0) {\n\t\t\tapp2.batcher?.remove(BatchGroup.MODEL, this.batchGroupId, this.entity);\n\t\t}\n\t\tif (this._model) {\n\t\t\tthis.removeModelFromLayers();\n\t\t}\n\t}\n\thide() {\n\t\tif (this._model) {\n\t\t\tconst instances = this._model.meshInstances;\n\t\t\tfor (let i2 = 0, l = instances.length; i2 < l; i2++) {\n\t\t\t\tinstances[i2].visible = false;\n\t\t\t}\n\t\t}\n\t}\n\tshow() {\n\t\tif (this._model) {\n\t\t\tconst instances = this._model.meshInstances;\n\t\t\tfor (let i2 = 0, l = instances.length; i2 < l; i2++) {\n\t\t\t\tinstances[i2].visible = true;\n\t\t\t}\n\t\t}\n\t}\n\t_bindMaterialAsset(asset) {\n\t\tasset.on(\"load\", this._onMaterialAssetLoad, this);\n\t\tasset.on(\"unload\", this._onMaterialAssetUnload, this);\n\t\tasset.on(\"remove\", this._onMaterialAssetRemove, this);\n\t\tasset.on(\"change\", this._onMaterialAssetChange, this);\n\t\tif (asset.resource) {\n\t\t\tthis._onMaterialAssetLoad(asset);\n\t\t} else {\n\t\t\tif (!this.enabled || !this.entity.enabled) return;\n\t\t\tthis.system.app.assets.load(asset);\n\t\t}\n\t}\n\t_unbindMaterialAsset(asset) {\n\t\tasset.off(\"load\", this._onMaterialAssetLoad, this);\n\t\tasset.off(\"unload\", this._onMaterialAssetUnload, this);\n\t\tasset.off(\"remove\", this._onMaterialAssetRemove, this);\n\t\tasset.off(\"change\", this._onMaterialAssetChange, this);\n\t}\n\t_onMaterialAssetAdd(asset) {\n\t\tthis.system.app.assets.off(`add:${asset.id}`, this._onMaterialAssetAdd, this);\n\t\tif (this._materialAsset === asset.id) {\n\t\t\tthis._bindMaterialAsset(asset);\n\t\t}\n\t}\n\t_onMaterialAssetLoad(asset) {\n\t\tthis._setMaterial(asset.resource);\n\t}\n\t_onMaterialAssetUnload(asset) {\n\t\tthis._setMaterial(this.system.defaultMaterial);\n\t}\n\t_onMaterialAssetRemove(asset) {\n\t\tthis._onMaterialAssetUnload(asset);\n\t}\n\t_onMaterialAssetChange(asset) {\n\t}\n\t_bindModelAsset(asset) {\n\t\tthis._unbindModelAsset(asset);\n\t\tasset.on(\"load\", this._onModelAssetLoad, this);\n\t\tasset.on(\"unload\", this._onModelAssetUnload, this);\n\t\tasset.on(\"change\", this._onModelAssetChange, this);\n\t\tasset.on(\"remove\", this._onModelAssetRemove, this);\n\t\tif (asset.resource) {\n\t\t\tthis._onModelAssetLoad(asset);\n\t\t} else {\n\t\t\tif (!this.enabled || !this.entity.enabled) return;\n\t\t\tthis.system.app.assets.load(asset);\n\t\t}\n\t}\n\t_unbindModelAsset(asset) {\n\t\tasset.off(\"load\", this._onModelAssetLoad, this);\n\t\tasset.off(\"unload\", this._onModelAssetUnload, this);\n\t\tasset.off(\"change\", this._onModelAssetChange, this);\n\t\tasset.off(\"remove\", this._onModelAssetRemove, this);\n\t}\n\t_onModelAssetAdded(asset) {\n\t\tthis.system.app.assets.off(`add:${asset.id}`, this._onModelAssetAdded, this);\n\t\tif (asset.id === this._asset) {\n\t\t\tthis._bindModelAsset(asset);\n\t\t}\n\t}\n\t_onModelAssetLoad(asset) {\n\t\tthis.model = asset.resource.clone();\n\t\tthis._clonedModel = true;\n\t}\n\t_onModelAssetUnload(asset) {\n\t\tthis.model = null;\n\t}\n\t_onModelAssetChange(asset, attr, _new, _old) {\n\t\tif (attr === \"data\") {\n\t\t\tthis.mapping = this._mapping;\n\t\t}\n\t}\n\t_onModelAssetRemove(asset) {\n\t\tthis.model = null;\n\t}\n\t_setMaterial(material) {\n\t\tif (this._material === material) {\n\t\t\treturn;\n\t\t}\n\t\tthis._material = material;\n\t\tconst model = this._model;\n\t\tif (model && this._type !== \"asset\") {\n\t\t\tconst meshInstances = model.meshInstances;\n\t\t\tfor (let i2 = 0, len = meshInstances.length; i2 < len; i2++) {\n\t\t\t\tmeshInstances[i2].material = material;\n\t\t\t}\n\t\t}\n\t}\n\tsetVisible(visible) {\n\t\tthis.enabled = visible;\n\t}\n};\n\nvar _properties5 = [\n\t\"material\",\n\t\"materialAsset\",\n\t\"asset\",\n\t\"castShadows\",\n\t\"receiveShadows\",\n\t\"castShadowsLightmap\",\n\t\"lightmapped\",\n\t\"lightmapSizeMultiplier\",\n\t\"type\",\n\t\"mapping\",\n\t\"layers\",\n\t\"isStatic\",\n\t\"batchGroupId\"\n];\nvar ModelComponentSystem = class extends ComponentSystem {\n\tconstructor(app2) {\n\t\tsuper(app2);\n\t\tthis.id = \"model\";\n\t\tthis.ComponentType = ModelComponent;\n\t\tthis.extraDataProperties = [\"aabbCenter\", \"aabbHalfExtents\"];\n\t\tthis.defaultMaterial = getDefaultMaterial(app2.graphicsDevice);\n\t\tthis.on(\"beforeremove\", this.onBeforeRemove, this);\n\t}\n\tinitializeComponentData(component, _data) {\n\t\tif (_data.batchGroupId === null || _data.batchGroupId === void 0) {\n\t\t\t_data.batchGroupId = -1;\n\t\t}\n\t\tif (_data.layers && _data.layers.length) {\n\t\t\t_data.layers = _data.layers.slice(0);\n\t\t}\n\t\tfor (let i2 = 0; i2 < _properties5.length; i2++) {\n\t\t\tif (_data.hasOwnProperty(_properties5[i2])) {\n\t\t\t\tcomponent[_properties5[i2]] = _data[_properties5[i2]];\n\t\t\t}\n\t\t}\n\t\tif (_data.aabbCenter && _data.aabbHalfExtents) {\n\t\t\tcomponent.customAabb = new BoundingBox(new Vec3(_data.aabbCenter), new Vec3(_data.aabbHalfExtents));\n\t\t}\n\t\tsuper.initializeComponentData(component, _data);\n\t}\n\tcloneComponent(entity, clone) {\n\t\tconst data2 = {\n\t\t\tenabled: entity.model.enabled\n\t\t};\n\t\tfor (let i2 = 0; i2 < _properties5.length; i2++) {\n\t\t\tconst property = _properties5[i2];\n\t\t\tswitch (property) {\n\t\t\t\t// material and materialAsset are handled below, after the\n\t\t\t\t// appropriate one to clone has been determined\n\t\t\t\tcase \"material\":\n\t\t\t\tcase \"materialAsset\":\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"mapping\":\n\t\t\t\t\tdata2.mapping = extend({}, entity.model.mapping);\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tdata2[property] = entity.model[property];\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tlet materialAsset = entity.model.materialAsset;\n\t\tif (!(materialAsset instanceof Asset) && materialAsset != null) {\n\t\t\tmaterialAsset = this.app.assets.get(materialAsset);\n\t\t}\n\t\tconst material = entity.model.material;\n\t\tif (!material || material === this.defaultMaterial || !materialAsset || material === materialAsset.resource) {\n\t\t\tdata2.materialAsset = materialAsset;\n\t\t}\n\t\tconst component = this.addComponent(clone, data2);\n\t\tif (entity.model.model && entity.model.type === \"asset\" && !entity.model.asset) {\n\t\t\tcomponent.model = entity.model.model.clone();\n\t\t\tcomponent._clonedModel = true;\n\t\t}\n\t\tif (!data2.materialAsset) {\n\t\t\tcomponent.material = material;\n\t\t}\n\t\tif (entity.model.model) {\n\t\t\tconst meshInstances = entity.model.model.meshInstances;\n\t\t\tconst meshInstancesClone = component.model.meshInstances;\n\t\t\tfor (let i2 = 0; i2 < meshInstances.length; i2++) {\n\t\t\t\tmeshInstancesClone[i2].mask = meshInstances[i2].mask;\n\t\t\t\tmeshInstancesClone[i2].material = meshInstances[i2].material;\n\t\t\t\tmeshInstancesClone[i2].layer = meshInstances[i2].layer;\n\t\t\t\tmeshInstancesClone[i2].receiveShadow = meshInstances[i2].receiveShadow;\n\t\t\t}\n\t\t}\n\t\tif (entity.model.customAabb) {\n\t\t\tcomponent.customAabb = entity.model.customAabb.clone();\n\t\t}\n\t\treturn component;\n\t}\n\tonBeforeRemove(entity, component) {\n\t\tcomponent.onBeforeRemove();\n\t}\n};\n\nvar ASSET_PROPERTIES = [\"colorMapAsset\", \"normalMapAsset\", \"meshAsset\", \"renderAsset\"];\nvar _properties6 = [\n\t\"autoPlay\",\n\t\"numParticles\",\n\t\"lifetime\",\n\t\"rate\",\n\t\"rate2\",\n\t\"startAngle\",\n\t\"startAngle2\",\n\t\"loop\",\n\t\"preWarm\",\n\t\"lighting\",\n\t\"halfLambert\",\n\t\"intensity\",\n\t\"depthWrite\",\n\t\"noFog\",\n\t\"depthSoftening\",\n\t\"sort\",\n\t\"blendType\",\n\t\"stretch\",\n\t\"alignToMotion\",\n\t\"emitterShape\",\n\t\"emitterExtents\",\n\t\"emitterExtentsInner\",\n\t\"emitterRadius\",\n\t\"emitterRadiusInner\",\n\t\"initialVelocity\",\n\t\"wrap\",\n\t\"wrapBounds\",\n\t\"localSpace\",\n\t\"screenSpace\",\n\t\"colorMapAsset\",\n\t\"normalMapAsset\",\n\t\"mesh\",\n\t\"meshAsset\",\n\t\"renderAsset\",\n\t\"orientation\",\n\t\"particleNormal\",\n\t\"localVelocityGraph\",\n\t\"localVelocityGraph2\",\n\t\"velocityGraph\",\n\t\"velocityGraph2\",\n\t\"rotationSpeedGraph\",\n\t\"rotationSpeedGraph2\",\n\t\"radialSpeedGraph\",\n\t\"radialSpeedGraph2\",\n\t\"scaleGraph\",\n\t\"scaleGraph2\",\n\t\"colorGraph\",\n\t\"colorGraph2\",\n\t\"alphaGraph\",\n\t\"alphaGraph2\",\n\t\"colorMap\",\n\t\"normalMap\",\n\t\"animTilesX\",\n\t\"animTilesY\",\n\t\"animStartFrame\",\n\t\"animNumFrames\",\n\t\"animNumAnimations\",\n\t\"animIndex\",\n\t\"randomizeAnimIndex\",\n\t\"animSpeed\",\n\t\"animLoop\",\n\t\"layers\"\n];\nvar depthLayer;\nvar ParticleSystemComponent = class extends Component {\n\temitter = null;\n\t_requestedDepth = false;\n\t_drawOrder = 0;\n\t_paused = false;\n\t_evtLayersChanged = null;\n\t_evtLayerAdded = null;\n\t_evtLayerRemoved = null;\n\t_evtSetMeshes = null;\n\t_autoPlay = true;\n\t_numParticles = 1;\n\t_lifetime = 50;\n\t_rate = 1;\n\t_rate2 = null;\n\t_startAngle = 0;\n\t_startAngle2 = null;\n\t_loop = true;\n\t_preWarm = false;\n\t_lighting = false;\n\t_halfLambert = false;\n\t_intensity = 1;\n\t_depthWrite = false;\n\t_noFog = false;\n\t_depthSoftening = 0;\n\t_sort = 0;\n\t_blendType = BLEND_NORMAL;\n\t_stretch = 0;\n\t_alignToMotion = false;\n\t_emitterShape = EMITTERSHAPE_BOX;\n\t_emitterExtents = new Vec3();\n\t_emitterExtentsInner = new Vec3();\n\t_emitterRadius = 0;\n\t_emitterRadiusInner = 0;\n\t_initialVelocity = 0;\n\t_wrap = false;\n\t_wrapBounds = new Vec3();\n\t_localSpace = false;\n\t_screenSpace = false;\n\t_colorMapAsset = null;\n\t_normalMapAsset = null;\n\t_mesh = null;\n\t_meshAsset = null;\n\t_renderAsset = null;\n\t_orientation = PARTICLEORIENTATION_SCREEN;\n\t_particleNormal = new Vec3(0, 1, 0);\n\t_localVelocityGraph = null;\n\t_localVelocityGraph2 = null;\n\t_velocityGraph = null;\n\t_velocityGraph2 = null;\n\t_rotationSpeedGraph = null;\n\t_rotationSpeedGraph2 = null;\n\t_radialSpeedGraph = null;\n\t_radialSpeedGraph2 = null;\n\t_scaleGraph = null;\n\t_scaleGraph2 = null;\n\t_colorGraph = null;\n\t_colorGraph2 = null;\n\t_alphaGraph = null;\n\t_alphaGraph2 = null;\n\t_colorMap = null;\n\t_normalMap = null;\n\t_animTilesX = 1;\n\t_animTilesY = 1;\n\t_animStartFrame = 0;\n\t_animNumFrames = 1;\n\t_animNumAnimations = 1;\n\t_animIndex = 0;\n\t_randomizeAnimIndex = false;\n\t_animSpeed = 1;\n\t_animLoop = true;\n\t_layers = [LAYERID_WORLD];\n\tset autoPlay(arg) {\n\t\tthis._autoPlay = arg;\n\t}\n\tget autoPlay() {\n\t\treturn this._autoPlay;\n\t}\n\tset numParticles(arg) {\n\t\tthis._setComplexProperty(\"numParticles\", arg);\n\t}\n\tget numParticles() {\n\t\treturn this._numParticles;\n\t}\n\tset lifetime(arg) {\n\t\tthis._setComplexProperty(\"lifetime\", arg);\n\t}\n\tget lifetime() {\n\t\treturn this._lifetime;\n\t}\n\tset rate(arg) {\n\t\tthis._setComplexProperty(\"rate\", arg);\n\t}\n\tget rate() {\n\t\treturn this._rate;\n\t}\n\tset rate2(arg) {\n\t\tthis._setComplexProperty(\"rate2\", arg);\n\t}\n\tget rate2() {\n\t\treturn this._rate2;\n\t}\n\tset startAngle(arg) {\n\t\tthis._setComplexProperty(\"startAngle\", arg);\n\t}\n\tget startAngle() {\n\t\treturn this._startAngle;\n\t}\n\tset startAngle2(arg) {\n\t\tthis._setComplexProperty(\"startAngle2\", arg);\n\t}\n\tget startAngle2() {\n\t\treturn this._startAngle2;\n\t}\n\tset loop(arg) {\n\t\tthis._loop = arg;\n\t\tif (this.emitter) {\n\t\t\tthis.emitter.loop = arg;\n\t\t\tthis.emitter.resetTime(arg ? void 0 : this.emitter.lifetime);\n\t\t\tthis.emitter.resetMaterial();\n\t\t}\n\t}\n\tget loop() {\n\t\treturn this._loop;\n\t}\n\tset preWarm(arg) {\n\t\tthis._setComplexProperty(\"preWarm\", arg);\n\t}\n\tget preWarm() {\n\t\treturn this._preWarm;\n\t}\n\tset lighting(arg) {\n\t\tthis._setComplexProperty(\"lighting\", arg);\n\t}\n\tget lighting() {\n\t\treturn this._lighting;\n\t}\n\tset halfLambert(arg) {\n\t\tthis._setComplexProperty(\"halfLambert\", arg);\n\t}\n\tget halfLambert() {\n\t\treturn this._halfLambert;\n\t}\n\tset intensity(arg) {\n\t\tthis._setComplexProperty(\"intensity\", arg);\n\t}\n\tget intensity() {\n\t\treturn this._intensity;\n\t}\n\tset depthWrite(arg) {\n\t\tthis._setComplexProperty(\"depthWrite\", arg);\n\t}\n\tget depthWrite() {\n\t\treturn this._depthWrite;\n\t}\n\tset noFog(arg) {\n\t\tthis._setComplexProperty(\"noFog\", arg);\n\t}\n\tget noFog() {\n\t\treturn this._noFog;\n\t}\n\tset depthSoftening(arg) {\n\t\tconst oldValue = this._depthSoftening;\n\t\tif (oldValue !== arg) {\n\t\t\tthis._depthSoftening = arg;\n\t\t\tif (arg) {\n\t\t\t\tif (this.enabled && this.entity.enabled) this._requestDepth();\n\t\t\t} else {\n\t\t\t\tif (this.enabled && this.entity.enabled) this._releaseDepth();\n\t\t\t}\n\t\t\tif (this.emitter) {\n\t\t\t\tthis.emitter.depthSoftening = arg;\n\t\t\t\tthis.reset();\n\t\t\t\tthis.emitter.resetMaterial();\n\t\t\t\tthis.rebuild();\n\t\t\t}\n\t\t}\n\t}\n\tget depthSoftening() {\n\t\treturn this._depthSoftening;\n\t}\n\tset sort(arg) {\n\t\tthis._setComplexProperty(\"sort\", arg);\n\t}\n\tget sort() {\n\t\treturn this._sort;\n\t}\n\tset blendType(arg) {\n\t\tthis._blendType = arg;\n\t\tif (this.emitter) {\n\t\t\tthis.emitter.blendType = arg;\n\t\t\tthis.emitter.material.blendType = arg;\n\t\t\tthis.emitter.resetMaterial();\n\t\t\tthis.rebuild();\n\t\t}\n\t}\n\tget blendType() {\n\t\treturn this._blendType;\n\t}\n\tset stretch(arg) {\n\t\tthis._setComplexProperty(\"stretch\", arg);\n\t}\n\tget stretch() {\n\t\treturn this._stretch;\n\t}\n\tset alignToMotion(arg) {\n\t\tthis._setComplexProperty(\"alignToMotion\", arg);\n\t}\n\tget alignToMotion() {\n\t\treturn this._alignToMotion;\n\t}\n\tset emitterShape(arg) {\n\t\tthis._setComplexProperty(\"emitterShape\", arg);\n\t}\n\tget emitterShape() {\n\t\treturn this._emitterShape;\n\t}\n\tset emitterExtents(arg) {\n\t\tthis._setSimpleProperty(\"emitterExtents\", arg);\n\t}\n\tget emitterExtents() {\n\t\treturn this._emitterExtents;\n\t}\n\tset emitterExtentsInner(arg) {\n\t\tthis._setSimpleProperty(\"emitterExtentsInner\", arg);\n\t}\n\tget emitterExtentsInner() {\n\t\treturn this._emitterExtentsInner;\n\t}\n\tset emitterRadius(arg) {\n\t\tthis._setSimpleProperty(\"emitterRadius\", arg);\n\t}\n\tget emitterRadius() {\n\t\treturn this._emitterRadius;\n\t}\n\tset emitterRadiusInner(arg) {\n\t\tthis._setSimpleProperty(\"emitterRadiusInner\", arg);\n\t}\n\tget emitterRadiusInner() {\n\t\treturn this._emitterRadiusInner;\n\t}\n\tset initialVelocity(arg) {\n\t\tthis._setSimpleProperty(\"initialVelocity\", arg);\n\t}\n\tget initialVelocity() {\n\t\treturn this._initialVelocity;\n\t}\n\tset wrap(arg) {\n\t\tthis._setComplexProperty(\"wrap\", arg);\n\t}\n\tget wrap() {\n\t\treturn this._wrap;\n\t}\n\tset wrapBounds(arg) {\n\t\tthis._setComplexProperty(\"wrapBounds\", arg);\n\t}\n\tget wrapBounds() {\n\t\treturn this._wrapBounds;\n\t}\n\tset localSpace(arg) {\n\t\tthis._setComplexProperty(\"localSpace\", arg);\n\t}\n\tget localSpace() {\n\t\treturn this._localSpace;\n\t}\n\tset screenSpace(arg) {\n\t\tthis._setComplexProperty(\"screenSpace\", arg);\n\t}\n\tget screenSpace() {\n\t\treturn this._screenSpace;\n\t}\n\tset colorMapAsset(arg) {\n\t\tconst assets = this.system.app.assets;\n\t\tif (this._colorMapAsset) {\n\t\t\tconst asset = assets.get(this._colorMapAsset);\n\t\t\tif (asset) {\n\t\t\t\tthis._unbindColorMapAsset(asset);\n\t\t\t}\n\t\t}\n\t\tif (arg instanceof Asset) {\n\t\t\targ = arg.id;\n\t\t}\n\t\tthis._colorMapAsset = arg;\n\t\tif (arg) {\n\t\t\tconst asset = assets.get(arg);\n\t\t\tif (asset) {\n\t\t\t\tthis._bindColorMapAsset(asset);\n\t\t\t} else {\n\t\t\t\tassets.once(`add:${arg}`, (asset2) => {\n\t\t\t\t\tthis._bindColorMapAsset(asset2);\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tthis.colorMap = null;\n\t\t}\n\t}\n\tget colorMapAsset() {\n\t\treturn this._colorMapAsset;\n\t}\n\tset normalMapAsset(arg) {\n\t\tconst assets = this.system.app.assets;\n\t\tif (this._normalMapAsset) {\n\t\t\tconst asset = assets.get(this._normalMapAsset);\n\t\t\tif (asset) {\n\t\t\t\tthis._unbindNormalMapAsset(asset);\n\t\t\t}\n\t\t}\n\t\tif (arg instanceof Asset) {\n\t\t\targ = arg.id;\n\t\t}\n\t\tthis._normalMapAsset = arg;\n\t\tif (arg) {\n\t\t\tconst asset = assets.get(arg);\n\t\t\tif (asset) {\n\t\t\t\tthis._bindNormalMapAsset(asset);\n\t\t\t} else {\n\t\t\t\tassets.once(`add:${arg}`, (asset2) => {\n\t\t\t\t\tthis._bindNormalMapAsset(asset2);\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tthis.normalMap = null;\n\t\t}\n\t}\n\tget normalMapAsset() {\n\t\treturn this._normalMapAsset;\n\t}\n\tset mesh(arg) {\n\t\tif (!arg || arg instanceof Asset || typeof arg === \"number\") {\n\t\t\tthis.meshAsset = arg;\n\t\t} else {\n\t\t\tthis._onMeshChanged(arg);\n\t\t}\n\t}\n\tget mesh() {\n\t\treturn this._mesh;\n\t}\n\tset meshAsset(arg) {\n\t\tconst assets = this.system.app.assets;\n\t\tif (this._meshAsset) {\n\t\t\tconst asset = assets.get(this._meshAsset);\n\t\t\tif (asset) {\n\t\t\t\tthis._unbindMeshAsset(asset);\n\t\t\t}\n\t\t}\n\t\tif (arg instanceof Asset) {\n\t\t\targ = arg.id;\n\t\t}\n\t\tthis._meshAsset = arg;\n\t\tif (arg) {\n\t\t\tconst asset = assets.get(arg);\n\t\t\tif (asset) {\n\t\t\t\tthis._bindMeshAsset(asset);\n\t\t\t}\n\t\t} else {\n\t\t\tthis._onMeshChanged(null);\n\t\t}\n\t}\n\tget meshAsset() {\n\t\treturn this._meshAsset;\n\t}\n\tset renderAsset(arg) {\n\t\tconst assets = this.system.app.assets;\n\t\tif (this._renderAsset) {\n\t\t\tconst asset = assets.get(this._renderAsset);\n\t\t\tif (asset) {\n\t\t\t\tthis._unbindRenderAsset(asset);\n\t\t\t}\n\t\t}\n\t\tif (arg instanceof Asset) {\n\t\t\targ = arg.id;\n\t\t}\n\t\tthis._renderAsset = arg;\n\t\tif (arg) {\n\t\t\tconst asset = assets.get(arg);\n\t\t\tif (asset) {\n\t\t\t\tthis._bindRenderAsset(asset);\n\t\t\t}\n\t\t} else {\n\t\t\tthis._onRenderChanged(null);\n\t\t}\n\t}\n\tget renderAsset() {\n\t\treturn this._renderAsset;\n\t}\n\tset orientation(arg) {\n\t\tthis._setComplexProperty(\"orientation\", arg);\n\t}\n\tget orientation() {\n\t\treturn this._orientation;\n\t}\n\tset particleNormal(arg) {\n\t\tthis._setSimpleProperty(\"particleNormal\", arg);\n\t}\n\tget particleNormal() {\n\t\treturn this._particleNormal;\n\t}\n\tset localVelocityGraph(arg) {\n\t\tthis._setGraphProperty(\"localVelocityGraph\", arg);\n\t}\n\tget localVelocityGraph() {\n\t\treturn this._localVelocityGraph;\n\t}\n\tset localVelocityGraph2(arg) {\n\t\tthis._setGraphProperty(\"localVelocityGraph2\", arg);\n\t}\n\tget localVelocityGraph2() {\n\t\treturn this._localVelocityGraph2;\n\t}\n\tset velocityGraph(arg) {\n\t\tthis._setGraphProperty(\"velocityGraph\", arg);\n\t}\n\tget velocityGraph() {\n\t\treturn this._velocityGraph;\n\t}\n\tset velocityGraph2(arg) {\n\t\tthis._setGraphProperty(\"velocityGraph2\", arg);\n\t}\n\tget velocityGraph2() {\n\t\treturn this._velocityGraph2;\n\t}\n\tset rotationSpeedGraph(arg) {\n\t\tthis._setGraphProperty(\"rotationSpeedGraph\", arg);\n\t}\n\tget rotationSpeedGraph() {\n\t\treturn this._rotationSpeedGraph;\n\t}\n\tset rotationSpeedGraph2(arg) {\n\t\tthis._setGraphProperty(\"rotationSpeedGraph2\", arg);\n\t}\n\tget rotationSpeedGraph2() {\n\t\treturn this._rotationSpeedGraph2;\n\t}\n\tset radialSpeedGraph(arg) {\n\t\tthis._setGraphProperty(\"radialSpeedGraph\", arg);\n\t}\n\tget radialSpeedGraph() {\n\t\treturn this._radialSpeedGraph;\n\t}\n\tset radialSpeedGraph2(arg) {\n\t\tthis._setGraphProperty(\"radialSpeedGraph2\", arg);\n\t}\n\tget radialSpeedGraph2() {\n\t\treturn this._radialSpeedGraph2;\n\t}\n\tset scaleGraph(arg) {\n\t\tthis._setGraphProperty(\"scaleGraph\", arg);\n\t}\n\tget scaleGraph() {\n\t\treturn this._scaleGraph;\n\t}\n\tset scaleGraph2(arg) {\n\t\tthis._setGraphProperty(\"scaleGraph2\", arg);\n\t}\n\tget scaleGraph2() {\n\t\treturn this._scaleGraph2;\n\t}\n\tset colorGraph(arg) {\n\t\tthis._setGraphProperty(\"colorGraph\", arg);\n\t}\n\tget colorGraph() {\n\t\treturn this._colorGraph;\n\t}\n\tset colorGraph2(arg) {\n\t\tthis._setGraphProperty(\"colorGraph2\", arg);\n\t}\n\tget colorGraph2() {\n\t\treturn this._colorGraph2;\n\t}\n\tset alphaGraph(arg) {\n\t\tthis._setGraphProperty(\"alphaGraph\", arg);\n\t}\n\tget alphaGraph() {\n\t\treturn this._alphaGraph;\n\t}\n\tset alphaGraph2(arg) {\n\t\tthis._setGraphProperty(\"alphaGraph2\", arg);\n\t}\n\tget alphaGraph2() {\n\t\treturn this._alphaGraph2;\n\t}\n\tset colorMap(arg) {\n\t\tthis._setComplexProperty(\"colorMap\", arg);\n\t}\n\tget colorMap() {\n\t\treturn this._colorMap;\n\t}\n\tset normalMap(arg) {\n\t\tthis._setSimpleProperty(\"normalMap\", arg);\n\t}\n\tget normalMap() {\n\t\treturn this._normalMap;\n\t}\n\tset animTilesX(arg) {\n\t\tthis._setComplexProperty(\"animTilesX\", arg);\n\t}\n\tget animTilesX() {\n\t\treturn this._animTilesX;\n\t}\n\tset animTilesY(arg) {\n\t\tthis._setComplexProperty(\"animTilesY\", arg);\n\t}\n\tget animTilesY() {\n\t\treturn this._animTilesY;\n\t}\n\tset animStartFrame(arg) {\n\t\tthis._setComplexProperty(\"animStartFrame\", arg);\n\t}\n\tget animStartFrame() {\n\t\treturn this._animStartFrame;\n\t}\n\tset animNumFrames(arg) {\n\t\tthis._setComplexProperty(\"animNumFrames\", arg);\n\t}\n\tget animNumFrames() {\n\t\treturn this._animNumFrames;\n\t}\n\tset animNumAnimations(arg) {\n\t\tthis._setComplexProperty(\"animNumAnimations\", arg);\n\t}\n\tget animNumAnimations() {\n\t\treturn this._animNumAnimations;\n\t}\n\tset animIndex(arg) {\n\t\tthis._setComplexProperty(\"animIndex\", arg);\n\t}\n\tget animIndex() {\n\t\treturn this._animIndex;\n\t}\n\tset randomizeAnimIndex(arg) {\n\t\tthis._setComplexProperty(\"randomizeAnimIndex\", arg);\n\t}\n\tget randomizeAnimIndex() {\n\t\treturn this._randomizeAnimIndex;\n\t}\n\tset animSpeed(arg) {\n\t\tthis._setSimpleProperty(\"animSpeed\", arg);\n\t}\n\tget animSpeed() {\n\t\treturn this._animSpeed;\n\t}\n\tset animLoop(arg) {\n\t\tthis._setComplexProperty(\"animLoop\", arg);\n\t}\n\tget animLoop() {\n\t\treturn this._animLoop;\n\t}\n\tset layers(arg) {\n\t\tconst oldLayers = this._layers;\n\t\tthis._layers = arg;\n\t\tif (!this.emitter) return;\n\t\tfor (let i2 = 0; i2 < oldLayers.length; i2++) {\n\t\t\tconst layer = this.system.app.scene.layers.getLayerById(oldLayers[i2]);\n\t\t\tif (!layer) continue;\n\t\t\tlayer.removeMeshInstances([this.emitter.meshInstance]);\n\t\t}\n\t\tif (!this.enabled || !this.entity.enabled) return;\n\t\tfor (let i2 = 0; i2 < arg.length; i2++) {\n\t\t\tconst layer = this.system.app.scene.layers.getLayerById(arg[i2]);\n\t\t\tif (!layer) continue;\n\t\t\tlayer.addMeshInstances([this.emitter.meshInstance]);\n\t\t}\n\t}\n\tget layers() {\n\t\treturn this._layers;\n\t}\n\tset drawOrder(drawOrder) {\n\t\tthis._drawOrder = drawOrder;\n\t\tif (this.emitter) {\n\t\t\tthis.emitter.drawOrder = drawOrder;\n\t\t}\n\t}\n\tget drawOrder() {\n\t\treturn this._drawOrder;\n\t}\n\t_setSimpleProperty(name, arg) {\n\t\tthis[`_${name}`] = arg;\n\t\tif (this.emitter) {\n\t\t\tthis.emitter[name] = arg;\n\t\t\tthis.emitter.resetMaterial();\n\t\t}\n\t}\n\t_setComplexProperty(name, arg) {\n\t\tthis[`_${name}`] = arg;\n\t\tif (this.emitter) {\n\t\t\tthis.emitter[name] = arg;\n\t\t\tthis.emitter.resetMaterial();\n\t\t\tthis.rebuild();\n\t\t\tthis.reset();\n\t\t}\n\t}\n\t_setGraphProperty(name, arg) {\n\t\tthis[`_${name}`] = arg;\n\t\tif (this.emitter) {\n\t\t\tthis.emitter[name] = arg;\n\t\t\tthis.emitter.rebuildGraphs();\n\t\t\tthis.emitter.calculateLocalBounds();\n\t\t\tthis.emitter.resetMaterial();\n\t\t}\n\t}\n\taddMeshInstanceToLayers() {\n\t\tif (!this.emitter) return;\n\t\tfor (let i2 = 0; i2 < this._layers.length; i2++) {\n\t\t\tconst layer = this.system.app.scene.layers.getLayerById(this._layers[i2]);\n\t\t\tif (!layer) continue;\n\t\t\tlayer.addMeshInstances([this.emitter.meshInstance]);\n\t\t\tthis.emitter._layer = layer;\n\t\t}\n\t}\n\tremoveMeshInstanceFromLayers() {\n\t\tif (!this.emitter) return;\n\t\tfor (let i2 = 0; i2 < this._layers.length; i2++) {\n\t\t\tconst layer = this.system.app.scene.layers.getLayerById(this._layers[i2]);\n\t\t\tif (!layer) continue;\n\t\t\tlayer.removeMeshInstances([this.emitter.meshInstance]);\n\t\t}\n\t}\n\tonLayersChanged(oldComp, newComp) {\n\t\tthis.addMeshInstanceToLayers();\n\t\tthis._evtLayerAdded?.off();\n\t\tthis._evtLayerAdded = newComp.on(\"add\", this.onLayerAdded, this);\n\t\tthis._evtLayerRemoved?.off();\n\t\tthis._evtLayerRemoved = newComp.on(\"remove\", this.onLayerRemoved, this);\n\t}\n\tonLayerAdded(layer) {\n\t\tif (!this.emitter) return;\n\t\tconst index = this._layers.indexOf(layer.id);\n\t\tif (index < 0) return;\n\t\tlayer.addMeshInstances([this.emitter.meshInstance]);\n\t}\n\tonLayerRemoved(layer) {\n\t\tif (!this.emitter) return;\n\t\tconst index = this._layers.indexOf(layer.id);\n\t\tif (index < 0) return;\n\t\tlayer.removeMeshInstances([this.emitter.meshInstance]);\n\t}\n\t_bindColorMapAsset(asset) {\n\t\tasset.on(\"load\", this._onColorMapAssetLoad, this);\n\t\tasset.on(\"unload\", this._onColorMapAssetUnload, this);\n\t\tasset.on(\"remove\", this._onColorMapAssetRemove, this);\n\t\tasset.on(\"change\", this._onColorMapAssetChange, this);\n\t\tif (asset.resource) {\n\t\t\tthis._onColorMapAssetLoad(asset);\n\t\t} else {\n\t\t\tif (!this.enabled || !this.entity.enabled) return;\n\t\t\tthis.system.app.assets.load(asset);\n\t\t}\n\t}\n\t_unbindColorMapAsset(asset) {\n\t\tasset.off(\"load\", this._onColorMapAssetLoad, this);\n\t\tasset.off(\"unload\", this._onColorMapAssetUnload, this);\n\t\tasset.off(\"remove\", this._onColorMapAssetRemove, this);\n\t\tasset.off(\"change\", this._onColorMapAssetChange, this);\n\t}\n\t_onColorMapAssetLoad(asset) {\n\t\tthis.colorMap = asset.resource;\n\t}\n\t_onColorMapAssetUnload(asset) {\n\t\tthis.colorMap = null;\n\t}\n\t_onColorMapAssetRemove(asset) {\n\t\tthis._onColorMapAssetUnload(asset);\n\t}\n\t_onColorMapAssetChange(asset) {\n\t}\n\t_bindNormalMapAsset(asset) {\n\t\tasset.on(\"load\", this._onNormalMapAssetLoad, this);\n\t\tasset.on(\"unload\", this._onNormalMapAssetUnload, this);\n\t\tasset.on(\"remove\", this._onNormalMapAssetRemove, this);\n\t\tasset.on(\"change\", this._onNormalMapAssetChange, this);\n\t\tif (asset.resource) {\n\t\t\tthis._onNormalMapAssetLoad(asset);\n\t\t} else {\n\t\t\tif (!this.enabled || !this.entity.enabled) return;\n\t\t\tthis.system.app.assets.load(asset);\n\t\t}\n\t}\n\t_unbindNormalMapAsset(asset) {\n\t\tasset.off(\"load\", this._onNormalMapAssetLoad, this);\n\t\tasset.off(\"unload\", this._onNormalMapAssetUnload, this);\n\t\tasset.off(\"remove\", this._onNormalMapAssetRemove, this);\n\t\tasset.off(\"change\", this._onNormalMapAssetChange, this);\n\t}\n\t_onNormalMapAssetLoad(asset) {\n\t\tthis.normalMap = asset.resource;\n\t}\n\t_onNormalMapAssetUnload(asset) {\n\t\tthis.normalMap = null;\n\t}\n\t_onNormalMapAssetRemove(asset) {\n\t\tthis._onNormalMapAssetUnload(asset);\n\t}\n\t_onNormalMapAssetChange(asset) {\n\t}\n\t_bindMeshAsset(asset) {\n\t\tasset.on(\"load\", this._onMeshAssetLoad, this);\n\t\tasset.on(\"unload\", this._onMeshAssetUnload, this);\n\t\tasset.on(\"remove\", this._onMeshAssetRemove, this);\n\t\tasset.on(\"change\", this._onMeshAssetChange, this);\n\t\tif (asset.resource) {\n\t\t\tthis._onMeshAssetLoad(asset);\n\t\t} else {\n\t\t\tif (!this.enabled || !this.entity.enabled) return;\n\t\t\tthis.system.app.assets.load(asset);\n\t\t}\n\t}\n\t_unbindMeshAsset(asset) {\n\t\tasset.off(\"load\", this._onMeshAssetLoad, this);\n\t\tasset.off(\"unload\", this._onMeshAssetUnload, this);\n\t\tasset.off(\"remove\", this._onMeshAssetRemove, this);\n\t\tasset.off(\"change\", this._onMeshAssetChange, this);\n\t}\n\t_onMeshAssetLoad(asset) {\n\t\tthis._onMeshChanged(asset.resource);\n\t}\n\t_onMeshAssetUnload(asset) {\n\t\tthis.mesh = null;\n\t}\n\t_onMeshAssetRemove(asset) {\n\t\tthis._onMeshAssetUnload(asset);\n\t}\n\t_onMeshAssetChange(asset) {\n\t}\n\t_onMeshChanged(mesh) {\n\t\tif (mesh && !(mesh instanceof Mesh)) {\n\t\t\tif (mesh.meshInstances[0]) {\n\t\t\t\tmesh = mesh.meshInstances[0].mesh;\n\t\t\t} else {\n\t\t\t\tmesh = null;\n\t\t\t}\n\t\t}\n\t\tthis._mesh = mesh;\n\t\tif (this.emitter) {\n\t\t\tthis.emitter.mesh = mesh;\n\t\t\tthis.emitter.resetMaterial();\n\t\t\tthis.rebuild();\n\t\t}\n\t}\n\t_bindRenderAsset(asset) {\n\t\tasset.on(\"load\", this._onRenderAssetLoad, this);\n\t\tasset.on(\"unload\", this._onRenderAssetUnload, this);\n\t\tasset.on(\"remove\", this._onRenderAssetRemove, this);\n\t\tif (asset.resource) {\n\t\t\tthis._onRenderAssetLoad(asset);\n\t\t} else {\n\t\t\tif (!this.enabled || !this.entity.enabled) return;\n\t\t\tthis.system.app.assets.load(asset);\n\t\t}\n\t}\n\t_unbindRenderAsset(asset) {\n\t\tasset.off(\"load\", this._onRenderAssetLoad, this);\n\t\tasset.off(\"unload\", this._onRenderAssetUnload, this);\n\t\tasset.off(\"remove\", this._onRenderAssetRemove, this);\n\t\tthis._evtSetMeshes?.off();\n\t\tthis._evtSetMeshes = null;\n\t}\n\t_onRenderAssetLoad(asset) {\n\t\tthis._onRenderChanged(asset.resource);\n\t}\n\t_onRenderAssetUnload(asset) {\n\t\tthis._onRenderChanged(null);\n\t}\n\t_onRenderAssetRemove(asset) {\n\t\tthis._onRenderAssetUnload(asset);\n\t}\n\t_onRenderChanged(render) {\n\t\tif (!render) {\n\t\t\tthis._onMeshChanged(null);\n\t\t\treturn;\n\t\t}\n\t\tthis._evtSetMeshes?.off();\n\t\tthis._evtSetMeshes = render.on(\"set:meshes\", this._onRenderSetMeshes, this);\n\t\tif (render.meshes) {\n\t\t\tthis._onRenderSetMeshes(render.meshes);\n\t\t}\n\t}\n\t_onRenderSetMeshes(meshes) {\n\t\tthis._onMeshChanged(meshes && meshes[0]);\n\t}\n\t_requestDepth() {\n\t\tif (this._requestedDepth) return;\n\t\tif (!depthLayer) depthLayer = this.system.app.scene.layers.getLayerById(LAYERID_DEPTH);\n\t\tif (depthLayer) {\n\t\t\tdepthLayer.incrementCounter();\n\t\t\tthis._requestedDepth = true;\n\t\t}\n\t}\n\t_releaseDepth() {\n\t\tif (!this._requestedDepth) return;\n\t\tif (depthLayer) {\n\t\t\tdepthLayer.decrementCounter();\n\t\t\tthis._requestedDepth = false;\n\t\t}\n\t}\n\tonEnable() {\n\t\tconst scene = this.system.app.scene;\n\t\tconst layers = scene.layers;\n\t\tfor (let i2 = 0, len = ASSET_PROPERTIES.length; i2 < len; i2++) {\n\t\t\tlet asset = this[`_${ASSET_PROPERTIES[i2]}`];\n\t\t\tif (asset) {\n\t\t\t\tif (!(asset instanceof Asset)) {\n\t\t\t\t\tconst id14 = parseInt(asset, 10);\n\t\t\t\t\tif (id14 >= 0) {\n\t\t\t\t\t\tasset = this.system.app.assets.get(asset);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (asset && !asset.resource) {\n\t\t\t\t\tthis.system.app.assets.load(asset);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (this.system.app.graphicsDevice.disableParticleSystem) {\n\t\t\treturn;\n\t\t}\n\t\tif (!this.emitter) {\n\t\t\tthis.emitter = new ParticleEmitter(this.system.app.graphicsDevice, {\n\t\t\t\tnumParticles: this._numParticles,\n\t\t\t\temitterExtents: this._emitterExtents,\n\t\t\t\temitterExtentsInner: this._emitterExtentsInner,\n\t\t\t\temitterRadius: this._emitterRadius,\n\t\t\t\temitterRadiusInner: this._emitterRadiusInner,\n\t\t\t\temitterShape: this._emitterShape,\n\t\t\t\tinitialVelocity: this._initialVelocity,\n\t\t\t\twrap: this._wrap,\n\t\t\t\tlocalSpace: this._localSpace,\n\t\t\t\tscreenSpace: this._screenSpace,\n\t\t\t\twrapBounds: this._wrapBounds,\n\t\t\t\tlifetime: this._lifetime,\n\t\t\t\trate: this._rate,\n\t\t\t\trate2: this._rate2,\n\t\t\t\torientation: this._orientation,\n\t\t\t\tparticleNormal: this._particleNormal,\n\t\t\t\tanimTilesX: this._animTilesX,\n\t\t\t\tanimTilesY: this._animTilesY,\n\t\t\t\tanimStartFrame: this._animStartFrame,\n\t\t\t\tanimNumFrames: this._animNumFrames,\n\t\t\t\tanimNumAnimations: this._animNumAnimations,\n\t\t\t\tanimIndex: this._animIndex,\n\t\t\t\trandomizeAnimIndex: this._randomizeAnimIndex,\n\t\t\t\tanimSpeed: this._animSpeed,\n\t\t\t\tanimLoop: this._animLoop,\n\t\t\t\tstartAngle: this._startAngle,\n\t\t\t\tstartAngle2: this._startAngle2,\n\t\t\t\tscaleGraph: this._scaleGraph,\n\t\t\t\tscaleGraph2: this._scaleGraph2,\n\t\t\t\tcolorGraph: this._colorGraph,\n\t\t\t\tcolorGraph2: this._colorGraph2,\n\t\t\t\talphaGraph: this._alphaGraph,\n\t\t\t\talphaGraph2: this._alphaGraph2,\n\t\t\t\tlocalVelocityGraph: this._localVelocityGraph,\n\t\t\t\tlocalVelocityGraph2: this._localVelocityGraph2,\n\t\t\t\tvelocityGraph: this._velocityGraph,\n\t\t\t\tvelocityGraph2: this._velocityGraph2,\n\t\t\t\trotationSpeedGraph: this._rotationSpeedGraph,\n\t\t\t\trotationSpeedGraph2: this._rotationSpeedGraph2,\n\t\t\t\tradialSpeedGraph: this._radialSpeedGraph,\n\t\t\t\tradialSpeedGraph2: this._radialSpeedGraph2,\n\t\t\t\tcolorMap: this._colorMap,\n\t\t\t\tnormalMap: this._normalMap,\n\t\t\t\tloop: this._loop,\n\t\t\t\tpreWarm: this._preWarm,\n\t\t\t\tsort: this._sort,\n\t\t\t\tstretch: this._stretch,\n\t\t\t\talignToMotion: this._alignToMotion,\n\t\t\t\tlighting: this._lighting,\n\t\t\t\thalfLambert: this._halfLambert,\n\t\t\t\tintensity: this._intensity,\n\t\t\t\tdepthSoftening: this._depthSoftening,\n\t\t\t\tscene: this.system.app.scene,\n\t\t\t\tmesh: this._mesh,\n\t\t\t\tdepthWrite: this._depthWrite,\n\t\t\t\tnoFog: this._noFog,\n\t\t\t\tnode: this.entity,\n\t\t\t\tblendType: this._blendType\n\t\t\t});\n\t\t\tthis.emitter.meshInstance.node = this.entity;\n\t\t\tthis.emitter.drawOrder = this._drawOrder;\n\t\t\tif (!this._autoPlay) {\n\t\t\t\tthis.pause();\n\t\t\t\tthis.emitter.meshInstance.visible = false;\n\t\t\t}\n\t\t}\n\t\tif (this.emitter.colorMap) {\n\t\t\tthis.addMeshInstanceToLayers();\n\t\t}\n\t\tthis._evtLayersChanged = scene.on(\"set:layers\", this.onLayersChanged, this);\n\t\tif (layers) {\n\t\t\tthis._evtLayerAdded = layers.on(\"add\", this.onLayerAdded, this);\n\t\t\tthis._evtLayerRemoved = layers.on(\"remove\", this.onLayerRemoved, this);\n\t\t}\n\t\tif (this.enabled && this.entity.enabled && this._depthSoftening) {\n\t\t\tthis._requestDepth();\n\t\t}\n\t}\n\tonDisable() {\n\t\tconst scene = this.system.app.scene;\n\t\tconst layers = scene.layers;\n\t\tthis._evtLayersChanged?.off();\n\t\tthis._evtLayersChanged = null;\n\t\tif (layers) {\n\t\t\tthis._evtLayerAdded?.off();\n\t\t\tthis._evtLayerAdded = null;\n\t\t\tthis._evtLayerRemoved?.off();\n\t\t\tthis._evtLayerRemoved = null;\n\t\t}\n\t\tif (this.emitter) {\n\t\t\tthis.removeMeshInstanceFromLayers();\n\t\t\tif (this._depthSoftening) this._releaseDepth();\n\t\t\tthis.emitter.camera = null;\n\t\t}\n\t}\n\tonBeforeRemove() {\n\t\tif (this.enabled) {\n\t\t\tthis.enabled = false;\n\t\t}\n\t\tif (this.emitter) {\n\t\t\tthis.emitter.destroy();\n\t\t\tthis.emitter = null;\n\t\t}\n\t\tfor (let i2 = 0; i2 < ASSET_PROPERTIES.length; i2++) {\n\t\t\tconst prop = ASSET_PROPERTIES[i2];\n\t\t\tif (this[`_${prop}`]) {\n\t\t\t\tthis[prop] = null;\n\t\t\t}\n\t\t}\n\t\tthis.off();\n\t}\n\treset() {\n\t\tif (this.emitter) {\n\t\t\tthis.emitter.reset();\n\t\t}\n\t}\n\tstop() {\n\t\tif (this.emitter) {\n\t\t\tthis.emitter.loop = false;\n\t\t\tthis.emitter.resetTime(this.emitter.lifetime);\n\t\t\tthis.emitter.addTime(0, true);\n\t\t}\n\t}\n\tpause() {\n\t\tthis._paused = true;\n\t}\n\tunpause() {\n\t\tthis._paused = false;\n\t}\n\tplay() {\n\t\tthis._paused = false;\n\t\tif (this.emitter) {\n\t\t\tthis.emitter.meshInstance.visible = true;\n\t\t\tthis.emitter.loop = this._loop;\n\t\t\tthis.emitter.resetTime();\n\t\t}\n\t}\n\tisPlaying() {\n\t\tif (this._paused || !this.emitter) {\n\t\t\treturn false;\n\t\t}\n\t\tif (this.emitter.loop) {\n\t\t\treturn true;\n\t\t}\n\t\treturn this.emitter.simTimeTotal <= this.emitter.endTime;\n\t}\n\tsetInTools() {\n\t\tconst { emitter } = this;\n\t\tif (emitter && !emitter.inTools) {\n\t\t\temitter.inTools = true;\n\t\t\tthis.rebuild();\n\t\t}\n\t}\n\trebuild() {\n\t\tconst enabled = this.enabled;\n\t\tthis.enabled = false;\n\t\tif (this.emitter) {\n\t\t\tthis.emitter.rebuild();\n\t\t}\n\t\tthis.enabled = enabled;\n\t}\n};\n\nvar particle_default = `\nvarying vec4 texCoordsAlphaLife;\nuniform sampler2D colorMap;\nuniform sampler2D colorParam;\nuniform float graphSampleSize;\nuniform float graphNumSamples;\n#ifndef CAMERAPLANES\n\t#define CAMERAPLANES\n\tuniform vec4 camera_params;\n#endif\n#ifdef SOFT\n\tuniform float softening;\n#endif\nuniform float colorMult;\nfloat saturate(float x) {\n\treturn clamp(x, 0.0, 1.0);\n}\nvoid main(void) {\n\tvec4 tex  = texture2D(colorMap, vec2(texCoordsAlphaLife.x, 1.0 - texCoordsAlphaLife.y));\n\tvec4 ramp = texture2D(colorParam, vec2(texCoordsAlphaLife.w, 0.0));\n\tramp.rgb *= colorMult;\n\tramp.a += texCoordsAlphaLife.z;\n\tvec3 rgb = tex.rgb * ramp.rgb;\n\tfloat a  = tex.a * ramp.a;\n`;\n\nvar particle_default2 = `\nvec3 unpack3NFloats(float src) {\n\tfloat r = fract(src);\n\tfloat g = fract(src * 256.0);\n\tfloat b = fract(src * 65536.0);\n\treturn vec3(r, g, b);\n}\nfloat saturate(float x) {\n\treturn clamp(x, 0.0, 1.0);\n}\nvec4 tex1Dlod_lerp(TEXTURE_ACCEPT_HIGHP(tex), vec2 tc) {\n\treturn mix( texture2D(tex,tc), texture2D(tex,tc + graphSampleSize), fract(tc.x*graphNumSamples) );\n}\nvec4 tex1Dlod_lerp(TEXTURE_ACCEPT_HIGHP(tex), vec2 tc, out vec3 w) {\n\tvec4 a = texture2D(tex,tc);\n\tvec4 b = texture2D(tex,tc + graphSampleSize);\n\tfloat c = fract(tc.x*graphNumSamples);\n\tvec3 unpackedA = unpack3NFloats(a.w);\n\tvec3 unpackedB = unpack3NFloats(b.w);\n\tw = mix(unpackedA, unpackedB, c);\n\treturn mix(a, b, c);\n}\nvec2 rotate(vec2 quadXY, float pRotation, out mat2 rotMatrix) {\n\tfloat c = cos(pRotation);\n\tfloat s = sin(pRotation);\n\tmat2 m = mat2(c, -s, s, c);\n\trotMatrix = m;\n\treturn m * quadXY;\n}\nvec3 billboard(vec3 InstanceCoords, vec2 quadXY) {\n\t#ifdef SCREEN_SPACE\n\t\tvec3 pos = vec3(-1, 0, 0) * quadXY.x + vec3(0, -1, 0) * quadXY.y;\n\t#else\n\t\tvec3 pos = -matrix_viewInverse[0].xyz * quadXY.x + -matrix_viewInverse[1].xyz * quadXY.y;\n\t#endif\n\treturn pos;\n}\nvec3 customFace(vec3 InstanceCoords, vec2 quadXY) {\n\tvec3 pos = faceTangent * quadXY.x + faceBinorm * quadXY.y;\n\treturn pos;\n}\nvec2 safeNormalize(vec2 v) {\n\tfloat l = length(v);\n\treturn (l > 1e-06) ? v / l : v;\n}\nvoid main(void) {\n\tvec3 meshLocalPos = particle_vertexData.xyz;\n\tfloat id = floor(particle_vertexData.w);\n\tfloat rndFactor = fract(sin(id + 1.0 + seed));\n\tvec3 rndFactor3 = vec3(rndFactor, fract(rndFactor*10.0), fract(rndFactor*100.0));\n\tfloat uv = id / numParticlesPot;\n\treadInput(uv);\n#ifdef LOCAL_SPACE\n\tinVel = mat3(matrix_model) * inVel;\n#endif\n\tvec2 velocityV = safeNormalize((mat3(matrix_view) * inVel).xy);\n\tfloat particleLifetime = lifetime;\n\tif (inLife <= 0.0 || inLife > particleLifetime || !inShow)\n\t\tmeshLocalPos = vec3(0.0);\n\tvec2 quadXY = meshLocalPos.xy;\n\tfloat nlife = clamp(inLife / particleLifetime, 0.0, 1.0);\n\tvec3 paramDiv;\n\tvec4 params = tex1Dlod_lerp(TEXTURE_PASS(internalTex2), vec2(nlife, 0), paramDiv);\n\tfloat scale = params.y;\n\tfloat scaleDiv = paramDiv.x;\n\tfloat alphaDiv = paramDiv.z;\n\tscale += (scaleDiv * 2.0 - 1.0) * scaleDivMult * fract(rndFactor*10000.0);\n#ifndef USE_MESH\n\ttexCoordsAlphaLife = vec4(quadXY * -0.5 + 0.5, (alphaDiv * 2.0 - 1.0) * alphaDivMult * fract(rndFactor*1000.0), nlife);\n#else\n\ttexCoordsAlphaLife = vec4(particle_uv, (alphaDiv * 2.0 - 1.0) * alphaDivMult * fract(rndFactor*1000.0), nlife);\n#endif\n\tvec3 particlePos = inPos;\n\tvec3 particlePosMoved = vec3(0.0);\n\tmat2 rotMatrix;\n`;\n\nvar particleAnimFrameClamp_default = `\n\tfloat animFrame = min(floor(texCoordsAlphaLife.w * animTexParams.y) + animTexParams.x, animTexParams.z);\n`;\n\nvar particleAnimFrameLoop_default = `\n\tfloat animFrame = floor(mod(texCoordsAlphaLife.w * animTexParams.y + animTexParams.x, animTexParams.z + 1.0));\n`;\n\nvar particleAnimTex_default = `\n\tfloat animationIndex;\n\tif (animTexIndexParams.y == 1.0) {\n\t\tanimationIndex = floor((animTexParams.w + 1.0) * rndFactor3.z) * (animTexParams.z + 1.0);\n\t} else {\n\t\tanimationIndex = animTexIndexParams.x * (animTexParams.z + 1.0);\n\t}\n\tfloat atlasX = (animationIndex + animFrame) * animTexTilesParams.x;\n\tfloat atlasY = 1.0 - floor(atlasX + 1.0) * animTexTilesParams.y;\n\tatlasX = fract(atlasX);\n\ttexCoordsAlphaLife.xy *= animTexTilesParams.xy;\n\ttexCoordsAlphaLife.xy += vec2(atlasX, atlasY);\n`;\n\nvar particleInput_default = `\nvoid readInput(float uv) {\n\t#ifdef CAPS_TEXTURE_FLOAT_RENDERABLE\n\t\tvec4 tex = texture2D(particleTexIN, vec2(uv, 0.25));\n\t\tvec4 tex2 = texture2D(particleTexIN, vec2(uv, 0.75));\n\t#else\n\t\tvec4 tex = uintBitsToFloat(texture2D(particleTexIN, vec2(uv, 0.25)));\n\t\tvec4 tex2 = uintBitsToFloat(texture2D(particleTexIN, vec2(uv, 0.75)));\n\t#endif\n\tinPos = tex.xyz;\n\tinVel = tex2.xyz;\n\tinAngle = (tex.w < 0.0 ? -tex.w : tex.w) - 1000.0;\n\tinShow = tex.w >= 0.0;\n\tinLife = tex2.w;\n}\n`;\n\nvar particleOutput_default = `\nvoid writeOutput() {\n\tvec4 row = gl_FragCoord.y < 1.0 ?\n\t\tvec4(outPos, (outAngle + 1000.0) * visMode) :\n\t\tvec4(outVel, outLife);\n\t#ifdef CAPS_TEXTURE_FLOAT_RENDERABLE\n\t\tgl_FragColor = row;\n\t#else\n\t\tgl_FragColor = floatBitsToUint(row);\n\t#endif\n}\n`;\n\nvar particleUpdaterAABB_default = `\nuniform mat3 spawnBounds;\nuniform vec3 spawnPosInnerRatio;\nvec3 calcSpawnPosition(vec3 inBounds, float rndFactor) {\n\tvec3 pos = inBounds - vec3(0.5);\n\tvec3 posAbs = abs(pos);\n\tvec3 maxPos = vec3(max(posAbs.x, max(posAbs.y, posAbs.z)));\n\tvec3 edge = maxPos + (vec3(0.5) - maxPos) * spawnPosInnerRatio;\n\tpos.x = edge.x * (maxPos.x == posAbs.x ? sign(pos.x) : 2.0 * pos.x);\n\tpos.y = edge.y * (maxPos.y == posAbs.y ? sign(pos.y) : 2.0 * pos.y);\n\tpos.z = edge.z * (maxPos.z == posAbs.z ? sign(pos.z) : 2.0 * pos.z);\n#ifndef LOCAL_SPACE\n\treturn emitterPos + spawnBounds * pos;\n#else\n\treturn spawnBounds * pos;\n#endif\n}\nvoid addInitialVelocity(inout vec3 localVelocity, vec3 inBounds) {\n\tlocalVelocity -= vec3(0, 0, initialVelocity);\n}\n`;\n\nvar particleUpdaterEnd_default = `\n\twriteOutput();\n}\n`;\n\nvar particleUpdaterInit_default = `\nvarying vec2 vUv0;\n#ifdef CAPS_TEXTURE_FLOAT_RENDERABLE\n\tuniform highp sampler2D particleTexIN;\n#else\n\tuniform highp usampler2D particleTexIN;\n#endif\nuniform highp sampler2D internalTex0;\nuniform highp sampler2D internalTex1;\nuniform highp sampler2D internalTex2;\nuniform highp sampler2D internalTex3;\nuniform mat3 emitterMatrix;\nuniform mat3 emitterMatrixInv;\nuniform vec3 emitterScale;\nuniform vec3 emitterPos;\nuniform vec3 frameRandom;\nuniform vec3 localVelocityDivMult;\nuniform vec3 velocityDivMult;\nuniform float delta;\nuniform float rate;\nuniform float rateDiv;\nuniform float lifetime;\nuniform float numParticles;\nuniform float rotSpeedDivMult;\nuniform float radialSpeedDivMult;\nuniform float seed;\nuniform float startAngle;\nuniform float startAngle2;\nuniform float initialVelocity;\nuniform float graphSampleSize;\nuniform float graphNumSamples;\nvec3 inPos;\nvec3 inVel;\nfloat inAngle;\nbool inShow;\nfloat inLife;\nfloat visMode;\nvec3 outPos;\nvec3 outVel;\nfloat outAngle;\nbool outShow;\nfloat outLife;\n`;\n\nvar particleUpdaterNoRespawn_default = `\n\tif (outLife >= lifetime) {\n\t\toutLife -= max(lifetime, numParticles * particleRate);\n\t\tvisMode = -1.0;\n\t}\n`;\n\nvar particleUpdaterOnStop_default = `\n\tvisMode = outLife < 0.0? -1.0: visMode;\n`;\n\nvar particleUpdaterRespawn_default = `\n\tif (outLife >= lifetime) {\n\t\toutLife -= max(lifetime, numParticles * particleRate);\n\t\tvisMode = 1.0;\n\t}\n\tvisMode = outLife < 0.0? 1.0: visMode;\n`;\n\nvar particleUpdaterSphere_default = `\nuniform float spawnBoundsSphere;\nuniform float spawnBoundsSphereInnerRatio;\nvec3 calcSpawnPosition(vec3 inBounds, float rndFactor) {\n\tfloat rnd4 = fract(rndFactor * 1000.0);\n\tvec3 norm = normalize(inBounds.xyz - vec3(0.5));\n\tfloat r = rnd4 * (1.0 - spawnBoundsSphereInnerRatio) + spawnBoundsSphereInnerRatio;\n#ifndef LOCAL_SPACE\n\treturn emitterPos + norm * r * spawnBoundsSphere;\n#else\n\treturn norm * r * spawnBoundsSphere;\n#endif\n}\nvoid addInitialVelocity(inout vec3 localVelocity, vec3 inBounds) {\n\tlocalVelocity += normalize(inBounds - vec3(0.5)) * initialVelocity;\n}\n`;\n\nvar particleUpdaterStart_default = `\nfloat saturate(float x) {\n\treturn clamp(x, 0.0, 1.0);\n}\nvec3 unpack3NFloats(float src) {\n\tfloat r = fract(src);\n\tfloat g = fract(src * 256.0);\n\tfloat b = fract(src * 65536.0);\n\treturn vec3(r, g, b);\n}\nvec3 tex1Dlod_lerp(TEXTURE_ACCEPT_HIGHP(tex), vec2 tc, out vec3 w) {\n\tvec4 a = texture2D(tex, tc);\n\tvec4 b = texture2D(tex, tc + graphSampleSize);\n\tfloat c = fract(tc.x * graphNumSamples);\n\tvec3 unpackedA = unpack3NFloats(a.w);\n\tvec3 unpackedB = unpack3NFloats(b.w);\n\tw = mix(unpackedA, unpackedB, c);\n\treturn mix(a.xyz, b.xyz, c);\n}\n#define HASHSCALE4 vec4(1031, .1030, .0973, .1099)\nvec4 hash41(float p) {\n\tvec4 p4 = fract(vec4(p) * HASHSCALE4);\n\tp4 += dot(p4, p4.wzxy+19.19);\n\treturn fract(vec4((p4.x + p4.y)*p4.z, (p4.x + p4.z)*p4.y, (p4.y + p4.z)*p4.w, (p4.z + p4.w)*p4.x));\n}\nvoid main(void) {\n\tif (gl_FragCoord.x > numParticles) discard;\n\treadInput(vUv0.x);\n\tvisMode = inShow? 1.0 : -1.0;\n\tvec4 rndFactor = hash41(gl_FragCoord.x + seed);\n\tfloat particleRate = rate + rateDiv * rndFactor.x;\n\toutLife = inLife + delta;\n\tfloat nlife = clamp(outLife / lifetime, 0.0, 1.0);\n\tvec3 localVelocityDiv;\n\tvec3 velocityDiv;\n\tvec3 paramDiv;\n\tvec3 localVelocity = tex1Dlod_lerp(TEXTURE_PASS(internalTex0), vec2(nlife, 0), localVelocityDiv);\n\tvec3 velocity =\t  tex1Dlod_lerp(TEXTURE_PASS(internalTex1), vec2(nlife, 0), velocityDiv);\n\tvec3 params =\t\ttex1Dlod_lerp(TEXTURE_PASS(internalTex2), vec2(nlife, 0), paramDiv);\n\tfloat rotSpeed = params.x;\n\tfloat rotSpeedDiv = paramDiv.y;\n\tvec3 radialParams = tex1Dlod_lerp(TEXTURE_PASS(internalTex3), vec2(nlife, 0), paramDiv);\n\tfloat radialSpeed = radialParams.x;\n\tfloat radialSpeedDiv = radialParams.y;\n\tbool respawn = inLife <= 0.0 || outLife >= lifetime;\n\tinPos = respawn ? calcSpawnPosition(rndFactor.xyz, rndFactor.x) : inPos;\n\tinAngle = respawn ? mix(startAngle, startAngle2, rndFactor.x) : inAngle;\n#ifndef LOCAL_SPACE\n\tvec3 radialVel = inPos - emitterPos;\n#else\n\tvec3 radialVel = inPos;\n#endif\n\tradialVel = (dot(radialVel, radialVel) > 1.0E-8) ? radialSpeed * normalize(radialVel) : vec3(0.0);\n\tradialVel += (radialSpeedDiv * vec3(2.0) - vec3(1.0)) * radialSpeedDivMult * rndFactor.xyz;\n\tlocalVelocity +=\t(localVelocityDiv * vec3(2.0) - vec3(1.0)) * localVelocityDivMult * rndFactor.xyz;\n\tvelocity +=\t\t (velocityDiv * vec3(2.0) - vec3(1.0)) * velocityDivMult * rndFactor.xyz;\n\trotSpeed +=\t\t (rotSpeedDiv * 2.0 - 1.0) * rotSpeedDivMult * rndFactor.y;\n\taddInitialVelocity(localVelocity, rndFactor.xyz);\n#ifndef LOCAL_SPACE\n\toutVel = emitterMatrix * localVelocity + (radialVel + velocity) * emitterScale;\n#else\n\toutVel = (localVelocity + radialVel) / emitterScale + emitterMatrixInv * velocity;\n#endif\n\toutPos = inPos + outVel * delta;\n\toutAngle = inAngle + rotSpeed * delta;\n`;\n\nvar particle_billboard_default = `\n\tquadXY = rotate(quadXY, inAngle, rotMatrix);\n\tvec3 localPos = billboard(particlePos, quadXY);\n`;\n\nvar particle_blendAdd_default = `\n\tdBlendModeFogFactor = 0.0;\n\trgb *= saturate(gammaCorrectInput(max(a, 0.0)));\n\tif ((rgb.r + rgb.g + rgb.b) < 0.000001) discard;\n`;\n\nvar particle_blendMultiply_default = `\n\trgb = mix(vec3(1.0), rgb, vec3(a));\n\tif (rgb.r + rgb.g + rgb.b > 2.99) discard;\n`;\n\nvar particle_blendNormal_default = `\n\tif (a < 0.01) discard;\n`;\n\nvar particle_cpu_default = `\nattribute vec4 particle_vertexData;\nattribute vec4 particle_vertexData2;\nattribute vec4 particle_vertexData3;\nattribute float particle_vertexData4;\n#ifndef USE_MESH\n\tattribute vec2 particle_vertexData5;\n#else\n\tattribute vec4 particle_vertexData5;\n#endif\nuniform mat4 matrix_viewProjection;\nuniform mat4 matrix_model;\n#ifndef VIEWMATRIX\n\t#define VIEWMATRIX\n\tuniform mat4 matrix_view;\n#endif\nuniform mat3 matrix_normal;\nuniform mat4 matrix_viewInverse;\nuniform float numParticles;\nuniform float lifetime;\nuniform float stretch;\nuniform float seed;\nuniform vec3 emitterScale;\nuniform vec3 faceTangent;\nuniform vec3 faceBinorm;\n#ifdef PARTICLE_GPU\n\t#ifdef WRAP\n\t\tuniform vec3 wrapBounds;\n\t#endif\n#endif\n#ifdef PARTICLE_GPU\n\tuniform highp sampler2D internalTex0;\n\tuniform highp sampler2D internalTex1;\n\tuniform highp sampler2D internalTex2;\n#endif\nuniform vec3 emitterPos;\nvarying vec4 texCoordsAlphaLife;\nvec2 rotate(vec2 quadXY, float pRotation, out mat2 rotMatrix)\n{\n\tfloat c = cos(pRotation);\n\tfloat s = sin(pRotation);\n\tmat2 m = mat2(c, -s, s, c);\n\trotMatrix = m;\n\treturn m * quadXY;\n}\nvec3 billboard(vec3 InstanceCoords, vec2 quadXY)\n{\n\t#ifdef SCREEN_SPACE\n\t\tvec3 pos = vec3(-1, 0, 0) * quadXY.x + vec3(0, -1, 0) * quadXY.y;\n\t#else\n\t\tvec3 pos = -matrix_viewInverse[0].xyz * quadXY.x + -matrix_viewInverse[1].xyz * quadXY.y;\n\t#endif\n\treturn pos;\n}\nvec3 customFace(vec3 InstanceCoords, vec2 quadXY)\n{\n\tvec3 pos = faceTangent * quadXY.x + faceBinorm * quadXY.y;\n\treturn pos;\n}\nvoid main(void)\n{\n\tvec3 particlePos = particle_vertexData.xyz;\n\tvec3 inPos = particlePos;\n\tvec3 vertPos = particle_vertexData3.xyz;\n\tvec3 inVel = vec3(particle_vertexData2.w, particle_vertexData3.w, particle_vertexData5.x);\n\tfloat id = floor(particle_vertexData4);\n\tfloat rndFactor = fract(sin(id + 1.0 + seed));\n\tvec3 rndFactor3 = vec3(rndFactor, fract(rndFactor*10.0), fract(rndFactor*100.0));\n#ifdef LOCAL_SPACE\n\tinVel = mat3(matrix_model) * inVel;\n#endif\n\tvec2 velocityV = normalize((mat3(matrix_view) * inVel).xy);\n\tvec2 quadXY = vertPos.xy;\n#ifdef USE_MESH\n\ttexCoordsAlphaLife = vec4(particle_vertexData5.zw, particle_vertexData2.z, particle_vertexData.w);\n#else\n\ttexCoordsAlphaLife = vec4(quadXY * -0.5 + 0.5, particle_vertexData2.z, particle_vertexData.w);\n#endif\n\tmat2 rotMatrix;\n\tfloat inAngle = particle_vertexData2.x;\n\tvec3 particlePosMoved = vec3(0.0);\n\tvec3 meshLocalPos = particle_vertexData3.xyz;\n`;\n\nvar particle_cpu_end_default = `\n\tlocalPos *= particle_vertexData2.y * emitterScale;\n\tlocalPos += particlePos;\n\t#ifdef SCREEN_SPACE\n\tgl_Position = vec4(localPos.x, localPos.y, 0.0, 1.0);\n\t#else\n\tgl_Position = matrix_viewProjection * vec4(localPos, 1.0);\n\t#endif\n`;\n\nvar particle_customFace_default = `\n\tquadXY = rotate(quadXY, inAngle, rotMatrix);\n\tvec3 localPos = customFace(particlePos, quadXY);\n`;\n\nvar particle_end_default = `\n\trgb = addFog(rgb);\n\trgb = toneMap(rgb);\n\trgb = gammaCorrectOutput(rgb);\n\tgl_FragColor = vec4(rgb, a);\n}\n`;\n\nvar particle_end_default2 = `\n\tlocalPos *= scale * emitterScale;\n\tlocalPos += particlePos;\n\t#ifdef SCREEN_SPACE\n\tgl_Position = vec4(localPos.x, localPos.y, 0.0, 1.0);\n\t#else\n\tgl_Position = matrix_viewProjection * vec4(localPos.xyz, 1.0);\n\t#endif\n`;\n\nvar particle_halflambert_default = `\n\tvec3 negNormal = normal * 0.5 + 0.5;\n\tvec3 posNormal = -normal * 0.5 + 0.5;\n\tnegNormal *= negNormal;\n\tposNormal *= posNormal;\n`;\n\nvar particle_init_default = `\nattribute vec4 particle_vertexData;\n#if defined(USE_MESH)\n\t#if defined(USE_MESH_UV)\n\t\tattribute vec2 particle_uv;\n\t#else\n\t\tvec2 particle_uv = vec2(0.0, 0.0);\n\t#endif\n#endif\nuniform mat4 matrix_viewProjection;\nuniform mat4 matrix_model;\nuniform mat3 matrix_normal;\nuniform mat4 matrix_viewInverse;\n#ifndef VIEWMATRIX\n\t#define VIEWMATRIX\n\tuniform mat4 matrix_view;\n#endif\nuniform float numParticles;\nuniform float numParticlesPot;\nuniform float graphSampleSize;\nuniform float graphNumSamples;\nuniform float stretch;\nuniform vec3 emitterScale;\nuniform vec3 emitterPos;\nuniform vec3 faceTangent;\nuniform vec3 faceBinorm;\nuniform float rate;\nuniform float rateDiv;\nuniform float lifetime;\nuniform float scaleDivMult;\nuniform float alphaDivMult;\nuniform float seed;\nuniform float delta;\n#ifdef CAPS_TEXTURE_FLOAT_RENDERABLE\n\tuniform sampler2D particleTexOUT;\n\tuniform sampler2D particleTexIN;\n#else\n\tuniform highp usampler2D particleTexOUT;\n\tuniform highp usampler2D particleTexIN;\n#endif\n#ifdef PARTICLE_GPU\n\t#ifdef WRAP\n\t\tuniform vec3 wrapBounds;\n\t#endif\n#endif\n#ifdef PARTICLE_GPU\n\tuniform highp sampler2D internalTex0;\n\tuniform highp sampler2D internalTex1;\n\tuniform highp sampler2D internalTex2;\n#endif\n#ifndef CAMERAPLANES\n\t#define CAMERAPLANES\n\tuniform vec4 camera_params;\n#endif\nvarying vec4 texCoordsAlphaLife;\nvec3 inPos;\nvec3 inVel;\nfloat inAngle;\nbool inShow;\nfloat inLife;\n`;\n\nvar particle_lambert_default = `\n\tvec3 negNormal = max(normal, vec3(0.0));\n\tvec3 posNormal = max(-normal, vec3(0.0));\n`;\n\nvar particle_lighting_default = `\n\tvec3 light = negNormal.x*lightCube[0] + posNormal.x*lightCube[1] +\n\t\t\t\t\t\tnegNormal.y*lightCube[2] + posNormal.y*lightCube[3] +\n\t\t\t\t\t\tnegNormal.z*lightCube[4] + posNormal.z*lightCube[5];\n\trgb *= light;\n`;\n\nvar particle_localShift_default = `\n\tparticlePos = (matrix_model * vec4(particlePos, 1.0)).xyz;\n`;\n\nvar particle_mesh_default = `\n\tvec3 localPos = meshLocalPos;\n\tlocalPos.xy = rotate(localPos.xy, inAngle, rotMatrix);\n\tlocalPos.yz = rotate(localPos.yz, inAngle, rotMatrix);\n\tbillboard(particlePos, quadXY);\n`;\n\nvar particle_normal_default = `\n\tNormal = normalize(localPos + matrix_viewInverse[2].xyz);\n`;\n\nvar particle_normalMap_default = `\n\tvec3 normalMap = normalize(texture2D(normalMap, vec2(texCoordsAlphaLife.x, 1.0 - texCoordsAlphaLife.y)).xyz * 2.0 - 1.0);\n\tvec3 normal = ParticleMat * normalMap;\n`;\n\nvar particle_pointAlong_default = `\n\tinAngle = atan(velocityV.x, velocityV.y);\n`;\n\nvar particle_simulation_default = `\n\t#include \"particleUpdaterInitPS\"\n\t#include \"particleInputPS\"\n\t#include \"particleOutputPS\"\n\t#ifdef EMITTERSHAPE_BOX\n\t\t#include \"particleUpdaterAABBPS\"\n\t#else\n\t\t#include \"particleUpdaterSpherePS\"\n\t#endif\n\t#include \"particleUpdaterStartPS\"\n\t#ifdef RESPAWN\n\t\t#include \"particleUpdaterRespawnPS\"\n\t#endif\n\t#ifdef NO_RESPAWN\n\t\t#include \"particleUpdaterNoRespawnPS\"\n\t#endif\n\t#ifdef ON_STOP\n\t\t#include \"particleUpdaterOnStopPS\"\n\t#endif\n\t#include \"particleUpdaterEndPS\"\n`;\n\nvar particle_shader_default = `\n\t#if NORMAL != NONE\n\t\t#if NORMAL == VERTEX\n\t\t\tvarying vec3 Normal;\n\t\t#endif\n\t\t#if NORMAL == MAP\n\t\t\tvarying mat3 ParticleMat;\n\t\t#endif\n\t\tuniform vec3 lightCube[6];\n\t#endif\n\t#ifdef SOFT\n\t\tvarying float vDepth;\n\t\t#include \"screenDepthPS\"\n\t#endif\n\t#include \"gammaPS\"\n\t#include \"tonemappingPS\"\n\t#include \"fogPS\"\n\t#if NORMAL == MAP\n\t\tuniform sampler2D normalMap;\n\t#endif\n\t#include \"particlePS\"\n\t#ifdef SOFT\n\t\t#include \"particle_softPS\"\n\t#endif\n\t#if NORMAL == VERTEX\n\t\tvec3 normal = Normal;\n\t#endif\n\t#if NORMAL == MAP\n\t\t#include \"particle_normalMapPS\"\n\t#endif\n\t#if NORMAL != NONE\n\t\t#ifdef HALF_LAMBERT\n\t\t\t#include \"particle_halflambertPS\"\n\t\t#else\n\t\t\t#include \"particle_lambertPS\"\n\t\t#endif\n\t\t#include \"particle_lightingPS\"\n\t#endif\n\t#if BLEND == NORMAL\n\t\t#include \"particle_blendNormalPS\"\n\t#elif BLEND == ADDITIVE\n\t\t#include \"particle_blendAddPS\"\n\t#elif BLEND == MULTIPLICATIVE\n\t\t#include \"particle_blendMultiplyPS\"\n\t#endif\n\t#include \"particle_endPS\"\n`;\n\nvar particle_shader_default2 = `\n\t#ifdef ANIMTEX\n\t\tuniform vec2 animTexTilesParams;\n\t\tuniform vec4 animTexParams;\n\t\tuniform vec2 animTexIndexParams;\n\t#endif\n\t#if NORMAL == MAP\n\t\tvarying mat3 ParticleMat;\n\t#endif\n\t#if NORMAL == VERTEX\n\t\tvarying vec3 Normal;\n\t#endif\n\t#ifdef SOFT\n\t\tvarying float vDepth;\n\t#endif\n\t#ifdef PARTICLE_GPU\n\t\t#include \"particle_initVS\"\n\t\t#include \"particleInputPS\"\n\t\t#ifdef SOFT\n\t\t\t#include \"screenDepthPS\"\n\t\t#endif\n\t\t#include \"particleVS\"\n\t#else\n\t\t#ifdef SOFT\n\t\t\t#include \"screenDepthPS\"\n\t\t#endif\n\t\t#include \"particle_cpuVS\"\n\t#endif\n\t#ifdef LOCAL_SPACE\n\t\t#include \"particle_localShiftVS\"\n\t#endif\n\t#ifdef ANIMTEX\n\t\t#ifdef ANIMTEX_LOOP\n\t\t\t#include \"particleAnimFrameLoopVS\"\n\t\t#else\n\t\t\t#include \"particleAnimFrameClampVS\"\n\t\t#endif\n\t\t#include \"particleAnimTexVS\"\n\t#endif\n\t#ifdef PARTICLE_GPU\n\t\t#ifdef WRAP\n\t\t\t#include \"particle_wrapVS\"\n\t\t#endif\n\t#endif\n\t#ifdef ALIGN_TO_MOTION\n\t\t#include \"particle_pointAlongVS\"\n\t#endif\n\t#ifdef USE_MESH\n\t\t#include \"particle_meshVS\"\n\t#else\n\t\t#ifdef CUSTOM_FACE\n\t\t\t#include \"particle_customFaceVS\"\n\t\t#else\n\t\t\t#include \"particle_billboardVS\"\n\t\t#endif\n\t#endif\n\t#if NORMAL == VERTEX\n\t\t#include \"particle_normalVS\"\n\t#endif\n\t#if NORMAL == MAP\n\t\t#include \"particle_TBNVS\"\n\t#endif\n\t#ifdef STRETCH\n\t\t#include \"particle_stretchVS\"\n\t#endif\n\t#ifdef PARTICLE_GPU\n\t\t#include \"particle_endVS\"\n\t#else\n\t\t#include \"particle_cpu_endVS\"\n\t#endif\n\t#ifdef SOFT\n\t\t#include \"particle_softVS\"\n\t#endif\n\t}\n`;\n\nvar particle_soft_default = `\n\tfloat depth = getLinearScreenDepth();\n\tfloat particleDepth = vDepth;\n\tfloat depthDiff = saturate(abs(particleDepth - depth) * softening);\n\ta *= depthDiff;\n`;\n\nvar particle_soft_default2 = `\n\tvDepth = getLinearDepth(localPos);\n`;\n\nvar particle_stretch_default = `\n\tvec3 moveDir = inVel * stretch;\n\tvec3 posPrev = particlePos - moveDir;\n\tposPrev += particlePosMoved;\n\tvec2 centerToVertexV = normalize((mat3(matrix_view) * localPos).xy);\n\tfloat interpolation = dot(-velocityV, centerToVertexV) * 0.5 + 0.5;\n\tparticlePos = mix(particlePos, posPrev, interpolation);\n`;\n\nvar particle_TBN_default = `\n\tmat3 rot3 = mat3(rotMatrix[0][0], rotMatrix[0][1], 0.0, rotMatrix[1][0], rotMatrix[1][1], 0.0, 0.0, 0.0, 1.0);\n\tParticleMat = mat3(-matrix_viewInverse[0].xyz, -matrix_viewInverse[1].xyz, matrix_viewInverse[2].xyz) * rot3;\n`;\n\nvar particle_wrap_default = `\n\tvec3 origParticlePos = particlePos;\n\tparticlePos -= matrix_model[3].xyz;\n\tparticlePos = mod(particlePos, wrapBounds) - wrapBounds * 0.5;\n\tparticlePos += matrix_model[3].xyz;\n\tparticlePosMoved = particlePos - origParticlePos;\n`;\n\nvar particleChunksGLSL = {\n\tparticlePS: particle_default,\n\tparticleVS: particle_default2,\n\tparticleAnimFrameClampVS: particleAnimFrameClamp_default,\n\tparticleAnimFrameLoopVS: particleAnimFrameLoop_default,\n\tparticleAnimTexVS: particleAnimTex_default,\n\tparticleInputPS: particleInput_default,\n\tparticleOutputPS: particleOutput_default,\n\tparticleUpdaterAABBPS: particleUpdaterAABB_default,\n\tparticleUpdaterEndPS: particleUpdaterEnd_default,\n\tparticleUpdaterInitPS: particleUpdaterInit_default,\n\tparticleUpdaterNoRespawnPS: particleUpdaterNoRespawn_default,\n\tparticleUpdaterOnStopPS: particleUpdaterOnStop_default,\n\tparticleUpdaterRespawnPS: particleUpdaterRespawn_default,\n\tparticleUpdaterSpherePS: particleUpdaterSphere_default,\n\tparticleUpdaterStartPS: particleUpdaterStart_default,\n\tparticle_billboardVS: particle_billboard_default,\n\tparticle_blendAddPS: particle_blendAdd_default,\n\tparticle_blendMultiplyPS: particle_blendMultiply_default,\n\tparticle_blendNormalPS: particle_blendNormal_default,\n\tparticle_cpuVS: particle_cpu_default,\n\tparticle_cpu_endVS: particle_cpu_end_default,\n\tparticle_customFaceVS: particle_customFace_default,\n\tparticle_endPS: particle_end_default,\n\tparticle_endVS: particle_end_default2,\n\tparticle_halflambertPS: particle_halflambert_default,\n\tparticle_initVS: particle_init_default,\n\tparticle_lambertPS: particle_lambert_default,\n\tparticle_lightingPS: particle_lighting_default,\n\tparticle_localShiftVS: particle_localShift_default,\n\tparticle_meshVS: particle_mesh_default,\n\tparticle_normalVS: particle_normal_default,\n\tparticle_normalMapPS: particle_normalMap_default,\n\tparticle_pointAlongVS: particle_pointAlong_default,\n\tparticle_simulationPS: particle_simulation_default,\n\tparticle_shaderPS: particle_shader_default,\n\tparticle_shaderVS: particle_shader_default2,\n\tparticle_softPS: particle_soft_default,\n\tparticle_softVS: particle_soft_default2,\n\tparticle_stretchVS: particle_stretch_default,\n\tparticle_TBNVS: particle_TBN_default,\n\tparticle_wrapVS: particle_wrap_default\n};\n\nvar particle_default3 = `\nvarying texCoordsAlphaLife: vec4f;\nvar colorMap: texture_2d<f32>;\nvar colorMapSampler: sampler;\nvar colorParam: texture_2d<f32>;\nvar colorParamSampler: sampler;\nuniform graphSampleSize: f32;\nuniform graphNumSamples: f32;\n#ifndef CAMERAPLANES\n\t#define CAMERAPLANES\n\tuniform camera_params: vec4f;\n#endif\n#ifdef SOFT\n\tuniform softening: f32;\n#endif\nuniform colorMult: f32;\nfn saturate(x: f32) -> f32 {\n\treturn clamp(x, 0.0, 1.0);\n}\n@fragment\nfn fragmentMain(input: FragmentInput) -> FragmentOutput {\n\tvar output: FragmentOutput;\n\tlet tex: vec4f  = textureSample(colorMap, colorMapSampler, vec2f(input.texCoordsAlphaLife.x, 1.0 - input.texCoordsAlphaLife.y));\n\tvar ramp: vec4f = textureSample(colorParam, colorParamSampler, vec2f(input.texCoordsAlphaLife.w, 0.0));\n\tramp = vec4f(ramp.rgb * uniform.colorMult, ramp.a);\n\tramp.a = ramp.a + input.texCoordsAlphaLife.z;\n\tvar rgb: vec3f = tex.rgb * ramp.rgb;\n\tvar a: f32 = tex.a * ramp.a;\n`;\n\nvar particle_default4 = `\nfn unpack3NFloats(src: f32) -> vec3f {\n\tlet r = fract(src);\n\tlet g = fract(src * 256.0);\n\tlet b = fract(src * 65536.0);\n\treturn vec3f(r, g, b);\n}\nfn saturate(x: f32) -> f32 {\n\treturn clamp(x, 0.0, 1.0);\n}\nstruct TexLerpUnpackResult {\n\tresult: vec4f,\n\tunpacked: vec3f\n}\nfn tex1Dlod_lerp_simple(tex: texture_2d<f32>, textureSize: vec2u, tc: vec2f) -> vec4f {\n\tlet tc_next = tc + vec2f(uniform.graphSampleSize);\n\tlet texelA: vec2i = vec2i(tc * vec2f(textureSize));\n\tlet texelB: vec2i = vec2i(tc_next * vec2f(textureSize));\n\treturn mix( textureLoad(tex, texelA, 0), textureLoad(tex, texelB, 0), fract(tc.x * uniform.graphNumSamples) );\n}\nfn tex1Dlod_lerp_unpack(tex: texture_2d<f32>, textureSize: vec2u, tc: vec2f) -> TexLerpUnpackResult {\n\tlet tc_next = tc + vec2f(uniform.graphSampleSize);\n\tlet texelA: vec2i = vec2i(tc * vec2f(textureSize));\n\tlet texelB: vec2i = vec2i(tc_next * vec2f(textureSize));\n\tlet a = textureLoad(tex, texelA, 0);\n\tlet b = textureLoad(tex, texelB, 0);\n\tlet c = fract(tc.x * uniform.graphNumSamples);\n\tlet unpackedA = unpack3NFloats(a.w);\n\tlet unpackedB = unpack3NFloats(b.w);\n\tlet w_out = mix(unpackedA, unpackedB, c);\n\treturn TexLerpUnpackResult(mix(a, b, c), w_out);\n}\nstruct RotateResult {\n\trotatedVec: vec2f,\n\tmatrix: mat2x2f\n}\nfn rotateWithMatrix(quadXY: vec2f, pRotation: f32) -> RotateResult {\n\tlet c = cos(pRotation);\n\tlet s = sin(pRotation);\n\tlet m = mat2x2f(vec2f(c, -s), vec2f(s, c));\n\treturn RotateResult(m * quadXY, m);\n}\nfn billboard(InstanceCoords: vec3f, quadXY: vec2f) -> vec3f {\n\tvar pos: vec3f;\n\t#ifdef SCREEN_SPACE\n\t\tpos = vec3f(-1.0, 0.0, 0.0) * quadXY.x + vec3f(0.0, -1.0, 0.0) * quadXY.y;\n\t#else\n\t\tpos = -uniform.matrix_viewInverse[0].xyz * quadXY.x + -uniform.matrix_viewInverse[1].xyz * quadXY.y;\n\t#endif\n\treturn pos;\n}\nfn customFace(InstanceCoords: vec3f, quadXY: vec2f) -> vec3f {\n\tlet pos = uniform.faceTangent * quadXY.x + uniform.faceBinorm * quadXY.y;\n\treturn pos;\n}\nfn safeNormalize(v: vec2f) -> vec2f {\n\tlet l = length(v);\n\treturn select(v, v / l, l > 1e-06);\n}\n@vertex\nfn vertexMain(input: VertexInput) -> VertexOutput {\n\tvar output: VertexOutput;\n\tlet meshLocalPos_in = input.particle_vertexData.xyz;\n\tlet id = floor(input.particle_vertexData.w);\n\tlet rndFactor = fract(sin(id + 1.0 + uniform.seed));\n\tlet rndFactor3 = vec3f(rndFactor, fract(rndFactor*10.0), fract(rndFactor*100.0));\n\tlet uv = id / uniform.numParticlesPot;\n\treadInput(uv);\n\t#ifdef LOCAL_SPACE\n\t\tlet modelRotation = mat3x3f(uniform.matrix_model[0].xyz, uniform.matrix_model[1].xyz, uniform.matrix_model[2].xyz);\n\t\tinVel = modelRotation * inVel;\n\t#endif\n\tlet viewRotation = mat3x3f(uniform.matrix_view[0].xyz, uniform.matrix_view[1].xyz, uniform.matrix_view[2].xyz);\n\tlet velocityV = safeNormalize((viewRotation * inVel).xy);\n\tlet particleLifetime = uniform.lifetime;\n\tvar meshLocalPos = meshLocalPos_in;\n\tif (inLife <= 0.0 || inLife > particleLifetime || !inShow) {\n\t\t meshLocalPos = vec3f(0.0);\n\t}\n\tlet quadXY = meshLocalPos.xy;\n\tlet nlife = clamp(inLife / particleLifetime, 0.0, 1.0);\n\tlet internalTexSize = textureDimensions(internalTex2, 0);\n\tlet lerp_result = tex1Dlod_lerp_unpack(internalTex2, internalTexSize, vec2f(nlife, 0.0));\n\tlet params = lerp_result.result;\n\tlet paramDiv = lerp_result.unpacked;\n\tvar scale = params.y;\n\tlet scaleDiv = paramDiv.x;\n\tlet alphaDiv = paramDiv.z;\n\tscale = scale + (scaleDiv * 2.0 - 1.0) * uniform.scaleDivMult * fract(rndFactor*10000.0);\n\t#ifndef USE_MESH\n\t\toutput.texCoordsAlphaLife = vec4f(quadXY * -0.5 + 0.5, (alphaDiv * 2.0 - 1.0) * uniform.alphaDivMult * fract(rndFactor*1000.0), nlife);\n\t#else\n\t\toutput.texCoordsAlphaLife = vec4f(particle_uv, (alphaDiv * 2.0 - 1.0) * uniform.alphaDivMult * fract(rndFactor*1000.0), nlife);\n\t#endif\n\tvar particlePos = inPos;\n\tvar particlePosMoved = vec3f(0.0);\n\tvar rotMatrix: mat2x2f;\n`;\n\nvar particleAnimFrameClamp_default2 = `\n\tlet animFrame: f32 = min(floor(input.texCoordsAlphaLife.w * uniform.animTexParams.y) + uniform.animTexParams.x, uniform.animTexParams.z);\n`;\n\nvar particleAnimFrameLoop_default2 = `\n\tlet animFrame: f32 = floor((output.texCoordsAlphaLife.w * uniform.animTexParams.y + uniform.animTexParams.x) % (uniform.animTexParams.z + 1.0));\t\n`;\n\nvar particleAnimTex_default2 = `\n\tvar animationIndex: f32;\n\tif (uniform.animTexIndexParams.y == 1.0) {\n\t\tanimationIndex = floor((uniform.animTexParams.w + 1.0) * rndFactor3.z) * (uniform.animTexParams.z + 1.0);\n\t} else {\n\t\tanimationIndex = uniform.animTexIndexParams.x * (uniform.animTexParams.z + 1.0);\n\t}\n\tvar atlasX: f32 = (animationIndex + animFrame) * uniform.animTexTilesParams.x;\n\tlet atlasY: f32 = 1.0 - floor(atlasX + 1.0) * uniform.animTexTilesParams.y;\n\tatlasX = fract(atlasX);\n\tlet current_tcal_xy = output.texCoordsAlphaLife.xy;\n\tlet scaled_tcal_xy = current_tcal_xy * uniform.animTexTilesParams.xy;\n\tlet final_tcal_xy = scaled_tcal_xy + vec2f(atlasX, atlasY);\n\toutput.texCoordsAlphaLife = vec4f(final_tcal_xy, output.texCoordsAlphaLife.z, output.texCoordsAlphaLife.w);\n`;\n\nvar particleInput_default2 = `\nfn readInput(uv: f32) {\n\tlet textureSize = textureDimensions(particleTexIN, 0);\n\tlet texel0: vec2i = vec2i(vec2f(uv, 0.25) * vec2f(textureSize));\n\tlet texel1: vec2i = vec2i(vec2f(uv, 0.75) * vec2f(textureSize));\n\tlet tex: vec4f = textureLoad(particleTexIN, texel0, 0);\n\tlet tex2: vec4f = textureLoad(particleTexIN, texel1, 0);\n\tinPos = tex.xyz;\n\tinVel = tex2.xyz;\n\tinAngle = abs(tex.w) - 1000.0;\n\tinShow = tex.w >= 0.0;\n\tinLife = tex2.w;\n}\n`;\n\nvar particleOutput_default2 = `\nfn getOutput() -> vec4f {\n\tif (pcPosition.y < 1.0) {\n\t\treturn vec4f(outPos, (outAngle + 1000.0) * visMode);\n\t} else {\n\t\treturn vec4f(outVel, outLife);\n\t}\n}\n`;\n\nvar particleUpdaterAABB_default2 = `\nuniform spawnBounds: mat3x3f;\nuniform spawnPosInnerRatio: vec3f;\nfn calcSpawnPosition(inBounds: vec3f, rndFactor: f32) -> vec3f {\n\tvar pos = inBounds - vec3f(0.5);\n\tlet posAbs = abs(pos);\n\tlet maxComp = max(posAbs.x, max(posAbs.y, posAbs.z));\n\tlet maxPos = vec3f(maxComp);\n\tlet edge = maxPos + (vec3f(0.5) - maxPos) * uniform.spawnPosInnerRatio;\n\tpos.x = edge.x * select(2.0 * pos.x, sign(pos.x), maxPos.x == posAbs.x);\n\tpos.y = edge.y * select(2.0 * pos.y, sign(pos.y), maxPos.y == posAbs.y);\n\tpos.z = edge.z * select(2.0 * pos.z, sign(pos.z), maxPos.z == posAbs.z);\n\t#ifndef LOCAL_SPACE\n\t\treturn uniform.emitterPos + uniform.spawnBounds * pos;\n\t#else\n\t\treturn uniform.spawnBounds * pos;\n\t#endif\n}\nfn addInitialVelocity(localVelocity: ptr<function, vec3f>, inBounds: vec3f) {\n\t*localVelocity = *localVelocity - vec3f(0.0, 0.0, uniform.initialVelocity);\n}\n`;\n\nvar particleUpdaterEnd_default2 = `\n\toutput.color = getOutput();\n\treturn output;\n}\n`;\n\nvar particleUpdaterInit_default2 = `\nvarying vUv0: vec2f;\nvar particleTexIN: texture_2d<uff>;\nvar internalTex0: texture_2d<uff>;\nvar internalTex1: texture_2d<uff>;\nvar internalTex2: texture_2d<uff>;\nvar internalTex3: texture_2d<uff>;\nuniform emitterMatrix: mat3x3f;\nuniform emitterMatrixInv: mat3x3f;\nuniform emitterScale: vec3f;\nuniform emitterPos: vec3f;\nuniform frameRandom: vec3f;\nuniform localVelocityDivMult: vec3f;\nuniform velocityDivMult: vec3f;\nuniform delta: f32;\nuniform rate: f32;\nuniform rateDiv: f32;\nuniform lifetime: f32;\nuniform numParticles: f32;\nuniform rotSpeedDivMult: f32;\nuniform radialSpeedDivMult: f32;\nuniform seed: f32;\nuniform startAngle: f32;\nuniform startAngle2: f32;\nuniform initialVelocity: f32;\nuniform graphSampleSize: f32;\nuniform graphNumSamples: f32;\nvar<private> inPos: vec3f;\nvar<private> inVel: vec3f;\nvar<private> inAngle: f32;\nvar<private> inShow: bool;\nvar<private> inLife: f32;\nvar<private> visMode: f32;\nvar<private> outPos: vec3f;\nvar<private> outVel: vec3f;\nvar<private> outAngle: f32;\nvar<private> outShow: bool;\nvar<private> outLife: f32;\n`;\n\nvar particleUpdaterNoRespawn_default2 = `\n\tif (outLife >= uniform.lifetime) {\n\t\toutLife = outLife - max(uniform.lifetime, uniform.numParticles * particleRate);\n\t\tvisMode = -1.0;\n\t}\n`;\n\nvar particleUpdaterOnStop_default2 = `\n\tvisMode = select(visMode, -1.0, outLife < 0.0);\n`;\n\nvar particleUpdaterRespawn_default2 = `\n\tif (outLife >= uniform.lifetime) {\n\t\tlet subtractAmount = max(uniform.lifetime, uniform.numParticles * particleRate);\n\t\toutLife = outLife - subtractAmount;\n\t\tvisMode = 1.0;\n\t}\n\tvisMode = select(visMode, 1.0, outLife < 0.0);\n`;\n\nvar particleUpdaterSphere_default2 = `\nuniform spawnBoundsSphere: f32;\nuniform spawnBoundsSphereInnerRatio: f32;\nfn calcSpawnPosition(inBounds: vec3f, rndFactor: f32) -> vec3f {\n\tlet rnd4: f32 = fract(rndFactor * 1000.0);\n\tlet norm: vec3f = normalize(inBounds.xyz - vec3f(0.5));\n\tlet r: f32 = rnd4 * (1.0 - uniform.spawnBoundsSphereInnerRatio) + uniform.spawnBoundsSphereInnerRatio;\n\t#ifndef LOCAL_SPACE\n\t\treturn uniform.emitterPos + norm * r * uniform.spawnBoundsSphere;\n\t#else\n\t\treturn norm * r * uniform.spawnBoundsSphere;\n\t#endif\n}\nfn addInitialVelocity(localVelocity: ptr<function, vec3f>, inBounds: vec3f) {\n\tlet initialVelOffset: vec3f = normalize(inBounds - vec3f(0.5)) * uniform.initialVelocity;\n\t*localVelocity = *localVelocity + initialVelOffset;\n}\n`;\n\nvar particleUpdaterStart_default2 = `\nfn saturate(x: f32) -> f32 {\n\treturn clamp(x, 0.0, 1.0);\n}\nfn unpack3NFloats(src: f32) -> vec3f {\n\tlet r = fract(src);\n\tlet g = fract(src * 256.0);\n\tlet b = fract(src * 65536.0);\n\treturn vec3f(r, g, b);\n}\nstruct TexLerpUnpackResult {\n\tresult: vec3f,\n\tunpacked: vec3f\n}\nfn tex1Dlod_lerp(tex: texture_2d<f32>, textureSize: vec2u, tc: vec2f) -> TexLerpUnpackResult {\n\tlet tc_next = tc + vec2f(uniform.graphSampleSize);\n\tlet texelA: vec2i = vec2i(tc * vec2f(textureSize));\n\tlet texelB: vec2i = vec2i(tc_next * vec2f(textureSize));\n\tlet a = textureLoad(tex, texelA, 0);\n\tlet b = textureLoad(tex, texelB, 0);\n\tlet c = fract(tc.x * uniform.graphNumSamples);\n\tlet unpackedA = unpack3NFloats(a.w);\n\tlet unpackedB = unpack3NFloats(b.w);\n\tlet w_out = mix(unpackedA, unpackedB, c);\n\treturn TexLerpUnpackResult(mix(a.xyz, b.xyz, c), w_out);\n}\nconst HASHSCALE4: vec4f = vec4f(1031.0, 0.1030, 0.0973, 0.1099);\nfn hash41(p: f32) -> vec4f {\n\tvar p4 = fract(vec4f(p) * HASHSCALE4);\n\tp4 = p4 + dot(p4, p4.wzxy + 19.19);\n\treturn fract(vec4f((p4.x + p4.y)*p4.z, (p4.x + p4.z)*p4.y, (p4.y + p4.z)*p4.w, (p4.z + p4.w)*p4.x));\n}\n@fragment\nfn fragmentMain(input : FragmentInput) -> FragmentOutput {\n\tvar output: FragmentOutput;\n\tif (pcPosition.x > uniform.numParticles) {\n\t\tdiscard;\n\t\treturn output;\n\t}\n\treadInput(input.vUv0.x);\n\tvisMode = select(-1.0, 1.0, inShow);\n\tlet rndFactor = hash41(pcPosition.x + uniform.seed);\n\tlet particleRate = uniform.rate + uniform.rateDiv * rndFactor.x;\n\toutLife = inLife + uniform.delta;\n\tlet nlife = clamp(outLife / uniform.lifetime, 0.0, 1.0);\n\tlet internalTexSize = textureDimensions(internalTex0, 0);\n\tlet lerpResult0 = tex1Dlod_lerp(internalTex0, internalTexSize, vec2f(nlife, 0.0));\n\tvar localVelocity = lerpResult0.result;\n\tlet localVelocityDiv = lerpResult0.unpacked;\n\tlet lerpResult1 = tex1Dlod_lerp(internalTex1, internalTexSize, vec2f(nlife, 0.0));\n\tvar velocity = lerpResult1.result;\n\tlet velocityDiv = lerpResult1.unpacked;\n\tlet lerpResult2 = tex1Dlod_lerp(internalTex2, internalTexSize, vec2f(nlife, 0.0));\n\tlet params = lerpResult2.result;\n\tlet paramDiv = lerpResult2.unpacked;\n\tvar rotSpeed = params.x;\n\tlet rotSpeedDiv = paramDiv.y;\n\tlet lerpResult3 = tex1Dlod_lerp(internalTex3, internalTexSize, vec2f(nlife, 0.0));\n\tlet radialParams = lerpResult3.result;\n\tlet radialParamDiv = lerpResult3.unpacked;\n\tlet radialSpeed = radialParams.x;\n\tlet radialSpeedDiv = radialParamDiv.y;\n\tlet respawn = inLife <= 0.0 || outLife >= uniform.lifetime;\n\tinPos = select(inPos, calcSpawnPosition(rndFactor.xyz, rndFactor.x), respawn);\n\tinAngle = select(inAngle, mix(uniform.startAngle, uniform.startAngle2, rndFactor.x), respawn);\n\t#ifndef LOCAL_SPACE\n\t\tvar radialVel: vec3f = inPos - uniform.emitterPos;\n\t#else\n\t\tvar radialVel: vec3f = inPos;\n\t#endif\n\tradialVel = select(vec3f(0.0), radialSpeed * normalize(radialVel), dot(radialVel, radialVel) > 1.0E-8);\n\tradialVel = radialVel + (radialSpeedDiv * vec3f(2.0) - vec3f(1.0)) * uniform.radialSpeedDivMult * rndFactor.xyz;\n\tlocalVelocity = localVelocity + (localVelocityDiv * vec3f(2.0) - vec3f(1.0)) * uniform.localVelocityDivMult * rndFactor.xyz;\n\tvelocity = velocity + (velocityDiv * vec3f(2.0) - vec3f(1.0)) * uniform.velocityDivMult * rndFactor.xyz;\n\trotSpeed = rotSpeed + (rotSpeedDiv * 2.0 - 1.0) * uniform.rotSpeedDivMult * rndFactor.y;\n\taddInitialVelocity(&localVelocity, rndFactor.xyz);\n\t#ifndef LOCAL_SPACE\n\t\toutVel = uniform.emitterMatrix * localVelocity + (radialVel + velocity) * uniform.emitterScale;\n\t#else\n\t\toutVel = (localVelocity + radialVel) / uniform.emitterScale + uniform.emitterMatrixInv * velocity;\n\t#endif\n\toutPos = inPos + outVel * uniform.delta;\n\toutAngle = inAngle + rotSpeed * uniform.delta;\n`;\n\nvar particle_billboard_default2 = `\n\tlet rotationResult = rotateWithMatrix(quadXY, inAngle);\n\tlet rotatedQuadXY = rotationResult.rotatedVec;\n\trotMatrix = rotationResult.matrix;\n\tvar localPos = billboard(particlePos, rotatedQuadXY);\n`;\n\nvar particle_blendAdd_default2 = `\n\tdBlendModeFogFactor = 0.0;\n\trgb = rgb * saturate(gammaCorrectInput(max(a, 0.0)));\n\tif ((rgb.r + rgb.g + rgb.b) < 0.000001) {\n\t\tdiscard;\n\t}\t\n`;\n\nvar particle_blendMultiply_default2 = `\n\trgb = mix(vec3f(1.0), rgb, a);\n\tif ((rgb.r + rgb.g + rgb.b) > 2.99) {\n\t\tdiscard;\n\t}\n`;\n\nvar particle_blendNormal_default2 = `\n\tif (a < 0.01) {\n\t\tdiscard;\n\t}\n`;\n\nvar particle_cpu_default2 = `\nattribute particle_vertexData: vec4f;\nattribute particle_vertexData2: vec4f;\nattribute particle_vertexData3: vec4f;\nattribute particle_vertexData4: f32;\n#ifndef USE_MESH\n\tattribute particle_vertexData5: vec2f;\n#else\n\tattribute particle_vertexData5: vec4f;\n#endif\nuniform matrix_viewProjection: mat4x4f;\nuniform matrix_model: mat4x4f;\n#ifndef VIEWMATRIX\n\t#define VIEWMATRIX\n\tuniform matrix_view: mat4x4f;\n#endif\nuniform matrix_normal: mat3x3f;\nuniform matrix_viewInverse: mat4x4f;\nuniform numParticles: f32;\nuniform lifetime: f32;\nuniform stretch: f32;\nuniform seed: f32;\nuniform emitterScale: vec3f;\nuniform faceTangent: vec3f;\nuniform faceBinorm: vec3f;\n#ifdef PARTICLE_GPU\n\t#ifdef WRAP\n\t\tuniform wrapBounds: vec3f;\n\t#endif\n#endif\n#ifdef PARTICLE_GPU\n\tvar internalTex0: texture_2d<uff>;\n\tvar internalTex1: texture_2d<uff>;\n\tvar internalTex2: texture_2d<uff>;\n#endif\nuniform emitterPos: vec3f;\nvarying texCoordsAlphaLife: vec4f;\nstruct RotateResult {\n\trotatedVec: vec2f,\n\tmatrix: mat2x2f\n}\nfn rotateWithMatrix(quadXY: vec2f, pRotation: f32) -> RotateResult {\n\tlet c = cos(pRotation);\n\tlet s = sin(pRotation);\n\tlet m = mat2x2f(vec2f(c, -s), vec2f(s, c));\n\treturn RotateResult(m * quadXY, m);\n}\nfn billboard(InstanceCoords: vec3f, quadXY: vec2f) -> vec3f {\n\tvar pos: vec3f;\n\t#ifdef SCREEN_SPACE\n\t\tpos = vec3f(-1.0, 0.0, 0.0) * quadXY.x + vec3f(0.0, -1.0, 0.0) * quadXY.y;\n\t#else\n\t\tpos = -uniform.matrix_viewInverse[0].xyz * quadXY.x + -uniform.matrix_viewInverse[1].xyz * quadXY.y;\n\t#endif\n\treturn pos;\n}\nfn customFace(InstanceCoords: vec3f, quadXY: vec2f) -> vec3f {\n\tlet pos = uniform.faceTangent * quadXY.x + uniform.faceBinorm * quadXY.y;\n\treturn pos;\n}\nfn safeNormalize(v: vec2f) -> vec2f {\n\tlet l = length(v);\n\treturn select(v, v / l, l > 1e-06);\n}\n@vertex\nfn vertexMain(input: VertexInput) -> VertexOutput {\n\tvar output: VertexOutput;\n\tvar particlePos = input.particle_vertexData.xyz;\n\tlet inPos = particlePos;\n\tlet vertPos = input.particle_vertexData3.xyz;\n\tvar inVel = vec3f(input.particle_vertexData2.w, input.particle_vertexData3.w, input.particle_vertexData5.x);\n\tlet id = floor(input.particle_vertexData4);\n\tlet rndFactor = fract(sin(id + 1.0 + uniform.seed));\n\tlet rndFactor3 = vec3f(rndFactor, fract(rndFactor*10.0), fract(rndFactor*100.0));\n\t#ifdef LOCAL_SPACE\n\t\tlet modelRotation = mat3x3f(uniform.matrix_model[0].xyz, uniform.matrix_model[1].xyz, uniform.matrix_model[2].xyz);\n\t\tinVel = modelRotation * inVel;\n\t#endif\n\tlet velocityV = safeNormalize((mat3x3f(uniform.matrix_view[0].xyz, uniform.matrix_view[1].xyz, uniform.matrix_view[2].xyz) * inVel).xy);\n\tlet quadXY = vertPos.xy;\n\t#ifdef USE_MESH\n\t\toutput.texCoordsAlphaLife = vec4f(input.particle_vertexData5.zw, input.particle_vertexData2.z, input.particle_vertexData.w);\n\t#else\n\t\toutput.texCoordsAlphaLife = vec4f(quadXY * -0.5 + 0.5, input.particle_vertexData2.z, input.particle_vertexData.w);\n\t#endif\n\tvar rotMatrix: mat2x2f;\n\tvar inAngle = input.particle_vertexData2.x;\n\tvar particlePosMoved = vec3f(0.0);\n\tlet meshLocalPos = input.particle_vertexData3.xyz;\n`;\n\nvar particle_cpu_end_default2 = `\n\tlocalPos = localPos * input.particle_vertexData2.y * uniform.emitterScale;\n\tlocalPos = localPos + particlePos;\n\t#ifdef SCREEN_SPACE\n\t\toutput.position = vec4f(localPos.x, localPos.y, 0.0, 1.0);\n\t#else\n\t\toutput.position = uniform.matrix_viewProjection * vec4f(localPos, 1.0);\n\t#endif\n`;\n\nvar particle_customFace_default2 = `\n\tlet rotationResult = rotateWithMatrix(quadXY, inAngle);\n\tlet rotatedQuadXY = rotationResult.rotatedVec;\n\trotMatrix = rotationResult.matrix;\n\tvar localPos = customFace(particlePos, rotatedQuadXY);\n`;\n\nvar particle_end_default3 = `\n\trgb = addFog(rgb);\n\trgb = toneMap(rgb);\n\trgb = gammaCorrectOutput(rgb);\n\toutput.color = vec4f(rgb, a);\n\treturn output;\n}\n`;\n\nvar particle_end_default4 = `\n\tlocalPos = localPos * scale * uniform.emitterScale;\n\tlocalPos = localPos + particlePos;\n\t#ifdef SCREEN_SPACE\n\t\toutput.position = vec4f(localPos.x, localPos.y, 0.0, 1.0);\n\t#else\n\t\toutput.position = uniform.matrix_viewProjection * vec4f(localPos.xyz, 1.0);\n\t#endif\n`;\n\nvar particle_halflambert_default2 = `\n\tvar negNormal: vec3f = normal * 0.5 + 0.5;\n\tvar posNormal: vec3f = -normal * 0.5 + 0.5;\n\tnegNormal = negNormal * negNormal;\n\tposNormal = posNormal * posNormal;\n`;\n\nvar particle_init_default2 = `\nattribute particle_vertexData: vec4f;\n#if defined(USE_MESH)\n\t#if defined(USE_MESH_UV)\n\t\tattribute particle_uv: vec2f;\n\t#else\n\t\tvar<private> particle_uv: vec2f = vec2f(0.0, 0.0);\n\t#endif\n#endif\nuniform matrix_viewProjection: mat4x4f;\nuniform matrix_model: mat4x4f;\nuniform matrix_normal: mat3x3f;\nuniform matrix_viewInverse: mat4x4f;\n#ifndef VIEWMATRIX\n\t#define VIEWMATRIX\n\tuniform matrix_view: mat4x4f;\n#endif\nuniform numParticles: f32;\nuniform numParticlesPot: f32;\nuniform graphSampleSize: f32;\nuniform graphNumSamples: f32;\nuniform stretch: f32;\nuniform emitterScale: vec3f;\nuniform emitterPos: vec3f;\nuniform faceTangent: vec3f;\nuniform faceBinorm: vec3f;\nuniform rate: f32;\nuniform rateDiv: f32;\nuniform lifetime: f32;\nuniform scaleDivMult: f32;\nuniform alphaDivMult: f32;\nuniform seed: f32;\nuniform delta: f32;\n#ifdef PARTICLE_GPU\n\t#ifdef WRAP\n\t\tuniform wrapBounds: vec3f;\n\t#endif\n#endif\nvar particleTexOUT: texture_2d<uff>;\nvar particleTexIN: texture_2d<uff>;\n#ifdef PARTICLE_GPU\n\tvar internalTex0: texture_2d<uff>;\n\tvar internalTex1: texture_2d<uff>;\n\tvar internalTex2: texture_2d<uff>;\n#endif\n#ifndef CAMERAPLANES\n\t#define CAMERAPLANES\n\tuniform camera_params: vec4f;\n#endif\nvarying texCoordsAlphaLife: vec4f;\nvar<private> inPos: vec3f;\nvar<private> inVel: vec3f;\nvar<private> inAngle: f32;\nvar<private> inShow: bool;\nvar<private> inLife: f32;\n`;\n\nvar particle_lambert_default2 = `\n\tvar negNormal: vec3f = max(normal, vec3(0.0));\n\tvar posNormal: vec3f = max(-normal, vec3(0.0));\n`;\n\nvar particle_lighting_default2 = `\n\tlet light: vec3f = negNormal.x * uniform.lightCube[0] + posNormal.x * uniform.lightCube[1] +\n\t\t\t\t\t   negNormal.y * uniform.lightCube[2] + posNormal.y * uniform.lightCube[3] +\n\t\t\t\t\t   negNormal.z * uniform.lightCube[4] + posNormal.z * uniform.lightCube[5];\n\trgb = rgb * light;\n`;\n\nvar particle_localShift_default2 = `\nparticlePos = (uniform.matrix_model * vec4f(particlePos, 1.0)).xyz;\n`;\n\nvar particle_mesh_default2 = `\nvar localPos = meshLocalPos;\nlet rotResultXY = rotateWithMatrix(localPos.xy, inAngle);\nlocalPos = vec3f(rotResultXY.rotatedVec, localPos.z);\nrotMatrix = rotResultXY.matrix;\nlet rotResultYZ = rotateWithMatrix(localPos.yz, inAngle);\nlocalPos = vec3f(localPos.x, rotResultYZ.rotatedVec);\nrotMatrix = rotResultYZ.matrix;\nbillboard(particlePos, quadXY);\n`;\n\nvar particle_normal_default2 = `\noutput.Normal = normalize(localPos + uniform.matrix_viewInverse[2].xyz);\n`;\n\nvar particle_normalMap_default2 = `\n\tlet sampledNormal: vec4f = textureSample(normalMap, normalMapSampler, vec2f(input.texCoordsAlphaLife.x, 1.0 - input.texCoordsAlphaLife.y));\n\tlet normalMap: vec3f = normalize(sampledNormal.xyz * 2.0 - 1.0);\n\tlet ParticleMat = mat3x3<f32>(ParticleMat0, ParticleMat1, ParticleMat2);\n\tlet normal: vec3f = ParticleMat * normalMap;\n`;\n\nvar particle_pointAlong_default2 = `\n\tinAngle = atan2(velocityV.x, velocityV.y);\n`;\n\nvar particle_simulation_default2 = `\n\t#include \"particleUpdaterInitPS\"\n\t#include \"particleInputPS\"\n\t#include \"particleOutputPS\"\n\t#ifdef EMITTERSHAPE_BOX\n\t\t#include \"particleUpdaterAABBPS\"\n\t#else\n\t\t#include \"particleUpdaterSpherePS\"\n\t#endif\n\t#include \"particleUpdaterStartPS\"\n\t#ifdef RESPAWN\n\t\t#include \"particleUpdaterRespawnPS\"\n\t#endif\n\t#ifdef NO_RESPAWN\n\t\t#include \"particleUpdaterNoRespawnPS\"\n\t#endif\n\t#ifdef ON_STOP\n\t\t#include \"particleUpdaterOnStopPS\"\n\t#endif\n\t#include \"particleUpdaterEndPS\"\n`;\n\nvar particle_shader_default3 = `\n\t#if NORMAL != NONE\n\t\t#if NORMAL == VERTEX\n\t\t\tvarying Normal: vec3f;\n\t\t#endif\n\t\t#if NORMAL == MAP\n\t\t\tvarying ParticleMat0: vec3f;\n\t\t\tvarying ParticleMat1: vec3f;\n\t\t\tvarying ParticleMat2: vec3f;\n\t\t#endif\n\t\tuniform lightCube: array<vec3f, 6>;\n\t#endif\n\t#ifdef SOFT\n\t\tvarying vDepth: f32;\n\t\t#include \"screenDepthPS\"\n\t#endif\n\t#include \"gammaPS\"\n\t#include \"tonemappingPS\"\n\t#include \"fogPS\"\n\t#if NORMAL == MAP\n\t\tvar normalMap: texture_2d<f32>;\n\t\tvar normalMapSampler: sampler;\n\t#endif\n\t#include \"particlePS\"\n\t#ifdef SOFT\n\t\t#include \"particle_softPS\"\n\t#endif\n\t#if NORMAL == VERTEX\n\t\tvar normal: vec3f = Normal;\n\t#endif\n\t#if NORMAL == MAP\n\t\t#include \"particle_normalMapPS\"\n\t#endif\n\t#if NORMAL != NONE\n\t\t#ifdef HALF_LAMBERT\n\t\t\t#include \"particle_halflambertPS\"\n\t\t#else\n\t\t\t#include \"particle_lambertPS\"\n\t\t#endif\n\t\t#include \"particle_lightingPS\"\n\t#endif\n\t#if BLEND == NORMAL\n\t\t#include \"particle_blendNormalPS\"\n\t#elif BLEND == ADDITIVE\n\t\t#include \"particle_blendAddPS\"\n\t#elif BLEND == MULTIPLICATIVE\n\t\t#include \"particle_blendMultiplyPS\"\n\t#endif\n\t#include \"particle_endPS\"\n`;\n\nvar particle_shader_default4 = `\n\t#ifdef ANIMTEX\n\t\tuniform animTexTilesParams: vec2f;\n\t\tuniform animTexParams: vec4f;\n\t\tuniform animTexIndexParams: vec2f;\n\t#endif\n\t#if NORMAL == MAP\n\t\tvarying ParticleMat0: vec3f;\n\t\tvarying ParticleMat1: vec3f;\n\t\tvarying ParticleMat2: vec3f;\n\t#endif\n\t#if NORMAL == VERTEX\n\t\tvarying Normal: vec3f;\n\t#endif\n\t#ifdef SOFT\n\t\tvarying vDepth: f32;\n\t#endif\n\t#ifdef PARTICLE_GPU\n\t\t#include \"particle_initVS\"\n\t\t#include \"particleInputPS\"\n\t\t#ifdef SOFT\n\t\t\t#include \"screenDepthPS\"\n\t\t#endif\n\t\t#include \"particleVS\"\n\t#else\n\t\t#ifdef SOFT\n\t\t\t#include \"screenDepthPS\"\n\t\t#endif\n\t\t#include \"particle_cpuVS\"\n\t#endif\n\t#ifdef LOCAL_SPACE\n\t\t#include \"particle_localShiftVS\"\n\t#endif\n\t#ifdef ANIMTEX\n\t\t#ifdef ANIMTEX_LOOP\n\t\t\t#include \"particleAnimFrameLoopVS\"\n\t\t#else\n\t\t\t#include \"particleAnimFrameClampVS\"\n\t\t#endif\n\t\t#include \"particleAnimTexVS\"\n\t#endif\n\t#ifdef PARTICLE_GPU\n\t\t#ifdef WRAP\n\t\t\t#include \"particle_wrapVS\"\n\t\t#endif\n\t#endif\n\t#ifdef ALIGN_TO_MOTION\n\t\t#include \"particle_pointAlongVS\"\n\t#endif\n\t#ifdef USE_MESH\n\t\t#include \"particle_meshVS\"\n\t#else\n\t\t#ifdef CUSTOM_FACE\n\t\t\t#include \"particle_customFaceVS\"\n\t\t#else\n\t\t\t#include \"particle_billboardVS\"\n\t\t#endif\n\t#endif\n\t#if NORMAL == VERTEX\n\t\t#include \"particle_normalVS\"\n\t#endif\n\t#if NORMAL == MAP\n\t\t#include \"particle_TBNVS\"\n\t#endif\n\t#ifdef STRETCH\n\t\t#include \"particle_stretchVS\"\n\t#endif\n\t#ifdef PARTICLE_GPU\n\t\t#include \"particle_endVS\"\n\t#else\n\t\t#include \"particle_cpu_endVS\"\n\t#endif\n\t#ifdef SOFT\n\t\t#include \"particle_softVS\"\n\t#endif\n\treturn output;\n}\n`;\n\nvar particle_soft_default3 = `\n\tvar depth: f32 = getLinearScreenDepthFrag();\n\tvar particleDepth: f32 = vDepth;\n\tvar depthDiff: f32 = saturate(abs(particleDepth - depth) * uniform.softening);\n\ta = a * depthDiff;\n`;\n\nvar particle_soft_default4 = `\n\toutput.vDepth = getLinearDepth(localPos);\n`;\n\nvar particle_stretch_default2 = `\n\tlet moveDir: vec3f = inVel * uniform.stretch;\n\tvar posPrev: vec3f = particlePos - moveDir;\n\tposPrev = posPrev + particlePosMoved;\n\tlet viewRotationTemp: mat3x3f = mat3x3f(uniform.matrix_view[0].xyz, uniform.matrix_view[1].xyz, uniform.matrix_view[2].xyz);\n\tlet centerToVertexV: vec2f = normalize((viewRotationTemp * localPos).xy);\n\tlet interpolation: f32 = dot(-velocityV, centerToVertexV) * 0.5 + 0.5;\n\tparticlePos = mix(particlePos, posPrev, interpolation);\n`;\n\nvar particle_TBN_default2 = `\n\tlet rot3 = mat3x3f(\n\t\tvec3f(rotMatrix[0][0], rotMatrix[1][0], 0.0),\n\t\tvec3f(rotMatrix[0][1], rotMatrix[1][1], 0.0),\n\t\tvec3f(0.0, 0.0, 1.0)\n\t);\n\tlet viewBasis = mat3x3f(\n\t\t-uniform.matrix_viewInverse[0].xyz,\n\t\t-uniform.matrix_viewInverse[1].xyz,\n\t\tuniform.matrix_viewInverse[2].xyz\n\t);\n\tlet tempMat = viewBasis * rot3;\n\toutput.ParticleMat0 = tempMat[0];\n\toutput.ParticleMat1 = tempMat[1];\n\toutput.ParticleMat2 = tempMat[2];\n`;\n\nvar particle_wrap_default2 = `\n\tlet origParticlePos: vec3f = particlePos;\n\tparticlePos = particlePos - uniform.matrix_model[3].xyz;\n\tparticlePos = (particlePos % uniform.wrapBounds) - uniform.wrapBounds * 0.5;\n\tparticlePos = particlePos + uniform.matrix_model[3].xyz;\n\tparticlePosMoved = particlePos - origParticlePos;\n`;\n\nvar particleChunksWGSL = {\n\tparticlePS: particle_default3,\n\tparticleVS: particle_default4,\n\tparticleAnimFrameClampVS: particleAnimFrameClamp_default2,\n\tparticleAnimFrameLoopVS: particleAnimFrameLoop_default2,\n\tparticleAnimTexVS: particleAnimTex_default2,\n\tparticleInputPS: particleInput_default2,\n\tparticleOutputPS: particleOutput_default2,\n\tparticleUpdaterAABBPS: particleUpdaterAABB_default2,\n\tparticleUpdaterEndPS: particleUpdaterEnd_default2,\n\tparticleUpdaterInitPS: particleUpdaterInit_default2,\n\tparticleUpdaterNoRespawnPS: particleUpdaterNoRespawn_default2,\n\tparticleUpdaterOnStopPS: particleUpdaterOnStop_default2,\n\tparticleUpdaterRespawnPS: particleUpdaterRespawn_default2,\n\tparticleUpdaterSpherePS: particleUpdaterSphere_default2,\n\tparticleUpdaterStartPS: particleUpdaterStart_default2,\n\tparticle_billboardVS: particle_billboard_default2,\n\tparticle_blendAddPS: particle_blendAdd_default2,\n\tparticle_blendMultiplyPS: particle_blendMultiply_default2,\n\tparticle_blendNormalPS: particle_blendNormal_default2,\n\tparticle_cpuVS: particle_cpu_default2,\n\tparticle_cpu_endVS: particle_cpu_end_default2,\n\tparticle_customFaceVS: particle_customFace_default2,\n\tparticle_endPS: particle_end_default3,\n\tparticle_endVS: particle_end_default4,\n\tparticle_halflambertPS: particle_halflambert_default2,\n\tparticle_initVS: particle_init_default2,\n\tparticle_lambertPS: particle_lambert_default2,\n\tparticle_lightingPS: particle_lighting_default2,\n\tparticle_localShiftVS: particle_localShift_default2,\n\tparticle_meshVS: particle_mesh_default2,\n\tparticle_normalVS: particle_normal_default2,\n\tparticle_normalMapPS: particle_normalMap_default2,\n\tparticle_pointAlongVS: particle_pointAlong_default2,\n\tparticle_simulationPS: particle_simulation_default2,\n\tparticle_shaderPS: particle_shader_default3,\n\tparticle_shaderVS: particle_shader_default4,\n\tparticle_softPS: particle_soft_default3,\n\tparticle_softVS: particle_soft_default4,\n\tparticle_stretchVS: particle_stretch_default2,\n\tparticle_TBNVS: particle_TBN_default2,\n\tparticle_wrapVS: particle_wrap_default2\n};\n\nvar _propertyTypes = {\n\temitterExtents: \"vec3\",\n\temitterExtentsInner: \"vec3\",\n\tparticleNormal: \"vec3\",\n\twrapBounds: \"vec3\",\n\tlocalVelocityGraph: \"curveset\",\n\tlocalVelocityGraph2: \"curveset\",\n\tvelocityGraph: \"curveset\",\n\tvelocityGraph2: \"curveset\",\n\tcolorGraph: \"curveset\",\n\tcolorGraph2: \"curveset\",\n\talphaGraph: \"curve\",\n\talphaGraph2: \"curve\",\n\trotationSpeedGraph: \"curve\",\n\trotationSpeedGraph2: \"curve\",\n\tradialSpeedGraph: \"curve\",\n\tradialSpeedGraph2: \"curve\",\n\tscaleGraph: \"curve\",\n\tscaleGraph2: \"curve\"\n};\nvar ParticleSystemComponentSystem = class extends ComponentSystem {\n\tconstructor(app2) {\n\t\tsuper(app2);\n\t\tthis.id = \"particlesystem\";\n\t\tthis.ComponentType = ParticleSystemComponent;\n\t\tthis.on(\"beforeremove\", this.onBeforeRemove, this);\n\t\tthis.app.systems.on(\"update\", this.onUpdate, this);\n\t\tShaderChunks.get(app2.graphicsDevice, SHADERLANGUAGE_GLSL).add(particleChunksGLSL);\n\t\tShaderChunks.get(app2.graphicsDevice, SHADERLANGUAGE_WGSL).add(particleChunksWGSL);\n\t}\n\tinitializeComponentData(component, _data) {\n\t\tconst data2 = { ..._data };\n\t\tif (data2.mesh instanceof Asset || typeof data2.mesh === \"number\") {\n\t\t\tdata2.meshAsset = data2.mesh;\n\t\t\tdelete data2.mesh;\n\t\t}\n\t\tfor (const prop in data2) {\n\t\t\tif (data2[prop] === void 0 || data2[prop] === null) continue;\n\t\t\tconst type = _propertyTypes[prop];\n\t\t\tif (type === \"vec3\") {\n\t\t\t\tif (Array.isArray(data2[prop])) {\n\t\t\t\t\tdata2[prop] = new Vec3(data2[prop][0], data2[prop][1], data2[prop][2]);\n\t\t\t\t}\n\t\t\t} else if (type === \"curve\") {\n\t\t\t\tif (!(data2[prop] instanceof Curve)) {\n\t\t\t\t\tconst t = data2[prop].type;\n\t\t\t\t\tdata2[prop] = new Curve(data2[prop].keys);\n\t\t\t\t\tdata2[prop].type = t;\n\t\t\t\t}\n\t\t\t} else if (type === \"curveset\") {\n\t\t\t\tif (!(data2[prop] instanceof CurveSet)) {\n\t\t\t\t\tconst t = data2[prop].type;\n\t\t\t\t\tdata2[prop] = new CurveSet(data2[prop].keys);\n\t\t\t\t\tdata2[prop].type = t;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (data2.layers && Array.isArray(data2.layers)) {\n\t\t\tdata2.layers = data2.layers.slice(0);\n\t\t}\n\t\tif (data2.enabled !== void 0) {\n\t\t\tcomponent._enabled = data2.enabled;\n\t\t}\n\t\tfor (let i2 = 0; i2 < _properties6.length; i2++) {\n\t\t\tconst property = _properties6[i2];\n\t\t\tif (data2[property] !== void 0) {\n\t\t\t\tcomponent[property] = data2[property];\n\t\t\t}\n\t\t}\n\t\tsuper.initializeComponentData(component, data2);\n\t}\n\tcloneComponent(entity, clone) {\n\t\tconst c2 = entity.particlesystem;\n\t\tconst data2 = {\n\t\t\tenabled: c2.enabled\n\t\t};\n\t\tfor (let i2 = 0; i2 < _properties6.length; i2++) {\n\t\t\tconst prop = _properties6[i2];\n\t\t\tconst value = c2[prop];\n\t\t\tif (value instanceof Vec3 || value instanceof Curve || value instanceof CurveSet) {\n\t\t\t\tdata2[prop] = value.clone();\n\t\t\t} else if (prop === \"layers\") {\n\t\t\t\tdata2.layers = value.slice(0);\n\t\t\t} else if (value !== null && value !== void 0) {\n\t\t\t\tdata2[prop] = value;\n\t\t\t}\n\t\t}\n\t\treturn this.addComponent(clone, data2);\n\t}\n\tonUpdate(dt) {\n\t\tconst components2 = this.store;\n\t\tconst stats = this.app.stats.particles;\n\t\tconst composition = this.app.scene.layers;\n\t\tfor (let i2 = 0; i2 < composition.layerList.length; i2++) {\n\t\t\tcomposition.layerList[i2].requiresLightCube = false;\n\t\t}\n\t\tfor (const id14 in components2) {\n\t\t\tif (components2.hasOwnProperty(id14)) {\n\t\t\t\tconst component = components2[id14].entity.particlesystem;\n\t\t\t\tconst entity = component.entity;\n\t\t\t\tif (component.enabled && entity.enabled) {\n\t\t\t\t\tconst emitter = component.emitter;\n\t\t\t\t\tif (!emitter?.meshInstance.visible) continue;\n\t\t\t\t\tif (emitter.lighting) {\n\t\t\t\t\t\tconst layers = component.layers;\n\t\t\t\t\t\tfor (let i2 = 0; i2 < layers.length; i2++) {\n\t\t\t\t\t\t\tconst layer = composition.getLayerById(layers[i2]);\n\t\t\t\t\t\t\tif (layer) {\n\t\t\t\t\t\t\t\tlayer.requiresLightCube = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!component._paused) {\n\t\t\t\t\t\tlet numSteps = 0;\n\t\t\t\t\t\temitter.simTime += dt;\n\t\t\t\t\t\tif (emitter.simTime >= emitter.fixedTimeStep) {\n\t\t\t\t\t\t\tnumSteps = Math.floor(emitter.simTime / emitter.fixedTimeStep);\n\t\t\t\t\t\t\temitter.simTime -= numSteps * emitter.fixedTimeStep;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (numSteps) {\n\t\t\t\t\t\t\tnumSteps = Math.min(numSteps, emitter.maxSubSteps);\n\t\t\t\t\t\t\tfor (let i2 = 0; i2 < numSteps; i2++) {\n\t\t\t\t\t\t\t\temitter.addTime(emitter.fixedTimeStep, false);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tstats._updatesPerFrame += numSteps;\n\t\t\t\t\t\t\tstats._frameTime += emitter._addTimeTime;\n\t\t\t\t\t\t\temitter._addTimeTime = 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\temitter.finishFrame();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tonBeforeRemove(entity, component) {\n\t\tcomponent.onBeforeRemove();\n\t}\n\tdestroy() {\n\t\tsuper.destroy();\n\t\tthis.app.systems.off(\"update\", this.onUpdate, this);\n\t}\n};\n\nvar SkinInstanceCachedObject = class extends RefCountedObject {\n\tconstructor(skin, skinInstance) {\n\t\tsuper();\n\t\tthis.skin = skin;\n\t\tthis.skinInstance = skinInstance;\n\t}\n};\nvar SkinInstanceCache = class _SkinInstanceCache {\n\t// map of SkinInstances allowing those to be shared between\n\t// (specifically a single glb with multiple render components)\n\t// It maps a rootBone to an array of SkinInstanceCachedObject\n\t// this allows us to find if a skin instance already exists for a rootbone, and a specific skin\n\tstatic _skinInstanceCache = /* @__PURE__ */ new Map();\n\t// returns cached or creates a skin instance for the skin and a rootBone, to be used by render component\n\t// on the specified entity\n\tstatic createCachedSkinInstance(skin, rootBone, entity) {\n\t\tlet skinInst = _SkinInstanceCache.getCachedSkinInstance(skin, rootBone);\n\t\tif (!skinInst) {\n\t\t\tskinInst = new SkinInstance(skin);\n\t\t\tskinInst.resolve(rootBone, entity);\n\t\t\t_SkinInstanceCache.addCachedSkinInstance(skin, rootBone, skinInst);\n\t\t}\n\t\treturn skinInst;\n\t}\n\t// returns already created skin instance from skin, for use on the rootBone\n\t// ref count of existing skinInstance is increased\n\tstatic getCachedSkinInstance(skin, rootBone) {\n\t\tlet skinInstance = null;\n\t\tconst cachedObjArray = _SkinInstanceCache._skinInstanceCache.get(rootBone);\n\t\tif (cachedObjArray) {\n\t\t\tconst cachedObj = cachedObjArray.find((element) => element.skin === skin);\n\t\t\tif (cachedObj) {\n\t\t\t\tcachedObj.incRefCount();\n\t\t\t\tskinInstance = cachedObj.skinInstance;\n\t\t\t}\n\t\t}\n\t\treturn skinInstance;\n\t}\n\t// adds skin instance to the cache, and increases ref count on it\n\tstatic addCachedSkinInstance(skin, rootBone, skinInstance) {\n\t\tlet cachedObjArray = _SkinInstanceCache._skinInstanceCache.get(rootBone);\n\t\tif (!cachedObjArray) {\n\t\t\tcachedObjArray = [];\n\t\t\t_SkinInstanceCache._skinInstanceCache.set(rootBone, cachedObjArray);\n\t\t}\n\t\tlet cachedObj = cachedObjArray.find((element) => element.skin === skin);\n\t\tif (!cachedObj) {\n\t\t\tcachedObj = new SkinInstanceCachedObject(skin, skinInstance);\n\t\t\tcachedObjArray.push(cachedObj);\n\t\t}\n\t\tcachedObj.incRefCount();\n\t}\n\t// removes skin instance from the cache. This decreases ref count, and when that reaches 0 it gets destroyed\n\tstatic removeCachedSkinInstance(skinInstance) {\n\t\tif (skinInstance) {\n\t\t\tconst rootBone = skinInstance.rootBone;\n\t\t\tif (rootBone) {\n\t\t\t\tconst cachedObjArray = _SkinInstanceCache._skinInstanceCache.get(rootBone);\n\t\t\t\tif (cachedObjArray) {\n\t\t\t\t\tconst cachedObjIndex = cachedObjArray.findIndex((element) => element.skinInstance === skinInstance);\n\t\t\t\t\tif (cachedObjIndex >= 0) {\n\t\t\t\t\t\tconst cachedObj = cachedObjArray[cachedObjIndex];\n\t\t\t\t\t\tcachedObj.decRefCount();\n\t\t\t\t\t\tif (cachedObj.refCount === 0) {\n\t\t\t\t\t\t\tcachedObjArray.splice(cachedObjIndex, 1);\n\t\t\t\t\t\t\tif (!cachedObjArray.length) {\n\t\t\t\t\t\t\t\t_SkinInstanceCache._skinInstanceCache.delete(rootBone);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (skinInstance) {\n\t\t\t\t\t\t\t\tskinInstance.destroy();\n\t\t\t\t\t\t\t\tcachedObj.skinInstance = null;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar AssetReference = class {\n\t_evtLoadById = null;\n\t_evtUnloadById = null;\n\t_evtAddById = null;\n\t_evtRemoveById = null;\n\t_evtLoadByUrl = null;\n\t_evtAddByUrl = null;\n\t_evtRemoveByUrl = null;\n\tconstructor(propertyName, parent, registry, callbacks, scope) {\n\t\tthis.propertyName = propertyName;\n\t\tthis.parent = parent;\n\t\tthis._scope = scope;\n\t\tthis._registry = registry;\n\t\tthis.id = null;\n\t\tthis.url = null;\n\t\tthis.asset = null;\n\t\tthis._onAssetLoad = callbacks.load;\n\t\tthis._onAssetAdd = callbacks.add;\n\t\tthis._onAssetRemove = callbacks.remove;\n\t\tthis._onAssetUnload = callbacks.unload;\n\t}\n\tset id(value) {\n\t\tif (this.url) throw Error(\"Can't set id and url\");\n\t\tthis._unbind();\n\t\tthis._id = value;\n\t\tthis.asset = this._registry.get(this._id);\n\t\tthis._bind();\n\t}\n\tget id() {\n\t\treturn this._id;\n\t}\n\tset url(value) {\n\t\tif (this.id) throw Error(\"Can't set id and url\");\n\t\tthis._unbind();\n\t\tthis._url = value;\n\t\tthis.asset = this._registry.getByUrl(this._url);\n\t\tthis._bind();\n\t}\n\tget url() {\n\t\treturn this._url;\n\t}\n\t_bind() {\n\t\tif (this.id) {\n\t\t\tif (this._onAssetLoad) this._evtLoadById = this._registry.on(`load:${this.id}`, this._onLoad, this);\n\t\t\tif (this._onAssetAdd) this._evtAddById = this._registry.once(`add:${this.id}`, this._onAdd, this);\n\t\t\tif (this._onAssetRemove) this._evtRemoveById = this._registry.on(`remove:${this.id}`, this._onRemove, this);\n\t\t\tif (this._onAssetUnload) this._evtUnloadById = this._registry.on(`unload:${this.id}`, this._onUnload, this);\n\t\t}\n\t\tif (this.url) {\n\t\t\tif (this._onAssetLoad) this._evtLoadByUrl = this._registry.on(`load:url:${this.url}`, this._onLoad, this);\n\t\t\tif (this._onAssetAdd) this._evtAddByUrl = this._registry.once(`add:url:${this.url}`, this._onAdd, this);\n\t\t\tif (this._onAssetRemove) this._evtRemoveByUrl = this._registry.on(`remove:url:${this.url}`, this._onRemove, this);\n\t\t}\n\t}\n\t_unbind() {\n\t\tif (this.id) {\n\t\t\tthis._evtLoadById?.off();\n\t\t\tthis._evtLoadById = null;\n\t\t\tthis._evtAddById?.off();\n\t\t\tthis._evtAddById = null;\n\t\t\tthis._evtRemoveById?.off();\n\t\t\tthis._evtRemoveById = null;\n\t\t\tthis._evtUnloadById?.off();\n\t\t\tthis._evtUnloadById = null;\n\t\t}\n\t\tif (this.url) {\n\t\t\tthis._evtLoadByUrl?.off();\n\t\t\tthis._evtLoadByUrl = null;\n\t\t\tthis._evtAddByUrl?.off();\n\t\t\tthis._evtAddByUrl = null;\n\t\t\tthis._evtRemoveByUrl?.off();\n\t\t\tthis._evtRemoveByUrl = null;\n\t\t}\n\t}\n\t_onLoad(asset) {\n\t\tthis._onAssetLoad.call(this._scope, this.propertyName, this.parent, asset);\n\t}\n\t_onAdd(asset) {\n\t\tthis.asset = asset;\n\t\tthis._onAssetAdd.call(this._scope, this.propertyName, this.parent, asset);\n\t}\n\t_onRemove(asset) {\n\t\tthis._onAssetRemove.call(this._scope, this.propertyName, this.parent, asset);\n\t\tthis.asset = null;\n\t}\n\t_onUnload(asset) {\n\t\tthis._onAssetUnload.call(this._scope, this.propertyName, this.parent, asset);\n\t}\n};\n\nvar RenderComponent = class extends Component {\n\t_type = \"asset\";\n\t_castShadows = true;\n\t_shadowCascadeMask = SHADOW_CASCADE_ALL;\n\t_receiveShadows = true;\n\t_castShadowsLightmap = true;\n\t_lightmapped = false;\n\t_lightmapSizeMultiplier = 1;\n\tisStatic = false;\n\t_batchGroupId = -1;\n\t_layers = [LAYERID_WORLD];\n\t// assign to the default world layer\n\t_renderStyle = RENDERSTYLE_SOLID;\n\t_meshInstances = [];\n\t_customAabb = null;\n\t_area = null;\n\t_assetReference;\n\t_materialReferences = [];\n\t_material;\n\t_rootBone = null;\n\t_evtLayersChanged = null;\n\t_evtLayerAdded = null;\n\t_evtLayerRemoved = null;\n\t_evtSetMeshes = null;\n\tconstructor(system, entity) {\n\t\tsuper(system, entity);\n\t\tthis._assetReference = new AssetReference(\n\t\t\t\"asset\",\n\t\t\tthis,\n\t\t\tsystem.app.assets,\n\t\t\t{\n\t\t\t\tadd: this._onRenderAssetAdded,\n\t\t\t\tload: this._onRenderAssetLoad,\n\t\t\t\tremove: this._onRenderAssetRemove,\n\t\t\t\tunload: this._onRenderAssetUnload\n\t\t\t},\n\t\t\tthis\n\t\t);\n\t\tthis._material = system.defaultMaterial;\n\t\tentity.on(\"remove\", this.onRemoveChild, this);\n\t\tentity.on(\"removehierarchy\", this.onRemoveChild, this);\n\t\tentity.on(\"insert\", this.onInsertChild, this);\n\t\tentity.on(\"inserthierarchy\", this.onInsertChild, this);\n\t}\n\tset renderStyle(renderStyle) {\n\t\tif (this._renderStyle !== renderStyle) {\n\t\t\tthis._renderStyle = renderStyle;\n\t\t\tMeshInstance._prepareRenderStyleForArray(this._meshInstances, renderStyle);\n\t\t}\n\t}\n\tget renderStyle() {\n\t\treturn this._renderStyle;\n\t}\n\tset customAabb(value) {\n\t\tthis._customAabb = value;\n\t\tconst mi = this._meshInstances;\n\t\tif (mi) {\n\t\t\tfor (let i2 = 0; i2 < mi.length; i2++) {\n\t\t\t\tmi[i2].setCustomAabb(this._customAabb);\n\t\t\t}\n\t\t}\n\t}\n\tget customAabb() {\n\t\treturn this._customAabb;\n\t}\n\tset type(value) {\n\t\tif (this._type !== value) {\n\t\t\tthis._area = null;\n\t\t\tthis._type = value;\n\t\t\tthis.destroyMeshInstances();\n\t\t\tif (value !== \"asset\") {\n\t\t\t\tlet material = this._material;\n\t\t\t\tif (!material || material === this.system.defaultMaterial) {\n\t\t\t\t\tmaterial = this._materialReferences[0] && this._materialReferences[0].asset && this._materialReferences[0].asset.resource;\n\t\t\t\t}\n\t\t\t\tconst primData = getShapePrimitive(this.system.app.graphicsDevice, value);\n\t\t\t\tthis._area = primData.area;\n\t\t\t\tthis.meshInstances = [new MeshInstance(primData.mesh, material || this.system.defaultMaterial, this.entity)];\n\t\t\t}\n\t\t}\n\t}\n\tget type() {\n\t\treturn this._type;\n\t}\n\tset meshInstances(value) {\n\t\tthis._destroyMeshInstances();\n\t\tthis._meshInstances = value;\n\t\tif (this._meshInstances) {\n\t\t\tconst mi = this._meshInstances;\n\t\t\tfor (let i2 = 0; i2 < mi.length; i2++) {\n\t\t\t\tif (!mi[i2].node) {\n\t\t\t\t\tmi[i2].node = this.entity;\n\t\t\t\t}\n\t\t\t\tmi[i2].castShadow = this._castShadows;\n\t\t\t\tmi[i2].shadowCascadeMask = this._shadowCascadeMask;\n\t\t\t\tmi[i2].receiveShadow = this._receiveShadows;\n\t\t\t\tmi[i2].renderStyle = this._renderStyle;\n\t\t\t\tmi[i2].setLightmapped(this._lightmapped);\n\t\t\t\tmi[i2].setCustomAabb(this._customAabb);\n\t\t\t}\n\t\t\tif (this.enabled && this.entity.enabled) {\n\t\t\t\tthis.addToLayers();\n\t\t\t}\n\t\t}\n\t\tthis._onMeshInstancesChanged();\n\t}\n\tget meshInstances() {\n\t\treturn this._meshInstances;\n\t}\n\tset lightmapped(value) {\n\t\tif (value !== this._lightmapped) {\n\t\t\tthis._lightmapped = value;\n\t\t\tconst mi = this._meshInstances;\n\t\t\tif (mi) {\n\t\t\t\tfor (let i2 = 0; i2 < mi.length; i2++) {\n\t\t\t\t\tmi[i2].setLightmapped(value);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tget lightmapped() {\n\t\treturn this._lightmapped;\n\t}\n\tset castShadows(value) {\n\t\tif (this._castShadows !== value) {\n\t\t\tconst mi = this._meshInstances;\n\t\t\tif (mi) {\n\t\t\t\tconst layers = this.layers;\n\t\t\t\tconst scene = this.system.app.scene;\n\t\t\t\tif (this._castShadows && !value) {\n\t\t\t\t\tfor (let i2 = 0; i2 < layers.length; i2++) {\n\t\t\t\t\t\tconst layer = scene.layers.getLayerById(this.layers[i2]);\n\t\t\t\t\t\tif (layer) {\n\t\t\t\t\t\t\tlayer.removeShadowCasters(mi);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfor (let i2 = 0; i2 < mi.length; i2++) {\n\t\t\t\t\tmi[i2].castShadow = value;\n\t\t\t\t}\n\t\t\t\tif (!this._castShadows && value) {\n\t\t\t\t\tfor (let i2 = 0; i2 < layers.length; i2++) {\n\t\t\t\t\t\tconst layer = scene.layers.getLayerById(layers[i2]);\n\t\t\t\t\t\tif (layer) {\n\t\t\t\t\t\t\tlayer.addShadowCasters(mi);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._castShadows = value;\n\t\t}\n\t}\n\tget castShadows() {\n\t\treturn this._castShadows;\n\t}\n\tset shadowCascadeMask(value) {\n\t\tif (this._shadowCascadeMask !== value) {\n\t\t\tthis._shadowCascadeMask = value;\n\t\t\tconst mi = this._meshInstances;\n\t\t\tif (mi) {\n\t\t\t\tfor (let i2 = 0; i2 < mi.length; i2++) {\n\t\t\t\t\tmi[i2].shadowCascadeMask = value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tget shadowCascadeMask() {\n\t\treturn this._shadowCascadeMask;\n\t}\n\tset receiveShadows(value) {\n\t\tif (this._receiveShadows !== value) {\n\t\t\tthis._receiveShadows = value;\n\t\t\tconst mi = this._meshInstances;\n\t\t\tif (mi) {\n\t\t\t\tfor (let i2 = 0; i2 < mi.length; i2++) {\n\t\t\t\t\tmi[i2].receiveShadow = value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tget receiveShadows() {\n\t\treturn this._receiveShadows;\n\t}\n\tset castShadowsLightmap(value) {\n\t\tthis._castShadowsLightmap = value;\n\t}\n\tget castShadowsLightmap() {\n\t\treturn this._castShadowsLightmap;\n\t}\n\tset lightmapSizeMultiplier(value) {\n\t\tthis._lightmapSizeMultiplier = value;\n\t}\n\tget lightmapSizeMultiplier() {\n\t\treturn this._lightmapSizeMultiplier;\n\t}\n\tset layers(value) {\n\t\tconst layers = this.system.app.scene.layers;\n\t\tlet layer;\n\t\tif (this._meshInstances) {\n\t\t\tfor (let i2 = 0; i2 < this._layers.length; i2++) {\n\t\t\t\tlayer = layers.getLayerById(this._layers[i2]);\n\t\t\t\tif (layer) {\n\t\t\t\t\tlayer.removeMeshInstances(this._meshInstances);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis._layers.length = 0;\n\t\tfor (let i2 = 0; i2 < value.length; i2++) {\n\t\t\tthis._layers[i2] = value[i2];\n\t\t}\n\t\tif (!this.enabled || !this.entity.enabled || !this._meshInstances) return;\n\t\tfor (let i2 = 0; i2 < this._layers.length; i2++) {\n\t\t\tlayer = layers.getLayerById(this._layers[i2]);\n\t\t\tif (layer) {\n\t\t\t\tlayer.addMeshInstances(this._meshInstances);\n\t\t\t}\n\t\t}\n\t}\n\tget layers() {\n\t\treturn this._layers;\n\t}\n\tset batchGroupId(value) {\n\t\tif (this._batchGroupId !== value) {\n\t\t\tif (this.entity.enabled && this._batchGroupId >= 0) {\n\t\t\t\tthis.system.app.batcher?.remove(BatchGroup.RENDER, this.batchGroupId, this.entity);\n\t\t\t}\n\t\t\tif (this.entity.enabled && value >= 0) {\n\t\t\t\tthis.system.app.batcher?.insert(BatchGroup.RENDER, value, this.entity);\n\t\t\t}\n\t\t\tif (value < 0 && this._batchGroupId >= 0 && this.enabled && this.entity.enabled) {\n\t\t\t\tthis.addToLayers();\n\t\t\t}\n\t\t\tthis._batchGroupId = value;\n\t\t}\n\t}\n\tget batchGroupId() {\n\t\treturn this._batchGroupId;\n\t}\n\tset material(value) {\n\t\tif (this._material !== value) {\n\t\t\tthis._material = value;\n\t\t\tif (this._meshInstances && this._type !== \"asset\") {\n\t\t\t\tfor (let i2 = 0; i2 < this._meshInstances.length; i2++) {\n\t\t\t\t\tthis._meshInstances[i2].material = value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tget material() {\n\t\treturn this._material;\n\t}\n\tset materialAssets(value = []) {\n\t\tif (this._materialReferences.length > value.length) {\n\t\t\tfor (let i2 = value.length; i2 < this._materialReferences.length; i2++) {\n\t\t\t\tthis._materialReferences[i2].id = null;\n\t\t\t}\n\t\t\tthis._materialReferences.length = value.length;\n\t\t}\n\t\tfor (let i2 = 0; i2 < value.length; i2++) {\n\t\t\tif (!this._materialReferences[i2]) {\n\t\t\t\tthis._materialReferences.push(\n\t\t\t\t\tnew AssetReference(\n\t\t\t\t\t\ti2,\n\t\t\t\t\t\tthis,\n\t\t\t\t\t\tthis.system.app.assets,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tadd: this._onMaterialAdded,\n\t\t\t\t\t\t\tload: this._onMaterialLoad,\n\t\t\t\t\t\t\tremove: this._onMaterialRemove,\n\t\t\t\t\t\t\tunload: this._onMaterialUnload\n\t\t\t\t\t\t},\n\t\t\t\t\t\tthis\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (value[i2]) {\n\t\t\t\tconst id14 = value[i2] instanceof Asset ? value[i2].id : value[i2];\n\t\t\t\tif (this._materialReferences[i2].id !== id14) {\n\t\t\t\t\tthis._materialReferences[i2].id = id14;\n\t\t\t\t}\n\t\t\t\tif (this._materialReferences[i2].asset) {\n\t\t\t\t\tthis._onMaterialAdded(i2, this, this._materialReferences[i2].asset);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis._materialReferences[i2].id = null;\n\t\t\t\tif (this._meshInstances[i2]) {\n\t\t\t\t\tthis._meshInstances[i2].material = this.system.defaultMaterial;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tget materialAssets() {\n\t\treturn this._materialReferences.map((ref) => {\n\t\t\treturn ref.id;\n\t\t});\n\t}\n\tset asset(value) {\n\t\tconst id14 = value instanceof Asset ? value.id : value;\n\t\tif (this._assetReference.id === id14) return;\n\t\tif (this._assetReference.asset && this._assetReference.asset.resource) {\n\t\t\tthis._onRenderAssetRemove();\n\t\t}\n\t\tthis._assetReference.id = id14;\n\t\tif (this._assetReference.asset) {\n\t\t\tthis._onRenderAssetAdded();\n\t\t}\n\t}\n\tget asset() {\n\t\treturn this._assetReference.id;\n\t}\n\tassignAsset(asset) {\n\t\tconst id14 = asset instanceof Asset ? asset.id : asset;\n\t\tthis._assetReference.id = id14;\n\t}\n\tset rootBone(value) {\n\t\tif (this._rootBone !== value) {\n\t\t\tconst isString = typeof value === \"string\";\n\t\t\tif (this._rootBone && isString && this._rootBone.guid === value) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (this._rootBone) {\n\t\t\t\tthis._clearSkinInstances();\n\t\t\t}\n\t\t\tif (value instanceof GraphNode) {\n\t\t\t\tthis._rootBone = value;\n\t\t\t} else if (isString) {\n\t\t\t\tthis._rootBone = this.system.app.getEntityFromIndex(value) || null;\n\t\t\t\tif (!this._rootBone) {\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis._rootBone = null;\n\t\t\t}\n\t\t\tif (this._rootBone) {\n\t\t\t\tthis._cloneSkinInstances();\n\t\t\t}\n\t\t}\n\t}\n\tget rootBone() {\n\t\treturn this._rootBone;\n\t}\n\tdestroyMeshInstances() {\n\t\tthis._destroyMeshInstances();\n\t\tthis._onMeshInstancesChanged();\n\t}\n\t_destroyMeshInstances() {\n\t\tconst meshInstances = this._meshInstances;\n\t\tif (meshInstances) {\n\t\t\tthis.removeFromLayers();\n\t\t\tthis._clearSkinInstances();\n\t\t\tfor (let i2 = 0; i2 < meshInstances.length; i2++) {\n\t\t\t\tmeshInstances[i2].destroy();\n\t\t\t}\n\t\t\tthis._meshInstances.length = 0;\n\t\t}\n\t}\n\t_onMeshInstancesChanged() {\n\t\tif (!this.entity._destroying) {\n\t\t\tthis.system.app.systems?.fire(\"meshInstancesChange\", this);\n\t\t}\n\t}\n\taddToLayers() {\n\t\tconst layers = this.system.app.scene.layers;\n\t\tfor (let i2 = 0; i2 < this._layers.length; i2++) {\n\t\t\tconst layer = layers.getLayerById(this._layers[i2]);\n\t\t\tif (layer) {\n\t\t\t\tlayer.addMeshInstances(this._meshInstances);\n\t\t\t}\n\t\t}\n\t}\n\tremoveFromLayers() {\n\t\tif (this._meshInstances && this._meshInstances.length) {\n\t\t\tconst layers = this.system.app.scene.layers;\n\t\t\tfor (let i2 = 0; i2 < this._layers.length; i2++) {\n\t\t\t\tconst layer = layers.getLayerById(this._layers[i2]);\n\t\t\t\tif (layer) {\n\t\t\t\t\tlayer.removeMeshInstances(this._meshInstances);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tonRemoveChild() {\n\t\tthis.removeFromLayers();\n\t}\n\tonInsertChild() {\n\t\tif (this._meshInstances && this.enabled && this.entity.enabled) {\n\t\t\tthis.addToLayers();\n\t\t}\n\t}\n\tonBeforeRemove() {\n\t\tif (this.enabled && this.entity.enabled) {\n\t\t\tthis.onDisable();\n\t\t}\n\t\tthis.destroyMeshInstances();\n\t\tthis.asset = null;\n\t\tthis.materialAsset = null;\n\t\tthis._assetReference.id = null;\n\t\tfor (let i2 = 0; i2 < this._materialReferences.length; i2++) {\n\t\t\tthis._materialReferences[i2].id = null;\n\t\t}\n\t\tthis.entity.off(\"remove\", this.onRemoveChild, this);\n\t\tthis.entity.off(\"removehierarchy\", this.onRemoveChild, this);\n\t\tthis.entity.off(\"insert\", this.onInsertChild, this);\n\t\tthis.entity.off(\"inserthierarchy\", this.onInsertChild, this);\n\t}\n\tonLayersChanged(oldComp, newComp) {\n\t\tthis.addToLayers();\n\t\tthis._evtLayerAdded?.off();\n\t\tthis._evtLayerAdded = newComp.on(\"add\", this.onLayerAdded, this);\n\t\tthis._evtLayerRemoved?.off();\n\t\tthis._evtLayerRemoved = newComp.on(\"remove\", this.onLayerRemoved, this);\n\t}\n\tonLayerAdded(layer) {\n\t\tconst index = this.layers.indexOf(layer.id);\n\t\tif (index < 0) return;\n\t\tlayer.addMeshInstances(this._meshInstances);\n\t}\n\tonLayerRemoved(layer) {\n\t\tconst index = this.layers.indexOf(layer.id);\n\t\tif (index < 0) return;\n\t\tlayer.removeMeshInstances(this._meshInstances);\n\t}\n\tonEnable() {\n\t\tconst app2 = this.system.app;\n\t\tconst scene = app2.scene;\n\t\tconst layers = scene.layers;\n\t\tif (this._rootBone) {\n\t\t\tthis._cloneSkinInstances();\n\t\t}\n\t\tthis._evtLayersChanged = scene.on(\"set:layers\", this.onLayersChanged, this);\n\t\tif (layers) {\n\t\t\tthis._evtLayerAdded = layers.on(\"add\", this.onLayerAdded, this);\n\t\t\tthis._evtLayerRemoved = layers.on(\"remove\", this.onLayerRemoved, this);\n\t\t}\n\t\tconst isAsset = this._type === \"asset\";\n\t\tif (this._meshInstances && this._meshInstances.length) {\n\t\t\tthis.addToLayers();\n\t\t} else if (isAsset && this.asset) {\n\t\t\tthis._onRenderAssetAdded();\n\t\t}\n\t\tfor (let i2 = 0; i2 < this._materialReferences.length; i2++) {\n\t\t\tif (this._materialReferences[i2].asset) {\n\t\t\t\tthis.system.app.assets.load(this._materialReferences[i2].asset);\n\t\t\t}\n\t\t}\n\t\tif (this._batchGroupId >= 0) {\n\t\t\tapp2.batcher?.insert(BatchGroup.RENDER, this.batchGroupId, this.entity);\n\t\t}\n\t}\n\tonDisable() {\n\t\tconst app2 = this.system.app;\n\t\tconst scene = app2.scene;\n\t\tconst layers = scene.layers;\n\t\tthis._evtLayersChanged?.off();\n\t\tthis._evtLayersChanged = null;\n\t\tif (this._rootBone) {\n\t\t\tthis._clearSkinInstances();\n\t\t}\n\t\tif (layers) {\n\t\t\tthis._evtLayerAdded?.off();\n\t\t\tthis._evtLayerAdded = null;\n\t\t\tthis._evtLayerRemoved?.off();\n\t\t\tthis._evtLayerRemoved = null;\n\t\t}\n\t\tif (this._batchGroupId >= 0) {\n\t\t\tapp2.batcher?.remove(BatchGroup.RENDER, this.batchGroupId, this.entity);\n\t\t}\n\t\tthis.removeFromLayers();\n\t}\n\thide() {\n\t\tif (this._meshInstances) {\n\t\t\tfor (let i2 = 0; i2 < this._meshInstances.length; i2++) {\n\t\t\t\tthis._meshInstances[i2].visible = false;\n\t\t\t}\n\t\t}\n\t}\n\tshow() {\n\t\tif (this._meshInstances) {\n\t\t\tfor (let i2 = 0; i2 < this._meshInstances.length; i2++) {\n\t\t\t\tthis._meshInstances[i2].visible = true;\n\t\t\t}\n\t\t}\n\t}\n\t_onRenderAssetAdded() {\n\t\tif (!this._assetReference.asset) return;\n\t\tif (this._assetReference.asset.resource) {\n\t\t\tthis._onRenderAssetLoad();\n\t\t} else if (this.enabled && this.entity.enabled) {\n\t\t\tthis.system.app.assets.load(this._assetReference.asset);\n\t\t}\n\t}\n\t_onRenderAssetLoad() {\n\t\tthis.destroyMeshInstances();\n\t\tif (this._assetReference.asset) {\n\t\t\tconst render = this._assetReference.asset.resource;\n\t\t\tthis._evtSetMeshes?.off();\n\t\t\tthis._evtSetMeshes = render.on(\"set:meshes\", this._onSetMeshes, this);\n\t\t\tif (render.meshes) {\n\t\t\t\tthis._onSetMeshes(render.meshes);\n\t\t\t}\n\t\t}\n\t}\n\t_onSetMeshes(meshes) {\n\t\tthis._cloneMeshes(meshes);\n\t}\n\t_clearSkinInstances() {\n\t\tfor (let i2 = 0; i2 < this._meshInstances.length; i2++) {\n\t\t\tconst meshInstance = this._meshInstances[i2];\n\t\t\tSkinInstanceCache.removeCachedSkinInstance(meshInstance.skinInstance);\n\t\t\tmeshInstance.skinInstance = null;\n\t\t}\n\t}\n\t_cloneSkinInstances() {\n\t\tif (this._meshInstances.length && this._rootBone instanceof GraphNode) {\n\t\t\tfor (let i2 = 0; i2 < this._meshInstances.length; i2++) {\n\t\t\t\tconst meshInstance = this._meshInstances[i2];\n\t\t\t\tconst mesh = meshInstance.mesh;\n\t\t\t\tif (mesh.skin && !meshInstance.skinInstance) {\n\t\t\t\t\tmeshInstance.skinInstance = SkinInstanceCache.createCachedSkinInstance(mesh.skin, this._rootBone, this.entity);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t_cloneMeshes(meshes) {\n\t\tif (meshes && meshes.length) {\n\t\t\tconst meshInstances = [];\n\t\t\tfor (let i2 = 0; i2 < meshes.length; i2++) {\n\t\t\t\tconst mesh = meshes[i2];\n\t\t\t\tconst material = this._materialReferences[i2] && this._materialReferences[i2].asset && this._materialReferences[i2].asset.resource;\n\t\t\t\tconst meshInst = new MeshInstance(mesh, material || this.system.defaultMaterial, this.entity);\n\t\t\t\tmeshInstances.push(meshInst);\n\t\t\t\tif (mesh.morph) {\n\t\t\t\t\tmeshInst.morphInstance = new MorphInstance(mesh.morph);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.meshInstances = meshInstances;\n\t\t\tthis._cloneSkinInstances();\n\t\t}\n\t}\n\t_onRenderAssetUnload() {\n\t\tif (this._type === \"asset\") {\n\t\t\tthis.destroyMeshInstances();\n\t\t}\n\t}\n\t_onRenderAssetRemove() {\n\t\tthis._evtSetMeshes?.off();\n\t\tthis._evtSetMeshes = null;\n\t\tthis._onRenderAssetUnload();\n\t}\n\t_onMaterialAdded(index, component, asset) {\n\t\tif (asset.resource) {\n\t\t\tthis._onMaterialLoad(index, component, asset);\n\t\t} else {\n\t\t\tif (this.enabled && this.entity.enabled) {\n\t\t\t\tthis.system.app.assets.load(asset);\n\t\t\t}\n\t\t}\n\t}\n\t_updateMainMaterial(index, material) {\n\t\tif (index === 0) {\n\t\t\tthis.material = material;\n\t\t}\n\t}\n\t_onMaterialLoad(index, component, asset) {\n\t\tif (this._meshInstances[index]) {\n\t\t\tthis._meshInstances[index].material = asset.resource;\n\t\t}\n\t\tthis._updateMainMaterial(index, asset.resource);\n\t}\n\t_onMaterialRemove(index, component, asset) {\n\t\tif (this._meshInstances[index]) {\n\t\t\tthis._meshInstances[index].material = this.system.defaultMaterial;\n\t\t}\n\t\tthis._updateMainMaterial(index, this.system.defaultMaterial);\n\t}\n\t_onMaterialUnload(index, component, asset) {\n\t\tif (this._meshInstances[index]) {\n\t\t\tthis._meshInstances[index].material = this.system.defaultMaterial;\n\t\t}\n\t\tthis._updateMainMaterial(index, this.system.defaultMaterial);\n\t}\n\tresolveDuplicatedEntityReferenceProperties(oldRender, duplicatedIdsMap) {\n\t\tif (oldRender.rootBone) {\n\t\t\tthis.rootBone = duplicatedIdsMap[oldRender.rootBone.guid];\n\t\t}\n\t}\n};\n\nvar _properties7 = [\n\t\"material\",\n\t\"meshInstances\",\n\t\"asset\",\n\t\"materialAssets\",\n\t\"castShadows\",\n\t\"shadowCascadeMask\",\n\t\"receiveShadows\",\n\t\"castShadowsLightmap\",\n\t\"lightmapped\",\n\t\"lightmapSizeMultiplier\",\n\t\"renderStyle\",\n\t\"type\",\n\t\"layers\",\n\t\"isStatic\",\n\t\"batchGroupId\",\n\t\"rootBone\"\n];\nvar RenderComponentSystem = class extends ComponentSystem {\n\tconstructor(app2) {\n\t\tsuper(app2);\n\t\tthis.id = \"render\";\n\t\tthis.ComponentType = RenderComponent;\n\t\tthis.extraDataProperties = [\"aabbCenter\", \"aabbHalfExtents\"];\n\t\tthis.defaultMaterial = getDefaultMaterial(app2.graphicsDevice);\n\t\tthis.on(\"beforeremove\", this.onBeforeRemove, this);\n\t}\n\tinitializeComponentData(component, _data, properties) {\n\t\tif (_data.batchGroupId === null || _data.batchGroupId === void 0) {\n\t\t\t_data.batchGroupId = -1;\n\t\t}\n\t\tif (_data.layers && _data.layers.length) {\n\t\t\t_data.layers = _data.layers.slice(0);\n\t\t}\n\t\tfor (let i2 = 0; i2 < _properties7.length; i2++) {\n\t\t\tif (_data.hasOwnProperty(_properties7[i2])) {\n\t\t\t\tcomponent[_properties7[i2]] = _data[_properties7[i2]];\n\t\t\t}\n\t\t}\n\t\tif (_data.aabbCenter && _data.aabbHalfExtents) {\n\t\t\tcomponent.customAabb = new BoundingBox(new Vec3(_data.aabbCenter), new Vec3(_data.aabbHalfExtents));\n\t\t}\n\t\tsuper.initializeComponentData(component, _data);\n\t}\n\tcloneComponent(entity, clone) {\n\t\tconst data2 = {};\n\t\tfor (let i2 = 0; i2 < _properties7.length; i2++) {\n\t\t\tdata2[_properties7[i2]] = entity.render[_properties7[i2]];\n\t\t}\n\t\tdata2.enabled = entity.render.enabled;\n\t\tdelete data2.meshInstances;\n\t\tconst component = this.addComponent(clone, data2);\n\t\tconst srcMeshInstances = entity.render.meshInstances;\n\t\tconst meshes = srcMeshInstances.map((mi) => mi.mesh);\n\t\tcomponent._onSetMeshes(meshes);\n\t\tfor (let m = 0; m < srcMeshInstances.length; m++) {\n\t\t\tcomponent.meshInstances[m].material = srcMeshInstances[m].material;\n\t\t}\n\t\tif (entity.render.customAabb) {\n\t\t\tcomponent.customAabb = entity.render.customAabb.clone();\n\t\t}\n\t\treturn component;\n\t}\n\tonBeforeRemove(entity, component) {\n\t\tcomponent.onBeforeRemove();\n\t}\n};\n\nvar ObjectPool = class {\n\t_constructor;\n\t_pool = [];\n\t_count = 0;\n\tconstructor(constructorFunc, size) {\n\t\tthis._constructor = constructorFunc;\n\t\tthis._resize(size);\n\t}\n\t_resize(size) {\n\t\tif (size > this._pool.length) {\n\t\t\tfor (let i2 = this._pool.length; i2 < size; i2++) {\n\t\t\t\tthis._pool[i2] = new this._constructor();\n\t\t\t}\n\t\t}\n\t}\n\tallocate() {\n\t\tif (this._count >= this._pool.length) {\n\t\t\tthis._resize(this._pool.length * 2);\n\t\t}\n\t\treturn this._pool[this._count++];\n\t}\n\tfreeAll() {\n\t\tthis._count = 0;\n\t}\n};\n\nvar RaycastResult = class {\n\tentity;\n\tpoint;\n\tnormal;\n\thitFraction;\n\tconstructor(entity, point5, normal, hitFraction) {\n\t\tthis.entity = entity;\n\t\tthis.point = point5;\n\t\tthis.normal = normal;\n\t\tthis.hitFraction = hitFraction;\n\t}\n};\n\nvar PhysicsBody = class {\n\tentity = null;\n\tnativeBody = null;\n\tsetFriction(friction) {\n\t}\n\tsetRollingFriction(friction) {\n\t}\n\tsetRestitution(restitution) {\n\t}\n\tsetDamping(linear, angular) {\n\t}\n\tsetLinearFactor(factor) {\n\t}\n\tsetAngularFactor(factor) {\n\t}\n\tsetLinearVelocity(velocity) {\n\t}\n\tgetLinearVelocity(velocity) {\n\t}\n\tsetAngularVelocity(velocity) {\n\t}\n\tgetAngularVelocity(velocity) {\n\t}\n\tsetMass(mass) {\n\t}\n\tisActive() {\n\t\treturn false;\n\t}\n\tactivate() {\n\t}\n\tsetTransform(position5, rotation7) {\n\t}\n\tgetTransform(position5, rotation7) {\n\t}\n\tsetKinematicTarget(position5, rotation7) {\n\t}\n\tapplyForce(force, relativePoint) {\n\t}\n\tapplyTorque(torque) {\n\t}\n\tapplyImpulse(impulse, relativePoint) {\n\t}\n\tapplyTorqueImpulse(torque) {\n\t}\n};\n\nvar PhysicsJoint = class {\n\tnativeJoint = null;\n\tupdateLimits(settings) {\n\t\treturn false;\n\t}\n\tupdateMotor(settings) {\n\t\treturn false;\n\t}\n\tupdateSpring(settings) {\n\t\treturn false;\n\t}\n\tsetBreakImpulse(impulse) {\n\t}\n\tisBroken() {\n\t\treturn false;\n\t}\n};\n\nvar PhysicsWorld = class {\n\tcontactListener = null;\n\tnativeWorld = null;\n\tdestroy() {\n\t}\n\tsetGravity(gravity) {\n\t}\n\tstep(dt, maxSubSteps, fixedTimeStep) {\n\t}\n\tflushContacts() {\n\t}\n\tcreateBody(desc) {\n\t\tconst body = new PhysicsBody();\n\t\tbody.entity = desc.entity ?? null;\n\t\treturn body;\n\t}\n\tdestroyBody(body) {\n\t}\n\taddBody(body, group, mask) {\n\t}\n\tremoveBody(body) {\n\t}\n\tcreateShape(desc) {\n\t\treturn {};\n\t}\n\tdestroyShape(shape) {\n\t}\n\taddCompoundChild(compound, child, position5, rotation7) {\n\t}\n\tupdateCompoundChild(compound, child, position5, rotation7) {\n\t}\n\tremoveCompoundChild(compound, child) {\n\t}\n\tgetCompoundChildCount(compound) {\n\t\treturn 0;\n\t}\n\tcreateJoint(desc) {\n\t\treturn new PhysicsJoint();\n\t}\n\tdestroyJoint(joint) {\n\t}\n\traycastFirst(start, end, options2) {\n\t\treturn null;\n\t}\n\traycastAll(start, end, options2) {\n\t\treturn [];\n\t}\n};\n\nvar AmmoPhysicsBody = class extends PhysicsBody {\n\t_world;\n\t_type;\n\t_noContactResponse;\n\tconstructor(world, nativeBody, type, noContactResponse) {\n\t\tsuper();\n\t\tthis._world = world;\n\t\tthis.nativeBody = nativeBody;\n\t\tthis._type = type;\n\t\tthis._noContactResponse = noContactResponse;\n\t}\n\tsetFriction(friction) {\n\t\tthis.nativeBody.setFriction(friction);\n\t}\n\tsetRollingFriction(friction) {\n\t\tthis.nativeBody.setRollingFriction(friction);\n\t}\n\tsetRestitution(restitution) {\n\t\tthis.nativeBody.setRestitution(restitution);\n\t}\n\tsetDamping(linear, angular) {\n\t\tthis.nativeBody.setDamping(linear, angular);\n\t}\n\tsetLinearFactor(factor) {\n\t\tconst vec2 = this._world._btVec1;\n\t\tvec2.setValue(factor.x, factor.y, factor.z);\n\t\tthis.nativeBody.setLinearFactor(vec2);\n\t}\n\tsetAngularFactor(factor) {\n\t\tconst vec2 = this._world._btVec1;\n\t\tvec2.setValue(factor.x, factor.y, factor.z);\n\t\tthis.nativeBody.setAngularFactor(vec2);\n\t}\n\tsetLinearVelocity(velocity) {\n\t\tconst vec2 = this._world._btVec1;\n\t\tvec2.setValue(velocity.x, velocity.y, velocity.z);\n\t\tthis.nativeBody.setLinearVelocity(vec2);\n\t}\n\tgetLinearVelocity(velocity) {\n\t\tconst vec2 = this.nativeBody.getLinearVelocity();\n\t\tvelocity.set(vec2.x(), vec2.y(), vec2.z());\n\t}\n\tsetAngularVelocity(velocity) {\n\t\tconst vec2 = this._world._btVec1;\n\t\tvec2.setValue(velocity.x, velocity.y, velocity.z);\n\t\tthis.nativeBody.setAngularVelocity(vec2);\n\t}\n\tgetAngularVelocity(velocity) {\n\t\tconst vec2 = this.nativeBody.getAngularVelocity();\n\t\tvelocity.set(vec2.x(), vec2.y(), vec2.z());\n\t}\n\tsetMass(mass) {\n\t\tconst vec2 = this._world._btVec1;\n\t\tthis.nativeBody.getCollisionShape().calculateLocalInertia(mass, vec2);\n\t\tthis.nativeBody.setMassProps(mass, vec2);\n\t\tthis.nativeBody.updateInertiaTensor();\n\t}\n\tisActive() {\n\t\treturn this.nativeBody.isActive();\n\t}\n\tactivate() {\n\t\tthis.nativeBody.activate();\n\t}\n\tsetTransform(position5, rotation7) {\n\t\tconst body = this.nativeBody;\n\t\tconst transform = this._world._btTransform;\n\t\tconst vec2 = this._world._btVec1;\n\t\tconst quat4 = this._world._btQuat;\n\t\tvec2.setValue(position5.x, position5.y, position5.z);\n\t\tquat4.setValue(rotation7.x, rotation7.y, rotation7.z, rotation7.w);\n\t\ttransform.setOrigin(vec2);\n\t\ttransform.setRotation(quat4);\n\t\tbody.setWorldTransform(transform);\n\t\tif (this._type === BODYTYPE_KINEMATIC) {\n\t\t\tconst motionState = body.getMotionState();\n\t\t\tif (motionState) {\n\t\t\t\tmotionState.setWorldTransform(transform);\n\t\t\t}\n\t\t} else if (this._type === BODYTYPE_DYNAMIC && !this._noContactResponse && body.setInterpolationWorldTransform) {\n\t\t\tbody.setInterpolationWorldTransform(transform);\n\t\t\tvec2.setValue(0, 0, 0);\n\t\t\tbody.setInterpolationLinearVelocity(vec2);\n\t\t\tbody.setInterpolationAngularVelocity(vec2);\n\t\t}\n\t\tbody.activate();\n\t}\n\tgetTransform(position5, rotation7) {\n\t\tconst motionState = this.nativeBody.getMotionState();\n\t\tif (motionState) {\n\t\t\tconst transform = this._world._btTransform;\n\t\t\tmotionState.getWorldTransform(transform);\n\t\t\tconst p = transform.getOrigin();\n\t\t\tconst q5 = transform.getRotation();\n\t\t\tposition5.set(p.x(), p.y(), p.z());\n\t\t\trotation7.set(q5.x(), q5.y(), q5.z(), q5.w());\n\t\t}\n\t}\n\tsetKinematicTarget(position5, rotation7) {\n\t\tconst motionState = this.nativeBody.getMotionState();\n\t\tif (motionState) {\n\t\t\tconst transform = this._world._btTransform;\n\t\t\tconst vec2 = this._world._btVec1;\n\t\t\tconst quat4 = this._world._btQuat;\n\t\t\tvec2.setValue(position5.x, position5.y, position5.z);\n\t\t\tquat4.setValue(rotation7.x, rotation7.y, rotation7.z, rotation7.w);\n\t\t\ttransform.setOrigin(vec2);\n\t\t\ttransform.setRotation(quat4);\n\t\t\tmotionState.setWorldTransform(transform);\n\t\t}\n\t}\n\tapplyForce(force, relativePoint) {\n\t\tconst vec1 = this._world._btVec1;\n\t\tconst vec2 = this._world._btVec2;\n\t\tvec1.setValue(force.x, force.y, force.z);\n\t\tvec2.setValue(relativePoint.x, relativePoint.y, relativePoint.z);\n\t\tthis.nativeBody.applyForce(vec1, vec2);\n\t}\n\tapplyTorque(torque) {\n\t\tconst vec2 = this._world._btVec1;\n\t\tvec2.setValue(torque.x, torque.y, torque.z);\n\t\tthis.nativeBody.applyTorque(vec2);\n\t}\n\tapplyImpulse(impulse, relativePoint) {\n\t\tconst vec1 = this._world._btVec1;\n\t\tconst vec2 = this._world._btVec2;\n\t\tvec1.setValue(impulse.x, impulse.y, impulse.z);\n\t\tvec2.setValue(relativePoint.x, relativePoint.y, relativePoint.z);\n\t\tthis.nativeBody.applyImpulse(vec1, vec2);\n\t}\n\tapplyTorqueImpulse(torque) {\n\t\tconst vec2 = this._world._btVec1;\n\t\tvec2.setValue(torque.x, torque.y, torque.z);\n\t\tthis.nativeBody.applyTorqueImpulse(vec2);\n\t}\n};\n\nvar _frameMat = new Mat4();\nvar _vec33 = new Vec3();\nvar _quat2 = new Quat();\nvar _dof = { lower: 0, upper: 0 };\nfunction dofLimits(motion, limits, scale2) {\n\tif (motion === MOTION_LIMITED) {\n\t\t_dof.lower = limits.x * scale2;\n\t\t_dof.upper = limits.y * scale2;\n\t} else if (motion === MOTION_FREE) {\n\t\t_dof.lower = 1;\n\t\t_dof.upper = 0;\n\t} else {\n\t\t_dof.lower = 0;\n\t\t_dof.upper = 0;\n\t}\n\treturn _dof;\n}\nvar fixedJoint = {\n\tcreate(bodyA, bodyB, frameA, frameB) {\n\t\treturn new Ammo.btFixedConstraint(bodyA, bodyB, frameA, frameB);\n\t}\n};\nvar ballJoint = {\n\tcreate(bodyA, bodyB, frameA, frameB) {\n\t\treturn new Ammo.btConeTwistConstraint(bodyA, bodyB, frameA, frameB);\n\t},\n\tupdateLimits(joint, settings) {\n\t\tconst constraint = joint.nativeJoint;\n\t\tif (settings.enableLimits) {\n\t\t\tconstraint.setLimit(5, settings.swingLimitY * math.DEG_TO_RAD);\n\t\t\tconstraint.setLimit(4, settings.swingLimitZ * math.DEG_TO_RAD);\n\t\t\tconstraint.setLimit(3, settings.twistLimit * math.DEG_TO_RAD);\n\t\t} else {\n\t\t\tconstraint.setLimit(5, 1e30);\n\t\t\tconstraint.setLimit(4, 1e30);\n\t\t\tconstraint.setLimit(3, 1e30);\n\t\t}\n\t}\n};\nvar hingeJoint = {\n\t// bullet hinges rotate about frame Z - map the engine's X axis onto it\n\taxisCorrection: new Mat4().setFromAxisAngle(Vec3.UP, 90),\n\tcreate(bodyA, bodyB, frameA, frameB) {\n\t\treturn new Ammo.btHingeConstraint(bodyA, bodyB, frameA, frameB, false);\n\t},\n\tupdateLimits(joint, settings) {\n\t\tconst constraint = joint.nativeJoint;\n\t\tif (settings.enableLimits) {\n\t\t\tconst limits = settings.limits;\n\t\t\tconstraint.setLimit(limits.x * math.DEG_TO_RAD, limits.y * math.DEG_TO_RAD, 0.9, 0.3, 1);\n\t\t} else {\n\t\t\tconstraint.setLimit(1, -1, 0.9, 0.3, 1);\n\t\t}\n\t},\n\tupdateMotor(joint, settings) {\n\t\tconst maxImpulse = settings.maxMotorForce * joint._world._fixedTimeStep;\n\t\tjoint.nativeJoint.enableAngularMotor(settings.maxMotorForce > 0, settings.motorSpeed * math.DEG_TO_RAD, maxImpulse);\n\t}\n};\nvar sliderJoint = {\n\tcreate(bodyA, bodyB, frameA, frameB) {\n\t\treturn new Ammo.btSliderConstraint(bodyA, bodyB, frameA, frameB, true);\n\t},\n\tupdateLimits(joint, settings) {\n\t\tconst constraint = joint.nativeJoint;\n\t\tif (settings.enableLimits) {\n\t\t\tconst limits = settings.limits;\n\t\t\tconstraint.setLowerLinLimit(limits.x);\n\t\t\tconstraint.setUpperLinLimit(limits.y);\n\t\t} else {\n\t\t\tconstraint.setLowerLinLimit(1);\n\t\t\tconstraint.setUpperLinLimit(-1);\n\t\t}\n\t\tconstraint.setLowerAngLimit(0);\n\t\tconstraint.setUpperAngLimit(0);\n\t},\n\tupdateMotor(joint, settings) {\n\t\tconst constraint = joint.nativeJoint;\n\t\tconstraint.setPoweredLinMotor(settings.maxMotorForce > 0);\n\t\tconstraint.setTargetLinMotorVelocity(settings.motorSpeed);\n\t\tconstraint.setMaxLinMotorForce(settings.maxMotorForce);\n\t}\n};\nvar sixDofJoint = {\n\tcreate(bodyA, bodyB, frameA, frameB) {\n\t\treturn new Ammo.btGeneric6DofSpringConstraint(bodyA, bodyB, frameA, frameB, true);\n\t},\n\tupdateLimits(joint, settings) {\n\t\tconst constraint = joint.nativeJoint;\n\t\tlet dof = dofLimits(settings.linearMotionX, settings.linearLimitsX, 1);\n\t\tconst lx = dof.lower, ux = dof.upper;\n\t\tdof = dofLimits(settings.linearMotionY, settings.linearLimitsY, 1);\n\t\tconst ly = dof.lower, uy = dof.upper;\n\t\tdof = dofLimits(settings.linearMotionZ, settings.linearLimitsZ, 1);\n\t\tconst lz = dof.lower, uz = dof.upper;\n\t\tconst limits = joint._world._btVec1;\n\t\tlimits.setValue(lx, ly, lz);\n\t\tconstraint.setLinearLowerLimit(limits);\n\t\tlimits.setValue(ux, uy, uz);\n\t\tconstraint.setLinearUpperLimit(limits);\n\t\tdof = dofLimits(settings.angularMotionX, settings.angularLimitsX, math.DEG_TO_RAD);\n\t\tconst alx = dof.lower, aux = dof.upper;\n\t\tdof = dofLimits(settings.angularMotionY, settings.angularLimitsY, math.DEG_TO_RAD);\n\t\tconst aly = dof.lower, auy = dof.upper;\n\t\tdof = dofLimits(settings.angularMotionZ, settings.angularLimitsZ, math.DEG_TO_RAD);\n\t\tconst alz = dof.lower, auz = dof.upper;\n\t\tlimits.setValue(alx, aly, alz);\n\t\tconstraint.setAngularLowerLimit(limits);\n\t\tlimits.setValue(aux, auy, auz);\n\t\tconstraint.setAngularUpperLimit(limits);\n\t},\n\tupdateSpring(joint, settings) {\n\t\tconst constraint = joint.nativeJoint;\n\t\tconst rad = math.DEG_TO_RAD;\n\t\tconst linStiffness = settings.linearStiffness;\n\t\tconst linDamping = settings.linearDamping;\n\t\tconst linEquilibrium = settings.linearEquilibrium;\n\t\tconst angStiffness = settings.angularStiffness;\n\t\tconst angDamping = settings.angularDamping;\n\t\tconst angEquilibrium = settings.angularEquilibrium;\n\t\tconstraint.enableSpring(0, linStiffness.x > 0);\n\t\tconstraint.setStiffness(0, linStiffness.x);\n\t\tconstraint.setDamping(0, linDamping.x);\n\t\tconstraint.setEquilibriumPoint(0, linEquilibrium.x);\n\t\tconstraint.enableSpring(1, linStiffness.y > 0);\n\t\tconstraint.setStiffness(1, linStiffness.y);\n\t\tconstraint.setDamping(1, linDamping.y);\n\t\tconstraint.setEquilibriumPoint(1, linEquilibrium.y);\n\t\tconstraint.enableSpring(2, linStiffness.z > 0);\n\t\tconstraint.setStiffness(2, linStiffness.z);\n\t\tconstraint.setDamping(2, linDamping.z);\n\t\tconstraint.setEquilibriumPoint(2, linEquilibrium.z);\n\t\tconstraint.enableSpring(3, angStiffness.x > 0);\n\t\tconstraint.setStiffness(3, angStiffness.x);\n\t\tconstraint.setDamping(3, angDamping.x);\n\t\tconstraint.setEquilibriumPoint(3, angEquilibrium.x * rad);\n\t\tconstraint.enableSpring(4, angStiffness.y > 0);\n\t\tconstraint.setStiffness(4, angStiffness.y);\n\t\tconstraint.setDamping(4, angDamping.y);\n\t\tconstraint.setEquilibriumPoint(4, angEquilibrium.y * rad);\n\t\tconstraint.enableSpring(5, angStiffness.z > 0);\n\t\tconstraint.setStiffness(5, angStiffness.z);\n\t\tconstraint.setDamping(5, angDamping.z);\n\t\tconstraint.setEquilibriumPoint(5, angEquilibrium.z * rad);\n\t}\n};\nvar jointImpls = {\n\t[JOINTTYPE_FIXED]: fixedJoint,\n\t[JOINTTYPE_BALL]: ballJoint,\n\t[JOINTTYPE_HINGE]: hingeJoint,\n\t[JOINTTYPE_SLIDER]: sliderJoint,\n\t[JOINTTYPE_6DOF]: sixDofJoint\n};\nvar AmmoPhysicsJoint = class extends PhysicsJoint {\n\t_world;\n\t_type;\n\t_breakImpulse = Infinity;\n\tconstructor(world, type) {\n\t\tsuper();\n\t\tthis._world = world;\n\t\tthis._type = type;\n\t}\n\tupdateLimits(settings) {\n\t\tconst impl = jointImpls[this._type];\n\t\tif (impl.updateLimits) {\n\t\t\timpl.updateLimits(this, settings);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tupdateMotor(settings) {\n\t\tconst impl = jointImpls[this._type];\n\t\tif (impl.updateMotor) {\n\t\t\timpl.updateMotor(this, settings);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tupdateSpring(settings) {\n\t\tconst impl = jointImpls[this._type];\n\t\tif (impl.updateSpring) {\n\t\t\timpl.updateSpring(this, settings);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tsetBreakImpulse(impulse) {\n\t\tthis._breakImpulse = impulse;\n\t\tconst breakable = Number.isFinite(impulse);\n\t\tthis.nativeJoint.setBreakingImpulseThreshold(breakable ? impulse : Number.MAX_VALUE);\n\t\tthis.nativeJoint.enableFeedback(breakable);\n\t}\n\tisBroken() {\n\t\tconst constraint = this.nativeJoint;\n\t\tif (typeof constraint.isEnabled === \"function\") {\n\t\t\treturn !constraint.isEnabled();\n\t\t}\n\t\tif (typeof constraint.getAppliedImpulse === \"function\") {\n\t\t\treturn constraint.getAppliedImpulse() >= this._breakImpulse;\n\t\t}\n\t\treturn null;\n\t}\n};\nfunction createBtFrame(frameMat, axisCorrection) {\n\t_frameMat.copy(frameMat);\n\tif (axisCorrection) {\n\t\t_frameMat.mul(axisCorrection);\n\t}\n\t_frameMat.getTranslation(_vec33);\n\t_quat2.setFromMat4(_frameMat);\n\tconst frame = new Ammo.btTransform();\n\tconst origin = new Ammo.btVector3(_vec33.x, _vec33.y, _vec33.z);\n\tconst rotation7 = new Ammo.btQuaternion(_quat2.x, _quat2.y, _quat2.z, _quat2.w);\n\tframe.setOrigin(origin);\n\tframe.setRotation(rotation7);\n\tAmmo.destroy(origin);\n\tAmmo.destroy(rotation7);\n\treturn frame;\n}\nfunction getFixedBody(world) {\n\tif (!world._fixedBody) {\n\t\tconst transform = new Ammo.btTransform();\n\t\ttransform.setIdentity();\n\t\tconst motionState = new Ammo.btDefaultMotionState(transform);\n\t\tconst shape = new Ammo.btSphereShape(1e-3);\n\t\tconst inertia = new Ammo.btVector3(0, 0, 0);\n\t\tconst info = new Ammo.btRigidBodyConstructionInfo(0, motionState, shape, inertia);\n\t\tworld._fixedBody = new Ammo.btRigidBody(info);\n\t\tAmmo.destroy(info);\n\t\tAmmo.destroy(inertia);\n\t\tAmmo.destroy(transform);\n\t}\n\treturn world._fixedBody;\n}\nfunction createJoint(world, desc) {\n\tconst impl = jointImpls[desc.type];\n\tconst axisCorrection = impl.axisCorrection;\n\tconst settings = desc.settings;\n\tconst frameA = createBtFrame(desc.frameA, axisCorrection);\n\tconst frameB = createBtFrame(desc.frameB, axisCorrection);\n\tconst bodyA = desc.bodyA.nativeBody;\n\tconst bodyB = desc.bodyB ? desc.bodyB.nativeBody : getFixedBody(world);\n\tconst constraint = impl.create(bodyA, bodyB, frameA, frameB);\n\tAmmo.destroy(frameA);\n\tAmmo.destroy(frameB);\n\tconst joint = new AmmoPhysicsJoint(world, desc.type);\n\tjoint.nativeJoint = constraint;\n\timpl.updateLimits?.(joint, settings);\n\timpl.updateMotor?.(joint, settings);\n\timpl.updateSpring?.(joint, settings);\n\tif (Number.isFinite(settings.breakImpulse)) {\n\t\tjoint.setBreakImpulse(settings.breakImpulse);\n\t}\n\tbodyA.activate();\n\tbodyB.activate();\n\tworld.nativeWorld.addConstraint(constraint, !desc.enableCollision);\n\treturn joint;\n}\nfunction destroyJoint(world, joint) {\n\tworld.nativeWorld.removeConstraint(joint.nativeJoint);\n\tAmmo.destroy(joint.nativeJoint);\n\tjoint.nativeJoint = null;\n}\nfunction destroyFixedBody(world) {\n\tif (world._fixedBody) {\n\t\tAmmo.destroy(world._fixedBody.getMotionState());\n\t\tAmmo.destroy(world._fixedBody.getCollisionShape());\n\t\tAmmo.destroy(world._fixedBody);\n\t\tworld._fixedBody = null;\n\t}\n}\n\nfunction getTransform(world, position5, rotation7) {\n\tconst transform = world._btTransform;\n\tconst vec2 = world._btVec1;\n\tconst quat4 = world._btQuat;\n\tvec2.setValue(position5.x, position5.y, position5.z);\n\tquat4.setValue(rotation7.x, rotation7.y, rotation7.z, rotation7.w);\n\ttransform.setOrigin(vec2);\n\ttransform.setRotation(quat4);\n\treturn transform;\n}\nfunction getTriMesh(world, source) {\n\tlet triMesh = world._triMeshCache.get(source.id);\n\tif (!triMesh) {\n\t\tconst positions = source.positions;\n\t\tconst stride = source.stride;\n\t\tconst indices = source.indices;\n\t\tconst base = source.base;\n\t\tconst numTriangles = source.count / 3;\n\t\tconst checkDupes = source.checkDuplicates;\n\t\tconst v15 = new Ammo.btVector3();\n\t\tlet i1, i2, i3;\n\t\ttriMesh = new Ammo.btTriangleMesh();\n\t\tworld._triMeshCache.set(source.id, triMesh);\n\t\tconst vertexCache = /* @__PURE__ */ new Map();\n\t\tconst indexedArray = triMesh.getIndexedMeshArray();\n\t\tindexedArray.at(0).m_numTriangles = numTriangles;\n\t\tconst bakeScale = source.bakeScale;\n\t\tconst sx = bakeScale ? bakeScale.x : 1;\n\t\tconst sy = bakeScale ? bakeScale.y : 1;\n\t\tconst sz = bakeScale ? bakeScale.z : 1;\n\t\tconst addVertex = (index) => {\n\t\t\tconst x3 = positions[index * stride] * sx;\n\t\t\tconst y2 = positions[index * stride + 1] * sy;\n\t\t\tconst z2 = positions[index * stride + 2] * sz;\n\t\t\tlet idx;\n\t\t\tif (checkDupes) {\n\t\t\t\tconst str = `${x3}:${y2}:${z2}`;\n\t\t\t\tidx = vertexCache.get(str);\n\t\t\t\tif (idx !== void 0) {\n\t\t\t\t\treturn idx;\n\t\t\t\t}\n\t\t\t\tv15.setValue(x3, y2, z2);\n\t\t\t\tidx = triMesh.findOrAddVertex(v15, false);\n\t\t\t\tvertexCache.set(str, idx);\n\t\t\t} else {\n\t\t\t\tv15.setValue(x3, y2, z2);\n\t\t\t\tidx = triMesh.findOrAddVertex(v15, false);\n\t\t\t}\n\t\t\treturn idx;\n\t\t};\n\t\tfor (let i4 = 0; i4 < numTriangles; i4++) {\n\t\t\ti1 = addVertex(indices[base + i4 * 3]);\n\t\t\ti2 = addVertex(indices[base + i4 * 3 + 1]);\n\t\t\ti3 = addVertex(indices[base + i4 * 3 + 2]);\n\t\t\ttriMesh.addIndex(i1);\n\t\t\ttriMesh.addIndex(i2);\n\t\t\ttriMesh.addIndex(i3);\n\t\t}\n\t\tAmmo.destroy(v15);\n\t}\n\treturn triMesh;\n}\nfunction createHullChild(world, compound, source) {\n\tconst hull = new Ammo.btConvexHullShape();\n\tconst point5 = new Ammo.btVector3();\n\tconst positions = source.positions;\n\tconst stride = source.stride;\n\tconst bakeScale = source.bakeScale;\n\tconst sx = bakeScale ? bakeScale.x : 1;\n\tconst sy = bakeScale ? bakeScale.y : 1;\n\tconst sz = bakeScale ? bakeScale.z : 1;\n\tfor (let i2 = 0; i2 < positions.length; i2 += stride) {\n\t\tpoint5.setValue(positions[i2] * sx, positions[i2 + 1] * sy, positions[i2 + 2] * sz);\n\t\thull.addPoint(point5, false);\n\t}\n\tAmmo.destroy(point5);\n\thull.recalcLocalAabb();\n\thull.setMargin(0.01);\n\tcompound.addChildShape(getTransform(world, source.position, source.rotation), hull);\n}\nfunction createTriMeshChild(world, compound, source) {\n\tconst triMesh = getTriMesh(world, source);\n\tconst triMeshShape = new Ammo.btBvhTriangleMeshShape(\n\t\ttriMesh,\n\t\ttrue\n\t\t/* useQuantizedAabbCompression */\n\t);\n\tconst shapeScale = source.shapeScale;\n\tif (shapeScale) {\n\t\tconst vec2 = world._btVec1;\n\t\tvec2.setValue(shapeScale.x, shapeScale.y, shapeScale.z);\n\t\ttriMeshShape.setLocalScaling(vec2);\n\t}\n\tcompound.addChildShape(getTransform(world, source.position, source.rotation), triMeshShape);\n}\nvar shapeFactories = {\n\tbox: (world, desc) => {\n\t\tconst he = desc.halfExtents;\n\t\tconst ammoHe = new Ammo.btVector3(he.x, he.y, he.z);\n\t\tconst shape = new Ammo.btBoxShape(ammoHe);\n\t\tAmmo.destroy(ammoHe);\n\t\treturn shape;\n\t},\n\tsphere: (world, desc) => {\n\t\treturn new Ammo.btSphereShape(desc.radius);\n\t},\n\tcapsule: (world, desc) => {\n\t\tconst radius = desc.radius;\n\t\tconst height = Math.max(desc.height - 2 * radius, 0);\n\t\tswitch (desc.axis) {\n\t\t\tcase 0:\n\t\t\t\treturn new Ammo.btCapsuleShapeX(radius, height);\n\t\t\tcase 2:\n\t\t\t\treturn new Ammo.btCapsuleShapeZ(radius, height);\n\t\t\tdefault:\n\t\t\t\treturn new Ammo.btCapsuleShape(radius, height);\n\t\t}\n\t},\n\tcylinder: (world, desc) => {\n\t\tconst radius = desc.radius;\n\t\tconst height = desc.height;\n\t\tlet halfExtents = null;\n\t\tlet shape = null;\n\t\tswitch (desc.axis) {\n\t\t\tcase 0:\n\t\t\t\thalfExtents = new Ammo.btVector3(height * 0.5, radius, radius);\n\t\t\t\tshape = new Ammo.btCylinderShapeX(halfExtents);\n\t\t\t\tbreak;\n\t\t\tcase 2:\n\t\t\t\thalfExtents = new Ammo.btVector3(radius, radius, height * 0.5);\n\t\t\t\tshape = new Ammo.btCylinderShapeZ(halfExtents);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\thalfExtents = new Ammo.btVector3(radius, height * 0.5, radius);\n\t\t\t\tshape = new Ammo.btCylinderShape(halfExtents);\n\t\t\t\tbreak;\n\t\t}\n\t\tAmmo.destroy(halfExtents);\n\t\treturn shape;\n\t},\n\tcone: (world, desc) => {\n\t\tswitch (desc.axis) {\n\t\t\tcase 0:\n\t\t\t\treturn new Ammo.btConeShapeX(desc.radius, desc.height);\n\t\t\tcase 2:\n\t\t\t\treturn new Ammo.btConeShapeZ(desc.radius, desc.height);\n\t\t\tdefault:\n\t\t\t\treturn new Ammo.btConeShape(desc.radius, desc.height);\n\t\t}\n\t},\n\tmesh: (world, desc) => {\n\t\tconst shape = new Ammo.btCompoundShape();\n\t\tconst sources = desc.sources;\n\t\tfor (let i2 = 0; i2 < sources.length; i2++) {\n\t\t\tconst source = sources[i2];\n\t\t\tif (source.convexHull) {\n\t\t\t\tcreateHullChild(world, shape, source);\n\t\t\t} else {\n\t\t\t\tcreateTriMeshChild(world, shape, source);\n\t\t\t}\n\t\t}\n\t\tif (desc.scale) {\n\t\t\tconst vec2 = new Ammo.btVector3(desc.scale.x, desc.scale.y, desc.scale.z);\n\t\t\tshape.setLocalScaling(vec2);\n\t\t\tAmmo.destroy(vec2);\n\t\t}\n\t\treturn shape;\n\t},\n\tcompound: (world, desc) => {\n\t\treturn new Ammo.btCompoundShape();\n\t}\n};\nfunction createShape(world, desc) {\n\tconst factory = shapeFactories[desc.type];\n\tconst shape = factory(world, desc);\n\tshape._shapeType = desc.type;\n\treturn shape;\n}\nfunction destroyShape2(shape) {\n\tif (shape._shapeType === \"mesh\") {\n\t\tconst numShapes = shape.getNumChildShapes();\n\t\tfor (let i2 = 0; i2 < numShapes; i2++) {\n\t\t\tAmmo.destroy(shape.getChildShape(i2));\n\t\t}\n\t}\n\tAmmo.destroy(shape);\n}\nfunction indexOfCompoundChild(compound, child) {\n\tconst childPointer = Ammo.getPointer(child);\n\tconst numShapes = compound.getNumChildShapes();\n\tfor (let i2 = 0; i2 < numShapes; i2++) {\n\t\tif (Ammo.getPointer(compound.getChildShape(i2)) === childPointer) {\n\t\t\treturn i2;\n\t\t}\n\t}\n\treturn -1;\n}\nfunction addCompoundChild(world, compound, child, position5, rotation7) {\n\tcompound.addChildShape(getTransform(world, position5, rotation7), child);\n}\nfunction updateCompoundChild(world, compound, child, position5, rotation7) {\n\tconst transform = getTransform(world, position5, rotation7);\n\tconst idx = indexOfCompoundChild(compound, child);\n\tif (idx < 0) {\n\t\tcompound.addChildShape(transform, child);\n\t} else {\n\t\tcompound.updateChildTransform(idx, transform, true);\n\t}\n}\nfunction removeCompoundChild(compound, child) {\n\tif (compound.getNumChildShapes() === 0) {\n\t\treturn;\n\t}\n\tif (compound.removeChildShape) {\n\t\tcompound.removeChildShape(child);\n\t} else {\n\t\tconst idx = indexOfCompoundChild(compound, child);\n\t\tif (idx >= 0) {\n\t\t\tcompound.removeChildShapeByIndex(idx);\n\t\t}\n\t}\n}\n\nvar AmmoContactPair = class {\n\tentityA = null;\n\tentityB = null;\n\ttriggerA = false;\n\ttriggerB = false;\n\tcontactCount = 0;\n\t_manifold = null;\n\treadContact(index, out) {\n\t\tconst contactPoint = this._manifold.getContactPoint(index);\n\t\tconst localPointA = contactPoint.get_m_localPointA();\n\t\tconst localPointB = contactPoint.get_m_localPointB();\n\t\tconst positionWorldOnA = contactPoint.getPositionWorldOnA();\n\t\tconst positionWorldOnB = contactPoint.getPositionWorldOnB();\n\t\tconst normalWorldOnB = contactPoint.get_m_normalWorldOnB();\n\t\tout.localPoint.set(localPointA.x(), localPointA.y(), localPointA.z());\n\t\tout.localPointOther.set(localPointB.x(), localPointB.y(), localPointB.z());\n\t\tout.point.set(positionWorldOnA.x(), positionWorldOnA.y(), positionWorldOnA.z());\n\t\tout.pointOther.set(positionWorldOnB.x(), positionWorldOnB.y(), positionWorldOnB.z());\n\t\tout.normal.set(normalWorldOnB.x(), normalWorldOnB.y(), normalWorldOnB.z());\n\t\tout.impulse = contactPoint.getAppliedImpulse();\n\t}\n};\nvar AmmoPhysicsWorld = class extends PhysicsWorld {\n\t_gravityFloat32 = new Float32Array(3);\n\t_triMeshCache = /* @__PURE__ */ new Map();\n\t_fixedBody = null;\n\t_fixedTimeStep = 1 / 60;\n\tcollisionConfiguration = null;\n\tdispatcher = null;\n\toverlappingPairCache = null;\n\tsolver = null;\n\t_useTickCallback = false;\n\t_contactPair = null;\n\t_btVec1 = null;\n\t_btVec2 = null;\n\t_btQuat = null;\n\t_btTransform = null;\n\t_btRayStart = null;\n\t_btRayEnd = null;\n\tconstructor() {\n\t\tsuper();\n\t\tthis.collisionConfiguration = new Ammo.btDefaultCollisionConfiguration();\n\t\tthis.dispatcher = new Ammo.btCollisionDispatcher(this.collisionConfiguration);\n\t\tthis.overlappingPairCache = new Ammo.btDbvtBroadphase();\n\t\tthis.solver = new Ammo.btSequentialImpulseConstraintSolver();\n\t\tthis.nativeWorld = new Ammo.btDiscreteDynamicsWorld(this.dispatcher, this.overlappingPairCache, this.solver, this.collisionConfiguration);\n\t\tthis._useTickCallback = !!this.nativeWorld.setInternalTickCallback;\n\t\tif (this._useTickCallback) {\n\t\t\tconst checkForCollisionsPointer = Ammo.addFunction(() => this._walkContacts(), \"vif\");\n\t\t\tthis.nativeWorld.setInternalTickCallback(checkForCollisionsPointer);\n\t\t} else {\n\t\t}\n\t\tthis._contactPair = new AmmoContactPair();\n\t\tthis._btVec1 = new Ammo.btVector3();\n\t\tthis._btVec2 = new Ammo.btVector3();\n\t\tthis._btQuat = new Ammo.btQuaternion();\n\t\tthis._btTransform = new Ammo.btTransform();\n\t\tthis._btRayStart = new Ammo.btVector3();\n\t\tthis._btRayEnd = new Ammo.btVector3();\n\t}\n\tdestroy() {\n\t\tthis._triMeshCache.forEach((triMesh) => Ammo.destroy(triMesh));\n\t\tthis._triMeshCache.clear();\n\t\tdestroyFixedBody(this);\n\t\tAmmo.destroy(this._btVec1);\n\t\tAmmo.destroy(this._btVec2);\n\t\tAmmo.destroy(this._btQuat);\n\t\tAmmo.destroy(this._btTransform);\n\t\tAmmo.destroy(this._btRayStart);\n\t\tAmmo.destroy(this._btRayEnd);\n\t\tthis._btVec1 = null;\n\t\tthis._btVec2 = null;\n\t\tthis._btQuat = null;\n\t\tthis._btTransform = null;\n\t\tthis._btRayStart = null;\n\t\tthis._btRayEnd = null;\n\t\tAmmo.destroy(this.nativeWorld);\n\t\tAmmo.destroy(this.solver);\n\t\tAmmo.destroy(this.overlappingPairCache);\n\t\tAmmo.destroy(this.dispatcher);\n\t\tAmmo.destroy(this.collisionConfiguration);\n\t\tthis.nativeWorld = null;\n\t\tthis.solver = null;\n\t\tthis.overlappingPairCache = null;\n\t\tthis.dispatcher = null;\n\t\tthis.collisionConfiguration = null;\n\t}\n\tcreateBody(desc) {\n\t\tconst { type, mass, shape, position: position5, rotation: rotation7, entity } = desc;\n\t\tconst noContactResponse = !!desc.noContactResponse;\n\t\tthis._btVec1.setValue(position5.x, position5.y, position5.z);\n\t\tthis._btQuat.setValue(rotation7.x, rotation7.y, rotation7.z, rotation7.w);\n\t\tthis._btTransform.setOrigin(this._btVec1);\n\t\tthis._btTransform.setRotation(this._btQuat);\n\t\tconst localInertia = new Ammo.btVector3(0, 0, 0);\n\t\tif (mass !== 0) {\n\t\t\tshape.calculateLocalInertia(mass, localInertia);\n\t\t}\n\t\tconst motionState = new Ammo.btDefaultMotionState(this._btTransform);\n\t\tconst bodyInfo = new Ammo.btRigidBodyConstructionInfo(mass, motionState, shape, localInertia);\n\t\tconst nativeBody = new Ammo.btRigidBody(bodyInfo);\n\t\tAmmo.destroy(bodyInfo);\n\t\tAmmo.destroy(localInertia);\n\t\tif (type === BODYTYPE_KINEMATIC) {\n\t\t\tnativeBody.setCollisionFlags(nativeBody.getCollisionFlags() | BODYFLAG_KINEMATIC_OBJECT);\n\t\t\tnativeBody.setActivationState(BODYSTATE_DISABLE_DEACTIVATION);\n\t\t}\n\t\tif (noContactResponse) {\n\t\t\tnativeBody.setCollisionFlags(nativeBody.getCollisionFlags() | BODYFLAG_NORESPONSE_OBJECT);\n\t\t}\n\t\tnativeBody.entity = entity;\n\t\tconst body = new AmmoPhysicsBody(this, nativeBody, type, noContactResponse);\n\t\tbody.entity = entity;\n\t\treturn body;\n\t}\n\tdestroyBody(body) {\n\t\tconst nativeBody = body.nativeBody;\n\t\tconst motionState = nativeBody.getMotionState();\n\t\tif (motionState) {\n\t\t\tAmmo.destroy(motionState);\n\t\t}\n\t\tAmmo.destroy(nativeBody);\n\t\tbody.nativeBody = null;\n\t}\n\taddBody(body, group, mask) {\n\t\tconst nativeBody = body.nativeBody;\n\t\tif (group !== void 0 && mask !== void 0) {\n\t\t\tthis.nativeWorld.addRigidBody(nativeBody, group, mask);\n\t\t} else {\n\t\t\tthis.nativeWorld.addRigidBody(nativeBody);\n\t\t}\n\t\tnativeBody.forceActivationState(body._type === BODYTYPE_KINEMATIC ? BODYSTATE_DISABLE_DEACTIVATION : BODYSTATE_ACTIVE_TAG);\n\t}\n\tremoveBody(body) {\n\t\tconst nativeBody = body.nativeBody;\n\t\tthis.nativeWorld.removeRigidBody(nativeBody);\n\t\tnativeBody.forceActivationState(BODYSTATE_DISABLE_SIMULATION);\n\t}\n\tcreateShape(desc) {\n\t\treturn createShape(this, desc);\n\t}\n\tdestroyShape(shape) {\n\t\tdestroyShape2(shape);\n\t}\n\taddCompoundChild(compound, child, position5, rotation7) {\n\t\taddCompoundChild(this, compound, child, position5, rotation7);\n\t}\n\tupdateCompoundChild(compound, child, position5, rotation7) {\n\t\tupdateCompoundChild(this, compound, child, position5, rotation7);\n\t}\n\tremoveCompoundChild(compound, child) {\n\t\tremoveCompoundChild(compound, child);\n\t}\n\tgetCompoundChildCount(compound) {\n\t\treturn compound.getNumChildShapes();\n\t}\n\tcreateJoint(desc) {\n\t\treturn createJoint(this, desc);\n\t}\n\tdestroyJoint(joint) {\n\t\tdestroyJoint(this, joint);\n\t}\n\tsetGravity(gravity) {\n\t\tthis._gravityFloat32[0] = gravity.x;\n\t\tthis._gravityFloat32[1] = gravity.y;\n\t\tthis._gravityFloat32[2] = gravity.z;\n\t\tconst current = this.nativeWorld.getGravity();\n\t\tif (current.x() !== this._gravityFloat32[0] || current.y() !== this._gravityFloat32[1] || current.z() !== this._gravityFloat32[2]) {\n\t\t\tcurrent.setValue(gravity.x, gravity.y, gravity.z);\n\t\t\tthis.nativeWorld.setGravity(current);\n\t\t}\n\t}\n\tstep(dt, maxSubSteps, fixedTimeStep) {\n\t\tthis._fixedTimeStep = fixedTimeStep;\n\t\tthis.nativeWorld.stepSimulation(dt, maxSubSteps, fixedTimeStep);\n\t}\n\tflushContacts() {\n\t\tif (!this._useTickCallback) {\n\t\t\tthis._walkContacts();\n\t\t}\n\t}\n\t_walkContacts() {\n\t\tconst listener = this.contactListener;\n\t\tif (!listener) {\n\t\t\treturn;\n\t\t}\n\t\tlistener.onContactsBegin();\n\t\tconst dispatcher = this.dispatcher;\n\t\tconst numManifolds = dispatcher.getNumManifolds();\n\t\tconst pair = this._contactPair;\n\t\tfor (let i2 = 0; i2 < numManifolds; i2++) {\n\t\t\tconst manifold = dispatcher.getManifoldByIndexInternal(i2);\n\t\t\tconst wb0 = Ammo.castObject(manifold.getBody0(), Ammo.btRigidBody);\n\t\t\tconst wb1 = Ammo.castObject(manifold.getBody1(), Ammo.btRigidBody);\n\t\t\tconst e0 = wb0.entity;\n\t\t\tconst e12 = wb1.entity;\n\t\t\tif (!e0 || !e12) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst numContacts = manifold.getNumContacts();\n\t\t\tif (numContacts > 0) {\n\t\t\t\tpair.entityA = e0;\n\t\t\t\tpair.entityB = e12;\n\t\t\t\tpair.triggerA = (wb0.getCollisionFlags() & BODYFLAG_NORESPONSE_OBJECT) !== 0;\n\t\t\t\tpair.triggerB = (wb1.getCollisionFlags() & BODYFLAG_NORESPONSE_OBJECT) !== 0;\n\t\t\t\tpair.contactCount = numContacts;\n\t\t\t\tpair._manifold = manifold;\n\t\t\t\tlistener.onContactPair(pair);\n\t\t\t}\n\t\t}\n\t\tpair.entityA = null;\n\t\tpair.entityB = null;\n\t\tpair._manifold = null;\n\t\tlistener.onContactsEnd();\n\t}\n\traycastFirst(start, end, options2 = {}) {\n\t\tlet result = null;\n\t\tthis._btRayStart.setValue(start.x, start.y, start.z);\n\t\tthis._btRayEnd.setValue(end.x, end.y, end.z);\n\t\tconst rayCallback = new Ammo.ClosestRayResultCallback(this._btRayStart, this._btRayEnd);\n\t\tif (typeof options2.filterCollisionGroup === \"number\") {\n\t\t\trayCallback.set_m_collisionFilterGroup(options2.filterCollisionGroup);\n\t\t}\n\t\tif (typeof options2.filterCollisionMask === \"number\") {\n\t\t\trayCallback.set_m_collisionFilterMask(options2.filterCollisionMask);\n\t\t}\n\t\tthis.nativeWorld.rayTest(this._btRayStart, this._btRayEnd, rayCallback);\n\t\tif (rayCallback.hasHit()) {\n\t\t\tconst collisionObj = rayCallback.get_m_collisionObject();\n\t\t\tconst body = Ammo.castObject(collisionObj, Ammo.btRigidBody);\n\t\t\tif (body) {\n\t\t\t\tconst point5 = rayCallback.get_m_hitPointWorld();\n\t\t\t\tconst normal = rayCallback.get_m_hitNormalWorld();\n\t\t\t\tresult = new RaycastResult(\n\t\t\t\t\tbody.entity,\n\t\t\t\t\tnew Vec3(point5.x(), point5.y(), point5.z()),\n\t\t\t\t\tnew Vec3(normal.x(), normal.y(), normal.z()),\n\t\t\t\t\trayCallback.get_m_closestHitFraction()\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tAmmo.destroy(rayCallback);\n\t\treturn result;\n\t}\n\traycastAll(start, end, options2 = {}) {\n\t\tconst results = [];\n\t\tthis._btRayStart.setValue(start.x, start.y, start.z);\n\t\tthis._btRayEnd.setValue(end.x, end.y, end.z);\n\t\tconst rayCallback = new Ammo.AllHitsRayResultCallback(this._btRayStart, this._btRayEnd);\n\t\tif (typeof options2.filterCollisionGroup === \"number\") {\n\t\t\trayCallback.set_m_collisionFilterGroup(options2.filterCollisionGroup);\n\t\t}\n\t\tif (typeof options2.filterCollisionMask === \"number\") {\n\t\t\trayCallback.set_m_collisionFilterMask(options2.filterCollisionMask);\n\t\t}\n\t\tthis.nativeWorld.rayTest(this._btRayStart, this._btRayEnd, rayCallback);\n\t\tif (rayCallback.hasHit()) {\n\t\t\tconst collisionObjs = rayCallback.get_m_collisionObjects();\n\t\t\tconst points = rayCallback.get_m_hitPointWorld();\n\t\t\tconst normals = rayCallback.get_m_hitNormalWorld();\n\t\t\tconst hitFractions = rayCallback.get_m_hitFractions();\n\t\t\tconst numHits = collisionObjs.size();\n\t\t\tfor (let i2 = 0; i2 < numHits; i2++) {\n\t\t\t\tconst body = Ammo.castObject(collisionObjs.at(i2), Ammo.btRigidBody);\n\t\t\t\tif (body && body.entity) {\n\t\t\t\t\tif (options2.filterTags && !body.entity.tags.has(...options2.filterTags) || options2.filterCallback && !options2.filterCallback(body.entity)) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tconst point5 = points.at(i2);\n\t\t\t\t\tconst normal = normals.at(i2);\n\t\t\t\t\tconst result = new RaycastResult(\n\t\t\t\t\t\tbody.entity,\n\t\t\t\t\t\tnew Vec3(point5.x(), point5.y(), point5.z()),\n\t\t\t\t\t\tnew Vec3(normal.x(), normal.y(), normal.z()),\n\t\t\t\t\t\thitFractions.at(i2)\n\t\t\t\t\t);\n\t\t\t\t\tresults.push(result);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tAmmo.destroy(rayCallback);\n\t\treturn results;\n\t}\n};\n\nvar _quat1 = new Quat();\nvar _quat22 = new Quat();\nvar _vec34 = new Vec3();\nvar _position2 = new Vec3();\nvar _rotation2 = new Quat();\nvar _vecA = new Vec3();\nvar _vecB = new Vec3();\nvar RigidBodyComponent = class extends Component {\n\tstatic EVENT_CONTACT = \"contact\";\n\tstatic EVENT_COLLISIONSTART = \"collisionstart\";\n\tstatic EVENT_COLLISIONEND = \"collisionend\";\n\tstatic EVENT_TRIGGERENTER = \"triggerenter\";\n\tstatic EVENT_TRIGGERLEAVE = \"triggerleave\";\n\tstatic order = -1;\n\t_angularDamping = 0;\n\t_angularFactor = new Vec3(1, 1, 1);\n\t_angularVelocity = new Vec3();\n\t_body = null;\n\t_friction = 0.5;\n\t_group = BODYGROUP_STATIC;\n\t_linearDamping = 0;\n\t_linearFactor = new Vec3(1, 1, 1);\n\t_linearVelocity = new Vec3();\n\t_mask = BODYMASK_NOT_STATIC;\n\t_mass = 1;\n\t_restitution = 0;\n\t_rollingFriction = 0;\n\t_simulationEnabled = false;\n\t_type = BODYTYPE_STATIC;\n\tset angularDamping(damping) {\n\t\tif (this._angularDamping !== damping) {\n\t\t\tthis._angularDamping = damping;\n\t\t\tif (this._body) {\n\t\t\t\tthis._body.setDamping(this._linearDamping, damping);\n\t\t\t}\n\t\t}\n\t}\n\tget angularDamping() {\n\t\treturn this._angularDamping;\n\t}\n\tset angularFactor(factor) {\n\t\tif (!this._angularFactor.equals(factor)) {\n\t\t\tthis._angularFactor.copy(factor);\n\t\t\tif (this._body && this._type === BODYTYPE_DYNAMIC) {\n\t\t\t\tthis._body.setAngularFactor(factor);\n\t\t\t}\n\t\t}\n\t}\n\tget angularFactor() {\n\t\treturn this._angularFactor;\n\t}\n\tset angularVelocity(velocity) {\n\t\tif (this._body && this._type === BODYTYPE_DYNAMIC) {\n\t\t\tthis._body.activate();\n\t\t\tthis._body.setAngularVelocity(velocity);\n\t\t\tthis._angularVelocity.copy(velocity);\n\t\t}\n\t}\n\tget angularVelocity() {\n\t\tif (this._body && this._type === BODYTYPE_DYNAMIC) {\n\t\t\tthis._body.getAngularVelocity(this._angularVelocity);\n\t\t}\n\t\treturn this._angularVelocity;\n\t}\n\tset body(body) {\n\t\tif (this._body !== body) {\n\t\t\tthis._body = body;\n\t\t\tif (body && this._simulationEnabled) {\n\t\t\t\tbody.activate();\n\t\t\t}\n\t\t}\n\t}\n\tget body() {\n\t\treturn this._body ? this._body.nativeBody : null;\n\t}\n\tset friction(friction) {\n\t\tif (this._friction !== friction) {\n\t\t\tthis._friction = friction;\n\t\t\tif (this._body) {\n\t\t\t\tthis._body.setFriction(friction);\n\t\t\t}\n\t\t}\n\t}\n\tget friction() {\n\t\treturn this._friction;\n\t}\n\tset group(group) {\n\t\tif (this._group !== group) {\n\t\t\tthis._group = group;\n\t\t\tif (this.enabled && this.entity.enabled) {\n\t\t\t\tthis.disableSimulation();\n\t\t\t\tthis.enableSimulation();\n\t\t\t}\n\t\t}\n\t}\n\tget group() {\n\t\treturn this._group;\n\t}\n\tset linearDamping(damping) {\n\t\tif (this._linearDamping !== damping) {\n\t\t\tthis._linearDamping = damping;\n\t\t\tif (this._body) {\n\t\t\t\tthis._body.setDamping(damping, this._angularDamping);\n\t\t\t}\n\t\t}\n\t}\n\tget linearDamping() {\n\t\treturn this._linearDamping;\n\t}\n\tset linearFactor(factor) {\n\t\tif (!this._linearFactor.equals(factor)) {\n\t\t\tthis._linearFactor.copy(factor);\n\t\t\tif (this._body && this._type === BODYTYPE_DYNAMIC) {\n\t\t\t\tthis._body.setLinearFactor(factor);\n\t\t\t}\n\t\t}\n\t}\n\tget linearFactor() {\n\t\treturn this._linearFactor;\n\t}\n\tset linearVelocity(velocity) {\n\t\tif (this._body && this._type === BODYTYPE_DYNAMIC) {\n\t\t\tthis._body.activate();\n\t\t\tthis._body.setLinearVelocity(velocity);\n\t\t\tthis._linearVelocity.copy(velocity);\n\t\t}\n\t}\n\tget linearVelocity() {\n\t\tif (this._body && this._type === BODYTYPE_DYNAMIC) {\n\t\t\tthis._body.getLinearVelocity(this._linearVelocity);\n\t\t}\n\t\treturn this._linearVelocity;\n\t}\n\tset mask(mask) {\n\t\tif (this._mask !== mask) {\n\t\t\tthis._mask = mask;\n\t\t\tif (this.enabled && this.entity.enabled) {\n\t\t\t\tthis.disableSimulation();\n\t\t\t\tthis.enableSimulation();\n\t\t\t}\n\t\t}\n\t}\n\tget mask() {\n\t\treturn this._mask;\n\t}\n\tset mass(mass) {\n\t\tif (this._mass !== mass) {\n\t\t\tthis._mass = mass;\n\t\t\tif (this._body && this._type === BODYTYPE_DYNAMIC) {\n\t\t\t\tconst enabled = this.enabled && this.entity.enabled;\n\t\t\t\tif (enabled) {\n\t\t\t\t\tthis.disableSimulation();\n\t\t\t\t}\n\t\t\t\tthis._body.setMass(mass);\n\t\t\t\tif (enabled) {\n\t\t\t\t\tthis.enableSimulation();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tget mass() {\n\t\treturn this._mass;\n\t}\n\tset restitution(restitution) {\n\t\tif (this._restitution !== restitution) {\n\t\t\tthis._restitution = restitution;\n\t\t\tif (this._body) {\n\t\t\t\tthis._body.setRestitution(restitution);\n\t\t\t}\n\t\t}\n\t}\n\tget restitution() {\n\t\treturn this._restitution;\n\t}\n\tset rollingFriction(friction) {\n\t\tif (this._rollingFriction !== friction) {\n\t\t\tthis._rollingFriction = friction;\n\t\t\tif (this._body) {\n\t\t\t\tthis._body.setRollingFriction(friction);\n\t\t\t}\n\t\t}\n\t}\n\tget rollingFriction() {\n\t\treturn this._rollingFriction;\n\t}\n\tset type(type) {\n\t\tif (this._type !== type) {\n\t\t\tthis._type = type;\n\t\t\tthis.disableSimulation();\n\t\t\tswitch (type) {\n\t\t\t\tcase BODYTYPE_DYNAMIC:\n\t\t\t\t\tthis._group = BODYGROUP_DYNAMIC;\n\t\t\t\t\tthis._mask = BODYMASK_ALL;\n\t\t\t\t\tbreak;\n\t\t\t\tcase BODYTYPE_KINEMATIC:\n\t\t\t\t\tthis._group = BODYGROUP_KINEMATIC;\n\t\t\t\t\tthis._mask = BODYMASK_ALL;\n\t\t\t\t\tbreak;\n\t\t\t\tcase BODYTYPE_STATIC:\n\t\t\t\tdefault:\n\t\t\t\t\tthis._group = BODYGROUP_STATIC;\n\t\t\t\t\tthis._mask = BODYMASK_NOT_STATIC;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tthis.createBody();\n\t\t}\n\t}\n\tget type() {\n\t\treturn this._type;\n\t}\n\tcreateBody() {\n\t\tconst entity = this.entity;\n\t\tlet shape;\n\t\tif (entity.collision) {\n\t\t\tshape = entity.collision.shape;\n\t\t\tif (entity.trigger) {\n\t\t\t\tentity.trigger.destroy();\n\t\t\t\tdelete entity.trigger;\n\t\t\t}\n\t\t}\n\t\tconst world = this.system.physicsWorld;\n\t\tif (shape && world) {\n\t\t\tif (this._body) {\n\t\t\t\tworld.removeBody(this._body);\n\t\t\t\tworld.destroyBody(this._body);\n\t\t\t\tthis._body = null;\n\t\t\t}\n\t\t\tconst mass = this._type === BODYTYPE_DYNAMIC ? this._mass : 0;\n\t\t\tthis._getEntityTransform(_position2, _rotation2);\n\t\t\tconst body = world.createBody({\n\t\t\t\ttype: this._type,\n\t\t\t\tmass,\n\t\t\t\tshape,\n\t\t\t\tposition: _position2,\n\t\t\t\trotation: _rotation2,\n\t\t\t\tentity\n\t\t\t});\n\t\t\tbody.setRestitution(this._restitution);\n\t\t\tbody.setFriction(this._friction);\n\t\t\tbody.setRollingFriction(this._rollingFriction);\n\t\t\tbody.setDamping(this._linearDamping, this._angularDamping);\n\t\t\tif (this._type === BODYTYPE_DYNAMIC) {\n\t\t\t\tbody.setLinearFactor(this._linearFactor);\n\t\t\t\tbody.setAngularFactor(this._angularFactor);\n\t\t\t}\n\t\t\tthis.body = body;\n\t\t\tif (this.enabled && entity.enabled) {\n\t\t\t\tthis.enableSimulation();\n\t\t\t}\n\t\t}\n\t}\n\tisActive() {\n\t\treturn this._body ? this._body.isActive() : false;\n\t}\n\tactivate() {\n\t\tif (this._body) {\n\t\t\tthis._body.activate();\n\t\t}\n\t}\n\tenableSimulation() {\n\t\tthis.system.enableSimulation(this);\n\t}\n\tdisableSimulation() {\n\t\tthis.system.disableSimulation(this);\n\t}\n\tapplyForce(x3, y2, z2, px, py, pz) {\n\t\tconst body = this._body;\n\t\tif (body) {\n\t\t\tbody.activate();\n\t\t\tif (x3 instanceof Vec3) {\n\t\t\t\t_vecA.copy(x3);\n\t\t\t} else {\n\t\t\t\t_vecA.set(x3, y2, z2);\n\t\t\t}\n\t\t\tif (y2 instanceof Vec3) {\n\t\t\t\t_vecB.copy(y2);\n\t\t\t} else if (px !== void 0) {\n\t\t\t\t_vecB.set(px, py, pz);\n\t\t\t} else {\n\t\t\t\t_vecB.set(0, 0, 0);\n\t\t\t}\n\t\t\tbody.applyForce(_vecA, _vecB);\n\t\t}\n\t}\n\tapplyTorque(x3, y2, z2) {\n\t\tconst body = this._body;\n\t\tif (body) {\n\t\t\tbody.activate();\n\t\t\tif (x3 instanceof Vec3) {\n\t\t\t\t_vecA.copy(x3);\n\t\t\t} else {\n\t\t\t\t_vecA.set(x3, y2, z2);\n\t\t\t}\n\t\t\tbody.applyTorque(_vecA);\n\t\t}\n\t}\n\tapplyImpulse(x3, y2, z2, px, py, pz) {\n\t\tconst body = this._body;\n\t\tif (body) {\n\t\t\tbody.activate();\n\t\t\tif (x3 instanceof Vec3) {\n\t\t\t\t_vecA.copy(x3);\n\t\t\t} else {\n\t\t\t\t_vecA.set(x3, y2, z2);\n\t\t\t}\n\t\t\tif (y2 instanceof Vec3) {\n\t\t\t\t_vecB.copy(y2);\n\t\t\t} else if (px !== void 0) {\n\t\t\t\t_vecB.set(px, py, pz);\n\t\t\t} else {\n\t\t\t\t_vecB.set(0, 0, 0);\n\t\t\t}\n\t\t\tbody.applyImpulse(_vecA, _vecB);\n\t\t}\n\t}\n\tapplyTorqueImpulse(x3, y2, z2) {\n\t\tconst body = this._body;\n\t\tif (body) {\n\t\t\tbody.activate();\n\t\t\tif (x3 instanceof Vec3) {\n\t\t\t\t_vecA.copy(x3);\n\t\t\t} else {\n\t\t\t\t_vecA.set(x3, y2, z2);\n\t\t\t}\n\t\t\tbody.applyTorqueImpulse(_vecA);\n\t\t}\n\t}\n\tisStatic() {\n\t\treturn this._type === BODYTYPE_STATIC;\n\t}\n\tisStaticOrKinematic() {\n\t\treturn this._type === BODYTYPE_STATIC || this._type === BODYTYPE_KINEMATIC;\n\t}\n\tisKinematic() {\n\t\treturn this._type === BODYTYPE_KINEMATIC;\n\t}\n\t_getEntityTransform(position5, rotation7) {\n\t\tconst entity = this.entity;\n\t\tconst component = entity.collision;\n\t\tif (component) {\n\t\t\tposition5.copy(component.getShapePosition());\n\t\t\trotation7.copy(component.getShapeRotation());\n\t\t} else {\n\t\t\tposition5.copy(entity.getPosition());\n\t\t\trotation7.copy(entity.getRotation());\n\t\t}\n\t}\n\tsyncEntityToBody() {\n\t\tconst body = this._body;\n\t\tif (body) {\n\t\t\tthis._getEntityTransform(_position2, _rotation2);\n\t\t\tbody.setTransform(_position2, _rotation2);\n\t\t}\n\t}\n\t_updateDynamic() {\n\t\tconst body = this._body;\n\t\tif (body.isActive()) {\n\t\t\tconst entity = this.entity;\n\t\t\tbody.getTransform(_position2, _rotation2);\n\t\t\tconst component = entity.collision;\n\t\t\tif (component && component._hasOffset) {\n\t\t\t\tconst lo = component.linearOffset;\n\t\t\t\tconst ao = component.angularOffset;\n\t\t\t\tconst invertedAo = _quat22.copy(ao).invert();\n\t\t\t\tconst entityRot = _quat1.copy(_rotation2).mul(invertedAo);\n\t\t\t\tentityRot.transformVector(lo, _vec34);\n\t\t\t\tentity.setPositionAndRotation(_position2.sub(_vec34), entityRot);\n\t\t\t} else {\n\t\t\t\tentity.setPositionAndRotation(_position2, _rotation2);\n\t\t\t}\n\t\t}\n\t}\n\t_updateKinematic() {\n\t\tthis._getEntityTransform(_position2, _rotation2);\n\t\tthis._body.setKinematicTarget(_position2, _rotation2);\n\t}\n\tteleport(x3, y2, z2, rx, ry, rz) {\n\t\tif (x3 instanceof Vec3) {\n\t\t\tthis.entity.setPosition(x3);\n\t\t} else {\n\t\t\tthis.entity.setPosition(x3, y2, z2);\n\t\t}\n\t\tif (y2 instanceof Quat) {\n\t\t\tthis.entity.setRotation(y2);\n\t\t} else if (y2 instanceof Vec3) {\n\t\t\tthis.entity.setEulerAngles(y2);\n\t\t} else if (rx !== void 0) {\n\t\t\tthis.entity.setEulerAngles(rx, ry, rz);\n\t\t}\n\t\tthis.syncEntityToBody();\n\t}\n\tonEnable() {\n\t\tif (!this._body) {\n\t\t\tthis.createBody();\n\t\t}\n\t\tthis.enableSimulation();\n\t}\n\tonDisable() {\n\t\tthis.disableSimulation();\n\t}\n\tset bodyType(type) {\n\t\tthis.type = type;\n\t}\n\tget bodyType() {\n\t\treturn this.type;\n\t}\n\tsyncBodyToEntity() {\n\t\tthis._updateDynamic();\n\t}\n};\n\nvar ContactPoint = class {\n\tlocalPoint;\n\tlocalPointOther;\n\tpoint;\n\tpointOther;\n\tnormal;\n\timpulse;\n\tconstructor(localPoint = new Vec3(), localPointOther = new Vec3(), point5 = new Vec3(), pointOther = new Vec3(), normal = new Vec3(), impulse = 0) {\n\t\tthis.localPoint = localPoint;\n\t\tthis.localPointOther = localPointOther;\n\t\tthis.point = point5;\n\t\tthis.pointOther = pointOther;\n\t\tthis.normal = normal;\n\t\tthis.impulse = impulse;\n\t}\n};\n\nvar ContactResult = class {\n\tother;\n\tcontacts;\n\tconstructor(other, contacts) {\n\t\tthis.other = other;\n\t\tthis.contacts = contacts;\n\t}\n};\n\nvar SingleContactResult = class {\n\ta;\n\tb;\n\timpulse;\n\tlocalPointA;\n\tlocalPointB;\n\tpointA;\n\tpointB;\n\tnormal;\n\tconstructor(a, b, contactPoint) {\n\t\tif (arguments.length !== 0) {\n\t\t\tthis.a = a;\n\t\t\tthis.b = b;\n\t\t\tthis.impulse = contactPoint.impulse;\n\t\t\tthis.localPointA = contactPoint.localPoint;\n\t\t\tthis.localPointB = contactPoint.localPointOther;\n\t\t\tthis.pointA = contactPoint.point;\n\t\t\tthis.pointB = contactPoint.pointOther;\n\t\t\tthis.normal = contactPoint.normal;\n\t\t} else {\n\t\t\tthis.a = null;\n\t\t\tthis.b = null;\n\t\t\tthis.impulse = 0;\n\t\t\tthis.localPointA = new Vec3();\n\t\t\tthis.localPointB = new Vec3();\n\t\t\tthis.pointA = new Vec3();\n\t\t\tthis.pointB = new Vec3();\n\t\t\tthis.normal = new Vec3();\n\t\t}\n\t}\n};\n\nvar _properties8 = [\n\t\"mass\",\n\t\"linearDamping\",\n\t\"angularDamping\",\n\t\"linearFactor\",\n\t\"angularFactor\",\n\t\"friction\",\n\t\"rollingFriction\",\n\t\"restitution\",\n\t\"type\",\n\t\"group\",\n\t\"mask\"\n];\nvar RigidBodyComponentSystem = class extends ComponentSystem {\n\tstatic EVENT_CONTACT = \"contact\";\n\tmaxSubSteps = 10;\n\tfixedTimeStep = 1 / 60;\n\ttimeScale = 1;\n\tgravity = new Vec3(0, -9.81, 0);\n\t_world = null;\n\t_dynamic = [];\n\t_kinematic = [];\n\t_triggers = [];\n\t_compounds = [];\n\tconstructor(app2) {\n\t\tsuper(app2);\n\t\tthis.id = \"rigidbody\";\n\t\tthis._stats = app2.stats.frame;\n\t\tthis.ComponentType = RigidBodyComponent;\n\t\tthis.contactPointPool = null;\n\t\tthis.contactResultPool = null;\n\t\tthis.singleContactResultPool = null;\n\t\tthis.collisions = {};\n\t\tthis.frameCollisions = {};\n\t\tthis.on(\"beforeremove\", this.onBeforeRemove, this);\n\t}\n\tonLibraryLoaded() {\n\t\tif (!this._world && typeof Ammo !== \"undefined\") {\n\t\t\tthis.setPhysicsWorld(new AmmoPhysicsWorld());\n\t\t}\n\t}\n\tsetPhysicsWorld(world) {\n\t\tthis._world = world;\n\t\tworld.contactListener = this;\n\t\tthis.contactPointPool = new ObjectPool(ContactPoint, 1);\n\t\tthis.contactResultPool = new ObjectPool(ContactResult, 1);\n\t\tthis.singleContactResultPool = new ObjectPool(SingleContactResult, 1);\n\t\tthis.app.systems.on(\"update\", this.onUpdate, this);\n\t}\n\tget physicsWorld() {\n\t\treturn this._world;\n\t}\n\tget dynamicsWorld() {\n\t\treturn this._world?.nativeWorld ?? null;\n\t}\n\tget collisionConfiguration() {\n\t\treturn this._world?.collisionConfiguration ?? null;\n\t}\n\tget dispatcher() {\n\t\treturn this._world?.dispatcher ?? null;\n\t}\n\tget overlappingPairCache() {\n\t\treturn this._world?.overlappingPairCache ?? null;\n\t}\n\tget solver() {\n\t\treturn this._world?.solver ?? null;\n\t}\n\tinitializeComponentData(component, data2) {\n\t\tfor (const property of _properties8) {\n\t\t\tif (data2.hasOwnProperty(property)) {\n\t\t\t\tconst value = data2[property];\n\t\t\t\tif (Array.isArray(value)) {\n\t\t\t\t\tcomponent[property] = new Vec3(value[0], value[1], value[2]);\n\t\t\t\t} else {\n\t\t\t\t\tcomponent[property] = value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tsuper.initializeComponentData(component, data2);\n\t}\n\tcloneComponent(entity, clone) {\n\t\tconst c2 = entity.rigidbody;\n\t\tconst data2 = {\n\t\t\tenabled: c2.enabled\n\t\t};\n\t\tfor (const property of _properties8) {\n\t\t\tdata2[property] = c2[property];\n\t\t}\n\t\treturn this.addComponent(clone, data2);\n\t}\n\tonBeforeRemove(entity, component) {\n\t\tif (component.enabled) {\n\t\t\tcomponent.enabled = false;\n\t\t}\n\t\tif (component._body) {\n\t\t\tthis._world.destroyBody(component._body);\n\t\t\tcomponent.body = null;\n\t\t}\n\t}\n\taddBody(body, group, mask) {\n\t\tthis._world.addBody(body, group, mask);\n\t}\n\tremoveBody(body) {\n\t\tthis._world.removeBody(body);\n\t}\n\tenableSimulation(component) {\n\t\tconst entity = component.entity;\n\t\tif (entity.collision && entity.collision.enabled && !component._simulationEnabled) {\n\t\t\tconst body = component._body;\n\t\t\tif (body) {\n\t\t\t\tthis.addBody(body, component._group, component._mask);\n\t\t\t\tswitch (component._type) {\n\t\t\t\t\tcase BODYTYPE_DYNAMIC:\n\t\t\t\t\t\tthis._dynamic.push(component);\n\t\t\t\t\t\tcomponent.syncEntityToBody();\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase BODYTYPE_KINEMATIC:\n\t\t\t\t\t\tthis._kinematic.push(component);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase BODYTYPE_STATIC:\n\t\t\t\t\t\tcomponent.syncEntityToBody();\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif (entity.collision.type === \"compound\") {\n\t\t\t\t\tthis._compounds.push(entity.collision);\n\t\t\t\t}\n\t\t\t\tbody.activate();\n\t\t\t\tcomponent._simulationEnabled = true;\n\t\t\t\tcomponent.fire(\"simulationenabled\");\n\t\t\t}\n\t\t}\n\t}\n\tdisableSimulation(component) {\n\t\tconst body = component._body;\n\t\tif (body && component._simulationEnabled) {\n\t\t\tlet idx = this._compounds.indexOf(component.entity.collision);\n\t\t\tif (idx > -1) {\n\t\t\t\tthis._compounds.splice(idx, 1);\n\t\t\t}\n\t\t\tidx = this._dynamic.indexOf(component);\n\t\t\tif (idx > -1) {\n\t\t\t\tthis._dynamic.splice(idx, 1);\n\t\t\t}\n\t\t\tidx = this._kinematic.indexOf(component);\n\t\t\tif (idx > -1) {\n\t\t\t\tthis._kinematic.splice(idx, 1);\n\t\t\t}\n\t\t\tthis.removeBody(body);\n\t\t\tcomponent._simulationEnabled = false;\n\t\t\tcomponent.fire(\"simulationdisabled\");\n\t\t}\n\t}\n\taddTrigger(trigger) {\n\t\tif (this._triggers.indexOf(trigger) < 0) {\n\t\t\tthis.addBody(trigger.body, BODYGROUP_TRIGGER, BODYMASK_NOT_STATIC ^ BODYGROUP_TRIGGER);\n\t\t\tthis._triggers.push(trigger);\n\t\t}\n\t}\n\tremoveTrigger(trigger) {\n\t\tconst idx = this._triggers.indexOf(trigger);\n\t\tif (idx > -1) {\n\t\t\tthis.removeBody(trigger.body);\n\t\t\tthis._triggers.splice(idx, 1);\n\t\t}\n\t}\n\traycastFirst(start, end, options2 = {}) {\n\t\tif (options2.filterTags || options2.filterCallback) {\n\t\t\toptions2.sort = true;\n\t\t\treturn this.raycastAll(start, end, options2)[0] || null;\n\t\t}\n\t\treturn this._world.raycastFirst(start, end, options2);\n\t}\n\traycastAll(start, end, options2 = {}) {\n\t\tconst results = this._world.raycastAll(start, end, options2);\n\t\tif (options2.sort) {\n\t\t\tresults.sort((a, b) => a.hitFraction - b.hitFraction);\n\t\t}\n\t\treturn results;\n\t}\n\t_storeCollision(entity, other) {\n\t\tlet isNewCollision = false;\n\t\tconst guid2 = entity.guid;\n\t\tthis.collisions[guid2] = this.collisions[guid2] || { others: [], entity };\n\t\tif (this.collisions[guid2].others.indexOf(other) < 0) {\n\t\t\tthis.collisions[guid2].others.push(other);\n\t\t\tisNewCollision = true;\n\t\t}\n\t\tthis.frameCollisions[guid2] = this.frameCollisions[guid2] || { others: [], entity };\n\t\tthis.frameCollisions[guid2].others.push(other);\n\t\treturn isNewCollision;\n\t}\n\t_createReverseContactPoint(forward2) {\n\t\tconst contact = this.contactPointPool.allocate();\n\t\tcontact.localPoint.copy(forward2.localPointOther);\n\t\tcontact.localPointOther.copy(forward2.localPoint);\n\t\tcontact.point.copy(forward2.pointOther);\n\t\tcontact.pointOther.copy(forward2.point);\n\t\tcontact.normal.copy(forward2.normal);\n\t\tcontact.impulse = forward2.impulse;\n\t\treturn contact;\n\t}\n\t_createSingleContactResult(a, b, contactPoint) {\n\t\tconst result = this.singleContactResultPool.allocate();\n\t\tresult.a = a;\n\t\tresult.b = b;\n\t\tresult.localPointA = contactPoint.localPoint;\n\t\tresult.localPointB = contactPoint.localPointOther;\n\t\tresult.pointA = contactPoint.point;\n\t\tresult.pointB = contactPoint.pointOther;\n\t\tresult.normal = contactPoint.normal;\n\t\tresult.impulse = contactPoint.impulse;\n\t\treturn result;\n\t}\n\t_createContactResult(other, contacts) {\n\t\tconst result = this.contactResultPool.allocate();\n\t\tresult.other = other;\n\t\tresult.contacts = contacts;\n\t\treturn result;\n\t}\n\t_cleanOldCollisions() {\n\t\tfor (const guid2 in this.collisions) {\n\t\t\tif (this.collisions.hasOwnProperty(guid2)) {\n\t\t\t\tconst frameCollision = this.frameCollisions[guid2];\n\t\t\t\tconst collision = this.collisions[guid2];\n\t\t\t\tconst entity = collision.entity;\n\t\t\t\tconst entityCollision = entity.collision;\n\t\t\t\tconst entityRigidbody = entity.rigidbody;\n\t\t\t\tconst others = collision.others;\n\t\t\t\tconst length = others.length;\n\t\t\t\tlet i2 = length;\n\t\t\t\twhile (i2--) {\n\t\t\t\t\tconst other = others[i2];\n\t\t\t\t\tif (!frameCollision || frameCollision.others.indexOf(other) < 0) {\n\t\t\t\t\t\tothers.splice(i2, 1);\n\t\t\t\t\t\tif (entity.trigger) {\n\t\t\t\t\t\t\tif (entityCollision) {\n\t\t\t\t\t\t\t\tentityCollision.fire(\"triggerleave\", other);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (other.rigidbody) {\n\t\t\t\t\t\t\t\tother.rigidbody.fire(\"triggerleave\", entity);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (!other.trigger) {\n\t\t\t\t\t\t\tif (entityRigidbody) {\n\t\t\t\t\t\t\t\tentityRigidbody.fire(\"collisionend\", other);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (entityCollision) {\n\t\t\t\t\t\t\t\tentityCollision.fire(\"collisionend\", other);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (others.length === 0) {\n\t\t\t\t\tdelete this.collisions[guid2];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tclearEntityCollisions(entity) {\n\t\tdelete this.collisions[entity.guid];\n\t}\n\t_hasContactEvent(entity) {\n\t\tconst c2 = entity.collision;\n\t\tif (c2 && (c2.hasEvent(\"collisionstart\") || c2.hasEvent(\"collisionend\") || c2.hasEvent(\"contact\"))) {\n\t\t\treturn true;\n\t\t}\n\t\tconst r = entity.rigidbody;\n\t\treturn r && (r.hasEvent(\"collisionstart\") || r.hasEvent(\"collisionend\") || r.hasEvent(\"contact\"));\n\t}\n\tonContactsBegin() {\n\t\tthis.frameCollisions = {};\n\t}\n\tonContactPair(pair) {\n\t\tconst e0 = pair.entityA;\n\t\tconst e12 = pair.entityB;\n\t\tconst forwardContacts = [];\n\t\tconst reverseContacts = [];\n\t\tlet newCollision;\n\t\tif (pair.triggerA || pair.triggerB) {\n\t\t\tconst e0Events = e0.collision && (e0.collision.hasEvent(\"triggerenter\") || e0.collision.hasEvent(\"triggerleave\"));\n\t\t\tconst e1Events = e12.collision && (e12.collision.hasEvent(\"triggerenter\") || e12.collision.hasEvent(\"triggerleave\"));\n\t\t\tconst e0BodyEvents = e0.rigidbody && (e0.rigidbody.hasEvent(\"triggerenter\") || e0.rigidbody.hasEvent(\"triggerleave\"));\n\t\t\tconst e1BodyEvents = e12.rigidbody && (e12.rigidbody.hasEvent(\"triggerenter\") || e12.rigidbody.hasEvent(\"triggerleave\"));\n\t\t\tif (e0Events) {\n\t\t\t\tnewCollision = this._storeCollision(e0, e12);\n\t\t\t\tif (newCollision && !pair.triggerB) {\n\t\t\t\t\te0.collision.fire(\"triggerenter\", e12);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (e1Events) {\n\t\t\t\tnewCollision = this._storeCollision(e12, e0);\n\t\t\t\tif (newCollision && !pair.triggerA) {\n\t\t\t\t\te12.collision.fire(\"triggerenter\", e0);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (e0BodyEvents) {\n\t\t\t\tif (!newCollision) {\n\t\t\t\t\tnewCollision = this._storeCollision(e12, e0);\n\t\t\t\t}\n\t\t\t\tif (newCollision) {\n\t\t\t\t\te0.rigidbody.fire(\"triggerenter\", e12);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (e1BodyEvents) {\n\t\t\t\tif (!newCollision) {\n\t\t\t\t\tnewCollision = this._storeCollision(e0, e12);\n\t\t\t\t}\n\t\t\t\tif (newCollision) {\n\t\t\t\t\te12.rigidbody.fire(\"triggerenter\", e0);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tconst e0Events = this._hasContactEvent(e0);\n\t\t\tconst e1Events = this._hasContactEvent(e12);\n\t\t\tconst globalEvents = this.hasEvent(\"contact\");\n\t\t\tif (globalEvents || e0Events || e1Events) {\n\t\t\t\tconst contactCount = pair.contactCount;\n\t\t\t\tfor (let j = 0; j < contactCount; j++) {\n\t\t\t\t\tconst contactPoint = this.contactPointPool.allocate();\n\t\t\t\t\tpair.readContact(j, contactPoint);\n\t\t\t\t\tif (e0Events || e1Events) {\n\t\t\t\t\t\tforwardContacts.push(contactPoint);\n\t\t\t\t\t\treverseContacts.push(this._createReverseContactPoint(contactPoint));\n\t\t\t\t\t}\n\t\t\t\t\tif (globalEvents) {\n\t\t\t\t\t\tconst result = this._createSingleContactResult(e0, e12, contactPoint);\n\t\t\t\t\t\tthis.fire(\"contact\", result);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (e0Events) {\n\t\t\t\t\tconst forwardResult = this._createContactResult(e12, forwardContacts);\n\t\t\t\t\tnewCollision = this._storeCollision(e0, e12);\n\t\t\t\t\tif (e0.collision) {\n\t\t\t\t\t\te0.collision.fire(\"contact\", forwardResult);\n\t\t\t\t\t\tif (newCollision) {\n\t\t\t\t\t\t\te0.collision.fire(\"collisionstart\", forwardResult);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (e0.rigidbody) {\n\t\t\t\t\t\te0.rigidbody.fire(\"contact\", forwardResult);\n\t\t\t\t\t\tif (newCollision) {\n\t\t\t\t\t\t\te0.rigidbody.fire(\"collisionstart\", forwardResult);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (e1Events) {\n\t\t\t\t\tconst reverseResult = this._createContactResult(e0, reverseContacts);\n\t\t\t\t\tnewCollision = this._storeCollision(e12, e0);\n\t\t\t\t\tif (e12.collision) {\n\t\t\t\t\t\te12.collision.fire(\"contact\", reverseResult);\n\t\t\t\t\t\tif (newCollision) {\n\t\t\t\t\t\t\te12.collision.fire(\"collisionstart\", reverseResult);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (e12.rigidbody) {\n\t\t\t\t\t\te12.rigidbody.fire(\"contact\", reverseResult);\n\t\t\t\t\t\tif (newCollision) {\n\t\t\t\t\t\t\te12.rigidbody.fire(\"collisionstart\", reverseResult);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tonContactsEnd() {\n\t\tthis._cleanOldCollisions();\n\t\tthis.contactPointPool.freeAll();\n\t\tthis.contactResultPool.freeAll();\n\t\tthis.singleContactResultPool.freeAll();\n\t}\n\tstep(dt) {\n\t\tconst world = this._world;\n\t\tif (!world) return;\n\t\tlet i2, len;\n\t\tthis._stats.physicsStart = now();\n\t\tworld.setGravity(this.gravity);\n\t\tconst triggers = this._triggers;\n\t\tfor (i2 = 0, len = triggers.length; i2 < len; i2++) {\n\t\t\ttriggers[i2].updateTransform();\n\t\t}\n\t\tconst compounds = this._compounds;\n\t\tfor (i2 = 0, len = compounds.length; i2 < len; i2++) {\n\t\t\tcompounds[i2]._updateCompound();\n\t\t}\n\t\tconst kinematic = this._kinematic;\n\t\tfor (i2 = 0, len = kinematic.length; i2 < len; i2++) {\n\t\t\tkinematic[i2]._updateKinematic();\n\t\t}\n\t\tworld.step(dt, this.maxSubSteps, this.fixedTimeStep);\n\t\tconst dynamic = this._dynamic;\n\t\tfor (i2 = 0, len = dynamic.length; i2 < len; i2++) {\n\t\t\tdynamic[i2]._updateDynamic();\n\t\t}\n\t\tworld.flushContacts();\n\t\tthis._stats.physicsTime = now() - this._stats.physicsStart;\n\t}\n\tonUpdate(dt) {\n\t\tconst timeScale = this.timeScale;\n\t\tif (!(timeScale > 0)) {\n\t\t\tthis._stats.physicsTime = 0;\n\t\t\treturn;\n\t\t}\n\t\tthis.step(dt * timeScale);\n\t}\n\tdestroy() {\n\t\tsuper.destroy();\n\t\tthis.app.systems.off(\"update\", this.onUpdate, this);\n\t\tif (this._world) {\n\t\t\tthis._world.destroy();\n\t\t\tthis._world = null;\n\t\t}\n\t}\n\tsetGravity(x3, y2, z2) {\n\t\tif (y2 === void 0) {\n\t\t\tthis.gravity.copy(x3);\n\t\t} else {\n\t\t\tthis.gravity.set(x3, y2, z2);\n\t\t}\n\t}\n};\n\nvar SCALEMODE_NONE = \"none\";\nvar SCALEMODE_BLEND = \"blend\";\n\nvar _transform = new Mat4();\nvar ScreenComponent = class extends Component {\n\t_resolution = new Vec2(640, 320);\n\t_referenceResolution = new Vec2(640, 320);\n\t_scaleMode = SCALEMODE_NONE;\n\tscale = 1;\n\t_scaleBlend = 0.5;\n\t_priority = 0;\n\t_screenSpace = false;\n\tcull = false;\n\t_screenMatrix = new Mat4();\n\t_elements = /* @__PURE__ */ new Set();\n\tconstructor(system, entity) {\n\t\tsuper(system, entity);\n\t\tsystem.app.graphicsDevice.on(\"resizecanvas\", this._onResize, this);\n\t}\n\tsyncDrawOrder() {\n\t\tthis.system.queueDrawOrderSync(this.entity.guid, this._processDrawOrderSync, this);\n\t}\n\t_recurseDrawOrderSync(e, i2) {\n\t\tif (!(e instanceof Entity)) {\n\t\t\treturn i2;\n\t\t}\n\t\tif (e.element) {\n\t\t\tconst prevDrawOrder = e.element.drawOrder;\n\t\t\te.element.drawOrder = i2++;\n\t\t\tif (e.element._batchGroupId >= 0 && prevDrawOrder !== e.element.drawOrder) {\n\t\t\t\tthis.system.app.batcher?.markGroupDirty(e.element._batchGroupId);\n\t\t\t}\n\t\t}\n\t\tif (e.particlesystem) {\n\t\t\te.particlesystem.drawOrder = i2++;\n\t\t}\n\t\tconst children = e.children;\n\t\tfor (let j = 0; j < children.length; j++) {\n\t\t\ti2 = this._recurseDrawOrderSync(children[j], i2);\n\t\t}\n\t\treturn i2;\n\t}\n\t_processDrawOrderSync() {\n\t\tconst i2 = 1;\n\t\tthis._recurseDrawOrderSync(this.entity, i2);\n\t\tthis.fire(\"syncdraworder\");\n\t}\n\t_calcProjectionMatrix() {\n\t\tconst w = this._resolution.x / this.scale;\n\t\tconst h2 = this._resolution.y / this.scale;\n\t\tconst left = 0;\n\t\tconst right2 = w;\n\t\tconst bottom = -h2;\n\t\tconst top = 0;\n\t\tconst near = 1;\n\t\tconst far = -1;\n\t\tthis._screenMatrix.setOrtho(left, right2, bottom, top, near, far);\n\t\tif (!this._screenSpace) {\n\t\t\t_transform.setScale(0.5 * w, 0.5 * h2, 1);\n\t\t\tthis._screenMatrix.mul2(_transform, this._screenMatrix);\n\t\t}\n\t}\n\t_updateScale() {\n\t\tthis.scale = this._calcScale(this._resolution, this.referenceResolution);\n\t}\n\t_calcScale(resolution, referenceResolution) {\n\t\tconst lx = Math.log2((resolution.x || 1) / referenceResolution.x);\n\t\tconst ly = Math.log2((resolution.y || 1) / referenceResolution.y);\n\t\treturn Math.pow(2, lx * (1 - this._scaleBlend) + ly * this._scaleBlend);\n\t}\n\t_onResize(width, height) {\n\t\tif (this._screenSpace) {\n\t\t\tthis._resolution.set(width, height);\n\t\t\tthis.resolution = this._resolution;\n\t\t}\n\t}\n\t_bindElement(element) {\n\t\tthis._elements.add(element);\n\t}\n\t_unbindElement(element) {\n\t\tthis._elements.delete(element);\n\t}\n\tonBeforeRemove() {\n\t\tthis.system.app.graphicsDevice.off(\"resizecanvas\", this._onResize, this);\n\t\tthis.fire(\"remove\");\n\t\tthis._elements.forEach((element) => element._onScreenRemove());\n\t\tthis._elements.clear();\n\t\tthis.off();\n\t}\n\tset resolution(value) {\n\t\tif (!this._screenSpace) {\n\t\t\tthis._resolution.set(value.x, value.y);\n\t\t} else {\n\t\t\tthis._resolution.set(this.system.app.graphicsDevice.width, this.system.app.graphicsDevice.height);\n\t\t}\n\t\tthis._updateScale();\n\t\tthis._calcProjectionMatrix();\n\t\tif (!this.entity._dirtyLocal) {\n\t\t\tthis.entity._dirtifyLocal();\n\t\t}\n\t\tthis.fire(\"set:resolution\", this._resolution);\n\t\tthis._elements.forEach((element) => element._onScreenResize(this._resolution));\n\t}\n\tget resolution() {\n\t\treturn this._resolution;\n\t}\n\tset referenceResolution(value) {\n\t\tthis._referenceResolution.set(value.x, value.y);\n\t\tthis._updateScale();\n\t\tthis._calcProjectionMatrix();\n\t\tif (!this.entity._dirtyLocal) {\n\t\t\tthis.entity._dirtifyLocal();\n\t\t}\n\t\tthis.fire(\"set:referenceresolution\", this._resolution);\n\t\tthis._elements.forEach((element) => element._onScreenResize(this._resolution));\n\t}\n\tget referenceResolution() {\n\t\tif (this._scaleMode === SCALEMODE_NONE) {\n\t\t\treturn this._resolution;\n\t\t}\n\t\treturn this._referenceResolution;\n\t}\n\tset screenSpace(value) {\n\t\tthis._screenSpace = value;\n\t\tif (this._screenSpace) {\n\t\t\tthis._resolution.set(this.system.app.graphicsDevice.width, this.system.app.graphicsDevice.height);\n\t\t}\n\t\tthis.resolution = this._resolution;\n\t\tif (!this.entity._dirtyLocal) {\n\t\t\tthis.entity._dirtifyLocal();\n\t\t}\n\t\tthis.fire(\"set:screenspace\", this._screenSpace);\n\t\tthis._elements.forEach((element) => element._onScreenSpaceChange());\n\t}\n\tget screenSpace() {\n\t\treturn this._screenSpace;\n\t}\n\tset scaleMode(value) {\n\t\tif (value !== SCALEMODE_NONE && value !== SCALEMODE_BLEND) {\n\t\t\tvalue = SCALEMODE_NONE;\n\t\t}\n\t\tif (!this._screenSpace && value !== SCALEMODE_NONE) {\n\t\t\tvalue = SCALEMODE_NONE;\n\t\t}\n\t\tthis._scaleMode = value;\n\t\tthis.resolution = this._resolution;\n\t\tthis.fire(\"set:scalemode\", this._scaleMode);\n\t}\n\tget scaleMode() {\n\t\treturn this._scaleMode;\n\t}\n\tset scaleBlend(value) {\n\t\tthis._scaleBlend = value;\n\t\tthis._updateScale();\n\t\tthis._calcProjectionMatrix();\n\t\tif (!this.entity._dirtyLocal) {\n\t\t\tthis.entity._dirtifyLocal();\n\t\t}\n\t\tthis.fire(\"set:scaleblend\", this._scaleBlend);\n\t\tthis._elements.forEach((element) => element._onScreenResize(this._resolution));\n\t}\n\tget scaleBlend() {\n\t\treturn this._scaleBlend;\n\t}\n\tset priority(value) {\n\t\tvalue = math.clamp(value, 0, 127);\n\t\tif (this._priority === value) {\n\t\t\treturn;\n\t\t}\n\t\tthis._priority = value;\n\t\tthis.syncDrawOrder();\n\t}\n\tget priority() {\n\t\treturn this._priority;\n\t}\n};\n\nvar ScreenComponentSystem = class extends ComponentSystem {\n\tconstructor(app2) {\n\t\tsuper(app2);\n\t\tthis.id = \"screen\";\n\t\tthis.ComponentType = ScreenComponent;\n\t\tthis.windowResolution = new Vec2();\n\t\tthis._drawOrderSyncQueue = new IndexedList();\n\t\tthis.app.graphicsDevice.on(\"resizecanvas\", this._onResize, this);\n\t\tthis.app.systems.on(\"update\", this._onUpdate, this);\n\t\tthis.on(\"beforeremove\", this.onBeforeRemove, this);\n\t}\n\tinitializeComponentData(component, data2, properties) {\n\t\tif (data2.priority !== void 0) component.priority = data2.priority;\n\t\tif (data2.screenSpace !== void 0) component.screenSpace = data2.screenSpace;\n\t\tcomponent.cull = component.screenSpace;\n\t\tif (data2.scaleMode !== void 0) component.scaleMode = data2.scaleMode;\n\t\tif (data2.scaleBlend !== void 0) component.scaleBlend = data2.scaleBlend;\n\t\tif (data2.resolution !== void 0) {\n\t\t\tif (data2.resolution instanceof Vec2) {\n\t\t\t\tcomponent._resolution.copy(data2.resolution);\n\t\t\t} else {\n\t\t\t\tcomponent._resolution.set(data2.resolution[0], data2.resolution[1]);\n\t\t\t}\n\t\t\tcomponent.resolution = component._resolution;\n\t\t}\n\t\tif (data2.referenceResolution !== void 0) {\n\t\t\tif (data2.referenceResolution instanceof Vec2) {\n\t\t\t\tcomponent._referenceResolution.copy(data2.referenceResolution);\n\t\t\t} else {\n\t\t\t\tcomponent._referenceResolution.set(data2.referenceResolution[0], data2.referenceResolution[1]);\n\t\t\t}\n\t\t\tcomponent.referenceResolution = component._referenceResolution;\n\t\t}\n\t\tthis._updateDescendantElements(component.entity, component.entity);\n\t\tcomponent.syncDrawOrder();\n\t\tsuper.initializeComponentData(component, data2);\n\t}\n\t_updateDescendantElements(entity, screenEntity) {\n\t\tconst children = entity.children;\n\t\tfor (let i2 = 0; i2 < children.length; i2++) {\n\t\t\tconst child = children[i2];\n\t\t\tif (child.element && !child.element.screen) {\n\t\t\t\tchild.element._updateScreen(screenEntity);\n\t\t\t}\n\t\t\tif (!child.screen) {\n\t\t\t\tthis._updateDescendantElements(child, screenEntity);\n\t\t\t}\n\t\t}\n\t}\n\tdestroy() {\n\t\tsuper.destroy();\n\t\tthis.app.graphicsDevice.off(\"resizecanvas\", this._onResize, this);\n\t\tthis.app.systems.off(\"update\", this._onUpdate, this);\n\t}\n\t_onUpdate(dt) {\n\t\tconst components2 = this.store;\n\t\tfor (const id14 in components2) {\n\t\t\tif (components2[id14].entity.screen.update) components2[id14].entity.screen.update(dt);\n\t\t}\n\t}\n\t_onResize(width, height) {\n\t\tthis.windowResolution.x = width;\n\t\tthis.windowResolution.y = height;\n\t}\n\tcloneComponent(entity, clone) {\n\t\tconst screen = entity.screen;\n\t\treturn this.addComponent(clone, {\n\t\t\tenabled: screen.enabled,\n\t\t\tscreenSpace: screen.screenSpace,\n\t\t\tscaleMode: screen.scaleMode,\n\t\t\tscaleBlend: screen.scaleBlend,\n\t\t\tpriority: screen.priority,\n\t\t\tresolution: screen.resolution.clone(),\n\t\t\treferenceResolution: screen.referenceResolution.clone()\n\t\t});\n\t}\n\tonBeforeRemove(entity, component) {\n\t\tcomponent.onBeforeRemove();\n\t}\n\tprocessDrawOrderSyncQueue() {\n\t\tconst list = this._drawOrderSyncQueue.list();\n\t\tfor (let i2 = 0; i2 < list.length; i2++) {\n\t\t\tconst item = list[i2];\n\t\t\titem.callback.call(item.scope);\n\t\t}\n\t\tthis._drawOrderSyncQueue.clear();\n\t}\n\tqueueDrawOrderSync(id14, fn, scope) {\n\t\tif (!this._drawOrderSyncQueue.list().length) {\n\t\t\tthis.app.once(\"prerender\", this.processDrawOrderSyncQueue, this);\n\t\t}\n\t\tif (!this._drawOrderSyncQueue.has(id14)) {\n\t\t\tthis._drawOrderSyncQueue.push(id14, {\n\t\t\t\tcallback: fn,\n\t\t\t\tscope\n\t\t\t});\n\t\t}\n\t}\n};\n\nvar _inputScreenPosition = new Vec2();\nvar _inputWorldPosition = new Vec3();\nvar _ray = new Ray();\nvar _plane = new Plane();\nvar _normal = new Vec3();\nvar _point2 = new Vec3();\nvar _entityRotation = new Quat();\nvar OPPOSITE_AXIS = {\n\tx: \"y\",\n\ty: \"x\"\n};\nvar ElementDragHelper = class extends EventHandler {\n\tstatic EVENT_DRAGSTART = \"drag:start\";\n\tstatic EVENT_DRAGEND = \"drag:end\";\n\tstatic EVENT_DRAGMOVE = \"drag:move\";\n\tconstructor(element, axis) {\n\t\tsuper();\n\t\tif (!element || !(element instanceof ElementComponent)) {\n\t\t\tthrow new Error(\"Element was null or not an ElementComponent\");\n\t\t}\n\t\tif (axis && axis !== \"x\" && axis !== \"y\") {\n\t\t\tthrow new Error(`Unrecognized axis: ${axis}`);\n\t\t}\n\t\tthis._element = element;\n\t\tthis._app = element.system.app;\n\t\tthis._axis = axis || null;\n\t\tthis._enabled = true;\n\t\tthis._dragScale = new Vec3();\n\t\tthis._dragStartMousePosition = new Vec3();\n\t\tthis._dragStartHandlePosition = new Vec3();\n\t\tthis._deltaMousePosition = new Vec3();\n\t\tthis._deltaHandlePosition = new Vec3();\n\t\tthis._isDragging = false;\n\t\tthis._toggleLifecycleListeners(\"on\");\n\t}\n\t_toggleLifecycleListeners(onOrOff) {\n\t\tthis._element[onOrOff](\"mousedown\", this._onMouseDownOrTouchStart, this);\n\t\tthis._element[onOrOff](\"touchstart\", this._onMouseDownOrTouchStart, this);\n\t\tthis._element[onOrOff](\"selectstart\", this._onMouseDownOrTouchStart, this);\n\t}\n\t_toggleDragListeners(onOrOff) {\n\t\tconst isOn = onOrOff === \"on\";\n\t\tif (this._hasDragListeners && isOn) {\n\t\t\treturn;\n\t\t}\n\t\tif (this._app.mouse) {\n\t\t\tthis._element[onOrOff](\"mousemove\", this._onMove, this);\n\t\t\tthis._element[onOrOff](\"mouseup\", this._onMouseUpOrTouchEnd, this);\n\t\t}\n\t\tif (platform.touch) {\n\t\t\tthis._element[onOrOff](\"touchmove\", this._onMove, this);\n\t\t\tthis._element[onOrOff](\"touchend\", this._onMouseUpOrTouchEnd, this);\n\t\t\tthis._element[onOrOff](\"touchcancel\", this._onMouseUpOrTouchEnd, this);\n\t\t}\n\t\tthis._element[onOrOff](\"selectmove\", this._onMove, this);\n\t\tthis._element[onOrOff](\"selectend\", this._onMouseUpOrTouchEnd, this);\n\t\tthis._hasDragListeners = isOn;\n\t}\n\t_onMouseDownOrTouchStart(event) {\n\t\tif (this._element && !this._isDragging && this.enabled) {\n\t\t\tthis._dragCamera = event.camera;\n\t\t\tthis._calculateDragScale();\n\t\t\tconst currentMousePosition = this._screenToLocal(event);\n\t\t\tif (currentMousePosition) {\n\t\t\t\tthis._toggleDragListeners(\"on\");\n\t\t\t\tthis._isDragging = true;\n\t\t\t\tthis._dragStartMousePosition.copy(currentMousePosition);\n\t\t\t\tthis._dragStartHandlePosition.copy(this._element.entity.getLocalPosition());\n\t\t\t\tthis.fire(\"drag:start\");\n\t\t\t}\n\t\t}\n\t}\n\t_onMouseUpOrTouchEnd() {\n\t\tif (this._isDragging) {\n\t\t\tthis._isDragging = false;\n\t\t\tthis._toggleDragListeners(\"off\");\n\t\t\tthis.fire(\"drag:end\");\n\t\t}\n\t}\n\t_screenToLocal(event) {\n\t\tif (event.inputSource) {\n\t\t\t_ray.set(event.inputSource.getOrigin(), event.inputSource.getDirection());\n\t\t} else {\n\t\t\tthis._determineInputPosition(event);\n\t\t\tthis._chooseRayOriginAndDirection();\n\t\t}\n\t\t_normal.copy(this._element.entity.forward).mulScalar(-1);\n\t\t_plane.setFromPointNormal(this._element.entity.getPosition(), _normal);\n\t\tif (_plane.intersectsRay(_ray, _point2)) {\n\t\t\t_entityRotation.copy(this._element.entity.getRotation()).invert().transformVector(_point2, _point2);\n\t\t\t_point2.mul(this._dragScale);\n\t\t\treturn _point2;\n\t\t}\n\t\treturn null;\n\t}\n\t_determineInputPosition(event) {\n\t\tconst devicePixelRatio = this._app.graphicsDevice.maxPixelRatio;\n\t\tif (typeof event.x !== \"undefined\" && typeof event.y !== \"undefined\") {\n\t\t\t_inputScreenPosition.x = event.x * devicePixelRatio;\n\t\t\t_inputScreenPosition.y = event.y * devicePixelRatio;\n\t\t} else if (event.changedTouches) {\n\t\t\t_inputScreenPosition.x = event.changedTouches[0].x * devicePixelRatio;\n\t\t\t_inputScreenPosition.y = event.changedTouches[0].y * devicePixelRatio;\n\t\t} else {\n\t\t\tconsole.warn(\"Could not determine position from input event\");\n\t\t}\n\t}\n\t_chooseRayOriginAndDirection() {\n\t\tif (this._element.screen && this._element.screen.screen.screenSpace) {\n\t\t\t_ray.origin.set(_inputScreenPosition.x, -_inputScreenPosition.y, 0);\n\t\t\t_ray.direction.copy(Vec3.FORWARD);\n\t\t} else {\n\t\t\t_inputWorldPosition.copy(this._dragCamera.screenToWorld(_inputScreenPosition.x, _inputScreenPosition.y, 1));\n\t\t\t_ray.origin.copy(this._dragCamera.entity.getPosition());\n\t\t\t_ray.direction.copy(_inputWorldPosition).sub(_ray.origin).normalize();\n\t\t}\n\t}\n\t_calculateDragScale() {\n\t\tlet current = this._element.entity.parent;\n\t\tconst screen = this._element.screen && this._element.screen.screen;\n\t\tconst isWithin2DScreen = screen && screen.screenSpace;\n\t\tconst screenScale = isWithin2DScreen ? screen.scale : 1;\n\t\tconst dragScale = this._dragScale;\n\t\tdragScale.set(screenScale, screenScale, screenScale);\n\t\twhile (current) {\n\t\t\tdragScale.mul(current.getLocalScale());\n\t\t\tcurrent = current.parent;\n\t\t\tif (isWithin2DScreen && current.screen) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tdragScale.x = 1 / dragScale.x;\n\t\tdragScale.y = 1 / dragScale.y;\n\t\tdragScale.z = 0;\n\t}\n\t_onMove(event) {\n\t\tconst {\n\t\t\t_element: element,\n\t\t\t_deltaMousePosition: deltaMousePosition,\n\t\t\t_deltaHandlePosition: deltaHandlePosition,\n\t\t\t_axis: axis\n\t\t} = this;\n\t\tif (element && this._isDragging && this.enabled && element.enabled && element.entity.enabled) {\n\t\t\tconst currentMousePosition = this._screenToLocal(event);\n\t\t\tif (currentMousePosition) {\n\t\t\t\tdeltaMousePosition.sub2(currentMousePosition, this._dragStartMousePosition);\n\t\t\t\tdeltaHandlePosition.add2(this._dragStartHandlePosition, deltaMousePosition);\n\t\t\t\tif (axis) {\n\t\t\t\t\tconst currentPosition = element.entity.getLocalPosition();\n\t\t\t\t\tconst constrainedAxis = OPPOSITE_AXIS[axis];\n\t\t\t\t\tdeltaHandlePosition[constrainedAxis] = currentPosition[constrainedAxis];\n\t\t\t\t}\n\t\t\t\telement.entity.setLocalPosition(deltaHandlePosition);\n\t\t\t\tthis.fire(\"drag:move\", deltaHandlePosition);\n\t\t\t}\n\t\t}\n\t}\n\tdestroy() {\n\t\tthis._toggleLifecycleListeners(\"off\");\n\t\tthis._toggleDragListeners(\"off\");\n\t}\n\tset enabled(value) {\n\t\tthis._enabled = value;\n\t}\n\tget enabled() {\n\t\treturn this._enabled;\n\t}\n\tget isDragging() {\n\t\treturn this._isDragging;\n\t}\n};\n\nvar SCROLL_MODE_CLAMP = 0;\nvar SCROLL_MODE_BOUNCE = 1;\nvar SCROLL_MODE_INFINITE = 2;\nvar SCROLLBAR_VISIBILITY_SHOW_ALWAYS = 0;\nvar SCROLLBAR_VISIBILITY_SHOW_WHEN_REQUIRED = 1;\n\nvar _tempScrollValue = new Vec2();\nvar ScrollViewComponent = class extends Component {\n\tstatic EVENT_SETSCROLL = \"set:scroll\";\n\t_horizontal;\n\t_vertical;\n\t_scrollMode;\n\t_bounceAmount;\n\t_friction;\n\t_dragThreshold = 10;\n\t_useMouseWheel = true;\n\t_mouseWheelSensitivity = new Vec2(1, 1);\n\t_horizontalScrollbarVisibility = 0;\n\t_verticalScrollbarVisibility = 0;\n\t_viewportEntity = null;\n\t_contentEntity = null;\n\t_horizontalScrollbarEntity = null;\n\t_verticalScrollbarEntity = null;\n\t_evtElementAdd = null;\n\t_evtElementRemove = null;\n\t_evtViewportEntityElementAdd = null;\n\t_evtViewportElementRemove = null;\n\t_evtViewportResize = null;\n\t_evtContentEntityElementAdd = null;\n\t_evtContentElementRemove = null;\n\t_evtContentResize = null;\n\t_evtHorizontalScrollbarAdd = null;\n\t_evtHorizontalScrollbarRemove = null;\n\t_evtHorizontalScrollbarValue = null;\n\t_evtVerticalScrollbarAdd = null;\n\t_evtVerticalScrollbarRemove = null;\n\t_evtVerticalScrollbarValue = null;\n\tconstructor(system, entity) {\n\t\tsuper(system, entity);\n\t\tthis._scrollbarUpdateFlags = {};\n\t\tthis._scrollbarEntities = {};\n\t\tthis._prevContentSizes = {};\n\t\tthis._prevContentSizes[ORIENTATION_HORIZONTAL] = null;\n\t\tthis._prevContentSizes[ORIENTATION_VERTICAL] = null;\n\t\tthis._scroll = new Vec2();\n\t\tthis._velocity = new Vec3();\n\t\tthis._dragStartPosition = new Vec3();\n\t\tthis._disabledContentInput = false;\n\t\tthis._disabledContentInputEntities = [];\n\t\tthis._evtElementAdd = this.entity.on(\"element:add\", this._onElementComponentAdd, this);\n\t\tthis._toggleElementListeners(\"on\");\n\t}\n\tset horizontal(arg) {\n\t\tif (this._horizontal === arg) {\n\t\t\treturn;\n\t\t}\n\t\tthis._horizontal = arg;\n\t\tthis._syncScrollbarEnabledState(ORIENTATION_HORIZONTAL);\n\t}\n\tget horizontal() {\n\t\treturn this._horizontal;\n\t}\n\tset vertical(arg) {\n\t\tif (this._vertical === arg) {\n\t\t\treturn;\n\t\t}\n\t\tthis._vertical = arg;\n\t\tthis._syncScrollbarEnabledState(ORIENTATION_VERTICAL);\n\t}\n\tget vertical() {\n\t\treturn this._vertical;\n\t}\n\tset scrollMode(arg) {\n\t\tthis._scrollMode = arg;\n\t}\n\tget scrollMode() {\n\t\treturn this._scrollMode;\n\t}\n\tset bounceAmount(arg) {\n\t\tthis._bounceAmount = arg;\n\t}\n\tget bounceAmount() {\n\t\treturn this._bounceAmount;\n\t}\n\tset friction(arg) {\n\t\tthis._friction = arg;\n\t}\n\tget friction() {\n\t\treturn this._friction;\n\t}\n\tset dragThreshold(arg) {\n\t\tthis._dragThreshold = arg;\n\t}\n\tget dragThreshold() {\n\t\treturn this._dragThreshold;\n\t}\n\tset useMouseWheel(arg) {\n\t\tthis._useMouseWheel = arg;\n\t}\n\tget useMouseWheel() {\n\t\treturn this._useMouseWheel;\n\t}\n\tset mouseWheelSensitivity(arg) {\n\t\tif (!arg) {\n\t\t\tthis._mouseWheelSensitivity = arg;\n\t\t} else if (arg instanceof Vec2) {\n\t\t\tthis._mouseWheelSensitivity = arg.clone();\n\t\t} else {\n\t\t\tthis._mouseWheelSensitivity = new Vec2(arg[0], arg[1]);\n\t\t}\n\t}\n\tget mouseWheelSensitivity() {\n\t\treturn this._mouseWheelSensitivity;\n\t}\n\tset horizontalScrollbarVisibility(arg) {\n\t\tthis._horizontalScrollbarVisibility = arg;\n\t}\n\tget horizontalScrollbarVisibility() {\n\t\treturn this._horizontalScrollbarVisibility;\n\t}\n\tset verticalScrollbarVisibility(arg) {\n\t\tthis._verticalScrollbarVisibility = arg;\n\t}\n\tget verticalScrollbarVisibility() {\n\t\treturn this._verticalScrollbarVisibility;\n\t}\n\tset viewportEntity(arg) {\n\t\tif (this._viewportEntity === arg) {\n\t\t\treturn;\n\t\t}\n\t\tconst isString = typeof arg === \"string\";\n\t\tif (this._viewportEntity && isString && this._viewportEntity.guid === arg) {\n\t\t\treturn;\n\t\t}\n\t\tif (this._viewportEntity) {\n\t\t\tthis._viewportEntityUnsubscribe();\n\t\t}\n\t\tif (arg instanceof GraphNode) {\n\t\t\tthis._viewportEntity = arg;\n\t\t} else if (isString) {\n\t\t\tthis._viewportEntity = this.system.app.getEntityFromIndex(arg) || null;\n\t\t} else {\n\t\t\tthis._viewportEntity = null;\n\t\t}\n\t\tif (this._viewportEntity) {\n\t\t\tthis._viewportEntitySubscribe();\n\t\t}\n\t}\n\tget viewportEntity() {\n\t\treturn this._viewportEntity;\n\t}\n\tset contentEntity(arg) {\n\t\tif (this._contentEntity === arg) {\n\t\t\treturn;\n\t\t}\n\t\tconst isString = typeof arg === \"string\";\n\t\tif (this._contentEntity && isString && this._contentEntity.guid === arg) {\n\t\t\treturn;\n\t\t}\n\t\tif (this._contentEntity) {\n\t\t\tthis._contentEntityUnsubscribe();\n\t\t}\n\t\tif (arg instanceof GraphNode) {\n\t\t\tthis._contentEntity = arg;\n\t\t} else if (isString) {\n\t\t\tthis._contentEntity = this.system.app.getEntityFromIndex(arg) || null;\n\t\t} else {\n\t\t\tthis._contentEntity = null;\n\t\t}\n\t\tif (this._contentEntity) {\n\t\t\tthis._contentEntitySubscribe();\n\t\t}\n\t}\n\tget contentEntity() {\n\t\treturn this._contentEntity;\n\t}\n\tset horizontalScrollbarEntity(arg) {\n\t\tif (this._horizontalScrollbarEntity === arg) {\n\t\t\treturn;\n\t\t}\n\t\tconst isString = typeof arg === \"string\";\n\t\tif (this._horizontalScrollbarEntity && isString && this._horizontalScrollbarEntity.guid === arg) {\n\t\t\treturn;\n\t\t}\n\t\tif (this._horizontalScrollbarEntity) {\n\t\t\tthis._horizontalScrollbarEntityUnsubscribe();\n\t\t}\n\t\tif (arg instanceof GraphNode) {\n\t\t\tthis._horizontalScrollbarEntity = arg;\n\t\t} else if (isString) {\n\t\t\tthis._horizontalScrollbarEntity = this.system.app.getEntityFromIndex(arg) || null;\n\t\t} else {\n\t\t\tthis._horizontalScrollbarEntity = null;\n\t\t}\n\t\tthis._scrollbarEntities[ORIENTATION_HORIZONTAL] = this._horizontalScrollbarEntity;\n\t\tif (this._horizontalScrollbarEntity) {\n\t\t\tthis._horizontalScrollbarEntitySubscribe();\n\t\t}\n\t}\n\tget horizontalScrollbarEntity() {\n\t\treturn this._horizontalScrollbarEntity;\n\t}\n\tset verticalScrollbarEntity(arg) {\n\t\tif (this._verticalScrollbarEntity === arg) {\n\t\t\treturn;\n\t\t}\n\t\tconst isString = typeof arg === \"string\";\n\t\tif (this._verticalScrollbarEntity && isString && this._verticalScrollbarEntity.guid === arg) {\n\t\t\treturn;\n\t\t}\n\t\tif (this._verticalScrollbarEntity) {\n\t\t\tthis._verticalScrollbarEntityUnsubscribe();\n\t\t}\n\t\tif (arg instanceof GraphNode) {\n\t\t\tthis._verticalScrollbarEntity = arg;\n\t\t} else if (isString) {\n\t\t\tthis._verticalScrollbarEntity = this.system.app.getEntityFromIndex(arg) || null;\n\t\t} else {\n\t\t\tthis._verticalScrollbarEntity = null;\n\t\t}\n\t\tthis._scrollbarEntities[ORIENTATION_VERTICAL] = this._verticalScrollbarEntity;\n\t\tif (this._verticalScrollbarEntity) {\n\t\t\tthis._verticalScrollbarEntitySubscribe();\n\t\t}\n\t}\n\tget verticalScrollbarEntity() {\n\t\treturn this._verticalScrollbarEntity;\n\t}\n\tset scroll(value) {\n\t\tthis._onSetScroll(value.x, value.y);\n\t}\n\tget scroll() {\n\t\treturn this._scroll;\n\t}\n\t_toggleElementListeners(onOrOff) {\n\t\tif (this.entity.element) {\n\t\t\tif (onOrOff === \"on\" && this._hasElementListeners) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.entity.element[onOrOff](\"resize\", this._syncAll, this);\n\t\t\tthis.entity.element[onOrOff](\"mousewheel\", this._onMouseWheel, this);\n\t\t\tthis._hasElementListeners = onOrOff === \"on\";\n\t\t}\n\t}\n\t_onElementComponentAdd(entity) {\n\t\tthis._evtElementRemove = this.entity.element.once(\"beforeremove\", this._onElementComponentRemove, this);\n\t\tthis._toggleElementListeners(\"on\");\n\t}\n\t_onElementComponentRemove(entity) {\n\t\tthis._evtElementRemove?.off();\n\t\tthis._evtElementRemove = null;\n\t\tthis._toggleElementListeners(\"off\");\n\t}\n\t_viewportEntitySubscribe() {\n\t\tthis._evtViewportEntityElementAdd = this._viewportEntity.on(\"element:add\", this._onViewportElementGain, this);\n\t\tif (this._viewportEntity.element) {\n\t\t\tthis._onViewportElementGain();\n\t\t}\n\t}\n\t_viewportEntityUnsubscribe() {\n\t\tthis._evtViewportEntityElementAdd?.off();\n\t\tthis._evtViewportEntityElementAdd = null;\n\t\tif (this._viewportEntity?.element) {\n\t\t\tthis._onViewportElementLose();\n\t\t}\n\t}\n\t_viewportEntityElementSubscribe() {\n\t\tconst element = this._viewportEntity.element;\n\t\tthis._evtViewportElementRemove = element.once(\"beforeremove\", this._onViewportElementLose, this);\n\t\tthis._evtViewportResize = element.on(\"resize\", this._syncAll, this);\n\t}\n\t_viewportEntityElementUnsubscribe() {\n\t\tthis._evtViewportElementRemove?.off();\n\t\tthis._evtViewportElementRemove = null;\n\t\tthis._evtViewportResize?.off();\n\t\tthis._evtViewportResize = null;\n\t}\n\t_onViewportElementGain() {\n\t\tthis._viewportEntityElementSubscribe();\n\t\tthis._syncAll();\n\t}\n\t_onViewportElementLose() {\n\t\tthis._viewportEntityElementUnsubscribe();\n\t}\n\t_contentEntitySubscribe() {\n\t\tthis._evtContentEntityElementAdd = this._contentEntity.on(\"element:add\", this._onContentElementGain, this);\n\t\tif (this._contentEntity.element) {\n\t\t\tthis._onContentElementGain();\n\t\t}\n\t}\n\t_contentEntityUnsubscribe() {\n\t\tthis._evtContentEntityElementAdd?.off();\n\t\tthis._evtContentEntityElementAdd = null;\n\t\tif (this._contentEntity?.element) {\n\t\t\tthis._onContentElementLose();\n\t\t}\n\t}\n\t_contentEntityElementSubscribe() {\n\t\tconst element = this._contentEntity.element;\n\t\tthis._evtContentElementRemove = element.once(\"beforeremove\", this._onContentElementLose, this);\n\t\tthis._evtContentResize = element.on(\"resize\", this._syncAll, this);\n\t}\n\t_contentEntityElementUnsubscribe() {\n\t\tthis._evtContentElementRemove?.off();\n\t\tthis._evtContentElementRemove = null;\n\t\tthis._evtContentResize?.off();\n\t\tthis._evtContentResize = null;\n\t}\n\t_onContentElementGain() {\n\t\tthis._contentEntityElementSubscribe();\n\t\tthis._destroyDragHelper();\n\t\tthis._contentDragHelper = new ElementDragHelper(this._contentEntity.element);\n\t\tthis._contentDragHelper.on(\"drag:start\", this._onContentDragStart, this);\n\t\tthis._contentDragHelper.on(\"drag:end\", this._onContentDragEnd, this);\n\t\tthis._contentDragHelper.on(\"drag:move\", this._onContentDragMove, this);\n\t\tthis._prevContentSizes[ORIENTATION_HORIZONTAL] = null;\n\t\tthis._prevContentSizes[ORIENTATION_VERTICAL] = null;\n\t\tthis._syncAll();\n\t}\n\t_onContentElementLose() {\n\t\tthis._contentEntityElementUnsubscribe();\n\t\tthis._destroyDragHelper();\n\t}\n\t_onContentDragStart() {\n\t\tif (this._contentEntity && this.enabled && this.entity.enabled) {\n\t\t\tthis._dragStartPosition.copy(this._contentEntity.getLocalPosition());\n\t\t}\n\t}\n\t_onContentDragEnd() {\n\t\tthis._prevContentDragPosition = null;\n\t\tthis._enableContentInput();\n\t}\n\t_onContentDragMove(position5) {\n\t\tif (this._contentEntity && this.enabled && this.entity.enabled) {\n\t\t\tthis._wasDragged = true;\n\t\t\tthis._setScrollFromContentPosition(position5);\n\t\t\tthis._setVelocityFromContentPositionDelta(position5);\n\t\t\tif (!this._disabledContentInput) {\n\t\t\t\tconst dx = position5.x - this._dragStartPosition.x;\n\t\t\t\tconst dy = position5.y - this._dragStartPosition.y;\n\t\t\t\tif (Math.abs(dx) > this.dragThreshold || Math.abs(dy) > this.dragThreshold) {\n\t\t\t\t\tthis._disableContentInput();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t_horizontalScrollbarEntitySubscribe() {\n\t\tthis._evtHorizontalScrollbarAdd = this._horizontalScrollbarEntity.on(\"scrollbar:add\", this._onHorizontalScrollbarGain, this);\n\t\tif (this._horizontalScrollbarEntity.scrollbar) {\n\t\t\tthis._onHorizontalScrollbarGain();\n\t\t}\n\t}\n\t_verticalScrollbarEntitySubscribe() {\n\t\tthis._evtVerticalScrollbarAdd = this._verticalScrollbarEntity.on(\"scrollbar:add\", this._onVerticalScrollbarGain, this);\n\t\tif (this._verticalScrollbarEntity.scrollbar) {\n\t\t\tthis._onVerticalScrollbarGain();\n\t\t}\n\t}\n\t_horizontalScrollbarEntityUnsubscribe() {\n\t\tthis._evtHorizontalScrollbarAdd?.off();\n\t\tthis._evtHorizontalScrollbarAdd = null;\n\t\tif (this._horizontalScrollbarEntity.scrollbar) {\n\t\t\tthis._onHorizontalScrollbarLose();\n\t\t}\n\t}\n\t_verticalScrollbarEntityUnsubscribe() {\n\t\tthis._evtVerticalScrollbarAdd?.off();\n\t\tthis._evtVerticalScrollbarAdd = null;\n\t\tif (this._verticalScrollbarEntity.scrollbar) {\n\t\t\tthis._onVerticalScrollbarLose();\n\t\t}\n\t}\n\t_onSetHorizontalScrollbarValue(scrollValueX) {\n\t\tif (!this._scrollbarUpdateFlags[ORIENTATION_HORIZONTAL] && this.enabled && this.entity.enabled) {\n\t\t\tthis._onSetScroll(scrollValueX, null);\n\t\t}\n\t}\n\t_onSetVerticalScrollbarValue(scrollValueY) {\n\t\tif (!this._scrollbarUpdateFlags[ORIENTATION_VERTICAL] && this.enabled && this.entity.enabled) {\n\t\t\tthis._onSetScroll(null, scrollValueY);\n\t\t}\n\t}\n\t_onHorizontalScrollbarGain() {\n\t\tconst scrollbar = this._horizontalScrollbarEntity?.scrollbar;\n\t\tthis._evtHorizontalScrollbarRemove = scrollbar.on(\"beforeremove\", this._onHorizontalScrollbarLose, this);\n\t\tthis._evtHorizontalScrollbarValue = scrollbar.on(\"set:value\", this._onSetHorizontalScrollbarValue, this);\n\t\tthis._syncScrollbarEnabledState(ORIENTATION_HORIZONTAL);\n\t\tthis._syncScrollbarPosition(ORIENTATION_HORIZONTAL);\n\t}\n\t_onVerticalScrollbarGain() {\n\t\tconst scrollbar = this._verticalScrollbarEntity?.scrollbar;\n\t\tthis._evtVerticalScrollbarRemove = scrollbar.on(\"beforeremove\", this._onVerticalScrollbarLose, this);\n\t\tthis._evtVerticalScrollbarValue = scrollbar.on(\"set:value\", this._onSetVerticalScrollbarValue, this);\n\t\tthis._syncScrollbarEnabledState(ORIENTATION_VERTICAL);\n\t\tthis._syncScrollbarPosition(ORIENTATION_VERTICAL);\n\t}\n\t_onHorizontalScrollbarLose() {\n\t\tthis._evtHorizontalScrollbarRemove?.off();\n\t\tthis._evtHorizontalScrollbarRemove = null;\n\t\tthis._evtHorizontalScrollbarValue?.off();\n\t\tthis._evtHorizontalScrollbarValue = null;\n\t}\n\t_onVerticalScrollbarLose() {\n\t\tthis._evtVerticalScrollbarRemove?.off();\n\t\tthis._evtVerticalScrollbarRemove = null;\n\t\tthis._evtVerticalScrollbarValue?.off();\n\t\tthis._evtVerticalScrollbarValue = null;\n\t}\n\t_onSetScroll(x3, y2, resetVelocity) {\n\t\tif (resetVelocity !== false) {\n\t\t\tthis._velocity.set(0, 0, 0);\n\t\t}\n\t\tconst xChanged = this._updateAxis(x3, \"x\", ORIENTATION_HORIZONTAL);\n\t\tconst yChanged = this._updateAxis(y2, \"y\", ORIENTATION_VERTICAL);\n\t\tif (xChanged || yChanged) {\n\t\t\tthis.fire(\"set:scroll\", this._scroll);\n\t\t}\n\t}\n\t_updateAxis(scrollValue, axis, orientation) {\n\t\tconst hasChanged = scrollValue !== null && Math.abs(scrollValue - this._scroll[axis]) > 1e-5;\n\t\tif (hasChanged || this._isDragging() || scrollValue === 0) {\n\t\t\tthis._scroll[axis] = this._determineNewScrollValue(scrollValue, axis, orientation);\n\t\t\tthis._syncContentPosition(orientation);\n\t\t\tthis._syncScrollbarPosition(orientation);\n\t\t}\n\t\treturn hasChanged;\n\t}\n\t_determineNewScrollValue(scrollValue, axis, orientation) {\n\t\tif (!this._getScrollingEnabled(orientation)) {\n\t\t\treturn this._scroll[axis];\n\t\t}\n\t\tswitch (this.scrollMode) {\n\t\t\tcase SCROLL_MODE_CLAMP:\n\t\t\t\treturn math.clamp(scrollValue, 0, this._getMaxScrollValue(orientation));\n\t\t\tcase SCROLL_MODE_BOUNCE:\n\t\t\t\tthis._setVelocityFromOvershoot(scrollValue, axis, orientation);\n\t\t\t\treturn scrollValue;\n\t\t\tcase SCROLL_MODE_INFINITE:\n\t\t\t\treturn scrollValue;\n\t\t\tdefault:\n\t\t\t\tconsole.warn(`Unhandled scroll mode:${this.scrollMode}`);\n\t\t\t\treturn scrollValue;\n\t\t}\n\t}\n\t_syncAll() {\n\t\tthis._syncContentPosition(ORIENTATION_HORIZONTAL);\n\t\tthis._syncContentPosition(ORIENTATION_VERTICAL);\n\t\tthis._syncScrollbarPosition(ORIENTATION_HORIZONTAL);\n\t\tthis._syncScrollbarPosition(ORIENTATION_VERTICAL);\n\t\tthis._syncScrollbarEnabledState(ORIENTATION_HORIZONTAL);\n\t\tthis._syncScrollbarEnabledState(ORIENTATION_VERTICAL);\n\t}\n\t_syncContentPosition(orientation) {\n\t\tif (!this._contentEntity) {\n\t\t\treturn;\n\t\t}\n\t\tconst axis = this._getAxis(orientation);\n\t\tconst sign = this._getSign(orientation);\n\t\tconst prevContentSize = this._prevContentSizes[orientation];\n\t\tconst currContentSize = this._getContentSize(orientation);\n\t\tif (prevContentSize !== null && Math.abs(prevContentSize - currContentSize) > 1e-4) {\n\t\t\tconst prevMaxOffset = this._getMaxOffset(orientation, prevContentSize);\n\t\t\tconst currMaxOffset = this._getMaxOffset(orientation, currContentSize);\n\t\t\tif (currMaxOffset === 0) {\n\t\t\t\tthis._scroll[axis] = 1;\n\t\t\t} else {\n\t\t\t\tthis._scroll[axis] = math.clamp(this._scroll[axis] * prevMaxOffset / currMaxOffset, 0, 1);\n\t\t\t}\n\t\t}\n\t\tconst offset3 = this._scroll[axis] * this._getMaxOffset(orientation);\n\t\tconst contentPosition = this._contentEntity.getLocalPosition();\n\t\tcontentPosition[axis] = offset3 * sign;\n\t\tthis._contentEntity.setLocalPosition(contentPosition);\n\t\tthis._prevContentSizes[orientation] = currContentSize;\n\t}\n\t_syncScrollbarPosition(orientation) {\n\t\tconst scrollbarEntity = this._scrollbarEntities[orientation];\n\t\tif (!scrollbarEntity?.scrollbar) {\n\t\t\treturn;\n\t\t}\n\t\tconst axis = this._getAxis(orientation);\n\t\tthis._scrollbarUpdateFlags[orientation] = true;\n\t\tscrollbarEntity.scrollbar.value = this._scroll[axis];\n\t\tscrollbarEntity.scrollbar.handleSize = this._getScrollbarHandleSize(axis, orientation);\n\t\tthis._scrollbarUpdateFlags[orientation] = false;\n\t}\n\t// Toggles the scrollbar entities themselves to be enabled/disabled based\n\t// on whether the user has enabled horizontal/vertical scrolling on the\n\t// scroll view.\n\t_syncScrollbarEnabledState(orientation) {\n\t\tconst entity = this._scrollbarEntities[orientation];\n\t\tif (!entity) {\n\t\t\treturn;\n\t\t}\n\t\tconst isScrollingEnabled = this._getScrollingEnabled(orientation);\n\t\tconst requestedVisibility = this._getScrollbarVisibility(orientation);\n\t\tswitch (requestedVisibility) {\n\t\t\tcase SCROLLBAR_VISIBILITY_SHOW_ALWAYS:\n\t\t\t\tentity.enabled = isScrollingEnabled;\n\t\t\t\treturn;\n\t\t\tcase SCROLLBAR_VISIBILITY_SHOW_WHEN_REQUIRED:\n\t\t\t\tentity.enabled = isScrollingEnabled && this._contentIsLargerThanViewport(orientation);\n\t\t\t\treturn;\n\t\t\tdefault:\n\t\t\t\tconsole.warn(`Unhandled scrollbar visibility:${requestedVisibility}`);\n\t\t\t\tentity.enabled = isScrollingEnabled;\n\t\t}\n\t}\n\t_contentIsLargerThanViewport(orientation) {\n\t\treturn this._getContentSize(orientation) > this._getViewportSize(orientation);\n\t}\n\t_contentPositionToScrollValue(contentPosition) {\n\t\tconst maxOffsetH = this._getMaxOffset(ORIENTATION_HORIZONTAL);\n\t\tconst maxOffsetV = this._getMaxOffset(ORIENTATION_VERTICAL);\n\t\tif (maxOffsetH === 0) {\n\t\t\t_tempScrollValue.x = 0;\n\t\t} else {\n\t\t\t_tempScrollValue.x = contentPosition.x / maxOffsetH;\n\t\t}\n\t\tif (maxOffsetV === 0) {\n\t\t\t_tempScrollValue.y = 0;\n\t\t} else {\n\t\t\t_tempScrollValue.y = contentPosition.y / -maxOffsetV;\n\t\t}\n\t\treturn _tempScrollValue;\n\t}\n\t_getMaxOffset(orientation, contentSize) {\n\t\tcontentSize = contentSize === void 0 ? this._getContentSize(orientation) : contentSize;\n\t\tconst viewportSize = this._getViewportSize(orientation);\n\t\tif (contentSize < viewportSize) {\n\t\t\treturn -this._getViewportSize(orientation);\n\t\t}\n\t\treturn viewportSize - contentSize;\n\t}\n\t_getMaxScrollValue(orientation) {\n\t\treturn this._contentIsLargerThanViewport(orientation) ? 1 : 0;\n\t}\n\t_getScrollbarHandleSize(axis, orientation) {\n\t\tconst viewportSize = this._getViewportSize(orientation);\n\t\tconst contentSize = this._getContentSize(orientation);\n\t\tif (Math.abs(contentSize) < 1e-3) {\n\t\t\treturn 1;\n\t\t}\n\t\tconst handleSize = Math.min(viewportSize / contentSize, 1);\n\t\tconst overshoot = this._toOvershoot(this._scroll[axis], orientation);\n\t\tif (overshoot === 0) {\n\t\t\treturn handleSize;\n\t\t}\n\t\treturn handleSize / (1 + Math.abs(overshoot));\n\t}\n\t_getViewportSize(orientation) {\n\t\treturn this._getSize(orientation, this._viewportEntity);\n\t}\n\t_getContentSize(orientation) {\n\t\treturn this._getSize(orientation, this._contentEntity);\n\t}\n\t_getSize(orientation, entity) {\n\t\tif (entity?.element) {\n\t\t\treturn entity.element[this._getCalculatedDimension(orientation)];\n\t\t}\n\t\treturn 0;\n\t}\n\t_getScrollingEnabled(orientation) {\n\t\tif (orientation === ORIENTATION_HORIZONTAL) {\n\t\t\treturn this.horizontal;\n\t\t} else if (orientation === ORIENTATION_VERTICAL) {\n\t\t\treturn this.vertical;\n\t\t}\n\t\treturn void 0;\n\t}\n\t_getScrollbarVisibility(orientation) {\n\t\tif (orientation === ORIENTATION_HORIZONTAL) {\n\t\t\treturn this.horizontalScrollbarVisibility;\n\t\t} else if (orientation === ORIENTATION_VERTICAL) {\n\t\t\treturn this.verticalScrollbarVisibility;\n\t\t}\n\t\treturn void 0;\n\t}\n\t_getSign(orientation) {\n\t\treturn orientation === ORIENTATION_HORIZONTAL ? 1 : -1;\n\t}\n\t_getAxis(orientation) {\n\t\treturn orientation === ORIENTATION_HORIZONTAL ? \"x\" : \"y\";\n\t}\n\t_getCalculatedDimension(orientation) {\n\t\treturn orientation === ORIENTATION_HORIZONTAL ? \"calculatedWidth\" : \"calculatedHeight\";\n\t}\n\t_destroyDragHelper() {\n\t\tif (this._contentDragHelper) {\n\t\t\tthis._contentDragHelper.destroy();\n\t\t}\n\t}\n\tonUpdate() {\n\t\tif (this._contentEntity) {\n\t\t\tthis._updateVelocity();\n\t\t\tthis._syncScrollbarEnabledState(ORIENTATION_HORIZONTAL);\n\t\t\tthis._syncScrollbarEnabledState(ORIENTATION_VERTICAL);\n\t\t}\n\t}\n\t_updateVelocity() {\n\t\tif (!this._isDragging()) {\n\t\t\tif (this.scrollMode === SCROLL_MODE_BOUNCE) {\n\t\t\t\tif (this._hasOvershoot(\"x\", ORIENTATION_HORIZONTAL)) {\n\t\t\t\t\tthis._setVelocityFromOvershoot(this.scroll.x, \"x\", ORIENTATION_HORIZONTAL);\n\t\t\t\t}\n\t\t\t\tif (this._hasOvershoot(\"y\", ORIENTATION_VERTICAL)) {\n\t\t\t\t\tthis._setVelocityFromOvershoot(this.scroll.y, \"y\", ORIENTATION_VERTICAL);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (Math.abs(this._velocity.x) > 1e-4 || Math.abs(this._velocity.y) > 1e-4) {\n\t\t\t\tconst position5 = this._contentEntity.getLocalPosition();\n\t\t\t\tposition5.x += this._velocity.x;\n\t\t\t\tposition5.y += this._velocity.y;\n\t\t\t\tthis._contentEntity.setLocalPosition(position5);\n\t\t\t\tthis._setScrollFromContentPosition(position5);\n\t\t\t}\n\t\t\tthis._velocity.x *= 1 - this.friction;\n\t\t\tthis._velocity.y *= 1 - this.friction;\n\t\t}\n\t}\n\t_hasOvershoot(axis, orientation) {\n\t\treturn Math.abs(this._toOvershoot(this.scroll[axis], orientation)) > 1e-3;\n\t}\n\t_toOvershoot(scrollValue, orientation) {\n\t\tconst maxScrollValue = this._getMaxScrollValue(orientation);\n\t\tif (scrollValue < 0) {\n\t\t\treturn scrollValue;\n\t\t} else if (scrollValue > maxScrollValue) {\n\t\t\treturn scrollValue - maxScrollValue;\n\t\t}\n\t\treturn 0;\n\t}\n\t_setVelocityFromOvershoot(scrollValue, axis, orientation) {\n\t\tconst overshootValue = this._toOvershoot(scrollValue, orientation);\n\t\tconst overshootPixels = overshootValue * this._getMaxOffset(orientation) * this._getSign(orientation);\n\t\tif (Math.abs(overshootPixels) > 0) {\n\t\t\tthis._velocity[axis] = -overshootPixels / (this.bounceAmount * 50 + 1);\n\t\t}\n\t}\n\t_setVelocityFromContentPositionDelta(position5) {\n\t\tif (this._prevContentDragPosition) {\n\t\t\tthis._velocity.sub2(position5, this._prevContentDragPosition);\n\t\t\tthis._prevContentDragPosition.copy(position5);\n\t\t} else {\n\t\t\tthis._velocity.set(0, 0, 0);\n\t\t\tthis._prevContentDragPosition = position5.clone();\n\t\t}\n\t}\n\t_setScrollFromContentPosition(position5) {\n\t\tlet scrollValue = this._contentPositionToScrollValue(position5);\n\t\tif (this._isDragging()) {\n\t\t\tscrollValue = this._applyScrollValueTension(scrollValue);\n\t\t}\n\t\tthis._onSetScroll(scrollValue.x, scrollValue.y, false);\n\t}\n\t// Create nice tension effect when dragging past the extents of the viewport\n\t_applyScrollValueTension(scrollValue) {\n\t\tconst factor = 1;\n\t\tlet max = this._getMaxScrollValue(ORIENTATION_HORIZONTAL);\n\t\tlet overshoot = this._toOvershoot(scrollValue.x, ORIENTATION_HORIZONTAL);\n\t\tif (overshoot > 0) {\n\t\t\tscrollValue.x = max + factor * Math.log10(1 + overshoot);\n\t\t} else if (overshoot < 0) {\n\t\t\tscrollValue.x = -factor * Math.log10(1 - overshoot);\n\t\t}\n\t\tmax = this._getMaxScrollValue(ORIENTATION_VERTICAL);\n\t\tovershoot = this._toOvershoot(scrollValue.y, ORIENTATION_VERTICAL);\n\t\tif (overshoot > 0) {\n\t\t\tscrollValue.y = max + factor * Math.log10(1 + overshoot);\n\t\t} else if (overshoot < 0) {\n\t\t\tscrollValue.y = -factor * Math.log10(1 - overshoot);\n\t\t}\n\t\treturn scrollValue;\n\t}\n\t_isDragging() {\n\t\treturn this._contentDragHelper && this._contentDragHelper.isDragging;\n\t}\n\t_setScrollbarComponentsEnabled(enabled) {\n\t\tif (this._horizontalScrollbarEntity?.scrollbar) {\n\t\t\tthis._horizontalScrollbarEntity.scrollbar.enabled = enabled;\n\t\t}\n\t\tif (this._verticalScrollbarEntity?.scrollbar) {\n\t\t\tthis._verticalScrollbarEntity.scrollbar.enabled = enabled;\n\t\t}\n\t}\n\t_setContentDraggingEnabled(enabled) {\n\t\tif (this._contentDragHelper) {\n\t\t\tthis._contentDragHelper.enabled = enabled;\n\t\t}\n\t}\n\t_onMouseWheel(event) {\n\t\tif (!this.useMouseWheel || !this._contentEntity?.element) {\n\t\t\treturn;\n\t\t}\n\t\tconst wheelEvent = event.event;\n\t\tconst normalizedDeltaX = wheelEvent.deltaX / this._contentEntity.element.calculatedWidth * this.mouseWheelSensitivity.x;\n\t\tconst normalizedDeltaY = wheelEvent.deltaY / this._contentEntity.element.calculatedHeight * this.mouseWheelSensitivity.y;\n\t\tconst scrollX = math.clamp(this._scroll.x + normalizedDeltaX, 0, this._getMaxScrollValue(ORIENTATION_HORIZONTAL));\n\t\tconst scrollY = math.clamp(this._scroll.y + normalizedDeltaY, 0, this._getMaxScrollValue(ORIENTATION_VERTICAL));\n\t\tthis.scroll = new Vec2(scrollX, scrollY);\n\t}\n\t// re-enable useInput flag on any descendant that was disabled\n\t_enableContentInput() {\n\t\twhile (this._disabledContentInputEntities.length) {\n\t\t\tconst e = this._disabledContentInputEntities.pop();\n\t\t\tif (e.element) {\n\t\t\t\te.element.useInput = true;\n\t\t\t}\n\t\t}\n\t\tthis._disabledContentInput = false;\n\t}\n\t// disable useInput flag on all descendants of this contentEntity\n\t_disableContentInput() {\n\t\tconst _disableInput = (e) => {\n\t\t\tif (e.element && e.element.useInput) {\n\t\t\t\tthis._disabledContentInputEntities.push(e);\n\t\t\t\te.element.useInput = false;\n\t\t\t}\n\t\t\tconst children = e.children;\n\t\t\tfor (let i2 = 0, l = children.length; i2 < l; i2++) {\n\t\t\t\t_disableInput(children[i2]);\n\t\t\t}\n\t\t};\n\t\tif (this._contentEntity) {\n\t\t\tconst children = this._contentEntity.children;\n\t\t\tfor (let i2 = 0, l = children.length; i2 < l; i2++) {\n\t\t\t\t_disableInput(children[i2]);\n\t\t\t}\n\t\t}\n\t\tthis._disabledContentInput = true;\n\t}\n\tonEnable() {\n\t\tthis._setScrollbarComponentsEnabled(true);\n\t\tthis._setContentDraggingEnabled(true);\n\t\tthis._syncAll();\n\t}\n\tonDisable() {\n\t\tthis._setScrollbarComponentsEnabled(false);\n\t\tthis._setContentDraggingEnabled(false);\n\t}\n\tonBeforeRemove() {\n\t\tthis._evtElementAdd?.off();\n\t\tthis._evtElementAdd = null;\n\t\tthis._evtElementRemove?.off();\n\t\tthis._evtElementRemove = null;\n\t\tthis.viewportEntity = null;\n\t\tthis.contentEntity = null;\n\t\tthis.horizontalScrollbarEntity = null;\n\t\tthis.verticalScrollbarEntity = null;\n\t\tthis._toggleElementListeners(\"off\");\n\t\tthis._destroyDragHelper();\n\t}\n\tresolveDuplicatedEntityReferenceProperties(oldScrollView, duplicatedIdsMap) {\n\t\tif (oldScrollView.viewportEntity) {\n\t\t\tthis.viewportEntity = duplicatedIdsMap[oldScrollView.viewportEntity.guid];\n\t\t}\n\t\tif (oldScrollView.contentEntity) {\n\t\t\tthis.contentEntity = duplicatedIdsMap[oldScrollView.contentEntity.guid];\n\t\t}\n\t\tif (oldScrollView.horizontalScrollbarEntity) {\n\t\t\tthis.horizontalScrollbarEntity = duplicatedIdsMap[oldScrollView.horizontalScrollbarEntity.guid];\n\t\t}\n\t\tif (oldScrollView.verticalScrollbarEntity) {\n\t\t\tthis.verticalScrollbarEntity = duplicatedIdsMap[oldScrollView.verticalScrollbarEntity.guid];\n\t\t}\n\t}\n};\n\nvar _properties9 = [\n\t\"horizontal\",\n\t\"vertical\",\n\t\"scrollMode\",\n\t\"bounceAmount\",\n\t\"friction\",\n\t\"dragThreshold\",\n\t\"useMouseWheel\",\n\t\"mouseWheelSensitivity\",\n\t\"horizontalScrollbarVisibility\",\n\t\"verticalScrollbarVisibility\",\n\t\"viewportEntity\",\n\t\"contentEntity\",\n\t\"horizontalScrollbarEntity\",\n\t\"verticalScrollbarEntity\"\n];\nvar ScrollViewComponentSystem = class extends ComponentSystem {\n\tconstructor(app2) {\n\t\tsuper(app2);\n\t\tthis.id = \"scrollview\";\n\t\tthis.ComponentType = ScrollViewComponent;\n\t\tthis.on(\"beforeremove\", this.onBeforeRemove, this);\n\t\tthis.app.systems.on(\"update\", this.onUpdate, this);\n\t}\n\tinitializeComponentData(component, data2, properties) {\n\t\tfor (let i2 = 0; i2 < _properties9.length; i2++) {\n\t\t\tconst property = _properties9[i2];\n\t\t\tif (data2[property] !== void 0) {\n\t\t\t\tcomponent[property] = data2[property];\n\t\t\t}\n\t\t}\n\t\tsuper.initializeComponentData(component, data2);\n\t}\n\tcloneComponent(entity, clone) {\n\t\tconst c2 = entity.scrollview;\n\t\tconst data2 = {\n\t\t\tenabled: c2.enabled\n\t\t};\n\t\tfor (let i2 = 0; i2 < _properties9.length; i2++) {\n\t\t\tconst property = _properties9[i2];\n\t\t\tdata2[property] = c2[property];\n\t\t}\n\t\treturn this.addComponent(clone, data2);\n\t}\n\tonUpdate(dt) {\n\t\tconst components2 = this.store;\n\t\tfor (const id14 in components2) {\n\t\t\tconst entity = components2[id14].entity;\n\t\t\tconst component = entity.scrollview;\n\t\t\tif (component.enabled && entity.enabled) {\n\t\t\t\tcomponent.onUpdate();\n\t\t\t}\n\t\t}\n\t}\n\tonBeforeRemove(entity, component) {\n\t\tcomponent.onBeforeRemove();\n\t}\n\tdestroy() {\n\t\tsuper.destroy();\n\t\tthis.app.systems.off(\"update\", this.onUpdate, this);\n\t}\n};\n\nvar ScrollbarComponent = class extends Component {\n\tstatic EVENT_SETVALUE = \"set:value\";\n\t_orientation = ORIENTATION_HORIZONTAL;\n\t_value = 0;\n\t_handleSize = 0;\n\t_handleEntity = null;\n\t_evtHandleEntityElementAdd = null;\n\t_evtHandleEntityChanges = [];\n\t_handleDragHelper = null;\n\tset orientation(arg) {\n\t\tif (this._orientation === arg) {\n\t\t\treturn;\n\t\t}\n\t\tthis._orientation = arg;\n\t\tif (this._handleEntity?.element) {\n\t\t\tthis._handleEntity.element[this._getOppositeDimension()] = 0;\n\t\t\tthis._rebuildDragHelper();\n\t\t\tthis._updateHandlePositionAndSize();\n\t\t}\n\t}\n\tget orientation() {\n\t\treturn this._orientation;\n\t}\n\tset value(arg) {\n\t\tif (Math.abs(arg - this._value) > 1e-5) {\n\t\t\tthis._value = math.clamp(arg, 0, 1);\n\t\t\tthis._updateHandlePositionAndSize();\n\t\t\tthis.fire(\"set:value\", this._value);\n\t\t}\n\t}\n\tget value() {\n\t\treturn this._value;\n\t}\n\tset handleSize(arg) {\n\t\tif (Math.abs(arg - this._handleSize) > 1e-5) {\n\t\t\tthis._handleSize = math.clamp(arg, 0, 1);\n\t\t\tthis._updateHandlePositionAndSize();\n\t\t}\n\t}\n\tget handleSize() {\n\t\treturn this._handleSize;\n\t}\n\tset handleEntity(arg) {\n\t\tlet newEntity;\n\t\tif (arg instanceof GraphNode) {\n\t\t\tnewEntity = arg;\n\t\t} else if (typeof arg === \"string\") {\n\t\t\tnewEntity = this.system.app.getEntityFromIndex(arg) ?? null;\n\t\t} else {\n\t\t\tnewEntity = null;\n\t\t}\n\t\tif (this._handleEntity === newEntity) {\n\t\t\treturn;\n\t\t}\n\t\tif (this._handleEntity) {\n\t\t\tthis._handleEntityUnsubscribe();\n\t\t}\n\t\tthis._handleEntity = newEntity;\n\t\tif (newEntity) {\n\t\t\tthis._handleEntitySubscribe();\n\t\t}\n\t}\n\tget handleEntity() {\n\t\treturn this._handleEntity;\n\t}\n\t_handleEntitySubscribe() {\n\t\tthis._evtHandleEntityElementAdd = this._handleEntity.on(\"element:add\", this._onHandleElementGain, this);\n\t\tif (this._handleEntity.element) {\n\t\t\tthis._onHandleElementGain();\n\t\t}\n\t}\n\t_handleEntityUnsubscribe() {\n\t\tthis._evtHandleEntityElementAdd?.off();\n\t\tthis._evtHandleEntityElementAdd = null;\n\t\tif (this._handleEntity?.element) {\n\t\t\tthis._onHandleElementLose();\n\t\t}\n\t}\n\t_handleEntityElementSubscribe() {\n\t\tconst element = this._handleEntity.element;\n\t\tconst handles = this._evtHandleEntityChanges;\n\t\thandles.push(element.once(\"beforeremove\", this._onHandleElementLose, this));\n\t\thandles.push(element.on(\"set:anchor\", this._updateHandlePositionAndSize, this));\n\t\thandles.push(element.on(\"set:margin\", this._updateHandlePositionAndSize, this));\n\t\thandles.push(element.on(\"set:pivot\", this._updateHandlePositionAndSize, this));\n\t}\n\t_handleEntityElementUnsubscribe() {\n\t\tfor (let i2 = 0; i2 < this._evtHandleEntityChanges.length; i2++) {\n\t\t\tthis._evtHandleEntityChanges[i2].off();\n\t\t}\n\t\tthis._evtHandleEntityChanges.length = 0;\n\t}\n\t_onHandleElementGain() {\n\t\tthis._handleEntityElementSubscribe();\n\t\tthis._rebuildDragHelper();\n\t\tthis._updateHandlePositionAndSize();\n\t}\n\t_rebuildDragHelper() {\n\t\tthis._destroyDragHelper();\n\t\tthis._handleDragHelper = new ElementDragHelper(this._handleEntity.element, this._getAxis());\n\t\tthis._handleDragHelper.enabled = this.enabled && this.entity.enabled;\n\t\tthis._handleDragHelper.on(\"drag:move\", this._onHandleDrag, this);\n\t}\n\t_onHandleElementLose() {\n\t\tthis._handleEntityElementUnsubscribe();\n\t\tthis._destroyDragHelper();\n\t}\n\t_onHandleDrag(position5) {\n\t\tif (this._handleEntity && this.enabled && this.entity.enabled) {\n\t\t\tthis.value = this._handlePositionToScrollValue(position5[this._getAxis()]);\n\t\t}\n\t}\n\t_updateHandlePositionAndSize() {\n\t\tconst handleEntity = this._handleEntity;\n\t\tif (!handleEntity) return;\n\t\tconst position5 = handleEntity.getLocalPosition();\n\t\tposition5[this._getAxis()] = this._getHandlePosition();\n\t\thandleEntity.setLocalPosition(position5);\n\t\tif (handleEntity.element) {\n\t\t\thandleEntity.element[this._getDimension()] = this._getHandleLength();\n\t\t}\n\t}\n\t_handlePositionToScrollValue(handlePosition) {\n\t\treturn handlePosition * this._getSign() / this._getUsableTrackLength();\n\t}\n\t_scrollValueToHandlePosition(value) {\n\t\treturn value * this._getSign() * this._getUsableTrackLength();\n\t}\n\t_getUsableTrackLength() {\n\t\treturn Math.max(this._getTrackLength() - this._getHandleLength(), 1e-3);\n\t}\n\t_getTrackLength() {\n\t\tif (this.entity.element) {\n\t\t\treturn this._orientation === ORIENTATION_HORIZONTAL ? this.entity.element.calculatedWidth : this.entity.element.calculatedHeight;\n\t\t}\n\t\treturn 0;\n\t}\n\t_getHandleLength() {\n\t\treturn this._getTrackLength() * this._handleSize;\n\t}\n\t_getHandlePosition() {\n\t\treturn this._scrollValueToHandlePosition(this._value);\n\t}\n\t_getSign() {\n\t\treturn this._orientation === ORIENTATION_HORIZONTAL ? 1 : -1;\n\t}\n\t_getAxis() {\n\t\treturn this._orientation === ORIENTATION_HORIZONTAL ? \"x\" : \"y\";\n\t}\n\t_getDimension() {\n\t\treturn this._orientation === ORIENTATION_HORIZONTAL ? \"width\" : \"height\";\n\t}\n\t_getOppositeDimension() {\n\t\treturn this._orientation === ORIENTATION_HORIZONTAL ? \"height\" : \"width\";\n\t}\n\t_destroyDragHelper() {\n\t\tthis._handleDragHelper?.destroy();\n\t\tthis._handleDragHelper = null;\n\t}\n\tonEnable() {\n\t\tif (this._handleDragHelper) {\n\t\t\tthis._handleDragHelper.enabled = true;\n\t\t}\n\t}\n\tonDisable() {\n\t\tif (this._handleDragHelper) {\n\t\t\tthis._handleDragHelper.enabled = false;\n\t\t}\n\t}\n\tonBeforeRemove() {\n\t\tthis._destroyDragHelper();\n\t}\n\tresolveDuplicatedEntityReferenceProperties(oldScrollbar, duplicatedIdsMap) {\n\t\tif (oldScrollbar.handleEntity) {\n\t\t\tthis.handleEntity = duplicatedIdsMap[oldScrollbar.handleEntity.guid];\n\t\t}\n\t}\n};\n\nvar _properties10 = [\"orientation\", \"value\", \"handleSize\", \"handleEntity\"];\nvar ScrollbarComponentSystem = class extends ComponentSystem {\n\tconstructor(app2) {\n\t\tsuper(app2);\n\t\tthis.id = \"scrollbar\";\n\t\tthis.ComponentType = ScrollbarComponent;\n\t\tthis.on(\"add\", this._onAddComponent, this);\n\t\tthis.on(\"beforeremove\", this.onBeforeRemove, this);\n\t}\n\tinitializeComponentData(component, data2, properties) {\n\t\tfor (let i2 = 0; i2 < _properties10.length; i2++) {\n\t\t\tconst property = _properties10[i2];\n\t\t\tif (data2.hasOwnProperty(property)) {\n\t\t\t\tcomponent[property] = data2[property];\n\t\t\t}\n\t\t}\n\t\tsuper.initializeComponentData(component, data2);\n\t}\n\tcloneComponent(entity, clone) {\n\t\tconst c2 = entity.scrollbar;\n\t\tconst data2 = {\n\t\t\tenabled: c2.enabled\n\t\t};\n\t\tfor (let i2 = 0; i2 < _properties10.length; i2++) {\n\t\t\tconst property = _properties10[i2];\n\t\t\tdata2[property] = c2[property];\n\t\t}\n\t\treturn this.addComponent(clone, data2);\n\t}\n\t_onAddComponent(entity) {\n\t\tentity.fire(\"scrollbar:add\");\n\t}\n\tonBeforeRemove(entity, component) {\n\t\tcomponent.onBeforeRemove();\n\t}\n};\n\nvar instanceOptions = {\n\tvolume: 0,\n\tpitch: 0,\n\tloop: false,\n\tstartTime: 0,\n\tduration: 0,\n\tposition: new Vec3(),\n\tmaxDistance: 0,\n\trefDistance: 0,\n\trollOffFactor: 0,\n\tdistanceModel: 0,\n\tonPlay: null,\n\tonPause: null,\n\tonResume: null,\n\tonStop: null,\n\tonEnd: null\n};\nvar SoundSlot = class extends EventHandler {\n\tstatic EVENT_PLAY = \"play\";\n\tstatic EVENT_PAUSE = \"pause\";\n\tstatic EVENT_RESUME = \"resume\";\n\tstatic EVENT_STOP = \"stop\";\n\tstatic EVENT_END = \"end\";\n\tstatic EVENT_LOAD = \"load\";\n\tname;\n\tinstances = [];\n\tconstructor(component, name = \"Untitled\", options2 = {}) {\n\t\tsuper();\n\t\tthis._component = component;\n\t\tthis._assets = component.system.app.assets;\n\t\tthis._manager = component.system.manager;\n\t\tthis.name = name;\n\t\tthis._volume = options2.volume !== void 0 ? math.clamp(Number(options2.volume) || 0, 0, 1) : 1;\n\t\tthis._pitch = options2.pitch !== void 0 ? Math.max(0.01, Number(options2.pitch) || 0) : 1;\n\t\tthis._loop = !!(options2.loop !== void 0 ? options2.loop : false);\n\t\tthis._duration = options2.duration > 0 ? options2.duration : null;\n\t\tthis._startTime = Math.max(0, Number(options2.startTime) || 0);\n\t\tthis._overlap = !!options2.overlap;\n\t\tthis._autoPlay = !!options2.autoPlay;\n\t\tthis._firstNode = null;\n\t\tthis._lastNode = null;\n\t\tthis._asset = options2.asset;\n\t\tif (this._asset instanceof Asset) {\n\t\t\tthis._asset = this._asset.id;\n\t\t}\n\t\tthis._onInstancePlayHandler = this._onInstancePlay.bind(this);\n\t\tthis._onInstancePauseHandler = this._onInstancePause.bind(this);\n\t\tthis._onInstanceResumeHandler = this._onInstanceResume.bind(this);\n\t\tthis._onInstanceStopHandler = this._onInstanceStop.bind(this);\n\t\tthis._onInstanceEndHandler = this._onInstanceEnd.bind(this);\n\t}\n\tplay() {\n\t\tif (!this.overlap) {\n\t\t\tthis.stop();\n\t\t}\n\t\tif (!this.isLoaded && !this._hasAsset()) {\n\t\t\treturn void 0;\n\t\t}\n\t\tconst instance = this._createInstance();\n\t\tthis.instances.push(instance);\n\t\tif (!this.isLoaded) {\n\t\t\tconst onLoad = function(sound) {\n\t\t\t\tconst playWhenLoaded = instance._playWhenLoaded;\n\t\t\t\tinstance.sound = sound;\n\t\t\t\tif (playWhenLoaded) {\n\t\t\t\t\tinstance.play();\n\t\t\t\t}\n\t\t\t};\n\t\t\tthis.off(\"load\", onLoad);\n\t\t\tthis.once(\"load\", onLoad);\n\t\t\tthis.load();\n\t\t} else {\n\t\t\tinstance.play();\n\t\t}\n\t\treturn instance;\n\t}\n\tpause() {\n\t\tlet paused = false;\n\t\tconst instances = this.instances;\n\t\tfor (let i2 = 0, len = instances.length; i2 < len; i2++) {\n\t\t\tif (instances[i2].pause()) {\n\t\t\t\tpaused = true;\n\t\t\t}\n\t\t}\n\t\treturn paused;\n\t}\n\tresume() {\n\t\tlet resumed = false;\n\t\tconst instances = this.instances;\n\t\tfor (let i2 = 0, len = instances.length; i2 < len; i2++) {\n\t\t\tif (instances[i2].resume()) {\n\t\t\t\tresumed = true;\n\t\t\t}\n\t\t}\n\t\treturn resumed;\n\t}\n\tstop() {\n\t\tlet stopped = false;\n\t\tconst instances = this.instances;\n\t\tlet i2 = instances.length;\n\t\twhile (i2--) {\n\t\t\tinstances[i2].stop();\n\t\t\tstopped = true;\n\t\t}\n\t\tinstances.length = 0;\n\t\treturn stopped;\n\t}\n\tload() {\n\t\tif (!this._hasAsset()) {\n\t\t\treturn;\n\t\t}\n\t\tconst asset = this._assets.get(this._asset);\n\t\tif (!asset) {\n\t\t\tthis._assets.off(`add:${this._asset}`, this._onAssetAdd, this);\n\t\t\tthis._assets.once(`add:${this._asset}`, this._onAssetAdd, this);\n\t\t\treturn;\n\t\t}\n\t\tasset.off(\"remove\", this._onAssetRemoved, this);\n\t\tasset.on(\"remove\", this._onAssetRemoved, this);\n\t\tif (!asset.resource) {\n\t\t\tasset.off(\"load\", this._onAssetLoad, this);\n\t\t\tasset.once(\"load\", this._onAssetLoad, this);\n\t\t\tthis._assets.load(asset);\n\t\t\treturn;\n\t\t}\n\t\tthis.fire(\"load\", asset.resource);\n\t}\n\tsetExternalNodes(firstNode, lastNode) {\n\t\tif (!firstNode) {\n\t\t\tconsole.error(\"The firstNode must have a valid AudioNode\");\n\t\t\treturn;\n\t\t}\n\t\tif (!lastNode) {\n\t\t\tlastNode = firstNode;\n\t\t}\n\t\tthis._firstNode = firstNode;\n\t\tthis._lastNode = lastNode;\n\t\tif (!this._overlap) {\n\t\t\tconst instances = this.instances;\n\t\t\tfor (let i2 = 0, len = instances.length; i2 < len; i2++) {\n\t\t\t\tinstances[i2].setExternalNodes(firstNode, lastNode);\n\t\t\t}\n\t\t}\n\t}\n\tclearExternalNodes() {\n\t\tthis._firstNode = null;\n\t\tthis._lastNode = null;\n\t\tif (!this._overlap) {\n\t\t\tconst instances = this.instances;\n\t\t\tfor (let i2 = 0, len = instances.length; i2 < len; i2++) {\n\t\t\t\tinstances[i2].clearExternalNodes();\n\t\t\t}\n\t\t}\n\t}\n\tgetExternalNodes() {\n\t\treturn [this._firstNode, this._lastNode];\n\t}\n\t_hasAsset() {\n\t\treturn this._asset != null;\n\t}\n\t_createInstance() {\n\t\tlet instance = null;\n\t\tconst component = this._component;\n\t\tlet sound = null;\n\t\tif (this._hasAsset()) {\n\t\t\tconst asset = this._assets.get(this._asset);\n\t\t\tif (asset) {\n\t\t\t\tsound = asset.resource;\n\t\t\t}\n\t\t}\n\t\tconst data2 = instanceOptions;\n\t\tdata2.volume = this._volume * component.volume;\n\t\tdata2.pitch = this._pitch * component.pitch;\n\t\tdata2.loop = this._loop;\n\t\tdata2.startTime = this._startTime;\n\t\tdata2.duration = this._duration;\n\t\tdata2.onPlay = this._onInstancePlayHandler;\n\t\tdata2.onPause = this._onInstancePauseHandler;\n\t\tdata2.onResume = this._onInstanceResumeHandler;\n\t\tdata2.onStop = this._onInstanceStopHandler;\n\t\tdata2.onEnd = this._onInstanceEndHandler;\n\t\tif (component.positional) {\n\t\t\tdata2.position.copy(component.entity.getPosition());\n\t\t\tdata2.maxDistance = component.maxDistance;\n\t\t\tdata2.refDistance = component.refDistance;\n\t\t\tdata2.rollOffFactor = component.rollOffFactor;\n\t\t\tdata2.distanceModel = component.distanceModel;\n\t\t\tinstance = new SoundInstance3d(this._manager, sound, data2);\n\t\t} else {\n\t\t\tinstance = new SoundInstance(this._manager, sound, data2);\n\t\t}\n\t\tif (this._firstNode) {\n\t\t\tinstance.setExternalNodes(this._firstNode, this._lastNode);\n\t\t}\n\t\treturn instance;\n\t}\n\t_onInstancePlay(instance) {\n\t\tthis.fire(\"play\", instance);\n\t\tthis._component.fire(\"play\", this, instance);\n\t}\n\t_onInstancePause(instance) {\n\t\tthis.fire(\"pause\", instance);\n\t\tthis._component.fire(\"pause\", this, instance);\n\t}\n\t_onInstanceResume(instance) {\n\t\tthis.fire(\"resume\", instance);\n\t\tthis._component.fire(\"resume\", this, instance);\n\t}\n\t_onInstanceStop(instance) {\n\t\tconst idx = this.instances.indexOf(instance);\n\t\tif (idx !== -1) {\n\t\t\tthis.instances.splice(idx, 1);\n\t\t}\n\t\tthis.fire(\"stop\", instance);\n\t\tthis._component.fire(\"stop\", this, instance);\n\t}\n\t_onInstanceEnd(instance) {\n\t\tconst idx = this.instances.indexOf(instance);\n\t\tif (idx !== -1) {\n\t\t\tthis.instances.splice(idx, 1);\n\t\t}\n\t\tthis.fire(\"end\", instance);\n\t\tthis._component.fire(\"end\", this, instance);\n\t}\n\t_onAssetAdd(asset) {\n\t\tthis.load();\n\t}\n\t_onAssetLoad(asset) {\n\t\tthis.load();\n\t}\n\t_onAssetRemoved(asset) {\n\t\tasset.off(\"remove\", this._onAssetRemoved, this);\n\t\tthis._assets.off(`add:${asset.id}`, this._onAssetAdd, this);\n\t\tthis.stop();\n\t}\n\tupdatePosition(position5) {\n\t\tconst instances = this.instances;\n\t\tfor (let i2 = 0, len = instances.length; i2 < len; i2++) {\n\t\t\tinstances[i2].position = position5;\n\t\t}\n\t}\n\tset asset(value) {\n\t\tconst old = this._asset;\n\t\tif (old) {\n\t\t\tthis._assets.off(`add:${old}`, this._onAssetAdd, this);\n\t\t\tconst oldAsset = this._assets.get(old);\n\t\t\tif (oldAsset) {\n\t\t\t\toldAsset.off(\"remove\", this._onAssetRemoved, this);\n\t\t\t}\n\t\t}\n\t\tthis._asset = value;\n\t\tif (this._asset instanceof Asset) {\n\t\t\tthis._asset = this._asset.id;\n\t\t}\n\t\tif (this._hasAsset() && this._component.enabled && this._component.entity.enabled) {\n\t\t\tthis.load();\n\t\t}\n\t}\n\tget asset() {\n\t\treturn this._asset;\n\t}\n\tset autoPlay(value) {\n\t\tthis._autoPlay = !!value;\n\t}\n\tget autoPlay() {\n\t\treturn this._autoPlay;\n\t}\n\tset duration(value) {\n\t\tthis._duration = Math.max(0, Number(value) || 0) || null;\n\t\tif (!this._overlap) {\n\t\t\tconst instances = this.instances;\n\t\t\tfor (let i2 = 0, len = instances.length; i2 < len; i2++) {\n\t\t\t\tinstances[i2].duration = this._duration;\n\t\t\t}\n\t\t}\n\t}\n\tget duration() {\n\t\tlet assetDuration = 0;\n\t\tif (this._hasAsset()) {\n\t\t\tconst asset = this._assets.get(this._asset);\n\t\t\tassetDuration = asset?.resource ? asset.resource.duration : 0;\n\t\t}\n\t\tif (this._duration != null) {\n\t\t\tconst startTime = this._startTime % assetDuration || 0;\n\t\t\treturn Math.min(this._duration, assetDuration - startTime);\n\t\t}\n\t\treturn assetDuration;\n\t}\n\tget isLoaded() {\n\t\tif (this._hasAsset()) {\n\t\t\tconst asset = this._assets.get(this._asset);\n\t\t\tif (asset) {\n\t\t\t\treturn !!asset.resource;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\tget isPaused() {\n\t\tconst instances = this.instances;\n\t\tconst len = instances.length;\n\t\tif (len === 0) {\n\t\t\treturn false;\n\t\t}\n\t\tfor (let i2 = 0; i2 < len; i2++) {\n\t\t\tif (!instances[i2].isPaused) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n\tget isPlaying() {\n\t\tconst instances = this.instances;\n\t\tfor (let i2 = 0, len = instances.length; i2 < len; i2++) {\n\t\t\tif (instances[i2].isPlaying) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\tget isStopped() {\n\t\tconst instances = this.instances;\n\t\tfor (let i2 = 0, len = instances.length; i2 < len; i2++) {\n\t\t\tif (!instances[i2].isStopped) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n\tset loop(value) {\n\t\tthis._loop = !!value;\n\t\tconst instances = this.instances;\n\t\tfor (let i2 = 0, len = instances.length; i2 < len; i2++) {\n\t\t\tinstances[i2].loop = this._loop;\n\t\t}\n\t}\n\tget loop() {\n\t\treturn this._loop;\n\t}\n\tset overlap(value) {\n\t\tthis._overlap = !!value;\n\t}\n\tget overlap() {\n\t\treturn this._overlap;\n\t}\n\tset pitch(value) {\n\t\tthis._pitch = Math.max(Number(value) || 0, 0.01);\n\t\tif (!this._overlap) {\n\t\t\tconst instances = this.instances;\n\t\t\tfor (let i2 = 0, len = instances.length; i2 < len; i2++) {\n\t\t\t\tinstances[i2].pitch = this.pitch * this._component.pitch;\n\t\t\t}\n\t\t}\n\t}\n\tget pitch() {\n\t\treturn this._pitch;\n\t}\n\tset startTime(value) {\n\t\tthis._startTime = Math.max(0, Number(value) || 0);\n\t\tif (!this._overlap) {\n\t\t\tconst instances = this.instances;\n\t\t\tfor (let i2 = 0, len = instances.length; i2 < len; i2++) {\n\t\t\t\tinstances[i2].startTime = this._startTime;\n\t\t\t}\n\t\t}\n\t}\n\tget startTime() {\n\t\treturn this._startTime;\n\t}\n\tset volume(value) {\n\t\tthis._volume = math.clamp(Number(value) || 0, 0, 1);\n\t\tif (!this._overlap) {\n\t\t\tconst instances = this.instances;\n\t\t\tfor (let i2 = 0, len = instances.length; i2 < len; i2++) {\n\t\t\t\tinstances[i2].volume = this._volume * this._component.volume;\n\t\t\t}\n\t\t}\n\t}\n\tget volume() {\n\t\treturn this._volume;\n\t}\n};\n\nvar SoundComponent = class extends Component {\n\tstatic EVENT_PLAY = \"play\";\n\tstatic EVENT_PAUSE = \"pause\";\n\tstatic EVENT_RESUME = \"resume\";\n\tstatic EVENT_STOP = \"stop\";\n\tstatic EVENT_END = \"end\";\n\t_volume = 1;\n\t_pitch = 1;\n\t_positional = true;\n\t_refDistance = 1;\n\t_maxDistance = 1e4;\n\t_rollOffFactor = 1;\n\t_distanceModel = DISTANCE_LINEAR;\n\t_slots = {};\n\t_playingBeforeDisable = {};\n\t_updateSoundInstances(property, value, isFactor) {\n\t\tconst slots = this._slots;\n\t\tfor (const key in slots) {\n\t\t\tconst slot = slots[key];\n\t\t\tif (!slot.overlap) {\n\t\t\t\tconst instances = slot.instances;\n\t\t\t\tfor (let i2 = 0, len = instances.length; i2 < len; i2++) {\n\t\t\t\t\tinstances[i2][property] = isFactor ? slot[property] * value : value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tset distanceModel(value) {\n\t\tthis._distanceModel = value;\n\t\tthis._updateSoundInstances(\"distanceModel\", value, false);\n\t}\n\tget distanceModel() {\n\t\treturn this._distanceModel;\n\t}\n\tset maxDistance(value) {\n\t\tthis._maxDistance = value;\n\t\tthis._updateSoundInstances(\"maxDistance\", value, false);\n\t}\n\tget maxDistance() {\n\t\treturn this._maxDistance;\n\t}\n\tset refDistance(value) {\n\t\tthis._refDistance = value;\n\t\tthis._updateSoundInstances(\"refDistance\", value, false);\n\t}\n\tget refDistance() {\n\t\treturn this._refDistance;\n\t}\n\tset rollOffFactor(value) {\n\t\tthis._rollOffFactor = value;\n\t\tthis._updateSoundInstances(\"rollOffFactor\", value, false);\n\t}\n\tget rollOffFactor() {\n\t\treturn this._rollOffFactor;\n\t}\n\tset pitch(value) {\n\t\tthis._pitch = value;\n\t\tthis._updateSoundInstances(\"pitch\", value, true);\n\t}\n\tget pitch() {\n\t\treturn this._pitch;\n\t}\n\tset volume(value) {\n\t\tthis._volume = value;\n\t\tthis._updateSoundInstances(\"volume\", value, true);\n\t}\n\tget volume() {\n\t\treturn this._volume;\n\t}\n\tset positional(newValue) {\n\t\tthis._positional = newValue;\n\t\tconst slots = this._slots;\n\t\tfor (const key in slots) {\n\t\t\tconst slot = slots[key];\n\t\t\tif (!slot.overlap) {\n\t\t\t\tconst instances = slot.instances;\n\t\t\t\tconst oldLength = instances.length;\n\t\t\t\tfor (let i2 = oldLength - 1; i2 >= 0; i2--) {\n\t\t\t\t\tconst isPlaying = instances[i2].isPlaying || instances[i2].isSuspended;\n\t\t\t\t\tconst currentTime = instances[i2].currentTime;\n\t\t\t\t\tif (isPlaying) {\n\t\t\t\t\t\tinstances[i2].stop();\n\t\t\t\t\t}\n\t\t\t\t\tconst instance = slot._createInstance();\n\t\t\t\t\tif (isPlaying) {\n\t\t\t\t\t\tinstance.play();\n\t\t\t\t\t\tinstance.currentTime = currentTime;\n\t\t\t\t\t}\n\t\t\t\t\tinstances.push(instance);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tget positional() {\n\t\treturn this._positional;\n\t}\n\tset slots(newValue) {\n\t\tconst oldValue = this._slots;\n\t\tif (oldValue) {\n\t\t\tfor (const key in oldValue) {\n\t\t\t\toldValue[key].stop();\n\t\t\t}\n\t\t}\n\t\tconst slots = {};\n\t\tfor (const key in newValue) {\n\t\t\tif (!(newValue[key] instanceof SoundSlot)) {\n\t\t\t\tif (newValue[key].name) {\n\t\t\t\t\tslots[newValue[key].name] = new SoundSlot(this, newValue[key].name, newValue[key]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tslots[newValue[key].name] = newValue[key];\n\t\t\t}\n\t\t}\n\t\tthis._slots = slots;\n\t\tif (this.enabled && this.entity.enabled) {\n\t\t\tthis.onEnable();\n\t\t}\n\t}\n\tget slots() {\n\t\treturn this._slots;\n\t}\n\tonEnable() {\n\t\tif (this.system._inTools) {\n\t\t\treturn;\n\t\t}\n\t\tconst slots = this._slots;\n\t\tconst playingBeforeDisable = this._playingBeforeDisable;\n\t\tfor (const key in slots) {\n\t\t\tconst slot = slots[key];\n\t\t\tif (slot.autoPlay && slot.isStopped) {\n\t\t\t\tslot.play();\n\t\t\t} else if (playingBeforeDisable[key]) {\n\t\t\t\tslot.resume();\n\t\t\t} else if (!slot.isLoaded) {\n\t\t\t\tslot.load();\n\t\t\t}\n\t\t}\n\t}\n\tonDisable() {\n\t\tconst slots = this._slots;\n\t\tconst playingBeforeDisable = {};\n\t\tfor (const key in slots) {\n\t\t\tif (!slots[key].overlap) {\n\t\t\t\tif (slots[key].isPlaying) {\n\t\t\t\t\tslots[key].pause();\n\t\t\t\t\tplayingBeforeDisable[key] = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis._playingBeforeDisable = playingBeforeDisable;\n\t}\n\tonBeforeRemove() {\n\t\tthis.off();\n\t}\n\taddSlot(name, options2) {\n\t\tconst slots = this._slots;\n\t\tif (slots[name]) {\n\t\t\treturn null;\n\t\t}\n\t\tconst slot = new SoundSlot(this, name, options2);\n\t\tslots[name] = slot;\n\t\tif (slot.autoPlay && this.enabled && this.entity.enabled) {\n\t\t\tslot.play();\n\t\t}\n\t\treturn slot;\n\t}\n\tremoveSlot(name) {\n\t\tconst slots = this._slots;\n\t\tif (slots[name]) {\n\t\t\tslots[name].stop();\n\t\t\tdelete slots[name];\n\t\t}\n\t}\n\tslot(name) {\n\t\treturn this._slots[name];\n\t}\n\t_getSlotProperty(name, property) {\n\t\tif (!this.enabled || !this.entity.enabled) {\n\t\t\treturn void 0;\n\t\t}\n\t\tconst slot = this._slots[name];\n\t\tif (!slot) {\n\t\t\treturn void 0;\n\t\t}\n\t\treturn slot[property];\n\t}\n\tisPlaying(name) {\n\t\treturn this._getSlotProperty(name, \"isPlaying\") || false;\n\t}\n\tisLoaded(name) {\n\t\treturn this._getSlotProperty(name, \"isLoaded\") || false;\n\t}\n\tisPaused(name) {\n\t\treturn this._getSlotProperty(name, \"isPaused\") || false;\n\t}\n\tisStopped(name) {\n\t\treturn this._getSlotProperty(name, \"isStopped\") || false;\n\t}\n\tplay(name) {\n\t\tif (!this.enabled || !this.entity.enabled) {\n\t\t\treturn null;\n\t\t}\n\t\tconst slot = this._slots[name];\n\t\tif (!slot) {\n\t\t\treturn null;\n\t\t}\n\t\treturn slot.play();\n\t}\n\tpause(name) {\n\t\tconst slots = this._slots;\n\t\tif (name) {\n\t\t\tconst slot = slots[name];\n\t\t\tif (!slot) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tslot.pause();\n\t\t} else {\n\t\t\tfor (const key in slots) {\n\t\t\t\tslots[key].pause();\n\t\t\t}\n\t\t}\n\t}\n\tresume(name) {\n\t\tconst slots = this._slots;\n\t\tif (name) {\n\t\t\tconst slot = slots[name];\n\t\t\tif (!slot) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (slot.isPaused) {\n\t\t\t\tslot.resume();\n\t\t\t}\n\t\t} else {\n\t\t\tfor (const key in slots) {\n\t\t\t\tslots[key].resume();\n\t\t\t}\n\t\t}\n\t}\n\tstop(name) {\n\t\tconst slots = this._slots;\n\t\tif (name) {\n\t\t\tconst slot = slots[name];\n\t\t\tif (!slot) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tslot.stop();\n\t\t} else {\n\t\t\tfor (const key in slots) {\n\t\t\t\tslots[key].stop();\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar _properties11 = [\n\t\"volume\",\n\t\"pitch\",\n\t\"positional\",\n\t\"refDistance\",\n\t\"maxDistance\",\n\t\"rollOffFactor\",\n\t\"distanceModel\",\n\t\"slots\"\n];\nvar SoundComponentSystem = class extends ComponentSystem {\n\tconstructor(app2) {\n\t\tsuper(app2);\n\t\tthis.id = \"sound\";\n\t\tthis.ComponentType = SoundComponent;\n\t\tthis.manager = app2.soundManager;\n\t\tthis.app.systems.on(\"update\", this.onUpdate, this);\n\t\tthis.on(\"beforeremove\", this.onBeforeRemove, this);\n\t}\n\tset volume(volume) {\n\t\tthis.manager.volume = volume;\n\t}\n\tget volume() {\n\t\treturn this.manager.volume;\n\t}\n\tget context() {\n\t\treturn this.manager.context;\n\t}\n\tinitializeComponentData(component, data2) {\n\t\tfor (let i2 = 0; i2 < _properties11.length; i2++) {\n\t\t\tif (data2.hasOwnProperty(_properties11[i2])) {\n\t\t\t\tcomponent[_properties11[i2]] = data2[_properties11[i2]];\n\t\t\t}\n\t\t}\n\t\tsuper.initializeComponentData(component, data2);\n\t}\n\tcloneComponent(entity, clone) {\n\t\tconst c2 = entity.sound;\n\t\tconst data2 = {\n\t\t\tenabled: c2.enabled\n\t\t};\n\t\tfor (let i2 = 0; i2 < _properties11.length; i2++) {\n\t\t\tconst property = _properties11[i2];\n\t\t\tif (property === \"slots\") {\n\t\t\t\tconst slots = {};\n\t\t\t\tfor (const key in c2.slots) {\n\t\t\t\t\tconst srcSlot = c2.slots[key];\n\t\t\t\t\tslots[key] = {\n\t\t\t\t\t\tname: srcSlot.name,\n\t\t\t\t\t\tvolume: srcSlot.volume,\n\t\t\t\t\t\tpitch: srcSlot.pitch,\n\t\t\t\t\t\tloop: srcSlot.loop,\n\t\t\t\t\t\tduration: srcSlot.duration,\n\t\t\t\t\t\tstartTime: srcSlot.startTime,\n\t\t\t\t\t\toverlap: srcSlot.overlap,\n\t\t\t\t\t\tautoPlay: srcSlot.autoPlay,\n\t\t\t\t\t\tasset: srcSlot.asset\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tdata2.slots = slots;\n\t\t\t} else {\n\t\t\t\tdata2[property] = c2[property];\n\t\t\t}\n\t\t}\n\t\treturn this.addComponent(clone, data2);\n\t}\n\tonUpdate(dt) {\n\t\tconst store = this.store;\n\t\tfor (const id14 in store) {\n\t\t\tif (store.hasOwnProperty(id14)) {\n\t\t\t\tconst item = store[id14];\n\t\t\t\tconst entity = item.entity;\n\t\t\t\tif (entity.enabled) {\n\t\t\t\t\tconst component = entity.sound;\n\t\t\t\t\tif (component.enabled && component.positional) {\n\t\t\t\t\t\tconst position5 = entity.getPosition();\n\t\t\t\t\t\tconst slots = component.slots;\n\t\t\t\t\t\tfor (const key in slots) {\n\t\t\t\t\t\t\tslots[key].updatePosition(position5);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tonBeforeRemove(entity, component) {\n\t\tconst slots = component.slots;\n\t\tfor (const key in slots) {\n\t\t\tif (!slots[key].overlap) {\n\t\t\t\tslots[key].stop();\n\t\t\t}\n\t\t}\n\t\tcomponent.onBeforeRemove();\n\t}\n\tdestroy() {\n\t\tsuper.destroy();\n\t\tthis.app.systems.off(\"update\", this.onUpdate, this);\n\t}\n};\n\nvar SPRITETYPE_SIMPLE = \"simple\";\nvar SPRITETYPE_ANIMATED = \"animated\";\n\nvar SpriteAnimationClip = class extends EventHandler {\n\tstatic EVENT_PLAY = \"play\";\n\tstatic EVENT_PAUSE = \"pause\";\n\tstatic EVENT_RESUME = \"resume\";\n\tstatic EVENT_STOP = \"stop\";\n\tstatic EVENT_END = \"end\";\n\tstatic EVENT_LOOP = \"loop\";\n\t_evtSetMeshes = null;\n\t_component;\n\t_frame = 0;\n\t_sprite = null;\n\t_spriteAsset = null;\n\t_playing = false;\n\t_paused = false;\n\t_time = 0;\n\tname;\n\tfps = 0;\n\tloop = false;\n\tconstructor(component, data2) {\n\t\tsuper();\n\t\tthis._component = component;\n\t\tthis.fps = data2.fps || 0;\n\t\tthis.loop = data2.loop || false;\n\t\tthis.name = data2.name;\n\t\tthis.spriteAsset = data2.spriteAsset;\n\t}\n\tget duration() {\n\t\tif (this._sprite) {\n\t\t\tconst fps = this.fps || Number.MIN_VALUE;\n\t\t\treturn this._sprite.frameKeys.length / Math.abs(fps);\n\t\t}\n\t\treturn 0;\n\t}\n\tset frame(value) {\n\t\tthis._setFrame(value);\n\t\tconst fps = this.fps || Number.MIN_VALUE;\n\t\tthis._setTime(this._frame / fps);\n\t}\n\tget frame() {\n\t\treturn this._frame;\n\t}\n\tget isPaused() {\n\t\treturn this._paused;\n\t}\n\tget isPlaying() {\n\t\treturn this._playing;\n\t}\n\tset sprite(value) {\n\t\tif (this._sprite) {\n\t\t\tthis._evtSetMeshes?.off();\n\t\t\tthis._evtSetMeshes = null;\n\t\t\tthis._sprite.off(\"set:pixelsPerUnit\", this._onSpritePpuChanged, this);\n\t\t\tthis._sprite.off(\"set:atlas\", this._onSpriteMeshesChange, this);\n\t\t\tif (this._sprite.atlas) {\n\t\t\t\tthis._sprite.atlas.off(\"set:texture\", this._onSpriteMeshesChange, this);\n\t\t\t}\n\t\t}\n\t\tthis._sprite = value;\n\t\tif (this._sprite) {\n\t\t\tthis._evtSetMeshes = this._sprite.on(\"set:meshes\", this._onSpriteMeshesChange, this);\n\t\t\tthis._sprite.on(\"set:pixelsPerUnit\", this._onSpritePpuChanged, this);\n\t\t\tthis._sprite.on(\"set:atlas\", this._onSpriteMeshesChange, this);\n\t\t\tif (this._sprite.atlas) {\n\t\t\t\tthis._sprite.atlas.on(\"set:texture\", this._onSpriteMeshesChange, this);\n\t\t\t}\n\t\t}\n\t\tif (this._component.currentClip === this) {\n\t\t\tlet mi;\n\t\t\tif (!value || !value.atlas) {\n\t\t\t\tmi = this._component._meshInstance;\n\t\t\t\tif (mi) {\n\t\t\t\t\tmi.deleteParameter(\"texture_emissiveMap\");\n\t\t\t\t\tmi.deleteParameter(\"texture_opacityMap\");\n\t\t\t\t}\n\t\t\t\tthis._component.removeFromLayers();\n\t\t\t} else {\n\t\t\t\tif (value.atlas.texture) {\n\t\t\t\t\tmi = this._component._meshInstance;\n\t\t\t\t\tif (mi) {\n\t\t\t\t\t\tmi.setParameter(\"texture_emissiveMap\", value.atlas.texture);\n\t\t\t\t\t\tmi.setParameter(\"texture_opacityMap\", value.atlas.texture);\n\t\t\t\t\t}\n\t\t\t\t\tif (this._component.enabled && this._component.entity.enabled) {\n\t\t\t\t\t\tthis._component.addToLayers();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (this.time && this.fps) {\n\t\t\t\t\tthis.time = this.time;\n\t\t\t\t} else {\n\t\t\t\t\tthis.frame = this.frame;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tget sprite() {\n\t\treturn this._sprite;\n\t}\n\tset spriteAsset(value) {\n\t\tconst assets = this._component.system.app.assets;\n\t\tlet id14 = value;\n\t\tif (value instanceof Asset) {\n\t\t\tid14 = value.id;\n\t\t}\n\t\tif (this._spriteAsset !== id14) {\n\t\t\tif (this._spriteAsset) {\n\t\t\t\tconst prev = assets.get(this._spriteAsset);\n\t\t\t\tif (prev) {\n\t\t\t\t\tthis._unbindSpriteAsset(prev);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._spriteAsset = id14;\n\t\t\tif (this._spriteAsset) {\n\t\t\t\tconst asset = assets.get(this._spriteAsset);\n\t\t\t\tif (!asset) {\n\t\t\t\t\tthis.sprite = null;\n\t\t\t\t\tassets.on(`add:${this._spriteAsset}`, this._onSpriteAssetAdded, this);\n\t\t\t\t} else {\n\t\t\t\t\tthis._bindSpriteAsset(asset);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.sprite = null;\n\t\t\t}\n\t\t}\n\t}\n\tget spriteAsset() {\n\t\treturn this._spriteAsset;\n\t}\n\tset time(value) {\n\t\tthis._setTime(value);\n\t\tif (this._sprite) {\n\t\t\tthis.frame = Math.min(this._sprite.frameKeys.length - 1, Math.floor(this._time * Math.abs(this.fps)));\n\t\t} else {\n\t\t\tthis.frame = 0;\n\t\t}\n\t}\n\tget time() {\n\t\treturn this._time;\n\t}\n\t// When sprite asset is added bind it\n\t_onSpriteAssetAdded(asset) {\n\t\tthis._component.system.app.assets.off(`add:${asset.id}`, this._onSpriteAssetAdded, this);\n\t\tif (this._spriteAsset === asset.id) {\n\t\t\tthis._bindSpriteAsset(asset);\n\t\t}\n\t}\n\t// Hook up event handlers on sprite asset\n\t_bindSpriteAsset(asset) {\n\t\tasset.on(\"load\", this._onSpriteAssetLoad, this);\n\t\tasset.on(\"remove\", this._onSpriteAssetRemove, this);\n\t\tif (asset.resource) {\n\t\t\tthis._onSpriteAssetLoad(asset);\n\t\t} else {\n\t\t\tthis._component.system.app.assets.load(asset);\n\t\t}\n\t}\n\t_unbindSpriteAsset(asset) {\n\t\tif (!asset) {\n\t\t\treturn;\n\t\t}\n\t\tasset.off(\"load\", this._onSpriteAssetLoad, this);\n\t\tasset.off(\"remove\", this._onSpriteAssetRemove, this);\n\t\tif (asset.resource && !asset.resource.atlas) {\n\t\t\tthis._component.system.app.assets.off(`load:${asset.data.textureAtlasAsset}`, this._onTextureAtlasLoad, this);\n\t\t}\n\t}\n\t// When sprite asset is loaded make sure the texture atlas asset is loaded too\n\t// If so then set the sprite, otherwise wait for the atlas to be loaded first\n\t_onSpriteAssetLoad(asset) {\n\t\tif (!asset.resource) {\n\t\t\tthis.sprite = null;\n\t\t} else {\n\t\t\tif (!asset.resource.atlas) {\n\t\t\t\tconst atlasAssetId = asset.data.textureAtlasAsset;\n\t\t\t\tconst assets = this._component.system.app.assets;\n\t\t\t\tassets.off(`load:${atlasAssetId}`, this._onTextureAtlasLoad, this);\n\t\t\t\tassets.once(`load:${atlasAssetId}`, this._onTextureAtlasLoad, this);\n\t\t\t} else {\n\t\t\t\tthis.sprite = asset.resource;\n\t\t\t}\n\t\t}\n\t}\n\t// When atlas is loaded try to reset the sprite asset\n\t_onTextureAtlasLoad(atlasAsset) {\n\t\tconst spriteAsset = this._spriteAsset;\n\t\tif (spriteAsset instanceof Asset) {\n\t\t\tthis._onSpriteAssetLoad(spriteAsset);\n\t\t} else {\n\t\t\tthis._onSpriteAssetLoad(this._component.system.app.assets.get(spriteAsset));\n\t\t}\n\t}\n\t_onSpriteAssetRemove(asset) {\n\t\tthis.sprite = null;\n\t}\n\t// If the meshes are re-created make sure\n\t// we update them in the mesh instance\n\t_onSpriteMeshesChange() {\n\t\tif (this._component.currentClip === this) {\n\t\t\tthis._component._showFrame(this.frame);\n\t\t}\n\t}\n\t// Update frame if ppu changes for 9-sliced sprites\n\t_onSpritePpuChanged() {\n\t\tif (this._component.currentClip === this) {\n\t\t\tif (this.sprite.renderMode !== SPRITE_RENDERMODE_SIMPLE) {\n\t\t\t\tthis._component._showFrame(this.frame);\n\t\t\t}\n\t\t}\n\t}\n\t_update(dt) {\n\t\tif (this.fps === 0) return;\n\t\tif (!this._playing || this._paused || !this._sprite) return;\n\t\tconst dir4 = this.fps < 0 ? -1 : 1;\n\t\tconst time = this._time + dt * this._component.speed * dir4;\n\t\tconst duration = this.duration;\n\t\tconst end = time > duration || time < 0;\n\t\tthis._setTime(time);\n\t\tlet frame = this.frame;\n\t\tif (this._sprite) {\n\t\t\tframe = Math.floor(this._sprite.frameKeys.length * this._time / duration);\n\t\t} else {\n\t\t\tframe = 0;\n\t\t}\n\t\tif (frame !== this._frame) {\n\t\t\tthis._setFrame(frame);\n\t\t}\n\t\tif (end) {\n\t\t\tif (this.loop) {\n\t\t\t\tthis.fire(\"loop\");\n\t\t\t\tthis._component.fire(\"loop\", this);\n\t\t\t} else {\n\t\t\t\tthis._playing = false;\n\t\t\t\tthis._paused = false;\n\t\t\t\tthis.fire(\"end\");\n\t\t\t\tthis._component.fire(\"end\", this);\n\t\t\t}\n\t\t}\n\t}\n\t_setTime(value) {\n\t\tthis._time = value;\n\t\tconst duration = this.duration;\n\t\tif (this._time < 0) {\n\t\t\tif (this.loop) {\n\t\t\t\tthis._time = this._time % duration + duration;\n\t\t\t} else {\n\t\t\t\tthis._time = 0;\n\t\t\t}\n\t\t} else if (this._time > duration) {\n\t\t\tif (this.loop) {\n\t\t\t\tthis._time %= duration;\n\t\t\t} else {\n\t\t\t\tthis._time = duration;\n\t\t\t}\n\t\t}\n\t}\n\t_setFrame(value) {\n\t\tif (this._sprite) {\n\t\t\tthis._frame = math.clamp(value, 0, this._sprite.frameKeys.length - 1);\n\t\t} else {\n\t\t\tthis._frame = value;\n\t\t}\n\t\tif (this._component.currentClip === this) {\n\t\t\tthis._component._showFrame(this._frame);\n\t\t}\n\t}\n\t_destroy() {\n\t\tif (this._spriteAsset) {\n\t\t\tconst assets = this._component.system.app.assets;\n\t\t\tthis._unbindSpriteAsset(assets.get(this._spriteAsset));\n\t\t}\n\t\tif (this._sprite) {\n\t\t\tthis.sprite = null;\n\t\t}\n\t\tif (this._spriteAsset) {\n\t\t\tthis.spriteAsset = null;\n\t\t}\n\t}\n\tplay() {\n\t\tif (this._playing) {\n\t\t\treturn;\n\t\t}\n\t\tthis._playing = true;\n\t\tthis._paused = false;\n\t\tthis.frame = 0;\n\t\tthis.fire(\"play\");\n\t\tthis._component.fire(\"play\", this);\n\t}\n\tpause() {\n\t\tif (!this._playing || this._paused) {\n\t\t\treturn;\n\t\t}\n\t\tthis._paused = true;\n\t\tthis.fire(\"pause\");\n\t\tthis._component.fire(\"pause\", this);\n\t}\n\tresume() {\n\t\tif (!this._paused) return;\n\t\tthis._paused = false;\n\t\tthis.fire(\"resume\");\n\t\tthis._component.fire(\"resume\", this);\n\t}\n\tstop() {\n\t\tif (!this._playing) return;\n\t\tthis._playing = false;\n\t\tthis._paused = false;\n\t\tthis._time = 0;\n\t\tthis.frame = 0;\n\t\tthis.fire(\"stop\");\n\t\tthis._component.fire(\"stop\", this);\n\t}\n};\n\nvar PARAM_EMISSIVE_MAP = \"texture_emissiveMap\";\nvar PARAM_OPACITY_MAP = \"texture_opacityMap\";\nvar PARAM_EMISSIVE = \"material_emissive\";\nvar PARAM_OPACITY = \"material_opacity\";\nvar PARAM_INNER_OFFSET = \"innerOffset\";\nvar PARAM_OUTER_SCALE = \"outerScale\";\nvar PARAM_ATLAS_RECT = \"atlasRect\";\nvar SpriteComponent = class extends Component {\n\tstatic EVENT_PLAY = \"play\";\n\tstatic EVENT_PAUSE = \"pause\";\n\tstatic EVENT_RESUME = \"resume\";\n\tstatic EVENT_STOP = \"stop\";\n\tstatic EVENT_END = \"end\";\n\tstatic EVENT_LOOP = \"loop\";\n\t_evtLayersChanged = null;\n\t_evtLayerAdded = null;\n\t_evtLayerRemoved = null;\n\t_type = SPRITETYPE_SIMPLE;\n\t_material = null;\n\t_color = new Color(1, 1, 1, 1);\n\t_colorUniform = new Float32Array(3);\n\t_speed = 1;\n\t_flipX = false;\n\t_flipY = false;\n\t_width = 1;\n\t_height = 1;\n\t_drawOrder = 0;\n\t_layers = [LAYERID_WORLD];\n\t// assign to the default world layer\n\t// 9-slicing\n\t_outerScale = new Vec2(1, 1);\n\t_outerScaleUniform = new Float32Array(2);\n\t_innerOffset = new Vec4();\n\t_innerOffsetUniform = new Float32Array(4);\n\t_atlasRect = new Vec4();\n\t_atlasRectUniform = new Float32Array(4);\n\t// batch groups\n\t_batchGroupId = -1;\n\t// node / mesh instance\n\t_node = new GraphNode();\n\t_meshInstance = null;\n\t_updateAabbFunc = null;\n\t_inLayers = false;\n\t// animated sprites\n\t_autoPlayClip = null;\n\t_clips = {};\n\t_defaultClip = null;\n\t_currentClip = null;\n\tconstructor(system, entity) {\n\t\tsuper(system, entity);\n\t\tthis._material = system.defaultMaterial;\n\t\tentity.addChild(this._node);\n\t\tthis._updateAabbFunc = this._updateAabb.bind(this);\n\t\tthis._defaultClip = new SpriteAnimationClip(this, {\n\t\t\tname: this.entity.name,\n\t\t\tfps: 0,\n\t\t\tloop: false,\n\t\t\tspriteAsset: null\n\t\t});\n\t\tthis._currentClip = this._defaultClip;\n\t}\n\tset type(value) {\n\t\tif (this._type === value) {\n\t\t\treturn;\n\t\t}\n\t\tthis._type = value;\n\t\tif (this._type === SPRITETYPE_SIMPLE) {\n\t\t\tthis.stop();\n\t\t\tthis._currentClip = this._defaultClip;\n\t\t\tif (this.enabled && this.entity.enabled) {\n\t\t\t\tthis._currentClip.frame = this.frame;\n\t\t\t\tif (this._currentClip.sprite) {\n\t\t\t\t\tthis.addToLayers();\n\t\t\t\t} else {\n\t\t\t\t\tthis.removeFromLayers();\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (this._type === SPRITETYPE_ANIMATED) {\n\t\t\tthis.stop();\n\t\t\tif (this._autoPlayClip) {\n\t\t\t\tthis._tryAutoPlay();\n\t\t\t}\n\t\t\tif (this._currentClip && this._currentClip.isPlaying && this.enabled && this.entity.enabled) {\n\t\t\t\tthis.addToLayers();\n\t\t\t} else {\n\t\t\t\tthis.removeFromLayers();\n\t\t\t}\n\t\t}\n\t}\n\tget type() {\n\t\treturn this._type;\n\t}\n\tset frame(value) {\n\t\tthis._currentClip.frame = value;\n\t}\n\tget frame() {\n\t\treturn this._currentClip.frame;\n\t}\n\tset spriteAsset(value) {\n\t\tthis._defaultClip.spriteAsset = value;\n\t}\n\tget spriteAsset() {\n\t\treturn this._defaultClip._spriteAsset;\n\t}\n\tset sprite(value) {\n\t\tthis._currentClip.sprite = value;\n\t}\n\tget sprite() {\n\t\treturn this._currentClip.sprite;\n\t}\n\t// (private) {Material} material The material used to render a sprite.\n\tset material(value) {\n\t\tthis._material = value;\n\t\tif (this._meshInstance) {\n\t\t\tthis._meshInstance.material = value;\n\t\t}\n\t}\n\tget material() {\n\t\treturn this._material;\n\t}\n\tset color(value) {\n\t\tthis._color.r = value.r;\n\t\tthis._color.g = value.g;\n\t\tthis._color.b = value.b;\n\t\tif (this._meshInstance) {\n\t\t\tthis._colorUniform[0] = this._color.r;\n\t\t\tthis._colorUniform[1] = this._color.g;\n\t\t\tthis._colorUniform[2] = this._color.b;\n\t\t\tthis._meshInstance.setParameter(PARAM_EMISSIVE, this._colorUniform);\n\t\t}\n\t}\n\tget color() {\n\t\treturn this._color;\n\t}\n\tset opacity(value) {\n\t\tthis._color.a = value;\n\t\tif (this._meshInstance) {\n\t\t\tthis._meshInstance.setParameter(PARAM_OPACITY, value);\n\t\t}\n\t}\n\tget opacity() {\n\t\treturn this._color.a;\n\t}\n\tset clips(value) {\n\t\tif (!value) {\n\t\t\tfor (const name in this._clips) {\n\t\t\t\tthis.removeClip(name);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tfor (const name in this._clips) {\n\t\t\tlet found = false;\n\t\t\tfor (const key in value) {\n\t\t\t\tif (value[key].name === name) {\n\t\t\t\t\tfound = true;\n\t\t\t\t\tthis._clips[name].fps = value[key].fps;\n\t\t\t\t\tthis._clips[name].loop = value[key].loop;\n\t\t\t\t\tif (value[key].hasOwnProperty(\"sprite\")) {\n\t\t\t\t\t\tthis._clips[name].sprite = value[key].sprite;\n\t\t\t\t\t} else if (value[key].hasOwnProperty(\"spriteAsset\")) {\n\t\t\t\t\t\tthis._clips[name].spriteAsset = value[key].spriteAsset;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!found) {\n\t\t\t\tthis.removeClip(name);\n\t\t\t}\n\t\t}\n\t\tfor (const key in value) {\n\t\t\tif (this._clips[value[key].name]) continue;\n\t\t\tthis.addClip(value[key]);\n\t\t}\n\t\tif (this._autoPlayClip) {\n\t\t\tthis._tryAutoPlay();\n\t\t}\n\t\tif (!this._currentClip || !this._currentClip.sprite) {\n\t\t\tthis.removeFromLayers();\n\t\t}\n\t}\n\tget clips() {\n\t\treturn this._clips;\n\t}\n\tget currentClip() {\n\t\treturn this._currentClip;\n\t}\n\tset speed(value) {\n\t\tthis._speed = value;\n\t}\n\tget speed() {\n\t\treturn this._speed;\n\t}\n\tset flipX(value) {\n\t\tif (this._flipX === value) return;\n\t\tthis._flipX = value;\n\t\tthis._updateTransform();\n\t}\n\tget flipX() {\n\t\treturn this._flipX;\n\t}\n\tset flipY(value) {\n\t\tif (this._flipY === value) return;\n\t\tthis._flipY = value;\n\t\tthis._updateTransform();\n\t}\n\tget flipY() {\n\t\treturn this._flipY;\n\t}\n\tset width(value) {\n\t\tif (value === this._width) return;\n\t\tthis._width = value;\n\t\tthis._outerScale.x = this._width;\n\t\tif (this.sprite && (this.sprite.renderMode === SPRITE_RENDERMODE_TILED || this.sprite.renderMode === SPRITE_RENDERMODE_SLICED)) {\n\t\t\tthis._updateTransform();\n\t\t}\n\t}\n\tget width() {\n\t\treturn this._width;\n\t}\n\tset height(value) {\n\t\tif (value === this._height) return;\n\t\tthis._height = value;\n\t\tthis._outerScale.y = this.height;\n\t\tif (this.sprite && (this.sprite.renderMode === SPRITE_RENDERMODE_TILED || this.sprite.renderMode === SPRITE_RENDERMODE_SLICED)) {\n\t\t\tthis._updateTransform();\n\t\t}\n\t}\n\tget height() {\n\t\treturn this._height;\n\t}\n\tset batchGroupId(value) {\n\t\tif (this._batchGroupId === value) {\n\t\t\treturn;\n\t\t}\n\t\tconst prev = this._batchGroupId;\n\t\tthis._batchGroupId = value;\n\t\tif (this.entity.enabled && prev >= 0) {\n\t\t\tthis.system.app.batcher?.remove(BatchGroup.SPRITE, prev, this.entity);\n\t\t}\n\t\tif (this.entity.enabled && value >= 0) {\n\t\t\tthis.system.app.batcher?.insert(BatchGroup.SPRITE, value, this.entity);\n\t\t} else {\n\t\t\tif (prev >= 0) {\n\t\t\t\tif (this._currentClip && this._currentClip.sprite && this.enabled && this.entity.enabled) {\n\t\t\t\t\tthis.addToLayers();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tget batchGroupId() {\n\t\treturn this._batchGroupId;\n\t}\n\tset autoPlayClip(value) {\n\t\tthis._autoPlayClip = value instanceof SpriteAnimationClip ? value.name : value;\n\t\tthis._tryAutoPlay();\n\t}\n\tget autoPlayClip() {\n\t\treturn this._autoPlayClip;\n\t}\n\tset drawOrder(value) {\n\t\tthis._drawOrder = value;\n\t\tif (this._meshInstance) {\n\t\t\tthis._meshInstance.drawOrder = value;\n\t\t}\n\t}\n\tget drawOrder() {\n\t\treturn this._drawOrder;\n\t}\n\tset layers(value) {\n\t\tif (this._inLayers) {\n\t\t\tthis.removeFromLayers();\n\t\t}\n\t\tthis._layers = value;\n\t\tif (!this._meshInstance) {\n\t\t\treturn;\n\t\t}\n\t\tif (this.enabled && this.entity.enabled) {\n\t\t\tthis.addToLayers();\n\t\t}\n\t}\n\tget layers() {\n\t\treturn this._layers;\n\t}\n\tget aabb() {\n\t\tif (this._meshInstance) {\n\t\t\treturn this._meshInstance.aabb;\n\t\t}\n\t\treturn null;\n\t}\n\tonEnable() {\n\t\tconst app2 = this.system.app;\n\t\tconst scene = app2.scene;\n\t\tconst layers = scene.layers;\n\t\tthis._evtLayersChanged = scene.on(\"set:layers\", this._onLayersChanged, this);\n\t\tif (layers) {\n\t\t\tthis._evtLayerAdded = layers.on(\"add\", this._onLayerAdded, this);\n\t\t\tthis._evtLayerRemoved = layers.on(\"remove\", this._onLayerRemoved, this);\n\t\t}\n\t\tthis.addToLayers();\n\t\tif (this._autoPlayClip) {\n\t\t\tthis._tryAutoPlay();\n\t\t}\n\t\tif (this._batchGroupId >= 0) {\n\t\t\tapp2.batcher?.insert(BatchGroup.SPRITE, this._batchGroupId, this.entity);\n\t\t}\n\t}\n\tonDisable() {\n\t\tconst app2 = this.system.app;\n\t\tconst scene = app2.scene;\n\t\tconst layers = scene.layers;\n\t\tthis._evtLayersChanged?.off();\n\t\tthis._evtLayersChanged = null;\n\t\tif (layers) {\n\t\t\tthis._evtLayerAdded?.off();\n\t\t\tthis._evtLayerAdded = null;\n\t\t\tthis._evtLayerRemoved?.off();\n\t\t\tthis._evtLayerRemoved = null;\n\t\t}\n\t\tthis.stop();\n\t\tthis.removeFromLayers();\n\t\tif (this._batchGroupId >= 0) {\n\t\t\tapp2.batcher?.remove(BatchGroup.SPRITE, this._batchGroupId, this.entity);\n\t\t}\n\t}\n\tonBeforeRemove() {\n\t\tif (this.enabled && this.entity.enabled) {\n\t\t\tthis.onDisable();\n\t\t}\n\t\tthis._currentClip = null;\n\t\tif (this._defaultClip) {\n\t\t\tthis._defaultClip._destroy();\n\t\t\tthis._defaultClip = null;\n\t\t}\n\t\tfor (const key in this._clips) {\n\t\t\tthis._clips[key]._destroy();\n\t\t}\n\t\tthis._clips = null;\n\t\tthis.removeFromLayers();\n\t\tthis._node?.remove();\n\t\tthis._node = null;\n\t\tif (this._meshInstance) {\n\t\t\tthis._meshInstance.material = null;\n\t\t\tthis._meshInstance.mesh = null;\n\t\t\tthis._meshInstance = null;\n\t\t}\n\t}\n\taddToLayers() {\n\t\tif (this._inLayers) return;\n\t\tif (!this._meshInstance) return;\n\t\tconst meshInstances = [this._meshInstance];\n\t\tfor (let i2 = 0, len = this._layers.length; i2 < len; i2++) {\n\t\t\tconst layer = this.system.app.scene.layers.getLayerById(this._layers[i2]);\n\t\t\tif (layer) {\n\t\t\t\tlayer.addMeshInstances(meshInstances);\n\t\t\t}\n\t\t}\n\t\tthis._inLayers = true;\n\t}\n\tremoveFromLayers() {\n\t\tif (!this._inLayers || !this._meshInstance) return;\n\t\tconst meshInstances = [this._meshInstance];\n\t\tfor (let i2 = 0, len = this._layers.length; i2 < len; i2++) {\n\t\t\tconst layer = this.system.app.scene.layers.getLayerById(this._layers[i2]);\n\t\t\tif (layer) {\n\t\t\t\tlayer.removeMeshInstances(meshInstances);\n\t\t\t}\n\t\t}\n\t\tthis._inLayers = false;\n\t}\n\t// Set the desired mesh on the mesh instance\n\t_showFrame(frame) {\n\t\tif (!this.sprite) return;\n\t\tconst mesh = this.sprite.meshes[frame];\n\t\tif (!mesh) {\n\t\t\tif (this._meshInstance) {\n\t\t\t\tthis._meshInstance.mesh = null;\n\t\t\t\tthis._meshInstance.visible = false;\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tlet material;\n\t\tif (this.sprite.renderMode === SPRITE_RENDERMODE_SLICED) {\n\t\t\tmaterial = this.system.default9SlicedMaterialSlicedMode;\n\t\t} else if (this.sprite.renderMode === SPRITE_RENDERMODE_TILED) {\n\t\t\tmaterial = this.system.default9SlicedMaterialTiledMode;\n\t\t} else {\n\t\t\tmaterial = this.system.defaultMaterial;\n\t\t}\n\t\tif (!this._meshInstance) {\n\t\t\tthis._meshInstance = new MeshInstance(mesh, this._material, this._node);\n\t\t\tthis._meshInstance.castShadow = false;\n\t\t\tthis._meshInstance.receiveShadow = false;\n\t\t\tthis._meshInstance.drawOrder = this._drawOrder;\n\t\t\tthis._colorUniform[0] = this._color.r;\n\t\t\tthis._colorUniform[1] = this._color.g;\n\t\t\tthis._colorUniform[2] = this._color.b;\n\t\t\tthis._meshInstance.setParameter(PARAM_EMISSIVE, this._colorUniform);\n\t\t\tthis._meshInstance.setParameter(PARAM_OPACITY, this._color.a);\n\t\t\tif (this.enabled && this.entity.enabled) {\n\t\t\t\tthis.addToLayers();\n\t\t\t}\n\t\t}\n\t\tif (this._meshInstance.material !== material) {\n\t\t\tthis._meshInstance.material = material;\n\t\t}\n\t\tif (this._meshInstance.mesh !== mesh) {\n\t\t\tthis._meshInstance.mesh = mesh;\n\t\t\tthis._meshInstance.visible = true;\n\t\t\tthis._meshInstance._aabbVer = -1;\n\t\t}\n\t\tif (this.sprite.atlas && this.sprite.atlas.texture) {\n\t\t\tthis._meshInstance.setParameter(PARAM_EMISSIVE_MAP, this.sprite.atlas.texture);\n\t\t\tthis._meshInstance.setParameter(PARAM_OPACITY_MAP, this.sprite.atlas.texture);\n\t\t} else {\n\t\t\tthis._meshInstance.deleteParameter(PARAM_EMISSIVE_MAP);\n\t\t\tthis._meshInstance.deleteParameter(PARAM_OPACITY_MAP);\n\t\t}\n\t\tif (this.sprite.atlas && (this.sprite.renderMode === SPRITE_RENDERMODE_SLICED || this.sprite.renderMode === SPRITE_RENDERMODE_TILED)) {\n\t\t\tthis._meshInstance._updateAabbFunc = this._updateAabbFunc;\n\t\t\tconst frameData = this.sprite.atlas.frames[this.sprite.frameKeys[frame]];\n\t\t\tif (frameData) {\n\t\t\t\tconst borderWidthScale = 2 / frameData.rect.z;\n\t\t\t\tconst borderHeightScale = 2 / frameData.rect.w;\n\t\t\t\tthis._innerOffset.set(\n\t\t\t\t\tframeData.border.x * borderWidthScale,\n\t\t\t\t\tframeData.border.y * borderHeightScale,\n\t\t\t\t\tframeData.border.z * borderWidthScale,\n\t\t\t\t\tframeData.border.w * borderHeightScale\n\t\t\t\t);\n\t\t\t\tconst tex = this.sprite.atlas.texture;\n\t\t\t\tthis._atlasRect.set(\n\t\t\t\t\tframeData.rect.x / tex.width,\n\t\t\t\t\tframeData.rect.y / tex.height,\n\t\t\t\t\tframeData.rect.z / tex.width,\n\t\t\t\t\tframeData.rect.w / tex.height\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tthis._innerOffset.set(0, 0, 0, 0);\n\t\t\t}\n\t\t\tthis._innerOffsetUniform[0] = this._innerOffset.x;\n\t\t\tthis._innerOffsetUniform[1] = this._innerOffset.y;\n\t\t\tthis._innerOffsetUniform[2] = this._innerOffset.z;\n\t\t\tthis._innerOffsetUniform[3] = this._innerOffset.w;\n\t\t\tthis._meshInstance.setParameter(PARAM_INNER_OFFSET, this._innerOffsetUniform);\n\t\t\tthis._atlasRectUniform[0] = this._atlasRect.x;\n\t\t\tthis._atlasRectUniform[1] = this._atlasRect.y;\n\t\t\tthis._atlasRectUniform[2] = this._atlasRect.z;\n\t\t\tthis._atlasRectUniform[3] = this._atlasRect.w;\n\t\t\tthis._meshInstance.setParameter(PARAM_ATLAS_RECT, this._atlasRectUniform);\n\t\t} else {\n\t\t\tthis._meshInstance._updateAabbFunc = null;\n\t\t}\n\t\tthis._updateTransform();\n\t}\n\t_updateTransform() {\n\t\tlet scaleX = this.flipX ? -1 : 1;\n\t\tlet scaleY = this.flipY ? -1 : 1;\n\t\tlet posX = 0;\n\t\tlet posY = 0;\n\t\tif (this.sprite && (this.sprite.renderMode === SPRITE_RENDERMODE_SLICED || this.sprite.renderMode === SPRITE_RENDERMODE_TILED)) {\n\t\t\tlet w = 1;\n\t\t\tlet h2 = 1;\n\t\t\tif (this.sprite.atlas) {\n\t\t\t\tconst frameData = this.sprite.atlas.frames[this.sprite.frameKeys[this.frame]];\n\t\t\t\tif (frameData) {\n\t\t\t\t\tw = frameData.rect.z;\n\t\t\t\t\th2 = frameData.rect.w;\n\t\t\t\t\tposX = (0.5 - frameData.pivot.x) * this._width;\n\t\t\t\t\tposY = (0.5 - frameData.pivot.y) * this._height;\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst scaleMulX = w / this.sprite.pixelsPerUnit;\n\t\t\tconst scaleMulY = h2 / this.sprite.pixelsPerUnit;\n\t\t\tthis._outerScale.set(Math.max(this._width, this._innerOffset.x * scaleMulX), Math.max(this._height, this._innerOffset.y * scaleMulY));\n\t\t\tscaleX *= scaleMulX;\n\t\t\tscaleY *= scaleMulY;\n\t\t\tthis._outerScale.x /= scaleMulX;\n\t\t\tthis._outerScale.y /= scaleMulY;\n\t\t\tscaleX *= math.clamp(this._width / (this._innerOffset.x * scaleMulX), 1e-4, 1);\n\t\t\tscaleY *= math.clamp(this._height / (this._innerOffset.y * scaleMulY), 1e-4, 1);\n\t\t\tif (this._meshInstance) {\n\t\t\t\tthis._outerScaleUniform[0] = this._outerScale.x;\n\t\t\t\tthis._outerScaleUniform[1] = this._outerScale.y;\n\t\t\t\tthis._meshInstance.setParameter(PARAM_OUTER_SCALE, this._outerScaleUniform);\n\t\t\t}\n\t\t}\n\t\tthis._node.setLocalScale(scaleX, scaleY, 1);\n\t\tthis._node.setLocalPosition(posX, posY, 0);\n\t}\n\t// updates AABB while 9-slicing\n\t_updateAabb(aabb3) {\n\t\taabb3.center.set(0, 0, 0);\n\t\taabb3.halfExtents.set(this._outerScale.x * 0.5, this._outerScale.y * 0.5, 1e-3);\n\t\taabb3.setFromTransformedAabb(aabb3, this._node.getWorldTransform());\n\t\treturn aabb3;\n\t}\n\t_tryAutoPlay() {\n\t\tif (!this._autoPlayClip) return;\n\t\tif (this.type !== SPRITETYPE_ANIMATED) return;\n\t\tconst clip = this._clips[this._autoPlayClip];\n\t\tif (clip && !clip.isPlaying && (!this._currentClip || !this._currentClip.isPlaying)) {\n\t\t\tif (this.enabled && this.entity.enabled) {\n\t\t\t\tthis.play(clip.name);\n\t\t\t}\n\t\t}\n\t}\n\t_onLayersChanged(oldComp, newComp) {\n\t\tthis._evtLayerAdded?.off();\n\t\tthis._evtLayerAdded = newComp.on(\"add\", this._onLayerAdded, this);\n\t\tthis._evtLayerRemoved?.off();\n\t\tthis._evtLayerRemoved = newComp.on(\"remove\", this._onLayerRemoved, this);\n\t\tif (this.enabled && this.entity.enabled) {\n\t\t\tthis.addToLayers();\n\t\t}\n\t}\n\t_onLayerAdded(layer) {\n\t\tconst index = this.layers.indexOf(layer.id);\n\t\tif (index < 0) return;\n\t\tif (this._inLayers && this.enabled && this.entity.enabled && this._meshInstance) {\n\t\t\tlayer.addMeshInstances([this._meshInstance]);\n\t\t}\n\t}\n\t_onLayerRemoved(layer) {\n\t\tif (!this._meshInstance) return;\n\t\tconst index = this.layers.indexOf(layer.id);\n\t\tif (index < 0) return;\n\t\tlayer.removeMeshInstances([this._meshInstance]);\n\t}\n\taddClip(data2) {\n\t\tconst clip = new SpriteAnimationClip(this, {\n\t\t\tname: data2.name,\n\t\t\tfps: data2.fps,\n\t\t\tloop: data2.loop,\n\t\t\tspriteAsset: data2.spriteAsset\n\t\t});\n\t\tthis._clips[data2.name] = clip;\n\t\tif (clip.name && clip.name === this._autoPlayClip) {\n\t\t\tthis._tryAutoPlay();\n\t\t}\n\t\treturn clip;\n\t}\n\tremoveClip(name) {\n\t\tdelete this._clips[name];\n\t}\n\tclip(name) {\n\t\treturn this._clips[name];\n\t}\n\tplay(name) {\n\t\tconst clip = this._clips[name];\n\t\tconst current = this._currentClip;\n\t\tif (current && current !== clip) {\n\t\t\tcurrent._playing = false;\n\t\t}\n\t\tthis._currentClip = clip;\n\t\tif (this._currentClip) {\n\t\t\tthis._currentClip = clip;\n\t\t\tthis._currentClip.play();\n\t\t} else {\n\t\t}\n\t\treturn clip;\n\t}\n\tpause() {\n\t\tif (this._currentClip === this._defaultClip) return;\n\t\tif (this._currentClip.isPlaying) {\n\t\t\tthis._currentClip.pause();\n\t\t}\n\t}\n\tresume() {\n\t\tif (this._currentClip === this._defaultClip) return;\n\t\tif (this._currentClip.isPaused) {\n\t\t\tthis._currentClip.resume();\n\t\t}\n\t}\n\tstop() {\n\t\tif (this._currentClip === this._defaultClip) return;\n\t\tthis._currentClip.stop();\n\t}\n};\n\nvar SpriteComponentSystem = class extends ComponentSystem {\n\tconstructor(app2) {\n\t\tsuper(app2);\n\t\tthis.id = \"sprite\";\n\t\tthis.ComponentType = SpriteComponent;\n\t\tthis._defaultTexture = null;\n\t\tthis._defaultMaterial = null;\n\t\tthis._default9SlicedMaterialSlicedMode = null;\n\t\tthis._default9SlicedMaterialTiledMode = null;\n\t\tthis.app.systems.on(\"update\", this.onUpdate, this);\n\t\tthis.on(\"beforeremove\", this.onBeforeRemove, this);\n\t}\n\tset defaultMaterial(material) {\n\t\tthis._defaultMaterial = material;\n\t}\n\tget defaultMaterial() {\n\t\tif (!this._defaultMaterial) {\n\t\t\tconst texture = new Texture(this.app.graphicsDevice, {\n\t\t\t\twidth: 1,\n\t\t\t\theight: 1,\n\t\t\t\tformat: PIXELFORMAT_SRGBA8,\n\t\t\t\tname: \"sprite\"\n\t\t\t});\n\t\t\tconst pixels = new Uint8Array(texture.lock());\n\t\t\tpixels[0] = pixels[1] = pixels[2] = pixels[3] = 255;\n\t\t\ttexture.unlock();\n\t\t\tconst material = new StandardMaterial();\n\t\t\tmaterial.diffuse.set(0, 0, 0);\n\t\t\tmaterial.emissive.set(1, 1, 1);\n\t\t\tmaterial.emissiveMap = texture;\n\t\t\tmaterial.opacityMap = texture;\n\t\t\tmaterial.opacityMapChannel = \"a\";\n\t\t\tmaterial.useLighting = false;\n\t\t\tmaterial.useTonemap = false;\n\t\t\tmaterial.useFog = false;\n\t\t\tmaterial.useSkybox = false;\n\t\t\tmaterial.blendType = BLEND_PREMULTIPLIED;\n\t\t\tmaterial.depthWrite = false;\n\t\t\tmaterial.pixelSnap = false;\n\t\t\tmaterial.cull = CULLFACE_NONE;\n\t\t\tmaterial.update();\n\t\t\tthis._defaultTexture = texture;\n\t\t\tthis._defaultMaterial = material;\n\t\t}\n\t\treturn this._defaultMaterial;\n\t}\n\tset default9SlicedMaterialSlicedMode(material) {\n\t\tthis._default9SlicedMaterialSlicedMode = material;\n\t}\n\tget default9SlicedMaterialSlicedMode() {\n\t\tif (!this._default9SlicedMaterialSlicedMode) {\n\t\t\tconst material = this.defaultMaterial.clone();\n\t\t\tmaterial.nineSlicedMode = SPRITE_RENDERMODE_SLICED;\n\t\t\tmaterial.update();\n\t\t\tthis._default9SlicedMaterialSlicedMode = material;\n\t\t}\n\t\treturn this._default9SlicedMaterialSlicedMode;\n\t}\n\tset default9SlicedMaterialTiledMode(material) {\n\t\tthis._default9SlicedMaterialTiledMode = material;\n\t}\n\tget default9SlicedMaterialTiledMode() {\n\t\tif (!this._default9SlicedMaterialTiledMode) {\n\t\t\tconst material = this.defaultMaterial.clone();\n\t\t\tmaterial.nineSlicedMode = SPRITE_RENDERMODE_TILED;\n\t\t\tmaterial.update();\n\t\t\tthis._default9SlicedMaterialTiledMode = material;\n\t\t}\n\t\treturn this._default9SlicedMaterialTiledMode;\n\t}\n\tdestroy() {\n\t\tsuper.destroy();\n\t\tthis.app.systems.off(\"update\", this.onUpdate, this);\n\t\tif (this._defaultTexture) {\n\t\t\tthis._defaultTexture.destroy();\n\t\t\tthis._defaultTexture = null;\n\t\t}\n\t}\n\tinitializeComponentData(component, data2, properties) {\n\t\tif (data2.enabled !== void 0) {\n\t\t\tcomponent.enabled = data2.enabled;\n\t\t}\n\t\tcomponent.type = data2.type;\n\t\tif (data2.layers && Array.isArray(data2.layers)) {\n\t\t\tcomponent.layers = data2.layers.slice(0);\n\t\t}\n\t\tif (data2.drawOrder !== void 0) {\n\t\t\tcomponent.drawOrder = data2.drawOrder;\n\t\t}\n\t\tif (data2.color !== void 0) {\n\t\t\tif (data2.color instanceof Color) {\n\t\t\t\tcomponent.color.set(data2.color.r, data2.color.g, data2.color.b, data2.opacity ?? 1);\n\t\t\t} else {\n\t\t\t\tcomponent.color.set(data2.color[0], data2.color[1], data2.color[2], data2.opacity ?? 1);\n\t\t\t}\n\t\t\tcomponent.color = component.color;\n\t\t}\n\t\tif (data2.opacity !== void 0) {\n\t\t\tcomponent.opacity = data2.opacity;\n\t\t}\n\t\tif (data2.flipX !== void 0) {\n\t\t\tcomponent.flipX = data2.flipX;\n\t\t}\n\t\tif (data2.flipY !== void 0) {\n\t\t\tcomponent.flipY = data2.flipY;\n\t\t}\n\t\tif (data2.width !== void 0) {\n\t\t\tcomponent.width = data2.width;\n\t\t}\n\t\tif (data2.height !== void 0) {\n\t\t\tcomponent.height = data2.height;\n\t\t}\n\t\tif (data2.spriteAsset !== void 0) {\n\t\t\tcomponent.spriteAsset = data2.spriteAsset;\n\t\t}\n\t\tif (data2.sprite) {\n\t\t\tcomponent.sprite = data2.sprite;\n\t\t}\n\t\tif (data2.frame !== void 0) {\n\t\t\tcomponent.frame = data2.frame;\n\t\t}\n\t\tif (data2.clips) {\n\t\t\tfor (const name in data2.clips) {\n\t\t\t\tcomponent.addClip(data2.clips[name]);\n\t\t\t}\n\t\t}\n\t\tif (data2.speed !== void 0) {\n\t\t\tcomponent.speed = data2.speed;\n\t\t}\n\t\tif (data2.autoPlayClip) {\n\t\t\tcomponent.autoPlayClip = data2.autoPlayClip;\n\t\t}\n\t\tcomponent.batchGroupId = data2.batchGroupId === void 0 || data2.batchGroupId === null ? -1 : data2.batchGroupId;\n\t\tsuper.initializeComponentData(component, data2, []);\n\t}\n\tcloneComponent(entity, clone) {\n\t\tconst source = entity.sprite;\n\t\treturn this.addComponent(clone, {\n\t\t\tenabled: source.enabled,\n\t\t\ttype: source.type,\n\t\t\tspriteAsset: source.spriteAsset,\n\t\t\tsprite: source.sprite,\n\t\t\twidth: source.width,\n\t\t\theight: source.height,\n\t\t\tframe: source.frame,\n\t\t\tcolor: source.color.clone(),\n\t\t\topacity: source.opacity,\n\t\t\tflipX: source.flipX,\n\t\t\tflipY: source.flipY,\n\t\t\tspeed: source.speed,\n\t\t\tclips: source.clips,\n\t\t\tautoPlayClip: source.autoPlayClip,\n\t\t\tbatchGroupId: source.batchGroupId,\n\t\t\tdrawOrder: source.drawOrder,\n\t\t\tlayers: source.layers.slice(0)\n\t\t});\n\t}\n\tonUpdate(dt) {\n\t\tconst components2 = this.store;\n\t\tfor (const id14 in components2) {\n\t\t\tif (components2.hasOwnProperty(id14)) {\n\t\t\t\tconst { entity } = components2[id14];\n\t\t\t\tif (entity.sprite.enabled && entity.enabled) {\n\t\t\t\t\tconst sprite = entity.sprite;\n\t\t\t\t\tif (sprite._currentClip) {\n\t\t\t\t\t\tsprite._currentClip._update(dt);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tonBeforeRemove(entity, component) {\n\t\tcomponent.onBeforeRemove();\n\t}\n};\n\nvar ZoneComponent = class extends Component {\n\tstatic EVENT_ENABLE = \"enable\";\n\tstatic EVENT_DISABLE = \"disable\";\n\tstatic EVENT_STATE = \"state\";\n\tstatic EVENT_REMOVE = \"remove\";\n\t_oldState = true;\n\t_size = new Vec3();\n\tconstructor(system, entity) {\n\t\tsuper(system, entity);\n\t\tthis.on(\"set_enabled\", this._onSetEnabled, this);\n\t}\n\tset size(data2) {\n\t\tif (data2 instanceof Vec3) {\n\t\t\tthis._size.copy(data2);\n\t\t} else if (data2 instanceof Array && data2.length >= 3) {\n\t\t\tthis.size.set(data2[0], data2[1], data2[2]);\n\t\t}\n\t}\n\tget size() {\n\t\treturn this._size;\n\t}\n\tonEnable() {\n\t\tthis._checkState();\n\t}\n\tonDisable() {\n\t\tthis._checkState();\n\t}\n\t_onSetEnabled(prop, old, value) {\n\t\tthis._checkState();\n\t}\n\t_checkState() {\n\t\tconst state = this.enabled && this.entity.enabled;\n\t\tif (state === this._oldState) {\n\t\t\treturn;\n\t\t}\n\t\tthis._oldState = state;\n\t\tthis.fire(\"enable\");\n\t\tthis.fire(\"state\", this.enabled);\n\t}\n\tonBeforeRemove() {\n\t\tthis.fire(\"remove\");\n\t}\n};\n\nvar ZoneComponentSystem = class extends ComponentSystem {\n\tconstructor(app2) {\n\t\tsuper(app2);\n\t\tthis.id = \"zone\";\n\t\tthis.ComponentType = ZoneComponent;\n\t\tthis.on(\"beforeremove\", this.onBeforeRemove, this);\n\t}\n\tinitializeComponentData(component, data2, properties) {\n\t\tcomponent.enabled = data2.hasOwnProperty(\"enabled\") ? !!data2.enabled : true;\n\t\tif (data2.size) {\n\t\t\tif (data2.size instanceof Vec3) {\n\t\t\t\tcomponent.size.copy(data2.size);\n\t\t\t} else if (data2.size instanceof Array && data2.size.length >= 3) {\n\t\t\t\tcomponent.size.set(data2.size[0], data2.size[1], data2.size[2]);\n\t\t\t}\n\t\t}\n\t}\n\tcloneComponent(entity, clone) {\n\t\tconst data2 = {\n\t\t\tenabled: entity.zone.enabled,\n\t\t\tsize: entity.zone.size\n\t\t};\n\t\treturn this.addComponent(clone, data2);\n\t}\n\tonBeforeRemove(entity, component) {\n\t\tcomponent.onBeforeRemove();\n\t}\n};\n\nvar PostEffectEntry = class {\n\tconstructor(effect, inputTarget) {\n\t\tthis.effect = effect;\n\t\tthis.inputTarget = inputTarget;\n\t\tthis.outputTarget = null;\n\t\tthis.name = effect.constructor.name;\n\t}\n};\nvar PostEffectQueue = class {\n\tconstructor(app2, camera) {\n\t\tthis.app = app2;\n\t\tthis.camera = camera;\n\t\tthis.destinationRenderTarget = null;\n\t\tthis.effects = [];\n\t\tthis.enabled = false;\n\t\tthis.depthTarget = null;\n\t\tcamera.on(\"set:rect\", this.onCameraRectChanged, this);\n\t}\n\t_allocateColorBuffer(format, name) {\n\t\tconst rect = this.camera.rect;\n\t\tconst renderTarget = this.destinationRenderTarget;\n\t\tconst device = this.app.graphicsDevice;\n\t\tconst width = Math.floor(rect.z * (renderTarget?.width ?? device.width));\n\t\tconst height = Math.floor(rect.w * (renderTarget?.height ?? device.height));\n\t\tconst colorBuffer = Texture.createDataTexture2D(device, name, width, height, format);\n\t\treturn colorBuffer;\n\t}\n\t_createOffscreenTarget(useDepth, hdr) {\n\t\tconst device = this.app.graphicsDevice;\n\t\tconst outputRt = this.destinationRenderTarget ?? device.backBuffer;\n\t\tconst srgb = outputRt.isColorBufferSrgb(0);\n\t\tconst format = (hdr && device.getRenderableHdrFormat([PIXELFORMAT_RGBA16F, PIXELFORMAT_RGBA32F], true)) ?? (srgb ? PIXELFORMAT_SRGBA8 : PIXELFORMAT_RGBA8);\n\t\tconst name = `${this.camera.entity.name}-posteffect-${this.effects.length}`;\n\t\tconst colorBuffer = this._allocateColorBuffer(format, name);\n\t\treturn new RenderTarget({\n\t\t\tcolorBuffer,\n\t\t\tdepth: useDepth,\n\t\t\tstencil: useDepth && this.app.graphicsDevice.supportsStencil,\n\t\t\tsamples: useDepth ? device.samples : 1\n\t\t});\n\t}\n\t_resizeOffscreenTarget(rt) {\n\t\tconst format = rt.colorBuffer.format;\n\t\tconst name = rt.colorBuffer.name;\n\t\trt.destroyFrameBuffers();\n\t\trt.destroyTextureBuffers();\n\t\trt._colorBuffer = this._allocateColorBuffer(format, name);\n\t\trt._colorBuffers = [rt._colorBuffer];\n\t\trt.evaluateDimensions();\n\t}\n\t_destroyOffscreenTarget(rt) {\n\t\trt.destroyTextureBuffers();\n\t\trt.destroy();\n\t}\n\taddEffect(effect) {\n\t\tconst effects = this.effects;\n\t\tconst isFirstEffect = effects.length === 0;\n\t\tconst inputTarget = this._createOffscreenTarget(isFirstEffect, effect.hdr);\n\t\tconst newEntry = new PostEffectEntry(effect, inputTarget);\n\t\teffects.push(newEntry);\n\t\tthis._sourceTarget = newEntry.inputTarget;\n\t\tif (effects.length > 1) {\n\t\t\teffects[effects.length - 2].outputTarget = newEntry.inputTarget;\n\t\t}\n\t\tthis._newPostEffect = effect;\n\t\tif (effect.needsDepthBuffer) {\n\t\t\tthis._requestDepthMap();\n\t\t}\n\t\tthis.enable();\n\t\tthis._newPostEffect = void 0;\n\t}\n\tremoveEffect(effect) {\n\t\tlet index = -1;\n\t\tfor (let i2 = 0, len = this.effects.length; i2 < len; i2++) {\n\t\t\tif (this.effects[i2].effect === effect) {\n\t\t\t\tindex = i2;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (index >= 0) {\n\t\t\tif (index > 0) {\n\t\t\t\tthis.effects[index - 1].outputTarget = index + 1 < this.effects.length ? this.effects[index + 1].inputTarget : null;\n\t\t\t} else {\n\t\t\t\tif (this.effects.length > 1) {\n\t\t\t\t\tif (!this.effects[1].inputTarget._depth) {\n\t\t\t\t\t\tthis._destroyOffscreenTarget(this.effects[1].inputTarget);\n\t\t\t\t\t\tthis.effects[1].inputTarget = this._createOffscreenTarget(true, this.effects[1].hdr);\n\t\t\t\t\t\tthis._sourceTarget = this.effects[1].inputTarget;\n\t\t\t\t\t}\n\t\t\t\t\tthis.camera.renderTarget = this.effects[1].inputTarget;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._destroyOffscreenTarget(this.effects[index].inputTarget);\n\t\t\tthis.effects.splice(index, 1);\n\t\t}\n\t\tif (this.enabled) {\n\t\t\tif (effect.needsDepthBuffer) {\n\t\t\t\tthis._releaseDepthMap();\n\t\t\t}\n\t\t}\n\t\tif (this.effects.length === 0) {\n\t\t\tthis.disable();\n\t\t}\n\t}\n\t_requestDepthMaps() {\n\t\tfor (let i2 = 0, len = this.effects.length; i2 < len; i2++) {\n\t\t\tconst effect = this.effects[i2].effect;\n\t\t\tif (this._newPostEffect === effect) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (effect.needsDepthBuffer) {\n\t\t\t\tthis._requestDepthMap();\n\t\t\t}\n\t\t}\n\t}\n\t_releaseDepthMaps() {\n\t\tfor (let i2 = 0, len = this.effects.length; i2 < len; i2++) {\n\t\t\tconst effect = this.effects[i2].effect;\n\t\t\tif (effect.needsDepthBuffer) {\n\t\t\t\tthis._releaseDepthMap();\n\t\t\t}\n\t\t}\n\t}\n\t_requestDepthMap() {\n\t\tconst depthLayer2 = this.app.scene.layers.getLayerById(LAYERID_DEPTH);\n\t\tif (depthLayer2) {\n\t\t\tdepthLayer2.incrementCounter();\n\t\t\tthis.camera.requestSceneDepthMap(true);\n\t\t}\n\t}\n\t_releaseDepthMap() {\n\t\tconst depthLayer2 = this.app.scene.layers.getLayerById(LAYERID_DEPTH);\n\t\tif (depthLayer2) {\n\t\t\tdepthLayer2.decrementCounter();\n\t\t\tthis.camera.requestSceneDepthMap(false);\n\t\t}\n\t}\n\tdestroy() {\n\t\tfor (let i2 = 0, len = this.effects.length; i2 < len; i2++) {\n\t\t\tthis.effects[i2].inputTarget.destroy();\n\t\t}\n\t\tthis.effects.length = 0;\n\t\tthis.disable();\n\t}\n\tenable() {\n\t\tif (!this.enabled && this.effects.length) {\n\t\t\tthis.enabled = true;\n\t\t\tthis._requestDepthMaps();\n\t\t\tthis.app.graphicsDevice.on(\"resizecanvas\", this._onCanvasResized, this);\n\t\t\tthis.destinationRenderTarget = this.camera.renderTarget;\n\t\t\tthis.camera.renderTarget = this.effects[0].inputTarget;\n\t\t\tthis.camera.onPostprocessing = () => {\n\t\t\t\tif (this.enabled) {\n\t\t\t\t\tlet rect = null;\n\t\t\t\t\tconst len = this.effects.length;\n\t\t\t\t\tif (len) {\n\t\t\t\t\t\tfor (let i2 = 0; i2 < len; i2++) {\n\t\t\t\t\t\t\tconst fx = this.effects[i2];\n\t\t\t\t\t\t\tlet destTarget = fx.outputTarget;\n\t\t\t\t\t\t\tif (i2 === len - 1) {\n\t\t\t\t\t\t\t\trect = this.camera.rect;\n\t\t\t\t\t\t\t\tif (this.destinationRenderTarget) {\n\t\t\t\t\t\t\t\t\tdestTarget = this.destinationRenderTarget;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tfx.effect.render(fx.inputTarget, destTarget, rect);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t}\n\tdisable() {\n\t\tif (this.enabled) {\n\t\t\tthis.enabled = false;\n\t\t\tthis.app.graphicsDevice.off(\"resizecanvas\", this._onCanvasResized, this);\n\t\t\tthis._releaseDepthMaps();\n\t\t\tthis._destroyOffscreenTarget(this._sourceTarget);\n\t\t\tthis.camera.renderTarget = this.destinationRenderTarget;\n\t\t\tthis.camera.onPostprocessing = null;\n\t\t}\n\t}\n\t_onCanvasResized(width, height) {\n\t\tconst rect = this.camera.rect;\n\t\tconst renderTarget = this.destinationRenderTarget;\n\t\twidth = renderTarget?.width ?? width;\n\t\theight = renderTarget?.height ?? height;\n\t\tthis.camera.camera.aspectRatio = width * rect.z / (height * rect.w);\n\t\tthis.resizeRenderTargets();\n\t}\n\tresizeRenderTargets() {\n\t\tconst device = this.app.graphicsDevice;\n\t\tconst renderTarget = this.destinationRenderTarget;\n\t\tconst width = renderTarget?.width ?? device.width;\n\t\tconst height = renderTarget?.height ?? device.height;\n\t\tconst rect = this.camera.rect;\n\t\tconst desiredWidth = Math.floor(rect.z * width);\n\t\tconst desiredHeight = Math.floor(rect.w * height);\n\t\tconst effects = this.effects;\n\t\tfor (let i2 = 0, len = effects.length; i2 < len; i2++) {\n\t\t\tconst fx = effects[i2];\n\t\t\tif (fx.inputTarget.width !== desiredWidth || fx.inputTarget.height !== desiredHeight) {\n\t\t\t\tthis._resizeOffscreenTarget(fx.inputTarget);\n\t\t\t}\n\t\t}\n\t}\n\tonCameraRectChanged(name, oldValue, newValue) {\n\t\tif (this.enabled) {\n\t\t\tthis.resizeRenderTargets();\n\t\t}\n\t}\n};\n\nvar CameraComponent = class extends Component {\n\tonPostprocessing = null;\n\t_renderSceneDepthMap = 0;\n\t_renderSceneColorMap = 0;\n\t_sceneDepthMapRequested = false;\n\t_sceneColorMapRequested = false;\n\t_priority = 0;\n\t_disablePostEffectsLayer = LAYERID_UI;\n\t_camera;\n\t_evtLayersChanged = null;\n\t_evtLayerAdded = null;\n\t_evtLayerRemoved = null;\n\tconstructor(system, entity) {\n\t\tsuper(system, entity);\n\t\tthis._camera = new Camera(system.app.graphicsDevice);\n\t\tthis._camera.node = entity;\n\t\tthis._postEffects = new PostEffectQueue(system.app, this);\n\t}\n\tsetShaderPass(name) {\n\t\tconst shaderPass = ShaderPass.get(this.system.app.graphicsDevice);\n\t\tconst shaderPassInfo = name ? shaderPass.allocate(name, {\n\t\t\tisForward: true\n\t\t}) : null;\n\t\tthis._camera.shaderPassInfo = shaderPassInfo;\n\t\treturn shaderPassInfo.index;\n\t}\n\tgetShaderPass() {\n\t\treturn this._camera.shaderPassInfo?.name;\n\t}\n\tset framePasses(passes) {\n\t\tthis._camera.framePasses = passes || [];\n\t\tthis.dirtyLayerCompositionCameras();\n\t\tthis.system.app.scene.updateShaders = true;\n\t}\n\tget framePasses() {\n\t\treturn this._camera.framePasses;\n\t}\n\tset renderPasses(passes) {\n\t\tthis.framePasses = passes;\n\t}\n\tget renderPasses() {\n\t\treturn this.framePasses;\n\t}\n\tget shaderParams() {\n\t\treturn this._camera.shaderParams;\n\t}\n\tset gammaCorrection(value) {\n\t\tthis.camera.shaderParams.gammaCorrection = value;\n\t}\n\tget gammaCorrection() {\n\t\treturn this.camera.shaderParams.gammaCorrection;\n\t}\n\tset toneMapping(value) {\n\t\tthis.camera.shaderParams.toneMapping = value;\n\t}\n\tget toneMapping() {\n\t\treturn this.camera.shaderParams.toneMapping;\n\t}\n\tset fog(value) {\n\t\tthis._camera.fogParams = value;\n\t}\n\tget fog() {\n\t\treturn this._camera.fogParams;\n\t}\n\tset aperture(value) {\n\t\tthis._camera.aperture = value;\n\t}\n\tget aperture() {\n\t\treturn this._camera.aperture;\n\t}\n\tset aspectRatio(value) {\n\t\tthis._camera.aspectRatio = value;\n\t}\n\tget aspectRatio() {\n\t\treturn this._camera.aspectRatio;\n\t}\n\tset aspectRatioMode(value) {\n\t\tthis._camera.aspectRatioMode = value;\n\t}\n\tget aspectRatioMode() {\n\t\treturn this._camera.aspectRatioMode;\n\t}\n\tset calculateProjection(value) {\n\t\tthis._camera.calculateProjection = value;\n\t}\n\tget calculateProjection() {\n\t\treturn this._camera.calculateProjection;\n\t}\n\tset calculateTransform(value) {\n\t\tthis._camera.calculateTransform = value;\n\t}\n\tget calculateTransform() {\n\t\treturn this._camera.calculateTransform;\n\t}\n\tget camera() {\n\t\treturn this._camera;\n\t}\n\tset clearColor(value) {\n\t\tthis._camera.clearColor = value;\n\t}\n\tget clearColor() {\n\t\treturn this._camera.clearColor;\n\t}\n\tset clearColorBuffer(value) {\n\t\tthis._camera.clearColorBuffer = value;\n\t\tthis.dirtyLayerCompositionCameras();\n\t}\n\tget clearColorBuffer() {\n\t\treturn this._camera.clearColorBuffer;\n\t}\n\tset clearDepth(value) {\n\t\tthis._camera.clearDepth = value;\n\t}\n\tget clearDepth() {\n\t\treturn this._camera.clearDepth;\n\t}\n\tset clearDepthBuffer(value) {\n\t\tthis._camera.clearDepthBuffer = value;\n\t\tthis.dirtyLayerCompositionCameras();\n\t}\n\tget clearDepthBuffer() {\n\t\treturn this._camera.clearDepthBuffer;\n\t}\n\tset clearStencilBuffer(value) {\n\t\tthis._camera.clearStencilBuffer = value;\n\t\tthis.dirtyLayerCompositionCameras();\n\t}\n\tget clearStencilBuffer() {\n\t\treturn this._camera.clearStencilBuffer;\n\t}\n\tset cullFaces(value) {\n\t\tthis._camera.cullFaces = value;\n\t}\n\tget cullFaces() {\n\t\treturn this._camera.cullFaces;\n\t}\n\tset disablePostEffectsLayer(layer) {\n\t\tthis._disablePostEffectsLayer = layer;\n\t\tthis.dirtyLayerCompositionCameras();\n\t}\n\tget disablePostEffectsLayer() {\n\t\treturn this._disablePostEffectsLayer;\n\t}\n\tset farClip(value) {\n\t\tthis._camera.farClip = value;\n\t}\n\tget farClip() {\n\t\treturn this._camera.farClip;\n\t}\n\tset flipFaces(value) {\n\t\tthis._camera.flipFaces = value;\n\t}\n\tget flipFaces() {\n\t\treturn this._camera.flipFaces;\n\t}\n\tset fov(value) {\n\t\tthis._camera.fov = value;\n\t}\n\tget fov() {\n\t\treturn this._camera.fov;\n\t}\n\tget frustum() {\n\t\treturn this._camera.frustum;\n\t}\n\tset frustumCulling(value) {\n\t\tthis._camera.frustumCulling = value;\n\t}\n\tget frustumCulling() {\n\t\treturn this._camera.frustumCulling;\n\t}\n\tset horizontalFov(value) {\n\t\tthis._camera.horizontalFov = value;\n\t}\n\tget horizontalFov() {\n\t\treturn this._camera.horizontalFov;\n\t}\n\tset layers(newValue) {\n\t\tconst oldLayers = this._camera.layers;\n\t\tconst scene = this.system.app.scene;\n\t\toldLayers.forEach((layerId) => {\n\t\t\tconst layer = scene.layers.getLayerById(layerId);\n\t\t\tlayer?.removeCamera(this);\n\t\t});\n\t\tthis._camera.layers = newValue;\n\t\tif (this.enabled && this.entity.enabled) {\n\t\t\tnewValue.forEach((layerId) => {\n\t\t\t\tconst layer = scene.layers.getLayerById(layerId);\n\t\t\t\tlayer?.addCamera(this);\n\t\t\t});\n\t\t}\n\t\tthis.fire(\"set:layers\");\n\t}\n\tget layers() {\n\t\treturn this._camera.layers;\n\t}\n\tget layersSet() {\n\t\treturn this._camera.layersSet;\n\t}\n\tset jitter(value) {\n\t\tthis._camera.jitter = value;\n\t}\n\tget jitter() {\n\t\treturn this._camera.jitter;\n\t}\n\tset nearClip(value) {\n\t\tthis._camera.nearClip = value;\n\t}\n\tget nearClip() {\n\t\treturn this._camera.nearClip;\n\t}\n\tset orthoHeight(value) {\n\t\tthis._camera.orthoHeight = value;\n\t}\n\tget orthoHeight() {\n\t\treturn this._camera.orthoHeight;\n\t}\n\tget postEffects() {\n\t\treturn this._postEffects;\n\t}\n\tget postEffectsEnabled() {\n\t\treturn this._postEffects.enabled;\n\t}\n\tset priority(newValue) {\n\t\tthis._priority = newValue;\n\t\tthis.dirtyLayerCompositionCameras();\n\t}\n\tget priority() {\n\t\treturn this._priority;\n\t}\n\tset projection(value) {\n\t\tthis._camera.projection = value;\n\t}\n\tget projection() {\n\t\treturn this._camera.projection;\n\t}\n\tget projectionMatrix() {\n\t\treturn this._camera.projectionMatrix;\n\t}\n\tset projectionOffset(value) {\n\t\tthis._camera.projectionOffset = value;\n\t}\n\tget projectionOffset() {\n\t\treturn this._camera.projectionOffset;\n\t}\n\tset rect(value) {\n\t\tthis._camera.rect = value;\n\t\tthis.fire(\"set:rect\", this._camera.rect);\n\t}\n\tget rect() {\n\t\treturn this._camera.rect;\n\t}\n\tset renderSceneColorMap(value) {\n\t\tif (value && !this._sceneColorMapRequested) {\n\t\t\tthis.requestSceneColorMap(true);\n\t\t\tthis._sceneColorMapRequested = true;\n\t\t} else if (!value && this._sceneColorMapRequested) {\n\t\t\tthis.requestSceneColorMap(false);\n\t\t\tthis._sceneColorMapRequested = false;\n\t\t}\n\t}\n\tget renderSceneColorMap() {\n\t\treturn this._renderSceneColorMap > 0;\n\t}\n\tset renderSceneDepthMap(value) {\n\t\tif (value && !this._sceneDepthMapRequested) {\n\t\t\tthis.requestSceneDepthMap(true);\n\t\t\tthis._sceneDepthMapRequested = true;\n\t\t} else if (!value && this._sceneDepthMapRequested) {\n\t\t\tthis.requestSceneDepthMap(false);\n\t\t\tthis._sceneDepthMapRequested = false;\n\t\t}\n\t}\n\tget renderSceneDepthMap() {\n\t\treturn this._renderSceneDepthMap > 0;\n\t}\n\tset renderTarget(value) {\n\t\tthis._camera.renderTarget = value;\n\t\tthis.dirtyLayerCompositionCameras();\n\t}\n\tget renderTarget() {\n\t\treturn this._camera.renderTarget;\n\t}\n\tset scissorRect(value) {\n\t\tthis._camera.scissorRect = value;\n\t}\n\tget scissorRect() {\n\t\treturn this._camera.scissorRect;\n\t}\n\tset sensitivity(value) {\n\t\tthis._camera.sensitivity = value;\n\t}\n\tget sensitivity() {\n\t\treturn this._camera.sensitivity;\n\t}\n\tset shutter(value) {\n\t\tthis._camera.shutter = value;\n\t}\n\tget shutter() {\n\t\treturn this._camera.shutter;\n\t}\n\tget viewMatrix() {\n\t\treturn this._camera.viewMatrix;\n\t}\n\t_enableDepthLayer(value) {\n\t\tconst hasDepthLayer = this.layers.find((layerId) => layerId === LAYERID_DEPTH);\n\t\tif (hasDepthLayer) {\n\t\t\tconst depthLayer2 = this.system.app.scene.layers.getLayerById(LAYERID_DEPTH);\n\t\t\tif (value) {\n\t\t\t\tdepthLayer2?.incrementCounter();\n\t\t\t} else {\n\t\t\t\tdepthLayer2?.decrementCounter();\n\t\t\t}\n\t\t} else if (value) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t}\n\trequestSceneColorMap(enabled) {\n\t\tthis._renderSceneColorMap += enabled ? 1 : -1;\n\t\tconst ok = this._enableDepthLayer(enabled);\n\t\tif (!ok) {\n\t\t}\n\t\tthis.camera._enableRenderPassColorGrab(this.system.app.graphicsDevice, this.renderSceneColorMap);\n\t\tthis.system.app.scene.layers.markDirty();\n\t}\n\trequestSceneDepthMap(enabled) {\n\t\tthis._renderSceneDepthMap += enabled ? 1 : -1;\n\t\tconst ok = this._enableDepthLayer(enabled);\n\t\tif (!ok) {\n\t\t}\n\t\tthis.camera._enableRenderPassDepthGrab(this.system.app.graphicsDevice, this.system.app.renderer, this.renderSceneDepthMap);\n\t\tthis.system.app.scene.layers.markDirty();\n\t}\n\tdirtyLayerCompositionCameras() {\n\t\tconst layerComp = this.system.app.scene.layers;\n\t\tlayerComp._dirty = true;\n\t}\n\tscreenToWorld(screenx, screeny, cameraz, worldCoord) {\n\t\tconst device = this.system.app.graphicsDevice;\n\t\tconst { width, height } = device.clientRect;\n\t\treturn this._camera.screenToWorld(screenx, screeny, cameraz, width, height, worldCoord);\n\t}\n\tworldToScreen(worldCoord, screenCoord) {\n\t\tconst device = this.system.app.graphicsDevice;\n\t\tconst { width, height } = device.clientRect;\n\t\treturn this._camera.worldToScreen(worldCoord, width, height, screenCoord);\n\t}\n\tonAppPrerender() {\n\t\tthis._camera._viewMatDirty = true;\n\t\tthis._camera._viewProjMatDirty = true;\n\t}\n\taddCameraToLayers() {\n\t\tconst layers = this.layers;\n\t\tfor (let i2 = 0; i2 < layers.length; i2++) {\n\t\t\tconst layer = this.system.app.scene.layers.getLayerById(layers[i2]);\n\t\t\tif (layer) {\n\t\t\t\tlayer.addCamera(this);\n\t\t\t}\n\t\t}\n\t}\n\tremoveCameraFromLayers() {\n\t\tconst layers = this.layers;\n\t\tfor (let i2 = 0; i2 < layers.length; i2++) {\n\t\t\tconst layer = this.system.app.scene.layers.getLayerById(layers[i2]);\n\t\t\tif (layer) {\n\t\t\t\tlayer.removeCamera(this);\n\t\t\t}\n\t\t}\n\t}\n\tonLayersChanged(oldComp, newComp) {\n\t\tthis.addCameraToLayers();\n\t\tthis._evtLayerAdded?.off();\n\t\tthis._evtLayerAdded = newComp.on(\"add\", this.onLayerAdded, this);\n\t\tthis._evtLayerRemoved?.off();\n\t\tthis._evtLayerRemoved = newComp.on(\"remove\", this.onLayerRemoved, this);\n\t}\n\tonLayerAdded(layer) {\n\t\tconst index = this.layers.indexOf(layer.id);\n\t\tif (index < 0) return;\n\t\tlayer.addCamera(this);\n\t}\n\tonLayerRemoved(layer) {\n\t\tconst index = this.layers.indexOf(layer.id);\n\t\tif (index < 0) return;\n\t\tlayer.removeCamera(this);\n\t}\n\tonEnable() {\n\t\tconst scene = this.system.app.scene;\n\t\tconst layers = scene.layers;\n\t\tthis.system.addCamera(this);\n\t\tthis._evtLayersChanged?.off();\n\t\tthis._evtLayersChanged = scene.on(\"set:layers\", this.onLayersChanged, this);\n\t\tif (layers) {\n\t\t\tthis._evtLayerAdded?.off();\n\t\t\tthis._evtLayerAdded = layers.on(\"add\", this.onLayerAdded, this);\n\t\t\tthis._evtLayerRemoved?.off();\n\t\t\tthis._evtLayerRemoved = layers.on(\"remove\", this.onLayerRemoved, this);\n\t\t}\n\t\tif (this.enabled && this.entity.enabled) {\n\t\t\tthis.addCameraToLayers();\n\t\t}\n\t\tthis.postEffects.enable();\n\t}\n\tonDisable() {\n\t\tconst scene = this.system.app.scene;\n\t\tconst layers = scene.layers;\n\t\tthis.postEffects.disable();\n\t\tthis.removeCameraFromLayers();\n\t\tthis._evtLayersChanged?.off();\n\t\tthis._evtLayersChanged = null;\n\t\tif (layers) {\n\t\t\tthis._evtLayerAdded?.off();\n\t\t\tthis._evtLayerAdded = null;\n\t\t\tthis._evtLayerRemoved?.off();\n\t\t\tthis._evtLayerRemoved = null;\n\t\t}\n\t\tthis.system.removeCamera(this);\n\t}\n\tonBeforeRemove() {\n\t\tthis.onDisable();\n\t\tthis.off();\n\t\tthis.camera.destroy();\n\t}\n\tcalculateAspectRatio(rt) {\n\t\treturn this._camera.calculateAspectRatio(rt);\n\t}\n\tstartXr(type, spaceType, options2) {\n\t\tthis.system.app.xr.start(this, type, spaceType, options2);\n\t}\n\tendXr(callback) {\n\t\tconst xr = this.system.app.xr;\n\t\tif (xr?.camera !== this.entity) {\n\t\t\tif (callback) callback(new Error(\"Camera is not in XR\"));\n\t\t\treturn;\n\t\t}\n\t\txr.end(callback);\n\t}\n\tcopy(source) {\n\t\tthis.aperture = source.aperture;\n\t\tthis.aspectRatio = source.aspectRatio;\n\t\tthis.aspectRatioMode = source.aspectRatioMode;\n\t\tthis.calculateProjection = source.calculateProjection;\n\t\tthis.calculateTransform = source.calculateTransform;\n\t\tthis.clearColor = source.clearColor;\n\t\tthis.clearColorBuffer = source.clearColorBuffer;\n\t\tthis.clearDepthBuffer = source.clearDepthBuffer;\n\t\tthis.clearStencilBuffer = source.clearStencilBuffer;\n\t\tthis.cullFaces = source.cullFaces;\n\t\tthis.disablePostEffectsLayer = source.disablePostEffectsLayer;\n\t\tthis.farClip = source.farClip;\n\t\tthis.flipFaces = source.flipFaces;\n\t\tthis.fov = source.fov;\n\t\tthis.frustumCulling = source.frustumCulling;\n\t\tthis.horizontalFov = source.horizontalFov;\n\t\tthis.layers = source.layers;\n\t\tthis.nearClip = source.nearClip;\n\t\tthis.orthoHeight = source.orthoHeight;\n\t\tthis.priority = source.priority;\n\t\tthis.projection = source.projection;\n\t\tthis.projectionOffset = source.projectionOffset;\n\t\tthis.rect = source.rect;\n\t\tthis.renderTarget = source.renderTarget;\n\t\tthis.scissorRect = source.scissorRect;\n\t\tthis.sensitivity = source.sensitivity;\n\t\tthis.shutter = source.shutter;\n\t}\n};\n\nvar _properties12 = [\n\t\"aspectRatio\",\n\t\"aspectRatioMode\",\n\t\"calculateProjection\",\n\t\"calculateTransform\",\n\t\"clearColor\",\n\t\"clearColorBuffer\",\n\t\"clearDepth\",\n\t\"clearDepthBuffer\",\n\t\"clearStencilBuffer\",\n\t\"renderSceneColorMap\",\n\t\"renderSceneDepthMap\",\n\t\"cullFaces\",\n\t\"farClip\",\n\t\"flipFaces\",\n\t\"fog\",\n\t\"fov\",\n\t\"frustumCulling\",\n\t\"horizontalFov\",\n\t\"layers\",\n\t\"renderTarget\",\n\t\"nearClip\",\n\t\"orthoHeight\",\n\t\"projection\",\n\t\"projectionOffset\",\n\t\"priority\",\n\t\"rect\",\n\t\"scissorRect\",\n\t\"aperture\",\n\t\"shutter\",\n\t\"sensitivity\",\n\t\"gammaCorrection\",\n\t\"toneMapping\"\n];\nvar CameraComponentSystem = class extends ComponentSystem {\n\tcameras = [];\n\tconstructor(app2) {\n\t\tsuper(app2);\n\t\tthis.id = \"camera\";\n\t\tthis.ComponentType = CameraComponent;\n\t\tthis.on(\"beforeremove\", this.onBeforeRemove, this);\n\t\tthis.app.on(\"prerender\", this.onAppPrerender, this);\n\t}\n\tinitializeComponentData(component, data2) {\n\t\tfor (let i2 = 0; i2 < _properties12.length; i2++) {\n\t\t\tconst property = _properties12[i2];\n\t\t\tif (data2.hasOwnProperty(property)) {\n\t\t\t\tconst value = data2[property];\n\t\t\t\tswitch (property) {\n\t\t\t\t\tcase \"rect\":\n\t\t\t\t\tcase \"scissorRect\":\n\t\t\t\t\t\tif (Array.isArray(value)) {\n\t\t\t\t\t\t\tcomponent[property] = new Vec4(value[0], value[1], value[2], value[3]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcomponent[property] = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"clearColor\":\n\t\t\t\t\t\tif (Array.isArray(value)) {\n\t\t\t\t\t\t\tcomponent[property] = new Color(value[0], value[1], value[2], value[3]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcomponent[property] = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"projectionOffset\":\n\t\t\t\t\t\tif (Array.isArray(value)) {\n\t\t\t\t\t\t\tcomponent[property] = new Vec2(value[0], value[1]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcomponent[property] = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcomponent[property] = value;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tsuper.initializeComponentData(component, data2);\n\t}\n\tcloneComponent(entity, clone) {\n\t\tconst c2 = entity.camera;\n\t\tconst data2 = {\n\t\t\tenabled: c2.enabled\n\t\t};\n\t\tfor (let i2 = 0; i2 < _properties12.length; i2++) {\n\t\t\tconst property = _properties12[i2];\n\t\t\tdata2[property] = c2[property];\n\t\t}\n\t\treturn this.addComponent(clone, data2);\n\t}\n\tonBeforeRemove(entity, component) {\n\t\tthis.removeCamera(component);\n\t\tcomponent.onBeforeRemove();\n\t}\n\tonAppPrerender() {\n\t\tfor (let i2 = 0, len = this.cameras.length; i2 < len; i2++) {\n\t\t\tthis.cameras[i2].onAppPrerender();\n\t\t}\n\t}\n\taddCamera(camera) {\n\t\tthis.cameras.push(camera);\n\t\tsortPriority(this.cameras);\n\t}\n\tremoveCamera(camera) {\n\t\tconst index = this.cameras.indexOf(camera);\n\t\tif (index >= 0) {\n\t\t\tthis.cameras.splice(index, 1);\n\t\t\tsortPriority(this.cameras);\n\t\t}\n\t}\n\tdestroy() {\n\t\tthis.app.off(\"prerender\", this.onAppPrerender, this);\n\t\tsuper.destroy();\n\t}\n};\n\nvar _properties13 = [\n\t\"type\",\n\t\"color\",\n\t\"intensity\",\n\t\"luminance\",\n\t\"shape\",\n\t\"affectSpecularity\",\n\t\"castShadows\",\n\t\"shadowDistance\",\n\t\"shadowIntensity\",\n\t\"shadowResolution\",\n\t\"shadowBias\",\n\t\"numCascades\",\n\t\"cascadeBlend\",\n\t\"bakeNumSamples\",\n\t\"bakeArea\",\n\t\"cascadeDistribution\",\n\t\"normalOffsetBias\",\n\t\"range\",\n\t\"innerConeAngle\",\n\t\"outerConeAngle\",\n\t\"falloffMode\",\n\t\"shadowType\",\n\t\"vsmBlurSize\",\n\t\"vsmBlurMode\",\n\t\"vsmBias\",\n\t\"cookieAsset\",\n\t\"cookie\",\n\t\"cookieIntensity\",\n\t\"cookieFalloff\",\n\t\"cookieChannel\",\n\t\"cookieAngle\",\n\t\"cookieScale\",\n\t\"cookieOffset\",\n\t\"shadowUpdateMode\",\n\t\"mask\",\n\t\"affectDynamic\",\n\t\"affectLightmapped\",\n\t\"bake\",\n\t\"bakeDir\",\n\t\"isStatic\",\n\t\"layers\",\n\t\"penumbraSize\",\n\t\"penumbraFalloff\",\n\t\"shadowSamples\",\n\t\"shadowBlockerSamples\",\n\t\"volumetricScattering\"\n];\nvar LightComponent = class extends Component {\n\t_light;\n\t_evtLayersChanged = null;\n\t_evtLayerAdded = null;\n\t_evtLayerRemoved = null;\n\t_cookieAsset = null;\n\t_cookieAssetId = null;\n\t_cookieAssetAdd = false;\n\t_cookieMatrix = null;\n\t_shadowBias = 0.05;\n\t_cookieAngle = 0;\n\t_cookieScale = null;\n\t_castShadows = false;\n\t_affectSpecularity = true;\n\t_affectDynamic = true;\n\t_affectLightmapped = false;\n\t_bake = false;\n\t_layers = [LAYERID_WORLD];\n\t_type = \"directional\";\n\tconstructor(system, entity) {\n\t\tsuper(system, entity);\n\t\tthis._light = new Light(system.app.graphicsDevice, system.app.scene.clusteredLightingEnabled);\n\t\tthis._light._node = entity;\n\t\tthis._light.setColor(1, 1, 1);\n\t}\n\tget light() {\n\t\treturn this._light;\n\t}\n\tset type(value) {\n\t\tif (this._type === value) return;\n\t\tthis.removeLightFromLayers();\n\t\tthis._type = value;\n\t\tthis._light.type = lightTypes[value];\n\t\tthis.refreshProperties();\n\t}\n\tget type() {\n\t\treturn this._type;\n\t}\n\tset color(value) {\n\t\tthis._light.setColor(value);\n\t}\n\tget color() {\n\t\treturn this._light.getColor();\n\t}\n\tset intensity(value) {\n\t\tthis._light.intensity = value;\n\t}\n\tget intensity() {\n\t\treturn this._light.intensity;\n\t}\n\tset luminance(value) {\n\t\tthis._light.luminance = value;\n\t}\n\tget luminance() {\n\t\treturn this._light.luminance;\n\t}\n\tset shape(value) {\n\t\tthis._light.shape = value;\n\t}\n\tget shape() {\n\t\treturn this._light.shape;\n\t}\n\tset affectSpecularity(value) {\n\t\tthis._affectSpecularity = value;\n\t\tthis._light.affectSpecularity = value;\n\t}\n\tget affectSpecularity() {\n\t\treturn this._affectSpecularity;\n\t}\n\tset castShadows(value) {\n\t\tthis._castShadows = value;\n\t\tthis._light.castShadows = value;\n\t}\n\tget castShadows() {\n\t\treturn this._castShadows;\n\t}\n\tset shadowDistance(value) {\n\t\tthis._light.shadowDistance = value;\n\t}\n\tget shadowDistance() {\n\t\treturn this._light.shadowDistance;\n\t}\n\tset shadowIntensity(value) {\n\t\tthis._light.shadowIntensity = value;\n\t}\n\tget shadowIntensity() {\n\t\treturn this._light.shadowIntensity;\n\t}\n\tset volumetricScattering(value) {\n\t\tthis._light.volumetricScattering = value;\n\t}\n\tget volumetricScattering() {\n\t\treturn this._light.volumetricScattering;\n\t}\n\tset shadowResolution(value) {\n\t\tthis._light.shadowResolution = value;\n\t}\n\tget shadowResolution() {\n\t\treturn this._light.shadowResolution;\n\t}\n\tset shadowBias(value) {\n\t\tthis._shadowBias = value;\n\t\tthis._light.shadowBias = -0.01 * math.clamp(value, 0, 1);\n\t}\n\tget shadowBias() {\n\t\treturn this._shadowBias;\n\t}\n\tset numCascades(value) {\n\t\tthis._light.numCascades = math.clamp(Math.floor(value), 1, 4);\n\t}\n\tget numCascades() {\n\t\treturn this._light.numCascades;\n\t}\n\tset cascadeBlend(value) {\n\t\tthis._light.cascadeBlend = math.clamp(value, 0, 1);\n\t}\n\tget cascadeBlend() {\n\t\treturn this._light.cascadeBlend;\n\t}\n\tset bakeNumSamples(value) {\n\t\tthis._light.bakeNumSamples = math.clamp(Math.floor(value), 1, 255);\n\t}\n\tget bakeNumSamples() {\n\t\treturn this._light.bakeNumSamples;\n\t}\n\tset bakeArea(value) {\n\t\tthis._light.bakeArea = math.clamp(value, 0, 180);\n\t}\n\tget bakeArea() {\n\t\treturn this._light.bakeArea;\n\t}\n\tset cascadeDistribution(value) {\n\t\tthis._light.cascadeDistribution = math.clamp(value, 0, 1);\n\t}\n\tget cascadeDistribution() {\n\t\treturn this._light.cascadeDistribution;\n\t}\n\tset normalOffsetBias(value) {\n\t\tthis._light.normalOffsetBias = math.clamp(value, 0, 1);\n\t}\n\tget normalOffsetBias() {\n\t\treturn this._light.normalOffsetBias;\n\t}\n\tset range(value) {\n\t\tthis._light.attenuationEnd = value;\n\t}\n\tget range() {\n\t\treturn this._light.attenuationEnd;\n\t}\n\tset innerConeAngle(value) {\n\t\tthis._light.innerConeAngle = value;\n\t}\n\tget innerConeAngle() {\n\t\treturn this._light.innerConeAngle;\n\t}\n\tset outerConeAngle(value) {\n\t\tthis._light.outerConeAngle = value;\n\t}\n\tget outerConeAngle() {\n\t\treturn this._light.outerConeAngle;\n\t}\n\tset falloffMode(value) {\n\t\tthis._light.falloffMode = value;\n\t}\n\tget falloffMode() {\n\t\treturn this._light.falloffMode;\n\t}\n\tset shadowType(value) {\n\t\tthis._light.shadowType = value;\n\t}\n\tget shadowType() {\n\t\treturn this._light.shadowType;\n\t}\n\tset vsmBlurSize(value) {\n\t\tthis._light.vsmBlurSize = value;\n\t}\n\tget vsmBlurSize() {\n\t\treturn this._light.vsmBlurSize;\n\t}\n\tset vsmBlurMode(value) {\n\t\tthis._light.vsmBlurMode = value;\n\t}\n\tget vsmBlurMode() {\n\t\treturn this._light.vsmBlurMode;\n\t}\n\tset vsmBias(value) {\n\t\tthis._light.vsmBias = math.clamp(value, 0, 1);\n\t}\n\tget vsmBias() {\n\t\treturn this._light.vsmBias;\n\t}\n\tset cookieAsset(value) {\n\t\tif (this._cookieAssetId && (value instanceof Asset && value.id === this._cookieAssetId || value === this._cookieAssetId)) {\n\t\t\treturn;\n\t\t}\n\t\tthis.onCookieAssetRemove();\n\t\tthis._cookieAssetId = null;\n\t\tif (value instanceof Asset) {\n\t\t\tthis._cookieAssetId = value.id;\n\t\t\tthis.onCookieAssetAdd(value);\n\t\t} else if (typeof value === \"number\") {\n\t\t\tthis._cookieAssetId = value;\n\t\t\tconst asset = this.system.app.assets.get(value);\n\t\t\tif (asset) {\n\t\t\t\tthis.onCookieAssetAdd(asset);\n\t\t\t} else {\n\t\t\t\tthis._cookieAssetAdd = true;\n\t\t\t\tthis.system.app.assets.on(`add:${this._cookieAssetId}`, this.onCookieAssetAdd, this);\n\t\t\t}\n\t\t}\n\t}\n\tget cookieAsset() {\n\t\treturn this._cookieAssetId;\n\t}\n\tset cookie(value) {\n\t\tthis._light.cookie = value;\n\t}\n\tget cookie() {\n\t\treturn this._light.cookie;\n\t}\n\tset cookieIntensity(value) {\n\t\tthis._light.cookieIntensity = math.clamp(value, 0, 1);\n\t}\n\tget cookieIntensity() {\n\t\treturn this._light.cookieIntensity;\n\t}\n\tset cookieFalloff(value) {\n\t\tthis._light.cookieFalloff = value;\n\t}\n\tget cookieFalloff() {\n\t\treturn this._light.cookieFalloff;\n\t}\n\tset cookieChannel(value) {\n\t\tthis._light.cookieChannel = value;\n\t}\n\tget cookieChannel() {\n\t\treturn this._light.cookieChannel;\n\t}\n\tset cookieAngle(value) {\n\t\tif (this._cookieAngle === value) return;\n\t\tthis._cookieAngle = value;\n\t\tif (value !== 0 || this._cookieScale !== null) {\n\t\t\tif (!this._cookieMatrix) this._cookieMatrix = new Vec4();\n\t\t\tlet scx = 1;\n\t\t\tlet scy = 1;\n\t\t\tif (this._cookieScale) {\n\t\t\t\tscx = this._cookieScale.x;\n\t\t\t\tscy = this._cookieScale.y;\n\t\t\t}\n\t\t\tconst c2 = Math.cos(value * math.DEG_TO_RAD);\n\t\t\tconst s2 = Math.sin(value * math.DEG_TO_RAD);\n\t\t\tthis._cookieMatrix.set(c2 / scx, -s2 / scx, s2 / scy, c2 / scy);\n\t\t\tthis._light.cookieTransform = this._cookieMatrix;\n\t\t} else {\n\t\t\tthis._light.cookieTransform = null;\n\t\t}\n\t}\n\tget cookieAngle() {\n\t\treturn this._cookieAngle;\n\t}\n\tset cookieScale(value) {\n\t\tthis._cookieScale = value;\n\t\tif (value !== null || this._cookieAngle !== 0) {\n\t\t\tif (!this._cookieMatrix) this._cookieMatrix = new Vec4();\n\t\t\tconst scx = value ? value.x : 1;\n\t\t\tconst scy = value ? value.y : 1;\n\t\t\tconst c2 = Math.cos(this._cookieAngle * math.DEG_TO_RAD);\n\t\t\tconst s2 = Math.sin(this._cookieAngle * math.DEG_TO_RAD);\n\t\t\tthis._cookieMatrix.set(c2 / scx, -s2 / scx, s2 / scy, c2 / scy);\n\t\t\tthis._light.cookieTransform = this._cookieMatrix;\n\t\t} else {\n\t\t\tthis._light.cookieTransform = null;\n\t\t}\n\t}\n\tget cookieScale() {\n\t\treturn this._cookieScale;\n\t}\n\tset cookieOffset(value) {\n\t\tthis._light.cookieOffset = value;\n\t}\n\tget cookieOffset() {\n\t\treturn this._light.cookieOffset;\n\t}\n\tset shadowUpdateMode(value) {\n\t\tthis._light.shadowUpdateMode = value;\n\t}\n\tget shadowUpdateMode() {\n\t\treturn this._light.shadowUpdateMode;\n\t}\n\tset mask(value) {\n\t\tthis._light.mask = value;\n\t}\n\tget mask() {\n\t\treturn this._light.mask;\n\t}\n\tset affectDynamic(value) {\n\t\tif (this._affectDynamic === value) return;\n\t\tthis._affectDynamic = value;\n\t\tif (value) {\n\t\t\tthis._light.mask |= MASK_AFFECT_DYNAMIC;\n\t\t} else {\n\t\t\tthis._light.mask &= ~MASK_AFFECT_DYNAMIC;\n\t\t}\n\t\tthis._light.layersDirty();\n\t}\n\tget affectDynamic() {\n\t\treturn this._affectDynamic;\n\t}\n\tset affectLightmapped(value) {\n\t\tif (this._affectLightmapped === value) return;\n\t\tthis._affectLightmapped = value;\n\t\tif (value) {\n\t\t\tthis._light.mask |= MASK_AFFECT_LIGHTMAPPED;\n\t\t\tif (this._bake) this._light.mask &= ~MASK_BAKE;\n\t\t} else {\n\t\t\tthis._light.mask &= ~MASK_AFFECT_LIGHTMAPPED;\n\t\t\tif (this._bake) this._light.mask |= MASK_BAKE;\n\t\t}\n\t}\n\tget affectLightmapped() {\n\t\treturn this._affectLightmapped;\n\t}\n\tset bake(value) {\n\t\tif (this._bake === value) return;\n\t\tthis._bake = value;\n\t\tif (value) {\n\t\t\tthis._light.mask |= MASK_BAKE;\n\t\t\tif (this._affectLightmapped) this._light.mask &= ~MASK_AFFECT_LIGHTMAPPED;\n\t\t} else {\n\t\t\tthis._light.mask &= ~MASK_BAKE;\n\t\t\tif (this._affectLightmapped) this._light.mask |= MASK_AFFECT_LIGHTMAPPED;\n\t\t}\n\t\tthis._light.layersDirty();\n\t}\n\tget bake() {\n\t\treturn this._bake;\n\t}\n\tset bakeDir(value) {\n\t\tthis._light.bakeDir = value;\n\t}\n\tget bakeDir() {\n\t\treturn this._light.bakeDir;\n\t}\n\tset isStatic(value) {\n\t\tthis._light.isStatic = value;\n\t}\n\tget isStatic() {\n\t\treturn this._light.isStatic;\n\t}\n\tset layers(value) {\n\t\tconst oldValue = this._layers;\n\t\tfor (let i2 = 0; i2 < oldValue.length; i2++) {\n\t\t\tconst layer = this.system.app.scene.layers.getLayerById(oldValue[i2]);\n\t\t\tif (!layer) continue;\n\t\t\tlayer.removeLight(this);\n\t\t\tthis._light.removeLayer(layer);\n\t\t}\n\t\tthis._layers = value;\n\t\tfor (let i2 = 0; i2 < value.length; i2++) {\n\t\t\tconst layer = this.system.app.scene.layers.getLayerById(value[i2]);\n\t\t\tif (!layer) continue;\n\t\t\tif (this.enabled && this.entity.enabled) {\n\t\t\t\tlayer.addLight(this);\n\t\t\t\tthis._light.addLayer(layer);\n\t\t\t}\n\t\t}\n\t}\n\tget layers() {\n\t\treturn this._layers;\n\t}\n\tset shadowUpdateOverrides(values) {\n\t\tthis._light.shadowUpdateOverrides = values;\n\t}\n\tget shadowUpdateOverrides() {\n\t\treturn this._light.shadowUpdateOverrides;\n\t}\n\tset shadowSamples(value) {\n\t\tthis._light.shadowSamples = value;\n\t}\n\tget shadowSamples() {\n\t\treturn this._light.shadowSamples;\n\t}\n\tset shadowBlockerSamples(value) {\n\t\tthis._light.shadowBlockerSamples = value;\n\t}\n\tget shadowBlockerSamples() {\n\t\treturn this._light.shadowBlockerSamples;\n\t}\n\tset penumbraSize(value) {\n\t\tthis._light.penumbraSize = value;\n\t}\n\tget penumbraSize() {\n\t\treturn this._light.penumbraSize;\n\t}\n\tset penumbraFalloff(value) {\n\t\tthis._light.penumbraFalloff = value;\n\t}\n\tget penumbraFalloff() {\n\t\treturn this._light.penumbraFalloff;\n\t}\n\taddLightToLayers() {\n\t\tfor (let i2 = 0; i2 < this._layers.length; i2++) {\n\t\t\tconst layer = this.system.app.scene.layers.getLayerById(this._layers[i2]);\n\t\t\tif (layer) {\n\t\t\t\tlayer.addLight(this);\n\t\t\t\tthis._light.addLayer(layer);\n\t\t\t}\n\t\t}\n\t}\n\tremoveLightFromLayers() {\n\t\tfor (let i2 = 0; i2 < this._layers.length; i2++) {\n\t\t\tconst layer = this.system.app.scene.layers.getLayerById(this._layers[i2]);\n\t\t\tif (layer) {\n\t\t\t\tlayer.removeLight(this);\n\t\t\t\tthis._light.removeLayer(layer);\n\t\t\t}\n\t\t}\n\t}\n\tonLayersChanged(oldComp, newComp) {\n\t\tif (this.enabled && this.entity.enabled) {\n\t\t\tthis.addLightToLayers();\n\t\t}\n\t\tthis._evtLayerAdded?.off();\n\t\tthis._evtLayerAdded = newComp.on(\"add\", this.onLayerAdded, this);\n\t\tthis._evtLayerRemoved?.off();\n\t\tthis._evtLayerRemoved = newComp.on(\"remove\", this.onLayerRemoved, this);\n\t}\n\tonLayerAdded(layer) {\n\t\tconst index = this._layers.indexOf(layer.id);\n\t\tif (index >= 0 && this.enabled && this.entity.enabled) {\n\t\t\tlayer.addLight(this);\n\t\t\tthis._light.addLayer(layer);\n\t\t}\n\t}\n\tonLayerRemoved(layer) {\n\t\tconst index = this._layers.indexOf(layer.id);\n\t\tif (index >= 0) {\n\t\t\tlayer.removeLight(this);\n\t\t\tthis._light.removeLayer(layer);\n\t\t}\n\t}\n\trefreshProperties() {\n\t\tfor (let i2 = 0; i2 < _properties13.length; i2++) {\n\t\t\tconst name = _properties13[i2];\n\t\t\tthis[name] = this[name];\n\t\t}\n\t\tif (this.enabled && this.entity.enabled) {\n\t\t\tthis.onEnable();\n\t\t}\n\t}\n\tonCookieAssetSet() {\n\t\tlet forceLoad = false;\n\t\tif (this._cookieAsset.type === \"cubemap\" && !this._cookieAsset.loadFaces) {\n\t\t\tthis._cookieAsset.loadFaces = true;\n\t\t\tforceLoad = true;\n\t\t}\n\t\tif (!this._cookieAsset.resource || forceLoad) this.system.app.assets.load(this._cookieAsset);\n\t\tif (this._cookieAsset.resource) {\n\t\t\tthis.onCookieAssetLoad();\n\t\t}\n\t}\n\tonCookieAssetAdd(asset) {\n\t\tif (this._cookieAssetId !== asset.id) return;\n\t\tthis._cookieAsset = asset;\n\t\tif (this._light.enabled) {\n\t\t\tthis.onCookieAssetSet();\n\t\t}\n\t\tthis._cookieAsset.on(\"load\", this.onCookieAssetLoad, this);\n\t\tthis._cookieAsset.on(\"remove\", this.onCookieAssetRemove, this);\n\t}\n\tonCookieAssetLoad() {\n\t\tif (!this._cookieAsset || !this._cookieAsset.resource) {\n\t\t\treturn;\n\t\t}\n\t\tthis.cookie = this._cookieAsset.resource;\n\t}\n\tonCookieAssetRemove() {\n\t\tif (!this._cookieAssetId) {\n\t\t\treturn;\n\t\t}\n\t\tif (this._cookieAssetAdd) {\n\t\t\tthis.system.app.assets.off(`add:${this._cookieAssetId}`, this.onCookieAssetAdd, this);\n\t\t\tthis._cookieAssetAdd = false;\n\t\t}\n\t\tif (this._cookieAsset) {\n\t\t\tthis._cookieAsset.off(\"load\", this.onCookieAssetLoad, this);\n\t\t\tthis._cookieAsset.off(\"remove\", this.onCookieAssetRemove, this);\n\t\t\tthis._cookieAsset = null;\n\t\t}\n\t\tthis.cookie = null;\n\t}\n\tonEnable() {\n\t\tconst scene = this.system.app.scene;\n\t\tconst layers = scene.layers;\n\t\tthis._light.enabled = true;\n\t\tthis._evtLayersChanged?.off();\n\t\tthis._evtLayersChanged = scene.on(\"set:layers\", this.onLayersChanged, this);\n\t\tif (layers) {\n\t\t\tthis._evtLayerAdded?.off();\n\t\t\tthis._evtLayerAdded = layers.on(\"add\", this.onLayerAdded, this);\n\t\t\tthis._evtLayerRemoved?.off();\n\t\t\tthis._evtLayerRemoved = layers.on(\"remove\", this.onLayerRemoved, this);\n\t\t}\n\t\tif (this.enabled && this.entity.enabled) {\n\t\t\tthis.addLightToLayers();\n\t\t}\n\t\tif (this._cookieAsset && !this.cookie) {\n\t\t\tthis.onCookieAssetSet();\n\t\t}\n\t}\n\tonDisable() {\n\t\tconst scene = this.system.app.scene;\n\t\tconst layers = scene.layers;\n\t\tthis._light.enabled = false;\n\t\tthis._evtLayersChanged?.off();\n\t\tthis._evtLayersChanged = null;\n\t\tif (layers) {\n\t\t\tthis._evtLayerAdded?.off();\n\t\t\tthis._evtLayerAdded = null;\n\t\t\tthis._evtLayerRemoved?.off();\n\t\t\tthis._evtLayerRemoved = null;\n\t\t}\n\t\tthis.removeLightFromLayers();\n\t}\n\tonBeforeRemove() {\n\t\tthis.onDisable();\n\t\tthis._light.destroy();\n\t\tthis.cookieAsset = null;\n\t}\n};\n\nvar LightComponentSystem = class extends ComponentSystem {\n\tconstructor(app2) {\n\t\tsuper(app2);\n\t\tthis.id = \"light\";\n\t\tthis.ComponentType = LightComponent;\n\t\tthis.extraDataProperties = [\"enable\"];\n\t\tthis.on(\"beforeremove\", this.onBeforeRemove, this);\n\t}\n\tinitializeComponentData(component, _data) {\n\t\tconst data2 = { ..._data };\n\t\tif (data2.layers && Array.isArray(data2.layers)) {\n\t\t\tdata2.layers = data2.layers.slice(0);\n\t\t}\n\t\tif (data2.color && Array.isArray(data2.color)) {\n\t\t\tdata2.color = new Color(data2.color[0], data2.color[1], data2.color[2]);\n\t\t}\n\t\tif (data2.cookieOffset && data2.cookieOffset instanceof Array) {\n\t\t\tdata2.cookieOffset = new Vec2(data2.cookieOffset[0], data2.cookieOffset[1]);\n\t\t}\n\t\tif (data2.cookieScale && data2.cookieScale instanceof Array) {\n\t\t\tdata2.cookieScale = new Vec2(data2.cookieScale[0], data2.cookieScale[1]);\n\t\t}\n\t\tif (data2.hasOwnProperty(\"enable\")) {\n\t\t\tconsole.warn(\"WARNING: enable: Property is deprecated. Set enabled property instead.\");\n\t\t\tdata2.enabled = data2.enable;\n\t\t}\n\t\tfor (let i2 = 0; i2 < _properties13.length; i2++) {\n\t\t\tconst property = _properties13[i2];\n\t\t\tif (data2.hasOwnProperty(property)) {\n\t\t\t\tcomponent[property] = data2[property];\n\t\t\t}\n\t\t}\n\t\tsuper.initializeComponentData(component, data2);\n\t}\n\tonBeforeRemove(entity, component) {\n\t\tcomponent.onBeforeRemove();\n\t}\n\tcloneComponent(entity, clone) {\n\t\tconst c2 = entity.light;\n\t\tconst data2 = {\n\t\t\tenabled: c2.enabled\n\t\t};\n\t\tfor (let i2 = 0; i2 < _properties13.length; i2++) {\n\t\t\tconst name = _properties13[i2];\n\t\t\tconst value = c2[name];\n\t\t\tif (value && value.clone) {\n\t\t\t\tdata2[name] = value.clone();\n\t\t\t} else {\n\t\t\t\tdata2[name] = value;\n\t\t\t}\n\t\t}\n\t\treturn this.addComponent(clone, data2);\n\t}\n};\n\nvar components = [\"x\", \"y\", \"z\", \"w\"];\nvar vecLookup = [void 0, void 0, Vec2, Vec3, Vec4];\nfunction rawToValue(app2, args, value, old) {\n\tswitch (args.type) {\n\t\tcase \"boolean\":\n\t\t\treturn !!value;\n\t\tcase \"number\":\n\t\t\tif (typeof value === \"number\") {\n\t\t\t\treturn value;\n\t\t\t} else if (typeof value === \"string\") {\n\t\t\t\tconst v6 = parseInt(value, 10);\n\t\t\t\tif (isNaN(v6)) return null;\n\t\t\t\treturn v6;\n\t\t\t} else if (typeof value === \"boolean\") {\n\t\t\t\treturn 0 + value;\n\t\t\t}\n\t\t\treturn null;\n\t\tcase \"json\": {\n\t\t\tconst result = {};\n\t\t\tif (Array.isArray(args.schema)) {\n\t\t\t\tif (!value || typeof value !== \"object\") {\n\t\t\t\t\tvalue = {};\n\t\t\t\t}\n\t\t\t\tfor (let i2 = 0; i2 < args.schema.length; i2++) {\n\t\t\t\t\tconst field = args.schema[i2];\n\t\t\t\t\tif (!field.name) continue;\n\t\t\t\t\tif (field.array) {\n\t\t\t\t\t\tresult[field.name] = [];\n\t\t\t\t\t\tconst arr = Array.isArray(value[field.name]) ? value[field.name] : [];\n\t\t\t\t\t\tfor (let j = 0; j < arr.length; j++) {\n\t\t\t\t\t\t\tresult[field.name].push(rawToValue(app2, field, arr[j]));\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst val = value.hasOwnProperty(field.name) ? value[field.name] : field.default;\n\t\t\t\t\t\tresult[field.name] = rawToValue(app2, field, val);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t\tcase \"asset\":\n\t\t\tif (value instanceof Asset) {\n\t\t\t\treturn value;\n\t\t\t} else if (typeof value === \"number\") {\n\t\t\t\treturn app2.assets.get(value) || null;\n\t\t\t} else if (typeof value === \"string\") {\n\t\t\t\treturn app2.assets.get(parseInt(value, 10)) || null;\n\t\t\t}\n\t\t\treturn null;\n\t\tcase \"entity\":\n\t\t\tif (value instanceof GraphNode) {\n\t\t\t\treturn value;\n\t\t\t} else if (typeof value === \"string\") {\n\t\t\t\treturn app2.getEntityFromIndex(value);\n\t\t\t}\n\t\t\treturn null;\n\t\tcase \"rgb\":\n\t\tcase \"rgba\":\n\t\t\tif (value instanceof Color) {\n\t\t\t\tif (old instanceof Color) {\n\t\t\t\t\told.copy(value);\n\t\t\t\t\treturn old;\n\t\t\t\t}\n\t\t\t\treturn value.clone();\n\t\t\t} else if (value instanceof Array && value.length >= 3 && value.length <= 4) {\n\t\t\t\tfor (let i2 = 0; i2 < value.length; i2++) {\n\t\t\t\t\tif (typeof value[i2] !== \"number\") {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!old) old = new Color();\n\t\t\t\told.r = value[0];\n\t\t\t\told.g = value[1];\n\t\t\t\told.b = value[2];\n\t\t\t\told.a = value.length === 3 ? 1 : value[3];\n\t\t\t\treturn old;\n\t\t\t} else if (typeof value === \"string\" && /#(?:[0-9a-f]{2}){3,4}/i.test(value)) {\n\t\t\t\tif (!old) {\n\t\t\t\t\told = new Color();\n\t\t\t\t}\n\t\t\t\told.fromString(value);\n\t\t\t\treturn old;\n\t\t\t}\n\t\t\treturn null;\n\t\tcase \"vec2\":\n\t\tcase \"vec3\":\n\t\tcase \"vec4\": {\n\t\t\tconst len = parseInt(args.type.slice(3), 10);\n\t\t\tconst vecType = vecLookup[len];\n\t\t\tif (value instanceof vecType) {\n\t\t\t\tif (old instanceof vecType) {\n\t\t\t\t\told.copy(value);\n\t\t\t\t\treturn old;\n\t\t\t\t}\n\t\t\t\treturn value.clone();\n\t\t\t} else if (value instanceof Array && value.length === len) {\n\t\t\t\tfor (let i2 = 0; i2 < value.length; i2++) {\n\t\t\t\t\tif (typeof value[i2] !== \"number\") {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!old) old = new vecType();\n\t\t\t\tfor (let i2 = 0; i2 < len; i2++) {\n\t\t\t\t\told[components[i2]] = value[i2];\n\t\t\t\t}\n\t\t\t\treturn old;\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\t\tcase \"curve\":\n\t\t\tif (value) {\n\t\t\t\tlet curve;\n\t\t\t\tif (value instanceof Curve || value instanceof CurveSet) {\n\t\t\t\t\tcurve = value.clone();\n\t\t\t\t} else {\n\t\t\t\t\tconst CurveType = value.keys[0] instanceof Array ? CurveSet : Curve;\n\t\t\t\t\tcurve = new CurveType(value.keys);\n\t\t\t\t\tcurve.type = value.type;\n\t\t\t\t}\n\t\t\t\treturn curve;\n\t\t\t}\n\t\t\tbreak;\n\t}\n\treturn value;\n}\nfunction attributeToValue(app2, schema, value, current) {\n\tif (schema.array) {\n\t\treturn value.map((item, index) => rawToValue(app2, schema, item, current ? current[index] : null));\n\t}\n\treturn rawToValue(app2, schema, value, current);\n}\nfunction assignAttributesToScript(app2, attributeSchemaMap, data2, script2) {\n\tif (!data2) return;\n\tfor (const attributeName in attributeSchemaMap) {\n\t\tconst attributeSchema = attributeSchemaMap[attributeName];\n\t\tconst dataToAssign = data2[attributeName];\n\t\tif (dataToAssign === void 0) continue;\n\t\tscript2[attributeName] = attributeToValue(app2, attributeSchema, dataToAssign, script2[attributeName]);\n\t}\n}\nvar ScriptAttributes = class _ScriptAttributes {\n\tstatic assignAttributesToScript = assignAttributesToScript;\n\tstatic attributeToValue = attributeToValue;\n\tconstructor(scriptType) {\n\t\tthis.scriptType = scriptType;\n\t\tthis.index = {};\n\t}\n\tstatic reservedNames = /* @__PURE__ */ new Set([\n\t\t\"app\",\n\t\t\"entity\",\n\t\t\"enabled\",\n\t\t\"_enabled\",\n\t\t\"_enabledOld\",\n\t\t\"_destroyed\",\n\t\t\"__attributes\",\n\t\t\"__attributesRaw\",\n\t\t\"__scriptType\",\n\t\t\"__executionOrder\",\n\t\t\"_callbacks\",\n\t\t\"_callbackActive\",\n\t\t\"has\",\n\t\t\"get\",\n\t\t\"on\",\n\t\t\"off\",\n\t\t\"fire\",\n\t\t\"once\",\n\t\t\"hasEvent\"\n\t]);\n\tadd(name, args) {\n\t\tif (!args) {\n\t\t\treturn;\n\t\t}\n\t\tif (!args.type) {\n\t\t\treturn;\n\t\t}\n\t\tif (this.index[name]) {\n\t\t\treturn;\n\t\t} else if (_ScriptAttributes.reservedNames.has(name)) {\n\t\t\treturn;\n\t\t}\n\t\tthis.index[name] = args;\n\t\tObject.defineProperty(this.scriptType.prototype, name, {\n\t\t\tget: function() {\n\t\t\t\treturn this.__attributes[name];\n\t\t\t},\n\t\t\tset: function(raw) {\n\t\t\t\tconst evt = \"attr\";\n\t\t\t\tconst evtName = `attr:${name}`;\n\t\t\t\tconst old = this.__attributes[name];\n\t\t\t\tlet oldCopy = old;\n\t\t\t\tif (old && args.type !== \"json\" && args.type !== \"entity\" && old.clone) {\n\t\t\t\t\tif (this.hasEvent(evt) || this.hasEvent(evtName)) {\n\t\t\t\t\t\toldCopy = old.clone();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (args.array) {\n\t\t\t\t\tthis.__attributes[name] = [];\n\t\t\t\t\tif (raw) {\n\t\t\t\t\t\tfor (let i2 = 0, len = raw.length; i2 < len; i2++) {\n\t\t\t\t\t\t\tthis.__attributes[name].push(rawToValue(this.app, args, raw[i2], old ? old[i2] : null));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.__attributes[name] = rawToValue(this.app, args, raw, old);\n\t\t\t\t}\n\t\t\t\tthis.fire(evt, name, this.__attributes[name], oldCopy);\n\t\t\t\tthis.fire(evtName, this.__attributes[name], oldCopy);\n\t\t\t}\n\t\t});\n\t}\n\tremove(name) {\n\t\tif (!this.index[name]) {\n\t\t\treturn false;\n\t\t}\n\t\tdelete this.index[name];\n\t\tdelete this.scriptType.prototype[name];\n\t\treturn true;\n\t}\n\thas(name) {\n\t\treturn !!this.index[name];\n\t}\n\tget(name) {\n\t\treturn this.index[name] || null;\n\t}\n};\n\nvar ScriptType = class extends Script {\n\t__attributes;\n\t__attributesRaw;\n\tconstructor(args) {\n\t\tsuper(args);\n\t\tthis.initScriptType(args);\n\t}\n\tstatic get attributes() {\n\t\tif (!this.hasOwnProperty(\"__attributes\")) this.__attributes = new ScriptAttributes(this);\n\t\treturn this.__attributes;\n\t}\n\tinitScript(args) {\n\t\tScript.prototype.initScript.call(this, args);\n\t\tthis.__attributes = {};\n\t\tthis.__attributesRaw = args.attributes || {};\n\t}\n\tinitScriptType(args) {\n\t\tthis.initScript(args);\n\t}\n\t__initializeAttributes(force) {\n\t\tif (!force && !this.__attributesRaw) {\n\t\t\treturn;\n\t\t}\n\t\tfor (const key in this.__scriptType.attributes.index) {\n\t\t\tif (this.__attributesRaw && this.__attributesRaw.hasOwnProperty(key)) {\n\t\t\t\tthis[key] = this.__attributesRaw[key];\n\t\t\t} else if (!this.__attributes.hasOwnProperty(key)) {\n\t\t\t\tif (this.__scriptType.attributes.index[key].hasOwnProperty(\"default\")) {\n\t\t\t\t\tthis[key] = this.__scriptType.attributes.index[key].default;\n\t\t\t\t} else {\n\t\t\t\t\tthis[key] = null;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis.__attributesRaw = null;\n\t}\n\tstatic extend(methods) {\n\t\tfor (const key in methods) {\n\t\t\tif (!methods.hasOwnProperty(key)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tthis.prototype[key] = methods[key];\n\t\t}\n\t}\n};\n\nvar ScriptComponent = class extends Component {\n\t_attributeDataMap = /* @__PURE__ */ new Map();\n\tstatic EVENT_CREATE = \"create\";\n\tstatic EVENT_DESTROY = \"destroy\";\n\tstatic EVENT_ENABLE = \"enable\";\n\tstatic EVENT_DISABLE = \"disable\";\n\tstatic EVENT_REMOVE = \"remove\";\n\tstatic EVENT_STATE = \"state\";\n\tstatic EVENT_MOVE = \"move\";\n\tstatic EVENT_ERROR = \"error\";\n\tconstructor(system, entity) {\n\t\tsuper(system, entity);\n\t\tthis._scripts = [];\n\t\tthis._updateList = new SortedLoopArray({ sortBy: \"__executionOrder\" });\n\t\tthis._postUpdateList = new SortedLoopArray({ sortBy: \"__executionOrder\" });\n\t\tthis._scriptsIndex = {};\n\t\tthis._declarationOrder = [];\n\t\tthis._destroyedScripts = [];\n\t\tthis._destroyed = false;\n\t\tthis._scriptsData = null;\n\t\tthis._oldState = true;\n\t\tthis._beingEnabled = false;\n\t\tthis._isLoopingThroughScripts = false;\n\t\tthis._executionOrder = -1;\n\t\tthis.on(\"set_enabled\", this._onSetEnabled, this);\n\t}\n\tset scripts(value) {\n\t\tthis._scriptsData = value;\n\t\tfor (const key in value) {\n\t\t\tif (!value.hasOwnProperty(key)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst script2 = this._scriptsIndex[key];\n\t\t\tif (script2) {\n\t\t\t\tif (typeof value[key].enabled === \"boolean\") {\n\t\t\t\t\tscript2.once(\"preInitialize\", () => {\n\t\t\t\t\t\tthis.initializeAttributes(script2);\n\t\t\t\t\t});\n\t\t\t\t\tscript2.enabled = !!value[key].enabled;\n\t\t\t\t}\n\t\t\t\tif (typeof value[key].attributes === \"object\") {\n\t\t\t\t\tfor (const attr in value[key].attributes) {\n\t\t\t\t\t\tif (ScriptAttributes.reservedNames.has(attr)) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!script2.__attributes.hasOwnProperty(attr)) {\n\t\t\t\t\t\t\tconst scriptType = this.system.app.scripts.get(key);\n\t\t\t\t\t\t\tif (scriptType) {\n\t\t\t\t\t\t\t\tscriptType.attributes.add(attr, {});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tscript2[attr] = value[key].attributes[attr];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconsole.log(this.order);\n\t\t\t}\n\t\t}\n\t}\n\tget scripts() {\n\t\treturn this._scripts;\n\t}\n\tonEnable() {\n\t\tthis._beingEnabled = true;\n\t\tthis._checkState();\n\t\tif (!this.entity._beingEnabled) {\n\t\t\tthis.onPostStateChange();\n\t\t}\n\t\tthis._beingEnabled = false;\n\t}\n\tonDisable() {\n\t\tthis._checkState();\n\t}\n\tonPostStateChange() {\n\t\tconst wasLooping = this._beginLooping();\n\t\tfor (let i2 = 0, len = this.scripts.length; i2 < len; i2++) {\n\t\t\tconst script2 = this.scripts[i2];\n\t\t\tif (script2._initialized && !script2._postInitialized && script2.enabled) {\n\t\t\t\tscript2._postInitialized = true;\n\t\t\t\tif (script2.postInitialize) {\n\t\t\t\t\tthis._scriptMethod(script2, SCRIPT_POST_INITIALIZE);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis._endLooping(wasLooping);\n\t}\n\t// Sets isLoopingThroughScripts to false and returns\n\t// its previous value\n\t_beginLooping() {\n\t\tconst looping = this._isLoopingThroughScripts;\n\t\tthis._isLoopingThroughScripts = true;\n\t\treturn looping;\n\t}\n\t// Restores isLoopingThroughScripts to the specified parameter\n\t// If all loops are over then remove destroyed scripts form the _scripts array\n\t_endLooping(wasLoopingBefore) {\n\t\tthis._isLoopingThroughScripts = wasLoopingBefore;\n\t\tif (!this._isLoopingThroughScripts) {\n\t\t\tthis._removeDestroyedScripts();\n\t\t}\n\t}\n\t// We also need this handler because it is fired\n\t// when value === old instead of onEnable and onDisable\n\t// which are only fired when value !== old\n\t_onSetEnabled(prop, old, value) {\n\t\tthis._beingEnabled = true;\n\t\tthis._checkState();\n\t\tthis._beingEnabled = false;\n\t}\n\t_checkState() {\n\t\tconst state = this.enabled && this.entity.enabled;\n\t\tif (state === this._oldState) {\n\t\t\treturn;\n\t\t}\n\t\tthis._oldState = state;\n\t\tthis.fire(state ? \"enable\" : \"disable\");\n\t\tthis.fire(\"state\", state);\n\t\tif (state) {\n\t\t\tthis.system._addComponentToEnabled(this);\n\t\t} else {\n\t\t\tthis.system._removeComponentFromEnabled(this);\n\t\t}\n\t\tconst wasLooping = this._beginLooping();\n\t\tfor (let i2 = 0, len = this.scripts.length; i2 < len; i2++) {\n\t\t\tconst script2 = this.scripts[i2];\n\t\t\tscript2.once(\"preInitialize\", () => {\n\t\t\t\tthis.initializeAttributes(script2);\n\t\t\t});\n\t\t\tscript2.enabled = script2._enabled;\n\t\t}\n\t\tthis._endLooping(wasLooping);\n\t}\n\tonBeforeRemove() {\n\t\tthis.fire(\"remove\");\n\t\tconst wasLooping = this._beginLooping();\n\t\tfor (let i2 = 0; i2 < this.scripts.length; i2++) {\n\t\t\tconst script2 = this.scripts[i2];\n\t\t\tif (!script2) continue;\n\t\t\tthis.destroy(script2.__scriptType.__name);\n\t\t}\n\t\tthis._endLooping(wasLooping);\n\t}\n\t_removeDestroyedScripts() {\n\t\tconst len = this._destroyedScripts.length;\n\t\tif (!len) return;\n\t\tfor (let i2 = 0; i2 < len; i2++) {\n\t\t\tconst script2 = this._destroyedScripts[i2];\n\t\t\tthis._removeScriptInstance(script2);\n\t\t}\n\t\tthis._destroyedScripts.length = 0;\n\t\tthis._resetExecutionOrder(0, this._scripts.length);\n\t}\n\t_onInitializeAttributes() {\n\t\tfor (let i2 = 0, len = this.scripts.length; i2 < len; i2++) {\n\t\t\tconst script2 = this.scripts[i2];\n\t\t\tthis.initializeAttributes(script2);\n\t\t}\n\t}\n\tinitializeAttributes(script2) {\n\t\tif (script2 instanceof ScriptType) {\n\t\t\tscript2.__initializeAttributes();\n\t\t} else {\n\t\t\tconst name = script2.__scriptType.__name;\n\t\t\tconst data2 = this._attributeDataMap.get(name);\n\t\t\tif (!data2) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst schema = this.system.app.scripts?.getSchema(name);\n\t\t\tif (!schema) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tassignAttributesToScript(this.system.app, schema.attributes, data2, script2);\n\t\t}\n\t}\n\t_scriptMethod(script2, method, arg) {\n\t\tscript2[method](arg);\n\t}\n\t_onInitialize() {\n\t\tconst scripts = this._scripts;\n\t\tconst wasLooping = this._beginLooping();\n\t\tfor (let i2 = 0, len = scripts.length; i2 < len; i2++) {\n\t\t\tconst script2 = scripts[i2];\n\t\t\tif (!script2._initialized && script2.enabled) {\n\t\t\t\tscript2._initialized = true;\n\t\t\t\tif (script2.initialize) {\n\t\t\t\t\tthis._scriptMethod(script2, SCRIPT_INITIALIZE);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis._endLooping(wasLooping);\n\t}\n\t_onPostInitialize() {\n\t\tthis.onPostStateChange();\n\t}\n\t_onUpdate(dt) {\n\t\tconst list = this._updateList;\n\t\tif (!list.length) return;\n\t\tconst wasLooping = this._beginLooping();\n\t\tfor (list.loopIndex = 0; list.loopIndex < list.length; list.loopIndex++) {\n\t\t\tconst script2 = list.items[list.loopIndex];\n\t\t\tif (script2.enabled) {\n\t\t\t\tthis._scriptMethod(script2, SCRIPT_UPDATE, dt);\n\t\t\t}\n\t\t}\n\t\tthis._endLooping(wasLooping);\n\t}\n\t_onPostUpdate(dt) {\n\t\tconst list = this._postUpdateList;\n\t\tif (!list.length) return;\n\t\tconst wasLooping = this._beginLooping();\n\t\tfor (list.loopIndex = 0; list.loopIndex < list.length; list.loopIndex++) {\n\t\t\tconst script2 = list.items[list.loopIndex];\n\t\t\tif (script2.enabled) {\n\t\t\t\tthis._scriptMethod(script2, SCRIPT_POST_UPDATE, dt);\n\t\t\t}\n\t\t}\n\t\tthis._endLooping(wasLooping);\n\t}\n\t_awaitingInsertIndex(scriptName) {\n\t\tlet previous = null;\n\t\tfor (const name of this._declarationOrder) {\n\t\t\tif (name === scriptName) break;\n\t\t\tprevious = this._scriptsIndex[name]?.instance ?? previous;\n\t\t}\n\t\treturn previous ? this._scripts.indexOf(previous) + 1 : 0;\n\t}\n\t_insertScriptInstance(scriptInstance, index, scriptsLength) {\n\t\tif (index === -1) {\n\t\t\tthis._scripts.push(scriptInstance);\n\t\t\tscriptInstance.__executionOrder = scriptsLength;\n\t\t\tif (scriptInstance.update) {\n\t\t\t\tthis._updateList.append(scriptInstance);\n\t\t\t}\n\t\t\tif (scriptInstance.postUpdate) {\n\t\t\t\tthis._postUpdateList.append(scriptInstance);\n\t\t\t}\n\t\t} else {\n\t\t\tthis._scripts.splice(index, 0, scriptInstance);\n\t\t\tscriptInstance.__executionOrder = index;\n\t\t\tthis._resetExecutionOrder(index + 1, scriptsLength + 1);\n\t\t\tif (scriptInstance.update) {\n\t\t\t\tthis._updateList.insert(scriptInstance);\n\t\t\t}\n\t\t\tif (scriptInstance.postUpdate) {\n\t\t\t\tthis._postUpdateList.insert(scriptInstance);\n\t\t\t}\n\t\t}\n\t}\n\t_removeScriptInstance(scriptInstance) {\n\t\tconst idx = this._scripts.indexOf(scriptInstance);\n\t\tif (idx === -1) return idx;\n\t\tthis._scripts.splice(idx, 1);\n\t\tif (scriptInstance.update) {\n\t\t\tthis._updateList.remove(scriptInstance);\n\t\t}\n\t\tif (scriptInstance.postUpdate) {\n\t\t\tthis._postUpdateList.remove(scriptInstance);\n\t\t}\n\t\treturn idx;\n\t}\n\t_resetExecutionOrder(startIndex, scriptsLength) {\n\t\tfor (let i2 = startIndex; i2 < scriptsLength; i2++) {\n\t\t\tthis._scripts[i2].__executionOrder = i2;\n\t\t}\n\t}\n\t_resolveEntityScriptAttribute(attribute, attributeName, oldValue, useGuid, newAttributes, duplicatedIdsMap) {\n\t\tif (attribute.array) {\n\t\t\tconst len = oldValue.length;\n\t\t\tif (!len) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst newGuidArray = oldValue.slice();\n\t\t\tfor (let i2 = 0; i2 < len; i2++) {\n\t\t\t\tconst guid2 = newGuidArray[i2] instanceof Entity ? newGuidArray[i2].guid : newGuidArray[i2];\n\t\t\t\tif (duplicatedIdsMap[guid2]) {\n\t\t\t\t\tnewGuidArray[i2] = useGuid ? duplicatedIdsMap[guid2].guid : duplicatedIdsMap[guid2];\n\t\t\t\t}\n\t\t\t}\n\t\t\tnewAttributes[attributeName] = newGuidArray;\n\t\t} else {\n\t\t\tif (oldValue instanceof Entity) {\n\t\t\t\toldValue = oldValue.guid;\n\t\t\t} else if (typeof oldValue !== \"string\") {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (duplicatedIdsMap[oldValue]) {\n\t\t\t\tnewAttributes[attributeName] = duplicatedIdsMap[oldValue];\n\t\t\t}\n\t\t}\n\t}\n\thas(nameOrType) {\n\t\tif (typeof nameOrType === \"string\") {\n\t\t\treturn !!this._scriptsIndex[nameOrType];\n\t\t}\n\t\tif (!nameOrType) return false;\n\t\tconst scriptType = nameOrType;\n\t\tconst scriptName = scriptType.__name;\n\t\tconst scriptData = this._scriptsIndex[scriptName];\n\t\tconst scriptInstance = scriptData && scriptData.instance;\n\t\treturn scriptInstance instanceof scriptType;\n\t}\n\tget(nameOrType) {\n\t\tif (typeof nameOrType === \"string\") {\n\t\t\tconst data2 = this._scriptsIndex[nameOrType];\n\t\t\treturn data2 ? data2.instance : null;\n\t\t}\n\t\tif (!nameOrType) return null;\n\t\tconst scriptType = nameOrType;\n\t\tconst scriptName = scriptType.__name;\n\t\tconst scriptData = this._scriptsIndex[scriptName];\n\t\tconst scriptInstance = scriptData && scriptData.instance;\n\t\treturn scriptInstance instanceof scriptType ? scriptInstance : null;\n\t}\n\tcreate(nameOrType, args = {}) {\n\t\tconst self2 = this;\n\t\tlet scriptType = nameOrType;\n\t\tlet scriptName = nameOrType;\n\t\tif (typeof scriptType === \"string\") {\n\t\t\tscriptType = this.system.app.scripts.get(scriptType);\n\t\t} else if (scriptType) {\n\t\t\tconst inferredScriptName = getScriptName(scriptType);\n\t\t\tconst ownScriptName = Object.prototype.hasOwnProperty.call(scriptType, \"scriptName\") && scriptType.scriptName;\n\t\t\tif (!(scriptType.prototype instanceof ScriptType) && !ownScriptName) {\n\t\t\t}\n\t\t\tif (!Object.prototype.hasOwnProperty.call(scriptType, \"__name\")) {\n\t\t\t\tscriptType.__name = getScriptRegistryName(scriptType);\n\t\t\t}\n\t\t\tscriptName = scriptType.__name;\n\t\t\tif (!scriptName) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\t\tif (scriptType) {\n\t\t\tif (!this._scriptsIndex[scriptName] || !this._scriptsIndex[scriptName].instance) {\n\t\t\t\tconst scriptInstance = new scriptType({\n\t\t\t\t\tapp: this.system.app,\n\t\t\t\t\tentity: this.entity,\n\t\t\t\t\tenabled: args.hasOwnProperty(\"enabled\") ? args.enabled : true,\n\t\t\t\t\tattributes: args.attributes || {}\n\t\t\t\t});\n\t\t\t\tif (args.properties && typeof args.properties === \"object\") {\n\t\t\t\t\tObject.assign(scriptInstance, args.properties);\n\t\t\t\t}\n\t\t\t\tif (!(scriptInstance instanceof ScriptType) && args.attributes) {\n\t\t\t\t\tthis._attributeDataMap.set(scriptName, { ...args.attributes });\n\t\t\t\t}\n\t\t\t\tconst len = this._scripts.length;\n\t\t\t\tlet ind = -1;\n\t\t\t\tif (typeof args.ind === \"number\" && args.ind !== -1 && len > args.ind) {\n\t\t\t\t\tind = args.ind;\n\t\t\t\t}\n\t\t\t\tthis._insertScriptInstance(scriptInstance, ind, len);\n\t\t\t\tif (!this._scriptsIndex[scriptName]) {\n\t\t\t\t\tthis._declarationOrder.push(scriptName);\n\t\t\t\t}\n\t\t\t\tthis._scriptsIndex[scriptName] = {\n\t\t\t\t\tinstance: scriptInstance,\n\t\t\t\t\tonSwap: function() {\n\t\t\t\t\t\tself2.swap(scriptName);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tthis[scriptName] = scriptInstance;\n\t\t\t\tif (!args.preloading) {\n\t\t\t\t\tthis.initializeAttributes(scriptInstance);\n\t\t\t\t}\n\t\t\t\tthis.fire(\"create\", scriptName, scriptInstance);\n\t\t\t\tthis.fire(`create:${scriptName}`, scriptInstance);\n\t\t\t\tthis.system.app.scripts.on(`swap:${scriptName}`, this._scriptsIndex[scriptName].onSwap);\n\t\t\t\tif (!args.preloading) {\n\t\t\t\t\tif (scriptInstance.enabled && !scriptInstance._initialized) {\n\t\t\t\t\t\tscriptInstance._initialized = true;\n\t\t\t\t\t\tif (scriptInstance.initialize) {\n\t\t\t\t\t\t\tthis._scriptMethod(scriptInstance, SCRIPT_INITIALIZE);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (scriptInstance.enabled && !scriptInstance._postInitialized) {\n\t\t\t\t\t\tscriptInstance._postInitialized = true;\n\t\t\t\t\t\tif (scriptInstance.postInitialize) {\n\t\t\t\t\t\t\tthis._scriptMethod(scriptInstance, SCRIPT_POST_INITIALIZE);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn scriptInstance;\n\t\t\t}\n\t\t} else {\n\t\t\tif (!this._scriptsIndex[scriptName]) {\n\t\t\t\tthis._declarationOrder.push(scriptName);\n\t\t\t}\n\t\t\tthis._scriptsIndex[scriptName] = {\n\t\t\t\tawaiting: true,\n\t\t\t\tind: this._scripts.length,\n\t\t\t\t// remember what the script was asked to be created with, the deferred creation in\n\t\t\t\t// ScriptRegistry#add has nothing else to go on for a script that was not declared\n\t\t\t\t// through component data\n\t\t\t\tenabled: args.hasOwnProperty(\"enabled\") ? args.enabled : true,\n\t\t\t\tattributes: args.attributes,\n\t\t\t\tproperties: args.properties\n\t\t\t};\n\t\t}\n\t\treturn null;\n\t}\n\tdestroy(nameOrType) {\n\t\tlet scriptName = nameOrType;\n\t\tlet scriptType = nameOrType;\n\t\tif (typeof scriptType === \"string\") {\n\t\t\tscriptType = this.system.app.scripts.get(scriptType);\n\t\t} else if (scriptType) {\n\t\t\tscriptName = scriptType.__name;\n\t\t}\n\t\tconst scriptData = this._scriptsIndex[scriptName];\n\t\tdelete this._scriptsIndex[scriptName];\n\t\tif (!scriptData) return false;\n\t\tconst declarationIndex = this._declarationOrder.indexOf(scriptName);\n\t\tif (declarationIndex !== -1) {\n\t\t\tthis._declarationOrder.splice(declarationIndex, 1);\n\t\t}\n\t\tthis._attributeDataMap.delete(scriptName);\n\t\tconst scriptInstance = scriptData.instance;\n\t\tif (scriptInstance && !scriptInstance._destroyed) {\n\t\t\tscriptInstance.enabled = false;\n\t\t\tscriptInstance._destroyed = true;\n\t\t\tif (!this._isLoopingThroughScripts) {\n\t\t\t\tconst ind = this._removeScriptInstance(scriptInstance);\n\t\t\t\tif (ind >= 0) {\n\t\t\t\t\tthis._resetExecutionOrder(ind, this._scripts.length);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis._destroyedScripts.push(scriptInstance);\n\t\t\t}\n\t\t}\n\t\tthis.system.app.scripts.off(`swap:${scriptName}`, scriptData.onSwap);\n\t\tdelete this[scriptName];\n\t\tthis.fire(\"destroy\", scriptName, scriptInstance || null);\n\t\tthis.fire(`destroy:${scriptName}`, scriptInstance || null);\n\t\tif (scriptInstance) {\n\t\t\tscriptInstance.fire(\"destroy\");\n\t\t}\n\t\treturn true;\n\t}\n\tswap(nameOrType) {\n\t\tlet scriptName = nameOrType;\n\t\tlet scriptType = nameOrType;\n\t\tif (typeof scriptType === \"string\") {\n\t\t\tscriptType = this.system.app.scripts.get(scriptType);\n\t\t} else if (scriptType) {\n\t\t\tscriptName = scriptType.__name;\n\t\t}\n\t\tconst old = this._scriptsIndex[scriptName];\n\t\tif (!old || !old.instance) return false;\n\t\tconst scriptInstanceOld = old.instance;\n\t\tconst ind = this._scripts.indexOf(scriptInstanceOld);\n\t\tconst scriptInstance = new scriptType({\n\t\t\tapp: this.system.app,\n\t\t\tentity: this.entity,\n\t\t\tenabled: scriptInstanceOld.enabled,\n\t\t\tattributes: scriptInstanceOld.__attributes\n\t\t});\n\t\tif (!scriptInstance.swap) {\n\t\t\treturn false;\n\t\t}\n\t\tthis.initializeAttributes(scriptInstance);\n\t\tthis._scripts[ind] = scriptInstance;\n\t\tthis._scriptsIndex[scriptName].instance = scriptInstance;\n\t\tthis[scriptName] = scriptInstance;\n\t\tscriptInstance.__executionOrder = ind;\n\t\tif (scriptInstanceOld.update) {\n\t\t\tthis._updateList.remove(scriptInstanceOld);\n\t\t}\n\t\tif (scriptInstanceOld.postUpdate) {\n\t\t\tthis._postUpdateList.remove(scriptInstanceOld);\n\t\t}\n\t\tif (scriptInstance.update) {\n\t\t\tthis._updateList.insert(scriptInstance);\n\t\t}\n\t\tif (scriptInstance.postUpdate) {\n\t\t\tthis._postUpdateList.insert(scriptInstance);\n\t\t}\n\t\tthis._scriptMethod(scriptInstance, SCRIPT_SWAP, scriptInstanceOld);\n\t\tthis.fire(\"swap\", scriptName, scriptInstance);\n\t\tthis.fire(`swap:${scriptName}`, scriptInstance);\n\t\treturn true;\n\t}\n\tresolveDuplicatedEntityReferenceProperties(oldScriptComponent, duplicatedIdsMap) {\n\t\tconst newScriptComponent = this.entity.script;\n\t\tfor (const scriptName in oldScriptComponent._scriptsIndex) {\n\t\t\tconst scriptType = this.system.app.scripts.get(scriptName);\n\t\t\tif (!scriptType) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst script2 = oldScriptComponent._scriptsIndex[scriptName];\n\t\t\tif (!script2 || !script2.instance) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst newAttributesRaw = newScriptComponent[scriptName].__attributesRaw ?? newScriptComponent._attributeDataMap.get(scriptName);\n\t\t\tconst newAttributes = newScriptComponent[scriptName].__attributes;\n\t\t\tif (!newAttributesRaw && !newAttributes) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst useGuid = !!newAttributesRaw;\n\t\t\tconst oldAttributes = script2.instance.__attributes ?? newScriptComponent._attributeDataMap.get(scriptName);\n\t\t\tfor (const attributeName in oldAttributes) {\n\t\t\t\tif (!oldAttributes[attributeName]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst attribute = scriptType.attributes?.get(attributeName) ?? this.system.app.scripts.getSchema(scriptName)?.attributes?.[attributeName];\n\t\t\t\tif (!attribute) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (attribute.type === \"entity\") {\n\t\t\t\t\tthis._resolveEntityScriptAttribute(\n\t\t\t\t\t\tattribute,\n\t\t\t\t\t\tattributeName,\n\t\t\t\t\t\toldAttributes[attributeName],\n\t\t\t\t\t\tuseGuid,\n\t\t\t\t\t\tnewAttributesRaw || newAttributes,\n\t\t\t\t\t\tduplicatedIdsMap\n\t\t\t\t\t);\n\t\t\t\t} else if (attribute.type === \"json\" && Array.isArray(attribute.schema)) {\n\t\t\t\t\tconst oldValue = oldAttributes[attributeName];\n\t\t\t\t\tconst newJsonValue = newAttributesRaw ? newAttributesRaw[attributeName] : newAttributes[attributeName];\n\t\t\t\t\tfor (let i2 = 0; i2 < attribute.schema.length; i2++) {\n\t\t\t\t\t\tconst field = attribute.schema[i2];\n\t\t\t\t\t\tif (field.type !== \"entity\") {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (attribute.array) {\n\t\t\t\t\t\t\tfor (let j = 0; j < oldValue.length; j++) {\n\t\t\t\t\t\t\t\tthis._resolveEntityScriptAttribute(\n\t\t\t\t\t\t\t\t\tfield,\n\t\t\t\t\t\t\t\t\tfield.name,\n\t\t\t\t\t\t\t\t\toldValue[j][field.name],\n\t\t\t\t\t\t\t\t\tuseGuid,\n\t\t\t\t\t\t\t\t\tnewJsonValue[j],\n\t\t\t\t\t\t\t\t\tduplicatedIdsMap\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis._resolveEntityScriptAttribute(\n\t\t\t\t\t\t\t\tfield,\n\t\t\t\t\t\t\t\tfield.name,\n\t\t\t\t\t\t\t\toldValue[field.name],\n\t\t\t\t\t\t\t\tuseGuid,\n\t\t\t\t\t\t\t\tnewJsonValue,\n\t\t\t\t\t\t\t\tduplicatedIdsMap\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tmove(nameOrType, ind) {\n\t\tconst len = this._scripts.length;\n\t\tif (ind >= len || ind < 0) {\n\t\t\treturn false;\n\t\t}\n\t\tlet scriptType = nameOrType;\n\t\tlet scriptName = nameOrType;\n\t\tif (typeof scriptName !== \"string\") {\n\t\t\tscriptName = nameOrType.__name;\n\t\t} else {\n\t\t\tscriptType = null;\n\t\t}\n\t\tconst scriptData = this._scriptsIndex[scriptName];\n\t\tif (!scriptData || !scriptData.instance) {\n\t\t\treturn false;\n\t\t}\n\t\tconst scriptInstance = scriptData.instance;\n\t\tif (scriptType && !(scriptInstance instanceof scriptType)) {\n\t\t\treturn false;\n\t\t}\n\t\tconst indOld = this._scripts.indexOf(scriptInstance);\n\t\tif (indOld === -1 || indOld === ind) {\n\t\t\treturn false;\n\t\t}\n\t\tthis._scripts.splice(ind, 0, this._scripts.splice(indOld, 1)[0]);\n\t\tthis._resetExecutionOrder(0, len);\n\t\tthis._updateList.sort();\n\t\tthis._postUpdateList.sort();\n\t\tthis.fire(\"move\", scriptName, scriptInstance, ind, indOld);\n\t\tthis.fire(`move:${scriptName}`, scriptInstance, ind, indOld);\n\t\treturn true;\n\t}\n};\n\nvar METHOD_INITIALIZE_ATTRIBUTES = \"_onInitializeAttributes\";\nvar METHOD_INITIALIZE = \"_onInitialize\";\nvar METHOD_POST_INITIALIZE = \"_onPostInitialize\";\nvar METHOD_UPDATE = \"_onUpdate\";\nvar METHOD_POST_UPDATE = \"_onPostUpdate\";\nvar executionOrderCounter = 0;\nvar ScriptComponentSystem = class extends ComponentSystem {\n\tconstructor(app2) {\n\t\tsuper(app2);\n\t\tthis.id = \"script\";\n\t\tthis.ComponentType = ScriptComponent;\n\t\tthis.extraDataProperties = [\"order\"];\n\t\tthis._components = new SortedLoopArray({\n\t\t\tsortBy: \"_executionOrder\"\n\t\t});\n\t\tthis._enabledComponents = new SortedLoopArray({\n\t\t\tsortBy: \"_executionOrder\"\n\t\t});\n\t\tthis.preloading = true;\n\t\tthis.on(\"beforeremove\", this.onBeforeRemove, this);\n\t\tthis.app.systems.on(\"initialize\", this._onInitialize, this);\n\t\tthis.app.systems.on(\"postInitialize\", this._onPostInitialize, this);\n\t\tthis.app.systems.on(\"update\", this._onUpdate, this);\n\t\tthis.app.systems.on(\"postUpdate\", this._onPostUpdate, this);\n\t}\n\tinitializeComponentData(component, data2) {\n\t\tcomponent._executionOrder = executionOrderCounter++;\n\t\tthis._components.append(component);\n\t\tif (executionOrderCounter > Number.MAX_SAFE_INTEGER) {\n\t\t\tthis._resetExecutionOrder();\n\t\t}\n\t\tcomponent.enabled = data2.hasOwnProperty(\"enabled\") ? !!data2.enabled : true;\n\t\tif (component.enabled && component.entity.enabled) {\n\t\t\tthis._enabledComponents.append(component);\n\t\t}\n\t\tif (data2.hasOwnProperty(\"order\") && data2.hasOwnProperty(\"scripts\")) {\n\t\t\tcomponent._scriptsData = data2.scripts;\n\t\t\tfor (let i2 = 0; i2 < data2.order.length; i2++) {\n\t\t\t\tcomponent.create(data2.order[i2], {\n\t\t\t\t\tenabled: data2.scripts[data2.order[i2]].enabled,\n\t\t\t\t\tattributes: data2.scripts[data2.order[i2]].attributes,\n\t\t\t\t\tpreloading: this.preloading\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\tcloneComponent(entity, clone) {\n\t\tconst order = [];\n\t\tconst scripts = {};\n\t\tfor (let i2 = 0; i2 < entity.script._scripts.length; i2++) {\n\t\t\tconst scriptInstance = entity.script._scripts[i2];\n\t\t\tconst scriptName = scriptInstance.__scriptType.__name;\n\t\t\torder.push(scriptName);\n\t\t\tconst attributes = { ...entity.script._attributeDataMap?.get(scriptName) };\n\t\t\tfor (const key in scriptInstance.__attributes) {\n\t\t\t\tattributes[key] = scriptInstance.__attributes[key];\n\t\t\t}\n\t\t\tscripts[scriptName] = {\n\t\t\t\tenabled: scriptInstance._enabled,\n\t\t\t\tattributes\n\t\t\t};\n\t\t}\n\t\tlet previousName = null;\n\t\tfor (const scriptName of entity.script._declarationOrder) {\n\t\t\tconst indexData = entity.script._scriptsIndex[scriptName];\n\t\t\tif (!indexData?.awaiting) {\n\t\t\t\tif (indexData?.instance) previousName = scriptName;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst ind = previousName === null ? 0 : order.indexOf(previousName) + 1;\n\t\t\torder.splice(ind, 0, scriptName);\n\t\t\tpreviousName = scriptName;\n\t\t\tscripts[scriptName] = {\n\t\t\t\tenabled: indexData.enabled,\n\t\t\t\tattributes: { ...indexData.attributes }\n\t\t\t};\n\t\t}\n\t\tconst data2 = {\n\t\t\tenabled: entity.script.enabled,\n\t\t\torder,\n\t\t\tscripts\n\t\t};\n\t\treturn this.addComponent(clone, data2);\n\t}\n\t_resetExecutionOrder() {\n\t\texecutionOrderCounter = 0;\n\t\tfor (let i2 = 0, len = this._components.length; i2 < len; i2++) {\n\t\t\tthis._components.items[i2]._executionOrder = executionOrderCounter++;\n\t\t}\n\t}\n\t_callComponentMethod(components2, name, dt) {\n\t\tfor (components2.loopIndex = 0; components2.loopIndex < components2.length; components2.loopIndex++) {\n\t\t\tcomponents2.items[components2.loopIndex][name](dt);\n\t\t}\n\t}\n\t_onInitialize() {\n\t\tthis.preloading = false;\n\t\tthis._callComponentMethod(this._components, METHOD_INITIALIZE_ATTRIBUTES);\n\t\tthis._callComponentMethod(this._enabledComponents, METHOD_INITIALIZE);\n\t}\n\t_onPostInitialize() {\n\t\tthis._callComponentMethod(this._enabledComponents, METHOD_POST_INITIALIZE);\n\t}\n\t_onUpdate(dt) {\n\t\tthis._callComponentMethod(this._enabledComponents, METHOD_UPDATE, dt);\n\t}\n\t_onPostUpdate(dt) {\n\t\tthis._callComponentMethod(this._enabledComponents, METHOD_POST_UPDATE, dt);\n\t}\n\t// inserts the component into the enabledComponents array\n\t// which finds the right slot based on component._executionOrder\n\t_addComponentToEnabled(component) {\n\t\tthis._enabledComponents.insert(component);\n\t}\n\t// removes the component from the enabledComponents array\n\t_removeComponentFromEnabled(component) {\n\t\tthis._enabledComponents.remove(component);\n\t}\n\tonBeforeRemove(entity, component) {\n\t\tconst ind = this._components.items.indexOf(component);\n\t\tif (ind >= 0) {\n\t\t\tcomponent.onBeforeRemove();\n\t\t}\n\t\tthis._removeComponentFromEnabled(component);\n\t\tthis._components.remove(component);\n\t}\n\tdestroy() {\n\t\tsuper.destroy();\n\t\tthis.app.systems.off(\"initialize\", this._onInitialize, this);\n\t\tthis.app.systems.off(\"postInitialize\", this._onPostInitialize, this);\n\t\tthis.app.systems.off(\"update\", this._onUpdate, this);\n\t\tthis.app.systems.off(\"postUpdate\", this._onPostUpdate, this);\n\t}\n};\n\nfunction UnifiedSortWorker() {\n\tconst myself = typeof self !== \"undefined\" && self || __require(\"node:worker_threads\").parentPort;\n\tconst centersMap = /* @__PURE__ */ new Map();\n\tlet centersData;\n\tlet distances;\n\tlet countBuffer;\n\tlet indexMap;\n\tlet _radialSort = false;\n\tlet _warnedSortKeyOverflow = false;\n\tconst numBins = 32;\n\tconst binBase = new Float32Array(numBins + 1);\n\tconst binDivider = new Float32Array(numBins + 1);\n\tconst binWeightsUtil = new GSplatSortBinWeights();\n\tconst unpackBinWeights = (binWeights) => {\n\t\tfor (let i2 = 0; i2 < numBins; i2++) {\n\t\t\tbinBase[i2] = binWeights[i2 * 2];\n\t\t\tbinDivider[i2] = binWeights[i2 * 2 + 1];\n\t\t}\n\t\tbinBase[numBins] = binBase[numBins - 1] + binDivider[numBins - 1];\n\t\tbinDivider[numBins] = 0;\n\t};\n\tconst evaluateSortKeysCommon = (sortParams, minDist, range, distances2, countBuffer2, centersData2, processSplatFn) => {\n\t\tconst { ids: ids3, intervals } = centersData2;\n\t\tconst invBinRange = numBins / range;\n\t\tlet compactIdx = 0;\n\t\tfor (let paramIdx = 0; paramIdx < sortParams.length; paramIdx++) {\n\t\t\tconst params = sortParams[paramIdx];\n\t\t\tconst id14 = ids3[paramIdx];\n\t\t\tconst centers = centersMap.get(id14);\n\t\t\tif (!centers) {\n\t\t\t\tconsole.error(\"UnifiedSortWorker: No centers found for id\", id14);\n\t\t\t}\n\t\t\tconst intervalsArray = intervals[paramIdx].length > 0 ? intervals[paramIdx] : [0, centers.length / 3];\n\t\t\tfor (let i2 = 0; i2 < intervalsArray.length; i2 += 2) {\n\t\t\t\tconst intervalStart = intervalsArray[i2] * 3;\n\t\t\t\tconst intervalEnd = intervalsArray[i2 + 1] * 3;\n\t\t\t\tcompactIdx = processSplatFn(\n\t\t\t\t\tcenters,\n\t\t\t\t\tparams,\n\t\t\t\t\tintervalStart,\n\t\t\t\t\tintervalEnd,\n\t\t\t\t\tcompactIdx,\n\t\t\t\t\tinvBinRange,\n\t\t\t\t\tminDist,\n\t\t\t\t\trange,\n\t\t\t\t\tdistances2,\n\t\t\t\t\tcountBuffer2\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t};\n\tconst evaluateSortKeysLinear = (sortParams, minDist, range, distances2, countBuffer2, centersData2) => {\n\t\tevaluateSortKeysCommon(\n\t\t\tsortParams,\n\t\t\tminDist,\n\t\t\trange,\n\t\t\tdistances2,\n\t\t\tcountBuffer2,\n\t\t\tcentersData2,\n\t\t\t(centers, params, intervalStart, intervalEnd, compactIdx, invBinRange, minDist2, range2, distances3, countBuffer3) => {\n\t\t\t\tconst { transformedDirection, offset: offset3, scale: scale2 } = params;\n\t\t\t\tconst dx = transformedDirection.x;\n\t\t\t\tconst dy = transformedDirection.y;\n\t\t\t\tconst dz = transformedDirection.z;\n\t\t\t\tconst sdx = dx * scale2;\n\t\t\t\tconst sdy = dy * scale2;\n\t\t\t\tconst sdz = dz * scale2;\n\t\t\t\tconst add = offset3 - minDist2;\n\t\t\t\tfor (let srcIndex = intervalStart; srcIndex < intervalEnd; srcIndex += 3) {\n\t\t\t\t\tconst x3 = centers[srcIndex];\n\t\t\t\t\tconst y2 = centers[srcIndex + 1];\n\t\t\t\t\tconst z2 = centers[srcIndex + 2];\n\t\t\t\t\tconst dist = x3 * sdx + y2 * sdy + z2 * sdz + add;\n\t\t\t\t\tconst d = dist * invBinRange;\n\t\t\t\t\tconst bin = d >>> 0;\n\t\t\t\t\tconst sortKey = binBase[bin] + binDivider[bin] * (d - bin) >>> 0;\n\t\t\t\t\tdistances3[compactIdx++] = sortKey;\n\t\t\t\t\tcountBuffer3[sortKey]++;\n\t\t\t\t}\n\t\t\t\treturn compactIdx;\n\t\t\t}\n\t\t);\n\t};\n\tconst evaluateSortKeysRadial = (sortParams, minDist, range, distances2, countBuffer2, centersData2) => {\n\t\tevaluateSortKeysCommon(\n\t\t\tsortParams,\n\t\t\tminDist,\n\t\t\trange,\n\t\t\tdistances2,\n\t\t\tcountBuffer2,\n\t\t\tcentersData2,\n\t\t\t(centers, params, intervalStart, intervalEnd, compactIdx, invBinRange, minDist2, range2, distances3, countBuffer3) => {\n\t\t\t\tconst { transformedPosition, scale: scale2 } = params;\n\t\t\t\tconst cx = transformedPosition.x;\n\t\t\t\tconst cy = transformedPosition.y;\n\t\t\t\tconst cz = transformedPosition.z;\n\t\t\t\tfor (let srcIndex = intervalStart; srcIndex < intervalEnd; srcIndex += 3) {\n\t\t\t\t\tconst dx = centers[srcIndex] - cx;\n\t\t\t\t\tconst dy = centers[srcIndex + 1] - cy;\n\t\t\t\t\tconst dz = centers[srcIndex + 2] - cz;\n\t\t\t\t\tconst distSq = dx * dx + dy * dy + dz * dz;\n\t\t\t\t\tconst dist = Math.sqrt(distSq) * scale2;\n\t\t\t\t\tconst invertedDist = range2 - dist;\n\t\t\t\t\tconst d = invertedDist * invBinRange;\n\t\t\t\t\tconst bin = d >>> 0;\n\t\t\t\t\tconst sortKey = binBase[bin] + binDivider[bin] * (d - bin) >>> 0;\n\t\t\t\t\tdistances3[compactIdx++] = sortKey;\n\t\t\t\t\tcountBuffer3[sortKey]++;\n\t\t\t\t}\n\t\t\t\treturn compactIdx;\n\t\t\t}\n\t\t);\n\t};\n\tconst countingSort = (bucketCount, countBuffer2, numVertices, distances2, order) => {\n\t\tfor (let i2 = 1; i2 < bucketCount; i2++) {\n\t\t\tcountBuffer2[i2] += countBuffer2[i2 - 1];\n\t\t}\n\t\tconst validCount = countBuffer2[bucketCount - 1];\n\t\tif (validCount !== numVertices && !_warnedSortKeyOverflow) {\n\t\t\t_warnedSortKeyOverflow = true;\n\t\t\tconsole.warn(`[SortWorker] ${numVertices - validCount} splats lost due to sortKey overflow. Check resource AABB bounds contain all the splats.`);\n\t\t}\n\t\tfor (let i2 = 0; i2 < numVertices; i2++) {\n\t\t\tconst distance = distances2[i2];\n\t\t\tconst destIndex = --countBuffer2[distance];\n\t\t\torder[destIndex] = indexMap[i2];\n\t\t}\n\t};\n\tconst computeEffectiveDistanceRangeLinear = (sortParams) => {\n\t\tlet minDist = Infinity;\n\t\tlet maxDist = -Infinity;\n\t\tfor (let paramIdx = 0; paramIdx < sortParams.length; paramIdx++) {\n\t\t\tconst params = sortParams[paramIdx];\n\t\t\tconst { transformedDirection, offset: offset3, scale: scale2, aabbMin, aabbMax } = params;\n\t\t\tconst dx = transformedDirection.x;\n\t\t\tconst dy = transformedDirection.y;\n\t\t\tconst dz = transformedDirection.z;\n\t\t\tconst pxMin = dx >= 0 ? aabbMin[0] : aabbMax[0];\n\t\t\tconst pyMin = dy >= 0 ? aabbMin[1] : aabbMax[1];\n\t\t\tconst pzMin = dz >= 0 ? aabbMin[2] : aabbMax[2];\n\t\t\tconst pxMax = dx >= 0 ? aabbMax[0] : aabbMin[0];\n\t\t\tconst pyMax = dy >= 0 ? aabbMax[1] : aabbMin[1];\n\t\t\tconst pzMax = dz >= 0 ? aabbMax[2] : aabbMin[2];\n\t\t\tconst dMin = pxMin * dx + pyMin * dy + pzMin * dz;\n\t\t\tconst dMax = pxMax * dx + pyMax * dy + pzMax * dz;\n\t\t\tconst eMin = dMin * scale2 + offset3;\n\t\t\tconst eMax = dMax * scale2 + offset3;\n\t\t\tconst localMin = Math.min(eMin, eMax);\n\t\t\tconst localMax = Math.max(eMin, eMax);\n\t\t\tif (localMin < minDist) minDist = localMin;\n\t\t\tif (localMax > maxDist) maxDist = localMax;\n\t\t}\n\t\tif (minDist === Infinity) {\n\t\t\tminDist = 0;\n\t\t\tmaxDist = 0;\n\t\t}\n\t\treturn { minDist, maxDist };\n\t};\n\tconst computeEffectiveDistanceRangeRadial = (sortParams) => {\n\t\tlet maxDist = -Infinity;\n\t\tfor (let paramIdx = 0; paramIdx < sortParams.length; paramIdx++) {\n\t\t\tconst params = sortParams[paramIdx];\n\t\t\tconst { transformedPosition, scale: scale2, aabbMin, aabbMax } = params;\n\t\t\tconst cx = transformedPosition.x;\n\t\t\tconst cy = transformedPosition.y;\n\t\t\tconst cz = transformedPosition.z;\n\t\t\tfor (let i2 = 0; i2 < 8; i2++) {\n\t\t\t\tconst px = i2 & 1 ? aabbMax[0] : aabbMin[0];\n\t\t\t\tconst py = i2 & 2 ? aabbMax[1] : aabbMin[1];\n\t\t\t\tconst pz = i2 & 4 ? aabbMax[2] : aabbMin[2];\n\t\t\t\tconst dx = px - cx;\n\t\t\t\tconst dy = py - cy;\n\t\t\t\tconst dz = pz - cz;\n\t\t\t\tconst distSq = dx * dx + dy * dy + dz * dz;\n\t\t\t\tconst dist = Math.sqrt(distSq) * scale2;\n\t\t\t\tif (dist > maxDist) maxDist = dist;\n\t\t\t}\n\t\t}\n\t\tconst minDist = 0;\n\t\tif (maxDist < 0) {\n\t\t\tmaxDist = 0;\n\t\t}\n\t\treturn { minDist, maxDist };\n\t};\n\tconst sort = (sortParams, order, centersData2) => {\n\t\tconst sortStartTime = performance.now();\n\t\tconst { minDist, maxDist } = _radialSort ? computeEffectiveDistanceRangeRadial(sortParams) : computeEffectiveDistanceRangeLinear(sortParams);\n\t\tconst numVertices = centersData2.totalActiveSplats;\n\t\tconst compareBits = Math.max(10, Math.min(20, Math.round(Math.log2(numVertices / 4))));\n\t\tconst bucketCount = 2 ** compareBits + 1;\n\t\tif (distances?.length !== numVertices) {\n\t\t\tdistances = new Uint32Array(numVertices);\n\t\t}\n\t\tif (!countBuffer || countBuffer.length !== bucketCount) {\n\t\t\tcountBuffer = new Uint32Array(bucketCount);\n\t\t} else {\n\t\t\tcountBuffer.fill(0);\n\t\t}\n\t\tconst range = maxDist - minDist;\n\t\tconst cameraBin = GSplatSortBinWeights.computeCameraBin(_radialSort, minDist, range);\n\t\tconst binWeights = binWeightsUtil.compute(cameraBin, bucketCount);\n\t\tunpackBinWeights(binWeights);\n\t\tif (_radialSort) {\n\t\t\tevaluateSortKeysRadial(sortParams, minDist, range, distances, countBuffer, centersData2);\n\t\t} else {\n\t\t\tevaluateSortKeysLinear(sortParams, minDist, range, distances, countBuffer, centersData2);\n\t\t}\n\t\tcountingSort(bucketCount, countBuffer, numVertices, distances, order);\n\t\tconst count = numVertices;\n\t\tconst sortTime = performance.now() - sortStartTime;\n\t\tconst transferList = [order.buffer];\n\t\tconst response = {\n\t\t\torder: order.buffer,\n\t\t\tcount,\n\t\t\tversion: centersData2.version,\n\t\t\tsortTime\n\t\t};\n\t\tmyself.postMessage(response, transferList);\n\t};\n\tconst buildIndexMap = (data2) => {\n\t\tconst { ids: ids3, pixelOffsets, intervals, totalActiveSplats } = data2;\n\t\tif (!indexMap || indexMap.length < totalActiveSplats) {\n\t\t\tindexMap = new Uint32Array(totalActiveSplats);\n\t\t}\n\t\tlet compactIdx = 0;\n\t\tfor (let paramIdx = 0; paramIdx < ids3.length; paramIdx++) {\n\t\t\tconst centers = centersMap.get(ids3[paramIdx]);\n\t\t\tconst offsets = pixelOffsets[paramIdx];\n\t\t\tconst intervalsArray = intervals[paramIdx].length > 0 ? intervals[paramIdx] : [0, centers.length / 3];\n\t\t\tfor (let i2 = 0; i2 < intervalsArray.length; i2 += 2) {\n\t\t\t\tlet workBufferIndex = offsets[i2 / 2];\n\t\t\t\tconst count = intervalsArray[i2 + 1] - intervalsArray[i2];\n\t\t\t\tfor (let j = 0; j < count; j++) {\n\t\t\t\t\tindexMap[compactIdx++] = workBufferIndex++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\tmyself.addEventListener(\"message\", (message) => {\n\t\tconst msgData = message.data ?? message;\n\t\tswitch (msgData.command) {\n\t\t\t// add centers to map\n\t\t\tcase \"addCenters\": {\n\t\t\t\tcentersMap.set(msgData.id, new Float32Array(msgData.centers));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\t// remove centers from map\n\t\t\tcase \"removeCenters\": {\n\t\t\t\tcentersMap.delete(msgData.id);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\t// sort\n\t\t\tcase \"sort\": {\n\t\t\t\t_radialSort = msgData.radialSorting || false;\n\t\t\t\tconst order = new Uint32Array(msgData.order);\n\t\t\t\tsort(msgData.sortParams, order, centersData);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\t// intervals\n\t\t\tcase \"intervals\": {\n\t\t\t\tcentersData = msgData;\n\t\t\t\tbuildIndexMap(centersData);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t});\n}\n\nvar GSplatSortBinWeights2 = class _GSplatSortBinWeights {\n\tstatic get NUM_BINS() {\n\t\treturn 32;\n\t}\n\tstatic get WEIGHT_TIERS() {\n\t\treturn [\n\t\t\t{ maxDistance: 0, weight: 40 },\n\t\t\t// Camera bin\n\t\t\t{ maxDistance: 2, weight: 20 },\n\t\t\t// Adjacent bins\n\t\t\t{ maxDistance: 5, weight: 8 },\n\t\t\t// Nearby bins\n\t\t\t{ maxDistance: 10, weight: 3 },\n\t\t\t// Medium distance\n\t\t\t{ maxDistance: Infinity, weight: 1 }\n\t\t\t// Far bins\n\t\t];\n\t}\n\tconstructor() {\n\t\tconst numBins = _GSplatSortBinWeights.NUM_BINS;\n\t\tconst weightTiers = _GSplatSortBinWeights.WEIGHT_TIERS;\n\t\tthis.binWeights = new Float32Array(numBins * 2);\n\t\tthis.bitsPerBin = new Float32Array(numBins);\n\t\tthis.weightByDistance = new Float32Array(numBins);\n\t\tfor (let dist = 0; dist < numBins; dist++) {\n\t\t\tlet weight = 1;\n\t\t\tfor (let j = 0; j < weightTiers.length; j++) {\n\t\t\t\tif (dist <= weightTiers[j].maxDistance) {\n\t\t\t\t\tweight = weightTiers[j].weight;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.weightByDistance[dist] = weight;\n\t\t}\n\t\tthis.lastCameraBin = -1;\n\t\tthis.lastBucketCount = -1;\n\t}\n\tstatic computeCameraBin(radialSort, minDist, range) {\n\t\tconst numBins = _GSplatSortBinWeights.NUM_BINS;\n\t\tif (radialSort) {\n\t\t\treturn numBins - 1;\n\t\t}\n\t\tconst cameraOffsetFromRangeStart = -minDist;\n\t\tconst cameraBinFloat = cameraOffsetFromRangeStart / range * numBins;\n\t\treturn Math.max(0, Math.min(numBins - 1, Math.floor(cameraBinFloat)));\n\t}\n\tcompute(cameraBin, bucketCount) {\n\t\tif (cameraBin === this.lastCameraBin && bucketCount === this.lastBucketCount) {\n\t\t\treturn this.binWeights;\n\t\t}\n\t\tthis.lastCameraBin = cameraBin;\n\t\tthis.lastBucketCount = bucketCount;\n\t\tconst numBins = _GSplatSortBinWeights.NUM_BINS;\n\t\tconst bitsPerBin = this.bitsPerBin;\n\t\tfor (let i2 = 0; i2 < numBins; i2++) {\n\t\t\tconst distFromCamera = Math.abs(i2 - cameraBin);\n\t\t\tbitsPerBin[i2] = this.weightByDistance[distFromCamera];\n\t\t}\n\t\tlet totalWeight = 0;\n\t\tfor (let i2 = 0; i2 < numBins; i2++) {\n\t\t\ttotalWeight += bitsPerBin[i2];\n\t\t}\n\t\tlet accumulated = 0;\n\t\tfor (let i2 = 0; i2 < numBins; i2++) {\n\t\t\tconst divider = Math.max(1, Math.floor(bitsPerBin[i2] / totalWeight * bucketCount));\n\t\t\tthis.binWeights[i2 * 2] = accumulated;\n\t\t\tthis.binWeights[i2 * 2 + 1] = divider;\n\t\t\taccumulated += divider;\n\t\t}\n\t\tif (accumulated > bucketCount) {\n\t\t\tconst excess = accumulated - bucketCount;\n\t\t\tconst lastDividerIdx = (numBins - 1) * 2 + 1;\n\t\t\tthis.binWeights[lastDividerIdx] = Math.max(1, this.binWeights[lastDividerIdx] - excess);\n\t\t}\n\t\treturn this.binWeights;\n\t}\n};\n\nvar _neededIds = /* @__PURE__ */ new Set();\nvar GSplatUnifiedSorter = class extends EventHandler {\n\tworker;\n\tbufferLength = 0;\n\tavailableOrderData = [];\n\t// track how many jobs are in flight\n\tjobsInFlight = 0;\n\t// true if we have new version to process\n\thasNewVersion = false;\n\tpendingSorted = null;\n\tcentersSet = /* @__PURE__ */ new Set();\n\t_destroyed = false;\n\tscene = null;\n\tconstructor(scene) {\n\t\tsuper();\n\t\tthis.scene = scene ?? null;\n\t\tconst workerSource = `\n\t\t\t\t\t\tconst GSplatSortBinWeights = ${GSplatSortBinWeights2.toString()};\n\t\t\t\t\t\t(${UnifiedSortWorker.toString()})()\n\t\t\t\t`;\n\t\tif (platform.environment === \"node\") {\n\t\t\tthis.worker = new Worker(workerSource, {\n\t\t\t\teval: true\n\t\t\t});\n\t\t\tthis.worker.on(\"message\", this.onSorted.bind(this));\n\t\t} else {\n\t\t\tthis.worker = new Worker(URL.createObjectURL(new Blob([workerSource], {\n\t\t\t\ttype: \"application/javascript\"\n\t\t\t})));\n\t\t\tthis.worker.addEventListener(\"message\", this.onSorted.bind(this));\n\t\t}\n\t}\n\tonSorted(message) {\n\t\tif (this._destroyed) {\n\t\t\treturn;\n\t\t}\n\t\tconst msgData = message.data ?? message;\n\t\tif (this.scene && msgData.sortTime !== void 0) {\n\t\t\tthis.scene.fire(\"gsplat:sorted\", msgData.sortTime);\n\t\t}\n\t\tconst orderData = new Uint32Array(msgData.order);\n\t\tthis.jobsInFlight--;\n\t\tif (this.pendingSorted) {\n\t\t\tthis.releaseOrderData(this.pendingSorted.orderData);\n\t\t}\n\t\tthis.pendingSorted = {\n\t\t\tcount: msgData.count,\n\t\t\tversion: msgData.version,\n\t\t\torderData\n\t\t};\n\t}\n\tapplyPendingSorted() {\n\t\tif (this.pendingSorted) {\n\t\t\tconst { count, version: version2, orderData } = this.pendingSorted;\n\t\t\tthis.pendingSorted = null;\n\t\t\tthis.fire(\"sorted\", count, version2, orderData);\n\t\t\tthis.releaseOrderData(orderData);\n\t\t}\n\t}\n\treleaseOrderData(orderData) {\n\t\tif (orderData.length === this.bufferLength) {\n\t\t\tthis.availableOrderData.push(orderData);\n\t\t}\n\t}\n\tdestroy() {\n\t\tthis._destroyed = true;\n\t\tthis.pendingSorted = null;\n\t\tthis.worker.terminate();\n\t\tthis.worker = null;\n\t}\n\tsetCenters(id14, centers) {\n\t\tif (centers) {\n\t\t\tif (!this.centersSet.has(id14)) {\n\t\t\t\tthis.centersSet.add(id14);\n\t\t\t\tconst centersBuffer = centers.buffer.slice();\n\t\t\t\tthis.worker.postMessage({\n\t\t\t\t\tcommand: \"addCenters\",\n\t\t\t\t\tid: id14,\n\t\t\t\t\tcenters: centersBuffer\n\t\t\t\t}, [centersBuffer]);\n\t\t\t}\n\t\t} else {\n\t\t\tif (this.centersSet.has(id14)) {\n\t\t\t\tthis.centersSet.delete(id14);\n\t\t\t\tthis.worker.postMessage({\n\t\t\t\t\tcommand: \"removeCenters\",\n\t\t\t\t\tid: id14\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\tupdateCentersForSplats(splats) {\n\t\tfor (const splat of splats) {\n\t\t\tconst id14 = splat.resource.id;\n\t\t\t_neededIds.add(id14);\n\t\t\tif (!this.centersSet.has(id14)) {\n\t\t\t\tthis.setCenters(id14, splat.resource.centers);\n\t\t\t}\n\t\t}\n\t\tfor (const id14 of this.centersSet) {\n\t\t\tif (!_neededIds.has(id14)) {\n\t\t\t\tthis.setCenters(id14, null);\n\t\t\t}\n\t\t}\n\t\t_neededIds.clear();\n\t}\n\tsetSortParameters(payload) {\n\t\tthis.hasNewVersion = true;\n\t\tconst { textureSize } = payload;\n\t\tconst newLength = textureSize * textureSize;\n\t\tif (newLength !== this.bufferLength) {\n\t\t\tthis.bufferLength = newLength;\n\t\t\tthis.availableOrderData.length = 0;\n\t\t}\n\t\tthis.worker.postMessage(payload);\n\t}\n\tsetSortParams(params, radialSorting) {\n\t\tif (this.hasNewVersion || this.jobsInFlight === 0) {\n\t\t\tlet orderData = this.availableOrderData.pop();\n\t\t\tif (!orderData) {\n\t\t\t\torderData = new Uint32Array(this.bufferLength);\n\t\t\t}\n\t\t\tthis.jobsInFlight++;\n\t\t\tthis.hasNewVersion = false;\n\t\t\tthis.worker.postMessage({\n\t\t\t\tcommand: \"sort\",\n\t\t\t\tsortParams: params,\n\t\t\t\tradialSorting,\n\t\t\t\torder: orderData.buffer\n\t\t\t}, [\n\t\t\t\torderData.buffer\n\t\t\t]);\n\t\t}\n\t}\n};\n\nvar MemBlock = class {\n\t_offset = 0;\n\t_size = 0;\n\t_free = true;\n\t_prev = null;\n\t_next = null;\n\t_prevFree = null;\n\t_nextFree = null;\n\t_bucket = -1;\n\tget offset() {\n\t\treturn this._offset;\n\t}\n\tget size() {\n\t\treturn this._size;\n\t}\n};\nvar BlockAllocator = class {\n\t_headAll = null;\n\t_tailAll = null;\n\t_freeBucketHeads = [];\n\t_pool = [];\n\t_capacity = 0;\n\t_usedSize = 0;\n\t_freeSize = 0;\n\t_freeRegionCount = 0;\n\t_growMultiplier;\n\tconstructor(capacity = 0, growMultiplier = 1.1) {\n\t\tthis._growMultiplier = growMultiplier;\n\t\tif (capacity > 0) {\n\t\t\tthis._capacity = capacity;\n\t\t\tthis._freeSize = capacity;\n\t\t\tconst block = this._obtain(0, capacity, true);\n\t\t\tthis._headAll = block;\n\t\t\tthis._tailAll = block;\n\t\t\tthis._addToBucket(block);\n\t\t}\n\t}\n\tget capacity() {\n\t\treturn this._capacity;\n\t}\n\tget usedSize() {\n\t\treturn this._usedSize;\n\t}\n\tget freeSize() {\n\t\treturn this._freeSize;\n\t}\n\tget fragmentation() {\n\t\treturn this._freeSize > 0 ? 1 - 1 / this._freeRegionCount : 0;\n\t}\n\t_bucketFor(size) {\n\t\treturn 31 - Math.clz32(size);\n\t}\n\t_addToBucket(block) {\n\t\tconst b = this._bucketFor(block._size);\n\t\tblock._bucket = b;\n\t\twhile (b >= this._freeBucketHeads.length) {\n\t\t\tthis._freeBucketHeads.push(null);\n\t\t}\n\t\tblock._prevFree = null;\n\t\tblock._nextFree = this._freeBucketHeads[b];\n\t\tif (this._freeBucketHeads[b]) this._freeBucketHeads[b]._prevFree = block;\n\t\tthis._freeBucketHeads[b] = block;\n\t\tthis._freeRegionCount++;\n\t}\n\t_removeFromBucket(block) {\n\t\tconst b = block._bucket;\n\t\tif (block._prevFree) block._prevFree._nextFree = block._nextFree;\n\t\telse this._freeBucketHeads[b] = block._nextFree;\n\t\tif (block._nextFree) block._nextFree._prevFree = block._prevFree;\n\t\tblock._prevFree = null;\n\t\tblock._nextFree = null;\n\t\tblock._bucket = -1;\n\t\tthis._freeRegionCount--;\n\t}\n\t_rebucket(block) {\n\t\tconst newBucket = this._bucketFor(block._size);\n\t\tif (newBucket !== block._bucket) {\n\t\t\tthis._removeFromBucket(block);\n\t\t\tthis._addToBucket(block);\n\t\t}\n\t}\n\t_obtain(offset3, size, free) {\n\t\tlet block;\n\t\tif (this._pool.length > 0) {\n\t\t\tblock = this._pool.pop();\n\t\t} else {\n\t\t\tblock = new MemBlock();\n\t\t}\n\t\tblock._offset = offset3;\n\t\tblock._size = size;\n\t\tblock._free = free;\n\t\tblock._prev = null;\n\t\tblock._next = null;\n\t\tblock._prevFree = null;\n\t\tblock._nextFree = null;\n\t\tblock._bucket = -1;\n\t\treturn block;\n\t}\n\t_release(block) {\n\t\tblock._prev = null;\n\t\tblock._next = null;\n\t\tblock._prevFree = null;\n\t\tblock._nextFree = null;\n\t\tblock._bucket = -1;\n\t\tthis._pool.push(block);\n\t}\n\t_insertAfterInMainList(block, after) {\n\t\tif (after === null) {\n\t\t\tblock._prev = null;\n\t\t\tblock._next = this._headAll;\n\t\t\tif (this._headAll) this._headAll._prev = block;\n\t\t\tthis._headAll = block;\n\t\t\tif (!this._tailAll) this._tailAll = block;\n\t\t} else {\n\t\t\tblock._prev = after;\n\t\t\tblock._next = after._next;\n\t\t\tif (after._next) after._next._prev = block;\n\t\t\tafter._next = block;\n\t\t\tif (this._tailAll === after) this._tailAll = block;\n\t\t}\n\t}\n\t_removeFromMainList(block) {\n\t\tif (block._prev) block._prev._next = block._next;\n\t\telse this._headAll = block._next;\n\t\tif (block._next) block._next._prev = block._prev;\n\t\telse this._tailAll = block._prev;\n\t\tblock._prev = null;\n\t\tblock._next = null;\n\t}\n\t_findFreeBlock(size) {\n\t\tconst startBucket = this._bucketFor(size);\n\t\tconst len = this._freeBucketHeads.length;\n\t\tif (startBucket < len) {\n\t\t\tlet best = null;\n\t\t\tlet node = this._freeBucketHeads[startBucket];\n\t\t\twhile (node) {\n\t\t\t\tif (node._size >= size) {\n\t\t\t\t\tif (!best || node._size < best._size) {\n\t\t\t\t\t\tbest = node;\n\t\t\t\t\t\tif (node._size === size) break;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tnode = node._nextFree;\n\t\t\t}\n\t\t\tif (best) return best;\n\t\t}\n\t\tfor (let b = startBucket + 1; b < len; b++) {\n\t\t\tif (this._freeBucketHeads[b]) {\n\t\t\t\treturn this._freeBucketHeads[b];\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\tallocate(size) {\n\t\tconst gap = this._findFreeBlock(size);\n\t\tif (!gap) return null;\n\t\tthis._usedSize += size;\n\t\tthis._freeSize -= size;\n\t\tif (gap._size === size) {\n\t\t\tgap._free = false;\n\t\t\tthis._removeFromBucket(gap);\n\t\t\treturn gap;\n\t\t}\n\t\tconst alloc = this._obtain(gap._offset, size, false);\n\t\tgap._offset += size;\n\t\tgap._size -= size;\n\t\tthis._rebucket(gap);\n\t\tthis._insertAfterInMainList(alloc, gap._prev);\n\t\treturn alloc;\n\t}\n\tfree(block) {\n\t\tblock._free = true;\n\t\tthis._usedSize -= block._size;\n\t\tthis._freeSize += block._size;\n\t\tconst prev = block._prev;\n\t\tconst next = block._next;\n\t\tconst prevFree = prev && prev._free;\n\t\tconst nextFree = next && next._free;\n\t\tif (prevFree && nextFree) {\n\t\t\tprev._size += block._size + next._size;\n\t\t\tthis._removeFromMainList(block);\n\t\t\tthis._removeFromMainList(next);\n\t\t\tthis._removeFromBucket(next);\n\t\t\tthis._release(block);\n\t\t\tthis._release(next);\n\t\t\tthis._rebucket(prev);\n\t\t} else if (prevFree) {\n\t\t\tprev._size += block._size;\n\t\t\tthis._removeFromMainList(block);\n\t\t\tthis._release(block);\n\t\t\tthis._rebucket(prev);\n\t\t} else if (nextFree) {\n\t\t\tblock._size += next._size;\n\t\t\tthis._removeFromMainList(next);\n\t\t\tthis._removeFromBucket(next);\n\t\t\tthis._release(next);\n\t\t\tthis._addToBucket(block);\n\t\t} else {\n\t\t\tthis._addToBucket(block);\n\t\t}\n\t}\n\tgrow(newCapacity) {\n\t\tif (newCapacity <= this._capacity) return;\n\t\tconst added = newCapacity - this._capacity;\n\t\tthis._capacity = newCapacity;\n\t\tthis._freeSize += added;\n\t\tif (this._tailAll && this._tailAll._free) {\n\t\t\tthis._tailAll._size += added;\n\t\t\tthis._rebucket(this._tailAll);\n\t\t} else {\n\t\t\tconst block = this._obtain(this._capacity - added, added, true);\n\t\t\tthis._insertAfterInMainList(block, this._tailAll);\n\t\t\tthis._addToBucket(block);\n\t\t}\n\t}\n\tdefrag(maxMoves = 0, result = /* @__PURE__ */ new Set()) {\n\t\tresult.clear();\n\t\tif (this._freeRegionCount === 0) return result;\n\t\tif (maxMoves === 0) {\n\t\t\tthis._defragFull(result);\n\t\t} else {\n\t\t\tthis._defragIncremental(maxMoves, result);\n\t\t}\n\t\treturn result;\n\t}\n\t_defragFull(result) {\n\t\tfor (let b = 0; b < this._freeBucketHeads.length; b++) {\n\t\t\tlet node = this._freeBucketHeads[b];\n\t\t\twhile (node) {\n\t\t\t\tconst nextFree = node._nextFree;\n\t\t\t\tthis._removeFromMainList(node);\n\t\t\t\tnode._prevFree = null;\n\t\t\t\tnode._nextFree = null;\n\t\t\t\tnode._bucket = -1;\n\t\t\t\tthis._pool.push(node);\n\t\t\t\tnode = nextFree;\n\t\t\t}\n\t\t\tthis._freeBucketHeads[b] = null;\n\t\t}\n\t\tthis._freeRegionCount = 0;\n\t\tlet offset3 = 0;\n\t\tlet block = this._headAll;\n\t\twhile (block) {\n\t\t\tif (block._offset !== offset3) {\n\t\t\t\tblock._offset = offset3;\n\t\t\t\tresult.add(block);\n\t\t\t}\n\t\t\toffset3 += block._size;\n\t\t\tblock = block._next;\n\t\t}\n\t\tconst remaining = this._capacity - offset3;\n\t\tif (remaining > 0) {\n\t\t\tconst freeBlock = this._obtain(offset3, remaining, true);\n\t\t\tthis._insertAfterInMainList(freeBlock, this._tailAll);\n\t\t\tthis._addToBucket(freeBlock);\n\t\t}\n\t}\n\t_defragIncremental(maxMoves, result) {\n\t\tconst phase1Moves = Math.ceil(maxMoves / 2);\n\t\tconst phase2Moves = maxMoves - phase1Moves;\n\t\tfor (let i2 = 0; i2 < phase1Moves; i2++) {\n\t\t\tlet lastAlloc = this._tailAll;\n\t\t\twhile (lastAlloc && lastAlloc._free) lastAlloc = lastAlloc._prev;\n\t\t\tif (!lastAlloc) break;\n\t\t\tconst gap = this._findFreeBlock(lastAlloc._size);\n\t\t\tif (!gap || gap._offset >= lastAlloc._offset) break;\n\t\t\tthis._moveBlock(lastAlloc, gap);\n\t\t\tresult.add(lastAlloc);\n\t\t}\n\t\tlet block = this._headAll;\n\t\tfor (let i2 = 0; i2 < phase2Moves && block; ) {\n\t\t\tconst next = block._next;\n\t\t\tif (block._free && next && !next._free) {\n\t\t\t\tconst allocBlock = next;\n\t\t\t\tconst freeBlock = block;\n\t\t\t\tallocBlock._offset = freeBlock._offset;\n\t\t\t\tfreeBlock._offset = allocBlock._offset + allocBlock._size;\n\t\t\t\tconst a = freeBlock._prev;\n\t\t\t\tconst b = allocBlock._next;\n\t\t\t\tallocBlock._prev = a;\n\t\t\t\tallocBlock._next = freeBlock;\n\t\t\t\tfreeBlock._prev = allocBlock;\n\t\t\t\tfreeBlock._next = b;\n\t\t\t\tif (a) a._next = allocBlock;\n\t\t\t\telse this._headAll = allocBlock;\n\t\t\t\tif (b) b._prev = freeBlock;\n\t\t\t\telse this._tailAll = freeBlock;\n\t\t\t\tif (freeBlock._next && freeBlock._next._free) {\n\t\t\t\t\tconst right2 = freeBlock._next;\n\t\t\t\t\tfreeBlock._size += right2._size;\n\t\t\t\t\tthis._removeFromMainList(right2);\n\t\t\t\t\tthis._removeFromBucket(right2);\n\t\t\t\t\tthis._release(right2);\n\t\t\t\t\tthis._rebucket(freeBlock);\n\t\t\t\t}\n\t\t\t\tresult.add(allocBlock);\n\t\t\t\ti2++;\n\t\t\t\tblock = freeBlock._next;\n\t\t\t} else {\n\t\t\t\tblock = next;\n\t\t\t}\n\t\t}\n\t}\n\t_moveBlock(block, gap) {\n\t\tconst blockSize = block._size;\n\t\tconst newOffset = gap._offset;\n\t\tconst prev = block._prev;\n\t\tthis._removeFromMainList(block);\n\t\tconst freed = this._obtain(block._offset, blockSize, true);\n\t\tthis._insertAfterInMainList(freed, prev);\n\t\tthis._addToBucket(freed);\n\t\tif (freed._next && freed._next._free) {\n\t\t\tconst right2 = freed._next;\n\t\t\tfreed._size += right2._size;\n\t\t\tthis._removeFromMainList(right2);\n\t\t\tthis._removeFromBucket(right2);\n\t\t\tthis._release(right2);\n\t\t\tthis._rebucket(freed);\n\t\t}\n\t\tif (freed._prev && freed._prev._free) {\n\t\t\tconst left = freed._prev;\n\t\t\tleft._size += freed._size;\n\t\t\tthis._removeFromMainList(freed);\n\t\t\tthis._removeFromBucket(freed);\n\t\t\tthis._release(freed);\n\t\t\tthis._rebucket(left);\n\t\t}\n\t\tblock._offset = newOffset;\n\t\tif (gap._size === blockSize) {\n\t\t\tconst gapPrev = gap._prev;\n\t\t\tthis._removeFromMainList(gap);\n\t\t\tthis._removeFromBucket(gap);\n\t\t\tthis._release(gap);\n\t\t\tthis._insertAfterInMainList(block, gapPrev);\n\t\t} else {\n\t\t\tgap._offset += blockSize;\n\t\t\tgap._size -= blockSize;\n\t\t\tthis._rebucket(gap);\n\t\t\tthis._insertAfterInMainList(block, gap._prev);\n\t\t}\n\t}\n\tupdateAllocation(toFree, toAllocate) {\n\t\tfor (let i2 = 0; i2 < toFree.length; i2++) {\n\t\t\tthis.free(toFree[i2]);\n\t\t}\n\t\tfor (let i2 = 0; i2 < toAllocate.length; i2++) {\n\t\t\tconst size = toAllocate[i2];\n\t\t\tconst block = this.allocate(size);\n\t\t\tif (block) {\n\t\t\t\ttoAllocate[i2] = block;\n\t\t\t} else {\n\t\t\t\tlet totalRemaining = size;\n\t\t\t\tfor (let j = i2 + 1; j < toAllocate.length; j++) {\n\t\t\t\t\ttotalRemaining += toAllocate[j];\n\t\t\t\t}\n\t\t\t\tconst neededCapacity = this._usedSize + totalRemaining;\n\t\t\t\tconst headroomCapacity = Math.ceil(neededCapacity * this._growMultiplier);\n\t\t\t\tif (headroomCapacity > this._capacity) {\n\t\t\t\t\tthis.grow(headroomCapacity);\n\t\t\t\t}\n\t\t\t\tthis.defrag(0);\n\t\t\t\tfor (let j = i2; j < toAllocate.length; j++) {\n\t\t\t\t\tconst s2 = toAllocate[j];\n\t\t\t\t\tconst b = this.allocate(s2);\n\t\t\t\t\ttoAllocate[j] = b;\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n};\n\nvar tmpSize2 = new Vec2();\nvar subDrawDataArray = new Uint32Array(0);\nvar _fullRangeInterval = [0, 0];\nvar GSplatInfo = class {\n\tdevice;\n\tresource;\n\tnode;\n\tlodIndex;\n\tplacementId;\n\tallocId;\n\tparentPlacementId;\n\tnumSplats;\n\tactiveSplats = 0;\n\tintervals = [];\n\tintervalOffsets = [];\n\tintervalAllocIds = [];\n\tintervalNodeIndices = [];\n\tpreviousWorldTransform = new Mat4();\n\taabb = new BoundingBox();\n\tsubDrawTexture = null;\n\tsubDrawCount = 0;\n\tnumBoundsEntries = 0;\n\tboundsBaseIndex = 0;\n\toctreeNodes = null;\n\tnodeInfos = null;\n\tcolorAccumulatedTranslation = 0;\n\tparameters = null;\n\tgetWorkBufferModifier = null;\n\tgetInstanceStreams = null;\n\t_getDirtySource = null;\n\t_lastDirtyVersion = -1;\n\t_lastFormatVersion = -1;\n\tconstructor(device, resource, placement, octreeNodes = null, nodeInfos = null) {\n\t\tthis.device = device;\n\t\tthis.resource = resource;\n\t\tthis.node = placement.node;\n\t\tthis.lodIndex = placement.lodIndex;\n\t\tthis.placementId = placement.id;\n\t\tthis.allocId = placement.allocId;\n\t\tthis.parentPlacementId = octreeNodes && placement.parentPlacement ? placement.parentPlacement.allocId : placement.allocId;\n\t\tthis.numSplats = resource.numSplats;\n\t\tthis.aabb.copy(placement.aabb);\n\t\tthis.parameters = placement.parameters;\n\t\tthis.getWorkBufferModifier = () => placement.workBufferModifier;\n\t\tthis.getInstanceStreams = () => placement.streams;\n\t\tthis._getDirtySource = () => placement.parentPlacement ?? placement;\n\t\tthis.octreeNodes = octreeNodes;\n\t\tthis.nodeInfos = nodeInfos;\n\t\tthis.updateIntervals(placement.intervals);\n\t}\n\tdestroy() {\n\t\tthis.intervals.length = 0;\n\t\tthis.intervalOffsets.length = 0;\n\t\tthis.intervalAllocIds.length = 0;\n\t\tthis.intervalNodeIndices.length = 0;\n\t\tthis.subDrawTexture?.destroy();\n\t\tthis.subDrawTexture = null;\n\t\tthis.subDrawCount = 0;\n\t}\n\tsetLayout(intervalOffsets) {\n\t\tthis.intervalOffsets = intervalOffsets;\n\t\tthis.subDrawTexture?.destroy();\n\t\tthis.subDrawTexture = null;\n\t\tthis.subDrawCount = 0;\n\t}\n\tensureSubDrawTexture(textureWidth) {\n\t\tif (!this.subDrawTexture && textureWidth > 0) {\n\t\t\tthis.updateSubDraws(textureWidth);\n\t\t}\n\t}\n\tupdateIntervals(intervals) {\n\t\tconst resource = this.resource;\n\t\tthis.intervals.length = 0;\n\t\tthis.intervalAllocIds.length = 0;\n\t\tthis.intervalNodeIndices.length = 0;\n\t\tthis.activeSplats = resource.numSplats;\n\t\tif (intervals.size > 0) {\n\t\t\tlet totalCount = 0;\n\t\t\tlet k = 0;\n\t\t\tthis.intervals.length = intervals.size * 2;\n\t\t\tfor (const [nodeIndex, interval] of intervals) {\n\t\t\t\tthis.intervals[k++] = interval.x;\n\t\t\t\tthis.intervals[k++] = interval.y + 1;\n\t\t\t\ttotalCount += interval.y - interval.x + 1;\n\t\t\t\tif (this.nodeInfos) {\n\t\t\t\t\tthis.intervalAllocIds.push(this.nodeInfos[nodeIndex].allocId);\n\t\t\t\t\tthis.intervalNodeIndices.push(nodeIndex);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (this.octreeNodes) {\n\t\t\t\tthis.activeSplats = totalCount;\n\t\t\t\tthis.numBoundsEntries = this.octreeNodes.length;\n\t\t\t} else if (totalCount === this.numSplats) {\n\t\t\t\tthis.intervals.length = 0;\n\t\t\t} else {\n\t\t\t\tthis.activeSplats = totalCount;\n\t\t\t}\n\t\t} else {\n\t\t\tthis.numBoundsEntries = 1;\n\t\t\tthis.intervalAllocIds.push(this.allocId);\n\t\t\tconst totalCapacity = resource.maxSplats;\n\t\t\tif (totalCapacity && this.activeSplats < totalCapacity) {\n\t\t\t\tthis.intervals[0] = 0;\n\t\t\t\tthis.intervals[1] = this.activeSplats;\n\t\t\t}\n\t\t}\n\t}\n\tappendSubDraws(subDrawData, subDrawCount, sourceBase, size, targetOffset, textureWidth) {\n\t\tlet remaining = size;\n\t\tlet row = targetOffset / textureWidth | 0;\n\t\tconst col = targetOffset % textureWidth;\n\t\tif (col > 0) {\n\t\t\tconst count = Math.min(remaining, textureWidth - col);\n\t\t\tconst idx = subDrawCount * 4;\n\t\t\tsubDrawData[idx] = row | 1 << 16;\n\t\t\tsubDrawData[idx + 1] = col;\n\t\t\tsubDrawData[idx + 2] = col + count;\n\t\t\tsubDrawData[idx + 3] = sourceBase;\n\t\t\tsubDrawCount++;\n\t\t\tsourceBase += count;\n\t\t\tremaining -= count;\n\t\t\trow++;\n\t\t}\n\t\tconst fullRows = remaining / textureWidth | 0;\n\t\tif (fullRows > 0) {\n\t\t\tconst idx = subDrawCount * 4;\n\t\t\tsubDrawData[idx] = row | fullRows << 16;\n\t\t\tsubDrawData[idx + 1] = 0;\n\t\t\tsubDrawData[idx + 2] = textureWidth;\n\t\t\tsubDrawData[idx + 3] = sourceBase;\n\t\t\tsubDrawCount++;\n\t\t\tsourceBase += fullRows * textureWidth;\n\t\t\tremaining -= fullRows * textureWidth;\n\t\t\trow += fullRows;\n\t\t}\n\t\tif (remaining > 0) {\n\t\t\tconst idx = subDrawCount * 4;\n\t\t\tsubDrawData[idx] = row | 1 << 16;\n\t\t\tsubDrawData[idx + 1] = 0;\n\t\t\tsubDrawData[idx + 2] = remaining;\n\t\t\tsubDrawData[idx + 3] = sourceBase;\n\t\t\tsubDrawCount++;\n\t\t}\n\t\treturn subDrawCount;\n\t}\n\tupdateSubDraws(textureWidth) {\n\t\tlet intervals = this.intervals;\n\t\tlet numIntervals = intervals.length / 2;\n\t\tif (numIntervals === 0) {\n\t\t\t_fullRangeInterval[0] = 0;\n\t\t\t_fullRangeInterval[1] = this.activeSplats;\n\t\t\tintervals = _fullRangeInterval;\n\t\t\tnumIntervals = 1;\n\t\t}\n\t\tconst maxSubDraws = numIntervals * 3;\n\t\tconst requiredSize = maxSubDraws * 4;\n\t\tif (subDrawDataArray.length < requiredSize) {\n\t\t\tsubDrawDataArray = new Uint32Array(requiredSize);\n\t\t}\n\t\tconst subDrawData = subDrawDataArray;\n\t\tlet subDrawCount = 0;\n\t\tfor (let i2 = 0; i2 < numIntervals; i2++) {\n\t\t\tsubDrawCount = this.appendSubDraws(\n\t\t\t\tsubDrawData,\n\t\t\t\tsubDrawCount,\n\t\t\t\tintervals[i2 * 2],\n\t\t\t\tintervals[i2 * 2 + 1] - intervals[i2 * 2],\n\t\t\t\tthis.intervalOffsets[i2],\n\t\t\t\ttextureWidth\n\t\t\t);\n\t\t}\n\t\tthis.subDrawCount = subDrawCount;\n\t\tconst { x: texWidth, y: texHeight } = TextureUtils.calcTextureSize(subDrawCount, tmpSize2);\n\t\tthis.subDrawTexture = Texture.createDataTexture2D(this.device, \"subDrawData\", texWidth, texHeight, PIXELFORMAT_RGBA32U);\n\t\tconst texData = this.subDrawTexture.lock();\n\t\ttexData.set(subDrawData.subarray(0, subDrawCount * 4));\n\t\tthis.subDrawTexture.unlock();\n\t}\n\tupdate() {\n\t\tconst worldMatrix = this.node.getWorldTransform();\n\t\tconst worldMatrixChanged = !this.previousWorldTransform.equals(worldMatrix);\n\t\tif (worldMatrixChanged) {\n\t\t\tthis.previousWorldTransform.copy(worldMatrix);\n\t\t}\n\t\tlet dirty = worldMatrixChanged;\n\t\tconst source = this._getDirtySource();\n\t\tif (this._lastDirtyVersion !== source.dirtyVersion) {\n\t\t\tthis._lastDirtyVersion = source.dirtyVersion;\n\t\t\tdirty = true;\n\t\t}\n\t\tif (source.workBufferUpdate === WORKBUFFER_UPDATE_ALWAYS) {\n\t\t\tdirty = true;\n\t\t}\n\t\tconst format = this.resource?.format;\n\t\tif (format && this._lastFormatVersion !== format.extraStreamsVersion) {\n\t\t\tthis._lastFormatVersion = format.extraStreamsVersion;\n\t\t\tdirty = true;\n\t\t}\n\t\treturn dirty;\n\t}\n\twriteBoundsSpheres(data2, offset3) {\n\t\tif (this.octreeNodes) {\n\t\t\tfor (let i2 = 0; i2 < this.octreeNodes.length; i2++) {\n\t\t\t\tconst s2 = this.octreeNodes[i2].boundingSphere;\n\t\t\t\tdata2[offset3++] = s2.x;\n\t\t\t\tdata2[offset3++] = s2.y;\n\t\t\t\tdata2[offset3++] = s2.z;\n\t\t\t\tdata2[offset3++] = s2.w;\n\t\t\t}\n\t\t} else {\n\t\t\tconst aabb3 = this.resource.aabb;\n\t\t\tconst he = aabb3.halfExtents;\n\t\t\tconst r = Math.sqrt(he.x * he.x + he.y * he.y + he.z * he.z);\n\t\t\tdata2[offset3++] = aabb3.center.x;\n\t\t\tdata2[offset3++] = aabb3.center.y;\n\t\t\tdata2[offset3++] = aabb3.center.z;\n\t\t\tdata2[offset3++] = r;\n\t\t}\n\t}\n\tget hasSphericalHarmonics() {\n\t\treturn this.resource.gsplatData?.shBands > 0;\n\t}\n};\n\nvar GsplatAllocId = new NumericIds();\n\nvar GSplatPlacement = class {\n\tresource;\n\tnode;\n\tintervals = /* @__PURE__ */ new Map();\n\tid = 0;\n\tallocId = GsplatAllocId.get();\n\tlodIndex = 0;\n\t_lodRangeMin = 0;\n\t_lodRangeMax = 99;\n\t_lodFalloff = 1;\n\tset lodFalloff(value) {\n\t\tif (this._lodFalloff !== value) {\n\t\t\tthis._lodFalloff = value;\n\t\t\tthis.lodDirty = true;\n\t\t}\n\t}\n\tget lodFalloff() {\n\t\treturn this._lodFalloff;\n\t}\n\tset lodRangeMin(value) {\n\t\tif (this._lodRangeMin !== value) {\n\t\t\tthis._lodRangeMin = value;\n\t\t\tthis.lodDirty = true;\n\t\t}\n\t}\n\tget lodRangeMin() {\n\t\treturn this._lodRangeMin;\n\t}\n\tset lodRangeMax(value) {\n\t\tif (this._lodRangeMax !== value) {\n\t\t\tthis._lodRangeMax = value;\n\t\t\tthis.lodDirty = true;\n\t\t}\n\t}\n\tget lodRangeMax() {\n\t\treturn this._lodRangeMax;\n\t}\n\t_aabb = null;\n\tparameters = null;\n\t_streams = null;\n\tlodDirty = false;\n\tdirtyVersion = 0;\n\t_workBufferUpdate = WORKBUFFER_UPDATE_AUTO;\n\t_workBufferModifier = null;\n\tparentPlacement = null;\n\tconstructor(resource, node, lodIndex = 0, parameters = null, parentPlacement = null, id14 = null) {\n\t\tthis.id = id14 ?? parentPlacement?.id ?? 0;\n\t\tthis.resource = resource;\n\t\tthis.node = node;\n\t\tthis.lodIndex = lodIndex;\n\t\tthis.parameters = parameters ?? parentPlacement?.parameters ?? null;\n\t\tthis.parentPlacement = parentPlacement;\n\t}\n\tdestroy() {\n\t\tthis._streams?.destroy();\n\t\tthis._streams = null;\n\t\tthis.intervals.clear();\n\t\tthis.resource = null;\n\t}\n\tset workBufferModifier(value) {\n\t\tthis._workBufferModifier = value;\n\t\tthis.dirtyVersion++;\n\t}\n\tget workBufferModifier() {\n\t\treturn this.parentPlacement?.workBufferModifier ?? this._workBufferModifier;\n\t}\n\tset workBufferUpdate(value) {\n\t\tif (value === WORKBUFFER_UPDATE_ONCE) {\n\t\t\tthis.dirtyVersion++;\n\t\t} else {\n\t\t\tthis._workBufferUpdate = value;\n\t\t}\n\t}\n\tget workBufferUpdate() {\n\t\treturn this._workBufferUpdate;\n\t}\n\tmarkDirty() {\n\t\tthis.dirtyVersion++;\n\t}\n\tset aabb(aabb3) {\n\t\tthis._aabb = aabb3?.clone() ?? null;\n\t}\n\tget aabb() {\n\t\tconst aabb3 = this._aabb ?? this.resource?.aabb;\n\t\treturn aabb3;\n\t}\n\tgetInstanceTexture(name, device) {\n\t\tconst resource = this.resource;\n\t\tif (!resource?.format) {\n\t\t\treturn void 0;\n\t\t}\n\t\tif (!this._streams && resource.format.instanceStreams.length > 0) {\n\t\t\tthis._streams = new GSplatStreams(device, true);\n\t\t\tthis._streams.textureDimensions.copy(resource.streams.textureDimensions);\n\t\t\tthis._streams.syncWithFormat(resource.format);\n\t\t}\n\t\treturn this._streams?.getTexture(name);\n\t}\n\tget streams() {\n\t\treturn this.parentPlacement?.streams ?? this._streams;\n\t}\n\tensureInstanceStreams(device) {\n\t\tconst resource = this.resource;\n\t\tif (!resource?.format) {\n\t\t\treturn;\n\t\t}\n\t\tif (!this._streams && resource.format.instanceStreams.length > 0) {\n\t\t\tthis._streams = new GSplatStreams(device, true);\n\t\t\tthis._streams.textureDimensions.copy(resource.streams.textureDimensions);\n\t\t\tthis._streams.syncWithFormat(resource.format);\n\t\t}\n\t}\n};\n\nvar _invWorldMat = new Mat4();\nvar _localCameraPos = new Vec3();\nvar _localCameraFwd = new Vec3();\nvar _tempCompletedUrls = [];\nvar _tempDebugAabb = new BoundingBox();\nvar REF_TAN_HALF_FOV = Math.tan(22.5 * math.DEG_TO_RAD);\nvar _lodColors = [\n\tnew Color(1, 0, 0),\n\tnew Color(0, 1, 0),\n\tnew Color(0, 0, 1),\n\tnew Color(1, 1, 0),\n\tnew Color(1, 0, 1)\n];\nvar NodeInfo = class {\n\tcurrentLod = -1;\n\toptimalLod = -1;\n\tworldDistance = 0;\n\tlodCoverage = 0;\n\tcolorAccumulatedTranslation = 0;\n\tinst = null;\n\tallocId = GsplatAllocId.get();\n\tresetLod() {\n\t\tthis.currentLod = -1;\n\t\tthis.optimalLod = -1;\n\t}\n};\nvar GSplatOctreeInstance = class {\n\toctree;\n\tplacement;\n\tactivePlacements = /* @__PURE__ */ new Set();\n\tdirtyModifiedPlacements = false;\n\tdirtyPlacementSetChanged = false;\n\tdevice;\n\tnodeInfos;\n\tfilePlacements;\n\tpending = /* @__PURE__ */ new Set();\n\tpendingDecrements = /* @__PURE__ */ new Map();\n\tremovedCandidates = /* @__PURE__ */ new Set();\n\trangeMin = 0;\n\trangeMax = 0;\n\tlodTable = null;\n\tpreviousPosition = new Vec3();\n\tneedsLodUpdate = false;\n\tprefetchPending = /* @__PURE__ */ new Set();\n\tpendingVisibleAdds = /* @__PURE__ */ new Map();\n\tget pendingLoadCount() {\n\t\tlet count = this.pending.size + this.prefetchPending.size;\n\t\tif (this.octree.environmentUrl && !this.environmentPlacement) {\n\t\t\tcount++;\n\t\t}\n\t\treturn count;\n\t}\n\tenvironmentPlacement = null;\n\t_deviceLostEvent = null;\n\tconstructor(device, octree, placement) {\n\t\tthis.device = device;\n\t\tthis.octree = octree;\n\t\tthis.placement = placement;\n\t\tthis.nodeInfos = new Array(octree.nodes.length);\n\t\tfor (let i2 = 0; i2 < octree.nodes.length; i2++) {\n\t\t\tconst nodeInfo = new NodeInfo();\n\t\t\tnodeInfo.inst = this;\n\t\t\tthis.nodeInfos[i2] = nodeInfo;\n\t\t}\n\t\tconst numFiles = octree.files.length;\n\t\tthis.filePlacements = new Array(numFiles).fill(null);\n\t\tif (octree.environmentUrl) {\n\t\t\toctree.incEnvironmentRefCount();\n\t\t\toctree.ensureEnvironmentResource();\n\t\t}\n\t\tthis._deviceLostEvent = device.on(\"devicelost\", this._onDeviceLost, this);\n\t}\n\tdestroy(skipRefCounting = false) {\n\t\tif (this.octree && !this.octree.destroyed) {\n\t\t\tthis.octree.releaseLodTable(this.lodTable);\n\t\t}\n\t\tthis.lodTable = null;\n\t\tif (!skipRefCounting && this.octree && !this.octree.destroyed) {\n\t\t\tconst filesToDecRef = this.getFileDecrements();\n\t\t\tfor (const fileIndex of filesToDecRef) {\n\t\t\t\tthis.octree.decRefCount(fileIndex, 0);\n\t\t\t}\n\t\t\tfor (const fileIndex of this.pending) {\n\t\t\t\tif (!this.filePlacements[fileIndex]) {\n\t\t\t\t\tthis.octree.unloadResource(fileIndex);\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (const fileIndex of this.prefetchPending) {\n\t\t\t\tif (!this.filePlacements[fileIndex]) {\n\t\t\t\t\tthis.octree.unloadResource(fileIndex);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (this.environmentPlacement) {\n\t\t\t\tthis.octree.decEnvironmentRefCount();\n\t\t\t}\n\t\t}\n\t\tthis.pending.clear();\n\t\tthis.pendingDecrements.clear();\n\t\tthis.filePlacements.length = 0;\n\t\tif (this.environmentPlacement) {\n\t\t\tthis.activePlacements.delete(this.environmentPlacement);\n\t\t\tthis.environmentPlacement = null;\n\t\t}\n\t\tthis._deviceLostEvent?.off();\n\t\tthis._deviceLostEvent = null;\n\t}\n\t_onDeviceLost() {\n\t\tfor (let i2 = 0; i2 < this.filePlacements.length; i2++) {\n\t\t\tif (this.filePlacements[i2]) {\n\t\t\t\tthis.octree.decRefCount(i2, 0);\n\t\t\t}\n\t\t}\n\t\tthis.filePlacements.fill(null);\n\t\tthis.activePlacements.clear();\n\t\tthis.pending.clear();\n\t\tthis.pendingDecrements.clear();\n\t\tthis.removedCandidates.clear();\n\t\tthis.prefetchPending.clear();\n\t\tthis.pendingVisibleAdds.clear();\n\t\tfor (const nodeInfo of this.nodeInfos) {\n\t\t\tnodeInfo.resetLod();\n\t\t}\n\t\tif (this.environmentPlacement) {\n\t\t\tthis.activePlacements.delete(this.environmentPlacement);\n\t\t\tthis.environmentPlacement = null;\n\t\t\tthis.octree.unloadEnvironmentResource();\n\t\t}\n\t\tthis.dirtyModifiedPlacements = true;\n\t\tthis.dirtyPlacementSetChanged = true;\n\t\tthis.needsLodUpdate = true;\n\t}\n\tgetFileDecrements() {\n\t\tconst toRelease = [];\n\t\tfor (let i2 = 0; i2 < this.filePlacements.length; i2++) {\n\t\t\tif (this.filePlacements[i2]) {\n\t\t\t\ttoRelease.push(i2);\n\t\t\t}\n\t\t}\n\t\treturn toRelease;\n\t}\n\tselectDesiredLodIndex(nodeIndex, optimalLodIndex, lodUnderfillLimit) {\n\t\tif (lodUnderfillLimit > 0 && optimalLodIndex >= 0) {\n\t\t\tconst table = this.lodTable;\n\t\t\tconst node = this.octree.nodes[nodeIndex];\n\t\t\tconst loaded = table.findCoarserAccepted(nodeIndex, optimalLodIndex, lodUnderfillLimit, (lod2) => {\n\t\t\t\tconst fi = node.lods[lod2].fileIndex;\n\t\t\t\treturn fi === -1 || !!this.octree.getFileResource(fi);\n\t\t\t});\n\t\t\tif (loaded >= 0) return loaded;\n\t\t\tlet coarsest = -1;\n\t\t\tlet lod = optimalLodIndex;\n\t\t\tfor (let step = 0; step <= lodUnderfillLimit && lod >= 0; step++) {\n\t\t\t\tif (node.lods[lod].fileIndex !== -1) coarsest = lod;\n\t\t\t\tlod = table.coarserOnChain(nodeIndex, lod);\n\t\t\t}\n\t\t\tif (coarsest >= 0) return coarsest;\n\t\t}\n\t\treturn optimalLodIndex;\n\t}\n\tprefetchNextLod(nodeIndex, desiredLodIndex, optimalLodIndex) {\n\t\tif (desiredLodIndex === -1 || optimalLodIndex === -1) return;\n\t\tconst node = this.octree.nodes[nodeIndex];\n\t\tif (desiredLodIndex === optimalLodIndex) {\n\t\t\tconst fi2 = node.lods[optimalLodIndex].fileIndex;\n\t\t\tif (fi2 !== -1) {\n\t\t\t\tthis.octree.ensureFileResource(fi2);\n\t\t\t\tif (!this.octree.getFileResource(fi2)) {\n\t\t\t\t\tthis.prefetchPending.add(fi2);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tconst targetLod = this.lodTable.finerOnChain(nodeIndex, desiredLodIndex);\n\t\tif (targetLod < 0) return;\n\t\tconst fi = node.lods[targetLod].fileIndex;\n\t\tif (fi !== -1) {\n\t\t\tthis.octree.ensureFileResource(fi);\n\t\t\tif (!this.octree.getFileResource(fi)) {\n\t\t\t\tthis.prefetchPending.add(fi);\n\t\t\t}\n\t\t}\n\t}\n\tresolveLodRange(lodMode) {\n\t\tconst maxLod = this.octree.lodLevels - 1;\n\t\tconst { lodRangeMin, lodRangeMax } = this.placement;\n\t\tconst rangeMin = Math.max(0, Math.min(lodRangeMin ?? 0, maxLod));\n\t\tconst rangeMax = Math.max(rangeMin, Math.min(lodRangeMax ?? maxLod, maxLod));\n\t\tthis.rangeMin = rangeMin;\n\t\tthis.rangeMax = rangeMax;\n\t\tconst table = this.lodTable;\n\t\tif (!table || table.rangeMin !== rangeMin || table.rangeMax !== rangeMax || table.lodMode !== lodMode) {\n\t\t\tthis.lodTable = this.octree.acquireLodTable(rangeMin, rangeMax, lodMode);\n\t\t\tthis.octree.releaseLodTable(table);\n\t\t}\n\t}\n\tevaluateNodeCoverage(cameraNode, params) {\n\t\tconst { lodBehindPenalty } = params;\n\t\tconst distanceMode = this.lodTable.lodMode === GSPLAT_LODMODE_DISTANCE;\n\t\tconst uniformScale2 = this.placement.node.getWorldTransform().getScale().x;\n\t\tconst camera = cameraNode.camera;\n\t\tconst ortho = camera.projection === PROJECTION_ORTHOGRAPHIC;\n\t\tlet fovScale = 1;\n\t\tif (!ortho) {\n\t\t\tlet tanHalfVFov = Math.tan(camera.fov * 0.5 * math.DEG_TO_RAD);\n\t\t\tif (camera.horizontalFov) {\n\t\t\t\ttanHalfVFov /= camera.aspectRatio;\n\t\t\t}\n\t\t\tconst tanHalfHFov = tanHalfVFov * camera.aspectRatio;\n\t\t\tfovScale = Math.min(tanHalfVFov, tanHalfHFov) / REF_TAN_HALF_FOV;\n\t\t}\n\t\tconst invOrthoHeight = ortho ? uniformScale2 / Math.max(camera.orthoHeight, 1e-12) : 0;\n\t\tconst worldCameraPosition = cameraNode.getPosition();\n\t\tconst octreeWorldTransform = this.placement.node.getWorldTransform();\n\t\t_invWorldMat.copy(octreeWorldTransform).invert();\n\t\tconst localCameraPosition = _invWorldMat.transformPoint(worldCameraPosition, _localCameraPos);\n\t\tconst worldCameraForward = cameraNode.forward;\n\t\tconst localCameraForward = _invWorldMat.transformVector(worldCameraForward, _localCameraFwd).normalize();\n\t\tconst nodes = this.octree.nodes;\n\t\tconst nodeInfos = this.nodeInfos;\n\t\tconst boundsFlat = this.octree.nodeBoundsMinMax;\n\t\tconst px = localCameraPosition.x;\n\t\tconst py = localCameraPosition.y;\n\t\tconst pz = localCameraPosition.z;\n\t\tconst fwx = localCameraForward.x;\n\t\tconst fwy = localCameraForward.y;\n\t\tconst fwz = localCameraForward.z;\n\t\tfor (let nodeIndex = 0; nodeIndex < nodes.length; nodeIndex++) {\n\t\t\tconst nodeInfo = nodeInfos[nodeIndex];\n\t\t\tconst b = nodeIndex * 6;\n\t\t\tlet qx = px;\n\t\t\tconst minX = boundsFlat[b];\n\t\t\tconst maxX = boundsFlat[b + 3];\n\t\t\tif (qx < minX) qx = minX;\n\t\t\telse if (qx > maxX) qx = maxX;\n\t\t\tlet qy = py;\n\t\t\tconst minY = boundsFlat[b + 1];\n\t\t\tconst maxY = boundsFlat[b + 4];\n\t\t\tif (qy < minY) qy = minY;\n\t\t\telse if (qy > maxY) qy = maxY;\n\t\t\tlet qz = pz;\n\t\t\tconst minZ = boundsFlat[b + 2];\n\t\t\tconst maxZ = boundsFlat[b + 5];\n\t\t\tif (qz < minZ) qz = minZ;\n\t\t\telse if (qz > maxZ) qz = maxZ;\n\t\t\tconst dx = qx - px;\n\t\t\tconst dy = qy - py;\n\t\t\tconst dz = qz - pz;\n\t\t\tconst actualDistance = Math.sqrt(dx * dx + dy * dy + dz * dz);\n\t\t\tlet penaltyFactor = 1;\n\t\t\tif (lodBehindPenalty > 1 && actualDistance > 0.01) {\n\t\t\t\tconst dotOverDistance = (fwx * dx + fwy * dy + fwz * dz) / actualDistance;\n\t\t\t\tif (dotOverDistance < 0) {\n\t\t\t\t\tconst t = -dotOverDistance;\n\t\t\t\t\tpenaltyFactor = 1 + t * (lodBehindPenalty - 1);\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst fovAdjustedDistance = actualDistance * penaltyFactor * fovScale;\n\t\t\tnodeInfo.worldDistance = fovAdjustedDistance * uniformScale2;\n\t\t\tconst radius = nodes[nodeIndex].boundingSphere.w;\n\t\t\tlet coverage;\n\t\t\tif (distanceMode) {\n\t\t\t\tconst worldDist = Math.max(fovAdjustedDistance * uniformScale2, 1e-6);\n\t\t\t\tcoverage = 1 / (worldDist * worldDist);\n\t\t\t} else if (ortho) {\n\t\t\t\tconst projectedRadius = Math.min(radius * invOrthoHeight, 1);\n\t\t\t\tcoverage = projectedRadius * projectedRadius / (penaltyFactor * penaltyFactor);\n\t\t\t} else {\n\t\t\t\tconst projectedRadius = radius / Math.max(radius + fovAdjustedDistance, 1e-12);\n\t\t\t\tcoverage = projectedRadius * projectedRadius;\n\t\t\t}\n\t\t\tnodeInfo.lodCoverage = Math.max(coverage, 1e-12);\n\t\t}\n\t}\n\tapplyLodChanges(params) {\n\t\tconst nodes = this.octree.nodes;\n\t\tconst { lodUnderfillLimit = 0 } = params;\n\t\tfor (let nodeIndex = 0; nodeIndex < nodes.length; nodeIndex++) {\n\t\t\tconst node = nodes[nodeIndex];\n\t\t\tconst nodeInfo = this.nodeInfos[nodeIndex];\n\t\t\tconst optimalLodIndex = nodeInfo.optimalLod;\n\t\t\tconst currentLodIndex = nodeInfo.currentLod;\n\t\t\tconst desiredLodIndex = this.selectDesiredLodIndex(nodeIndex, optimalLodIndex, lodUnderfillLimit);\n\t\t\tif (desiredLodIndex !== currentLodIndex) {\n\t\t\t\tconst currentFileIndex = currentLodIndex >= 0 ? node.lods[currentLodIndex].fileIndex : -1;\n\t\t\t\tconst desiredFileIndex = desiredLodIndex >= 0 ? node.lods[desiredLodIndex].fileIndex : -1;\n\t\t\t\tconst wasVisible = currentFileIndex !== -1;\n\t\t\t\tconst willBeVisible = desiredFileIndex !== -1;\n\t\t\t\tconst pendingEntry = this.pendingDecrements.get(nodeIndex);\n\t\t\t\tif (pendingEntry) {\n\t\t\t\t\tif (pendingEntry.newFileIndex !== desiredFileIndex) {\n\t\t\t\t\t\tconst prevPendingPlacement = this.filePlacements[pendingEntry.newFileIndex];\n\t\t\t\t\t\tif (prevPendingPlacement) {\n\t\t\t\t\t\t\tthis.decrementFileRef(pendingEntry.newFileIndex, nodeIndex);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (wasVisible && willBeVisible) {\n\t\t\t\t\t\t\tthis.pendingDecrements.set(nodeIndex, { oldFileIndex: pendingEntry.oldFileIndex, newFileIndex: desiredFileIndex });\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.pendingDecrements.delete(nodeIndex);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!wasVisible && willBeVisible) {\n\t\t\t\t\tconst prevPendingFi = this.pendingVisibleAdds.get(nodeIndex);\n\t\t\t\t\tif (prevPendingFi !== void 0 && prevPendingFi !== desiredFileIndex) {\n\t\t\t\t\t\tthis.decrementFileRef(prevPendingFi, nodeIndex);\n\t\t\t\t\t\tthis.pendingVisibleAdds.delete(nodeIndex);\n\t\t\t\t\t}\n\t\t\t\t\tthis.incrementFileRef(desiredFileIndex, nodeIndex, desiredLodIndex);\n\t\t\t\t\tconst newPlacement = this.filePlacements[desiredFileIndex];\n\t\t\t\t\tif (newPlacement?.resource) {\n\t\t\t\t\t\tnodeInfo.currentLod = desiredLodIndex;\n\t\t\t\t\t\tthis.pendingVisibleAdds.delete(nodeIndex);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.pendingVisibleAdds.set(nodeIndex, desiredFileIndex);\n\t\t\t\t\t}\n\t\t\t\t} else if (wasVisible && !willBeVisible) {\n\t\t\t\t\tconst pendingEntry2 = this.pendingDecrements.get(nodeIndex);\n\t\t\t\t\tif (pendingEntry2) {\n\t\t\t\t\t\tthis.decrementFileRef(pendingEntry2.newFileIndex, nodeIndex);\n\t\t\t\t\t\tthis.pendingDecrements.delete(nodeIndex);\n\t\t\t\t\t}\n\t\t\t\t\tthis.decrementFileRef(currentFileIndex, nodeIndex);\n\t\t\t\t\tnodeInfo.currentLod = -1;\n\t\t\t\t\tthis.pendingVisibleAdds.delete(nodeIndex);\n\t\t\t\t} else if (wasVisible && willBeVisible) {\n\t\t\t\t\tthis.incrementFileRef(desiredFileIndex, nodeIndex, desiredLodIndex);\n\t\t\t\t\tconst newPlacement = this.filePlacements[desiredFileIndex];\n\t\t\t\t\tif (newPlacement?.resource) {\n\t\t\t\t\t\tthis.decrementFileRef(currentFileIndex, nodeIndex);\n\t\t\t\t\t\tthis.pendingDecrements.delete(nodeIndex);\n\t\t\t\t\t\tnodeInfo.currentLod = desiredLodIndex;\n\t\t\t\t\t\tthis.pendingVisibleAdds.delete(nodeIndex);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.pendingDecrements.set(nodeIndex, { oldFileIndex: currentFileIndex, newFileIndex: desiredFileIndex });\n\t\t\t\t\t\tthis.pendingVisibleAdds.delete(nodeIndex);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.prefetchNextLod(nodeIndex, desiredLodIndex, optimalLodIndex);\n\t\t}\n\t}\n\tincrementFileRef(fileIndex, nodeIndex, lodIndex) {\n\t\tif (fileIndex === -1) return;\n\t\tlet placement = this.filePlacements[fileIndex];\n\t\tif (!placement) {\n\t\t\tplacement = new GSplatPlacement(null, this.placement.node, lodIndex, null, this.placement);\n\t\t\tthis.filePlacements[fileIndex] = placement;\n\t\t\tconst removeScheduled = this.removedCandidates.delete(fileIndex);\n\t\t\tif (!removeScheduled) {\n\t\t\t\tthis.octree.incRefCount(fileIndex);\n\t\t\t}\n\t\t\tif (!this.addFilePlacement(fileIndex)) {\n\t\t\t\tthis.octree.ensureFileResource(fileIndex);\n\t\t\t\tthis.pending.add(fileIndex);\n\t\t\t}\n\t\t}\n\t\tconst nodes = this.octree.nodes;\n\t\tconst node = nodes[nodeIndex];\n\t\tconst lod = node.lods[lodIndex];\n\t\tconst interval = new Vec2(lod.offset, lod.offset + lod.count - 1);\n\t\tplacement.intervals.set(nodeIndex, interval);\n\t\tthis.dirtyModifiedPlacements = true;\n\t}\n\tdecrementFileRef(fileIndex, nodeIndex) {\n\t\tif (fileIndex === -1) return;\n\t\tconst placement = this.filePlacements[fileIndex];\n\t\tif (!placement) {\n\t\t\treturn;\n\t\t}\n\t\tif (placement) {\n\t\t\tplacement.intervals.delete(nodeIndex);\n\t\t\tthis.dirtyModifiedPlacements = true;\n\t\t\tif (placement.intervals.size === 0) {\n\t\t\t\tif (placement.resource) {\n\t\t\t\t\tthis.activePlacements.delete(placement);\n\t\t\t\t\tif (this.activePlacements.size === 0) {\n\t\t\t\t\t\tthis.dirtyPlacementSetChanged = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.removedCandidates.add(fileIndex);\n\t\t\t\tthis.filePlacements[fileIndex] = null;\n\t\t\t\tthis.pending.delete(fileIndex);\n\t\t\t}\n\t\t}\n\t}\n\taddFilePlacement(fileIndex) {\n\t\tconst res = this.octree.getFileResource(fileIndex);\n\t\tif (res) {\n\t\t\tconst placement = this.filePlacements[fileIndex];\n\t\t\tif (placement) {\n\t\t\t\tplacement.resource = res;\n\t\t\t\tif (this.activePlacements.size === 0) {\n\t\t\t\t\tthis.dirtyPlacementSetChanged = true;\n\t\t\t\t}\n\t\t\t\tthis.activePlacements.add(placement);\n\t\t\t\tthis.dirtyModifiedPlacements = true;\n\t\t\t\tthis.removedCandidates.delete(fileIndex);\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\ttestMoved(threshold) {\n\t\tconst position5 = this.placement.node.getPosition();\n\t\tconst length = position5.distance(this.previousPosition);\n\t\tif (length > threshold) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tupdateMoved() {\n\t\tthis.previousPosition.copy(this.placement.node.getPosition());\n\t}\n\tupdate() {\n\t\tif (this.placement.lodDirty) {\n\t\t\tthis.placement.lodDirty = false;\n\t\t\tthis.needsLodUpdate = true;\n\t\t}\n\t\tif (this.pending.size) {\n\t\t\tfor (const fileIndex of this.pending) {\n\t\t\t\tthis.octree.ensureFileResource(fileIndex);\n\t\t\t\tif (this.addFilePlacement(fileIndex)) {\n\t\t\t\t\t_tempCompletedUrls.push(fileIndex);\n\t\t\t\t\tfor (const [nodeIndex, { oldFileIndex, newFileIndex }] of this.pendingDecrements) {\n\t\t\t\t\t\tif (newFileIndex === fileIndex) {\n\t\t\t\t\t\t\tthis.decrementFileRef(oldFileIndex, nodeIndex);\n\t\t\t\t\t\t\tthis.pendingDecrements.delete(nodeIndex);\n\t\t\t\t\t\t\tlet newLodIndex = 0;\n\t\t\t\t\t\t\tconst nodeLods = this.octree.nodes[nodeIndex].lods;\n\t\t\t\t\t\t\tfor (let li = 0; li < nodeLods.length; li++) {\n\t\t\t\t\t\t\t\tif (nodeLods[li].fileIndex === newFileIndex) {\n\t\t\t\t\t\t\t\t\tnewLodIndex = li;\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tthis.nodeInfos[nodeIndex].currentLod = newLodIndex;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (_tempCompletedUrls.length > 0) {\n\t\t\t\tthis.needsLodUpdate = true;\n\t\t\t}\n\t\t\tfor (const fileIndex of _tempCompletedUrls) {\n\t\t\t\tthis.pending.delete(fileIndex);\n\t\t\t}\n\t\t\t_tempCompletedUrls.length = 0;\n\t\t}\n\t\tthis.pollPrefetchCompletions();\n\t\tif (this.octree.environmentUrl && !this.environmentPlacement) {\n\t\t\tthis.octree.ensureEnvironmentResource();\n\t\t\tconst envResource = this.octree.environmentResource;\n\t\t\tif (envResource) {\n\t\t\t\tthis.environmentPlacement = new GSplatPlacement(envResource, this.placement.node, 0, null, this.placement);\n\t\t\t\tthis.environmentPlacement.aabb.copy(envResource.aabb);\n\t\t\t\tthis.activePlacements.add(this.environmentPlacement);\n\t\t\t\tthis.dirtyModifiedPlacements = true;\n\t\t\t\tthis.dirtyPlacementSetChanged = true;\n\t\t\t\tenvResource.releaseTextureSources?.();\n\t\t\t}\n\t\t}\n\t\tconst dirty = this.dirtyModifiedPlacements;\n\t\tthis.dirtyModifiedPlacements = false;\n\t\treturn dirty;\n\t}\n\tconsumePlacementSetChanged() {\n\t\tconst changed = this.dirtyPlacementSetChanged;\n\t\tthis.dirtyPlacementSetChanged = false;\n\t\treturn changed;\n\t}\n\t// debug render world space bounds for octree nodes based on current LOD selection\n\tdebugRender(scene) {\n\t}\n\tconsumeNeedsLodUpdate() {\n\t\tconst v6 = this.needsLodUpdate;\n\t\tthis.needsLodUpdate = false;\n\t\treturn v6;\n\t}\n\tpollPrefetchCompletions() {\n\t\tif (this.prefetchPending.size) {\n\t\t\tfor (const fileIndex of this.prefetchPending) {\n\t\t\t\tthis.octree.ensureFileResource(fileIndex);\n\t\t\t\tif (this.octree.getFileResource(fileIndex)) {\n\t\t\t\t\t_tempCompletedUrls.push(fileIndex);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (_tempCompletedUrls.length > 0) {\n\t\t\t\tthis.needsLodUpdate = true;\n\t\t\t}\n\t\t\tfor (const fileIndex of _tempCompletedUrls) {\n\t\t\t\tthis.prefetchPending.delete(fileIndex);\n\t\t\t}\n\t\t\t_tempCompletedUrls.length = 0;\n\t\t}\n\t}\n};\n\nvar tmpMin = new Vec3();\nvar tmpMax = new Vec3();\nvar GSplatOctreeNode = class {\n\tlods;\n\tbounds = new BoundingBox();\n\tboundingSphere = new Vec4();\n\tconstructor(lods, boundData) {\n\t\tthis.lods = lods;\n\t\ttmpMin.set(boundData.min[0], boundData.min[1], boundData.min[2]);\n\t\ttmpMax.set(boundData.max[0], boundData.max[1], boundData.max[2]);\n\t\tthis.bounds.setMinMax(tmpMin, tmpMax);\n\t\tconst center2 = this.bounds.center;\n\t\tconst he = this.bounds.halfExtents;\n\t\tconst radius = Math.sqrt(he.x * he.x + he.y * he.y + he.z * he.z);\n\t\tthis.boundingSphere.set(center2.x, center2.y, center2.z, radius);\n\t}\n};\n\nvar DISTANCE_BAND_MULTIPLIER = 3;\nvar GSplatLodTable = class {\n\trangeMin;\n\trangeMax;\n\tlodMode;\n\trefCount = 0;\n\tstartLod;\n\tstartCount;\n\tfirstUpgrade;\n\tupgradeToLod;\n\tupgradeCost;\n\tupgradeRatio;\n\ttotalStartCount = 0;\n\ttotalFinestCount = 0;\n\tconstructor(octree, rangeMin, rangeMax, lodMode = GSPLAT_LODMODE_ERROR) {\n\t\tthis.rangeMin = rangeMin;\n\t\tthis.rangeMax = rangeMax;\n\t\tthis.lodMode = lodMode;\n\t\tconst nodes = octree.nodes;\n\t\tconst nodeCount = nodes.length;\n\t\tconst spanLength = rangeMax - rangeMin + 1;\n\t\tthis.startLod = new Int16Array(nodeCount);\n\t\tthis.startCount = new Int32Array(nodeCount);\n\t\tthis.firstUpgrade = new Int32Array(nodeCount + 1);\n\t\tconst maxUpgrades = nodeCount * Math.max(0, spanLength - 1);\n\t\tconst upgradeToLod = new Int16Array(maxUpgrades);\n\t\tconst upgradeCost = new Int32Array(maxUpgrades);\n\t\tconst upgradeRatio = new Float32Array(maxUpgrades);\n\t\tconst scratch = new Int16Array(spanLength);\n\t\tconst distanceMode = lodMode === GSPLAT_LODMODE_DISTANCE;\n\t\tconst err2 = new Float64Array(rangeMax + 1);\n\t\tconst bandWeight = new Float64Array(rangeMax + 1);\n\t\tfor (let lod = 1; lod <= rangeMax; lod++) {\n\t\t\tbandWeight[lod] = Math.pow(DISTANCE_BAND_MULTIPLIER, 2 * (lod - 1));\n\t\t}\n\t\tlet upgradeCount = 0;\n\t\tlet totalStartCount = 0;\n\t\tlet totalFinestCount = 0;\n\t\tfor (let n = 0; n < nodeCount; n++) {\n\t\t\tconst lods = nodes[n].lods;\n\t\t\tthis.firstUpgrade[n] = upgradeCount;\n\t\t\tlet coarsestData = -1;\n\t\t\tfor (let lod = rangeMax; lod >= rangeMin; lod--) {\n\t\t\t\tif (lods[lod].count > 0) {\n\t\t\t\t\tcoarsestData = lod;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst emptyLod = coarsestData >= 0 && coarsestData < rangeMax ? coarsestData + 1 : -1;\n\t\t\tif (distanceMode) {\n\t\t\t\tlet finerCount = -1;\n\t\t\t\tlet e = 0;\n\t\t\t\tfor (let lod = rangeMin; lod <= rangeMax; lod++) {\n\t\t\t\t\tif (lods[lod].count <= 0) continue;\n\t\t\t\t\tif (finerCount >= 0) {\n\t\t\t\t\t\te += Math.max(finerCount - lods[lod].count, 1) * bandWeight[lod];\n\t\t\t\t\t}\n\t\t\t\t\terr2[lod] = e;\n\t\t\t\t\tfinerCount = lods[lod].count;\n\t\t\t\t}\n\t\t\t\tif (emptyLod >= 0) {\n\t\t\t\t\terr2[emptyLod] = e + Math.max(finerCount, 1) * bandWeight[emptyLod];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (let lod = rangeMin; lod <= rangeMax; lod++) {\n\t\t\t\t\terr2[lod] = lods[lod].error;\n\t\t\t\t}\n\t\t\t\tif (emptyLod >= 0) {\n\t\t\t\t\tconst ec2 = err2[coarsestData];\n\t\t\t\t\tlet step = 0;\n\t\t\t\t\tfor (let lod = coarsestData - 1; lod >= 0; lod--) {\n\t\t\t\t\t\tif (lods[lod].count > 0) {\n\t\t\t\t\t\t\tstep = ec2 - lods[lod].error;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\terr2[emptyLod] = ec2 + (step > 0 ? step : Math.LN2);\n\t\t\t\t}\n\t\t\t}\n\t\t\tlet candidateCount = 0;\n\t\t\tfor (let lod = rangeMax; lod >= rangeMin; lod--) {\n\t\t\t\tif (lods[lod].count <= 0 && lod !== emptyLod) continue;\n\t\t\t\tlet j = candidateCount++;\n\t\t\t\twhile (j > 0) {\n\t\t\t\t\tconst prev = scratch[j - 1];\n\t\t\t\t\tif (lods[prev].count < lods[lod].count || lods[prev].count === lods[lod].count && err2[prev] <= err2[lod]) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tscratch[j] = prev;\n\t\t\t\t\tj--;\n\t\t\t\t}\n\t\t\t\tscratch[j] = lod;\n\t\t\t}\n\t\t\tlet frontierCount = 0;\n\t\t\tlet bestError = Infinity;\n\t\t\tfor (let i2 = 0; i2 < candidateCount; i2++) {\n\t\t\t\tconst lod = scratch[i2];\n\t\t\t\tif (err2[lod] < bestError) {\n\t\t\t\t\tbestError = err2[lod];\n\t\t\t\t\tscratch[frontierCount++] = lod;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (frontierCount === 0) {\n\t\t\t\tthis.startLod[n] = -1;\n\t\t\t\tthis.startCount[n] = 0;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst startLod = scratch[0];\n\t\t\tthis.startLod[n] = startLod;\n\t\t\tthis.startCount[n] = lods[startLod].count;\n\t\t\ttotalStartCount += lods[startLod].count;\n\t\t\ttotalFinestCount += lods[scratch[frontierCount - 1]].count;\n\t\t\tfor (let i2 = 1; i2 < frontierCount; i2++) {\n\t\t\t\tconst coarseLod = scratch[i2 - 1];\n\t\t\t\tconst fineLod = scratch[i2];\n\t\t\t\tlet ratio = 0;\n\t\t\t\tfor (let j = i2; j < frontierCount; j++) {\n\t\t\t\t\tconst reach = scratch[j];\n\t\t\t\t\tconst r = (err2[coarseLod] - err2[reach]) / (lods[reach].count - lods[coarseLod].count);\n\t\t\t\t\tif (r > ratio) ratio = r;\n\t\t\t\t}\n\t\t\t\tupgradeToLod[upgradeCount] = fineLod;\n\t\t\t\tupgradeCost[upgradeCount] = lods[fineLod].count - lods[coarseLod].count;\n\t\t\t\tupgradeRatio[upgradeCount] = ratio;\n\t\t\t\tupgradeCount++;\n\t\t\t}\n\t\t}\n\t\tthis.firstUpgrade[nodeCount] = upgradeCount;\n\t\tthis.totalStartCount = totalStartCount;\n\t\tthis.totalFinestCount = totalFinestCount;\n\t\tthis.upgradeToLod = upgradeToLod.subarray(0, upgradeCount).slice();\n\t\tthis.upgradeCost = upgradeCost.subarray(0, upgradeCount).slice();\n\t\tthis.upgradeRatio = upgradeRatio.subarray(0, upgradeCount).slice();\n\t}\n\tfindCoarserAccepted(nodeIndex, lod, limit, accept) {\n\t\tconst start = this.firstUpgrade[nodeIndex];\n\t\tconst end = this.firstUpgrade[nodeIndex + 1];\n\t\tlet position5 = -1;\n\t\tfor (let k = start; k < end; k++) {\n\t\t\tif (this.upgradeToLod[k] === lod) {\n\t\t\t\tposition5 = k - start;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (position5 < 0 && this.startLod[nodeIndex] !== lod) return -1;\n\t\tconst lowest = Math.max(-1, position5 - limit);\n\t\tfor (let p = position5; p >= lowest; p--) {\n\t\t\tconst candidate = p < 0 ? this.startLod[nodeIndex] : this.upgradeToLod[start + p];\n\t\t\tif (accept(candidate)) return candidate;\n\t\t}\n\t\treturn -1;\n\t}\n\tcoarserOnChain(nodeIndex, lod) {\n\t\tconst start = this.firstUpgrade[nodeIndex];\n\t\tconst end = this.firstUpgrade[nodeIndex + 1];\n\t\tfor (let k = start; k < end; k++) {\n\t\t\tif (this.upgradeToLod[k] === lod) {\n\t\t\t\treturn k === start ? this.startLod[nodeIndex] : this.upgradeToLod[k - 1];\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t}\n\tfinerOnChain(nodeIndex, lod) {\n\t\tconst start = this.firstUpgrade[nodeIndex];\n\t\tconst end = this.firstUpgrade[nodeIndex + 1];\n\t\tif (start === end) return -1;\n\t\tif (this.startLod[nodeIndex] === lod) return this.upgradeToLod[start];\n\t\tfor (let k = start; k < end - 1; k++) {\n\t\t\tif (this.upgradeToLod[k] === lod) return this.upgradeToLod[k + 1];\n\t\t}\n\t\treturn -1;\n\t}\n};\n\nvar _toDelete = [];\nvar GSplatOctree = class {\n\tnodes;\n\tnodeBoundsMinMax;\n\tfiles;\n\tlodLevels;\n\tlodErrorSource = \"derived\";\n\t_lodTables = /* @__PURE__ */ new Map();\n\tassetFileUrl;\n\tfileResources = /* @__PURE__ */ new Map();\n\tfileRefCounts;\n\tcooldowns = /* @__PURE__ */ new Map();\n\tenvironmentUrl = null;\n\tenvironmentResource = null;\n\tenvironmentRefCount = 0;\n\tassetLoader = null;\n\tdestroyed = false;\n\tcooldownTicks = 100;\n\tconstructor(assetFileUrl, data2) {\n\t\tthis.lodLevels = data2.lodLevels;\n\t\tthis.assetFileUrl = assetFileUrl;\n\t\tconst baseDir = path.getDirectory(assetFileUrl);\n\t\tthis.files = data2.filenames.map((url) => ({\n\t\t\turl: path.isRelativePath(url) ? path.join(baseDir, url) : url,\n\t\t\tlodLevel: -1\n\t\t}));\n\t\tthis.fileRefCounts = new Int32Array(this.files.length);\n\t\tif (data2.environment) {\n\t\t\tthis.environmentUrl = path.isRelativePath(data2.environment) ? path.join(baseDir, data2.environment) : data2.environment;\n\t\t}\n\t\tconst leafNodes = [];\n\t\tthis._extractLeafNodes(data2.tree, leafNodes);\n\t\tlet fileErrors = data2.lodErrors === true;\n\t\tthis.nodes = leafNodes.map((nodeData) => {\n\t\t\tconst lods = [];\n\t\t\tfor (let i2 = 0; i2 < this.lodLevels; i2++) {\n\t\t\t\tconst lodData = nodeData.lods[i2.toString()];\n\t\t\t\tconst error = nodeData.errors?.[i2];\n\t\t\t\tif (lodData) {\n\t\t\t\t\tlods.push({\n\t\t\t\t\t\tfile: this.files[lodData.file].url || \"\",\n\t\t\t\t\t\t// A level listed with no splats has nothing to load: give it no file, the\n\t\t\t\t\t\t// same as a level the manifest omits, so nothing downstream places or\n\t\t\t\t\t\t// fetches it (see GSplatLodTable's empty level).\n\t\t\t\t\t\tfileIndex: (lodData.count || 0) > 0 ? lodData.file : -1,\n\t\t\t\t\t\toffset: lodData.offset || 0,\n\t\t\t\t\t\tcount: lodData.count || 0,\n\t\t\t\t\t\terror: 0\n\t\t\t\t\t});\n\t\t\t\t\tthis.files[lodData.file].lodLevel = i2;\n\t\t\t\t} else {\n\t\t\t\t\tlods.push({\n\t\t\t\t\t\tfile: \"\",\n\t\t\t\t\t\tfileIndex: -1,\n\t\t\t\t\t\toffset: 0,\n\t\t\t\t\t\tcount: 0,\n\t\t\t\t\t\terror: 0\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif (fileErrors) {\n\t\t\t\t\tif (lods[i2].count > 0 && !(Number.isFinite(error) && error >= 0)) {\n\t\t\t\t\t\tfileErrors = false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlods[i2].error = error ?? 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn new GSplatOctreeNode(lods, nodeData.bound);\n\t\t});\n\t\tthis.lodErrorSource = fileErrors ? \"file\" : \"derived\";\n\t\tif (data2.lodErrors === true && !fileErrors) {\n\t\t}\n\t\tif (!fileErrors) {\n\t\t\tthis._deriveLodErrors();\n\t\t}\n\t\tconst nodeCount = this.nodes.length;\n\t\tconst boundsFlat = new Float32Array(nodeCount * 6);\n\t\tfor (let i2 = 0; i2 < nodeCount; i2++) {\n\t\t\tconst bounds = this.nodes[i2].bounds;\n\t\t\tconst mn = bounds.getMin();\n\t\t\tconst mx = bounds.getMax();\n\t\t\tconst b = i2 * 6;\n\t\t\tboundsFlat[b + 0] = mn.x;\n\t\t\tboundsFlat[b + 1] = mn.y;\n\t\t\tboundsFlat[b + 2] = mn.z;\n\t\t\tboundsFlat[b + 3] = mx.x;\n\t\t\tboundsFlat[b + 4] = mx.y;\n\t\t\tboundsFlat[b + 5] = mx.z;\n\t\t}\n\t\tthis.nodeBoundsMinMax = boundsFlat;\n\t}\n\tdestroy() {\n\t\tthis.destroyed = true;\n\t\tthis._lodTables.clear();\n\t\tthis.fileResources.clear();\n\t\tthis.cooldowns.clear();\n\t\tthis.assetLoader?.destroy();\n\t\tthis.assetLoader = null;\n\t\tthis.environmentResource = null;\n\t}\n\t_traceLodCounts() {\n\t}\n\t_deriveLodErrors() {\n\t\tconst levels = this.lodLevels;\n\t\tconst nodes = this.nodes;\n\t\tfor (let n = 0; n < nodes.length; n++) {\n\t\t\tconst lods = nodes[n].lods;\n\t\t\tlet refCount = 0;\n\t\t\tfor (let i2 = 0; i2 < levels; i2++) {\n\t\t\t\tif (lods[i2].count > 0) {\n\t\t\t\t\trefCount = lods[i2].count;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (refCount === 0) continue;\n\t\t\tlet previous = 0;\n\t\t\tfor (let i2 = 0; i2 < levels; i2++) {\n\t\t\t\tconst count = lods[i2].count;\n\t\t\t\tconst error = count > 0 ? Math.log(refCount / count) : 0;\n\t\t\t\tprevious = Math.max(previous, error);\n\t\t\t\tlods[i2].error = previous;\n\t\t\t}\n\t\t}\n\t}\n\tacquireLodTable(rangeMin, rangeMax, lodMode = GSPLAT_LODMODE_ERROR) {\n\t\tconst key = `${rangeMin},${rangeMax},${lodMode}`;\n\t\tlet table = this._lodTables.get(key);\n\t\tif (!table) {\n\t\t\ttable = new GSplatLodTable(this, rangeMin, rangeMax, lodMode);\n\t\t\tthis._lodTables.set(key, table);\n\t\t}\n\t\ttable.refCount++;\n\t\treturn table;\n\t}\n\treleaseLodTable(table) {\n\t\tif (!table) return;\n\t\tif (--table.refCount <= 0) {\n\t\t\tthis._lodTables.delete(`${table.rangeMin},${table.rangeMax},${table.lodMode}`);\n\t\t}\n\t}\n\t_extractLeafNodes(node, leafNodes) {\n\t\tif (node.lods) {\n\t\t\tleafNodes.push({\n\t\t\t\tlods: node.lods,\n\t\t\t\tbound: node.bound,\n\t\t\t\terrors: node.errors\n\t\t\t});\n\t\t} else if (node.children) {\n\t\t\tfor (const child of node.children) {\n\t\t\t\tthis._extractLeafNodes(child, leafNodes);\n\t\t\t}\n\t\t}\n\t}\n\tgetFileResource(fileIndex) {\n\t\treturn this.fileResources.get(fileIndex);\n\t}\n\tincRefCount(fileIndex) {\n\t\tconst count = this.fileRefCounts[fileIndex] + 1;\n\t\tthis.fileRefCounts[fileIndex] = count;\n\t\tthis.cooldowns.delete(fileIndex);\n\t}\n\tdecRefCount(fileIndex, cooldownTicks) {\n\t\tconst count = this.fileRefCounts[fileIndex] - 1;\n\t\tthis.fileRefCounts[fileIndex] = count;\n\t\tif (count === 0) {\n\t\t\tif (cooldownTicks === 0) {\n\t\t\t\tthis.unloadResource(fileIndex);\n\t\t\t} else {\n\t\t\t\tthis.cooldowns.set(fileIndex, cooldownTicks);\n\t\t\t}\n\t\t}\n\t}\n\tunloadResource(fileIndex) {\n\t\tif (!this.assetLoader) {\n\t\t\treturn;\n\t\t}\n\t\tconst fullUrl = this.files[fileIndex].url;\n\t\tthis.assetLoader.unload(fullUrl);\n\t\tif (this.fileResources.has(fileIndex)) {\n\t\t\tthis.fileResources.delete(fileIndex);\n\t\t\tthis._traceLodCounts();\n\t\t}\n\t}\n\tupdateCooldownTick(cooldownTicks) {\n\t\tthis.cooldownTicks = cooldownTicks;\n\t\tif (this.cooldowns.size > 0) {\n\t\t\tthis.cooldowns.forEach((remaining, fileIndex) => {\n\t\t\t\tif (remaining <= 1) {\n\t\t\t\t\tif (this.fileRefCounts[fileIndex] === 0) {\n\t\t\t\t\t\tthis.unloadResource(fileIndex);\n\t\t\t\t\t}\n\t\t\t\t\t_toDelete.push(fileIndex);\n\t\t\t\t} else {\n\t\t\t\t\tthis.cooldowns.set(fileIndex, remaining - 1);\n\t\t\t\t}\n\t\t\t});\n\t\t\t_toDelete.forEach((idx) => this.cooldowns.delete(idx));\n\t\t\t_toDelete.length = 0;\n\t\t}\n\t}\n\tensureFileResource(fileIndex) {\n\t\tif (!this.assetLoader) {\n\t\t\treturn;\n\t\t}\n\t\tif (this.fileResources.has(fileIndex)) {\n\t\t\treturn;\n\t\t}\n\t\tconst fullUrl = this.files[fileIndex].url;\n\t\tconst res = this.assetLoader?.getResource(fullUrl);\n\t\tif (res) {\n\t\t\tthis.fileResources.set(fileIndex, res);\n\t\t\tres.releaseTextureSources?.();\n\t\t\tif (this.fileRefCounts[fileIndex] === 0) {\n\t\t\t\tthis.cooldowns.set(fileIndex, this.cooldownTicks);\n\t\t\t}\n\t\t\tthis._traceLodCounts();\n\t\t\treturn;\n\t\t}\n\t\tthis.assetLoader?.load(fullUrl);\n\t}\n\tincEnvironmentRefCount() {\n\t\tthis.environmentRefCount++;\n\t}\n\tdecEnvironmentRefCount() {\n\t\tthis.environmentRefCount--;\n\t\tif (this.environmentRefCount === 0) {\n\t\t\tthis.unloadEnvironmentResource();\n\t\t}\n\t}\n\tensureEnvironmentResource() {\n\t\tif (!this.assetLoader) {\n\t\t\treturn;\n\t\t}\n\t\tif (!this.environmentUrl) {\n\t\t\treturn;\n\t\t}\n\t\tif (this.environmentResource) {\n\t\t\treturn;\n\t\t}\n\t\tconst res = this.assetLoader.getResource(this.environmentUrl);\n\t\tif (res) {\n\t\t\tthis.environmentResource = res;\n\t\t\tif (this.environmentRefCount === 0) {\n\t\t\t\tthis.unloadEnvironmentResource();\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tthis.assetLoader.load(this.environmentUrl);\n\t}\n\tunloadEnvironmentResource() {\n\t\tif (!this.assetLoader) {\n\t\t\treturn;\n\t\t}\n\t\tif (this.environmentResource && this.environmentUrl) {\n\t\t\tthis.assetLoader.unload(this.environmentUrl);\n\t\t\tthis.environmentResource = null;\n\t\t}\n\t}\n};\n\nvar GSplatOctreeResource = class {\n\taabb = new BoundingBox();\n\tcentersVersion = 0;\n\toctree;\n\t_numSplats = null;\n\tdata;\n\tconstructor(assetFileUrl, data2, assetLoader) {\n\t\tthis.octree = new GSplatOctree(assetFileUrl, data2);\n\t\tthis.octree.assetLoader = assetLoader;\n\t\tthis.aabb.setMinMax(new Vec3(data2.tree.bound.min), new Vec3(data2.tree.bound.max));\n\t\tthis.data = data2;\n\t\tthis.data.tree = null;\n\t}\n\tget numSplats() {\n\t\tif (this._numSplats === null) {\n\t\t\tlet total = 0;\n\t\t\tconst nodes = this.octree?.nodes ?? [];\n\t\t\tfor (let i2 = 0; i2 < nodes.length; i2++) {\n\t\t\t\ttotal += nodes[i2].lods[0]?.count ?? 0;\n\t\t\t}\n\t\t\tthis._numSplats = total;\n\t\t}\n\t\treturn this._numSplats;\n\t}\n\tdestroy() {\n\t\tthis.octree?.destroy();\n\t\tthis.octree = null;\n\t}\n};\n\nvar _newAllocIds = /* @__PURE__ */ new Set();\nvar _toAllocateIds = [];\nvar _toAllocate = [];\nvar _toFree = [];\nvar GSplatWorldState = class {\n\tversion = 0;\n\tsortParametersSet = false;\n\tsortedBefore = false;\n\tsplats = [];\n\ttextureSize = 0;\n\ttotalActiveSplats = 0;\n\ttotalIntervals = 0;\n\tboundsGroups = [];\n\tpendingReleases = [];\n\tneedsUpload = [];\n\tneedsUploadIds = /* @__PURE__ */ new Set();\n\tallocIdToSplat = /* @__PURE__ */ new Map();\n\tfullRebuild = false;\n\tconstructor(device, version2, splats, allocator, allocationMap) {\n\t\tthis.version = version2;\n\t\tthis.splats = splats;\n\t\tif (splats.length === 0) {\n\t\t\tfor (const [, block] of allocationMap) {\n\t\t\t\tallocator.free(block);\n\t\t\t}\n\t\t\tallocationMap.clear();\n\t\t\tthis.totalActiveSplats = 0;\n\t\t\tthis.totalIntervals = 0;\n\t\t\tthis.textureSize = 1;\n\t\t\treturn;\n\t\t}\n\t\tthis.computeAllocationDiff(splats, allocationMap);\n\t\tconst { fullRebuild, changedAllocIds } = this.applyAllocations(device, allocator, allocationMap);\n\t\tthis.assignSplatOffsets(splats, allocationMap, fullRebuild, changedAllocIds);\n\t\tthis.buildBoundsGroups(splats);\n\t}\n\tdestroy() {\n\t\tthis.splats.forEach((splat) => splat.destroy());\n\t\tthis.splats.length = 0;\n\t\tthis.needsUpload.length = 0;\n\t\tthis.needsUploadIds.clear();\n\t\tthis.allocIdToSplat.clear();\n\t\tthis.boundsGroups.length = 0;\n\t}\n\tcomputeAllocationDiff(splats, allocationMap) {\n\t\tfor (let i2 = 0; i2 < splats.length; i2++) {\n\t\t\tconst splat = splats[i2];\n\t\t\tconst allocIds = splat.intervalAllocIds;\n\t\t\tconst intervals = splat.intervals;\n\t\t\tconst numIntervals = intervals.length / 2;\n\t\t\tif (numIntervals > 0 && allocIds.length === numIntervals) {\n\t\t\t\tfor (let j = 0; j < numIntervals; j++) {\n\t\t\t\t\tthis._diffAlloc(allocIds[j], intervals[j * 2 + 1] - intervals[j * 2], allocationMap);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis._diffAlloc(splat.allocId, splat.activeSplats, allocationMap);\n\t\t\t}\n\t\t}\n\t\tfor (const [allocId, block] of allocationMap) {\n\t\t\tif (!_newAllocIds.has(allocId)) {\n\t\t\t\t_toFree.push(block);\n\t\t\t\tallocationMap.delete(allocId);\n\t\t\t}\n\t\t}\n\t}\n\t_diffAlloc(allocId, size, allocationMap) {\n\t\t_newAllocIds.add(allocId);\n\t\tconst existing = allocationMap.get(allocId);\n\t\tif (existing) {\n\t\t\tif (existing.size !== size) {\n\t\t\t\t_toFree.push(existing);\n\t\t\t\tallocationMap.delete(allocId);\n\t\t\t\tif (size > 0) {\n\t\t\t\t\t_toAllocateIds.push(allocId);\n\t\t\t\t\t_toAllocate.push(size);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (size > 0) {\n\t\t\t_toAllocateIds.push(allocId);\n\t\t\t_toAllocate.push(size);\n\t\t}\n\t}\n\tapplyAllocations(device, allocator, allocationMap) {\n\t\tlet fullRebuild = false;\n\t\tif (_toFree.length > 0 || _toAllocate.length > 0) {\n\t\t\tfullRebuild = allocator.updateAllocation(_toFree, _toAllocate);\n\t\t\tfor (let i2 = 0; i2 < _toAllocateIds.length; i2++) {\n\t\t\t\tallocationMap.set(_toAllocateIds[i2], _toAllocate[i2]);\n\t\t\t}\n\t\t}\n\t\tthis.fullRebuild = fullRebuild;\n\t\tconst churn = _toFree.length + _toAllocateIds.length;\n\t\tconst incrementalDefragMoves = Math.max(50, churn);\n\t\tif (!fullRebuild && allocator.fragmentation > 0.3) {\n\t\t\tconst moved = allocator.defrag(incrementalDefragMoves);\n\t\t\tif (moved.size > 0) {\n\t\t\t\tfor (const [allocId, block] of allocationMap) {\n\t\t\t\t\tif (moved.has(block)) {\n\t\t\t\t\t\t_toAllocateIds.push(allocId);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tconst cap = allocator.capacity;\n\t\tthis.textureSize = cap > 0 ? Math.ceil(Math.sqrt(cap)) : 1;\n\t\tconst changedAllocIds = _toAllocateIds.length > 0 ? new Set(_toAllocateIds) : null;\n\t\t_newAllocIds.clear();\n\t\t_toAllocateIds.length = 0;\n\t\t_toAllocate.length = 0;\n\t\t_toFree.length = 0;\n\t\treturn { fullRebuild, changedAllocIds };\n\t}\n\tassignSplatOffsets(splats, allocationMap, fullRebuild, changedAllocIds) {\n\t\tlet totalActiveSplats = 0;\n\t\tlet totalIntervals = 0;\n\t\tfor (let i2 = 0; i2 < splats.length; i2++) {\n\t\t\tconst splat = splats[i2];\n\t\t\tconst allocIds = splat.intervalAllocIds;\n\t\t\tconst intervals = splat.intervals;\n\t\t\tconst numIntervals = intervals.length / 2;\n\t\t\ttotalIntervals += numIntervals > 0 ? numIntervals : 1;\n\t\t\tlet splatChanged = fullRebuild;\n\t\t\tconst intervalOffsets = [];\n\t\t\tif (numIntervals > 0 && allocIds.length === numIntervals) {\n\t\t\t\tfor (let j = 0; j < numIntervals; j++) {\n\t\t\t\t\tthis.allocIdToSplat.set(allocIds[j], splat);\n\t\t\t\t\tconst block = allocationMap.get(allocIds[j]);\n\t\t\t\t\tif (block) {\n\t\t\t\t\t\tintervalOffsets.push(block.offset);\n\t\t\t\t\t\ttotalActiveSplats += intervals[j * 2 + 1] - intervals[j * 2];\n\t\t\t\t\t\tif (changedAllocIds && changedAllocIds.has(allocIds[j])) {\n\t\t\t\t\t\t\tsplatChanged = true;\n\t\t\t\t\t\t\tthis.needsUploadIds.add(allocIds[j]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.allocIdToSplat.set(splat.allocId, splat);\n\t\t\t\tconst block = allocationMap.get(splat.allocId);\n\t\t\t\tif (block) {\n\t\t\t\t\tintervalOffsets.push(block.offset);\n\t\t\t\t\ttotalActiveSplats += splat.activeSplats;\n\t\t\t\t\tif (changedAllocIds && changedAllocIds.has(splat.allocId)) {\n\t\t\t\t\t\tsplatChanged = true;\n\t\t\t\t\t\tthis.needsUploadIds.add(splat.allocId);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (intervalOffsets.length > 0) {\n\t\t\t\tsplat.setLayout(intervalOffsets);\n\t\t\t\tif (splatChanged) {\n\t\t\t\t\tthis.needsUpload.push(splat);\n\t\t\t\t\tif (fullRebuild) {\n\t\t\t\t\t\tfor (let j = 0; j < allocIds.length; j++) {\n\t\t\t\t\t\t\tthis.needsUploadIds.add(allocIds[j]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis.totalActiveSplats = totalActiveSplats;\n\t\tthis.totalIntervals = totalIntervals;\n\t}\n\tbuildBoundsGroups(splats) {\n\t\tconst groupMap = /* @__PURE__ */ new Map();\n\t\tfor (let i2 = 0; i2 < splats.length; i2++) {\n\t\t\tconst splat = splats[i2];\n\t\t\tconst key = splat.parentPlacementId;\n\t\t\tif (!groupMap.has(key)) {\n\t\t\t\tgroupMap.set(key, {\n\t\t\t\t\tsplat,\n\t\t\t\t\tboundsBaseIndex: 0,\n\t\t\t\t\tnumBoundsEntries: splat.numBoundsEntries\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\tlet boundsIndex = 0;\n\t\tfor (const group of groupMap.values()) {\n\t\t\tgroup.boundsBaseIndex = boundsIndex;\n\t\t\tboundsIndex += group.numBoundsEntries;\n\t\t\tthis.boundsGroups.push(group);\n\t\t}\n\t\tfor (let i2 = 0; i2 < splats.length; i2++) {\n\t\t\tconst group = groupMap.get(splats[i2].parentPlacementId);\n\t\t\tsplats[i2].boundsBaseIndex = group.boundsBaseIndex;\n\t\t}\n\t}\n};\n\nvar GSplatPlacementStateTracker = class {\n\t_states = /* @__PURE__ */ new WeakMap();\n\thasChanges(placements) {\n\t\tlet changed = false;\n\t\tfor (const p of placements) {\n\t\t\tif (!p.resource) continue;\n\t\t\tconst formatVersion = p.resource.format?.extraStreamsVersion ?? 0;\n\t\t\tconst modifierHash = p.workBufferModifier?.hash ?? 0;\n\t\t\tconst numSplats = p.resource.numSplats ?? 0;\n\t\t\tconst centersVersion = p.resource.centersVersion;\n\t\t\tconst state = this._states.get(p);\n\t\t\tif (!state) {\n\t\t\t\tthis._states.set(p, { formatVersion, modifierHash, numSplats, centersVersion });\n\t\t\t\tchanged = true;\n\t\t\t} else if (state.formatVersion !== formatVersion || state.modifierHash !== modifierHash || state.numSplats !== numSplats || state.centersVersion !== centersVersion) {\n\t\t\t\tstate.formatVersion = formatVersion;\n\t\t\t\tstate.modifierHash = modifierHash;\n\t\t\t\tstate.numSplats = numSplats;\n\t\t\t\tstate.centersVersion = centersVersion;\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t}\n\t\treturn changed;\n\t}\n};\n\nvar _f32 = new Float32Array(1);\nvar _u32 = new Uint32Array(_f32.buffer);\nvar keyOf = (value) => {\n\t_f32[0] = value;\n\treturn _u32[0];\n};\nvar KEY_LO = keyOf(1e-24);\nvar KEY_HI = keyOf(1e3);\nvar KEY_SCALE = (NUM_VALUE_BUCKETS - 1) / (KEY_HI - KEY_LO);\nvar KEY_ONE = keyOf(1);\nvar KEY_PIVOT = keyOf(1e-4);\nvar GSplatBudgetBalancer = class {\n\t_bucketHead = new Int32Array(NUM_VALUE_BUCKETS);\n\t_bucketTail = new Int32Array(NUM_VALUE_BUCKETS);\n\t_next = new Int32Array(0);\n\t_pending = new Int32Array(0);\n\t_coverage = new Float32Array(0);\n\t_coverageKey = new Float64Array(0);\n\t_instanceOf = new Uint16Array(0);\n\t_instanceBase = [];\n\t_instances = [];\n\t_tables = [];\n\t_ensureCapacity(capacity) {\n\t\tif (this._next.length >= capacity) return;\n\t\tconst size = Math.max(capacity, this._next.length * 2, 1024);\n\t\tthis._next = new Int32Array(size);\n\t\tthis._pending = new Int32Array(size);\n\t\tthis._coverage = new Float32Array(size);\n\t\tthis._coverageKey = new Float64Array(size);\n\t\tthis._instanceOf = new Uint16Array(size);\n\t}\n\t_bucketOf(value) {\n\t\tconst bucket = (keyOf(value) - KEY_LO) * KEY_SCALE | 0;\n\t\treturn bucket < 0 ? 0 : bucket >= NUM_VALUE_BUCKETS ? NUM_VALUE_BUCKETS - 1 : bucket;\n\t}\n\t_bucketOfKey(key) {\n\t\tconst bucket = (key - KEY_LO) * KEY_SCALE | 0;\n\t\treturn bucket < 0 ? 0 : bucket >= NUM_VALUE_BUCKETS ? NUM_VALUE_BUCKETS - 1 : bucket;\n\t}\n\t_push(bucket, node) {\n\t\tthis._next[node] = -1;\n\t\tif (this._bucketHead[bucket] < 0) {\n\t\t\tthis._bucketHead[bucket] = node;\n\t\t} else {\n\t\t\tthis._next[this._bucketTail[bucket]] = node;\n\t\t}\n\t\tthis._bucketTail[bucket] = node;\n\t}\n\tbalance(octreeInstances, budget) {\n\t\tconst instances = this._instances;\n\t\tconst tables = this._tables;\n\t\tconst bases = this._instanceBase;\n\t\tinstances.length = 0;\n\t\ttables.length = 0;\n\t\tbases.length = 0;\n\t\tlet nodeTotal = 0;\n\t\tlet totalStartCount = 0;\n\t\tlet totalFinestCount = 0;\n\t\tlet useKeys = false;\n\t\tfor (const [, inst] of octreeInstances) {\n\t\t\tconst table = inst.lodTable;\n\t\t\tbases.push(nodeTotal);\n\t\t\tinstances.push(inst);\n\t\t\ttables.push(table);\n\t\t\tnodeTotal += inst.octree.nodes.length;\n\t\t\ttotalStartCount += table.totalStartCount;\n\t\t\ttotalFinestCount += table.totalFinestCount;\n\t\t\tif (inst.placement.lodFalloff !== 1) useKeys = true;\n\t\t}\n\t\tif (instances.length === 0) return;\n\t\tif (totalFinestCount <= budget) {\n\t\t\tthis._assignChainEnd(true);\n\t\t\treturn;\n\t\t}\n\t\tif (totalStartCount >= budget) {\n\t\t\tthis._assignChainEnd(false);\n\t\t\treturn;\n\t\t}\n\t\tthis._ensureCapacity(nodeTotal);\n\t\tthis._bucketHead.fill(-1);\n\t\tconst next = this._next;\n\t\tconst pending = this._pending;\n\t\tconst coverage = this._coverage;\n\t\tconst coverageKey = this._coverageKey;\n\t\tconst instanceOf = this._instanceOf;\n\t\tfor (let i2 = 0; i2 < instances.length; i2++) {\n\t\t\tconst inst = instances[i2];\n\t\t\tconst table = tables[i2];\n\t\t\tconst nodeInfos = inst.nodeInfos;\n\t\t\tconst base = bases[i2];\n\t\t\tconst { startLod, firstUpgrade, upgradeRatio } = table;\n\t\t\tconst falloff = inst.placement.lodFalloff;\n\t\t\tfor (let n = 0, len = nodeInfos.length; n < len; n++) {\n\t\t\t\tconst nodeInfo = nodeInfos[n];\n\t\t\t\tconst lod = startLod[n];\n\t\t\t\tnodeInfo.optimalLod = lod;\n\t\t\t\tif (lod < 0) continue;\n\t\t\t\tconst first = firstUpgrade[n];\n\t\t\t\tif (first >= firstUpgrade[n + 1]) continue;\n\t\t\t\tconst g = base + n;\n\t\t\t\tconst cov = nodeInfo.lodCoverage;\n\t\t\t\tcoverage[g] = cov;\n\t\t\t\tinstanceOf[g] = i2;\n\t\t\t\tpending[g] = first;\n\t\t\t\tif (useKeys) {\n\t\t\t\t\tcoverageKey[g] = falloff * (keyOf(cov) - KEY_PIVOT) + KEY_PIVOT;\n\t\t\t\t\tthis._push(this._bucketOfKey(coverageKey[g] + keyOf(upgradeRatio[first]) - KEY_ONE), g);\n\t\t\t\t} else {\n\t\t\t\t\tthis._push(this._bucketOf(cov * upgradeRatio[first]), g);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tlet spent = totalStartCount;\n\t\tfor (let bucket = NUM_VALUE_BUCKETS - 1; bucket >= 0; bucket--) {\n\t\t\tlet g = this._bucketHead[bucket];\n\t\t\twhile (g >= 0) {\n\t\t\t\tthis._bucketHead[bucket] = next[g];\n\t\t\t\tconst i2 = instanceOf[g];\n\t\t\t\tconst table = tables[i2];\n\t\t\t\tconst k = pending[g];\n\t\t\t\tconst cost = table.upgradeCost[k];\n\t\t\t\tif (spent + cost > budget) return;\n\t\t\t\tspent += cost;\n\t\t\t\tconst n = g - bases[i2];\n\t\t\t\tinstances[i2].nodeInfos[n].optimalLod = table.upgradeToLod[k];\n\t\t\t\tconst k2 = k + 1;\n\t\t\t\tif (k2 < table.firstUpgrade[n + 1]) {\n\t\t\t\t\tpending[g] = k2;\n\t\t\t\t\tconst target2 = useKeys ? this._bucketOfKey(coverageKey[g] + keyOf(table.upgradeRatio[k2]) - KEY_ONE) : this._bucketOf(coverage[g] * table.upgradeRatio[k2]);\n\t\t\t\t\tthis._push(target2 > bucket ? bucket : target2, g);\n\t\t\t\t}\n\t\t\t\tg = this._bucketHead[bucket];\n\t\t\t}\n\t\t}\n\t}\n\t_assignChainEnd(finest) {\n\t\tfor (let i2 = 0; i2 < this._instances.length; i2++) {\n\t\t\tconst table = this._tables[i2];\n\t\t\tconst nodeInfos = this._instances[i2].nodeInfos;\n\t\t\tconst { startLod, firstUpgrade, upgradeToLod } = table;\n\t\t\tfor (let n = 0, len = nodeInfos.length; n < len; n++) {\n\t\t\t\tconst lod = startLod[n];\n\t\t\t\tif (lod < 0 || !finest) {\n\t\t\t\t\tnodeInfos[n].optimalLod = lod;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst end = firstUpgrade[n + 1];\n\t\t\t\tnodeInfos[n].optimalLod = end > firstUpgrade[n] ? upgradeToLod[end - 1] : lod;\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar invModelMat = new Mat4();\nvar _localCamPos = new Vec3();\nvar _closestPt = new Vec3();\nvar _meshInstanceAabb = new BoundingBox();\nvar _tempPlacementAabb = new BoundingBox();\nvar _cameraDeltas = { translationDelta: 0 };\nvar tempOctreesTicked = /* @__PURE__ */ new Set();\nvar _queuedSplats = /* @__PURE__ */ new Set();\nvar _updatedSplats = [];\nvar _splatsWithSH = [];\nvar _changedColorAllocIds = /* @__PURE__ */ new Set();\nvar tempNonOctreePlacements = /* @__PURE__ */ new Set();\nvar tempOctreePlacements = /* @__PURE__ */ new Set();\nvar _lodColorsRaw = [\n\t[1, 0, 0],\n\t// red\n\t[0, 1, 0],\n\t// green\n\t[0, 0, 1],\n\t// blue\n\t[1, 1, 0],\n\t// yellow\n\t[1, 0, 1],\n\t// magenta\n\t[0, 1, 1],\n\t// cyan\n\t[1, 0.5, 0],\n\t// orange\n\t[0.5, 0, 1]\n\t// purple\n];\nvar _randomColorRaw = null;\nvar ALLOCATOR_GROW_MULTIPLIER = 1.15;\nvar GSplatWorld = class {\n\t_device;\n\t_scene;\n\t_workBuffer;\n\t_worldStates = /* @__PURE__ */ new Map();\n\t_lastWorldStateVersion = 0;\n\t_currentVersion = 0;\n\t_worldStateDirty = false;\n\t_workBufferFormatVersion = -1;\n\t_workBufferRebuildRequired = false;\n\t_bufferCopyUploaded = 0;\n\t_bufferCopyTotal = 0;\n\t_stateTracker = new GSplatPlacementStateTracker();\n\t_framesTillFullUpdate = 0;\n\t_lodUpdateRequested = false;\n\t_lastLodCameraPos = new Vec3(Infinity, Infinity, Infinity);\n\t_lastLodCameraFwd = new Vec3(Infinity, Infinity, Infinity);\n\t_lastLodCameraFov = -1;\n\t_budgetBalancer = new GSplatBudgetBalancer();\n\t_allocator;\n\t_allocationMap = /* @__PURE__ */ new Map();\n\t_lastColorUpdateCameraPos = new Vec3(Infinity, Infinity, Infinity);\n\t_layerPlacements = [];\n\t_layerPlacementsDirty = false;\n\t_placementSetChanged = false;\n\t_octreeInstances = /* @__PURE__ */ new Map();\n\t_octreeInstancesToDestroy = [];\n\t_hasNewOctreeInstances = false;\n\t_awaitingLodUpdate = false;\n\tconstructor(device, scene) {\n\t\tthis._device = device;\n\t\tthis._scene = scene;\n\t\tconst budget = scene.gsplat.splatBudget;\n\t\tthis._allocator = new BlockAllocator(budget > 0 ? Math.ceil(budget * ALLOCATOR_GROW_MULTIPLIER) : 0, ALLOCATOR_GROW_MULTIPLIER);\n\t\tthis._workBuffer = new GSplatWorkBuffer(device, scene.gsplat.format);\n\t\tthis._workBufferFormatVersion = this._workBuffer.format.extraStreamsVersion;\n\t}\n\tdestroy() {\n\t\tfor (const [, worldState] of this._worldStates) {\n\t\t\tfor (const splat of worldState.splats) {\n\t\t\t\tsplat.resource.decRefCount();\n\t\t\t}\n\t\t\tworldState.destroy();\n\t\t}\n\t\tthis._worldStates.clear();\n\t\tfor (const [, instance] of this._octreeInstances) {\n\t\t\tinstance.destroy();\n\t\t}\n\t\tthis._octreeInstances.clear();\n\t\tfor (const instance of this._octreeInstancesToDestroy) {\n\t\t\tinstance.destroy();\n\t\t}\n\t\tthis._octreeInstancesToDestroy.length = 0;\n\t\tthis._workBuffer.destroy();\n\t}\n\t// --- read-only accessors (the one-way contract: manager reads, never reassigns) ---\n\tget workBuffer() {\n\t\treturn this._workBuffer;\n\t}\n\tget currentVersion() {\n\t\treturn this._currentVersion;\n\t}\n\tget lastWorldStateVersion() {\n\t\treturn this._lastWorldStateVersion;\n\t}\n\tget bufferCopyUploaded() {\n\t\treturn this._bufferCopyUploaded;\n\t}\n\tget bufferCopyTotal() {\n\t\treturn this._bufferCopyTotal;\n\t}\n\tget awaitingLodUpdate() {\n\t\treturn this._awaitingLodUpdate;\n\t}\n\tget hasOctreeInstances() {\n\t\treturn this._octreeInstances.size > 0;\n\t}\n\tget pendingLoadCount() {\n\t\tlet loadingCount = 0;\n\t\tfor (const [, inst] of this._octreeInstances) {\n\t\t\tloadingCount += inst.pendingLoadCount;\n\t\t}\n\t\treturn loadingCount;\n\t}\n\tget currentState() {\n\t\treturn this._worldStates.get(this._currentVersion);\n\t}\n\tgetState(version2) {\n\t\treturn this._worldStates.get(version2);\n\t}\n\tget hasBounds() {\n\t\treturn this._workBuffer.frustumCuller.totalBoundsEntries > 0;\n\t}\n\t// --- mutation entry points (manager-driven) ---\n\tresetFrameStats() {\n\t\tthis._bufferCopyUploaded = 0;\n\t\tthis._bufferCopyTotal = 0;\n\t}\n\tinvalidate({ worldState = false, workBuffer = false } = {}) {\n\t\tif (worldState) this._worldStateDirty = true;\n\t\tif (workBuffer) this._workBufferRebuildRequired = true;\n\t}\n\tinvalidateSortState() {\n\t\tconst currentState = this._worldStates.get(this._currentVersion);\n\t\tif (!currentState) return null;\n\t\tcurrentState.sortParametersSet = false;\n\t\tcurrentState.sortedBefore = false;\n\t\treturn currentState.splats;\n\t}\n\tsyncFormat(result) {\n\t\tresult.bufferRecreated = false;\n\t\tresult.sortNeeded = false;\n\t\tconst currentFormat = this._scene.gsplat.format;\n\t\tif (this._workBuffer.format !== currentFormat) {\n\t\t\tthis._workBuffer.destroy();\n\t\t\tthis._workBuffer = new GSplatWorkBuffer(this._device, currentFormat);\n\t\t\tthis._workBufferFormatVersion = this._workBuffer.format.extraStreamsVersion;\n\t\t\tthis._workBufferRebuildRequired = true;\n\t\t\tresult.bufferRecreated = true;\n\t\t\tresult.sortNeeded = true;\n\t\t}\n\t\tconst wbFormatVersion = this._workBuffer.format.extraStreamsVersion;\n\t\tif (this._workBufferFormatVersion !== wbFormatVersion) {\n\t\t\tthis._workBufferFormatVersion = wbFormatVersion;\n\t\t\tthis._workBuffer.syncWithFormat();\n\t\t\tthis._workBufferRebuildRequired = true;\n\t\t\tresult.sortNeeded = true;\n\t\t}\n\t\treturn result;\n\t}\n\treconcile(placements) {\n\t\ttempNonOctreePlacements.clear();\n\t\tfor (const p of placements) {\n\t\t\tif (p.resource instanceof GSplatOctreeResource) {\n\t\t\t\tif (!this._octreeInstances.has(p)) {\n\t\t\t\t\tthis._octreeInstances.set(p, new GSplatOctreeInstance(this._device, p.resource.octree, p));\n\t\t\t\t\tthis._hasNewOctreeInstances = true;\n\t\t\t\t}\n\t\t\t\ttempOctreePlacements.add(p);\n\t\t\t} else {\n\t\t\t\ttempNonOctreePlacements.add(p);\n\t\t\t}\n\t\t}\n\t\tfor (const [placement, inst] of this._octreeInstances) {\n\t\t\tif (!tempOctreePlacements.has(placement)) {\n\t\t\t\tthis._octreeInstances.delete(placement);\n\t\t\t\tthis._layerPlacementsDirty = true;\n\t\t\t\tthis._placementSetChanged = true;\n\t\t\t\tthis._octreeInstancesToDestroy.push(inst);\n\t\t\t}\n\t\t}\n\t\tthis._layerPlacementsDirty || (this._layerPlacementsDirty = this._layerPlacements.length !== tempNonOctreePlacements.size);\n\t\tif (!this._layerPlacementsDirty) {\n\t\t\tfor (let i2 = 0; i2 < this._layerPlacements.length; i2++) {\n\t\t\t\tconst existing = this._layerPlacements[i2];\n\t\t\t\tif (!tempNonOctreePlacements.has(existing)) {\n\t\t\t\t\tthis._layerPlacementsDirty = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis._placementSetChanged || (this._placementSetChanged = this._layerPlacementsDirty);\n\t\tthis._layerPlacements.length = 0;\n\t\tfor (const p of tempNonOctreePlacements) {\n\t\t\tthis._layerPlacements.push(p);\n\t\t}\n\t\ttempNonOctreePlacements.clear();\n\t\ttempOctreePlacements.clear();\n\t}\n\tupdate(camera, allowLodUpdate, requireCenters, result) {\n\t\tresult.newVersion = false;\n\t\tresult.overdrawDirty = false;\n\t\tresult.sortNeeded = false;\n\t\tfor (const [placement, inst] of this._octreeInstances) {\n\t\t\tif (inst.octree.destroyed || !placement.resource) {\n\t\t\t\tthis._octreeInstances.delete(placement);\n\t\t\t\tthis._layerPlacementsDirty = true;\n\t\t\t\tthis._placementSetChanged = true;\n\t\t\t\tthis._octreeInstancesToDestroy.push(inst);\n\t\t\t}\n\t\t}\n\t\tif (--this._framesTillFullUpdate <= 0) {\n\t\t\tthis._framesTillFullUpdate = 10;\n\t\t\tthis._lodUpdateRequested = true;\n\t\t}\n\t\tlet fullUpdate = false;\n\t\tif (this._lodUpdateRequested && allowLodUpdate) {\n\t\t\tfullUpdate = true;\n\t\t\tthis._lodUpdateRequested = false;\n\t\t}\n\t\tconst hasNewInstances = this._hasNewOctreeInstances && allowLodUpdate;\n\t\tif (hasNewInstances) this._hasNewOctreeInstances = false;\n\t\tlet anyInstanceNeedsLodUpdate = false;\n\t\tlet anyOctreeMoved = false;\n\t\tlet cameraMovedOrRotatedForLod = false;\n\t\tif (fullUpdate) {\n\t\t\tfor (const [, inst] of this._octreeInstances) {\n\t\t\t\tconst isDirty = inst.update();\n\t\t\t\tthis._layerPlacementsDirty || (this._layerPlacementsDirty = isDirty);\n\t\t\t\tthis._placementSetChanged || (this._placementSetChanged = inst.consumePlacementSetChanged());\n\t\t\t\tconst instNeeds = inst.consumeNeedsLodUpdate();\n\t\t\t\tanyInstanceNeedsLodUpdate || (anyInstanceNeedsLodUpdate = instNeeds);\n\t\t\t}\n\t\t\tconst threshold = this._scene.gsplat.lodUpdateDistance;\n\t\t\tfor (const [, inst] of this._octreeInstances) {\n\t\t\t\tconst moved = inst.testMoved(threshold);\n\t\t\t\tanyOctreeMoved || (anyOctreeMoved = moved);\n\t\t\t}\n\t\t\tcameraMovedOrRotatedForLod = this.testCameraMovedForLod(camera);\n\t\t\tthis._awaitingLodUpdate = false;\n\t\t}\n\t\tif (this._scene.gsplat.dirty) {\n\t\t\tthis._layerPlacementsDirty = true;\n\t\t\tresult.overdrawDirty = true;\n\t\t\tthis._workBufferRebuildRequired = true;\n\t\t\tresult.sortNeeded = true;\n\t\t\tif (this._octreeInstances.size > 0) {\n\t\t\t\tthis._awaitingLodUpdate = true;\n\t\t\t}\n\t\t}\n\t\tif (cameraMovedOrRotatedForLod || anyOctreeMoved || this._scene.gsplat.dirty || anyInstanceNeedsLodUpdate || hasNewInstances) {\n\t\t\tfor (const [, inst] of this._octreeInstances) {\n\t\t\t\tinst.updateMoved();\n\t\t\t}\n\t\t\tthis._lastLodCameraPos.copy(camera.getPosition());\n\t\t\tthis._lastLodCameraFwd.copy(camera.forward);\n\t\t\tthis._lastLodCameraFov = camera.camera.fov;\n\t\t\tlet budget = this._scene.gsplat.splatBudget;\n\t\t\tif (budget <= 0) {\n\t\t\t\tbudget = SPLAT_BUDGET_DEFAULT;\n\t\t\t}\n\t\t\tthis._enforceBudget(budget, camera);\n\t\t}\n\t\tif (this._updateWorldState(requireCenters)) {\n\t\t\tresult.newVersion = true;\n\t\t\tresult.sortNeeded = true;\n\t\t}\n\t\treturn result;\n\t}\n\t_updateWorldState(requireCenters) {\n\t\tlet stateChanged = this._stateTracker.hasChanges(this._layerPlacements);\n\t\tfor (const [, inst] of this._octreeInstances) {\n\t\t\tif (this._stateTracker.hasChanges(inst.activePlacements)) {\n\t\t\t\tstateChanged = true;\n\t\t\t}\n\t\t}\n\t\tconst placementsChanged = this._layerPlacementsDirty;\n\t\tconst worldChanged = placementsChanged || stateChanged || this._worldStates.size === 0 || this._worldStateDirty;\n\t\tif (!worldChanged) {\n\t\t\treturn false;\n\t\t}\n\t\tthis._lastWorldStateVersion++;\n\t\tconst splats = [];\n\t\tfor (const p of this._layerPlacements) {\n\t\t\tif (requireCenters && !p.resource.hasCenters) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tp.ensureInstanceStreams(this._device);\n\t\t\tconst splatInfo = new GSplatInfo(this._device, p.resource, p);\n\t\t\tsplats.push(splatInfo);\n\t\t}\n\t\tfor (const [, inst] of this._octreeInstances) {\n\t\t\tinst.activePlacements.forEach((p) => {\n\t\t\t\tif (p.resource) {\n\t\t\t\t\tconst leafResource = p.resource;\n\t\t\t\t\tif (requireCenters && !leafResource.hasCenters) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tp.ensureInstanceStreams(this._device);\n\t\t\t\t\tconst octreeNodes = p.intervals.size > 0 ? inst.octree.nodes : null;\n\t\t\t\t\tconst nodeInfos = octreeNodes ? inst.nodeInfos : null;\n\t\t\t\t\tconst splatInfo = new GSplatInfo(this._device, p.resource, p, octreeNodes, nodeInfos);\n\t\t\t\t\tsplats.push(splatInfo);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tconst newState = new GSplatWorldState(\n\t\t\tthis._device,\n\t\t\tthis._lastWorldStateVersion,\n\t\t\tsplats,\n\t\t\tthis._allocator,\n\t\t\tthis._allocationMap\n\t\t);\n\t\tfor (const splat of newState.splats) {\n\t\t\tsplat.resource.incRefCount();\n\t\t}\n\t\tfor (const [, inst] of this._octreeInstances) {\n\t\t\tif (inst.removedCandidates && inst.removedCandidates.size) {\n\t\t\t\tfor (const fileIndex of inst.removedCandidates) {\n\t\t\t\t\tnewState.pendingReleases.push([inst.octree, fileIndex]);\n\t\t\t\t}\n\t\t\t\tinst.removedCandidates.clear();\n\t\t\t}\n\t\t}\n\t\tif (this._octreeInstancesToDestroy.length) {\n\t\t\tfor (const inst of this._octreeInstancesToDestroy) {\n\t\t\t\tif (inst.removedCandidates && inst.removedCandidates.size) {\n\t\t\t\t\tfor (const fileIndex of inst.removedCandidates) {\n\t\t\t\t\t\tnewState.pendingReleases.push([inst.octree, fileIndex]);\n\t\t\t\t\t}\n\t\t\t\t\tinst.removedCandidates.clear();\n\t\t\t\t}\n\t\t\t\tconst toRelease = inst.getFileDecrements();\n\t\t\t\tfor (const fileIndex of toRelease) {\n\t\t\t\t\tnewState.pendingReleases.push([inst.octree, fileIndex]);\n\t\t\t\t}\n\t\t\t\tinst.destroy(true);\n\t\t\t}\n\t\t\tthis._octreeInstancesToDestroy.length = 0;\n\t\t}\n\t\tif (this._placementSetChanged) {\n\t\t\tnewState.fullRebuild = true;\n\t\t}\n\t\tthis._worldStates.set(this._lastWorldStateVersion, newState);\n\t\tthis._layerPlacementsDirty = false;\n\t\tthis._placementSetChanged = false;\n\t\tthis._worldStateDirty = false;\n\t\treturn true;\n\t}\n\tmarkSorted(version2, count, camera, updateBounds, result) {\n\t\tresult.rebuilt = false;\n\t\tresult.count = 0;\n\t\tresult.textureSize = 0;\n\t\tthis.cleanupOldWorldStates(version2);\n\t\tthis._currentVersion = version2;\n\t\tconst worldState = this._worldStates.get(version2);\n\t\tif (worldState && !worldState.sortedBefore) {\n\t\t\tworldState.sortedBefore = true;\n\t\t\tthis.rebuildWorkBuffer(worldState, count, false, camera, updateBounds);\n\t\t\tresult.rebuilt = true;\n\t\t\tresult.count = count;\n\t\t\tresult.textureSize = worldState.textureSize;\n\t\t}\n\t\treturn result;\n\t}\n\tonSorted(version2, count, orderData, camera, updateBounds, result) {\n\t\tthis.markSorted(version2, count, camera, updateBounds, result);\n\t\tif (this._worldStates.get(version2)) {\n\t\t\tthis._workBuffer.setOrderData(orderData);\n\t\t}\n\t\treturn result;\n\t}\n\tbake(version2, camera, updateBounds, result) {\n\t\tresult.rebuilt = false;\n\t\tresult.count = 0;\n\t\tresult.textureSize = 0;\n\t\tresult.sortNeeded = false;\n\t\tconst sortedState = this._worldStates.get(version2);\n\t\tif (sortedState?.sortedBefore) {\n\t\t\tif (this._workBufferRebuildRequired) {\n\t\t\t\tconst count = sortedState.totalActiveSplats;\n\t\t\t\tthis.rebuildWorkBuffer(sortedState, count, true, camera, updateBounds);\n\t\t\t\tthis._workBufferRebuildRequired = false;\n\t\t\t\tresult.rebuilt = true;\n\t\t\t\tresult.count = count;\n\t\t\t\tresult.textureSize = sortedState.textureSize;\n\t\t\t} else {\n\t\t\t\tresult.sortNeeded = this.applyWorkBufferUpdates(sortedState, camera);\n\t\t\t}\n\t\t\tthis.updateColorCameraTracking(camera);\n\t\t}\n\t\treturn result;\n\t}\n\trebuildWorkBuffer(worldState, count, forceFullRebuild, camera, updateBounds) {\n\t\tconst textureSize = worldState.textureSize;\n\t\tif (textureSize !== this._workBuffer.textureSize) {\n\t\t\tthis._workBuffer.resize(textureSize);\n\t\t}\n\t\tif (updateBounds) {\n\t\t\tthis._workBuffer.frustumCuller.updateBoundsData(worldState.boundsGroups);\n\t\t\tthis._workBuffer.frustumCuller.updateTransformsData(worldState.boundsGroups);\n\t\t}\n\t\tconst renderAll = forceFullRebuild || worldState.fullRebuild;\n\t\tconst splatsToRender = renderAll ? worldState.splats : worldState.needsUpload;\n\t\tconst changedAllocIds = renderAll ? null : worldState.needsUploadIds;\n\t\tif (splatsToRender.length > 0) {\n\t\t\tconst totalBlocks = this._allocationMap.size;\n\t\t\tconst uploadBlocks = renderAll ? totalBlocks : worldState.needsUploadIds.size;\n\t\t\tthis._bufferCopyUploaded += uploadBlocks;\n\t\t\tthis._bufferCopyTotal = totalBlocks;\n\t\t\tthis._workBuffer.render(splatsToRender, camera, this.getDebugColors(), changedAllocIds);\n\t\t}\n\t\tfor (let i2 = 0; i2 < worldState.splats.length; i2++) {\n\t\t\tworldState.splats[i2].update();\n\t\t}\n\t\tthis.updateColorCameraTracking(camera);\n\t\tif (worldState.pendingReleases && worldState.pendingReleases.length) {\n\t\t\tconst cooldownTicks = this._scene.gsplat.cooldownTicks;\n\t\t\tfor (const [octree, fileIndex] of worldState.pendingReleases) {\n\t\t\t\toctree.decRefCount(fileIndex, cooldownTicks);\n\t\t\t}\n\t\t\tworldState.pendingReleases.length = 0;\n\t\t}\n\t}\n\tcleanupOldWorldStates(newVersion) {\n\t\tconst activeState = this._worldStates.get(newVersion);\n\t\tif (!activeState.fullRebuild) {\n\t\t\tfor (let v6 = this._currentVersion + 1; v6 < newVersion; v6++) {\n\t\t\t\tif (this._worldStates.get(v6)?.fullRebuild) {\n\t\t\t\t\tactiveState.fullRebuild = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (!activeState.fullRebuild) {\n\t\t\tconst activeIds = activeState.needsUploadIds;\n\t\t\tconst lookup = activeState.allocIdToSplat;\n\t\t\tfor (let v6 = this._currentVersion + 1; v6 < newVersion; v6++) {\n\t\t\t\tconst oldState = this._worldStates.get(v6);\n\t\t\t\tif (oldState) {\n\t\t\t\t\tfor (const allocId of oldState.needsUploadIds) {\n\t\t\t\t\t\tif (!activeIds.has(allocId)) {\n\t\t\t\t\t\t\tactiveIds.add(allocId);\n\t\t\t\t\t\t\tconst splat = lookup.get(allocId);\n\t\t\t\t\t\t\tif (splat && !_queuedSplats.has(splat)) {\n\t\t\t\t\t\t\t\tactiveState.needsUpload.push(splat);\n\t\t\t\t\t\t\t\t_queuedSplats.add(splat);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t_queuedSplats.clear();\n\t\t}\n\t\tfor (let v6 = this._currentVersion; v6 < newVersion; v6++) {\n\t\t\tconst oldState = this._worldStates.get(v6);\n\t\t\tif (oldState) {\n\t\t\t\tfor (const splat of oldState.splats) {\n\t\t\t\t\tsplat.resource.decRefCount();\n\t\t\t\t}\n\t\t\t\tthis._worldStates.delete(v6);\n\t\t\t\toldState.destroy();\n\t\t\t}\n\t\t}\n\t}\n\tapplyWorkBufferUpdates(state, camera) {\n\t\tconst { colorUpdateAngle } = this._scene.gsplat;\n\t\tconst ratio = Math.tan(colorUpdateAngle * math.DEG_TO_RAD);\n\t\tconst cameraPos = camera.getPosition();\n\t\tconst { translationDelta } = this.calculateColorCameraDeltas(camera);\n\t\tconst hasCameraMovement = translationDelta > 0;\n\t\tlet movedAny = false;\n\t\tlet uploadedBlocks = 0;\n\t\tstate.splats.forEach((splat) => {\n\t\t\tif (splat.update()) {\n\t\t\t\t_updatedSplats.push(splat);\n\t\t\t\tuploadedBlocks += splat.intervalAllocIds.length;\n\t\t\t\tif (splat.nodeInfos) {\n\t\t\t\t\tfor (const ni of splat.intervalNodeIndices) {\n\t\t\t\t\t\tsplat.nodeInfos[ni].colorAccumulatedTranslation = 0;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tsplat.colorAccumulatedTranslation = 0;\n\t\t\t\t}\n\t\t\t\tmovedAny = true;\n\t\t\t} else if (hasCameraMovement && splat.hasSphericalHarmonics) {\n\t\t\t\t_splatsWithSH.push(splat);\n\t\t\t\tif (splat.nodeInfos) {\n\t\t\t\t\tconst nodeIndices = splat.intervalNodeIndices;\n\t\t\t\t\tfor (let j = 0; j < nodeIndices.length; j++) {\n\t\t\t\t\t\tconst nodeInfo = splat.nodeInfos[nodeIndices[j]];\n\t\t\t\t\t\tnodeInfo.colorAccumulatedTranslation += translationDelta;\n\t\t\t\t\t\tconst threshold = ratio * Math.max(1, nodeInfo.worldDistance);\n\t\t\t\t\t\tif (nodeInfo.colorAccumulatedTranslation >= threshold) {\n\t\t\t\t\t\t\t_changedColorAllocIds.add(splat.intervalAllocIds[j]);\n\t\t\t\t\t\t\tnodeInfo.colorAccumulatedTranslation = 0;\n\t\t\t\t\t\t\tuploadedBlocks++;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tsplat.colorAccumulatedTranslation += translationDelta;\n\t\t\t\t\tinvModelMat.copy(splat.node.getWorldTransform()).invert();\n\t\t\t\t\tinvModelMat.transformPoint(cameraPos, _localCamPos);\n\t\t\t\t\tsplat.aabb.closestPoint(_localCamPos, _closestPt);\n\t\t\t\t\tconst dist = _localCamPos.distance(_closestPt) * splat.node.getWorldTransform().getScale().x;\n\t\t\t\t\tconst threshold = ratio * Math.max(1, dist);\n\t\t\t\t\tif (splat.colorAccumulatedTranslation >= threshold) {\n\t\t\t\t\t\t_changedColorAllocIds.add(splat.allocId);\n\t\t\t\t\t\tuploadedBlocks += splat.intervalAllocIds.length;\n\t\t\t\t\t\tsplat.colorAccumulatedTranslation = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tthis._bufferCopyUploaded += uploadedBlocks;\n\t\tthis._bufferCopyTotal = this._allocationMap.size;\n\t\tif (_updatedSplats.length > 0) {\n\t\t\tthis._workBuffer.render(_updatedSplats, camera, this.getDebugColors());\n\t\t\t_updatedSplats.length = 0;\n\t\t}\n\t\tif (_changedColorAllocIds.size > 0) {\n\t\t\tthis._workBuffer.renderColor(\n\t\t\t\t_splatsWithSH,\n\t\t\t\tcamera,\n\t\t\t\tthis.getDebugColors(),\n\t\t\t\t_changedColorAllocIds\n\t\t\t);\n\t\t\t_changedColorAllocIds.clear();\n\t\t}\n\t\t_splatsWithSH.length = 0;\n\t\treturn movedAny;\n\t}\n\ttestCameraMovedForLod(camera) {\n\t\tconst distanceThreshold = this._scene.gsplat.lodUpdateDistance;\n\t\tconst currentCameraPos = camera.getPosition();\n\t\tconst cameraMoved = this._lastLodCameraPos.distance(currentCameraPos) > distanceThreshold;\n\t\tif (cameraMoved) {\n\t\t\treturn true;\n\t\t}\n\t\tlet cameraRotated = false;\n\t\tconst lodUpdateAngleDeg = this._scene.gsplat.lodUpdateAngle;\n\t\tif (lodUpdateAngleDeg > 0) {\n\t\t\tif (Number.isFinite(this._lastLodCameraFwd.x)) {\n\t\t\t\tconst currentCameraFwd = camera.forward;\n\t\t\t\tconst dot = Math.min(1, Math.max(-1, this._lastLodCameraFwd.dot(currentCameraFwd)));\n\t\t\t\tconst angle = Math.acos(dot);\n\t\t\t\tconst rotThreshold = lodUpdateAngleDeg * math.DEG_TO_RAD;\n\t\t\t\tcameraRotated = angle > rotThreshold;\n\t\t\t} else {\n\t\t\t\tcameraRotated = true;\n\t\t\t}\n\t\t}\n\t\tconst currentFov = camera.camera.fov;\n\t\tconst fovChanged = this._lastLodCameraFov < 0 || Math.abs(currentFov - this._lastLodCameraFov) > this._lastLodCameraFov * 0.02;\n\t\treturn cameraMoved || cameraRotated || fovChanged;\n\t}\n\tupdateColorCameraTracking(camera) {\n\t\tthis._lastColorUpdateCameraPos.copy(camera.getPosition());\n\t}\n\tgetDebugColors() {\n\t\tconst debug = this._scene.gsplat.debug;\n\t\tif (debug === GSPLAT_DEBUG_SH_UPDATE) {\n\t\t\t_randomColorRaw ?? (_randomColorRaw = []);\n\t\t\tconst r = Math.random();\n\t\t\tconst g = Math.random();\n\t\t\tconst b = Math.random();\n\t\t\tfor (let i2 = 0; i2 < _lodColorsRaw.length; i2++) {\n\t\t\t\t_randomColorRaw[i2] ?? (_randomColorRaw[i2] = [0, 0, 0]);\n\t\t\t\t_randomColorRaw[i2][0] = r;\n\t\t\t\t_randomColorRaw[i2][1] = g;\n\t\t\t\t_randomColorRaw[i2][2] = b;\n\t\t\t}\n\t\t\treturn _randomColorRaw;\n\t\t} else if (debug === GSPLAT_DEBUG_LOD) {\n\t\t\treturn _lodColorsRaw;\n\t\t}\n\t\treturn void 0;\n\t}\n\tcalculateColorCameraDeltas(camera) {\n\t\t_cameraDeltas.translationDelta = 0;\n\t\tif (isFinite(this._lastColorUpdateCameraPos.x)) {\n\t\t\tconst currentCameraPos = camera.getPosition();\n\t\t\t_cameraDeltas.translationDelta = this._lastColorUpdateCameraPos.distance(currentCameraPos);\n\t\t}\n\t\treturn _cameraDeltas;\n\t}\n\t_enforceBudget(budget, camera) {\n\t\tconst textureWidth = this._workBuffer.textureSize;\n\t\tlet fixedSplats = 0;\n\t\tlet paddingEstimate = 0;\n\t\tfor (const p of this._layerPlacements) {\n\t\t\tconst resource = p.resource;\n\t\t\tif (resource) {\n\t\t\t\tconst numSplats = resource.numSplats ?? 0;\n\t\t\t\tfixedSplats += numSplats;\n\t\t\t\tpaddingEstimate += (textureWidth - numSplats % textureWidth) % textureWidth;\n\t\t\t}\n\t\t}\n\t\tconst octreeBudget = Math.max(1, budget - fixedSplats);\n\t\tfor (const [, inst] of this._octreeInstances) {\n\t\t\tinst.resolveLodRange(this._scene.gsplat.lodMode);\n\t\t\tinst.evaluateNodeCoverage(camera, this._scene.gsplat);\n\t\t\tfor (const placement of inst.activePlacements) {\n\t\t\t\tconst resource = placement.resource;\n\t\t\t\tconst numSplats = resource?.numSplats ?? 0;\n\t\t\t\tpaddingEstimate += (textureWidth - numSplats % textureWidth) % textureWidth;\n\t\t\t}\n\t\t}\n\t\tconst adjustedBudget = Math.max(1, octreeBudget - paddingEstimate);\n\t\tthis._budgetBalancer.balance(this._octreeInstances, adjustedBudget);\n\t\tfor (const [, inst] of this._octreeInstances) {\n\t\t\tinst.applyLodChanges(this._scene.gsplat);\n\t\t}\n\t}\n\tcomputeAggregateAabb() {\n\t\tlet initialized = false;\n\t\tconst layerPlacements = this._layerPlacements;\n\t\tfor (let i2 = 0; i2 < layerPlacements.length; i2++) {\n\t\t\tinitialized = this._accumulatePlacementAabb(layerPlacements[i2], initialized);\n\t\t}\n\t\tfor (const [, inst] of this._octreeInstances) {\n\t\t\tinitialized = this._accumulatePlacementAabb(inst.placement, initialized);\n\t\t}\n\t\treturn initialized ? _meshInstanceAabb : null;\n\t}\n\t_accumulatePlacementAabb(placement, initialized) {\n\t\tconst a = placement.aabb;\n\t\tif (!a) return initialized;\n\t\t_tempPlacementAabb.setFromTransformedAabb(a, placement.node.getWorldTransform());\n\t\tif (initialized) {\n\t\t\t_meshInstanceAabb.add(_tempPlacementAabb);\n\t\t} else {\n\t\t\t_meshInstanceAabb.copy(_tempPlacementAabb);\n\t\t}\n\t\treturn true;\n\t}\n\ttickCooldowns() {\n\t\tif (this._octreeInstances.size) {\n\t\t\tconst cooldownTicks = this._scene.gsplat.cooldownTicks;\n\t\t\tfor (const [, inst] of this._octreeInstances) {\n\t\t\t\tconst octree = inst.octree;\n\t\t\t\tif (!tempOctreesTicked.has(octree)) {\n\t\t\t\t\ttempOctreesTicked.add(octree);\n\t\t\t\t\toctree.updateCooldownTick(cooldownTicks);\n\t\t\t\t}\n\t\t\t}\n\t\t\ttempOctreesTicked.clear();\n\t\t}\n\t}\n\tmarkInstancesNeedLodUpdate() {\n\t\tfor (const [, inst] of this._octreeInstances) {\n\t\t\tinst.needsLodUpdate = true;\n\t\t}\n\t}\n\tprepareSortParameters(worldState) {\n\t\treturn {\n\t\t\tcommand: \"intervals\",\n\t\t\ttextureSize: worldState.textureSize,\n\t\t\ttotalActiveSplats: worldState.totalActiveSplats,\n\t\t\tversion: worldState.version,\n\t\t\tids: worldState.splats.map((splat) => splat.resource.id),\n\t\t\tpixelOffsets: worldState.splats.map((splat) => splat.intervalOffsets),\n\t\t\t// TODO: consider storing this in typed array and transfer it to sorter worker\n\t\t\tintervals: worldState.splats.map((splat) => splat.intervals)\n\t\t};\n\t}\n};\n\nvar GSplatRenderer = class {\n\tdevice;\n\tnode;\n\tcameraNode;\n\tlayer;\n\tworkBuffer;\n\trenderMode;\n\t_workBufferFormatVersion = -1;\n\tfisheyeProj = new FisheyeProjection();\n\tconstructor(device, node, cameraNode, layer, workBuffer) {\n\t\tthis.device = device;\n\t\tthis.node = node;\n\t\tthis.cameraNode = cameraNode;\n\t\tthis.layer = layer;\n\t\tthis.workBuffer = workBuffer;\n\t\tthis._workBufferFormatVersion = workBuffer?.format.extraStreamsVersion ?? -1;\n\t}\n\tdestroy() {\n\t}\n\tresolveFisheye(fisheye) {\n\t\tconst xrActive = !!this.cameraNode.camera?.camera?.xrActive;\n\t\tif (xrActive && fisheye > 0) {\n\t\t\treturn 0;\n\t\t}\n\t\treturn fisheye;\n\t}\n\tsetRenderMode(renderMode) {\n\t\tthis.renderMode = renderMode;\n\t}\n\tget usesGpuSort() {\n\t\treturn false;\n\t}\n\tget requiresBounds() {\n\t\treturn false;\n\t}\n\tget requiresCpuSort() {\n\t\treturn !this.usesGpuSort;\n\t}\n\tget material() {\n\t\treturn null;\n\t}\n\tsetDataSource(source) {\n\t\tthis.workBuffer = source;\n\t\tthis.onWorkBufferFormatChanged();\n\t}\n\tonWorkBufferFormatChanged() {\n\t}\n\tupdate(count, textureSize) {\n\t}\n\tsetGpuSortedRendering(drawSlot, sortedIds, numSplatsBuffer, textureSize) {\n\t}\n\tsetCpuSortedRendering() {\n\t}\n\tsetOrderData() {\n\t}\n\tframeUpdate(params) {\n\t}\n\tupdateOverdrawMode(params) {\n\t}\n\tinvalidateCullUpload() {\n\t}\n\tprepareRenderView(world, worldState, params) {\n\t\treturn false;\n\t}\n\tpreparePickingView(world, worldState, pickParams) {\n\t\treturn null;\n\t}\n};\n\nvar GSplatQuadRenderer = class extends GSplatRenderer {\n\t_material;\n\tmeshInstance;\n\toriginalBlendType = BLEND_ADDITIVE;\n\t_internalDefines = /* @__PURE__ */ new Set();\n\t_lastFisheyeEnabled = false;\n\t_lastSourceChunksKey = \"\";\n\t_sourceMaterialVersion = -1;\n\tconstructor(device, node, cameraNode, layer, workBuffer) {\n\t\tsuper(device, node, cameraNode, layer, workBuffer);\n\t\tthis._material = new ShaderMaterial({\n\t\t\tuniqueName: \"UnifiedSplatMaterial\",\n\t\t\tvertexGLSL: '#include \"gsplatVS\"',\n\t\t\tfragmentGLSL: '#include \"gsplatPS\"',\n\t\t\tvertexWGSL: '#include \"gsplatVS\"',\n\t\t\tfragmentWGSL: '#include \"gsplatPS\"',\n\t\t\tattributes: {\n\t\t\t\tvertex_position: SEMANTIC_POSITION\n\t\t\t}\n\t\t});\n\t\tthis._material.setDefine(\"{GSPLAT_INSTANCE_SIZE}\", GSplatResourceBase.instanceSize);\n\t\tthis.configureMaterial();\n\t\tthis._material.defines.forEach((value, key) => {\n\t\t\tthis._internalDefines.add(key);\n\t\t});\n\t\tthis._internalDefines.add(\"{GSPLAT_INSTANCE_SIZE}\");\n\t\tthis._internalDefines.add(\"GSPLAT_UNIFIED_ID\");\n\t\tthis._internalDefines.add(\"PICK_CUSTOM_ID\");\n\t\tthis._internalDefines.add(\"GSPLAT_INDIRECT_DRAW\");\n\t\tthis._internalDefines.add(\"GSPLAT_SEPARATE_OPACITY\");\n\t\tthis._internalDefines.add(\"GSPLAT_FISHEYE\");\n\t\tthis._internalDefines.add(\"GSPLAT_NO_FOG\");\n\t\tthis._internalDefines.add(\"GSPLAT_NO_TONEMAP\");\n\t\tthis._internalDefines.add(\"GSPLAT_OVERDRAW\");\n\t\tthis.meshInstance = this.createMeshInstance();\n\t}\n\tsetRenderMode(renderMode) {\n\t\tconst oldRenderMode = this.renderMode ?? 0;\n\t\tconst wasForward = (oldRenderMode & GSPLAT_FORWARD) !== 0;\n\t\tconst wasShadow = (oldRenderMode & GSPLAT_SHADOW) !== 0;\n\t\tconst isForward = (renderMode & GSPLAT_FORWARD) !== 0;\n\t\tconst isShadow = (renderMode & GSPLAT_SHADOW) !== 0;\n\t\tthis.meshInstance.castShadow = isShadow;\n\t\tif (wasForward && !isForward) {\n\t\t\tthis.layer.removeMeshInstances([this.meshInstance], true);\n\t\t}\n\t\tif (wasShadow && !isShadow) {\n\t\t\tthis.layer.removeShadowCasters([this.meshInstance]);\n\t\t}\n\t\tif (!wasForward && isForward) {\n\t\t\tthis.layer.addMeshInstances([this.meshInstance], true);\n\t\t}\n\t\tif (!wasShadow && isShadow) {\n\t\t\tthis.layer.addShadowCasters([this.meshInstance]);\n\t\t}\n\t\tsuper.setRenderMode(renderMode);\n\t}\n\tdestroy() {\n\t\tif (this.renderMode) {\n\t\t\tif (this.renderMode & GSPLAT_FORWARD) {\n\t\t\t\tthis.layer.removeMeshInstances([this.meshInstance], true);\n\t\t\t}\n\t\t\tif (this.renderMode & GSPLAT_SHADOW) {\n\t\t\t\tthis.layer.removeShadowCasters([this.meshInstance]);\n\t\t\t}\n\t\t}\n\t\tthis._material.destroy();\n\t\tthis.meshInstance.destroy();\n\t\tsuper.destroy();\n\t}\n\tget material() {\n\t\treturn this._material;\n\t}\n\tonWorkBufferFormatChanged() {\n\t\tthis.configureMaterial();\n\t}\n\tconfigureMaterial() {\n\t\tconst { workBuffer } = this;\n\t\tthis._injectFormatChunks();\n\t\tthis._material.setDefine(\"SH_BANDS\", \"0\");\n\t\tthis._material.setDefine(\"GSPLAT_SEPARATE_OPACITY\", \"\");\n\t\tconst colorStream = workBuffer.format.getStream(\"dataColor\");\n\t\tif (colorStream && colorStream.format !== PIXELFORMAT_RGBA16U) {\n\t\t\tthis._material.setDefine(\"GSPLAT_COLOR_FLOAT\", \"\");\n\t\t}\n\t\tthis._updateIdDefines();\n\t\tthis._bindWorkBufferTextures();\n\t\tconst dither = false;\n\t\tthis._material.setParameter(\"numSplats\", 0);\n\t\tthis.setOrderData();\n\t\tthis._material.setDefine(`DITHER_${dither ? \"BLUENOISE\" : \"NONE\"}`, \"\");\n\t\tthis._material.cull = CULLFACE_NONE;\n\t\tthis._material.blendType = dither ? BLEND_NONE : BLEND_PREMULTIPLIED;\n\t\tthis._material.depthWrite = !!dither;\n\t\tthis._material.update();\n\t}\n\t_bindWorkBufferTextures() {\n\t\tconst { workBuffer } = this;\n\t\tfor (const stream of workBuffer.format.resourceStreams) {\n\t\t\tconst texture = workBuffer.getTexture(stream.name);\n\t\t\tif (texture) {\n\t\t\t\tthis._material.setParameter(stream.name, texture);\n\t\t\t}\n\t\t}\n\t}\n\t_injectFormatChunks() {\n\t\tconst chunks = this.device.isWebGPU ? this._material.shaderChunks.wgsl : this._material.shaderChunks.glsl;\n\t\tconst wbFormat = this.workBuffer.format;\n\t\tchunks.set(\"gsplatDeclarationsVS\", wbFormat.getInputDeclarations());\n\t\tchunks.set(\"gsplatReadVS\", wbFormat.getReadCode());\n\t}\n\tupdate(count, textureSize) {\n\t\tthis.meshInstance.instancingCount = Math.ceil(count / GSplatResourceBase.instanceSize);\n\t\tthis._material.setParameter(\"numSplats\", count);\n\t\tthis._material.setParameter(\"splatTextureSize\", textureSize);\n\t\tthis.meshInstance.visible = count > 0;\n\t}\n\tsetGpuSortedRendering(drawSlot, sortedIds, numSplatsBuffer, textureSize) {\n\t\tthis.meshInstance.setIndirect(null, drawSlot, 1);\n\t\tthis._material.setParameter(\"compactedSplatIds\", sortedIds);\n\t\tthis._material.setParameter(\"numSplatsStorage\", numSplatsBuffer);\n\t\tif (!this._material.getDefine(\"GSPLAT_INDIRECT_DRAW\")) {\n\t\t\tthis._material.setDefine(\"GSPLAT_INDIRECT_DRAW\", true);\n\t\t\tthis._material.update();\n\t\t}\n\t\tthis._material.setParameter(\"splatTextureSize\", textureSize);\n\t\tthis.meshInstance.visible = true;\n\t\tif (this.meshInstance.instancingCount <= 0) {\n\t\t\tthis.meshInstance.instancingCount = 1;\n\t\t}\n\t}\n\tsetCpuSortedRendering() {\n\t\tthis.meshInstance.setIndirect(null, -1);\n\t\tif (this._material.getDefine(\"GSPLAT_INDIRECT_DRAW\")) {\n\t\t\tthis._material.setDefine(\"GSPLAT_INDIRECT_DRAW\", false);\n\t\t\tthis._material.update();\n\t\t}\n\t\tthis.setOrderData();\n\t\tthis.meshInstance.visible = false;\n\t}\n\tsetOrderData() {\n\t\tif (this.device.isWebGPU) {\n\t\t\tthis._material.setParameter(\"splatOrder\", this.workBuffer.orderBuffer);\n\t\t} else {\n\t\t\tthis._material.setParameter(\"splatOrder\", this.workBuffer.orderTexture);\n\t\t}\n\t}\n\tframeUpdate(params) {\n\t\tthis._material.sceneTexturesWrite = params.sceneDepthWrite;\n\t\tif (params.colorRamp) {\n\t\t\tthis._material.setParameter(\"colorRampIntensity\", params.colorRampIntensity);\n\t\t}\n\t\tconst cam = this.cameraNode.camera;\n\t\tthis.fisheyeProj.update(this.resolveFisheye(params.fisheye), cam.fov, cam.projectionMatrix);\n\t\tconst fisheyeEnabled = this.fisheyeProj.enabled;\n\t\tif (fisheyeEnabled !== this._lastFisheyeEnabled) {\n\t\t\tthis._lastFisheyeEnabled = fisheyeEnabled;\n\t\t\tthis._material.setDefine(\"GSPLAT_FISHEYE\", fisheyeEnabled);\n\t\t\tthis._material.update();\n\t\t}\n\t\tif (fisheyeEnabled) {\n\t\t\tconst fp = this.fisheyeProj;\n\t\t\tthis._material.setParameter(\"fisheye_k\", fp.k);\n\t\t\tthis._material.setParameter(\"fisheye_inv_k\", fp.invK);\n\t\t\tthis._material.setParameter(\"fisheye_projMat00\", fp.projMat00);\n\t\t\tthis._material.setParameter(\"fisheye_projMat11\", fp.projMat11);\n\t\t}\n\t\tconst noFog = !params.useFog;\n\t\tconst noTonemap = !params.useTonemap;\n\t\tif (noFog !== this._lastNoFog || noTonemap !== this._lastNoTonemap) {\n\t\t\tthis._lastNoFog = noFog;\n\t\t\tthis._lastNoTonemap = noTonemap;\n\t\t\tthis._material.setDefine(\"GSPLAT_NO_FOG\", noFog);\n\t\t\tthis._material.setDefine(\"GSPLAT_NO_TONEMAP\", noTonemap);\n\t\t\tthis._material.update();\n\t\t}\n\t\tthis._syncWithWorkBufferFormat();\n\t\tconst sourceMaterialVersion = params.material.updateVersion;\n\t\tif (this._sourceMaterialVersion !== sourceMaterialVersion) {\n\t\t\tthis.copyMaterialSettings(params.material);\n\t\t\tthis._sourceMaterialVersion = sourceMaterialVersion;\n\t\t}\n\t}\n\t_updateIdDefines() {\n\t\tconst hasPcId = !!this.workBuffer.format.getStream(\"pcId\");\n\t\tthis._material.setDefine(\"GSPLAT_UNIFIED_ID\", hasPcId);\n\t\tthis._material.setDefine(\"PICK_CUSTOM_ID\", hasPcId);\n\t}\n\t_syncWithWorkBufferFormat() {\n\t\tconst wbFormat = this.workBuffer.format;\n\t\tif (this._workBufferFormatVersion !== wbFormat.extraStreamsVersion) {\n\t\t\tthis._workBufferFormatVersion = wbFormat.extraStreamsVersion;\n\t\t\tthis.workBuffer.syncWithFormat();\n\t\t\tthis._injectFormatChunks();\n\t\t\tthis._bindWorkBufferTextures();\n\t\t\tthis._updateIdDefines();\n\t\t\tthis._material.update();\n\t\t}\n\t}\n\tcopyMaterialSettings(sourceMaterial) {\n\t\tconst keysToDelete = [];\n\t\tthis._material.defines.forEach((value, key) => {\n\t\t\tif (!this._internalDefines.has(key) && !sourceMaterial.defines.has(key)) {\n\t\t\t\tkeysToDelete.push(key);\n\t\t\t}\n\t\t});\n\t\tkeysToDelete.forEach((key) => this._material.setDefine(key, void 0));\n\t\tsourceMaterial.defines.forEach((value, key) => {\n\t\t\tthis._material.setDefine(key, value);\n\t\t});\n\t\tconst srcParams = sourceMaterial.parameters;\n\t\tfor (const paramName in srcParams) {\n\t\t\tif (srcParams.hasOwnProperty(paramName)) {\n\t\t\t\tthis._material.setParameter(paramName, srcParams[paramName].data);\n\t\t\t}\n\t\t}\n\t\tif (sourceMaterial.hasShaderChunks) {\n\t\t\tconst sourceChunksKey = sourceMaterial.shaderChunks.key;\n\t\t\tif (sourceChunksKey !== this._lastSourceChunksKey) {\n\t\t\t\tthis._material.shaderChunks.copy(sourceMaterial.shaderChunks);\n\t\t\t\tthis._injectFormatChunks();\n\t\t\t\tthis._lastSourceChunksKey = sourceChunksKey;\n\t\t\t}\n\t\t}\n\t\tthis._material.update();\n\t}\n\tupdateOverdrawMode(params) {\n\t\tconst overdrawEnabled = !!params.colorRamp;\n\t\tconst wasOverdrawEnabled = this._material.getDefine(\"GSPLAT_OVERDRAW\");\n\t\tif (overdrawEnabled) {\n\t\t\tthis._material.setParameter(\"colorRamp\", params.colorRamp);\n\t\t\tthis._material.setParameter(\"colorRampIntensity\", params.colorRampIntensity);\n\t\t}\n\t\tif (overdrawEnabled !== wasOverdrawEnabled) {\n\t\t\tthis._material.setDefine(\"GSPLAT_OVERDRAW\", overdrawEnabled);\n\t\t\tif (overdrawEnabled) {\n\t\t\t\tthis.originalBlendType = this._material.blendType;\n\t\t\t\tthis._material.blendType = BLEND_ADDITIVE;\n\t\t\t} else {\n\t\t\t\tthis._material.blendType = this.originalBlendType;\n\t\t\t}\n\t\t\tthis._material.update();\n\t\t}\n\t}\n\tcreateMeshInstance() {\n\t\tconst mesh = GSplatResourceBase.createMesh(this.device);\n\t\tconst meshInstance = new MeshInstance(mesh, this._material);\n\t\tmeshInstance.node = this.node;\n\t\tmeshInstance.setInstancing(true, true);\n\t\tmeshInstance.instancingCount = 0;\n\t\tconst thisCamera = this.cameraNode.camera;\n\t\tmeshInstance.isVisibleFunc = (camera) => {\n\t\t\tconst renderMode = this.renderMode ?? 0;\n\t\t\tif (thisCamera.camera === camera && renderMode & GSPLAT_FORWARD) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif (renderMode & GSPLAT_SHADOW) {\n\t\t\t\treturn camera.node?.name === SHADOWCAMERA_NAME;\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\t\treturn meshInstance;\n\t}\n};\n\nvar computeGsplatProjectorSource = `\n#include \"gsplatCommonCS\"\n#include \"gsplatTileIntersectCS\"\n@group(0) @binding(0) var<storage, read> compactedSplatIds: array<u32>;\n@group(0) @binding(1) var<storage, read> sortElementCount: array<u32>;\n@group(0) @binding(2) var<storage, read_write> projCache: array<u32>;\n@group(0) @binding(3) var<storage, read_write> sortKeys: array<u32>;\n@group(0) @binding(4) var<storage, read_write> renderCounter: array<atomic<u32>>;\nstruct BinWeight {\n\tbase: f32,\n\tdivider: f32\n}\n@group(0) @binding(5) var<storage, read> binWeights: array<BinWeight>;\nstruct ProjectorUniforms {\n\tsplatTextureSize: u32,\n\tnumBins: u32,\n\tisOrtho: u32,\n\tpad0: u32,\n\tviewProj: mat4x4f,\n\tviewMatrix: mat4x4f,\n\tcameraPosition: vec3f,\n\tminPixelSize: f32,\n\tcameraDirection: vec3f,\n\tfocal: f32,\n\tviewportWidth: f32,\n\tviewportHeight: f32,\n\tnearClip: f32,\n\tfarClip: f32,\n\talphaClip: f32,\n\tminContribution: f32,\n\tminDist: f32,\n\tinvRange: f32,\n\tfoveationStrength: f32,\n\tfoveationCenter: f32,\n\t#ifdef GSPLAT_XR\n\t\tviewProj1: mat4x4f,\n\t#endif\n\t#ifdef GSPLAT_FISHEYE\n\t\tfisheye_k: f32,\n\t\tfisheye_inv_k: f32,\n\t\tfisheye_projMat00: f32,\n\t\tfisheye_projMat11: f32,\n\t#endif\n}\n@group(0) @binding(6) var<uniform> uniforms: ProjectorUniforms;\n#include \"gsplatComputeSplatCS\"\n#include \"gsplatFormatDeclCS\"\n#include \"gsplatFormatReadCS\"\n#include \"gsplatHelpersVS\"\n#ifdef GSPLAT_USER_VARYINGS\n\t#include \"gsplatUserVaryingsCS\"\n#endif\n#include \"gsplatModifyVS\"\n#include \"gsplatProjectCommonCS\"\nvar<workgroup> wgCount: atomic<u32>;\nvar<workgroup> wgBase: u32;\n@compute @workgroup_size(256)\nfn main(\n\t@builtin(global_invocation_id) gid: vec3u,\n\t@builtin(num_workgroups) numWorkgroups: vec3u,\n\t@builtin(local_invocation_index) localIdx: u32\n) {\n\tif (localIdx == 0u) {\n\t\tatomicStore(&wgCount, 0u);\n\t}\n\tworkgroupBarrier();\n\tlet threadIdx = gid.y * (numWorkgroups.x * 256u) + gid.x;\n\tlet numVisible = sortElementCount[0];\n\tvar valid = false;\n\tvar clipPos: vec4f = vec4f(0.0);\n\tvar v1: vec2f = vec2f(0.0);\n\tvar v2: vec2f = vec2f(0.0);\n\tvar rgb: vec3f = vec3f(0.0);\n\tvar alpha: f32 = 0.0;\n\tvar pcId: u32 = 0u;\n\tvar sortKey: u32 = 0u;\n\t#ifdef GSPLAT_XR\n\t\tvar ndc1: vec2f = vec2f(0.0);\n\t#endif\n\tlet projected = projectSplatCommon(\n\t\tthreadIdx,\n\t\tnumVisible,\n\t\tuniforms.alphaClip,\n\t\tuniforms.minPixelSize,\n\t\tuniforms.minContribution,\n\t\tuniforms.foveationStrength,\n\t\tuniforms.foveationCenter,\n\t\tuniforms.viewMatrix,\n\t\tuniforms.viewProj,\n\t\tuniforms.focal,\n\t\tuniforms.viewportWidth,\n\t\tuniforms.viewportHeight,\n\t\tuniforms.nearClip,\n\t\tuniforms.farClip,\n\t\tuniforms.isOrtho,\n\t\t#ifdef GSPLAT_FISHEYE\n\t\t\tuniforms.fisheye_k,\n\t\t\tuniforms.fisheye_inv_k,\n\t\t\tuniforms.fisheye_projMat00,\n\t\t\tuniforms.fisheye_projMat11,\n\t\t#endif\n\t\t#ifdef GSPLAT_XR\n\t\t\tuniforms.viewProj1,\n\t\t#endif\n\t);\n\tif (projected.valid) {\n\t\tlet center = projected.center;\n\t\tlet opacity = projected.opacity;\n\t\tlet proj = projected.proj;\n\t\tlet mid = 0.5 * (proj.a + proj.c);\n\t\tlet radius = length(vec2f(0.5 * (proj.a - proj.c), proj.b));\n\t\tlet lambda1 = mid + radius;\n\t\tlet lambda2 = max(mid - radius, 0.1);\n\t\tlet vmin = min(1024.0, min(uniforms.viewportWidth, uniforms.viewportHeight));\n\t\tlet l1 = 2.0 * min(sqrt(2.0 * lambda1), vmin);\n\t\tlet l2 = 2.0 * min(sqrt(2.0 * lambda2), vmin);\n\t\tlet dir = normalize(vec2f(proj.b, lambda1 - proj.a));\n\t\tv1 = l1 * dir;\n\t\tv2 = l2 * vec2f(dir.y, -dir.x);\n\t\t#ifdef GSPLAT_FISHEYE\n\t\t\tlet viewCenter = uniforms.viewMatrix * vec4f(center, 1.0);\n\t\t\tlet neg_z = -viewCenter.z;\n\t\t\tlet ndcX = proj.screen.x / uniforms.viewportWidth * 2.0 - 1.0;\n\t\t\tlet ndcY = proj.screen.y / uniforms.viewportHeight * 2.0 - 1.0;\n\t\t\tlet depthNdc = clamp(\n\t\t\t\t(neg_z - uniforms.nearClip) / (uniforms.farClip - uniforms.nearClip),\n\t\t\t\t0.0, 1.0\n\t\t\t);\n\t\t\tclipPos = vec4f(ndcX, ndcY, depthNdc, 1.0);\n\t\t#else\n\t\t\tclipPos = uniforms.viewProj * vec4f(center, 1.0);\n\t\t\tclipPos.z = clamp(clipPos.z, 0.0, abs(clipPos.w));\n\t\t#endif\n\t\t#ifdef GSPLAT_XR\n\t\t\tndc1 = proj.ndc1;\n\t\t#endif\n\t\tlet numBinsF = f32(uniforms.numBins);\n\t\tlet invBinSize = uniforms.invRange * numBinsF;\n\t\t#ifdef RADIAL_SORT\n\t\t\tlet radialDist = length(center - uniforms.cameraPosition);\n\t\t\tlet d = (1.0 / uniforms.invRange - radialDist) * invBinSize;\n\t\t\tlet bin = u32(clamp(d, 0.0, numBinsF - 0.001));\n\t\t\tlet nearFrac = radialDist * invBinSize - (numBinsF - 1.0 - f32(bin));\n\t\t#else\n\t\t\tlet s = dot(center - uniforms.cameraPosition, uniforms.cameraDirection);\n\t\t\tlet d = (s - uniforms.minDist) * invBinSize;\n\t\t\tlet bin = u32(clamp(d, 0.0, numBinsF - 0.001));\n\t\t\tlet binFrac = s * invBinSize - (uniforms.minDist * invBinSize + f32(bin));\n\t\t#endif\n\t\tlet bw = binWeights[bin];\n\t\tlet divider = u32(bw.divider);\n\t\t#ifdef RADIAL_SORT\n\t\t\tlet offset = divider - 1u - min(u32(bw.divider * clamp(nearFrac, 0.0, 1.0)), divider - 1u);\n\t\t#else\n\t\t\tlet offset = min(u32(bw.divider * clamp(binFrac, 0.0, 1.0)), divider - 1u);\n\t\t#endif\n\t\tsortKey = u32(bw.base) + offset;\n\t\t#ifdef PICK_MODE\n\t\t\tvar clr = vec4f(getColor(), opacity);\n\t\t\tmodifySplatColor(center, &clr);\n\t\t\tpcId = loadPcId().r;\n\t\t\talpha = clr.a;\n\t\t#else\n\t\t\tvar clr = vec4f(getColor(), opacity);\n\t\t\t#if GSPLAT_AA\n\t\t\t\tclr.a = clr.a * proj.aaFactor;\n\t\t\t#endif\n\t\t\tmodifySplatColor(center, &clr);\n\t\t\trgb = max(clr.rgb, vec3f(0.0));\n\t\t\talpha = clr.a;\n\t\t#endif\n\t\tvalid = true;\n\t}\n\tvar localDst: u32 = 0u;\n\tif (valid) {\n\t\tlocalDst = atomicAdd(&wgCount, 1u);\n\t}\n\tworkgroupBarrier();\n\tif (localIdx == 0u) {\n\t\tlet total = atomicLoad(&wgCount);\n\t\twgBase = atomicAdd(&renderCounter[0], total);\n\t}\n\tworkgroupBarrier();\n\tif (valid) {\n\t\tlet dst = wgBase + localDst;\n\t\tlet base = dst * {CACHE_STRIDE}u;\n\t\t#ifdef GSPLAT_XR\n\t\t\tlet ndc0 = clipPos.xy / clipPos.w;\n\t\t\tprojCache[base + 0u] = bitcast<u32>(ndc0.x);\n\t\t\tprojCache[base + 1u] = bitcast<u32>(ndc0.y);\n\t\t\tprojCache[base + 2u] = bitcast<u32>(ndc1.x);\n\t\t\tprojCache[base + 3u] = bitcast<u32>(ndc1.y);\n\t\t\tprojCache[base + 4u] = bitcast<u32>(clipPos.w);\n\t\t\tprojCache[base + 5u] = pack2x16float(v1);\n\t\t\tprojCache[base + 6u] = pack2x16float(v2);\n\t\t\tprojCache[base + 7u] = pack4x8unorm(vec4f(rgb, alpha));\n\t\t#else\n\t\t\tprojCache[base + 0u] = bitcast<u32>(clipPos.x);\n\t\t\tprojCache[base + 1u] = bitcast<u32>(clipPos.y);\n\t\t\tprojCache[base + 2u] = bitcast<u32>(clipPos.z);\n\t\t\tprojCache[base + 3u] = bitcast<u32>(clipPos.w);\n\t\t\tprojCache[base + 4u] = pack2x16float(v1);\n\t\t\tprojCache[base + 5u] = pack2x16float(v2);\n\t\t\t#ifdef PICK_MODE\n\t\t\t\tprojCache[base + 6u] = pcId;\n\t\t\t\tprojCache[base + 7u] = pack2x16float(vec2f(0.0, alpha));\n\t\t\t#else\n\t\t\t\tprojCache[base + 6u] = pack2x16float(vec2f(rgb.x, rgb.y));\n\t\t\t\tprojCache[base + 7u] = pack2x16float(vec2f(rgb.z, alpha));\n\t\t\t#endif\n\t\t#endif\n\t\t#ifdef GSPLAT_USER_VARYINGS\n\t\t\t#include \"gsplatUserCacheWriteCS\"\n\t\t#endif\n\t\tsortKeys[dst] = sortKey;\n\t}\n}\n`;\n\nvar dispatch_core_default = `\nfn calcDispatch2D(count: u32, maxDim: u32) -> vec2u {\n\tif (count <= maxDim) {\n\t\treturn vec2u(count, 1u);\n\t}\n\tlet y = (count + maxDim - 1u) / maxDim;\n\tlet x = (count + y - 1u) / y;\n\treturn vec2u(x, y);\n}\n`;\n\nvar computeGsplatProjectorWriteIndirectArgsSource = `\n${indirect_core_default}\n${dispatch_core_default}\n${sort_indirect_args_default}\n@group(0) @binding(0) var<storage, read> renderCounter: array<u32>;\n@group(0) @binding(1) var<storage, read_write> indirectDrawArgs: array<DrawIndexedIndirectArgs>;\n@group(0) @binding(2) var<storage, read_write> numSplatsBuf: array<u32>;\n@group(0) @binding(3) var<storage, read_write> indirectDispatchArgs: array<u32>;\n@group(0) @binding(4) var<storage, read_write> sortElementCountBuf: array<u32>;\nstruct WriteArgsUniforms {\n\tdrawSlot: u32,\n\tindexCount: u32,\n\tsortSlotBase: u32,\n\tpad0: u32,\n\tsortIndirectInfo: vec4<u32>\n};\n@group(0) @binding(5) var<uniform> uniforms: WriteArgsUniforms;\n@compute @workgroup_size(1)\nfn main() {\n\tlet count = renderCounter[0];\n\tlet instanceCount = (count + {INSTANCE_SIZE}u - 1u) / {INSTANCE_SIZE}u;\n\tindirectDrawArgs[uniforms.drawSlot] = DrawIndexedIndirectArgs(\n\t\tuniforms.indexCount,\n\t\tinstanceCount,\n\t\t0u,\n\t\t0,\n\t\t0u\n\t);\n\tnumSplatsBuf[0] = count;\n\tsortElementCountBuf[0] = count;\n\twriteSortIndirectArgs(uniforms.sortSlotBase, count, uniforms.sortIndirectInfo);\n}\n`;\n\nvar computeGsplatProjectCommonSource = `\nstruct ProjectedSplatCommon {\n\tvalid: bool,\n\tsplatId: u32,\n\tcenter: vec3f,\n\topacity: f32,\n\tproj: SplatCov2D\n}\nfn invalidProjectedSplatCommon() -> ProjectedSplatCommon {\n\tvar cov: SplatCov2D;\n\tcov.screen = vec2f(0.0);\n\tcov.a = 0.0;\n\tcov.b = 0.0;\n\tcov.c = 0.0;\n\tcov.viewDepth = 0.0;\n\tcov.valid = false;\n\treturn ProjectedSplatCommon(false, 0u, vec3f(0.0), 0.0, cov);\n}\nfn projectSplatCommon(\n\tthreadIdx: u32,\n\tnumVisible: u32,\n\talphaClip: f32,\n\tminPixelSize: f32,\n\tminContribution: f32,\n\tfoveationStrength: f32,\n\tfoveationCenter: f32,\n\tviewMatrix: mat4x4f,\n\tviewProj: mat4x4f,\n\tfocal: f32,\n\tviewportWidth: f32,\n\tviewportHeight: f32,\n\tnearClip: f32,\n\tfarClip: f32,\n\tisOrtho: u32,\n\t#ifdef GSPLAT_FISHEYE\n\t\tfisheye_k: f32,\n\t\tfisheye_inv_k: f32,\n\t\tfisheye_projMat00: f32,\n\t\tfisheye_projMat11: f32,\n\t#endif\n\t#ifdef GSPLAT_XR\n\t\tviewProj1: mat4x4f,\n\t#endif\n) -> ProjectedSplatCommon {\n\tif (threadIdx >= numVisible) {\n\t\treturn invalidProjectedSplatCommon();\n\t}\n\tlet splatId = compactedSplatIds[threadIdx];\n\tsetSplat(splatId);\n\tlet originalCenter = getCenter();\n\tvar center = originalCenter;\n\tmodifySplatCenter(&center);\n\tlet opacity = getOpacity();\n\tif (opacity <= alphaClip) {\n\t\treturn invalidProjectedSplatCommon();\n\t}\n\tvar rotation: vec4f = getRotation().yzwx;\n\tvar scale: vec3f = getScale();\n\tmodifySplatRotationScale(originalCenter, center, &rotation, &scale);\n\tlet proj = computeSplatCov(\n\t\tcenter, half4(rotation.wxyz), half3(scale),\n\t\tviewMatrix, viewProj,\n\t\tfocal, viewportWidth, viewportHeight,\n\t\tnearClip, farClip, opacity, minPixelSize,\n\t\tisOrtho, alphaClip, minContribution,\n\t\tfoveationStrength, foveationCenter,\n\t\t#ifdef GSPLAT_FISHEYE\n\t\t\tfisheye_k, fisheye_inv_k,\n\t\t\tfisheye_projMat00, fisheye_projMat11,\n\t\t#endif\n\t\t#ifdef GSPLAT_XR\n\t\t\tviewProj1,\n\t\t#endif\n\t);\n\tif (!proj.valid) {\n\t\treturn invalidProjectedSplatCommon();\n\t}\n\treturn ProjectedSplatCommon(true, splatId, center, opacity, proj);\n}\n`;\n\nvar computeGsplatCommonSource = `\n#include \"halfTypesCS\"\nconst TILE_SIZE: u32 = 16u;\nfn quatToMat3(r: half4) -> half3x3 {\n\tlet r2: half4 = r + r;\n\tlet x: half   = r2.x * r.w;\n\tlet y: half4  = r2.y * r;\n\tlet z: half4  = r2.z * r;\n\tlet w: half   = r2.w * r.w;\n\treturn half3x3(\n\t\thalf(1.0) - z.z - w,  y.z + x,\t\t\t  y.w - z.x,\n\t\ty.z - x,\t\t\t  half(1.0) - y.y - w,   z.w + y.x,\n\t\ty.w + z.x,\t\t\tz.w - y.x,\t\t\t half(1.0) - y.y - z.z\n\t);\n}\nstruct SplatCov2D {\n\tscreen: vec2f,\n\ta: f32,\n\tb: f32,\n\tc: f32,\n\tviewDepth: f32,\n\tvalid: bool,\n\t#if GSPLAT_AA\n\t\taaFactor: f32,\n\t#endif\n\t#ifdef GSPLAT_XR\n\t\tndc1: vec2f,\n\t#endif\n}\nfn computeSplatCov(\n\tworldCenter: vec3f,\n\trotation: half4,\n\tscale: half3,\n\tviewMatrix: mat4x4f,\n\tviewProj: mat4x4f,\n\tfocal: f32,\n\tviewportWidth: f32,\n\tviewportHeight: f32,\n\tnearClip: f32,\n\tfarClip: f32,\n\topacity: f32,\n\tminPixelSize: f32,\n\tisOrtho: u32,\n\talphaClip: f32,\n\tminContribution: f32,\n\tfoveationStrength: f32,\n\tfoveationCenter: f32,\n\t#ifdef GSPLAT_FISHEYE\n\t\tfisheye_k: f32,\n\t\tfisheye_inv_k: f32,\n\t\tfisheye_projMat00: f32,\n\t\tfisheye_projMat11: f32,\n\t#endif\n\t#ifdef GSPLAT_XR\n\t\tviewProj1: mat4x4f,\n\t#endif\n) -> SplatCov2D {\n\tvar result: SplatCov2D;\n\tresult.valid = false;\n\tlet viewCenter = (viewMatrix * vec4f(worldCenter, 1.0)).xyz;\n\t#ifdef GSPLAT_FISHEYE\n\t\tlet fv = viewCenter;\n\t\tlet r_xy = length(fv.xy);\n\t\tlet neg_z = -fv.z;\n\t\tlet theta = atan2(r_xy, neg_z);\n\t\tlet maxTheta = min(fisheye_k * 1.5707963, 3.13);\n\t\tif (theta > maxTheta - 0.01 || dot(fv, fv) < 0.0001) {\n\t\t\treturn result;\n\t\t}\n\t\tlet tk = theta * fisheye_inv_k;\n\t\tlet sin_tk = sin(tk);\n\t\tlet cos_tk = cos(tk);\n\t\tlet g_theta = fisheye_k * sin_tk / cos_tk;\n\t\tlet fisheye_s = select(select(0.0, 1.0 / neg_z, neg_z > 0.0), g_theta / r_xy, r_xy > 1e-4);\n\t\tlet fndc = vec2f(fisheye_projMat00 * fisheye_s * fv.x, fisheye_projMat11 * fisheye_s * fv.y);\n\t\tlet screen = vec2f(\n\t\t\t(fndc.x * 0.5 + 0.5) * viewportWidth,\n\t\t\t(fndc.y * 0.5 + 0.5) * viewportHeight\n\t\t);\n\t#else\n\t\tif (viewCenter.z > 0.0) {\n\t\t\treturn result;\n\t\t}\n\t\tlet clip = viewProj * vec4f(worldCenter, 1.0);\n\t\tlet ndc = clip.xy / clip.w;\n\t\tlet screen = vec2f(\n\t\t\t(ndc.x * 0.5 + 0.5) * viewportWidth,\n\t\t\t(ndc.y * 0.5 + 0.5) * viewportHeight\n\t\t);\n\t#endif\n\t#ifdef GSPLAT_XR\n\t\tlet clip1 = viewProj1 * vec4f(worldCenter, 1.0);\n\t\tlet ndc1 = clip1.xy / clip1.w;\n\t\tlet screen1 = vec2f(\n\t\t\t(ndc1.x * 0.5 + 0.5) * viewportWidth,\n\t\t\t(ndc1.y * 0.5 + 0.5) * viewportHeight\n\t\t);\n\t#endif\n\tlet rot: half3x3 = quatToMat3(rotation);\n\tlet s: vec3f = vec3f(scale);\n\tlet M: mat3x3f = transpose(mat3x3f(\n\t\ts.x * vec3f(rot[0]),\n\t\ts.y * vec3f(rot[1]),\n\t\ts.z * vec3f(rot[2])\n\t));\n\tlet w0 = vec3f(viewMatrix[0].x, viewMatrix[1].x, viewMatrix[2].x);\n\tlet w1 = vec3f(viewMatrix[0].y, viewMatrix[1].y, viewMatrix[2].y);\n\tlet w2 = vec3f(viewMatrix[0].z, viewMatrix[1].z, viewMatrix[2].z);\n\t#ifdef GSPLAT_FISHEYE\n\t\tlet fisheyeFocal = viewportWidth * fisheye_projMat00;\n\t\tlet g_prime = 1.0 / (cos_tk * cos_tk);\n\t\tlet d2 = dot(fv, fv);\n\t\tlet r_sq = max(r_xy * r_xy, 1e-8);\n\t\tlet K_coeff = select(0.0, (g_prime * neg_z / d2 - fisheye_s) / r_sq, r_xy > 1e-4);\n\t\tlet Jxx = fisheyeFocal * (fisheye_s + K_coeff * fv.x * fv.x);\n\t\tlet Jxy = fisheyeFocal * K_coeff * fv.x * fv.y;\n\t\tlet Jyy = fisheyeFocal * (fisheye_s + K_coeff * fv.y * fv.y);\n\t\tlet Jzx = fisheyeFocal * g_prime * fv.x / d2;\n\t\tlet Jzy = fisheyeFocal * g_prime * fv.y / d2;\n\t\tlet tt0 = Jxx * w0 + Jxy * w1 + Jzx * w2;\n\t\tlet tt1 = Jxy * w0 + Jyy * w1 + Jzy * w2;\n\t#else\n\t\tlet ortho = isOrtho == 1u;\n\t\tlet v = select(viewCenter.xyz, vec3f(0.0, 0.0, 1.0), ortho);\n\t\tlet vz = select(min(v.z, -0.001), v.z, ortho);\n\t\tlet J1 = focal / vz;\n\t\tlet J2 = -J1 / vz * v.xy;\n\t\tlet tt0 = J1 * w0 + J2.x * w2;\n\t\tlet tt1 = J1 * w1 + J2.y * w2;\n\t#endif\n\tlet b0 = M * tt0;\n\tlet b1 = M * tt1;\n\tlet aRaw = dot(b0, b0);\n\tlet b = dot(b0, b1);\n\tlet cRaw = dot(b1, b1);\n\tlet a = aRaw + 0.3;\n\tlet c = cRaw + 0.3;\n\tlet det = a * c - b * b;\n\tif (det <= 0.0) {\n\t\treturn result;\n\t}\n\t#if GSPLAT_AA\n\t\tlet detOrig = aRaw * cRaw - b * b;\n\t\tresult.aaFactor = sqrt(max(detOrig / det, 0.0));\n\t#endif\n\tlet fovNdc = screen * vec2f(2.0 / viewportWidth, 2.0 / viewportHeight) - vec2f(1.0);\n\t#ifdef GSPLAT_XR\n\t\tlet fovR = min(length(fovNdc), length(ndc1));\n\t#else\n\t\tlet fovR = length(fovNdc);\n\t#endif\n\tlet fovT = saturate((fovR - foveationCenter) / max(1.0 - foveationCenter, 1e-4));\n\tlet effMinContribution = minContribution + foveationStrength * fovT * fovT * (3.0 - 2.0 * fovT);\n\tlet totalContribution = opacity * 6.283185 * sqrt(det);\n\tif (totalContribution < effMinContribution) {\n\t\treturn result;\n\t}\n\tlet radiusFactor = computeRadiusFactor(half(opacity), alphaClip);\n\tlet vmin = min(1024.0, min(viewportWidth, viewportHeight));\n\tlet maxRadius = vmin;\n\tlet radiusXUncapped = sqrt(2.0 * a);\n\tlet radiusYUncapped = sqrt(2.0 * c);\n\tlet radiusX = min(radiusXUncapped, maxRadius);\n\tlet radiusY = min(radiusYUncapped, maxRadius);\n\tif (max(radiusX, radiusY) < minPixelSize) {\n\t\treturn result;\n\t}\n\t#ifdef GSPLAT_XR\n\t\tif ((screen.x + radiusX < 0.0 || screen.x - radiusX > viewportWidth ||\n\t\t\t screen.y + radiusY < 0.0 || screen.y - radiusY > viewportHeight) &&\n\t\t\t(screen1.x + radiusX < 0.0 || screen1.x - radiusX > viewportWidth ||\n\t\t\t screen1.y + radiusY < 0.0 || screen1.y - radiusY > viewportHeight)) {\n\t\t\treturn result;\n\t\t}\n\t#else\n\t\tif (screen.x + radiusX < 0.0 || screen.x - radiusX > viewportWidth ||\n\t\t\tscreen.y + radiusY < 0.0 || screen.y - radiusY > viewportHeight) {\n\t\t\treturn result;\n\t\t}\n\t#endif\n\tlet capScale = max(1.0, max(radiusXUncapped, radiusYUncapped) / maxRadius);\n\tlet invCapScale2 = 1.0 / (capScale * capScale);\n\tresult.screen = screen;\n\tlet scaledCov = vec3f(a, b, c) * invCapScale2;\n\tresult.a = scaledCov.x;\n\tresult.b = scaledCov.y;\n\tresult.c = scaledCov.z;\n\t#ifdef GSPLAT_FISHEYE\n\t\tresult.viewDepth = sqrt(d2);\n\t#else\n\t\tresult.viewDepth = -viewCenter.z;\n\t#endif\n\t#ifdef GSPLAT_XR\n\t\tresult.ndc1 = ndc1;\n\t#endif\n\tresult.valid = true;\n\treturn result;\n}\n`;\n\nvar computeGsplatTileIntersectSource = `\nstruct SplatTileEval {\n\tradiusFactor: f32,\n\tsplatMin: vec2f,\n\tsplatMax: vec2f,\n}\nfn computeRadiusFactor(opacity: half, alphaClip: f32) -> f32 {\n\treturn min(8.0, 2.0 * log(f32(opacity) / alphaClip));\n}\nfn computeSplatTileEval(\n\tscreen: vec2f,\n\tcx: f32, cy: f32, cz: f32,\n\topacity: half,\n\tviewportWidth: f32, viewportHeight: f32,\n\talphaClip: f32\n) -> SplatTileEval {\n\tlet K = cx * cz - cy * cy;\n\tlet a = 4.0 * cz / K;\n\tlet c = 4.0 * cx / K;\n\tlet radiusFactor = computeRadiusFactor(opacity, alphaClip);\n\tlet vmin = min(1024.0, min(viewportWidth, viewportHeight));\n\tlet radius = vec2f(min(sqrt(2.0 * a), vmin), min(sqrt(2.0 * c), vmin));\n\tvar result: SplatTileEval;\n\tresult.radiusFactor = radiusFactor;\n\tresult.splatMin = screen - radius;\n\tresult.splatMax = screen + radius;\n\treturn result;\n}\nfn segmentIntersectsEllipse(a: f32, b: f32, c: f32, d: f32, l: f32, r: f32) -> bool {\n\tlet delta = b * b - 4.0 * a * c;\n\tlet t1 = (l - d) * (2.0 * a) + b;\n\tlet t2 = (r - d) * (2.0 * a) + b;\n\treturn delta >= 0.0 && (t1 <= 0.0 || t1 * t1 <= delta) && (t2 >= 0.0 || t2 * t2 <= delta);\n}\nfn tileIntersectsEllipse(\n\ttileMin: vec2f, tileMax: vec2f, center: vec2f,\n\tcx: f32, cy: f32, cz: f32,\n\tradiusFactor: f32\n) -> bool {\n\tif (center.x >= tileMin.x && center.x <= tileMax.x &&\n\t\tcenter.y >= tileMin.y && center.y <= tileMax.y) {\n\t\treturn true;\n\t}\n\tlet w = radiusFactor;\n\tvar dx: f32;\n\tif (center.x * 2.0 < tileMin.x + tileMax.x) {\n\t\tdx = center.x - tileMin.x;\n\t} else {\n\t\tdx = center.x - tileMax.x;\n\t}\n\tif (segmentIntersectsEllipse(cz, -2.0 * cy * dx, cx * dx * dx - w, center.y, tileMin.y, tileMax.y)) {\n\t\treturn true;\n\t}\n\tvar dy: f32;\n\tif (center.y * 2.0 < tileMin.y + tileMax.y) {\n\t\tdy = center.y - tileMin.y;\n\t} else {\n\t\tdy = center.y - tileMax.y;\n\t}\n\tif (segmentIntersectsEllipse(cx, -2.0 * cy * dy, cz * dy * dy - w, center.x, tileMin.x, tileMax.x)) {\n\t\treturn true;\n\t}\n\treturn false;\n}\n`;\n\nvar gsplatComputeSplat_default = `\nstruct Splat {\n\tindex: u32,\n\tuv: vec2i\n}\nvar<private> splat: Splat;\nfn setSplat(idx: u32) {\n\tsplat.index = idx;\n\tsplat.uv = vec2i(i32(idx % uniforms.splatTextureSize), i32(idx / uniforms.splatTextureSize));\n}\n`;\n\nvar gsplatModify_default = `\nfn modifySplatCenter(center: ptr<function, vec3f>) {\n}\nfn modifySplatRotationScale(originalCenter: vec3f, modifiedCenter: vec3f, rotation: ptr<function, vec4f>, scale: ptr<function, vec3f>) {\n}\nfn modifySplatColor(center: vec3f, color: ptr<function, vec4f>) {\n}\n`;\n\nvar gsplatHelpers_default = `\nfn gsplatMakeSpherical(scale: ptr<function, vec3f>, size: f32) {\n\t*scale = vec3f(size);\n}\nfn gsplatGetSizeFromScale(scale: vec3f) -> f32 {\n\treturn sqrt((scale.x * scale.x + scale.y * scale.y + scale.z * scale.z) / 3.0);\n}\n`;\n\nvar INDEX_COUNT = 6 * GSplatResourceBase.instanceSize;\nvar PROJECTOR_WORKGROUP_SIZE = 256;\nvar PROJECTOR_INTERNAL_DEFINES = /* @__PURE__ */ new Set([\n\t\"{CACHE_STRIDE}\",\n\t\"RADIAL_SORT\",\n\t\"PICK_MODE\",\n\t\"GSPLAT_FISHEYE\",\n\t\"GSPLAT_AA\",\n\t\"GSPLAT_COLOR_FLOAT\",\n\t\"GSPLAT_XR\"\n]);\nvar _cameraDir = new Vec3();\nvar _dispatchSize = new Vec2();\nvar _viewProjMat3 = new Mat4();\nvar _viewProjData = new Float32Array(16);\nvar _viewProj1Data = new Float32Array(16);\nvar _viewData = new Float32Array(16);\nvar _shaderProjMat = new Mat4();\nvar GSplatProjector = class {\n\tdevice;\n\tprojCache = null;\n\tsortKeys = null;\n\trenderCounter = null;\n\tbinWeightsBuffer = null;\n\tbinWeightsUtil;\n\t_projectorComputes = /* @__PURE__ */ new Map();\n\t_projectorBindGroupFormat = null;\n\t_projectorUniformBufferFormat = null;\n\t_projectorUniformBufferFormatFisheye = null;\n\t_projectorUniformBufferFormatStereo = null;\n\t_writeIndirectArgsCompute = null;\n\t_writeArgsBindGroupFormat = null;\n\t_writeArgsUniformBufferFormat = null;\n\t_formatVersion = -1;\n\t_materialKey = \"\";\n\t_userModifySource = null;\n\t_userVaryingsSource = null;\n\t_userCacheWriteSource = null;\n\t_userDefines = null;\n\t_userCacheWords = 0;\n\t_allocatedCacheCount = 0;\n\t_allocatedCacheStride = 0;\n\tcameraPositionData = new Float32Array(3);\n\tcameraDirectionData = new Float32Array(3);\n\tconstructor(device) {\n\t\tthis.device = device;\n\t\tthis.binWeightsUtil = new GSplatSortBinWeights2();\n\t\tthis.binWeightsBuffer = new StorageBuffer(\n\t\t\tdevice,\n\t\t\tGSplatSortBinWeights2.NUM_BINS * 2 * 4,\n\t\t\tBUFFERUSAGE_COPY_SRC | BUFFERUSAGE_COPY_DST\n\t\t);\n\t\tthis.renderCounter = new StorageBuffer(device, 4, BUFFERUSAGE_COPY_SRC | BUFFERUSAGE_COPY_DST);\n\t\tthis._createUniformBufferFormats();\n\t\tthis._createWriteIndirectArgsCompute();\n\t}\n\tdestroy() {\n\t\tthis.projCache?.destroy();\n\t\tthis.sortKeys?.destroy();\n\t\tthis.renderCounter?.destroy();\n\t\tthis.binWeightsBuffer?.destroy();\n\t\tfor (const compute of this._projectorComputes.values()) {\n\t\t\tcompute.shader?.destroy();\n\t\t}\n\t\tthis._projectorComputes.clear();\n\t\tthis._projectorBindGroupFormat?.destroy();\n\t\tthis._writeIndirectArgsCompute?.shader?.destroy();\n\t\tthis._writeArgsBindGroupFormat?.destroy();\n\t\tthis.projCache = null;\n\t\tthis.sortKeys = null;\n\t\tthis.renderCounter = null;\n\t\tthis.binWeightsBuffer = null;\n\t\tthis._projectorBindGroupFormat = null;\n\t\tthis._projectorUniformBufferFormat = null;\n\t\tthis._projectorUniformBufferFormatFisheye = null;\n\t\tthis._projectorUniformBufferFormatStereo = null;\n\t\tthis._writeIndirectArgsCompute = null;\n\t\tthis._writeArgsBindGroupFormat = null;\n\t\tthis._writeArgsUniformBufferFormat = null;\n\t}\n\t_createUniformBufferFormats() {\n\t\tconst device = this.device;\n\t\tconst baseFields = [\n\t\t\tnew UniformFormat(\"splatTextureSize\", UNIFORMTYPE_UINT),\n\t\t\tnew UniformFormat(\"numBins\", UNIFORMTYPE_UINT),\n\t\t\tnew UniformFormat(\"isOrtho\", UNIFORMTYPE_UINT),\n\t\t\tnew UniformFormat(\"pad0\", UNIFORMTYPE_UINT),\n\t\t\tnew UniformFormat(\"viewProj\", UNIFORMTYPE_MAT4),\n\t\t\tnew UniformFormat(\"viewMatrix\", UNIFORMTYPE_MAT4),\n\t\t\tnew UniformFormat(\"cameraPosition\", UNIFORMTYPE_VEC3),\n\t\t\tnew UniformFormat(\"minPixelSize\", UNIFORMTYPE_FLOAT),\n\t\t\tnew UniformFormat(\"cameraDirection\", UNIFORMTYPE_VEC3),\n\t\t\tnew UniformFormat(\"focal\", UNIFORMTYPE_FLOAT),\n\t\t\tnew UniformFormat(\"viewportWidth\", UNIFORMTYPE_FLOAT),\n\t\t\tnew UniformFormat(\"viewportHeight\", UNIFORMTYPE_FLOAT),\n\t\t\tnew UniformFormat(\"nearClip\", UNIFORMTYPE_FLOAT),\n\t\t\tnew UniformFormat(\"farClip\", UNIFORMTYPE_FLOAT),\n\t\t\tnew UniformFormat(\"alphaClip\", UNIFORMTYPE_FLOAT),\n\t\t\tnew UniformFormat(\"minContribution\", UNIFORMTYPE_FLOAT),\n\t\t\tnew UniformFormat(\"minDist\", UNIFORMTYPE_FLOAT),\n\t\t\tnew UniformFormat(\"invRange\", UNIFORMTYPE_FLOAT),\n\t\t\tnew UniformFormat(\"foveationStrength\", UNIFORMTYPE_FLOAT),\n\t\t\tnew UniformFormat(\"foveationCenter\", UNIFORMTYPE_FLOAT)\n\t\t];\n\t\tthis._projectorUniformBufferFormat = new UniformBufferFormat(device, baseFields);\n\t\tthis._projectorUniformBufferFormatFisheye = new UniformBufferFormat(device, [\n\t\t\t...baseFields.map((f) => new UniformFormat(f.name, f.type)),\n\t\t\tnew UniformFormat(\"fisheye_k\", UNIFORMTYPE_FLOAT),\n\t\t\tnew UniformFormat(\"fisheye_inv_k\", UNIFORMTYPE_FLOAT),\n\t\t\tnew UniformFormat(\"fisheye_projMat00\", UNIFORMTYPE_FLOAT),\n\t\t\tnew UniformFormat(\"fisheye_projMat11\", UNIFORMTYPE_FLOAT)\n\t\t]);\n\t\tthis._projectorUniformBufferFormatStereo = new UniformBufferFormat(device, [\n\t\t\t...baseFields.map((f) => new UniformFormat(f.name, f.type)),\n\t\t\tnew UniformFormat(\"viewProj1\", UNIFORMTYPE_MAT4)\n\t\t]);\n\t\tthis._writeArgsUniformBufferFormat = new UniformBufferFormat(device, [\n\t\t\tnew UniformFormat(\"drawSlot\", UNIFORMTYPE_UINT),\n\t\t\tnew UniformFormat(\"indexCount\", UNIFORMTYPE_UINT),\n\t\t\tnew UniformFormat(\"sortSlotBase\", UNIFORMTYPE_UINT),\n\t\t\tnew UniformFormat(\"pad0\", UNIFORMTYPE_UINT),\n\t\t\tnew UniformFormat(\"sortIndirectInfo\", UNIFORMTYPE_UVEC4)\n\t\t]);\n\t}\n\t_createWriteIndirectArgsCompute() {\n\t\tconst device = this.device;\n\t\tthis._writeArgsBindGroupFormat = new BindGroupFormat(device, [\n\t\t\tnew BindStorageBufferFormat(\"renderCounter\", SHADERSTAGE_COMPUTE, true),\n\t\t\tnew BindStorageBufferFormat(\"indirectDrawArgs\", SHADERSTAGE_COMPUTE, false),\n\t\t\tnew BindStorageBufferFormat(\"numSplatsBuf\", SHADERSTAGE_COMPUTE, false),\n\t\t\tnew BindStorageBufferFormat(\"indirectDispatchArgs\", SHADERSTAGE_COMPUTE, false),\n\t\t\tnew BindStorageBufferFormat(\"sortElementCountBuf\", SHADERSTAGE_COMPUTE, false),\n\t\t\tnew BindUniformBufferFormat(\"uniforms\", SHADERSTAGE_COMPUTE)\n\t\t]);\n\t\tconst cdefines = /* @__PURE__ */ new Map([\n\t\t\t[\"{INSTANCE_SIZE}\", GSplatResourceBase.instanceSize.toString()]\n\t\t]);\n\t\tconst shader = new Shader(device, {\n\t\t\tname: \"GSplatProjectorWriteIndirectArgs\",\n\t\t\tshaderLanguage: SHADERLANGUAGE_WGSL,\n\t\t\tcshader: computeGsplatProjectorWriteIndirectArgsSource,\n\t\t\tcdefines,\n\t\t\tcomputeBindGroupFormat: this._writeArgsBindGroupFormat,\n\t\t\tcomputeUniformBufferFormats: { uniforms: this._writeArgsUniformBufferFormat }\n\t\t});\n\t\tthis._writeIndirectArgsCompute = new Compute(device, shader, \"GSplatProjectorWriteIndirectArgs\");\n\t}\n\t_destroyProjectorComputes() {\n\t\tfor (const compute of this._projectorComputes.values()) {\n\t\t\tcompute.shader?.destroy();\n\t\t}\n\t\tthis._projectorComputes.clear();\n\t\tthis._projectorBindGroupFormat?.destroy();\n\t\tthis._projectorBindGroupFormat = null;\n\t}\n\t_projectorKey(radialSort, pickMode, fisheyeMode, antiAlias, stereo) {\n\t\treturn `${radialSort ? \"r\" : \"l\"}${pickMode ? \"p\" : \"\"}${fisheyeMode ? \"f\" : \"\"}${antiAlias ? \"a\" : \"\"}${stereo ? \"s\" : \"\"}`;\n\t}\n\t_createProjectorCompute(workBuffer, radialSort, pickMode, fisheyeMode, antiAlias, stereo) {\n\t\tconst device = this.device;\n\t\tconst wbFormat = workBuffer.format;\n\t\tconst fixedBindings = [\n\t\t\tnew BindStorageBufferFormat(\"compactedSplatIds\", SHADERSTAGE_COMPUTE, true),\n\t\t\tnew BindStorageBufferFormat(\"sortElementCount\", SHADERSTAGE_COMPUTE, true),\n\t\t\tnew BindStorageBufferFormat(\"projCache\", SHADERSTAGE_COMPUTE),\n\t\t\tnew BindStorageBufferFormat(\"sortKeys\", SHADERSTAGE_COMPUTE),\n\t\t\tnew BindStorageBufferFormat(\"renderCounter\", SHADERSTAGE_COMPUTE),\n\t\t\tnew BindStorageBufferFormat(\"binWeights\", SHADERSTAGE_COMPUTE, true),\n\t\t\tnew BindUniformBufferFormat(\"uniforms\", SHADERSTAGE_COMPUTE)\n\t\t];\n\t\tif (!this._projectorBindGroupFormat) {\n\t\t\tthis._projectorBindGroupFormat = new BindGroupFormat(device, [\n\t\t\t\t...fixedBindings,\n\t\t\t\t...wbFormat.getComputeBindFormats()\n\t\t\t]);\n\t\t}\n\t\tconst cincludes = /* @__PURE__ */ new Map();\n\t\tcincludes.set(\"gsplatCommonCS\", computeGsplatCommonSource);\n\t\tcincludes.set(\"gsplatTileIntersectCS\", computeGsplatTileIntersectSource);\n\t\tcincludes.set(\"gsplatComputeSplatCS\", gsplatComputeSplat_default);\n\t\tcincludes.set(\"gsplatFormatDeclCS\", wbFormat.getComputeInputDeclarations(fixedBindings.length));\n\t\tcincludes.set(\"gsplatFormatReadCS\", wbFormat.getReadCode());\n\t\tcincludes.set(\"gsplatHelpersVS\", gsplatHelpers_default);\n\t\tcincludes.set(\"gsplatModifyVS\", this._userModifySource ?? gsplatModify_default);\n\t\tcincludes.set(\"gsplatUserVaryingsCS\", this._userVaryingsSource ?? \"\");\n\t\tcincludes.set(\"gsplatUserCacheWriteCS\", this._userCacheWriteSource ?? \"\");\n\t\tcincludes.set(\"gsplatProjectCommonCS\", computeGsplatProjectCommonSource);\n\t\tconst cdefines = /* @__PURE__ */ new Map();\n\t\tcdefines.set(\"{CACHE_STRIDE}\", (CACHE_STRIDE + this._userCacheWords).toString());\n\t\tif (radialSort) {\n\t\t\tcdefines.set(\"RADIAL_SORT\", \"\");\n\t\t}\n\t\tif (pickMode) {\n\t\t\tcdefines.set(\"PICK_MODE\", \"\");\n\t\t}\n\t\tif (fisheyeMode) {\n\t\t\tcdefines.set(\"GSPLAT_FISHEYE\", \"\");\n\t\t}\n\t\tif (antiAlias) {\n\t\t\tcdefines.set(\"GSPLAT_AA\", \"\");\n\t\t}\n\t\tif (stereo) {\n\t\t\tcdefines.set(\"GSPLAT_XR\", \"\");\n\t\t}\n\t\tconst colorStream = wbFormat.getStream(\"dataColor\");\n\t\tif (colorStream && colorStream.format !== PIXELFORMAT_RGBA16U) {\n\t\t\tcdefines.set(\"GSPLAT_COLOR_FLOAT\", \"\");\n\t\t}\n\t\tif (this._userDefines) {\n\t\t\tthis._userDefines.forEach((value, key) => {\n\t\t\t\tif (!PROJECTOR_INTERNAL_DEFINES.has(key)) {\n\t\t\t\t\tcdefines.set(key, value);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tconst name = `GSplatProjector${radialSort ? \"Radial\" : \"Linear\"}${pickMode ? \"Pick\" : \"\"}${fisheyeMode ? \"Fisheye\" : \"\"}${antiAlias ? \"Aa\" : \"\"}${stereo ? \"Stereo\" : \"\"}`;\n\t\tconst ubFormat = stereo ? this._projectorUniformBufferFormatStereo : fisheyeMode ? this._projectorUniformBufferFormatFisheye : this._projectorUniformBufferFormat;\n\t\tconst shader = new Shader(device, {\n\t\t\tname,\n\t\t\tshaderLanguage: SHADERLANGUAGE_WGSL,\n\t\t\tcshader: computeGsplatProjectorSource,\n\t\t\tcincludes,\n\t\t\tcdefines,\n\t\t\tcomputeBindGroupFormat: this._projectorBindGroupFormat,\n\t\t\tcomputeUniformBufferFormats: { uniforms: ubFormat }\n\t\t});\n\t\treturn new Compute(device, shader, name);\n\t}\n\t_getProjectorCompute(workBuffer, radialSort, pickMode = false, fisheyeMode = false, antiAlias = false, stereo = false) {\n\t\tconst wbFormat = workBuffer.format;\n\t\tif (this._formatVersion !== wbFormat.extraStreamsVersion) {\n\t\t\tthis._destroyProjectorComputes();\n\t\t\tthis._formatVersion = wbFormat.extraStreamsVersion;\n\t\t}\n\t\tconst key = this._projectorKey(radialSort, pickMode, fisheyeMode, antiAlias, stereo);\n\t\tlet compute = this._projectorComputes.get(key);\n\t\tif (!compute) {\n\t\t\tcompute = this._createProjectorCompute(workBuffer, radialSort, pickMode, fisheyeMode, antiAlias, stereo);\n\t\t\tthis._projectorComputes.set(key, compute);\n\t\t}\n\t\treturn compute;\n\t}\n\t_updateMaterial(material, userCacheWords = 0) {\n\t\tconst chunksKey = material?.shaderChunks?.key ?? \"\";\n\t\tconst definesKey = material?.definesKey ?? \"\";\n\t\tconst materialKey = `${chunksKey}|${definesKey}|${userCacheWords}`;\n\t\tif (materialKey !== this._materialKey) {\n\t\t\tthis._materialKey = materialKey;\n\t\t\tthis._userDefines = material?.defines ?? null;\n\t\t\tthis._userCacheWords = userCacheWords;\n\t\t\tconst wgslChunks = material?.getShaderChunks?.(SHADERLANGUAGE_WGSL);\n\t\t\tthis._userModifySource = wgslChunks?.get(\"gsplatModifyVS\") ?? null;\n\t\t\tthis._userVaryingsSource = wgslChunks?.get(\"gsplatUserVaryingsCS\") ?? null;\n\t\t\tthis._userCacheWriteSource = wgslChunks?.get(\"gsplatUserCacheWriteCS\") ?? null;\n\t\t\tthis._destroyProjectorComputes();\n\t\t}\n\t}\n\t_ensureCapacity(capacity) {\n\t\tconst cacheStride = CACHE_STRIDE + this._userCacheWords;\n\t\tif (capacity > this._allocatedCacheCount || cacheStride !== this._allocatedCacheStride) {\n\t\t\tthis.projCache?.destroy();\n\t\t\tthis.sortKeys?.destroy();\n\t\t\tthis._allocatedCacheCount = capacity;\n\t\t\tthis._allocatedCacheStride = cacheStride;\n\t\t\tthis.projCache = new StorageBuffer(this.device, capacity * cacheStride * 4);\n\t\t\tthis.sortKeys = new StorageBuffer(this.device, capacity * 4, BUFFERUSAGE_COPY_SRC);\n\t\t}\n\t}\n\tdispatch(params) {\n\t\tconst {\n\t\t\tworkBuffer,\n\t\t\tcameraNode,\n\t\t\tcompactedSplatIds,\n\t\t\tsortElementCountBuffer,\n\t\t\ttotalCapacity,\n\t\t\tradialSort,\n\t\t\tnumBits,\n\t\t\tminDist,\n\t\t\tmaxDist,\n\t\t\talphaClip,\n\t\t\tminPixelSize,\n\t\t\tminContribution,\n\t\t\tfoveationStrength = 0,\n\t\t\tfoveationCenter = 0.3,\n\t\t\tviewportWidth,\n\t\t\tviewportHeight,\n\t\t\tpickMode = false,\n\t\t\tfisheyeProj,\n\t\t\tantiAlias = false,\n\t\t\tisStereo = false,\n\t\t\tmaterial,\n\t\t\tuserCacheWords = 0\n\t\t} = params;\n\t\tconst fisheyeMode = !!fisheyeProj?.enabled;\n\t\tconst stereoMode = !!isStereo && !pickMode && !fisheyeMode;\n\t\tconst aaMode = antiAlias && !pickMode;\n\t\tthis._updateMaterial(material, userCacheWords);\n\t\tthis._ensureCapacity(totalCapacity);\n\t\tthis.renderCounter.clear();\n\t\tconst compute = this._getProjectorCompute(workBuffer, radialSort, pickMode, fisheyeMode, aaMode, stereoMode);\n\t\tif (material) {\n\t\t\tconst srcParams = material.parameters;\n\t\t\tfor (const name in srcParams) {\n\t\t\t\tif (srcParams.hasOwnProperty(name)) {\n\t\t\t\t\tcompute.setParameter(name, srcParams[name].data);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tconst cameraPos = cameraNode.getPosition();\n\t\tconst cameraMat = cameraNode.getWorldTransform();\n\t\tconst cameraDir = cameraMat.getZ(_cameraDir).normalize();\n\t\tconst range = maxDist - minDist;\n\t\tconst invRange = range > 0 ? 1 / range : 1;\n\t\tconst bucketCount = 1 << numBits;\n\t\tconst cameraBin = GSplatSortBinWeights2.computeCameraBin(radialSort, minDist, range);\n\t\tconst binWeights = this.binWeightsUtil.compute(cameraBin, bucketCount);\n\t\tthis.binWeightsBuffer.write(0, binWeights);\n\t\tcompute.setParameter(\"compactedSplatIds\", compactedSplatIds);\n\t\tcompute.setParameter(\"sortElementCount\", sortElementCountBuffer);\n\t\tcompute.setParameter(\"projCache\", this.projCache);\n\t\tcompute.setParameter(\"sortKeys\", this.sortKeys);\n\t\tcompute.setParameter(\"renderCounter\", this.renderCounter);\n\t\tcompute.setParameter(\"binWeights\", this.binWeightsBuffer);\n\t\tfor (const stream of workBuffer.format.resourceStreams) {\n\t\t\tconst texture = workBuffer.getTexture(stream.name);\n\t\t\tif (texture) {\n\t\t\t\tcompute.setParameter(stream.name, texture);\n\t\t\t}\n\t\t}\n\t\tconst cameraComponent = cameraNode.camera;\n\t\tconst cam = cameraComponent.camera;\n\t\tconst webgpu = this.device.isWebGPU;\n\t\tlet focal;\n\t\tif (stereoMode) {\n\t\t\tconst views = cam.xrViews;\n\t\t\tcam.updateViewTransforms();\n\t\t\t_viewProjData.set(views[0].projViewOffMat.data);\n\t\t\t_viewProj1Data.set(views[1].projViewOffMat.data);\n\t\t\t_viewData.set(views[0].viewOffMat.data);\n\t\t\tfocal = viewportWidth * views[0].projMat.data[0];\n\t\t} else {\n\t\t\tconst view = cam.viewMatrix;\n\t\t\t_viewProjMat3.mul2(Camera.applyShaderProjectionTransform(cam.projectionMatrix, _shaderProjMat, false, webgpu), view);\n\t\t\t_viewProjData.set(_viewProjMat3.data);\n\t\t\t_viewData.set(view.data);\n\t\t\tfocal = viewportWidth * _shaderProjMat.data[0];\n\t\t}\n\t\tthis.cameraPositionData[0] = cameraPos.x;\n\t\tthis.cameraPositionData[1] = cameraPos.y;\n\t\tthis.cameraPositionData[2] = cameraPos.z;\n\t\tcompute.setParameter(\"cameraPosition\", this.cameraPositionData);\n\t\tthis.cameraDirectionData[0] = cameraDir.x;\n\t\tthis.cameraDirectionData[1] = cameraDir.y;\n\t\tthis.cameraDirectionData[2] = cameraDir.z;\n\t\tcompute.setParameter(\"cameraDirection\", this.cameraDirectionData);\n\t\tcompute.setParameter(\"viewMatrix\", _viewData);\n\t\tcompute.setParameter(\"viewProj\", _viewProjData);\n\t\tif (stereoMode) {\n\t\t\tcompute.setParameter(\"viewProj1\", _viewProj1Data);\n\t\t}\n\t\tcompute.setParameter(\"focal\", focal);\n\t\tcompute.setParameter(\"viewportWidth\", viewportWidth);\n\t\tcompute.setParameter(\"viewportHeight\", viewportHeight);\n\t\tcompute.setParameter(\"nearClip\", cam.nearClip);\n\t\tcompute.setParameter(\"farClip\", cam.farClip);\n\t\tcompute.setParameter(\"alphaClip\", alphaClip);\n\t\tcompute.setParameter(\"minPixelSize\", minPixelSize);\n\t\tcompute.setParameter(\"minContribution\", minContribution);\n\t\tcompute.setParameter(\"foveationStrength\", foveationStrength);\n\t\tcompute.setParameter(\"foveationCenter\", foveationCenter);\n\t\tcompute.setParameter(\"isOrtho\", cam.projection === PROJECTION_ORTHOGRAPHIC ? 1 : 0);\n\t\tcompute.setParameter(\"splatTextureSize\", workBuffer.textureSize);\n\t\tcompute.setParameter(\"numBins\", GSplatSortBinWeights2.NUM_BINS);\n\t\tcompute.setParameter(\"minDist\", minDist);\n\t\tcompute.setParameter(\"invRange\", invRange);\n\t\tcompute.setParameter(\"pad0\", 0);\n\t\tif (fisheyeMode) {\n\t\t\tcompute.setParameter(\"fisheye_k\", fisheyeProj.k);\n\t\t\tcompute.setParameter(\"fisheye_inv_k\", fisheyeProj.invK);\n\t\t\tcompute.setParameter(\"fisheye_projMat00\", fisheyeProj.projMat00);\n\t\t\tcompute.setParameter(\"fisheye_projMat11\", fisheyeProj.projMat11);\n\t\t}\n\t\tconst workgroupCount = Math.ceil(totalCapacity / PROJECTOR_WORKGROUP_SIZE);\n\t\tCompute.calcDispatchSize(\n\t\t\tworkgroupCount,\n\t\t\t_dispatchSize,\n\t\t\tthis.device.limits.maxComputeWorkgroupsPerDimension || 65535\n\t\t);\n\t\tcompute.setupDispatch(_dispatchSize.x, _dispatchSize.y, 1);\n\t\tthis.device.computeDispatch([compute], \"GSplatProjector\");\n\t}\n\twriteIndirectArgs(drawSlot, sortSlotBase, numSplatsBuffer, sortElementCountBuffer, sortIndirectInfo) {\n\t\tconst compute = this._writeIndirectArgsCompute;\n\t\tcompute.setParameter(\"renderCounter\", this.renderCounter);\n\t\tcompute.setParameter(\"indirectDrawArgs\", this.device.indirectDrawBuffer);\n\t\tcompute.setParameter(\"numSplatsBuf\", numSplatsBuffer);\n\t\tcompute.setParameter(\"indirectDispatchArgs\", this.device.indirectDispatchBuffer);\n\t\tcompute.setParameter(\"sortElementCountBuf\", sortElementCountBuffer);\n\t\tcompute.setParameter(\"drawSlot\", drawSlot);\n\t\tcompute.setParameter(\"indexCount\", INDEX_COUNT);\n\t\tcompute.setParameter(\"sortSlotBase\", sortSlotBase);\n\t\tcompute.setParameter(\"pad0\", 0);\n\t\tcompute.setParameter(\"sortIndirectInfo\", sortIndirectInfo);\n\t\tcompute.setupDispatch(1);\n\t\tthis.device.computeDispatch([compute], \"GSplatProjectorWriteIndirectArgs\");\n\t}\n};\n\nvar computeGsplatIntervalCullSource = `\nstruct Interval {\n\tworkBufferBase: u32,\n\tsplatCount: u32,\n\tboundsIndex: u32,\n\tpad: u32\n};\nstruct BoundsEntry {\n\tcenterX: f32,\n\tcenterY: f32,\n\tcenterZ: f32,\n\tradius: f32,\n\ttransformIndex: u32,\n\tpad0: u32,\n\tpad1: u32,\n\tpad2: u32\n};\nstruct CullUniforms {\n#ifdef GSPLAT_FISHEYE\n\tcameraWorldPos: vec3f,\n\tmaxTheta: f32,\n\tcameraForward: vec3f,\n\tnumIntervals: u32,\n#else\n\tfrustumPlanes: array<vec4f, 6>,\n\tnumIntervals: u32\n#endif\n};\n@group(0) @binding(0) var<uniform> uniforms: CullUniforms;\n@group(0) @binding(1) var<storage, read> intervals: array<Interval>;\n@group(0) @binding(2) var<storage, read_write> countBuffer: array<u32>;\n@group(0) @binding(3) var<storage, read> boundsBuffer: array<BoundsEntry>;\n@group(0) @binding(4) var<storage, read> transformsBuffer: array<vec4f>;\n@compute @workgroup_size({WORKGROUP_SIZE})\nfn main(@builtin(global_invocation_id) gid: vec3u) {\n\tlet idx = gid.x;\n\tif (idx < uniforms.numIntervals) {\n\t\tlet interval = intervals[idx];\n\t\tlet entry = boundsBuffer[interval.boundsIndex];\n\t\tlet localCenter = vec3f(entry.centerX, entry.centerY, entry.centerZ);\n\t\tlet radius = entry.radius;\n\t\tlet base = entry.transformIndex * 3u;\n\t\tlet row0 = transformsBuffer[base];\n\t\tlet row1 = transformsBuffer[base + 1u];\n\t\tlet row2 = transformsBuffer[base + 2u];\n\t\tlet worldCenter = vec3f(\n\t\t\tdot(vec4f(localCenter, 1.0), row0),\n\t\t\tdot(vec4f(localCenter, 1.0), row1),\n\t\t\tdot(vec4f(localCenter, 1.0), row2)\n\t\t);\n\t\tlet worldRadius = radius * length(vec3f(row0.x, row1.x, row2.x));\n\t#ifdef GSPLAT_FISHEYE\n\t\tlet v = worldCenter - uniforms.cameraWorldPos;\n\t\tlet d = length(v);\n\t\tvar visible = true;\n\t\tif (d > worldRadius) {\n\t\t\tlet cosAngle = dot(v / d, uniforms.cameraForward);\n\t\t\tlet theta = acos(clamp(cosAngle, -1.0, 1.0));\n\t\t\tlet angularRadius = asin(min(worldRadius / d, 1.0));\n\t\t\tvisible = (theta - angularRadius) < uniforms.maxTheta;\n\t\t}\n\t#else\n\t\tvar visible = true;\n\t\tfor (var p = 0; p < 6; p++) {\n\t\t\tlet plane = uniforms.frustumPlanes[p];\n\t\t\tlet dist = dot(plane.xyz, worldCenter) + plane.w;\n\t\t\tif (dist <= -worldRadius) {\n\t\t\t\tvisible = false;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t#endif\n\t\tcountBuffer[idx] = select(0u, interval.splatCount, visible);\n\t}\n\tif (idx == 0u) {\n\t\tcountBuffer[uniforms.numIntervals] = 0u;\n\t}\n}\n`;\n\nvar computeGsplatIntervalScatterSource = `\nstruct Interval {\n\tworkBufferBase: u32,\n\tsplatCount: u32,\n\tboundsIndex: u32,\n\tpad: u32\n};\nstruct ScatterUniforms {\n\tnumIntervals: u32,\n\tpad0: u32,\n\tpad1: u32,\n\tpad2: u32\n};\n@group(0) @binding(0) var<uniform> uniforms: ScatterUniforms;\n@group(0) @binding(1) var<storage, read> intervals: array<Interval>;\n@group(0) @binding(2) var<storage, read> prefixSumBuffer: array<u32>;\n@group(0) @binding(3) var<storage, read_write> compactedOutput: array<u32>;\n@compute @workgroup_size({WORKGROUP_SIZE})\nfn main(\n\t@builtin(workgroup_id) wgId: vec3u,\n\t@builtin(num_workgroups) numWorkgroups: vec3u,\n\t@builtin(local_invocation_id) lid: vec3u\n) {\n\tlet intervalIdx = wgId.y * numWorkgroups.x + wgId.x;\n\tif (intervalIdx >= uniforms.numIntervals) { return; }\n\tlet outputOffset = prefixSumBuffer[intervalIdx];\n\tlet nextOffset = prefixSumBuffer[intervalIdx + 1u];\n\tlet count = nextOffset - outputOffset;\n\tif (count == 0u) { return; }\n\tlet workBufferBase = intervals[intervalIdx].workBufferBase;\n\tlet tid = lid.x;\n\tfor (var j = tid; j < count; j += {WORKGROUP_SIZE}u) {\n\t\tcompactedOutput[outputOffset + j] = workBufferBase + j;\n\t}\n}\n`;\n\nvar computeGsplatWriteIndirectArgsSource = `\n${indirect_core_default}\n${dispatch_core_default}\n${sort_indirect_args_default}\n@group(0) @binding(0) var<storage, read> prefixSumBuffer: array<u32>;\n@group(0) @binding(1) var<storage, read_write> indirectDrawArgs: array<DrawIndexedIndirectArgs>;\n@group(0) @binding(2) var<storage, read_write> numSplatsBuf: array<u32>;\n@group(0) @binding(3) var<storage, read_write> indirectDispatchArgs: array<u32>;\n@group(0) @binding(4) var<storage, read_write> sortElementCountBuf: array<u32>;\nstruct WriteArgsUniforms {\n\tdrawSlot: u32,\n\tindexCount: u32,\n\tdispatchSlotBase: u32,\n\ttotalSplats: u32,\n\tsortIndirectInfo: vec4<u32>\n};\n@group(0) @binding(5) var<uniform> uniforms: WriteArgsUniforms;\n@compute @workgroup_size(1)\nfn main(@builtin(global_invocation_id) gid: vec3u) {\n\tlet count = prefixSumBuffer[uniforms.totalSplats];\n\tlet instanceCount = (count + {INSTANCE_SIZE}u - 1u) / {INSTANCE_SIZE}u;\n\tindirectDrawArgs[uniforms.drawSlot] = DrawIndexedIndirectArgs(\n\t\tuniforms.indexCount,\n\t\tinstanceCount,\n\t\t0u,\n\t\t0,\n\t\t0u\n\t);\n\tnumSplatsBuf[0] = count;\n\tlet keygenSlot = uniforms.dispatchSlotBase;\n\tlet keygenOffset = keygenSlot * 3u;\n\tlet keygenWorkgroupCount = (count + {KEYGEN_THREADS_PER_WORKGROUP}u - 1u) / {KEYGEN_THREADS_PER_WORKGROUP}u;\n\tlet keygenDim = calcDispatch2D(keygenWorkgroupCount, {MAX_WORKGROUPS_PER_DIM}u);\n\tindirectDispatchArgs[keygenOffset + 0u] = keygenDim.x;\n\tindirectDispatchArgs[keygenOffset + 1u] = keygenDim.y;\n\tindirectDispatchArgs[keygenOffset + 2u] = 1u;\n\twriteSortIndirectArgs(keygenSlot + 1u, count, uniforms.sortIndirectInfo);\n\tsortElementCountBuf[0] = count;\n}\n`;\n\nvar INTERVAL_STRIDE = 4;\nfunction buildGSplatIntervalData(worldState) {\n\tconst splats = worldState.splats;\n\tconst numIntervals = worldState.totalIntervals;\n\tconst data2 = new Uint32Array(numIntervals * INTERVAL_STRIDE);\n\tlet writeIdx = 0;\n\tfor (let s2 = 0; s2 < splats.length; s2++) {\n\t\tconst splat = splats[s2];\n\t\tif (splat.intervals.length > 0) {\n\t\t\tconst nodeIndices = splat.intervalNodeIndices;\n\t\t\tfor (let i2 = 0; i2 < splat.intervals.length; i2 += 2) {\n\t\t\t\tconst count = splat.intervals[i2 + 1] - splat.intervals[i2];\n\t\t\t\tdata2[writeIdx++] = splat.intervalOffsets[i2 / 2];\n\t\t\t\tdata2[writeIdx++] = count;\n\t\t\t\tdata2[writeIdx++] = splat.boundsBaseIndex + (nodeIndices.length > 0 ? nodeIndices[i2 / 2] : 0);\n\t\t\t\tdata2[writeIdx++] = 0;\n\t\t\t}\n\t\t} else {\n\t\t\tdata2[writeIdx++] = splat.intervalOffsets[0];\n\t\t\tdata2[writeIdx++] = splat.activeSplats;\n\t\t\tdata2[writeIdx++] = splat.boundsBaseIndex;\n\t\t\tdata2[writeIdx++] = 0;\n\t\t}\n\t}\n\treturn data2;\n}\n\nvar WORKGROUP_SIZE = 256;\nvar INDEX_COUNT2 = 6 * GSplatResourceBase.instanceSize;\nvar GSplatIntervalCompaction = class {\n\tdevice;\n\t_scratch;\n\tcompactedSplatIds = null;\n\tintervalsBuffer = null;\n\tcountBuffer = null;\n\tprefixSumKernel = null;\n\tnumSplatsBuffer = null;\n\tsortElementCountBuffer = null;\n\tallocatedIntervalCount = 0;\n\tallocatedCountBufferSize = 0;\n\t_uploadedVersion = -1;\n\t_cullComputePerspective = null;\n\t_cullComputeFisheye = null;\n\t_scatterCompute = null;\n\t_scatterDispatchSize = new Vec2(1, 1);\n\t_writeIndirectArgsCompute = null;\n\t_cullBindGroupFormatPerspective = null;\n\t_cullBindGroupFormatFisheye = null;\n\t_scatterBindGroupFormat = null;\n\t_writeArgsBindGroupFormat = null;\n\t_scatterUniformBufferFormat = null;\n\t_writeArgsUniformBufferFormat = null;\n\tconstructor(device, scratch) {\n\t\tthis.device = device;\n\t\tthis._scratch = scratch;\n\t\tthis.numSplatsBuffer = new StorageBuffer(device, 4, BUFFERUSAGE_COPY_SRC | BUFFERUSAGE_COPY_DST);\n\t\tthis.sortElementCountBuffer = new StorageBuffer(device, 4, BUFFERUSAGE_COPY_SRC | BUFFERUSAGE_COPY_DST);\n\t\tthis.prefixSumKernel = new PrefixSumKernel(device);\n\t\tthis._createUniformBufferFormats();\n\t\tthis._createScatterCompute();\n\t\tthis._createWriteIndirectArgsCompute();\n\t}\n\tdestroy() {\n\t\tthis.intervalsBuffer?.destroy();\n\t\tthis.countBuffer?.destroy();\n\t\tthis.prefixSumKernel?.destroy();\n\t\tthis.numSplatsBuffer?.destroy();\n\t\tthis.sortElementCountBuffer?.destroy();\n\t\tthis._destroyCullPass();\n\t\tthis._scatterCompute?.shader?.destroy();\n\t\tthis._scatterBindGroupFormat?.destroy();\n\t\tthis._writeIndirectArgsCompute?.shader?.destroy();\n\t\tthis._writeArgsBindGroupFormat?.destroy();\n\t\tthis.compactedSplatIds = null;\n\t\tthis.intervalsBuffer = null;\n\t\tthis.countBuffer = null;\n\t\tthis.prefixSumKernel = null;\n\t\tthis.numSplatsBuffer = null;\n\t\tthis.sortElementCountBuffer = null;\n\t\tthis._scatterCompute = null;\n\t\tthis._scatterBindGroupFormat = null;\n\t\tthis._writeIndirectArgsCompute = null;\n\t\tthis._writeArgsBindGroupFormat = null;\n\t\tthis._scatterUniformBufferFormat = null;\n\t\tthis._writeArgsUniformBufferFormat = null;\n\t}\n\t_destroyCullPass() {\n\t\tthis._cullComputePerspective?.shader?.destroy();\n\t\tthis._cullBindGroupFormatPerspective?.destroy();\n\t\tthis._cullComputePerspective = null;\n\t\tthis._cullBindGroupFormatPerspective = null;\n\t\tthis._cullComputeFisheye?.shader?.destroy();\n\t\tthis._cullBindGroupFormatFisheye?.destroy();\n\t\tthis._cullComputeFisheye = null;\n\t\tthis._cullBindGroupFormatFisheye = null;\n\t}\n\t_createUniformBufferFormats() {\n\t\tconst device = this.device;\n\t\tthis._scatterUniformBufferFormat = new UniformBufferFormat(device, [\n\t\t\tnew UniformFormat(\"numIntervals\", UNIFORMTYPE_UINT),\n\t\t\tnew UniformFormat(\"pad0\", UNIFORMTYPE_UINT),\n\t\t\tnew UniformFormat(\"pad1\", UNIFORMTYPE_UINT),\n\t\t\tnew UniformFormat(\"pad2\", UNIFORMTYPE_UINT)\n\t\t]);\n\t\tthis._writeArgsUniformBufferFormat = new UniformBufferFormat(device, [\n\t\t\tnew UniformFormat(\"drawSlot\", UNIFORMTYPE_UINT),\n\t\t\tnew UniformFormat(\"indexCount\", UNIFORMTYPE_UINT),\n\t\t\tnew UniformFormat(\"dispatchSlotBase\", UNIFORMTYPE_UINT),\n\t\t\tnew UniformFormat(\"totalSplats\", UNIFORMTYPE_UINT),\n\t\t\tnew UniformFormat(\"sortIndirectInfo\", UNIFORMTYPE_UVEC4)\n\t\t]);\n\t}\n\t_createCullPass(fisheye) {\n\t\tconst device = this.device;\n\t\tconst suffix = fisheye ? \"Fisheye\" : \"\";\n\t\tconst bindGroupFormat = new BindGroupFormat(device, [\n\t\t\tnew BindUniformBufferFormat(\"uniforms\", SHADERSTAGE_COMPUTE),\n\t\t\tnew BindStorageBufferFormat(\"intervals\", SHADERSTAGE_COMPUTE, true),\n\t\t\tnew BindStorageBufferFormat(\"countBuffer\", SHADERSTAGE_COMPUTE, false),\n\t\t\tnew BindStorageBufferFormat(\"boundsBuffer\", SHADERSTAGE_COMPUTE, true),\n\t\t\tnew BindStorageBufferFormat(\"transformsBuffer\", SHADERSTAGE_COMPUTE, true)\n\t\t]);\n\t\tconst cdefines = /* @__PURE__ */ new Map([[\"{WORKGROUP_SIZE}\", WORKGROUP_SIZE.toString()]]);\n\t\tif (fisheye) {\n\t\t\tcdefines.set(\"GSPLAT_FISHEYE\", \"\");\n\t\t}\n\t\tconst uniformBufferFormat = fisheye ? new UniformBufferFormat(device, [\n\t\t\tnew UniformFormat(\"cameraWorldPos\", UNIFORMTYPE_VEC3),\n\t\t\tnew UniformFormat(\"maxTheta\", UNIFORMTYPE_FLOAT),\n\t\t\tnew UniformFormat(\"cameraForward\", UNIFORMTYPE_VEC3),\n\t\t\tnew UniformFormat(\"numIntervals\", UNIFORMTYPE_UINT)\n\t\t]) : new UniformBufferFormat(device, [\n\t\t\tnew UniformFormat(\"frustumPlanes\", UNIFORMTYPE_VEC4, 6),\n\t\t\tnew UniformFormat(\"numIntervals\", UNIFORMTYPE_UINT)\n\t\t]);\n\t\tconst shader = new Shader(device, {\n\t\t\tname: `GSplatIntervalCull${suffix}`,\n\t\t\tshaderLanguage: SHADERLANGUAGE_WGSL,\n\t\t\tcshader: computeGsplatIntervalCullSource,\n\t\t\tcdefines,\n\t\t\tcomputeBindGroupFormat: bindGroupFormat,\n\t\t\tcomputeUniformBufferFormats: { uniforms: uniformBufferFormat }\n\t\t});\n\t\tconst compute = new Compute(device, shader, `GSplatIntervalCull${suffix}`);\n\t\treturn { compute, bindGroupFormat };\n\t}\n\t_getCullCompute(fisheye) {\n\t\tif (fisheye) {\n\t\t\tif (!this._cullComputeFisheye) {\n\t\t\t\tconst { compute, bindGroupFormat } = this._createCullPass(true);\n\t\t\t\tthis._cullComputeFisheye = compute;\n\t\t\t\tthis._cullBindGroupFormatFisheye = bindGroupFormat;\n\t\t\t}\n\t\t\treturn this._cullComputeFisheye;\n\t\t}\n\t\tif (!this._cullComputePerspective) {\n\t\t\tconst { compute, bindGroupFormat } = this._createCullPass(false);\n\t\t\tthis._cullComputePerspective = compute;\n\t\t\tthis._cullBindGroupFormatPerspective = bindGroupFormat;\n\t\t}\n\t\treturn this._cullComputePerspective;\n\t}\n\t_createScatterCompute() {\n\t\tconst device = this.device;\n\t\tthis._scatterBindGroupFormat = new BindGroupFormat(device, [\n\t\t\tnew BindUniformBufferFormat(\"uniforms\", SHADERSTAGE_COMPUTE),\n\t\t\tnew BindStorageBufferFormat(\"intervals\", SHADERSTAGE_COMPUTE, true),\n\t\t\tnew BindStorageBufferFormat(\"prefixSumBuffer\", SHADERSTAGE_COMPUTE, true),\n\t\t\tnew BindStorageBufferFormat(\"compactedOutput\", SHADERSTAGE_COMPUTE, false)\n\t\t]);\n\t\tconst cdefines = /* @__PURE__ */ new Map([\n\t\t\t[\"{WORKGROUP_SIZE}\", WORKGROUP_SIZE.toString()]\n\t\t]);\n\t\tconst shader = new Shader(device, {\n\t\t\tname: \"GSplatIntervalScatter\",\n\t\t\tshaderLanguage: SHADERLANGUAGE_WGSL,\n\t\t\tcshader: computeGsplatIntervalScatterSource,\n\t\t\tcdefines,\n\t\t\tcomputeBindGroupFormat: this._scatterBindGroupFormat,\n\t\t\tcomputeUniformBufferFormats: { uniforms: this._scatterUniformBufferFormat }\n\t\t});\n\t\tthis._scatterCompute = new Compute(device, shader, \"GSplatIntervalScatter\");\n\t}\n\t_createWriteIndirectArgsCompute() {\n\t\tconst device = this.device;\n\t\tthis._writeArgsBindGroupFormat = new BindGroupFormat(device, [\n\t\t\tnew BindStorageBufferFormat(\"prefixSumBuffer\", SHADERSTAGE_COMPUTE, true),\n\t\t\tnew BindStorageBufferFormat(\"indirectDrawArgs\", SHADERSTAGE_COMPUTE, false),\n\t\t\tnew BindStorageBufferFormat(\"numSplatsBuf\", SHADERSTAGE_COMPUTE, false),\n\t\t\tnew BindStorageBufferFormat(\"indirectDispatchArgs\", SHADERSTAGE_COMPUTE, false),\n\t\t\tnew BindStorageBufferFormat(\"sortElementCountBuf\", SHADERSTAGE_COMPUTE, false),\n\t\t\tnew BindUniformBufferFormat(\"uniforms\", SHADERSTAGE_COMPUTE)\n\t\t]);\n\t\tconst cdefines = /* @__PURE__ */ new Map([\n\t\t\t[\"{INSTANCE_SIZE}\", GSplatResourceBase.instanceSize],\n\t\t\t[\"{KEYGEN_THREADS_PER_WORKGROUP}\", 256],\n\t\t\t[\"{MAX_WORKGROUPS_PER_DIM}\", device.limits.maxComputeWorkgroupsPerDimension || 65535]\n\t\t]);\n\t\tconst shader = new Shader(device, {\n\t\t\tname: \"GSplatIntervalWriteIndirectArgs\",\n\t\t\tshaderLanguage: SHADERLANGUAGE_WGSL,\n\t\t\tcshader: computeGsplatWriteIndirectArgsSource,\n\t\t\tcdefines,\n\t\t\tcomputeBindGroupFormat: this._writeArgsBindGroupFormat,\n\t\t\tcomputeUniformBufferFormats: { uniforms: this._writeArgsUniformBufferFormat }\n\t\t});\n\t\tthis._writeIndirectArgsCompute = new Compute(device, shader, \"GSplatIntervalWriteIndirectArgs\");\n\t}\n\t_ensureCapacity(numIntervals, totalActiveSplats) {\n\t\tthis.compactedSplatIds = this._scratch.ensureCompactedSplatIds(totalActiveSplats);\n\t\tconst requiredCountSize = numIntervals + 1;\n\t\tif (requiredCountSize > this.allocatedCountBufferSize) {\n\t\t\tthis.countBuffer?.destroy();\n\t\t\tthis.allocatedCountBufferSize = requiredCountSize;\n\t\t\tthis.countBuffer = new StorageBuffer(this.device, requiredCountSize * 4);\n\t\t\tif (this.prefixSumKernel) {\n\t\t\t\tthis.prefixSumKernel.destroyPasses();\n\t\t\t}\n\t\t}\n\t}\n\tinvalidateUpload() {\n\t\tthis._uploadedVersion = -1;\n\t}\n\tuploadIntervals(worldState) {\n\t\tif (worldState.version === this._uploadedVersion) return;\n\t\tthis._uploadedVersion = worldState.version;\n\t\tconst numIntervals = worldState.totalIntervals;\n\t\tif (numIntervals === 0) return;\n\t\tif (numIntervals > this.allocatedIntervalCount) {\n\t\t\tthis.intervalsBuffer?.destroy();\n\t\t\tthis.allocatedIntervalCount = numIntervals;\n\t\t\tthis.intervalsBuffer = new StorageBuffer(this.device, numIntervals * INTERVAL_STRIDE * 4, BUFFERUSAGE_COPY_DST);\n\t\t}\n\t\tconst data2 = buildGSplatIntervalData(worldState);\n\t\tthis.intervalsBuffer.write(0, data2, 0, numIntervals * INTERVAL_STRIDE);\n\t}\n\tdispatchCompact(frustumCuller, numIntervals, totalActiveSplats, fisheyeEnabled) {\n\t\tif (numIntervals === 0) return;\n\t\tthis._ensureCapacity(numIntervals, totalActiveSplats);\n\t\tconst cullCompute = this._getCullCompute(fisheyeEnabled);\n\t\tcullCompute.setParameter(\"intervals\", this.intervalsBuffer);\n\t\tcullCompute.setParameter(\"countBuffer\", this.countBuffer);\n\t\tcullCompute.setParameter(\"boundsBuffer\", frustumCuller.boundsBuffer);\n\t\tcullCompute.setParameter(\"transformsBuffer\", frustumCuller.transformsBuffer);\n\t\tif (fisheyeEnabled) {\n\t\t\tcullCompute.setParameter(\"cameraWorldPos\", frustumCuller.fisheyeCameraPos);\n\t\t\tcullCompute.setParameter(\"maxTheta\", frustumCuller.fisheyeMaxTheta);\n\t\t\tcullCompute.setParameter(\"cameraForward\", frustumCuller.fisheyeCameraForward);\n\t\t} else {\n\t\t\tcullCompute.setParameter(\"frustumPlanes[0]\", frustumCuller.frustumPlanes);\n\t\t}\n\t\tcullCompute.setParameter(\"numIntervals\", numIntervals);\n\t\tconst cullWorkgroups = Math.ceil(numIntervals / WORKGROUP_SIZE);\n\t\tcullCompute.setupDispatch(cullWorkgroups);\n\t\tthis.device.computeDispatch([cullCompute], \"GSplatIntervalCull\");\n\t\tconst prefixCount = numIntervals + 1;\n\t\tthis.prefixSumKernel.resize(this.countBuffer, prefixCount);\n\t\tthis.prefixSumKernel.dispatch(this.device);\n\t\tconst scatterCompute = this._scatterCompute;\n\t\tscatterCompute.setParameter(\"intervals\", this.intervalsBuffer);\n\t\tscatterCompute.setParameter(\"prefixSumBuffer\", this.countBuffer);\n\t\tscatterCompute.setParameter(\"compactedOutput\", this.compactedSplatIds);\n\t\tscatterCompute.setParameter(\"numIntervals\", numIntervals);\n\t\tscatterCompute.setParameter(\"pad0\", 0);\n\t\tscatterCompute.setParameter(\"pad1\", 0);\n\t\tscatterCompute.setParameter(\"pad2\", 0);\n\t\tCompute.calcDispatchSize(numIntervals, this._scatterDispatchSize, this.device.limits.maxComputeWorkgroupsPerDimension || 65535);\n\t\tscatterCompute.setupDispatch(this._scatterDispatchSize.x, this._scatterDispatchSize.y, 1);\n\t\tthis.device.computeDispatch([scatterCompute], \"GSplatIntervalScatter\");\n\t}\n\twriteIndirectArgs(drawSlot, dispatchSlotBase, numIntervals, sortIndirectInfo) {\n\t\tconst compute = this._writeIndirectArgsCompute;\n\t\tcompute.setParameter(\"prefixSumBuffer\", this.countBuffer);\n\t\tcompute.setParameter(\"indirectDrawArgs\", this.device.indirectDrawBuffer);\n\t\tcompute.setParameter(\"numSplatsBuf\", this.numSplatsBuffer);\n\t\tcompute.setParameter(\"indirectDispatchArgs\", this.device.indirectDispatchBuffer);\n\t\tcompute.setParameter(\"sortElementCountBuf\", this.sortElementCountBuffer);\n\t\tcompute.setParameter(\"drawSlot\", drawSlot);\n\t\tcompute.setParameter(\"indexCount\", INDEX_COUNT2);\n\t\tcompute.setParameter(\"dispatchSlotBase\", dispatchSlotBase);\n\t\tcompute.setParameter(\"totalSplats\", numIntervals);\n\t\tcompute.setParameter(\"sortIndirectInfo\", sortIndirectInfo);\n\t\tcompute.setupDispatch(1);\n\t\tthis.device.computeDispatch([compute], \"GSplatIntervalWriteIndirectArgs\");\n\t}\n};\n\nvar _invProjMat = new Mat4();\nvar _shaderProjMat2 = new Mat4();\nvar _camPos = new Vec3();\nvar _camDir = new Vec3();\nvar _tmpV = new Vec3();\nvar GSplatHybridRenderer = class extends GSplatRenderer {\n\t_material;\n\tmeshInstance;\n\t_pickMaterial = null;\n\t_pickMeshInstance = null;\n\t_clipToViewZ = new Float32Array(4);\n\t_clipToViewZPick = null;\n\toriginalBlendType = BLEND_ADDITIVE;\n\t_internalDefines = /* @__PURE__ */ new Set();\n\t_lastSourceChunksKey = \"\";\n\t_sourceMaterialVersion = -1;\n\t_cacheStride = CACHE_STRIDE;\n\tgpuSorter = null;\n\tprojector = null;\n\tintervalCompaction = null;\n\t_scratch = null;\n\tindirectDrawSlot = -1;\n\tindirectDispatchSlot = -1;\n\tlastCompactedNumIntervals = 0;\n\tconstructor(device, node, cameraNode, layer, workBuffer, scratch = null) {\n\t\tsuper(device, node, cameraNode, layer, workBuffer);\n\t\tthis._scratch = scratch;\n\t\tthis._material = new ShaderMaterial({\n\t\t\tuniqueName: \"UnifiedSplatHybridMaterial\",\n\t\t\tvertexWGSL: '#include \"gsplatHybridVS\"',\n\t\t\tfragmentWGSL: '#include \"gsplatPS\"',\n\t\t\tattributes: {\n\t\t\t\tvertex_position: SEMANTIC_POSITION\n\t\t\t}\n\t\t});\n\t\tthis._material.setDefine(\"{GSPLAT_INSTANCE_SIZE}\", GSplatResourceBase.instanceSize);\n\t\tthis._material.setDefine(\"{CACHE_STRIDE}\", CACHE_STRIDE);\n\t\tthis.configureMaterial();\n\t\tthis._material.defines.forEach((value, key) => {\n\t\t\tthis._internalDefines.add(key);\n\t\t});\n\t\tthis._internalDefines.add(\"{GSPLAT_INSTANCE_SIZE}\");\n\t\tthis._internalDefines.add(\"{CACHE_STRIDE}\");\n\t\tthis._internalDefines.add(\"GSPLAT_UNIFIED_ID\");\n\t\tthis._internalDefines.add(\"PICK_CUSTOM_ID\");\n\t\tthis._internalDefines.add(\"GSPLAT_OVERDRAW\");\n\t\tthis._internalDefines.add(\"GSPLAT_NO_FOG\");\n\t\tthis._internalDefines.add(\"GSPLAT_NO_TONEMAP\");\n\t\tthis._internalDefines.add(\"GSPLAT_XR\");\n\t\tthis.meshInstance = this.createMeshInstance();\n\t}\n\tsetRenderMode(renderMode) {\n\t\tconst oldRenderMode = this.renderMode ?? 0;\n\t\tconst wasForward = (oldRenderMode & GSPLAT_FORWARD) !== 0;\n\t\tconst isForward = (renderMode & GSPLAT_FORWARD) !== 0;\n\t\tif (wasForward && !isForward) {\n\t\t\tthis.layer.removeMeshInstances([this.meshInstance], true);\n\t\t}\n\t\tif (!wasForward && isForward) {\n\t\t\tthis.layer.addMeshInstances([this.meshInstance], true);\n\t\t}\n\t\tsuper.setRenderMode(renderMode);\n\t}\n\tdestroy() {\n\t\tif (this.renderMode && this.renderMode & GSPLAT_FORWARD) {\n\t\t\tthis.layer.removeMeshInstances([this.meshInstance], true);\n\t\t}\n\t\tthis.gpuSorter?.destroy();\n\t\tthis.gpuSorter = null;\n\t\tthis.projector?.destroy();\n\t\tthis.projector = null;\n\t\tthis.intervalCompaction?.destroy();\n\t\tthis.intervalCompaction = null;\n\t\tthis._material.destroy();\n\t\tthis._pickMaterial?.destroy();\n\t\tthis.meshInstance.destroy();\n\t\tthis._pickMeshInstance?.destroy();\n\t\tsuper.destroy();\n\t}\n\tget material() {\n\t\treturn this._material;\n\t}\n\tget usesGpuSort() {\n\t\treturn true;\n\t}\n\tget requiresBounds() {\n\t\treturn true;\n\t}\n\tonWorkBufferFormatChanged() {\n\t\tthis.configureMaterial();\n\t}\n\tconfigureMaterial() {\n\t\tthis._material.setDefine(\"SH_BANDS\", \"0\");\n\t\tthis._material.setDefine(\"GSPLAT_INDIRECT_DRAW\", true);\n\t\tthis._updateIdDefines(this._material);\n\t\tconst dither = false;\n\t\tthis._material.setDefine(`DITHER_${dither ? \"BLUENOISE\" : \"NONE\"}`, \"\");\n\t\tthis._material.cull = CULLFACE_NONE;\n\t\tthis._material.blendType = dither ? BLEND_NONE : BLEND_PREMULTIPLIED;\n\t\tthis._material.depthWrite = !!dither;\n\t\tthis._material.update();\n\t}\n\tsetStereo(enabled) {\n\t\tif (this._material.getDefine(\"GSPLAT_XR\") !== enabled) {\n\t\t\tthis._material.setDefine(\"GSPLAT_XR\", enabled);\n\t\t\tthis._material.update();\n\t\t}\n\t}\n\tupdate(count, textureSize) {\n\t\tif (this.meshInstance.instancingCount <= 0) {\n\t\t\tthis.meshInstance.instancingCount = 1;\n\t\t}\n\t\tthis.meshInstance.visible = count > 0;\n\t}\n\tinvalidateCullUpload() {\n\t\tthis.intervalCompaction?.invalidateUpload();\n\t}\n\t_ensureGpuPipeline() {\n\t\tif (!this.gpuSorter) this.gpuSorter = new ComputeRadixSort(this.device, { indirect: true });\n\t\tif (!this.projector) this.projector = new GSplatProjector(this.device);\n\t\tif (!this.intervalCompaction) this.intervalCompaction = new GSplatIntervalCompaction(this.device, this._scratch);\n\t}\n\tprepareRenderView(world, worldState, params) {\n\t\tconst cameraNode = params.cameraNode;\n\t\tconst cam = cameraNode.camera;\n\t\tconst sceneCam = cam.camera;\n\t\tconst rt = cam.renderTarget;\n\t\tconst rect = cam.rect;\n\t\tconst xrView = sceneCam.xrActive ? sceneCam.xrViews[0] ?? null : null;\n\t\tconst viewportWidth = Math.floor((xrView ? xrView.viewport.z : rt ? rt.width : this.device.width) * rect.z);\n\t\tconst viewportHeight = Math.floor((xrView ? xrView.viewport.w : rt ? rt.height : this.device.height) * rect.w);\n\t\tconst xrViewCount = sceneCam.xrActive ? sceneCam.xrViews.length : 0;\n\t\tif (xrViewCount > 2) {\n\t\t}\n\t\tconst isStereo = xrViewCount === 2;\n\t\tthis.setStereo(isStereo);\n\t\tconst sortedIndices = this.sortAndProjectForCamera(\n\t\t\tworld,\n\t\t\tworldState,\n\t\t\tcameraNode,\n\t\t\tviewportWidth,\n\t\t\tviewportHeight,\n\t\t\tMath.max(ALPHA_VISIBILITY_THRESHOLD, params.alphaClipForward),\n\t\t\tfalse,\n\t\t\tisStereo,\n\t\t\tparams\n\t\t);\n\t\tif (!sortedIndices) return false;\n\t\tthis.setHybridSortedRendering(\n\t\t\tthis.indirectDrawSlot,\n\t\t\tsortedIndices,\n\t\t\tthis.projector.projCache,\n\t\t\tthis.intervalCompaction.numSplatsBuffer\n\t\t);\n\t\treturn true;\n\t}\n\tpreparePickingView(world, worldState, pickParams) {\n\t\tconst pickMode = !!world.workBuffer.format.getStream(\"pcId\");\n\t\tconst sortedIndices = this.sortAndProjectForCamera(\n\t\t\tworld,\n\t\t\tworldState,\n\t\t\tpickParams.cameraNode,\n\t\t\tpickParams.width,\n\t\t\tpickParams.height,\n\t\t\tMath.max(ALPHA_VISIBILITY_THRESHOLD, pickParams.alphaClip),\n\t\t\tpickMode,\n\t\t\tfalse,\n\t\t\tpickParams\n\t\t);\n\t\tif (!sortedIndices) return null;\n\t\treturn this.prepareForPicking(\n\t\t\tthis.indirectDrawSlot,\n\t\t\tsortedIndices,\n\t\t\tthis.projector.projCache,\n\t\t\tthis.intervalCompaction.numSplatsBuffer,\n\t\t\tpickParams.alphaClip,\n\t\t\tpickParams.alphaClipForward,\n\t\t\tpickParams.cameraNode\n\t\t);\n\t}\n\tsortAndProjectForCamera(world, worldState, cameraNode, viewportWidth, viewportHeight, alphaClip, pickMode, isStereo, params) {\n\t\tconst elementCount = worldState.totalActiveSplats;\n\t\tif (elementCount === 0) return null;\n\t\tthis._ensureGpuPipeline();\n\t\tconst gpuSorter = this.gpuSorter;\n\t\tconst projector = this.projector;\n\t\tthis.intervalCompaction.uploadIntervals(worldState);\n\t\tif (world.hasBounds) {\n\t\t\tconst state = world.getState(world.currentVersion);\n\t\t\tif (state) {\n\t\t\t\tthis._runFrustumCulling(world, state, cameraNode, params);\n\t\t\t}\n\t\t}\n\t\tconst fisheyeProj = this.fisheyeProj;\n\t\tconst numIntervals = worldState.totalIntervals;\n\t\tconst totalActiveSplats = worldState.totalActiveSplats;\n\t\tthis.intervalCompaction.dispatchCompact(world.workBuffer.frustumCuller, numIntervals, totalActiveSplats, fisheyeProj.enabled);\n\t\tthis.allocateAndWriteIntervalIndirectArgs(numIntervals);\n\t\tconst ic = this.intervalCompaction;\n\t\tconst compactedSplatIds = ic.compactedSplatIds;\n\t\tconst numBits = Math.max(10, Math.min(20, Math.round(Math.log2(elementCount / 4))));\n\t\tconst radixBits = gpuSorter.radixBits;\n\t\tconst roundedNumBits = Math.ceil(numBits / radixBits) * radixBits;\n\t\tconst { minDist, maxDist } = this.computeDistanceRange(worldState, cameraNode, params.radialSorting);\n\t\tconst sortIndirectInfo = gpuSorter.prepareIndirect();\n\t\tprojector.dispatch({\n\t\t\tworkBuffer: world.workBuffer,\n\t\t\tcameraNode,\n\t\t\tcompactedSplatIds,\n\t\t\tsortElementCountBuffer: ic.sortElementCountBuffer,\n\t\t\ttotalCapacity: elementCount,\n\t\t\tradialSort: params.radialSorting,\n\t\t\tnumBits: roundedNumBits,\n\t\t\tminDist,\n\t\t\tmaxDist,\n\t\t\talphaClip,\n\t\t\tminPixelSize: params.minPixelSize * 0.5,\n\t\t\tminContribution: params.minContribution,\n\t\t\tfoveationStrength: params.foveationStrength,\n\t\t\tfoveationCenter: params.foveationCenter,\n\t\t\tviewportWidth,\n\t\t\tviewportHeight,\n\t\t\tpickMode,\n\t\t\tfisheyeProj,\n\t\t\tantiAlias: params.antiAlias,\n\t\t\tisStereo,\n\t\t\tmaterial: params.material,\n\t\t\tuserCacheWords: params.varyings.words\n\t\t});\n\t\tprojector.writeIndirectArgs(\n\t\t\tthis.indirectDrawSlot,\n\t\t\tthis.indirectDispatchSlot + 1,\n\t\t\tic.numSplatsBuffer,\n\t\t\tic.sortElementCountBuffer,\n\t\t\tsortIndirectInfo\n\t\t);\n\t\tif (pickMode) {\n\t\t\tthis.device.submit();\n\t\t}\n\t\treturn gpuSorter.sortIndirect(\n\t\t\tprojector.sortKeys,\n\t\t\telementCount,\n\t\t\troundedNumBits,\n\t\t\tthis.indirectDispatchSlot + 1,\n\t\t\tic.sortElementCountBuffer,\n\t\t\tvoid 0,\n\t\t\tfalse,\n\t\t\ttrue\n\t\t\t// destructiveKeys: projector overwrites sortKeys each frame before the sort\n\t\t);\n\t}\n\tallocateAndWriteIntervalIndirectArgs(numIntervals) {\n\t\tconst gpuSorter = this.gpuSorter;\n\t\tconst sortInfo = gpuSorter.prepareIndirect();\n\t\tconst sortSlotCount = sortInfo[0];\n\t\tthis.indirectDrawSlot = this.device.getIndirectDrawSlot(1);\n\t\tthis.indirectDispatchSlot = this.device.getIndirectDispatchSlot(1 + sortSlotCount);\n\t\tconst ic = this.intervalCompaction;\n\t\tic.writeIndirectArgs(this.indirectDrawSlot, this.indirectDispatchSlot, numIntervals, sortInfo);\n\t\tthis.lastCompactedNumIntervals = numIntervals;\n\t}\n\t_runFrustumCulling(world, worldState, cameraNode, params) {\n\t\tworld.workBuffer.frustumCuller.updateTransformsData(worldState.boundsGroups);\n\t\tconst cam = cameraNode.camera;\n\t\tconst sceneCamera = cam.camera;\n\t\tconst xrViews = sceneCamera.xrViews;\n\t\tif (xrViews?.length) {\n\t\t\tsceneCamera.updateViewTransforms();\n\t\t\tsceneCamera.updateXrFrustum();\n\t\t\tworld.workBuffer.frustumCuller.setFrustumPlanes(sceneCamera.frustum);\n\t\t} else {\n\t\t\tworld.workBuffer.frustumCuller.computeFrustumPlanes(cam.projectionMatrix, cam.viewMatrix);\n\t\t}\n\t\tconst fp = this.fisheyeProj;\n\t\tfp.update(this.resolveFisheye(params.fisheye), cam.fov, cam.projectionMatrix);\n\t\tif (fp.enabled) {\n\t\t\tworld.workBuffer.frustumCuller.setFisheyeData(\n\t\t\t\tcameraNode.getPosition(),\n\t\t\t\tcameraNode.forward,\n\t\t\t\tfp.maxTheta\n\t\t\t);\n\t\t}\n\t}\n\tcomputeDistanceRange(worldState, cameraNode, radialSort) {\n\t\tconst cameraMat = cameraNode.getWorldTransform();\n\t\tcameraMat.getTranslation(_camPos);\n\t\tcameraMat.getZ(_camDir).normalize();\n\t\tlet minDist = radialSort ? 0 : Infinity;\n\t\tlet maxDist = radialSort ? 0 : -Infinity;\n\t\tfor (const splat of worldState.splats) {\n\t\t\tconst modelMat = splat.node.getWorldTransform();\n\t\t\tconst aabbMin = splat.aabb.getMin();\n\t\t\tconst aabbMax = splat.aabb.getMax();\n\t\t\tfor (let i2 = 0; i2 < 8; i2++) {\n\t\t\t\t_tmpV.x = i2 & 1 ? aabbMax.x : aabbMin.x;\n\t\t\t\t_tmpV.y = i2 & 2 ? aabbMax.y : aabbMin.y;\n\t\t\t\t_tmpV.z = i2 & 4 ? aabbMax.z : aabbMin.z;\n\t\t\t\tmodelMat.transformPoint(_tmpV, _tmpV);\n\t\t\t\tif (radialSort) {\n\t\t\t\t\tconst dist = _tmpV.distance(_camPos);\n\t\t\t\t\tif (dist > maxDist) maxDist = dist;\n\t\t\t\t} else {\n\t\t\t\t\tconst dist = _tmpV.sub(_camPos).dot(_camDir);\n\t\t\t\t\tif (dist < minDist) minDist = dist;\n\t\t\t\t\tif (dist > maxDist) maxDist = dist;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (maxDist === 0 || maxDist === -Infinity) {\n\t\t\treturn { minDist: 0, maxDist: 1 };\n\t\t}\n\t\treturn { minDist, maxDist };\n\t}\n\tsetHybridSortedRendering(drawSlot, sortedIndices, projCache, numSplatsBuffer) {\n\t\tthis.meshInstance.setIndirect(null, drawSlot, 1);\n\t\tthis._material.setParameter(\"sortedIndices\", sortedIndices);\n\t\tthis._material.setParameter(\"projCache\", projCache);\n\t\tthis._material.setParameter(\"numSplatsStorage\", numSplatsBuffer);\n\t\tthis._computeClipToViewZ(this.cameraNode, this._clipToViewZ);\n\t\tthis._material.setParameter(\"clipToViewZ\", this._clipToViewZ);\n\t\tthis.meshInstance.visible = true;\n\t\tif (this.meshInstance.instancingCount <= 0) {\n\t\t\tthis.meshInstance.instancingCount = 1;\n\t\t}\n\t}\n\tprepareForPicking(drawSlot, sortedIndices, projCache, numSplatsBuffer, alphaClip, alphaClipForward, cameraNode) {\n\t\tif (!this._pickMaterial) {\n\t\t\tthis._pickMaterial = new ShaderMaterial({\n\t\t\t\tuniqueName: \"UnifiedSplatHybridPickMaterial\",\n\t\t\t\tvertexWGSL: '#include \"gsplatHybridVS\"',\n\t\t\t\tfragmentWGSL: '#include \"gsplatPS\"',\n\t\t\t\tattributes: {\n\t\t\t\t\tvertex_position: SEMANTIC_POSITION\n\t\t\t\t}\n\t\t\t});\n\t\t\tthis._pickMaterial.setDefine(\"{GSPLAT_INSTANCE_SIZE}\", GSplatResourceBase.instanceSize);\n\t\t\tthis._pickMaterial.setDefine(\"{CACHE_STRIDE}\", this._cacheStride);\n\t\t\tthis._pickMaterial.setDefine(\"SH_BANDS\", \"0\");\n\t\t\tthis._pickMaterial.setDefine(\"GSPLAT_INDIRECT_DRAW\", true);\n\t\t\tthis._pickMaterial.setDefine(\"DITHER_NONE\", \"\");\n\t\t\tthis._updateIdDefines(this._pickMaterial);\n\t\t\tthis._pickMaterial.cull = CULLFACE_NONE;\n\t\t\tthis._pickMaterial.blendType = BLEND_NONE;\n\t\t\tthis._pickMaterial.depthWrite = false;\n\t\t\tthis._pickMaterial.update();\n\t\t\tconst mesh = GSplatResourceBase.createMesh(this.device);\n\t\t\tthis._pickMeshInstance = new MeshInstance(mesh, this._pickMaterial);\n\t\t\tthis._pickMeshInstance.node = this.node;\n\t\t\tthis._pickMeshInstance.setInstancing(true, true);\n\t\t\tthis._pickMeshInstance.instancingCount = 1;\n\t\t} else {\n\t\t\tif (this._updateIdDefines(this._pickMaterial)) {\n\t\t\t\tthis._pickMaterial.update();\n\t\t\t}\n\t\t}\n\t\tconst pickMaterial = this._pickMaterial;\n\t\tconst pickMeshInstance = this._pickMeshInstance;\n\t\tpickMeshInstance.setIndirect(null, drawSlot, 1);\n\t\tpickMaterial.setParameter(\"sortedIndices\", sortedIndices);\n\t\tpickMaterial.setParameter(\"projCache\", projCache);\n\t\tpickMaterial.setParameter(\"numSplatsStorage\", numSplatsBuffer);\n\t\tpickMaterial.setParameter(\"alphaClip\", alphaClip);\n\t\tpickMaterial.setParameter(\"alphaClipForward\", alphaClipForward);\n\t\tthis._clipToViewZPick ?? (this._clipToViewZPick = new Float32Array(4));\n\t\tthis._computeClipToViewZ(cameraNode, this._clipToViewZPick);\n\t\tpickMaterial.setParameter(\"clipToViewZ\", this._clipToViewZPick);\n\t\treturn pickMeshInstance;\n\t}\n\t_computeClipToViewZ(cameraNode, dst) {\n\t\tconst cam = cameraNode.camera.camera;\n\t\tif (this.fisheyeProj.enabled) {\n\t\t\tconst near = cam.nearClip;\n\t\t\tconst far = cam.farClip;\n\t\t\tdst[0] = 0;\n\t\t\tdst[1] = 0;\n\t\t\tdst[2] = far - near;\n\t\t\tdst[3] = near;\n\t\t\treturn;\n\t\t}\n\t\t_invProjMat.copy(Camera.applyShaderProjectionTransform(cam.projectionMatrix, _shaderProjMat2, false, this.device.isWebGPU)).invert();\n\t\tconst d = _invProjMat.data;\n\t\tdst[0] = -d[2];\n\t\tdst[1] = -d[6];\n\t\tdst[2] = -d[10];\n\t\tdst[3] = -d[14];\n\t}\n\tsetCpuSortedRendering() {\n\t\tthis.meshInstance.setIndirect(null, -1);\n\t\tthis.meshInstance.visible = false;\n\t}\n\tsetOrderData() {\n\t}\n\tframeUpdate(params) {\n\t\tthis._material.sceneTexturesWrite = params.sceneDepthWrite;\n\t\tthis._material.setParameter(\"alphaClip\", params.alphaClip);\n\t\tthis._material.setParameter(\"alphaClipForward\", params.alphaClipForward);\n\t\tthis._pickMaterial?.setParameter(\"alphaClip\", params.alphaClip);\n\t\tthis._pickMaterial?.setParameter(\"alphaClipForward\", params.alphaClipForward);\n\t\tif (params.colorRamp) {\n\t\t\tthis._material.setParameter(\"colorRampIntensity\", params.colorRampIntensity);\n\t\t}\n\t\tconst noFog = !params.useFog;\n\t\tconst noTonemap = !params.useTonemap;\n\t\tif (noFog !== this._lastNoFog || noTonemap !== this._lastNoTonemap) {\n\t\t\tthis._lastNoFog = noFog;\n\t\t\tthis._lastNoTonemap = noTonemap;\n\t\t\tthis._material.setDefine(\"GSPLAT_NO_FOG\", noFog);\n\t\t\tthis._material.setDefine(\"GSPLAT_NO_TONEMAP\", noTonemap);\n\t\t\tthis._material.update();\n\t\t}\n\t\tconst cacheStride = CACHE_STRIDE + params.varyings.words;\n\t\tif (cacheStride !== this._cacheStride) {\n\t\t\tthis._cacheStride = cacheStride;\n\t\t\tthis._material.setDefine(\"{CACHE_STRIDE}\", cacheStride);\n\t\t\tthis._material.update();\n\t\t\tif (this._pickMaterial) {\n\t\t\t\tthis._pickMaterial.setDefine(\"{CACHE_STRIDE}\", cacheStride);\n\t\t\t\tthis._pickMaterial.update();\n\t\t\t}\n\t\t}\n\t\tconst sourceMaterialVersion = params.material.updateVersion;\n\t\tif (this._sourceMaterialVersion !== sourceMaterialVersion) {\n\t\t\tthis.copyMaterialSettings(params.material);\n\t\t\tthis._sourceMaterialVersion = sourceMaterialVersion;\n\t\t}\n\t}\n\tcopyMaterialSettings(sourceMaterial) {\n\t\tconst keysToDelete = [];\n\t\tthis._material.defines.forEach((value, key) => {\n\t\t\tif (!this._internalDefines.has(key) && !sourceMaterial.defines.has(key)) {\n\t\t\t\tkeysToDelete.push(key);\n\t\t\t}\n\t\t});\n\t\tkeysToDelete.forEach((key) => this._material.setDefine(key, void 0));\n\t\tsourceMaterial.defines.forEach((value, key) => {\n\t\t\tthis._material.setDefine(key, value);\n\t\t});\n\t\tconst srcParams = sourceMaterial.parameters;\n\t\tfor (const paramName in srcParams) {\n\t\t\tif (srcParams.hasOwnProperty(paramName)) {\n\t\t\t\tthis._material.setParameter(paramName, srcParams[paramName].data);\n\t\t\t}\n\t\t}\n\t\tif (sourceMaterial.hasShaderChunks) {\n\t\t\tconst sourceChunksKey = sourceMaterial.shaderChunks.key;\n\t\t\tif (sourceChunksKey !== this._lastSourceChunksKey) {\n\t\t\t\tthis._material.shaderChunks.copy(sourceMaterial.shaderChunks);\n\t\t\t\tthis._lastSourceChunksKey = sourceChunksKey;\n\t\t\t}\n\t\t}\n\t\tthis._material.update();\n\t}\n\t_updateIdDefines(material) {\n\t\tconst hasPcId = !!this.workBuffer.format.getStream(\"pcId\");\n\t\tconst changed = material.getDefine(\"GSPLAT_UNIFIED_ID\") !== hasPcId || material.getDefine(\"PICK_CUSTOM_ID\") !== hasPcId;\n\t\tmaterial.setDefine(\"GSPLAT_UNIFIED_ID\", hasPcId);\n\t\tmaterial.setDefine(\"PICK_CUSTOM_ID\", hasPcId);\n\t\treturn changed;\n\t}\n\tupdateOverdrawMode(params) {\n\t\tconst overdrawEnabled = !!params.colorRamp;\n\t\tconst wasOverdrawEnabled = this._material.getDefine(\"GSPLAT_OVERDRAW\");\n\t\tif (overdrawEnabled) {\n\t\t\tthis._material.setParameter(\"colorRamp\", params.colorRamp);\n\t\t\tthis._material.setParameter(\"colorRampIntensity\", params.colorRampIntensity);\n\t\t}\n\t\tif (overdrawEnabled !== wasOverdrawEnabled) {\n\t\t\tthis._material.setDefine(\"GSPLAT_OVERDRAW\", overdrawEnabled);\n\t\t\tif (overdrawEnabled) {\n\t\t\t\tthis.originalBlendType = this._material.blendType;\n\t\t\t\tthis._material.blendType = BLEND_ADDITIVE;\n\t\t\t} else {\n\t\t\t\tthis._material.blendType = this.originalBlendType;\n\t\t\t}\n\t\t\tthis._material.update();\n\t\t}\n\t}\n\tcreateMeshInstance() {\n\t\tconst mesh = GSplatResourceBase.createMesh(this.device);\n\t\tconst meshInstance = new MeshInstance(mesh, this._material);\n\t\tmeshInstance.node = this.node;\n\t\tmeshInstance.setInstancing(true, true);\n\t\tmeshInstance.instancingCount = 0;\n\t\tmeshInstance.pick = false;\n\t\tconst thisCamera = this.cameraNode.camera;\n\t\tmeshInstance.isVisibleFunc = (camera) => {\n\t\t\tconst renderMode = this.renderMode ?? 0;\n\t\t\tif (thisCamera.camera === camera && renderMode & GSPLAT_FORWARD) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif (camera.node?.name === SHADOWCAMERA_NAME) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\t\treturn meshInstance;\n\t}\n};\n\nvar GSplatHybridRendererScratch = class {\n\tdevice;\n\tcompactedSplatIds = null;\n\t_allocatedCompacted = 0;\n\tconstructor(device) {\n\t\tthis.device = device;\n\t}\n\tensureCompactedSplatIds(capacity) {\n\t\tif (capacity > this._allocatedCompacted) {\n\t\t\tthis.compactedSplatIds?.destroy();\n\t\t\tthis._allocatedCompacted = capacity;\n\t\t\tthis.compactedSplatIds = new StorageBuffer(this.device, capacity * 4, BUFFERUSAGE_COPY_SRC);\n\t\t}\n\t\treturn this.compactedSplatIds;\n\t}\n\tdestroy() {\n\t\tthis.compactedSplatIds?.destroy();\n\t\tthis.compactedSplatIds = null;\n\t\tthis._allocatedCompacted = 0;\n\t}\n};\n\nvar computeGsplatShadowCullSource = `\nconst SPLAT_FRUSTUM_SIGMA: f32 = 3.0;\nstruct CullUniforms {\n\tfrustumPlanes: array<vec4f, 6>,\n\tnumIntervals: u32,\n\tsplatTextureSize: u32,\n\talphaClip: f32,\n\tworldSizeThreshold: f32\n};\n@group(0) @binding(0) var<uniform> uniforms: CullUniforms;\n@group(0) @binding(1) var<storage, read> compactedSplatIds: array<u32>;\n@group(0) @binding(2) var<storage, read> candidateCountBuffer: array<u32>;\n@group(0) @binding(3) var<storage, read_write> outputIndices: array<u32>;\n@group(0) @binding(4) var<storage, read_write> globalCount: array<atomic<u32>>;\n#include \"gsplatComputeSplatCS\"\n#include \"gsplatFormatDeclCS\"\n#include \"gsplatFormatReadCS\"\n#include \"gsplatHelpersVS\"\n#include \"gsplatModifyVS\"\nfn fineCull(splatId: u32) -> bool {\n\tsetSplat(splatId);\n\tlet originalCenter = getCenter();\n\tvar center = originalCenter;\n\tmodifySplatCenter(&center);\n\tlet opacity = getOpacity();\n\tif (opacity <= uniforms.alphaClip) {\n\t\treturn false;\n\t}\n\tvar rotation: vec4f = getRotation().yzwx;\n\tvar scale: vec3f = getScale();\n\tmodifySplatRotationScale(originalCenter, center, &rotation, &scale);\n\tlet maxScale = max(scale.x, max(scale.y, scale.z));\n\tif (maxScale < uniforms.worldSizeThreshold) {\n\t\treturn false;\n\t}\n\tlet splatRadius = maxScale * SPLAT_FRUSTUM_SIGMA;\n\tfor (var p = 0; p < 6; p++) {\n\t\tlet plane = uniforms.frustumPlanes[p];\n\t\tif (dot(plane.xyz, center) + plane.w <= -splatRadius) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n}\nvar<workgroup> wgCount: atomic<u32>;\nvar<workgroup> wgBase: u32;\n@compute @workgroup_size({WORKGROUP_SIZE})\nfn main(\n\t@builtin(global_invocation_id) gid: vec3u,\n\t@builtin(num_workgroups) numWorkgroups: vec3u,\n\t@builtin(local_invocation_index) localIdx: u32\n) {\n\tif (localIdx == 0u) {\n\t\tatomicStore(&wgCount, 0u);\n\t}\n\tworkgroupBarrier();\n\tlet threadIdx = gid.y * (numWorkgroups.x * {WORKGROUP_SIZE}u) + gid.x;\n\tlet candidateCount = candidateCountBuffer[uniforms.numIntervals];\n\tvar valid = false;\n\tvar splatId = 0u;\n\tif (threadIdx < candidateCount) {\n\t\tsplatId = compactedSplatIds[threadIdx];\n\t\tvalid = fineCull(splatId);\n\t}\n\tvar localSlot = 0u;\n\tif (valid) {\n\t\tlocalSlot = atomicAdd(&wgCount, 1u);\n\t}\n\tworkgroupBarrier();\n\tif (localIdx == 0u) {\n\t\twgBase = atomicAdd(&globalCount[0], atomicLoad(&wgCount));\n\t}\n\tworkgroupBarrier();\n\tif (valid) {\n\t\toutputIndices[wgBase + localSlot] = splatId;\n\t}\n}\n`;\n\nvar computeGsplatShadowIndirectArgsSource = `\n${indirect_core_default}\n@group(0) @binding(0) var<storage, read> countBuffer: array<u32>;\n@group(0) @binding(1) var<storage, read_write> indirectDrawArgs: array<DrawIndexedIndirectArgs>;\nstruct ShadowArgsUniforms {\n\tdrawSlot: u32,\n\tindexCount: u32,\n\tpad0: u32,\n\tpad1: u32\n};\n@group(0) @binding(2) var<uniform> uniforms: ShadowArgsUniforms;\n@compute @workgroup_size(1)\nfn main() {\n\tlet count = countBuffer[0];\n\tlet instanceCount = (count + {INSTANCE_SIZE}u - 1u) / {INSTANCE_SIZE}u;\n\tindirectDrawArgs[uniforms.drawSlot] = DrawIndexedIndirectArgs(\n\t\tuniforms.indexCount,\n\t\tinstanceCount,\n\t\t0u,\n\t\t0,\n\t\t0u\n\t);\n}\n`;\n\nvar WORKGROUP_SIZE2 = 256;\nvar INDEX_COUNT3 = 6 * GSplatResourceBase.instanceSize;\nvar GSplatShadowRenderer = class {\n\tdevice;\n\tnode;\n\tcameraNode;\n\tlayer;\n\tworld;\n\tentries = /* @__PURE__ */ new Map();\n\t_desiredLights = /* @__PURE__ */ new Set();\n\t_compaction = null;\n\t_cullDispatchSize = new Vec2(1, 1);\n\t_frustumPlanes = new Float32Array(24);\n\t_userChunksKey = \"\";\n\t_userModifyWgsl = null;\n\t// The cull/args shaders are shared, but each light entry gets its OWN Compute instances\n\t// (created in _createEntry). A Compute owns a persistent uniform buffer, so a single shared\n\t// Compute dispatched once per light per frame would have all dispatches read the last-written\n\t// uniforms (frustum planes / draw slot) — making all but one light's shadow draw empty.\n\t_cullShader = null;\n\t_cullBindGroupFormat = null;\n\t_cullFormatVersion = -1;\n\t_cullBuiltChunksKey = null;\n\t_cullShaderGen = 0;\n\t_argsShader = null;\n\t_argsBindGroupFormat = null;\n\tconstructor(device, node, cameraNode, layer, world, scratch = null) {\n\t\tthis.device = device;\n\t\tthis.node = node;\n\t\tthis.cameraNode = cameraNode;\n\t\tthis.layer = layer;\n\t\tthis.world = world;\n\t\tthis._compaction = new GSplatIntervalCompaction(device, scratch);\n\t\tthis._createArgsShader();\n\t}\n\tdestroy() {\n\t\tthis.entries.forEach((entry) => this._destroyEntry(entry));\n\t\tthis.entries.clear();\n\t\tthis._compaction?.destroy();\n\t\tthis._compaction = null;\n\t\tthis._cullShader?.destroy();\n\t\tthis._cullBindGroupFormat?.destroy();\n\t\tthis._argsShader?.destroy();\n\t\tthis._argsBindGroupFormat?.destroy();\n\t\tthis._cullShader = null;\n\t\tthis._argsShader = null;\n\t}\n\t_ensureCullShader() {\n\t\tconst wbFormat = this.world.workBuffer.format;\n\t\tconst version2 = wbFormat.extraStreamsVersion;\n\t\tif (!this._cullShader || version2 !== this._cullFormatVersion || this._userChunksKey !== this._cullBuiltChunksKey) {\n\t\t\tthis._cullFormatVersion = version2;\n\t\t\tthis._cullBuiltChunksKey = this._userChunksKey;\n\t\t\tthis._buildCullShader();\n\t\t}\n\t}\n\t_buildCullShader() {\n\t\tconst device = this.device;\n\t\tconst wbFormat = this.world.workBuffer.format;\n\t\tconst fixedBindings = [\n\t\t\tnew BindUniformBufferFormat(\"uniforms\", SHADERSTAGE_COMPUTE),\n\t\t\t// pass-1 outputs (read): the shared candidate list + its count at [numIntervals]\n\t\t\tnew BindStorageBufferFormat(\"compactedSplatIds\", SHADERSTAGE_COMPUTE, true),\n\t\t\tnew BindStorageBufferFormat(\"candidateCountBuffer\", SHADERSTAGE_COMPUTE, true),\n\t\t\t// per-light outputs (read/write): the final visible list + atomic count\n\t\t\tnew BindStorageBufferFormat(\"outputIndices\", SHADERSTAGE_COMPUTE, false),\n\t\t\tnew BindStorageBufferFormat(\"globalCount\", SHADERSTAGE_COMPUTE, false)\n\t\t];\n\t\tthis._cullBindGroupFormat?.destroy();\n\t\tthis._cullBindGroupFormat = new BindGroupFormat(device, [\n\t\t\t...fixedBindings,\n\t\t\t...wbFormat.getComputeBindFormats()\n\t\t]);\n\t\tconst uniformBufferFormat = new UniformBufferFormat(device, [\n\t\t\tnew UniformFormat(\"frustumPlanes\", UNIFORMTYPE_VEC4, 6),\n\t\t\tnew UniformFormat(\"numIntervals\", UNIFORMTYPE_UINT),\n\t\t\tnew UniformFormat(\"splatTextureSize\", UNIFORMTYPE_UINT),\n\t\t\tnew UniformFormat(\"alphaClip\", UNIFORMTYPE_FLOAT),\n\t\t\tnew UniformFormat(\"worldSizeThreshold\", UNIFORMTYPE_FLOAT)\n\t\t]);\n\t\tconst cincludes = /* @__PURE__ */ new Map();\n\t\tcincludes.set(\"gsplatComputeSplatCS\", gsplatComputeSplat_default);\n\t\tcincludes.set(\"gsplatFormatDeclCS\", wbFormat.getComputeInputDeclarations(fixedBindings.length));\n\t\tcincludes.set(\"gsplatFormatReadCS\", wbFormat.getReadCode());\n\t\tcincludes.set(\"gsplatHelpersVS\", gsplatHelpers_default);\n\t\tcincludes.set(\"gsplatModifyVS\", this._userModifyWgsl ?? gsplatModify_default);\n\t\tconst cdefines = /* @__PURE__ */ new Map([[\"{WORKGROUP_SIZE}\", WORKGROUP_SIZE2.toString()]]);\n\t\tconst colorStream = wbFormat.getStream(\"dataColor\");\n\t\tif (colorStream && colorStream.format !== PIXELFORMAT_RGBA16U) {\n\t\t\tcdefines.set(\"GSPLAT_COLOR_FLOAT\", \"\");\n\t\t}\n\t\tthis._cullShader?.destroy();\n\t\tthis._cullShader = new Shader(device, {\n\t\t\tname: \"GSplatShadowCull\",\n\t\t\tshaderLanguage: SHADERLANGUAGE_WGSL,\n\t\t\tcshader: computeGsplatShadowCullSource,\n\t\t\tcincludes,\n\t\t\tcdefines,\n\t\t\tcomputeBindGroupFormat: this._cullBindGroupFormat,\n\t\t\tcomputeUniformBufferFormats: { uniforms: uniformBufferFormat }\n\t\t});\n\t\tthis._cullShaderGen++;\n\t}\n\t_createArgsShader() {\n\t\tconst device = this.device;\n\t\tthis._argsBindGroupFormat = new BindGroupFormat(device, [\n\t\t\tnew BindStorageBufferFormat(\"countBuffer\", SHADERSTAGE_COMPUTE, true),\n\t\t\tnew BindStorageBufferFormat(\"indirectDrawArgs\", SHADERSTAGE_COMPUTE, false),\n\t\t\tnew BindUniformBufferFormat(\"uniforms\", SHADERSTAGE_COMPUTE)\n\t\t]);\n\t\tconst uniformBufferFormat = new UniformBufferFormat(device, [\n\t\t\tnew UniformFormat(\"drawSlot\", UNIFORMTYPE_UINT),\n\t\t\tnew UniformFormat(\"indexCount\", UNIFORMTYPE_UINT),\n\t\t\tnew UniformFormat(\"pad0\", UNIFORMTYPE_UINT),\n\t\t\tnew UniformFormat(\"pad1\", UNIFORMTYPE_UINT)\n\t\t]);\n\t\tthis._argsShader = new Shader(device, {\n\t\t\tname: \"GSplatShadowIndirectArgs\",\n\t\t\tshaderLanguage: SHADERLANGUAGE_WGSL,\n\t\t\tcshader: computeGsplatShadowIndirectArgsSource,\n\t\t\tcdefines: /* @__PURE__ */ new Map([[\"{INSTANCE_SIZE}\", GSplatResourceBase.instanceSize.toString()]]),\n\t\t\tcomputeBindGroupFormat: this._argsBindGroupFormat,\n\t\t\tcomputeUniformBufferFormats: { uniforms: uniformBufferFormat }\n\t\t});\n\t}\n\tsetDataSource(workBuffer) {\n\t\tthis._compaction?.invalidateUpload();\n\t\tthis._cullFormatVersion = -1;\n\t\tthis.entries.forEach((entry) => {\n\t\t\tthis._configureMaterialWorkBuffer(entry.material);\n\t\t\tentry.material.update();\n\t\t});\n\t}\n\tsetCastersAabb(aabb3) {\n\t\tif (!aabb3) return;\n\t\tthis.entries.forEach((entry) => {\n\t\t\tentry.meshInstance.setCustomAabb(aabb3);\n\t\t});\n\t}\n\tsyncLights() {\n\t\tconst lights2 = this.layer.splitLights[LIGHTTYPE_DIRECTIONAL];\n\t\tconst desired = this._desiredLights;\n\t\tdesired.clear();\n\t\tfor (let i2 = 0; i2 < lights2.length; i2++) {\n\t\t\tconst light = lights2[i2];\n\t\t\tif (!light.enabled || !light.castShadows) continue;\n\t\t\tif (light.numCascades !== 1) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tdesired.add(light);\n\t\t}\n\t\tthis.entries.forEach((entry, light) => {\n\t\t\tif (!desired.has(light)) {\n\t\t\t\tthis._destroyEntry(entry);\n\t\t\t\tthis.entries.delete(light);\n\t\t\t}\n\t\t});\n\t\tdesired.forEach((light) => {\n\t\t\tif (!this.entries.has(light)) {\n\t\t\t\tthis.entries.set(light, this._createEntry(light));\n\t\t\t}\n\t\t});\n\t}\n\tcull(gsplatParams) {\n\t\tconst worldState = this.world.getState(this.world.currentVersion);\n\t\tconst ready = worldState && worldState.sortedBefore && worldState.totalActiveSplats > 0;\n\t\tif (!ready) {\n\t\t\tthis.entries.forEach((entry) => {\n\t\t\t\tentry.meshInstance.visible = false;\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tthis._compaction.uploadIntervals(worldState);\n\t\tthis.world.workBuffer.frustumCuller.updateTransformsData(worldState.boundsGroups);\n\t\tthis._syncUserModify(gsplatParams);\n\t\tthis._ensureCullShader();\n\t\tconst numIntervals = worldState.totalIntervals;\n\t\tconst totalActiveSplats = worldState.totalActiveSplats;\n\t\tconst textureSize = this.world.workBuffer.textureSize;\n\t\tthis.entries.forEach((entry) => {\n\t\t\tthis._cullEntry(entry, numIntervals, totalActiveSplats, textureSize, gsplatParams);\n\t\t});\n\t}\n\t_syncUserModify(gsplatParams) {\n\t\tconst userMat = gsplatParams.material;\n\t\tif (!userMat) return;\n\t\tconst chunksKey = userMat.shaderChunks?.key ?? \"\";\n\t\tif (chunksKey !== this._userChunksKey) {\n\t\t\tthis._userChunksKey = chunksKey;\n\t\t\tthis._userModifyWgsl = userMat.getShaderChunks?.(\"wgsl\")?.get(\"gsplatModifyVS\") ?? null;\n\t\t\tthis.entries.forEach((entry) => this._applyUserModify(entry));\n\t\t}\n\t\tconst params = userMat.parameters;\n\t\tthis.entries.forEach((entry) => {\n\t\t\tfor (const name in params) {\n\t\t\t\tif (params.hasOwnProperty(name)) {\n\t\t\t\t\tentry.material.setParameter(name, params[name].data);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\t_applyUserModify(entry) {\n\t\tconst wgsl = entry.material.shaderChunks.wgsl;\n\t\tif (this._userModifyWgsl) {\n\t\t\twgsl.set(\"gsplatModifyVS\", this._userModifyWgsl);\n\t\t} else {\n\t\t\twgsl.delete(\"gsplatModifyVS\");\n\t\t}\n\t\tentry.material.update();\n\t}\n\t_cullEntry(entry, numIntervals, totalActiveSplats, textureSize, gsplatParams) {\n\t\tconst device = this.device;\n\t\tconst sceneCamera = this.cameraNode.camera?.camera;\n\t\tconst shadowCamera = sceneCamera && entry.light.getRenderData(sceneCamera, 0).shadowCamera;\n\t\tconst frustum = shadowCamera && shadowCamera.frustum;\n\t\tconst frustumCuller = this.world.workBuffer.frustumCuller;\n\t\tif (!frustum || !frustumCuller?.boundsBuffer || !frustumCuller?.transformsBuffer) {\n\t\t\tentry.meshInstance.visible = false;\n\t\t\treturn;\n\t\t}\n\t\tthis._fillFrustumPlanes(frustum);\n\t\tconst orthoHeight = shadowCamera.orthoHeight;\n\t\tconst shadowRes = entry.light._shadowResolution;\n\t\tconst minPixelSize = gsplatParams.minPixelSize;\n\t\tconst focal = orthoHeight > 0 && shadowRes > 0 ? shadowRes / orthoHeight : 0;\n\t\tconst t2 = minPixelSize * minPixelSize * 0.5 - 0.3;\n\t\tconst worldSizeThreshold = focal > 0 && t2 > 0 ? Math.sqrt(t2) / focal : 0;\n\t\tif (totalActiveSplats > entry.allocatedIndexCount) {\n\t\t\tentry.indexBuffer?.destroy();\n\t\t\tentry.allocatedIndexCount = totalActiveSplats;\n\t\t\tentry.indexBuffer = new StorageBuffer(device, totalActiveSplats * 4);\n\t\t}\n\t\tconst compaction = this._compaction;\n\t\tcompaction.dispatchCompact({\n\t\t\tboundsBuffer: frustumCuller.boundsBuffer,\n\t\t\ttransformsBuffer: frustumCuller.transformsBuffer,\n\t\t\tfrustumPlanes: this._frustumPlanes\n\t\t}, numIntervals, totalActiveSplats, false);\n\t\tentry.countBuffer.clear();\n\t\tif (!entry.cullCompute || entry.cullComputeGen !== this._cullShaderGen) {\n\t\t\tentry.cullCompute?.destroy();\n\t\t\tentry.cullCompute = new Compute(device, this._cullShader, \"GSplatShadowCull\");\n\t\t\tentry.cullComputeGen = this._cullShaderGen;\n\t\t}\n\t\tconst cull = entry.cullCompute;\n\t\tconst userMat = gsplatParams.material;\n\t\tif (userMat) {\n\t\t\tconst srcParams = userMat.parameters;\n\t\t\tfor (const name in srcParams) {\n\t\t\t\tif (srcParams.hasOwnProperty(name)) {\n\t\t\t\t\tcull.setParameter(name, srcParams[name].data);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tcull.setParameter(\"compactedSplatIds\", compaction.compactedSplatIds);\n\t\tcull.setParameter(\"candidateCountBuffer\", compaction.countBuffer);\n\t\tcull.setParameter(\"outputIndices\", entry.indexBuffer);\n\t\tcull.setParameter(\"globalCount\", entry.countBuffer);\n\t\tcull.setParameter(\"frustumPlanes[0]\", this._frustumPlanes);\n\t\tcull.setParameter(\"numIntervals\", numIntervals);\n\t\tcull.setParameter(\"splatTextureSize\", textureSize);\n\t\tcull.setParameter(\"alphaClip\", gsplatParams.alphaClip);\n\t\tcull.setParameter(\"worldSizeThreshold\", worldSizeThreshold);\n\t\tconst workBuffer = this.world.workBuffer;\n\t\tfor (const stream of workBuffer.format.resourceStreams) {\n\t\t\tconst texture = workBuffer.getTexture(stream.name);\n\t\t\tif (texture) {\n\t\t\t\tcull.setParameter(stream.name, texture);\n\t\t\t}\n\t\t}\n\t\tconst workgroupCount = Math.ceil(totalActiveSplats / WORKGROUP_SIZE2);\n\t\tCompute.calcDispatchSize(workgroupCount, this._cullDispatchSize, device.limits.maxComputeWorkgroupsPerDimension || 65535);\n\t\tcull.setupDispatch(this._cullDispatchSize.x, this._cullDispatchSize.y, 1);\n\t\tdevice.computeDispatch([cull], \"GSplatShadowCull\");\n\t\tconst drawSlot = device.getIndirectDrawSlot(1);\n\t\tconst args = entry.argsCompute;\n\t\targs.setParameter(\"countBuffer\", entry.countBuffer);\n\t\targs.setParameter(\"indirectDrawArgs\", device.indirectDrawBuffer);\n\t\targs.setParameter(\"drawSlot\", drawSlot);\n\t\targs.setParameter(\"indexCount\", INDEX_COUNT3);\n\t\targs.setParameter(\"pad0\", 0);\n\t\targs.setParameter(\"pad1\", 0);\n\t\targs.setupDispatch(1);\n\t\tdevice.computeDispatch([args], \"GSplatShadowIndirectArgs\");\n\t\tconst material = entry.material;\n\t\tentry.meshInstance.setIndirect(null, drawSlot, 1);\n\t\tmaterial.setParameter(\"compactedSplatIds\", entry.indexBuffer);\n\t\tmaterial.setParameter(\"numSplatsStorage\", entry.countBuffer);\n\t\tmaterial.setParameter(\"splatTextureSize\", textureSize);\n\t\tmaterial.setParameter(\"alphaClip\", gsplatParams.alphaClip);\n\t\tentry.meshInstance.visible = true;\n\t\tif (entry.meshInstance.instancingCount <= 0) {\n\t\t\tentry.meshInstance.instancingCount = 1;\n\t\t}\n\t}\n\t_fillFrustumPlanes(frustum) {\n\t\tthis._frustumPlanes.set(frustum.planeData);\n\t}\n\t_createEntry(light) {\n\t\tconst device = this.device;\n\t\tconst material = this._createMaterial();\n\t\tconst meshInstance = this._createMeshInstance(light, material);\n\t\tmeshInstance.castShadow = true;\n\t\tthis.layer.addShadowCasters([meshInstance]);\n\t\tconst countBuffer = new StorageBuffer(device, 4, BUFFERUSAGE_COPY_DST);\n\t\tconst argsCompute = new Compute(device, this._argsShader, \"GSplatShadowIndirectArgs\");\n\t\tconst entry = {\n\t\t\tlight,\n\t\t\tmaterial,\n\t\t\tmeshInstance,\n\t\t\tindexBuffer: null,\n\t\t\tallocatedIndexCount: 0,\n\t\t\tcountBuffer,\n\t\t\tcullCompute: null,\n\t\t\tcullComputeGen: -1,\n\t\t\targsCompute\n\t\t};\n\t\tthis._applyUserModify(entry);\n\t\treturn entry;\n\t}\n\t_destroyEntry(entry) {\n\t\tthis.layer.removeShadowCasters([entry.meshInstance]);\n\t\tentry.meshInstance.destroy();\n\t\tentry.material.destroy();\n\t\tentry.indexBuffer?.destroy();\n\t\tentry.countBuffer.destroy();\n\t\tentry.cullCompute?.destroy();\n\t\tentry.argsCompute.destroy();\n\t}\n\t_createMaterial() {\n\t\tconst material = new ShaderMaterial({\n\t\t\tuniqueName: \"GSplatShadowMaterial\",\n\t\t\tvertexGLSL: '#include \"gsplatVS\"',\n\t\t\tfragmentGLSL: '#include \"gsplatPS\"',\n\t\t\tvertexWGSL: '#include \"gsplatVS\"',\n\t\t\tfragmentWGSL: '#include \"gsplatPS\"',\n\t\t\tattributes: {\n\t\t\t\tvertex_position: SEMANTIC_POSITION\n\t\t\t}\n\t\t});\n\t\tmaterial.setDefine(\"{GSPLAT_INSTANCE_SIZE}\", GSplatResourceBase.instanceSize);\n\t\tmaterial.setDefine(\"SH_BANDS\", \"0\");\n\t\tmaterial.setDefine(\"GSPLAT_SEPARATE_OPACITY\", \"\");\n\t\tmaterial.setDefine(\"DITHER_NONE\", \"\");\n\t\tmaterial.setDefine(\"GSPLAT_INDIRECT_DRAW\", true);\n\t\tthis._configureMaterialWorkBuffer(material);\n\t\tmaterial.cull = CULLFACE_NONE;\n\t\tmaterial.blendType = BLEND_PREMULTIPLIED;\n\t\tmaterial.depthWrite = false;\n\t\tmaterial.update();\n\t\treturn material;\n\t}\n\t_configureMaterialWorkBuffer(material) {\n\t\tconst workBuffer = this.world.workBuffer;\n\t\tconst wbFormat = workBuffer.format;\n\t\tconst chunks = this.device.isWebGPU ? material.shaderChunks.wgsl : material.shaderChunks.glsl;\n\t\tchunks.set(\"gsplatDeclarationsVS\", wbFormat.getInputDeclarations());\n\t\tchunks.set(\"gsplatReadVS\", wbFormat.getReadCode());\n\t\tconst colorStream = wbFormat.getStream(\"dataColor\");\n\t\tif (colorStream && colorStream.format !== PIXELFORMAT_RGBA16U) {\n\t\t\tmaterial.setDefine(\"GSPLAT_COLOR_FLOAT\", \"\");\n\t\t}\n\t\tconst hasPcId = !!wbFormat.getStream(\"pcId\");\n\t\tmaterial.setDefine(\"GSPLAT_UNIFIED_ID\", hasPcId);\n\t\tmaterial.setDefine(\"PICK_CUSTOM_ID\", hasPcId);\n\t\tfor (const stream of wbFormat.resourceStreams) {\n\t\t\tconst texture = workBuffer.getTexture(stream.name);\n\t\t\tif (texture) {\n\t\t\t\tmaterial.setParameter(stream.name, texture);\n\t\t\t}\n\t\t}\n\t}\n\t_createMeshInstance(light, material) {\n\t\tconst mesh = GSplatResourceBase.createMesh(this.device);\n\t\tconst meshInstance = new MeshInstance(mesh, material);\n\t\tmeshInstance.node = this.node;\n\t\tmeshInstance.setInstancing(true, true);\n\t\tmeshInstance.instancingCount = 0;\n\t\tmeshInstance.pick = false;\n\t\tconst cameraNode = this.cameraNode;\n\t\tmeshInstance.isVisibleFunc = (camera) => {\n\t\t\tconst sceneCamera = cameraNode.camera?.camera;\n\t\t\tif (!sceneCamera) return false;\n\t\t\treturn camera === light.getRenderData(sceneCamera, 0).shadowCamera;\n\t\t};\n\t\treturn meshInstance;\n\t}\n};\n\nvar cameraPosition2 = new Vec3();\nvar cameraDirection2 = new Vec3();\nvar translation = new Vec3();\nvar splatAxis = new Vec3();\nvar invModelMat2 = new Mat4();\nvar _lodColors2 = [\n\tnew Color(1, 0, 0),\n\tnew Color(0, 1, 0),\n\tnew Color(0, 0, 1),\n\tnew Color(1, 1, 0),\n\tnew Color(1, 0, 1),\n\tnew Color(0, 1, 1),\n\tnew Color(1, 0.5, 0),\n\tnew Color(0.5, 0, 1)\n];\nvar GSplatManager = class {\n\tdevice;\n\tnode = new GraphNode(\"GSplatManager\");\n\tworld;\n\trenderer;\n\tshadowRenderer = null;\n\t_hybridScratch = null;\n\tactiveRenderer;\n\tcpuSorter = null;\n\t_centersVersions = /* @__PURE__ */ new Map();\n\tlastSortCameraPos = new Vec3(Infinity, Infinity, Infinity);\n\tlastSortCameraFwd = new Vec3(Infinity, Infinity, Infinity);\n\tsortNeeded = true;\n\t_deviceRestoredEvent = null;\n\tcameraNode;\n\tscene;\n\trenderMode;\n\t_updateResult = { newVersion: false, overdrawDirty: false, sortNeeded: false };\n\t_bakeResult = { rebuilt: false, count: 0, textureSize: 0, sortNeeded: false };\n\t_markResult = { rebuilt: false, count: 0, textureSize: 0 };\n\t_formatResult = { bufferRecreated: false, sortNeeded: false };\n\t_lastStreamToken = -1;\n\t_streamAdvanced = false;\n\t_renderViewParams = {};\n\t_pickParams = {};\n\tconstructor(device, director, layer, cameraNode) {\n\t\tthis.device = device;\n\t\tthis.scene = director.scene;\n\t\tthis.director = director;\n\t\tthis.cameraNode = cameraNode;\n\t\tthis.world = new GSplatWorld(device, this.scene);\n\t\tthis.layer = layer;\n\t\tthis._createRenderer(this.scene.gsplat.currentRenderer);\n\t\tthis._deviceRestoredEvent = this.device.on(\"devicerestored\", this._onDeviceRestored, this);\n\t}\n\tdestroy() {\n\t\tthis._destroyed = true;\n\t\tthis._deviceRestoredEvent?.off();\n\t\tthis._deviceRestoredEvent = null;\n\t\tthis.destroyCpuSorting();\n\t\tthis.world.destroy();\n\t\tthis.renderer.destroy();\n\t\tthis.shadowRenderer?.destroy();\n\t\tthis.shadowRenderer = null;\n\t\tthis._hybridScratch?.destroy();\n\t\tthis._hybridScratch = null;\n\t}\n\t_onDeviceRestored() {\n\t\tif (this.world.hasOctreeInstances) return;\n\t\tthis.world.invalidate({ workBuffer: true });\n\t\tthis.sortNeeded = true;\n\t}\n\tdestroyCpuSorting() {\n\t\tthis.cpuSorter?.destroy();\n\t\tthis.cpuSorter = null;\n\t}\n\tinitCpuSorting() {\n\t\tif (!this.cpuSorter) {\n\t\t\tthis.cpuSorter = this.createSorter();\n\t\t}\n\t\tconst splats = this.world.invalidateSortState();\n\t\tif (splats) {\n\t\t\tthis.cpuSorter.updateCentersForSplats(splats);\n\t\t}\n\t\tthis.renderer.setCpuSortedRendering();\n\t}\n\tget material() {\n\t\treturn this.renderer.material;\n\t}\n\tget bufferCopyUploaded() {\n\t\treturn this.world.bufferCopyUploaded;\n\t}\n\tget bufferCopyTotal() {\n\t\treturn this.world.bufferCopyTotal;\n\t}\n\tget hasPendingSort() {\n\t\treturn !!this.cpuSorter?.pendingSorted;\n\t}\n\tprepareForPicking(camera, width, height) {\n\t\tif (!this.renderer.usesGpuSort || !camera.node) return null;\n\t\tconst sortedState = this.world.getState(this.world.currentVersion);\n\t\tif (!sortedState?.sortedBefore) return null;\n\t\treturn this.renderer.preparePickingView(this.world, sortedState, this._fillPickParams(camera, width, height));\n\t}\n\t_writeGsplatParams(p) {\n\t\tconst gsplat = this.scene.gsplat;\n\t\tp.radialSorting = gsplat.radialSorting;\n\t\tp.alphaClip = gsplat.alphaClip;\n\t\tp.alphaClipForward = gsplat.alphaClipForward;\n\t\tp.minPixelSize = gsplat.minPixelSize;\n\t\tp.minContribution = gsplat.minContribution;\n\t\tp.foveationStrength = gsplat.foveationStrength;\n\t\tp.foveationCenter = gsplat.foveationCenter;\n\t\tp.antiAlias = gsplat.antiAlias;\n\t\tp.fisheye = gsplat.fisheye;\n\t\tp.material = gsplat.material;\n\t\tp.varyings = gsplat.varyings;\n\t}\n\t_fillRenderViewParams() {\n\t\tconst p = this._renderViewParams;\n\t\tthis._writeGsplatParams(p);\n\t\tp.cameraNode = this.cameraNode;\n\t\treturn p;\n\t}\n\t_fillPickParams(camera, width, height) {\n\t\tconst p = this._pickParams;\n\t\tthis._writeGsplatParams(p);\n\t\tp.cameraNode = camera.node;\n\t\tp.width = width;\n\t\tp.height = height;\n\t\treturn p;\n\t}\n\tcreateSorter() {\n\t\tconst sorter = new GSplatUnifiedSorter(this.scene);\n\t\tsorter.on(\"sorted\", (count, version2, orderData) => {\n\t\t\tthis.onSorted(count, version2, orderData);\n\t\t});\n\t\treturn sorter;\n\t}\n\tsetRenderMode(renderMode) {\n\t\tthis.renderMode = renderMode;\n\t\tthis.renderer.setRenderMode(renderMode);\n\t\tthis._syncShadowRenderer();\n\t}\n\t_syncShadowRenderer() {\n\t\tconst wantShadow = !!(this.renderMode & GSPLAT_SHADOW) && this.renderer.usesGpuSort;\n\t\tif (wantShadow && !this.shadowRenderer) {\n\t\t\tthis.shadowRenderer = new GSplatShadowRenderer(this.device, this.node, this.cameraNode, this.layer, this.world, this._hybridScratch);\n\t\t} else if (!wantShadow && this.shadowRenderer) {\n\t\t\tthis.shadowRenderer.destroy();\n\t\t\tthis.shadowRenderer = null;\n\t\t}\n\t\tif (!this.renderer.usesGpuSort && this._hybridScratch) {\n\t\t\tthis._hybridScratch.destroy();\n\t\t\tthis._hybridScratch = null;\n\t\t}\n\t}\n\t_createRenderer(mode) {\n\t\tconst workBuffer = this.world.workBuffer;\n\t\tif (mode === GSPLAT_RENDERER_RASTER_GPU_SORT) {\n\t\t\tthis._hybridScratch ?? (this._hybridScratch = new GSplatHybridRendererScratch(this.device));\n\t\t\tthis.renderer = new GSplatHybridRenderer(this.device, this.node, this.cameraNode, this.layer, workBuffer, this._hybridScratch);\n\t\t} else {\n\t\t\tthis.renderer = new GSplatQuadRenderer(this.device, this.node, this.cameraNode, this.layer, workBuffer);\n\t\t\tthis.initCpuSorting();\n\t\t}\n\t\tthis.activeRenderer = mode;\n\t}\n\tprepareRendererMode() {\n\t\tconst requested = this.scene.gsplat.currentRenderer;\n\t\tif (requested === this.activeRenderer) return;\n\t\tthis.world.invalidate({ worldState: true });\n\t\tthis.destroyCpuSorting();\n\t\tthis.renderer.destroy();\n\t\tthis._createRenderer(requested);\n\t\tthis.renderer.setRenderMode(this.renderMode);\n\t\tthis._syncShadowRenderer();\n\t\tthis.world.invalidate({ workBuffer: true });\n\t\tthis.sortNeeded = true;\n\t}\n\treconcile(placements) {\n\t\tthis.world.reconcile(placements);\n\t}\n\tonSorted(count, version2, orderData) {\n\t\tconst updateBounds = this.renderer.requiresBounds;\n\t\tconst result = this.world.onSorted(version2, count, orderData, this.cameraNode, updateBounds, this._markResult);\n\t\tif (result.rebuilt) {\n\t\t\tthis.renderer.update(result.count, result.textureSize);\n\t\t}\n\t\tthis.renderer.setOrderData();\n\t}\n\t_markSortedIfNeeded(worldState) {\n\t\tif (!worldState.sortedBefore) {\n\t\t\tthis.world.markSorted(worldState.version, worldState.totalActiveSplats, this.cameraNode, true, this._markResult);\n\t\t\tif (this._markResult.rebuilt) {\n\t\t\t\tthis.renderer.update(this._markResult.count, this._markResult.textureSize);\n\t\t\t}\n\t\t}\n\t}\n\ttestCameraMovedForSort() {\n\t\tconst epsilon = 1e-3;\n\t\tif (this.scene.gsplat.radialSorting) {\n\t\t\tconst currentCameraPos = this.cameraNode.getPosition();\n\t\t\treturn this.lastSortCameraPos.distance(currentCameraPos) > epsilon;\n\t\t}\n\t\tif (Number.isFinite(this.lastSortCameraFwd.x)) {\n\t\t\tconst currentCameraFwd = this.cameraNode.forward;\n\t\t\tconst dot = Math.min(1, Math.max(-1, this.lastSortCameraFwd.dot(currentCameraFwd)));\n\t\t\treturn Math.acos(dot) > epsilon;\n\t\t}\n\t\treturn true;\n\t}\n\tfireFrameReadyEvent() {\n\t\tconst ready = this.world.currentVersion === this.world.lastWorldStateVersion && !this.world.awaitingLodUpdate;\n\t\tconst loadingCount = this.world.pendingLoadCount;\n\t\tthis.director.eventHandler.fire(\"frame:ready\", this.cameraNode.camera, this.renderer.layer, ready, loadingCount);\n\t}\n\tupdateStreaming(token) {\n\t\tif (token === this._lastStreamToken) return this._streamAdvanced;\n\t\tthis._lastStreamToken = token;\n\t\tthis.world.syncFormat(this._formatResult);\n\t\tif (this._formatResult.bufferRecreated) {\n\t\t\tthis.renderer.setDataSource(this.world.workBuffer);\n\t\t\tthis.shadowRenderer?.setDataSource(this.world.workBuffer);\n\t\t}\n\t\tif (this._formatResult.sortNeeded) this.sortNeeded = true;\n\t\tthis.prepareRendererMode();\n\t\tconst allowLodUpdate = !this.renderer.requiresCpuSort || this.cpuSorter && this.cpuSorter.jobsInFlight < 3;\n\t\tthis.world.update(this.cameraNode, allowLodUpdate, !!this.cpuSorter, this._updateResult);\n\t\tif (this._updateResult.overdrawDirty) this.renderer.updateOverdrawMode(this.scene.gsplat);\n\t\tif (this._updateResult.sortNeeded) this.sortNeeded = true;\n\t\tif (this._updateResult.newVersion) this._feedCpuSorterCenters();\n\t\tthis.world.tickCooldowns();\n\t\tthis._streamAdvanced = this._updateResult.newVersion || this._formatResult.bufferRecreated;\n\t\treturn this._streamAdvanced;\n\t}\n\tupdate() {\n\t\tthis.world.resetFrameStats();\n\t\tthis.updateStreaming(this.director._streamToken);\n\t\tif (this.cpuSorter) {\n\t\t\tthis.cpuSorter.applyPendingSorted();\n\t\t}\n\t\tif (this.testCameraMovedForSort()) {\n\t\t\tthis.sortNeeded = true;\n\t\t}\n\t\tconst lastState = this.world.getState(this.world.lastWorldStateVersion);\n\t\tif (lastState) {\n\t\t\tif (this.cpuSorter && !lastState.sortParametersSet) {\n\t\t\t\tlastState.sortParametersSet = true;\n\t\t\t\tconst payload = this.world.prepareSortParameters(lastState);\n\t\t\t\tthis.cpuSorter.setSortParameters(payload);\n\t\t\t}\n\t\t}\n\t\tconst updateBounds = this.renderer.requiresBounds;\n\t\tthis.world.bake(this.world.currentVersion, this.cameraNode, updateBounds, this._bakeResult);\n\t\tif (this._bakeResult.rebuilt) {\n\t\t\tthis.renderer.update(this._bakeResult.count, this._bakeResult.textureSize);\n\t\t\tthis.renderer.setOrderData();\n\t\t\tthis.renderer.invalidateCullUpload();\n\t\t}\n\t\tif (this._bakeResult.sortNeeded) this.sortNeeded = true;\n\t\tif (lastState) {\n\t\t\tif (this.renderer.usesGpuSort) {\n\t\t\t\tthis._markSortedIfNeeded(lastState);\n\t\t\t\tif (this.renderMode & GSPLAT_FORWARD) {\n\t\t\t\t\tthis.renderer.prepareRenderView(this.world, lastState, this._fillRenderViewParams());\n\t\t\t\t}\n\t\t\t} else if (this.sortNeeded) {\n\t\t\t\tthis.sortCpu(lastState);\n\t\t\t}\n\t\t\tif (this.sortNeeded) {\n\t\t\t\tthis.sortNeeded = false;\n\t\t\t\tthis.lastSortCameraPos.copy(this.cameraNode.getPosition());\n\t\t\t\tthis.lastSortCameraFwd.copy(this.cameraNode.forward);\n\t\t\t}\n\t\t}\n\t\tthis.shadowRenderer?.syncLights();\n\t\tconst aggregateAabb = this.world.computeAggregateAabb();\n\t\tthis.renderer?.meshInstance?.setCustomAabb(aggregateAabb);\n\t\tthis.shadowRenderer?.setCastersAabb(aggregateAabb);\n\t\tthis.fireFrameReadyEvent();\n\t\tif (this.scene.gsplat.dirty) {\n\t\t\tthis.world.markInstancesNeedLodUpdate();\n\t\t}\n\t\tthis.renderer.frameUpdate(this.scene.gsplat);\n\t\tconst sortedState = this.world.getState(this.world.currentVersion);\n\t\treturn sortedState ? sortedState.totalActiveSplats : 0;\n\t}\n\tupdateShadows() {\n\t\tthis.shadowRenderer?.cull(this.scene.gsplat);\n\t}\n\t_feedCpuSorterCenters() {\n\t\tif (!this.cpuSorter) return;\n\t\tconst state = this.world.getState(this.world.lastWorldStateVersion);\n\t\tif (!state) return;\n\t\tconst splats = state.splats;\n\t\tfor (const splat of splats) {\n\t\t\tconst resource = splat.resource;\n\t\t\tconst lastVersion = this._centersVersions.get(resource.id);\n\t\t\tif (lastVersion !== resource.centersVersion) {\n\t\t\t\tthis._centersVersions.set(resource.id, resource.centersVersion);\n\t\t\t\tthis.cpuSorter.setCenters(resource.id, null);\n\t\t\t\tthis.cpuSorter.setCenters(resource.id, resource.centers);\n\t\t\t}\n\t\t}\n\t\tthis.cpuSorter.updateCentersForSplats(splats);\n\t}\n\tsortCpu(lastState) {\n\t\tif (!this.cpuSorter) return;\n\t\tconst cameraNode = this.cameraNode;\n\t\tconst cameraMat = cameraNode.getWorldTransform();\n\t\tcameraMat.getTranslation(cameraPosition2);\n\t\tcameraMat.getZ(cameraDirection2).normalize();\n\t\tconst radialSort = this.scene.gsplat.radialSorting;\n\t\tconst sorterRequest = [];\n\t\tlastState.splats.forEach((splat) => {\n\t\t\tconst modelMat = splat.node.getWorldTransform();\n\t\t\tinvModelMat2.copy(modelMat).invert();\n\t\t\tconst scale2 = radialSort ? modelMat.getX(splatAxis).length() : 1;\n\t\t\tconst transformedDirection = new Vec3(\n\t\t\t\tmodelMat.getX(splatAxis).dot(cameraDirection2),\n\t\t\t\tmodelMat.getY(splatAxis).dot(cameraDirection2),\n\t\t\t\tmodelMat.getZ(splatAxis).dot(cameraDirection2)\n\t\t\t);\n\t\t\tconst transformedPosition = invModelMat2.transformPoint(cameraPosition2);\n\t\t\tmodelMat.getTranslation(translation);\n\t\t\tconst offset3 = translation.sub(cameraPosition2).dot(cameraDirection2);\n\t\t\tconst aabbMin = splat.aabb.getMin();\n\t\t\tconst aabbMax = splat.aabb.getMax();\n\t\t\tsorterRequest.push({\n\t\t\t\ttransformedDirection,\n\t\t\t\ttransformedPosition,\n\t\t\t\toffset: offset3,\n\t\t\t\tscale: scale2,\n\t\t\t\taabbMin: [aabbMin.x, aabbMin.y, aabbMin.z],\n\t\t\t\taabbMax: [aabbMax.x, aabbMax.y, aabbMax.z]\n\t\t\t});\n\t\t});\n\t\tthis.cpuSorter.setSortParams(sorterRequest, radialSort);\n\t}\n};\n\nvar SetUtils = class {\n\tstatic equals(setA, setB) {\n\t\tif (setA.size !== setB.size) {\n\t\t\treturn false;\n\t\t}\n\t\tfor (const elem of setA) {\n\t\t\tif (!setB.has(elem)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n};\n\nvar tempLayersToRemove = [];\nvar GSplatLayerData = class {\n\tgsplatManager = null;\n\tgsplatManagerShadow = null;\n\tconstructor(device, director, layer, camera) {\n\t\tthis.updateConfiguration(device, director, layer, camera);\n\t}\n\tcreateManager(device, director, layer, cameraNode, camera, renderMode) {\n\t\tconst manager = new GSplatManager(device, director, layer, cameraNode);\n\t\tmanager.setRenderMode(renderMode);\n\t\tif (director.eventHandler) {\n\t\t\tdirector.eventHandler.fire(\"material:created\", manager.material, camera, layer);\n\t\t}\n\t\treturn manager;\n\t}\n\tupdateConfiguration(device, director, layer, camera) {\n\t\tconst cameraNode = camera.node;\n\t\tconst hasNormalPlacements = layer.gsplatPlacements.length > 0;\n\t\tconst hasShadowCasters = layer.gsplatShadowCasters.length > 0;\n\t\tconst setsEqual = SetUtils.equals(layer.gsplatPlacementsSet, layer.gsplatShadowCastersSet);\n\t\tconst useSharedManager = setsEqual && hasNormalPlacements;\n\t\tconst desiredMainMode = useSharedManager ? GSPLAT_FORWARD | GSPLAT_SHADOW : hasNormalPlacements ? GSPLAT_FORWARD : 0;\n\t\tconst desiredShadowMode = useSharedManager ? 0 : hasShadowCasters ? GSPLAT_SHADOW : 0;\n\t\tif (desiredMainMode) {\n\t\t\tif (this.gsplatManager) {\n\t\t\t\tthis.gsplatManager.setRenderMode(desiredMainMode);\n\t\t\t} else {\n\t\t\t\tthis.gsplatManager = this.createManager(device, director, layer, cameraNode, camera, desiredMainMode);\n\t\t\t}\n\t\t} else if (this.gsplatManager) {\n\t\t\tthis.gsplatManager.destroy();\n\t\t\tthis.gsplatManager = null;\n\t\t}\n\t\tif (desiredShadowMode) {\n\t\t\tif (this.gsplatManagerShadow) {\n\t\t\t\tthis.gsplatManagerShadow.setRenderMode(desiredShadowMode);\n\t\t\t} else {\n\t\t\t\tthis.gsplatManagerShadow = this.createManager(device, director, layer, cameraNode, camera, desiredShadowMode);\n\t\t\t}\n\t\t} else if (this.gsplatManagerShadow) {\n\t\t\tthis.gsplatManagerShadow.destroy();\n\t\t\tthis.gsplatManagerShadow = null;\n\t\t}\n\t}\n\tdestroy() {\n\t\tthis.gsplatManager?.destroy();\n\t\tthis.gsplatManager = null;\n\t\tthis.gsplatManagerShadow?.destroy();\n\t\tthis.gsplatManagerShadow = null;\n\t}\n};\nvar GSplatCameraData = class {\n\tlayersMap = /* @__PURE__ */ new Map();\n\tdestroy() {\n\t\tthis.layersMap.forEach((layerData) => layerData.destroy());\n\t\tthis.layersMap.clear();\n\t}\n\tremoveLayerData(layer) {\n\t\tconst layerData = this.layersMap.get(layer);\n\t\tif (layerData) {\n\t\t\tlayerData.destroy();\n\t\t\tthis.layersMap.delete(layer);\n\t\t}\n\t}\n\tgetLayerData(device, director, layer, camera) {\n\t\tlet layerData = this.layersMap.get(layer);\n\t\tif (!layerData) {\n\t\t\tlayerData = new GSplatLayerData(device, director, layer, camera);\n\t\t\tthis.layersMap.set(layer, layerData);\n\t\t}\n\t\treturn layerData;\n\t}\n};\nvar GSplatDirector = class {\n\tdevice;\n\tcamerasMap = /* @__PURE__ */ new Map();\n\tscene;\n\teventHandler;\n\t_streamToken = 0;\n\tconstructor(device, renderer, scene, eventHandler) {\n\t\tthis.device = device;\n\t\tthis.renderer = renderer;\n\t\tthis.scene = scene;\n\t\tthis.eventHandler = eventHandler;\n\t}\n\tdestroy() {\n\t\tthis.camerasMap.forEach((cameraData) => cameraData.destroy());\n\t\tthis.camerasMap.clear();\n\t}\n\tgetCameraData(camera) {\n\t\tlet cameraData = this.camerasMap.get(camera);\n\t\tif (!cameraData) {\n\t\t\tcameraData = new GSplatCameraData();\n\t\t\tthis.camerasMap.set(camera, cameraData);\n\t\t}\n\t\treturn cameraData;\n\t}\n\tprepareForPicking(camera, width, height, layer) {\n\t\tconst cameraData = this.camerasMap.get(camera);\n\t\tif (!cameraData) return null;\n\t\tconst layerData = cameraData.layersMap.get(layer);\n\t\tif (!layerData?.gsplatManager) return null;\n\t\treturn layerData.gsplatManager.prepareForPicking(camera, width, height);\n\t}\n\tupdateStreaming() {\n\t\tthis.scene.gsplat.frameUpdate();\n\t\tGSplatResourceCleanup.process(this.device);\n\t\tconst token = ++this._streamToken;\n\t\tlet needRender = false;\n\t\tlet streamed = false;\n\t\tthis.camerasMap.forEach((cameraData) => {\n\t\t\tcameraData.layersMap.forEach((layerData) => {\n\t\t\t\tconst manager = layerData.gsplatManager;\n\t\t\t\tif (manager) {\n\t\t\t\t\tneedRender = manager.updateStreaming(token) || needRender;\n\t\t\t\t\tneedRender = manager.hasPendingSort || needRender;\n\t\t\t\t\tstreamed = true;\n\t\t\t\t}\n\t\t\t\tconst shadowManager = layerData.gsplatManagerShadow;\n\t\t\t\tif (shadowManager) {\n\t\t\t\t\tneedRender = shadowManager.updateStreaming(token) || needRender;\n\t\t\t\t\tneedRender = shadowManager.hasPendingSort || needRender;\n\t\t\t\t\tstreamed = true;\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\tif (streamed) {\n\t\t\tthis.scene.gsplat.dirty = false;\n\t\t}\n\t\tif (needRender) {\n\t\t\tthis.eventHandler.fire(\"frame:request\");\n\t\t}\n\t}\n\tupdate(comp) {\n\t\tthis.camerasMap.forEach((cameraData, camera) => {\n\t\t\tif (!comp.camerasSet.has(camera)) {\n\t\t\t\tcameraData.destroy();\n\t\t\t\tthis.camerasMap.delete(camera);\n\t\t\t} else {\n\t\t\t\tcameraData.layersMap.forEach((layerData, layer) => {\n\t\t\t\t\tif (!camera.layersSet.has(layer.id) || !layer.enabled) {\n\t\t\t\t\t\ttempLayersToRemove.push(layer);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tfor (let i2 = 0; i2 < tempLayersToRemove.length; i2++) {\n\t\t\t\t\tconst layer = tempLayersToRemove[i2];\n\t\t\t\t\tconst layerData = cameraData.layersMap.get(layer);\n\t\t\t\t\tif (layerData) {\n\t\t\t\t\t\tlayerData.destroy();\n\t\t\t\t\t\tcameraData.layersMap.delete(layer);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ttempLayersToRemove.length = 0;\n\t\t\t}\n\t\t});\n\t\tlet gsplatCount = 0;\n\t\tlet bufferCopyUploaded = 0;\n\t\tlet bufferCopyTotal = 0;\n\t\tconst camerasComponents = comp.cameras;\n\t\tfor (let i2 = 0; i2 < camerasComponents.length; i2++) {\n\t\t\tconst camera = camerasComponents[i2].camera;\n\t\t\tlet cameraData = this.camerasMap.get(camera);\n\t\t\tconst layerIds = camera.layers;\n\t\t\tfor (let j = 0; j < layerIds.length; j++) {\n\t\t\t\tconst layer = comp.getLayerById(layerIds[j]);\n\t\t\t\tif (layer?.enabled) {\n\t\t\t\t\tif (layer.gsplatPlacementsDirty || !cameraData) {\n\t\t\t\t\t\tconst hasNormalPlacements = layer.gsplatPlacements.length > 0;\n\t\t\t\t\t\tconst hasShadowCasters = layer.gsplatShadowCasters.length > 0;\n\t\t\t\t\t\tif (!hasNormalPlacements && !hasShadowCasters) {\n\t\t\t\t\t\t\tif (cameraData) {\n\t\t\t\t\t\t\t\tcameraData.removeLayerData(layer);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcameraData ?? (cameraData = this.getCameraData(camera));\n\t\t\t\t\t\t\tconst layerData = cameraData.getLayerData(this.device, this, layer, camera);\n\t\t\t\t\t\t\tlayerData.updateConfiguration(this.device, this, layer, camera);\n\t\t\t\t\t\t\tif (layerData.gsplatManager) {\n\t\t\t\t\t\t\t\tlayerData.gsplatManager.reconcile(layer.gsplatPlacements);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (layerData.gsplatManagerShadow) {\n\t\t\t\t\t\t\t\tlayerData.gsplatManagerShadow.reconcile(layer.gsplatShadowCasters);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (cameraData) {\n\t\t\t\tfor (const layerData of cameraData.layersMap.values()) {\n\t\t\t\t\tif (layerData.gsplatManager) {\n\t\t\t\t\t\tgsplatCount += layerData.gsplatManager.update();\n\t\t\t\t\t\tbufferCopyUploaded += layerData.gsplatManager.bufferCopyUploaded;\n\t\t\t\t\t\tbufferCopyTotal += layerData.gsplatManager.bufferCopyTotal;\n\t\t\t\t\t}\n\t\t\t\t\tif (layerData.gsplatManagerShadow) {\n\t\t\t\t\t\tgsplatCount += layerData.gsplatManagerShadow.update();\n\t\t\t\t\t\tbufferCopyUploaded += layerData.gsplatManagerShadow.bufferCopyUploaded;\n\t\t\t\t\t\tbufferCopyTotal += layerData.gsplatManagerShadow.bufferCopyTotal;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis.renderer._gsplatCount = gsplatCount;\n\t\tthis.renderer._gsplatBufferCopy = bufferCopyTotal > 0 ? bufferCopyUploaded / bufferCopyTotal * 100 : 0;\n\t\tthis.scene.gsplat.frameEnd();\n\t\tfor (let i2 = 0; i2 < comp.layerList.length; i2++) {\n\t\t\tcomp.layerList[i2].gsplatPlacementsDirty = false;\n\t\t}\n\t}\n\tupdateShadows() {\n\t\tthis.camerasMap.forEach((cameraData) => {\n\t\t\tcameraData.layersMap.forEach((layerData) => {\n\t\t\t\tlayerData.gsplatManager?.updateShadows();\n\t\t\t\tlayerData.gsplatManagerShadow?.updateShadows();\n\t\t\t});\n\t\t});\n\t}\n};\n\nvar GSplatComponent = class extends Component {\n\t_layers = [LAYERID_WORLD];\n\t// assign to the default world layer\n\t_instance = null;\n\t_placement = null;\n\t_id = PickerId.get();\n\t_materialTmp = null;\n\t_lodFalloff = 1;\n\t_lodRangeMin = 0;\n\t_lodRangeMax = 99;\n\t_customAabb = null;\n\t_assetReference;\n\t_resource = null;\n\t_evtLayersChanged = null;\n\t_evtLayerAdded = null;\n\t_evtLayerRemoved = null;\n\t_castShadows = false;\n\t_unified = true;\n\t_parameters = /* @__PURE__ */ new Map();\n\t_workBufferUpdate = WORKBUFFER_UPDATE_AUTO;\n\t_workBufferModifier = null;\n\tconstructor(system, entity) {\n\t\tsuper(system, entity);\n\t\tthis._assetReference = new AssetReference(\n\t\t\t\"asset\",\n\t\t\tthis,\n\t\t\tsystem.app.assets,\n\t\t\t{\n\t\t\t\tadd: this._onGSplatAssetAdded,\n\t\t\t\tload: this._onGSplatAssetLoad,\n\t\t\t\tremove: this._onGSplatAssetRemove,\n\t\t\t\tunload: this._onGSplatAssetUnload\n\t\t\t},\n\t\t\tthis\n\t\t);\n\t\tentity.on(\"remove\", this.onRemoveChild, this);\n\t\tentity.on(\"removehierarchy\", this.onRemoveChild, this);\n\t\tentity.on(\"insert\", this.onInsertChild, this);\n\t\tentity.on(\"inserthierarchy\", this.onInsertChild, this);\n\t}\n\tset customAabb(value) {\n\t\tthis._customAabb = value;\n\t\tthis._instance?.meshInstance?.setCustomAabb(this._customAabb);\n\t\tif (this._placement) {\n\t\t\tthis._placement.aabb = this._customAabb;\n\t\t}\n\t}\n\tget customAabb() {\n\t\treturn this._customAabb ?? this._placement?.aabb ?? this.resource?.aabb ?? null;\n\t}\n\tset instance(value) {\n\t\tif (this.unified) {\n\t\t\treturn;\n\t\t}\n\t\tthis.destroyInstance();\n\t\tthis._instance = value;\n\t\tif (this._instance) {\n\t\t\tconst mi = this._instance.meshInstance;\n\t\t\tif (!mi.node) {\n\t\t\t\tmi.node = this.entity;\n\t\t\t}\n\t\t\tmi.castShadow = this._castShadows;\n\t\t\tmi.setCustomAabb(this._customAabb);\n\t\t\tif (this.enabled && this.entity.enabled) {\n\t\t\t\tthis.addToLayers();\n\t\t\t}\n\t\t}\n\t}\n\tget instance() {\n\t\tif (this.unified) {\n\t\t}\n\t\treturn this._instance;\n\t}\n\tset material(value) {\n\t\tif (this.unified) {\n\t\t\treturn;\n\t\t}\n\t\tif (this._instance) {\n\t\t\tthis._instance.material = value;\n\t\t} else {\n\t\t\tthis._materialTmp = value;\n\t\t}\n\t}\n\tget material() {\n\t\tif (this.unified) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this._instance?.material ?? this._materialTmp ?? null;\n\t}\n\tset castShadows(value) {\n\t\tif (this._castShadows !== value) {\n\t\t\tconst layers = this.layers;\n\t\t\tconst scene = this.system.app.scene;\n\t\t\tif (this._placement) {\n\t\t\t\tif (value) {\n\t\t\t\t\tfor (let i2 = 0; i2 < layers.length; i2++) {\n\t\t\t\t\t\tconst layer = scene.layers.getLayerById(layers[i2]);\n\t\t\t\t\t\tlayer?.addGSplatShadowCaster(this._placement);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tfor (let i2 = 0; i2 < layers.length; i2++) {\n\t\t\t\t\t\tconst layer = scene.layers.getLayerById(layers[i2]);\n\t\t\t\t\t\tlayer?.removeGSplatShadowCaster(this._placement);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst mi = this._instance?.meshInstance;\n\t\t\tif (mi) {\n\t\t\t\tif (this._castShadows && !value) {\n\t\t\t\t\tfor (let i2 = 0; i2 < layers.length; i2++) {\n\t\t\t\t\t\tconst layer = scene.layers.getLayerById(this.layers[i2]);\n\t\t\t\t\t\tlayer?.removeShadowCasters([mi]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tmi.castShadow = value;\n\t\t\t\tif (!this._castShadows && value) {\n\t\t\t\t\tfor (let i2 = 0; i2 < layers.length; i2++) {\n\t\t\t\t\t\tconst layer = scene.layers.getLayerById(layers[i2]);\n\t\t\t\t\t\tlayer?.addShadowCasters([mi]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._castShadows = value;\n\t\t}\n\t}\n\tget castShadows() {\n\t\treturn this._castShadows;\n\t}\n\tset lodFalloff(value) {\n\t\tthis._lodFalloff = Math.min(Math.max(value, 0), 8);\n\t\tif (this._placement) {\n\t\t\tthis._placement.lodFalloff = this._lodFalloff;\n\t\t}\n\t}\n\tget lodFalloff() {\n\t\treturn this._lodFalloff;\n\t}\n\tset lodBaseDistance(value) {\n\t}\n\tget lodBaseDistance() {\n\t\treturn 0;\n\t}\n\tset lodMultiplier(value) {\n\t}\n\tget lodMultiplier() {\n\t\treturn 0;\n\t}\n\tset lodRangeMin(value) {\n\t\tthis._lodRangeMin = value;\n\t\tif (this._placement) {\n\t\t\tthis._placement.lodRangeMin = value;\n\t\t}\n\t}\n\tget lodRangeMin() {\n\t\treturn this._lodRangeMin;\n\t}\n\tset lodRangeMax(value) {\n\t\tthis._lodRangeMax = value;\n\t\tif (this._placement) {\n\t\t\tthis._placement.lodRangeMax = value;\n\t\t}\n\t}\n\tget lodRangeMax() {\n\t\treturn this._lodRangeMax;\n\t}\n\tset lodDistances(value) {\n\t}\n\tget lodDistances() {\n\t\treturn [];\n\t}\n\tset splatBudget(value) {\n\t}\n\tget splatBudget() {\n\t\treturn 0;\n\t}\n\tset unified(value) {\n\t\tif (value === false) {\n\t\t}\n\t\tif (this._unified !== value) {\n\t\t\tthis._unified = value;\n\t\t\tthis._onGSplatAssetAdded();\n\t\t}\n\t}\n\tget unified() {\n\t\treturn this._unified;\n\t}\n\tget id() {\n\t\treturn this._id;\n\t}\n\tset workBufferUpdate(value) {\n\t\tthis._workBufferUpdate = value;\n\t\tif (this._placement) {\n\t\t\tthis._placement.workBufferUpdate = value;\n\t\t}\n\t}\n\tget workBufferUpdate() {\n\t\treturn this._workBufferUpdate;\n\t}\n\tsetWorkBufferModifier(value) {\n\t\tif (value) {\n\t\t\tconst device = this.system.app.graphicsDevice;\n\t\t\tconst code = (device.isWebGPU ? value.wgsl : value.glsl) ?? null;\n\t\t\tthis._workBufferModifier = code ? { code, hash: hashCode(code) } : null;\n\t\t} else {\n\t\t\tthis._workBufferModifier = null;\n\t\t}\n\t\tif (this._placement) {\n\t\t\tthis._placement.workBufferModifier = this._workBufferModifier;\n\t\t}\n\t}\n\tset layers(value) {\n\t\tthis.removeFromLayers();\n\t\tthis._layers.length = 0;\n\t\tfor (let i2 = 0; i2 < value.length; i2++) {\n\t\t\tthis._layers[i2] = value[i2];\n\t\t}\n\t\tif (!this.enabled || !this.entity.enabled) {\n\t\t\treturn;\n\t\t}\n\t\tthis.addToLayers();\n\t}\n\tget layers() {\n\t\treturn this._layers;\n\t}\n\tset asset(value) {\n\t\tconst id14 = value instanceof Asset ? value.id : value;\n\t\tif (this._assetReference.id === id14) return;\n\t\tif (this._assetReference.asset && this._assetReference.asset.resource) {\n\t\t\tthis._onGSplatAssetRemove();\n\t\t}\n\t\tthis._assetReference.id = id14;\n\t\tif (this._assetReference.asset) {\n\t\t\tthis._onGSplatAssetAdded();\n\t\t}\n\t}\n\tget asset() {\n\t\treturn this._assetReference.id;\n\t}\n\tset resource(value) {\n\t\tif (this._resource === value) return;\n\t\tif (this._resource || this._assetReference.asset?.resource) {\n\t\t\tthis._onGSplatAssetRemove();\n\t\t}\n\t\tif (value && this._assetReference.id) {\n\t\t\tthis._assetReference.id = null;\n\t\t}\n\t\tthis._resource = value;\n\t\tif (this._resource && this.enabled && this.entity.enabled) {\n\t\t\tthis._onGSplatAssetLoad();\n\t\t}\n\t}\n\tget resource() {\n\t\treturn this._resource ?? this._assetReference.asset?.resource ?? null;\n\t}\n\tdestroyInstance() {\n\t\tif (this._placement) {\n\t\t\tthis.removeFromLayers();\n\t\t\tthis._placement.destroy();\n\t\t\tthis._placement = null;\n\t\t}\n\t\tif (this._instance) {\n\t\t\tthis.removeFromLayers();\n\t\t\tthis._instance?.destroy();\n\t\t\tthis._instance = null;\n\t\t}\n\t}\n\taddToLayers() {\n\t\tif (this._placement) {\n\t\t\tconst layers = this.system.app.scene.layers;\n\t\t\tfor (let i2 = 0; i2 < this._layers.length; i2++) {\n\t\t\t\tconst layer = layers.getLayerById(this._layers[i2]);\n\t\t\t\tif (layer) {\n\t\t\t\t\tlayer.addGSplatPlacement(this._placement);\n\t\t\t\t\tif (this._castShadows) {\n\t\t\t\t\t\tlayer.addGSplatShadowCaster(this._placement);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tconst meshInstance = this._instance?.meshInstance;\n\t\tif (meshInstance) {\n\t\t\tconst layers = this.system.app.scene.layers;\n\t\t\tfor (let i2 = 0; i2 < this._layers.length; i2++) {\n\t\t\t\tlayers.getLayerById(this._layers[i2])?.addMeshInstances([meshInstance]);\n\t\t\t}\n\t\t}\n\t}\n\tremoveFromLayers() {\n\t\tif (this._placement) {\n\t\t\tconst layers = this.system.app.scene.layers;\n\t\t\tfor (let i2 = 0; i2 < this._layers.length; i2++) {\n\t\t\t\tconst layer = layers.getLayerById(this._layers[i2]);\n\t\t\t\tif (layer) {\n\t\t\t\t\tlayer.removeGSplatPlacement(this._placement);\n\t\t\t\t\tlayer.removeGSplatShadowCaster(this._placement);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tconst meshInstance = this._instance?.meshInstance;\n\t\tif (meshInstance) {\n\t\t\tconst layers = this.system.app.scene.layers;\n\t\t\tfor (let i2 = 0; i2 < this._layers.length; i2++) {\n\t\t\t\tlayers.getLayerById(this._layers[i2])?.removeMeshInstances([meshInstance]);\n\t\t\t}\n\t\t}\n\t}\n\tonRemoveChild() {\n\t\tthis.removeFromLayers();\n\t}\n\tonInsertChild() {\n\t\tif (this.enabled && this.entity.enabled) {\n\t\t\tif (this._instance || this._placement) {\n\t\t\t\tthis.addToLayers();\n\t\t\t}\n\t\t}\n\t}\n\tonBeforeRemove() {\n\t\tif (this.enabled && this.entity.enabled) {\n\t\t\tthis.onDisable();\n\t\t}\n\t\tthis.destroyInstance();\n\t\tthis.asset = null;\n\t\tthis._assetReference.id = null;\n\t\tthis.entity.off(\"remove\", this.onRemoveChild, this);\n\t\tthis.entity.off(\"removehierarchy\", this.onRemoveChild, this);\n\t\tthis.entity.off(\"insert\", this.onInsertChild, this);\n\t\tthis.entity.off(\"inserthierarchy\", this.onInsertChild, this);\n\t}\n\tonLayersChanged(oldComp, newComp) {\n\t\tthis.addToLayers();\n\t\tthis._evtLayerAdded?.off();\n\t\tthis._evtLayerAdded = newComp.on(\"add\", this.onLayerAdded, this);\n\t\tthis._evtLayerRemoved?.off();\n\t\tthis._evtLayerRemoved = newComp.on(\"remove\", this.onLayerRemoved, this);\n\t}\n\tonLayerAdded(layer) {\n\t\tconst index = this.layers.indexOf(layer.id);\n\t\tif (index < 0) return;\n\t\tif (this.unified) return;\n\t\tif (this._instance) {\n\t\t\tlayer.addMeshInstances(this._instance.meshInstance);\n\t\t}\n\t}\n\tonLayerRemoved(layer) {\n\t\tconst index = this.layers.indexOf(layer.id);\n\t\tif (index < 0) return;\n\t\tif (this.unified) return;\n\t\tif (this._instance) {\n\t\t\tlayer.removeMeshInstances(this._instance.meshInstance);\n\t\t}\n\t}\n\tonEnable() {\n\t\tconst scene = this.system.app.scene;\n\t\tconst layers = scene.layers;\n\t\tthis._evtLayersChanged = scene.on(\"set:layers\", this.onLayersChanged, this);\n\t\tif (layers) {\n\t\t\tthis._evtLayerAdded = layers.on(\"add\", this.onLayerAdded, this);\n\t\t\tthis._evtLayerRemoved = layers.on(\"remove\", this.onLayerRemoved, this);\n\t\t}\n\t\tif (this._instance || this._placement) {\n\t\t\tthis.addToLayers();\n\t\t} else if (this.asset) {\n\t\t\tthis._onGSplatAssetAdded();\n\t\t} else if (this._resource) {\n\t\t\tthis._onGSplatAssetLoad();\n\t\t}\n\t}\n\tonDisable() {\n\t\tconst scene = this.system.app.scene;\n\t\tconst layers = scene.layers;\n\t\tthis._evtLayersChanged?.off();\n\t\tthis._evtLayersChanged = null;\n\t\tif (layers) {\n\t\t\tthis._evtLayerAdded?.off();\n\t\t\tthis._evtLayerAdded = null;\n\t\t\tthis._evtLayerRemoved?.off();\n\t\t\tthis._evtLayerRemoved = null;\n\t\t}\n\t\tthis.removeFromLayers();\n\t}\n\thide() {\n\t\tif (this._instance) {\n\t\t\tthis._instance.meshInstance.visible = false;\n\t\t}\n\t}\n\tshow() {\n\t\tif (this._instance) {\n\t\t\tthis._instance.meshInstance.visible = true;\n\t\t}\n\t}\n\tsetParameter(name, data2) {\n\t\tconst scopeId = this.system.app.graphicsDevice.scope.resolve(name);\n\t\tthis._parameters.set(name, { scopeId, data: data2 });\n\t\tif (this._placement) this._placement.markDirty();\n\t}\n\tgetParameter(name) {\n\t\treturn this._parameters.get(name)?.data;\n\t}\n\tdeleteParameter(name) {\n\t\tthis._parameters.delete(name);\n\t\tif (this._placement) this._placement.markDirty();\n\t}\n\tgetInstanceTexture(name) {\n\t\tif (!this._placement) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this._placement.getInstanceTexture(name, this.system.app.graphicsDevice) ?? null;\n\t}\n\t_onGSplatAssetAdded() {\n\t\tif (!this._assetReference.asset) {\n\t\t\treturn;\n\t\t}\n\t\tif (this._assetReference.asset.resource) {\n\t\t\tthis._onGSplatAssetLoad();\n\t\t} else if (this.enabled && this.entity.enabled) {\n\t\t\tthis.system.app.assets.load(this._assetReference.asset);\n\t\t}\n\t}\n\t_onGSplatAssetLoad() {\n\t\tthis.destroyInstance();\n\t\tconst resource = this._resource ?? this._assetReference.asset?.resource;\n\t\tif (!resource) return;\n\t\tif (this.unified) {\n\t\t\tthis._placement = null;\n\t\t\tthis._placement = new GSplatPlacement(resource, this.entity, 0, this._parameters, null, this._id);\n\t\t\tthis._placement.lodFalloff = this._lodFalloff;\n\t\t\tthis._placement.lodRangeMin = this._lodRangeMin;\n\t\t\tthis._placement.lodRangeMax = this._lodRangeMax;\n\t\t\tthis._placement.workBufferUpdate = this._workBufferUpdate;\n\t\t\tthis._placement.workBufferModifier = this._workBufferModifier;\n\t\t\tif (this.enabled && this.entity.enabled) {\n\t\t\t\tthis.addToLayers();\n\t\t\t}\n\t\t} else {\n\t\t\tthis.instance = new GSplatInstance(resource, {\n\t\t\t\tmaterial: this._materialTmp,\n\t\t\t\tscene: this.system.app.scene\n\t\t\t});\n\t\t\tthis._materialTmp = null;\n\t\t}\n\t}\n\t_onGSplatAssetUnload() {\n\t\tthis.destroyInstance();\n\t}\n\t_onGSplatAssetRemove() {\n\t\tthis._onGSplatAssetUnload();\n\t}\n};\n\nvar gsplatCenter_default = `\nuniform mat4 matrix_model;\nuniform mat4 matrix_view;\n#ifndef GSPLAT_CENTER_NOPROJ\n\tuniform vec4 camera_params;\n\tuniform mat4 matrix_projection;\n\t#ifdef GSPLAT_FISHEYE\n\t\tuniform float fisheye_k;\n\t\tuniform float fisheye_inv_k;\n\t\tuniform float fisheye_projMat00;\n\t\tuniform float fisheye_projMat11;\n\t#endif\n#endif\nbool initCenter(vec3 modelCenter, inout SplatCenter center) {\n\tmat4 modelView = matrix_view * matrix_model;\n\tvec4 centerView = modelView * vec4(modelCenter, 1.0);\n\t#ifndef GSPLAT_CENTER_NOPROJ\n\t\t#ifdef GSPLAT_FISHEYE\n\t\t\tvec3 v = centerView.xyz;\n\t\t\tfloat r_xy = length(v.xy);\n\t\t\tfloat neg_z = -v.z;\n\t\t\tfloat theta = atan(r_xy, neg_z);\n\t\t\tfloat maxTheta = min(fisheye_k * 1.5707963, 3.13);\n\t\t\tif (theta > maxTheta - 0.01 || dot(v, v) < 0.0001) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tfloat tk = theta * fisheye_inv_k;\n\t\t\tfloat sin_tk = sin(tk);\n\t\t\tfloat cos_tk = cos(tk);\n\t\t\tfloat g_theta = fisheye_k * sin_tk / cos_tk;\n\t\t\tfloat fisheye_s = (r_xy > 1e-4) ? g_theta / r_xy : (neg_z > 0.0 ? 1.0 / neg_z : 0.0);\n\t\t\tvec2 ndc = vec2(fisheye_projMat00 * fisheye_s * v.x, fisheye_projMat11 * fisheye_s * v.y);\n\t\t\tfloat near = camera_params.z;\n\t\t\tfloat far = camera_params.y;\n\t\t\tfloat linearDepth = neg_z;\n\t\t\t#if WEBGPU\n\t\t\t\tfloat depthNdc = clamp((linearDepth - near) / (far - near), 0.0, 1.0);\n\t\t\t#else\n\t\t\t\tfloat depthNdc = clamp(2.0 * (linearDepth - near) / (far - near) - 1.0, -1.0, 1.0);\n\t\t\t#endif\n\t\t\tcenter.proj = vec4(ndc, depthNdc, 1.0);\n\t\t\tcenter.projMat00 = fisheye_projMat00;\n\t\t\tcenter.fisheyeSinTK = sin_tk;\n\t\t\tcenter.fisheyeCosTK = cos_tk;\n\t\t\tcenter.fisheyeRxy = r_xy;\n\t\t#else\n\t\t\tif (camera_params.w != 1.0 && centerView.z > 0.0) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvec4 centerProj = matrix_projection * centerView;\n\t\t\t#if WEBGPU\n\t\t\t\tcenterProj.z = clamp(centerProj.z, 0, abs(centerProj.w));\n\t\t\t#else\n\t\t\t\tcenterProj.z = clamp(centerProj.z, -abs(centerProj.w), abs(centerProj.w));\n\t\t\t#endif\n\t\t\tcenter.proj = centerProj;\n\t\t\tcenter.projMat00 = matrix_projection[0][0];\n\t\t#endif\n\t#endif\n\tcenter.view = centerView.xyz / centerView.w;\n\tcenter.modelView = modelView;\n\treturn true;\n}\n`;\n\nvar gsplatCommon_default = `\n#include \"gsplatHelpersVS\"\n#include \"gsplatFormatVS\"\n#include \"gsplatStructsVS\"\n#include \"gsplatDeclarationsVS\"\n#include \"gsplatModifyVS\"\n#include \"gsplatEvalSHVS\"\n#include \"gsplatQuatToMat3VS\"\n#include \"gsplatReadVS\"\n#include \"gsplatSourceVS\"\n#include \"gsplatCenterVS\"\n#include \"gsplatCornerVS\"\n#include \"gsplatOutputVS\"\n#if defined(SHADOW_PASS) || defined(PICK_PASS) || defined(PREPASS_PASS)\nuniform float alphaClip;\n#else\nuniform float alphaClipForward;\n#endif\nvoid clipCorner(inout SplatCorner corner, float alpha) {\n\t#if defined(SHADOW_PASS) || defined(PICK_PASS) || defined(PREPASS_PASS)\n\t\tfloat alphaClipValue = alphaClip;\n\t#else\n\t\tfloat alphaClipValue = alphaClipForward;\n\t#endif\n\tfloat clip = min(1.0, sqrt(max(0.0, log(alpha / alphaClipValue))) * 0.5);\n\tcorner.offset *= clip;\n\tcorner.uv *= clip;\n}\n`;\n\nvar gsplatSplat_default = `\nstruct Splat {\n\tuint index;\n\tivec2 uv;\n};\nSplat splat;\nvoid setSplat(uint idx) {\n\tsplat.index = idx;\n\tsplat.uv = ivec2(idx % splatTextureSize, idx / splatTextureSize);\n}\n`;\n\nvar gsplatEvalSH_default = `\n\t#if SH_BANDS == 1\n\t\t#define SH_COEFFS 3\n\t#elif SH_BANDS == 2\n\t\t#define SH_COEFFS 8\n\t#elif SH_BANDS == 3\n\t\t#define SH_COEFFS 15\n\t#else\n\t\t#define SH_COEFFS 0\n\t#endif\n\t#if SH_BANDS > 0\n\tconst float SH_C1 = 0.4886025119029199f;\n\t#if SH_BANDS > 1\n\t\tconst float SH_C2_0 = 1.0925484305920792f;\n\t\tconst float SH_C2_1 = -1.0925484305920792f;\n\t\tconst float SH_C2_2 = 0.31539156525252005f;\n\t\tconst float SH_C2_3 = -1.0925484305920792f;\n\t\tconst float SH_C2_4 = 0.5462742152960396f;\n\t#endif\n\t#if SH_BANDS > 2\n\t\tconst float SH_C3_0 = -0.5900435899266435f;\n\t\tconst float SH_C3_1 = 2.890611442640554f;\n\t\tconst float SH_C3_2 = -0.4570457994644658f;\n\t\tconst float SH_C3_3 = 0.3731763325901154f;\n\t\tconst float SH_C3_4 = -0.4570457994644658f;\n\t\tconst float SH_C3_5 = 1.445305721320277f;\n\t\tconst float SH_C3_6 = -0.5900435899266435f;\n\t#endif\n\tvec3 evalSH(in vec3 sh[SH_COEFFS], in vec3 dir) {\n\t\tfloat x = dir.x;\n\t\tfloat y = dir.y;\n\t\tfloat z = dir.z;\n\t\tvec3 result = SH_C1 * (-sh[0] * y + sh[1] * z - sh[2] * x);\n\t\t#if SH_BANDS > 1\n\t\t\tfloat xx = x * x;\n\t\t\tfloat yy = y * y;\n\t\t\tfloat zz = z * z;\n\t\t\tfloat xy = x * y;\n\t\t\tfloat yz = y * z;\n\t\t\tfloat xz = x * z;\n\t\t\tresult +=\n\t\t\t\tsh[3] * (SH_C2_0 * xy) +\n\t\t\t\tsh[4] * (SH_C2_1 * yz) +\n\t\t\t\tsh[5] * (SH_C2_2 * (2.0 * zz - xx - yy)) +\n\t\t\t\tsh[6] * (SH_C2_3 * xz) +\n\t\t\t\tsh[7] * (SH_C2_4 * (xx - yy));\n\t\t#endif\n\t\t#if SH_BANDS > 2\n\t\t\tresult +=\n\t\t\t\tsh[8]  * (SH_C3_0 * y * (3.0 * xx - yy)) +\n\t\t\t\tsh[9]  * (SH_C3_1 * xy * z) +\n\t\t\t\tsh[10] * (SH_C3_2 * y * (4.0 * zz - xx - yy)) +\n\t\t\t\tsh[11] * (SH_C3_3 * z * (2.0 * zz - 3.0 * xx - 3.0 * yy)) +\n\t\t\t\tsh[12] * (SH_C3_4 * x * (4.0 * zz - xx - yy)) +\n\t\t\t\tsh[13] * (SH_C3_5 * z * (xx - yy)) +\n\t\t\t\tsh[14] * (SH_C3_6 * x * (xx - 3.0 * yy));\n\t\t#endif\n\t\treturn result;\n\t}\n\t#endif\n`;\n\nvar gsplatHelpers_default2 = `\nvoid gsplatMakeSpherical(inout vec3 scale, float size) {\n\tscale = vec3(size);\n}\nfloat gsplatGetSizeFromScale(vec3 scale) {\n\treturn sqrt((scale.x * scale.x + scale.y * scale.y + scale.z * scale.z) / 3.0);\n}\n`;\n\nvar gsplatModify_default2 = `\nvoid modifySplatCenter(inout vec3 center) {\n}\nvoid modifySplatRotationScale(vec3 originalCenter, vec3 modifiedCenter, inout vec4 rotation, inout vec3 scale) {\n}\nvoid modifySplatColor(vec3 center, inout vec4 color) {\n}\n`;\n\nvar gsplatModify_default3 = `\nvoid modifySplatColor(vec2 gaussianUV, inout vec4 color) {\n}\n`;\n\nvar gsplatWorkBufferGeometry_default = `\n#ifdef GSPLAT_WORKBUFFER_GEOMETRY\n\tuniform highp usampler2D uWorkBufferTransformA;\n\tuniform highp usampler2D uWorkBufferTransformB;\n\tuniform mat4 matrix_model_inverse;\n\tuniform vec3 uCameraPosition;\n\tivec2 wbCoord;\n\tuvec4 wbTransformA;\n\tvoid initWorkBufferGeometry(ivec2 coord) {\n\t\twbCoord = coord;\n\t\twbTransformA = texelFetch(uWorkBufferTransformA, coord, 0);\n\t}\n\tvec3 workBufferWorldCenter() {\n\t\treturn vec3(uintBitsToFloat(wbTransformA.x), uintBitsToFloat(wbTransformA.y), uintBitsToFloat(wbTransformA.z));\n\t}\n\tvec4 workBufferWorldRotation() {\n\t\t#ifdef GSPLAT_WORKBUFFER_COMPACT\n\t\t\tuint data = texelFetch(uWorkBufferTransformB, wbCoord, 0).x;\n\t\t\tvec3 p = vec3(\n\t\t\t\tfloat(data & 0x7FFu) / 2047.0 * 2.0 - 1.0,\n\t\t\t\tfloat((data >> 11u) & 0x7FFu) / 2047.0 * 2.0 - 1.0,\n\t\t\t\tfloat((data >> 22u) & 0x3FFu) / 1023.0 * 2.0 - 1.0\n\t\t\t);\n\t\t\tfloat d = dot(p, p);\n\t\t\treturn vec4(sqrt(max(0.0, 2.0 - d)) * p, 1.0 - d);\n\t\t#else\n\t\t\tvec2 rotXY = unpackHalf2x16(wbTransformA.w);\n\t\t\tvec3 r = vec3(rotXY, unpackHalf2x16(texelFetch(uWorkBufferTransformB, wbCoord, 0).x).x);\n\t\t\treturn vec4(r, sqrt(max(0.0, 1.0 - dot(r, r))));\n\t\t#endif\n\t}\n\tvec3 workBufferWorldScale() {\n\t\t#ifdef GSPLAT_WORKBUFFER_COMPACT\n\t\t\tuint data = wbTransformA.w;\n\t\t\tfloat sx = float(data & 0xFFu);\n\t\t\tfloat sy = float((data >> 8u) & 0xFFu);\n\t\t\tfloat sz = float((data >> 16u) & 0xFFu);\n\t\t\tconst float logRange = 21.0 / 255.0;\n\t\t\tconst float logMin = -12.0;\n\t\t\treturn vec3(\n\t\t\t\tsx == 0.0 ? 0.0 : exp(sx * logRange + logMin),\n\t\t\t\tsy == 0.0 ? 0.0 : exp(sy * logRange + logMin),\n\t\t\t\tsz == 0.0 ? 0.0 : exp(sz * logRange + logMin)\n\t\t\t);\n\t\t#else\n\t\t\tuvec2 b = texelFetch(uWorkBufferTransformB, wbCoord, 0).xy;\n\t\t\treturn vec3(unpackHalf2x16(b.x).y, unpackHalf2x16(b.y));\n\t\t#endif\n\t}\n\tvec3 quatRotateInv(vec4 q, vec3 v) {\n\t\tvec3 t = -q.xyz;\n\t\treturn v + 2.0 * cross(t, cross(t, v) + q.w * v);\n\t}\n\tvec3 getCenter() {\n\t\treturn (matrix_model_inverse * vec4(workBufferWorldCenter(), 1.0)).xyz;\n\t}\n\tvec4 getRotation() {\n\t\tvec4 worldRotation = workBufferWorldRotation();\n\t\tvec4 localRotation = quatMul(vec4(-model_rotation.xyz, model_rotation.w), worldRotation);\n\t\treturn localRotation.wxyz;\n\t}\n\tvec3 getScale() {\n\t\treturn workBufferWorldScale() / model_scale;\n\t}\n#endif\n`;\n\nvar gsplatQuatToMat3_default = `\nmat3 quatToMat3(vec4 R) {\n\tvec4 R2 = R + R;\n\tfloat X = R2.x * R.w;\n\tvec4 Y  = R2.y * R;\n\tvec4 Z  = R2.z * R;\n\tfloat W = R2.w * R.w;\n\treturn mat3(\n\t\t1.0 - Z.z - W,\n\t\t\t  Y.z + X,\n\t\t\t  Y.w - Z.x,\n\t\t\t  Y.z - X,\n\t\t1.0 - Y.y - W,\n\t\t\t  Z.w + Y.x,\n\t\t\t  Y.w + Z.x,\n\t\t\t  Z.w - Y.x,\n\t\t1.0 - Y.y - Z.z\n\t);\n}\nvec4 quatMul(vec4 a, vec4 b) {\n\treturn vec4(\n\t\ta.w * b.x + a.x * b.w + a.y * b.z - a.z * b.y,\n\t\ta.w * b.y - a.x * b.z + a.y * b.w + a.z * b.x,\n\t\ta.w * b.z + a.x * b.y - a.y * b.x + a.z * b.w,\n\t\ta.w * b.w - a.x * b.x - a.y * b.y - a.z * b.z\n\t);\n}\n`;\n\nvar gsplatStructs_default = `\n#include \"gsplatSplatVS\"\nstruct SplatSource {\n\tuint order;\n\tvec2 cornerUV;\n};\nstruct SplatCenter {\n\tvec3 view;\n\tvec4 proj;\n\tmat4 modelView;\n\tfloat projMat00;\n\tvec3 modelCenterOriginal;\n\tvec3 modelCenterModified;\n\t#ifdef GSPLAT_FISHEYE\n\t\tfloat fisheyeSinTK;\n\t\tfloat fisheyeCosTK;\n\t\tfloat fisheyeRxy;\n\t#endif\n};\nstruct SplatCorner {\n\tvec3 offset;\n\tvec2 uv;\n\t#if GSPLAT_AA\n\t\tfloat aaFactor;\n\t#endif\n\tvec2 v;\n\tfloat dlen;\n};\n`;\n\nvar gsplatCorner_default = `\nuniform vec4 viewport_size;\nuniform float minPixelSize;\nvoid computeCovariance(vec4 rotation, vec3 scale, out vec3 covA, out vec3 covB) {\n\tmat3 rot = quatToMat3(rotation);\n\tmat3 M = transpose(mat3(\n\t\tscale.x * rot[0],\n\t\tscale.y * rot[1],\n\t\tscale.z * rot[2]\n\t));\n\tcovA = vec3(dot(M[0], M[0]), dot(M[0], M[1]), dot(M[0], M[2]));\n\tcovB = vec3(dot(M[1], M[1]), dot(M[1], M[2]), dot(M[2], M[2]));\n}\nbool initCornerCov(SplatSource source, SplatCenter center, out SplatCorner corner, vec3 covA, vec3 covB) {\n\tmat3 Vrk = mat3(\n\t\tcovA.x, covA.y, covA.z, \n\t\tcovA.y, covB.x, covB.y,\n\t\tcovA.z, covB.y, covB.z\n\t);\n\tfloat focal = viewport_size.x * center.projMat00;\n\tvec3 v = center.view.xyz;\n\t#ifdef GSPLAT_FISHEYE\n\t\tfloat r_sq = max(center.fisheyeRxy * center.fisheyeRxy, 1e-8);\n\t\tfloat d2 = dot(v, v);\n\t\tfloat neg_z = -v.z;\n\t\tfloat g_prime = 1.0 / (center.fisheyeCosTK * center.fisheyeCosTK);\n\t\tfloat g_theta = fisheye_k * center.fisheyeSinTK / center.fisheyeCosTK;\n\t\tfloat sv = (center.fisheyeRxy > 1e-4) ? g_theta / center.fisheyeRxy : (neg_z > 0.0 ? 1.0 / neg_z : 0.0);\n\t\tfloat K = (center.fisheyeRxy > 1e-4) ? (g_prime * neg_z / d2 - sv) / r_sq : 0.0;\n\t\tmat3 J = mat3(\n\t\t\tfocal * (sv + K * v.x * v.x),  focal * K * v.x * v.y,\t\t focal * g_prime * v.x / d2,\n\t\t\tfocal * K * v.x * v.y,\t\tfocal * (sv + K * v.y * v.y),\tfocal * g_prime * v.y / d2,\n\t\t\t0.0,\t\t\t\t\t\t   0.0,\t\t\t\t\t\t\t0.0\n\t\t);\n\t#else\n\t\tvec3 vp = camera_params.w == 1.0 ? vec3(0.0, 0.0, 1.0) : v;\n\t\tfloat J1 = focal / vp.z;\n\t\tvec2 J2 = -J1 / vp.z * vp.xy;\n\t\tmat3 J = mat3(\n\t\t\tJ1, 0.0, J2.x,\n\t\t\t0.0, J1, J2.y,\n\t\t\t0.0, 0.0, 0.0\n\t\t);\n\t#endif\n\tmat3 W = transpose(mat3(center.modelView));\n\tmat3 T = W * J;\n\tmat3 cov = transpose(T) * Vrk * T;\n\t#if GSPLAT_AA\n\t\tfloat detOrig = cov[0][0] * cov[1][1] - cov[0][1] * cov[0][1];\n\t\tfloat detBlur = (cov[0][0] + 0.3) * (cov[1][1] + 0.3) - cov[0][1] * cov[0][1];\n\t\tcorner.aaFactor = sqrt(max(detOrig / detBlur, 0.0));\n\t#endif\n\tfloat diagonal1 = cov[0][0] + 0.3;\n\tfloat offDiagonal = cov[0][1];\n\tfloat diagonal2 = cov[1][1] + 0.3;\n\tfloat mid = 0.5 * (diagonal1 + diagonal2);\n\tfloat radius = length(vec2((diagonal1 - diagonal2) / 2.0, offDiagonal));\n\tfloat lambda1 = mid + radius;\n\tfloat lambda2 = max(mid - radius, 0.1);\n\tfloat vmin = min(1024.0, min(viewport_size.x, viewport_size.y));\n\tfloat l1 = 2.0 * min(sqrt(2.0 * lambda1), vmin);\n\tfloat l2 = 2.0 * min(sqrt(2.0 * lambda2), vmin);\n\tif (max(l1, l2) < minPixelSize) {\n\t\treturn false;\n\t}\n\tvec2 c = center.proj.ww * viewport_size.zw;\n\tif (any(greaterThan(abs(center.proj.xy) - vec2(max(l1, l2)) * c, center.proj.ww))) {\n\t\treturn false;\n\t}\n\tvec2 diagonalVector = normalize(vec2(offDiagonal, lambda1 - diagonal1));\n\tvec2 v1 = l1 * diagonalVector;\n\tvec2 v2 = l2 * vec2(diagonalVector.y, -diagonalVector.x);\n\tcorner.offset = vec3((source.cornerUV.x * v1 + source.cornerUV.y * v2) * c, 0.0);\n\tcorner.uv = source.cornerUV;\n\treturn true;\n}\n#if GSPLAT_2DGS\nvoid initCorner2DGS(SplatSource source, vec4 rotation, vec3 scale, out SplatCorner corner) {\n\tvec2 localPos = source.cornerUV * vec2(scale.x, scale.y) * 3.0;\n\tvec3 v = vec3(localPos, 0.0);\n\tvec3 t = 2.0 * cross(rotation.xyz, v);\n\tcorner.offset = v + rotation.w * t + cross(rotation.xyz, t);\n\tcorner.uv = source.cornerUV;\n}\n#endif\nbool initCorner(SplatSource source, SplatCenter center, out SplatCorner corner) {\n\tvec4 rotation = getRotation().yzwx;\n\tvec3 scale = getScale();\n\tmodifySplatRotationScale(center.modelCenterOriginal, center.modelCenterModified, rotation, scale);\n\t#if GSPLAT_2DGS\n\t\tinitCorner2DGS(source, rotation, scale, corner);\n\t\treturn true;\n\t#else\n\t\tvec3 covA, covB;\n\t\tcomputeCovariance(rotation.wxyz, scale, covA, covB);\n\t\treturn initCornerCov(source, center, corner, covA, covB);\n\t#endif\n}\n`;\n\nvar gsplatOutput_default = `\n#include \"tonemappingPS\"\n#include \"decodePS\"\n#include \"gammaPS\"\n#include \"fogPS\"\n#if FOG != NONE && !defined(GSPLAT_NO_FOG)\n\t#define GSPLAT_FOG\n#endif\n#if TONEMAP != NONE && !defined(GSPLAT_NO_TONEMAP)\n\t#define GSPLAT_TONEMAP\n#endif\nvec3 prepareOutputFromGamma(vec3 gammaColor, float depth) {\n\tvec3 color = gammaColor;\n\t#if defined(GSPLAT_TONEMAP) || GAMMA == NONE || defined(GSPLAT_FOG)\n\t\tcolor = decodeGamma(color);\n\t#endif\n\t#ifdef GSPLAT_FOG\n\t\tcolor = addFog(color, depth);\n\t#endif\n\t#ifdef GSPLAT_TONEMAP\n\t\tcolor = toneMap(color);\n\t#endif\n\t#if defined(GSPLAT_TONEMAP) || (GAMMA != NONE && defined(GSPLAT_FOG))\n\t\tcolor = gammaCorrectOutput(color);\n\t#endif\n\treturn color;\n}\n`;\n\nvar gsplat_default = `\n#ifndef DITHER_NONE\n\t#include \"bayerPS\"\n\t#include \"opacityDitherPS\"\n\tvarying float id;\n#endif\n#if defined(SHADOW_PASS) || defined(PICK_PASS) || defined(PREPASS_PASS)\n\tuniform float alphaClip;\n#endif\n#ifdef PREPASS_PASS\n\tvarying float vLinearDepth;\n\t#include \"floatAsUintPS\"\n#endif\n#if defined(SCENE_TEXTURE_DEPTH) && !defined(PREPASS_PASS)\n\tvarying float vLinearDepth;\n#endif\n#include \"sceneTexturesPS\"\n#if !defined(SHADOW_PASS) && !defined(PICK_PASS) && !defined(PREPASS_PASS)\n\tuniform float alphaClipForward;\n#endif\nvarying mediump vec2 gaussianUV;\nvarying mediump vec4 gaussianColor;\n#if defined(GSPLAT_UNIFIED_ID) && defined(PICK_PASS)\n\tflat varying uint vPickId;\n#endif\n#ifdef PICK_PASS\n\t#include \"pickPS\"\n#endif\n#ifdef SHADOW_PASS\n\t#include \"shadowCasterPS\"\n#endif\n#ifdef GSPLAT_USER_VARYINGS\n\t#include \"gsplatUserVaryingsPS\"\n#endif\n#include \"gsplatModifyPS\"\nconst float EXP4 = exp(-4.0);\nconst float INV_EXP4 = 1.0 / (1.0 - EXP4);\nfloat normExp(float x) {\n\treturn (exp(x * -4.0) - EXP4) * INV_EXP4;\n}\nvoid main(void) {\n\tmediump float A = dot(gaussianUV, gaussianUV);\n\tif (A > 1.0) {\n\t\tdiscard;\n\t}\n\tmediump float alpha = normExp(A) * gaussianColor.a;\n\t#if defined(SHADOW_PASS) || defined(PICK_PASS) || defined(PREPASS_PASS)\n\t\tif (alpha < alphaClip) {\n\t\t\tdiscard;\n\t\t}\n\t#endif\n\t#ifdef PICK_PASS\n\t\t#ifdef GSPLAT_UNIFIED_ID\n\t\t\tpcFragColor0 = encodePickOutput(vPickId);\n\t\t#else\n\t\t\tpcFragColor0 = getPickOutput();\n\t\t#endif\n\t\t#ifdef DEPTH_PICK_PASS\n\t\t\tpcFragColor1 = getPickDepth();\n\t\t#endif\n\t#elif SHADOW_PASS\n\t\tgl_FragColor = getShadowOutput();\n\t#elif PREPASS_PASS\n\t\tgl_FragColor = float2vec4(vLinearDepth);\n\t#else\n\t\tif (alpha < alphaClipForward) {\n\t\t\tdiscard;\n\t\t}\n\t\t#ifndef DITHER_NONE\n\t\t\topacityDither(alpha, id * 0.013);\n\t\t#endif\n\t\tvec4 fragColor = vec4(gaussianColor.xyz, alpha);\n\t\tmodifySplatColor(gaussianUV, fragColor);\n\t\tgl_FragColor = vec4(fragColor.xyz * fragColor.a, fragColor.a);\n\t\t#ifdef SCENE_TEXTURE_DEPTH\n\t\t\t#ifdef DITHER_NONE\n\t\t\t\twriteSceneTextureDepth(vLinearDepth, fragColor.a);\n\t\t\t#else\n\t\t\t\twriteSceneTextureDepth(vLinearDepth, 1.0);\n\t\t\t#endif\n\t\t#endif\n\t#endif\n}\n`;\n\nvar gsplatSource_default = `\nattribute vec3 vertex_position;\nuniform uint numSplats;\nuniform highp usampler2D splatOrder;\nbool initSource(out SplatSource source) {\n\tsource.order = uint(gl_InstanceID) * {GSPLAT_INSTANCE_SIZE}u + uint(vertex_position.z);\n\tif (source.order >= numSplats) {\n\t\treturn false;\n\t}\n\tivec2 orderUV = ivec2(source.order % splatTextureSize, source.order / splatTextureSize);\n\tuint splatId = texelFetch(splatOrder, orderUV, 0).r;\n\tsetSplat(splatId);\n\tsource.cornerUV = vertex_position.xy;\n\treturn true;\n}\n`;\n\nvar gsplat_default2 = `\n#ifdef GSPLAT_USER_VARYINGS\n\t#include \"gsplatUserVaryingsVS\"\n#endif\n#include \"gsplatCommonVS\"\nvarying mediump vec2 gaussianUV;\nvarying mediump vec4 gaussianColor;\n#ifndef DITHER_NONE\n\tvarying float id;\n#endif\nmediump vec4 discardVec = vec4(0.0, 0.0, 2.0, 1.0);\n#if defined(PREPASS_PASS) || defined(SCENE_TEXTURE_DEPTH)\n\tvarying float vLinearDepth;\n#endif\n#if defined(GSPLAT_UNIFIED_ID) && defined(PICK_PASS)\n\tflat varying uint vPickId;\n#endif\n#ifdef GSPLAT_OVERDRAW\n\tuniform sampler2D colorRamp;\n\tuniform float colorRampIntensity;\n#endif\nvoid main(void) {\n\tSplatSource source;\n\tif (!initSource(source)) {\n\t\tgl_Position = discardVec;\n\t\treturn;\n\t}\n\tvec3 modelCenter = getCenter();\n\tSplatCenter center;\n\tcenter.modelCenterOriginal = modelCenter;\n\t\n\tmodifySplatCenter(modelCenter);\n\tcenter.modelCenterModified = modelCenter;\n\tif (!initCenter(modelCenter, center)) {\n\t\tgl_Position = discardVec;\n\t\treturn;\n\t}\n\tSplatCorner corner;\n\tif (!initCorner(source, center, corner)) {\n\t\tgl_Position = discardVec;\n\t\treturn;\n\t}\n\t#ifdef GSPLAT_SEPARATE_OPACITY\n\t\tfloat opacity = getOpacity();\n\t\tvec4 clr = vec4(getColor(), opacity);\n\t#else\n\t\tvec4 clr = getColor();\n\t#endif\n\t#if GSPLAT_AA\n\t\tclr.a *= corner.aaFactor;\n\t#endif\n\t#if SH_BANDS > 0\n\t\tvec3 dir = normalize(center.view * mat3(center.modelView));\n\t\tvec3 sh[SH_COEFFS];\n\t\tfloat scale;\n\t\treadSHData(sh, scale);\n\t\tclr.xyz += evalSH(sh, dir) * scale;\n\t#endif\n\tmodifySplatColor(modelCenter, clr);\n\t#if defined(SHADOW_PASS) || defined(PICK_PASS) || defined(PREPASS_PASS)\n\t\tfloat alphaClipValue = alphaClip;\n\t#else\n\t\tfloat alphaClipValue = alphaClipForward;\n\t#endif\n\tif (clr.w <= alphaClipValue) {\n\t\tgl_Position = discardVec;\n\t\treturn;\n\t}\n\tclipCorner(corner, clr.w);\n\t#if GSPLAT_2DGS\n\t\tvec3 modelCorner = center.modelCenterModified + corner.offset;\n\t\tgl_Position = matrix_projection * center.modelView * vec4(modelCorner, 1.0);\n\t#else\n\t\tgl_Position = center.proj + vec4(corner.offset.xyz, 0);\n\t#endif\n\tgaussianUV = corner.uv;\n\t#ifdef GSPLAT_OVERDRAW\n\t\tfloat t = clamp(modelCenter.y / 20.0, 0.0, 1.0);\n\t\tvec3 rampColor = textureLod(colorRamp, vec2(t, 0.5), 0.0).rgb;\n\t\tclr.a *= (1.0 / 32.0) * colorRampIntensity;\n\t\tgaussianColor = vec4(rampColor, clr.a);\n\t#else\n\t\tgaussianColor = vec4(prepareOutputFromGamma(max(clr.xyz, 0.0), -center.view.z), clr.w);\n\t#endif\n\t#ifndef DITHER_NONE\n\t\tid = float(splat.index);\n\t#endif\n\t#if defined(PREPASS_PASS) || defined(SCENE_TEXTURE_DEPTH)\n\t\tvLinearDepth = -center.view.z;\n\t#endif\n\t#if defined(GSPLAT_UNIFIED_ID) && defined(PICK_PASS)\n\t\tvPickId = loadPcId().r;\n\t#endif\n}\n`;\n\nvar gsplatPacking_default = `\nuint pack8888(vec4 v) {\n\tuvec4 t = uvec4(v * 255.0) << uvec4(24u, 16u, 8u, 0u);\n\treturn t.x | t.y | t.z | t.w;\n}\nuint pack101010(vec3 v) {\n\tuvec3 t = uvec3(v * 1023.0) << uvec3(20u, 10u, 0u);\n\treturn t.x | t.y | t.z;\n}\nuint pack111110(vec3 v) {\n\tuvec3 t = uvec3(v * vec3(2047.0, 2047.0, 1023.0)) << uvec3(21u, 10u, 0u);\n\treturn t.x | t.y | t.z;\n}\nvec4 unpack8888(uint v) {\n\treturn vec4((uvec4(v) >> uvec4(24u, 16u, 8u, 0u)) & 0xffu) / 255.0;\n}\nvec3 unpack101010(uint v) {\n\treturn vec3((uvec3(v) >> uvec3(20u, 10u, 0u)) & 0x3ffu) / 1023.0;\n}\nvec3 unpack111110(uint v) {\n\treturn vec3((uvec3(v) >> uvec3(21u, 10u, 0u)) & uvec3(0x7ffu, 0x7ffu, 0x3ffu)) / vec3(2047.0, 2047.0, 1023.0);\n}\nvec3 resolveCodebook(vec3 s, vec4 codebook[64]) {\n\tuvec3 idx = uvec3(s * 255.0);\n\tvec3 v = vec3(\n\t\tcodebook[idx.x >> 2u][idx.x & 3u],\n\t\tcodebook[idx.y >> 2u][idx.y & 3u],\n\t\tcodebook[idx.z >> 2u][idx.z & 3u]\n\t);\n\treturn (v - codebook[0].x) / (codebook[63].w - codebook[0].x);\n}\n`;\n\nvar gsplatFormat_default = `\nuniform uint splatTextureSize;\n`;\n\nvar uncompressed_default = `\nuint tAw;\nvec4 tBcached;\nvec4 unpackRotation(vec3 data) {\n\treturn vec4(data.xyz, sqrt(max(0.0, 1.0 - dot(data, data))));\n}\nvec3 getCenter() {\n\tuvec4 tA = loadTransformA();\n\ttAw = tA.w;\n\ttBcached = loadTransformB();\n\treturn uintBitsToFloat(tA.xyz);\n}\nvec4 getColor() {\n\treturn loadSplatColor();\n}\nvec4 getRotation() {\n\treturn unpackRotation(vec3(unpackHalf2x16(tAw), tBcached.w)).wxyz;\n}\nvec3 getScale() {\n\treturn tBcached.xyz;\n}\n#include \"gsplatUncompressedSHVS\"\n`;\n\nvar uncompressedSH_default = `\n#if SH_BANDS > 0\nvec3 unpack111011s(uint bits) {\n\treturn vec3((uvec3(bits) >> uvec3(21u, 11u, 0u)) & uvec3(0x7ffu, 0x3ffu, 0x7ffu)) / vec3(2047.0, 1023.0, 2047.0) * 2.0 - 1.0;\n}\nvoid fetchScale(in uvec4 t, out float scale, out vec3 a, out vec3 b, out vec3 c) {\n\tscale = uintBitsToFloat(t.x);\n\ta = unpack111011s(t.y);\n\tb = unpack111011s(t.z);\n\tc = unpack111011s(t.w);\n}\nvoid fetch(in uvec4 t, out vec3 a, out vec3 b, out vec3 c, out vec3 d) {\n\ta = unpack111011s(t.x);\n\tb = unpack111011s(t.y);\n\tc = unpack111011s(t.z);\n\td = unpack111011s(t.w);\n}\nvoid fetch(in uint t, out vec3 a) {\n\ta = unpack111011s(t);\n}\n#if SH_BANDS == 1\n\tvoid readSHData(out vec3 sh[3], out float scale) {\n\t\tfetchScale(loadSplatSH_1to3(), scale, sh[0], sh[1], sh[2]);\n\t}\n#elif SH_BANDS == 2\n\tvoid readSHData(out vec3 sh[8], out float scale) {\n\t\tfetchScale(loadSplatSH_1to3(), scale, sh[0], sh[1], sh[2]);\n\t\tfetch(loadSplatSH_4to7(), sh[3], sh[4], sh[5], sh[6]);\n\t\tfetch(loadSplatSH_8to11().x, sh[7]);\n\t}\n#else\n\tvoid readSHData(out vec3 sh[15], out float scale) {\n\t\tfetchScale(loadSplatSH_1to3(), scale, sh[0], sh[1], sh[2]);\n\t\tfetch(loadSplatSH_4to7(), sh[3], sh[4], sh[5], sh[6]);\n\t\tfetch(loadSplatSH_8to11(), sh[7], sh[8], sh[9], sh[10]);\n\t\tfetch(loadSplatSH_12to15(), sh[11], sh[12], sh[13], sh[14]);\n\t}\n#endif\n#endif\n`;\n\nvar compressed_default = `\n#include \"gsplatPackingPS\"\nuniform highp sampler2D chunkTexture;\nvec4 chunkDataA;\nvec4 chunkDataB;\nvec4 chunkDataC;\nvec4 chunkDataD;\nvec4 chunkDataE;\nuvec4 packedData;\nvec3 unpack111011(uint bits) {\n\treturn vec3(\n\t\tfloat(bits >> 21u) / 2047.0,\n\t\tfloat((bits >> 11u) & 0x3ffu) / 1023.0,\n\t\tfloat(bits & 0x7ffu) / 2047.0\n\t);\n}\nconst float norm = sqrt(2.0);\nvec4 unpackRotation(uint bits) {\n\tfloat a = (float((bits >> 20u) & 0x3ffu) / 1023.0 - 0.5) * norm;\n\tfloat b = (float((bits >> 10u) & 0x3ffu) / 1023.0 - 0.5) * norm;\n\tfloat c = (float(bits & 0x3ffu) / 1023.0 - 0.5) * norm;\n\tfloat m = sqrt(1.0 - (a * a + b * b + c * c));\n\tuint mode = bits >> 30u;\n\tif (mode == 0u) return vec4(m, a, b, c);\n\tif (mode == 1u) return vec4(a, m, b, c);\n\tif (mode == 2u) return vec4(a, b, m, c);\n\treturn vec4(a, b, c, m);\n}\nvec3 getCenter() {\n\tuint w = uint(textureSize(chunkTexture, 0).x) / 5u;\n\tuint chunkId = splat.index / 256u;\n\tivec2 chunkUV = ivec2((chunkId % w) * 5u, chunkId / w);\n\tchunkDataA = texelFetch(chunkTexture, chunkUV, 0);\n\tchunkDataB = texelFetch(chunkTexture, chunkUV + ivec2(1, 0), 0);\n\tchunkDataC = texelFetch(chunkTexture, chunkUV + ivec2(2, 0), 0);\n\tchunkDataD = texelFetch(chunkTexture, chunkUV + ivec2(3, 0), 0);\n\tchunkDataE = texelFetch(chunkTexture, chunkUV + ivec2(4, 0), 0);\n\tpackedData = loadPackedTexture();\n\treturn mix(chunkDataA.xyz, vec3(chunkDataA.w, chunkDataB.xy), unpack111011(packedData.x));\n}\nvec4 getColor() {\n\tvec4 r = unpack8888(packedData.w);\n\treturn vec4(mix(chunkDataD.xyz, vec3(chunkDataD.w, chunkDataE.xy), r.rgb), r.w);\n}\nvec4 getRotation() {\n\treturn unpackRotation(packedData.y);\n}\nvec3 getScale() {\n\treturn exp(mix(vec3(chunkDataB.zw, chunkDataC.x), chunkDataC.yzw, unpack111011(packedData.z)));\n}\n#include \"gsplatCompressedSHVS\"\n`;\n\nvar compressedSH_default = `\n#if SH_BANDS > 0\nvec4 unpack8888s(in uint bits) {\n\treturn vec4((uvec4(bits) >> uvec4(0u, 8u, 16u, 24u)) & 0xffu) * (8.0 / 255.0) - 4.0;\n}\nvoid readSHData(out vec3 sh[15], out float scale) {\n\tuvec4 shData0 = loadShTexture0();\n\tuvec4 shData1 = loadShTexture1();\n\tuvec4 shData2 = loadShTexture2();\n\tvec4 r0 = unpack8888s(shData0.x);\n\tvec4 r1 = unpack8888s(shData0.y);\n\tvec4 r2 = unpack8888s(shData0.z);\n\tvec4 r3 = unpack8888s(shData0.w);\n\tvec4 g0 = unpack8888s(shData1.x);\n\tvec4 g1 = unpack8888s(shData1.y);\n\tvec4 g2 = unpack8888s(shData1.z);\n\tvec4 g3 = unpack8888s(shData1.w);\n\tvec4 b0 = unpack8888s(shData2.x);\n\tvec4 b1 = unpack8888s(shData2.y);\n\tvec4 b2 = unpack8888s(shData2.z);\n\tvec4 b3 = unpack8888s(shData2.w);\n\tsh[0] =  vec3(r0.x, g0.x, b0.x);\n\tsh[1] =  vec3(r0.y, g0.y, b0.y);\n\tsh[2] =  vec3(r0.z, g0.z, b0.z);\n\tsh[3] =  vec3(r0.w, g0.w, b0.w);\n\tsh[4] =  vec3(r1.x, g1.x, b1.x);\n\tsh[5] =  vec3(r1.y, g1.y, b1.y);\n\tsh[6] =  vec3(r1.z, g1.z, b1.z);\n\tsh[7] =  vec3(r1.w, g1.w, b1.w);\n\tsh[8] =  vec3(r2.x, g2.x, b2.x);\n\tsh[9] =  vec3(r2.y, g2.y, b2.y);\n\tsh[10] = vec3(r2.z, g2.z, b2.z);\n\tsh[11] = vec3(r2.w, g2.w, b2.w);\n\tsh[12] = vec3(r3.x, g3.x, b3.x);\n\tsh[13] = vec3(r3.y, g3.y, b3.y);\n\tsh[14] = vec3(r3.z, g3.z, b3.z);\n\tscale = 1.0;\n}\n#endif\n`;\n\nvar sog_default = `\nuniform vec3 means_mins;\nuniform vec3 means_maxs;\n#ifndef SOG_V2\n\tuniform vec3 scales_mins;\n\tuniform vec3 scales_maxs;\n\tuniform vec4 sh0_mins;\n\tuniform vec4 sh0_maxs;\n#endif\nconst float SH_C0 = 0.28209479177387814;\nconst float norm = sqrt(2.0);\n#ifdef SOG_V2\n\tfloat lutScales(int b) { return texelFetch(sogCodebook, ivec2(b, 0), 0).r; }\n\tfloat lutSh0(int b)\t{ return texelFetch(sogCodebook, ivec2(b, 0), 0).g; }\n\tfloat lutShN(int b)\t{ return texelFetch(sogCodebook, ivec2(b, 0), 0).b; }\n#endif\n#ifndef GSPLAT_WORKBUFFER_GEOMETRY\nvec3 getCenter() {\n\tvec3 l = texelFetch(means_l, splat.uv, 0).xyz;\n\tvec3 u = texelFetch(means_u, splat.uv, 0).xyz;\n\tvec3 n = (l + u * 256.0) / 257.0;\n\tvec3 v = mix(means_mins, means_maxs, n);\n\treturn sign(v) * (exp(abs(v)) - 1.0);\n}\nvec4 getRotation() {\n\tvec4 q = texelFetch(quats, splat.uv, 0);\n\tuint qmode = uint(q.w * 255.0 + 0.5) - 252u;\n\tvec3 abc = (q.xyz - 0.5) * norm;\n\tfloat d = sqrt(max(0.0, 1.0 - dot(abc, abc)));\n\treturn (qmode == 0u) ? vec4(d, abc) :\n\t\t   ((qmode == 1u) ? vec4(abc.x, d, abc.yz) :\n\t\t   ((qmode == 2u) ? vec4(abc.xy, d, abc.z) : vec4(abc, d)));\n}\nvec3 getScale() {\n\tvec3 s = texelFetch(scales, splat.uv, 0).xyz;\n\t#ifdef SOG_V2\n\t\tivec3 i = ivec3(s * 255.0 + 0.5);\n\t\tvec3 logS = vec3(lutScales(i.x), lutScales(i.y), lutScales(i.z));\n\t#else\n\t\tvec3 logS = mix(scales_mins, scales_maxs, s);\n\t#endif\n\treturn exp(logS);\n}\n#endif\nvec4 getColor() {\n\tvec4 c = texelFetch(sh0, splat.uv, 0);\n\t#ifdef SOG_V2\n\t\tivec3 i = ivec3(c.xyz * 255.0 + 0.5);\n\t\tvec3 rgb = vec3(lutSh0(i.x), lutSh0(i.y), lutSh0(i.z));\n\t\tfloat alpha = c.w;\n\t#else\n\t\tvec3 rgb = mix(sh0_mins.xyz, sh0_maxs.xyz, c.xyz);\n\t\tfloat logitAlpha = mix(sh0_mins.w, sh0_maxs.w, c.w);\n\t\tfloat alpha = 1.0 / (1.0 + exp(-logitAlpha));\n\t#endif\n\treturn vec4(vec3(0.5) + rgb * SH_C0, alpha);\n}\n#include \"gsplatSogSHVS\"\n`;\n\nvar sogSH_default = `\n#if SH_BANDS > 0\n\t#ifndef SOG_V2\n\t\tuniform float shN_mins;\n\t\tuniform float shN_maxs;\n\t#endif\n\tvoid readSHData(out vec3 sh[SH_COEFFS], out float scale) {\n\t\tvec4 labels = texelFetch(sh_labels, splat.uv, 0);\n\t\tint n = int(labels.x * 255.0 + 0.5) + int(labels.y * 255.0 + 0.5) * 256;\n\t\tint u = (n % 64) * SH_COEFFS;\n\t\tint v = n / 64;\n\t\tfor (int i = 0; i < SH_COEFFS; i++) {\n\t\t\tvec4 t = texelFetch(sh_centroids, ivec2(u + i, v), 0);\n\t\t\t#ifdef SOG_V2\n\t\t\t\tivec3 idx = ivec3(t.xyz * 255.0 + 0.5);\n\t\t\t\tsh[i] = vec3(lutShN(idx.x), lutShN(idx.y), lutShN(idx.z));\n\t\t\t#else\n\t\t\t\tsh[i] = mix(vec3(shN_mins), vec3(shN_maxs), t.xyz);\n\t\t\t#endif\n\t\t}\n\t\tscale = 1.0;\n\t}\n#endif\n`;\n\nvar containerDecl_default = `\n#include \"gsplatContainerDeclarationsVS\"\nvec3 splatCenter;\nvec4 splatColor;\nvec3 splatScale;\nvec4 splatRotation;\n`;\n\nvar containerRead_default = `\nvec3 getCenter() {\n\t#include \"gsplatContainerUserReadVS\"\n\treturn splatCenter;\n}\nvec4 getRotation() {\n\treturn splatRotation;\n}\nvec3 getScale() {\n\treturn splatScale;\n}\nvec4 getColor() {\n\treturn splatColor;\n}\n`;\n\nvar gsplatChunksGLSL = {\n\tgsplatCenterVS: gsplatCenter_default,\n\tgsplatCornerVS: gsplatCorner_default,\n\tgsplatCommonVS: gsplatCommon_default,\n\tgsplatSplatVS: gsplatSplat_default,\n\tgsplatEvalSHVS: gsplatEvalSH_default,\n\tgsplatHelpersVS: gsplatHelpers_default2,\n\tgsplatModifyVS: gsplatModify_default2,\n\tgsplatModifyPS: gsplatModify_default3,\n\tgsplatWorkBufferGeometryPS: gsplatWorkBufferGeometry_default,\n\tgsplatQuatToMat3VS: gsplatQuatToMat3_default,\n\tgsplatStructsVS: gsplatStructs_default,\n\tgsplatOutputVS: gsplatOutput_default,\n\tgsplatPS: gsplat_default,\n\tgsplatSourceVS: gsplatSource_default,\n\tgsplatVS: gsplat_default2,\n\tgsplatPackingPS: gsplatPacking_default,\n\tgsplatFormatVS: gsplatFormat_default,\n\tgsplatUncompressedVS: uncompressed_default,\n\tgsplatUncompressedSHVS: uncompressedSH_default,\n\tgsplatCompressedVS: compressed_default,\n\tgsplatCompressedSHVS: compressedSH_default,\n\tgsplatSogVS: sog_default,\n\tgsplatSogSHVS: sogSH_default,\n\tgsplatContainerDeclVS: containerDecl_default,\n\tgsplatContainerReadVS: containerRead_default,\n\tgsplatContainerFloatReadVS: containerFloatRead_default\n};\n\nvar gsplatCenter_default2 = `\nuniform matrix_model: mat4x4f;\nuniform matrix_view: mat4x4f;\n#ifndef GSPLAT_CENTER_NOPROJ\n\tuniform camera_params: vec4f;\n\tuniform matrix_projection: mat4x4f;\n\t#ifdef GSPLAT_FISHEYE\n\t\tuniform fisheye_k: f32;\n\t\tuniform fisheye_inv_k: f32;\n\t\tuniform fisheye_projMat00: f32;\n\t\tuniform fisheye_projMat11: f32;\n\t#endif\n#endif\nfn initCenter(modelCenter: vec3f, center: ptr<function, SplatCenter>) -> bool {\n\tlet modelView: mat4x4f = uniform.matrix_view * uniform.matrix_model;\n\tlet centerView: vec4f = modelView * vec4f(modelCenter, 1.0);\n\t#ifndef GSPLAT_CENTER_NOPROJ\n\t\t#ifdef GSPLAT_FISHEYE\n\t\t\tlet v: vec3f = centerView.xyz;\n\t\t\tlet r_xy: f32 = length(v.xy);\n\t\t\tlet neg_z: f32 = -v.z;\n\t\t\tlet theta: f32 = atan2(r_xy, neg_z);\n\t\t\tlet maxTheta: f32 = min(uniform.fisheye_k * 1.5707963, 3.13);\n\t\t\tif (theta > maxTheta - 0.01 || dot(v, v) < 0.0001) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tlet tk: f32 = theta * uniform.fisheye_inv_k;\n\t\t\tlet sin_tk: f32 = sin(tk);\n\t\t\tlet cos_tk: f32 = cos(tk);\n\t\t\tlet g_theta: f32 = uniform.fisheye_k * sin_tk / cos_tk;\n\t\t\tlet fisheye_s: f32 = select(select(0.0, 1.0 / neg_z, neg_z > 0.0), g_theta / r_xy, r_xy > 1e-4);\n\t\t\tlet ndc: vec2f = vec2f(uniform.fisheye_projMat00 * fisheye_s * v.x, uniform.fisheye_projMat11 * fisheye_s * v.y);\n\t\t\tlet near: f32 = uniform.camera_params.z;\n\t\t\tlet far: f32 = uniform.camera_params.y;\n\t\t\tlet linearDepth: f32 = neg_z;\n\t\t\tlet depthNdc: f32 = clamp((linearDepth - near) / (far - near), 0.0, 1.0);\n\t\t\tcenter.proj = vec4f(ndc, depthNdc, 1.0);\n\t\t\tcenter.projMat00 = uniform.fisheye_projMat00;\n\t\t\tcenter.fisheyeSinTK = sin_tk;\n\t\t\tcenter.fisheyeCosTK = cos_tk;\n\t\t\tcenter.fisheyeRxy = r_xy;\n\t\t#else\n\t\t\tif (uniform.camera_params.w != 1.0 && centerView.z > 0.0) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar centerProj: vec4f = uniform.matrix_projection * centerView;\n\t\t\tcenterProj.z = clamp(centerProj.z, 0.0, abs(centerProj.w));\n\t\t\tcenter.proj = centerProj;\n\t\t\tcenter.projMat00 = uniform.matrix_projection[0][0];\n\t\t#endif\n\t#endif\n\tcenter.view = centerView.xyz / centerView.w;\n\tcenter.modelView = modelView;\n\treturn true;\n}\n`;\n\nvar gsplatCommon_default2 = `\n#include \"gsplatHelpersVS\"\n#include \"gsplatFormatVS\"\n#include \"gsplatStructsVS\"\n#include \"gsplatDeclarationsVS\"\n#include \"gsplatModifyVS\"\n#include \"gsplatEvalSHVS\"\n#include \"gsplatQuatToMat3VS\"\n#include \"gsplatReadVS\"\n#include \"gsplatSourceVS\"\n#include \"gsplatCenterVS\"\n#include \"gsplatCornerVS\"\n#include \"gsplatOutputVS\"\n#if defined(SHADOW_PASS) || defined(PICK_PASS) || defined(PREPASS_PASS)\nuniform alphaClip: f32;\n#else\nuniform alphaClipForward: f32;\n#endif\nfn clipCorner(corner: ptr<function, SplatCorner>, alpha: half) {\n\t#if defined(SHADOW_PASS) || defined(PICK_PASS) || defined(PREPASS_PASS)\n\t\tlet alphaClipValue = half(uniform.alphaClip);\n\t#else\n\t\tlet alphaClipValue = half(uniform.alphaClipForward);\n\t#endif\n\tlet clip = min(half(1.0), sqrt(max(half(0.0), log(alpha / alphaClipValue))) * half(0.5));\n\tcorner.offset = corner.offset * f32(clip);\n\tcorner.uv = corner.uv * clip;\n}\n`;\n\nvar gsplatSplat_default2 = `\nstruct Splat {\n\tindex: u32,\n\tuv: vec2i\n}\nvar<private> splat: Splat;\nfn setSplat(idx: u32) {\n\tsplat.index = idx;\n\tsplat.uv = vec2i(i32(idx % uniform.splatTextureSize), i32(idx / uniform.splatTextureSize));\n}\n`;\n\nvar gsplatEvalSH_default2 = `\n\t#if SH_BANDS == 1\n\t\tconst SH_COEFFS: i32 = 3;\n\t#elif SH_BANDS == 2\n\t\tconst SH_COEFFS: i32 = 8;\n\t#elif SH_BANDS == 3\n\t\tconst SH_COEFFS: i32 = 15;\n\t#else\n\t\tconst SH_COEFFS: i32 = 0;\n\t#endif\n\t#if SH_BANDS > 0\n\tconst SH_C1: half = half(0.4886025119029199);\n\t#if SH_BANDS > 1\n\t\tconst SH_C2_0: half = half(1.0925484305920792);\n\t\tconst SH_C2_1: half = half(-1.0925484305920792);\n\t\tconst SH_C2_2: half = half(0.31539156525252005);\n\t\tconst SH_C2_3: half = half(-1.0925484305920792);\n\t\tconst SH_C2_4: half = half(0.5462742152960396);\n\t#endif\n\t#if SH_BANDS > 2\n\t\tconst SH_C3_0: half = half(-0.5900435899266435);\n\t\tconst SH_C3_1: half = half(2.890611442640554);\n\t\tconst SH_C3_2: half = half(-0.4570457994644658);\n\t\tconst SH_C3_3: half = half(0.3731763325901154);\n\t\tconst SH_C3_4: half = half(-0.4570457994644658);\n\t\tconst SH_C3_5: half = half(1.445305721320277);\n\t\tconst SH_C3_6: half = half(-0.5900435899266435);\n\t#endif\n\tfn evalSH(sh: ptr<function, array<half3, SH_COEFFS>>, dir: vec3f) -> half3 {\n\t\tlet d: half3 = half3(dir);\n\t\tvar result: half3 = SH_C1 * (-sh[0] * d.y + sh[1] * d.z - sh[2] * d.x);\n\t\t#if SH_BANDS > 1\n\t\t\tlet xx: half = d.x * d.x;\n\t\t\tlet yy: half = d.y * d.y;\n\t\t\tlet zz: half = d.z * d.z;\n\t\t\tlet xy: half = d.x * d.y;\n\t\t\tlet yz: half = d.y * d.z;\n\t\t\tlet xz: half = d.x * d.z;\n\t\t\tresult = result + (\n\t\t\t\tsh[3] * (SH_C2_0 * xy) +\n\t\t\t\tsh[4] * (SH_C2_1 * yz) +\n\t\t\t\tsh[5] * (SH_C2_2 * (half(2.0) * zz - xx - yy)) +\n\t\t\t\tsh[6] * (SH_C2_3 * xz) +\n\t\t\t\tsh[7] * (SH_C2_4 * (xx - yy))\n\t\t\t);\n\t\t#endif\n\t\t#if SH_BANDS > 2\n\t\t\tresult = result + (\n\t\t\t\tsh[8]  * (SH_C3_0 * d.y * (half(3.0) * xx - yy)) +\n\t\t\t\tsh[9]  * (SH_C3_1 * xy * d.z) +\n\t\t\t\tsh[10] * (SH_C3_2 * d.y * (half(4.0) * zz - xx - yy)) +\n\t\t\t\tsh[11] * (SH_C3_3 * d.z * (half(2.0) * zz - half(3.0) * xx - half(3.0) * yy)) +\n\t\t\t\tsh[12] * (SH_C3_4 * d.x * (half(4.0) * zz - xx - yy)) +\n\t\t\t\tsh[13] * (SH_C3_5 * d.z * (xx - yy)) +\n\t\t\t\tsh[14] * (SH_C3_6 * d.x * (xx - half(3.0) * yy))\n\t\t\t);\n\t\t#endif\n\t\treturn result;\n\t}\n\t#endif\n`;\n\nvar gsplatModify_default4 = `\nfn modifySplatColor(gaussianUV: vec2f, color: ptr<function, vec4f>) {\n}\n`;\n\nvar gsplatWorkBufferGeometry_default2 = `\n#ifdef GSPLAT_WORKBUFFER_GEOMETRY\n\tvar uWorkBufferTransformA: texture_2d<u32>;\n\tvar uWorkBufferTransformB: texture_2d<u32>;\n\tuniform matrix_model_inverse: mat4x4f;\n\tuniform uCameraPosition: vec3f;\n\tvar<private> wbCoord: vec2i;\n\tvar<private> wbTransformA: vec4u;\n\tfn initWorkBufferGeometry(coord: vec2i) {\n\t\twbCoord = coord;\n\t\twbTransformA = textureLoad(uWorkBufferTransformA, coord, 0);\n\t}\n\tfn workBufferWorldCenter() -> vec3f {\n\t\treturn vec3f(bitcast<f32>(wbTransformA.x), bitcast<f32>(wbTransformA.y), bitcast<f32>(wbTransformA.z));\n\t}\n\tfn workBufferWorldRotation() -> vec4f {\n\t\t#ifdef GSPLAT_WORKBUFFER_COMPACT\n\t\t\tlet data = textureLoad(uWorkBufferTransformB, wbCoord, 0).x;\n\t\t\tlet p = vec3f(\n\t\t\t\tf32(data & 0x7FFu) / 2047.0 * 2.0 - 1.0,\n\t\t\t\tf32((data >> 11u) & 0x7FFu) / 2047.0 * 2.0 - 1.0,\n\t\t\t\tf32((data >> 22u) & 0x3FFu) / 1023.0 * 2.0 - 1.0\n\t\t\t);\n\t\t\tlet d = dot(p, p);\n\t\t\treturn vec4f(sqrt(max(0.0, 2.0 - d)) * p, 1.0 - d);\n\t\t#else\n\t\t\tlet rotXY = unpack2x16float(wbTransformA.w);\n\t\t\tlet r = vec3f(rotXY, unpack2x16float(textureLoad(uWorkBufferTransformB, wbCoord, 0).x).x);\n\t\t\treturn vec4f(r, sqrt(max(0.0, 1.0 - dot(r, r))));\n\t\t#endif\n\t}\n\tfn workBufferWorldScale() -> vec3f {\n\t\t#ifdef GSPLAT_WORKBUFFER_COMPACT\n\t\t\tlet data = wbTransformA.w;\n\t\t\tlet sx = f32(data & 0xFFu);\n\t\t\tlet sy = f32((data >> 8u) & 0xFFu);\n\t\t\tlet sz = f32((data >> 16u) & 0xFFu);\n\t\t\tlet logRange = 21.0 / 255.0;\n\t\t\tlet logMin = -12.0;\n\t\t\treturn vec3f(\n\t\t\t\tselect(exp(sx * logRange + logMin), 0.0, sx == 0.0),\n\t\t\t\tselect(exp(sy * logRange + logMin), 0.0, sy == 0.0),\n\t\t\t\tselect(exp(sz * logRange + logMin), 0.0, sz == 0.0)\n\t\t\t);\n\t\t#else\n\t\t\tlet b = textureLoad(uWorkBufferTransformB, wbCoord, 0).xy;\n\t\t\treturn vec3f(unpack2x16float(b.x).y, unpack2x16float(b.y));\n\t\t#endif\n\t}\n\tfn quatRotateInv(q: vec4f, v: vec3f) -> vec3f {\n\t\tlet t = -q.xyz;\n\t\treturn v + 2.0 * cross(t, cross(t, v) + q.w * v);\n\t}\n\tfn getCenter() -> vec3f {\n\t\treturn (uniform.matrix_model_inverse * vec4f(workBufferWorldCenter(), 1.0)).xyz;\n\t}\n\tfn getRotation() -> vec4f {\n\t\tlet worldRotation = workBufferWorldRotation();\n\t\tlet localRotation = vec4f(quatMul(half4(vec4f(-uniform.model_rotation.xyz, uniform.model_rotation.w)), half4(worldRotation)));\n\t\treturn localRotation.wxyz;\n\t}\n\tfn getScale() -> vec3f {\n\t\treturn workBufferWorldScale() / uniform.model_scale;\n\t}\n#endif\n`;\n\nvar gsplatQuatToMat3_default2 = `\nfn quatToMat3(r: half4) -> half3x3 {\n\tlet r2: half4 = r + r;\n\tlet x: half   = r2.x * r.w;\n\tlet y: half4  = r2.y * r;\n\tlet z: half4  = r2.z * r;\n\tlet w: half   = r2.w * r.w;\n\treturn half3x3(\n\t\thalf(1.0) - z.z - w,  y.z + x,\t\t\t  y.w - z.x,\n\t\ty.z - x,\t\t\t  half(1.0) - y.y - w,   z.w + y.x,\n\t\ty.w + z.x,\t\t\tz.w - y.x,\t\t\t half(1.0) - y.y - z.z\n\t);\n}\nfn quatMul(a: half4, b: half4) -> half4 {\n\treturn half4(\n\t\ta.w * b.x + a.x * b.w + a.y * b.z - a.z * b.y,\n\t\ta.w * b.y - a.x * b.z + a.y * b.w + a.z * b.x,\n\t\ta.w * b.z + a.x * b.y - a.y * b.x + a.z * b.w,\n\t\ta.w * b.w - a.x * b.x - a.y * b.y - a.z * b.z\n\t);\n}\n`;\n\nvar gsplatStructs_default2 = `\n#include \"gsplatSplatVS\"\nstruct SplatSource {\n\torder: u32,\n\tcornerUV: half2\n}\nstruct SplatCenter {\n\tview: vec3f,\n\tproj: vec4f,\n\tmodelView: mat4x4f,\n\tprojMat00: f32,\n\tmodelCenterOriginal: vec3f,\n\tmodelCenterModified: vec3f,\n\t#ifdef GSPLAT_FISHEYE\n\t\tfisheyeSinTK: f32,\n\t\tfisheyeCosTK: f32,\n\t\tfisheyeRxy: f32,\n\t#endif\n}\nstruct SplatCorner {\n\toffset: vec3f,\n\tuv: half2,\n\t#if GSPLAT_AA\n\t\taaFactor: half,\n\t#endif\n}\n`;\n\nvar gsplatCorner_default2 = `\nuniform viewport_size: vec4f;\nuniform minPixelSize: f32;\nfn computeCovariance(rotation: half4, scale: half3, covA_ptr: ptr<function, vec3f>, covB_ptr: ptr<function, vec3f>) {\n\tlet rot: half3x3 = quatToMat3(rotation);\n\tlet s: vec3f = vec3f(scale);\n\tlet M: mat3x3f = transpose(mat3x3f(\n\t\ts.x * vec3f(rot[0]),\n\t\ts.y * vec3f(rot[1]),\n\t\ts.z * vec3f(rot[2])\n\t));\n\t*covA_ptr = vec3f(dot(M[0], M[0]), dot(M[0], M[1]), dot(M[0], M[2]));\n\t*covB_ptr = vec3f(dot(M[1], M[1]), dot(M[1], M[2]), dot(M[2], M[2]));\n}\nfn initCornerCov(source: ptr<function, SplatSource>, center: ptr<function, SplatCenter>, corner: ptr<function, SplatCorner>, covA: vec3f, covB: vec3f) -> bool {\n\tlet Vrk = mat3x3f(\n\t\tvec3f(covA.x, covA.y, covA.z),\n\t\tvec3f(covA.y, covB.x, covB.y),\n\t\tvec3f(covA.z, covB.y, covB.z)\n\t);\n\tlet focal = uniform.viewport_size.x * center.projMat00;\n\tlet v = center.view.xyz;\n\t#ifdef GSPLAT_FISHEYE\n\t\tlet r_sq = max(center.fisheyeRxy * center.fisheyeRxy, 1e-8);\n\t\tlet d2 = dot(v, v);\n\t\tlet neg_z = -v.z;\n\t\tlet g_prime = 1.0 / (center.fisheyeCosTK * center.fisheyeCosTK);\n\t\tlet g_theta = uniform.fisheye_k * center.fisheyeSinTK / center.fisheyeCosTK;\n\t\tlet sv = select(select(0.0, 1.0 / neg_z, neg_z > 0.0), g_theta / center.fisheyeRxy, center.fisheyeRxy > 1e-4);\n\t\tlet K = select(0.0, (g_prime * neg_z / d2 - sv) / r_sq, center.fisheyeRxy > 1e-4);\n\t\tlet J = mat3x3f(\n\t\t\tvec3f(focal * (sv + K * v.x * v.x),  focal * K * v.x * v.y,\t   focal * g_prime * v.x / d2),\n\t\t\tvec3f(focal * K * v.x * v.y,\t\t focal * (sv + K * v.y * v.y), focal * g_prime * v.y / d2),\n\t\t\tvec3f(0.0, 0.0, 0.0)\n\t\t);\n\t#else\n\t\tlet vp = select(center.view.xyz, vec3f(0.0, 0.0, 1.0), uniform.camera_params.w == 1.0);\n\t\tlet J1 = focal / vp.z;\n\t\tlet J2 = -J1 / vp.z * vp.xy;\n\t\tlet J = mat3x3f(\n\t\t\tvec3f(J1, 0.0, J2.x),\n\t\t\tvec3f(0.0, J1, J2.y),\n\t\t\tvec3f(0.0, 0.0, 0.0)\n\t\t);\n\t#endif\n\tlet modelView = center.modelView;\n\tlet W = transpose(mat3x3f(modelView[0].xyz, modelView[1].xyz, modelView[2].xyz));\n\tlet T = W * J;\n\tlet cov = transpose(T) * Vrk * T;\n\t#if GSPLAT_AA\n\t\tlet detOrig = cov[0][0] * cov[1][1] - cov[0][1] * cov[1][0];\n\t\tlet detBlur = (cov[0][0] + 0.3) * (cov[1][1] + 0.3) - cov[0][1] * cov[1][0];\n\t\tcorner.aaFactor = half(sqrt(max(detOrig / detBlur, 0.0)));\n\t#endif\n\tlet diagonal1 = cov[0][0] + 0.3;\n\tlet offDiagonal = cov[0][1];\n\tlet diagonal2 = cov[1][1] + 0.3;\n\tlet mid = 0.5 * (diagonal1 + diagonal2);\n\tlet radius = length(vec2f((diagonal1 - diagonal2) / 2.0, offDiagonal));\n\tlet lambda1 = mid + radius;\n\tlet lambda2 = max(mid - radius, 0.1);\n\tlet vmin = min(1024.0, min(uniform.viewport_size.x, uniform.viewport_size.y));\n\tlet l1 = 2.0 * min(sqrt(2.0 * lambda1), vmin);\n\tlet l2 = 2.0 * min(sqrt(2.0 * lambda2), vmin);\n\tif (max(l1, l2) < uniform.minPixelSize) {\n\t\treturn false;\n\t}\n\tlet c = center.proj.ww * uniform.viewport_size.zw;\n\tif (any((abs(center.proj.xy) - vec2f(max(l1, l2)) * c) > center.proj.ww)) {\n\t\treturn false;\n\t}\n\tlet diagonalVector = normalize(vec2f(offDiagonal, lambda1 - diagonal1));\n\tlet v1 = l1 * diagonalVector;\n\tlet v2 = l2 * vec2f(diagonalVector.y, -diagonalVector.x);\n\tcorner.offset = vec3f((f32(source.cornerUV.x) * v1 + f32(source.cornerUV.y) * v2) * c, 0.0);\n\tcorner.uv = source.cornerUV;\n\treturn true;\n}\n#if GSPLAT_2DGS\nfn initCorner2DGS(source: ptr<function, SplatSource>, rotation: vec4f, scale: vec3f, corner: ptr<function, SplatCorner>) {\n\tlet localPos: vec2f = vec2f(source.cornerUV) * vec2f(scale.x, scale.y) * 3.0;\n\tlet v: vec3f = vec3f(localPos, 0.0);\n\tlet t: vec3f = 2.0 * cross(rotation.xyz, v);\n\tcorner.offset = v + rotation.w * t + cross(rotation.xyz, t);\n\tcorner.uv = source.cornerUV;\n}\n#endif\nfn initCorner(source: ptr<function, SplatSource>, center: ptr<function, SplatCenter>, corner: ptr<function, SplatCorner>) -> bool {\n\tvar rotation: vec4f = getRotation().yzwx;\n\tvar scale: vec3f = getScale();\n\tmodifySplatRotationScale(center.modelCenterOriginal, center.modelCenterModified, &rotation, &scale);\n\t#if GSPLAT_2DGS\n\t\tinitCorner2DGS(source, rotation, scale, corner);\n\t\treturn true;\n\t#else\n\t\tvar covA: vec3f;\n\t\tvar covB: vec3f;\n\t\tcomputeCovariance(half4(rotation.wxyz), half3(scale), &covA, &covB);\n\t\treturn initCornerCov(source, center, corner, covA, covB);\n\t#endif\n}\n`;\n\nvar gsplatOutput_default2 = `\n#include \"tonemappingPS\"\n#include \"decodePS\"\n#include \"gammaPS\"\n#include \"fogPS\"\n#if FOG != NONE && !defined(GSPLAT_NO_FOG)\n\t#define GSPLAT_FOG\n#endif\n#if TONEMAP != NONE && !defined(GSPLAT_NO_TONEMAP)\n\t#define GSPLAT_TONEMAP\n#endif\nfn prepareOutputFromGamma(gammaColor: vec3f, depth: f32) -> vec3f {\n\tvar color = gammaColor;\n\t#if defined(GSPLAT_TONEMAP) || GAMMA == NONE || defined(GSPLAT_FOG)\n\t\tcolor = decodeGamma3(color);\n\t#endif\n\t#ifdef GSPLAT_FOG\n\t\tcolor = addFog(color, depth);\n\t#endif\n\t#ifdef GSPLAT_TONEMAP\n\t\tcolor = toneMap(color);\n\t#endif\n\t#if defined(GSPLAT_TONEMAP) || (GAMMA != NONE && defined(GSPLAT_FOG))\n\t\tcolor = gammaCorrectOutput(color);\n\t#endif\n\treturn color;\n}\n`;\n\nvar gsplat_default3 = `\n#ifndef DITHER_NONE\n\t#include \"bayerPS\"\n\t#include \"opacityDitherPS\"\n\tvarying id: f32;\n#endif\n#if defined(SHADOW_PASS) || defined(PICK_PASS) || defined(PREPASS_PASS)\n\tuniform alphaClip: f32;\n#endif\n#ifdef PREPASS_PASS\n\tvarying vLinearDepth: f32;\n\t#include \"floatAsUintPS\"\n#endif\n#if defined(SCENE_TEXTURE_DEPTH) && !defined(PREPASS_PASS)\n\tvarying vLinearDepth: f32;\n#endif\n#include \"sceneTexturesPS\"\n#if !defined(SHADOW_PASS) && !defined(PICK_PASS) && !defined(PREPASS_PASS)\n\tuniform alphaClipForward: f32;\n#endif\nconst EXP4: half = exp(half(-4.0));\nconst INV_EXP4: half = half(1.0) / (half(1.0) - EXP4);\nfn normExp(x: half) -> half {\n\treturn (exp(x * half(-4.0)) - EXP4) * INV_EXP4;\n}\nvarying gaussianUV: half2;\nvarying gaussianColor: half4;\n#if defined(GSPLAT_UNIFIED_ID) && defined(PICK_PASS)\n\tvarying @interpolate(flat) vPickId: u32;\n#endif\n#ifdef PICK_PASS\n\t#include \"pickPS\"\n#endif\n#ifdef SHADOW_PASS\n\t#include \"shadowCasterPS\"\n#endif\n#ifdef GSPLAT_USER_VARYINGS\n\t#include \"gsplatUserVaryingsPS\"\n#endif\n#include \"gsplatModifyPS\"\n@fragment\nfn fragmentMain(input: FragmentInput) -> FragmentOutput {\n\tvar output: FragmentOutput;\n\tlet A: half = dot(gaussianUV, gaussianUV);\n\tif (A > half(1.0)) {\n\t\tdiscard;\n\t}\n\tvar alpha: half = normExp(A) * gaussianColor.a;\n\t#if defined(SHADOW_PASS) || defined(PICK_PASS) || defined(PREPASS_PASS)\n\t\tif (alpha < half(uniform.alphaClip)) {\n\t\t\tdiscard;\n\t\t\treturn output;\n\t\t}\n\t#endif\n\t#ifdef PICK_PASS\n\t\t#ifdef GSPLAT_UNIFIED_ID\n\t\t\toutput.color = encodePickOutput(vPickId);\n\t\t#else\n\t\t\toutput.color = getPickOutput();\n\t\t#endif\n\t\t#ifdef DEPTH_PICK_PASS\n\t\t\toutput.color1 = getPickDepth();\n\t\t#endif\n\t#elif SHADOW_PASS\n\t\toutput.color = getShadowOutput();\n\t#elif PREPASS_PASS\n\t\toutput.color = float2vec4(vLinearDepth);\n\t#else\n\t\tif (alpha < half(uniform.alphaClipForward)) {\n\t\t\tdiscard;\n\t\t}\n\t\t#ifndef DITHER_NONE\n\t\t\topacityDither(f32(alpha), id * 0.013);\n\t\t#endif\n\t\tvar fragColor: vec4f = vec4f(vec3f(gaussianColor.xyz), f32(alpha));\n\t\tmodifySplatColor(vec2f(gaussianUV), &fragColor);\n\t\toutput.color = vec4f(fragColor.xyz * fragColor.a, fragColor.a);\n\t\t#ifdef SCENE_TEXTURE_DEPTH\n\t\t\t#ifdef DITHER_NONE\n\t\t\t\twriteSceneTextureDepth(&output, vLinearDepth, fragColor.a);\n\t\t\t#else\n\t\t\t\twriteSceneTextureDepth(&output, vLinearDepth, 1.0);\n\t\t\t#endif\n\t\t#endif\n\t#endif\n\treturn output;\n}`;\n\nvar gsplatSource_default2 = `\nattribute vertex_position: vec3f;\n#ifdef GSPLAT_INDIRECT_DRAW\n\tvar<storage, read> numSplatsStorage: array<u32>;\n\tvar<storage, read> compactedSplatIds: array<u32>;\n#else\n\tuniform numSplats: u32;\n\tvar<storage, read> splatOrder: array<u32>;\n#endif\nfn initSource(source: ptr<function, SplatSource>) -> bool {\n\tsource.order = pcInstanceIndex * {GSPLAT_INSTANCE_SIZE}u + u32(vertex_position.z);\n\t#ifdef GSPLAT_INDIRECT_DRAW\n\t\tlet numSplats = numSplatsStorage[0];\n\t#else\n\t\tlet numSplats = uniform.numSplats;\n\t#endif\n\tif (source.order >= numSplats) {\n\t\treturn false;\n\t}\n\tvar splatId: u32;\n\t#ifdef GSPLAT_INDIRECT_DRAW\n\t\tsplatId = compactedSplatIds[source.order];\n\t#else\n\t\tsplatId = splatOrder[source.order];\n\t#endif\n\tsetSplat(splatId);\n\tsource.cornerUV = half2(vertex_position.xy);\n\treturn true;\n}\n`;\n\nvar gsplat_default4 = `\n#ifdef GSPLAT_USER_VARYINGS\n\t#include \"gsplatUserVaryingsVS\"\n#endif\n#include \"gsplatCommonVS\"\nvarying gaussianUV: half2;\nvarying gaussianColor: half4;\n#ifndef DITHER_NONE\n\tvarying id: f32;\n#endif\nconst discardVec: vec4f = vec4f(0.0, 0.0, 2.0, 1.0);\n#if defined(PREPASS_PASS) || defined(SCENE_TEXTURE_DEPTH)\n\tvarying vLinearDepth: f32;\n#endif\n#if defined(GSPLAT_UNIFIED_ID) && defined(PICK_PASS)\n\tvarying @interpolate(flat) vPickId: u32;\n#endif\n#ifdef GSPLAT_OVERDRAW\n\tuniform colorRampIntensity: f32;\n\tvar colorRamp: texture_2d<f32>;\n\tvar colorRampSampler: sampler;\n#endif\n@vertex\nfn vertexMain(input: VertexInput) -> VertexOutput {\n\tvar output: VertexOutput;\n\tvar source: SplatSource;\n\tif (!initSource(&source)) {\n\t\toutput.position = discardVec;\n\t\treturn output;\n\t}\n\tvar modelCenter: vec3f = getCenter();\n\tvar center: SplatCenter;\n\tcenter.modelCenterOriginal = modelCenter;\n\t\n\tmodifySplatCenter(&modelCenter);\n\tcenter.modelCenterModified = modelCenter;\n\tif (!initCenter(modelCenter, &center)) {\n\t\toutput.position = discardVec;\n\t\treturn output;\n\t}\n\tvar corner: SplatCorner;\n\tif (!initCorner(&source, &center, &corner)) {\n\t\toutput.position = discardVec;\n\t\treturn output;\n\t}\n\t#ifdef GSPLAT_SEPARATE_OPACITY\n\t\tlet opacity = getOpacity();\n\t\tvar clr: half4 = half4(vec4f(getColor(), opacity));\n\t#else\n\t\tvar clr: half4 = half4(getColor());\n\t#endif\n\t#if GSPLAT_AA\n\t\tclr.a = clr.a * corner.aaFactor;\n\t#endif\n\t#if SH_BANDS > 0\n\t\tlet modelView = center.modelView;\n\t\tlet modelView3x3 = mat3x3f(modelView[0].xyz, modelView[1].xyz, modelView[2].xyz);\n\t\tlet dir = normalize(center.view * modelView3x3);\n\t\tvar sh: array<half3, SH_COEFFS>;\n\t\tvar scale: f32;\n\t\treadSHData(&sh, &scale);\n\t\tclr = half4(clr.xyz + evalSH(&sh, dir) * half(scale), clr.a);\n\t#endif\n\tvar clrF32 = vec4f(clr);\n\tmodifySplatColor(modelCenter, &clrF32);\n\tclr = half4(clrF32);\n\t#if defined(SHADOW_PASS) || defined(PICK_PASS) || defined(PREPASS_PASS)\n\t\tlet alphaClipValue = half(uniform.alphaClip);\n\t#else\n\t\tlet alphaClipValue = half(uniform.alphaClipForward);\n\t#endif\n\tif (clr.w <= alphaClipValue) {\n\t\toutput.position = discardVec;\n\t\treturn output;\n\t}\n\tclipCorner(&corner, clr.w);\n\t#if GSPLAT_2DGS\n\t\tlet modelCorner: vec3f = center.modelCenterModified + corner.offset;\n\t\toutput.position = uniform.matrix_projection * center.modelView * vec4f(modelCorner, 1.0);\n\t#else\n\t\toutput.position = center.proj + vec4f(corner.offset.xyz, 0.0);\n\t#endif\n\toutput.gaussianUV = corner.uv;\n\t#ifdef GSPLAT_USER_VARYINGS\n\t\t#include \"gsplatUserVaryingsFlushVS\"\n\t#endif\n\t#ifdef GSPLAT_OVERDRAW\n\t\tlet t: f32 = clamp(center.modelCenterOriginal.y / 20.0, 0.0, 1.0);\n\t\tlet rampColor: vec3f = textureSampleLevel(colorRamp, colorRampSampler, vec2f(t, 0.5), 0.0).rgb;\n\t\tclr.a = clr.a * half(1.0 / 32.0) * half(uniform.colorRampIntensity);\n\t\toutput.gaussianColor = half4(half3(rampColor), clr.a);\n\t#else\n\t\toutput.gaussianColor = half4(half3(prepareOutputFromGamma(max(vec3f(clr.xyz), vec3f(0.0)), -center.view.z)), clr.w);\n\t#endif\n\t#ifndef DITHER_NONE\n\t\toutput.id = f32(splat.index);\n\t#endif\n\t#if defined(PREPASS_PASS) || defined(SCENE_TEXTURE_DEPTH)\n\t\toutput.vLinearDepth = -center.view.z;\n\t#endif\n\t#if defined(GSPLAT_UNIFIED_ID) && defined(PICK_PASS)\n\t\toutput.vPickId = loadPcId().r;\n\t#endif\n\treturn output;\n}\n`;\n\nvar gsplatHybrid_default = `\n#include \"gsplatHelpersVS\"\n#include \"gsplatOutputVS\"\n#ifdef GSPLAT_USER_VARYINGS\n\t#include \"gsplatUserVaryingsVS\"\n#endif\nattribute vertex_position: vec3f;\nuniform viewport_size: vec4f;\nuniform projectionFlipY: f32;\nuniform clipToViewZ: vec4f;\n#ifdef GSPLAT_XR\n\tuniform view_index: u32;\n\tuniform matrix_projection: mat4x4f;\n#endif\n#if defined(SHADOW_PASS) || defined(PICK_PASS) || defined(PREPASS_PASS)\n\tuniform alphaClip: f32;\n#else\n\tuniform alphaClipForward: f32;\n#endif\nvar<storage, read> sortedIndices: array<u32>;\nvar<storage, read> projCache: array<u32>;\nvar<storage, read> numSplatsStorage: array<u32>;\nvarying gaussianUV: half2;\nvarying gaussianColor: half4;\n#ifndef DITHER_NONE\n\tvarying id: f32;\n#endif\n#if defined(PREPASS_PASS) || defined(SCENE_TEXTURE_DEPTH)\n\tvarying vLinearDepth: f32;\n#endif\n#if defined(GSPLAT_UNIFIED_ID) && defined(PICK_PASS)\n\tvarying @interpolate(flat) vPickId: u32;\n#endif\n#ifdef GSPLAT_OVERDRAW\n\tuniform colorRampIntensity: f32;\n\tvar colorRamp: texture_2d<f32>;\n\tvar colorRampSampler: sampler;\n#endif\nconst discardVec: vec4f = vec4f(0.0, 0.0, 2.0, 1.0);\n@vertex\nfn vertexMain(input: VertexInput) -> VertexOutput {\n\tvar output: VertexOutput;\n\tlet order = pcInstanceIndex * {GSPLAT_INSTANCE_SIZE}u + u32(vertex_position.z);\n\tlet numSplats = numSplatsStorage[0];\n\tif (order >= numSplats) {\n\t\toutput.position = discardVec;\n\t\treturn output;\n\t}\n\tlet cacheIdx = sortedIndices[order];\n\tlet base = cacheIdx * {CACHE_STRIDE}u;\n\t#ifdef GSPLAT_XR\n\t\tlet off = uniform.view_index * 2u;\n\t\tlet ndc = vec2f(\n\t\t\tbitcast<f32>(projCache[base + off + 0u]),\n\t\t\tbitcast<f32>(projCache[base + off + 1u])\n\t\t);\n\t\tlet w = bitcast<f32>(projCache[base + 4u]);\n\t\tlet pz = (uniform.matrix_projection[2][2] / uniform.matrix_projection[2][3]) * w + uniform.matrix_projection[3][2];\n\t\tlet proj = vec4f(ndc * w, clamp(pz, 0.0, abs(w)), w);\n\t\tlet v1 = unpack2x16float(projCache[base + 5u]);\n\t\tlet v2 = unpack2x16float(projCache[base + 6u]);\n\t\tlet rgba = unpack4x8unorm(projCache[base + 7u]);\n\t\tlet alpha = half(rgba.a);\n\t\tvar clr: half4 = half4(half(rgba.r), half(rgba.g), half(rgba.b), alpha);\n\t#else\n\t\tlet proj = vec4f(\n\t\t\tbitcast<f32>(projCache[base + 0u]),\n\t\t\tbitcast<f32>(projCache[base + 1u]),\n\t\t\tbitcast<f32>(projCache[base + 2u]),\n\t\t\tbitcast<f32>(projCache[base + 3u])\n\t\t);\n\t\tlet v1 = unpack2x16float(projCache[base + 4u]);\n\t\tlet v2 = unpack2x16float(projCache[base + 5u]);\n\t\tlet ba = unpack2x16float(projCache[base + 7u]);\n\t\tlet alpha = half(ba.y);\n\t\t#if defined(GSPLAT_UNIFIED_ID) && defined(PICK_PASS)\n\t\t\tlet pickId = projCache[base + 6u];\n\t\t#endif\n\t\t#ifdef PICK_PASS\n\t\t\tvar clr: half4 = half4(half(0.0), half(0.0), half(0.0), alpha);\n\t\t#else\n\t\t\tlet rg = unpack2x16float(projCache[base + 6u]);\n\t\t\tvar clr: half4 = half4(half(rg.x), half(rg.y), half(ba.x), alpha);\n\t\t#endif\n\t#endif\n\tlet cornerUV = vec2f(vertex_position.xy);\n\t#if defined(SHADOW_PASS) || defined(PICK_PASS) || defined(PREPASS_PASS)\n\t\tlet alphaClipValue = half(uniform.alphaClip);\n\t#else\n\t\tlet alphaClipValue = half(uniform.alphaClipForward);\n\t#endif\n\tlet clip = min(half(1.0), sqrt(max(half(0.0), log(alpha / alphaClipValue))) * half(0.5));\n\tlet cornerClipped = cornerUV * f32(clip);\n\tlet c = vec2f(proj.w) * uniform.viewport_size.zw;\n\tlet pixelOffset = cornerClipped.x * v1 + cornerClipped.y * v2;\n\tlet clipOffset = pixelOffset * c;\n\tlet pos = proj + vec4f(clipOffset, 0.0, 0.0);\n\toutput.position = vec4f(pos.x, pos.y * uniform.projectionFlipY, pos.z, pos.w);\n\toutput.gaussianUV = half2(cornerClipped);\n\t#ifdef GSPLAT_USER_VARYINGS\n\t\t#include \"gsplatUserCacheReadVS\"\n\t#endif\n\t#ifdef GSPLAT_XR\n\t\tlet viewDepth = proj.w;\n\t#else\n\t\tlet viewDepth = dot(uniform.clipToViewZ, proj);\n\t#endif\n\t#ifdef GSPLAT_OVERDRAW\n\t\tlet t: f32 = clamp(viewDepth / 20.0, 0.0, 1.0);\n\t\tlet rampColor: vec3f = textureSampleLevel(colorRamp, colorRampSampler, vec2f(t, 0.5), 0.0).rgb;\n\t\tlet outAlpha = alpha * half(1.0 / 32.0) * half(uniform.colorRampIntensity);\n\t\toutput.gaussianColor = half4(half3(rampColor), outAlpha);\n\t#else\n\t\toutput.gaussianColor = half4(\n\t\t\thalf3(prepareOutputFromGamma(max(vec3f(clr.xyz), vec3f(0.0)), viewDepth)),\n\t\t\talpha\n\t\t);\n\t#endif\n\t#ifndef DITHER_NONE\n\t\toutput.id = f32(cacheIdx);\n\t#endif\n\t#if defined(PREPASS_PASS) || defined(SCENE_TEXTURE_DEPTH)\n\t\toutput.vLinearDepth = viewDepth;\n\t#endif\n\t#if defined(GSPLAT_UNIFIED_ID) && defined(PICK_PASS)\n\t\toutput.vPickId = pickId;\n\t#endif\n\treturn output;\n}\n`;\n\nvar gsplatPacking_default2 = `\nfn pack8888(v: vec4f) -> u32 {\n\tlet t = vec4u(v * 255.0) << vec4u(24u, 16u, 8u, 0u);\n\treturn t.x | t.y | t.z | t.w;\n}\nfn pack101010(v: vec3f) -> u32 {\n\tlet t = vec3u(v * vec3f(1023.0, 1023.0, 1023.0)) << vec3u(20u, 10u, 0u);\n\treturn t.x | t.y | t.z;\n}\nfn pack111110(v: vec3f) -> u32 {\n\tlet t = vec3u(v * vec3f(2047.0, 2047.0, 1023.0)) << vec3u(21u, 10u, 0u);\n\treturn t.x | t.y | t.z;\n}\nfn unpack8888(v: u32) -> vec4f {\n\treturn vec4f((vec4u(v) >> vec4u(24u, 16u, 8u, 0u)) & vec4u(0xffu)) / 255.0;\n}\nfn unpack101010(v: u32) -> vec3f {\n\treturn vec3f((vec3u(v) >> vec3u(20u, 10u, 0u)) & vec3u(0x3ffu)) / 1023.0;\n}\nfn unpack111110(v: u32) -> vec3f {\n\treturn vec3f((vec3u(v) >> vec3u(21u, 10u, 0u)) & vec3u(0x7ffu, 0x7ffu, 0x3ffu)) / vec3f(2047.0, 2047.0, 1023.0);\n}`;\n\nvar gsplatFormat_default2 = `\nuniform splatTextureSize: u32;\n`;\n\nvar uncompressed_default2 = `\nvar<private> tAw: u32;\nvar<private> tBcached: vec4f;\nfn unpackRotation(data: vec3f) -> vec4f {\n\treturn vec4f(data.xyz, sqrt(max(0.0, 1.0 - dot(data, data))));\n}\nfn getCenter() -> vec3f {\n\tlet tA: vec4<u32> = loadTransformA();\n\ttAw = tA.w;\n\ttBcached = loadTransformB();\n\treturn bitcast<vec3f>(tA.xyz);\n}\nfn getColor() -> vec4f {\n\treturn loadSplatColor();\n}\nfn getRotation() -> vec4f {\n\treturn unpackRotation(vec3f(unpack2x16float(tAw), tBcached.w)).wxyz;\n}\nfn getScale() -> vec3f {\n\treturn tBcached.xyz;\n}\n#include \"gsplatUncompressedSHVS\"\n`;\n\nvar uncompressedSH_default2 = `\n#if SH_BANDS > 0\nfn unpack111011s(bits: u32) -> vec3f {\n\treturn (vec3f((vec3<u32>(bits) >> vec3<u32>(21u, 11u, 0u)) & vec3<u32>(0x7ffu, 0x3ffu, 0x7ffu)) / vec3f(2047.0, 1023.0, 2047.0)) * 2.0 - 1.0;\n}\nstruct ScaleAndSH {\n\tscale: f32,\n\ta: vec3f,\n\tb: vec3f,\n\tc: vec3f\n};\nfn fetchScale(t_in: vec4<u32>) -> ScaleAndSH {\n\tvar result: ScaleAndSH;\n\tresult.scale = bitcast<f32>(t_in.x);\n\tresult.a = unpack111011s(t_in.y);\n\tresult.b = unpack111011s(t_in.z);\n\tresult.c = unpack111011s(t_in.w);\n\treturn result;\n}\nstruct SH {\n\ta: vec3f,\n\tb: vec3f,\n\tc: vec3f,\n\td: vec3f\n};\nfn fetch4(t_in: vec4<u32>) -> SH {\n\tvar result: SH;\n\tresult.a = unpack111011s(t_in.x);\n\tresult.b = unpack111011s(t_in.y);\n\tresult.c = unpack111011s(t_in.z);\n\tresult.d = unpack111011s(t_in.w);\n\treturn result;\n}\nfn fetch1(t_in: u32) -> vec3f {\n\treturn unpack111011s(t_in);\n}\n#if SH_BANDS == 1\n\tfn readSHData(sh: ptr<function, array<half3, 3>>, scale: ptr<function, f32>) {\n\t\tlet result = fetchScale(loadSplatSH_1to3());\n\t\t*scale = result.scale;\n\t\tsh[0] = half3(result.a);\n\t\tsh[1] = half3(result.b);\n\t\tsh[2] = half3(result.c);\n\t}\n#elif SH_BANDS == 2\n\tfn readSHData(sh: ptr<function, array<half3, 8>>, scale: ptr<function, f32>) {\n\t\tlet first: ScaleAndSH = fetchScale(loadSplatSH_1to3());\n\t\t*scale = first.scale;\n\t\tsh[0] = half3(first.a);\n\t\tsh[1] = half3(first.b);\n\t\tsh[2] = half3(first.c);\n\t\tlet second: SH = fetch4(loadSplatSH_4to7());\n\t\tsh[3] = half3(second.a);\n\t\tsh[4] = half3(second.b);\n\t\tsh[5] = half3(second.c);\n\t\tsh[6] = half3(second.d);\n\t\tsh[7] = half3(fetch1(loadSplatSH_8to11().x));\n\t}\n#else\n\tfn readSHData(sh: ptr<function, array<half3, 15>>, scale: ptr<function, f32>) {\n\t\tlet first: ScaleAndSH = fetchScale(loadSplatSH_1to3());\n\t\t*scale = first.scale;\n\t\tsh[0] = half3(first.a);\n\t\tsh[1] = half3(first.b);\n\t\tsh[2] = half3(first.c);\n\t\tlet second: SH = fetch4(loadSplatSH_4to7());\n\t\tsh[3] = half3(second.a);\n\t\tsh[4] = half3(second.b);\n\t\tsh[5] = half3(second.c);\n\t\tsh[6] = half3(second.d);\n\t\tlet third: SH = fetch4(loadSplatSH_8to11());\n\t\tsh[7] = half3(third.a);\n\t\tsh[8] = half3(third.b);\n\t\tsh[9] = half3(third.c);\n\t\tsh[10] = half3(third.d);\n\t\tlet fourth: SH = fetch4(loadSplatSH_12to15());\n\t\tsh[11] = half3(fourth.a);\n\t\tsh[12] = half3(fourth.b);\n\t\tsh[13] = half3(fourth.c);\n\t\tsh[14] = half3(fourth.d);\n\t}\n#endif\n#endif\n`;\n\nvar compressed_default2 = `\n#include \"gsplatPackingPS\"\nvar chunkTexture: texture_2d<uff>;\nvar<private> chunkDataA: vec4f;\nvar<private> chunkDataB: vec4f;\nvar<private> chunkDataC: vec4f;\nvar<private> chunkDataD: vec4f;\nvar<private> chunkDataE: vec4f;\nvar<private> packedData: vec4u;\nfn unpack111011(bits: u32) -> vec3f {\n\treturn (vec3f((vec3<u32>(bits) >> vec3<u32>(21u, 11u, 0u)) & vec3<u32>(0x7ffu, 0x3ffu, 0x7ffu))) / vec3f(2047.0, 1023.0, 2047.0);\n}\nconst norm_const: f32 = sqrt(2.0);\nfn unpackRotation(bits: u32) -> vec4f {\n\tlet a = (f32((bits >> 20u) & 0x3ffu) / 1023.0 - 0.5) * norm_const;\n\tlet b = (f32((bits >> 10u) & 0x3ffu) / 1023.0 - 0.5) * norm_const;\n\tlet c = (f32(bits & 0x3ffu) / 1023.0 - 0.5) * norm_const;\n\tlet m = sqrt(1.0 - (a * a + b * b + c * c));\n\tlet mode = bits >> 30u;\n\tif (mode == 0u) { return vec4f(m, a, b, c); }\n\tif (mode == 1u) { return vec4f(a, m, b, c); }\n\tif (mode == 2u) { return vec4f(a, b, m, c); }\n\treturn vec4f(a, b, c, m);\n}\nfn getCenter() -> vec3f {\n\tlet tex_size_u = textureDimensions(chunkTexture, 0);\n\tlet w: u32 = tex_size_u.x / 5u;\n\tlet chunkId: u32 = splat.index / 256u;\n\tlet chunkUV: vec2<i32> = vec2<i32>(i32((chunkId % w) * 5u), i32(chunkId / w));\n\tchunkDataA = textureLoad(chunkTexture, chunkUV + vec2<i32>(0, 0), 0);\n\tchunkDataB = textureLoad(chunkTexture, chunkUV + vec2<i32>(1, 0), 0);\n\tchunkDataC = textureLoad(chunkTexture, chunkUV + vec2<i32>(2, 0), 0);\n\tchunkDataD = textureLoad(chunkTexture, chunkUV + vec2<i32>(3, 0), 0);\n\tchunkDataE = textureLoad(chunkTexture, chunkUV + vec2<i32>(4, 0), 0);\n\tpackedData = loadPackedTexture();\n\treturn mix(chunkDataA.xyz, vec3f(chunkDataA.w, chunkDataB.xy), unpack111011(packedData.x));\n}\nfn getColor() -> vec4f {\n\tlet r = unpack8888(packedData.w);\n\treturn vec4f(mix(chunkDataD.xyz, vec3f(chunkDataD.w, chunkDataE.xy), r.rgb), r.w);\n}\nfn getRotation() -> vec4f {\n\treturn unpackRotation(packedData.y);\n}\nfn getScale() -> vec3f {\n\treturn exp(mix(vec3f(chunkDataB.zw, chunkDataC.x), chunkDataC.yzw, unpack111011(packedData.z)));\n}\n#include \"gsplatCompressedSHVS\"\n`;\n\nvar compressedSH_default2 = `\n#if SH_BANDS > 0\nfn unpack8888s(bits: u32) -> half4 {\n\tlet unpacked_u = (vec4<u32>(bits) >> vec4<u32>(0u, 8u, 16u, 24u)) & vec4<u32>(0xffu);\n\treturn half4(vec4f(unpacked_u) * (8.0 / 255.0) - 4.0);\n}\nfn readSHData(sh: ptr<function, array<half3, 15>>, scale: ptr<function, f32>) {\n\tlet shData0: vec4<u32> = loadShTexture0();\n\tlet shData1: vec4<u32> = loadShTexture1();\n\tlet shData2: vec4<u32> = loadShTexture2();\n\tlet r0: half4 = unpack8888s(shData0.x);\n\tlet r1: half4 = unpack8888s(shData0.y);\n\tlet r2: half4 = unpack8888s(shData0.z);\n\tlet r3: half4 = unpack8888s(shData0.w);\n\tlet g0: half4 = unpack8888s(shData1.x);\n\tlet g1: half4 = unpack8888s(shData1.y);\n\tlet g2: half4 = unpack8888s(shData1.z);\n\tlet g3: half4 = unpack8888s(shData1.w);\n\tlet b0: half4 = unpack8888s(shData2.x);\n\tlet b1: half4 = unpack8888s(shData2.y);\n\tlet b2: half4 = unpack8888s(shData2.z);\n\tlet b3: half4 = unpack8888s(shData2.w);\n\tsh[0] =  half3(r0.x, g0.x, b0.x);\n\tsh[1] =  half3(r0.y, g0.y, b0.y);\n\tsh[2] =  half3(r0.z, g0.z, b0.z);\n\tsh[3] =  half3(r0.w, g0.w, b0.w);\n\tsh[4] =  half3(r1.x, g1.x, b1.x);\n\tsh[5] =  half3(r1.y, g1.y, b1.y);\n\tsh[6] =  half3(r1.z, g1.z, b1.z);\n\tsh[7] =  half3(r1.w, g1.w, b1.w);\n\tsh[8] =  half3(r2.x, g2.x, b2.x);\n\tsh[9] =  half3(r2.y, g2.y, b2.y);\n\tsh[10] = half3(r2.z, g2.z, b2.z);\n\tsh[11] = half3(r2.w, g2.w, b2.w);\n\tsh[12] = half3(r3.x, g3.x, b3.x);\n\tsh[13] = half3(r3.y, g3.y, b3.y);\n\tsh[14] = half3(r3.z, g3.z, b3.z);\n\t*scale = 1.0;\n}\n#endif\n`;\n\nvar sog_default2 = `\nuniform means_mins: vec3f;\nuniform means_maxs: vec3f;\n#ifndef SOG_V2\n\tuniform scales_mins: vec3f;\n\tuniform scales_maxs: vec3f;\n\tuniform sh0_mins: vec4f;\n\tuniform sh0_maxs: vec4f;\n#endif\nconst SH_C0: f32 = 0.28209479177387814;\nconst norm: f32 = sqrt(2.0);\n#ifdef SOG_V2\n\tfn lutScales(b: i32) -> f32 { return textureLoad(sogCodebook, vec2i(b, 0), 0).r; }\n\tfn lutSh0(b: i32) -> f32\t{ return textureLoad(sogCodebook, vec2i(b, 0), 0).g; }\n\tfn lutShN(b: i32) -> f32\t{ return textureLoad(sogCodebook, vec2i(b, 0), 0).b; }\n#endif\n#ifndef GSPLAT_WORKBUFFER_GEOMETRY\nfn getCenter() -> vec3f {\n\tlet l = textureLoad(means_l, splat.uv, 0).xyz;\n\tlet u = textureLoad(means_u, splat.uv, 0).xyz;\n\tlet n = (l + u * 256.0) / 257.0;\n\tlet v = mix(uniform.means_mins, uniform.means_maxs, n);\n\treturn sign(v) * (exp(abs(v)) - 1.0);\n}\nfn getRotation() -> vec4f {\n\tlet q = textureLoad(quats, splat.uv, 0);\n\tlet qmode = u32(q.w * 255.0 + 0.5) - 252u;\n\tlet abc = (q.xyz - 0.5) * norm;\n\tlet d = sqrt(max(0.0, 1.0 - dot(abc, abc)));\n\tvar quat: vec4f;\n\tif (qmode == 0u) {\n\t\tquat = vec4f(d, abc);\n\t} else if (qmode == 1u) {\n\t\tquat = vec4f(abc.x, d, abc.y, abc.z);\n\t} else if (qmode == 2u) {\n\t\tquat = vec4f(abc.x, abc.y, d, abc.z);\n\t} else {\n\t\tquat = vec4f(abc.x, abc.y, abc.z, d);\n\t}\n\treturn quat;\n}\nfn getScale() -> vec3f {\n\tlet s = textureLoad(scales, splat.uv, 0).xyz;\n\tvar logS: vec3f;\n\t#ifdef SOG_V2\n\t\tlet i = vec3i(s * 255.0 + 0.5);\n\t\tlogS = vec3f(lutScales(i.x), lutScales(i.y), lutScales(i.z));\n\t#else\n\t\tlogS = mix(uniform.scales_mins, uniform.scales_maxs, s);\n\t#endif\n\treturn exp(logS);\n}\n#endif\nfn getColor() -> vec4f {\n\tlet c = textureLoad(sh0, splat.uv, 0);\n\tvar rgb: vec3f;\n\tvar alpha: f32;\n\t#ifdef SOG_V2\n\t\tlet i = vec3i(c.xyz * 255.0 + 0.5);\n\t\trgb = vec3f(lutSh0(i.x), lutSh0(i.y), lutSh0(i.z));\n\t\talpha = c.w;\n\t#else\n\t\trgb = mix(uniform.sh0_mins.xyz, uniform.sh0_maxs.xyz, c.xyz);\n\t\tlet logitAlpha = mix(uniform.sh0_mins.w, uniform.sh0_maxs.w, c.w);\n\t\talpha = 1.0 / (1.0 + exp(-logitAlpha));\n\t#endif\n\treturn vec4f(vec3f(0.5) + rgb * SH_C0, alpha);\n}\n#include \"gsplatSogSHVS\"\n`;\n\nvar sogSH_default2 = `\n#if SH_BANDS > 0\n\t#ifndef SOG_V2\n\t\tuniform shN_mins: f32;\n\t\tuniform shN_maxs: f32;\n\t#endif\n\tfn readSHTexel(u: i32, v: i32) -> half3 {\n\t\tlet t = textureLoad(sh_centroids, vec2i(u, v), 0);\n\t\t#ifdef SOG_V2\n\t\t\tlet idx = vec3i(t.xyz * 255.0 + 0.5);\n\t\t\treturn half3(vec3f(lutShN(idx.x), lutShN(idx.y), lutShN(idx.z)));\n\t\t#else\n\t\t\treturn mix(half3(half(uniform.shN_mins)), half3(half(uniform.shN_maxs)), half3(t.xyz));\n\t\t#endif\n\t}\n\tfn readSHData(sh: ptr<function, array<half3, SH_COEFFS>>, scale: ptr<function, f32>) {\n\t\tlet labels = textureLoad(sh_labels, splat.uv, 0);\n\t\tlet n = i32(labels.x * 255.0 + 0.5) + i32(labels.y * 255.0 + 0.5) * 256;\n\t\tlet u = (n % 64) * SH_COEFFS;\n\t\tlet v = n / 64;\n\t\tsh[0] = readSHTexel(u, v);\n\t\tsh[1] = readSHTexel(u + 1, v);\n\t\tsh[2] = readSHTexel(u + 2, v);\n\t\t#if SH_BANDS > 1\n\t\t\tsh[3] = readSHTexel(u + 3, v);\n\t\t\tsh[4] = readSHTexel(u + 4, v);\n\t\t\tsh[5] = readSHTexel(u + 5, v);\n\t\t\tsh[6] = readSHTexel(u + 6, v);\n\t\t\tsh[7] = readSHTexel(u + 7, v);\n\t\t#endif\n\t\t#if SH_BANDS > 2\n\t\t\tsh[8]  = readSHTexel(u + 8, v);\n\t\t\tsh[9]  = readSHTexel(u + 9, v);\n\t\t\tsh[10] = readSHTexel(u + 10, v);\n\t\t\tsh[11] = readSHTexel(u + 11, v);\n\t\t\tsh[12] = readSHTexel(u + 12, v);\n\t\t\tsh[13] = readSHTexel(u + 13, v);\n\t\t\tsh[14] = readSHTexel(u + 14, v);\n\t\t#endif\n\t\t*scale = 1.0;\n\t}\n#endif\n`;\n\nvar containerDecl_default2 = `\n#include \"gsplatContainerDeclarationsVS\"\nvar<private> splatCenter: vec3f;\nvar<private> splatColor: vec4f;\nvar<private> splatScale: vec3f;\nvar<private> splatRotation: vec4f;\n`;\n\nvar containerRead_default2 = `\nfn getCenter() -> vec3f {\n\t#include \"gsplatContainerUserReadVS\"\n\treturn splatCenter;\n}\nfn getRotation() -> vec4f {\n\treturn splatRotation;\n}\nfn getScale() -> vec3f {\n\treturn splatScale;\n}\nfn getColor() -> vec4f {\n\treturn splatColor;\n}\n`;\n\nvar gsplatChunksWGSL = {\n\tgsplatCenterVS: gsplatCenter_default2,\n\tgsplatCornerVS: gsplatCorner_default2,\n\tgsplatCommonVS: gsplatCommon_default2,\n\tgsplatSplatVS: gsplatSplat_default2,\n\tgsplatEvalSHVS: gsplatEvalSH_default2,\n\tgsplatHelpersVS: gsplatHelpers_default,\n\tgsplatModifyVS: gsplatModify_default,\n\tgsplatModifyPS: gsplatModify_default4,\n\tgsplatWorkBufferGeometryPS: gsplatWorkBufferGeometry_default2,\n\tgsplatStructsVS: gsplatStructs_default2,\n\tgsplatQuatToMat3VS: gsplatQuatToMat3_default2,\n\tgsplatOutputVS: gsplatOutput_default2,\n\tgsplatPS: gsplat_default3,\n\tgsplatSourceVS: gsplatSource_default2,\n\tgsplatVS: gsplat_default4,\n\tgsplatHybridVS: gsplatHybrid_default,\n\tgsplatPackingPS: gsplatPacking_default2,\n\tgsplatFormatVS: gsplatFormat_default2,\n\tgsplatUncompressedVS: uncompressed_default2,\n\tgsplatUncompressedSHVS: uncompressedSH_default2,\n\tgsplatCompressedVS: compressed_default2,\n\tgsplatCompressedSHVS: compressedSH_default2,\n\tgsplatSogVS: sog_default2,\n\tgsplatSogSHVS: sogSH_default2,\n\tgsplatContainerDeclVS: containerDecl_default2,\n\tgsplatContainerReadVS: containerRead_default2,\n\tgsplatContainerFloatReadVS: containerFloatRead_default2\n};\n\nvar _properties14 = [\n\t\"unified\",\n\t\"lodFalloff\",\n\t\"lodRangeMin\",\n\t\"lodRangeMax\",\n\t\"castShadows\",\n\t\"material\",\n\t\"asset\",\n\t\"resource\",\n\t\"layers\"\n];\nvar GSplatComponentSystem = class extends ComponentSystem {\n\tstatic EVENT_MATERIALCREATED = \"material:created\";\n\tstatic EVENT_FRAMEREADY = \"frame:ready\";\n\tstatic EVENT_FRAMEREQUEST = \"frame:request\";\n\tconstructor(app2) {\n\t\tsuper(app2);\n\t\tthis.id = \"gsplat\";\n\t\tthis.ComponentType = GSplatComponent;\n\t\tthis.extraDataProperties = [\"aabbCenter\", \"aabbHalfExtents\"];\n\t\tapp2.renderer.gsplatDirector = new GSplatDirector(app2.graphicsDevice, app2.renderer, app2.scene, this);\n\t\tShaderChunks.get(app2.graphicsDevice, SHADERLANGUAGE_GLSL).add(gsplatChunksGLSL);\n\t\tShaderChunks.get(app2.graphicsDevice, SHADERLANGUAGE_WGSL).add(gsplatChunksWGSL);\n\t\tthis.on(\"beforeremove\", this.onBeforeRemove, this);\n\t\tthis.app.on(\"framerender\", this.onFrameRender, this);\n\t}\n\tonFrameRender() {\n\t\tthis.app.renderer.gsplatDirector?.updateStreaming();\n\t}\n\tinitializeComponentData(component, _data, properties) {\n\t\tif (_data.layers && _data.layers.length) {\n\t\t\t_data.layers = _data.layers.slice(0);\n\t\t}\n\t\tfor (let i2 = 0; i2 < _properties14.length; i2++) {\n\t\t\tif (_data.hasOwnProperty(_properties14[i2])) {\n\t\t\t\tcomponent[_properties14[i2]] = _data[_properties14[i2]];\n\t\t\t}\n\t\t}\n\t\tif (_data.aabbCenter && _data.aabbHalfExtents) {\n\t\t\tcomponent.customAabb = new BoundingBox(new Vec3(_data.aabbCenter), new Vec3(_data.aabbHalfExtents));\n\t\t}\n\t\tsuper.initializeComponentData(component, _data);\n\t}\n\tcloneComponent(entity, clone) {\n\t\tconst gSplatComponent = entity.gsplat;\n\t\tconst data2 = {};\n\t\t_properties14.forEach((prop) => {\n\t\t\tif (prop === \"material\") {\n\t\t\t\tif (!gSplatComponent.unified) {\n\t\t\t\t\tconst srcMaterial = gSplatComponent[prop];\n\t\t\t\t\tif (srcMaterial) {\n\t\t\t\t\t\tdata2[prop] = srcMaterial.clone();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdata2[prop] = gSplatComponent[prop];\n\t\t\t}\n\t\t});\n\t\tdata2.enabled = gSplatComponent.enabled;\n\t\tconst component = this.addComponent(clone, data2);\n\t\tcomponent.customAabb = gSplatComponent.customAabb?.clone() ?? null;\n\t\treturn component;\n\t}\n\tonBeforeRemove(entity, component) {\n\t\tcomponent.onBeforeRemove();\n\t}\n\tgetMaterial(camera, layer) {\n\t\tconst director = this.app.renderer.gsplatDirector;\n\t\tif (!director) return null;\n\t\tconst cameraData = director.camerasMap.get(camera);\n\t\tif (!cameraData) return null;\n\t\tconst layerData = cameraData.layersMap.get(layer);\n\t\treturn layerData?.gsplatManager?.material ?? null;\n\t}\n\tgetGSplatMaterial(camera, layer) {\n\t\treturn this.getMaterial(camera, layer);\n\t}\n\tdestroy() {\n\t\tsuper.destroy();\n\t\tthis.app.off(\"framerender\", this.onFrameRender, this);\n\t}\n};\n\nvar Render = class extends EventHandler {\n\tstatic EVENT_SETMESHES = \"set:meshes\";\n\t_meshes = null;\n\tset meshes(value) {\n\t\tthis.decRefMeshes();\n\t\tthis._meshes = value;\n\t\tthis.incRefMeshes();\n\t\tthis.fire(\"set:meshes\", value);\n\t}\n\tget meshes() {\n\t\treturn this._meshes;\n\t}\n\tdestroy() {\n\t\tthis.meshes = null;\n\t}\n\tdecRefMeshes() {\n\t\tthis._meshes?.forEach((mesh, index) => {\n\t\t\tif (mesh) {\n\t\t\t\tmesh.decRefCount();\n\t\t\t\tif (mesh.refCount < 1) {\n\t\t\t\t\tmesh.destroy();\n\t\t\t\t\tthis._meshes[index] = null;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\tincRefMeshes() {\n\t\tthis._meshes?.forEach((mesh) => {\n\t\t\tmesh?.incRefCount();\n\t\t});\n\t}\n};\n\nfunction onContainerAssetLoaded(containerAsset) {\n\tconst renderAsset = this;\n\tif (!renderAsset.resource) return;\n\tconst containerResource = containerAsset.resource;\n\tconst render = containerResource.renders && containerResource.renders[renderAsset.data.renderIndex];\n\tif (render) {\n\t\trenderAsset.resource.meshes = render.resource.meshes;\n\t}\n}\nfunction onContainerAssetAdded(containerAsset) {\n\tconst renderAsset = this;\n\trenderAsset.registry.off(`load:${containerAsset.id}`, onContainerAssetLoaded, renderAsset);\n\trenderAsset.registry.on(`load:${containerAsset.id}`, onContainerAssetLoaded, renderAsset);\n\trenderAsset.registry.off(`remove:${containerAsset.id}`, onContainerAssetRemoved, renderAsset);\n\trenderAsset.registry.once(`remove:${containerAsset.id}`, onContainerAssetRemoved, renderAsset);\n\tif (!containerAsset.resource) {\n\t\trenderAsset.registry.load(containerAsset);\n\t} else {\n\t\tonContainerAssetLoaded.call(renderAsset, containerAsset);\n\t}\n}\nfunction onContainerAssetRemoved(containerAsset) {\n\tconst renderAsset = this;\n\trenderAsset.registry.off(`load:${containerAsset.id}`, onContainerAssetLoaded, renderAsset);\n\tif (renderAsset.resource) {\n\t\trenderAsset.resource.destroy();\n\t}\n}\nvar RenderHandler = class extends ResourceHandler {\n\tconstructor(app2) {\n\t\tsuper(app2, \"render\");\n\t\tthis._registry = app2.assets;\n\t}\n\topen(url, data2) {\n\t\treturn new Render();\n\t}\n\tpatch(asset, registry) {\n\t\tif (!asset.data.containerAsset) {\n\t\t\treturn;\n\t\t}\n\t\tconst containerAsset = registry.get(asset.data.containerAsset);\n\t\tif (!containerAsset) {\n\t\t\tregistry.once(`add:${asset.data.containerAsset}`, onContainerAssetAdded, asset);\n\t\t\treturn;\n\t\t}\n\t\tonContainerAssetAdded.call(asset, containerAsset);\n\t}\n};\n\nvar AnimCurve = class {\n\tconstructor(paths, input, output, interpolation) {\n\t\tthis._paths = paths;\n\t\tthis._input = input;\n\t\tthis._output = output;\n\t\tthis._interpolation = interpolation;\n\t}\n\tget paths() {\n\t\treturn this._paths;\n\t}\n\tget input() {\n\t\treturn this._input;\n\t}\n\tget output() {\n\t\treturn this._output;\n\t}\n\tget interpolation() {\n\t\treturn this._interpolation;\n\t}\n};\n\nvar AnimData = class {\n\tconstructor(components2, data2) {\n\t\tthis._components = components2;\n\t\tthis._data = data2;\n\t}\n\tget components() {\n\t\treturn this._components;\n\t}\n\tget data() {\n\t\treturn this._data;\n\t}\n};\n\nvar gltfToEngineSemanticMap = {\n\t\"POSITION\": SEMANTIC_POSITION,\n\t\"NORMAL\": SEMANTIC_NORMAL,\n\t\"TANGENT\": SEMANTIC_TANGENT,\n\t\"COLOR_0\": SEMANTIC_COLOR,\n\t\"JOINTS_0\": SEMANTIC_BLENDINDICES,\n\t\"WEIGHTS_0\": SEMANTIC_BLENDWEIGHT,\n\t\"TEXCOORD_0\": SEMANTIC_TEXCOORD0,\n\t\"TEXCOORD_1\": SEMANTIC_TEXCOORD1,\n\t\"TEXCOORD_2\": SEMANTIC_TEXCOORD2,\n\t\"TEXCOORD_3\": SEMANTIC_TEXCOORD3,\n\t\"TEXCOORD_4\": SEMANTIC_TEXCOORD4,\n\t\"TEXCOORD_5\": SEMANTIC_TEXCOORD5,\n\t\"TEXCOORD_6\": SEMANTIC_TEXCOORD6,\n\t\"TEXCOORD_7\": SEMANTIC_TEXCOORD7\n};\nvar getPrimitiveType = (primitive2) => {\n\tif (!primitive2.hasOwnProperty(\"mode\")) {\n\t\treturn PRIMITIVE_TRIANGLES;\n\t}\n\tswitch (primitive2.mode) {\n\t\tcase 0:\n\t\t\treturn PRIMITIVE_POINTS;\n\t\tcase 1:\n\t\t\treturn PRIMITIVE_LINES;\n\t\tcase 2:\n\t\t\treturn PRIMITIVE_LINELOOP;\n\t\tcase 3:\n\t\t\treturn PRIMITIVE_LINESTRIP;\n\t\tcase 4:\n\t\t\treturn PRIMITIVE_TRIANGLES;\n\t\tcase 5:\n\t\t\treturn PRIMITIVE_TRISTRIP;\n\t\tcase 6:\n\t\t\treturn PRIMITIVE_TRIFAN;\n\t\tdefault:\n\t\t\treturn PRIMITIVE_TRIANGLES;\n\t}\n};\nvar isTriangleMode = (primitiveType) => {\n\treturn primitiveType === PRIMITIVE_TRIANGLES || primitiveType === PRIMITIVE_TRISTRIP || primitiveType === PRIMITIVE_TRIFAN;\n};\nvar getDequantizeFunc = (srcType) => {\n\tswitch (srcType) {\n\t\tcase TYPE_INT8:\n\t\t\treturn (x3) => Math.max(x3 / 127, -1);\n\t\tcase TYPE_UINT8:\n\t\t\treturn (x3) => x3 / 255;\n\t\tcase TYPE_INT16:\n\t\t\treturn (x3) => Math.max(x3 / 32767, -1);\n\t\tcase TYPE_UINT16:\n\t\t\treturn (x3) => x3 / 65535;\n\t\tdefault:\n\t\t\treturn (x3) => x3;\n\t}\n};\nvar dequantizeArray = (dstArray, srcArray, srcType) => {\n\tconst convFunc = getDequantizeFunc(srcType);\n\tconst len = srcArray.length;\n\tfor (let i2 = 0; i2 < len; ++i2) {\n\t\tdstArray[i2] = convFunc(srcArray[i2]);\n\t}\n\treturn dstArray;\n};\nvar GltfAccessor = class _GltfAccessor {\n\tstatic getNumComponents(accessorType) {\n\t\tswitch (accessorType) {\n\t\t\tcase \"SCALAR\":\n\t\t\t\treturn 1;\n\t\t\tcase \"VEC2\":\n\t\t\t\treturn 2;\n\t\t\tcase \"VEC3\":\n\t\t\t\treturn 3;\n\t\t\tcase \"VEC4\":\n\t\t\t\treturn 4;\n\t\t\tcase \"MAT2\":\n\t\t\t\treturn 4;\n\t\t\tcase \"MAT3\":\n\t\t\t\treturn 9;\n\t\t\tcase \"MAT4\":\n\t\t\t\treturn 16;\n\t\t\tdefault:\n\t\t\t\treturn 3;\n\t\t}\n\t}\n\tstatic getComponentType(componentType) {\n\t\tswitch (componentType) {\n\t\t\tcase 5120:\n\t\t\t\treturn TYPE_INT8;\n\t\t\tcase 5121:\n\t\t\t\treturn TYPE_UINT8;\n\t\t\tcase 5122:\n\t\t\t\treturn TYPE_INT16;\n\t\t\tcase 5123:\n\t\t\t\treturn TYPE_UINT16;\n\t\t\tcase 5124:\n\t\t\t\treturn TYPE_INT32;\n\t\t\tcase 5125:\n\t\t\t\treturn TYPE_UINT32;\n\t\t\tcase 5126:\n\t\t\t\treturn TYPE_FLOAT32;\n\t\t\tdefault:\n\t\t\t\treturn 0;\n\t\t}\n\t}\n\tstatic getComponentSizeInBytes(componentType) {\n\t\tswitch (componentType) {\n\t\t\tcase 5120:\n\t\t\t\treturn 1;\n\t\t\t// int8\n\t\t\tcase 5121:\n\t\t\t\treturn 1;\n\t\t\t// uint8\n\t\t\tcase 5122:\n\t\t\t\treturn 2;\n\t\t\t// int16\n\t\t\tcase 5123:\n\t\t\t\treturn 2;\n\t\t\t// uint16\n\t\t\tcase 5124:\n\t\t\t\treturn 4;\n\t\t\t// int32\n\t\t\tcase 5125:\n\t\t\t\treturn 4;\n\t\t\t// uint32\n\t\t\tcase 5126:\n\t\t\t\treturn 4;\n\t\t\t// float32\n\t\t\tdefault:\n\t\t\t\treturn 0;\n\t\t}\n\t}\n\tstatic getComponentDataType(componentType) {\n\t\tswitch (componentType) {\n\t\t\tcase 5120:\n\t\t\t\treturn Int8Array;\n\t\t\tcase 5121:\n\t\t\t\treturn Uint8Array;\n\t\t\tcase 5122:\n\t\t\t\treturn Int16Array;\n\t\t\tcase 5123:\n\t\t\t\treturn Uint16Array;\n\t\t\tcase 5124:\n\t\t\t\treturn Int32Array;\n\t\t\tcase 5125:\n\t\t\t\treturn Uint32Array;\n\t\t\tcase 5126:\n\t\t\t\treturn Float32Array;\n\t\t\tdefault:\n\t\t\t\treturn null;\n\t\t}\n\t}\n\t// get accessor data, making a copy and patching in the case of a sparse accessor\n\tstatic getData(gltfAccessor, bufferViews, flatten = false) {\n\t\tconst numComponents = _GltfAccessor.getNumComponents(gltfAccessor.type);\n\t\tconst dataType = _GltfAccessor.getComponentDataType(gltfAccessor.componentType);\n\t\tif (!dataType) {\n\t\t\treturn null;\n\t\t}\n\t\tlet result;\n\t\tif (gltfAccessor.sparse) {\n\t\t\tconst sparse = gltfAccessor.sparse;\n\t\t\tconst indicesAccessor = {\n\t\t\t\tcount: sparse.count,\n\t\t\t\ttype: \"SCALAR\"\n\t\t\t};\n\t\t\tconst indices = _GltfAccessor.getData(Object.assign(indicesAccessor, sparse.indices), bufferViews, true);\n\t\t\tconst valuesAccessor = {\n\t\t\t\tcount: sparse.count,\n\t\t\t\ttype: gltfAccessor.type,\n\t\t\t\tcomponentType: gltfAccessor.componentType\n\t\t\t};\n\t\t\tconst values = _GltfAccessor.getData(Object.assign(valuesAccessor, sparse.values), bufferViews, true);\n\t\t\tif (gltfAccessor.hasOwnProperty(\"bufferView\")) {\n\t\t\t\tconst baseAccessor = {\n\t\t\t\t\tbufferView: gltfAccessor.bufferView,\n\t\t\t\t\tbyteOffset: gltfAccessor.byteOffset,\n\t\t\t\t\tcomponentType: gltfAccessor.componentType,\n\t\t\t\t\tcount: gltfAccessor.count,\n\t\t\t\t\ttype: gltfAccessor.type\n\t\t\t\t};\n\t\t\t\tresult = _GltfAccessor.getData(baseAccessor, bufferViews, true).slice();\n\t\t\t} else {\n\t\t\t\tresult = new dataType(gltfAccessor.count * numComponents);\n\t\t\t}\n\t\t\tfor (let i2 = 0; i2 < sparse.count; ++i2) {\n\t\t\t\tconst targetIndex = indices[i2];\n\t\t\t\tfor (let j = 0; j < numComponents; ++j) {\n\t\t\t\t\tresult[targetIndex * numComponents + j] = values[i2 * numComponents + j];\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif (gltfAccessor.hasOwnProperty(\"bufferView\")) {\n\t\t\t\tconst bufferView = bufferViews[gltfAccessor.bufferView];\n\t\t\t\tif (flatten && bufferView.hasOwnProperty(\"byteStride\")) {\n\t\t\t\t\tconst bytesPerElement = numComponents * dataType.BYTES_PER_ELEMENT;\n\t\t\t\t\tconst storage = new ArrayBuffer(gltfAccessor.count * bytesPerElement);\n\t\t\t\t\tconst tmpArray = new Uint8Array(storage);\n\t\t\t\t\tlet dstOffset = 0;\n\t\t\t\t\tfor (let i2 = 0; i2 < gltfAccessor.count; ++i2) {\n\t\t\t\t\t\tlet srcOffset = (gltfAccessor.byteOffset || 0) + i2 * bufferView.byteStride;\n\t\t\t\t\t\tfor (let b = 0; b < bytesPerElement; ++b) {\n\t\t\t\t\t\t\ttmpArray[dstOffset++] = bufferView[srcOffset++];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tresult = new dataType(storage);\n\t\t\t\t} else {\n\t\t\t\t\tresult = new dataType(\n\t\t\t\t\t\tbufferView.buffer,\n\t\t\t\t\t\tbufferView.byteOffset + (gltfAccessor.byteOffset || 0),\n\t\t\t\t\t\tgltfAccessor.count * numComponents\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tresult = new dataType(gltfAccessor.count * numComponents);\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\t// extract a single component of an interleaved accessor data array into a new array\n\tstatic extractComponent(source, numComponents, component, count) {\n\t\tconst result = new Float32Array(count);\n\t\tfor (let i2 = 0; i2 < count; i2++) {\n\t\t\tresult[i2] = source[i2 * numComponents + component];\n\t\t}\n\t\treturn result;\n\t}\n\t// get accessor data as (unnormalized, unquantized) Float32 data\n\tstatic getDataFloat32(gltfAccessor, bufferViews) {\n\t\tconst data2 = _GltfAccessor.getData(gltfAccessor, bufferViews, true);\n\t\tif (data2 instanceof Float32Array || !gltfAccessor.normalized) {\n\t\t\treturn data2;\n\t\t}\n\t\tconst float32Data = new Float32Array(data2.length);\n\t\tdequantizeArray(float32Data, data2, _GltfAccessor.getComponentType(gltfAccessor.componentType));\n\t\treturn float32Data;\n\t}\n\t// returns a dequantized bounding box for the accessor\n\tstatic getBoundingBox(gltfAccessor) {\n\t\tlet min = gltfAccessor.min;\n\t\tlet max = gltfAccessor.max;\n\t\tif (!min || !max) {\n\t\t\treturn null;\n\t\t}\n\t\tif (gltfAccessor.normalized) {\n\t\t\tconst ctype = _GltfAccessor.getComponentType(gltfAccessor.componentType);\n\t\t\tmin = dequantizeArray([], min, ctype);\n\t\t\tmax = dequantizeArray([], max, ctype);\n\t\t}\n\t\treturn new BoundingBox(\n\t\t\tnew Vec3((max[0] + min[0]) * 0.5, (max[1] + min[1]) * 0.5, (max[2] + min[2]) * 0.5),\n\t\t\tnew Vec3((max[0] - min[0]) * 0.5, (max[1] - min[1]) * 0.5, (max[2] - min[2]) * 0.5)\n\t\t);\n\t}\n};\n\nvar createInstancing = (device, gltf, nodeInstancingMap, bufferViews) => {\n\tconst accessors = gltf.accessors;\n\tnodeInstancingMap.forEach((data2, entity) => {\n\t\tconst attributes = data2.ext.attributes;\n\t\tlet translations;\n\t\tif (attributes.hasOwnProperty(\"TRANSLATION\")) {\n\t\t\tconst accessor = accessors[attributes.TRANSLATION];\n\t\t\ttranslations = GltfAccessor.getDataFloat32(accessor, bufferViews);\n\t\t}\n\t\tlet rotations;\n\t\tif (attributes.hasOwnProperty(\"ROTATION\")) {\n\t\t\tconst accessor = accessors[attributes.ROTATION];\n\t\t\trotations = GltfAccessor.getDataFloat32(accessor, bufferViews);\n\t\t}\n\t\tlet scales;\n\t\tif (attributes.hasOwnProperty(\"SCALE\")) {\n\t\t\tconst accessor = accessors[attributes.SCALE];\n\t\t\tscales = GltfAccessor.getDataFloat32(accessor, bufferViews);\n\t\t}\n\t\tconst instanceCount = (translations ? translations.length / 3 : 0) || (rotations ? rotations.length / 4 : 0) || (scales ? scales.length / 3 : 0);\n\t\tif (instanceCount) {\n\t\t\tconst matrices = new Float32Array(instanceCount * 16);\n\t\t\tconst pos = new Vec3();\n\t\t\tconst rot = new Quat();\n\t\t\tconst scl = new Vec3(1, 1, 1);\n\t\t\tconst matrix2 = new Mat4();\n\t\t\tlet matrixIndex = 0;\n\t\t\tfor (let i2 = 0; i2 < instanceCount; i2++) {\n\t\t\t\tconst i3 = i2 * 3;\n\t\t\t\tif (translations) {\n\t\t\t\t\tpos.set(translations[i3], translations[i3 + 1], translations[i3 + 2]);\n\t\t\t\t}\n\t\t\t\tif (rotations) {\n\t\t\t\t\tconst i4 = i2 * 4;\n\t\t\t\t\trot.set(rotations[i4], rotations[i4 + 1], rotations[i4 + 2], rotations[i4 + 3]);\n\t\t\t\t}\n\t\t\t\tif (scales) {\n\t\t\t\t\tscl.set(scales[i3], scales[i3 + 1], scales[i3 + 2]);\n\t\t\t\t}\n\t\t\t\tmatrix2.setTRS(pos, rot, scl);\n\t\t\t\tfor (let m = 0; m < 16; m++) {\n\t\t\t\t\tmatrices[matrixIndex++] = matrix2.data[m];\n\t\t\t\t}\n\t\t\t}\n\t\t\tdata2.matrices = matrices;\n\t\t}\n\t});\n};\n\nfunction DracoWorker(jsUrl, wasmUrl) {\n\tconst myself = typeof self !== \"undefined\" && self || __require(\"node:worker_threads\").parentPort;\n\tlet draco;\n\tconst POSITION_ATTRIBUTE = 0;\n\tconst NORMAL_ATTRIBUTE = 1;\n\tconst wrap = (typedArray, dataType) => {\n\t\tswitch (dataType) {\n\t\t\tcase draco.DT_INT8:\n\t\t\t\treturn new Int8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength);\n\t\t\tcase draco.DT_INT16:\n\t\t\t\treturn new Int16Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength / 2);\n\t\t\tcase draco.DT_INT32:\n\t\t\t\treturn new Int32Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength / 4);\n\t\t\tcase draco.DT_UINT8:\n\t\t\t\treturn new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength);\n\t\t\tcase draco.DT_UINT16:\n\t\t\t\treturn new Uint16Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength / 2);\n\t\t\tcase draco.DT_UINT32:\n\t\t\t\treturn new Uint32Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength / 4);\n\t\t\tcase draco.DT_FLOAT32:\n\t\t\t\treturn new Float32Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength / 4);\n\t\t}\n\t\treturn null;\n\t};\n\tconst componentSizeInBytes = (dataType) => {\n\t\tswitch (dataType) {\n\t\t\tcase draco.DT_INT8:\n\t\t\t\treturn 1;\n\t\t\tcase draco.DT_INT16:\n\t\t\t\treturn 2;\n\t\t\tcase draco.DT_INT32:\n\t\t\t\treturn 4;\n\t\t\tcase draco.DT_UINT8:\n\t\t\t\treturn 1;\n\t\t\tcase draco.DT_UINT16:\n\t\t\t\treturn 2;\n\t\t\tcase draco.DT_UINT32:\n\t\t\t\treturn 4;\n\t\t\tcase draco.DT_FLOAT32:\n\t\t\t\treturn 4;\n\t\t}\n\t\treturn 1;\n\t};\n\tconst toEngineDataType = (dataType) => {\n\t\tswitch (dataType) {\n\t\t\tcase draco.DT_INT8:\n\t\t\t\treturn 0;\n\t\t\tcase draco.DT_UINT8:\n\t\t\t\treturn 1;\n\t\t\tcase draco.DT_INT16:\n\t\t\t\treturn 2;\n\t\t\tcase draco.DT_UINT16:\n\t\t\t\treturn 3;\n\t\t\tcase draco.DT_INT32:\n\t\t\t\treturn 4;\n\t\t\tcase draco.DT_UINT32:\n\t\t\t\treturn 5;\n\t\t\tcase draco.DT_FLOAT32:\n\t\t\t\treturn 6;\n\t\t\tdefault:\n\t\t\t\treturn 6;\n\t\t}\n\t};\n\tconst attributeSizeInBytes = (attribute) => {\n\t\treturn attribute.num_components() * componentSizeInBytes(attribute.data_type());\n\t};\n\tconst attributeOrder2 = {\n\t\t0: 0,\n\t\t// position\n\t\t1: 1,\n\t\t// normal\n\t\t5: 2,\n\t\t// tangent\n\t\t2: 3,\n\t\t// color\n\t\t7: 4,\n\t\t// joints\n\t\t8: 5,\n\t\t// weights\n\t\t4: 6,\n\t\t// generic (used for blend indices and weights)\n\t\t3: 7\n\t\t// texcoord\n\t};\n\tconst generateNormals2 = (vertices, indices) => {\n\t\tconst subtract = (dst, a2, b2) => {\n\t\t\tdst[0] = a2[0] - b2[0];\n\t\t\tdst[1] = a2[1] - b2[1];\n\t\t\tdst[2] = a2[2] - b2[2];\n\t\t};\n\t\tconst cross = (dst, a2, b2) => {\n\t\t\tdst[0] = a2[1] * b2[2] - b2[1] * a2[2];\n\t\t\tdst[1] = a2[2] * b2[0] - b2[2] * a2[0];\n\t\t\tdst[2] = a2[0] * b2[1] - b2[0] * a2[1];\n\t\t};\n\t\tconst normalize = (dst, offset3) => {\n\t\t\tconst a2 = dst[offset3 + 0];\n\t\t\tconst b2 = dst[offset3 + 1];\n\t\t\tconst c3 = dst[offset3 + 2];\n\t\t\tconst l = 1 / Math.sqrt(a2 * a2 + b2 * b2 + c3 * c3);\n\t\t\tdst[offset3 + 0] *= l;\n\t\t\tdst[offset3 + 1] *= l;\n\t\t\tdst[offset3 + 2] *= l;\n\t\t};\n\t\tconst copy = (dst, src, srcOffset) => {\n\t\t\tfor (let i2 = 0; i2 < 3; ++i2) {\n\t\t\t\tdst[i2] = src[srcOffset + i2];\n\t\t\t}\n\t\t};\n\t\tconst numTriangles = indices.length / 3;\n\t\tconst numVertices = vertices.length / 3;\n\t\tconst result = new Float32Array(vertices.length);\n\t\tconst a = [0, 0, 0], b = [0, 0, 0], c2 = [0, 0, 0], t1 = [0, 0, 0], t2 = [0, 0, 0], n = [0, 0, 0];\n\t\tfor (let i2 = 0; i2 < numTriangles; ++i2) {\n\t\t\tconst v0 = indices[i2 * 3 + 0] * 3;\n\t\t\tconst v15 = indices[i2 * 3 + 1] * 3;\n\t\t\tconst v26 = indices[i2 * 3 + 2] * 3;\n\t\t\tcopy(a, vertices, v0);\n\t\t\tcopy(b, vertices, v15);\n\t\t\tcopy(c2, vertices, v26);\n\t\t\tsubtract(t1, b, a);\n\t\t\tsubtract(t2, c2, a);\n\t\t\tcross(n, t1, t2);\n\t\t\tnormalize(n, 0);\n\t\t\tfor (let j = 0; j < 3; ++j) {\n\t\t\t\tresult[v0 + j] += n[j];\n\t\t\t\tresult[v15 + j] += n[j];\n\t\t\t\tresult[v26 + j] += n[j];\n\t\t\t}\n\t\t}\n\t\tfor (let i2 = 0; i2 < numVertices; ++i2) {\n\t\t\tnormalize(result, i2 * 3);\n\t\t}\n\t\treturn new Uint8Array(result.buffer);\n\t};\n\tconst decodeMesh = (inputBuffer) => {\n\t\tconst result = {};\n\t\tconst buffer = new draco.DecoderBuffer();\n\t\tbuffer.Init(inputBuffer, inputBuffer.length);\n\t\tconst decoder = new draco.Decoder();\n\t\tif (decoder.GetEncodedGeometryType(buffer) !== draco.TRIANGULAR_MESH) {\n\t\t\tresult.error = \"Failed to decode draco mesh: not a mesh\";\n\t\t\treturn result;\n\t\t}\n\t\tconst mesh = new draco.Mesh();\n\t\tconst status = decoder.DecodeBufferToMesh(buffer, mesh);\n\t\tif (!status || !status.ok() || draco.getPointer(mesh) === 0) {\n\t\t\tresult.error = \"Failed to decode draco asset\";\n\t\t\treturn result;\n\t\t}\n\t\tconst numIndices = mesh.num_faces() * 3;\n\t\tconst shortIndices = mesh.num_points() <= 65535;\n\t\tconst indicesSize = numIndices * (shortIndices ? 2 : 4);\n\t\tconst indicesPtr = draco._malloc(indicesSize);\n\t\tif (shortIndices) {\n\t\t\tdecoder.GetTrianglesUInt16Array(mesh, indicesSize, indicesPtr);\n\t\t\tresult.indices = new Uint16Array(draco.HEAPU16.buffer, indicesPtr, numIndices).slice().buffer;\n\t\t} else {\n\t\t\tdecoder.GetTrianglesUInt32Array(mesh, indicesSize, indicesPtr);\n\t\t\tresult.indices = new Uint32Array(draco.HEAPU32.buffer, indicesPtr, numIndices).slice().buffer;\n\t\t}\n\t\tdraco._free(indicesPtr);\n\t\tconst attributes = [];\n\t\tfor (let i2 = 0; i2 < mesh.num_attributes(); ++i2) {\n\t\t\tattributes.push(decoder.GetAttribute(mesh, i2));\n\t\t}\n\t\tattributes.sort((a, b) => {\n\t\t\treturn (attributeOrder2[a.attribute_type()] ?? attributeOrder2.length) - (attributeOrder2[b.attribute_type()] ?? attributeOrder2.length);\n\t\t});\n\t\tlet totalVertexSize = 0;\n\t\tconst offsets = attributes.map((a) => {\n\t\t\tconst offset3 = totalVertexSize;\n\t\t\ttotalVertexSize += Math.ceil(attributeSizeInBytes(a) / 4) * 4;\n\t\t\treturn offset3;\n\t\t});\n\t\tconst hasNormals = attributes.some((a) => a.attribute_type() === NORMAL_ATTRIBUTE);\n\t\tlet normalOffset = offsets[1] ?? 0;\n\t\tif (!hasNormals) {\n\t\t\tnormalOffset = offsets[0] + Math.ceil(attributeSizeInBytes(attributes[0]) / 4) * 4;\n\t\t\tfor (let i2 = 1; i2 < offsets.length; ++i2) {\n\t\t\t\toffsets[i2] += 12;\n\t\t\t}\n\t\t\ttotalVertexSize += 12;\n\t\t}\n\t\tresult.attributes = attributes.map((a, i2) => ({\n\t\t\tid: a.unique_id(),\n\t\t\tdataType: toEngineDataType(a.data_type()),\n\t\t\tnumComponents: a.num_components(),\n\t\t\toffset: offsets[i2]\n\t\t}));\n\t\tif (!hasNormals) {\n\t\t\tresult.attributes.splice(1, 0, {\n\t\t\t\tid: -1,\n\t\t\t\t// special id to indicate generated normals\n\t\t\t\tdataType: 6,\n\t\t\t\t// TYPE_FLOAT32\n\t\t\t\tnumComponents: 3,\n\t\t\t\toffset: normalOffset\n\t\t\t});\n\t\t}\n\t\tresult.stride = totalVertexSize;\n\t\tresult.vertices = new ArrayBuffer(mesh.num_points() * totalVertexSize);\n\t\tconst dst = new Uint8Array(result.vertices);\n\t\tfor (let i2 = 0; i2 < mesh.num_attributes(); ++i2) {\n\t\t\tconst attribute = attributes[i2];\n\t\t\tconst sizeInBytes = attributeSizeInBytes(attribute);\n\t\t\tconst ptrSize = mesh.num_points() * sizeInBytes;\n\t\t\tconst ptr = draco._malloc(ptrSize);\n\t\t\tdecoder.GetAttributeDataArrayForAllPoints(mesh, attribute, attribute.data_type(), ptrSize, ptr);\n\t\t\tconst src = new Uint8Array(draco.HEAPU8.buffer, ptr, ptrSize);\n\t\t\tfor (let j = 0; j < mesh.num_points(); ++j) {\n\t\t\t\tfor (let c2 = 0; c2 < sizeInBytes; ++c2) {\n\t\t\t\t\tdst[j * totalVertexSize + offsets[i2] + c2] = src[j * sizeInBytes + c2];\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!hasNormals && attribute.attribute_type() === POSITION_ATTRIBUTE) {\n\t\t\t\tconst normals = generateNormals2(\n\t\t\t\t\twrap(src, attribute.data_type()),\n\t\t\t\t\tshortIndices ? new Uint16Array(result.indices) : new Uint32Array(result.indices)\n\t\t\t\t);\n\t\t\t\tfor (let j = 0; j < mesh.num_points(); ++j) {\n\t\t\t\t\tfor (let c2 = 0; c2 < 12; ++c2) {\n\t\t\t\t\t\tdst[j * totalVertexSize + normalOffset + c2] = normals[j * 12 + c2];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tdraco._free(ptr);\n\t\t}\n\t\tdraco.destroy(mesh);\n\t\tdraco.destroy(decoder);\n\t\tdraco.destroy(buffer);\n\t\treturn result;\n\t};\n\tconst decode = (data2) => {\n\t\tconst result = decodeMesh(new Uint8Array(data2.buffer));\n\t\tmyself.postMessage({\n\t\t\tjobId: data2.jobId,\n\t\t\terror: result.error,\n\t\t\tindices: result.indices,\n\t\t\tvertices: result.vertices,\n\t\t\tattributes: result.attributes,\n\t\t\tstride: result.stride\n\t\t}, [result.indices, result.vertices].filter((t) => t != null));\n\t};\n\tconst workQueue = [];\n\tmyself.addEventListener(\"message\", (message) => {\n\t\tconst data2 = message.data;\n\t\tswitch (data2.type) {\n\t\t\tcase \"init\": {\n\t\t\t\tconst DracoDecoderModule = myself.DracoDecoderModule || typeof module !== \"undefined\" && module.exports;\n\t\t\t\tDracoDecoderModule({\n\t\t\t\t\tinstantiateWasm: (imports, successCallback) => {\n\t\t\t\t\t\tWebAssembly.instantiate(data2.module, imports).then((result) => successCallback(result)).catch((reason) => console.error(`instantiate failed + ${reason}`));\n\t\t\t\t\t\treturn {};\n\t\t\t\t\t}\n\t\t\t\t}).then((instance) => {\n\t\t\t\t\tdraco = instance;\n\t\t\t\t\tworkQueue.forEach((data3) => decode(data3));\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \"decodeMesh\":\n\t\t\t\tif (draco) {\n\t\t\t\t\tdecode(data2);\n\t\t\t\t} else {\n\t\t\t\t\tworkQueue.push(data2);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t});\n}\n\nvar downloadMaxRetries = 3;\nvar JobQueue = class {\n\tconstructor() {\n\t\tthis.workers = [[], [], []];\n\t\tthis.jobId = 0;\n\t\tthis.jobQueue = [];\n\t\tthis.jobCallbacks = /* @__PURE__ */ new Map();\n\t\tthis.run = (worker, job) => {\n\t\t\tworker.postMessage({\n\t\t\t\ttype: \"decodeMesh\",\n\t\t\t\tjobId: job.jobId,\n\t\t\t\tbuffer: job.buffer\n\t\t\t}, [job.buffer]);\n\t\t};\n\t}\n\t// initialize the queue with worker instances\n\tinit(workers2) {\n\t\tworkers2.forEach((worker) => {\n\t\t\tconst messageHandler = (message) => {\n\t\t\t\tconst data2 = message.data ?? message;\n\t\t\t\tconst callback = this.jobCallbacks.get(data2.jobId);\n\t\t\t\tif (callback) {\n\t\t\t\t\tcallback(data2.error, {\n\t\t\t\t\t\tindices: data2.indices,\n\t\t\t\t\t\tvertices: data2.vertices,\n\t\t\t\t\t\tattributes: data2.attributes,\n\t\t\t\t\t\tstride: data2.stride\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tthis.jobCallbacks.delete(data2.jobId);\n\t\t\t\tif (this.jobQueue.length > 0) {\n\t\t\t\t\tconst job = this.jobQueue.shift();\n\t\t\t\t\tthis.run(worker, job);\n\t\t\t\t} else {\n\t\t\t\t\tconst index2 = this.workers[2].indexOf(worker);\n\t\t\t\t\tif (index2 !== -1) {\n\t\t\t\t\t\tthis.workers[2].splice(index2, 1);\n\t\t\t\t\t\tthis.workers[1].push(worker);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst index1 = this.workers[1].indexOf(worker);\n\t\t\t\t\t\tif (index1 !== -1) {\n\t\t\t\t\t\t\tthis.workers[1].splice(index1, 1);\n\t\t\t\t\t\t\tthis.workers[0].push(worker);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t\tif (platform.environment === \"node\") {\n\t\t\t\tworker.on(\"message\", messageHandler);\n\t\t\t} else {\n\t\t\t\tworker.addEventListener(\"message\", messageHandler);\n\t\t\t}\n\t\t});\n\t\tthis.workers[0] = workers2;\n\t\twhile (this.jobQueue.length && (this.workers[0].length || this.workers[1].length)) {\n\t\t\tconst job = this.jobQueue.shift();\n\t\t\tif (this.workers[0].length > 0) {\n\t\t\t\tconst worker = this.workers[0].shift();\n\t\t\t\tthis.workers[1].push(worker);\n\t\t\t\tthis.run(worker, job);\n\t\t\t} else {\n\t\t\t\tconst worker = this.workers[1].shift();\n\t\t\t\tthis.workers[2].push(worker);\n\t\t\t\tthis.run(worker, job);\n\t\t\t}\n\t\t}\n\t}\n\t// mark the queue as failed: notify pending jobs and fail any future ones\n\tfail(error) {\n\t\tthis.error = error;\n\t\tthis.jobQueue.length = 0;\n\t\tconst callbacks = this.jobCallbacks;\n\t\tthis.jobCallbacks = /* @__PURE__ */ new Map();\n\t\tcallbacks.forEach((callback) => callback(error));\n\t}\n\tenqueueJob(buffer, callback) {\n\t\tif (this.error) {\n\t\t\tcallback(this.error);\n\t\t\treturn;\n\t\t}\n\t\tconst job = {\n\t\t\tjobId: this.jobId++,\n\t\t\tbuffer\n\t\t};\n\t\tthis.jobCallbacks.set(job.jobId, callback);\n\t\tif (this.workers[0].length > 0) {\n\t\t\tconst worker = this.workers[0].shift();\n\t\t\tthis.workers[1].push(worker);\n\t\t\tthis.run(worker, job);\n\t\t} else if (this.workers[1].length > 0) {\n\t\t\tconst worker = this.workers[1].shift();\n\t\t\tthis.workers[2].push(worker);\n\t\t\tthis.run(worker, job);\n\t\t} else {\n\t\t\tthis.jobQueue.push(job);\n\t\t}\n\t}\n};\nvar downloadScript = (url) => {\n\treturn new Promise((resolve2, reject) => {\n\t\tconst options2 = {\n\t\t\tcache: true,\n\t\t\tresponseType: \"text\",\n\t\t\tretry: downloadMaxRetries > 0,\n\t\t\tmaxRetries: downloadMaxRetries\n\t\t};\n\t\thttp.get(url, options2, (err2, response) => {\n\t\t\tif (err2) {\n\t\t\t\treject(err2);\n\t\t\t} else {\n\t\t\t\tresolve2(response);\n\t\t\t}\n\t\t});\n\t});\n};\nvar compileModule = (url) => {\n\tconst compileManual = () => {\n\t\treturn fetch(url).then((result) => result.arrayBuffer()).then((buffer) => WebAssembly.compile(buffer));\n\t};\n\tconst compileStreaming = () => {\n\t\treturn WebAssembly.compileStreaming(fetch(url)).catch((err2) => {\n\t\t\treturn compileManual();\n\t\t});\n\t};\n\treturn WebAssembly.compileStreaming ? compileStreaming() : compileManual();\n};\nvar defaultNumWorkers = 1;\nvar jobQueue;\nvar lazyConfig;\nvar initializeWorkers = (config) => {\n\tif (jobQueue) {\n\t\treturn true;\n\t}\n\tif (!config) {\n\t\tif (lazyConfig) {\n\t\t\tconfig = lazyConfig;\n\t\t} else {\n\t\t\tconst moduleConfig = WasmModule.getConfig(\"DracoDecoderModule\");\n\t\t\tif (moduleConfig) {\n\t\t\t\tconfig = {\n\t\t\t\t\tjsUrl: moduleConfig.glueUrl,\n\t\t\t\t\twasmUrl: moduleConfig.wasmUrl,\n\t\t\t\t\tnumWorkers: moduleConfig.numWorkers\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tconfig = {\n\t\t\t\t\tjsUrl: \"draco.wasm.js\",\n\t\t\t\t\twasmUrl: \"draco.wasm.wasm\",\n\t\t\t\t\tnumWorkers: defaultNumWorkers\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t}\n\tif (!config.jsUrl || !config.wasmUrl) {\n\t\treturn false;\n\t}\n\tjobQueue = new JobQueue();\n\tPromise.all([downloadScript(config.jsUrl), compileModule(config.wasmUrl)]).then(([dracoSource, dracoModule]) => {\n\t\tconst code = [\n\t\t\t\"/* draco */\",\n\t\t\tdracoSource,\n\t\t\t\"/* worker */\",\n\t\t\t`(\n${DracoWorker.toString()}\n)()\n\n`\n\t\t].join(\"\\n\");\n\t\tconst numWorkers = Math.max(1, Math.min(16, config.numWorkers || defaultNumWorkers));\n\t\tconst isNode = platform.environment === \"node\";\n\t\tconst workerUrl = isNode ? null : URL.createObjectURL(new Blob([code], { type: \"application/javascript\" }));\n\t\tconst workers2 = [];\n\t\tfor (let i2 = 0; i2 < numWorkers; ++i2) {\n\t\t\tconst worker = isNode ? new Worker(code, { eval: true }) : new Worker(workerUrl);\n\t\t\tworker.postMessage({\n\t\t\t\ttype: \"init\",\n\t\t\t\tmodule: dracoModule\n\t\t\t});\n\t\t\tworkers2.push(worker);\n\t\t}\n\t\tjobQueue.init(workers2);\n\t}).catch((err2) => {\n\t\tjobQueue.fail(err2 instanceof Error ? err2 : new Error(err2));\n\t});\n\treturn true;\n};\nvar dracoInitialize = (config) => {\n\tif (config?.lazyInit) {\n\t\tlazyConfig = config;\n\t} else {\n\t\tinitializeWorkers(config);\n\t}\n};\nvar dracoDecode = (buffer, callback) => {\n\tif (!initializeWorkers()) {\n\t\treturn false;\n\t}\n\tjobQueue.enqueueJob(buffer, callback);\n\treturn true;\n};\n\nvar createVariants = (gltf) => {\n\tif (!gltf.hasOwnProperty(\"extensions\") || !gltf.extensions.hasOwnProperty(\"KHR_materials_variants\")) {\n\t\treturn null;\n\t}\n\tconst data2 = gltf.extensions.KHR_materials_variants.variants;\n\tconst variants = {};\n\tfor (let i2 = 0; i2 < data2.length; i2++) {\n\t\tvariants[data2[i2].name] = i2;\n\t}\n\treturn variants;\n};\nvar registerMeshVariants = (primitive2, meshId, meshVariants) => {\n\tif (primitive2?.extensions?.KHR_materials_variants) {\n\t\tconst variants = primitive2.extensions.KHR_materials_variants;\n\t\tconst tempMapping = {};\n\t\tvariants.mappings.forEach((mapping) => {\n\t\t\tmapping.variants.forEach((variant) => {\n\t\t\t\ttempMapping[variant] = mapping.material;\n\t\t\t});\n\t\t});\n\t\tmeshVariants[meshId] = tempMapping;\n\t}\n};\n\nvar createDracoMesh = (device, primitive2, accessors, bufferViews, meshVariants, meshDefaultMaterials, flatShadedMeshes, promises) => {\n\tconst result = new Mesh(device);\n\tresult.aabb = GltfAccessor.getBoundingBox(accessors[primitive2.attributes.POSITION]);\n\tpromises.push(new Promise((resolve2, reject) => {\n\t\tconst dracoExt = primitive2.extensions.KHR_draco_mesh_compression;\n\t\tconst initialized = dracoDecode(bufferViews[dracoExt.bufferView].slice().buffer, (err2, decompressedData) => {\n\t\t\tif (err2) {\n\t\t\t\tconsole.log(err2);\n\t\t\t\treject(err2);\n\t\t\t} else {\n\t\t\t\tconst idToSemantic = {};\n\t\t\t\tfor (const [name, id14] of Object.entries(dracoExt.attributes)) {\n\t\t\t\t\tidToSemantic[id14] = gltfToEngineSemanticMap[name];\n\t\t\t\t}\n\t\t\t\tidToSemantic[-1] = SEMANTIC_NORMAL;\n\t\t\t\tconst vertexDesc = [];\n\t\t\t\tfor (const attr of decompressedData.attributes) {\n\t\t\t\t\tconst semantic = idToSemantic[attr.id];\n\t\t\t\t\tif (semantic !== void 0) {\n\t\t\t\t\t\tlet normalize = false;\n\t\t\t\t\t\tif (attr.id !== -1) {\n\t\t\t\t\t\t\tfor (const [name, id14] of Object.entries(dracoExt.attributes)) {\n\t\t\t\t\t\t\t\tif (id14 === attr.id && primitive2.attributes[name] !== void 0) {\n\t\t\t\t\t\t\t\t\tconst accessor = accessors[primitive2.attributes[name]];\n\t\t\t\t\t\t\t\t\tnormalize = accessor.normalized ?? (semantic === SEMANTIC_COLOR && (attr.dataType === TYPE_UINT8 || attr.dataType === TYPE_UINT16));\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvertexDesc.push({\n\t\t\t\t\t\t\tsemantic,\n\t\t\t\t\t\t\tcomponents: attr.numComponents,\n\t\t\t\t\t\t\ttype: attr.dataType,\n\t\t\t\t\t\t\tnormalize,\n\t\t\t\t\t\t\t// use offset and stride from worker to handle cases where Draco mesh\n\t\t\t\t\t\t\t// has additional attributes not listed in glTF\n\t\t\t\t\t\t\toffset: attr.offset,\n\t\t\t\t\t\t\tstride: decompressedData.stride\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tconst vertexFormat = new VertexFormat(device, vertexDesc);\n\t\t\t\tconst numVertices = decompressedData.vertices.byteLength / decompressedData.stride;\n\t\t\t\tconst indexFormat = numVertices <= 65535 ? INDEXFORMAT_UINT16 : INDEXFORMAT_UINT32;\n\t\t\t\tconst numIndices = decompressedData.indices.byteLength / (numVertices <= 65535 ? 2 : 4);\n\t\t\t\tconst vertexBuffer = new VertexBuffer(device, vertexFormat, numVertices, {\n\t\t\t\t\tdata: decompressedData.vertices\n\t\t\t\t});\n\t\t\t\tconst indexBuffer = new IndexBuffer(device, indexFormat, numIndices, BUFFER_STATIC, decompressedData.indices);\n\t\t\t\tresult.vertexBuffer = vertexBuffer;\n\t\t\t\tresult.indexBuffer[0] = indexBuffer;\n\t\t\t\tresult.primitive[0].type = getPrimitiveType(primitive2);\n\t\t\t\tresult.primitive[0].base = 0;\n\t\t\t\tresult.primitive[0].count = indexBuffer ? numIndices : numVertices;\n\t\t\t\tresult.primitive[0].indexed = !!indexBuffer;\n\t\t\t\tresolve2();\n\t\t\t}\n\t\t});\n\t\tif (!initialized) {\n\t\t\tconst message = \"glTF file contains Draco compressed meshes, but the Draco decoder is not configured. Call dracoInitialize() or WasmModule.setConfig('DracoDecoderModule', ...) before loading the asset.\";\n\t\t\treject(new Error(message));\n\t\t}\n\t}));\n\tregisterMeshVariants(primitive2, result.id, meshVariants);\n\tmeshDefaultMaterials[result.id] = primitive2.material;\n\tif (!primitive2.attributes.hasOwnProperty(\"NORMAL\") && isTriangleMode(getPrimitiveType(primitive2))) {\n\t\tflatShadedMeshes.add(result.id);\n\t}\n\treturn result;\n};\n\nvar extensionName = \"KHR_gaussian_splatting\";\nvar shDegreeCoefCounts = [3, 5, 7];\nvar shBandCoefCounts = { 1: 3, 2: 8, 3: 15 };\nvar hasGSplatExtension = (primitive2) => {\n\treturn !!primitive2?.extensions?.[extensionName];\n};\nvar createGSplatData = (primitive2, accessors, bufferViews) => {\n\tconst extensionData = primitive2.extensions[extensionName];\n\tconst attributes = primitive2.attributes;\n\tconst numSplats = accessors[attributes.POSITION]?.count ?? 0;\n\tconst readAttribute = (name) => {\n\t\tconst accessor = accessors[attributes[name]];\n\t\tif (!accessor || accessor.count !== numSplats) {\n\t\t\treturn null;\n\t\t}\n\t\treturn GltfAccessor.getDataFloat32(accessor, bufferViews);\n\t};\n\tconst positions = readAttribute(\"POSITION\");\n\tconst rotations = readAttribute(`${extensionName}:ROTATION`);\n\tconst scales = readAttribute(`${extensionName}:SCALE`);\n\tconst opacities = readAttribute(`${extensionName}:OPACITY`);\n\tconst sh0 = readAttribute(`${extensionName}:SH_DEGREE_0_COEF_0`);\n\tif (!numSplats || !positions || !rotations || !scales || !opacities || !sh0) {\n\t\treturn null;\n\t}\n\tconst properties = [];\n\tconst addProp = (name, storage) => {\n\t\tproperties.push({ type: \"float\", name, storage, byteSize: 4 });\n\t};\n\taddProp(\"x\", GltfAccessor.extractComponent(positions, 3, 0, numSplats));\n\taddProp(\"y\", GltfAccessor.extractComponent(positions, 3, 1, numSplats));\n\taddProp(\"z\", GltfAccessor.extractComponent(positions, 3, 2, numSplats));\n\taddProp(\"rot_0\", GltfAccessor.extractComponent(rotations, 4, 3, numSplats));\n\taddProp(\"rot_1\", GltfAccessor.extractComponent(rotations, 4, 0, numSplats));\n\taddProp(\"rot_2\", GltfAccessor.extractComponent(rotations, 4, 1, numSplats));\n\taddProp(\"rot_3\", GltfAccessor.extractComponent(rotations, 4, 2, numSplats));\n\taddProp(\"scale_0\", GltfAccessor.extractComponent(scales, 3, 0, numSplats));\n\taddProp(\"scale_1\", GltfAccessor.extractComponent(scales, 3, 1, numSplats));\n\taddProp(\"scale_2\", GltfAccessor.extractComponent(scales, 3, 2, numSplats));\n\taddProp(\"opacity\", GltfAccessor.extractComponent(opacities, 1, 0, numSplats));\n\taddProp(\"f_dc_0\", GltfAccessor.extractComponent(sh0, 3, 0, numSplats));\n\taddProp(\"f_dc_1\", GltfAccessor.extractComponent(sh0, 3, 1, numSplats));\n\taddProp(\"f_dc_2\", GltfAccessor.extractComponent(sh0, 3, 2, numSplats));\n\tlet bands = 0;\n\tfor (let d = 1; d <= 3; d++) {\n\t\tlet complete = true;\n\t\tfor (let c2 = 0; c2 < shDegreeCoefCounts[d - 1]; c2++) {\n\t\t\tif (attributes[`${extensionName}:SH_DEGREE_${d}_COEF_${c2}`] === void 0) {\n\t\t\t\tcomplete = false;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (!complete) {\n\t\t\tbreak;\n\t\t}\n\t\tbands = d;\n\t}\n\tif (bands > 0) {\n\t\tconst numCoefs = shBandCoefCounts[bands];\n\t\tconst rest = new Array(numCoefs * 3);\n\t\tlet k = 0;\n\t\tfor (let d = 1; d <= bands; d++) {\n\t\t\tfor (let c2 = 0; c2 < shDegreeCoefCounts[d - 1]; c2++) {\n\t\t\t\tconst name = `${extensionName}:SH_DEGREE_${d}_COEF_${c2}`;\n\t\t\t\tconst source = readAttribute(name);\n\t\t\t\tif (!source) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\trest[k] = GltfAccessor.extractComponent(source, 3, 0, numSplats);\n\t\t\t\trest[numCoefs + k] = GltfAccessor.extractComponent(source, 3, 1, numSplats);\n\t\t\t\trest[numCoefs * 2 + k] = GltfAccessor.extractComponent(source, 3, 2, numSplats);\n\t\t\t\tk++;\n\t\t\t}\n\t\t}\n\t\tfor (let i2 = 0; i2 < numCoefs * 3; i2++) {\n\t\t\taddProp(`f_rest_${i2}`, rest[i2]);\n\t\t}\n\t}\n\tconst data2 = new GSplatData([{\n\t\tname: \"vertex\",\n\t\tcount: numSplats,\n\t\tproperties\n\t}]);\n\tdata2.activated = true;\n\treturn data2;\n};\nvar createGSplats = (device, gltf, bufferViews) => {\n\tif (!gltf.hasOwnProperty(\"meshes\")) {\n\t\treturn [];\n\t}\n\treturn gltf.meshes.map((gltfMesh) => {\n\t\tlet resources = null;\n\t\tgltfMesh.primitives.forEach((primitive2) => {\n\t\t\tif (hasGSplatExtension(primitive2)) {\n\t\t\t\tconst gsplatData = createGSplatData(primitive2, gltf.accessors, bufferViews);\n\t\t\t\tif (gsplatData) {\n\t\t\t\t\tgsplatData.reorderData();\n\t\t\t\t\tif (!resources) resources = [];\n\t\t\t\t\tresources.push(new GSplatResource(device, gsplatData));\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn resources;\n\t});\n};\n\nvar createLight = (gltfLight, node, app2) => {\n\tconst lightProps = {\n\t\tenabled: false,\n\t\ttype: gltfLight.type === \"point\" ? \"omni\" : gltfLight.type,\n\t\tcolor: gltfLight.hasOwnProperty(\"color\") ? new Color(gltfLight.color) : Color.WHITE,\n\t\t// when range is not defined, infinity should be used - but that causes infinity in bounds calculations\n\t\trange: gltfLight.hasOwnProperty(\"range\") ? gltfLight.range : 9999,\n\t\tfalloffMode: LIGHTFALLOFF_INVERSESQUARED,\n\t\t// TODO: (engine issue #3252) Set intensity to match glTF specification, which uses physically based values:\n\t\t// - Omni and spot lights use luminous intensity in candela (lm/sr)\n\t\t// - Directional lights use illuminance in lux (lm/m2).\n\t\t// Current implementation: clamps specified intensity to 0..2 range\n\t\tintensity: gltfLight.hasOwnProperty(\"intensity\") ? math.clamp(gltfLight.intensity, 0, 2) : 1\n\t};\n\tif (gltfLight.hasOwnProperty(\"spot\")) {\n\t\tlightProps.innerConeAngle = gltfLight.spot.hasOwnProperty(\"innerConeAngle\") ? gltfLight.spot.innerConeAngle * math.RAD_TO_DEG : 0;\n\t\tlightProps.outerConeAngle = gltfLight.spot.hasOwnProperty(\"outerConeAngle\") ? gltfLight.spot.outerConeAngle * math.RAD_TO_DEG : 45;\n\t}\n\tif (gltfLight.hasOwnProperty(\"intensity\")) {\n\t\tconst outerAngleRad = gltfLight.spot?.outerConeAngle ?? Math.PI / 4;\n\t\tconst innerAngleRad = gltfLight.spot?.innerConeAngle ?? 0;\n\t\tlightProps.luminance = gltfLight.intensity * Light.getLightUnitConversion(lightTypes[lightProps.type], outerAngleRad, innerAngleRad);\n\t}\n\tconst lightEntity = new Entity(node.name, app2);\n\tlightEntity.rotateLocal(90, 0, 0);\n\tlightEntity.addComponent(\"light\", lightProps);\n\treturn lightEntity;\n};\nvar createLights = (gltf, nodes, options2, app2) => {\n\tlet lights2 = null;\n\tif (gltf.hasOwnProperty(\"nodes\") && gltf.hasOwnProperty(\"extensions\") && gltf.extensions.hasOwnProperty(\"KHR_lights_punctual\") && gltf.extensions.KHR_lights_punctual.hasOwnProperty(\"lights\")) {\n\t\tconst gltfLights = gltf.extensions.KHR_lights_punctual.lights;\n\t\tif (gltfLights.length) {\n\t\t\tconst preprocess = options2?.light?.preprocess;\n\t\t\tconst process = options2?.light?.process;\n\t\t\tconst postprocess = options2?.light?.postprocess;\n\t\t\tgltf.nodes.forEach((gltfNode, nodeIndex) => {\n\t\t\t\tif (gltfNode.hasOwnProperty(\"extensions\") && gltfNode.extensions.hasOwnProperty(\"KHR_lights_punctual\") && gltfNode.extensions.KHR_lights_punctual.hasOwnProperty(\"light\")) {\n\t\t\t\t\tconst lightIndex = gltfNode.extensions.KHR_lights_punctual.light;\n\t\t\t\t\tconst gltfLight = gltfLights[lightIndex];\n\t\t\t\t\tif (gltfLight) {\n\t\t\t\t\t\tif (preprocess) {\n\t\t\t\t\t\t\tpreprocess(gltfLight);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst light = process ? process(gltfLight, nodes[nodeIndex]) : createLight(gltfLight, nodes[nodeIndex], app2);\n\t\t\t\t\t\tif (postprocess) {\n\t\t\t\t\t\t\tpostprocess(gltfLight, light);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (light) {\n\t\t\t\t\t\t\tif (!lights2) lights2 = /* @__PURE__ */ new Map();\n\t\t\t\t\t\t\tlights2.set(gltfNode, light);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\treturn lights2;\n};\n\nvar getTextureSource = (gltfTexture) => gltfTexture.extensions?.KHR_texture_basisu?.source ?? gltfTexture.extensions?.EXT_texture_webp?.source ?? gltfTexture.source;\n\nvar extractTextureTransform = (source, material, maps) => {\n\tlet map;\n\tconst texCoord = source.texCoord;\n\tif (texCoord) {\n\t\tfor (map = 0; map < maps.length; ++map) {\n\t\t\tmaterial[`${maps[map]}MapUv`] = texCoord;\n\t\t}\n\t}\n\tconst zeros = [0, 0];\n\tconst ones = [1, 1];\n\tconst textureTransform = source.extensions?.KHR_texture_transform;\n\tif (textureTransform) {\n\t\tconst offset3 = textureTransform.offset || zeros;\n\t\tconst scale2 = textureTransform.scale || ones;\n\t\tconst rotation7 = textureTransform.rotation ? -textureTransform.rotation * math.RAD_TO_DEG : 0;\n\t\tconst tilingVec = new Vec2(scale2[0], scale2[1]);\n\t\tconst offsetVec = new Vec2(offset3[0], 1 - scale2[1] - offset3[1]);\n\t\tfor (map = 0; map < maps.length; ++map) {\n\t\t\tmaterial[`${maps[map]}MapTiling`] = tilingVec;\n\t\t\tmaterial[`${maps[map]}MapOffset`] = offsetVec;\n\t\t\tmaterial[`${maps[map]}MapRotation`] = rotation7;\n\t\t}\n\t}\n};\n\nvar KHR_materials_anisotropy = {\n\tapply(data2, material, textures) {\n\t\tmaterial.enableGGXSpecular = true;\n\t\tif (data2.hasOwnProperty(\"anisotropyStrength\")) {\n\t\t\tmaterial.anisotropyIntensity = data2.anisotropyStrength;\n\t\t} else {\n\t\t\tmaterial.anisotropyIntensity = 0;\n\t\t}\n\t\tif (data2.hasOwnProperty(\"anisotropyTexture\")) {\n\t\t\tconst anisotropyTexture = data2.anisotropyTexture;\n\t\t\tmaterial.anisotropyMap = textures[anisotropyTexture.index];\n\t\t\textractTextureTransform(anisotropyTexture, material, [\"anisotropy\"]);\n\t\t}\n\t\tif (data2.hasOwnProperty(\"anisotropyRotation\")) {\n\t\t\tmaterial.anisotropyRotation = data2.anisotropyRotation * math.RAD_TO_DEG;\n\t\t} else {\n\t\t\tmaterial.anisotropyRotation = 0;\n\t\t}\n\t}\n};\n\nvar KHR_materials_clearcoat = {\n\tapply(data2, material, textures) {\n\t\tif (data2.hasOwnProperty(\"clearcoatFactor\")) {\n\t\t\tmaterial.clearCoat = data2.clearcoatFactor * 0.25;\n\t\t} else {\n\t\t\tmaterial.clearCoat = 0;\n\t\t}\n\t\tif (data2.hasOwnProperty(\"clearcoatTexture\")) {\n\t\t\tconst clearcoatTexture = data2.clearcoatTexture;\n\t\t\tmaterial.clearCoatMap = textures[clearcoatTexture.index];\n\t\t\tmaterial.clearCoatMapChannel = \"r\";\n\t\t\textractTextureTransform(clearcoatTexture, material, [\"clearCoat\"]);\n\t\t}\n\t\tif (data2.hasOwnProperty(\"clearcoatRoughnessFactor\")) {\n\t\t\tmaterial.clearCoatGloss = data2.clearcoatRoughnessFactor;\n\t\t} else {\n\t\t\tmaterial.clearCoatGloss = 0;\n\t\t}\n\t\tif (data2.hasOwnProperty(\"clearcoatRoughnessTexture\")) {\n\t\t\tconst clearcoatRoughnessTexture = data2.clearcoatRoughnessTexture;\n\t\t\tmaterial.clearCoatGlossMap = textures[clearcoatRoughnessTexture.index];\n\t\t\tmaterial.clearCoatGlossMapChannel = \"g\";\n\t\t\textractTextureTransform(clearcoatRoughnessTexture, material, [\"clearCoatGloss\"]);\n\t\t}\n\t\tif (data2.hasOwnProperty(\"clearcoatNormalTexture\")) {\n\t\t\tconst clearcoatNormalTexture = data2.clearcoatNormalTexture;\n\t\t\tmaterial.clearCoatNormalMap = textures[clearcoatNormalTexture.index];\n\t\t\textractTextureTransform(clearcoatNormalTexture, material, [\"clearCoatNormal\"]);\n\t\t\tif (clearcoatNormalTexture.hasOwnProperty(\"scale\")) {\n\t\t\t\tmaterial.clearCoatBumpiness = clearcoatNormalTexture.scale;\n\t\t\t} else {\n\t\t\t\tmaterial.clearCoatBumpiness = 1;\n\t\t\t}\n\t\t}\n\t\tmaterial.clearCoatGlossInvert = true;\n\t}\n};\n\nvar KHR_materials_dispersion = {\n\tapply(data2, material, textures) {\n\t\tif (data2.hasOwnProperty(\"dispersion\")) {\n\t\t\tmaterial.dispersion = data2.dispersion;\n\t\t}\n\t}\n};\n\nvar KHR_materials_emissive_strength = {\n\tapply(data2, material, textures) {\n\t\tif (data2.hasOwnProperty(\"emissiveStrength\")) {\n\t\t\tmaterial.emissiveIntensity = data2.emissiveStrength;\n\t\t}\n\t}\n};\n\nvar KHR_materials_ior = {\n\tapply(data2, material, textures) {\n\t\tif (data2.hasOwnProperty(\"ior\")) {\n\t\t\tmaterial.refractionIndex = 1 / data2.ior;\n\t\t}\n\t}\n};\n\nvar KHR_materials_iridescence = {\n\tapply(data2, material, textures) {\n\t\tmaterial.useIridescence = true;\n\t\tif (data2.hasOwnProperty(\"iridescenceFactor\")) {\n\t\t\tmaterial.iridescence = data2.iridescenceFactor;\n\t\t}\n\t\tif (data2.hasOwnProperty(\"iridescenceTexture\")) {\n\t\t\tmaterial.iridescenceMapChannel = \"r\";\n\t\t\tmaterial.iridescenceMap = textures[data2.iridescenceTexture.index];\n\t\t\textractTextureTransform(data2.iridescenceTexture, material, [\"iridescence\"]);\n\t\t}\n\t\tif (data2.hasOwnProperty(\"iridescenceIor\")) {\n\t\t\tmaterial.iridescenceRefractionIndex = data2.iridescenceIor;\n\t\t}\n\t\tif (data2.hasOwnProperty(\"iridescenceThicknessMinimum\")) {\n\t\t\tmaterial.iridescenceThicknessMin = data2.iridescenceThicknessMinimum;\n\t\t}\n\t\tif (data2.hasOwnProperty(\"iridescenceThicknessMaximum\")) {\n\t\t\tmaterial.iridescenceThicknessMax = data2.iridescenceThicknessMaximum;\n\t\t}\n\t\tif (data2.hasOwnProperty(\"iridescenceThicknessTexture\")) {\n\t\t\tmaterial.iridescenceThicknessMapChannel = \"g\";\n\t\t\tmaterial.iridescenceThicknessMap = textures[data2.iridescenceThicknessTexture.index];\n\t\t\textractTextureTransform(data2.iridescenceThicknessTexture, material, [\"iridescenceThickness\"]);\n\t\t}\n\t}\n};\n\nvar KHR_materials_pbrSpecularGlossiness = {\n\tapply(data2, material, textures) {\n\t\tlet texture;\n\t\tif (data2.hasOwnProperty(\"diffuseFactor\")) {\n\t\t\tconst [r, g, b, a] = data2.diffuseFactor;\n\t\t\tmaterial.diffuse.set(r, g, b).gamma();\n\t\t\tmaterial.opacity = a;\n\t\t} else {\n\t\t\tmaterial.diffuse.set(1, 1, 1);\n\t\t\tmaterial.opacity = 1;\n\t\t}\n\t\tif (data2.hasOwnProperty(\"diffuseTexture\")) {\n\t\t\tconst diffuseTexture = data2.diffuseTexture;\n\t\t\ttexture = textures[diffuseTexture.index];\n\t\t\tmaterial.diffuseMap = texture;\n\t\t\tmaterial.diffuseMapChannel = \"rgb\";\n\t\t\tmaterial.opacityMap = texture;\n\t\t\tmaterial.opacityMapChannel = \"a\";\n\t\t\textractTextureTransform(diffuseTexture, material, [\"diffuse\", \"opacity\"]);\n\t\t}\n\t\tmaterial.useMetalness = false;\n\t\tif (data2.hasOwnProperty(\"specularFactor\")) {\n\t\t\tconst [r, g, b] = data2.specularFactor;\n\t\t\tmaterial.specular.set(r, g, b).gamma();\n\t\t} else {\n\t\t\tmaterial.specular.set(1, 1, 1);\n\t\t}\n\t\tif (data2.hasOwnProperty(\"glossinessFactor\")) {\n\t\t\tmaterial.gloss = data2.glossinessFactor;\n\t\t} else {\n\t\t\tmaterial.gloss = 1;\n\t\t}\n\t\tif (data2.hasOwnProperty(\"specularGlossinessTexture\")) {\n\t\t\tconst specularGlossinessTexture = data2.specularGlossinessTexture;\n\t\t\tmaterial.specularMap = material.glossMap = textures[specularGlossinessTexture.index];\n\t\t\tmaterial.specularMapChannel = \"rgb\";\n\t\t\tmaterial.glossMapChannel = \"a\";\n\t\t\textractTextureTransform(specularGlossinessTexture, material, [\"gloss\", \"metalness\"]);\n\t\t}\n\t},\n\tgetColorTextures(data2) {\n\t\tconst textures = [];\n\t\tif (data2.hasOwnProperty(\"diffuseTexture\")) {\n\t\t\ttextures.push(data2.diffuseTexture);\n\t\t}\n\t\tif (data2.hasOwnProperty(\"specularGlossinessTexture\")) {\n\t\t\ttextures.push(data2.specularGlossinessTexture);\n\t\t}\n\t\treturn textures;\n\t}\n};\n\nvar KHR_materials_sheen = {\n\tapply(data2, material, textures) {\n\t\tmaterial.useSheen = true;\n\t\tif (data2.hasOwnProperty(\"sheenColorFactor\")) {\n\t\t\tconst [r, g, b] = data2.sheenColorFactor;\n\t\t\tmaterial.sheen.set(r, g, b).gamma();\n\t\t} else {\n\t\t\tmaterial.sheen.set(1, 1, 1);\n\t\t}\n\t\tif (data2.hasOwnProperty(\"sheenColorTexture\")) {\n\t\t\tmaterial.sheenMap = textures[data2.sheenColorTexture.index];\n\t\t\textractTextureTransform(data2.sheenColorTexture, material, [\"sheen\"]);\n\t\t}\n\t\tmaterial.sheenGloss = data2.hasOwnProperty(\"sheenRoughnessFactor\") ? data2.sheenRoughnessFactor : 0;\n\t\tif (data2.hasOwnProperty(\"sheenRoughnessTexture\")) {\n\t\t\tmaterial.sheenGlossMap = textures[data2.sheenRoughnessTexture.index];\n\t\t\tmaterial.sheenGlossMapChannel = \"a\";\n\t\t\textractTextureTransform(data2.sheenRoughnessTexture, material, [\"sheenGloss\"]);\n\t\t}\n\t\tmaterial.sheenGlossInvert = true;\n\t},\n\tgetColorTextures(data2) {\n\t\treturn data2.hasOwnProperty(\"sheenColorTexture\") ? [data2.sheenColorTexture] : [];\n\t}\n};\n\nvar KHR_materials_specular = {\n\tapply(data2, material, textures) {\n\t\tmaterial.useMetalnessSpecularColor = true;\n\t\tif (data2.hasOwnProperty(\"specularColorTexture\")) {\n\t\t\tmaterial.specularMap = textures[data2.specularColorTexture.index];\n\t\t\tmaterial.specularMapChannel = \"rgb\";\n\t\t\textractTextureTransform(data2.specularColorTexture, material, [\"specular\"]);\n\t\t}\n\t\tif (data2.hasOwnProperty(\"specularColorFactor\")) {\n\t\t\tconst [r, g, b] = data2.specularColorFactor;\n\t\t\tmaterial.specular.set(r, g, b).gamma();\n\t\t} else {\n\t\t\tmaterial.specular.set(1, 1, 1);\n\t\t}\n\t\tif (data2.hasOwnProperty(\"specularFactor\")) {\n\t\t\tmaterial.specularityFactor = data2.specularFactor;\n\t\t} else {\n\t\t\tmaterial.specularityFactor = 1;\n\t\t}\n\t\tif (data2.hasOwnProperty(\"specularTexture\")) {\n\t\t\tmaterial.specularityFactorMapChannel = \"a\";\n\t\t\tmaterial.specularityFactorMap = textures[data2.specularTexture.index];\n\t\t\textractTextureTransform(data2.specularTexture, material, [\"specularityFactor\"]);\n\t\t}\n\t},\n\tgetColorTextures(data2) {\n\t\treturn data2.hasOwnProperty(\"specularColorTexture\") ? [data2.specularColorTexture] : [];\n\t}\n};\n\nvar KHR_materials_transmission = {\n\tapply(data2, material, textures) {\n\t\tmaterial.blendType = BLEND_NORMAL;\n\t\tmaterial.useDynamicRefraction = true;\n\t\tif (data2.hasOwnProperty(\"transmissionFactor\")) {\n\t\t\tmaterial.refraction = data2.transmissionFactor;\n\t\t}\n\t\tif (data2.hasOwnProperty(\"transmissionTexture\")) {\n\t\t\tmaterial.refractionMapChannel = \"r\";\n\t\t\tmaterial.refractionMap = textures[data2.transmissionTexture.index];\n\t\t\textractTextureTransform(data2.transmissionTexture, material, [\"refraction\"]);\n\t\t}\n\t}\n};\n\nvar KHR_materials_unlit = {\n\tapply(data2, material, textures) {\n\t\tmaterial.useLighting = false;\n\t\tmaterial.emissive.copy(material.diffuse);\n\t\tmaterial.emissiveMap = material.diffuseMap;\n\t\tmaterial.emissiveMapUv = material.diffuseMapUv;\n\t\tmaterial.emissiveMapTiling.copy(material.diffuseMapTiling);\n\t\tmaterial.emissiveMapOffset.copy(material.diffuseMapOffset);\n\t\tmaterial.emissiveMapRotation = material.diffuseMapRotation;\n\t\tmaterial.emissiveMapChannel = material.diffuseMapChannel;\n\t\tmaterial.emissiveVertexColor = material.diffuseVertexColor;\n\t\tmaterial.emissiveVertexColorChannel = material.diffuseVertexColorChannel;\n\t\tmaterial.useLighting = false;\n\t\tmaterial.useSkybox = false;\n\t\tmaterial.diffuse.set(1, 1, 1);\n\t\tmaterial.diffuseMap = null;\n\t\tmaterial.diffuseVertexColor = false;\n\t}\n};\n\nvar KHR_materials_volume = {\n\tapply(data2, material, textures) {\n\t\tmaterial.blendType = BLEND_NORMAL;\n\t\tmaterial.useDynamicRefraction = true;\n\t\tif (data2.hasOwnProperty(\"thicknessFactor\")) {\n\t\t\tmaterial.thickness = data2.thicknessFactor;\n\t\t}\n\t\tif (data2.hasOwnProperty(\"thicknessTexture\")) {\n\t\t\tmaterial.thicknessMap = textures[data2.thicknessTexture.index];\n\t\t\tmaterial.thicknessMapChannel = \"g\";\n\t\t\textractTextureTransform(data2.thicknessTexture, material, [\"thickness\"]);\n\t\t}\n\t\tif (data2.hasOwnProperty(\"attenuationDistance\")) {\n\t\t\tmaterial.attenuationDistance = data2.attenuationDistance;\n\t\t}\n\t\tif (data2.hasOwnProperty(\"attenuationColor\")) {\n\t\t\tconst [r, g, b] = data2.attenuationColor;\n\t\t\tmaterial.attenuation.set(r, g, b).gamma();\n\t\t}\n\t}\n};\n\nvar glbMaterialExtensions = {\n\tKHR_materials_anisotropy,\n\tKHR_materials_clearcoat,\n\tKHR_materials_dispersion,\n\tKHR_materials_emissive_strength,\n\tKHR_materials_ior,\n\tKHR_materials_iridescence,\n\tKHR_materials_pbrSpecularGlossiness,\n\tKHR_materials_sheen,\n\tKHR_materials_specular,\n\tKHR_materials_transmission,\n\tKHR_materials_unlit,\n\tKHR_materials_volume\n};\n\nvar GlbResources = class {\n\tgltf;\n\tnodes;\n\tscenes;\n\tanimations;\n\ttextures;\n\tmaterials;\n\tvariants;\n\tmeshVariants;\n\tmeshDefaultMaterials;\n\trenders;\n\tgsplats;\n\tskins;\n\tlights;\n\tcameras;\n\tnodeInstancingMap;\n\tdestroy() {\n\t\tif (this.renders) {\n\t\t\tthis.renders.forEach((render) => {\n\t\t\t\trender.meshes = null;\n\t\t\t});\n\t\t}\n\t}\n};\nvar isDataURI = (uri) => {\n\treturn /^data:[^\\n\\r,\\u2028\\u2029]*,.*$/i.test(uri);\n};\nvar getDataURIMimeType = (uri) => {\n\treturn uri.substring(uri.indexOf(\":\") + 1, uri.indexOf(\";\"));\n};\nvar attributeOrder = {\n\t[SEMANTIC_POSITION]: 0,\n\t[SEMANTIC_NORMAL]: 1,\n\t[SEMANTIC_TANGENT]: 2,\n\t[SEMANTIC_COLOR]: 3,\n\t[SEMANTIC_BLENDINDICES]: 4,\n\t[SEMANTIC_BLENDWEIGHT]: 5,\n\t[SEMANTIC_TEXCOORD0]: 6,\n\t[SEMANTIC_TEXCOORD1]: 7,\n\t[SEMANTIC_TEXCOORD2]: 8,\n\t[SEMANTIC_TEXCOORD3]: 9,\n\t[SEMANTIC_TEXCOORD4]: 10,\n\t[SEMANTIC_TEXCOORD5]: 11,\n\t[SEMANTIC_TEXCOORD6]: 12,\n\t[SEMANTIC_TEXCOORD7]: 13\n};\nvar generateIndices = (numVertices) => {\n\tconst dummyIndices = new Uint16Array(numVertices);\n\tfor (let i2 = 0; i2 < numVertices; i2++) {\n\t\tdummyIndices[i2] = i2;\n\t}\n\treturn dummyIndices;\n};\nvar generateNormals = (sourceDesc, indices) => {\n\tconst p = sourceDesc[SEMANTIC_POSITION];\n\tif (!p || p.components !== 3) {\n\t\treturn;\n\t}\n\tlet positions;\n\tif (p.size !== p.stride) {\n\t\tconst srcStride = p.stride / typedArrayTypesByteSize[p.type];\n\t\tconst src = new typedArrayTypes[p.type](p.buffer, p.offset, p.count * srcStride);\n\t\tpositions = new typedArrayTypes[p.type](p.count * 3);\n\t\tfor (let i2 = 0; i2 < p.count; ++i2) {\n\t\t\tpositions[i2 * 3 + 0] = src[i2 * srcStride + 0];\n\t\t\tpositions[i2 * 3 + 1] = src[i2 * srcStride + 1];\n\t\t\tpositions[i2 * 3 + 2] = src[i2 * srcStride + 2];\n\t\t}\n\t} else {\n\t\tpositions = new typedArrayTypes[p.type](p.buffer, p.offset, p.count * 3);\n\t}\n\tconst numVertices = p.count;\n\tif (!indices) {\n\t\tindices = generateIndices(numVertices);\n\t}\n\tconst normalsTemp = calculateNormals(positions, indices);\n\tconst normals = new Float32Array(normalsTemp.length);\n\tnormals.set(normalsTemp);\n\tsourceDesc[SEMANTIC_NORMAL] = {\n\t\tbuffer: normals.buffer,\n\t\tsize: 12,\n\t\toffset: 0,\n\t\tstride: 12,\n\t\tcount: numVertices,\n\t\tcomponents: 3,\n\t\ttype: TYPE_FLOAT32\n\t};\n};\nvar cloneTexture = (texture) => {\n\tconst shallowCopyLevels = (texture2) => {\n\t\tconst result2 = [];\n\t\tfor (let mip = 0; mip < texture2._levels.length; ++mip) {\n\t\t\tlet level = [];\n\t\t\tif (texture2.cubemap) {\n\t\t\t\tfor (let face = 0; face < 6; ++face) {\n\t\t\t\t\tlevel.push(texture2._levels[mip][face]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tlevel = texture2._levels[mip];\n\t\t\t}\n\t\t\tresult2.push(level);\n\t\t}\n\t\treturn result2;\n\t};\n\tconst result = new Texture(texture.device, texture);\n\tresult._levels = shallowCopyLevels(texture);\n\treturn result;\n};\nvar cloneTextureAsset = (src) => {\n\tconst result = new Asset(\n\t\t`${src.name}_clone`,\n\t\tsrc.type,\n\t\tsrc.file,\n\t\tsrc.data,\n\t\tsrc.options\n\t);\n\tresult.loaded = true;\n\tresult.resource = cloneTexture(src.resource);\n\tsrc.registry.add(result);\n\treturn result;\n};\nvar createVertexBufferInternal = (device, sourceDesc) => {\n\tconst positionDesc = sourceDesc[SEMANTIC_POSITION];\n\tif (!positionDesc) {\n\t\treturn null;\n\t}\n\tconst numVertices = positionDesc.count;\n\tconst vertexDesc = [];\n\tfor (const semantic in sourceDesc) {\n\t\tif (sourceDesc.hasOwnProperty(semantic)) {\n\t\t\tconst element = {\n\t\t\t\tsemantic,\n\t\t\t\tcomponents: sourceDesc[semantic].components,\n\t\t\t\ttype: sourceDesc[semantic].type,\n\t\t\t\tnormalize: !!sourceDesc[semantic].normalize\n\t\t\t};\n\t\t\tif (!VertexFormat.isElementValid(device, element)) {\n\t\t\t\telement.components++;\n\t\t\t}\n\t\t\tvertexDesc.push(element);\n\t\t}\n\t}\n\tvertexDesc.sort((lhs, rhs) => {\n\t\treturn attributeOrder[lhs.semantic] - attributeOrder[rhs.semantic];\n\t});\n\tlet i2, j, k;\n\tlet source, target2, sourceOffset;\n\tconst vertexFormat = new VertexFormat(device, vertexDesc);\n\tlet isCorrectlyInterleaved = true;\n\tfor (i2 = 0; i2 < vertexFormat.elements.length; ++i2) {\n\t\ttarget2 = vertexFormat.elements[i2];\n\t\tsource = sourceDesc[target2.name];\n\t\tsourceOffset = source.offset - positionDesc.offset;\n\t\tif (source.buffer !== positionDesc.buffer || source.stride !== target2.stride || source.size !== target2.size || sourceOffset !== target2.offset) {\n\t\t\tisCorrectlyInterleaved = false;\n\t\t\tbreak;\n\t\t}\n\t}\n\tconst vertexBuffer = new VertexBuffer(device, vertexFormat, numVertices);\n\tconst vertexData = vertexBuffer.lock();\n\tconst targetArray = new Uint32Array(vertexData);\n\tlet sourceArray;\n\tif (isCorrectlyInterleaved) {\n\t\tsourceArray = new Uint32Array(\n\t\t\tpositionDesc.buffer,\n\t\t\tpositionDesc.offset,\n\t\t\tnumVertices * vertexBuffer.format.size / 4\n\t\t);\n\t\ttargetArray.set(sourceArray);\n\t} else {\n\t\tlet targetStride, sourceStride;\n\t\tfor (i2 = 0; i2 < vertexBuffer.format.elements.length; ++i2) {\n\t\t\ttarget2 = vertexBuffer.format.elements[i2];\n\t\t\ttargetStride = target2.stride / 4;\n\t\t\tsource = sourceDesc[target2.name];\n\t\t\tsourceStride = source.stride / 4;\n\t\t\tsourceArray = new Uint32Array(source.buffer, source.offset, (source.count - 1) * sourceStride + (source.size + 3) / 4);\n\t\t\tlet src = 0;\n\t\t\tlet dst = target2.offset / 4;\n\t\t\tconst kend = Math.floor((source.size + 3) / 4);\n\t\t\tfor (j = 0; j < numVertices; ++j) {\n\t\t\t\tfor (k = 0; k < kend; ++k) {\n\t\t\t\t\ttargetArray[dst + k] = sourceArray[src + k];\n\t\t\t\t}\n\t\t\t\tsrc += sourceStride;\n\t\t\t\tdst += targetStride;\n\t\t\t}\n\t\t}\n\t}\n\tvertexBuffer.unlock();\n\treturn vertexBuffer;\n};\nvar createVertexBuffer = (device, attributes, indices, accessors, bufferViews, vertexBufferDict) => {\n\tconst useAttributes = {};\n\tconst attribIds = [];\n\tfor (const attrib in attributes) {\n\t\tif (attributes.hasOwnProperty(attrib) && gltfToEngineSemanticMap.hasOwnProperty(attrib)) {\n\t\t\tuseAttributes[attrib] = attributes[attrib];\n\t\t\tattribIds.push(`${attrib}:${attributes[attrib]}`);\n\t\t}\n\t}\n\tattribIds.sort();\n\tconst vbKey = attribIds.join();\n\tlet vb = vertexBufferDict[vbKey];\n\tif (!vb) {\n\t\tconst sourceDesc = {};\n\t\tfor (const attrib in useAttributes) {\n\t\t\tconst accessor = accessors[attributes[attrib]];\n\t\t\tconst accessorData = GltfAccessor.getData(accessor, bufferViews);\n\t\t\tconst bufferView = bufferViews[accessor.bufferView];\n\t\t\tconst semantic = gltfToEngineSemanticMap[attrib];\n\t\t\tconst size = GltfAccessor.getNumComponents(accessor.type) * GltfAccessor.getComponentSizeInBytes(accessor.componentType);\n\t\t\tconst stride = bufferView && bufferView.hasOwnProperty(\"byteStride\") ? bufferView.byteStride : size;\n\t\t\tsourceDesc[semantic] = {\n\t\t\t\tbuffer: accessorData.buffer,\n\t\t\t\tsize,\n\t\t\t\toffset: accessorData.byteOffset,\n\t\t\t\tstride,\n\t\t\t\tcount: accessor.count,\n\t\t\t\tcomponents: GltfAccessor.getNumComponents(accessor.type),\n\t\t\t\ttype: GltfAccessor.getComponentType(accessor.componentType),\n\t\t\t\tnormalize: accessor.normalized\n\t\t\t};\n\t\t}\n\t\tif (!sourceDesc.hasOwnProperty(SEMANTIC_NORMAL)) {\n\t\t\tgenerateNormals(sourceDesc, indices);\n\t\t}\n\t\tvb = createVertexBufferInternal(device, sourceDesc);\n\t\tvertexBufferDict[vbKey] = vb;\n\t}\n\treturn vb;\n};\nvar createSkin = (device, gltfSkin, accessors, bufferViews, nodes, glbSkins) => {\n\tlet i2, j, bindMatrix;\n\tconst joints = gltfSkin.joints;\n\tconst numJoints = joints.length;\n\tconst ibp = [];\n\tif (gltfSkin.hasOwnProperty(\"inverseBindMatrices\")) {\n\t\tconst inverseBindMatrices = gltfSkin.inverseBindMatrices;\n\t\tconst ibmData = GltfAccessor.getData(accessors[inverseBindMatrices], bufferViews, true);\n\t\tconst ibmValues = [];\n\t\tfor (i2 = 0; i2 < numJoints; i2++) {\n\t\t\tfor (j = 0; j < 16; j++) {\n\t\t\t\tibmValues[j] = ibmData[i2 * 16 + j];\n\t\t\t}\n\t\t\tbindMatrix = new Mat4();\n\t\t\tbindMatrix.set(ibmValues);\n\t\t\tibp.push(bindMatrix);\n\t\t}\n\t} else {\n\t\tfor (i2 = 0; i2 < numJoints; i2++) {\n\t\t\tbindMatrix = new Mat4();\n\t\t\tibp.push(bindMatrix);\n\t\t}\n\t}\n\tconst boneNames = [];\n\tfor (i2 = 0; i2 < numJoints; i2++) {\n\t\tboneNames[i2] = nodes[joints[i2]].name;\n\t}\n\tconst key = boneNames.join(\"#\");\n\tlet skin = glbSkins.get(key);\n\tif (!skin) {\n\t\tskin = new Skin(device, ibp, boneNames);\n\t\tglbSkins.set(key, skin);\n\t}\n\treturn skin;\n};\nvar createMesh = (device, gltfMesh, accessors, bufferViews, vertexBufferDict, meshVariants, meshDefaultMaterials, flatShadedMeshes, assetOptions, promises) => {\n\tconst meshes = [];\n\tgltfMesh.primitives.forEach((primitive2) => {\n\t\tif (hasGSplatExtension(primitive2)) {\n\t\t\treturn;\n\t\t}\n\t\tif (primitive2.extensions?.KHR_draco_mesh_compression) {\n\t\t\tmeshes.push(createDracoMesh(device, primitive2, accessors, bufferViews, meshVariants, meshDefaultMaterials, flatShadedMeshes, promises));\n\t\t} else {\n\t\t\tlet indices = primitive2.hasOwnProperty(\"indices\") ? GltfAccessor.getData(accessors[primitive2.indices], bufferViews, true) : null;\n\t\t\tconst vertexBuffer = createVertexBuffer(device, primitive2.attributes, indices, accessors, bufferViews, vertexBufferDict);\n\t\t\tconst primitiveType = getPrimitiveType(primitive2);\n\t\t\tconst mesh = new Mesh(device);\n\t\t\tmesh.vertexBuffer = vertexBuffer;\n\t\t\tmesh.primitive[0].type = primitiveType;\n\t\t\tmesh.primitive[0].base = 0;\n\t\t\tmesh.primitive[0].indexed = indices !== null;\n\t\t\tif (indices !== null) {\n\t\t\t\tlet indexFormat;\n\t\t\t\tif (indices instanceof Uint8Array) {\n\t\t\t\t\tindexFormat = INDEXFORMAT_UINT8;\n\t\t\t\t} else if (indices instanceof Uint16Array) {\n\t\t\t\t\tindexFormat = INDEXFORMAT_UINT16;\n\t\t\t\t} else {\n\t\t\t\t\tindexFormat = INDEXFORMAT_UINT32;\n\t\t\t\t}\n\t\t\t\tif (indexFormat === INDEXFORMAT_UINT8 && device.isWebGPU) {\n\t\t\t\t\tindexFormat = INDEXFORMAT_UINT16;\n\t\t\t\t\tindices = new Uint16Array(indices);\n\t\t\t\t}\n\t\t\t\tconst indexBuffer = new IndexBuffer(device, indexFormat, indices.length, BUFFER_STATIC, indices);\n\t\t\t\tmesh.indexBuffer[0] = indexBuffer;\n\t\t\t\tmesh.primitive[0].count = indices.length;\n\t\t\t} else {\n\t\t\t\tmesh.primitive[0].count = vertexBuffer.numVertices;\n\t\t\t}\n\t\t\tregisterMeshVariants(primitive2, mesh.id, meshVariants);\n\t\t\tmeshDefaultMaterials[mesh.id] = primitive2.material;\n\t\t\tif (!primitive2.attributes.hasOwnProperty(\"NORMAL\") && isTriangleMode(primitiveType)) {\n\t\t\t\tflatShadedMeshes.add(mesh.id);\n\t\t\t}\n\t\t\tlet accessor = accessors[primitive2.attributes.POSITION];\n\t\t\tmesh.aabb = GltfAccessor.getBoundingBox(accessor);\n\t\t\tif (primitive2.hasOwnProperty(\"targets\")) {\n\t\t\t\tconst targets = [];\n\t\t\t\tprimitive2.targets.forEach((target2, index) => {\n\t\t\t\t\tconst options2 = {};\n\t\t\t\t\tif (target2.hasOwnProperty(\"POSITION\")) {\n\t\t\t\t\t\taccessor = accessors[target2.POSITION];\n\t\t\t\t\t\toptions2.deltaPositions = GltfAccessor.getDataFloat32(accessor, bufferViews);\n\t\t\t\t\t\toptions2.aabb = GltfAccessor.getBoundingBox(accessor);\n\t\t\t\t\t}\n\t\t\t\t\tif (target2.hasOwnProperty(\"NORMAL\")) {\n\t\t\t\t\t\taccessor = accessors[target2.NORMAL];\n\t\t\t\t\t\toptions2.deltaNormals = GltfAccessor.getDataFloat32(accessor, bufferViews);\n\t\t\t\t\t}\n\t\t\t\t\tif (gltfMesh.hasOwnProperty(\"extras\") && gltfMesh.extras.hasOwnProperty(\"targetNames\")) {\n\t\t\t\t\t\toptions2.name = gltfMesh.extras.targetNames[index];\n\t\t\t\t\t} else {\n\t\t\t\t\t\toptions2.name = index.toString(10);\n\t\t\t\t\t}\n\t\t\t\t\tif (gltfMesh.hasOwnProperty(\"weights\")) {\n\t\t\t\t\t\toptions2.defaultWeight = gltfMesh.weights[index];\n\t\t\t\t\t}\n\t\t\t\t\toptions2.preserveData = assetOptions.morphPreserveData;\n\t\t\t\t\ttargets.push(new MorphTarget(options2));\n\t\t\t\t});\n\t\t\t\tmesh.morph = new Morph(targets, device, {\n\t\t\t\t\tpreferHighPrecision: assetOptions.morphPreferHighPrecision\n\t\t\t\t});\n\t\t\t}\n\t\t\tmeshes.push(mesh);\n\t\t}\n\t});\n\treturn meshes;\n};\nvar createMaterial = (gltfMaterial, textures) => {\n\tconst material = new StandardMaterial();\n\tif (gltfMaterial.hasOwnProperty(\"name\")) {\n\t\tmaterial.name = gltfMaterial.name;\n\t}\n\tmaterial.occludeSpecular = SPECOCC_AO;\n\tmaterial.diffuseVertexColor = true;\n\tmaterial.specularVertexColor = true;\n\tmaterial.specular.set(1, 1, 1);\n\tmaterial.gloss = 1;\n\tmaterial.glossInvert = true;\n\tmaterial.useMetalness = true;\n\tlet texture;\n\tif (gltfMaterial.hasOwnProperty(\"pbrMetallicRoughness\")) {\n\t\tconst pbrData = gltfMaterial.pbrMetallicRoughness;\n\t\tif (pbrData.hasOwnProperty(\"baseColorFactor\")) {\n\t\t\tconst [r, g, b, a] = pbrData.baseColorFactor;\n\t\t\tmaterial.diffuse.set(r, g, b).gamma();\n\t\t\tmaterial.opacity = a;\n\t\t}\n\t\tif (pbrData.hasOwnProperty(\"baseColorTexture\")) {\n\t\t\tconst baseColorTexture = pbrData.baseColorTexture;\n\t\t\ttexture = textures[baseColorTexture.index];\n\t\t\tmaterial.diffuseMap = texture;\n\t\t\tmaterial.diffuseMapChannel = \"rgb\";\n\t\t\tmaterial.opacityMap = texture;\n\t\t\tmaterial.opacityMapChannel = \"a\";\n\t\t\textractTextureTransform(baseColorTexture, material, [\"diffuse\", \"opacity\"]);\n\t\t}\n\t\tif (pbrData.hasOwnProperty(\"metallicFactor\")) {\n\t\t\tmaterial.metalness = pbrData.metallicFactor;\n\t\t}\n\t\tif (pbrData.hasOwnProperty(\"roughnessFactor\")) {\n\t\t\tmaterial.gloss = pbrData.roughnessFactor;\n\t\t}\n\t\tif (pbrData.hasOwnProperty(\"metallicRoughnessTexture\")) {\n\t\t\tconst metallicRoughnessTexture = pbrData.metallicRoughnessTexture;\n\t\t\tmaterial.metalnessMap = material.glossMap = textures[metallicRoughnessTexture.index];\n\t\t\tmaterial.metalnessMapChannel = \"b\";\n\t\t\tmaterial.glossMapChannel = \"g\";\n\t\t\textractTextureTransform(metallicRoughnessTexture, material, [\"gloss\", \"metalness\"]);\n\t\t}\n\t}\n\tif (gltfMaterial.hasOwnProperty(\"normalTexture\")) {\n\t\tconst normalTexture = gltfMaterial.normalTexture;\n\t\tmaterial.normalMap = textures[normalTexture.index];\n\t\textractTextureTransform(normalTexture, material, [\"normal\"]);\n\t\tif (normalTexture.hasOwnProperty(\"scale\")) {\n\t\t\tmaterial.bumpiness = normalTexture.scale;\n\t\t}\n\t}\n\tif (gltfMaterial.hasOwnProperty(\"occlusionTexture\")) {\n\t\tconst occlusionTexture = gltfMaterial.occlusionTexture;\n\t\tmaterial.aoMap = textures[occlusionTexture.index];\n\t\tmaterial.aoMapChannel = \"r\";\n\t\textractTextureTransform(occlusionTexture, material, [\"ao\"]);\n\t\tif (occlusionTexture.hasOwnProperty(\"strength\")) {\n\t\t\tmaterial.aoIntensity = occlusionTexture.strength;\n\t\t}\n\t}\n\tif (gltfMaterial.hasOwnProperty(\"emissiveFactor\")) {\n\t\tconst [r, g, b] = gltfMaterial.emissiveFactor;\n\t\tmaterial.emissive.set(r, g, b).gamma();\n\t}\n\tif (gltfMaterial.hasOwnProperty(\"emissiveTexture\")) {\n\t\tconst emissiveTexture = gltfMaterial.emissiveTexture;\n\t\tmaterial.emissiveMap = textures[emissiveTexture.index];\n\t\textractTextureTransform(emissiveTexture, material, [\"emissive\"]);\n\t}\n\tif (gltfMaterial.hasOwnProperty(\"alphaMode\")) {\n\t\tswitch (gltfMaterial.alphaMode) {\n\t\t\tcase \"MASK\":\n\t\t\t\tmaterial.blendType = BLEND_NONE;\n\t\t\t\tif (gltfMaterial.hasOwnProperty(\"alphaCutoff\")) {\n\t\t\t\t\tmaterial.alphaTest = gltfMaterial.alphaCutoff;\n\t\t\t\t} else {\n\t\t\t\t\tmaterial.alphaTest = 0.5;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"BLEND\":\n\t\t\t\tmaterial.blendType = BLEND_NORMAL;\n\t\t\t\tmaterial.depthWrite = false;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\tcase \"OPAQUE\":\n\t\t\t\tmaterial.blendType = BLEND_NONE;\n\t\t\t\tbreak;\n\t\t}\n\t} else {\n\t\tmaterial.blendType = BLEND_NONE;\n\t}\n\tif (gltfMaterial.hasOwnProperty(\"doubleSided\")) {\n\t\tmaterial.twoSidedLighting = gltfMaterial.doubleSided;\n\t\tmaterial.cull = gltfMaterial.doubleSided ? CULLFACE_NONE : CULLFACE_BACK;\n\t} else {\n\t\tmaterial.twoSidedLighting = false;\n\t\tmaterial.cull = CULLFACE_BACK;\n\t}\n\tif (gltfMaterial.hasOwnProperty(\"extensions\")) {\n\t\tfor (const key in gltfMaterial.extensions) {\n\t\t\tconst extension = glbMaterialExtensions[key];\n\t\t\tif (extension !== void 0) {\n\t\t\t\textension.apply(gltfMaterial.extensions[key], material, textures);\n\t\t\t}\n\t\t}\n\t}\n\tmaterial.update();\n\treturn material;\n};\nvar createAnimation = (gltfAnimation, animationIndex, gltfAccessors, bufferViews, nodes, meshes, gltfNodes) => {\n\tconst createAnimData = (gltfAccessor) => {\n\t\treturn new AnimData(GltfAccessor.getNumComponents(gltfAccessor.type), GltfAccessor.getDataFloat32(gltfAccessor, bufferViews));\n\t};\n\tconst interpMap = {\n\t\t\"STEP\": INTERPOLATION_STEP,\n\t\t\"LINEAR\": INTERPOLATION_LINEAR,\n\t\t\"CUBICSPLINE\": INTERPOLATION_CUBIC\n\t};\n\tconst inputMap = {};\n\tconst outputMap = {};\n\tconst curveMap = {};\n\tlet outputCounter = 1;\n\tlet i2;\n\tfor (i2 = 0; i2 < gltfAnimation.samplers.length; ++i2) {\n\t\tconst sampler = gltfAnimation.samplers[i2];\n\t\tif (!inputMap.hasOwnProperty(sampler.input)) {\n\t\t\tinputMap[sampler.input] = createAnimData(gltfAccessors[sampler.input]);\n\t\t}\n\t\tif (!outputMap.hasOwnProperty(sampler.output)) {\n\t\t\toutputMap[sampler.output] = createAnimData(gltfAccessors[sampler.output]);\n\t\t}\n\t\tconst interpolation = sampler.hasOwnProperty(\"interpolation\") && interpMap.hasOwnProperty(sampler.interpolation) ? interpMap[sampler.interpolation] : INTERPOLATION_LINEAR;\n\t\tconst curve = {\n\t\t\tpaths: [],\n\t\t\tinput: sampler.input,\n\t\t\toutput: sampler.output,\n\t\t\tinterpolation\n\t\t};\n\t\tcurveMap[i2] = curve;\n\t}\n\tconst quatArrays = [];\n\tconst transformSchema = {\n\t\t\"translation\": \"localPosition\",\n\t\t\"rotation\": \"localRotation\",\n\t\t\"scale\": \"localScale\"\n\t};\n\tconst constructNodePath = (node) => {\n\t\tconst path2 = [];\n\t\twhile (node) {\n\t\t\tpath2.unshift(node.name);\n\t\t\tnode = node.parent;\n\t\t}\n\t\treturn path2;\n\t};\n\tconst createMorphTargetCurves = (curve, gltfNode, entityPath) => {\n\t\tconst out = outputMap[curve.output];\n\t\tif (!out) {\n\t\t\treturn;\n\t\t}\n\t\tlet targetNames;\n\t\tif (meshes && meshes[gltfNode.mesh]) {\n\t\t\tconst mesh = meshes[gltfNode.mesh];\n\t\t\tif (mesh.hasOwnProperty(\"extras\") && mesh.extras.hasOwnProperty(\"targetNames\")) {\n\t\t\t\ttargetNames = mesh.extras.targetNames;\n\t\t\t}\n\t\t}\n\t\tconst outData = out.data;\n\t\tconst morphTargetCount = outData.length / inputMap[curve.input].data.length;\n\t\tconst keyframeCount = outData.length / morphTargetCount;\n\t\tconst singleBufferSize = keyframeCount * 4;\n\t\tconst buffer = new ArrayBuffer(singleBufferSize * morphTargetCount);\n\t\tfor (let j = 0; j < morphTargetCount; j++) {\n\t\t\tconst morphTargetOutput = new Float32Array(buffer, singleBufferSize * j, keyframeCount);\n\t\t\tfor (let k = 0; k < keyframeCount; k++) {\n\t\t\t\tmorphTargetOutput[k] = outData[k * morphTargetCount + j];\n\t\t\t}\n\t\t\tconst output = new AnimData(1, morphTargetOutput);\n\t\t\tconst weightName = targetNames?.[j] ? `name.${targetNames[j]}` : j;\n\t\t\toutputMap[-outputCounter] = output;\n\t\t\tconst morphCurve = {\n\t\t\t\tpaths: [{\n\t\t\t\t\tentityPath,\n\t\t\t\t\tcomponent: \"graph\",\n\t\t\t\t\tpropertyPath: [`weight.${weightName}`]\n\t\t\t\t}],\n\t\t\t\t// each morph target curve input can use the same sampler.input from the channel they were all in\n\t\t\t\tinput: curve.input,\n\t\t\t\t// but each morph target curve should reference its individual output that was just created\n\t\t\t\toutput: -outputCounter,\n\t\t\t\tinterpolation: curve.interpolation\n\t\t\t};\n\t\t\toutputCounter++;\n\t\t\tcurveMap[`morphCurve-${i2}-${j}`] = morphCurve;\n\t\t}\n\t};\n\tfor (i2 = 0; i2 < gltfAnimation.channels.length; ++i2) {\n\t\tconst channel = gltfAnimation.channels[i2];\n\t\tconst target2 = channel.target;\n\t\tconst curve = curveMap[channel.sampler];\n\t\tconst node = nodes[target2.node];\n\t\tconst gltfNode = gltfNodes[target2.node];\n\t\tconst entityPath = constructNodePath(node);\n\t\tif (target2.path.startsWith(\"weights\")) {\n\t\t\tcreateMorphTargetCurves(curve, gltfNode, entityPath);\n\t\t\tcurveMap[channel.sampler].morphCurve = true;\n\t\t} else {\n\t\t\tcurve.paths.push({\n\t\t\t\tentityPath,\n\t\t\t\tcomponent: \"graph\",\n\t\t\t\tpropertyPath: [transformSchema[target2.path]]\n\t\t\t});\n\t\t}\n\t}\n\tconst inputs = [];\n\tconst outputs = [];\n\tconst curves = [];\n\tfor (const inputKey in inputMap) {\n\t\tinputs.push(inputMap[inputKey]);\n\t\tinputMap[inputKey] = inputs.length - 1;\n\t}\n\tfor (const outputKey in outputMap) {\n\t\toutputs.push(outputMap[outputKey]);\n\t\toutputMap[outputKey] = outputs.length - 1;\n\t}\n\tfor (const curveKey in curveMap) {\n\t\tconst curveData = curveMap[curveKey];\n\t\tif (curveData.morphCurve) {\n\t\t\tcontinue;\n\t\t}\n\t\tcurves.push(new AnimCurve(\n\t\t\tcurveData.paths,\n\t\t\tinputMap[curveData.input],\n\t\t\toutputMap[curveData.output],\n\t\t\tcurveData.interpolation\n\t\t));\n\t\tif (curveData.paths.length > 0 && curveData.paths[0].propertyPath[0] === \"localRotation\" && curveData.interpolation !== INTERPOLATION_CUBIC) {\n\t\t\tquatArrays.push(curves[curves.length - 1].output);\n\t\t}\n\t}\n\tquatArrays.sort();\n\tlet prevIndex = null;\n\tlet data2;\n\tfor (i2 = 0; i2 < quatArrays.length; ++i2) {\n\t\tconst index = quatArrays[i2];\n\t\tif (i2 === 0 || index !== prevIndex) {\n\t\t\tdata2 = outputs[index];\n\t\t\tif (data2.components === 4) {\n\t\t\t\tconst d = data2.data;\n\t\t\t\tconst len = d.length - 4;\n\t\t\t\tfor (let j = 0; j < len; j += 4) {\n\t\t\t\t\tconst dp = d[j + 0] * d[j + 4] + d[j + 1] * d[j + 5] + d[j + 2] * d[j + 6] + d[j + 3] * d[j + 7];\n\t\t\t\t\tif (dp < 0) {\n\t\t\t\t\t\td[j + 4] *= -1;\n\t\t\t\t\t\td[j + 5] *= -1;\n\t\t\t\t\t\td[j + 6] *= -1;\n\t\t\t\t\t\td[j + 7] *= -1;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tprevIndex = index;\n\t\t}\n\t}\n\tlet duration = 0;\n\tfor (i2 = 0; i2 < inputs.length; i2++) {\n\t\tdata2 = inputs[i2]._data;\n\t\tduration = Math.max(duration, data2.length === 0 ? 0 : data2[data2.length - 1]);\n\t}\n\treturn new AnimTrack(\n\t\tgltfAnimation.hasOwnProperty(\"name\") ? gltfAnimation.name : `animation_${animationIndex}`,\n\t\tduration,\n\t\tinputs,\n\t\toutputs,\n\t\tcurves\n\t);\n};\nvar tempMat = new Mat4();\nvar tempVec2 = new Vec3();\nvar tempQuat = new Quat();\nvar createNode = (gltfNode, nodeIndex, nodeInstancingMap) => {\n\tconst entity = new GraphNode();\n\tif (gltfNode.hasOwnProperty(\"name\") && gltfNode.name.length > 0) {\n\t\tentity.name = gltfNode.name;\n\t} else {\n\t\tentity.name = `node_${nodeIndex}`;\n\t}\n\tif (gltfNode.hasOwnProperty(\"matrix\")) {\n\t\ttempMat.data.set(gltfNode.matrix);\n\t\ttempMat.getTranslation(tempVec2);\n\t\tentity.setLocalPosition(tempVec2);\n\t\ttempQuat.setFromMat4(tempMat);\n\t\tentity.setLocalRotation(tempQuat);\n\t\ttempMat.getScale(tempVec2);\n\t\ttempVec2.x *= tempMat.scaleSign;\n\t\tentity.setLocalScale(tempVec2);\n\t}\n\tif (gltfNode.hasOwnProperty(\"rotation\")) {\n\t\tconst r = gltfNode.rotation;\n\t\tentity.setLocalRotation(r[0], r[1], r[2], r[3]);\n\t}\n\tif (gltfNode.hasOwnProperty(\"translation\")) {\n\t\tconst t = gltfNode.translation;\n\t\tentity.setLocalPosition(t[0], t[1], t[2]);\n\t}\n\tif (gltfNode.hasOwnProperty(\"scale\")) {\n\t\tconst s2 = gltfNode.scale;\n\t\tentity.setLocalScale(s2[0], s2[1], s2[2]);\n\t}\n\tif (gltfNode.hasOwnProperty(\"extensions\") && gltfNode.extensions.EXT_mesh_gpu_instancing) {\n\t\tnodeInstancingMap.set(gltfNode, {\n\t\t\text: gltfNode.extensions.EXT_mesh_gpu_instancing\n\t\t});\n\t}\n\treturn entity;\n};\nvar createCamera = (gltfCamera, node, app2) => {\n\tconst isOrthographic = gltfCamera.type === \"orthographic\";\n\tconst gltfProperties = isOrthographic ? gltfCamera.orthographic : gltfCamera.perspective;\n\tconst componentData = {\n\t\tenabled: false,\n\t\tprojection: isOrthographic ? PROJECTION_ORTHOGRAPHIC : PROJECTION_PERSPECTIVE,\n\t\tnearClip: gltfProperties.znear,\n\t\taspectRatioMode: ASPECT_AUTO\n\t};\n\tif (gltfProperties.zfar) {\n\t\tcomponentData.farClip = gltfProperties.zfar;\n\t}\n\tif (isOrthographic) {\n\t\tcomponentData.orthoHeight = gltfProperties.ymag;\n\t\tif (gltfProperties.xmag && gltfProperties.ymag) {\n\t\t\tcomponentData.aspectRatioMode = ASPECT_MANUAL;\n\t\t\tcomponentData.aspectRatio = gltfProperties.xmag / gltfProperties.ymag;\n\t\t}\n\t} else {\n\t\tcomponentData.fov = gltfProperties.yfov * math.RAD_TO_DEG;\n\t\tif (gltfProperties.aspectRatio) {\n\t\t\tcomponentData.aspectRatioMode = ASPECT_MANUAL;\n\t\t\tcomponentData.aspectRatio = gltfProperties.aspectRatio;\n\t\t}\n\t}\n\tconst cameraEntity = new Entity(gltfCamera.name, app2);\n\tcameraEntity.addComponent(\"camera\", componentData);\n\treturn cameraEntity;\n};\nvar createSkins = (device, gltf, nodes, bufferViews) => {\n\tif (!gltf.hasOwnProperty(\"skins\") || gltf.skins.length === 0) {\n\t\treturn [];\n\t}\n\tconst glbSkins = /* @__PURE__ */ new Map();\n\treturn gltf.skins.map((gltfSkin) => {\n\t\treturn createSkin(device, gltfSkin, gltf.accessors, bufferViews, nodes, glbSkins);\n\t});\n};\nvar createMeshes = (device, gltf, bufferViews, options2) => {\n\tconst vertexBufferDict = {};\n\tconst meshVariants = {};\n\tconst meshDefaultMaterials = {};\n\tconst flatShadedMeshes = /* @__PURE__ */ new Set();\n\tconst promises = [];\n\tconst valid = !options2.skipMeshes && gltf?.meshes?.length && gltf?.accessors?.length && gltf?.bufferViews?.length;\n\tconst meshes = valid ? gltf.meshes.map((gltfMesh) => {\n\t\treturn createMesh(device, gltfMesh, gltf.accessors, bufferViews, vertexBufferDict, meshVariants, meshDefaultMaterials, flatShadedMeshes, options2, promises);\n\t}) : [];\n\treturn {\n\t\tmeshes,\n\t\tmeshVariants,\n\t\tmeshDefaultMaterials,\n\t\tflatShadedMeshes,\n\t\tpromises\n\t};\n};\nvar createMaterials = (gltf, textures, options2) => {\n\tif (!gltf.hasOwnProperty(\"materials\") || gltf.materials.length === 0) {\n\t\treturn [];\n\t}\n\tconst preprocess = options2?.material?.preprocess;\n\tconst process = options2?.material?.process ?? createMaterial;\n\tconst postprocess = options2?.material?.postprocess;\n\treturn gltf.materials.map((gltfMaterial) => {\n\t\tif (preprocess) {\n\t\t\tpreprocess(gltfMaterial);\n\t\t}\n\t\tconst material = process(gltfMaterial, textures);\n\t\tif (postprocess) {\n\t\t\tpostprocess(gltfMaterial, material);\n\t\t}\n\t\treturn material;\n\t});\n};\nvar applyFlatShading = (flatShadedMeshes, meshDefaultMaterials, meshVariants, materials) => {\n\tconst clones = /* @__PURE__ */ new Map();\n\tconst flatShadedIndex = (index) => {\n\t\tif (!clones.has(index)) {\n\t\t\tconst material = index === void 0 ? createMaterial({ name: \"defaultGlbMaterial\" }, []) : materials[index].clone();\n\t\t\tmaterial.name = `${material.name}-flatShaded`;\n\t\t\tmaterial.flatShading = true;\n\t\t\tmaterial.update();\n\t\t\tclones.set(index, materials.push(material) - 1);\n\t\t}\n\t\treturn clones.get(index);\n\t};\n\tflatShadedMeshes.forEach((meshId) => {\n\t\tmeshDefaultMaterials[meshId] = flatShadedIndex(meshDefaultMaterials[meshId]);\n\t\tconst variants = meshVariants[meshId];\n\t\tif (variants) {\n\t\t\tfor (const variant in variants) {\n\t\t\t\tvariants[variant] = flatShadedIndex(variants[variant]);\n\t\t\t}\n\t\t}\n\t});\n};\nvar createAnimations = (gltf, nodes, bufferViews, options2) => {\n\tif (!gltf.hasOwnProperty(\"animations\") || gltf.animations.length === 0) {\n\t\treturn [];\n\t}\n\tconst preprocess = options2?.animation?.preprocess;\n\tconst postprocess = options2?.animation?.postprocess;\n\treturn gltf.animations.map((gltfAnimation, index) => {\n\t\tif (preprocess) {\n\t\t\tpreprocess(gltfAnimation);\n\t\t}\n\t\tconst animation = createAnimation(gltfAnimation, index, gltf.accessors, bufferViews, nodes, gltf.meshes, gltf.nodes);\n\t\tif (postprocess) {\n\t\t\tpostprocess(gltfAnimation, animation);\n\t\t}\n\t\treturn animation;\n\t});\n};\nvar createNodes = (gltf, options2, nodeInstancingMap) => {\n\tif (!gltf.hasOwnProperty(\"nodes\") || gltf.nodes.length === 0) {\n\t\treturn [];\n\t}\n\tconst preprocess = options2?.node?.preprocess;\n\tconst process = options2?.node?.process ?? createNode;\n\tconst postprocess = options2?.node?.postprocess;\n\tconst nodes = gltf.nodes.map((gltfNode, index) => {\n\t\tif (preprocess) {\n\t\t\tpreprocess(gltfNode);\n\t\t}\n\t\tconst node = process(gltfNode, index, nodeInstancingMap);\n\t\tif (postprocess) {\n\t\t\tpostprocess(gltfNode, node);\n\t\t}\n\t\treturn node;\n\t});\n\tfor (let i2 = 0; i2 < gltf.nodes.length; ++i2) {\n\t\tconst gltfNode = gltf.nodes[i2];\n\t\tif (gltfNode.hasOwnProperty(\"children\")) {\n\t\t\tconst parent = nodes[i2];\n\t\t\tconst uniqueNames = {};\n\t\t\tfor (let j = 0; j < gltfNode.children.length; ++j) {\n\t\t\t\tconst child = nodes[gltfNode.children[j]];\n\t\t\t\tif (!child.parent) {\n\t\t\t\t\tif (uniqueNames.hasOwnProperty(child.name)) {\n\t\t\t\t\t\tchild.name += uniqueNames[child.name]++;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tuniqueNames[child.name] = 1;\n\t\t\t\t\t}\n\t\t\t\t\tparent.addChild(child);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn nodes;\n};\nvar createScenes = (gltf, nodes) => {\n\tconst scenes = [];\n\tconst count = gltf.scenes.length;\n\tif (count === 1 && gltf.scenes[0].nodes?.length === 1) {\n\t\tconst nodeIndex = gltf.scenes[0].nodes[0];\n\t\tscenes.push(nodes[nodeIndex]);\n\t} else {\n\t\tfor (let i2 = 0; i2 < count; i2++) {\n\t\t\tconst scene = gltf.scenes[i2];\n\t\t\tif (scene.nodes) {\n\t\t\t\tconst sceneRoot = new GraphNode(scene.name);\n\t\t\t\tfor (let n = 0; n < scene.nodes.length; n++) {\n\t\t\t\t\tconst childNode = nodes[scene.nodes[n]];\n\t\t\t\t\tsceneRoot.addChild(childNode);\n\t\t\t\t}\n\t\t\t\tscenes.push(sceneRoot);\n\t\t\t}\n\t\t}\n\t}\n\treturn scenes;\n};\nvar createCameras = (gltf, nodes, options2, app2) => {\n\tlet cameras = null;\n\tif (gltf.hasOwnProperty(\"nodes\") && gltf.hasOwnProperty(\"cameras\") && gltf.cameras.length > 0) {\n\t\tconst preprocess = options2?.camera?.preprocess;\n\t\tconst process = options2?.camera?.process;\n\t\tconst postprocess = options2?.camera?.postprocess;\n\t\tgltf.nodes.forEach((gltfNode, nodeIndex) => {\n\t\t\tif (gltfNode.hasOwnProperty(\"camera\")) {\n\t\t\t\tconst gltfCamera = gltf.cameras[gltfNode.camera];\n\t\t\t\tif (gltfCamera) {\n\t\t\t\t\tif (preprocess) {\n\t\t\t\t\t\tpreprocess(gltfCamera);\n\t\t\t\t\t}\n\t\t\t\t\tconst camera = process ? process(gltfCamera, nodes[nodeIndex]) : createCamera(gltfCamera, nodes[nodeIndex], app2);\n\t\t\t\t\tif (postprocess) {\n\t\t\t\t\t\tpostprocess(gltfCamera, camera);\n\t\t\t\t\t}\n\t\t\t\t\tif (camera) {\n\t\t\t\t\t\tif (!cameras) cameras = /* @__PURE__ */ new Map();\n\t\t\t\t\t\tcameras.set(gltfNode, camera);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\treturn cameras;\n};\nvar linkSkins = (gltf, renders, skins) => {\n\tgltf.nodes.forEach((gltfNode) => {\n\t\tif (gltfNode.hasOwnProperty(\"mesh\") && gltfNode.hasOwnProperty(\"skin\")) {\n\t\t\tconst meshGroup = renders[gltfNode.mesh].meshes;\n\t\t\tmeshGroup.forEach((mesh) => {\n\t\t\t\tmesh.skin = skins[gltfNode.skin];\n\t\t\t});\n\t\t}\n\t});\n};\nvar createResources = async (device, gltf, bufferViews, textures, options2, app2) => {\n\tconst preprocess = options2?.global?.preprocess;\n\tconst postprocess = options2?.global?.postprocess;\n\tif (preprocess) {\n\t\tpreprocess(gltf);\n\t}\n\tif (gltf.asset && gltf.asset.generator === \"PlayCanvas\") {\n\t}\n\tconst nodeInstancingMap = /* @__PURE__ */ new Map();\n\tconst nodes = createNodes(gltf, options2, nodeInstancingMap);\n\tconst scenes = createScenes(gltf, nodes);\n\tconst lights2 = createLights(gltf, nodes, options2, app2);\n\tconst cameras = createCameras(gltf, nodes, options2, app2);\n\tconst variants = createVariants(gltf);\n\tconst bufferViewData = await Promise.all(bufferViews);\n\tconst { meshes, meshVariants, meshDefaultMaterials, flatShadedMeshes, promises } = createMeshes(device, gltf, bufferViewData, options2);\n\tconst gsplats = options2.skipMeshes ? [] : createGSplats(device, gltf, bufferViewData);\n\tconst animations = createAnimations(gltf, nodes, bufferViewData, options2);\n\tcreateInstancing(device, gltf, nodeInstancingMap, bufferViewData);\n\tconst textureAssets = await Promise.all(textures);\n\tconst textureInstances = textureAssets.map((t) => t.resource);\n\tconst materials = createMaterials(gltf, textureInstances, options2);\n\tconst skins = createSkins(device, gltf, nodes, bufferViewData);\n\tif (flatShadedMeshes.size > 0) {\n\t\tapplyFlatShading(flatShadedMeshes, meshDefaultMaterials, meshVariants, materials);\n\t}\n\tconst renders = [];\n\tfor (let i2 = 0; i2 < meshes.length; i2++) {\n\t\trenders[i2] = new Render();\n\t\trenders[i2].meshes = meshes[i2];\n\t}\n\tlinkSkins(gltf, renders, skins);\n\tconst result = new GlbResources();\n\tresult.gltf = gltf;\n\tresult.nodes = nodes;\n\tresult.scenes = scenes;\n\tresult.animations = animations;\n\tresult.textures = textureAssets;\n\tresult.materials = materials;\n\tresult.variants = variants;\n\tresult.meshVariants = meshVariants;\n\tresult.meshDefaultMaterials = meshDefaultMaterials;\n\tresult.renders = renders;\n\tresult.gsplats = gsplats;\n\tresult.skins = skins;\n\tresult.lights = lights2;\n\tresult.cameras = cameras;\n\tresult.nodeInstancingMap = nodeInstancingMap;\n\tif (postprocess) {\n\t\tpostprocess(gltf, result);\n\t}\n\tawait Promise.all(promises);\n\treturn result;\n};\nvar applySampler = (texture, gltfSampler) => {\n\tconst getFilter2 = (filter, defaultValue) => {\n\t\tswitch (filter) {\n\t\t\tcase 9728:\n\t\t\t\treturn FILTER_NEAREST;\n\t\t\tcase 9729:\n\t\t\t\treturn FILTER_LINEAR;\n\t\t\tcase 9984:\n\t\t\t\treturn FILTER_NEAREST_MIPMAP_NEAREST;\n\t\t\tcase 9985:\n\t\t\t\treturn FILTER_LINEAR_MIPMAP_NEAREST;\n\t\t\tcase 9986:\n\t\t\t\treturn FILTER_NEAREST_MIPMAP_LINEAR;\n\t\t\tcase 9987:\n\t\t\t\treturn FILTER_LINEAR_MIPMAP_LINEAR;\n\t\t\tdefault:\n\t\t\t\treturn defaultValue;\n\t\t}\n\t};\n\tconst getWrap2 = (wrap, defaultValue) => {\n\t\tswitch (wrap) {\n\t\t\tcase 33071:\n\t\t\t\treturn ADDRESS_CLAMP_TO_EDGE;\n\t\t\tcase 33648:\n\t\t\t\treturn ADDRESS_MIRRORED_REPEAT;\n\t\t\tcase 10497:\n\t\t\t\treturn ADDRESS_REPEAT;\n\t\t\tdefault:\n\t\t\t\treturn defaultValue;\n\t\t}\n\t};\n\tif (texture) {\n\t\tgltfSampler = gltfSampler ?? {};\n\t\ttexture.minFilter = getFilter2(gltfSampler.minFilter, FILTER_LINEAR_MIPMAP_LINEAR);\n\t\ttexture.magFilter = getFilter2(gltfSampler.magFilter, FILTER_LINEAR);\n\t\ttexture.addressU = getWrap2(gltfSampler.wrapS, ADDRESS_REPEAT);\n\t\ttexture.addressV = getWrap2(gltfSampler.wrapT, ADDRESS_REPEAT);\n\t}\n};\nvar gltfTextureUniqueId = 0;\nvar createImages = (gltf, bufferViews, urlBase, registry, options2) => {\n\tif (!gltf.images || gltf.images.length === 0) {\n\t\treturn [];\n\t}\n\tconst preprocess = options2?.image?.preprocess;\n\tconst processAsync = options2?.image?.processAsync;\n\tconst postprocess = options2?.image?.postprocess;\n\tconst mimeTypeFileExtensions = {\n\t\t\"image/png\": \"png\",\n\t\t\"image/jpeg\": \"jpg\",\n\t\t\"image/basis\": \"basis\",\n\t\t\"image/ktx\": \"ktx\",\n\t\t\"image/ktx2\": \"ktx2\",\n\t\t\"image/vnd-ms.dds\": \"dds\"\n\t};\n\tconst getGammaTextures = (gltf2) => {\n\t\tconst set = /* @__PURE__ */ new Set();\n\t\tif (gltf2.hasOwnProperty(\"materials\")) {\n\t\t\tgltf2.materials.forEach((gltfMaterial) => {\n\t\t\t\tif (gltfMaterial.hasOwnProperty(\"pbrMetallicRoughness\")) {\n\t\t\t\t\tconst pbrData = gltfMaterial.pbrMetallicRoughness;\n\t\t\t\t\tif (pbrData.hasOwnProperty(\"baseColorTexture\")) {\n\t\t\t\t\t\tconst gltfTexture = gltf2.textures[pbrData.baseColorTexture.index];\n\t\t\t\t\t\tset.add(getTextureSource(gltfTexture));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (gltfMaterial.hasOwnProperty(\"emissiveTexture\")) {\n\t\t\t\t\tconst gltfTexture = gltf2.textures[gltfMaterial.emissiveTexture.index];\n\t\t\t\t\tset.add(getTextureSource(gltfTexture));\n\t\t\t\t}\n\t\t\t\tif (gltfMaterial.hasOwnProperty(\"extensions\")) {\n\t\t\t\t\tfor (const key in gltfMaterial.extensions) {\n\t\t\t\t\t\tconst extension = glbMaterialExtensions[key];\n\t\t\t\t\t\tif (extension?.getColorTextures) {\n\t\t\t\t\t\t\tconst textureInfos = extension.getColorTextures(gltfMaterial.extensions[key]);\n\t\t\t\t\t\t\tfor (const textureInfo of textureInfos) {\n\t\t\t\t\t\t\t\tconst gltfTexture = gltf2.textures[textureInfo.index];\n\t\t\t\t\t\t\t\tset.add(getTextureSource(gltfTexture));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\treturn set;\n\t};\n\tconst loadTexture = (gltfImage, url, bufferView, mimeType, options3, srgb) => {\n\t\treturn new Promise((resolve2, reject) => {\n\t\t\tconst continuation = (bufferViewData) => {\n\t\t\t\tconst name = `${gltfImage.name || \"gltf-texture\"}-${gltfTextureUniqueId++}`;\n\t\t\t\tconst file = {\n\t\t\t\t\turl: url || name\n\t\t\t\t};\n\t\t\t\tif (bufferViewData) {\n\t\t\t\t\tfile.contents = bufferViewData.slice(0).buffer;\n\t\t\t\t}\n\t\t\t\tif (mimeType) {\n\t\t\t\t\tconst extension = mimeTypeFileExtensions[mimeType];\n\t\t\t\t\tif (extension) {\n\t\t\t\t\t\tfile.filename = `${file.url}.${extension}`;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tconst data2 = { srgb };\n\t\t\t\tconst asset = new Asset(name, \"texture\", file, data2, options3);\n\t\t\t\tasset.on(\"load\", (asset2) => resolve2(asset2));\n\t\t\t\tasset.on(\"error\", (err2) => reject(err2));\n\t\t\t\tregistry.add(asset);\n\t\t\t\tregistry.load(asset);\n\t\t\t};\n\t\t\tif (bufferView) {\n\t\t\t\tbufferView.then((bufferViewData) => continuation(bufferViewData));\n\t\t\t} else {\n\t\t\t\tcontinuation(null);\n\t\t\t}\n\t\t});\n\t};\n\tconst gammaTextures = getGammaTextures(gltf);\n\treturn gltf.images.map((gltfImage, i2) => {\n\t\tif (preprocess) {\n\t\t\tpreprocess(gltfImage);\n\t\t}\n\t\tlet promise;\n\t\tif (processAsync) {\n\t\t\tpromise = new Promise((resolve2, reject) => {\n\t\t\t\tprocessAsync(gltfImage, (err2, textureAsset) => {\n\t\t\t\t\tif (err2) {\n\t\t\t\t\t\treject(err2);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresolve2(textureAsset);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t} else {\n\t\t\tpromise = new Promise((resolve2) => {\n\t\t\t\tresolve2(null);\n\t\t\t});\n\t\t}\n\t\tpromise = promise.then((textureAsset) => {\n\t\t\tconst srgb = gammaTextures.has(i2);\n\t\t\tif (textureAsset) {\n\t\t\t\treturn textureAsset;\n\t\t\t} else if (gltfImage.hasOwnProperty(\"uri\")) {\n\t\t\t\tif (isDataURI(gltfImage.uri)) {\n\t\t\t\t\treturn loadTexture(gltfImage, gltfImage.uri, null, getDataURIMimeType(gltfImage.uri), null, srgb);\n\t\t\t\t}\n\t\t\t\treturn loadTexture(gltfImage, ABSOLUTE_URL.test(gltfImage.uri) ? gltfImage.uri : path.join(urlBase, gltfImage.uri), null, null, { crossOrigin: \"anonymous\" }, srgb);\n\t\t\t} else if (gltfImage.hasOwnProperty(\"bufferView\") && gltfImage.hasOwnProperty(\"mimeType\")) {\n\t\t\t\treturn loadTexture(gltfImage, null, bufferViews[gltfImage.bufferView], gltfImage.mimeType, null, srgb);\n\t\t\t}\n\t\t\treturn Promise.reject(new Error(`Invalid image found in gltf (neither uri or bufferView found). index=${i2}`));\n\t\t});\n\t\tif (postprocess) {\n\t\t\tpromise = promise.then((textureAsset) => {\n\t\t\t\tpostprocess(gltfImage, textureAsset);\n\t\t\t\treturn textureAsset;\n\t\t\t});\n\t\t}\n\t\treturn promise;\n\t});\n};\nvar createTextures = (gltf, images, options2) => {\n\tif (!gltf?.images?.length || !gltf?.textures?.length) {\n\t\treturn [];\n\t}\n\tconst preprocess = options2?.texture?.preprocess;\n\tconst processAsync = options2?.texture?.processAsync;\n\tconst postprocess = options2?.texture?.postprocess;\n\tconst seenImages = /* @__PURE__ */ new Set();\n\treturn gltf.textures.map((gltfTexture) => {\n\t\tif (preprocess) {\n\t\t\tpreprocess(gltfTexture);\n\t\t}\n\t\tlet promise;\n\t\tif (processAsync) {\n\t\t\tpromise = new Promise((resolve2, reject) => {\n\t\t\t\tprocessAsync(gltfTexture, gltf.images, (err2, gltfImageIndex) => {\n\t\t\t\t\tif (err2) {\n\t\t\t\t\t\treject(err2);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresolve2(gltfImageIndex);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t} else {\n\t\t\tpromise = new Promise((resolve2) => {\n\t\t\t\tresolve2(null);\n\t\t\t});\n\t\t}\n\t\tpromise = promise.then((gltfImageIndex) => {\n\t\t\tgltfImageIndex = gltfImageIndex ?? getTextureSource(gltfTexture);\n\t\t\tconst cloneAsset = seenImages.has(gltfImageIndex);\n\t\t\tseenImages.add(gltfImageIndex);\n\t\t\treturn images[gltfImageIndex].then((imageAsset) => {\n\t\t\t\tconst asset = cloneAsset ? cloneTextureAsset(imageAsset) : imageAsset;\n\t\t\t\tapplySampler(asset.resource, (gltf.samplers ?? [])[gltfTexture.sampler]);\n\t\t\t\treturn asset;\n\t\t\t});\n\t\t});\n\t\tif (postprocess) {\n\t\t\tpromise = promise.then((textureAsset) => {\n\t\t\t\tpostprocess(gltfTexture, textureAsset);\n\t\t\t\treturn textureAsset;\n\t\t\t});\n\t\t}\n\t\treturn promise;\n\t});\n};\nvar loadBuffers = (gltf, binaryChunk, urlBase, options2) => {\n\tif (!gltf.buffers || gltf.buffers.length === 0) {\n\t\treturn [];\n\t}\n\tconst preprocess = options2?.buffer?.preprocess;\n\tconst processAsync = options2?.buffer?.processAsync;\n\tconst postprocess = options2?.buffer?.postprocess;\n\treturn gltf.buffers.map((gltfBuffer, i2) => {\n\t\tif (preprocess) {\n\t\t\tpreprocess(gltfBuffer);\n\t\t}\n\t\tlet promise;\n\t\tif (processAsync) {\n\t\t\tpromise = new Promise((resolve2, reject) => {\n\t\t\t\tprocessAsync(gltfBuffer, (err2, arrayBuffer) => {\n\t\t\t\t\tif (err2) {\n\t\t\t\t\t\treject(err2);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresolve2(arrayBuffer);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t} else {\n\t\t\tpromise = new Promise((resolve2) => {\n\t\t\t\tresolve2(null);\n\t\t\t});\n\t\t}\n\t\tpromise = promise.then((arrayBuffer) => {\n\t\t\tif (arrayBuffer) {\n\t\t\t\treturn arrayBuffer;\n\t\t\t} else if (gltfBuffer.hasOwnProperty(\"uri\")) {\n\t\t\t\tif (isDataURI(gltfBuffer.uri)) {\n\t\t\t\t\tconst byteString = atob(gltfBuffer.uri.split(\",\")[1]);\n\t\t\t\t\tconst binaryArray = new Uint8Array(byteString.length);\n\t\t\t\t\tfor (let j = 0; j < byteString.length; j++) {\n\t\t\t\t\t\tbinaryArray[j] = byteString.charCodeAt(j);\n\t\t\t\t\t}\n\t\t\t\t\treturn binaryArray;\n\t\t\t\t}\n\t\t\t\treturn new Promise((resolve2, reject) => {\n\t\t\t\t\thttp.get(\n\t\t\t\t\t\tABSOLUTE_URL.test(gltfBuffer.uri) ? gltfBuffer.uri : path.join(urlBase, gltfBuffer.uri),\n\t\t\t\t\t\t{ cache: true, responseType: \"arraybuffer\", retry: false },\n\t\t\t\t\t\t(err2, result) => {\n\t\t\t\t\t\t\tif (err2) {\n\t\t\t\t\t\t\t\treject(err2);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tresolve2(new Uint8Array(result));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn binaryChunk;\n\t\t});\n\t\tif (postprocess) {\n\t\t\tpromise = promise.then((buffer) => {\n\t\t\t\tpostprocess(gltf.buffers[i2], buffer);\n\t\t\t\treturn buffer;\n\t\t\t});\n\t\t}\n\t\treturn promise;\n\t});\n};\nvar parseGltf = (gltfChunk, callback) => {\n\tconst decodeBinaryUtf8 = (array3) => {\n\t\tif (typeof TextDecoder !== \"undefined\") {\n\t\t\treturn new TextDecoder().decode(array3);\n\t\t}\n\t\tlet str = \"\";\n\t\tfor (let i2 = 0; i2 < array3.length; i2++) {\n\t\t\tstr += String.fromCharCode(array3[i2]);\n\t\t}\n\t\treturn decodeURIComponent(escape(str));\n\t};\n\tconst gltf = JSON.parse(decodeBinaryUtf8(gltfChunk));\n\tif (gltf.asset && gltf.asset.version && parseFloat(gltf.asset.version) < 2) {\n\t\tcallback(`Invalid gltf version. Expected version 2.0 or above but found version '${gltf.asset.version}'.`);\n\t\treturn;\n\t}\n\tcallback(null, gltf);\n};\nvar parseGlb = (glbData, callback) => {\n\tconst data2 = glbData instanceof ArrayBuffer ? new DataView(glbData) : new DataView(glbData.buffer, glbData.byteOffset, glbData.byteLength);\n\tconst magic = data2.getUint32(0, true);\n\tconst version2 = data2.getUint32(4, true);\n\tconst length = data2.getUint32(8, true);\n\tif (magic !== 1179937895) {\n\t\tcallback(`Invalid magic number found in glb header. Expected 0x46546C67, found 0x${magic.toString(16)}`);\n\t\treturn;\n\t}\n\tif (version2 !== 2) {\n\t\tcallback(`Invalid version number found in glb header. Expected 2, found ${version2}`);\n\t\treturn;\n\t}\n\tif (length <= 0 || length > data2.byteLength) {\n\t\tcallback(`Invalid length found in glb header. Found ${length}`);\n\t\treturn;\n\t}\n\tconst chunks = [];\n\tlet offset3 = 12;\n\twhile (offset3 < length) {\n\t\tconst chunkLength = data2.getUint32(offset3, true);\n\t\tif (offset3 + chunkLength + 8 > data2.byteLength) {\n\t\t\tcallback(`Invalid chunk length found in glb. Found ${chunkLength}`);\n\t\t}\n\t\tconst chunkType = data2.getUint32(offset3 + 4, true);\n\t\tconst chunkData = new Uint8Array(data2.buffer, data2.byteOffset + offset3 + 8, chunkLength);\n\t\tchunks.push({ length: chunkLength, type: chunkType, data: chunkData });\n\t\toffset3 += chunkLength + 8;\n\t}\n\tif (chunks.length !== 1 && chunks.length !== 2) {\n\t\tcallback(\"Invalid number of chunks found in glb file.\");\n\t\treturn;\n\t}\n\tif (chunks[0].type !== 1313821514) {\n\t\tcallback(`Invalid chunk type found in glb file. Expected 0x4E4F534A, found 0x${chunks[0].type.toString(16)}`);\n\t\treturn;\n\t}\n\tif (chunks.length > 1 && chunks[1].type !== 5130562) {\n\t\tcallback(`Invalid chunk type found in glb file. Expected 0x004E4942, found 0x${chunks[1].type.toString(16)}`);\n\t\treturn;\n\t}\n\tcallback(null, {\n\t\tgltfChunk: chunks[0].data,\n\t\tbinaryChunk: chunks.length === 2 ? chunks[1].data : null\n\t});\n};\nvar parseChunk = (filename, data2, callback) => {\n\tconst hasGlbHeader = () => {\n\t\tconst u82 = new Uint8Array(data2);\n\t\treturn u82[0] === 103 && u82[1] === 108 && u82[2] === 84 && u82[3] === 70;\n\t};\n\tif (filename && filename.toLowerCase().endsWith(\".glb\") || hasGlbHeader()) {\n\t\tparseGlb(data2, callback);\n\t} else {\n\t\tcallback(null, {\n\t\t\tgltfChunk: data2,\n\t\t\tbinaryChunk: null\n\t\t});\n\t}\n};\nvar createBufferViews = (gltf, buffers, options2) => {\n\tconst result = [];\n\tconst preprocess = options2?.bufferView?.preprocess;\n\tconst processAsync = options2?.bufferView?.processAsync;\n\tconst postprocess = options2?.bufferView?.postprocess;\n\tif (!gltf.bufferViews?.length) {\n\t\treturn result;\n\t}\n\tfor (let i2 = 0; i2 < gltf.bufferViews.length; ++i2) {\n\t\tconst gltfBufferView = gltf.bufferViews[i2];\n\t\tif (preprocess) {\n\t\t\tpreprocess(gltfBufferView);\n\t\t}\n\t\tlet promise;\n\t\tif (processAsync) {\n\t\t\tpromise = new Promise((resolve2, reject) => {\n\t\t\t\tprocessAsync(gltfBufferView, buffers, (err2, result2) => {\n\t\t\t\t\tif (err2) {\n\t\t\t\t\t\treject(err2);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresolve2(result2);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t} else {\n\t\t\tpromise = new Promise((resolve2) => {\n\t\t\t\tresolve2(null);\n\t\t\t});\n\t\t}\n\t\tpromise = promise.then((buffer) => {\n\t\t\tif (buffer) {\n\t\t\t\treturn buffer;\n\t\t\t}\n\t\t\treturn buffers[gltfBufferView.buffer].then((buffer2) => {\n\t\t\t\treturn new Uint8Array(\n\t\t\t\t\tbuffer2.buffer,\n\t\t\t\t\tbuffer2.byteOffset + (gltfBufferView.byteOffset || 0),\n\t\t\t\t\tgltfBufferView.byteLength\n\t\t\t\t);\n\t\t\t});\n\t\t});\n\t\tif (gltfBufferView.hasOwnProperty(\"byteStride\")) {\n\t\t\tpromise = promise.then((typedArray) => {\n\t\t\t\ttypedArray.byteStride = gltfBufferView.byteStride;\n\t\t\t\treturn typedArray;\n\t\t\t});\n\t\t}\n\t\tif (postprocess) {\n\t\t\tpromise = promise.then((typedArray) => {\n\t\t\t\tpostprocess(gltfBufferView, typedArray);\n\t\t\t\treturn typedArray;\n\t\t\t});\n\t\t}\n\t\tresult.push(promise);\n\t}\n\treturn result;\n};\nvar GlbParser = class {\n\t// parse the gltf or glb data asynchronously, loading external resources\n\tstatic parse(filename, urlBase, data2, device, registry, options2, callback) {\n\t\tparseChunk(filename, data2, (err2, chunks) => {\n\t\t\tif (err2) {\n\t\t\t\tcallback(err2);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tparseGltf(chunks.gltfChunk, (err3, gltf) => {\n\t\t\t\tif (err3) {\n\t\t\t\t\tcallback(err3);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst buffers = loadBuffers(gltf, chunks.binaryChunk, urlBase, options2);\n\t\t\t\tconst bufferViews = createBufferViews(gltf, buffers, options2);\n\t\t\t\tconst images = createImages(gltf, bufferViews, urlBase, registry, options2);\n\t\t\t\tconst textures = createTextures(gltf, images, options2);\n\t\t\t\tcreateResources(device, gltf, bufferViews, textures, options2, registry.loader._app).then((result) => callback(null, result)).catch((err4) => callback(err4));\n\t\t\t});\n\t\t});\n\t}\n\tstatic createDefaultMaterial() {\n\t\treturn createMaterial({\n\t\t\tname: \"defaultGlbMaterial\"\n\t\t}, []);\n\t}\n};\n\nvar GlbAnimationParser = class {\n\tcanParse(context) {\n\t\treturn context.ext === \"glb\";\n\t}\n\tload(url, callback, asset) {\n\t\tconst original = typeof url === \"string\" ? url : url.original;\n\t\tthis.handler.fetch(url, Http.ResponseType.ARRAY_BUFFER, (err2, response) => {\n\t\t\tif (err2) {\n\t\t\t\tcallback(`Error loading animation resource: ${original} [${err2}]`);\n\t\t\t} else {\n\t\t\t\tGlbParser.parse(\"filename.glb\", \"\", response, this.handler.device, this.handler.assets, asset?.options ?? {}, (err3, parseResult) => {\n\t\t\t\t\tif (err3) {\n\t\t\t\t\t\tcallback(err3);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst animations = parseResult.animations;\n\t\t\t\t\t\tif (asset?.data?.events) {\n\t\t\t\t\t\t\tfor (let i2 = 0; i2 < animations.length; i2++) {\n\t\t\t\t\t\t\t\tanimations[i2].events = new AnimEvents(Object.values(asset.data.events));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tparseResult.destroy();\n\t\t\t\t\t\tcallback(null, animations);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}, asset);\n\t}\n};\n\nvar JsonAnimationParser = class {\n\tcanParse() {\n\t\treturn true;\n\t}\n\tload(url, callback, asset) {\n\t\tconst original = typeof url === \"string\" ? url : url.original;\n\t\tthis.handler.fetch(url, Http.ResponseType.JSON, (err2, response) => {\n\t\t\tif (err2) {\n\t\t\t\tcallback(`Error loading animation resource: ${original} [${err2}]`);\n\t\t\t} else {\n\t\t\t\tcallback(null, this[`_parseAnimationV${response.animation.version}`](response));\n\t\t\t}\n\t\t}, asset);\n\t}\n\t_parseAnimationV3(data2) {\n\t\tconst animData = data2.animation;\n\t\tconst anim = new Animation();\n\t\tanim.name = animData.name;\n\t\tanim.duration = animData.duration;\n\t\tfor (let i2 = 0; i2 < animData.nodes.length; i2++) {\n\t\t\tconst node = new AnimationNode();\n\t\t\tconst n = animData.nodes[i2];\n\t\t\tnode._name = n.name;\n\t\t\tfor (let j = 0; j < n.keys.length; j++) {\n\t\t\t\tconst k = n.keys[j];\n\t\t\t\tconst t = k.time;\n\t\t\t\tconst p = k.pos;\n\t\t\t\tconst r = k.rot;\n\t\t\t\tconst s2 = k.scale;\n\t\t\t\tconst pos = new Vec3(p[0], p[1], p[2]);\n\t\t\t\tconst rot = new Quat().setFromEulerAngles(r[0], r[1], r[2]);\n\t\t\t\tconst scl = new Vec3(s2[0], s2[1], s2[2]);\n\t\t\t\tconst key = new AnimationKey(t, pos, rot, scl);\n\t\t\t\tnode._keys.push(key);\n\t\t\t}\n\t\t\tanim.addNode(node);\n\t\t}\n\t\treturn anim;\n\t}\n\t_parseAnimationV4(data2) {\n\t\tconst animData = data2.animation;\n\t\tconst anim = new Animation();\n\t\tanim.name = animData.name;\n\t\tanim.duration = animData.duration;\n\t\tfor (let i2 = 0; i2 < animData.nodes.length; i2++) {\n\t\t\tconst node = new AnimationNode();\n\t\t\tconst n = animData.nodes[i2];\n\t\t\tnode._name = n.name;\n\t\t\tconst defPos = n.defaults.p;\n\t\t\tconst defRot = n.defaults.r;\n\t\t\tconst defScl = n.defaults.s;\n\t\t\tfor (let j = 0; j < n.keys.length; j++) {\n\t\t\t\tconst k = n.keys[j];\n\t\t\t\tconst t = k.t;\n\t\t\t\tconst p = defPos ? defPos : k.p;\n\t\t\t\tconst r = defRot ? defRot : k.r;\n\t\t\t\tconst s2 = defScl ? defScl : k.s;\n\t\t\t\tconst pos = new Vec3(p[0], p[1], p[2]);\n\t\t\t\tconst rot = new Quat().setFromEulerAngles(r[0], r[1], r[2]);\n\t\t\t\tconst scl = new Vec3(s2[0], s2[1], s2[2]);\n\t\t\t\tconst key = new AnimationKey(t, pos, rot, scl);\n\t\t\t\tnode._keys.push(key);\n\t\t\t}\n\t\t\tanim.addNode(node);\n\t\t}\n\t\treturn anim;\n\t}\n};\n\nvar AnimationHandler = class extends ResourceHandler {\n\tconstructor(app2) {\n\t\tsuper(app2, \"animation\");\n\t\tthis.device = app2.graphicsDevice;\n\t\tthis.assets = app2.assets;\n\t\tthis.addParser(new JsonAnimationParser());\n\t\tthis.addParser(new GlbAnimationParser());\n\t}\n};\n\nvar AnimClipParser = class {\n\tcanParse() {\n\t\treturn true;\n\t}\n\tload(url, callback, asset) {\n\t\tconst original = typeof url === \"string\" ? url : url.original;\n\t\tthis.handler.fetch(url, Http.ResponseType.JSON, (err2, response) => {\n\t\t\tif (err2) {\n\t\t\t\tcallback(`Error loading animation clip resource: ${original} [${err2}]`);\n\t\t\t} else {\n\t\t\t\tcallback(null, response);\n\t\t\t}\n\t\t}, asset);\n\t}\n\topen(url, data2) {\n\t\tconst name = data2.name;\n\t\tconst duration = data2.duration;\n\t\tconst inputs = data2.inputs.map((input) => {\n\t\t\treturn new AnimData(1, input);\n\t\t});\n\t\tconst outputs = data2.outputs.map((output) => {\n\t\t\treturn new AnimData(output.components, output.data);\n\t\t});\n\t\tconst curves = data2.curves.map((curve) => {\n\t\t\treturn new AnimCurve(\n\t\t\t\t[curve.path],\n\t\t\t\tcurve.inputIndex,\n\t\t\t\tcurve.outputIndex,\n\t\t\t\tcurve.interpolation\n\t\t\t);\n\t\t});\n\t\treturn new AnimTrack(\n\t\t\tname,\n\t\t\tduration,\n\t\t\tinputs,\n\t\t\toutputs,\n\t\t\tcurves\n\t\t);\n\t}\n};\n\nvar AnimClipHandler = class extends ResourceHandler {\n\tconstructor(app2) {\n\t\tsuper(app2, \"animclip\");\n\t\tthis.addParser(new AnimClipParser());\n\t}\n};\n\nvar AnimStateGraphParser = class {\n\tcanParse() {\n\t\treturn true;\n\t}\n\tload(url, callback, asset) {\n\t\tconst original = typeof url === \"string\" ? url : url.original;\n\t\tthis.handler.fetch(url, Http.ResponseType.JSON, (err2, response) => {\n\t\t\tif (err2) {\n\t\t\t\tcallback(`Error loading animation state graph resource: ${original} [${err2}]`);\n\t\t\t} else {\n\t\t\t\tcallback(null, response);\n\t\t\t}\n\t\t}, asset);\n\t}\n\topen(url, data2) {\n\t\treturn new AnimStateGraph(data2);\n\t}\n};\n\nvar AnimStateGraphHandler = class extends ResourceHandler {\n\tconstructor(app2) {\n\t\tsuper(app2, \"animstategraph\");\n\t\tthis.addParser(new AnimStateGraphParser());\n\t}\n};\n\nvar supportedExtensions = [\n\t\".ogg\",\n\t\".mp3\",\n\t\".wav\",\n\t\".mp4a\",\n\t\".m4a\",\n\t\".mp4\",\n\t\".aac\",\n\t\".opus\"\n];\nvar AudioParser = class {\n\tcanParse() {\n\t\treturn true;\n\t}\n\tload(url, callback, asset) {\n\t\tconst original = typeof url === \"string\" ? url : url.original;\n\t\tconst success = function(resource) {\n\t\t\tcallback(null, new Sound(resource));\n\t\t};\n\t\tconst error = function(err2) {\n\t\t\tlet msg = `Error loading audio url: ${original}`;\n\t\t\tif (err2) {\n\t\t\t\tmsg += `: ${err2.message || err2}`;\n\t\t\t}\n\t\t\tconsole.warn(msg);\n\t\t\tcallback(msg);\n\t\t};\n\t\tif (!this._isSupported(original)) {\n\t\t\terror(`Audio format for ${original} not supported`);\n\t\t\treturn;\n\t\t}\n\t\tconst manager = this.handler.manager;\n\t\tif (!manager?.context) {\n\t\t\terror(\"Audio manager has no audio context\");\n\t\t\treturn;\n\t\t}\n\t\tthis.handler.fetch(url, Http.ResponseType.ARRAY_BUFFER, (err2, response) => {\n\t\t\tif (err2) {\n\t\t\t\terror(err2);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tmanager.context.decodeAudioData(response, success, error);\n\t\t}, asset);\n\t}\n\t_isSupported(url) {\n\t\tconst ext = path.getExtension(url).toLowerCase();\n\t\treturn supportedExtensions.indexOf(ext) > -1;\n\t}\n};\n\nvar AudioHandler = class extends ResourceHandler {\n\tconstructor(app2) {\n\t\tsuper(app2, \"audio\");\n\t\tthis.manager = app2.soundManager;\n\t\tthis.addParser(new AudioParser());\n\t}\n};\n\nvar BinaryParser = class {\n\tcanParse() {\n\t\treturn true;\n\t}\n\tload(url, callback, asset) {\n\t\tconst original = typeof url === \"string\" ? url : url.original;\n\t\tthis.handler.fetch(url, Http.ResponseType.ARRAY_BUFFER, (err2, response) => {\n\t\t\tif (err2) {\n\t\t\t\tcallback(`Error loading ${this.handler.handlerType} resource: ${original} [${err2}]`);\n\t\t\t} else {\n\t\t\t\tcallback(null, response);\n\t\t\t}\n\t\t}, asset);\n\t}\n};\n\nvar BinaryHandler = class extends ResourceHandler {\n\tconstructor(app2) {\n\t\tsuper(app2, \"binary\");\n\t\tthis.addParser(new BinaryParser());\n\t}\n\topenBinary(data2) {\n\t\treturn data2.buffer;\n\t}\n};\n\nvar GlbContainerResource = class _GlbContainerResource {\n\tconstructor(data2, asset, assets, defaultMaterial) {\n\t\tconst createAsset = function(type, resource, index) {\n\t\t\tconst subAsset = _GlbContainerResource.createAsset(asset.name, type, resource, index);\n\t\t\tassets.add(subAsset);\n\t\t\treturn subAsset;\n\t\t};\n\t\tconst renders = [];\n\t\tfor (let i2 = 0; i2 < data2.renders.length; ++i2) {\n\t\t\trenders.push(createAsset(\"render\", data2.renders[i2], i2));\n\t\t}\n\t\tconst materials = [];\n\t\tfor (let i2 = 0; i2 < data2.materials.length; ++i2) {\n\t\t\tmaterials.push(createAsset(\"material\", data2.materials[i2], i2));\n\t\t}\n\t\tconst animations = [];\n\t\tfor (let i2 = 0; i2 < data2.animations.length; ++i2) {\n\t\t\tanimations.push(createAsset(\"animation\", data2.animations[i2], i2));\n\t\t}\n\t\tconst gsplats = [];\n\t\tconst meshGSplats = [];\n\t\tif (data2.gsplats) {\n\t\t\tfor (let i2 = 0; i2 < data2.gsplats.length; ++i2) {\n\t\t\t\tconst resources = data2.gsplats[i2];\n\t\t\t\tmeshGSplats.push(resources ? resources.map((resource) => {\n\t\t\t\t\tconst gsplatAsset = createAsset(\"gsplat\", resource, gsplats.length);\n\t\t\t\t\tgsplats.push(gsplatAsset);\n\t\t\t\t\treturn gsplatAsset;\n\t\t\t\t}) : null);\n\t\t\t}\n\t\t}\n\t\tthis.data = data2;\n\t\tthis._model = null;\n\t\tthis._assetName = asset.name;\n\t\tthis._assets = assets;\n\t\tthis._defaultMaterial = defaultMaterial;\n\t\tthis.renders = renders;\n\t\tthis.materials = materials;\n\t\tthis.textures = data2.textures;\n\t\tthis.animations = animations;\n\t\tthis.gsplats = gsplats;\n\t\tthis._meshGSplats = meshGSplats;\n\t}\n\tget model() {\n\t\tif (!this._model) {\n\t\t\tconst model = _GlbContainerResource.createModel(this.data, this._defaultMaterial);\n\t\t\tconst modelAsset = _GlbContainerResource.createAsset(this._assetName, \"model\", model, 0);\n\t\t\tthis._assets.add(modelAsset);\n\t\t\tthis._model = modelAsset;\n\t\t}\n\t\treturn this._model;\n\t}\n\tstatic createAsset(assetName, type, resource, index) {\n\t\tconst subAsset = new Asset(`${assetName}/${type}/${index}`, type, {\n\t\t\turl: \"\"\n\t\t});\n\t\tsubAsset.resource = resource;\n\t\tsubAsset.loaded = true;\n\t\treturn subAsset;\n\t}\n\tinstantiateModelEntity(options2) {\n\t\tconst entity = new Entity(void 0, this._assets._loader._app);\n\t\tentity.addComponent(\"model\", Object.assign({ type: \"asset\", asset: this.model }, options2));\n\t\treturn entity;\n\t}\n\tinstantiateRenderEntity(options2) {\n\t\tconst defaultMaterial = this._defaultMaterial;\n\t\tconst skinnedMeshInstances = [];\n\t\tconst createMeshInstance = function(root, entity, mesh, materials, meshDefaultMaterials, skins, gltfNode, nodeInstancingMap) {\n\t\t\tconst materialIndex = meshDefaultMaterials[mesh.id];\n\t\t\tconst material = materialIndex === void 0 ? defaultMaterial : materials[materialIndex];\n\t\t\tconst meshInstance = new MeshInstance(mesh, material);\n\t\t\tif (mesh.morph) {\n\t\t\t\tmeshInstance.morphInstance = new MorphInstance(mesh.morph);\n\t\t\t}\n\t\t\tif (gltfNode.hasOwnProperty(\"skin\")) {\n\t\t\t\tskinnedMeshInstances.push({\n\t\t\t\t\tmeshInstance,\n\t\t\t\t\trootBone: root,\n\t\t\t\t\tentity\n\t\t\t\t});\n\t\t\t}\n\t\t\tconst instData = nodeInstancingMap.get(gltfNode);\n\t\t\tif (instData) {\n\t\t\t\tconst matrices = instData.matrices;\n\t\t\t\tconst vbFormat = VertexFormat.getDefaultInstancingFormat(mesh.device);\n\t\t\t\tconst vb = new VertexBuffer(mesh.device, vbFormat, matrices.length / 16, {\n\t\t\t\t\tdata: matrices\n\t\t\t\t});\n\t\t\t\tmeshInstance.setInstancing(vb);\n\t\t\t\tmeshInstance.instancingData._destroyVertexBuffer = true;\n\t\t\t}\n\t\t\treturn meshInstance;\n\t\t};\n\t\tconst cloneHierarchy = (root, node, glb) => {\n\t\t\tconst entity = new Entity(void 0, this._assets._loader._app);\n\t\t\tnode._cloneInternal(entity);\n\t\t\tif (!root) root = entity;\n\t\t\tlet attachedMi = null;\n\t\t\tlet renderAsset = null;\n\t\t\tfor (let i2 = 0; i2 < glb.nodes.length; i2++) {\n\t\t\t\tconst glbNode = glb.nodes[i2];\n\t\t\t\tif (glbNode === node) {\n\t\t\t\t\tconst gltfNode = glb.gltf.nodes[i2];\n\t\t\t\t\tif (gltfNode.hasOwnProperty(\"mesh\")) {\n\t\t\t\t\t\tconst meshGroup = glb.renders[gltfNode.mesh].meshes;\n\t\t\t\t\t\trenderAsset = this.renders[gltfNode.mesh];\n\t\t\t\t\t\tfor (let mi = 0; mi < meshGroup.length; mi++) {\n\t\t\t\t\t\t\tconst mesh = meshGroup[mi];\n\t\t\t\t\t\t\tif (mesh) {\n\t\t\t\t\t\t\t\tconst cloneMi = createMeshInstance(root, entity, mesh, glb.materials, glb.meshDefaultMaterials, glb.skins, gltfNode, glb.nodeInstancingMap);\n\t\t\t\t\t\t\t\tif (!attachedMi) {\n\t\t\t\t\t\t\t\t\tattachedMi = [];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tattachedMi.push(cloneMi);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (gltfNode.hasOwnProperty(\"mesh\")) {\n\t\t\t\t\t\tconst splatAssets = this._meshGSplats[gltfNode.mesh];\n\t\t\t\t\t\tif (splatAssets) {\n\t\t\t\t\t\t\tfor (let sa = 0; sa < splatAssets.length; sa++) {\n\t\t\t\t\t\t\t\tlet target2 = entity;\n\t\t\t\t\t\t\t\tif (sa > 0) {\n\t\t\t\t\t\t\t\t\ttarget2 = new Entity(`${entity.name}_gsplat_${sa}`, this._assets._loader._app);\n\t\t\t\t\t\t\t\t\tentity.addChild(target2);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttarget2.addComponent(\"gsplat\", { asset: splatAssets[sa] });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (glb.lights) {\n\t\t\t\t\t\tconst lightEntity = glb.lights.get(gltfNode);\n\t\t\t\t\t\tif (lightEntity) {\n\t\t\t\t\t\t\tentity.addChild(lightEntity.clone());\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (glb.cameras) {\n\t\t\t\t\t\tconst cameraEntity = glb.cameras.get(gltfNode);\n\t\t\t\t\t\tif (cameraEntity) {\n\t\t\t\t\t\t\tcameraEntity.camera.system.cloneComponent(cameraEntity, entity);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (attachedMi) {\n\t\t\t\tentity.addComponent(\"render\", Object.assign({\n\t\t\t\t\ttype: \"asset\",\n\t\t\t\t\tmeshInstances: attachedMi\n\t\t\t\t}, options2));\n\t\t\t\tentity.render.assignAsset(renderAsset);\n\t\t\t}\n\t\t\tconst children = node.children;\n\t\t\tfor (let i2 = 0; i2 < children.length; i2++) {\n\t\t\t\tconst childClone = cloneHierarchy(root, children[i2], glb);\n\t\t\t\tentity.addChild(childClone);\n\t\t\t}\n\t\t\treturn entity;\n\t\t};\n\t\tconst sceneClones = [];\n\t\tfor (const scene of this.data.scenes) {\n\t\t\tsceneClones.push(cloneHierarchy(null, scene, this.data));\n\t\t}\n\t\tskinnedMeshInstances.forEach((data2) => {\n\t\t\tdata2.meshInstance.skinInstance = SkinInstanceCache.createCachedSkinInstance(data2.meshInstance.mesh.skin, data2.rootBone, data2.entity);\n\t\t\tdata2.meshInstance.node.render.rootBone = data2.rootBone;\n\t\t});\n\t\treturn _GlbContainerResource.createSceneHierarchy(sceneClones, Entity);\n\t}\n\t// get material variants\n\tgetMaterialVariants() {\n\t\treturn this.data.variants ? Object.keys(this.data.variants) : [];\n\t}\n\t// apply material variant to entity\n\tapplyMaterialVariant(entity, name) {\n\t\tconst variant = name ? this.data.variants[name] : null;\n\t\tif (variant === void 0) {\n\t\t\treturn;\n\t\t}\n\t\tconst renders = entity.findComponents(\"render\");\n\t\tfor (let i2 = 0; i2 < renders.length; i2++) {\n\t\t\tconst renderComponent = renders[i2];\n\t\t\tthis._applyMaterialVariant(variant, renderComponent.meshInstances);\n\t\t}\n\t}\n\t// apply material variant to mesh instances\n\tapplyMaterialVariantInstances(instances, name) {\n\t\tconst variant = name ? this.data.variants[name] : null;\n\t\tif (variant === void 0) {\n\t\t\treturn;\n\t\t}\n\t\tthis._applyMaterialVariant(variant, instances);\n\t}\n\t// internally apply variant to instances\n\t_applyMaterialVariant(variant, instances) {\n\t\tinstances.forEach((instance) => {\n\t\t\tif (variant === null) {\n\t\t\t\tinstance.material = this._defaultMaterial;\n\t\t\t} else {\n\t\t\t\tconst meshVariants = this.data.meshVariants[instance.mesh.id];\n\t\t\t\tif (meshVariants) {\n\t\t\t\t\tinstance.material = this.data.materials[meshVariants[variant]];\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\t// helper function to create a single hierarchy from an array of nodes\n\tstatic createSceneHierarchy(sceneNodes, nodeType) {\n\t\tlet root = null;\n\t\tif (sceneNodes.length === 1) {\n\t\t\troot = sceneNodes[0];\n\t\t} else {\n\t\t\troot = new nodeType(\"SceneGroup\");\n\t\t\tfor (const scene of sceneNodes) {\n\t\t\t\troot.addChild(scene);\n\t\t\t}\n\t\t}\n\t\treturn root;\n\t}\n\t// create a Model from the parsed GLB data structures\n\tstatic createModel(glb, defaultMaterial) {\n\t\tconst createMeshInstance = function(model2, mesh, skins, skinInstances2, materials, node, gltfNode) {\n\t\t\tconst materialIndex = glb.meshDefaultMaterials[mesh.id];\n\t\t\tconst material = materialIndex === void 0 ? defaultMaterial : materials[materialIndex];\n\t\t\tconst meshInstance = new MeshInstance(mesh, material, node);\n\t\t\tif (mesh.morph) {\n\t\t\t\tconst morphInstance = new MorphInstance(mesh.morph);\n\t\t\t\tmeshInstance.morphInstance = morphInstance;\n\t\t\t\tmodel2.morphInstances.push(morphInstance);\n\t\t\t}\n\t\t\tif (gltfNode.hasOwnProperty(\"skin\")) {\n\t\t\t\tconst skinIndex = gltfNode.skin;\n\t\t\t\tconst skin = skins[skinIndex];\n\t\t\t\tmesh.skin = skin;\n\t\t\t\tconst skinInstance = skinInstances2[skinIndex];\n\t\t\t\tmeshInstance.skinInstance = skinInstance;\n\t\t\t\tmodel2.skinInstances.push(skinInstance);\n\t\t\t}\n\t\t\tmodel2.meshInstances.push(meshInstance);\n\t\t};\n\t\tconst model = new Model();\n\t\tconst skinInstances = [];\n\t\tfor (const skin of glb.skins) {\n\t\t\tconst skinInstance = new SkinInstance(skin);\n\t\t\tskinInstance.bones = skin.bones;\n\t\t\tskinInstances.push(skinInstance);\n\t\t}\n\t\tmodel.graph = _GlbContainerResource.createSceneHierarchy(glb.scenes, GraphNode);\n\t\tfor (let i2 = 0; i2 < glb.nodes.length; i2++) {\n\t\t\tconst node = glb.nodes[i2];\n\t\t\tif (node.root === model.graph) {\n\t\t\t\tconst gltfNode = glb.gltf.nodes[i2];\n\t\t\t\tif (gltfNode.hasOwnProperty(\"mesh\")) {\n\t\t\t\t\tconst meshGroup = glb.renders[gltfNode.mesh].meshes;\n\t\t\t\t\tfor (let mi = 0; mi < meshGroup.length; mi++) {\n\t\t\t\t\t\tconst mesh = meshGroup[mi];\n\t\t\t\t\t\tif (mesh) {\n\t\t\t\t\t\t\tcreateMeshInstance(model, mesh, glb.skins, skinInstances, glb.materials, node, gltfNode);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn model;\n\t}\n\tdestroy() {\n\t\tconst registry = this._assets;\n\t\tconst destroyAsset = function(asset) {\n\t\t\tregistry.remove(asset);\n\t\t\tasset.unload();\n\t\t};\n\t\tconst destroyAssets = function(assets) {\n\t\t\tassets.forEach((asset) => {\n\t\t\t\tdestroyAsset(asset);\n\t\t\t});\n\t\t};\n\t\tif (this.animations) {\n\t\t\tdestroyAssets(this.animations);\n\t\t\tthis.animations = null;\n\t\t}\n\t\tif (this.textures) {\n\t\t\tdestroyAssets(this.textures);\n\t\t\tthis.textures = null;\n\t\t}\n\t\tif (this.materials) {\n\t\t\tdestroyAssets(this.materials);\n\t\t\tthis.materials = null;\n\t\t}\n\t\tif (this.renders) {\n\t\t\tdestroyAssets(this.renders);\n\t\t\tthis.renders = null;\n\t\t}\n\t\tif (this.gsplats) {\n\t\t\tdestroyAssets(this.gsplats);\n\t\t\tthis.gsplats = null;\n\t\t\tthis._meshGSplats = null;\n\t\t}\n\t\tif (this._model) {\n\t\t\tdestroyAsset(this._model);\n\t\t\tthis._model = null;\n\t\t}\n\t\tthis.data = null;\n\t\tthis.assets = null;\n\t}\n};\n\nvar GlbContainerParser = class {\n\tconstructor(device, assets) {\n\t\tthis._device = device;\n\t\tthis._assets = assets;\n\t\tthis._defaultMaterial = GlbParser.createDefaultMaterial();\n\t}\n\tcanParse() {\n\t\treturn true;\n\t}\n\t_getUrlWithoutParams(url) {\n\t\treturn url.indexOf(\"?\") >= 0 ? url.split(\"?\")[0] : url;\n\t}\n\tload(url, callback, asset) {\n\t\tAsset.fetchArrayBuffer(url.load, (err2, result) => {\n\t\t\tif (err2) {\n\t\t\t\tcallback(err2);\n\t\t\t} else {\n\t\t\t\tGlbParser.parse(\n\t\t\t\t\tthis._getUrlWithoutParams(url.original),\n\t\t\t\t\tpath.extractPath(url.load),\n\t\t\t\t\tresult,\n\t\t\t\t\tthis._device,\n\t\t\t\t\tasset.registry,\n\t\t\t\t\tasset.options,\n\t\t\t\t\t(err3, result2) => {\n\t\t\t\t\t\tif (err3) {\n\t\t\t\t\t\t\tcallback(err3);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcallback(null, new GlbContainerResource(result2, asset, this._assets, this._defaultMaterial));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t}, asset, this.handler.maxRetries);\n\t}\n\topen(url, data2, asset) {\n\t\treturn data2;\n\t}\n\tpatch(asset, assets) {\n\t}\n};\n\nvar ContainerResource = class {\n\tinstantiateModelEntity(options2) {\n\t\treturn null;\n\t}\n\tinstantiateRenderEntity(options2) {\n\t\treturn null;\n\t}\n\tgetMaterialVariants() {\n\t\treturn null;\n\t}\n\tapplyMaterialVariant(entity, name) {\n\t}\n\tapplyMaterialVariantInstances(instances, name) {\n\t}\n};\nvar ContainerHandler = class extends ResourceHandler {\n\tconstructor(app2) {\n\t\tsuper(app2, \"container\");\n\t\tthis.addParser(new GlbContainerParser(app2.graphicsDevice, app2.assets));\n\t}\n};\n\nvar TextParser = class {\n\tcanParse() {\n\t\treturn true;\n\t}\n\tload(url, callback, asset) {\n\t\tconst original = typeof url === \"string\" ? url : url.original;\n\t\tthis.handler.fetch(url, Http.ResponseType.TEXT, (err2, response) => {\n\t\t\tif (err2) {\n\t\t\t\tcallback(`Error loading ${this.handler.handlerType} resource: ${original} [${err2}]`);\n\t\t\t} else {\n\t\t\t\tcallback(null, response);\n\t\t\t}\n\t\t}, asset);\n\t}\n};\n\nvar CssHandler = class extends ResourceHandler {\n\tdecoder = null;\n\tconstructor(app2) {\n\t\tsuper(app2, \"css\");\n\t\tthis.addParser(new TextParser());\n\t}\n\topenBinary(data2) {\n\t\tthis.decoder ?? (this.decoder = new TextDecoder(\"utf-8\"));\n\t\treturn this.decoder.decode(data2);\n\t}\n};\n\nvar CubemapHandler = class extends ResourceHandler {\n\tconstructor(app2) {\n\t\tsuper(app2, \"cubemap\");\n\t\tthis._device = app2.graphicsDevice;\n\t\tthis._registry = app2.assets;\n\t\tthis._loader = app2.loader;\n\t}\n\tload(url, callback, asset) {\n\t\tthis.loadAssets(asset, callback);\n\t}\n\topen(url, data2, asset) {\n\t\treturn asset ? asset.resource : null;\n\t}\n\tpatch(asset, registry) {\n\t\tthis.loadAssets(asset, (err2, result) => {\n\t\t\tif (err2) {\n\t\t\t\tregistry.fire(\"error\", asset);\n\t\t\t\tregistry.fire(`error:${asset.id}`, err2, asset);\n\t\t\t\tasset.fire(\"error\", asset);\n\t\t\t}\n\t\t});\n\t}\n\t// get the list of dependent asset ids for the cubemap\n\tgetAssetIds(cubemapAsset) {\n\t\tconst result = [];\n\t\tresult[0] = cubemapAsset.file;\n\t\tif ((cubemapAsset.loadFaces || !cubemapAsset.file) && cubemapAsset.data && cubemapAsset.data.textures) {\n\t\t\tfor (let i2 = 0; i2 < 6; ++i2) {\n\t\t\t\tresult[i2 + 1] = cubemapAsset.data.textures[i2];\n\t\t\t}\n\t\t} else {\n\t\t\tresult[1] = result[2] = result[3] = result[4] = result[5] = result[6] = null;\n\t\t}\n\t\treturn result;\n\t}\n\t// test whether two assets ids are the same\n\tcompareAssetIds(assetIdA, assetIdB) {\n\t\tif (assetIdA && assetIdB) {\n\t\t\tif (parseInt(assetIdA, 10) === assetIdA || typeof assetIdA === \"string\") {\n\t\t\t\treturn assetIdA === assetIdB;\n\t\t\t}\n\t\t\treturn assetIdA.url === assetIdB.url;\n\t\t}\n\t\treturn assetIdA !== null === (assetIdB !== null);\n\t}\n\t// update the cubemap resources given a newly loaded set of assets with their corresponding ids\n\tupdate(cubemapAsset, assetIds, assets) {\n\t\tconst assetData = cubemapAsset.data || {};\n\t\tconst oldAssets = cubemapAsset._handlerState.assets;\n\t\tconst oldResources = cubemapAsset._resources;\n\t\tlet tex, mip, i2;\n\t\tconst resources = [null, null, null, null, null, null, null];\n\t\tconst getType = function() {\n\t\t\tif (assetData.hasOwnProperty(\"type\")) {\n\t\t\t\treturn assetData.type;\n\t\t\t}\n\t\t\tif (assetData.hasOwnProperty(\"rgbm\")) {\n\t\t\t\treturn assetData.rgbm ? TEXTURETYPE_RGBM : TEXTURETYPE_DEFAULT;\n\t\t\t}\n\t\t\treturn null;\n\t\t};\n\t\tif (!cubemapAsset.loaded || assets[0] !== oldAssets[0]) {\n\t\t\tif (assets[0]) {\n\t\t\t\ttex = assets[0].resource;\n\t\t\t\tif (tex.cubemap) {\n\t\t\t\t\tfor (i2 = 0; i2 < 6; ++i2) {\n\t\t\t\t\t\tresources[i2 + 1] = new Texture(this._device, {\n\t\t\t\t\t\t\tname: `${cubemapAsset.name}_prelitCubemap${tex.width >> i2}`,\n\t\t\t\t\t\t\tcubemap: true,\n\t\t\t\t\t\t\t// assume prefiltered data has same encoding as the faces asset\n\t\t\t\t\t\t\ttype: getType() || tex.type,\n\t\t\t\t\t\t\twidth: tex.width >> i2,\n\t\t\t\t\t\t\theight: tex.height >> i2,\n\t\t\t\t\t\t\tformat: tex.format,\n\t\t\t\t\t\t\tlevels: [tex._levels[i2]],\n\t\t\t\t\t\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\t\t\t\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE,\n\t\t\t\t\t\t\t// generate cubemaps on the top level only\n\t\t\t\t\t\t\tmipmaps: i2 === 0\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tresources[1] = tex;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tresources[1] = oldResources[1] || null;\n\t\t\tresources[2] = oldResources[2] || null;\n\t\t\tresources[3] = oldResources[3] || null;\n\t\t\tresources[4] = oldResources[4] || null;\n\t\t\tresources[5] = oldResources[5] || null;\n\t\t\tresources[6] = oldResources[6] || null;\n\t\t}\n\t\tconst faceAssets = assets.slice(1);\n\t\tif (!cubemapAsset.loaded || !this.cmpArrays(faceAssets, oldAssets.slice(1))) {\n\t\t\tif (faceAssets.indexOf(null) === -1) {\n\t\t\t\tconst faceTextures = faceAssets.map((asset) => {\n\t\t\t\t\treturn asset.resource;\n\t\t\t\t});\n\t\t\t\tconst faceLevels = [];\n\t\t\t\tfor (mip = 0; mip < faceTextures[0]._levels.length; ++mip) {\n\t\t\t\t\tfaceLevels.push(faceTextures.map((faceTexture) => {\n\t\t\t\t\t\treturn faceTexture._levels[mip];\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t\tconst format = faceTextures[0].format;\n\t\t\t\tconst faces = new Texture(this._device, {\n\t\t\t\t\tname: `${cubemapAsset.name}_faces`,\n\t\t\t\t\tcubemap: true,\n\t\t\t\t\ttype: getType() || faceTextures[0].type,\n\t\t\t\t\twidth: faceTextures[0].width,\n\t\t\t\t\theight: faceTextures[0].height,\n\t\t\t\t\tformat: format === PIXELFORMAT_RGB8 ? PIXELFORMAT_RGBA8 : format,\n\t\t\t\t\tmipmaps: assetData.mipmaps ?? true,\n\t\t\t\t\tlevels: faceLevels,\n\t\t\t\t\tminFilter: assetData.hasOwnProperty(\"minFilter\") ? assetData.minFilter : faceTextures[0].minFilter,\n\t\t\t\t\tmagFilter: assetData.hasOwnProperty(\"magFilter\") ? assetData.magFilter : faceTextures[0].magFilter,\n\t\t\t\t\tanisotropy: assetData.hasOwnProperty(\"anisotropy\") ? assetData.anisotropy : 1,\n\t\t\t\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\t\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE\n\t\t\t\t});\n\t\t\t\tresources[0] = faces;\n\t\t\t}\n\t\t} else {\n\t\t\tresources[0] = oldResources[0] || null;\n\t\t}\n\t\tif (!this.cmpArrays(resources, oldResources)) {\n\t\t\tcubemapAsset.resources = resources;\n\t\t\tcubemapAsset._handlerState.assetIds = assetIds;\n\t\t\tcubemapAsset._handlerState.assets = assets;\n\t\t\tfor (i2 = 0; i2 < oldResources.length; ++i2) {\n\t\t\t\tif (oldResources[i2] !== null && resources.indexOf(oldResources[i2]) === -1) {\n\t\t\t\t\toldResources[i2].destroy();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor (i2 = 0; i2 < oldAssets.length; ++i2) {\n\t\t\tif (oldAssets[i2] !== null && assets.indexOf(oldAssets[i2]) === -1) {\n\t\t\t\toldAssets[i2].unload();\n\t\t\t}\n\t\t}\n\t}\n\tcmpArrays(arr1, arr2) {\n\t\tif (arr1.length !== arr2.length) {\n\t\t\treturn false;\n\t\t}\n\t\tfor (let i2 = 0; i2 < arr1.length; ++i2) {\n\t\t\tif (arr1[i2] !== arr2[i2]) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n\t// convert string id to int\n\tresolveId(value) {\n\t\tconst valueInt = parseInt(value, 10);\n\t\treturn valueInt === value || valueInt.toString() === value ? valueInt : value;\n\t}\n\tloadAssets(cubemapAsset, callback) {\n\t\tif (!cubemapAsset.hasOwnProperty(\"_handlerState\")) {\n\t\t\tcubemapAsset._handlerState = {\n\t\t\t\t// the list of requested asset ids in order of [prelit cubemap, 6 faces]\n\t\t\t\tassetIds: [null, null, null, null, null, null, null],\n\t\t\t\t// the dependent (loaded, active) texture assets\n\t\t\t\tassets: [null, null, null, null, null, null, null]\n\t\t\t};\n\t\t}\n\t\tconst self2 = this;\n\t\tconst assetIds = self2.getAssetIds(cubemapAsset);\n\t\tconst assets = [null, null, null, null, null, null, null];\n\t\tconst loadedAssetIds = cubemapAsset._handlerState.assetIds;\n\t\tconst loadedAssets = cubemapAsset._handlerState.assets;\n\t\tconst registry = self2._registry;\n\t\tlet awaiting = 7;\n\t\tconst onLoad = function(index, asset) {\n\t\t\tassets[index] = asset;\n\t\t\tawaiting--;\n\t\t\tif (awaiting === 0) {\n\t\t\t\tself2.update(cubemapAsset, assetIds, assets);\n\t\t\t\tcallback(null, cubemapAsset.resources);\n\t\t\t}\n\t\t};\n\t\tconst onError = function(index, err2, asset) {\n\t\t\tcallback(err2);\n\t\t};\n\t\tconst processTexAsset = function(index, texAsset2) {\n\t\t\tif (texAsset2.loaded && texAsset2.resource && !texAsset2.resource.device) {\n\t\t\t\ttexAsset2.unload();\n\t\t\t}\n\t\t\tif (texAsset2.loaded) {\n\t\t\t\tonLoad(index, texAsset2);\n\t\t\t} else {\n\t\t\t\tregistry.once(`load:${texAsset2.id}`, onLoad.bind(self2, index));\n\t\t\t\tregistry.once(`error:${texAsset2.id}`, onError.bind(self2, index));\n\t\t\t\tif (!texAsset2.loading) {\n\t\t\t\t\tregistry.load(texAsset2);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tlet texAsset;\n\t\tfor (let i2 = 0; i2 < 7; ++i2) {\n\t\t\tconst assetId = this.resolveId(assetIds[i2]);\n\t\t\tif (!assetId) {\n\t\t\t\tonLoad(i2, null);\n\t\t\t} else if (self2.compareAssetIds(assetId, loadedAssetIds[i2])) {\n\t\t\t\tprocessTexAsset(i2, loadedAssets[i2]);\n\t\t\t} else if (parseInt(assetId, 10) === assetId) {\n\t\t\t\ttexAsset = registry.get(assetId);\n\t\t\t\tif (texAsset) {\n\t\t\t\t\tprocessTexAsset(i2, texAsset);\n\t\t\t\t} else {\n\t\t\t\t\tsetTimeout(((index, assetId_) => {\n\t\t\t\t\t\tconst texAsset2 = registry.get(assetId_);\n\t\t\t\t\t\tif (texAsset2) {\n\t\t\t\t\t\t\tprocessTexAsset(index, texAsset2);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tonError(index, `failed to find dependent cubemap asset=${assetId_}`);\n\t\t\t\t\t\t}\n\t\t\t\t\t}).bind(null, i2, assetId));\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst file = typeof assetId === \"string\" ? {\n\t\t\t\t\turl: assetId,\n\t\t\t\t\tfilename: assetId\n\t\t\t\t} : assetId;\n\t\t\t\tconst data2 = file.url.search(\".dds\") === -1 ? {\n\t\t\t\t\ttype: \"rgbp\",\n\t\t\t\t\taddressu: \"clamp\",\n\t\t\t\t\taddressv: \"clamp\",\n\t\t\t\t\tmipmaps: false\n\t\t\t\t} : null;\n\t\t\t\ttexAsset = new Asset(`${cubemapAsset.name}_part_${i2}`, \"texture\", file, data2);\n\t\t\t\tregistry.add(texAsset);\n\t\t\t\tprocessTexAsset(i2, texAsset);\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar FolderHandler = class extends ResourceHandler {\n\tconstructor(app2) {\n\t\tsuper(app2, \"folder\");\n\t}\n\tload(url, callback) {\n\t\tcallback(null, null);\n\t}\n};\n\nvar Font = class {\n\tconstructor(textures, data2) {\n\t\tthis.type = data2 ? data2.type || FONT_MSDF : FONT_MSDF;\n\t\tthis.em = 1;\n\t\tthis.textures = textures;\n\t\tthis.intensity = 0;\n\t\tthis._loader = null;\n\t\tthis._data = null;\n\t\tthis.data = data2;\n\t}\n\tdestroy() {\n\t\tconst textures = this.textures;\n\t\tif (textures) {\n\t\t\tfor (let i2 = 0; i2 < textures.length; i2++) {\n\t\t\t\tconst texture = textures[i2];\n\t\t\t\tthis._loader?.clearCache(texture.name, \"texture\");\n\t\t\t\ttexture.destroy();\n\t\t\t}\n\t\t\tthis.textures = null;\n\t\t}\n\t\tthis._loader = null;\n\t\tthis._data = null;\n\t}\n\tset data(value) {\n\t\tthis._data = value;\n\t\tif (!value) {\n\t\t\treturn;\n\t\t}\n\t\tif (this._data.intensity !== void 0) {\n\t\t\tthis.intensity = this._data.intensity;\n\t\t}\n\t\tif (!this._data.info) {\n\t\t\tthis._data.info = {};\n\t\t}\n\t\tif (!this._data.version || this._data.version < 2) {\n\t\t\tthis._data.info.maps = [{\n\t\t\t\twidth: this._data.info.width,\n\t\t\t\theight: this._data.info.height\n\t\t\t}];\n\t\t\tif (this._data.chars) {\n\t\t\t\tfor (const key in this._data.chars) {\n\t\t\t\t\tthis._data.chars[key].map = 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tget data() {\n\t\treturn this._data;\n\t}\n};\n\nfunction upgradeDataSchema(data2) {\n\tif (data2.version < 3) {\n\t\tif (data2.version < 2) {\n\t\t\tdata2.info.maps = data2.info.maps || [{\n\t\t\t\twidth: data2.info.width,\n\t\t\t\theight: data2.info.height\n\t\t\t}];\n\t\t}\n\t\tdata2.chars = Object.keys(data2.chars || {}).reduce((newChars, key) => {\n\t\t\tconst existing = data2.chars[key];\n\t\t\tconst newKey = existing.letter !== void 0 ? existing.letter : string.fromCodePoint(key);\n\t\t\tif (data2.version < 2) {\n\t\t\t\texisting.map = existing.map || 0;\n\t\t\t}\n\t\t\tnewChars[newKey] = existing;\n\t\t\treturn newChars;\n\t\t}, {});\n\t\tdata2.version = 3;\n\t}\n\treturn data2;\n}\nvar FontHandler = class extends ResourceHandler {\n\tconstructor(app2) {\n\t\tsuper(app2, \"font\");\n\t\tthis._loader = app2.loader;\n\t\tthis.maxRetries = 0;\n\t}\n\tload(url, callback, asset) {\n\t\tif (typeof url === \"string\") {\n\t\t\turl = {\n\t\t\t\tload: url,\n\t\t\t\toriginal: url\n\t\t\t};\n\t\t}\n\t\tconst self2 = this;\n\t\tif (path.getExtension(url.original) === \".json\") {\n\t\t\thttp.get(url.load, {\n\t\t\t\tretry: this.maxRetries > 0,\n\t\t\t\tmaxRetries: this.maxRetries\n\t\t\t}, (err2, response) => {\n\t\t\t\tif (!err2) {\n\t\t\t\t\tconst data2 = upgradeDataSchema(response);\n\t\t\t\t\tself2._loadTextures(url.load.replace(\".json\", \".png\"), data2, (err3, textures) => {\n\t\t\t\t\t\tif (err3) {\n\t\t\t\t\t\t\tcallback(err3);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcallback(null, {\n\t\t\t\t\t\t\t\tdata: data2,\n\t\t\t\t\t\t\t\ttextures\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tcallback(`Error loading font resource: ${url.original} [${err2}]`);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tif (asset && asset.data) {\n\t\t\t\tasset.data = upgradeDataSchema(asset.data);\n\t\t\t}\n\t\t\tthis._loadTextures(url.load, asset && asset.data, callback);\n\t\t}\n\t}\n\t_loadTextures(url, data2, callback) {\n\t\tconst numTextures = data2.info.maps.length;\n\t\tlet numLoaded = 0;\n\t\tlet error = null;\n\t\tconst textures = new Array(numTextures);\n\t\tconst loader = this._loader;\n\t\tconst isMsdf = !data2.type || data2.type === FONT_MSDF;\n\t\tconst textureOptions = isMsdf ? { texture: { mipmaps: false, minFilter: FILTER_LINEAR } } : null;\n\t\tconst loadTexture = function(index) {\n\t\t\tconst onLoaded = function(err2, texture) {\n\t\t\t\tif (error) return;\n\t\t\t\tif (err2) {\n\t\t\t\t\terror = err2;\n\t\t\t\t\tcallback(err2);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\ttexture.upload();\n\t\t\t\ttextures[index] = texture;\n\t\t\t\tnumLoaded++;\n\t\t\t\tif (numLoaded === numTextures) {\n\t\t\t\t\tcallback(null, textures);\n\t\t\t\t}\n\t\t\t};\n\t\t\tconst pageUrl = index === 0 ? url : url.replace(\".png\", `${index}.png`);\n\t\t\tconst pageAsset = textureOptions ? new Asset(pageUrl, \"texture\", { url: pageUrl }, null, textureOptions) : null;\n\t\t\tloader.load(pageUrl, \"texture\", onLoaded, pageAsset);\n\t\t};\n\t\tfor (let i2 = 0; i2 < numTextures; i2++) {\n\t\t\tloadTexture(i2);\n\t\t}\n\t}\n\topen(url, data2, asset) {\n\t\tlet font;\n\t\tif (data2.textures) {\n\t\t\tfont = new Font(data2.textures, data2.data);\n\t\t} else {\n\t\t\tfont = new Font(data2, null);\n\t\t}\n\t\tfont._loader = this._loader;\n\t\treturn font;\n\t}\n\tpatch(asset, assets) {\n\t\tconst font = asset.resource;\n\t\tif (!font.data && asset.data) {\n\t\t\tfont.data = asset.data;\n\t\t} else if (!asset.data && font.data) {\n\t\t\tasset.data = font.data;\n\t\t}\n\t\tif (asset.data) {\n\t\t\tasset.data = upgradeDataSchema(asset.data);\n\t\t}\n\t}\n};\n\nvar GSplatAssetLoaderBase = class {\n\tload(url) {\n\t}\n\tunload(url) {\n\t}\n\tgetResource(url) {\n\t}\n\tdestroy() {\n\t}\n};\n\nvar GSplatAssetLoader = class extends GSplatAssetLoaderBase {\n\t_urlToAsset = /* @__PURE__ */ new Map();\n\t_registry;\n\tmaxConcurrentLoads = 2;\n\tmaxRetries = 2;\n\t_currentlyLoading = /* @__PURE__ */ new Set();\n\t_loadQueue = [];\n\t_retryCount = /* @__PURE__ */ new Map();\n\t_failed = /* @__PURE__ */ new Set();\n\t_destroyed = false;\n\tconstructor(registry) {\n\t\tsuper();\n\t\tthis._registry = registry;\n\t}\n\tdestroy() {\n\t\tthis._destroyed = true;\n\t\tfor (const asset of this._urlToAsset.values()) {\n\t\t\tasset.fire(\"unload\", asset);\n\t\t\tasset.off(\"load\");\n\t\t\tasset.off(\"error\");\n\t\t\tthis._registry.remove(asset);\n\t\t\tasset.unload();\n\t\t}\n\t\tthis._urlToAsset.clear();\n\t\tthis._loadQueue.length = 0;\n\t\tthis._currentlyLoading.clear();\n\t\tthis._retryCount.clear();\n\t\tthis._failed.clear();\n\t}\n\t_canLoad() {\n\t\treturn !!this._registry.loader?.getHandler(\"gsplat\");\n\t}\n\tload(url) {\n\t\tconst asset = this._urlToAsset.get(url);\n\t\tif (asset && asset.loaded && !asset.resource && !this._currentlyLoading.has(url) && !this._failed.has(url)) {\n\t\t\tasset.loaded = false;\n\t\t}\n\t\tif (asset?.loaded || this._currentlyLoading.has(url)) {\n\t\t\treturn;\n\t\t}\n\t\tif (this._loadQueue.includes(url)) {\n\t\t\treturn;\n\t\t}\n\t\tif (this._currentlyLoading.size < this.maxConcurrentLoads) {\n\t\t\tthis._startLoading(url);\n\t\t} else {\n\t\t\tthis._loadQueue.push(url);\n\t\t}\n\t}\n\t_startLoading(url) {\n\t\tthis._currentlyLoading.add(url);\n\t\tlet asset = this._urlToAsset.get(url);\n\t\tif (!asset) {\n\t\t\tasset = new Asset(url, \"gsplat\", { url });\n\t\t\tthis._registry.add(asset);\n\t\t\tthis._urlToAsset.set(url, asset);\n\t\t}\n\t\tasset.once(\"load\", () => this._onAssetLoadSuccess(url, asset));\n\t\tasset.once(\"error\", (err2) => this._onAssetLoadError(url, asset, err2));\n\t\tif (!asset.loaded && !asset.loading) {\n\t\t\tthis._registry.load(asset);\n\t\t}\n\t}\n\t_onAssetLoadSuccess(url, asset) {\n\t\tif (this._destroyed || !this._urlToAsset.has(url)) {\n\t\t\treturn;\n\t\t}\n\t\tthis._currentlyLoading.delete(url);\n\t\tthis._retryCount.delete(url);\n\t\tthis._processQueue();\n\t}\n\t_onAssetLoadError(url, asset, err2) {\n\t\tif (this._destroyed || !this._canLoad() || !this._urlToAsset.has(url)) {\n\t\t\treturn;\n\t\t}\n\t\tconst retryCount = this._retryCount.get(url) || 0;\n\t\tif (retryCount < this.maxRetries) {\n\t\t\tthis._retryCount.set(url, retryCount + 1);\n\t\t\tasset.loaded = false;\n\t\t\tasset.loading = false;\n\t\t\tasset.once(\"error\", (retryErr) => this._onAssetLoadError(url, asset, retryErr));\n\t\t\tthis._registry.load(asset);\n\t\t} else {\n\t\t\tthis._currentlyLoading.delete(url);\n\t\t\tthis._retryCount.delete(url);\n\t\t\tthis._failed.add(url);\n\t\t\tthis._processQueue();\n\t\t}\n\t}\n\t_processQueue() {\n\t\tif (this._destroyed || !this._canLoad()) {\n\t\t\treturn;\n\t\t}\n\t\twhile (this._currentlyLoading.size < this.maxConcurrentLoads && this._loadQueue.length > 0) {\n\t\t\tconst url = this._loadQueue.shift();\n\t\t\tif (url) {\n\t\t\t\tthis._startLoading(url);\n\t\t\t}\n\t\t}\n\t}\n\tunload(url) {\n\t\tthis._currentlyLoading.delete(url);\n\t\tconst queueIndex = this._loadQueue.indexOf(url);\n\t\tif (queueIndex !== -1) {\n\t\t\tthis._loadQueue.splice(queueIndex, 1);\n\t\t}\n\t\tthis._retryCount.delete(url);\n\t\tthis._failed.delete(url);\n\t\tconst asset = this._urlToAsset.get(url);\n\t\tif (asset) {\n\t\t\tasset.fire(\"unload\", asset);\n\t\t\tasset.off(\"load\");\n\t\t\tasset.off(\"error\");\n\t\t\tthis._registry.remove(asset);\n\t\t\tasset.unload();\n\t\t\tthis._urlToAsset.delete(url);\n\t\t}\n\t\tthis._processQueue();\n\t}\n\tgetResource(url) {\n\t\tconst asset = this._urlToAsset.get(url);\n\t\treturn asset?.resource;\n\t}\n\thasFailed(url) {\n\t\treturn this._failed.has(url);\n\t}\n};\n\nvar GSplatOctreeParser = class {\n\tapp;\n\tconstructor(app2) {\n\t\tthis.app = app2;\n\t}\n\tcanParse(context) {\n\t\treturn context.basename === \"lod-meta.json\";\n\t}\n\tload(url, callback, asset) {\n\t\tif (typeof url === \"string\") {\n\t\t\turl = {\n\t\t\t\tload: url,\n\t\t\t\toriginal: url\n\t\t\t};\n\t\t}\n\t\tconst options2 = {\n\t\t\tretry: this.handler.maxRetries > 0,\n\t\t\tmaxRetries: this.handler.maxRetries,\n\t\t\tresponseType: Http.ResponseType.JSON\n\t\t};\n\t\thttp.get(url.load, options2, (err2, data2) => {\n\t\t\tif (!err2) {\n\t\t\t\tconst assetLoader = new GSplatAssetLoader(this.app.assets);\n\t\t\t\tconst resource = new GSplatOctreeResource(asset.file.url, data2, assetLoader);\n\t\t\t\tcallback(null, resource);\n\t\t\t} else {\n\t\t\t\tcallback(`Error loading gsplat octree: ${url.original} [${err2}]`);\n\t\t\t}\n\t\t});\n\t}\n};\n\nvar SH_C03 = 0.28209479177387814;\nvar SplatCompressedIterator = class {\n\tconstructor(gsplatData, p, r, s2, c2, sh) {\n\t\tconst unpackUnorm = (value, bits) => {\n\t\t\tconst t = (1 << bits) - 1;\n\t\t\treturn (value & t) / t;\n\t\t};\n\t\tconst unpack111011 = (result, value) => {\n\t\t\tresult.x = unpackUnorm(value >>> 21, 11);\n\t\t\tresult.y = unpackUnorm(value >>> 11, 10);\n\t\t\tresult.z = unpackUnorm(value, 11);\n\t\t};\n\t\tconst unpack8888 = (result, value) => {\n\t\t\tresult.x = unpackUnorm(value >>> 24, 8);\n\t\t\tresult.y = unpackUnorm(value >>> 16, 8);\n\t\t\tresult.z = unpackUnorm(value >>> 8, 8);\n\t\t\tresult.w = unpackUnorm(value, 8);\n\t\t};\n\t\tconst unpackRot = (result, value) => {\n\t\t\tconst norm = Math.SQRT2;\n\t\t\tconst a = (unpackUnorm(value >>> 20, 10) - 0.5) * norm;\n\t\t\tconst b = (unpackUnorm(value >>> 10, 10) - 0.5) * norm;\n\t\t\tconst c3 = (unpackUnorm(value, 10) - 0.5) * norm;\n\t\t\tconst m = Math.sqrt(1 - (a * a + b * b + c3 * c3));\n\t\t\tswitch (value >>> 30) {\n\t\t\t\tcase 0:\n\t\t\t\t\tresult.set(a, b, c3, m);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 1:\n\t\t\t\t\tresult.set(m, b, c3, a);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 2:\n\t\t\t\t\tresult.set(b, m, c3, a);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 3:\n\t\t\t\t\tresult.set(b, c3, m, a);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t};\n\t\tconst lerp = (a, b, t) => a * (1 - t) + b * t;\n\t\tconst { chunkData, chunkSize, vertexData, shData0, shData1, shData2, shBands } = gsplatData;\n\t\tconst shCoeffs = [3, 8, 15][shBands - 1];\n\t\tthis.read = (i2) => {\n\t\t\tconst ci = Math.floor(i2 / 256) * chunkSize;\n\t\t\tif (p) {\n\t\t\t\tunpack111011(p, vertexData[i2 * 4 + 0]);\n\t\t\t\tp.x = lerp(chunkData[ci + 0], chunkData[ci + 3], p.x);\n\t\t\t\tp.y = lerp(chunkData[ci + 1], chunkData[ci + 4], p.y);\n\t\t\t\tp.z = lerp(chunkData[ci + 2], chunkData[ci + 5], p.z);\n\t\t\t}\n\t\t\tif (r) {\n\t\t\t\tunpackRot(r, vertexData[i2 * 4 + 1]);\n\t\t\t}\n\t\t\tif (s2) {\n\t\t\t\tunpack111011(s2, vertexData[i2 * 4 + 2]);\n\t\t\t\ts2.x = lerp(chunkData[ci + 6], chunkData[ci + 9], s2.x);\n\t\t\t\ts2.y = lerp(chunkData[ci + 7], chunkData[ci + 10], s2.y);\n\t\t\t\ts2.z = lerp(chunkData[ci + 8], chunkData[ci + 11], s2.z);\n\t\t\t}\n\t\t\tif (c2) {\n\t\t\t\tunpack8888(c2, vertexData[i2 * 4 + 3]);\n\t\t\t\tif (chunkSize > 12) {\n\t\t\t\t\tc2.x = lerp(chunkData[ci + 12], chunkData[ci + 15], c2.x);\n\t\t\t\t\tc2.y = lerp(chunkData[ci + 13], chunkData[ci + 16], c2.y);\n\t\t\t\t\tc2.z = lerp(chunkData[ci + 14], chunkData[ci + 17], c2.z);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (sh && shBands > 0) {\n\t\t\t\tconst shData = [shData0, shData1, shData2];\n\t\t\t\tfor (let j = 0; j < 3; ++j) {\n\t\t\t\t\tfor (let k = 0; k < 15; ++k) {\n\t\t\t\t\t\tsh[j * 15 + k] = k < shCoeffs ? shData[j][i2 * 16 + k] * (8 / 255) - 4 : 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n};\nvar GSplatCompressedData = class {\n\tnumSplats;\n\tcomments;\n\tchunkData;\n\tvertexData;\n\tshData0;\n\tshData1;\n\tshData2;\n\tshBands;\n\tcreateIter(p, r, s2, c2, sh) {\n\t\treturn new SplatCompressedIterator(this, p, r, s2, c2, sh);\n\t}\n\tcalcAabb(result) {\n\t\tconst { chunkData, numChunks, chunkSize } = this;\n\t\tlet s2 = Math.exp(Math.max(chunkData[9], chunkData[10], chunkData[11]));\n\t\tlet mx = chunkData[0] - s2;\n\t\tlet my = chunkData[1] - s2;\n\t\tlet mz = chunkData[2] - s2;\n\t\tlet Mx = chunkData[3] + s2;\n\t\tlet My = chunkData[4] + s2;\n\t\tlet Mz = chunkData[5] + s2;\n\t\tfor (let i2 = 1; i2 < numChunks; ++i2) {\n\t\t\tconst off = i2 * chunkSize;\n\t\t\ts2 = Math.exp(Math.max(chunkData[off + 9], chunkData[off + 10], chunkData[off + 11]));\n\t\t\tmx = Math.min(mx, chunkData[off + 0] - s2);\n\t\t\tmy = Math.min(my, chunkData[off + 1] - s2);\n\t\t\tmz = Math.min(mz, chunkData[off + 2] - s2);\n\t\t\tMx = Math.max(Mx, chunkData[off + 3] + s2);\n\t\t\tMy = Math.max(My, chunkData[off + 4] + s2);\n\t\t\tMz = Math.max(Mz, chunkData[off + 5] + s2);\n\t\t}\n\t\tresult.center.set((mx + Mx) * 0.5, (my + My) * 0.5, (mz + Mz) * 0.5);\n\t\tresult.halfExtents.set((Mx - mx) * 0.5, (My - my) * 0.5, (Mz - mz) * 0.5);\n\t\treturn true;\n\t}\n\tgetCenters() {\n\t\tconst { vertexData, chunkData, numChunks, chunkSize } = this;\n\t\tconst result = new Float32Array(this.numSplats * 3);\n\t\tlet mx, my, mz, Mx, My, Mz;\n\t\tfor (let c2 = 0; c2 < numChunks; ++c2) {\n\t\t\tconst off = c2 * chunkSize;\n\t\t\tmx = chunkData[off + 0];\n\t\t\tmy = chunkData[off + 1];\n\t\t\tmz = chunkData[off + 2];\n\t\t\tMx = chunkData[off + 3];\n\t\t\tMy = chunkData[off + 4];\n\t\t\tMz = chunkData[off + 5];\n\t\t\tconst end = Math.min(this.numSplats, (c2 + 1) * 256);\n\t\t\tfor (let i2 = c2 * 256; i2 < end; ++i2) {\n\t\t\t\tconst p = vertexData[i2 * 4];\n\t\t\t\tconst px = (p >>> 21) / 2047;\n\t\t\t\tconst py = (p >>> 11 & 1023) / 1023;\n\t\t\t\tconst pz = (p & 2047) / 2047;\n\t\t\t\tresult[i2 * 3 + 0] = (1 - px) * mx + px * Mx;\n\t\t\t\tresult[i2 * 3 + 1] = (1 - py) * my + py * My;\n\t\t\t\tresult[i2 * 3 + 2] = (1 - pz) * mz + pz * Mz;\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\tgetChunks(result) {\n\t\tconst { chunkData, numChunks, chunkSize } = this;\n\t\tlet mx, my, mz, Mx, My, Mz;\n\t\tfor (let c2 = 0; c2 < numChunks; ++c2) {\n\t\t\tconst off = c2 * chunkSize;\n\t\t\tmx = chunkData[off + 0];\n\t\t\tmy = chunkData[off + 1];\n\t\t\tmz = chunkData[off + 2];\n\t\t\tMx = chunkData[off + 3];\n\t\t\tMy = chunkData[off + 4];\n\t\t\tMz = chunkData[off + 5];\n\t\t\tresult[c2 * 6 + 0] = mx;\n\t\t\tresult[c2 * 6 + 1] = my;\n\t\t\tresult[c2 * 6 + 2] = mz;\n\t\t\tresult[c2 * 6 + 3] = Mx;\n\t\t\tresult[c2 * 6 + 4] = My;\n\t\t\tresult[c2 * 6 + 5] = Mz;\n\t\t}\n\t}\n\tcalcFocalPoint(result) {\n\t\tconst { chunkData, numChunks, chunkSize } = this;\n\t\tresult.x = 0;\n\t\tresult.y = 0;\n\t\tresult.z = 0;\n\t\tfor (let i2 = 0; i2 < numChunks; ++i2) {\n\t\t\tconst off = i2 * chunkSize;\n\t\t\tresult.x += chunkData[off + 0] + chunkData[off + 3];\n\t\t\tresult.y += chunkData[off + 1] + chunkData[off + 4];\n\t\t\tresult.z += chunkData[off + 2] + chunkData[off + 5];\n\t\t}\n\t\tresult.mulScalar(0.5 / numChunks);\n\t}\n\tget isCompressed() {\n\t\treturn true;\n\t}\n\tget numChunks() {\n\t\treturn Math.ceil(this.numSplats / 256);\n\t}\n\tget chunkSize() {\n\t\treturn this.chunkData.length / this.numChunks;\n\t}\n\t// decompress into GSplatData\n\tdecompress() {\n\t\tconst members = [\n\t\t\t\"x\",\n\t\t\t\"y\",\n\t\t\t\"z\",\n\t\t\t\"f_dc_0\",\n\t\t\t\"f_dc_1\",\n\t\t\t\"f_dc_2\",\n\t\t\t\"opacity\",\n\t\t\t\"scale_0\",\n\t\t\t\"scale_1\",\n\t\t\t\"scale_2\",\n\t\t\t\"rot_0\",\n\t\t\t\"rot_1\",\n\t\t\t\"rot_2\",\n\t\t\t\"rot_3\"\n\t\t];\n\t\tconst { shBands } = this;\n\t\tif (shBands > 0) {\n\t\t\tconst shMembers = [];\n\t\t\tfor (let i2 = 0; i2 < 45; ++i2) {\n\t\t\t\tshMembers.push(`f_rest_${i2}`);\n\t\t\t}\n\t\t\tconst location = Math.max(...[\"f_dc_0\", \"f_dc_1\", \"f_dc_2\"].map((name) => members.indexOf(name)));\n\t\t\tmembers.splice(location + 1, 0, ...shMembers);\n\t\t}\n\t\tconst data2 = {};\n\t\tmembers.forEach((name) => {\n\t\t\tdata2[name] = new Float32Array(this.numSplats);\n\t\t});\n\t\tconst p = new Vec3();\n\t\tconst r = new Quat();\n\t\tconst s2 = new Vec3();\n\t\tconst c2 = new Vec4();\n\t\tconst sh = shBands > 0 ? new Float32Array(45) : null;\n\t\tconst iter = this.createIter(p, r, s2, c2, sh);\n\t\tfor (let i2 = 0; i2 < this.numSplats; ++i2) {\n\t\t\titer.read(i2);\n\t\t\tdata2.x[i2] = p.x;\n\t\t\tdata2.y[i2] = p.y;\n\t\t\tdata2.z[i2] = p.z;\n\t\t\tdata2.rot_1[i2] = r.x;\n\t\t\tdata2.rot_2[i2] = r.y;\n\t\t\tdata2.rot_3[i2] = r.z;\n\t\t\tdata2.rot_0[i2] = r.w;\n\t\t\tdata2.scale_0[i2] = s2.x;\n\t\t\tdata2.scale_1[i2] = s2.y;\n\t\t\tdata2.scale_2[i2] = s2.z;\n\t\t\tdata2.f_dc_0[i2] = (c2.x - 0.5) / SH_C03;\n\t\t\tdata2.f_dc_1[i2] = (c2.y - 0.5) / SH_C03;\n\t\t\tdata2.f_dc_2[i2] = (c2.z - 0.5) / SH_C03;\n\t\t\tdata2.opacity[i2] = c2.w <= 0 ? -40 : c2.w >= 1 ? 40 : -Math.log(1 / c2.w - 1);\n\t\t\tif (sh) {\n\t\t\t\tfor (let c3 = 0; c3 < 45; ++c3) {\n\t\t\t\t\tdata2[`f_rest_${c3}`][i2] = sh[c3];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn new GSplatData([{\n\t\t\tname: \"vertex\",\n\t\t\tcount: this.numSplats,\n\t\t\tproperties: members.map((name) => {\n\t\t\t\treturn {\n\t\t\t\t\tname,\n\t\t\t\t\ttype: \"float\",\n\t\t\t\t\tbyteSize: 4,\n\t\t\t\t\tstorage: data2[name]\n\t\t\t\t};\n\t\t\t})\n\t\t}], this.comments);\n\t}\n};\n\nvar strideCopy = (target2, targetStride, src, srcStride, numEntries) => {\n\tfor (let i2 = 0; i2 < numEntries; ++i2) {\n\t\tfor (let j = 0; j < srcStride; ++j) {\n\t\t\ttarget2[i2 * targetStride + j] = src[i2 * srcStride + j];\n\t\t}\n\t}\n};\nvar GSplatCompressedResource = class extends GSplatResourceBase {\n\tconstructor(device, gsplatData, options2 = {}) {\n\t\tsuper(device, gsplatData, options2);\n\t\tconst { chunkData, chunkSize, numChunks, numSplats, vertexData, shBands } = gsplatData;\n\t\tthis.chunks = new Float32Array(numChunks * 6);\n\t\tgsplatData.getChunks(this.chunks);\n\t\tconst formatStreams = [\n\t\t\t{ name: \"packedTexture\", format: PIXELFORMAT_RGBA32U }\n\t\t];\n\t\tif (shBands > 0) {\n\t\t\tformatStreams.push({ name: \"shTexture0\", format: PIXELFORMAT_RGBA32U });\n\t\t\tformatStreams.push({ name: \"shTexture1\", format: PIXELFORMAT_RGBA32U });\n\t\t\tformatStreams.push({ name: \"shTexture2\", format: PIXELFORMAT_RGBA32U });\n\t\t}\n\t\tthis._format = new GSplatFormat(device, formatStreams, {\n\t\t\treadGLSL: '#include \"gsplatCompressedVS\"',\n\t\t\treadWGSL: '#include \"gsplatCompressedVS\"'\n\t\t});\n\t\tthis.streams.init(this.format, numSplats);\n\t\tconst packedTexture = this.streams.getTexture(\"packedTexture\");\n\t\tconst packedData = packedTexture.lock();\n\t\tpackedData.set(vertexData);\n\t\tpackedTexture.unlock();\n\t\tif (shBands > 0) {\n\t\t\tconst shTexture0 = this.streams.getTexture(\"shTexture0\");\n\t\t\tconst shTexture1 = this.streams.getTexture(\"shTexture1\");\n\t\t\tconst shTexture2 = this.streams.getTexture(\"shTexture2\");\n\t\t\tconst sh0Data = shTexture0.lock();\n\t\t\tsh0Data.set(new Uint32Array(gsplatData.shData0.buffer));\n\t\t\tshTexture0.unlock();\n\t\t\tconst sh1Data = shTexture1.lock();\n\t\t\tsh1Data.set(new Uint32Array(gsplatData.shData1.buffer));\n\t\t\tshTexture1.unlock();\n\t\t\tconst sh2Data = shTexture2.lock();\n\t\t\tsh2Data.set(new Uint32Array(gsplatData.shData2.buffer));\n\t\t\tshTexture2.unlock();\n\t\t}\n\t\tconst chunkTextureSize = this.evalChunkTextureSize(numChunks);\n\t\tconst chunkTexture = this.streams.createTexture(\"chunkTexture\", PIXELFORMAT_RGBA32F, chunkTextureSize);\n\t\tthis.streams.textures.set(\"chunkTexture\", chunkTexture);\n\t\tconst chunkTextureData = chunkTexture.lock();\n\t\tstrideCopy(chunkTextureData, 20, chunkData, chunkSize, numChunks);\n\t\tif (chunkSize === 12) {\n\t\t\tfor (let i2 = 0; i2 < numChunks; ++i2) {\n\t\t\t\tchunkTextureData[i2 * 20 + 15] = 1;\n\t\t\t\tchunkTextureData[i2 * 20 + 16] = 1;\n\t\t\t\tchunkTextureData[i2 * 20 + 17] = 1;\n\t\t\t}\n\t\t}\n\t\tchunkTexture.unlock();\n\t}\n\tdestroy() {\n\t\tsuper.destroy();\n\t}\n\tconfigureMaterialDefines(defines) {\n\t\tdefines.set(\"SH_BANDS\", this.streams.textures.has(\"shTexture0\") ? 3 : 0);\n\t}\n\tevalChunkTextureSize(numChunks) {\n\t\tconst width = Math.ceil(Math.sqrt(numChunks));\n\t\tconst height = Math.ceil(numChunks / width);\n\t\treturn new Vec2(width * 5, height);\n\t}\n};\n\nvar magicBytes = new Uint8Array([112, 108, 121, 10]);\nvar endHeaderBytes = new Uint8Array([10, 101, 110, 100, 95, 104, 101, 97, 100, 101, 114, 10]);\nvar dataTypeMap = /* @__PURE__ */ new Map([\n\t[\"char\", Int8Array],\n\t[\"uchar\", Uint8Array],\n\t[\"short\", Int16Array],\n\t[\"ushort\", Uint16Array],\n\t[\"int\", Int32Array],\n\t[\"uint\", Uint32Array],\n\t[\"float\", Float32Array],\n\t[\"double\", Float64Array]\n]);\nvar StreamBuf = class {\n\treader;\n\tprogressFunc;\n\tdata;\n\tview;\n\thead = 0;\n\ttail = 0;\n\tconstructor(reader, progressFunc) {\n\t\tthis.reader = reader;\n\t\tthis.progressFunc = progressFunc;\n\t}\n\t// read the next chunk of data\n\tasync read() {\n\t\tconst { value, done } = await this.reader.read();\n\t\tif (done) {\n\t\t\tthrow new Error(\"Stream finished before end of header\");\n\t\t}\n\t\tthis.push(value);\n\t\tthis.progressFunc?.(value.byteLength);\n\t}\n\t// append data to the buffer\n\tpush(data2) {\n\t\tif (!this.data) {\n\t\t\tthis.data = data2;\n\t\t\tthis.view = new DataView(this.data.buffer);\n\t\t\tthis.tail = data2.length;\n\t\t} else {\n\t\t\tconst remaining = this.tail - this.head;\n\t\t\tconst newSize = remaining + data2.length;\n\t\t\tif (this.data.length >= newSize) {\n\t\t\t\tif (this.head > 0) {\n\t\t\t\t\tthis.data.copyWithin(0, this.head, this.tail);\n\t\t\t\t\tthis.data.set(data2, remaining);\n\t\t\t\t\tthis.head = 0;\n\t\t\t\t\tthis.tail = newSize;\n\t\t\t\t} else {\n\t\t\t\t\tthis.data.set(data2, this.tail);\n\t\t\t\t\tthis.tail += data2.length;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst tmp = new Uint8Array(newSize);\n\t\t\t\tif (this.head > 0 || this.tail < this.data.length) {\n\t\t\t\t\ttmp.set(this.data.subarray(this.head, this.tail), 0);\n\t\t\t\t} else {\n\t\t\t\t\ttmp.set(this.data, 0);\n\t\t\t\t}\n\t\t\t\ttmp.set(data2, remaining);\n\t\t\t\tthis.data = tmp;\n\t\t\t\tthis.view = new DataView(this.data.buffer);\n\t\t\t\tthis.head = 0;\n\t\t\t\tthis.tail = newSize;\n\t\t\t}\n\t\t}\n\t}\n\t// remove the read data from the head of the buffer\n\tcompact() {\n\t\tif (this.head > 0) {\n\t\t\tthis.data.copyWithin(0, this.head, this.tail);\n\t\t\tthis.tail -= this.head;\n\t\t\tthis.head = 0;\n\t\t}\n\t}\n\tget remaining() {\n\t\treturn this.tail - this.head;\n\t}\n\t// helpers for extracting data from head\n\tgetInt8() {\n\t\tconst result = this.view.getInt8(this.head);\n\t\tthis.head++;\n\t\treturn result;\n\t}\n\tgetUint8() {\n\t\tconst result = this.view.getUint8(this.head);\n\t\tthis.head++;\n\t\treturn result;\n\t}\n\tgetInt16() {\n\t\tconst result = this.view.getInt16(this.head, true);\n\t\tthis.head += 2;\n\t\treturn result;\n\t}\n\tgetUint16() {\n\t\tconst result = this.view.getUint16(this.head, true);\n\t\tthis.head += 2;\n\t\treturn result;\n\t}\n\tgetInt32() {\n\t\tconst result = this.view.getInt32(this.head, true);\n\t\tthis.head += 4;\n\t\treturn result;\n\t}\n\tgetUint32() {\n\t\tconst result = this.view.getUint32(this.head, true);\n\t\tthis.head += 4;\n\t\treturn result;\n\t}\n\tgetFloat32() {\n\t\tconst result = this.view.getFloat32(this.head, true);\n\t\tthis.head += 4;\n\t\treturn result;\n\t}\n\tgetFloat64() {\n\t\tconst result = this.view.getFloat64(this.head, true);\n\t\tthis.head += 8;\n\t\treturn result;\n\t}\n};\nvar parseHeader = (lines) => {\n\tconst elements = [];\n\tconst comments = [];\n\tlet format;\n\tfor (let i2 = 1; i2 < lines.length; ++i2) {\n\t\tconst words = lines[i2].split(\" \");\n\t\tswitch (words[0]) {\n\t\t\tcase \"comment\":\n\t\t\t\tcomments.push(words.slice(1).join(\" \"));\n\t\t\t\tbreak;\n\t\t\tcase \"format\":\n\t\t\t\tformat = words[1];\n\t\t\t\tbreak;\n\t\t\tcase \"element\":\n\t\t\t\telements.push({\n\t\t\t\t\tname: words[1],\n\t\t\t\t\tcount: parseInt(words[2], 10),\n\t\t\t\t\tproperties: []\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase \"property\": {\n\t\t\t\tif (!dataTypeMap.has(words[1])) {\n\t\t\t\t\tthrow new Error(`Unrecognized property data type '${words[1]}' in ply header`);\n\t\t\t\t}\n\t\t\t\tconst element = elements[elements.length - 1];\n\t\t\t\telement.properties.push({\n\t\t\t\t\ttype: words[1],\n\t\t\t\t\tname: words[2],\n\t\t\t\t\tstorage: null,\n\t\t\t\t\tbyteSize: dataTypeMap.get(words[1]).BYTES_PER_ELEMENT\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdefault:\n\t\t\t\tthrow new Error(`Unrecognized header value '${words[0]}' in ply header`);\n\t\t}\n\t}\n\treturn { elements, format, comments };\n};\nvar isCompressedPly = (elements) => {\n\tconst chunkProperties = [\n\t\t\"min_x\",\n\t\t\"min_y\",\n\t\t\"min_z\",\n\t\t\"max_x\",\n\t\t\"max_y\",\n\t\t\"max_z\",\n\t\t\"min_scale_x\",\n\t\t\"min_scale_y\",\n\t\t\"min_scale_z\",\n\t\t\"max_scale_x\",\n\t\t\"max_scale_y\",\n\t\t\"max_scale_z\",\n\t\t\"min_r\",\n\t\t\"min_g\",\n\t\t\"min_b\",\n\t\t\"max_r\",\n\t\t\"max_g\",\n\t\t\"max_b\"\n\t];\n\tconst vertexProperties = [\n\t\t\"packed_position\",\n\t\t\"packed_rotation\",\n\t\t\"packed_scale\",\n\t\t\"packed_color\"\n\t];\n\tconst shProperties = new Array(45).fill(\"\").map((_, i2) => `f_rest_${i2}`);\n\tconst hasBaseElements = () => {\n\t\treturn elements[0].name === \"chunk\" && elements[0].properties.every((p, i2) => p.name === chunkProperties[i2] && p.type === \"float\") && elements[1].name === \"vertex\" && elements[1].properties.every((p, i2) => p.name === vertexProperties[i2] && p.type === \"uint\");\n\t};\n\tconst hasSHElements = () => {\n\t\treturn elements[2].name === \"sh\" && [9, 24, 45].indexOf(elements[2].properties.length) !== -1 && elements[2].properties.every((p, i2) => p.name === shProperties[i2] && p.type === \"uchar\");\n\t};\n\treturn elements.length === 2 && hasBaseElements() || elements.length === 3 && hasBaseElements() && hasSHElements();\n};\nvar isFloatPly = (elements) => {\n\treturn elements.length === 1 && elements[0].name === \"vertex\" && elements[0].properties.every((p) => p.type === \"float\");\n};\nvar readCompressedPly = async (streamBuf, elements, comments) => {\n\tconst result = new GSplatCompressedData();\n\tresult.comments = comments;\n\tconst numChunks = elements[0].count;\n\tconst numChunkProperties = elements[0].properties.length;\n\tconst numVertices = elements[1].count;\n\tconst evalStorageSize = (count) => {\n\t\tconst width = Math.ceil(Math.sqrt(count));\n\t\tconst height = Math.ceil(count / width);\n\t\treturn width * height;\n\t};\n\tconst storageSize = evalStorageSize(numVertices);\n\tresult.numSplats = numVertices;\n\tresult.chunkData = new Float32Array(numChunks * numChunkProperties);\n\tresult.vertexData = new Uint32Array(storageSize * 4);\n\tconst read = async (buffer, length) => {\n\t\tconst target2 = new Uint8Array(buffer);\n\t\tlet cursor = 0;\n\t\twhile (cursor < length) {\n\t\t\twhile (streamBuf.remaining === 0) {\n\t\t\t\tawait streamBuf.read();\n\t\t\t}\n\t\t\tconst toCopy = Math.min(length - cursor, streamBuf.remaining);\n\t\t\tconst src = streamBuf.data;\n\t\t\tfor (let i2 = 0; i2 < toCopy; ++i2) {\n\t\t\t\ttarget2[cursor++] = src[streamBuf.head++];\n\t\t\t}\n\t\t}\n\t};\n\tawait read(result.chunkData.buffer, numChunks * numChunkProperties * 4);\n\tawait read(result.vertexData.buffer, numVertices * 4 * 4);\n\tif (elements.length === 3) {\n\t\tconst texStorageSize = storageSize * 16;\n\t\tconst shData0 = new Uint8Array(texStorageSize);\n\t\tconst shData1 = new Uint8Array(texStorageSize);\n\t\tconst shData2 = new Uint8Array(texStorageSize);\n\t\tconst chunkSize = 1024;\n\t\tconst srcCoeffs = elements[2].properties.length / 3;\n\t\tconst tmpBuf = new Uint8Array(chunkSize * srcCoeffs * 3);\n\t\tfor (let i2 = 0; i2 < result.numSplats; i2 += chunkSize) {\n\t\t\tconst toRead = Math.min(chunkSize, result.numSplats - i2);\n\t\t\tawait read(tmpBuf.buffer, toRead * srcCoeffs * 3);\n\t\t\tfor (let j = 0; j < toRead; ++j) {\n\t\t\t\tfor (let k = 0; k < 15; ++k) {\n\t\t\t\t\tconst tidx = (i2 + j) * 16 + k;\n\t\t\t\t\tif (k < srcCoeffs) {\n\t\t\t\t\t\tshData0[tidx] = tmpBuf[(j * 3 + 0) * srcCoeffs + k];\n\t\t\t\t\t\tshData1[tidx] = tmpBuf[(j * 3 + 1) * srcCoeffs + k];\n\t\t\t\t\t\tshData2[tidx] = tmpBuf[(j * 3 + 2) * srcCoeffs + k];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tshData0[tidx] = 127;\n\t\t\t\t\t\tshData1[tidx] = 127;\n\t\t\t\t\t\tshData2[tidx] = 127;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tresult.shData0 = shData0;\n\t\tresult.shData1 = shData1;\n\t\tresult.shData2 = shData2;\n\t\tresult.shBands = { 3: 1, 8: 2, 15: 3 }[srcCoeffs];\n\t} else {\n\t\tresult.shBands = 0;\n\t}\n\treturn result;\n};\nvar readFloatPly = async (streamBuf, elements, comments) => {\n\tconst element = elements[0];\n\tconst properties = element.properties;\n\tconst numProperties = properties.length;\n\tconst storage = properties.map((p) => p.storage);\n\tconst inputSize = properties.reduce((a, p) => a + p.byteSize, 0);\n\tlet vertexIdx = 0;\n\tlet floatData;\n\tconst checkFloatData = () => {\n\t\tconst buffer = streamBuf.data.buffer;\n\t\tif (floatData?.buffer !== buffer) {\n\t\t\tfloatData = new Float32Array(buffer, 0, buffer.byteLength / 4);\n\t\t}\n\t};\n\tcheckFloatData();\n\twhile (vertexIdx < element.count) {\n\t\twhile (streamBuf.remaining < inputSize) {\n\t\t\tawait streamBuf.read();\n\t\t\tcheckFloatData();\n\t\t}\n\t\tconst toRead = Math.min(element.count - vertexIdx, Math.floor(streamBuf.remaining / inputSize));\n\t\tfor (let j = 0; j < numProperties; ++j) {\n\t\t\tconst s2 = storage[j];\n\t\t\tfor (let n = 0; n < toRead; ++n) {\n\t\t\t\ts2[n + vertexIdx] = floatData[n * numProperties + j];\n\t\t\t}\n\t\t}\n\t\tvertexIdx += toRead;\n\t\tstreamBuf.head += toRead * inputSize;\n\t}\n\treturn new GSplatData(elements, comments);\n};\nvar readGeneralPly = async (streamBuf, elements, comments) => {\n\tfor (let i2 = 0; i2 < elements.length; ++i2) {\n\t\tconst element = elements[i2];\n\t\tconst inputSize = element.properties.reduce((a, p) => a + p.byteSize, 0);\n\t\tconst propertyParsingFunctions = element.properties.map((p) => {\n\t\t\tif (p.storage) {\n\t\t\t\tswitch (p.type) {\n\t\t\t\t\tcase \"char\":\n\t\t\t\t\t\treturn (streamBuf2, c3) => {\n\t\t\t\t\t\t\tp.storage[c3] = streamBuf2.getInt8();\n\t\t\t\t\t\t};\n\t\t\t\t\tcase \"uchar\":\n\t\t\t\t\t\treturn (streamBuf2, c3) => {\n\t\t\t\t\t\t\tp.storage[c3] = streamBuf2.getUint8();\n\t\t\t\t\t\t};\n\t\t\t\t\tcase \"short\":\n\t\t\t\t\t\treturn (streamBuf2, c3) => {\n\t\t\t\t\t\t\tp.storage[c3] = streamBuf2.getInt16();\n\t\t\t\t\t\t};\n\t\t\t\t\tcase \"ushort\":\n\t\t\t\t\t\treturn (streamBuf2, c3) => {\n\t\t\t\t\t\t\tp.storage[c3] = streamBuf2.getUint16();\n\t\t\t\t\t\t};\n\t\t\t\t\tcase \"int\":\n\t\t\t\t\t\treturn (streamBuf2, c3) => {\n\t\t\t\t\t\t\tp.storage[c3] = streamBuf2.getInt32();\n\t\t\t\t\t\t};\n\t\t\t\t\tcase \"uint\":\n\t\t\t\t\t\treturn (streamBuf2, c3) => {\n\t\t\t\t\t\t\tp.storage[c3] = streamBuf2.getUint32();\n\t\t\t\t\t\t};\n\t\t\t\t\tcase \"float\":\n\t\t\t\t\t\treturn (streamBuf2, c3) => {\n\t\t\t\t\t\t\tp.storage[c3] = streamBuf2.getFloat32();\n\t\t\t\t\t\t};\n\t\t\t\t\tcase \"double\":\n\t\t\t\t\t\treturn (streamBuf2, c3) => {\n\t\t\t\t\t\t\tp.storage[c3] = streamBuf2.getFloat64();\n\t\t\t\t\t\t};\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tthrow new Error(`Unsupported property data type '${p.type}' in ply header`);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn (streamBuf2) => {\n\t\t\t\t\tstreamBuf2.head += p.byteSize;\n\t\t\t\t};\n\t\t\t}\n\t\t});\n\t\tlet c2 = 0;\n\t\twhile (c2 < element.count) {\n\t\t\twhile (streamBuf.remaining < inputSize) {\n\t\t\t\tawait streamBuf.read();\n\t\t\t}\n\t\t\tconst toRead = Math.min(element.count - c2, Math.floor(streamBuf.remaining / inputSize));\n\t\t\tfor (let n = 0; n < toRead; ++n) {\n\t\t\t\tfor (let j = 0; j < element.properties.length; ++j) {\n\t\t\t\t\tpropertyParsingFunctions[j](streamBuf, c2);\n\t\t\t\t}\n\t\t\t\tc2++;\n\t\t\t}\n\t\t}\n\t}\n\treturn new GSplatData(elements, comments);\n};\nvar readPly = async (reader, propertyFilter = null, progressFunc = null) => {\n\tconst find = (buf, search) => {\n\t\tconst endIndex = buf.length - search.length;\n\t\tlet i2, j;\n\t\tfor (i2 = 0; i2 <= endIndex; ++i2) {\n\t\t\tfor (j = 0; j < search.length; ++j) {\n\t\t\t\tif (buf[i2 + j] !== search[j]) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (j === search.length) {\n\t\t\t\treturn i2;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t};\n\tconst startsWith2 = (a, b) => {\n\t\tif (a.length < b.length) {\n\t\t\treturn false;\n\t\t}\n\t\tfor (let i2 = 0; i2 < b.length; ++i2) {\n\t\t\tif (a[i2] !== b[i2]) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t};\n\tconst streamBuf = new StreamBuf(reader, progressFunc);\n\tlet headerLength;\n\twhile (true) {\n\t\tawait streamBuf.read();\n\t\tif (streamBuf.tail >= magicBytes.length && !startsWith2(streamBuf.data, magicBytes)) {\n\t\t\tthrow new Error(\"Invalid ply header\");\n\t\t}\n\t\theaderLength = find(streamBuf.data, endHeaderBytes);\n\t\tif (headerLength !== -1) {\n\t\t\tbreak;\n\t\t}\n\t}\n\tconst lines = new TextDecoder(\"ascii\").decode(streamBuf.data.subarray(0, headerLength)).split(\"\\n\");\n\tconst { elements, format, comments } = parseHeader(lines);\n\tif (format !== \"binary_little_endian\") {\n\t\tthrow new Error(\"Unsupported ply format\");\n\t}\n\tstreamBuf.head = headerLength + endHeaderBytes.length;\n\tstreamBuf.compact();\n\tconst readData = async () => {\n\t\tif (isCompressedPly(elements)) {\n\t\t\treturn await readCompressedPly(streamBuf, elements, comments);\n\t\t}\n\t\telements.forEach((e) => {\n\t\t\te.properties.forEach((p) => {\n\t\t\t\tconst storageType = dataTypeMap.get(p.type);\n\t\t\t\tif (storageType) {\n\t\t\t\t\tconst storage = !propertyFilter || propertyFilter(p.name) ? new storageType(e.count) : null;\n\t\t\t\t\tp.storage = storage;\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\tif (isFloatPly(elements)) {\n\t\t\treturn await readFloatPly(streamBuf, elements, comments);\n\t\t}\n\t\treturn await readGeneralPly(streamBuf, elements, comments);\n\t};\n\treturn await readData();\n};\nvar defaultElementFilter = (val) => true;\nvar PlyParser = class {\n\tapp;\n\tconstructor(app2) {\n\t\tthis.app = app2;\n\t}\n\tcanParse(context) {\n\t\treturn context.ext === \"ply\";\n\t}\n\tasync load(url, callback, asset) {\n\t\tconst gsplatCentersEnabledAtLoad = this.app.scene?.gsplatCentersEnabled !== false;\n\t\ttry {\n\t\t\tconst response = await (asset.file?.contents ?? fetch(url.load));\n\t\t\tif (!response || !response.body) {\n\t\t\t\tcallback(\"Error loading resource\", null);\n\t\t\t} else {\n\t\t\t\tconst totalLength = parseInt(response.headers.get(\"content-length\") ?? \"0\", 10);\n\t\t\t\tlet totalReceived = 0;\n\t\t\t\tconst data2 = await readPly(\n\t\t\t\t\tresponse.body.getReader(),\n\t\t\t\t\tasset.data.elementFilter ?? defaultElementFilter,\n\t\t\t\t\t(bytes) => {\n\t\t\t\t\t\ttotalReceived += bytes;\n\t\t\t\t\t\tif (asset) {\n\t\t\t\t\t\t\tasset.fire(\"progress\", totalReceived, totalLength);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\tasset.fire(\"load:data\", data2);\n\t\t\t\tif (!data2.isCompressed) {\n\t\t\t\t\tif (asset.data.reorder ?? true) {\n\t\t\t\t\t\tdata2.reorderData();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tconst prepareCenters = gsplatCentersEnabledAtLoad;\n\t\t\t\tconst resource = data2.isCompressed && !asset.data.decompress ? new GSplatCompressedResource(this.app.graphicsDevice, data2, { prepareCenters }) : new GSplatResource(this.app.graphicsDevice, data2.isCompressed ? data2.decompress() : data2, { prepareCenters });\n\t\t\t\tcallback(null, resource);\n\t\t\t}\n\t\t} catch (err2) {\n\t\t\tcallback(err2, null);\n\t\t}\n\t}\n\topen(url, data2) {\n\t\treturn data2;\n\t}\n};\n\nvar parseZipArchive = (data2) => {\n\tconst dataView = new DataView(data2);\n\tconst u162 = (offset4) => dataView.getUint16(offset4, true);\n\tconst u32 = (offset4) => dataView.getUint32(offset4, true);\n\tconst extractEocd = (offset4) => {\n\t\treturn {\n\t\t\tmagic: u32(offset4),\n\t\t\tnumFiles: u162(offset4 + 8),\n\t\t\tcdSizeBytes: u32(offset4 + 12),\n\t\t\tcdOffsetBytes: u32(offset4 + 16)\n\t\t};\n\t};\n\tconst extractCdr = (offset4) => {\n\t\tconst filenameLength = u162(offset4 + 28);\n\t\tconst extraFieldLength = u162(offset4 + 30);\n\t\tconst fileCommentLength = u162(offset4 + 32);\n\t\treturn {\n\t\t\tmagic: u32(offset4),\n\t\t\tcompressionMethod: u162(offset4 + 10),\n\t\t\tcompressedSizeBytes: u32(offset4 + 20),\n\t\t\tuncompressedSizeBytes: u32(offset4 + 24),\n\t\t\tlfhOffsetBytes: u32(offset4 + 42),\n\t\t\tfilename: new TextDecoder().decode(new Uint8Array(data2, offset4 + 46, filenameLength)),\n\t\t\trecordSizeBytes: 46 + filenameLength + extraFieldLength + fileCommentLength\n\t\t};\n\t};\n\tconst extractLfh = (offset4) => {\n\t\tconst filenameLength = u162(offset4 + 26);\n\t\tconst extraLength = u162(offset4 + 28);\n\t\treturn {\n\t\t\tmagic: u32(offset4),\n\t\t\toffsetBytes: offset4 + 30 + filenameLength + extraLength\n\t\t};\n\t};\n\tconst eocd = extractEocd(dataView.byteLength - 22);\n\tif (eocd.magic !== 101010256) {\n\t\tthrow new Error(\"Invalid zip file: EOCDR not found\");\n\t}\n\tif (eocd.cdOffsetBytes === 4294967295 || eocd.cdSizeBytes === 4294967295) {\n\t\tthrow new Error(\"Invalid zip file: Zip64 not supported\");\n\t}\n\tconst result = [];\n\tlet offset3 = eocd.cdOffsetBytes;\n\tfor (let i2 = 0; i2 < eocd.numFiles; i2++) {\n\t\tconst cdr = extractCdr(offset3);\n\t\tif (cdr.magic !== 33639248) {\n\t\t\tthrow new Error(\"Invalid zip file: CDR not found\");\n\t\t}\n\t\tconst lfh = extractLfh(cdr.lfhOffsetBytes);\n\t\tif (lfh.magic !== 67324752) {\n\t\t\tthrow new Error(\"Invalid zip file: LFH not found\");\n\t\t}\n\t\tresult.push({\n\t\t\tfilename: cdr.filename,\n\t\t\tcompression: { 0: \"none\", 8: \"deflate\" }[cdr.compressionMethod] ?? \"unknown\",\n\t\t\tdata: new Uint8Array(data2, lfh.offsetBytes, cdr.compressedSizeBytes)\n\t\t});\n\t\toffset3 += cdr.recordSizeBytes;\n\t}\n\treturn result;\n};\nvar inflate = async (compressed) => {\n\tconst ds = new DecompressionStream(\"deflate-raw\");\n\tconst out = new Blob([compressed]).stream().pipeThrough(ds);\n\tconst ab = await new Response(out).arrayBuffer();\n\treturn new Uint8Array(ab);\n};\nvar downloadArrayBuffer = async (url, asset) => {\n\tconst response = await (asset.file?.contents ?? fetch(url.load));\n\tif (!response) {\n\t\tthrow new Error(\"Error loading resource\");\n\t}\n\tif (response instanceof Response) {\n\t\tif (!response.ok) {\n\t\t\tthrow new Error(`Error loading resource: ${response.status} ${response.statusText}`);\n\t\t}\n\t\tconst totalLength = parseInt(response.headers.get(\"content-length\") ?? \"0\", 10);\n\t\tif (!response.body || !response.body.getReader) {\n\t\t\tconst buf = await response.arrayBuffer();\n\t\t\tasset.fire(\"progress\", buf.byteLength, totalLength);\n\t\t\treturn buf;\n\t\t}\n\t\tconst reader = response.body.getReader();\n\t\tconst chunks = [];\n\t\tlet totalReceived = 0;\n\t\ttry {\n\t\t\twhile (true) {\n\t\t\t\tconst { done, value } = await reader.read();\n\t\t\t\tif (done) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tchunks.push(value);\n\t\t\t\ttotalReceived += value.byteLength;\n\t\t\t\tasset.fire(\"progress\", totalReceived, totalLength);\n\t\t\t}\n\t\t} finally {\n\t\t\treader.releaseLock();\n\t\t}\n\t\treturn new Blob(chunks).arrayBuffer();\n\t}\n\treturn response;\n};\nvar SogBundleParser = class {\n\tapp;\n\tconstructor(app2) {\n\t\tthis.app = app2;\n\t}\n\tcanParse(context) {\n\t\treturn context.ext === \"sog\";\n\t}\n\t_shouldAbort(asset, unloaded) {\n\t\tif (unloaded) return true;\n\t\tif (!this.app?.graphicsDevice || this.app.graphicsDevice._destroyed) return true;\n\t\treturn !this.app.assets?.get(asset.id);\n\t}\n\tasync load(url, callback, asset) {\n\t\tconst gsplatCentersEnabledAtLoad = this.app.scene?.gsplatCentersEnabled !== false;\n\t\ttry {\n\t\t\tconst { assets } = this.app;\n\t\t\tlet unloaded = false;\n\t\t\tlet ownedByResource = false;\n\t\t\tconst textures = {};\n\t\t\tasset.once(\"unload\", () => {\n\t\t\t\tunloaded = true;\n\t\t\t\tObject.values(textures).forEach((t) => {\n\t\t\t\t\tassets.remove(t);\n\t\t\t\t\tif (!ownedByResource) {\n\t\t\t\t\t\tt.unload();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tassets._loader.clearCache(t.getFileUrl(), t.type);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t\tconst arrayBuffer = await downloadArrayBuffer(url, asset);\n\t\t\tif (this._shouldAbort(asset, unloaded)) {\n\t\t\t\tcallback(null, null);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst files = parseZipArchive(arrayBuffer);\n\t\t\tfor (const file of files) {\n\t\t\t\tif (file.compression === \"deflate\") {\n\t\t\t\t\tfile.data = await inflate(file.data);\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst metaFile = files.find((f) => f.filename === \"meta.json\");\n\t\t\tif (!metaFile) {\n\t\t\t\tcallback(\"Error: meta.json not found\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tlet meta;\n\t\t\ttry {\n\t\t\t\tmeta = JSON.parse(new TextDecoder().decode(metaFile.data));\n\t\t\t} catch (err2) {\n\t\t\t\tcallback(`Error parsing meta.json: ${err2}`);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst filenames = [\"means\", \"scales\", \"quats\", \"sh0\", \"shN\"].map((key) => meta[key]?.files ?? []).flat();\n\t\t\tconst promises = [];\n\t\t\tfor (const filename of filenames) {\n\t\t\t\tconst file = files.find((f) => f.filename === filename);\n\t\t\t\tlet texture;\n\t\t\t\tif (file) {\n\t\t\t\t\ttexture = new Asset(filename, \"texture\", {\n\t\t\t\t\t\turl: `${url.load}/${filename}`,\n\t\t\t\t\t\tfilename,\n\t\t\t\t\t\tcontents: file.data\n\t\t\t\t\t}, {\n\t\t\t\t\t\tmipmaps: false\n\t\t\t\t\t}, {\n\t\t\t\t\t\tcrossOrigin: \"anonymous\"\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tconst url2 = new URL(filename, new URL(filename, window.location.href).toString()).toString();\n\t\t\t\t\ttexture = new Asset(filename, \"texture\", {\n\t\t\t\t\t\turl: url2,\n\t\t\t\t\t\tfilename\n\t\t\t\t\t}, {\n\t\t\t\t\t\tmipmaps: false\n\t\t\t\t\t}, {\n\t\t\t\t\t\tcrossOrigin: \"anonymous\"\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tconst promise = new Promise((resolve2, reject) => {\n\t\t\t\t\ttexture.on(\"load\", () => resolve2(null));\n\t\t\t\t\ttexture.on(\"error\", (err2) => reject(err2));\n\t\t\t\t});\n\t\t\t\tthis.app.assets.add(texture);\n\t\t\t\ttextures[filename] = texture;\n\t\t\t\tpromises.push(promise);\n\t\t\t}\n\t\t\tObject.values(textures).forEach((t) => this.app.assets.load(t));\n\t\t\tawait Promise.allSettled(promises);\n\t\t\tif (this._shouldAbort(asset, unloaded)) {\n\t\t\t\tObject.values(textures).forEach((t) => {\n\t\t\t\t\tassets.remove(t);\n\t\t\t\t\tt.unload();\n\t\t\t\t});\n\t\t\t\tcallback(null, null);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tObject.values(textures).forEach((t) => {\n\t\t\t\tif (t.file) {\n\t\t\t\t\tt.file.contents = null;\n\t\t\t\t}\n\t\t\t});\n\t\t\tconst decompress = asset.data?.decompress;\n\t\t\tconst data2 = new GSplatSogData();\n\t\t\tdata2.url = url.original;\n\t\t\tdata2.meta = meta;\n\t\t\tdata2.numSplats = meta.count;\n\t\t\tdata2.means_l = textures[meta.means.files[0]].resource;\n\t\t\tdata2.means_u = textures[meta.means.files[1]].resource;\n\t\t\tdata2.quats = textures[meta.quats.files[0]].resource;\n\t\t\tdata2.scales = textures[meta.scales.files[0]].resource;\n\t\t\tdata2.sh0 = textures[meta.sh0.files[0]].resource;\n\t\t\tdata2.sh_centroids = textures[meta.shN?.files[0]]?.resource;\n\t\t\tdata2.sh_labels = textures[meta.shN?.files[1]]?.resource;\n\t\t\tdata2.shBands = GSplatSogData.calcBands(data2.sh_centroids?.width);\n\t\t\tif (!decompress) {\n\t\t\t\tif (this._shouldAbort(asset, unloaded)) {\n\t\t\t\t\tdata2.destroy();\n\t\t\t\t\tcallback(null, null);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tdata2.prepareCodebook();\n\t\t\t\tif (gsplatCentersEnabledAtLoad) {\n\t\t\t\t\tawait data2.prepareGpuData();\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (this._shouldAbort(asset, unloaded)) {\n\t\t\t\tdata2.destroy();\n\t\t\t\tcallback(null, null);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst prepareCenters = gsplatCentersEnabledAtLoad;\n\t\t\tconst resource = decompress ? new GSplatResource(this.app.graphicsDevice, await data2.decompress(), { prepareCenters }) : new GSplatSogResource(this.app.graphicsDevice, data2, { prepareCenters });\n\t\t\townedByResource = !decompress;\n\t\t\tif (this._shouldAbort(asset, unloaded)) {\n\t\t\t\tresource.destroy();\n\t\t\t\tcallback(null, null);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tcallback(null, resource);\n\t\t} catch (err2) {\n\t\t\tcallback(err2);\n\t\t}\n\t}\n};\n\nvar combineProgress = (target2, assets) => {\n\tconst map = /* @__PURE__ */ new Map();\n\tconst count = assets.length;\n\tconst fire = () => {\n\t\tlet loaded = 0;\n\t\tlet total = 0;\n\t\tmap.forEach((value) => {\n\t\t\tloaded += value.loaded;\n\t\t\ttotal += value.total;\n\t\t});\n\t\tconst reporting = map.size;\n\t\tif (reporting > 0 && reporting < count) {\n\t\t\ttotal = Math.ceil(total * count / reporting);\n\t\t}\n\t\ttarget2.fire(\"progress\", loaded, total);\n\t};\n\tassets.forEach((asset) => {\n\t\tconst progress = (loaded, total) => {\n\t\t\tmap.set(asset, { loaded, total });\n\t\t\tfire();\n\t\t};\n\t\tconst done = () => {\n\t\t\tasset.off(\"progress\", progress);\n\t\t\tasset.off(\"load\", done);\n\t\t\tasset.off(\"error\", done);\n\t\t};\n\t\tasset.on(\"progress\", progress);\n\t\tasset.on(\"load\", done);\n\t\tasset.on(\"error\", done);\n\t});\n};\nvar upgradeMeta = (meta) => {\n\tconst result = {\n\t\tversion: 1,\n\t\tcount: meta.means.shape[0],\n\t\tmeans: {\n\t\t\tmins: meta.means.mins,\n\t\t\tmaxs: meta.means.maxs,\n\t\t\tfiles: meta.means.files\n\t\t},\n\t\tscales: {\n\t\t\tmins: meta.scales.mins,\n\t\t\tmaxs: meta.scales.maxs,\n\t\t\tfiles: meta.scales.files\n\t\t},\n\t\tquats: {\n\t\t\tfiles: meta.quats.files\n\t\t},\n\t\tsh0: {\n\t\t\tmins: meta.sh0.mins,\n\t\t\tmaxs: meta.sh0.maxs,\n\t\t\tfiles: meta.sh0.files\n\t\t}\n\t};\n\tif (meta.shN) {\n\t\tresult.shN = {\n\t\t\tmins: meta.shN.mins,\n\t\t\tmaxs: meta.shN.maxs,\n\t\t\tfiles: meta.shN.files\n\t\t};\n\t}\n\treturn result;\n};\nvar SogParser = class {\n\tapp;\n\tconstructor(app2) {\n\t\tthis.app = app2;\n\t}\n\tcanParse(context) {\n\t\treturn context.ext === \"json\";\n\t}\n\t_shouldAbort(asset, unloaded) {\n\t\tif (unloaded) return true;\n\t\tif (!this.app?.graphicsDevice || this.app.graphicsDevice._destroyed) return true;\n\t\treturn !this.app.assets?.get(asset.id);\n\t}\n\tasync loadTextures(url, callback, asset, meta) {\n\t\tconst gsplatCentersEnabledAtLoad = this.app.scene?.gsplatCentersEnabled !== false;\n\t\tif (meta.version !== 2) {\n\t\t\tmeta = upgradeMeta(meta);\n\t\t}\n\t\tconst { assets } = this.app;\n\t\tconst subs = [\"means\", \"quats\", \"scales\", \"sh0\", \"shN\"];\n\t\tconst textures = {};\n\t\tconst promises = [];\n\t\tconst base = window.document?.baseURI ?? window.location.href;\n\t\tsubs.forEach((sub) => {\n\t\t\tconst files = meta[sub]?.files ?? [];\n\t\t\ttextures[sub] = files.map((filename) => {\n\t\t\t\tconst texture = new Asset(filename, \"texture\", {\n\t\t\t\t\turl: asset.options?.mapUrl?.(filename) ?? new URL(filename, new URL(url.load, base).toString()).toString(),\n\t\t\t\t\tfilename\n\t\t\t\t}, {\n\t\t\t\t\tmipmaps: false\n\t\t\t\t}, {\n\t\t\t\t\tcrossOrigin: \"anonymous\"\n\t\t\t\t});\n\t\t\t\tconst promise = new Promise((resolve2, reject) => {\n\t\t\t\t\ttexture.on(\"load\", () => resolve2(null));\n\t\t\t\t\ttexture.on(\"error\", (err2) => reject(err2));\n\t\t\t\t});\n\t\t\t\tassets.add(texture);\n\t\t\t\tpromises.push(promise);\n\t\t\t\treturn texture;\n\t\t\t});\n\t\t});\n\t\tconst textureAssets = subs.map((sub) => textures[sub]).flat();\n\t\tlet unloaded = false;\n\t\tlet ownedByResource = false;\n\t\tasset.once(\"unload\", () => {\n\t\t\tunloaded = true;\n\t\t\ttextureAssets.forEach((t) => {\n\t\t\t\tassets.remove(t);\n\t\t\t\tif (!ownedByResource) {\n\t\t\t\t\tt.unload();\n\t\t\t\t} else {\n\t\t\t\t\tassets._loader.clearCache(t.getFileUrl(), t.type);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\tcombineProgress(asset, textureAssets);\n\t\ttextureAssets.forEach((t) => assets.load(t));\n\t\tawait Promise.allSettled(promises);\n\t\tif (this._shouldAbort(asset, unloaded)) {\n\t\t\ttextureAssets.forEach((t) => {\n\t\t\t\tassets.remove(t);\n\t\t\t\tt.unload();\n\t\t\t});\n\t\t\tcallback(null, null);\n\t\t\treturn;\n\t\t}\n\t\tconst data2 = new GSplatSogData();\n\t\tdata2.url = url.original;\n\t\tdata2.meta = meta;\n\t\tdata2.numSplats = meta.count;\n\t\tdata2.means_l = textures.means[0].resource;\n\t\tdata2.means_u = textures.means[1].resource;\n\t\tdata2.quats = textures.quats[0].resource;\n\t\tdata2.scales = textures.scales[0].resource;\n\t\tdata2.sh0 = textures.sh0[0].resource;\n\t\tdata2.sh_centroids = textures.shN?.[0]?.resource;\n\t\tdata2.sh_labels = textures.shN?.[1]?.resource;\n\t\tdata2.shBands = GSplatSogData.calcBands(data2.sh_centroids?.width);\n\t\tconst decompress = asset.data?.decompress;\n\t\tif (!decompress) {\n\t\t\tif (this._shouldAbort(asset, unloaded)) {\n\t\t\t\tdata2.destroy();\n\t\t\t\tcallback(null, null);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tdata2.prepareCodebook();\n\t\t\tif (gsplatCentersEnabledAtLoad) {\n\t\t\t\tawait data2.prepareGpuData();\n\t\t\t}\n\t\t}\n\t\tif (this._shouldAbort(asset, unloaded)) {\n\t\t\tdata2.destroy();\n\t\t\tcallback(null, null);\n\t\t\treturn;\n\t\t}\n\t\tconst prepareCenters = gsplatCentersEnabledAtLoad;\n\t\tconst resource = decompress ? new GSplatResource(this.app.graphicsDevice, await data2.decompress(), { prepareCenters }) : new GSplatSogResource(this.app.graphicsDevice, data2, { prepareCenters });\n\t\townedByResource = !decompress;\n\t\tif (this._shouldAbort(asset, unloaded)) {\n\t\t\tresource.destroy();\n\t\t\tcallback(null, null);\n\t\t\treturn;\n\t\t}\n\t\tcallback(null, resource);\n\t}\n\tload(url, callback, asset) {\n\t\tif (asset.data?.means) {\n\t\t\tthis.loadTextures(url, callback, asset, asset.data);\n\t\t} else {\n\t\t\tif (typeof url === \"string\") {\n\t\t\t\turl = {\n\t\t\t\t\tload: url,\n\t\t\t\t\toriginal: url\n\t\t\t\t};\n\t\t\t}\n\t\t\tconst options2 = {\n\t\t\t\tretry: this.handler.maxRetries > 0,\n\t\t\t\tmaxRetries: this.handler.maxRetries,\n\t\t\t\tresponseType: Http.ResponseType.JSON\n\t\t\t};\n\t\t\thttp.get(url.load, options2, (err2, meta) => {\n\t\t\t\tif (this._shouldAbort(asset, false)) {\n\t\t\t\t\tcallback(null, null);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (!err2) {\n\t\t\t\t\tthis.loadTextures(url, callback, asset, meta);\n\t\t\t\t} else {\n\t\t\t\t\tcallback(`Error loading gsplat meta: ${url.original} [${err2}]`);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n};\n\nvar GSplatHandler = class extends ResourceHandler {\n\tconstructor(app2) {\n\t\tsuper(app2, \"gsplat\");\n\t\tthis.addParser(new PlyParser(app2));\n\t\tthis.addParser(new SogBundleParser(app2));\n\t\tthis.addParser(new SogParser(app2));\n\t\tthis.addParser(new GSplatOctreeParser(app2));\n\t}\n};\n\nvar CompressUtils = class {\n\tstatic setCompressedPRS(entity, data2, compressed) {\n\t\tconst a = compressed.singleVecs;\n\t\tlet b, i2;\n\t\tconst v6 = data2.___1;\n\t\tif (!v6) {\n\t\t\tb = compressed.tripleVecs;\n\t\t\ti2 = data2.___2;\n\t\t}\n\t\tlet n = v6 ? v6[0] : b[i2];\n\t\tentity.setLocalPosition(a[n], a[n + 1], a[n + 2]);\n\t\tn = v6 ? v6[1] : b[i2 + 1];\n\t\tentity.setLocalEulerAngles(a[n], a[n + 1], a[n + 2]);\n\t\tn = v6 ? v6[2] : b[i2 + 2];\n\t\tentity.setLocalScale(a[n], a[n + 1], a[n + 2]);\n\t}\n\tstatic oneCharToKey(s2, data2) {\n\t\tconst i2 = s2.charCodeAt(0) - data2.fieldFirstCode;\n\t\treturn data2.fieldArray[i2];\n\t}\n\tstatic multCharToKey(s2, data2) {\n\t\tlet ind = 0;\n\t\tfor (let i2 = 0; i2 < s2.length; i2++) {\n\t\t\tind = ind * data2.fieldCodeBase + s2.charCodeAt(i2) - data2.fieldFirstCode;\n\t\t}\n\t\treturn data2.fieldArray[ind];\n\t}\n};\n\nvar Decompress = class _Decompress {\n\tconstructor(node, data2) {\n\t\tthis._node = node;\n\t\tthis._data = data2;\n\t}\n\trun() {\n\t\tconst type = Object.prototype.toString.call(this._node);\n\t\tif (type === \"[object Object]\") {\n\t\t\tthis._handleMap();\n\t\t} else if (type === \"[object Array]\") {\n\t\t\tthis._handleArray();\n\t\t} else {\n\t\t\tthis._result = this._node;\n\t\t}\n\t\treturn this._result;\n\t}\n\t_handleMap() {\n\t\tthis._result = {};\n\t\tconst a = Object.keys(this._node);\n\t\ta.forEach(this._handleKey, this);\n\t}\n\t_handleKey(origKey) {\n\t\tlet newKey = origKey;\n\t\tconst len = origKey.length;\n\t\tif (len === 1) {\n\t\t\tnewKey = CompressUtils.oneCharToKey(origKey, this._data);\n\t\t} else if (len === 2) {\n\t\t\tnewKey = CompressUtils.multCharToKey(origKey, this._data);\n\t\t}\n\t\tthis._result[newKey] = new _Decompress(this._node[origKey], this._data).run();\n\t}\n\t_handleArray() {\n\t\tthis._result = [];\n\t\tthis._node.forEach(this._handleArElt, this);\n\t}\n\t_handleArElt(elt) {\n\t\tconst v6 = new _Decompress(elt, this._data).run();\n\t\tthis._result.push(v6);\n\t}\n};\n\nvar SceneParser = class {\n\tconstructor(app2, isTemplate) {\n\t\tthis._app = app2;\n\t\tthis._isTemplate = isTemplate;\n\t}\n\tparse(data2) {\n\t\tconst entities = {};\n\t\tlet parent = null;\n\t\tconst compressed = data2.compressedFormat;\n\t\tif (compressed && !data2.entDecompressed) {\n\t\t\tdata2.entDecompressed = true;\n\t\t\tdata2.entities = new Decompress(data2.entities, compressed).run();\n\t\t}\n\t\tfor (const id14 in data2.entities) {\n\t\t\tconst curData = data2.entities[id14];\n\t\t\tconst curEnt = this._createEntity(curData, compressed);\n\t\t\tentities[id14] = curEnt;\n\t\t\tif (curData.parent === null) {\n\t\t\t\tparent = curEnt;\n\t\t\t}\n\t\t}\n\t\tfor (const id14 in data2.entities) {\n\t\t\tconst curEnt = entities[id14];\n\t\t\tconst children = data2.entities[id14].children;\n\t\t\tconst len = children.length;\n\t\t\tfor (let i2 = 0; i2 < len; i2++) {\n\t\t\t\tconst childEnt = entities[children[i2]];\n\t\t\t\tif (childEnt) {\n\t\t\t\t\tcurEnt.addChild(childEnt);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis._openComponentData(parent, data2.entities);\n\t\treturn parent;\n\t}\n\t_createEntity(data2, compressed) {\n\t\tconst entity = new Entity(data2.name, this._app);\n\t\tentity.guid = data2.resource_id;\n\t\tthis._setPosRotScale(entity, data2, compressed);\n\t\tentity._enabled = data2.enabled ?? true;\n\t\tif (this._isTemplate) {\n\t\t\tentity._template = true;\n\t\t} else {\n\t\t\tentity._enabledInHierarchy = entity._enabled;\n\t\t}\n\t\tentity.template = data2.template;\n\t\tif (data2.tags) {\n\t\t\tfor (let i2 = 0; i2 < data2.tags.length; i2++) {\n\t\t\t\tentity.tags.add(data2.tags[i2]);\n\t\t\t}\n\t\t}\n\t\treturn entity;\n\t}\n\t_setPosRotScale(entity, data2, compressed) {\n\t\tif (compressed) {\n\t\t\tCompressUtils.setCompressedPRS(entity, data2, compressed);\n\t\t} else {\n\t\t\tconst p = data2.position;\n\t\t\tconst r = data2.rotation;\n\t\t\tconst s2 = data2.scale;\n\t\t\tentity.setLocalPosition(p[0], p[1], p[2]);\n\t\t\tentity.setLocalEulerAngles(r[0], r[1], r[2]);\n\t\t\tentity.setLocalScale(s2[0], s2[1], s2[2]);\n\t\t}\n\t}\n\t_openComponentData(entity, entities) {\n\t\tconst systemsList = this._app.systems.list;\n\t\tlet len = systemsList.length;\n\t\tconst entityData = entities[entity.guid];\n\t\tfor (let i2 = 0; i2 < len; i2++) {\n\t\t\tconst system = systemsList[i2];\n\t\t\tconst componentData = entityData.components[system.id];\n\t\t\tif (componentData) {\n\t\t\t\tsystem.addComponent(entity, componentData);\n\t\t\t}\n\t\t}\n\t\tlen = entityData.children.length;\n\t\tconst children = entity._children;\n\t\tfor (let i2 = 0; i2 < len; i2++) {\n\t\t\tif (children[i2]) {\n\t\t\t\tchildren[i2] = this._openComponentData(children[i2], entities);\n\t\t\t} else {\n\t\t\t}\n\t\t}\n\t\treturn entity;\n\t}\n};\n\nvar SceneUtils = class {\n\tstatic load(url, maxRetries, callback) {\n\t\tif (typeof url === \"string\") {\n\t\t\turl = {\n\t\t\t\tload: url,\n\t\t\t\toriginal: url\n\t\t\t};\n\t\t}\n\t\thttp.get(url.load, {\n\t\t\tretry: maxRetries > 0,\n\t\t\tmaxRetries\n\t\t}, (err2, response) => {\n\t\t\tif (!err2) {\n\t\t\t\tcallback(err2, response);\n\t\t\t} else {\n\t\t\t\tlet errMsg = `Error while loading scene JSON ${url.original}`;\n\t\t\t\tif (err2.message) {\n\t\t\t\t\terrMsg += `: ${err2.message}`;\n\t\t\t\t\tif (err2.stack) {\n\t\t\t\t\t\terrMsg += `\n${err2.stack}`;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\terrMsg += `: ${err2}`;\n\t\t\t\t}\n\t\t\t\tcallback(errMsg);\n\t\t\t}\n\t\t});\n\t}\n};\n\nvar HierarchyHandler = class extends ResourceHandler {\n\tconstructor(app2) {\n\t\tsuper(app2, \"hierarchy\");\n\t}\n\tload(url, callback) {\n\t\tSceneUtils.load(url, this.maxRetries, callback);\n\t}\n\topen(url, data2) {\n\t\tthis._app.systems.script.preloading = true;\n\t\tconst parser = new SceneParser(this._app, false);\n\t\tconst parent = parser.parse(data2);\n\t\tthis._app.systems.script.preloading = false;\n\t\treturn parent;\n\t}\n};\n\nvar HtmlHandler = class extends ResourceHandler {\n\tdecoder = null;\n\tconstructor(app2) {\n\t\tsuper(app2, \"html\");\n\t\tthis.addParser(new TextParser());\n\t}\n\topenBinary(data2) {\n\t\tthis.decoder ?? (this.decoder = new TextDecoder(\"utf-8\"));\n\t\treturn this.decoder.decode(data2);\n\t}\n};\n\nvar JsonParser = class {\n\tcanParse() {\n\t\treturn true;\n\t}\n\tload(url, callback, asset) {\n\t\tconst original = typeof url === \"string\" ? url : url.original;\n\t\tthis.handler.fetch(url, Http.ResponseType.JSON, (err2, response) => {\n\t\t\tif (err2) {\n\t\t\t\tcallback(`Error loading JSON resource: ${original} [${err2}]`);\n\t\t\t} else {\n\t\t\t\tcallback(null, response);\n\t\t\t}\n\t\t}, asset);\n\t}\n};\n\nvar JsonHandler = class extends ResourceHandler {\n\tdecoder = null;\n\tconstructor(app2) {\n\t\tsuper(app2, \"json\");\n\t\tthis.addParser(new JsonParser());\n\t}\n\topenBinary(data2) {\n\t\tthis.decoder ?? (this.decoder = new TextDecoder(\"utf-8\"));\n\t\treturn JSON.parse(this.decoder.decode(data2));\n\t}\n};\n\nvar StandardMaterialValidator = class {\n\tconstructor() {\n\t\tthis.removeInvalid = true;\n\t\tthis.valid = true;\n\t\tthis.enumValidators = {\n\t\t\toccludeSpecular: this._createEnumValidator([\n\t\t\t\tSPECOCC_NONE,\n\t\t\t\tSPECOCC_AO,\n\t\t\t\tSPECOCC_GLOSSDEPENDENT\n\t\t\t]),\n\t\t\tcull: this._createEnumValidator([\n\t\t\t\tCULLFACE_NONE,\n\t\t\t\tCULLFACE_BACK,\n\t\t\t\tCULLFACE_FRONT,\n\t\t\t\tCULLFACE_FRONTANDBACK\n\t\t\t]),\n\t\t\tblendType: this._createEnumValidator([\n\t\t\t\tBLEND_SUBTRACTIVE,\n\t\t\t\tBLEND_ADDITIVE,\n\t\t\t\tBLEND_NORMAL,\n\t\t\t\tBLEND_NONE,\n\t\t\t\tBLEND_PREMULTIPLIED,\n\t\t\t\tBLEND_MULTIPLICATIVE,\n\t\t\t\tBLEND_ADDITIVEALPHA,\n\t\t\t\tBLEND_MULTIPLICATIVE2X,\n\t\t\t\tBLEND_SCREEN,\n\t\t\t\tBLEND_MIN,\n\t\t\t\tBLEND_MAX\n\t\t\t]),\n\t\t\tdepthFunc: this._createEnumValidator([\n\t\t\t\tFUNC_NEVER,\n\t\t\t\tFUNC_LESS,\n\t\t\t\tFUNC_EQUAL,\n\t\t\t\tFUNC_LESSEQUAL,\n\t\t\t\tFUNC_GREATER,\n\t\t\t\tFUNC_NOTEQUAL,\n\t\t\t\tFUNC_GREATEREQUAL,\n\t\t\t\tFUNC_ALWAYS\n\t\t\t])\n\t\t};\n\t}\n\tsetInvalid(key, data2) {\n\t\tthis.valid = false;\n\t\tif (this.removeInvalid) {\n\t\t\tdelete data2[key];\n\t\t}\n\t}\n\tvalidate(data2) {\n\t\tconst TYPES = standardMaterialParameterTypes;\n\t\tconst REMOVED = standardMaterialRemovedParameters;\n\t\tconst pathMapping = data2.mappingFormat === \"path\";\n\t\tfor (const key in data2) {\n\t\t\tconst type = TYPES[key];\n\t\t\tif (!type) {\n\t\t\t\tif (REMOVED[key]) {\n\t\t\t\t\tdelete data2[key];\n\t\t\t\t} else {\n\t\t\t\t\tthis.valid = false;\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (type.startsWith(\"enum\")) {\n\t\t\t\tconst enumType = type.split(\":\")[1];\n\t\t\t\tif (this.enumValidators[enumType]) {\n\t\t\t\t\tif (!this.enumValidators[enumType](data2[key])) {\n\t\t\t\t\t\tthis.setInvalid(key, data2);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (type === \"number\") {\n\t\t\t\tif (typeof data2[key] !== \"number\") {\n\t\t\t\t\tthis.setInvalid(key, data2);\n\t\t\t\t}\n\t\t\t} else if (type === \"boolean\") {\n\t\t\t\tif (typeof data2[key] !== \"boolean\") {\n\t\t\t\t\tthis.setInvalid(key, data2);\n\t\t\t\t}\n\t\t\t} else if (type === \"string\") {\n\t\t\t\tif (typeof data2[key] !== \"string\") {\n\t\t\t\t\tthis.setInvalid(key, data2);\n\t\t\t\t}\n\t\t\t} else if (type === \"vec2\") {\n\t\t\t\tif (!(data2[key] instanceof Array && data2[key].length === 2)) {\n\t\t\t\t\tthis.setInvalid(key, data2);\n\t\t\t\t}\n\t\t\t} else if (type === \"rgb\") {\n\t\t\t\tif (!(data2[key] instanceof Array && data2[key].length === 3)) {\n\t\t\t\t\tthis.setInvalid(key, data2);\n\t\t\t\t}\n\t\t\t} else if (type === \"texture\") {\n\t\t\t\tif (!pathMapping) {\n\t\t\t\t\tif (!(typeof data2[key] === \"number\" || data2[key] === null)) {\n\t\t\t\t\t\tif (!(data2[key] instanceof Texture)) {\n\t\t\t\t\t\t\tthis.setInvalid(key, data2);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (!(typeof data2[key] === \"string\" || data2[key] === null)) {\n\t\t\t\t\t\tif (!(data2[key] instanceof Texture)) {\n\t\t\t\t\t\t\tthis.setInvalid(key, data2);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (type === \"boundingbox\") {\n\t\t\t\tif (!(data2[key].center && data2[key].center instanceof Array && data2[key].center.length === 3)) {\n\t\t\t\t\tthis.setInvalid(key, data2);\n\t\t\t\t}\n\t\t\t\tif (!(data2[key].halfExtents && data2[key].halfExtents instanceof Array && data2[key].halfExtents.length === 3)) {\n\t\t\t\t\tthis.setInvalid(key, data2);\n\t\t\t\t}\n\t\t\t} else if (type === \"cubemap\") {\n\t\t\t\tif (!(typeof data2[key] === \"number\" || data2[key] === null || data2[key] === void 0)) {\n\t\t\t\t\tif (!(data2[key] instanceof Texture && data2[key].cubemap)) {\n\t\t\t\t\t\tthis.setInvalid(key, data2);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (type === \"chunks\") {\n\t\t\t\tconst chunkNames = Object.keys(data2[key]);\n\t\t\t\tfor (let i2 = 0; i2 < chunkNames.length; i2++) {\n\t\t\t\t\tif (typeof data2[key][chunkNames[i2]] !== \"string\") {\n\t\t\t\t\t\tthis.setInvalid(chunkNames[i2], data2[key]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconsole.error(`Unknown material type: ${type}`);\n\t\t\t}\n\t\t}\n\t\tdata2.validated = true;\n\t\treturn this.valid;\n\t}\n\t_createEnumValidator(values) {\n\t\treturn function(value) {\n\t\t\treturn values.indexOf(value) >= 0;\n\t\t};\n\t}\n};\n\nvar JsonStandardMaterialParser = class {\n\tconstructor() {\n\t\tthis._validator = null;\n\t}\n\tcanParse() {\n\t\treturn true;\n\t}\n\tload(url, callback, asset) {\n\t\tthis.handler.fetch(url, Http.ResponseType.JSON, (err2, response) => {\n\t\t\tif (err2) {\n\t\t\t\tcallback(`Error loading material: ${url.original} [${err2}]`);\n\t\t\t} else {\n\t\t\t\tresponse._engine = true;\n\t\t\t\tcallback(null, response);\n\t\t\t}\n\t\t}, asset);\n\t}\n\topen(url, data2) {\n\t\tconst material = this.parse(data2);\n\t\tif (data2._engine) {\n\t\t\tmaterial._data = data2;\n\t\t\tdelete data2._engine;\n\t\t}\n\t\treturn material;\n\t}\n\tparse(input) {\n\t\tconst migrated = this.migrate(input);\n\t\tconst validated = this._validate(migrated);\n\t\tconst material = new StandardMaterial();\n\t\tthis.initialize(material, validated);\n\t\treturn material;\n\t}\n\tinitialize(material, data2) {\n\t\tif (!data2.validated) {\n\t\t\tdata2 = this._validate(data2);\n\t\t}\n\t\tif (data2.chunks) {\n\t\t\tif (data2.chunks && Object.keys(data2.chunks).length > 0) {\n\t\t\t\tconst dstMap = material.shaderChunks.glsl;\n\t\t\t\tObject.entries(data2.chunks).forEach(([key, value]) => dstMap.set(key, value));\n\t\t\t}\n\t\t}\n\t\tfor (const key in data2) {\n\t\t\tconst type = standardMaterialParameterTypes[key];\n\t\t\tconst value = data2[key];\n\t\t\tif (type === \"vec2\") {\n\t\t\t\tmaterial[key] = new Vec2(value[0], value[1]);\n\t\t\t} else if (type === \"rgb\") {\n\t\t\t\tmaterial[key] = new Color(value[0], value[1], value[2]);\n\t\t\t} else if (type === \"texture\") {\n\t\t\t\tif (value instanceof Texture) {\n\t\t\t\t\tmaterial[key] = value;\n\t\t\t\t} else if (!(material[key] instanceof Texture && typeof value === \"number\" && value > 0)) {\n\t\t\t\t\tmaterial[key] = null;\n\t\t\t\t}\n\t\t\t} else if (type === \"cubemap\") {\n\t\t\t\tif (value instanceof Texture) {\n\t\t\t\t\tmaterial[key] = value;\n\t\t\t\t} else if (!(material[key] instanceof Texture && typeof value === \"number\" && value > 0)) {\n\t\t\t\t\tmaterial[key] = null;\n\t\t\t\t}\n\t\t\t\tif (key === \"cubeMap\" && !value) {\n\t\t\t\t\tmaterial.prefilteredCubemaps = null;\n\t\t\t\t}\n\t\t\t} else if (type === \"boundingbox\") {\n\t\t\t\tconst center2 = new Vec3(value.center[0], value.center[1], value.center[2]);\n\t\t\t\tconst halfExtents = new Vec3(value.halfExtents[0], value.halfExtents[1], value.halfExtents[2]);\n\t\t\t\tmaterial[key] = new BoundingBox(center2, halfExtents);\n\t\t\t} else {\n\t\t\t\tmaterial[key] = data2[key];\n\t\t\t}\n\t\t}\n\t\tmaterial.update();\n\t}\n\t// convert any properties that are out of date\n\t// or from old versions into current version\n\tmigrate(data2) {\n\t\tif (data2.shader) delete data2.shader;\n\t\tif (data2.mapping_format) {\n\t\t\tdata2.mappingFormat = data2.mapping_format;\n\t\t\tdelete data2.mapping_format;\n\t\t}\n\t\tlet i2;\n\t\tconst RENAMED_PROPERTIES = [\n\t\t\t[\"bumpMapFactor\", \"bumpiness\"],\n\t\t\t[\"aoUvSet\", \"aoMapUv\"],\n\t\t\t[\"aoMapVertexColor\", \"aoVertexColor\"],\n\t\t\t[\"diffuseMapVertexColor\", \"diffuseVertexColor\"],\n\t\t\t[\"emissiveMapVertexColor\", \"emissiveVertexColor\"],\n\t\t\t[\"specularMapVertexColor\", \"specularVertexColor\"],\n\t\t\t[\"metalnessMapVertexColor\", \"metalnessVertexColor\"],\n\t\t\t[\"opacityMapVertexColor\", \"opacityVertexColor\"],\n\t\t\t[\"glossMapVertexColor\", \"glossVertexColor\"],\n\t\t\t[\"lightMapVertexColor\", \"lightVertexColor\"],\n\t\t\t[\"metalnessMapTint\", \"metalnessTint\"],\n\t\t\t[\"clearCoatGlossiness\", \"clearCoatGloss\"]\n\t\t];\n\t\tfor (i2 = 0; i2 < RENAMED_PROPERTIES.length; i2++) {\n\t\t\tconst _old = RENAMED_PROPERTIES[i2][0];\n\t\t\tconst _new = RENAMED_PROPERTIES[i2][1];\n\t\t\tif (data2[_old] !== void 0) {\n\t\t\t\tif (data2[_new] === void 0) {\n\t\t\t\t\tdata2[_new] = data2[_old];\n\t\t\t\t}\n\t\t\t\tdelete data2[_old];\n\t\t\t}\n\t\t}\n\t\tconst DEPRECATED_PROPERTIES = [\n\t\t\t\"fresnelFactor\",\n\t\t\t\"shadowSampleType\"\n\t\t];\n\t\tfor (i2 = 0; i2 < DEPRECATED_PROPERTIES.length; i2++) {\n\t\t\tconst name = DEPRECATED_PROPERTIES[i2];\n\t\t\tif (data2.hasOwnProperty(name)) {\n\t\t\t\tdelete data2[name];\n\t\t\t}\n\t\t}\n\t\treturn data2;\n\t}\n\t// check for invalid properties\n\t_validate(data2) {\n\t\tif (!data2.validated) {\n\t\t\tif (!this._validator) {\n\t\t\t\tthis._validator = new StandardMaterialValidator();\n\t\t\t}\n\t\t\tthis._validator.validate(data2);\n\t\t}\n\t\treturn data2;\n\t}\n};\n\nvar PLACEHOLDER_MAP = {\n\taoMap: \"white\",\n\taoDetailMap: \"white\",\n\tdiffuseMap: \"gray\",\n\tdiffuseDetailMap: \"gray\",\n\tspecularMap: \"gray\",\n\tspecularityFactorMap: \"white\",\n\tmetalnessMap: \"black\",\n\tglossMap: \"gray\",\n\tsheenMap: \"black\",\n\tsheenGlossMap: \"gray\",\n\tclearCoatMap: \"black\",\n\tclearCoatGlossMap: \"gray\",\n\tclearCoatNormalMap: \"normal\",\n\trefractionMap: \"white\",\n\temissiveMap: \"gray\",\n\tnormalMap: \"normal\",\n\tnormalDetailMap: \"normal\",\n\theightMap: \"gray\",\n\topacityMap: \"gray\",\n\tsphereMap: \"gray\",\n\tlightMap: \"white\",\n\tthicknessMap: \"black\",\n\tiridescenceMap: \"black\",\n\tiridescenceThicknessMap: \"black\",\n\tenvAtlas: \"black\",\n\tanisotropyMap: \"black\"\n};\nvar MaterialHandler = class extends ResourceHandler {\n\tconstructor(app2) {\n\t\tsuper(app2, \"material\");\n\t\tthis._assets = app2.assets;\n\t\tthis._device = app2.graphicsDevice;\n\t\tthis._parser = new JsonStandardMaterialParser();\n\t\tthis.addParser(this._parser);\n\t}\n\tpatch(asset, assets) {\n\t\tif (!(asset.resource instanceof StandardMaterial)) {\n\t\t\treturn;\n\t\t}\n\t\tif (asset.resource._data) {\n\t\t\tasset._data = asset.resource._data;\n\t\t\tdelete asset.resource._data;\n\t\t}\n\t\tasset.data.name = asset.name;\n\t\tasset.resource.name = asset.name;\n\t\tthis._bindAndAssignAssets(asset, assets);\n\t\tasset.off(\"unload\", this._onAssetUnload, this);\n\t\tasset.on(\"unload\", this._onAssetUnload, this);\n\t}\n\t_onAssetUnload(asset) {\n\t\tdelete asset.data.parameters;\n\t\tdelete asset.data.chunks;\n\t\tdelete asset.data.name;\n\t}\n\t_assignTexture(parameterName, materialAsset, texture) {\n\t\tmaterialAsset.resource[parameterName] = texture;\n\t}\n\t// returns the correct placeholder texture for the texture parameter\n\t_getPlaceholderTexture(parameterName) {\n\t\tconst placeholder = PLACEHOLDER_MAP[parameterName];\n\t\treturn getBuiltInTexture(this._device, placeholder);\n\t}\n\t// assign a placeholder texture while waiting for one to load\n\t_assignPlaceholderTexture(parameterName, materialAsset) {\n\t\tmaterialAsset.resource[parameterName] = this._getPlaceholderTexture(parameterName);\n\t}\n\t_onTextureLoad(parameterName, materialAsset, textureAsset) {\n\t\tthis._assignTexture(parameterName, materialAsset, textureAsset.resource);\n\t\tmaterialAsset.resource.update();\n\t}\n\t_onTextureAdd(parameterName, materialAsset, textureAsset) {\n\t\tthis._assets.load(textureAsset);\n\t}\n\t_onTextureRemoveOrUnload(parameterName, materialAsset, textureAsset) {\n\t\tconst material = materialAsset.resource;\n\t\tif (material) {\n\t\t\tif (materialAsset.resource[parameterName] === textureAsset.resource) {\n\t\t\t\tthis._assignPlaceholderTexture(parameterName, materialAsset);\n\t\t\t\tmaterial.update();\n\t\t\t}\n\t\t}\n\t}\n\t_assignCubemap(parameterName, materialAsset, textures) {\n\t\tmaterialAsset.resource[parameterName] = textures[0];\n\t\tif (parameterName === \"cubeMap\") {\n\t\t\tconst prefiltered = textures.slice(1);\n\t\t\tif (prefiltered.every((t) => t)) {\n\t\t\t\tmaterialAsset.resource.prefilteredCubemaps = prefiltered;\n\t\t\t} else if (prefiltered[0]) {\n\t\t\t\tmaterialAsset.resource.envAtlas = prefiltered[0];\n\t\t\t}\n\t\t}\n\t}\n\t_onCubemapLoad(parameterName, materialAsset, cubemapAsset) {\n\t\tthis._assignCubemap(parameterName, materialAsset, cubemapAsset.resources);\n\t\tthis._parser.initialize(materialAsset.resource, materialAsset.data);\n\t}\n\t_onCubemapAdd(parameterName, materialAsset, cubemapAsset) {\n\t\tthis._assets.load(cubemapAsset);\n\t}\n\t_onCubemapRemoveOrUnload(parameterName, materialAsset, cubemapAsset) {\n\t\tconst material = materialAsset.resource;\n\t\tif (materialAsset.data.prefilteredCubeMap128 === cubemapAsset.resources[1]) {\n\t\t\tthis._assignCubemap(parameterName, materialAsset, [null, null, null, null, null, null, null]);\n\t\t\tmaterial.update();\n\t\t}\n\t}\n\t_bindAndAssignAssets(materialAsset, assets) {\n\t\tconst data2 = this._parser.migrate(materialAsset.data);\n\t\tconst material = materialAsset.resource;\n\t\tconst pathMapping = data2.mappingFormat === \"path\";\n\t\tconst TEXTURES = standardMaterialTextureParameters;\n\t\tlet i2, name, assetReference;\n\t\tfor (i2 = 0; i2 < TEXTURES.length; i2++) {\n\t\t\tname = TEXTURES[i2];\n\t\t\tassetReference = material._assetReferences[name];\n\t\t\tconst dataAssetId = data2[name];\n\t\t\tconst materialTexture = material[name];\n\t\t\tconst isPlaceHolderTexture = materialTexture === this._getPlaceholderTexture(name);\n\t\t\tconst dataValidated = data2.validated;\n\t\t\tif (dataAssetId && (!materialTexture || !dataValidated || isPlaceHolderTexture)) {\n\t\t\t\tif (!assetReference) {\n\t\t\t\t\tassetReference = new AssetReference(name, materialAsset, assets, {\n\t\t\t\t\t\tload: this._onTextureLoad,\n\t\t\t\t\t\tadd: this._onTextureAdd,\n\t\t\t\t\t\tremove: this._onTextureRemoveOrUnload,\n\t\t\t\t\t\tunload: this._onTextureRemoveOrUnload\n\t\t\t\t\t}, this);\n\t\t\t\t\tmaterial._assetReferences[name] = assetReference;\n\t\t\t\t}\n\t\t\t\tif (pathMapping) {\n\t\t\t\t\tassetReference.url = materialAsset.getAbsoluteUrl(dataAssetId);\n\t\t\t\t} else {\n\t\t\t\t\tassetReference.id = dataAssetId;\n\t\t\t\t}\n\t\t\t\tif (assetReference.asset) {\n\t\t\t\t\tif (assetReference.asset.resource) {\n\t\t\t\t\t\tthis._assignTexture(name, materialAsset, assetReference.asset.resource);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis._assignPlaceholderTexture(name, materialAsset);\n\t\t\t\t\t}\n\t\t\t\t\tassets.load(assetReference.asset);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (assetReference) {\n\t\t\t\t\tif (pathMapping) {\n\t\t\t\t\t\tassetReference.url = null;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tassetReference.id = null;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tconst CUBEMAPS = standardMaterialCubemapParameters;\n\t\tfor (i2 = 0; i2 < CUBEMAPS.length; i2++) {\n\t\t\tname = CUBEMAPS[i2];\n\t\t\tassetReference = material._assetReferences[name];\n\t\t\tif (data2[name] && !materialAsset.data.prefilteredCubeMap128) {\n\t\t\t\tif (!assetReference) {\n\t\t\t\t\tassetReference = new AssetReference(name, materialAsset, assets, {\n\t\t\t\t\t\tload: this._onCubemapLoad,\n\t\t\t\t\t\tadd: this._onCubemapAdd,\n\t\t\t\t\t\tremove: this._onCubemapRemoveOrUnload,\n\t\t\t\t\t\tunload: this._onCubemapRemoveOrUnload\n\t\t\t\t\t}, this);\n\t\t\t\t\tmaterial._assetReferences[name] = assetReference;\n\t\t\t\t}\n\t\t\t\tif (pathMapping) {\n\t\t\t\t\tassetReference.url = data2[name];\n\t\t\t\t} else {\n\t\t\t\t\tassetReference.id = data2[name];\n\t\t\t\t}\n\t\t\t\tif (assetReference.asset) {\n\t\t\t\t\tif (assetReference.asset.loaded) {\n\t\t\t\t\t\tthis._assignCubemap(name, materialAsset, assetReference.asset.resources);\n\t\t\t\t\t}\n\t\t\t\t\tassets.load(assetReference.asset);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis._parser.initialize(material, data2);\n\t}\n};\n\nvar GlbModelParser = class {\n\tconstructor(modelHandler) {\n\t\tthis._device = modelHandler.device;\n\t\tthis._defaultMaterial = modelHandler.defaultMaterial;\n\t\tthis._assets = modelHandler.assets;\n\t}\n\tcanParse(context) {\n\t\treturn context.ext === \"glb\";\n\t}\n\tload(url, callback, asset) {\n\t\tthis.handler.fetch(url, Http.ResponseType.ARRAY_BUFFER, (err2, data2) => {\n\t\t\tif (err2) {\n\t\t\t\tcallback(err2);\n\t\t\t} else {\n\t\t\t\tthis.parse(data2, callback, asset);\n\t\t\t}\n\t\t}, asset);\n\t}\n\tparse(data2, callback, asset) {\n\t\tGlbParser.parse(\"filename.glb\", \"\", data2, this._device, this._assets, asset?.options ?? {}, (err2, result) => {\n\t\t\tif (err2) {\n\t\t\t\tcallback(err2);\n\t\t\t} else {\n\t\t\t\tconst model = GlbContainerResource.createModel(result, this._defaultMaterial);\n\t\t\t\tresult.destroy();\n\t\t\t\tcallback(null, model);\n\t\t\t}\n\t\t});\n\t}\n};\n\nvar JSON_PRIMITIVE_TYPE = {\n\t\"points\": PRIMITIVE_POINTS,\n\t\"lines\": PRIMITIVE_LINES,\n\t\"lineloop\": PRIMITIVE_LINELOOP,\n\t\"linestrip\": PRIMITIVE_LINESTRIP,\n\t\"triangles\": PRIMITIVE_TRIANGLES,\n\t\"trianglestrip\": PRIMITIVE_TRISTRIP,\n\t\"trianglefan\": PRIMITIVE_TRIFAN\n};\nvar JSON_VERTEX_ELEMENT_TYPE = {\n\t\"int8\": TYPE_INT8,\n\t\"uint8\": TYPE_UINT8,\n\t\"int16\": TYPE_INT16,\n\t\"uint16\": TYPE_UINT16,\n\t\"int32\": TYPE_INT32,\n\t\"uint32\": TYPE_UINT32,\n\t\"float32\": TYPE_FLOAT32\n};\nvar JsonModelParser = class {\n\tconstructor(modelHandler) {\n\t\tthis._device = modelHandler.device;\n\t\tthis._defaultMaterial = modelHandler.defaultMaterial;\n\t}\n\tcanParse(context) {\n\t\treturn context.ext === \"json\";\n\t}\n\tload(url, callback, asset) {\n\t\tthis.handler.fetch(url, Http.ResponseType.JSON, (err2, response) => {\n\t\t\tif (err2) {\n\t\t\t\tcallback(err2);\n\t\t\t} else {\n\t\t\t\tthis.parse(response, callback);\n\t\t\t}\n\t\t}, asset);\n\t}\n\tparse(data2, callback) {\n\t\tconst modelData = data2.model;\n\t\tif (!modelData) {\n\t\t\tcallback(null, null);\n\t\t\treturn;\n\t\t}\n\t\tif (modelData.version <= 1) {\n\t\t\tcallback(\"JsonModelParser#parse: Trying to parse unsupported model format.\");\n\t\t\treturn;\n\t\t}\n\t\tconst nodes = this._parseNodes(data2);\n\t\tconst skins = this._parseSkins(data2, nodes);\n\t\tconst vertexBuffers = this._parseVertexBuffers(data2);\n\t\tconst indices = this._parseIndexBuffers(data2, vertexBuffers);\n\t\tconst morphs = this._parseMorphs(data2, nodes, vertexBuffers);\n\t\tconst meshes = this._parseMeshes(data2, skins.skins, morphs.morphs, vertexBuffers, indices.buffer, indices.data);\n\t\tconst meshInstances = this._parseMeshInstances(data2, nodes, meshes, skins.skins, skins.instances, morphs.morphs, morphs.instances);\n\t\tconst model = new Model();\n\t\tmodel.graph = nodes[0];\n\t\tmodel.meshInstances = meshInstances;\n\t\tmodel.skinInstances = skins.instances;\n\t\tmodel.morphInstances = morphs.instances;\n\t\tmodel.getGraph().syncHierarchy();\n\t\tcallback(null, model);\n\t}\n\t_parseNodes(data2) {\n\t\tconst modelData = data2.model;\n\t\tconst nodes = [];\n\t\tlet i2;\n\t\tfor (i2 = 0; i2 < modelData.nodes.length; i2++) {\n\t\t\tconst nodeData = modelData.nodes[i2];\n\t\t\tconst node = new GraphNode(nodeData.name);\n\t\t\tnode.setLocalPosition(nodeData.position[0], nodeData.position[1], nodeData.position[2]);\n\t\t\tnode.setLocalEulerAngles(nodeData.rotation[0], nodeData.rotation[1], nodeData.rotation[2]);\n\t\t\tnode.setLocalScale(nodeData.scale[0], nodeData.scale[1], nodeData.scale[2]);\n\t\t\tnode.scaleCompensation = !!nodeData.scaleCompensation;\n\t\t\tnodes.push(node);\n\t\t}\n\t\tfor (i2 = 1; i2 < modelData.parents.length; i2++) {\n\t\t\tnodes[modelData.parents[i2]].addChild(nodes[i2]);\n\t\t}\n\t\treturn nodes;\n\t}\n\t_parseSkins(data2, nodes) {\n\t\tconst modelData = data2.model;\n\t\tconst skins = [];\n\t\tconst skinInstances = [];\n\t\tlet i2, j;\n\t\tfor (i2 = 0; i2 < modelData.skins.length; i2++) {\n\t\t\tconst skinData = modelData.skins[i2];\n\t\t\tconst inverseBindMatrices = [];\n\t\t\tfor (j = 0; j < skinData.inverseBindMatrices.length; j++) {\n\t\t\t\tconst ibm = skinData.inverseBindMatrices[j];\n\t\t\t\tinverseBindMatrices[j] = new Mat4().set(ibm);\n\t\t\t}\n\t\t\tconst skin = new Skin(this._device, inverseBindMatrices, skinData.boneNames);\n\t\t\tskins.push(skin);\n\t\t\tconst skinInstance = new SkinInstance(skin);\n\t\t\tconst bones = [];\n\t\t\tfor (j = 0; j < skin.boneNames.length; j++) {\n\t\t\t\tconst boneName = skin.boneNames[j];\n\t\t\t\tconst bone = nodes[0].findByName(boneName);\n\t\t\t\tbones.push(bone);\n\t\t\t}\n\t\t\tskinInstance.bones = bones;\n\t\t\tskinInstances.push(skinInstance);\n\t\t}\n\t\treturn {\n\t\t\tskins,\n\t\t\tinstances: skinInstances\n\t\t};\n\t}\n\t// find number of vertices used by a mesh that is using morph target with index morphIndex\n\t_getMorphVertexCount(modelData, morphIndex, vertexBuffers) {\n\t\tfor (let i2 = 0; i2 < modelData.meshes.length; i2++) {\n\t\t\tconst meshData = modelData.meshes[i2];\n\t\t\tif (meshData.morph === morphIndex) {\n\t\t\t\tconst vertexBuffer = vertexBuffers[meshData.vertices];\n\t\t\t\treturn vertexBuffer.numVertices;\n\t\t\t}\n\t\t}\n\t\treturn void 0;\n\t}\n\t_parseMorphs(data2, nodes, vertexBuffers) {\n\t\tconst modelData = data2.model;\n\t\tconst morphs = [];\n\t\tconst morphInstances = [];\n\t\tlet i2, j, vertexCount;\n\t\tlet targets, morphTarget, morphTargetArray;\n\t\tif (modelData.morphs) {\n\t\t\tconst sparseToFull = function(data3, indices, totalCount) {\n\t\t\t\tconst full = new Float32Array(totalCount * 3);\n\t\t\t\tfor (let s2 = 0; s2 < indices.length; s2++) {\n\t\t\t\t\tconst dstIndex = indices[s2] * 3;\n\t\t\t\t\tfull[dstIndex] = data3[s2 * 3];\n\t\t\t\t\tfull[dstIndex + 1] = data3[s2 * 3 + 1];\n\t\t\t\t\tfull[dstIndex + 2] = data3[s2 * 3 + 2];\n\t\t\t\t}\n\t\t\t\treturn full;\n\t\t\t};\n\t\t\tfor (i2 = 0; i2 < modelData.morphs.length; i2++) {\n\t\t\t\ttargets = modelData.morphs[i2].targets;\n\t\t\t\tmorphTargetArray = [];\n\t\t\t\tvertexCount = this._getMorphVertexCount(modelData, i2, vertexBuffers);\n\t\t\t\tfor (j = 0; j < targets.length; j++) {\n\t\t\t\t\tconst targetAabb = targets[j].aabb;\n\t\t\t\t\tconst min = targetAabb.min;\n\t\t\t\t\tconst max = targetAabb.max;\n\t\t\t\t\tconst aabb3 = new BoundingBox(\n\t\t\t\t\t\tnew Vec3((max[0] + min[0]) * 0.5, (max[1] + min[1]) * 0.5, (max[2] + min[2]) * 0.5),\n\t\t\t\t\t\tnew Vec3((max[0] - min[0]) * 0.5, (max[1] - min[1]) * 0.5, (max[2] - min[2]) * 0.5)\n\t\t\t\t\t);\n\t\t\t\t\tconst indices = targets[j].indices;\n\t\t\t\t\tlet deltaPositions = targets[j].deltaPositions;\n\t\t\t\t\tlet deltaNormals = targets[j].deltaNormals;\n\t\t\t\t\tif (indices) {\n\t\t\t\t\t\tdeltaPositions = sparseToFull(deltaPositions, indices, vertexCount);\n\t\t\t\t\t\tdeltaNormals = sparseToFull(deltaNormals, indices, vertexCount);\n\t\t\t\t\t}\n\t\t\t\t\tmorphTarget = new MorphTarget({\n\t\t\t\t\t\tdeltaPositions,\n\t\t\t\t\t\tdeltaNormals,\n\t\t\t\t\t\tname: targets[j].name,\n\t\t\t\t\t\taabb: aabb3\n\t\t\t\t\t});\n\t\t\t\t\tmorphTargetArray.push(morphTarget);\n\t\t\t\t}\n\t\t\t\tconst morph = new Morph(morphTargetArray, this._device);\n\t\t\t\tmorphs.push(morph);\n\t\t\t\tconst morphInstance = new MorphInstance(morph);\n\t\t\t\tmorphInstances.push(morphInstance);\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\tmorphs,\n\t\t\tinstances: morphInstances\n\t\t};\n\t}\n\t_parseVertexBuffers(data2) {\n\t\tconst modelData = data2.model;\n\t\tconst vertexBuffers = [];\n\t\tconst attributeMap = {\n\t\t\tposition: SEMANTIC_POSITION,\n\t\t\tnormal: SEMANTIC_NORMAL,\n\t\t\ttangent: SEMANTIC_TANGENT,\n\t\t\tblendWeight: SEMANTIC_BLENDWEIGHT,\n\t\t\tblendIndices: SEMANTIC_BLENDINDICES,\n\t\t\tcolor: SEMANTIC_COLOR,\n\t\t\ttexCoord0: SEMANTIC_TEXCOORD0,\n\t\t\ttexCoord1: SEMANTIC_TEXCOORD1,\n\t\t\ttexCoord2: SEMANTIC_TEXCOORD2,\n\t\t\ttexCoord3: SEMANTIC_TEXCOORD3,\n\t\t\ttexCoord4: SEMANTIC_TEXCOORD4,\n\t\t\ttexCoord5: SEMANTIC_TEXCOORD5,\n\t\t\ttexCoord6: SEMANTIC_TEXCOORD6,\n\t\t\ttexCoord7: SEMANTIC_TEXCOORD7\n\t\t};\n\t\tfor (let i2 = 0; i2 < modelData.vertices.length; i2++) {\n\t\t\tconst vertexData = modelData.vertices[i2];\n\t\t\tconst formatDesc = [];\n\t\t\tfor (const attributeName in vertexData) {\n\t\t\t\tconst attribute = vertexData[attributeName];\n\t\t\t\tformatDesc.push({\n\t\t\t\t\tsemantic: attributeMap[attributeName],\n\t\t\t\t\tcomponents: attribute.components,\n\t\t\t\t\ttype: JSON_VERTEX_ELEMENT_TYPE[attribute.type],\n\t\t\t\t\tnormalize: attributeMap[attributeName] === SEMANTIC_COLOR\n\t\t\t\t});\n\t\t\t}\n\t\t\tconst vertexFormat = new VertexFormat(this._device, formatDesc);\n\t\t\tconst numVertices = vertexData.position.data.length / vertexData.position.components;\n\t\t\tconst vertexBuffer = new VertexBuffer(this._device, vertexFormat, numVertices);\n\t\t\tconst iterator = new VertexIterator(vertexBuffer);\n\t\t\tfor (let j = 0; j < numVertices; j++) {\n\t\t\t\tfor (const attributeName in vertexData) {\n\t\t\t\t\tconst attribute = vertexData[attributeName];\n\t\t\t\t\tswitch (attribute.components) {\n\t\t\t\t\t\tcase 1:\n\t\t\t\t\t\t\titerator.element[attributeMap[attributeName]].set(attribute.data[j]);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 2:\n\t\t\t\t\t\t\titerator.element[attributeMap[attributeName]].set(attribute.data[j * 2], 1 - attribute.data[j * 2 + 1]);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 3:\n\t\t\t\t\t\t\titerator.element[attributeMap[attributeName]].set(attribute.data[j * 3], attribute.data[j * 3 + 1], attribute.data[j * 3 + 2]);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 4:\n\t\t\t\t\t\t\titerator.element[attributeMap[attributeName]].set(attribute.data[j * 4], attribute.data[j * 4 + 1], attribute.data[j * 4 + 2], attribute.data[j * 4 + 3]);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\titerator.next();\n\t\t\t}\n\t\t\titerator.end();\n\t\t\tvertexBuffers.push(vertexBuffer);\n\t\t}\n\t\treturn vertexBuffers;\n\t}\n\t_parseIndexBuffers(data2, vertexBuffers) {\n\t\tconst modelData = data2.model;\n\t\tlet indexBuffer = null;\n\t\tlet indexData = null;\n\t\tlet i2;\n\t\tlet numIndices = 0;\n\t\tfor (i2 = 0; i2 < modelData.meshes.length; i2++) {\n\t\t\tconst meshData = modelData.meshes[i2];\n\t\t\tif (meshData.indices !== void 0) {\n\t\t\t\tnumIndices += meshData.indices.length;\n\t\t\t}\n\t\t}\n\t\tlet maxVerts = 0;\n\t\tfor (i2 = 0; i2 < vertexBuffers.length; i2++) {\n\t\t\tmaxVerts = Math.max(maxVerts, vertexBuffers[i2].numVertices);\n\t\t}\n\t\tif (numIndices > 0) {\n\t\t\tif (maxVerts > 65535) {\n\t\t\t\tindexBuffer = new IndexBuffer(this._device, INDEXFORMAT_UINT32, numIndices);\n\t\t\t\tindexData = new Uint32Array(indexBuffer.lock());\n\t\t\t} else {\n\t\t\t\tindexBuffer = new IndexBuffer(this._device, INDEXFORMAT_UINT16, numIndices);\n\t\t\t\tindexData = new Uint16Array(indexBuffer.lock());\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\tbuffer: indexBuffer,\n\t\t\tdata: indexData\n\t\t};\n\t}\n\t_parseMeshes(data2, skins, morphs, vertexBuffers, indexBuffer, indexData) {\n\t\tconst modelData = data2.model;\n\t\tconst meshes = [];\n\t\tlet indexBase = 0;\n\t\tfor (let i2 = 0; i2 < modelData.meshes.length; i2++) {\n\t\t\tconst meshData = modelData.meshes[i2];\n\t\t\tconst meshAabb = meshData.aabb;\n\t\t\tconst min = meshAabb.min;\n\t\t\tconst max = meshAabb.max;\n\t\t\tconst aabb3 = new BoundingBox(\n\t\t\t\tnew Vec3((max[0] + min[0]) * 0.5, (max[1] + min[1]) * 0.5, (max[2] + min[2]) * 0.5),\n\t\t\t\tnew Vec3((max[0] - min[0]) * 0.5, (max[1] - min[1]) * 0.5, (max[2] - min[2]) * 0.5)\n\t\t\t);\n\t\t\tconst indexed = meshData.indices !== void 0;\n\t\t\tconst mesh = new Mesh(this._device);\n\t\t\tmesh.vertexBuffer = vertexBuffers[meshData.vertices];\n\t\t\tmesh.indexBuffer[0] = indexed ? indexBuffer : null;\n\t\t\tmesh.primitive[0].type = JSON_PRIMITIVE_TYPE[meshData.type];\n\t\t\tmesh.primitive[0].base = indexed ? meshData.base + indexBase : meshData.base;\n\t\t\tmesh.primitive[0].count = meshData.count;\n\t\t\tmesh.primitive[0].indexed = indexed;\n\t\t\tmesh.skin = meshData.skin !== void 0 ? skins[meshData.skin] : null;\n\t\t\tmesh.morph = meshData.morph !== void 0 ? morphs[meshData.morph] : null;\n\t\t\tmesh.aabb = aabb3;\n\t\t\tif (indexed) {\n\t\t\t\tindexData.set(meshData.indices, indexBase);\n\t\t\t\tindexBase += meshData.indices.length;\n\t\t\t}\n\t\t\tmeshes.push(mesh);\n\t\t}\n\t\tif (indexBuffer !== null) {\n\t\t\tindexBuffer.unlock();\n\t\t}\n\t\treturn meshes;\n\t}\n\t_parseMeshInstances(data2, nodes, meshes, skins, skinInstances, morphs, morphInstances) {\n\t\tconst modelData = data2.model;\n\t\tconst meshInstances = [];\n\t\tlet i2;\n\t\tfor (i2 = 0; i2 < modelData.meshInstances.length; i2++) {\n\t\t\tconst meshInstanceData = modelData.meshInstances[i2];\n\t\t\tconst node = nodes[meshInstanceData.node];\n\t\t\tconst mesh = meshes[meshInstanceData.mesh];\n\t\t\tconst meshInstance = new MeshInstance(mesh, this._defaultMaterial, node);\n\t\t\tif (mesh.skin) {\n\t\t\t\tconst skinIndex = skins.indexOf(mesh.skin);\n\t\t\t\tmeshInstance.skinInstance = skinInstances[skinIndex];\n\t\t\t}\n\t\t\tif (mesh.morph) {\n\t\t\t\tconst morphIndex = morphs.indexOf(mesh.morph);\n\t\t\t\tmeshInstance.morphInstance = morphInstances[morphIndex];\n\t\t\t}\n\t\t\tmeshInstances.push(meshInstance);\n\t\t}\n\t\treturn meshInstances;\n\t}\n};\n\nvar ModelHandler = class extends ResourceHandler {\n\tconstructor(app2) {\n\t\tsuper(app2, \"model\");\n\t\tthis.device = app2.graphicsDevice;\n\t\tthis.assets = app2.assets;\n\t\tthis.defaultMaterial = getDefaultMaterial(this.device);\n\t\tthis.addParser(new JsonModelParser(this));\n\t\tthis.addParser(new GlbModelParser(this));\n\t}\n\tpatch(asset, assets) {\n\t\tif (!asset.resource) {\n\t\t\treturn;\n\t\t}\n\t\tconst data2 = asset.data;\n\t\tconst self2 = this;\n\t\tasset.resource.meshInstances.forEach((meshInstance, i2) => {\n\t\t\tif (data2.mapping) {\n\t\t\t\tconst handleMaterial = function(asset2) {\n\t\t\t\t\tif (asset2.resource) {\n\t\t\t\t\t\tmeshInstance.material = asset2.resource;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tasset2.once(\"load\", handleMaterial);\n\t\t\t\t\t\tassets.load(asset2);\n\t\t\t\t\t}\n\t\t\t\t\tasset2.once(\"remove\", (asset3) => {\n\t\t\t\t\t\tif (meshInstance.material === asset3.resource) {\n\t\t\t\t\t\t\tmeshInstance.material = self2.defaultMaterial;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t};\n\t\t\t\tif (!data2.mapping[i2]) {\n\t\t\t\t\tmeshInstance.material = self2.defaultMaterial;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst id14 = data2.mapping[i2].material;\n\t\t\t\tconst url = data2.mapping[i2].path;\n\t\t\t\tlet material;\n\t\t\t\tif (id14 !== void 0) {\n\t\t\t\t\tif (!id14) {\n\t\t\t\t\t\tmeshInstance.material = self2.defaultMaterial;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmaterial = assets.get(id14);\n\t\t\t\t\t\tif (material) {\n\t\t\t\t\t\t\thandleMaterial(material);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tassets.once(`add:${id14}`, handleMaterial);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if (url) {\n\t\t\t\t\tconst path2 = asset.getAbsoluteUrl(data2.mapping[i2].path);\n\t\t\t\t\tmaterial = assets.getByUrl(path2);\n\t\t\t\t\tif (material) {\n\t\t\t\t\t\thandleMaterial(material);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tassets.once(`add:url:${path2}`, handleMaterial);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n};\n\nvar SceneHandler = class extends ResourceHandler {\n\tconstructor(app2) {\n\t\tsuper(app2, \"scene\");\n\t}\n\tload(url, callback) {\n\t\tSceneUtils.load(url, this.maxRetries, callback);\n\t}\n\topen(url, data2) {\n\t\tthis._app.systems.script.preloading = true;\n\t\tconst parser = new SceneParser(this._app, false);\n\t\tconst parent = parser.parse(data2);\n\t\tconst scene = this._app.scene;\n\t\tscene.root = parent;\n\t\tthis._app.applySceneSettings(data2.settings);\n\t\tthis._app.systems.script.preloading = false;\n\t\treturn scene;\n\t}\n};\n\nvar ScriptTypes = class _ScriptTypes {\n\tstatic _types = [];\n\tstatic push(Type) {\n\t\t_ScriptTypes._types.push(Type);\n\t}\n};\n\nfunction getReservedScriptNames() {\n\treturn reservedScriptNames;\n}\nfunction createScript(name, app2) {\n\tif (reservedScriptNames.has(name)) {\n\t\tthrow new Error(`Script name '${name}' is reserved, please rename the script`);\n\t}\n\tconst scriptType = function(args) {\n\t\tEventHandler.prototype.initEventHandler.call(this);\n\t\tScriptType.prototype.initScriptType.call(this, args);\n\t};\n\tscriptType.prototype = Object.create(ScriptType.prototype);\n\tscriptType.prototype.constructor = scriptType;\n\tscriptType.extend = ScriptType.extend;\n\tscriptType.attributes = new ScriptAttributes(scriptType);\n\tregisterScript(scriptType, name, app2);\n\treturn scriptType;\n}\nvar reservedAttributes = {};\nScriptAttributes.reservedNames.forEach((value, value2, set) => {\n\treservedAttributes[value] = 1;\n});\ncreateScript.reservedAttributes = reservedAttributes;\nfunction registerScript(script2, name, app2) {\n\tif (typeof script2 !== \"function\") {\n\t\tthrow new Error(`script class: '${script2}' must be a constructor function (i.e. class).`);\n\t}\n\tif (!(script2.prototype instanceof Script)) {\n\t\tthrow new Error(`script class: '${ScriptType.__getScriptName(script2)}' does not extend Script.`);\n\t}\n\tname = name || Object.prototype.hasOwnProperty.call(script2, \"__name\") && script2.__name || getScriptName(script2);\n\tif (!name) {\n\t\treturn;\n\t}\n\tif (reservedScriptNames.has(name)) {\n\t\tthrow new Error(`script name: '${name}' is reserved, please change script name`);\n\t}\n\tscript2.__name = name;\n\tconst registry = app2 ? app2.scripts : AppBase.getApplication().scripts;\n\tregistry.add(script2);\n\tScriptTypes.push(script2);\n}\n\nvar ScriptHandler = class extends ResourceHandler {\n\tconstructor(app2) {\n\t\tsuper(app2, \"script\");\n\t\tthis._scripts = {};\n\t\tthis._cache = {};\n\t}\n\tclearCache() {\n\t\tfor (const key in this._cache) {\n\t\t\tconst element = this._cache[key];\n\t\t\tconst parent = element.parentNode;\n\t\t\tif (parent) {\n\t\t\t\tparent.removeChild(element);\n\t\t\t}\n\t\t}\n\t\tthis._cache = {};\n\t}\n\tload(url, callback) {\n\t\tif (typeof url === \"string\") {\n\t\t\turl = {\n\t\t\t\tload: url,\n\t\t\t\toriginal: url\n\t\t\t};\n\t\t}\n\t\tconst self2 = this;\n\t\tscript.app = this._app;\n\t\tconst onScriptLoad = (url.load, (err2, url2, extra) => {\n\t\t\tif (!err2) {\n\t\t\t\tconst obj = {};\n\t\t\t\tfor (let i2 = 0; i2 < ScriptTypes._types.length; i2++) {\n\t\t\t\t\tobj[ScriptTypes._types[i2].name] = ScriptTypes._types[i2];\n\t\t\t\t}\n\t\t\t\tScriptTypes._types.length = 0;\n\t\t\t\tcallback(null, obj, extra);\n\t\t\t\tconst urlWithoutEndHash = url2.split(\"&hash=\")[0];\n\t\t\t\tdelete self2._loader._cache[ResourceLoader.makeKey(urlWithoutEndHash, \"script\")];\n\t\t\t} else {\n\t\t\t\tcallback(err2);\n\t\t\t}\n\t\t});\n\t\tconst [basePath] = url.load.split(\"?\");\n\t\tconst isEsmScript = basePath.endsWith(\".mjs\");\n\t\tif (isEsmScript) {\n\t\t\tthis._loadModule(basePath, onScriptLoad);\n\t\t} else {\n\t\t\tthis._loadScript(url.load, onScriptLoad);\n\t\t}\n\t}\n\topen(url, data2) {\n\t\treturn data2;\n\t}\n\tpatch(asset, assets) {\n\t}\n\t_loadScript(url, callback) {\n\t\tconst head = document.head;\n\t\tconst element = document.createElement(\"script\");\n\t\tthis._cache[url] = element;\n\t\telement.async = false;\n\t\telement.addEventListener(\"error\", (e) => {\n\t\t\tcallback(`Script: ${e.target.src} failed to load`);\n\t\t}, false);\n\t\tlet done = false;\n\t\telement.onload = element.onreadystatechange = function() {\n\t\t\tif (!done && (!this.readyState || (this.readyState === \"loaded\" || this.readyState === \"complete\"))) {\n\t\t\t\tdone = true;\n\t\t\t\tcallback(null, url, element);\n\t\t\t}\n\t\t};\n\t\telement.src = url;\n\t\thead.appendChild(element);\n\t}\n\t_loadModule(url, callback) {\n\t\tconst isBrowserWithOrigin = platform.browser && window.location.origin !== \"null\";\n\t\tconst baseUrl = isBrowserWithOrigin ? window.location.origin + window.location.pathname : import.meta.url;\n\t\tconst importUrl = new URL(url, baseUrl);\n\t\timport(\n\t\t\t/* @vite-ignore */\n\t\t\t/* webpackIgnore: true */\n\t\t\timportUrl.toString()\n\t\t).then((module2) => {\n\t\t\tconst filename = importUrl.pathname.split(\"/\").pop();\n\t\t\tconst scriptSchema = this._app.assets.find(filename, \"script\")?.data?.scripts;\n\t\t\tfor (const key in module2) {\n\t\t\t\tconst scriptClass = module2[key];\n\t\t\t\tconst extendsScriptType = scriptClass.prototype instanceof Script;\n\t\t\t\tif (extendsScriptType) {\n\t\t\t\t\tconst ownScriptName = Object.prototype.hasOwnProperty.call(scriptClass, \"scriptName\") && scriptClass.scriptName;\n\t\t\t\t\tif (!ownScriptName) {\n\t\t\t\t\t}\n\t\t\t\t\tconst scriptName = getScriptRegistryName(scriptClass);\n\t\t\t\t\tif (!scriptName) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tregisterScript(scriptClass, scriptName, this._app);\n\t\t\t\t\tif (scriptSchema) this._app.scripts.addSchema(scriptName, scriptSchema[scriptName]);\n\t\t\t\t}\n\t\t\t}\n\t\t\tcallback(null, url, null);\n\t\t}).catch((err2) => {\n\t\t\tcallback(err2);\n\t\t});\n\t}\n};\n\nvar ShaderHandler = class extends ResourceHandler {\n\tdecoder = null;\n\tconstructor(app2) {\n\t\tsuper(app2, \"shader\");\n\t\tthis.addParser(new TextParser());\n\t}\n\topenBinary(data2) {\n\t\tthis.decoder ?? (this.decoder = new TextDecoder(\"utf-8\"));\n\t\treturn this.decoder.decode(data2);\n\t}\n};\n\nfunction onTextureAtlasLoaded(atlasAsset) {\n\tconst spriteAsset = this;\n\tif (spriteAsset.resource) {\n\t\tspriteAsset.resource.atlas = atlasAsset.resource;\n\t}\n}\nfunction onTextureAtlasAdded(atlasAsset) {\n\tconst spriteAsset = this;\n\tspriteAsset.registry.load(atlasAsset);\n}\nvar SpriteHandler = class extends ResourceHandler {\n\tconstructor(app2) {\n\t\tsuper(app2, \"sprite\");\n\t\tthis._assets = app2.assets;\n\t\tthis._device = app2.graphicsDevice;\n\t}\n\tload(url, callback) {\n\t\tif (typeof url === \"string\") {\n\t\t\turl = {\n\t\t\t\tload: url,\n\t\t\t\toriginal: url\n\t\t\t};\n\t\t}\n\t\tif (path.getExtension(url.original) === \".json\") {\n\t\t\thttp.get(url.load, {\n\t\t\t\tretry: this.maxRetries > 0,\n\t\t\t\tmaxRetries: this.maxRetries\n\t\t\t}, (err2, response) => {\n\t\t\t\tif (!err2) {\n\t\t\t\t\tcallback(null, response);\n\t\t\t\t} else {\n\t\t\t\t\tcallback(err2);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\t// Create sprite resource\n\topen(url, data2) {\n\t\tconst sprite = new Sprite(this._device);\n\t\tif (url) {\n\t\t\tsprite.__data = data2;\n\t\t}\n\t\treturn sprite;\n\t}\n\t// Set sprite data\n\tpatch(asset, assets) {\n\t\tconst sprite = asset.resource;\n\t\tif (sprite.__data) {\n\t\t\tasset.data.pixelsPerUnit = sprite.__data.pixelsPerUnit;\n\t\t\tasset.data.renderMode = sprite.__data.renderMode;\n\t\t\tasset.data.frameKeys = sprite.__data.frameKeys;\n\t\t\tif (sprite.__data.textureAtlasAsset) {\n\t\t\t\tconst atlas = assets.getByUrl(sprite.__data.textureAtlasAsset);\n\t\t\t\tif (atlas) {\n\t\t\t\t\tasset.data.textureAtlasAsset = atlas.id;\n\t\t\t\t} else {\n\t\t\t\t\tconsole.warn(`Could not find textureatlas with url: ${sprite.__data.textureAtlasAsset}`);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tsprite.startUpdate();\n\t\tsprite.renderMode = asset.data.renderMode;\n\t\tsprite.pixelsPerUnit = asset.data.pixelsPerUnit;\n\t\tsprite.frameKeys = asset.data.frameKeys;\n\t\tthis._updateAtlas(asset);\n\t\tsprite.endUpdate();\n\t\tasset.off(\"change\", this._onAssetChange, this);\n\t\tasset.on(\"change\", this._onAssetChange, this);\n\t}\n\t// Load atlas\n\t_updateAtlas(asset) {\n\t\tconst sprite = asset.resource;\n\t\tif (!asset.data.textureAtlasAsset) {\n\t\t\tsprite.atlas = null;\n\t\t\treturn;\n\t\t}\n\t\tthis._assets.off(`load:${asset.data.textureAtlasAsset}`, onTextureAtlasLoaded, asset);\n\t\tthis._assets.on(`load:${asset.data.textureAtlasAsset}`, onTextureAtlasLoaded, asset);\n\t\tconst atlasAsset = this._assets.get(asset.data.textureAtlasAsset);\n\t\tif (atlasAsset && atlasAsset.resource) {\n\t\t\tsprite.atlas = atlasAsset.resource;\n\t\t} else {\n\t\t\tif (!atlasAsset) {\n\t\t\t\tthis._assets.off(`add:${asset.data.textureAtlasAsset}`, onTextureAtlasAdded, asset);\n\t\t\t\tthis._assets.on(`add:${asset.data.textureAtlasAsset}`, onTextureAtlasAdded, asset);\n\t\t\t} else {\n\t\t\t\tthis._assets.load(atlasAsset);\n\t\t\t}\n\t\t}\n\t}\n\t_onAssetChange(asset, attribute, value, oldValue) {\n\t\tif (attribute === \"data\") {\n\t\t\tif (value && value.textureAtlasAsset && oldValue && value.textureAtlasAsset !== oldValue.textureAtlasAsset) {\n\t\t\t\tthis._assets.off(`load:${oldValue.textureAtlasAsset}`, onTextureAtlasLoaded, asset);\n\t\t\t\tthis._assets.off(`add:${oldValue.textureAtlasAsset}`, onTextureAtlasAdded, asset);\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar Template = class {\n\t_app;\n\t_data;\n\t_templateRoot = null;\n\tconstructor(app2, data2) {\n\t\tthis._app = app2;\n\t\tthis._data = data2;\n\t}\n\tinstantiate() {\n\t\tif (!this._templateRoot) {\n\t\t\tthis._parseTemplate();\n\t\t}\n\t\treturn this._templateRoot.clone();\n\t}\n\t_parseTemplate() {\n\t\tconst parser = new SceneParser(this._app, true);\n\t\tthis._templateRoot = parser.parse(this._data);\n\t}\n\tset data(value) {\n\t\tthis._data = value;\n\t\tthis._templateRoot = null;\n\t}\n\tget data() {\n\t\treturn this._data;\n\t}\n};\n\nvar TemplateParser = class {\n\tcanParse() {\n\t\treturn true;\n\t}\n\tload(url, callback, asset) {\n\t\tconst original = typeof url === \"string\" ? url : url.original;\n\t\tthis.handler.fetch(url, Http.ResponseType.JSON, (err2, response) => {\n\t\t\tif (err2) {\n\t\t\t\tcallback(`Error requesting template: ${original}`);\n\t\t\t} else {\n\t\t\t\tcallback(null, response);\n\t\t\t}\n\t\t}, asset);\n\t}\n\topen(url, data2) {\n\t\treturn new Template(this.handler.app, data2);\n\t}\n};\n\nvar TemplateHandler = class extends ResourceHandler {\n\tdecoder = null;\n\tconstructor(app2) {\n\t\tsuper(app2, \"template\");\n\t\tthis.addParser(new TemplateParser());\n\t}\n\topenBinary(data2) {\n\t\tthis.decoder ?? (this.decoder = new TextDecoder(\"utf-8\"));\n\t\treturn new Template(this._app, JSON.parse(this.decoder.decode(data2)));\n\t}\n\tpatch(asset, registry) {\n\t\tif (!asset || !asset.resource || !asset.data || !asset.data.entities) {\n\t\t\treturn;\n\t\t}\n\t\tconst template = asset.resource;\n\t\ttemplate.data = asset.data;\n\t}\n};\n\nvar TextHandler = class extends ResourceHandler {\n\tdecoder = null;\n\tconstructor(app2) {\n\t\tsuper(app2, \"text\");\n\t\tthis.addParser(new TextParser());\n\t}\n\topenBinary(data2) {\n\t\tthis.decoder ?? (this.decoder = new TextDecoder(\"utf-8\"));\n\t\treturn this.decoder.decode(data2);\n\t}\n};\n\nvar JSON_ADDRESS_MODE = {\n\t\"repeat\": ADDRESS_REPEAT,\n\t\"clamp\": ADDRESS_CLAMP_TO_EDGE,\n\t\"mirror\": ADDRESS_MIRRORED_REPEAT\n};\nvar JSON_FILTER_MODE = {\n\t\"nearest\": FILTER_NEAREST,\n\t\"linear\": FILTER_LINEAR,\n\t\"nearest_mip_nearest\": FILTER_NEAREST_MIPMAP_NEAREST,\n\t\"linear_mip_nearest\": FILTER_LINEAR_MIPMAP_NEAREST,\n\t\"nearest_mip_linear\": FILTER_NEAREST_MIPMAP_LINEAR,\n\t\"linear_mip_linear\": FILTER_LINEAR_MIPMAP_LINEAR\n};\nvar regexFrame = /^data\\.frames\\.(\\d+)$/;\nvar TextureAtlasHandler = class extends ResourceHandler {\n\tconstructor(app2) {\n\t\tsuper(app2, \"textureatlas\");\n\t\tthis._loader = app2.loader;\n\t}\n\t// Load the texture atlas texture using the texture resource loader\n\tload(url, callback) {\n\t\tif (typeof url === \"string\") {\n\t\t\turl = {\n\t\t\t\tload: url,\n\t\t\t\toriginal: url\n\t\t\t};\n\t\t}\n\t\tconst self2 = this;\n\t\tconst handler = this._loader.getHandler(\"texture\");\n\t\tif (path.getExtension(url.original) === \".json\") {\n\t\t\thttp.get(url.load, {\n\t\t\t\tretry: this.maxRetries > 0,\n\t\t\t\tmaxRetries: this.maxRetries\n\t\t\t}, (err2, response) => {\n\t\t\t\tif (!err2) {\n\t\t\t\t\tconst textureUrl = url.original.replace(\".json\", \".png\");\n\t\t\t\t\tself2._loader.load(textureUrl, \"texture\", (err3, texture) => {\n\t\t\t\t\t\tif (err3) {\n\t\t\t\t\t\t\tcallback(err3);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcallback(null, {\n\t\t\t\t\t\t\t\tdata: response,\n\t\t\t\t\t\t\t\ttexture\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tcallback(err2);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\thandler.load(url, callback);\n\t\t}\n\t}\n\t// Create texture atlas resource using the texture from the texture loader\n\topen(url, data2, asset) {\n\t\tconst resource = new TextureAtlas();\n\t\tif (data2.texture && data2.data) {\n\t\t\tresource.texture = data2.texture;\n\t\t\tresource.__data = data2.data;\n\t\t} else {\n\t\t\tconst handler = this._loader.getHandler(\"texture\");\n\t\t\tconst texture = handler.open(url, data2, asset);\n\t\t\tif (!texture) return null;\n\t\t\tresource.texture = texture;\n\t\t}\n\t\treturn resource;\n\t}\n\tpatch(asset, assets) {\n\t\tif (!asset.resource) {\n\t\t\treturn;\n\t\t}\n\t\tif (asset.resource.__data) {\n\t\t\tif (asset.resource.__data.minfilter !== void 0) asset.data.minfilter = asset.resource.__data.minfilter;\n\t\t\tif (asset.resource.__data.magfilter !== void 0) asset.data.magfilter = asset.resource.__data.magfilter;\n\t\t\tif (asset.resource.__data.addressu !== void 0) asset.data.addressu = asset.resource.__data.addressu;\n\t\t\tif (asset.resource.__data.addressv !== void 0) asset.data.addressv = asset.resource.__data.addressv;\n\t\t\tif (asset.resource.__data.mipmaps !== void 0) asset.data.mipmaps = asset.resource.__data.mipmaps;\n\t\t\tif (asset.resource.__data.anisotropy !== void 0) asset.data.anisotropy = asset.resource.__data.anisotropy;\n\t\t\tif (asset.resource.__data.rgbm !== void 0) asset.data.rgbm = !!asset.resource.__data.rgbm;\n\t\t\tasset.data.frames = asset.resource.__data.frames;\n\t\t\tdelete asset.resource.__data;\n\t\t}\n\t\tconst texture = asset.resource.texture;\n\t\tif (texture) {\n\t\t\ttexture.name = asset.name;\n\t\t\tif (asset.data.hasOwnProperty(\"minfilter\") && texture.minFilter !== JSON_FILTER_MODE[asset.data.minfilter]) {\n\t\t\t\ttexture.minFilter = JSON_FILTER_MODE[asset.data.minfilter];\n\t\t\t}\n\t\t\tif (asset.data.hasOwnProperty(\"magfilter\") && texture.magFilter !== JSON_FILTER_MODE[asset.data.magfilter]) {\n\t\t\t\ttexture.magFilter = JSON_FILTER_MODE[asset.data.magfilter];\n\t\t\t}\n\t\t\tif (asset.data.hasOwnProperty(\"addressu\") && texture.addressU !== JSON_ADDRESS_MODE[asset.data.addressu]) {\n\t\t\t\ttexture.addressU = JSON_ADDRESS_MODE[asset.data.addressu];\n\t\t\t}\n\t\t\tif (asset.data.hasOwnProperty(\"addressv\") && texture.addressV !== JSON_ADDRESS_MODE[asset.data.addressv]) {\n\t\t\t\ttexture.addressV = JSON_ADDRESS_MODE[asset.data.addressv];\n\t\t\t}\n\t\t\tif (asset.data.hasOwnProperty(\"mipmaps\") && texture.mipmaps !== asset.data.mipmaps) {\n\t\t\t\ttexture.mipmaps = asset.data.mipmaps;\n\t\t\t}\n\t\t\tif (asset.data.hasOwnProperty(\"anisotropy\") && texture.anisotropy !== asset.data.anisotropy) {\n\t\t\t\ttexture.anisotropy = asset.data.anisotropy;\n\t\t\t}\n\t\t\tif (asset.data.hasOwnProperty(\"rgbm\")) {\n\t\t\t\tconst type = asset.data.rgbm ? TEXTURETYPE_RGBM : TEXTURETYPE_DEFAULT;\n\t\t\t\tif (texture.type !== type) {\n\t\t\t\t\ttexture.type = type;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tasset.resource.texture = texture;\n\t\tconst frames = {};\n\t\tfor (const key in asset.data.frames) {\n\t\t\tconst frame = asset.data.frames[key];\n\t\t\tframes[key] = {\n\t\t\t\trect: new Vec4(frame.rect),\n\t\t\t\tpivot: new Vec2(frame.pivot),\n\t\t\t\tborder: new Vec4(frame.border)\n\t\t\t};\n\t\t}\n\t\tasset.resource.frames = frames;\n\t\tasset.off(\"change\", this._onAssetChange, this);\n\t\tasset.on(\"change\", this._onAssetChange, this);\n\t}\n\t_onAssetChange(asset, attribute, value) {\n\t\tlet frame;\n\t\tif (attribute === \"data\" || attribute === \"data.frames\") {\n\t\t\tconst frames = {};\n\t\t\tfor (const key in value.frames) {\n\t\t\t\tframe = value.frames[key];\n\t\t\t\tframes[key] = {\n\t\t\t\t\trect: new Vec4(frame.rect),\n\t\t\t\t\tpivot: new Vec2(frame.pivot),\n\t\t\t\t\tborder: new Vec4(frame.border)\n\t\t\t\t};\n\t\t\t}\n\t\t\tasset.resource.frames = frames;\n\t\t} else {\n\t\t\tconst match = attribute.match(regexFrame);\n\t\t\tif (match) {\n\t\t\t\tconst frameKey = match[1];\n\t\t\t\tif (value) {\n\t\t\t\t\tif (!asset.resource.frames[frameKey]) {\n\t\t\t\t\t\tasset.resource.frames[frameKey] = {\n\t\t\t\t\t\t\trect: new Vec4(value.rect),\n\t\t\t\t\t\t\tpivot: new Vec2(value.pivot),\n\t\t\t\t\t\t\tborder: new Vec4(value.border)\n\t\t\t\t\t\t};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tframe = asset.resource.frames[frameKey];\n\t\t\t\t\t\tframe.rect.set(value.rect[0], value.rect[1], value.rect[2], value.rect[3]);\n\t\t\t\t\t\tframe.pivot.set(value.pivot[0], value.pivot[1]);\n\t\t\t\t\t\tframe.border.set(value.border[0], value.border[1], value.border[2], value.border[3]);\n\t\t\t\t\t}\n\t\t\t\t\tasset.resource.fire(\"set:frame\", frameKey, asset.resource.frames[frameKey]);\n\t\t\t\t} else {\n\t\t\t\t\tif (asset.resource.frames[frameKey]) {\n\t\t\t\t\t\tdelete asset.resource.frames[frameKey];\n\t\t\t\t\t\tasset.resource.fire(\"remove:frame\", frameKey);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\nfunction BasisWorker() {\n\tconst BASIS_FORMAT = {\n\t\tcTFETC1: 0,\n\t\t// etc1\n\t\tcTFETC2: 1,\n\t\t// etc2\n\t\tcTFBC1: 2,\n\t\t// dxt1\n\t\tcTFBC3: 3,\n\t\t// dxt5\n\t\tcTFPVRTC1_4_RGB: 8,\n\t\t// PVRTC1 rgb\n\t\tcTFPVRTC1_4_RGBA: 9,\n\t\t// PVRTC1 rgba\n\t\tcTFASTC_4x4: 10,\n\t\t// ASTC\n\t\tcTFATC_RGB: 11,\n\t\t// ATC rgb\n\t\tcTFATC_RGBA_INTERPOLATED_ALPHA: 12,\n\t\t// ATC rgba\n\t\t// uncompressed (fallback) formats\n\t\tcTFRGBA32: 13,\n\t\t// rgba 8888\n\t\tcTFRGB565: 14,\n\t\t// rgb 565\n\t\tcTFRGBA4444: 16\n\t\t// rgba 4444\n\t};\n\tconst opaqueMapping = {\n\t\tastc: BASIS_FORMAT.cTFASTC_4x4,\n\t\tdxt: BASIS_FORMAT.cTFBC1,\n\t\tetc1: BASIS_FORMAT.cTFETC1,\n\t\tetc2: BASIS_FORMAT.cTFETC1,\n\t\tpvr: BASIS_FORMAT.cTFPVRTC1_4_RGB,\n\t\tatc: BASIS_FORMAT.cTFATC_RGB,\n\t\tnone: BASIS_FORMAT.cTFRGB565\n\t};\n\tconst alphaMapping = {\n\t\tastc: BASIS_FORMAT.cTFASTC_4x4,\n\t\tdxt: BASIS_FORMAT.cTFBC3,\n\t\tetc1: BASIS_FORMAT.cTFRGBA4444,\n\t\tetc2: BASIS_FORMAT.cTFETC2,\n\t\tpvr: BASIS_FORMAT.cTFPVRTC1_4_RGBA,\n\t\tatc: BASIS_FORMAT.cTFATC_RGBA_INTERPOLATED_ALPHA,\n\t\tnone: BASIS_FORMAT.cTFRGBA4444\n\t};\n\tconst PIXEL_FORMAT = {\n\t\tETC1: 21,\n\t\tETC2_RGB: 22,\n\t\tETC2_RGBA: 23,\n\t\tDXT1: 8,\n\t\tDXT5: 10,\n\t\tPVRTC_4BPP_RGB_1: 26,\n\t\tPVRTC_4BPP_RGBA_1: 27,\n\t\tASTC_4x4: 28,\n\t\tATC_RGB: 29,\n\t\tATC_RGBA: 30,\n\t\tR8_G8_B8_A8: 7,\n\t\tR5_G6_B5: 3,\n\t\tR4_G4_B4_A4: 5\n\t};\n\tconst basisToEngineMapping = (basisFormat, deviceDetails2) => {\n\t\tswitch (basisFormat) {\n\t\t\tcase BASIS_FORMAT.cTFETC1:\n\t\t\t\treturn deviceDetails2.formats.etc2 ? PIXEL_FORMAT.ETC2_RGB : PIXEL_FORMAT.ETC1;\n\t\t\tcase BASIS_FORMAT.cTFETC2:\n\t\t\t\treturn PIXEL_FORMAT.ETC2_RGBA;\n\t\t\tcase BASIS_FORMAT.cTFBC1:\n\t\t\t\treturn PIXEL_FORMAT.DXT1;\n\t\t\tcase BASIS_FORMAT.cTFBC3:\n\t\t\t\treturn PIXEL_FORMAT.DXT5;\n\t\t\tcase BASIS_FORMAT.cTFPVRTC1_4_RGB:\n\t\t\t\treturn PIXEL_FORMAT.PVRTC_4BPP_RGB_1;\n\t\t\tcase BASIS_FORMAT.cTFPVRTC1_4_RGBA:\n\t\t\t\treturn PIXEL_FORMAT.PVRTC_4BPP_RGBA_1;\n\t\t\tcase BASIS_FORMAT.cTFASTC_4x4:\n\t\t\t\treturn PIXEL_FORMAT.ASTC_4x4;\n\t\t\tcase BASIS_FORMAT.cTFATC_RGB:\n\t\t\t\treturn PIXEL_FORMAT.ATC_RGB;\n\t\t\tcase BASIS_FORMAT.cTFATC_RGBA_INTERPOLATED_ALPHA:\n\t\t\t\treturn PIXEL_FORMAT.ATC_RGBA;\n\t\t\tcase BASIS_FORMAT.cTFRGBA32:\n\t\t\t\treturn PIXEL_FORMAT.R8_G8_B8_A8;\n\t\t\tcase BASIS_FORMAT.cTFRGB565:\n\t\t\t\treturn PIXEL_FORMAT.R5_G6_B5;\n\t\t\tcase BASIS_FORMAT.cTFRGBA4444:\n\t\t\t\treturn PIXEL_FORMAT.R4_G4_B4_A4;\n\t\t}\n\t};\n\tconst unswizzleGGGR = (data2) => {\n\t\tconst genB = function(R, G) {\n\t\t\tconst r = R * (2 / 255) - 1;\n\t\t\tconst g = G * (2 / 255) - 1;\n\t\t\tconst b = Math.sqrt(1 - Math.min(1, r * r + g * g));\n\t\t\treturn Math.max(0, Math.min(255, Math.floor((b + 1) * 0.5 * 255)));\n\t\t};\n\t\tfor (let offset3 = 0; offset3 < data2.length; offset3 += 4) {\n\t\t\tconst R = data2[offset3 + 3];\n\t\t\tconst G = data2[offset3 + 1];\n\t\t\tdata2[offset3 + 0] = R;\n\t\t\tdata2[offset3 + 2] = genB(R, G);\n\t\t\tdata2[offset3 + 3] = 255;\n\t\t}\n\t\treturn data2;\n\t};\n\tconst pack565 = (data2) => {\n\t\tconst result = new Uint16Array(data2.length / 4);\n\t\tfor (let offset3 = 0; offset3 < data2.length; offset3 += 4) {\n\t\t\tconst R = data2[offset3 + 0];\n\t\t\tconst G = data2[offset3 + 1];\n\t\t\tconst B = data2[offset3 + 2];\n\t\t\tresult[offset3 / 4] = (R & 248) << 8 | // 5\n\t\t\t(G & 252) << 3 | // 6\n\t\t\tB >> 3;\n\t\t}\n\t\treturn result;\n\t};\n\tconst isPOT = (width, height) => {\n\t\treturn (width & width - 1) === 0 && (height & height - 1) === 0;\n\t};\n\tconst performanceNow = () => {\n\t\treturn typeof performance !== \"undefined\" ? performance.now() : 0;\n\t};\n\tlet basis;\n\tlet rgbPriority;\n\tlet rgbaPriority;\n\tconst chooseTargetFormat = (deviceDetails2, hasAlpha, isUASTC) => {\n\t\tif (isUASTC) {\n\t\t\tif (deviceDetails2.formats.astc) {\n\t\t\t\treturn \"astc\";\n\t\t\t}\n\t\t} else {\n\t\t\tif (hasAlpha) {\n\t\t\t\tif (deviceDetails2.formats.etc2) {\n\t\t\t\t\treturn \"etc2\";\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (deviceDetails2.formats.etc2) {\n\t\t\t\t\treturn \"etc2\";\n\t\t\t\t}\n\t\t\t\tif (deviceDetails2.formats.etc1) {\n\t\t\t\t\treturn \"etc1\";\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tconst testInOrder = (priority) => {\n\t\t\tfor (let i2 = 0; i2 < priority.length; ++i2) {\n\t\t\t\tconst format = priority[i2];\n\t\t\t\tif (deviceDetails2.formats[format]) {\n\t\t\t\t\treturn format;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn \"none\";\n\t\t};\n\t\treturn testInOrder(hasAlpha ? rgbaPriority : rgbPriority);\n\t};\n\tconst dimensionsValid = (width, height, format) => {\n\t\tswitch (format) {\n\t\t\t// etc1, 2\n\t\t\tcase BASIS_FORMAT.cTFETC1:\n\t\t\tcase BASIS_FORMAT.cTFETC2:\n\t\t\t\treturn true;\n\t\t\t// dxt1, 5\n\t\t\tcase BASIS_FORMAT.cTFBC1:\n\t\t\tcase BASIS_FORMAT.cTFBC3:\n\t\t\t\treturn (width & 3) === 0 && (height & 3) === 0;\n\t\t\t// pvrtc\n\t\t\tcase BASIS_FORMAT.cTFPVRTC1_4_RGB:\n\t\t\tcase BASIS_FORMAT.cTFPVRTC1_4_RGBA:\n\t\t\t\treturn isPOT(width, height);\n\t\t\t// astc\n\t\t\tcase BASIS_FORMAT.cTFASTC_4x4:\n\t\t\t\treturn true;\n\t\t\t// atc\n\t\t\tcase BASIS_FORMAT.cTFATC_RGB:\n\t\t\tcase BASIS_FORMAT.cTFATC_RGBA_INTERPOLATED_ALPHA:\n\t\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t};\n\tconst transcodeKTX2 = (url, data2, options2) => {\n\t\tif (!basis.KTX2File) {\n\t\t\tthrow new Error(\"Basis transcoder module does not include support for KTX2.\");\n\t\t}\n\t\tconst funcStart = performanceNow();\n\t\tconst basisFile = new basis.KTX2File(new Uint8Array(data2));\n\t\tconst width = basisFile.getWidth();\n\t\tconst height = basisFile.getHeight();\n\t\tconst levels = basisFile.getLevels();\n\t\tconst hasAlpha = !!basisFile.getHasAlpha();\n\t\tconst isUASTC = basisFile.isUASTC && basisFile.isUASTC();\n\t\tconst cubemap = !!options2.isCubemap;\n\t\tif (!width || !height || !levels) {\n\t\t\tbasisFile.close();\n\t\t\tbasisFile.delete();\n\t\t\tthrow new Error(`Invalid image dimensions url=${url} width=${width} height=${height} levels=${levels}`);\n\t\t}\n\t\tconst format = chooseTargetFormat(options2.deviceDetails, hasAlpha, isUASTC);\n\t\tconst unswizzle = !cubemap && !!options2.isGGGR && format === \"pvr\";\n\t\tlet basisFormat;\n\t\tif (unswizzle) {\n\t\t\tbasisFormat = BASIS_FORMAT.cTFRGBA32;\n\t\t} else {\n\t\t\tbasisFormat = hasAlpha ? alphaMapping[format] : opaqueMapping[format];\n\t\t\tif (!dimensionsValid(width, height, basisFormat)) {\n\t\t\t\tbasisFormat = hasAlpha ? BASIS_FORMAT.cTFRGBA32 : BASIS_FORMAT.cTFRGB565;\n\t\t\t}\n\t\t}\n\t\tif (!basisFile.startTranscoding()) {\n\t\t\tbasisFile.close();\n\t\t\tbasisFile.delete();\n\t\t\tthrow new Error(`Failed to start transcoding url=${url}`);\n\t\t}\n\t\tconst is16BitFormat = basisFormat === BASIS_FORMAT.cTFRGB565 || basisFormat === BASIS_FORMAT.cTFRGBA4444;\n\t\tconst transcodeImage = (mip, face) => {\n\t\t\tconst dstSize = basisFile.getImageTranscodedSizeInBytes(mip, 0, face, basisFormat);\n\t\t\tconst dst = new Uint8Array(dstSize);\n\t\t\tif (!basisFile.transcodeImage(dst, mip, 0, face, basisFormat, 0, -1, -1)) {\n\t\t\t\tbasisFile.close();\n\t\t\t\tbasisFile.delete();\n\t\t\t\tthrow new Error(`Failed to transcode image url=${url}`);\n\t\t\t}\n\t\t\treturn is16BitFormat ? new Uint16Array(dst.buffer) : dst;\n\t\t};\n\t\tconst levelData = [];\n\t\tfor (let mip = 0; mip < levels; ++mip) {\n\t\t\tif (cubemap) {\n\t\t\t\tconst faceData = [];\n\t\t\t\tfor (let face = 0; face < 6; ++face) {\n\t\t\t\t\tfaceData.push(transcodeImage(mip, face));\n\t\t\t\t}\n\t\t\t\tlevelData.push(faceData);\n\t\t\t} else {\n\t\t\t\tlevelData.push(transcodeImage(mip, 0));\n\t\t\t}\n\t\t}\n\t\tbasisFile.close();\n\t\tbasisFile.delete();\n\t\tif (unswizzle) {\n\t\t\tbasisFormat = BASIS_FORMAT.cTFRGB565;\n\t\t\tfor (let i2 = 0; i2 < levelData.length; ++i2) {\n\t\t\t\tlevelData[i2] = pack565(unswizzleGGGR(levelData[i2]));\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\tformat: basisToEngineMapping(basisFormat, options2.deviceDetails),\n\t\t\twidth,\n\t\t\theight,\n\t\t\tlevels: levelData,\n\t\t\tcubemap,\n\t\t\ttranscodeTime: performanceNow() - funcStart,\n\t\t\turl,\n\t\t\tunswizzledGGGR: unswizzle\n\t\t};\n\t};\n\tconst transcodeBasis = (url, data2, options2) => {\n\t\tconst funcStart = performanceNow();\n\t\tconst basisFile = new basis.BasisFile(new Uint8Array(data2));\n\t\tconst width = basisFile.getImageWidth(0, 0);\n\t\tconst height = basisFile.getImageHeight(0, 0);\n\t\tconst images = basisFile.getNumImages();\n\t\tconst levels = basisFile.getNumLevels(0);\n\t\tconst hasAlpha = !!basisFile.getHasAlpha();\n\t\tconst isUASTC = basisFile.isUASTC && basisFile.isUASTC();\n\t\tif (!width || !height || !images || !levels) {\n\t\t\tbasisFile.close();\n\t\t\tbasisFile.delete();\n\t\t\tthrow new Error(`Invalid image dimensions url=${url} width=${width} height=${height} images=${images} levels=${levels}`);\n\t\t}\n\t\tconst format = chooseTargetFormat(options2.deviceDetails, hasAlpha, isUASTC);\n\t\tconst unswizzle = !!options2.isGGGR && format === \"pvr\";\n\t\tlet basisFormat;\n\t\tif (unswizzle) {\n\t\t\tbasisFormat = BASIS_FORMAT.cTFRGBA32;\n\t\t} else {\n\t\t\tbasisFormat = hasAlpha ? alphaMapping[format] : opaqueMapping[format];\n\t\t\tif (!dimensionsValid(width, height, basisFormat)) {\n\t\t\t\tbasisFormat = hasAlpha ? BASIS_FORMAT.cTFRGBA32 : BASIS_FORMAT.cTFRGB565;\n\t\t\t}\n\t\t}\n\t\tif (!basisFile.startTranscoding()) {\n\t\t\tbasisFile.close();\n\t\t\tbasisFile.delete();\n\t\t\tthrow new Error(`Failed to start transcoding url=${url}`);\n\t\t}\n\t\tlet i2;\n\t\tconst levelData = [];\n\t\tfor (let mip = 0; mip < levels; ++mip) {\n\t\t\tconst dstSize = basisFile.getImageTranscodedSizeInBytes(0, mip, basisFormat);\n\t\t\tconst dst = new Uint8Array(dstSize);\n\t\t\tif (!basisFile.transcodeImage(dst, 0, mip, basisFormat, 0, 0)) {\n\t\t\t\tif (mip === levels - 1 && dstSize === levelData[mip - 1].buffer.byteLength) {\n\t\t\t\t\tdst.set(new Uint8Array(levelData[mip - 1].buffer));\n\t\t\t\t\tconsole.warn(`Failed to transcode last mipmap level, using previous level instead url=${url}`);\n\t\t\t\t} else {\n\t\t\t\t\tbasisFile.close();\n\t\t\t\t\tbasisFile.delete();\n\t\t\t\t\tthrow new Error(`Failed to transcode image url=${url}`);\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst is16BitFormat = basisFormat === BASIS_FORMAT.cTFRGB565 || basisFormat === BASIS_FORMAT.cTFRGBA4444;\n\t\t\tlevelData.push(is16BitFormat ? new Uint16Array(dst.buffer) : dst);\n\t\t}\n\t\tbasisFile.close();\n\t\tbasisFile.delete();\n\t\tif (unswizzle) {\n\t\t\tbasisFormat = BASIS_FORMAT.cTFRGB565;\n\t\t\tfor (i2 = 0; i2 < levelData.length; ++i2) {\n\t\t\t\tlevelData[i2] = pack565(unswizzleGGGR(levelData[i2]));\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\tformat: basisToEngineMapping(basisFormat, options2.deviceDetails),\n\t\t\twidth,\n\t\t\theight,\n\t\t\tlevels: levelData,\n\t\t\tcubemap: false,\n\t\t\ttranscodeTime: performanceNow() - funcStart,\n\t\t\turl,\n\t\t\tunswizzledGGGR: unswizzle\n\t\t};\n\t};\n\tconst transcode = (url, data2, options2) => {\n\t\treturn options2.isKTX2 ? transcodeKTX2(url, data2, options2) : transcodeBasis(url, data2, options2);\n\t};\n\tconst workerTranscode = (url, data2, options2) => {\n\t\ttry {\n\t\t\tconst result = transcode(url, data2, options2);\n\t\t\tconst transfer = [];\n\t\t\tresult.levels = result.levels.map((level) => {\n\t\t\t\tif (Array.isArray(level)) {\n\t\t\t\t\treturn level.map((face) => {\n\t\t\t\t\t\ttransfer.push(face.buffer);\n\t\t\t\t\t\treturn face.buffer;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\ttransfer.push(level.buffer);\n\t\t\t\treturn level.buffer;\n\t\t\t});\n\t\t\tself.postMessage({ url, data: result }, transfer);\n\t\t} catch (err2) {\n\t\t\tself.postMessage({ url, err: err2 }, null);\n\t\t}\n\t};\n\tconst workerInit = (config, callback) => {\n\t\tconst instantiateWasmFunc = (imports, successCallback) => {\n\t\t\tWebAssembly.instantiate(config.module, imports).then((result) => {\n\t\t\t\tsuccessCallback(result);\n\t\t\t}).catch((reason) => {\n\t\t\t\tconsole.error(`instantiate failed + ${reason}`);\n\t\t\t});\n\t\t\treturn {};\n\t\t};\n\t\tself.BASIS(config.module ? { instantiateWasm: instantiateWasmFunc } : null).then((instance) => {\n\t\t\tinstance.initializeBasis();\n\t\t\tbasis = instance;\n\t\t\trgbPriority = config.rgbPriority;\n\t\t\trgbaPriority = config.rgbaPriority;\n\t\t\tcallback(null);\n\t\t});\n\t};\n\tconst queue2 = [];\n\tself.onmessage = (message) => {\n\t\tconst data2 = message.data;\n\t\tswitch (data2.type) {\n\t\t\tcase \"init\":\n\t\t\t\tworkerInit(data2.config, () => {\n\t\t\t\t\tfor (let i2 = 0; i2 < queue2.length; ++i2) {\n\t\t\t\t\t\tworkerTranscode(queue2[i2].url, queue2[i2].data, queue2[i2].options);\n\t\t\t\t\t}\n\t\t\t\t\tqueue2.length = 0;\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase \"transcode\":\n\t\t\t\tif (basis) {\n\t\t\t\t\tworkerTranscode(data2.url, data2.data, data2.options);\n\t\t\t\t} else {\n\t\t\t\t\tqueue2.push(data2);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t};\n}\n\nvar getCompressionFormats = (device) => {\n\treturn {\n\t\tastc: !!device.extCompressedTextureASTC,\n\t\tatc: !!device.extCompressedTextureATC,\n\t\tdxt: !!device.extCompressedTextureS3TC,\n\t\tetc1: !!device.extCompressedTextureETC1,\n\t\tetc2: !!device.extCompressedTextureETC,\n\t\tpvr: !!device.extCompressedTexturePVRTC\n\t};\n};\nvar prepareWorkerModules = (config, callback) => {\n\tconst getWorkerBlob = (basisCode) => {\n\t\tconst code = [\n\t\t\t\"/* basis */\",\n\t\t\tbasisCode,\n\t\t\t\"\",\n\t\t\t`(${BasisWorker.toString()})()\n\n`\n\t\t].join(\"\\n\");\n\t\treturn new Blob([code], { type: \"application/javascript\" });\n\t};\n\tconst wasmSupported = () => {\n\t\ttry {\n\t\t\tif (typeof WebAssembly === \"object\" && typeof WebAssembly.instantiate === \"function\") {\n\t\t\t\tconst module2 = new WebAssembly.Module(Uint8Array.of(0, 97, 115, 109, 1, 0, 0, 0));\n\t\t\t\tif (module2 instanceof WebAssembly.Module) {\n\t\t\t\t\treturn new WebAssembly.Instance(module2) instanceof WebAssembly.Instance;\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t}\n\t\treturn false;\n\t};\n\tconst sendResponse = (basisCode, module2) => {\n\t\tcallback(null, {\n\t\t\tworkerUrl: URL.createObjectURL(getWorkerBlob(basisCode)),\n\t\t\tmodule: module2,\n\t\t\trgbPriority: config.rgbPriority,\n\t\t\trgbaPriority: config.rgbaPriority\n\t\t});\n\t};\n\tconst options2 = {\n\t\tcache: true,\n\t\tresponseType: \"text\",\n\t\tretry: config.maxRetries > 0,\n\t\tmaxRetries: config.maxRetries\n\t};\n\tif (config.glueUrl && config.wasmUrl && wasmSupported()) {\n\t\tlet basisCode = null;\n\t\tlet module2 = null;\n\t\thttp.get(config.glueUrl, options2, (err2, response) => {\n\t\t\tif (err2) {\n\t\t\t\tcallback(err2);\n\t\t\t} else {\n\t\t\t\tif (module2) {\n\t\t\t\t\tsendResponse(response, module2);\n\t\t\t\t} else {\n\t\t\t\t\tbasisCode = response;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tconst fetchPromise = fetch(config.wasmUrl);\n\t\tconst compileManual = () => {\n\t\t\tfetchPromise.then((result) => result.arrayBuffer()).then((buffer) => WebAssembly.compile(buffer)).then((module_) => {\n\t\t\t\tif (basisCode) {\n\t\t\t\t\tsendResponse(basisCode, module_);\n\t\t\t\t} else {\n\t\t\t\t\tmodule2 = module_;\n\t\t\t\t}\n\t\t\t}).catch((err2) => {\n\t\t\t\tcallback(err2, null);\n\t\t\t});\n\t\t};\n\t\tif (WebAssembly.compileStreaming) {\n\t\t\tWebAssembly.compileStreaming(fetchPromise).then((module_) => {\n\t\t\t\tif (basisCode) {\n\t\t\t\t\tsendResponse(basisCode, module_);\n\t\t\t\t} else {\n\t\t\t\t\tmodule2 = module_;\n\t\t\t\t}\n\t\t\t}).catch((err2) => {\n\t\t\t\tcompileManual();\n\t\t\t});\n\t\t} else {\n\t\t\tcompileManual();\n\t\t}\n\t} else {\n\t\thttp.get(config.fallbackUrl, options2, (err2, response) => {\n\t\t\tif (err2) {\n\t\t\t\tcallback(err2, null);\n\t\t\t} else {\n\t\t\t\tsendResponse(response, null);\n\t\t\t}\n\t\t});\n\t}\n};\nvar BasisQueue = class {\n\tconstructor() {\n\t\tthis.callbacks = {};\n\t\tthis.queue = [];\n\t\tthis.clients = [];\n\t}\n\tenqueueJob(url, data2, callback, options2) {\n\t\tif (this.callbacks.hasOwnProperty(url)) {\n\t\t\tthis.callbacks[url].push(callback);\n\t\t} else {\n\t\t\tthis.callbacks[url] = [callback];\n\t\t\tconst job = {\n\t\t\t\turl,\n\t\t\t\tdata: data2,\n\t\t\t\toptions: options2\n\t\t\t};\n\t\t\tif (this.clients.length > 0) {\n\t\t\t\tthis.clients.shift().run(job);\n\t\t\t} else {\n\t\t\t\tthis.queue.push(job);\n\t\t\t}\n\t\t}\n\t}\n\tenqueueClient(client) {\n\t\tif (this.queue.length > 0) {\n\t\t\tclient.run(this.queue.shift());\n\t\t} else {\n\t\t\tthis.clients.push(client);\n\t\t}\n\t}\n\thandleResponse(url, err2, data2) {\n\t\tconst callback = this.callbacks[url];\n\t\tif (err2) {\n\t\t\tfor (let i2 = 0; i2 < callback.length; ++i2) {\n\t\t\t\tcallback[i2](err2);\n\t\t\t}\n\t\t} else {\n\t\t\tconst TypedArray = data2.format === PIXELFORMAT_RGB565 || data2.format === PIXELFORMAT_RGBA4 ? Uint16Array : Uint8Array;\n\t\t\tdata2.levels = data2.levels.map((level) => {\n\t\t\t\treturn Array.isArray(level) ? level.map((face) => new TypedArray(face)) : new TypedArray(level);\n\t\t\t});\n\t\t\tfor (let i2 = 0; i2 < callback.length; ++i2) {\n\t\t\t\tcallback[i2](null, data2);\n\t\t\t}\n\t\t}\n\t\tdelete this.callbacks[url];\n\t}\n};\nvar BasisClient = class {\n\tconstructor(queue2, config, eager) {\n\t\tthis.queue = queue2;\n\t\tthis.worker = new Worker(config.workerUrl);\n\t\tthis.worker.addEventListener(\"message\", (message) => {\n\t\t\tconst data2 = message.data;\n\t\t\tthis.queue.handleResponse(data2.url, data2.err, data2.data);\n\t\t\tif (!this.eager) {\n\t\t\t\tthis.queue.enqueueClient(this);\n\t\t\t}\n\t\t});\n\t\tthis.worker.postMessage({ type: \"init\", config });\n\t\tthis.eager = eager;\n\t}\n\trun(job) {\n\t\tconst transfer = [];\n\t\tif (job.data instanceof ArrayBuffer) {\n\t\t\ttransfer.push(job.data);\n\t\t}\n\t\tthis.worker.postMessage({\n\t\t\ttype: \"transcode\",\n\t\t\turl: job.url,\n\t\t\tformat: job.format,\n\t\t\tdata: job.data,\n\t\t\toptions: job.options\n\t\t}, transfer);\n\t\tif (this.eager) {\n\t\t\tthis.queue.enqueueClient(this);\n\t\t}\n\t}\n};\nvar defaultNumWorkers2 = 1;\nvar defaultRgbPriority = [\"etc2\", \"etc1\", \"astc\", \"dxt\", \"pvr\", \"atc\"];\nvar defaultRgbaPriority = [\"astc\", \"dxt\", \"etc2\", \"pvr\", \"atc\"];\nvar defaultMaxRetries = 5;\nvar queue = new BasisQueue();\nvar lazyConfig2 = null;\nvar initializing = false;\nfunction basisInitialize(config) {\n\tif (initializing) {\n\t\treturn;\n\t}\n\tif (!config) {\n\t\tconfig = lazyConfig2 || {};\n\t} else if (config.lazyInit) {\n\t\tlazyConfig2 = config;\n\t\treturn;\n\t}\n\tif (!config.glueUrl || !config.wasmUrl || !config.fallbackUrl) {\n\t\tconst moduleConfig = WasmModule.getConfig(\"BASIS\");\n\t\tif (moduleConfig) {\n\t\t\tconfig = {\n\t\t\t\tglueUrl: moduleConfig.glueUrl,\n\t\t\t\twasmUrl: moduleConfig.wasmUrl,\n\t\t\t\tfallbackUrl: moduleConfig.fallbackUrl,\n\t\t\t\tnumWorkers: moduleConfig.numWorkers\n\t\t\t};\n\t\t}\n\t}\n\tif (config.glueUrl || config.wasmUrl || config.fallbackUrl) {\n\t\tinitializing = true;\n\t\tconst numWorkers = Math.max(1, Math.min(16, config.numWorkers || defaultNumWorkers2));\n\t\tconst eagerWorkers = config.numWorkers === 1 || (config.hasOwnProperty(\"eagerWorkers\") ? config.eagerWorkers : true);\n\t\tconfig.rgbPriority = config.rgbPriority || defaultRgbPriority;\n\t\tconfig.rgbaPriority = config.rgbaPriority || defaultRgbaPriority;\n\t\tconfig.maxRetries = config.hasOwnProperty(\"maxRetries\") ? config.maxRetries : defaultMaxRetries;\n\t\tprepareWorkerModules(config, (err2, clientConfig) => {\n\t\t\tif (err2) {\n\t\t\t\tconsole.error(`failed to initialize basis worker: ${err2}`);\n\t\t\t} else {\n\t\t\t\tfor (let i2 = 0; i2 < numWorkers; ++i2) {\n\t\t\t\t\tqueue.enqueueClient(new BasisClient(queue, clientConfig, eagerWorkers));\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n}\nvar deviceDetails = null;\nfunction basisTranscode(device, url, data2, callback, options2) {\n\tbasisInitialize();\n\tif (!deviceDetails) {\n\t\tdeviceDetails = {\n\t\t\tformats: getCompressionFormats(device)\n\t\t};\n\t}\n\tqueue.enqueueJob(url, data2, callback, {\n\t\tdeviceDetails,\n\t\tisGGGR: !!options2?.isGGGR,\n\t\tisKTX2: !!options2?.isKTX2,\n\t\tisCubemap: !!options2?.isCubemap\n\t});\n\treturn initializing;\n}\n\nvar TextureParser = class {\n\tload(url, callback, asset) {\n\t\tthrow new Error(\"not implemented\");\n\t}\n\t/* eslint-disable jsdoc/require-returns-check */\n\topen(url, data2, device) {\n\t\tthrow new Error(\"not implemented\");\n\t}\n\t/* eslint-enable jsdoc/require-returns-check */\n};\n\nvar BasisParser = class extends TextureParser {\n\tconstructor(device) {\n\t\tsuper();\n\t\tthis.device = device;\n\t}\n\tcanParse(context) {\n\t\treturn context.ext === \"basis\";\n\t}\n\tload(url, callback, asset) {\n\t\tconst device = this.device;\n\t\tconst transcode = (data2) => {\n\t\t\tconst basisModuleFound = basisTranscode(\n\t\t\t\tdevice,\n\t\t\t\turl.load,\n\t\t\t\tdata2,\n\t\t\t\tcallback,\n\t\t\t\t{ isGGGR: (asset?.file?.variants?.basis?.opt & 8) !== 0 }\n\t\t\t);\n\t\t\tif (!basisModuleFound) {\n\t\t\t\tcallback(`Basis module not found. Asset [${asset.name}](${asset.getFileUrl()}) basis texture variant will not be loaded.`);\n\t\t\t}\n\t\t};\n\t\tthis.handler.fetch(url, Http.ResponseType.ARRAY_BUFFER, (err2, result) => {\n\t\t\tif (err2) {\n\t\t\t\tcallback(err2);\n\t\t\t} else {\n\t\t\t\ttranscode(result);\n\t\t\t}\n\t\t}, asset);\n\t}\n\t// our async transcode call provides the neat structure we need to create the texture instance\n\topen(url, data2, device, textureOptions = {}) {\n\t\tconst texture = new Texture(device, {\n\t\t\tname: url,\n\t\t\taddressU: data2.cubemap ? ADDRESS_CLAMP_TO_EDGE : ADDRESS_REPEAT,\n\t\t\taddressV: data2.cubemap ? ADDRESS_CLAMP_TO_EDGE : ADDRESS_REPEAT,\n\t\t\twidth: data2.width,\n\t\t\theight: data2.height,\n\t\t\tformat: data2.format,\n\t\t\tcubemap: data2.cubemap,\n\t\t\tlevels: data2.levels,\n\t\t\t// derive mipmaps from the actual level count, so a single-level file isn't treated as an\n\t\t\t// incomplete mip chain (which renders black); matches the dds parser\n\t\t\tmipmaps: data2.levels.length > 1,\n\t\t\t...textureOptions\n\t\t});\n\t\ttexture.upload();\n\t\treturn texture;\n\t}\n};\n\nvar ImgParser = class extends TextureParser {\n\tconstructor(registry, device) {\n\t\tsuper();\n\t\tthis.crossOrigin = registry.prefix ? \"anonymous\" : null;\n\t\tthis.device = device;\n\t}\n\tcanParse() {\n\t\treturn true;\n\t}\n\tload(url, callback, asset) {\n\t\tconst hasContents = !!asset?.file?.contents;\n\t\tif (hasContents) {\n\t\t\tif (this.device.supportsImageBitmap) {\n\t\t\t\tthis._loadImageBitmapFromBlob(new Blob([asset.file.contents]), callback);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\turl = {\n\t\t\t\tload: URL.createObjectURL(new Blob([asset.file.contents])),\n\t\t\t\toriginal: url.original\n\t\t\t};\n\t\t}\n\t\tconst handler = (err2, result) => {\n\t\t\tif (hasContents) {\n\t\t\t\tURL.revokeObjectURL(url.load);\n\t\t\t}\n\t\t\tcallback(err2, result);\n\t\t};\n\t\tlet crossOrigin;\n\t\tif (asset && asset.options && asset.options.hasOwnProperty(\"crossOrigin\")) {\n\t\t\tcrossOrigin = asset.options.crossOrigin;\n\t\t} else if (ABSOLUTE_URL.test(url.load)) {\n\t\t\tcrossOrigin = this.crossOrigin;\n\t\t}\n\t\tif (this.device.supportsImageBitmap) {\n\t\t\tthis._loadImageBitmap(url.load, url.original, crossOrigin, handler, asset);\n\t\t} else {\n\t\t\tthis._loadImage(url.load, url.original, crossOrigin, handler, asset);\n\t\t}\n\t}\n\topen(url, data2, device, textureOptions = {}) {\n\t\tconst texture = new Texture(device, {\n\t\t\tname: url,\n\t\t\twidth: data2.width,\n\t\t\theight: data2.height,\n\t\t\tformat: PIXELFORMAT_RGBA8,\n\t\t\t...textureOptions\n\t\t});\n\t\ttexture.setSource(data2);\n\t\treturn texture;\n\t}\n\t_loadImage(url, originalUrl, crossOrigin, callback, asset) {\n\t\tconst image = new Image();\n\t\tif (http.withCredentials) {\n\t\t\timage.crossOrigin = \"use-credentials\";\n\t\t} else if (crossOrigin) {\n\t\t\timage.crossOrigin = crossOrigin;\n\t\t}\n\t\tlet retries = 0;\n\t\tconst maxRetries = this.handler.maxRetries;\n\t\tlet retryTimeout;\n\t\tconst dummySize = 1024 * 1024;\n\t\tasset?.fire(\"progress\", 0, dummySize);\n\t\timage.onload = function() {\n\t\t\tasset?.fire(\"progress\", dummySize, dummySize);\n\t\t\tcallback(null, image);\n\t\t};\n\t\timage.onerror = function() {\n\t\t\tif (retryTimeout) return;\n\t\t\tif (maxRetries > 0 && ++retries <= maxRetries) {\n\t\t\t\tconst retryDelay = Math.pow(2, retries) * 100;\n\t\t\t\tconsole.log(`Error loading Texture from: '${originalUrl}' - Retrying in ${retryDelay}ms...`);\n\t\t\t\tconst idx = url.indexOf(\"?\");\n\t\t\t\tconst separator = idx >= 0 ? \"&\" : \"?\";\n\t\t\t\tretryTimeout = setTimeout(() => {\n\t\t\t\t\timage.src = `${url + separator}retry=${Date.now()}`;\n\t\t\t\t\tretryTimeout = null;\n\t\t\t\t}, retryDelay);\n\t\t\t} else {\n\t\t\t\tcallback(`Error loading Texture from: '${originalUrl}'`);\n\t\t\t}\n\t\t};\n\t\timage.src = url;\n\t}\n\t_loadImageBitmap(url, originalUrl, crossOrigin, callback, asset) {\n\t\tconst options2 = {\n\t\t\tcache: true,\n\t\t\tresponseType: \"blob\",\n\t\t\tretry: this.handler.maxRetries > 0,\n\t\t\tmaxRetries: this.handler.maxRetries,\n\t\t\tprogress: asset\n\t\t};\n\t\thttp.get(url, options2, (err2, blob) => {\n\t\t\tif (err2) {\n\t\t\t\tcallback(err2);\n\t\t\t} else {\n\t\t\t\tthis._loadImageBitmapFromBlob(blob, callback);\n\t\t\t}\n\t\t});\n\t}\n\t_loadImageBitmapFromBlob(blob, callback) {\n\t\tcreateImageBitmap(blob, {\n\t\t\tpremultiplyAlpha: \"none\",\n\t\t\tcolorSpaceConversion: \"none\"\n\t\t}).then((imageBitmap) => callback(null, imageBitmap)).catch((e) => callback(e));\n\t}\n};\n\nvar IDENTIFIER2 = [1481919403, 3140563232, 169478669];\nvar KNOWN_FORMATS = {\n\t// compressed formats\n\t33776: PIXELFORMAT_DXT1,\n\t33778: PIXELFORMAT_DXT3,\n\t33779: PIXELFORMAT_DXT5,\n\t36196: PIXELFORMAT_ETC1,\n\t37492: PIXELFORMAT_ETC2_RGB,\n\t37496: PIXELFORMAT_ETC2_RGBA,\n\t35840: PIXELFORMAT_PVRTC_4BPP_RGB_1,\n\t35841: PIXELFORMAT_PVRTC_2BPP_RGB_1,\n\t35842: PIXELFORMAT_PVRTC_4BPP_RGBA_1,\n\t35843: PIXELFORMAT_PVRTC_2BPP_RGBA_1,\n\t// uncompressed formats\n\t32849: PIXELFORMAT_RGB8,\n\t// GL_RGB8\n\t32856: PIXELFORMAT_RGBA8,\n\t// GL_RGBA8\n\t35905: PIXELFORMAT_SRGB8,\n\t// GL_SRGB8\n\t35907: PIXELFORMAT_SRGBA8,\n\t// GL_SRGB8_ALPHA8\n\t35898: PIXELFORMAT_111110F,\n\t// GL_R11F_G11F_B10F\n\t34843: PIXELFORMAT_RGB16F,\n\t// GL_RGB16F\n\t34842: PIXELFORMAT_RGBA16F\n\t// GL_RGBA16F\n};\nfunction createContainer(pixelFormat, buffer, byteOffset, byteSize) {\n\treturn pixelFormat === PIXELFORMAT_111110F ? new Uint32Array(buffer, byteOffset, byteSize / 4) : new Uint8Array(buffer, byteOffset, byteSize);\n}\nvar KtxParser = class extends TextureParser {\n\tcanParse(context) {\n\t\treturn context.ext === \"ktx\";\n\t}\n\tload(url, callback, asset) {\n\t\tthis.handler.fetch(url, Http.ResponseType.ARRAY_BUFFER, callback, asset);\n\t}\n\topen(url, data2, device, textureOptions = {}) {\n\t\tconst textureData2 = this.parse(data2);\n\t\tif (!textureData2) {\n\t\t\treturn null;\n\t\t}\n\t\tconst texture = new Texture(device, {\n\t\t\tname: url,\n\t\t\taddressU: textureData2.cubemap ? ADDRESS_CLAMP_TO_EDGE : ADDRESS_REPEAT,\n\t\t\taddressV: textureData2.cubemap ? ADDRESS_CLAMP_TO_EDGE : ADDRESS_REPEAT,\n\t\t\twidth: textureData2.width,\n\t\t\theight: textureData2.height,\n\t\t\tformat: textureData2.format,\n\t\t\tcubemap: textureData2.cubemap,\n\t\t\tlevels: textureData2.levels,\n\t\t\t// derive mipmaps from the actual level count, so a single-level file isn't treated as an\n\t\t\t// incomplete mip chain (which renders black); matches the dds parser\n\t\t\tmipmaps: textureData2.levels.length > 1,\n\t\t\t...textureOptions\n\t\t});\n\t\ttexture.upload();\n\t\treturn texture;\n\t}\n\tparse(data2) {\n\t\tconst dataU32 = new Uint32Array(data2);\n\t\tif (IDENTIFIER2[0] !== dataU32[0] || IDENTIFIER2[1] !== dataU32[1] || IDENTIFIER2[2] !== dataU32[2]) {\n\t\t\treturn null;\n\t\t}\n\t\tconst header2 = {\n\t\t\tendianness: dataU32[3],\n\t\t\t// todo: Use this information\n\t\t\tglType: dataU32[4],\n\t\t\tglTypeSize: dataU32[5],\n\t\t\tglFormat: dataU32[6],\n\t\t\tglInternalFormat: dataU32[7],\n\t\t\tglBaseInternalFormat: dataU32[8],\n\t\t\tpixelWidth: dataU32[9],\n\t\t\tpixelHeight: dataU32[10],\n\t\t\tpixelDepth: dataU32[11],\n\t\t\tnumberOfArrayElements: dataU32[12],\n\t\t\tnumberOfFaces: dataU32[13],\n\t\t\tnumberOfMipmapLevels: dataU32[14],\n\t\t\tbytesOfKeyValueData: dataU32[15]\n\t\t};\n\t\tif (header2.pixelDepth > 1) {\n\t\t\treturn null;\n\t\t}\n\t\tif (header2.numberOfArrayElements !== 0) {\n\t\t\treturn null;\n\t\t}\n\t\tconst format = KNOWN_FORMATS[header2.glInternalFormat];\n\t\tif (format === void 0) {\n\t\t\treturn null;\n\t\t}\n\t\tlet offset3 = 16 + header2.bytesOfKeyValueData / 4;\n\t\tconst isCubemap = header2.numberOfFaces > 1;\n\t\tconst levels = [];\n\t\tfor (let mipmapLevel = 0; mipmapLevel < (header2.numberOfMipmapLevels || 1); mipmapLevel++) {\n\t\t\tconst imageSizeInBytes = dataU32[offset3++];\n\t\t\tif (isCubemap) {\n\t\t\t\tlevels.push([]);\n\t\t\t}\n\t\t\tconst target2 = isCubemap ? levels[mipmapLevel] : levels;\n\t\t\tfor (let face = 0; face < (isCubemap ? 6 : 1); ++face) {\n\t\t\t\ttarget2.push(createContainer(format, data2, offset3 * 4, imageSizeInBytes));\n\t\t\t\toffset3 += imageSizeInBytes + 3 >> 2;\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\tformat,\n\t\t\twidth: header2.pixelWidth,\n\t\t\theight: header2.pixelHeight,\n\t\t\tlevels,\n\t\t\tcubemap: isCubemap\n\t\t};\n\t}\n};\n\nvar KHRConstants = {\n\tKHR_DF_MODEL_ETC1S: 163,\n\tKHR_DF_MODEL_UASTC: 166\n};\nvar Ktx2Parser = class extends TextureParser {\n\tconstructor(device) {\n\t\tsuper();\n\t\tthis.device = device;\n\t}\n\tcanParse(context) {\n\t\treturn context.ext === \"ktx2\";\n\t}\n\tload(url, callback, asset) {\n\t\tthis.handler.fetch(url, Http.ResponseType.ARRAY_BUFFER, (err2, result) => {\n\t\t\tif (err2) {\n\t\t\t\tcallback(err2, result);\n\t\t\t} else {\n\t\t\t\tthis.parse(result, url, callback, asset);\n\t\t\t}\n\t\t}, asset);\n\t}\n\topen(url, data2, device, textureOptions = {}) {\n\t\tconst texture = new Texture(device, {\n\t\t\tname: url,\n\t\t\taddressU: data2.cubemap ? ADDRESS_CLAMP_TO_EDGE : ADDRESS_REPEAT,\n\t\t\taddressV: data2.cubemap ? ADDRESS_CLAMP_TO_EDGE : ADDRESS_REPEAT,\n\t\t\twidth: data2.width,\n\t\t\theight: data2.height,\n\t\t\tformat: data2.format,\n\t\t\tcubemap: data2.cubemap,\n\t\t\tlevels: data2.levels,\n\t\t\t// derive mipmaps from the actual level count, so a single-level file isn't treated as an\n\t\t\t// incomplete mip chain (which renders black); matches the dds parser\n\t\t\tmipmaps: data2.levels.length > 1,\n\t\t\t...textureOptions\n\t\t});\n\t\ttexture.upload();\n\t\treturn texture;\n\t}\n\tparse(arraybuffer, url, callback, asset) {\n\t\tconst rs = new ReadStream(arraybuffer);\n\t\tconst magic = [rs.readU32be(), rs.readU32be(), rs.readU32be()];\n\t\tif (magic[0] !== 2873840728 || magic[1] !== 540160187 || magic[2] !== 218765834) {\n\t\t\treturn null;\n\t\t}\n\t\tconst header2 = {\n\t\t\tvkFormat: rs.readU32(),\n\t\t\ttypeSize: rs.readU32(),\n\t\t\tpixelWidth: rs.readU32(),\n\t\t\tpixelHeight: rs.readU32(),\n\t\t\tpixelDepth: rs.readU32(),\n\t\t\tlayerCount: rs.readU32(),\n\t\t\tfaceCount: rs.readU32(),\n\t\t\tlevelCount: rs.readU32(),\n\t\t\tsupercompressionScheme: rs.readU32()\n\t\t};\n\t\tconst index = {\n\t\t\tdfdByteOffset: rs.readU32(),\n\t\t\tdfdByteLength: rs.readU32(),\n\t\t\tkvdByteOffset: rs.readU32(),\n\t\t\tkvdByteLength: rs.readU32(),\n\t\t\tsgdByteOffset: rs.readU64(),\n\t\t\tsgdByteLength: rs.readU64()\n\t\t};\n\t\tconst levels = [];\n\t\tfor (let i2 = 0; i2 < Math.max(1, header2.levelCount); ++i2) {\n\t\t\tlevels.push({\n\t\t\t\tbyteOffset: rs.readU64(),\n\t\t\t\tbyteLength: rs.readU64(),\n\t\t\t\tuncompressedByteLength: rs.readU64()\n\t\t\t});\n\t\t}\n\t\tconst dfdTotalSize = rs.readU32();\n\t\tif (dfdTotalSize !== index.kvdByteOffset - index.dfdByteOffset) {\n\t\t\treturn null;\n\t\t}\n\t\trs.skip(8);\n\t\tconst colorModel = rs.readU8();\n\t\trs.skip(index.dfdByteLength - 9);\n\t\trs.skip(index.kvdByteLength);\n\t\tif (header2.supercompressionScheme === 1 || colorModel === KHRConstants.KHR_DF_MODEL_UASTC) {\n\t\t\tconst basisModuleFound = basisTranscode(\n\t\t\t\tthis.device,\n\t\t\t\turl.load,\n\t\t\t\tarraybuffer,\n\t\t\t\tcallback,\n\t\t\t\t{\n\t\t\t\t\tisGGGR: (asset?.file?.variants?.basis?.opt & 8) !== 0,\n\t\t\t\t\tisKTX2: true,\n\t\t\t\t\t// a six-face ktx2 file is a cubemap\n\t\t\t\t\tisCubemap: header2.faceCount === 6\n\t\t\t\t}\n\t\t\t);\n\t\t\tif (!basisModuleFound) {\n\t\t\t\tcallback(`Basis module not found. Asset [${asset.name}](${asset.getFileUrl()}) basis texture variant will not be loaded.`);\n\t\t\t}\n\t\t} else {\n\t\t\tcallback(\"unsupported KTX2 pixel format\");\n\t\t}\n\t}\n};\n\nvar DdsParser = class extends TextureParser {\n\tcanParse(context) {\n\t\treturn context.ext === \"dds\";\n\t}\n\tload(url, callback, asset) {\n\t\tthis.handler.fetch(url, Http.ResponseType.ARRAY_BUFFER, callback, asset);\n\t}\n\topen(url, data2, device, textureOptions = {}) {\n\t\tconst header2 = new Uint32Array(data2, 0, 128 / 4);\n\t\tconst width = header2[4];\n\t\tconst height = header2[3];\n\t\tconst mips = Math.max(header2[7], 1);\n\t\tconst isFourCc = header2[20] === 4;\n\t\tconst fcc = header2[21];\n\t\tconst bpp = header2[22];\n\t\tconst isCubemap = header2[28] === 65024;\n\t\tconst FCC_DXT1 = 827611204;\n\t\tconst FCC_DXT5 = 894720068;\n\t\tconst FCC_FP16 = 113;\n\t\tconst FCC_FP32 = 116;\n\t\tconst FCC_ETC1 = 826496069;\n\t\tconst FCC_PVRTC_2BPP_RGB_1 = 825438800;\n\t\tconst FCC_PVRTC_2BPP_RGBA_1 = 825504336;\n\t\tconst FCC_PVRTC_4BPP_RGB_1 = 825439312;\n\t\tconst FCC_PVRTC_4BPP_RGBA_1 = 825504848;\n\t\tlet compressed = false;\n\t\tlet etc1 = false;\n\t\tlet pvrtc2 = false;\n\t\tlet pvrtc4 = false;\n\t\tlet format = null;\n\t\tlet componentSize = 1;\n\t\tlet texture;\n\t\tif (isFourCc) {\n\t\t\tif (fcc === FCC_DXT1) {\n\t\t\t\tformat = PIXELFORMAT_DXT1;\n\t\t\t\tcompressed = true;\n\t\t\t} else if (fcc === FCC_DXT5) {\n\t\t\t\tformat = PIXELFORMAT_DXT5;\n\t\t\t\tcompressed = true;\n\t\t\t} else if (fcc === FCC_FP16) {\n\t\t\t\tformat = PIXELFORMAT_RGBA16F;\n\t\t\t\tcomponentSize = 2;\n\t\t\t} else if (fcc === FCC_FP32) {\n\t\t\t\tformat = PIXELFORMAT_RGBA32F;\n\t\t\t\tcomponentSize = 4;\n\t\t\t} else if (fcc === FCC_ETC1) {\n\t\t\t\tformat = PIXELFORMAT_ETC1;\n\t\t\t\tcompressed = true;\n\t\t\t\tetc1 = true;\n\t\t\t} else if (fcc === FCC_PVRTC_2BPP_RGB_1 || fcc === FCC_PVRTC_2BPP_RGBA_1) {\n\t\t\t\tformat = fcc === FCC_PVRTC_2BPP_RGB_1 ? PIXELFORMAT_PVRTC_2BPP_RGB_1 : PIXELFORMAT_PVRTC_2BPP_RGBA_1;\n\t\t\t\tcompressed = true;\n\t\t\t\tpvrtc2 = true;\n\t\t\t} else if (fcc === FCC_PVRTC_4BPP_RGB_1 || fcc === FCC_PVRTC_4BPP_RGBA_1) {\n\t\t\t\tformat = fcc === FCC_PVRTC_4BPP_RGB_1 ? PIXELFORMAT_PVRTC_4BPP_RGB_1 : PIXELFORMAT_PVRTC_4BPP_RGBA_1;\n\t\t\t\tcompressed = true;\n\t\t\t\tpvrtc4 = true;\n\t\t\t}\n\t\t} else {\n\t\t\tif (bpp === 32) {\n\t\t\t\tformat = PIXELFORMAT_RGBA8;\n\t\t\t}\n\t\t}\n\t\tif (!format) {\n\t\t\ttexture = new Texture(device, {\n\t\t\t\twidth: 4,\n\t\t\t\theight: 4,\n\t\t\t\tformat: PIXELFORMAT_RGB8,\n\t\t\t\tname: \"dds-legacy-empty\"\n\t\t\t});\n\t\t\treturn texture;\n\t\t}\n\t\ttexture = new Texture(device, {\n\t\t\tname: url,\n\t\t\taddressU: isCubemap ? ADDRESS_CLAMP_TO_EDGE : ADDRESS_REPEAT,\n\t\t\taddressV: isCubemap ? ADDRESS_CLAMP_TO_EDGE : ADDRESS_REPEAT,\n\t\t\twidth,\n\t\t\theight,\n\t\t\tformat,\n\t\t\tcubemap: isCubemap,\n\t\t\tmipmaps: mips > 1,\n\t\t\t...textureOptions\n\t\t});\n\t\tlet offset3 = 128;\n\t\tconst faces = isCubemap ? 6 : 1;\n\t\tlet mipSize;\n\t\tconst DXT_BLOCK_WIDTH = 4;\n\t\tconst DXT_BLOCK_HEIGHT = 4;\n\t\tconst blockSize = fcc === FCC_DXT1 ? 8 : 16;\n\t\tlet numBlocksAcross, numBlocksDown, numBlocks;\n\t\tfor (let face = 0; face < faces; face++) {\n\t\t\tlet mipWidth = width;\n\t\t\tlet mipHeight = height;\n\t\t\tfor (let i2 = 0; i2 < mips; i2++) {\n\t\t\t\tif (compressed) {\n\t\t\t\t\tif (etc1) {\n\t\t\t\t\t\tmipSize = Math.floor((mipWidth + 3) / 4) * Math.floor((mipHeight + 3) / 4) * 8;\n\t\t\t\t\t} else if (pvrtc2) {\n\t\t\t\t\t\tmipSize = Math.max(mipWidth, 16) * Math.max(mipHeight, 8) / 4;\n\t\t\t\t\t} else if (pvrtc4) {\n\t\t\t\t\t\tmipSize = Math.max(mipWidth, 8) * Math.max(mipHeight, 8) / 2;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnumBlocksAcross = Math.floor((mipWidth + DXT_BLOCK_WIDTH - 1) / DXT_BLOCK_WIDTH);\n\t\t\t\t\t\tnumBlocksDown = Math.floor((mipHeight + DXT_BLOCK_HEIGHT - 1) / DXT_BLOCK_HEIGHT);\n\t\t\t\t\t\tnumBlocks = numBlocksAcross * numBlocksDown;\n\t\t\t\t\t\tmipSize = numBlocks * blockSize;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tmipSize = mipWidth * mipHeight * 4;\n\t\t\t\t}\n\t\t\t\tconst mipBuff = format === PIXELFORMAT_RGBA32F ? new Float32Array(data2, offset3, mipSize) : format === PIXELFORMAT_RGBA16F ? new Uint16Array(data2, offset3, mipSize) : new Uint8Array(data2, offset3, mipSize);\n\t\t\t\tif (!isCubemap) {\n\t\t\t\t\ttexture._levels[i2] = mipBuff;\n\t\t\t\t} else {\n\t\t\t\t\tif (!texture._levels[i2]) texture._levels[i2] = [];\n\t\t\t\t\ttexture._levels[i2][face] = mipBuff;\n\t\t\t\t}\n\t\t\t\toffset3 += mipSize * componentSize;\n\t\t\t\tmipWidth = Math.max(mipWidth * 0.5, 1);\n\t\t\t\tmipHeight = Math.max(mipHeight * 0.5, 1);\n\t\t\t}\n\t\t}\n\t\ttexture.upload();\n\t\treturn texture;\n\t}\n};\n\nvar HdrParser = class extends TextureParser {\n\tcanParse(context) {\n\t\treturn context.ext === \"hdr\";\n\t}\n\tload(url, callback, asset) {\n\t\tthis.handler.fetch(url, Http.ResponseType.ARRAY_BUFFER, callback, asset);\n\t\tif (asset.data && !asset.data.type) {\n\t\t\tasset.data.type = TEXTURETYPE_RGBE;\n\t\t}\n\t}\n\topen(url, data2, device, textureOptions = {}) {\n\t\tconst textureData2 = this.parse(data2);\n\t\tif (!textureData2) {\n\t\t\treturn null;\n\t\t}\n\t\tconst texture = new Texture(device, {\n\t\t\tname: url,\n\t\t\taddressU: ADDRESS_REPEAT,\n\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE,\n\t\t\tminFilter: FILTER_NEAREST,\n\t\t\tmagFilter: FILTER_NEAREST,\n\t\t\twidth: textureData2.width,\n\t\t\theight: textureData2.height,\n\t\t\tlevels: textureData2.levels,\n\t\t\tformat: PIXELFORMAT_RGBA8,\n\t\t\ttype: TEXTURETYPE_RGBE,\n\t\t\t...textureOptions,\n\t\t\t// requirements of RGBE encoded data, which override any asset-provided options: it\n\t\t\t// must stay in a linear format, and as it can't be filtered, it cannot use mipmaps\n\t\t\tsrgb: false,\n\t\t\tmipmaps: false\n\t\t});\n\t\ttexture.upload();\n\t\treturn texture;\n\t}\n\t// https://floyd.lbl.gov/radiance/refer/filefmts.pdf with help from http://www.graphics.cornell.edu/~bjw/rgbe/rgbe.c\n\tparse(data2) {\n\t\tconst readStream = new ReadStream(data2);\n\t\tconst magic = readStream.readLine();\n\t\tif (!magic.startsWith(\"#?RADIANCE\")) {\n\t\t\treturn null;\n\t\t}\n\t\tconst variables = {};\n\t\twhile (true) {\n\t\t\tconst line = readStream.readLine();\n\t\t\tif (line.length === 0) {\n\t\t\t\tbreak;\n\t\t\t} else {\n\t\t\t\tconst parts = line.split(\"=\");\n\t\t\t\tif (parts.length === 2) {\n\t\t\t\t\tvariables[parts[0]] = parts[1];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (!variables.hasOwnProperty(\"FORMAT\")) {\n\t\t\treturn null;\n\t\t}\n\t\tconst resolution = readStream.readLine().split(\" \");\n\t\tif (resolution.length !== 4) {\n\t\t\treturn null;\n\t\t}\n\t\tconst height = parseInt(resolution[1], 10);\n\t\tconst width = parseInt(resolution[3], 10);\n\t\tconst pixels = this._readPixels(readStream, width, height, resolution[0] === \"-Y\");\n\t\tif (!pixels) {\n\t\t\treturn null;\n\t\t}\n\t\treturn {\n\t\t\twidth,\n\t\t\theight,\n\t\t\tlevels: [pixels]\n\t\t};\n\t}\n\t_readPixels(readStream, width, height, flipY) {\n\t\tif (width < 8 || width > 32767) {\n\t\t\treturn this._readPixelsFlat(readStream, width, height);\n\t\t}\n\t\tconst rgbe = [0, 0, 0, 0];\n\t\treadStream.readArray(rgbe);\n\t\tif (rgbe[0] !== 2 || rgbe[1] !== 2 || (rgbe[2] & 128) !== 0) {\n\t\t\treadStream.skip(-4);\n\t\t\treturn this._readPixelsFlat(readStream, width, height);\n\t\t}\n\t\tconst buffer = new ArrayBuffer(width * height * 4);\n\t\tconst view = new Uint8Array(buffer);\n\t\tlet scanstart = flipY ? 0 : width * 4 * (height - 1);\n\t\tlet x3, y2, i2, channel, count, value;\n\t\tfor (y2 = 0; y2 < height; ++y2) {\n\t\t\tif (y2) {\n\t\t\t\treadStream.readArray(rgbe);\n\t\t\t}\n\t\t\tif ((rgbe[2] << 8) + rgbe[3] !== width) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tfor (channel = 0; channel < 4; ++channel) {\n\t\t\t\tx3 = 0;\n\t\t\t\twhile (x3 < width) {\n\t\t\t\t\tcount = readStream.readU8();\n\t\t\t\t\tif (count > 128) {\n\t\t\t\t\t\tcount -= 128;\n\t\t\t\t\t\tif (x3 + count > width) {\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvalue = readStream.readU8();\n\t\t\t\t\t\tfor (i2 = 0; i2 < count; ++i2) {\n\t\t\t\t\t\t\tview[scanstart + channel + 4 * x3++] = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (count === 0 || x3 + count > width) {\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor (i2 = 0; i2 < count; ++i2) {\n\t\t\t\t\t\t\tview[scanstart + channel + 4 * x3++] = readStream.readU8();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tscanstart += width * 4 * (flipY ? 1 : -1);\n\t\t}\n\t\treturn view;\n\t}\n\t_readPixelsFlat(readStream, width, height) {\n\t\treturn readStream.remainingBytes === width * height * 4 ? new Uint8Array(readStream.arraybuffer, readStream.offset) : null;\n\t}\n};\n\nvar JSON_ADDRESS_MODE2 = {\n\t\"repeat\": ADDRESS_REPEAT,\n\t\"clamp\": ADDRESS_CLAMP_TO_EDGE,\n\t\"mirror\": ADDRESS_MIRRORED_REPEAT\n};\nvar JSON_FILTER_MODE2 = {\n\t\"nearest\": FILTER_NEAREST,\n\t\"linear\": FILTER_LINEAR,\n\t\"nearest_mip_nearest\": FILTER_NEAREST_MIPMAP_NEAREST,\n\t\"linear_mip_nearest\": FILTER_LINEAR_MIPMAP_NEAREST,\n\t\"nearest_mip_linear\": FILTER_NEAREST_MIPMAP_LINEAR,\n\t\"linear_mip_linear\": FILTER_LINEAR_MIPMAP_LINEAR\n};\nvar JSON_TEXTURE_TYPE = {\n\t\"default\": TEXTURETYPE_DEFAULT,\n\t\"rgbm\": TEXTURETYPE_RGBM,\n\t\"rgbe\": TEXTURETYPE_RGBE,\n\t\"rgbp\": TEXTURETYPE_RGBP,\n\t\"swizzleGGGR\": TEXTURETYPE_SWIZZLEGGGR\n};\nvar _completePartialMipmapChain = function(texture) {\n\tconst requiredMipLevels = TextureUtils.calcMipLevelsCount(texture._width, texture._height);\n\tconst isHtmlElement = function(object) {\n\t\treturn object instanceof HTMLCanvasElement || object instanceof HTMLImageElement || object instanceof HTMLVideoElement;\n\t};\n\tif (!(texture._format === PIXELFORMAT_RGBA8 || texture._format === PIXELFORMAT_RGBA32F) || texture._volume || texture._compressed || texture._levels.length === 1 || texture._levels.length === requiredMipLevels || isHtmlElement(texture._cubemap ? texture._levels[0][0] : texture._levels[0])) {\n\t\treturn;\n\t}\n\tconst downsample = function(width, height, data2) {\n\t\tconst sampledWidth = Math.max(1, width >> 1);\n\t\tconst sampledHeight = Math.max(1, height >> 1);\n\t\tconst sampledData = new data2.constructor(sampledWidth * sampledHeight * 4);\n\t\tconst xs = Math.floor(width / sampledWidth);\n\t\tconst ys = Math.floor(height / sampledHeight);\n\t\tconst xsys = xs * ys;\n\t\tfor (let y2 = 0; y2 < sampledHeight; ++y2) {\n\t\t\tfor (let x3 = 0; x3 < sampledWidth; ++x3) {\n\t\t\t\tfor (let e = 0; e < 4; ++e) {\n\t\t\t\t\tlet sum = 0;\n\t\t\t\t\tfor (let sy = 0; sy < ys; ++sy) {\n\t\t\t\t\t\tfor (let sx = 0; sx < xs; ++sx) {\n\t\t\t\t\t\t\tsum += data2[(x3 * xs + sx + (y2 * ys + sy) * width) * 4 + e];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tsampledData[(x3 + y2 * sampledWidth) * 4 + e] = sum / xsys;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn sampledData;\n\t};\n\tfor (let level = texture._levels.length; level < requiredMipLevels; ++level) {\n\t\tconst width = Math.max(1, texture._width >> level - 1);\n\t\tconst height = Math.max(1, texture._height >> level - 1);\n\t\tif (texture._cubemap) {\n\t\t\tconst mips = [];\n\t\t\tfor (let face = 0; face < 6; ++face) {\n\t\t\t\tmips.push(downsample(width, height, texture._levels[level - 1][face]));\n\t\t\t}\n\t\t\ttexture._levels.push(mips);\n\t\t} else {\n\t\t\ttexture._levels.push(downsample(width, height, texture._levels[level - 1]));\n\t\t}\n\t}\n\ttexture._levelsUpdated = texture._cubemap ? [[true, true, true, true, true, true]] : [true];\n};\nvar TextureHandler = class extends ResourceHandler {\n\tconstructor(app2) {\n\t\tsuper(app2, \"texture\");\n\t\tconst device = app2.graphicsDevice;\n\t\tthis._device = device;\n\t\tthis.imgParser = new ImgParser(app2.assets, device);\n\t\tthis.addParser(this.imgParser);\n\t\tthis.addParser(new DdsParser());\n\t\tthis.addParser(new KtxParser());\n\t\tthis.addParser(new Ktx2Parser(device));\n\t\tthis.addParser(new BasisParser(device));\n\t\tthis.addParser(new HdrParser());\n\t}\n\tset crossOrigin(value) {\n\t\tthis.imgParser.crossOrigin = value;\n\t}\n\tget crossOrigin() {\n\t\treturn this.imgParser.crossOrigin;\n\t}\n\t_getTextureOptions(asset) {\n\t\tconst options2 = {};\n\t\tif (asset) {\n\t\t\tif (asset.name?.length > 0) {\n\t\t\t\toptions2.name = asset.name;\n\t\t\t}\n\t\t\tconst assetData = asset.data;\n\t\t\tif (assetData.hasOwnProperty(\"minfilter\")) {\n\t\t\t\toptions2.minFilter = JSON_FILTER_MODE2[assetData.minfilter];\n\t\t\t}\n\t\t\tif (assetData.hasOwnProperty(\"magfilter\")) {\n\t\t\t\toptions2.magFilter = JSON_FILTER_MODE2[assetData.magfilter];\n\t\t\t}\n\t\t\tif (assetData.hasOwnProperty(\"addressu\")) {\n\t\t\t\toptions2.addressU = JSON_ADDRESS_MODE2[assetData.addressu];\n\t\t\t}\n\t\t\tif (assetData.hasOwnProperty(\"addressv\")) {\n\t\t\t\toptions2.addressV = JSON_ADDRESS_MODE2[assetData.addressv];\n\t\t\t}\n\t\t\tif (assetData.hasOwnProperty(\"mipmaps\")) {\n\t\t\t\toptions2.mipmaps = assetData.mipmaps;\n\t\t\t}\n\t\t\tif (assetData.hasOwnProperty(\"anisotropy\")) {\n\t\t\t\toptions2.anisotropy = assetData.anisotropy;\n\t\t\t}\n\t\t\tif (assetData.hasOwnProperty(\"flipY\")) {\n\t\t\t\toptions2.flipY = !!assetData.flipY;\n\t\t\t}\n\t\t\tif (assetData.hasOwnProperty(\"srgb\")) {\n\t\t\t\toptions2.srgb = !!assetData.srgb;\n\t\t\t}\n\t\t\toptions2.type = TEXTURETYPE_DEFAULT;\n\t\t\tif (assetData.hasOwnProperty(\"type\")) {\n\t\t\t\toptions2.type = JSON_TEXTURE_TYPE[assetData.type];\n\t\t\t} else if (assetData.hasOwnProperty(\"rgbm\") && assetData.rgbm) {\n\t\t\t\toptions2.type = TEXTURETYPE_RGBM;\n\t\t\t} else if (asset.file && (asset.file.opt & 8) !== 0) {\n\t\t\t\toptions2.type = TEXTURETYPE_SWIZZLEGGGR;\n\t\t\t}\n\t\t\tif (asset.options?.texture) {\n\t\t\t\tObject.assign(options2, asset.options.texture);\n\t\t\t}\n\t\t}\n\t\treturn options2;\n\t}\n\topen(url, data2, asset) {\n\t\tif (!url) {\n\t\t\treturn void 0;\n\t\t}\n\t\tconst parser = this._selectParser(this._makeContext(url, asset));\n\t\tif (!parser) {\n\t\t\treturn void 0;\n\t\t}\n\t\tconst textureOptions = this._getTextureOptions(asset);\n\t\tlet texture = parser.open(url, data2, this._device, textureOptions);\n\t\tif (texture === null) {\n\t\t\ttexture = new Texture(this._device, {\n\t\t\t\twidth: 4,\n\t\t\t\theight: 4,\n\t\t\t\tformat: PIXELFORMAT_RGB8\n\t\t\t});\n\t\t} else {\n\t\t\t_completePartialMipmapChain(texture);\n\t\t\tif (data2.unswizzledGGGR) {\n\t\t\t\tasset.file.variants.basis.opt &= ~8;\n\t\t\t}\n\t\t}\n\t\treturn texture;\n\t}\n\tpatch(asset, assets) {\n\t\tconst texture = asset.resource;\n\t\tif (!texture) {\n\t\t\treturn;\n\t\t}\n\t\tconst options2 = this._getTextureOptions(asset);\n\t\tfor (const key of Object.keys(options2)) {\n\t\t\ttexture[key] = options2[key];\n\t\t}\n\t}\n};\n\nvar XRTYPE_INLINE = \"inline\";\nvar XRTYPE_VR = \"immersive-vr\";\nvar XRTYPE_AR = \"immersive-ar\";\nvar XRSPACE_VIEWER = \"viewer\";\nvar XRSPACE_LOCAL = \"local\";\nvar XRSPACE_LOCALFLOOR = \"local-floor\";\nvar XRSPACE_BOUNDEDFLOOR = \"bounded-floor\";\nvar XRSPACE_UNBOUNDED = \"unbounded\";\nvar XRTARGETRAY_GAZE = \"gaze\";\nvar XRTARGETRAY_SCREEN = \"screen\";\nvar XRTARGETRAY_POINTER = \"tracked-pointer\";\nvar XREYE_NONE = \"none\";\nvar XREYE_LEFT = \"left\";\nvar XREYE_RIGHT = \"right\";\nvar XRHAND_NONE = \"none\";\nvar XRHAND_LEFT = \"left\";\nvar XRHAND_RIGHT = \"right\";\nvar XRTRACKABLE_POINT = \"point\";\nvar XRTRACKABLE_PLANE = \"plane\";\nvar XRTRACKABLE_MESH = \"mesh\";\nvar XRDEPTHSENSINGUSAGE_CPU = \"cpu-optimized\";\nvar XRDEPTHSENSINGUSAGE_GPU = \"gpu-optimized\";\nvar XRDEPTHSENSINGFORMAT_L8A8 = \"luminance-alpha\";\nvar XRDEPTHSENSINGFORMAT_R16U = \"unsigned-short\";\nvar XRDEPTHSENSINGFORMAT_F32 = \"float32\";\n\nvar XrDomOverlay = class {\n\t_manager;\n\t_supported = platform.browser && !!window.XRDOMOverlayState;\n\t_root = null;\n\tconstructor(manager) {\n\t\tthis._manager = manager;\n\t}\n\tget supported() {\n\t\treturn this._supported;\n\t}\n\tget available() {\n\t\treturn this._supported && this._manager.active && this._manager._session.domOverlayState !== null;\n\t}\n\tget state() {\n\t\tif (!this._supported || !this._manager.active || !this._manager._session.domOverlayState) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this._manager._session.domOverlayState.type;\n\t}\n\tset root(value) {\n\t\tif (!this._supported || this._manager.active) {\n\t\t\treturn;\n\t\t}\n\t\tthis._root = value;\n\t}\n\tget root() {\n\t\treturn this._root;\n\t}\n};\n\nvar poolVec3 = [];\nvar poolQuat = [];\nvar XrHitTestSource = class extends EventHandler {\n\tstatic EVENT_REMOVE = \"remove\";\n\tstatic EVENT_RESULT = \"result\";\n\tmanager;\n\t_xrHitTestSource;\n\t_transient;\n\t_inputSource;\n\tconstructor(manager, xrHitTestSource, transient, inputSource = null) {\n\t\tsuper();\n\t\tthis.manager = manager;\n\t\tthis._xrHitTestSource = xrHitTestSource;\n\t\tthis._transient = transient;\n\t\tthis._inputSource = inputSource;\n\t}\n\tremove() {\n\t\tif (!this._xrHitTestSource) {\n\t\t\treturn;\n\t\t}\n\t\tconst sources = this.manager.hitTest.sources;\n\t\tconst ind = sources.indexOf(this);\n\t\tif (ind !== -1) sources.splice(ind, 1);\n\t\tthis.onStop();\n\t}\n\tonStop() {\n\t\tthis._xrHitTestSource.cancel();\n\t\tthis._xrHitTestSource = null;\n\t\tthis.fire(\"remove\");\n\t\tthis.manager.hitTest.fire(\"remove\", this);\n\t}\n\tupdate(frame) {\n\t\tif (this._transient) {\n\t\t\tconst transientResults = frame.getHitTestResultsForTransientInput(this._xrHitTestSource);\n\t\t\tfor (let i2 = 0; i2 < transientResults.length; i2++) {\n\t\t\t\tconst transientResult = transientResults[i2];\n\t\t\t\tif (!transientResult.results.length) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tlet inputSource;\n\t\t\t\tif (transientResult.inputSource) {\n\t\t\t\t\tinputSource = this.manager.input._getByInputSource(transientResult.inputSource);\n\t\t\t\t}\n\t\t\t\tthis.updateHitResults(transientResult.results, inputSource);\n\t\t\t}\n\t\t} else {\n\t\t\tconst results = frame.getHitTestResults(this._xrHitTestSource);\n\t\t\tif (!results.length) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.updateHitResults(results);\n\t\t}\n\t}\n\tupdateHitResults(results, inputSource) {\n\t\tif (this._inputSource && this._inputSource !== inputSource) {\n\t\t\treturn;\n\t\t}\n\t\tconst origin = poolVec3.pop() ?? new Vec3();\n\t\tif (inputSource) {\n\t\t\torigin.copy(inputSource.getOrigin());\n\t\t} else {\n\t\t\torigin.copy(this.manager.camera.getPosition());\n\t\t}\n\t\tlet candidateDistance = Infinity;\n\t\tlet candidateHitTestResult = null;\n\t\tconst position5 = poolVec3.pop() ?? new Vec3();\n\t\tconst rotation7 = poolQuat.pop() ?? new Quat();\n\t\tfor (let i2 = 0; i2 < results.length; i2++) {\n\t\t\tconst pose = results[i2].getPose(this.manager._referenceSpace);\n\t\t\tconst distance = origin.distance(pose.transform.position);\n\t\t\tif (distance >= candidateDistance) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tcandidateDistance = distance;\n\t\t\tcandidateHitTestResult = results[i2];\n\t\t\tposition5.copy(pose.transform.position);\n\t\t\trotation7.copy(pose.transform.orientation);\n\t\t}\n\t\tthis.fire(\"result\", position5, rotation7, inputSource || this._inputSource, candidateHitTestResult);\n\t\tthis.manager.hitTest.fire(\"result\", this, position5, rotation7, inputSource || this._inputSource, candidateHitTestResult);\n\t\tpoolVec3.push(origin);\n\t\tpoolVec3.push(position5);\n\t\tpoolQuat.push(rotation7);\n\t}\n};\n\nvar XrHitTest = class extends EventHandler {\n\tstatic EVENT_AVAILABLE = \"available\";\n\tstatic EVENT_UNAVAILABLE = \"unavailable\";\n\tstatic EVENT_ADD = \"add\";\n\tstatic EVENT_REMOVE = \"remove\";\n\tstatic EVENT_RESULT = \"result\";\n\tstatic EVENT_ERROR = \"error\";\n\tmanager;\n\t_supported = platform.browser && !!(window.XRSession && window.XRSession.prototype.requestHitTestSource);\n\t_available = false;\n\t_checkingAvailability = false;\n\tsources = [];\n\tconstructor(manager) {\n\t\tsuper();\n\t\tthis.manager = manager;\n\t\tif (this._supported) {\n\t\t\tthis.manager.on(\"start\", this._onSessionStart, this);\n\t\t\tthis.manager.on(\"end\", this._onSessionEnd, this);\n\t\t}\n\t}\n\t_onSessionStart() {\n\t\tif (this.manager.session.enabledFeatures) {\n\t\t\tconst available = this.manager.session.enabledFeatures.indexOf(\"hit-test\") !== -1;\n\t\t\tif (!available) return;\n\t\t\tthis._available = available;\n\t\t\tthis.fire(\"available\");\n\t\t} else if (!this._checkingAvailability) {\n\t\t\tthis._checkingAvailability = true;\n\t\t\tthis.manager.session.requestReferenceSpace(XRSPACE_VIEWER).then((referenceSpace) => {\n\t\t\t\tthis.manager.session.requestHitTestSource({\n\t\t\t\t\tspace: referenceSpace\n\t\t\t\t}).then((hitTestSource) => {\n\t\t\t\t\thitTestSource.cancel();\n\t\t\t\t\tif (this.manager.active) {\n\t\t\t\t\t\tthis._available = true;\n\t\t\t\t\t\tthis.fire(\"available\");\n\t\t\t\t\t}\n\t\t\t\t}).catch(() => {\n\t\t\t\t});\n\t\t\t}).catch(() => {\n\t\t\t});\n\t\t}\n\t}\n\t_onSessionEnd() {\n\t\tif (!this._available) return;\n\t\tthis._available = false;\n\t\tfor (let i2 = 0; i2 < this.sources.length; i2++) {\n\t\t\tthis.sources[i2].onStop();\n\t\t}\n\t\tthis.sources = [];\n\t\tthis.fire(\"unavailable\");\n\t}\n\tstart(options2 = {}) {\n\t\tif (!this._supported) {\n\t\t\toptions2.callback?.(new Error(\"XR HitTest is not supported\"), null);\n\t\t\treturn;\n\t\t}\n\t\tif (!this._available) {\n\t\t\toptions2.callback?.(new Error(\"XR HitTest is not available\"), null);\n\t\t\treturn;\n\t\t}\n\t\tif (!options2.profile && !options2.spaceType) {\n\t\t\toptions2.spaceType = XRSPACE_VIEWER;\n\t\t}\n\t\tlet xrRay;\n\t\tconst offsetRay = options2.offsetRay;\n\t\tif (offsetRay) {\n\t\t\tconst origin = new DOMPoint(offsetRay.origin.x, offsetRay.origin.y, offsetRay.origin.z, 1);\n\t\t\tconst direction = new DOMPoint(offsetRay.direction.x, offsetRay.direction.y, offsetRay.direction.z, 0);\n\t\t\txrRay = new XRRay(origin, direction);\n\t\t}\n\t\tconst callback = options2.callback;\n\t\tif (options2.spaceType) {\n\t\t\tthis.manager.session.requestReferenceSpace(options2.spaceType).then((referenceSpace) => {\n\t\t\t\tif (!this.manager.session) {\n\t\t\t\t\tconst err2 = new Error(\"XR Session is not started (2)\");\n\t\t\t\t\tif (callback) callback(err2);\n\t\t\t\t\tthis.fire(\"error\", err2);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.manager.session.requestHitTestSource({\n\t\t\t\t\tspace: referenceSpace,\n\t\t\t\t\tentityTypes: options2.entityTypes || void 0,\n\t\t\t\t\toffsetRay: xrRay\n\t\t\t\t}).then((xrHitTestSource) => {\n\t\t\t\t\tthis._onHitTestSource(xrHitTestSource, false, options2.inputSource, callback);\n\t\t\t\t}).catch((ex) => {\n\t\t\t\t\tif (callback) callback(ex);\n\t\t\t\t\tthis.fire(\"error\", ex);\n\t\t\t\t});\n\t\t\t}).catch((ex) => {\n\t\t\t\tif (callback) callback(ex);\n\t\t\t\tthis.fire(\"error\", ex);\n\t\t\t});\n\t\t} else {\n\t\t\tthis.manager.session.requestHitTestSourceForTransientInput({\n\t\t\t\tprofile: options2.profile,\n\t\t\t\tentityTypes: options2.entityTypes || void 0,\n\t\t\t\toffsetRay: xrRay\n\t\t\t}).then((xrHitTestSource) => {\n\t\t\t\tthis._onHitTestSource(xrHitTestSource, true, options2.inputSource, callback);\n\t\t\t}).catch((ex) => {\n\t\t\t\tif (callback) callback(ex);\n\t\t\t\tthis.fire(\"error\", ex);\n\t\t\t});\n\t\t}\n\t}\n\t_onHitTestSource(xrHitTestSource, transient, inputSource, callback) {\n\t\tif (!this.manager.session) {\n\t\t\txrHitTestSource.cancel();\n\t\t\tconst err2 = new Error(\"XR Session is not started (3)\");\n\t\t\tif (callback) callback(err2);\n\t\t\tthis.fire(\"error\", err2);\n\t\t\treturn;\n\t\t}\n\t\tconst hitTestSource = new XrHitTestSource(this.manager, xrHitTestSource, transient, inputSource ?? null);\n\t\tthis.sources.push(hitTestSource);\n\t\tif (callback) callback(null, hitTestSource);\n\t\tthis.fire(\"add\", hitTestSource);\n\t}\n\tupdate(frame) {\n\t\tif (!this._available) {\n\t\t\treturn;\n\t\t}\n\t\tfor (let i2 = 0; i2 < this.sources.length; i2++) {\n\t\t\tthis.sources[i2].update(frame);\n\t\t}\n\t}\n\tget supported() {\n\t\treturn this._supported;\n\t}\n\tget available() {\n\t\treturn this._available;\n\t}\n};\n\nvar XrTrackedImage = class extends EventHandler {\n\tstatic EVENT_TRACKED = \"tracked\";\n\tstatic EVENT_UNTRACKED = \"untracked\";\n\t_image;\n\t_width;\n\t_bitmap = null;\n\t_measuredWidth = 0;\n\t_trackable = false;\n\t_tracking = false;\n\t_emulated = false;\n\t_pose = null;\n\t_position = new Vec3();\n\t_rotation = new Quat();\n\tconstructor(image, width) {\n\t\tsuper();\n\t\tthis._image = image;\n\t\tthis._width = width;\n\t}\n\tget image() {\n\t\treturn this._image;\n\t}\n\tset width(value) {\n\t\tthis._width = value;\n\t}\n\tget width() {\n\t\treturn this._width;\n\t}\n\tget trackable() {\n\t\treturn this._trackable;\n\t}\n\tget tracking() {\n\t\treturn this._tracking;\n\t}\n\tget emulated() {\n\t\treturn this._emulated;\n\t}\n\tprepare() {\n\t\tif (this._bitmap) {\n\t\t\treturn {\n\t\t\t\timage: this._bitmap,\n\t\t\t\twidthInMeters: this._width\n\t\t\t};\n\t\t}\n\t\treturn createImageBitmap(this._image).then((bitmap) => {\n\t\t\tthis._bitmap = bitmap;\n\t\t\treturn {\n\t\t\t\timage: this._bitmap,\n\t\t\t\twidthInMeters: this._width\n\t\t\t};\n\t\t});\n\t}\n\tdestroy() {\n\t\tthis._image = null;\n\t\tthis._pose = null;\n\t\tif (this._bitmap) {\n\t\t\tthis._bitmap.close();\n\t\t\tthis._bitmap = null;\n\t\t}\n\t}\n\tgetPosition() {\n\t\tif (this._pose) this._position.copy(this._pose.transform.position);\n\t\treturn this._position;\n\t}\n\tgetRotation() {\n\t\tif (this._pose) this._rotation.copy(this._pose.transform.orientation);\n\t\treturn this._rotation;\n\t}\n};\n\nvar XrImageTracking = class extends EventHandler {\n\tstatic EVENT_ERROR = \"error\";\n\t_manager;\n\t_supported = platform.browser && !!window.XRImageTrackingResult;\n\t_available = false;\n\t_images = [];\n\tconstructor(manager) {\n\t\tsuper();\n\t\tthis._manager = manager;\n\t\tif (this._supported) {\n\t\t\tthis._manager.on(\"start\", this._onSessionStart, this);\n\t\t\tthis._manager.on(\"end\", this._onSessionEnd, this);\n\t\t}\n\t}\n\tadd(image, width) {\n\t\tif (!this._supported || this._manager.active) return null;\n\t\tconst trackedImage = new XrTrackedImage(image, width);\n\t\tthis._images.push(trackedImage);\n\t\treturn trackedImage;\n\t}\n\tremove(trackedImage) {\n\t\tif (this._manager.active) return;\n\t\tconst ind = this._images.indexOf(trackedImage);\n\t\tif (ind !== -1) {\n\t\t\ttrackedImage.destroy();\n\t\t\tthis._images.splice(ind, 1);\n\t\t}\n\t}\n\t_onSessionStart() {\n\t\tthis._manager.session.getTrackedImageScores().then((images) => {\n\t\t\tthis._available = true;\n\t\t\tfor (let i2 = 0; i2 < images.length; i2++) {\n\t\t\t\tthis._images[i2]._trackable = images[i2] === \"trackable\";\n\t\t\t}\n\t\t}).catch((err2) => {\n\t\t\tthis._available = false;\n\t\t\tthis.fire(\"error\", err2);\n\t\t});\n\t}\n\t_onSessionEnd() {\n\t\tthis._available = false;\n\t\tfor (let i2 = 0; i2 < this._images.length; i2++) {\n\t\t\tconst image = this._images[i2];\n\t\t\timage._pose = null;\n\t\t\timage._measuredWidth = 0;\n\t\t\tif (image._tracking) {\n\t\t\t\timage._tracking = false;\n\t\t\t\timage.fire(\"untracked\");\n\t\t\t}\n\t\t}\n\t}\n\tprepareImages(callback) {\n\t\tif (this._images.length) {\n\t\t\tPromise.all(this._images.map((trackedImage) => {\n\t\t\t\treturn trackedImage.prepare();\n\t\t\t})).then((bitmaps) => {\n\t\t\t\tcallback(null, bitmaps);\n\t\t\t}).catch((err2) => {\n\t\t\t\tcallback(err2, null);\n\t\t\t});\n\t\t} else {\n\t\t\tcallback(null, null);\n\t\t}\n\t}\n\tupdate(frame) {\n\t\tif (!this._available) return;\n\t\tconst results = frame.getImageTrackingResults();\n\t\tconst index = {};\n\t\tfor (let i2 = 0; i2 < results.length; i2++) {\n\t\t\tindex[results[i2].index] = results[i2];\n\t\t\tconst trackedImage = this._images[results[i2].index];\n\t\t\ttrackedImage._emulated = results[i2].trackingState === \"emulated\";\n\t\t\ttrackedImage._measuredWidth = results[i2].measuredWidthInMeters;\n\t\t\ttrackedImage._pose = frame.getPose(results[i2].imageSpace, this._manager._referenceSpace);\n\t\t}\n\t\tfor (let i2 = 0; i2 < this._images.length; i2++) {\n\t\t\tif (this._images[i2]._tracking && !index[i2]) {\n\t\t\t\tthis._images[i2]._tracking = false;\n\t\t\t\tthis._images[i2].fire(\"untracked\");\n\t\t\t} else if (!this._images[i2]._tracking && index[i2]) {\n\t\t\t\tthis._images[i2]._tracking = true;\n\t\t\t\tthis._images[i2].fire(\"tracked\");\n\t\t\t}\n\t\t}\n\t}\n\tget supported() {\n\t\treturn this._supported;\n\t}\n\tget available() {\n\t\treturn this._available;\n\t}\n\tget images() {\n\t\treturn this._images;\n\t}\n};\n\nvar XrFinger = class {\n\t_index;\n\t_hand;\n\t_joints = [];\n\t_tip = null;\n\tconstructor(index, hand) {\n\t\tthis._index = index;\n\t\tthis._hand = hand;\n\t\tthis._hand._fingers.push(this);\n\t}\n\tget index() {\n\t\treturn this._index;\n\t}\n\tget hand() {\n\t\treturn this._hand;\n\t}\n\tget joints() {\n\t\treturn this._joints;\n\t}\n\tget tip() {\n\t\treturn this._tip;\n\t}\n};\n\nvar tipJointIds = platform.browser && window.XRHand ? [\n\t\"thumb-tip\",\n\t\"index-finger-tip\",\n\t\"middle-finger-tip\",\n\t\"ring-finger-tip\",\n\t\"pinky-finger-tip\"\n] : [];\nvar tipJointIdsIndex = {};\nfor (let i2 = 0; i2 < tipJointIds.length; i2++) {\n\ttipJointIdsIndex[tipJointIds[i2]] = true;\n}\nvar XrJoint = class {\n\t_index;\n\t_id;\n\t_hand;\n\t_finger;\n\t_wrist;\n\t_tip;\n\t_radius = null;\n\t_localTransform = new Mat4();\n\t_worldTransform = new Mat4();\n\t_localPosition = new Vec3();\n\t_localRotation = new Quat();\n\t_position = new Vec3();\n\t_rotation = new Quat();\n\t_dirtyLocal = true;\n\tconstructor(index, id14, hand, finger = null) {\n\t\tthis._index = index;\n\t\tthis._id = id14;\n\t\tthis._hand = hand;\n\t\tthis._finger = finger;\n\t\tthis._wrist = id14 === \"wrist\";\n\t\tthis._tip = this._finger && !!tipJointIdsIndex[id14];\n\t}\n\tupdate(pose) {\n\t\tthis._dirtyLocal = true;\n\t\tthis._radius = pose.radius;\n\t\tthis._localPosition.copy(pose.transform.position);\n\t\tthis._localRotation.copy(pose.transform.orientation);\n\t}\n\t_updateTransforms() {\n\t\tif (this._dirtyLocal) {\n\t\t\tthis._dirtyLocal = false;\n\t\t\tthis._localTransform.setTRS(this._localPosition, this._localRotation, Vec3.ONE);\n\t\t}\n\t\tconst manager = this._hand._manager;\n\t\tconst parent = manager.camera.parent;\n\t\tif (parent) {\n\t\t\tthis._worldTransform.mul2(parent.getWorldTransform(), this._localTransform);\n\t\t} else {\n\t\t\tthis._worldTransform.copy(this._localTransform);\n\t\t}\n\t}\n\tgetPosition() {\n\t\tthis._updateTransforms();\n\t\tthis._worldTransform.getTranslation(this._position);\n\t\treturn this._position;\n\t}\n\tgetRotation() {\n\t\tthis._updateTransforms();\n\t\tthis._rotation.setFromMat4(this._worldTransform);\n\t\treturn this._rotation;\n\t}\n\tget id() {\n\t\treturn this._id;\n\t}\n\tget index() {\n\t\treturn this._index;\n\t}\n\tget hand() {\n\t\treturn this._hand;\n\t}\n\tget finger() {\n\t\treturn this._finger;\n\t}\n\tget wrist() {\n\t\treturn this._wrist;\n\t}\n\tget tip() {\n\t\treturn this._tip;\n\t}\n\tget radius() {\n\t\treturn this._radius || 5e-3;\n\t}\n};\n\nvar fingerJointIds = [];\nvar vecA2 = new Vec3();\nvar vecB2 = new Vec3();\nvar vecC = new Vec3();\nif (platform.browser && window.XRHand) {\n\tfingerJointIds = [\n\t\t[\"thumb-metacarpal\", \"thumb-phalanx-proximal\", \"thumb-phalanx-distal\", \"thumb-tip\"],\n\t\t[\"index-finger-metacarpal\", \"index-finger-phalanx-proximal\", \"index-finger-phalanx-intermediate\", \"index-finger-phalanx-distal\", \"index-finger-tip\"],\n\t\t[\"middle-finger-metacarpal\", \"middle-finger-phalanx-proximal\", \"middle-finger-phalanx-intermediate\", \"middle-finger-phalanx-distal\", \"middle-finger-tip\"],\n\t\t[\"ring-finger-metacarpal\", \"ring-finger-phalanx-proximal\", \"ring-finger-phalanx-intermediate\", \"ring-finger-phalanx-distal\", \"ring-finger-tip\"],\n\t\t[\"pinky-finger-metacarpal\", \"pinky-finger-phalanx-proximal\", \"pinky-finger-phalanx-intermediate\", \"pinky-finger-phalanx-distal\", \"pinky-finger-tip\"]\n\t];\n}\nvar XrHand = class extends EventHandler {\n\tstatic EVENT_TRACKING = \"tracking\";\n\tstatic EVENT_TRACKINGLOST = \"trackinglost\";\n\t_manager;\n\t_inputSource;\n\t_tracking = false;\n\t_fingers = [];\n\t_joints = [];\n\t_jointsById = {};\n\t_tips = [];\n\t_wrist = null;\n\tconstructor(inputSource) {\n\t\tsuper();\n\t\tconst xrHand = inputSource._xrInputSource.hand;\n\t\tthis._manager = inputSource._manager;\n\t\tthis._inputSource = inputSource;\n\t\tif (xrHand.get(\"wrist\")) {\n\t\t\tconst joint = new XrJoint(0, \"wrist\", this, null);\n\t\t\tthis._wrist = joint;\n\t\t\tthis._joints.push(joint);\n\t\t\tthis._jointsById.wrist = joint;\n\t\t}\n\t\tfor (let f = 0; f < fingerJointIds.length; f++) {\n\t\t\tconst finger = new XrFinger(f, this);\n\t\t\tfor (let j = 0; j < fingerJointIds[f].length; j++) {\n\t\t\t\tconst jointId = fingerJointIds[f][j];\n\t\t\t\tif (!xrHand.get(jointId)) continue;\n\t\t\t\tconst joint = new XrJoint(j, jointId, this, finger);\n\t\t\t\tthis._joints.push(joint);\n\t\t\t\tthis._jointsById[jointId] = joint;\n\t\t\t\tif (joint.tip) {\n\t\t\t\t\tthis._tips.push(joint);\n\t\t\t\t\tfinger._tip = joint;\n\t\t\t\t}\n\t\t\t\tfinger._joints.push(joint);\n\t\t\t}\n\t\t}\n\t}\n\tupdate(frame) {\n\t\tconst xrInputSource = this._inputSource._xrInputSource;\n\t\tfor (let j = 0; j < this._joints.length; j++) {\n\t\t\tconst joint = this._joints[j];\n\t\t\tconst jointSpace = xrInputSource.hand.get(joint._id);\n\t\t\tif (jointSpace) {\n\t\t\t\tlet pose;\n\t\t\t\tif (frame.session.visibilityState !== \"hidden\") {\n\t\t\t\t\tpose = frame.getJointPose(jointSpace, this._manager._referenceSpace);\n\t\t\t\t}\n\t\t\t\tif (pose) {\n\t\t\t\t\tjoint.update(pose);\n\t\t\t\t\tif (joint.wrist && !this._tracking) {\n\t\t\t\t\t\tthis._tracking = true;\n\t\t\t\t\t\tthis.fire(\"tracking\");\n\t\t\t\t\t}\n\t\t\t\t} else if (joint.wrist) {\n\t\t\t\t\tif (this._tracking) {\n\t\t\t\t\t\tthis._tracking = false;\n\t\t\t\t\t\tthis.fire(\"trackinglost\");\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tconst j1 = this._jointsById[\"thumb-metacarpal\"];\n\t\tconst j4 = this._jointsById[\"thumb-tip\"];\n\t\tconst j6 = this._jointsById[\"index-finger-phalanx-proximal\"];\n\t\tconst j9 = this._jointsById[\"index-finger-tip\"];\n\t\tconst j16 = this._jointsById[\"ring-finger-phalanx-proximal\"];\n\t\tconst j21 = this._jointsById[\"pinky-finger-phalanx-proximal\"];\n\t\tif (j1 && j4 && j6 && j9 && j16 && j21) {\n\t\t\tthis._inputSource._dirtyRay = true;\n\t\t\tthis._inputSource._rayLocal.origin.lerp(j4._localPosition, j9._localPosition, 0.5);\n\t\t\tlet jointL = j1;\n\t\t\tlet jointR = j21;\n\t\t\tif (this._inputSource.handedness === XRHAND_LEFT) {\n\t\t\t\tconst t = jointL;\n\t\t\t\tjointL = jointR;\n\t\t\t\tjointR = t;\n\t\t\t}\n\t\t\tvecA2.sub2(jointL._localPosition, this._wrist._localPosition);\n\t\t\tvecB2.sub2(jointR._localPosition, this._wrist._localPosition);\n\t\t\tvecC.cross(vecA2, vecB2).normalize();\n\t\t\tvecA2.lerp(j6._localPosition, j16._localPosition, 0.5);\n\t\t\tvecA2.sub(this._wrist._localPosition).normalize();\n\t\t\tthis._inputSource._rayLocal.direction.lerp(vecC, vecA2, 0.5).normalize();\n\t\t}\n\t\tconst squeezing = this._fingerIsClosed(1) && this._fingerIsClosed(2) && this._fingerIsClosed(3) && this._fingerIsClosed(4);\n\t\tif (squeezing) {\n\t\t\tif (!this._inputSource._squeezing) {\n\t\t\t\tthis._inputSource._squeezing = true;\n\t\t\t\tthis._inputSource.fire(\"squeezestart\");\n\t\t\t\tthis._manager.input.fire(\"squeezestart\", this._inputSource);\n\t\t\t}\n\t\t} else {\n\t\t\tif (this._inputSource._squeezing) {\n\t\t\t\tthis._inputSource._squeezing = false;\n\t\t\t\tthis._inputSource.fire(\"squeeze\");\n\t\t\t\tthis._manager.input.fire(\"squeeze\", this._inputSource);\n\t\t\t\tthis._inputSource.fire(\"squeezeend\");\n\t\t\t\tthis._manager.input.fire(\"squeezeend\", this._inputSource);\n\t\t\t}\n\t\t}\n\t}\n\t_fingerIsClosed(index) {\n\t\tconst finger = this._fingers[index];\n\t\tvecA2.sub2(finger.joints[0]._localPosition, finger.joints[1]._localPosition).normalize();\n\t\tvecB2.sub2(finger.joints[2]._localPosition, finger.joints[3]._localPosition).normalize();\n\t\treturn vecA2.dot(vecB2) < -0.8;\n\t}\n\tgetJointById(id14) {\n\t\treturn this._jointsById[id14] || null;\n\t}\n\tget fingers() {\n\t\treturn this._fingers;\n\t}\n\tget joints() {\n\t\treturn this._joints;\n\t}\n\tget tips() {\n\t\treturn this._tips;\n\t}\n\tget wrist() {\n\t\treturn this._wrist;\n\t}\n\tget tracking() {\n\t\treturn this._tracking;\n\t}\n};\n\nvar vec3A = new Vec3();\nvar quat3 = new Quat();\nvar ids = 0;\nvar XrInputSource = class extends EventHandler {\n\tstatic EVENT_REMOVE = \"remove\";\n\tstatic EVENT_SELECT = \"select\";\n\tstatic EVENT_SELECTSTART = \"selectstart\";\n\tstatic EVENT_SELECTEND = \"selectend\";\n\tstatic EVENT_SQUEEZE = \"squeeze\";\n\tstatic EVENT_SQUEEZESTART = \"squeezestart\";\n\tstatic EVENT_SQUEEZEEND = \"squeezeend\";\n\tstatic EVENT_HITTESTADD = \"hittest:add\";\n\tstatic EVENT_HITTESTREMOVE = \"hittest:remove\";\n\tstatic EVENT_HITTESTRESULT = \"hittest:result\";\n\t_id;\n\t_manager;\n\t_xrInputSource;\n\t_ray = new Ray();\n\t_rayLocal = new Ray();\n\t_grip = false;\n\t_hand = null;\n\t_velocitiesAvailable = false;\n\t_velocitiesTimestamp = now();\n\t_localTransform = null;\n\t_worldTransform = null;\n\t_position = new Vec3();\n\t_rotation = new Quat();\n\t_localPosition = null;\n\t_localPositionLast = null;\n\t_localRotation = null;\n\t_linearVelocity = null;\n\t_dirtyLocal = true;\n\t_dirtyRay = false;\n\t_selecting = false;\n\t_squeezing = false;\n\t_elementInput = true;\n\t_elementEntity = null;\n\t_hitTestSources = [];\n\tconstructor(manager, xrInputSource) {\n\t\tsuper();\n\t\tthis._id = ++ids;\n\t\tthis._manager = manager;\n\t\tthis._xrInputSource = xrInputSource;\n\t\tif (xrInputSource.hand) {\n\t\t\tthis._hand = new XrHand(this);\n\t\t}\n\t}\n\tget id() {\n\t\treturn this._id;\n\t}\n\tget inputSource() {\n\t\treturn this._xrInputSource;\n\t}\n\tget targetRayMode() {\n\t\treturn this._xrInputSource.targetRayMode;\n\t}\n\tget handedness() {\n\t\treturn this._xrInputSource.handedness;\n\t}\n\tget profiles() {\n\t\treturn this._xrInputSource.profiles;\n\t}\n\tget grip() {\n\t\treturn this._grip;\n\t}\n\tget hand() {\n\t\treturn this._hand;\n\t}\n\tget gamepad() {\n\t\treturn this._xrInputSource.gamepad || null;\n\t}\n\tget selecting() {\n\t\treturn this._selecting;\n\t}\n\tget squeezing() {\n\t\treturn this._squeezing;\n\t}\n\tset elementInput(value) {\n\t\tif (this._elementInput === value) {\n\t\t\treturn;\n\t\t}\n\t\tthis._elementInput = value;\n\t\tif (!this._elementInput) {\n\t\t\tthis._elementEntity = null;\n\t\t}\n\t}\n\tget elementInput() {\n\t\treturn this._elementInput;\n\t}\n\tget elementEntity() {\n\t\treturn this._elementEntity;\n\t}\n\tget hitTestSources() {\n\t\treturn this._hitTestSources;\n\t}\n\tupdate(frame) {\n\t\tif (this._hand) {\n\t\t\tthis._hand.update(frame);\n\t\t} else {\n\t\t\tconst gripSpace = this._xrInputSource.gripSpace;\n\t\t\tif (gripSpace) {\n\t\t\t\tconst gripPose = frame.getPose(gripSpace, this._manager._referenceSpace);\n\t\t\t\tif (gripPose) {\n\t\t\t\t\tif (!this._grip) {\n\t\t\t\t\t\tthis._grip = true;\n\t\t\t\t\t\tthis._localTransform = new Mat4();\n\t\t\t\t\t\tthis._worldTransform = new Mat4();\n\t\t\t\t\t\tthis._localPositionLast = new Vec3();\n\t\t\t\t\t\tthis._localPosition = new Vec3();\n\t\t\t\t\t\tthis._localRotation = new Quat();\n\t\t\t\t\t\tthis._linearVelocity = new Vec3();\n\t\t\t\t\t}\n\t\t\t\t\tconst timestamp = now();\n\t\t\t\t\tconst dt = (timestamp - this._velocitiesTimestamp) / 1e3;\n\t\t\t\t\tthis._velocitiesTimestamp = timestamp;\n\t\t\t\t\tthis._dirtyLocal = true;\n\t\t\t\t\tthis._localPositionLast.copy(this._localPosition);\n\t\t\t\t\tthis._localPosition.copy(gripPose.transform.position);\n\t\t\t\t\tthis._localRotation.copy(gripPose.transform.orientation);\n\t\t\t\t\tthis._velocitiesAvailable = true;\n\t\t\t\t\tif (this._manager.input.velocitiesSupported && gripPose.linearVelocity) {\n\t\t\t\t\t\tthis._linearVelocity.copy(gripPose.linearVelocity);\n\t\t\t\t\t} else if (dt > 0) {\n\t\t\t\t\t\tvec3A.sub2(this._localPosition, this._localPositionLast).divScalar(dt);\n\t\t\t\t\t\tthis._linearVelocity.lerp(this._linearVelocity, vec3A, 0.15);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis._velocitiesAvailable = false;\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst targetRayPose = frame.getPose(this._xrInputSource.targetRaySpace, this._manager._referenceSpace);\n\t\t\tif (targetRayPose) {\n\t\t\t\tthis._dirtyRay = true;\n\t\t\t\tthis._rayLocal.origin.copy(targetRayPose.transform.position);\n\t\t\t\tthis._rayLocal.direction.set(0, 0, -1);\n\t\t\t\tquat3.copy(targetRayPose.transform.orientation);\n\t\t\t\tquat3.transformVector(this._rayLocal.direction, this._rayLocal.direction);\n\t\t\t}\n\t\t}\n\t}\n\t_updateTransforms() {\n\t\tif (this._dirtyLocal) {\n\t\t\tthis._dirtyLocal = false;\n\t\t\tthis._localTransform.setTRS(this._localPosition, this._localRotation, Vec3.ONE);\n\t\t}\n\t\tconst parent = this._manager.camera.parent;\n\t\tif (parent) {\n\t\t\tthis._worldTransform.mul2(parent.getWorldTransform(), this._localTransform);\n\t\t} else {\n\t\t\tthis._worldTransform.copy(this._localTransform);\n\t\t}\n\t}\n\t_updateRayTransforms() {\n\t\tconst dirty = this._dirtyRay;\n\t\tthis._dirtyRay = false;\n\t\tconst parent = this._manager.camera.parent;\n\t\tif (parent) {\n\t\t\tconst parentTransform = parent.getWorldTransform();\n\t\t\tparentTransform.getTranslation(this._position);\n\t\t\tthis._rotation.setFromMat4(parentTransform);\n\t\t\tthis._rotation.transformVector(this._rayLocal.origin, this._ray.origin);\n\t\t\tthis._ray.origin.add(this._position);\n\t\t\tthis._rotation.transformVector(this._rayLocal.direction, this._ray.direction);\n\t\t} else if (dirty) {\n\t\t\tthis._ray.origin.copy(this._rayLocal.origin);\n\t\t\tthis._ray.direction.copy(this._rayLocal.direction);\n\t\t}\n\t}\n\tgetPosition() {\n\t\tif (!this._grip) return null;\n\t\tthis._updateTransforms();\n\t\tthis._worldTransform.getTranslation(this._position);\n\t\treturn this._position;\n\t}\n\tgetLocalPosition() {\n\t\treturn this._localPosition;\n\t}\n\tgetRotation() {\n\t\tif (!this._grip) return null;\n\t\tthis._updateTransforms();\n\t\tthis._rotation.setFromMat4(this._worldTransform);\n\t\treturn this._rotation;\n\t}\n\tgetLocalRotation() {\n\t\treturn this._localRotation;\n\t}\n\tgetLinearVelocity() {\n\t\tif (!this._velocitiesAvailable) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this._linearVelocity;\n\t}\n\tgetOrigin() {\n\t\tthis._updateRayTransforms();\n\t\treturn this._ray.origin;\n\t}\n\tgetDirection() {\n\t\tthis._updateRayTransforms();\n\t\treturn this._ray.direction;\n\t}\n\thitTestStart(options2 = {}) {\n\t\toptions2.inputSource = this;\n\t\toptions2.profile = this._xrInputSource.profiles[0];\n\t\tconst callback = options2.callback;\n\t\toptions2.callback = (err2, hitTestSource) => {\n\t\t\tif (hitTestSource) this.onHitTestSourceAdd(hitTestSource);\n\t\t\tif (callback) callback(err2, hitTestSource);\n\t\t};\n\t\tthis._manager.hitTest.start(options2);\n\t}\n\tonHitTestSourceAdd(hitTestSource) {\n\t\tthis._hitTestSources.push(hitTestSource);\n\t\tthis.fire(\"hittest:add\", hitTestSource);\n\t\thitTestSource.on(\"result\", (position5, rotation7, inputSource, hitTestResult) => {\n\t\t\tif (inputSource !== this) return;\n\t\t\tthis.fire(\"hittest:result\", hitTestSource, position5, rotation7, hitTestResult);\n\t\t});\n\t\thitTestSource.once(\"remove\", () => {\n\t\t\tthis.onHitTestSourceRemove(hitTestSource);\n\t\t\tthis.fire(\"hittest:remove\", hitTestSource);\n\t\t});\n\t}\n\tonHitTestSourceRemove(hitTestSource) {\n\t\tconst ind = this._hitTestSources.indexOf(hitTestSource);\n\t\tif (ind !== -1) this._hitTestSources.splice(ind, 1);\n\t}\n\tget ray() {\n\t\treturn this._rayLocal;\n\t}\n\tget position() {\n\t\treturn this._localPosition;\n\t}\n\tget rotation() {\n\t\treturn this._localRotation;\n\t}\n};\n\nvar XrInput = class extends EventHandler {\n\tstatic EVENT_ADD = \"add\";\n\tstatic EVENT_REMOVE = \"remove\";\n\tstatic EVENT_SELECT = \"select\";\n\tstatic EVENT_SELECTSTART = \"selectstart\";\n\tstatic EVENT_SELECTEND = \"selectend\";\n\tstatic EVENT_SQUEEZE = \"squeeze\";\n\tstatic EVENT_SQUEEZESTART = \"squeezestart\";\n\tstatic EVENT_SQUEEZEEND = \"squeezeend\";\n\tmanager;\n\t_inputSources = [];\n\t_onInputSourcesChangeEvt;\n\tvelocitiesSupported = false;\n\tconstructor(manager) {\n\t\tsuper();\n\t\tthis.manager = manager;\n\t\tthis.velocitiesSupported = !!(platform.browser && window.XRPose?.prototype?.hasOwnProperty(\"linearVelocity\"));\n\t\tthis._onInputSourcesChangeEvt = (evt) => {\n\t\t\tthis._onInputSourcesChange(evt);\n\t\t};\n\t\tthis.manager.on(\"start\", this._onSessionStart, this);\n\t\tthis.manager.on(\"end\", this._onSessionEnd, this);\n\t}\n\t_onSessionStart() {\n\t\tconst session = this.manager.session;\n\t\tsession.addEventListener(\"inputsourceschange\", this._onInputSourcesChangeEvt);\n\t\tsession.addEventListener(\"select\", (evt) => {\n\t\t\tconst inputSource = this._getByInputSource(evt.inputSource);\n\t\t\tinputSource.update(evt.frame);\n\t\t\tinputSource.fire(\"select\", evt);\n\t\t\tthis.fire(\"select\", inputSource, evt);\n\t\t});\n\t\tsession.addEventListener(\"selectstart\", (evt) => {\n\t\t\tconst inputSource = this._getByInputSource(evt.inputSource);\n\t\t\tinputSource.update(evt.frame);\n\t\t\tinputSource._selecting = true;\n\t\t\tinputSource.fire(\"selectstart\", evt);\n\t\t\tthis.fire(\"selectstart\", inputSource, evt);\n\t\t});\n\t\tsession.addEventListener(\"selectend\", (evt) => {\n\t\t\tconst inputSource = this._getByInputSource(evt.inputSource);\n\t\t\tinputSource.update(evt.frame);\n\t\t\tinputSource._selecting = false;\n\t\t\tinputSource.fire(\"selectend\", evt);\n\t\t\tthis.fire(\"selectend\", inputSource, evt);\n\t\t});\n\t\tsession.addEventListener(\"squeeze\", (evt) => {\n\t\t\tconst inputSource = this._getByInputSource(evt.inputSource);\n\t\t\tinputSource.update(evt.frame);\n\t\t\tinputSource.fire(\"squeeze\", evt);\n\t\t\tthis.fire(\"squeeze\", inputSource, evt);\n\t\t});\n\t\tsession.addEventListener(\"squeezestart\", (evt) => {\n\t\t\tconst inputSource = this._getByInputSource(evt.inputSource);\n\t\t\tinputSource.update(evt.frame);\n\t\t\tinputSource._squeezing = true;\n\t\t\tinputSource.fire(\"squeezestart\", evt);\n\t\t\tthis.fire(\"squeezestart\", inputSource, evt);\n\t\t});\n\t\tsession.addEventListener(\"squeezeend\", (evt) => {\n\t\t\tconst inputSource = this._getByInputSource(evt.inputSource);\n\t\t\tinputSource.update(evt.frame);\n\t\t\tinputSource._squeezing = false;\n\t\t\tinputSource.fire(\"squeezeend\", evt);\n\t\t\tthis.fire(\"squeezeend\", inputSource, evt);\n\t\t});\n\t\tconst inputSources = session.inputSources;\n\t\tfor (let i2 = 0; i2 < inputSources.length; i2++) {\n\t\t\tthis._addInputSource(inputSources[i2]);\n\t\t}\n\t}\n\t_onSessionEnd() {\n\t\tlet i2 = this._inputSources.length;\n\t\twhile (i2--) {\n\t\t\tconst inputSource = this._inputSources[i2];\n\t\t\tthis._inputSources.splice(i2, 1);\n\t\t\tinputSource.fire(\"remove\");\n\t\t\tthis.fire(\"remove\", inputSource);\n\t\t}\n\t\tconst session = this.manager.session;\n\t\tsession.removeEventListener(\"inputsourceschange\", this._onInputSourcesChangeEvt);\n\t}\n\t_onInputSourcesChange(evt) {\n\t\tfor (let i2 = 0; i2 < evt.removed.length; i2++) {\n\t\t\tthis._removeInputSource(evt.removed[i2]);\n\t\t}\n\t\tfor (let i2 = 0; i2 < evt.added.length; i2++) {\n\t\t\tthis._addInputSource(evt.added[i2]);\n\t\t}\n\t}\n\t_getByInputSource(xrInputSource) {\n\t\tfor (let i2 = 0; i2 < this._inputSources.length; i2++) {\n\t\t\tif (this._inputSources[i2].inputSource === xrInputSource) {\n\t\t\t\treturn this._inputSources[i2];\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\t_addInputSource(xrInputSource) {\n\t\tif (this._getByInputSource(xrInputSource)) {\n\t\t\treturn;\n\t\t}\n\t\tconst inputSource = new XrInputSource(this.manager, xrInputSource);\n\t\tthis._inputSources.push(inputSource);\n\t\tthis.fire(\"add\", inputSource);\n\t}\n\t_removeInputSource(xrInputSource) {\n\t\tfor (let i2 = 0; i2 < this._inputSources.length; i2++) {\n\t\t\tif (this._inputSources[i2].inputSource !== xrInputSource) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst inputSource = this._inputSources[i2];\n\t\t\tthis._inputSources.splice(i2, 1);\n\t\t\tlet h2 = inputSource.hitTestSources.length;\n\t\t\twhile (h2--) {\n\t\t\t\tinputSource.hitTestSources[h2].remove();\n\t\t\t}\n\t\t\tinputSource.fire(\"remove\");\n\t\t\tthis.fire(\"remove\", inputSource);\n\t\t\treturn;\n\t\t}\n\t}\n\tupdate(frame) {\n\t\tfor (let i2 = 0; i2 < this._inputSources.length; i2++) {\n\t\t\tthis._inputSources[i2].update(frame);\n\t\t}\n\t}\n\tget inputSources() {\n\t\treturn this._inputSources;\n\t}\n};\n\nvar vec3A2 = new Vec3();\nvar vec3B = new Vec3();\nvar mat4A = new Mat4();\nvar mat4B = new Mat4();\nvar XrLightEstimation = class extends EventHandler {\n\tstatic EVENT_AVAILABLE = \"available\";\n\tstatic EVENT_ERROR = \"error\";\n\t_manager;\n\t_supported = false;\n\t_available = false;\n\t_lightProbeRequested = false;\n\t_lightProbe = null;\n\t_intensity = 0;\n\t_rotation = new Quat();\n\t_color = new Color();\n\t_sphericalHarmonics = new Float32Array(27);\n\tconstructor(manager) {\n\t\tsuper();\n\t\tthis._manager = manager;\n\t\tthis._manager.on(\"start\", this._onSessionStart, this);\n\t\tthis._manager.on(\"end\", this._onSessionEnd, this);\n\t}\n\t_onSessionStart() {\n\t\tconst supported = !!this._manager.session.requestLightProbe;\n\t\tif (!supported) return;\n\t\tthis._supported = true;\n\t}\n\t_onSessionEnd() {\n\t\tthis._supported = false;\n\t\tthis._available = false;\n\t\tthis._lightProbeRequested = false;\n\t\tthis._lightProbe = null;\n\t}\n\tstart() {\n\t\tlet err2;\n\t\tif (!this._manager.session) {\n\t\t\terr2 = new Error(\"XR session is not running\");\n\t\t}\n\t\tif (!err2 && this._manager.type !== XRTYPE_AR) {\n\t\t\terr2 = new Error(\"XR session type is not AR\");\n\t\t}\n\t\tif (!err2 && !this._supported) {\n\t\t\terr2 = new Error(\"light-estimation is not supported\");\n\t\t}\n\t\tif (!err2 && this._lightProbe || this._lightProbeRequested) {\n\t\t\terr2 = new Error(\"light estimation is already requested\");\n\t\t}\n\t\tif (err2) {\n\t\t\tthis.fire(\"error\", err2);\n\t\t\treturn;\n\t\t}\n\t\tthis._lightProbeRequested = true;\n\t\tthis._manager.session.requestLightProbe().then((lightProbe) => {\n\t\t\tconst wasRequested = this._lightProbeRequested;\n\t\t\tthis._lightProbeRequested = false;\n\t\t\tif (this._manager.active) {\n\t\t\t\tif (wasRequested) {\n\t\t\t\t\tthis._lightProbe = lightProbe;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.fire(\"error\", new Error(\"XR session is not active\"));\n\t\t\t}\n\t\t}).catch((ex) => {\n\t\t\tthis._lightProbeRequested = false;\n\t\t\tthis.fire(\"error\", ex);\n\t\t});\n\t}\n\tend() {\n\t\tthis._lightProbeRequested = false;\n\t\tthis._lightProbe = null;\n\t\tthis._available = false;\n\t}\n\tupdate(frame) {\n\t\tif (!this._lightProbe) return;\n\t\tconst lightEstimate = frame.getLightEstimate(this._lightProbe);\n\t\tif (!lightEstimate) return;\n\t\tif (!this._available) {\n\t\t\tthis._available = true;\n\t\t\tthis.fire(\"available\");\n\t\t}\n\t\tconst pli = lightEstimate.primaryLightIntensity;\n\t\tthis._intensity = Math.max(1, Math.max(pli.x, Math.max(pli.y, pli.z)));\n\t\tvec3A2.copy(pli).mulScalar(1 / this._intensity);\n\t\tthis._color.set(vec3A2.x, vec3A2.y, vec3A2.z);\n\t\tvec3A2.set(0, 0, 0);\n\t\tvec3B.copy(lightEstimate.primaryLightDirection);\n\t\tmat4A.setLookAt(vec3B, vec3A2, Vec3.UP);\n\t\tmat4B.setFromAxisAngle(Vec3.RIGHT, 90);\n\t\tmat4A.mul(mat4B);\n\t\tthis._rotation.setFromMat4(mat4A);\n\t\tthis._sphericalHarmonics.set(lightEstimate.sphericalHarmonicsCoefficients);\n\t}\n\tget supported() {\n\t\treturn this._supported;\n\t}\n\tget available() {\n\t\treturn this._available;\n\t}\n\tget intensity() {\n\t\treturn this._available ? this._intensity : null;\n\t}\n\tget color() {\n\t\treturn this._available ? this._color : null;\n\t}\n\tget rotation() {\n\t\treturn this._available ? this._rotation : null;\n\t}\n\tget sphericalHarmonics() {\n\t\treturn this._available ? this._sphericalHarmonics : null;\n\t}\n};\n\nvar ids2 = 0;\nvar XrPlane = class extends EventHandler {\n\tstatic EVENT_REMOVE = \"remove\";\n\tstatic EVENT_CHANGE = \"change\";\n\t_id;\n\t_planeDetection;\n\t_xrPlane;\n\t_lastChangedTime;\n\t_orientation;\n\t_position = new Vec3();\n\t_rotation = new Quat();\n\tconstructor(planeDetection, xrPlane) {\n\t\tsuper();\n\t\tthis._id = ++ids2;\n\t\tthis._planeDetection = planeDetection;\n\t\tthis._xrPlane = xrPlane;\n\t\tthis._lastChangedTime = xrPlane.lastChangedTime;\n\t\tthis._orientation = xrPlane.orientation;\n\t}\n\tdestroy() {\n\t\tif (!this._xrPlane) return;\n\t\tthis._xrPlane = null;\n\t\tthis.fire(\"remove\");\n\t}\n\tupdate(frame) {\n\t\tconst manager = this._planeDetection._manager;\n\t\tconst pose = frame.getPose(this._xrPlane.planeSpace, manager._referenceSpace);\n\t\tif (pose) {\n\t\t\tthis._position.copy(pose.transform.position);\n\t\t\tthis._rotation.copy(pose.transform.orientation);\n\t\t}\n\t\tif (this._lastChangedTime !== this._xrPlane.lastChangedTime) {\n\t\t\tthis._lastChangedTime = this._xrPlane.lastChangedTime;\n\t\t\tthis.fire(\"change\");\n\t\t}\n\t}\n\tgetPosition() {\n\t\treturn this._position;\n\t}\n\tgetRotation() {\n\t\treturn this._rotation;\n\t}\n\tget id() {\n\t\treturn this._id;\n\t}\n\tget orientation() {\n\t\treturn this._orientation;\n\t}\n\tget points() {\n\t\treturn this._xrPlane.polygon;\n\t}\n\tget label() {\n\t\treturn this._xrPlane.semanticLabel || \"\";\n\t}\n};\n\nvar XrPlaneDetection = class extends EventHandler {\n\tstatic EVENT_AVAILABLE = \"available\";\n\tstatic EVENT_UNAVAILABLE = \"unavailable\";\n\tstatic EVENT_ADD = \"add\";\n\tstatic EVENT_REMOVE = \"remove\";\n\t_manager;\n\t_supported = platform.browser && !!window.XRPlane;\n\t_available = false;\n\t_planesIndex = /* @__PURE__ */ new Map();\n\t_planes = [];\n\tconstructor(manager) {\n\t\tsuper();\n\t\tthis._manager = manager;\n\t\tif (this._supported) {\n\t\t\tthis._manager.on(\"start\", this._onSessionStart, this);\n\t\t\tthis._manager.on(\"end\", this._onSessionEnd, this);\n\t\t}\n\t}\n\t_onSessionStart() {\n\t\tif (this._manager.session.enabledFeatures) {\n\t\t\tconst available = this._manager.session.enabledFeatures.indexOf(\"plane-detection\") !== -1;\n\t\t\tif (available) {\n\t\t\t\tthis._available = true;\n\t\t\t\tthis.fire(\"available\");\n\t\t\t}\n\t\t}\n\t}\n\t_onSessionEnd() {\n\t\tfor (let i2 = 0; i2 < this._planes.length; i2++) {\n\t\t\tthis._planes[i2].destroy();\n\t\t\tthis.fire(\"remove\", this._planes[i2]);\n\t\t}\n\t\tthis._planesIndex.clear();\n\t\tthis._planes.length = 0;\n\t\tif (this._available) {\n\t\t\tthis._available = false;\n\t\t\tthis.fire(\"unavailable\");\n\t\t}\n\t}\n\tupdate(frame) {\n\t\tif (!this._available) {\n\t\t\tif (!this._manager.session.enabledFeatures && frame.detectedPlanes.size) {\n\t\t\t\tthis._available = true;\n\t\t\t\tthis.fire(\"available\");\n\t\t\t} else {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tconst detectedPlanes = frame.detectedPlanes;\n\t\tfor (const [xrPlane, plane2] of this._planesIndex) {\n\t\t\tif (detectedPlanes.has(xrPlane)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tthis._planesIndex.delete(xrPlane);\n\t\t\tthis._planes.splice(this._planes.indexOf(plane2), 1);\n\t\t\tplane2.destroy();\n\t\t\tthis.fire(\"remove\", plane2);\n\t\t}\n\t\tfor (const xrPlane of detectedPlanes) {\n\t\t\tlet plane2 = this._planesIndex.get(xrPlane);\n\t\t\tif (!plane2) {\n\t\t\t\tplane2 = new XrPlane(this, xrPlane);\n\t\t\t\tthis._planesIndex.set(xrPlane, plane2);\n\t\t\t\tthis._planes.push(plane2);\n\t\t\t\tplane2.update(frame);\n\t\t\t\tthis.fire(\"add\", plane2);\n\t\t\t} else {\n\t\t\t\tplane2.update(frame);\n\t\t\t}\n\t\t}\n\t}\n\tget supported() {\n\t\treturn this._supported;\n\t}\n\tget available() {\n\t\treturn this._available;\n\t}\n\tget planes() {\n\t\treturn this._planes;\n\t}\n};\n\nvar XrAnchor = class extends EventHandler {\n\tstatic EVENT_DESTROY = \"destroy\";\n\tstatic EVENT_CHANGE = \"change\";\n\tstatic EVENT_PERSIST = \"persist\";\n\tstatic EVENT_FORGET = \"forget\";\n\t_position = new Vec3();\n\t_rotation = new Quat();\n\t_uuid = null;\n\t_uuidRequests = null;\n\tconstructor(anchors, xrAnchor, uuid = null) {\n\t\tsuper();\n\t\tthis._anchors = anchors;\n\t\tthis._xrAnchor = xrAnchor;\n\t\tthis._uuid = uuid;\n\t}\n\tdestroy() {\n\t\tif (!this._xrAnchor) return;\n\t\tconst xrAnchor = this._xrAnchor;\n\t\tthis._xrAnchor.delete();\n\t\tthis._xrAnchor = null;\n\t\tthis.fire(\"destroy\", xrAnchor, this);\n\t}\n\tupdate(frame) {\n\t\tif (!this._xrAnchor) {\n\t\t\treturn;\n\t\t}\n\t\tconst pose = frame.getPose(this._xrAnchor.anchorSpace, this._anchors.manager._referenceSpace);\n\t\tif (pose) {\n\t\t\tif (this._position.equals(pose.transform.position) && this._rotation.equals(pose.transform.orientation)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis._position.copy(pose.transform.position);\n\t\t\tthis._rotation.copy(pose.transform.orientation);\n\t\t\tthis.fire(\"change\");\n\t\t}\n\t}\n\tgetPosition() {\n\t\treturn this._position;\n\t}\n\tgetRotation() {\n\t\treturn this._rotation;\n\t}\n\tpersist(callback) {\n\t\tif (!this._anchors.persistence) {\n\t\t\tcallback?.(new Error(\"Persistent Anchors are not supported\"), null);\n\t\t\treturn;\n\t\t}\n\t\tif (this._uuid) {\n\t\t\tcallback?.(null, this._uuid);\n\t\t\treturn;\n\t\t}\n\t\tif (this._uuidRequests) {\n\t\t\tif (callback) this._uuidRequests.push(callback);\n\t\t\treturn;\n\t\t}\n\t\tthis._uuidRequests = [];\n\t\tthis._xrAnchor.requestPersistentHandle().then((uuid) => {\n\t\t\tthis._uuid = uuid;\n\t\t\tthis._anchors._indexByUuid.set(this._uuid, this);\n\t\t\tcallback?.(null, uuid);\n\t\t\tfor (const uuidRequest of this._uuidRequests) {\n\t\t\t\tuuidRequest(null, uuid);\n\t\t\t}\n\t\t\tthis._uuidRequests = null;\n\t\t\tthis.fire(\"persist\", uuid);\n\t\t}).catch((ex) => {\n\t\t\tcallback?.(ex, null);\n\t\t\tfor (const uuidRequest of this._uuidRequests) {\n\t\t\t\tuuidRequest(ex, null);\n\t\t\t}\n\t\t\tthis._uuidRequests = null;\n\t\t});\n\t}\n\tforget(callback) {\n\t\tif (!this._uuid) {\n\t\t\tcallback?.(new Error(\"Anchor is not persistent\"));\n\t\t\treturn;\n\t\t}\n\t\tthis._anchors.forget(this._uuid, (ex) => {\n\t\t\tthis._uuid = null;\n\t\t\tcallback?.(ex);\n\t\t\tthis.fire(\"forget\");\n\t\t});\n\t}\n\tget uuid() {\n\t\treturn this._uuid;\n\t}\n\tget persistent() {\n\t\treturn !!this._uuid;\n\t}\n};\n\nvar XrAnchors = class extends EventHandler {\n\tstatic EVENT_AVAILABLE = \"available\";\n\tstatic EVENT_UNAVAILABLE = \"unavailable\";\n\tstatic EVENT_ERROR = \"error\";\n\tstatic EVENT_ADD = \"add\";\n\tstatic EVENT_DESTROY = \"destroy\";\n\tmanager;\n\t_supported = platform.browser && !!window.XRAnchor;\n\t_available = false;\n\t_checkingAvailability = false;\n\t_persistence = platform.browser && !!window?.XRSession?.prototype.restorePersistentAnchor;\n\t_creationQueue = [];\n\t_index = /* @__PURE__ */ new Map();\n\t_indexByUuid = /* @__PURE__ */ new Map();\n\t_list = [];\n\t_callbacksAnchors = /* @__PURE__ */ new Map();\n\tconstructor(manager) {\n\t\tsuper();\n\t\tthis.manager = manager;\n\t\tif (this._supported) {\n\t\t\tthis.manager.on(\"start\", this._onSessionStart, this);\n\t\t\tthis.manager.on(\"end\", this._onSessionEnd, this);\n\t\t}\n\t}\n\t_onSessionStart() {\n\t\tconst available = this.manager.session.enabledFeatures?.indexOf(\"anchors\") >= 0;\n\t\tif (!available) return;\n\t\tthis._available = available;\n\t\tthis.fire(\"available\");\n\t}\n\t_onSessionEnd() {\n\t\tif (!this._available) return;\n\t\tthis._available = false;\n\t\tfor (let i3 = 0; i3 < this._creationQueue.length; i3++) {\n\t\t\tif (!this._creationQueue[i3].callback) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tthis._creationQueue[i3].callback(new Error(\"session ended\"), null);\n\t\t}\n\t\tthis._creationQueue.length = 0;\n\t\tthis._index.clear();\n\t\tthis._indexByUuid.clear();\n\t\tlet i2 = this._list.length;\n\t\twhile (i2--) {\n\t\t\tthis._list[i2].destroy();\n\t\t}\n\t\tthis._list.length = 0;\n\t\tthis.fire(\"unavailable\");\n\t}\n\t_createAnchor(xrAnchor, uuid = null) {\n\t\tconst anchor = new XrAnchor(this, xrAnchor, uuid);\n\t\tthis._index.set(xrAnchor, anchor);\n\t\tif (uuid) this._indexByUuid.set(uuid, anchor);\n\t\tthis._list.push(anchor);\n\t\tanchor.once(\"destroy\", this._onAnchorDestroy, this);\n\t\treturn anchor;\n\t}\n\t_onAnchorDestroy(xrAnchor, anchor) {\n\t\tthis._index.delete(xrAnchor);\n\t\tif (anchor.uuid) this._indexByUuid.delete(anchor.uuid);\n\t\tconst ind = this._list.indexOf(anchor);\n\t\tif (ind !== -1) this._list.splice(ind, 1);\n\t\tthis.fire(\"destroy\", anchor);\n\t}\n\tcreate(position5, rotation7, callback) {\n\t\tif (!this._available) {\n\t\t\tcallback?.(new Error(\"Anchors API is not available\"), null);\n\t\t\treturn;\n\t\t}\n\t\tif (window.XRHitTestResult && position5 instanceof XRHitTestResult) {\n\t\t\tconst hitResult = position5;\n\t\t\tcallback = rotation7;\n\t\t\tif (!this._supported) {\n\t\t\t\tcallback?.(new Error(\"Anchors API is not supported\"), null);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (!hitResult.createAnchor) {\n\t\t\t\tcallback?.(new Error(\"Creating Anchor from Hit Test is not supported\"), null);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\thitResult.createAnchor().then((xrAnchor) => {\n\t\t\t\tconst anchor = this._createAnchor(xrAnchor);\n\t\t\t\tcallback?.(null, anchor);\n\t\t\t\tthis.fire(\"add\", anchor);\n\t\t\t}).catch((ex) => {\n\t\t\t\tcallback?.(ex, null);\n\t\t\t\tthis.fire(\"error\", ex);\n\t\t\t});\n\t\t} else {\n\t\t\tthis._creationQueue.push({\n\t\t\t\ttransform: new XRRigidTransform(position5, rotation7),\n\t\t\t\tcallback\n\t\t\t});\n\t\t}\n\t}\n\trestore(uuid, callback) {\n\t\tif (!this._available) {\n\t\t\tcallback?.(new Error(\"Anchors API is not available\"), null);\n\t\t\treturn;\n\t\t}\n\t\tif (!this._persistence) {\n\t\t\tcallback?.(new Error(\"Anchor Persistence is not supported\"), null);\n\t\t\treturn;\n\t\t}\n\t\tif (!this.manager.active) {\n\t\t\tcallback?.(new Error(\"WebXR session is not active\"), null);\n\t\t\treturn;\n\t\t}\n\t\tthis.manager.session.restorePersistentAnchor(uuid).then((xrAnchor) => {\n\t\t\tconst anchor = this._createAnchor(xrAnchor, uuid);\n\t\t\tcallback?.(null, anchor);\n\t\t\tthis.fire(\"add\", anchor);\n\t\t}).catch((ex) => {\n\t\t\tcallback?.(ex, null);\n\t\t\tthis.fire(\"error\", ex);\n\t\t});\n\t}\n\tforget(uuid, callback) {\n\t\tif (!this._available) {\n\t\t\tcallback?.(new Error(\"Anchors API is not available\"));\n\t\t\treturn;\n\t\t}\n\t\tif (!this._persistence) {\n\t\t\tcallback?.(new Error(\"Anchor Persistence is not supported\"));\n\t\t\treturn;\n\t\t}\n\t\tif (!this.manager.active) {\n\t\t\tcallback?.(new Error(\"WebXR session is not active\"));\n\t\t\treturn;\n\t\t}\n\t\tthis.manager.session.deletePersistentAnchor(uuid).then(() => {\n\t\t\tcallback?.(null);\n\t\t}).catch((ex) => {\n\t\t\tcallback?.(ex);\n\t\t\tthis.fire(\"error\", ex);\n\t\t});\n\t}\n\tupdate(frame) {\n\t\tif (!this._available) {\n\t\t\tif (!this.manager.session.enabledFeatures && !this._checkingAvailability) {\n\t\t\t\tthis._checkingAvailability = true;\n\t\t\t\tframe.createAnchor(new XRRigidTransform(), this.manager._referenceSpace).then((xrAnchor) => {\n\t\t\t\t\txrAnchor.delete();\n\t\t\t\t\tif (this.manager.active) {\n\t\t\t\t\t\tthis._available = true;\n\t\t\t\t\t\tthis.fire(\"available\");\n\t\t\t\t\t}\n\t\t\t\t}).catch(() => {\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tif (this._creationQueue.length) {\n\t\t\tfor (let i2 = 0; i2 < this._creationQueue.length; i2++) {\n\t\t\t\tconst request = this._creationQueue[i2];\n\t\t\t\tframe.createAnchor(request.transform, this.manager._referenceSpace).then((xrAnchor) => {\n\t\t\t\t\tif (request.callback) {\n\t\t\t\t\t\tthis._callbacksAnchors.set(xrAnchor, request.callback);\n\t\t\t\t\t}\n\t\t\t\t}).catch((ex) => {\n\t\t\t\t\tif (request.callback) {\n\t\t\t\t\t\trequest.callback(ex, null);\n\t\t\t\t\t}\n\t\t\t\t\tthis.fire(\"error\", ex);\n\t\t\t\t});\n\t\t\t}\n\t\t\tthis._creationQueue.length = 0;\n\t\t}\n\t\tfor (const [xrAnchor, anchor] of this._index) {\n\t\t\tif (frame.trackedAnchors.has(xrAnchor)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tthis._index.delete(xrAnchor);\n\t\t\tanchor.destroy();\n\t\t}\n\t\tfor (let i2 = 0; i2 < this._list.length; i2++) {\n\t\t\tthis._list[i2].update(frame);\n\t\t}\n\t\tfor (const xrAnchor of frame.trackedAnchors) {\n\t\t\tif (this._index.has(xrAnchor)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tconst tmp = xrAnchor.anchorSpace;\n\t\t\t} catch (ex) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst anchor = this._createAnchor(xrAnchor);\n\t\t\tanchor.update(frame);\n\t\t\tconst callback = this._callbacksAnchors.get(xrAnchor);\n\t\t\tif (callback) {\n\t\t\t\tthis._callbacksAnchors.delete(xrAnchor);\n\t\t\t\tcallback(null, anchor);\n\t\t\t}\n\t\t\tthis.fire(\"add\", anchor);\n\t\t}\n\t}\n\tget supported() {\n\t\treturn this._supported;\n\t}\n\tget available() {\n\t\treturn this._available;\n\t}\n\tget persistence() {\n\t\treturn this._persistence;\n\t}\n\tget uuids() {\n\t\tif (!this._available) {\n\t\t\treturn null;\n\t\t}\n\t\tif (!this._persistence) {\n\t\t\treturn null;\n\t\t}\n\t\tif (!this.manager.active) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this.manager.session.persistentAnchors;\n\t}\n\tget list() {\n\t\treturn this._list;\n\t}\n};\n\nvar XrMesh = class extends EventHandler {\n\tstatic EVENT_REMOVE = \"remove\";\n\tstatic EVENT_CHANGE = \"change\";\n\t_meshDetection;\n\t_xrMesh;\n\t_lastChanged = 0;\n\t_position = new Vec3();\n\t_rotation = new Quat();\n\tconstructor(meshDetection, xrMesh) {\n\t\tsuper();\n\t\tthis._meshDetection = meshDetection;\n\t\tthis._xrMesh = xrMesh;\n\t\tthis._lastChanged = this._xrMesh.lastChangedTime;\n\t}\n\tget xrMesh() {\n\t\treturn this._xrMesh;\n\t}\n\tget label() {\n\t\treturn this._xrMesh.semanticLabel || \"\";\n\t}\n\tget vertices() {\n\t\treturn this._xrMesh.vertices;\n\t}\n\tget indices() {\n\t\treturn this._xrMesh.indices;\n\t}\n\tdestroy() {\n\t\tif (!this._xrMesh) return;\n\t\tthis._xrMesh = null;\n\t\tthis.fire(\"remove\");\n\t}\n\tupdate(frame) {\n\t\tconst manager = this._meshDetection._manager;\n\t\tconst pose = frame.getPose(this._xrMesh.meshSpace, manager._referenceSpace);\n\t\tif (pose) {\n\t\t\tthis._position.copy(pose.transform.position);\n\t\t\tthis._rotation.copy(pose.transform.orientation);\n\t\t}\n\t\tif (this._lastChanged !== this._xrMesh.lastChangedTime) {\n\t\t\tthis._lastChanged = this._xrMesh.lastChangedTime;\n\t\t\tthis.fire(\"change\");\n\t\t}\n\t}\n\tgetPosition() {\n\t\treturn this._position;\n\t}\n\tgetRotation() {\n\t\treturn this._rotation;\n\t}\n};\n\nvar XrMeshDetection = class extends EventHandler {\n\tstatic EVENT_AVAILABLE = \"available\";\n\tstatic EVENT_UNAVAILABLE = \"unavailable\";\n\tstatic EVENT_ADD = \"add\";\n\tstatic EVENT_REMOVE = \"remove\";\n\t_manager;\n\t_supported = platform.browser && !!window.XRMesh;\n\t_available = false;\n\t_index = /* @__PURE__ */ new Map();\n\t_list = [];\n\tconstructor(manager) {\n\t\tsuper();\n\t\tthis._manager = manager;\n\t\tif (this._supported) {\n\t\t\tthis._manager.on(\"start\", this._onSessionStart, this);\n\t\t\tthis._manager.on(\"end\", this._onSessionEnd, this);\n\t\t}\n\t}\n\tupdate(frame) {\n\t\tif (!this._available) {\n\t\t\tif (!this._manager.session.enabledFeatures && frame.detectedMeshes.size) {\n\t\t\t\tthis._available = true;\n\t\t\t\tthis.fire(\"available\");\n\t\t\t} else {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tfor (const xrMesh of frame.detectedMeshes) {\n\t\t\tlet mesh = this._index.get(xrMesh);\n\t\t\tif (!mesh) {\n\t\t\t\tmesh = new XrMesh(this, xrMesh);\n\t\t\t\tthis._index.set(xrMesh, mesh);\n\t\t\t\tthis._list.push(mesh);\n\t\t\t\tmesh.update(frame);\n\t\t\t\tthis.fire(\"add\", mesh);\n\t\t\t} else {\n\t\t\t\tmesh.update(frame);\n\t\t\t}\n\t\t}\n\t\tfor (const mesh of this._index.values()) {\n\t\t\tif (frame.detectedMeshes.has(mesh.xrMesh)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tthis._removeMesh(mesh);\n\t\t}\n\t}\n\t_removeMesh(mesh) {\n\t\tthis._index.delete(mesh.xrMesh);\n\t\tthis._list.splice(this._list.indexOf(mesh), 1);\n\t\tmesh.destroy();\n\t\tthis.fire(\"remove\", mesh);\n\t}\n\t_onSessionStart() {\n\t\tif (this._manager.session.enabledFeatures) {\n\t\t\tconst available = this._manager.session.enabledFeatures.indexOf(\"mesh-detection\") !== -1;\n\t\t\tif (!available) return;\n\t\t\tthis._available = available;\n\t\t\tthis.fire(\"available\");\n\t\t}\n\t}\n\t_onSessionEnd() {\n\t\tif (!this._available) return;\n\t\tthis._available = false;\n\t\tfor (const mesh of this._index.values()) {\n\t\t\tthis._removeMesh(mesh);\n\t\t}\n\t\tthis.fire(\"unavailable\");\n\t}\n\tget supported() {\n\t\treturn this._supported;\n\t}\n\tget available() {\n\t\treturn this._available;\n\t}\n\tget meshes() {\n\t\treturn this._list;\n\t}\n};\n\nvar XrView = class extends RenderView {\n\tstatic EVENT_DEPTHRESIZE = \"depth:resize\";\n\t_manager;\n\t_xrView;\n\t_xrCamera = null;\n\t_textureColor = null;\n\t_textureDepth = null;\n\t_depthInfo = null;\n\t_emptyDepthBuffer = new Uint8Array(32);\n\t_depthMatrix = new Mat4();\n\tconstructor(manager, xrView, viewsCount) {\n\t\tsuper();\n\t\tthis._manager = manager;\n\t\tthis._xrView = xrView;\n\t\tconst device = this._manager.app.graphicsDevice;\n\t\tif (this._manager.views.supportedColor) {\n\t\t\tthis._xrCamera = this._xrView.camera;\n\t\t\tif (this._manager.views.availableColor && this._xrCamera) {\n\t\t\t\tthis._textureColor = new Texture(device, {\n\t\t\t\t\tformat: PIXELFORMAT_RGB8,\n\t\t\t\t\tmipmaps: false,\n\t\t\t\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\t\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE,\n\t\t\t\t\tminFilter: FILTER_LINEAR,\n\t\t\t\t\tmagFilter: FILTER_LINEAR,\n\t\t\t\t\twidth: this._xrCamera.width,\n\t\t\t\t\theight: this._xrCamera.height,\n\t\t\t\t\tname: `XrView-${this._xrView.eye}-Color`\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\tif (this._manager.views.supportedDepth && this._manager.views.availableDepth) {\n\t\t\tconst filtering = this._manager.views.depthGpuOptimized ? FILTER_NEAREST : FILTER_LINEAR;\n\t\t\tthis._textureDepth = new Texture(device, {\n\t\t\t\tformat: this._manager.views.depthPixelFormat,\n\t\t\t\tarrayLength: viewsCount === 1 ? 0 : viewsCount,\n\t\t\t\tmipmaps: false,\n\t\t\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE,\n\t\t\t\tminFilter: filtering,\n\t\t\t\tmagFilter: filtering,\n\t\t\t\twidth: 4,\n\t\t\t\theight: 4,\n\t\t\t\tname: `XrView-${this._xrView.eye}-Depth`\n\t\t\t});\n\t\t\tfor (let i2 = 0; i2 < this._textureDepth._levels.length; i2++) {\n\t\t\t\tthis._textureDepth._levels[i2] = this._emptyDepthBuffer;\n\t\t\t}\n\t\t\tthis._textureDepth.upload();\n\t\t}\n\t\tif (this._textureColor || this._textureDepth) {\n\t\t\tdevice.on(\"devicelost\", this._onDeviceLost, this);\n\t\t}\n\t}\n\tget textureColor() {\n\t\treturn this._textureColor;\n\t}\n\tget textureDepth() {\n\t\treturn this._textureDepth;\n\t}\n\tget depthUvMatrix() {\n\t\treturn this._depthMatrix;\n\t}\n\tget depthValueToMeters() {\n\t\treturn this._depthInfo?.rawValueToMeters || 0;\n\t}\n\tget eye() {\n\t\treturn this._xrView.eye;\n\t}\n\tupdate(frame, xrView) {\n\t\tthis._xrView = xrView;\n\t\tif (this._manager.views.availableColor) {\n\t\t\tthis._xrCamera = this._xrView.camera;\n\t\t}\n\t\tconst viewport = this._manager.xrBridge.getViewport(frame, this._xrView);\n\t\tthis.setViewport(viewport.x, viewport.y, viewport.width, viewport.height);\n\t\tthis.setView(\n\t\t\tthis._xrView.projectionMatrix,\n\t\t\tthis._xrView.transform.matrix,\n\t\t\tthis._xrView.transform.inverse.matrix\n\t\t);\n\t\tthis._updateTextureColor();\n\t\tthis._updateDepth(frame);\n\t}\n\t_updateTextureColor() {\n\t\tif (!this._manager.views.availableColor || !this._xrCamera || !this._textureColor) {\n\t\t\treturn;\n\t\t}\n\t\tthis._manager.xrBridge?.syncCameraColorTexture(this._xrCamera, this._textureColor);\n\t}\n\t_updateDepth(frame) {\n\t\tif (!this._manager.views.availableDepth || !this._textureDepth) {\n\t\t\treturn;\n\t\t}\n\t\tconst gpu = this._manager.views.depthGpuOptimized;\n\t\tconst infoSource = gpu ? this._manager.graphicsBinding : frame;\n\t\tif (!infoSource) {\n\t\t\tthis._depthInfo = null;\n\t\t\treturn;\n\t\t}\n\t\tconst depthInfo = infoSource.getDepthInformation(this._xrView);\n\t\tif (!depthInfo) {\n\t\t\tthis._depthInfo = null;\n\t\t\treturn;\n\t\t}\n\t\tlet matrixDirty = !this._depthInfo !== !depthInfo;\n\t\tthis._depthInfo = depthInfo;\n\t\tconst width = this._depthInfo?.width || 4;\n\t\tconst height = this._depthInfo?.height || 4;\n\t\tlet resized = false;\n\t\tif (this._textureDepth.width !== width || this._textureDepth.height !== height) {\n\t\t\tthis._textureDepth._width = width;\n\t\t\tthis._textureDepth._height = height;\n\t\t\tmatrixDirty = true;\n\t\t\tresized = true;\n\t\t}\n\t\tif (matrixDirty) {\n\t\t\tif (this._depthInfo) {\n\t\t\t\tthis._depthMatrix.data.set(this._depthInfo.normDepthBufferFromNormView.matrix);\n\t\t\t} else {\n\t\t\t\tthis._depthMatrix.setIdentity();\n\t\t\t}\n\t\t}\n\t\tif (this._depthInfo) {\n\t\t\tif (gpu) {\n\t\t\t\tthis._manager.xrBridge?.syncCameraDepthTexture(\n\t\t\t\t\tthis._depthInfo,\n\t\t\t\t\tthis._textureDepth,\n\t\t\t\t\tthis._manager.views.depthPixelFormat ?? PIXELFORMAT_R32F\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tthis._textureDepth._levels[0] = new Uint8Array(this._depthInfo.data);\n\t\t\t\tthis._textureDepth.upload();\n\t\t\t}\n\t\t} else {\n\t\t\tthis._textureDepth._levels[0] = this._emptyDepthBuffer;\n\t\t\tthis._textureDepth.upload();\n\t\t}\n\t\tif (resized) this.fire(\"depth:resize\", width, height);\n\t}\n\t_onDeviceLost() {\n\t\tthis._depthInfo = null;\n\t}\n\tgetDepth(u, v6) {\n\t\tif (this._manager.views.depthGpuOptimized) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this._depthInfo?.getDepthInMeters(u, v6) ?? null;\n\t}\n\tdestroy() {\n\t\tthis._depthInfo = null;\n\t\tif (this._textureColor) {\n\t\t\tthis._textureColor.destroy();\n\t\t\tthis._textureColor = null;\n\t\t}\n\t\tif (this._textureDepth) {\n\t\t\tthis._textureDepth.destroy();\n\t\t\tthis._textureDepth = null;\n\t\t}\n\t}\n};\n\nvar XrViews = class extends EventHandler {\n\tstatic EVENT_ADD = \"add\";\n\tstatic EVENT_REMOVE = \"remove\";\n\t_manager;\n\t_index = /* @__PURE__ */ new Map();\n\t_indexTmp = /* @__PURE__ */ new Map();\n\t_list = [];\n\t_supportedColor = false;\n\t_supportedDepth = platform.browser && !!window.XRDepthInformation;\n\t_availableColor = false;\n\t_availableDepth = false;\n\t_depthUsage = \"\";\n\t_depthFormat = \"\";\n\t_depthFormats = {\n\t\t[XRDEPTHSENSINGFORMAT_L8A8]: PIXELFORMAT_LA8,\n\t\t[XRDEPTHSENSINGFORMAT_R16U]: PIXELFORMAT_DEPTH,\n\t\t[XRDEPTHSENSINGFORMAT_F32]: PIXELFORMAT_R32F\n\t};\n\tconstructor(manager) {\n\t\tsuper();\n\t\tthis._manager = manager;\n\t\tconst gd = manager.app?.graphicsDevice;\n\t\tif (platform.browser && !!window.XRCamera) {\n\t\t\tif (gd?.isWebGL2 && !!window.XRWebGLBinding) {\n\t\t\t\tthis._supportedColor = true;\n\t\t\t} else if (gd?.isWebGPU && !!window.XRGPUBinding) {\n\t\t\t\tthis._supportedColor = true;\n\t\t\t}\n\t\t}\n\t\tthis._manager.on(\"start\", this._onSessionStart, this);\n\t\tthis._manager.on(\"end\", this._onSessionEnd, this);\n\t}\n\tget list() {\n\t\treturn this._list;\n\t}\n\tget supportedColor() {\n\t\treturn this._supportedColor;\n\t}\n\tget supportedDepth() {\n\t\treturn this._supportedDepth;\n\t}\n\tget availableColor() {\n\t\treturn this._availableColor;\n\t}\n\tget availableDepth() {\n\t\treturn this._availableDepth;\n\t}\n\tget depthUsage() {\n\t\treturn this._depthUsage;\n\t}\n\tget depthGpuOptimized() {\n\t\treturn this._depthUsage === XRDEPTHSENSINGUSAGE_GPU;\n\t}\n\tget depthFormat() {\n\t\treturn this._depthFormat;\n\t}\n\tget depthPixelFormat() {\n\t\treturn this._depthFormats[this._depthFormat] ?? null;\n\t}\n\tupdate(frame, xrViews) {\n\t\tfor (let i2 = 0; i2 < xrViews.length; i2++) {\n\t\t\tthis._indexTmp.set(xrViews[i2].eye, xrViews[i2]);\n\t\t}\n\t\tfor (const [eye, xrView] of this._indexTmp) {\n\t\t\tlet view = this._index.get(eye);\n\t\t\tif (!view) {\n\t\t\t\tview = new XrView(this._manager, xrView, xrViews.length);\n\t\t\t\tthis._index.set(eye, view);\n\t\t\t\tthis._list.push(view);\n\t\t\t\tview.update(frame, xrView);\n\t\t\t\tthis.fire(\"add\", view);\n\t\t\t} else {\n\t\t\t\tview.update(frame, xrView);\n\t\t\t}\n\t\t}\n\t\tfor (const [eye, view] of this._index) {\n\t\t\tif (this._indexTmp.has(eye)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tview.destroy();\n\t\t\tthis._index.delete(eye);\n\t\t\tconst ind = this._list.indexOf(view);\n\t\t\tif (ind !== -1) this._list.splice(ind, 1);\n\t\t\tthis.fire(\"remove\", view);\n\t\t}\n\t\tthis._indexTmp.clear();\n\t}\n\tget(eye) {\n\t\treturn this._index.get(eye) || null;\n\t}\n\t_onSessionStart() {\n\t\tif (this._manager.type !== XRTYPE_AR) {\n\t\t\treturn;\n\t\t}\n\t\tif (!this._manager.session.enabledFeatures) {\n\t\t\treturn;\n\t\t}\n\t\tthis._availableColor = this._manager.session.enabledFeatures.indexOf(\"camera-access\") !== -1;\n\t\tthis._availableDepth = this._manager.session.enabledFeatures.indexOf(\"depth-sensing\") !== -1;\n\t\tif (this._availableDepth) {\n\t\t\tconst session = this._manager.session;\n\t\t\tthis._depthUsage = session.depthUsage;\n\t\t\tthis._depthFormat = session.depthDataFormat;\n\t\t}\n\t}\n\t_onSessionEnd() {\n\t\tfor (const view of this._index.values()) {\n\t\t\tview.destroy();\n\t\t}\n\t\tthis._index.clear();\n\t\tthis._availableColor = false;\n\t\tthis._availableDepth = false;\n\t\tthis._depthUsage = \"\";\n\t\tthis._depthFormat = \"\";\n\t\tthis._list.length = 0;\n\t}\n};\n\nvar XrBridge = class {\n\tdevice;\n\teventHandler;\n\timpl;\n\t_evtDeviceLost = null;\n\t_evtDeviceRestored = null;\n\t_session = null;\n\t_framebufferScaleFactor = 1;\n\t_onBindingError;\n\tconstructor(device, eventHandler) {\n\t\tthis.device = device;\n\t\tthis.eventHandler = eventHandler;\n\t\tthis.impl = device.createXrBridgeImpl(this);\n\t\tthis._evtDeviceLost = device.on(\"devicelost\", this._onDeviceLost, this);\n\t\tthis._evtDeviceRestored = device.on(\"devicerestored\", this._onDeviceRestored, this);\n\t}\n\tdestroy() {\n\t\tconst device = this.device;\n\t\tif (device) {\n\t\t\tthis._evtDeviceLost?.off();\n\t\t\tthis._evtDeviceLost = null;\n\t\t\tthis._evtDeviceRestored?.off();\n\t\t\tthis._evtDeviceRestored = null;\n\t\t\tthis.impl.endFrame();\n\t\t\tthis.impl.destroy(device);\n\t\t\tthis.impl = null;\n\t\t\tthis._session = null;\n\t\t\tthis._framebufferScaleFactor = 1;\n\t\t\tthis._onBindingError = void 0;\n\t\t\tthis.device = null;\n\t\t\tthis.eventHandler = null;\n\t\t}\n\t}\n\t_onDeviceLost() {\n\t\tthis.impl.onGraphicsDeviceLost();\n\t}\n\t_onDeviceRestored() {\n\t\tthis.impl.onGraphicsDeviceRestored();\n\t}\n\tattachPresentation(session, options2) {\n\t\tthis._session = session;\n\t\tthis._framebufferScaleFactor = options2.framebufferScaleFactor;\n\t\tthis._onBindingError = options2.onBindingError;\n\t\tthis.impl.attachPresentation(session, options2);\n\t}\n\treleasePresentation() {\n\t\tthis.impl.releasePresentation();\n\t}\n\tbeginFrame(frame, referenceSpace) {\n\t\tthis.impl.beginFrame(frame, referenceSpace);\n\t}\n\tendFrame() {\n\t\tthis.impl.endFrame();\n\t}\n\tgetFramebufferSize(frame, out) {\n\t\tthis.impl.getFramebufferSize(frame, out);\n\t}\n\tgetViewport(frame, xrView) {\n\t\treturn this.impl.getViewport(frame, xrView);\n\t}\n\tsyncCameraColorTexture(xrCamera, texture) {\n\t\tthis.impl?.syncCameraColorTexture?.(xrCamera, texture);\n\t}\n\tsyncCameraDepthTexture(depthInfo, texture, depthPixelFormat) {\n\t\tthis.impl?.syncCameraDepthTexture?.(depthInfo, texture, depthPixelFormat);\n\t}\n\tget presentationLayer() {\n\t\treturn this.impl.presentationLayer ?? null;\n\t}\n\tget graphicsBinding() {\n\t\treturn this.impl.graphicsBinding ?? null;\n\t}\n};\n\nvar XrManager = class _XrManager extends EventHandler {\n\tstatic EVENT_AVAILABLE = \"available\";\n\tstatic EVENT_START = \"start\";\n\tstatic EVENT_END = \"end\";\n\tstatic EVENT_UPDATE = \"update\";\n\tstatic EVENT_ERROR = \"error\";\n\tapp;\n\t_supported = platform.browser && !!navigator.xr;\n\t_available = {};\n\t_type = null;\n\t_spaceType = null;\n\t_session = null;\n\txrBridge = null;\n\tget graphicsBinding() {\n\t\treturn this.xrBridge?.graphicsBinding ?? null;\n\t}\n\t_referenceSpace = null;\n\tdomOverlay;\n\thitTest;\n\timageTracking;\n\tplaneDetection;\n\tmeshDetection;\n\tinput;\n\tlightEstimation;\n\tviews;\n\tanchors;\n\t_camera = null;\n\t_localPosition = new Vec3();\n\t_localRotation = new Quat();\n\t_depthNear = 0.1;\n\t_depthFar = 1e3;\n\t_supportedFrameRates = null;\n\t_width = 0;\n\t_height = 0;\n\t_framebufferSize = new Vec2();\n\t_framebufferScaleFactor = 1;\n\tconstructor(app2) {\n\t\tsuper();\n\t\tthis.app = app2;\n\t\tthis._available[XRTYPE_INLINE] = false;\n\t\tthis._available[XRTYPE_VR] = false;\n\t\tthis._available[XRTYPE_AR] = false;\n\t\tthis.domOverlay = new XrDomOverlay(this);\n\t\tthis.hitTest = new XrHitTest(this);\n\t\tthis.imageTracking = new XrImageTracking(this);\n\t\tthis.planeDetection = new XrPlaneDetection(this);\n\t\tthis.meshDetection = new XrMeshDetection(this);\n\t\tthis.input = new XrInput(this);\n\t\tthis.lightEstimation = new XrLightEstimation(this);\n\t\tthis.anchors = new XrAnchors(this);\n\t\tthis.views = new XrViews(this);\n\t\tif (this._supported && _XrManager._allowsSpatialTracking()) {\n\t\t\tnavigator.xr.addEventListener(\"devicechange\", () => {\n\t\t\t\tthis._deviceAvailabilityCheck();\n\t\t\t});\n\t\t\tthis._deviceAvailabilityCheck();\n\t\t}\n\t}\n\tstatic _allowsSpatialTracking() {\n\t\tconst featurePolicy = platform.browser && document.featurePolicy;\n\t\tif (featurePolicy?.allowsFeature) {\n\t\t\tconst allowed = featurePolicy.allowsFeature(\"xr-spatial-tracking\");\n\t\t\tif (!allowed) {\n\t\t\t}\n\t\t\treturn allowed;\n\t\t}\n\t\treturn true;\n\t}\n\tstatic async isDeviceSupported(deviceType, type) {\n\t\tif (!platform.browser || !navigator.xr || !_XrManager._backendSupportsXr(deviceType)) {\n\t\t\treturn false;\n\t\t}\n\t\ttry {\n\t\t\treturn await navigator.xr.isSessionSupported(type);\n\t\t} catch {\n\t\t\treturn false;\n\t\t}\n\t}\n\tstatic _backendSupportsXr(deviceType) {\n\t\treturn deviceType !== DEVICETYPE_WEBGPU || typeof globalThis.XRGPUBinding !== \"undefined\";\n\t}\n\tdestroy() {\n\t\tif (this.xrBridge) {\n\t\t\tthis.xrBridge.destroy();\n\t\t\tthis.xrBridge = null;\n\t\t}\n\t}\n\tstart(camera, type, spaceType, options2) {\n\t\tlet callback = options2;\n\t\tif (typeof options2 === \"object\") {\n\t\t\tcallback = options2.callback;\n\t\t}\n\t\tif (!this._available[type]) {\n\t\t\twarnInsecureContext(\"WebXR\");\n\t\t\tif (callback) callback(new Error(\"XR is not available\"));\n\t\t\treturn;\n\t\t}\n\t\tif (this._session) {\n\t\t\tif (callback) callback(new Error(\"XR session is already started\"));\n\t\t\treturn;\n\t\t}\n\t\tthis._camera = camera;\n\t\tthis._type = type;\n\t\tthis._spaceType = spaceType;\n\t\tthis._framebufferScaleFactor = options2?.framebufferScaleFactor ?? 1;\n\t\tthis._setClipPlanes(camera.nearClip, camera.farClip);\n\t\tconst opts = {\n\t\t\trequiredFeatures: [spaceType],\n\t\t\toptionalFeatures: []\n\t\t};\n\t\tconst device = this.app.graphicsDevice;\n\t\tif (device?.isWebGPU) {\n\t\t\topts.requiredFeatures.push(\"webgpu\");\n\t\t}\n\t\tif (type === XRTYPE_AR) {\n\t\t\topts.optionalFeatures.push(\"light-estimation\");\n\t\t\topts.optionalFeatures.push(\"hit-test\");\n\t\t\tif (options2) {\n\t\t\t\tif (options2.imageTracking && this.imageTracking.supported) {\n\t\t\t\t\topts.optionalFeatures.push(\"image-tracking\");\n\t\t\t\t}\n\t\t\t\tif (options2.planeDetection) {\n\t\t\t\t\topts.optionalFeatures.push(\"plane-detection\");\n\t\t\t\t}\n\t\t\t\tif (options2.meshDetection) {\n\t\t\t\t\topts.optionalFeatures.push(\"mesh-detection\");\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (this.domOverlay.supported && this.domOverlay.root) {\n\t\t\t\topts.optionalFeatures.push(\"dom-overlay\");\n\t\t\t\topts.domOverlay = { root: this.domOverlay.root };\n\t\t\t}\n\t\t\tif (options2 && options2.anchors && this.anchors.supported) {\n\t\t\t\topts.optionalFeatures.push(\"anchors\");\n\t\t\t}\n\t\t\tif (options2 && options2.depthSensing && this.views.supportedDepth) {\n\t\t\t\topts.optionalFeatures.push(\"depth-sensing\");\n\t\t\t\tconst usagePreference = [];\n\t\t\t\tconst dataFormatPreference = [];\n\t\t\t\tusagePreference.push(XRDEPTHSENSINGUSAGE_GPU, XRDEPTHSENSINGUSAGE_CPU);\n\t\t\t\tdataFormatPreference.push(XRDEPTHSENSINGFORMAT_F32, XRDEPTHSENSINGFORMAT_L8A8, XRDEPTHSENSINGFORMAT_R16U);\n\t\t\t\tif (options2.depthSensing.usagePreference) {\n\t\t\t\t\tconst ind = usagePreference.indexOf(options2.depthSensing.usagePreference);\n\t\t\t\t\tif (ind !== -1) usagePreference.splice(ind, 1);\n\t\t\t\t\tusagePreference.unshift(options2.depthSensing.usagePreference);\n\t\t\t\t}\n\t\t\t\tif (options2.depthSensing.dataFormatPreference) {\n\t\t\t\t\tconst ind = dataFormatPreference.indexOf(options2.depthSensing.dataFormatPreference);\n\t\t\t\t\tif (ind !== -1) dataFormatPreference.splice(ind, 1);\n\t\t\t\t\tdataFormatPreference.unshift(options2.depthSensing.dataFormatPreference);\n\t\t\t\t}\n\t\t\t\topts.depthSensing = {\n\t\t\t\t\tusagePreference,\n\t\t\t\t\tdataFormatPreference\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (options2 && options2.cameraColor && this.views.supportedColor) {\n\t\t\t\topts.optionalFeatures.push(\"camera-access\");\n\t\t\t}\n\t\t}\n\t\topts.optionalFeatures.push(\"hand-tracking\");\n\t\tif (options2 && options2.optionalFeatures) {\n\t\t\topts.optionalFeatures = opts.optionalFeatures.concat(options2.optionalFeatures);\n\t\t}\n\t\tif (this.imageTracking.supported && this.imageTracking.images.length) {\n\t\t\tthis.imageTracking.prepareImages((err2, trackedImages) => {\n\t\t\t\tif (err2) {\n\t\t\t\t\tif (callback) callback(err2);\n\t\t\t\t\tthis.fire(\"error\", err2);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (trackedImages !== null) {\n\t\t\t\t\topts.trackedImages = trackedImages;\n\t\t\t\t}\n\t\t\t\tthis._onStartOptionsReady(type, spaceType, opts, callback);\n\t\t\t});\n\t\t} else {\n\t\t\tthis._onStartOptionsReady(type, spaceType, opts, callback);\n\t\t}\n\t}\n\t_onStartOptionsReady(type, spaceType, options2, callback) {\n\t\tnavigator.xr.requestSession(type, options2).then((session) => {\n\t\t\tthis._onSessionStart(session, spaceType, callback);\n\t\t}).catch((ex) => {\n\t\t\tthis._camera = null;\n\t\t\tthis._type = null;\n\t\t\tthis._spaceType = null;\n\t\t\tif (callback) callback(ex);\n\t\t\tthis.fire(\"error\", ex);\n\t\t});\n\t}\n\tend(callback) {\n\t\tif (!this._session) {\n\t\t\tif (callback) callback(new Error(\"XR Session is not initialized\"));\n\t\t\treturn;\n\t\t}\n\t\tthis.xrBridge?.releasePresentation();\n\t\tif (callback) this.once(\"end\", callback);\n\t\tthis._session.end();\n\t}\n\tisAvailable(type) {\n\t\treturn this._available[type];\n\t}\n\t_deviceAvailabilityCheck() {\n\t\tfor (const key in this._available) {\n\t\t\tthis._sessionSupportCheck(key);\n\t\t}\n\t}\n\tinitiateRoomCapture(callback) {\n\t\tif (!this._session) {\n\t\t\tcallback(new Error(\"Session is not active\"));\n\t\t\treturn;\n\t\t}\n\t\tif (!this._session.initiateRoomCapture) {\n\t\t\tcallback(new Error(\"Session does not support manual room capture\"));\n\t\t\treturn;\n\t\t}\n\t\tthis._session.initiateRoomCapture().then(() => {\n\t\t\tif (callback) callback(null);\n\t\t}).catch((err2) => {\n\t\t\tif (callback) callback(err2);\n\t\t});\n\t}\n\tupdateTargetFrameRate(frameRate, callback) {\n\t\tif (!this._session?.updateTargetFrameRate) {\n\t\t\tcallback?.(new Error(\"unable to update frameRate\"));\n\t\t\treturn;\n\t\t}\n\t\tthis._session.updateTargetFrameRate(frameRate).then(() => {\n\t\t\tcallback?.();\n\t\t}).catch((err2) => {\n\t\t\tcallback?.(err2);\n\t\t});\n\t}\n\t_sessionSupportCheck(type) {\n\t\tnavigator.xr.isSessionSupported(type).then((available) => {\n\t\t\tif (available && !_XrManager._backendSupportsXr(this.app?.graphicsDevice?.deviceType)) {\n\t\t\t\tavailable = false;\n\t\t\t}\n\t\t\tif (this._available[type] === available) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis._available[type] = available;\n\t\t\tthis.fire(\"available\", type, available);\n\t\t\tthis.fire(`available:${type}`, available);\n\t\t}).catch((ex) => {\n\t\t\tthis.fire(\"error\", ex);\n\t\t});\n\t}\n\t_onSessionStart(session, spaceType, callback) {\n\t\tlet failed = false;\n\t\tthis._session = session;\n\t\tthis._camera.camera.xrViews = this.views.list;\n\t\tthis.xrBridge = new XrBridge(this.app.graphicsDevice, this);\n\t\tconst onVisibilityChange = () => {\n\t\t\tthis.fire(\"visibility:change\", session.visibilityState);\n\t\t};\n\t\tconst onClipPlanesChange = () => {\n\t\t\tthis._setClipPlanes(this._camera.nearClip, this._camera.farClip);\n\t\t};\n\t\tconst onFrameRateChange = () => {\n\t\t\tthis.fire(\"frameratechange\", this._session?.frameRate);\n\t\t};\n\t\tconst onEnd = () => {\n\t\t\tif (this._camera) {\n\t\t\t\tthis._camera.off(\"set_nearClip\", onClipPlanesChange);\n\t\t\t\tthis._camera.off(\"set_farClip\", onClipPlanesChange);\n\t\t\t\tthis._camera.camera.xrViews = null;\n\t\t\t\tthis._camera = null;\n\t\t\t}\n\t\t\tsession.removeEventListener(\"end\", onEnd);\n\t\t\tsession.removeEventListener(\"visibilitychange\", onVisibilityChange);\n\t\t\tsession.removeEventListener(\"frameratechange\", onFrameRateChange);\n\t\t\tif (!failed) this.fire(\"end\");\n\t\t\tif (this.xrBridge) {\n\t\t\t\tthis.xrBridge.destroy();\n\t\t\t\tthis.xrBridge = null;\n\t\t\t}\n\t\t\tthis._session = null;\n\t\t\tthis._referenceSpace = null;\n\t\t\tthis._width = 0;\n\t\t\tthis._height = 0;\n\t\t\tthis._type = null;\n\t\t\tthis._spaceType = null;\n\t\t\tif (this.app.systems) {\n\t\t\t\tthis.app.requestAnimationFrame();\n\t\t\t}\n\t\t};\n\t\tsession.addEventListener(\"end\", onEnd);\n\t\tsession.addEventListener(\"visibilitychange\", onVisibilityChange);\n\t\tthis._camera.on(\"set_nearClip\", onClipPlanesChange);\n\t\tthis._camera.on(\"set_farClip\", onClipPlanesChange);\n\t\tconst gd = this.app.graphicsDevice;\n\t\tconst framebufferScaleFactor = gd.maxPixelRatio / window.devicePixelRatio * this._framebufferScaleFactor;\n\t\tthis.xrBridge.attachPresentation(this._session, {\n\t\t\tframebufferScaleFactor,\n\t\t\tdepthNear: this._depthNear,\n\t\t\tdepthFar: this._depthFar,\n\t\t\tonBindingError: (ex) => {\n\t\t\t\tthis.fire(\"error\", ex);\n\t\t\t}\n\t\t});\n\t\tif (this.session.supportedFrameRates) {\n\t\t\tthis._supportedFrameRates = Array.from(this.session.supportedFrameRates);\n\t\t} else {\n\t\t\tthis._supportedFrameRates = null;\n\t\t}\n\t\tthis._session.addEventListener(\"frameratechange\", onFrameRateChange);\n\t\tsession.requestReferenceSpace(spaceType).then((referenceSpace) => {\n\t\t\tthis._referenceSpace = referenceSpace;\n\t\t\tthis.app.requestAnimationFrame();\n\t\t\tif (callback) callback(null);\n\t\t\tthis.fire(\"start\");\n\t\t}).catch((ex) => {\n\t\t\tfailed = true;\n\t\t\tsession.end();\n\t\t\tif (callback) callback(ex);\n\t\t\tthis.fire(\"error\", ex);\n\t\t});\n\t}\n\t_setClipPlanes(near, far) {\n\t\tif (this._depthNear === near && this._depthFar === far) {\n\t\t\treturn;\n\t\t}\n\t\tthis._depthNear = near;\n\t\tthis._depthFar = far;\n\t\tif (!this._session) {\n\t\t\treturn;\n\t\t}\n\t\tthis._session.updateRenderState({\n\t\t\tdepthNear: this._depthNear,\n\t\t\tdepthFar: this._depthFar\n\t\t});\n\t}\n\tupdate(frame) {\n\t\tif (!this._session) return false;\n\t\tthis.xrBridge.getFramebufferSize(frame, this._framebufferSize);\n\t\tconst width = this._framebufferSize.x;\n\t\tconst height = this._framebufferSize.y;\n\t\tif (this._width !== width || this._height !== height) {\n\t\t\tthis._width = width;\n\t\t\tthis._height = height;\n\t\t\tthis.app.graphicsDevice.setResolution(width, height);\n\t\t}\n\t\tconst pose = frame.getViewerPose(this._referenceSpace);\n\t\tif (!pose) return false;\n\t\tconst lengthOld = this.views.list.length;\n\t\tthis.views.update(frame, pose.views);\n\t\tconst posePosition = pose.transform.position;\n\t\tconst poseOrientation = pose.transform.orientation;\n\t\tthis._localPosition.set(posePosition.x, posePosition.y, posePosition.z);\n\t\tthis._localRotation.set(poseOrientation.x, poseOrientation.y, poseOrientation.z, poseOrientation.w);\n\t\tif (lengthOld === 0 && this.views.list.length > 0) {\n\t\t\tconst viewProjMat2 = new Mat4();\n\t\t\tconst view = this.views.list[0];\n\t\t\tviewProjMat2.copy(view.projMat);\n\t\t\tconst data2 = viewProjMat2.data;\n\t\t\tconst fov = 2 * Math.atan(1 / data2[5]) * 180 / Math.PI;\n\t\t\tconst aspectRatio = data2[5] / data2[0];\n\t\t\tconst farClip = data2[14] / (data2[10] + 1);\n\t\t\tconst nearClip = data2[14] / (data2[10] - 1);\n\t\t\tconst horizontalFov = false;\n\t\t\tconst camera = this._camera.camera;\n\t\t\tcamera.setXrProperties({\n\t\t\t\taspectRatio,\n\t\t\t\tfarClip,\n\t\t\t\tfov,\n\t\t\t\thorizontalFov,\n\t\t\t\tnearClip\n\t\t\t});\n\t\t}\n\t\tthis._camera.camera._node.setLocalPosition(this._localPosition);\n\t\tthis._camera.camera._node.setLocalRotation(this._localRotation);\n\t\tthis.input.update(frame);\n\t\tif (this._type === XRTYPE_AR) {\n\t\t\tif (this.hitTest.supported) {\n\t\t\t\tthis.hitTest.update(frame);\n\t\t\t}\n\t\t\tif (this.lightEstimation.supported) {\n\t\t\t\tthis.lightEstimation.update(frame);\n\t\t\t}\n\t\t\tif (this.imageTracking.supported) {\n\t\t\t\tthis.imageTracking.update(frame);\n\t\t\t}\n\t\t\tif (this.anchors.supported) {\n\t\t\t\tthis.anchors.update(frame);\n\t\t\t}\n\t\t\tif (this.planeDetection.supported) {\n\t\t\t\tthis.planeDetection.update(frame);\n\t\t\t}\n\t\t\tif (this.meshDetection.supported) {\n\t\t\t\tthis.meshDetection.update(frame);\n\t\t\t}\n\t\t}\n\t\tthis.fire(\"update\", frame);\n\t\tthis.xrBridge.beginFrame(frame, this._referenceSpace);\n\t\treturn true;\n\t}\n\tget supported() {\n\t\treturn this._supported;\n\t}\n\tget active() {\n\t\treturn !!this._session;\n\t}\n\tget type() {\n\t\treturn this._type;\n\t}\n\tget spaceType() {\n\t\treturn this._spaceType;\n\t}\n\tget session() {\n\t\treturn this._session;\n\t}\n\tget frameRate() {\n\t\treturn this._session?.frameRate ?? null;\n\t}\n\tget supportedFrameRates() {\n\t\treturn this._supportedFrameRates;\n\t}\n\tget framebufferScaleFactor() {\n\t\treturn this._framebufferScaleFactor;\n\t}\n\tset fixedFoveation(value) {\n\t\tconst layer = this.xrBridge?.presentationLayer;\n\t\tif ((layer?.fixedFoveation ?? null) !== null) {\n\t\t\tif (this.app.graphicsDevice.samples > 1) {\n\t\t\t}\n\t\t\tlayer.fixedFoveation = value;\n\t\t}\n\t}\n\tget fixedFoveation() {\n\t\tconst layer = this.xrBridge?.presentationLayer;\n\t\treturn layer?.fixedFoveation ?? null;\n\t}\n\tget camera() {\n\t\treturn this._camera ? this._camera.entity : null;\n\t}\n\tget visibilityState() {\n\t\tif (!this._session) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this._session.visibilityState;\n\t}\n};\n\nvar Application = class extends AppBase {\n\tconstructor(canvas, options2 = {}) {\n\t\tsuper(canvas);\n\t\tconst appOptions = new AppOptions();\n\t\tappOptions.graphicsDevice = options2.graphicsDevice ?? this.createDevice(canvas, options2);\n\t\tthis.addComponentSystems(appOptions);\n\t\tthis.addResourceHandles(appOptions);\n\t\tappOptions.elementInput = options2.elementInput;\n\t\tappOptions.keyboard = options2.keyboard;\n\t\tappOptions.mouse = options2.mouse;\n\t\tappOptions.touch = options2.touch;\n\t\tappOptions.gamepads = options2.gamepads;\n\t\tappOptions.scriptPrefix = options2.scriptPrefix;\n\t\tappOptions.assetPrefix = options2.assetPrefix;\n\t\tappOptions.scriptsOrder = options2.scriptsOrder;\n\t\tappOptions.soundManager = new SoundManager();\n\t\tappOptions.lightmapper = Lightmapper;\n\t\tappOptions.batchManager = BatchManager;\n\t\tappOptions.xr = XrManager;\n\t\tthis.init(appOptions);\n\t}\n\tcreateDevice(canvas, options2) {\n\t\tif (!options2.graphicsDeviceOptions) {\n\t\t\toptions2.graphicsDeviceOptions = {};\n\t\t}\n\t\tif (platform.browser && !!navigator.xr) {\n\t\t\toptions2.graphicsDeviceOptions.xrCompatible = true;\n\t\t}\n\t\toptions2.graphicsDeviceOptions.alpha = options2.graphicsDeviceOptions.alpha || false;\n\t\treturn new WebglGraphicsDevice(canvas, options2.graphicsDeviceOptions);\n\t}\n\taddComponentSystems(appOptions) {\n\t\tappOptions.componentSystems = [\n\t\t\tRigidBodyComponentSystem,\n\t\t\tCollisionComponentSystem,\n\t\t\tJointComponentSystem,\n\t\t\tAnimationComponentSystem,\n\t\t\tAnimComponentSystem,\n\t\t\tModelComponentSystem,\n\t\t\tRenderComponentSystem,\n\t\t\tCameraComponentSystem,\n\t\t\tLightComponentSystem,\n\t\t\tScriptComponentSystem,\n\t\t\tSoundComponentSystem,\n\t\t\tAudioListenerComponentSystem,\n\t\t\tParticleSystemComponentSystem,\n\t\t\tScreenComponentSystem,\n\t\t\tElementComponentSystem,\n\t\t\tButtonComponentSystem,\n\t\t\tScrollViewComponentSystem,\n\t\t\tScrollbarComponentSystem,\n\t\t\tSpriteComponentSystem,\n\t\t\tLayoutGroupComponentSystem,\n\t\t\tLayoutChildComponentSystem,\n\t\t\tZoneComponentSystem,\n\t\t\tGSplatComponentSystem\n\t\t];\n\t}\n\taddResourceHandles(appOptions) {\n\t\tappOptions.resourceHandlers = [\n\t\t\tRenderHandler,\n\t\t\tAnimationHandler,\n\t\t\tAnimClipHandler,\n\t\t\tAnimStateGraphHandler,\n\t\t\tModelHandler,\n\t\t\tMaterialHandler,\n\t\t\tTextureHandler,\n\t\t\tTextHandler,\n\t\t\tJsonHandler,\n\t\t\tAudioHandler,\n\t\t\tScriptHandler,\n\t\t\tSceneHandler,\n\t\t\tCubemapHandler,\n\t\t\tHtmlHandler,\n\t\t\tCssHandler,\n\t\t\tShaderHandler,\n\t\t\tHierarchyHandler,\n\t\t\tFolderHandler,\n\t\t\tFontHandler,\n\t\t\tBinaryHandler,\n\t\t\tTextureAtlasHandler,\n\t\t\tSpriteHandler,\n\t\t\tTemplateHandler,\n\t\t\tContainerHandler,\n\t\t\tGSplatHandler\n\t\t];\n\t}\n};\n\nvar NullPhysicsWorld = class extends PhysicsWorld {\n};\n\nvar AssetListLoader = class extends EventHandler {\n\t_assets = /* @__PURE__ */ new Set();\n\t_loadingAssets = /* @__PURE__ */ new Set();\n\t_waitingAssets = /* @__PURE__ */ new Set();\n\t_loading = false;\n\t_loaded = false;\n\t_failed = [];\n\tconstructor(assetList, assetRegistry) {\n\t\tsuper();\n\t\tthis._registry = assetRegistry;\n\t\tassetList.forEach((a) => {\n\t\t\tif (a instanceof Asset) {\n\t\t\t\tif (!a.registry) {\n\t\t\t\t\ta.registry = assetRegistry;\n\t\t\t\t}\n\t\t\t\tthis._assets.add(a);\n\t\t\t} else {\n\t\t\t\tconst asset = assetRegistry.get(a);\n\t\t\t\tif (asset) {\n\t\t\t\t\tthis._assets.add(asset);\n\t\t\t\t} else {\n\t\t\t\t\tthis._waitForAsset(a);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\tdestroy() {\n\t\tthis._registry.off(\"load\", this._onLoad);\n\t\tthis._registry.off(\"error\", this._onError);\n\t\tthis._waitingAssets.forEach((id14) => {\n\t\t\tthis._registry.off(`add:${id14}`, this._onAddAsset);\n\t\t});\n\t\tthis.off(\"progress\");\n\t\tthis.off(\"load\");\n\t}\n\t_assetHasDependencies(asset) {\n\t\treturn asset.type === \"model\" && asset.file?.url && asset.file.url && asset.file.url.match(/.json$/g);\n\t}\n\tload(done, scope) {\n\t\tif (this._loading) {\n\t\t\treturn;\n\t\t}\n\t\tthis._loading = true;\n\t\tthis._callback = done;\n\t\tthis._scope = scope;\n\t\tthis._registry.on(\"load\", this._onLoad, this);\n\t\tthis._registry.on(\"error\", this._onError, this);\n\t\tlet loadingAssets = false;\n\t\tthis._assets.forEach((asset) => {\n\t\t\tif (!asset.loaded) {\n\t\t\t\tloadingAssets = true;\n\t\t\t\tif (this._assetHasDependencies(asset)) {\n\t\t\t\t\tthis._registry.loadFromUrl(asset.file.url, asset.type, (err2, loadedAsset) => {\n\t\t\t\t\t\tif (err2) {\n\t\t\t\t\t\t\tthis._onError(err2, asset);\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis._onLoad(asset);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tthis._loadingAssets.add(asset);\n\t\t\t\tthis._registry.add(asset);\n\t\t\t}\n\t\t});\n\t\tthis._loadingAssets.forEach((asset) => {\n\t\t\tif (!this._assetHasDependencies(asset)) {\n\t\t\t\tthis._registry.load(asset);\n\t\t\t}\n\t\t});\n\t\tif (!loadingAssets && this._waitingAssets.size === 0) {\n\t\t\tthis._loadingComplete();\n\t\t}\n\t}\n\tready(done, scope = this) {\n\t\tif (this._loaded) {\n\t\t\tdone.call(scope, Array.from(this._assets));\n\t\t} else {\n\t\t\tthis.once(\"load\", (assets) => {\n\t\t\t\tdone.call(scope, assets);\n\t\t\t});\n\t\t}\n\t}\n\t// called when all assets are loaded\n\t_loadingComplete() {\n\t\tif (this._loaded) return;\n\t\tthis._loaded = true;\n\t\tthis._registry.off(\"load\", this._onLoad, this);\n\t\tthis._registry.off(\"error\", this._onError, this);\n\t\tif (this._failed.length) {\n\t\t\tif (this._callback) {\n\t\t\t\tthis._callback.call(this._scope, \"Failed to load some assets\", this._failed);\n\t\t\t}\n\t\t\tthis.fire(\"error\", this._failed);\n\t\t} else {\n\t\t\tif (this._callback) {\n\t\t\t\tthis._callback.call(this._scope);\n\t\t\t}\n\t\t\tthis.fire(\"load\", Array.from(this._assets));\n\t\t}\n\t}\n\t// called when an (any) asset is loaded\n\t_onLoad(asset) {\n\t\tif (this._loadingAssets.has(asset)) {\n\t\t\tthis.fire(\"progress\", asset);\n\t\t\tthis._loadingAssets.delete(asset);\n\t\t}\n\t\tif (this._loadingAssets.size === 0) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis._loadingComplete();\n\t\t\t}, 0);\n\t\t}\n\t}\n\t// called when an asset fails to load\n\t_onError(err2, asset) {\n\t\tif (this._loadingAssets.has(asset)) {\n\t\t\tthis._failed.push(asset);\n\t\t\tthis._loadingAssets.delete(asset);\n\t\t}\n\t\tif (this._loadingAssets.size === 0) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis._loadingComplete();\n\t\t\t}, 0);\n\t\t}\n\t}\n\t// called when a expected asset is added to the asset registry\n\t_onAddAsset(asset) {\n\t\tthis._waitingAssets.delete(asset);\n\t\tthis._assets.add(asset);\n\t\tif (!asset.loaded) {\n\t\t\tthis._loadingAssets.add(asset);\n\t\t\tthis._registry.load(asset);\n\t\t}\n\t}\n\t_waitForAsset(assetId) {\n\t\tthis._waitingAssets.add(assetId);\n\t\tthis._registry.once(`add:${assetId}`, this._onAddAsset, this);\n\t}\n};\n\nvar MAX_TEXTURE_SIZE = 4096;\nvar DEFAULT_TEXTURE_SIZE = 512;\nvar Atlas = class {\n\tconstructor(device, width, height, name) {\n\t\tthis.canvas = document.createElement(\"canvas\");\n\t\tthis.canvas.width = width;\n\t\tthis.canvas.height = height;\n\t\tthis.texture = new Texture(device, {\n\t\t\tname,\n\t\t\tformat: PIXELFORMAT_SRGBA8,\n\t\t\twidth,\n\t\t\theight,\n\t\t\tmipmaps: true,\n\t\t\tminFilter: FILTER_LINEAR_MIPMAP_LINEAR,\n\t\t\tmagFilter: FILTER_LINEAR,\n\t\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE,\n\t\t\tlevels: [this.canvas]\n\t\t});\n\t\tthis.ctx = this.canvas.getContext(\"2d\", {\n\t\t\talpha: true\n\t\t});\n\t}\n\tdestroy() {\n\t\tthis.texture.destroy();\n\t}\n\tclear(clearColor) {\n\t\tconst { width, height } = this.canvas;\n\t\tthis.ctx.clearRect(0, 0, width, height);\n\t\tthis.ctx.fillStyle = clearColor;\n\t\tthis.ctx.fillRect(0, 0, width, height);\n\t}\n};\nvar CanvasFont = class extends EventHandler {\n\tconstructor(app2, options2 = {}) {\n\t\tsuper();\n\t\tthis.type = \"bitmap\";\n\t\tthis.app = app2;\n\t\tthis.intensity = 0;\n\t\tthis.fontWeight = options2.fontWeight || \"normal\";\n\t\tthis.fontSize = parseInt(options2.fontSize, 10);\n\t\tthis.glyphSize = this.fontSize;\n\t\tthis.fontName = options2.fontName || \"Arial\";\n\t\tthis.color = options2.color || new Color(1, 1, 1);\n\t\tthis.padding = options2.padding || 0;\n\t\tthis.width = Math.min(MAX_TEXTURE_SIZE, options2.width || DEFAULT_TEXTURE_SIZE);\n\t\tthis.height = Math.min(MAX_TEXTURE_SIZE, options2.height || DEFAULT_TEXTURE_SIZE);\n\t\tthis.atlases = [];\n\t\tthis.chars = \"\";\n\t\tthis.data = {};\n\t}\n\tcreateTextures(text) {\n\t\tconst _chars = this._normalizeCharsSet(text);\n\t\tif (_chars.length !== this.chars.length) {\n\t\t\tthis._renderAtlas(_chars);\n\t\t\treturn;\n\t\t}\n\t\tfor (let i2 = 0; i2 < _chars.length; i2++) {\n\t\t\tif (_chars[i2] !== this.chars[i2]) {\n\t\t\t\tthis._renderAtlas(_chars);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n\tupdateTextures(text) {\n\t\tconst _chars = this._normalizeCharsSet(text);\n\t\tconst newCharsSet = [];\n\t\tfor (let i2 = 0; i2 < _chars.length; i2++) {\n\t\t\tconst char = _chars[i2];\n\t\t\tif (!this.data.chars[char]) {\n\t\t\t\tnewCharsSet.push(char);\n\t\t\t}\n\t\t}\n\t\tif (newCharsSet.length > 0) {\n\t\t\tthis._renderAtlas(this.chars.concat(newCharsSet));\n\t\t}\n\t}\n\tdestroy() {\n\t\tthis.atlases.forEach((atlas) => atlas.destroy());\n\t\tthis.chars = null;\n\t\tthis.color = null;\n\t\tthis.data = null;\n\t\tthis.fontName = null;\n\t\tthis.fontSize = null;\n\t\tthis.glyphSize = null;\n\t\tthis.intensity = null;\n\t\tthis.atlases = null;\n\t\tthis.type = null;\n\t\tthis.fontWeight = null;\n\t}\n\t_colorToRgbString(color3, alpha) {\n\t\tlet str;\n\t\tconst r = Math.round(255 * color3.r);\n\t\tconst g = Math.round(255 * color3.g);\n\t\tconst b = Math.round(255 * color3.b);\n\t\tif (alpha) {\n\t\t\tstr = `rgba(${r}, ${g}, ${b}, ${color3.a})`;\n\t\t} else {\n\t\t\tstr = `rgb(${r}, ${g}, ${b})`;\n\t\t}\n\t\treturn str;\n\t}\n\trenderCharacter(context, char, x3, y2, color3) {\n\t\tcontext.fillStyle = color3;\n\t\tcontext.fillText(char, x3, y2);\n\t}\n\t_getAtlas(index) {\n\t\tif (index >= this.atlases.length) {\n\t\t\tthis.atlases[index] = new Atlas(this.app.graphicsDevice, this.width, this.height, `font-atlas-${this.fontName}-${index}`);\n\t\t}\n\t\treturn this.atlases[index];\n\t}\n\t_renderAtlas(charsArray) {\n\t\tthis.chars = charsArray;\n\t\tconst w = this.width;\n\t\tconst h2 = this.height;\n\t\tconst color3 = this._colorToRgbString(this.color, false);\n\t\tconst a = this.color.a;\n\t\tthis.color.a = 1 / 255;\n\t\tconst transparent = this._colorToRgbString(this.color, true);\n\t\tthis.color.a = a;\n\t\tconst TEXT_ALIGN = \"center\";\n\t\tconst TEXT_BASELINE = \"alphabetic\";\n\t\tlet atlasIndex = 0;\n\t\tlet atlas = this._getAtlas(atlasIndex++);\n\t\tatlas.clear(transparent);\n\t\tthis.data = this._createJson(this.chars, this.fontName, w, h2);\n\t\tconst symbols = string.getSymbols(this.chars.join(\"\"));\n\t\tlet maxHeight = 0;\n\t\tlet maxDescent = 0;\n\t\tconst metrics = {};\n\t\tfor (let i2 = 0; i2 < symbols.length; i2++) {\n\t\t\tconst ch = symbols[i2];\n\t\t\tmetrics[ch] = this._getTextMetrics(ch);\n\t\t\tmaxHeight = Math.max(maxHeight, metrics[ch].height);\n\t\t\tmaxDescent = Math.max(maxDescent, metrics[ch].descent);\n\t\t}\n\t\tthis.glyphSize = Math.max(this.glyphSize, maxHeight);\n\t\tconst sx = this.glyphSize + this.padding * 2;\n\t\tconst sy = this.glyphSize + this.padding * 2;\n\t\tconst _xOffset = this.glyphSize / 2 + this.padding;\n\t\tconst _yOffset = sy - maxDescent - this.padding;\n\t\tlet _x = 0;\n\t\tlet _y = 0;\n\t\tfor (let i2 = 0; i2 < symbols.length; i2++) {\n\t\t\tconst ch = symbols[i2];\n\t\t\tconst code = string.getCodePoint(symbols[i2]);\n\t\t\tlet fs = this.fontSize;\n\t\t\tatlas.ctx.font = `${this.fontWeight} ${fs.toString()}px ${this.fontName}`;\n\t\t\tatlas.ctx.textAlign = TEXT_ALIGN;\n\t\t\tatlas.ctx.textBaseline = TEXT_BASELINE;\n\t\t\tlet width = atlas.ctx.measureText(ch).width;\n\t\t\tif (width > fs) {\n\t\t\t\tfs = this.fontSize * this.fontSize / width;\n\t\t\t\tatlas.ctx.font = `${this.fontWeight} ${fs.toString()}px ${this.fontName}`;\n\t\t\t\twidth = this.fontSize;\n\t\t\t}\n\t\t\tthis.renderCharacter(atlas.ctx, ch, _x + _xOffset, _y + _yOffset, color3);\n\t\t\tconst xoffset = this.padding + (this.glyphSize - width) / 2;\n\t\t\tconst yoffset = -this.padding + metrics[ch].descent - maxDescent;\n\t\t\tconst xadvance = width;\n\t\t\tthis._addChar(this.data, ch, code, _x, _y, sx, sy, xoffset, yoffset, xadvance, atlasIndex - 1, w, h2);\n\t\t\t_x += sx;\n\t\t\tif (_x + sx > w) {\n\t\t\t\t_x = 0;\n\t\t\t\t_y += sy;\n\t\t\t\tif (_y + sy > h2) {\n\t\t\t\t\tatlas = this._getAtlas(atlasIndex++);\n\t\t\t\t\tatlas.clear(transparent);\n\t\t\t\t\t_y = 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis.atlases.splice(atlasIndex).forEach((atlas2) => atlas2.destroy());\n\t\tthis.atlases.forEach((atlas2) => atlas2.texture.upload());\n\t\tthis.fire(\"render\");\n\t}\n\t_createJson(chars, fontName, width, height) {\n\t\tconst base = {\n\t\t\t\"version\": 3,\n\t\t\t\"intensity\": this.intensity,\n\t\t\t\"info\": {\n\t\t\t\t\"face\": fontName,\n\t\t\t\t\"width\": width,\n\t\t\t\t\"height\": height,\n\t\t\t\t\"maps\": [{\n\t\t\t\t\t\"width\": width,\n\t\t\t\t\t\"height\": height\n\t\t\t\t}]\n\t\t\t},\n\t\t\t\"chars\": {}\n\t\t};\n\t\treturn base;\n\t}\n\t_addChar(json, char, charCode, x3, y2, w, h2, xoffset, yoffset, xadvance, mapNum, mapW, mapH) {\n\t\tif (json.info.maps.length < mapNum + 1) {\n\t\t\tjson.info.maps.push({ \"width\": mapW, \"height\": mapH });\n\t\t}\n\t\tconst scale2 = this.fontSize / 32;\n\t\tjson.chars[char] = {\n\t\t\t\"id\": charCode,\n\t\t\t\"letter\": char,\n\t\t\t\"x\": x3,\n\t\t\t\"y\": y2,\n\t\t\t\"width\": w,\n\t\t\t\"height\": h2,\n\t\t\t\"xadvance\": xadvance / scale2,\n\t\t\t\"xoffset\": xoffset / scale2,\n\t\t\t\"yoffset\": (yoffset + this.padding) / scale2,\n\t\t\t\"scale\": scale2,\n\t\t\t\"range\": 1,\n\t\t\t\"map\": mapNum,\n\t\t\t\"bounds\": [0, 0, w / scale2, h2 / scale2]\n\t\t};\n\t}\n\t_normalizeCharsSet(text) {\n\t\tconst unicodeConverterFunc = this.app.systems.element.getUnicodeConverter();\n\t\tif (unicodeConverterFunc) {\n\t\t\ttext = unicodeConverterFunc(text);\n\t\t}\n\t\tconst set = {};\n\t\tconst symbols = string.getSymbols(text);\n\t\tfor (let i2 = 0; i2 < symbols.length; i2++) {\n\t\t\tconst ch = symbols[i2];\n\t\t\tif (set[ch]) continue;\n\t\t\tset[ch] = ch;\n\t\t}\n\t\tconst chars = Object.keys(set);\n\t\treturn chars.sort();\n\t}\n\t_getTextMetrics(text) {\n\t\tconst textSpan = document.createElement(\"span\");\n\t\ttextSpan.id = \"content-span\";\n\t\ttextSpan.innerHTML = text;\n\t\tconst block = document.createElement(\"div\");\n\t\tblock.id = \"content-block\";\n\t\tblock.style.display = \"inline-block\";\n\t\tblock.style.width = \"1px\";\n\t\tblock.style.height = \"0px\";\n\t\tconst div = document.createElement(\"div\");\n\t\tdiv.appendChild(textSpan);\n\t\tdiv.appendChild(block);\n\t\tdiv.style.font = `${this.fontSize}px ${this.fontName}`;\n\t\tconst body = document.body;\n\t\tbody.appendChild(div);\n\t\tlet ascent = -1;\n\t\tlet descent = -1;\n\t\tlet height = -1;\n\t\ttry {\n\t\t\tblock.style[\"vertical-align\"] = \"baseline\";\n\t\t\tascent = block.offsetTop - textSpan.offsetTop;\n\t\t\tblock.style[\"vertical-align\"] = \"bottom\";\n\t\t\theight = block.offsetTop - textSpan.offsetTop;\n\t\t\tdescent = height - ascent;\n\t\t} finally {\n\t\t\tdocument.body.removeChild(div);\n\t\t}\n\t\treturn {\n\t\t\tascent,\n\t\t\tdescent,\n\t\t\theight\n\t\t};\n\t}\n\t// nasty, other systems are accessing textures directly\n\tget textures() {\n\t\treturn this.atlases.map((atlas) => atlas.texture);\n\t}\n};\n\nvar tempMeshInstances = [];\nvar lights = [[], [], []];\nvar RenderPassPicker = class extends RenderPass {\n\tblendState = BlendState.NOBLEND;\n\tcamera;\n\tscene;\n\tlayers;\n\tmapping;\n\tdepth;\n\t_qualifiedLayerIndices = [];\n\t_pickMeshInstances = /* @__PURE__ */ new Map();\n\t_viewUniformFormat = null;\n\tconstructor(device, renderer) {\n\t\tsuper(device);\n\t\tthis.renderer = renderer;\n\t}\n\tgetViewUniformFormat() {\n\t\tif (!this._viewUniformFormat) {\n\t\t\tthis._viewUniformFormat = new UniformBufferFormat(this.device, [\n\t\t\t\tnew UniformFormat(\"matrix_viewProjection\", UNIFORMTYPE_MAT4),\n\t\t\t\tnew UniformFormat(\"matrix_view\", UNIFORMTYPE_MAT4)\n\t\t\t]);\n\t\t}\n\t\treturn this._viewUniformFormat;\n\t}\n\tupdate(camera, scene, layers, mapping, depth) {\n\t\tthis.camera = camera;\n\t\tthis.scene = scene;\n\t\tthis.layers = layers;\n\t\tthis.mapping = mapping;\n\t\tthis.depth = depth;\n\t\tif (scene.clusteredLightingEnabled) {\n\t\t\tthis.emptyWorldClusters = this.renderer.worldClustersAllocator.empty;\n\t\t}\n\t}\n\t// Filter qualifying layers and prepare gsplat pick mesh instances for the compute-based\n\t// renderer. The execute() loop iterates the pre-built list instead of re-filtering.\n\tbefore() {\n\t\tthis._qualifiedLayerIndices.length = 0;\n\t\tthis._pickMeshInstances.clear();\n\t\tconst { camera, scene, layers, renderer } = this;\n\t\tconst srcLayers = scene.layers.layerList;\n\t\tconst gsplatDirector = renderer.gsplatDirector;\n\t\tconst pickerWidth = this.renderTarget?.width ?? 1;\n\t\tconst pickerHeight = this.renderTarget?.height ?? 1;\n\t\tfor (let i2 = 0; i2 < srcLayers.length; i2++) {\n\t\t\tconst srcLayer = srcLayers[i2];\n\t\t\tif (layers && layers.indexOf(srcLayer) < 0) continue;\n\t\t\tif (!scene.layers.isSubLayerRenderedByCamera(i2, camera.camera)) continue;\n\t\t\tthis._qualifiedLayerIndices.push(i2);\n\t\t\trenderer.culler.requestMeshInstanceCull(camera.camera, srcLayer);\n\t\t\tif (gsplatDirector) {\n\t\t\t\tconst pickMI = gsplatDirector.prepareForPicking(camera.camera, pickerWidth, pickerHeight, srcLayer);\n\t\t\t\tif (pickMI) {\n\t\t\t\t\tthis._pickMeshInstances.set(i2, pickMI);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\trenderer.culler.executeMeshInstanceCull();\n\t}\n\texecute() {\n\t\tconst device = this.device;\n\t\tconst { renderer, camera, scene, mapping, renderTarget } = this;\n\t\tconst srcLayers = scene.layers.layerList;\n\t\tconst isTransparent = scene.layers.subLayerList;\n\t\tfor (const i2 of this._qualifiedLayerIndices) {\n\t\t\tconst srcLayer = srcLayers[i2];\n\t\t\tconst transparent = isTransparent[i2];\n\t\t\tif (srcLayer._clearDepthBuffer) {\n\t\t\t\trenderer.clear(camera.camera, false, true, false);\n\t\t\t}\n\t\t\tconst culledInstances = srcLayer.getCulledInstances(camera.camera);\n\t\t\tconst meshInstances = transparent ? culledInstances.transparent : culledInstances.opaque;\n\t\t\tfor (let j = 0; j < meshInstances.length; j++) {\n\t\t\t\tconst meshInstance = meshInstances[j];\n\t\t\t\tif (meshInstance.pick) {\n\t\t\t\t\ttempMeshInstances.push(meshInstance);\n\t\t\t\t\tmapping.set(meshInstance.id, meshInstance);\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst pickMI = this._pickMeshInstances.get(i2);\n\t\t\tif (pickMI) {\n\t\t\t\ttempMeshInstances.push(pickMI);\n\t\t\t}\n\t\t\tif (scene.gsplat.enableIds) {\n\t\t\t\tconst placements = srcLayer.gsplatPlacements;\n\t\t\t\tfor (let j = 0; j < placements.length; j++) {\n\t\t\t\t\tconst placement = placements[j];\n\t\t\t\t\tconst component = placement.node?.gsplat;\n\t\t\t\t\tif (component) {\n\t\t\t\t\t\tmapping.set(placement.id, component);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (tempMeshInstances.length > 0) {\n\t\t\t\tconst shaderPass = this.depth ? SHADER_DEPTH_PICK : SHADER_PICK;\n\t\t\t\trenderer.renderForwardLayer(camera.camera, renderTarget, null, void 0, shaderPass, {\n\t\t\t\t\tmeshInstances: tempMeshInstances,\n\t\t\t\t\tsplitLights: lights,\n\t\t\t\t\tlightClusters: this.emptyWorldClusters,\n\t\t\t\t\tviewUniformFormat: this.getViewUniformFormat(),\n\t\t\t\t\tdrawCallback: () => device.setBlendState(this.blendState)\n\t\t\t\t});\n\t\t\t\ttempMeshInstances.length = 0;\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar tempSet2 = /* @__PURE__ */ new Set();\nvar _rect = new Vec4();\nvar _floatView = new Float32Array(1);\nvar _int32View = new Int32Array(_floatView.buffer);\nvar Picker = class {\n\tdevice;\n\trenderPass;\n\tdepth;\n\twidth;\n\theight;\n\trenderTarget = null;\n\tcolorBuffer = null;\n\tdepthBuffer = null;\n\trenderTargetDepth = null;\n\tmapping = /* @__PURE__ */ new Map();\n\tdeviceValid = true;\n\tconstructor(app2, width, height, depth = false) {\n\t\tthis.device = app2.graphicsDevice;\n\t\tthis.renderPass = new RenderPassPicker(this.device, app2.renderer);\n\t\tthis.depth = depth;\n\t\tthis.width = 0;\n\t\tthis.height = 0;\n\t\tthis.resize(width, height);\n\t\tthis.allocateRenderTarget();\n\t\tthis.device.on(\"destroy\", () => {\n\t\t\tthis.deviceValid = false;\n\t\t});\n\t}\n\tdestroy() {\n\t\tthis.releaseRenderTarget();\n\t\tthis.renderPass?.destroy();\n\t}\n\tgetSelection(x3, y2, width = 1, height = 1) {\n\t\tconst device = this.device;\n\t\tif (device.isWebGPU) {\n\t\t\treturn [];\n\t\t}\n\t\ty2 = this.renderTarget.height - (y2 + height);\n\t\tconst rect = this.sanitizeRect(x3, y2, width, height);\n\t\tdevice.setRenderTarget(this.renderTarget);\n\t\tdevice.updateBegin();\n\t\tconst pixels = new Uint8Array(4 * rect.z * rect.w);\n\t\tdevice.readPixels(rect.x, rect.y, rect.z, rect.w, pixels);\n\t\tdevice.updateEnd();\n\t\treturn this.decodePixels(pixels, this.mapping);\n\t}\n\tgetSelectionAsync(x3, y2, width = 1, height = 1) {\n\t\tif (!this.renderTarget || !this.renderTarget.colorBuffer) {\n\t\t\treturn Promise.resolve([]);\n\t\t}\n\t\treturn this._readTexture(this.renderTarget.colorBuffer, x3, y2, width, height, this.renderTarget).then((pixels) => {\n\t\t\treturn this.decodePixels(pixels, this.mapping);\n\t\t}).catch((error) => {\n\t\t\tif (this.deviceValid) {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\treturn [];\n\t\t});\n\t}\n\t_readTexture(texture, x3, y2, width, height, renderTarget) {\n\t\tif (this.device?.isWebGL2) {\n\t\t\ty2 = renderTarget.height - (y2 + height);\n\t\t}\n\t\tconst rect = this.sanitizeRect(x3, y2, width, height);\n\t\treturn texture.read(rect.x, rect.y, rect.z, rect.w, {\n\t\t\timmediate: true,\n\t\t\trenderTarget\n\t\t});\n\t}\n\tasync getWorldPointAsync(x3, y2) {\n\t\tconst camera = this.renderPass.camera;\n\t\tif (!camera) {\n\t\t\treturn null;\n\t\t}\n\t\tconst viewProjMat2 = new Mat4().mul2(camera.camera.projectionMatrix, camera.camera.viewMatrix);\n\t\tconst invViewProj = viewProjMat2.invert();\n\t\tconst near = camera.nearClip;\n\t\tconst far = camera.farClip;\n\t\tconst isOrtho = camera.projection === PROJECTION_ORTHOGRAPHIC;\n\t\tconst linearDepth = await this.getPointDepthAsync(x3, y2);\n\t\tif (linearDepth === null) {\n\t\t\treturn null;\n\t\t}\n\t\tconst ndcDepth = isOrtho ? linearDepth : far * linearDepth / (linearDepth * (far - near) + near);\n\t\tconst deviceCoord = new Vec4(\n\t\t\tx3 / this.width * 2 - 1,\n\t\t\t(1 - y2 / this.height) * 2 - 1,\n\t\t\tndcDepth * 2 - 1,\n\t\t\t1\n\t\t);\n\t\tinvViewProj.transformVec4(deviceCoord, deviceCoord);\n\t\tdeviceCoord.mulScalar(1 / deviceCoord.w);\n\t\treturn new Vec3(deviceCoord.x, deviceCoord.y, deviceCoord.z);\n\t}\n\tasync getPointDepthAsync(x3, y2) {\n\t\tif (!this.depthBuffer) {\n\t\t\treturn null;\n\t\t}\n\t\tlet pixels;\n\t\ttry {\n\t\t\tpixels = await this._readTexture(this.depthBuffer, x3, y2, 1, 1, this.renderTargetDepth);\n\t\t} catch (error) {\n\t\t\tif (this.deviceValid) {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\t\tconst intBits = (pixels[0] << 24 | pixels[1] << 16 | pixels[2] << 8 | pixels[3]) >>> 0;\n\t\tif (intBits === 4294967295) {\n\t\t\treturn null;\n\t\t}\n\t\t_int32View[0] = intBits;\n\t\treturn _floatView[0];\n\t}\n\t// sanitize the rectangle to make sure it's inside the texture and does not use fractions\n\tsanitizeRect(x3, y2, width, height) {\n\t\tconst maxWidth = this.renderTarget.width;\n\t\tconst maxHeight = this.renderTarget.height;\n\t\tx3 = math.clamp(Math.floor(x3), 0, maxWidth - 1);\n\t\ty2 = math.clamp(Math.floor(y2), 0, maxHeight - 1);\n\t\twidth = Math.floor(Math.max(width, 1));\n\t\twidth = Math.min(width, maxWidth - x3);\n\t\theight = Math.floor(Math.max(height, 1));\n\t\theight = Math.min(height, maxHeight - y2);\n\t\treturn _rect.set(x3, y2, width, height);\n\t}\n\tdecodePixels(pixels, mapping) {\n\t\tconst selection = [];\n\t\tif (this.deviceValid) {\n\t\t\tconst count = pixels.length;\n\t\t\tfor (let i2 = 0; i2 < count; i2 += 4) {\n\t\t\t\tconst r = pixels[i2 + 0];\n\t\t\t\tconst g = pixels[i2 + 1];\n\t\t\t\tconst b = pixels[i2 + 2];\n\t\t\t\tconst a = pixels[i2 + 3];\n\t\t\t\tconst index = (a << 24 | r << 16 | g << 8 | b) >>> 0;\n\t\t\t\tif (index !== 4294967295) {\n\t\t\t\t\ttempSet2.add(mapping.get(index));\n\t\t\t\t}\n\t\t\t}\n\t\t\ttempSet2.forEach((meshInstance) => {\n\t\t\t\tif (meshInstance) {\n\t\t\t\t\tselection.push(meshInstance);\n\t\t\t\t}\n\t\t\t});\n\t\t\ttempSet2.clear();\n\t\t}\n\t\treturn selection;\n\t}\n\tcreateTexture(name) {\n\t\treturn Texture.createDataTexture2D(this.device, name, this.width, this.height, PIXELFORMAT_RGBA8);\n\t}\n\tallocateRenderTarget() {\n\t\tthis.colorBuffer = this.createTexture(\"pick\");\n\t\tconst colorBuffers = [this.colorBuffer];\n\t\tif (this.depth) {\n\t\t\tthis.depthBuffer = this.createTexture(\"pick-depth\");\n\t\t\tcolorBuffers.push(this.depthBuffer);\n\t\t\tthis.renderTargetDepth = new RenderTarget({\n\t\t\t\tcolorBuffer: this.depthBuffer,\n\t\t\t\tdepth: false\n\t\t\t});\n\t\t}\n\t\tthis.renderTarget = new RenderTarget({\n\t\t\tcolorBuffers,\n\t\t\tdepth: true\n\t\t});\n\t}\n\treleaseRenderTarget() {\n\t\tthis.renderTarget?.destroyTextureBuffers();\n\t\tthis.renderTarget?.destroy();\n\t\tthis.renderTarget = null;\n\t\tthis.renderTargetDepth?.destroy();\n\t\tthis.renderTargetDepth = null;\n\t\tthis.colorBuffer = null;\n\t\tthis.depthBuffer = null;\n\t}\n\tprepare(camera, scene, layers) {\n\t\tif (layers instanceof Layer) {\n\t\t\tlayers = [layers];\n\t\t}\n\t\tthis.renderTarget?.resize(this.width, this.height);\n\t\tthis.renderTargetDepth?.resize(this.width, this.height);\n\t\tthis.mapping.clear();\n\t\tconst renderPass = this.renderPass;\n\t\trenderPass.init(this.renderTarget);\n\t\trenderPass.setClearColor(Color.WHITE);\n\t\trenderPass.depthStencilOps.clearDepth = true;\n\t\trenderPass.update(camera, scene, layers, this.mapping, this.depth);\n\t\trenderPass.render();\n\t}\n\tresize(width, height) {\n\t\tthis.width = Math.floor(width);\n\t\tthis.height = Math.floor(height);\n\t}\n};\n\nvar scene_depth_read_default = `\n\t#include \"screenDepthPS\"\n\t#include \"floatAsUintPS\"\n\tuniform vec4 uDepthReadRect;\n\tuniform vec2 uDepthReadGrid;\n\tuniform float uDepthReadFar;\n\tuniform float uDepthReadEmpty;\n\tvoid main() {\n\t\tvec2 cell = (floor(gl_FragCoord.xy) + 0.5) / uDepthReadGrid;\n\t\tvec2 uv = getImageEffectUV(uDepthReadRect.xy + cell * uDepthReadRect.zw);\n\t\tvec2 size = vec2(textureSize(uSceneDepthMap, 0));\n\t\tuv = (floor(uv * size) + 0.5) / size;\n\t\tfloat depth = getLinearScreenDepth(uv);\n\t\tgl_FragColor = float2uint(depth >= uDepthReadFar ? uDepthReadEmpty : depth);\n\t}\n`;\n\nvar scene_depth_read_default2 = `\n\t#include \"screenDepthPS\"\n\t#include \"floatAsUintPS\"\n\tuniform uDepthReadRect: vec4f;\n\tuniform uDepthReadGrid: vec2f;\n\tuniform uDepthReadFar: f32;\n\tuniform uDepthReadEmpty: f32;\n\t@fragment\n\tfn fragmentMain(input: FragmentInput) -> FragmentOutput {\n\t\tvar output: FragmentOutput;\n\t\tlet cell = (floor(pcPosition.xy) + vec2f(0.5)) / uniform.uDepthReadGrid;\n\t\tlet uv = getImageEffectUV(uniform.uDepthReadRect.xy + cell * uniform.uDepthReadRect.zw);\n\t\tlet size = vec2f(textureDimensions(uSceneDepthMap, 0));\n\t\tlet snapped = (floor(uv * size) + vec2f(0.5)) / size;\n\t\tlet depth = getLinearScreenDepth(snapped);\n\t\tlet value = select(depth, uniform.uDepthReadEmpty, depth >= uniform.uDepthReadFar);\n\t\toutput.color = float2uint(value);\n\t\treturn output;\n\t}\n`;\n\nvar _farLimitFractionFull = 1 - 1e-5;\nvar _farLimitFractionHalf = 1 - 15e-4;\nvar SceneDepthReader = class {\n\tcamera;\n\t_requests = [];\n\t_buffers = /* @__PURE__ */ new Map();\n\t_depthRendered = true;\n\t_valid = true;\n\tdevice;\n\tpass;\n\trenderTarget;\n\tviewport;\n\t_shaderKey;\n\t_onPostRender;\n\t_onDeviceDestroy;\n\t_onCameraRemove;\n\t// the uniform scope ids the pass writes, and the scratch values written through them\n\trectId;\n\trectValue;\n\tgridId;\n\tgridValue;\n\tfarId;\n\temptyId;\n\tdepthMapId;\n\tcameraParamsId;\n\tcameraParams;\n\tconstructor(camera) {\n\t\tthis.camera = camera;\n\t\tconst device = this.device = camera.system.app.graphicsDevice;\n\t\tShaderChunks.get(device, SHADERLANGUAGE_GLSL).set(\"sceneDepthReadPS\", scene_depth_read_default);\n\t\tShaderChunks.get(device, SHADERLANGUAGE_WGSL).set(\"sceneDepthReadPS\", scene_depth_read_default2);\n\t\tthis.pass = new RenderPassShaderQuad(device);\n\t\tthis.renderTarget = null;\n\t\tthis.viewport = new Vec4();\n\t\tthis._shaderKey = null;\n\t\tconst { scope } = device;\n\t\tthis.rectId = scope.resolve(\"uDepthReadRect\");\n\t\tthis.rectValue = new Float32Array(4);\n\t\tthis.gridId = scope.resolve(\"uDepthReadGrid\");\n\t\tthis.gridValue = new Float32Array(2);\n\t\tthis.farId = scope.resolve(\"uDepthReadFar\");\n\t\tthis.emptyId = scope.resolve(\"uDepthReadEmpty\");\n\t\tthis.depthMapId = scope.resolve(\"uSceneDepthMap\");\n\t\tthis.cameraParamsId = scope.resolve(\"camera_params\");\n\t\tthis.cameraParams = new Float32Array(4);\n\t\tthis._onPostRender = (cameraComponent) => {\n\t\t\tif (cameraComponent === this.camera) {\n\t\t\t\tthis._process();\n\t\t\t}\n\t\t};\n\t\tcamera.system.app.scene.on(EVENT_POSTRENDER, this._onPostRender);\n\t\tthis._onDeviceDestroy = () => {\n\t\t\tthis._invalidate();\n\t\t};\n\t\tdevice.on(\"destroy\", this._onDeviceDestroy);\n\t\tthis._onCameraRemove = () => {\n\t\t\tthis._invalidate();\n\t\t};\n\t\tcamera.on(\"beforeremove\", this._onCameraRemove);\n\t}\n\tread(rect, width, height, target2) {\n\t\tconst count = width * height;\n\t\tconst { camera } = this;\n\t\tif (!this._valid || !this._depthRendered || !camera.enabled || !camera.entity.enabled) {\n\t\t\treturn null;\n\t\t}\n\t\tconst request = {\n\t\t\tx: rect.x,\n\t\t\ty: rect.y,\n\t\t\tz: rect.z,\n\t\t\tw: rect.w,\n\t\t\twidth,\n\t\t\theight,\n\t\t\ttarget: target2 ?? new Float32Array(count),\n\t\t\tresolve: null\n\t\t};\n\t\tconst promise = new Promise((resolve2) => {\n\t\t\trequest.resolve = resolve2;\n\t\t});\n\t\tthis._requests.push(request);\n\t\treturn promise;\n\t}\n\t_process() {\n\t\tconst { camera, device, _requests: requests } = this;\n\t\tconst internal = camera.camera;\n\t\tthis._depthRendered = !!internal.sceneDepthMap && internal.sceneDepthMapVersion === device.renderVersion;\n\t\tif (requests.length === 0) {\n\t\t\treturn;\n\t\t}\n\t\tif (!this._depthRendered) {\n\t\t\tthis._settleRequests();\n\t\t\treturn;\n\t\t}\n\t\tthis._updateShader();\n\t\tlet width = 0;\n\t\tlet height = 0;\n\t\tfor (let i2 = 0; i2 < requests.length; i2++) {\n\t\t\twidth = Math.max(width, requests[i2].width);\n\t\t\theight = Math.max(height, requests[i2].height);\n\t\t}\n\t\tthis._updateRenderTarget(width, height);\n\t\tfor (let i2 = 0; i2 < requests.length; i2++) {\n\t\t\tthis._readRequest(requests[i2]);\n\t\t}\n\t\trequests.length = 0;\n\t}\n\t_readRequest(request) {\n\t\tconst { camera } = this;\n\t\tconst { width, height } = request;\n\t\tconst internal = camera.camera;\n\t\tconst { rectValue, gridValue } = this;\n\t\trectValue[0] = request.x;\n\t\trectValue[1] = request.y;\n\t\trectValue[2] = request.z;\n\t\trectValue[3] = request.w;\n\t\tthis.rectId.setValue(rectValue);\n\t\tgridValue[0] = width;\n\t\tgridValue[1] = height;\n\t\tthis.gridId.setValue(gridValue);\n\t\tconst halfFloat = internal.sceneDepthMap.format === PIXELFORMAT_R16F;\n\t\tthis.farId.setValue(internal.farClip * (halfFloat ? _farLimitFractionHalf : _farLimitFractionFull));\n\t\tthis.emptyId.setValue(Infinity);\n\t\tthis.cameraParamsId.setValue(internal.fillShaderParams(this.cameraParams));\n\t\tthis.depthMapId.setValue(internal.sceneDepthMap);\n\t\tthis.pass.viewport = this.viewport.set(0, 0, width, height);\n\t\tthis.pass.render();\n\t\tconst count = width * height;\n\t\tconst buffer = this._borrowBuffer(count * 4);\n\t\tconst { target: target2, resolve: resolve2 } = request;\n\t\tconst read = this.renderTarget.colorBuffer.read(0, 0, width, height, {\n\t\t\trenderTarget: this.renderTarget,\n\t\t\tdata: buffer.bytes,\n\t\t\t// Flushed as the read is issued, so the depth this read wants is on its way to the GPU\n\t\t\t// rather than sitting in the queue behind the rest of the frame.\n\t\t\timmediate: true,\n\t\t\t// Depth reads come every frame, which is what a readback is worst at - on WebGL its\n\t\t\t// blocking step waits for the rendering queued in front of it, most of a frame's worth\n\t\t\t// every frame. Saying so buys a frame of latency in exchange, which the caller of a\n\t\t\t// depth read absorbs far more easily than the stall.\n\t\t\tfrequent: true\n\t\t});\n\t\tif (!read) {\n\t\t\ttarget2.fill(Infinity, 0, count);\n\t\t\tthis._returnBuffer(buffer);\n\t\t\tresolve2(target2);\n\t\t\treturn;\n\t\t}\n\t\tread.then(() => {\n\t\t\tif (!this._valid) {\n\t\t\t\ttarget2.fill(Infinity, 0, count);\n\t\t\t\tresolve2(target2);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst view = buffer.view;\n\t\t\tfor (let i2 = 0; i2 < count; i2++) {\n\t\t\t\ttarget2[i2] = view.getFloat32(i2 * 4, false);\n\t\t\t}\n\t\t\tthis._returnBuffer(buffer);\n\t\t\tresolve2(target2);\n\t\t}).catch((error) => {\n\t\t\tif (this._valid) {\n\t\t\t\tthis._returnBuffer(buffer);\n\t\t\t}\n\t\t\ttarget2.fill(Infinity, 0, count);\n\t\t\tresolve2(target2);\n\t\t});\n\t}\n\t_updateShader() {\n\t\tconst defines = /* @__PURE__ */ new Map();\n\t\tconst key = ShaderUtils.addScreenDepthChunkDefines(this.camera.shaderParams, defines);\n\t\tif (this._shaderKey !== key) {\n\t\t\tthis._shaderKey = key;\n\t\t\tthis.pass.shader = ShaderUtils.createShader(this.device, {\n\t\t\t\tuniqueName: `SceneDepthRead${key}`,\n\t\t\t\tattributes: { aPosition: SEMANTIC_POSITION },\n\t\t\t\tvertexChunk: \"quadVS\",\n\t\t\t\tfragmentChunk: \"sceneDepthReadPS\",\n\t\t\t\tfragmentDefines: defines\n\t\t\t});\n\t\t}\n\t}\n\t_updateRenderTarget(width, height) {\n\t\tconst current = this.renderTarget;\n\t\tif (current && current.width >= width && current.height >= height) {\n\t\t\treturn;\n\t\t}\n\t\tconst targetWidth = Math.max(width, current?.width ?? 0);\n\t\tconst targetHeight = Math.max(height, current?.height ?? 0);\n\t\tthis._destroyRenderTarget();\n\t\tconst texture = new Texture(this.device, {\n\t\t\tname: \"SceneDepthRead\",\n\t\t\twidth: targetWidth,\n\t\t\theight: targetHeight,\n\t\t\tformat: PIXELFORMAT_RGBA8,\n\t\t\tmipmaps: false,\n\t\t\tminFilter: FILTER_NEAREST,\n\t\t\tmagFilter: FILTER_NEAREST,\n\t\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE\n\t\t});\n\t\tthis.renderTarget = new RenderTarget({\n\t\t\tname: \"SceneDepthRead\",\n\t\t\tcolorBuffer: texture,\n\t\t\tdepth: false,\n\t\t\torigin: RENDERTARGET_ORIGIN_BOTTOM\n\t\t});\n\t\tthis.pass.init(this.renderTarget);\n\t}\n\t_destroyRenderTarget() {\n\t\tif (this.renderTarget) {\n\t\t\tthis.renderTarget.colorBuffer.destroy();\n\t\t\tthis.renderTarget.destroy();\n\t\t\tthis.renderTarget = null;\n\t\t}\n\t}\n\t_borrowBuffer(byteLength) {\n\t\tconst pool = this._buffers.get(byteLength);\n\t\tconst buffer = pool?.pop();\n\t\tif (buffer) {\n\t\t\treturn buffer;\n\t\t}\n\t\tconst bytes = new Uint8Array(byteLength);\n\t\treturn { bytes, view: new DataView(bytes.buffer) };\n\t}\n\t_returnBuffer(buffer) {\n\t\tconst byteLength = buffer.bytes.byteLength;\n\t\tconst pool = this._buffers.get(byteLength) ?? [];\n\t\tpool.push(buffer);\n\t\tthis._buffers.set(byteLength, pool);\n\t}\n\t_invalidate() {\n\t\tthis._valid = false;\n\t\tthis._settleRequests();\n\t}\n\t_settleRequests() {\n\t\tthis._requests.forEach((request) => {\n\t\t\trequest.target.fill(Infinity, 0, request.width * request.height);\n\t\t\trequest.resolve(request.target);\n\t\t});\n\t\tthis._requests.length = 0;\n\t}\n\tdestroy() {\n\t\tthis.camera.system.app.scene.off(EVENT_POSTRENDER, this._onPostRender);\n\t\tthis.camera.off(\"beforeremove\", this._onCameraRemove);\n\t\tthis.device.off(\"destroy\", this._onDeviceDestroy);\n\t\tthis._invalidate();\n\t\tthis.pass.shader = null;\n\t\tthis.pass.destroy();\n\t\tthis._destroyRenderTarget();\n\t\tthis._buffers.clear();\n\t}\n};\n\nvar SceneSettingsHandler = class extends ResourceHandler {\n\tconstructor(app2) {\n\t\tsuper(app2, \"scenesettings\");\n\t}\n\tload(url, callback) {\n\t\tSceneUtils.load(url, this.maxRetries, callback);\n\t}\n\topen(url, data2) {\n\t\treturn data2.settings;\n\t}\n};\n\nvar targetX;\nvar targetY;\nvar vecA3 = new Vec3();\nvar vecB3 = new Vec3();\nvar rayA = new Ray();\nvar rayB = new Ray();\nvar rayC = new Ray();\nrayA.end = new Vec3();\nrayB.end = new Vec3();\nrayC.end = new Vec3();\nvar _pq = new Vec3();\nvar _pa = new Vec3();\nvar _pb = new Vec3();\nvar _pc = new Vec3();\nvar _pd = new Vec3();\nvar _m = new Vec3();\nvar _au = new Vec3();\nvar _bv = new Vec3();\nvar _cw = new Vec3();\nvar _ir = new Vec3();\nvar _sct = new Vec3();\nvar _accumulatedScale = new Vec3();\nvar _paddingTop = new Vec3();\nvar _paddingBottom = new Vec3();\nvar _paddingLeft = new Vec3();\nvar _paddingRight = new Vec3();\nvar _cornerBottomLeft = new Vec3();\nvar _cornerBottomRight = new Vec3();\nvar _cornerTopRight = new Vec3();\nvar _cornerTopLeft = new Vec3();\nvar ZERO_VEC4 = new Vec4();\nfunction scalarTriple(p12, p22, p32) {\n\treturn _sct.cross(p12, p22).dot(p32);\n}\nfunction intersectLineQuad(p, q5, corners) {\n\t_pq.sub2(q5, p);\n\t_pa.sub2(corners[0], p);\n\t_pb.sub2(corners[1], p);\n\t_pc.sub2(corners[2], p);\n\t_m.cross(_pc, _pq);\n\tlet v6 = _pa.dot(_m);\n\tlet u;\n\tlet w;\n\tif (v6 >= 0) {\n\t\tu = -_pb.dot(_m);\n\t\tif (u < 0) {\n\t\t\treturn -1;\n\t\t}\n\t\tw = scalarTriple(_pq, _pb, _pa);\n\t\tif (w < 0) {\n\t\t\treturn -1;\n\t\t}\n\t\tconst denom = 1 / (u + v6 + w);\n\t\t_au.copy(corners[0]).mulScalar(u * denom);\n\t\t_bv.copy(corners[1]).mulScalar(v6 * denom);\n\t\t_cw.copy(corners[2]).mulScalar(w * denom);\n\t\t_ir.copy(_au).add(_bv).add(_cw);\n\t} else {\n\t\t_pd.sub2(corners[3], p);\n\t\tu = _pd.dot(_m);\n\t\tif (u < 0) {\n\t\t\treturn -1;\n\t\t}\n\t\tw = scalarTriple(_pq, _pa, _pd);\n\t\tif (w < 0) {\n\t\t\treturn -1;\n\t\t}\n\t\tv6 = -v6;\n\t\tconst denom = 1 / (u + v6 + w);\n\t\t_au.copy(corners[0]).mulScalar(u * denom);\n\t\t_bv.copy(corners[3]).mulScalar(v6 * denom);\n\t\t_cw.copy(corners[2]).mulScalar(w * denom);\n\t\t_ir.copy(_au).add(_bv).add(_cw);\n\t}\n\tif (_pq.sub2(corners[0], corners[2]).lengthSq() < 1e-4 * 1e-4) return -1;\n\tif (_pq.sub2(corners[1], corners[3]).lengthSq() < 1e-4 * 1e-4) return -1;\n\treturn _ir.sub(p).lengthSq();\n}\nvar ElementInputEvent = class {\n\tconstructor(event, element, camera) {\n\t\tthis.event = event;\n\t\tthis.element = element;\n\t\tthis.camera = camera;\n\t\tthis._stopPropagation = false;\n\t}\n\tstopPropagation() {\n\t\tthis._stopPropagation = true;\n\t\tif (this.event) {\n\t\t\tthis.event.stopImmediatePropagation();\n\t\t\tthis.event.stopPropagation();\n\t\t}\n\t}\n};\nvar ElementMouseEvent = class extends ElementInputEvent {\n\tconstructor(event, element, camera, x3, y2, lastX, lastY) {\n\t\tsuper(event, element, camera);\n\t\tthis.x = x3;\n\t\tthis.y = y2;\n\t\tthis.ctrlKey = event.ctrlKey || false;\n\t\tthis.altKey = event.altKey || false;\n\t\tthis.shiftKey = event.shiftKey || false;\n\t\tthis.metaKey = event.metaKey || false;\n\t\tthis.button = event.button;\n\t\tif (Mouse.isPointerLocked()) {\n\t\t\tthis.dx = event.movementX || event.webkitMovementX || event.mozMovementX || 0;\n\t\t\tthis.dy = event.movementY || event.webkitMovementY || event.mozMovementY || 0;\n\t\t} else {\n\t\t\tthis.dx = x3 - lastX;\n\t\t\tthis.dy = y2 - lastY;\n\t\t}\n\t\tthis.wheelDelta = 0;\n\t\tif (event.type === \"wheel\") {\n\t\t\tif (event.deltaY > 0) {\n\t\t\t\tthis.wheelDelta = 1;\n\t\t\t} else if (event.deltaY < 0) {\n\t\t\t\tthis.wheelDelta = -1;\n\t\t\t}\n\t\t}\n\t}\n};\nvar ElementTouchEvent = class extends ElementInputEvent {\n\tconstructor(event, element, camera, x3, y2, touch2) {\n\t\tsuper(event, element, camera);\n\t\tthis.touches = event.touches;\n\t\tthis.changedTouches = event.changedTouches;\n\t\tthis.x = x3;\n\t\tthis.y = y2;\n\t\tthis.touch = touch2;\n\t}\n};\nvar ElementSelectEvent = class extends ElementInputEvent {\n\tconstructor(event, element, camera, inputSource) {\n\t\tsuper(event, element, camera);\n\t\tthis.inputSource = inputSource;\n\t}\n};\nvar ElementInput = class _ElementInput {\n\tconstructor(domElement, options2) {\n\t\tthis._app = null;\n\t\tthis._attached = false;\n\t\tthis._target = null;\n\t\tthis._enabled = true;\n\t\tthis._lastX = 0;\n\t\tthis._lastY = 0;\n\t\tthis._upHandler = this._handleUp.bind(this);\n\t\tthis._downHandler = this._handleDown.bind(this);\n\t\tthis._moveHandler = this._handleMove.bind(this);\n\t\tthis._wheelHandler = this._handleWheel.bind(this);\n\t\tthis._touchstartHandler = this._handleTouchStart.bind(this);\n\t\tthis._touchendHandler = this._handleTouchEnd.bind(this);\n\t\tthis._touchcancelHandler = this._touchendHandler;\n\t\tthis._touchmoveHandler = this._handleTouchMove.bind(this);\n\t\tthis._sortHandler = this._sortElements.bind(this);\n\t\tthis._elements = [];\n\t\tthis._hoveredElement = null;\n\t\tthis._pressedElement = null;\n\t\tthis._touchedElements = {};\n\t\tthis._touchesForWhichTouchLeaveHasFired = {};\n\t\tthis._selectedElements = {};\n\t\tthis._selectedPressedElements = {};\n\t\tthis._useMouse = !options2 || options2.useMouse !== false;\n\t\tthis._useTouch = !options2 || options2.useTouch !== false;\n\t\tthis._useXr = !options2 || options2.useXr !== false;\n\t\tthis._selectEventsAttached = false;\n\t\tif (platform.touch) {\n\t\t\tthis._clickedEntities = {};\n\t\t}\n\t\tthis.attach(domElement);\n\t}\n\tset enabled(value) {\n\t\tthis._enabled = value;\n\t}\n\tget enabled() {\n\t\treturn this._enabled;\n\t}\n\tset app(value) {\n\t\tthis._app = value;\n\t}\n\tget app() {\n\t\treturn this._app || getApplication();\n\t}\n\tattach(domElement) {\n\t\tif (this._attached) {\n\t\t\tthis._attached = false;\n\t\t\tthis.detach();\n\t\t}\n\t\tthis._target = domElement;\n\t\tthis._attached = true;\n\t\tconst options2 = { passive: true };\n\t\tif (this._useMouse) {\n\t\t\twindow.addEventListener(\"mouseup\", this._upHandler, options2);\n\t\t\twindow.addEventListener(\"mousedown\", this._downHandler, options2);\n\t\t\twindow.addEventListener(\"mousemove\", this._moveHandler, options2);\n\t\t\twindow.addEventListener(\"wheel\", this._wheelHandler, options2);\n\t\t}\n\t\tif (this._useTouch && platform.touch) {\n\t\t\tthis._target.addEventListener(\"touchstart\", this._touchstartHandler, options2);\n\t\t\tthis._target.addEventListener(\"touchend\", this._touchendHandler, false);\n\t\t\tthis._target.addEventListener(\"touchmove\", this._touchmoveHandler, false);\n\t\t\tthis._target.addEventListener(\"touchcancel\", this._touchcancelHandler, false);\n\t\t}\n\t\tthis.attachSelectEvents();\n\t}\n\tattachSelectEvents() {\n\t\tif (!this._selectEventsAttached && this._useXr && this.app && this.app.xr && this.app.xr.supported) {\n\t\t\tif (!this._clickedEntities) {\n\t\t\t\tthis._clickedEntities = {};\n\t\t\t}\n\t\t\tthis._selectEventsAttached = true;\n\t\t\tthis.app.xr.on(\"start\", this._onXrStart, this);\n\t\t}\n\t}\n\tdetach() {\n\t\tif (!this._attached) return;\n\t\tthis._attached = false;\n\t\tconst options2 = { passive: true };\n\t\tif (this._useMouse) {\n\t\t\twindow.removeEventListener(\"mouseup\", this._upHandler, options2);\n\t\t\twindow.removeEventListener(\"mousedown\", this._downHandler, options2);\n\t\t\twindow.removeEventListener(\"mousemove\", this._moveHandler, options2);\n\t\t\twindow.removeEventListener(\"wheel\", this._wheelHandler, options2);\n\t\t}\n\t\tif (this._useTouch) {\n\t\t\tthis._target.removeEventListener(\"touchstart\", this._touchstartHandler, options2);\n\t\t\tthis._target.removeEventListener(\"touchend\", this._touchendHandler, false);\n\t\t\tthis._target.removeEventListener(\"touchmove\", this._touchmoveHandler, false);\n\t\t\tthis._target.removeEventListener(\"touchcancel\", this._touchcancelHandler, false);\n\t\t}\n\t\tif (this._selectEventsAttached) {\n\t\t\tthis._selectEventsAttached = false;\n\t\t\tthis.app.xr.off(\"start\", this._onXrStart, this);\n\t\t\tthis.app.xr.off(\"end\", this._onXrEnd, this);\n\t\t\tthis.app.xr.off(\"update\", this._onXrUpdate, this);\n\t\t\tthis.app.xr.input.off(\"selectstart\", this._onSelectStart, this);\n\t\t\tthis.app.xr.input.off(\"selectend\", this._onSelectEnd, this);\n\t\t\tthis.app.xr.input.off(\"remove\", this._onXrInputRemove, this);\n\t\t}\n\t\tthis._target = null;\n\t}\n\taddElement(element) {\n\t\tif (this._elements.indexOf(element) === -1) {\n\t\t\tthis._elements.push(element);\n\t\t}\n\t}\n\tremoveElement(element) {\n\t\tconst idx = this._elements.indexOf(element);\n\t\tif (idx !== -1) {\n\t\t\tthis._elements.splice(idx, 1);\n\t\t}\n\t}\n\t_handleUp(event) {\n\t\tif (!this._enabled) return;\n\t\tif (Mouse.isPointerLocked()) {\n\t\t\treturn;\n\t\t}\n\t\tthis._calcMouseCoords(event);\n\t\tthis._onElementMouseEvent(\"mouseup\", event);\n\t}\n\t_handleDown(event) {\n\t\tif (!this._enabled) return;\n\t\tif (Mouse.isPointerLocked()) {\n\t\t\treturn;\n\t\t}\n\t\tthis._calcMouseCoords(event);\n\t\tthis._onElementMouseEvent(\"mousedown\", event);\n\t}\n\t_handleMove(event) {\n\t\tif (!this._enabled) return;\n\t\tthis._calcMouseCoords(event);\n\t\tthis._onElementMouseEvent(\"mousemove\", event);\n\t\tthis._lastX = targetX;\n\t\tthis._lastY = targetY;\n\t}\n\t_handleWheel(event) {\n\t\tif (!this._enabled) return;\n\t\tthis._calcMouseCoords(event);\n\t\tthis._onElementMouseEvent(\"mousewheel\", event);\n\t}\n\t_determineTouchedElements(event) {\n\t\tconst touchedElements = {};\n\t\tconst cameras = this.app.systems.camera.cameras;\n\t\tfor (let i2 = cameras.length - 1; i2 >= 0; i2--) {\n\t\t\tconst camera = cameras[i2];\n\t\t\tlet done = 0;\n\t\t\tconst len = event.changedTouches.length;\n\t\t\tfor (let j = 0; j < len; j++) {\n\t\t\t\tif (touchedElements[event.changedTouches[j].identifier]) {\n\t\t\t\t\tdone++;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst coords = getTouchTargetCoords(event.changedTouches[j]);\n\t\t\t\tconst element = this._getTargetElementByCoords(camera, coords.x, coords.y);\n\t\t\t\tif (element) {\n\t\t\t\t\tdone++;\n\t\t\t\t\ttouchedElements[event.changedTouches[j].identifier] = {\n\t\t\t\t\t\telement,\n\t\t\t\t\t\tcamera,\n\t\t\t\t\t\tx: coords.x,\n\t\t\t\t\t\ty: coords.y\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (done === len) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\treturn touchedElements;\n\t}\n\t_handleTouchStart(event) {\n\t\tif (!this._enabled) return;\n\t\tconst newTouchedElements = this._determineTouchedElements(event);\n\t\tfor (let i2 = 0, len = event.changedTouches.length; i2 < len; i2++) {\n\t\t\tconst touch2 = event.changedTouches[i2];\n\t\t\tconst newTouchInfo = newTouchedElements[touch2.identifier];\n\t\t\tconst oldTouchInfo = this._touchedElements[touch2.identifier];\n\t\t\tif (newTouchInfo && (!oldTouchInfo || newTouchInfo.element !== oldTouchInfo.element)) {\n\t\t\t\tthis._fireEvent(event.type, new ElementTouchEvent(event, newTouchInfo.element, newTouchInfo.camera, newTouchInfo.x, newTouchInfo.y, touch2));\n\t\t\t\tthis._touchesForWhichTouchLeaveHasFired[touch2.identifier] = false;\n\t\t\t}\n\t\t}\n\t\tfor (const touchId in newTouchedElements) {\n\t\t\tthis._touchedElements[touchId] = newTouchedElements[touchId];\n\t\t}\n\t}\n\t_handleTouchEnd(event) {\n\t\tif (!this._enabled) return;\n\t\tconst cameras = this.app.systems.camera.cameras;\n\t\tfor (const key in this._clickedEntities) {\n\t\t\tdelete this._clickedEntities[key];\n\t\t}\n\t\tfor (let i2 = 0, len = event.changedTouches.length; i2 < len; i2++) {\n\t\t\tconst touch2 = event.changedTouches[i2];\n\t\t\tconst touchInfo = this._touchedElements[touch2.identifier];\n\t\t\tif (!touchInfo) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst element = touchInfo.element;\n\t\t\tconst camera = touchInfo.camera;\n\t\t\tconst x3 = touchInfo.x;\n\t\t\tconst y2 = touchInfo.y;\n\t\t\tdelete this._touchedElements[touch2.identifier];\n\t\t\tdelete this._touchesForWhichTouchLeaveHasFired[touch2.identifier];\n\t\t\tconst coords = getTouchTargetCoords(touch2);\n\t\t\tfor (let c2 = cameras.length - 1; c2 >= 0; c2--) {\n\t\t\t\tconst hovered = this._getTargetElementByCoords(cameras[c2], coords.x, coords.y);\n\t\t\t\tif (hovered === element) {\n\t\t\t\t\tif (!this._clickedEntities[element.entity.guid]) {\n\t\t\t\t\t\tthis._fireEvent(\"click\", new ElementTouchEvent(event, element, camera, x3, y2, touch2));\n\t\t\t\t\t\tthis._clickedEntities[element.entity.guid] = Date.now();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._fireEvent(event.type, new ElementTouchEvent(event, element, camera, x3, y2, touch2));\n\t\t}\n\t}\n\t_handleTouchMove(event) {\n\t\tevent.preventDefault();\n\t\tif (!this._enabled) return;\n\t\tconst newTouchedElements = this._determineTouchedElements(event);\n\t\tfor (let i2 = 0, len = event.changedTouches.length; i2 < len; i2++) {\n\t\t\tconst touch2 = event.changedTouches[i2];\n\t\t\tconst newTouchInfo = newTouchedElements[touch2.identifier];\n\t\t\tconst oldTouchInfo = this._touchedElements[touch2.identifier];\n\t\t\tif (oldTouchInfo) {\n\t\t\t\tconst coords = getTouchTargetCoords(touch2);\n\t\t\t\tif ((!newTouchInfo || newTouchInfo.element !== oldTouchInfo.element) && !this._touchesForWhichTouchLeaveHasFired[touch2.identifier]) {\n\t\t\t\t\tthis._fireEvent(\"touchleave\", new ElementTouchEvent(event, oldTouchInfo.element, oldTouchInfo.camera, coords.x, coords.y, touch2));\n\t\t\t\t\tthis._touchesForWhichTouchLeaveHasFired[touch2.identifier] = true;\n\t\t\t\t}\n\t\t\t\tthis._fireEvent(\"touchmove\", new ElementTouchEvent(event, oldTouchInfo.element, oldTouchInfo.camera, coords.x, coords.y, touch2));\n\t\t\t}\n\t\t}\n\t}\n\t_onElementMouseEvent(eventType, event) {\n\t\tlet element = null;\n\t\tconst lastHovered = this._hoveredElement;\n\t\tthis._hoveredElement = null;\n\t\tconst cameras = this.app.systems.camera.cameras;\n\t\tlet camera;\n\t\tfor (let i2 = cameras.length - 1; i2 >= 0; i2--) {\n\t\t\tcamera = cameras[i2];\n\t\t\telement = this._getTargetElementByCoords(camera, targetX, targetY);\n\t\t\tif (element) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tthis._hoveredElement = element;\n\t\tif ((eventType === \"mousemove\" || eventType === \"mouseup\") && this._pressedElement) {\n\t\t\tthis._fireEvent(eventType, new ElementMouseEvent(event, this._pressedElement, camera, targetX, targetY, this._lastX, this._lastY));\n\t\t} else if (element) {\n\t\t\tthis._fireEvent(eventType, new ElementMouseEvent(event, element, camera, targetX, targetY, this._lastX, this._lastY));\n\t\t\tif (eventType === \"mousedown\") {\n\t\t\t\tthis._pressedElement = element;\n\t\t\t}\n\t\t}\n\t\tif (lastHovered !== this._hoveredElement) {\n\t\t\tif (lastHovered) {\n\t\t\t\tthis._fireEvent(\"mouseleave\", new ElementMouseEvent(event, lastHovered, camera, targetX, targetY, this._lastX, this._lastY));\n\t\t\t}\n\t\t\tif (this._hoveredElement) {\n\t\t\t\tthis._fireEvent(\"mouseenter\", new ElementMouseEvent(event, this._hoveredElement, camera, targetX, targetY, this._lastX, this._lastY));\n\t\t\t}\n\t\t}\n\t\tif (eventType === \"mouseup\" && this._pressedElement) {\n\t\t\tif (this._pressedElement === this._hoveredElement) {\n\t\t\t\tconst guid2 = this._hoveredElement.entity.guid;\n\t\t\t\tlet fireClick = !this._clickedEntities;\n\t\t\t\tif (this._clickedEntities) {\n\t\t\t\t\tconst lastTouchUp = this._clickedEntities[guid2] || 0;\n\t\t\t\t\tconst dt = Date.now() - lastTouchUp;\n\t\t\t\t\tfireClick = dt > 300;\n\t\t\t\t\tdelete this._clickedEntities[guid2];\n\t\t\t\t}\n\t\t\t\tif (fireClick) {\n\t\t\t\t\tthis._fireEvent(\"click\", new ElementMouseEvent(event, this._hoveredElement, camera, targetX, targetY, this._lastX, this._lastY));\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._pressedElement = null;\n\t\t}\n\t}\n\t_onXrStart() {\n\t\tthis.app.xr.on(\"end\", this._onXrEnd, this);\n\t\tthis.app.xr.on(\"update\", this._onXrUpdate, this);\n\t\tthis.app.xr.input.on(\"selectstart\", this._onSelectStart, this);\n\t\tthis.app.xr.input.on(\"selectend\", this._onSelectEnd, this);\n\t\tthis.app.xr.input.on(\"remove\", this._onXrInputRemove, this);\n\t}\n\t_onXrEnd() {\n\t\tthis.app.xr.off(\"update\", this._onXrUpdate, this);\n\t\tthis.app.xr.input.off(\"selectstart\", this._onSelectStart, this);\n\t\tthis.app.xr.input.off(\"selectend\", this._onSelectEnd, this);\n\t\tthis.app.xr.input.off(\"remove\", this._onXrInputRemove, this);\n\t}\n\t_onXrUpdate() {\n\t\tif (!this._enabled) return;\n\t\tconst inputSources = this.app.xr.input.inputSources;\n\t\tfor (let i2 = 0; i2 < inputSources.length; i2++) {\n\t\t\tthis._onElementSelectEvent(\"selectmove\", inputSources[i2], null);\n\t\t}\n\t}\n\t_onXrInputRemove(inputSource) {\n\t\tconst hovered = this._selectedElements[inputSource.id];\n\t\tif (hovered) {\n\t\t\tinputSource._elementEntity = null;\n\t\t\tthis._fireEvent(\"selectleave\", new ElementSelectEvent(null, hovered, null, inputSource));\n\t\t}\n\t\tdelete this._selectedElements[inputSource.id];\n\t\tdelete this._selectedPressedElements[inputSource.id];\n\t}\n\t_onSelectStart(inputSource, event) {\n\t\tif (!this._enabled) return;\n\t\tthis._onElementSelectEvent(\"selectstart\", inputSource, event);\n\t}\n\t_onSelectEnd(inputSource, event) {\n\t\tif (!this._enabled) return;\n\t\tthis._onElementSelectEvent(\"selectend\", inputSource, event);\n\t}\n\t_onElementSelectEvent(eventType, inputSource, event) {\n\t\tlet element;\n\t\tconst hoveredBefore = this._selectedElements[inputSource.id];\n\t\tlet hoveredNow;\n\t\tconst cameras = this.app.systems.camera.cameras;\n\t\tlet camera;\n\t\tif (inputSource.elementInput) {\n\t\t\trayC.set(inputSource.getOrigin(), inputSource.getDirection());\n\t\t\tfor (let i2 = cameras.length - 1; i2 >= 0; i2--) {\n\t\t\t\tcamera = cameras[i2];\n\t\t\t\telement = this._getTargetElementByRay(rayC, camera);\n\t\t\t\tif (element) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tinputSource._elementEntity = element || null;\n\t\tif (element) {\n\t\t\tthis._selectedElements[inputSource.id] = element;\n\t\t\thoveredNow = element;\n\t\t} else {\n\t\t\tdelete this._selectedElements[inputSource.id];\n\t\t}\n\t\tif (hoveredBefore !== hoveredNow) {\n\t\t\tif (hoveredBefore) this._fireEvent(\"selectleave\", new ElementSelectEvent(event, hoveredBefore, camera, inputSource));\n\t\t\tif (hoveredNow) this._fireEvent(\"selectenter\", new ElementSelectEvent(event, hoveredNow, camera, inputSource));\n\t\t}\n\t\tconst pressed = this._selectedPressedElements[inputSource.id];\n\t\tif (eventType === \"selectmove\" && pressed) {\n\t\t\tthis._fireEvent(\"selectmove\", new ElementSelectEvent(event, pressed, camera, inputSource));\n\t\t}\n\t\tif (eventType === \"selectstart\") {\n\t\t\tthis._selectedPressedElements[inputSource.id] = hoveredNow;\n\t\t\tif (hoveredNow) this._fireEvent(\"selectstart\", new ElementSelectEvent(event, hoveredNow, camera, inputSource));\n\t\t}\n\t\tif (!inputSource.elementInput && pressed) {\n\t\t\tdelete this._selectedPressedElements[inputSource.id];\n\t\t\tif (hoveredBefore) {\n\t\t\t\tthis._fireEvent(\"selectend\", new ElementSelectEvent(event, pressed, camera, inputSource));\n\t\t\t}\n\t\t}\n\t\tif (eventType === \"selectend\" && inputSource.elementInput) {\n\t\t\tdelete this._selectedPressedElements[inputSource.id];\n\t\t\tif (pressed) {\n\t\t\t\tthis._fireEvent(\"selectend\", new ElementSelectEvent(event, pressed, camera, inputSource));\n\t\t\t}\n\t\t\tif (pressed && pressed === hoveredBefore) {\n\t\t\t\tthis._fireEvent(\"click\", new ElementSelectEvent(event, pressed, camera, inputSource));\n\t\t\t}\n\t\t}\n\t}\n\t_fireEvent(name, evt) {\n\t\tlet element = evt.element;\n\t\twhile (true) {\n\t\t\telement.fire(name, evt);\n\t\t\tif (evt._stopPropagation) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (!element.entity.parent) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\telement = element.entity.parent.element;\n\t\t\tif (!element) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\t_calcMouseCoords(event) {\n\t\tconst rect = this._target.getBoundingClientRect();\n\t\tconst left = Math.floor(rect.left);\n\t\tconst top = Math.floor(rect.top);\n\t\ttargetX = event.clientX - left;\n\t\ttargetY = event.clientY - top;\n\t}\n\t_sortElements(a, b) {\n\t\tconst layerOrder = this.app.scene.layers.sortTransparentLayers(a.layers, b.layers);\n\t\tif (layerOrder !== 0) return layerOrder;\n\t\tif (a.screen && !b.screen) {\n\t\t\treturn -1;\n\t\t}\n\t\tif (!a.screen && b.screen) {\n\t\t\treturn 1;\n\t\t}\n\t\tif (!a.screen && !b.screen) {\n\t\t\treturn 0;\n\t\t}\n\t\tif (a.screen.screen.screenSpace && !b.screen.screen.screenSpace) {\n\t\t\treturn -1;\n\t\t}\n\t\tif (b.screen.screen.screenSpace && !a.screen.screen.screenSpace) {\n\t\t\treturn 1;\n\t\t}\n\t\treturn b.drawOrder - a.drawOrder;\n\t}\n\t_getTargetElementByCoords(camera, x3, y2) {\n\t\tconst rayScreen = this._calculateRayScreen(x3, y2, camera, rayA) ? rayA : null;\n\t\tconst ray3d = this._calculateRay3d(x3, y2, camera, rayB) ? rayB : null;\n\t\treturn this._getTargetElement(camera, rayScreen, ray3d);\n\t}\n\t_getTargetElementByRay(ray3, camera) {\n\t\trayA.origin.copy(ray3.origin);\n\t\trayA.direction.copy(ray3.direction);\n\t\trayA.end.copy(rayA.direction).mulScalar(camera.farClip * 2).add(rayA.origin);\n\t\tconst ray3d = rayA;\n\t\tconst screenPos = camera.worldToScreen(ray3d.origin, vecA3);\n\t\tconst rayScreen = this._calculateRayScreen(screenPos.x, screenPos.y, camera, rayB) ? rayB : null;\n\t\treturn this._getTargetElement(camera, rayScreen, ray3d);\n\t}\n\t_getTargetElement(camera, rayScreen, ray3d) {\n\t\tlet result = null;\n\t\tlet closestDistance3d = Infinity;\n\t\tthis._elements.sort(this._sortHandler);\n\t\tfor (let i2 = 0, len = this._elements.length; i2 < len; i2++) {\n\t\t\tconst element = this._elements[i2];\n\t\t\tif (!element.layers.some((v6) => camera.layersSet.has(v6))) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (element.screen && element.screen.screen.screenSpace) {\n\t\t\t\tif (!rayScreen) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst currentDistance = this._checkElement(rayScreen, element, true);\n\t\t\t\tif (currentDistance >= 0) {\n\t\t\t\t\tresult = element;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (!ray3d) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst currentDistance = this._checkElement(ray3d, element, false);\n\t\t\t\tif (currentDistance >= 0) {\n\t\t\t\t\tif (currentDistance < closestDistance3d) {\n\t\t\t\t\t\tresult = element;\n\t\t\t\t\t\tclosestDistance3d = currentDistance;\n\t\t\t\t\t}\n\t\t\t\t\tif (element.screen) {\n\t\t\t\t\t\tresult = element;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\t_calculateRayScreen(x3, y2, camera, ray3) {\n\t\tconst sw = this.app.graphicsDevice.width;\n\t\tconst sh = this.app.graphicsDevice.height;\n\t\tconst cameraWidth = camera.rect.z * sw;\n\t\tconst cameraHeight = camera.rect.w * sh;\n\t\tconst cameraLeft = camera.rect.x * sw;\n\t\tconst cameraRight = cameraLeft + cameraWidth;\n\t\tconst cameraBottom = (1 - camera.rect.y) * sh;\n\t\tconst cameraTop = cameraBottom - cameraHeight;\n\t\tlet _x = x3 * sw / this._target.clientWidth;\n\t\tlet _y = y2 * sh / this._target.clientHeight;\n\t\tif (_x >= cameraLeft && _x <= cameraRight && _y <= cameraBottom && _y >= cameraTop) {\n\t\t\t_x = sw * (_x - cameraLeft) / cameraWidth;\n\t\t\t_y = sh * (_y - cameraTop) / cameraHeight;\n\t\t\t_y = sh - _y;\n\t\t\tray3.origin.set(_x, _y, 1);\n\t\t\tray3.direction.set(0, 0, -1);\n\t\t\tray3.end.copy(ray3.direction).mulScalar(2).add(ray3.origin);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\t_calculateRay3d(x3, y2, camera, ray3) {\n\t\tconst sw = this._target.clientWidth;\n\t\tconst sh = this._target.clientHeight;\n\t\tconst cameraWidth = camera.rect.z * sw;\n\t\tconst cameraHeight = camera.rect.w * sh;\n\t\tconst cameraLeft = camera.rect.x * sw;\n\t\tconst cameraRight = cameraLeft + cameraWidth;\n\t\tconst cameraBottom = (1 - camera.rect.y) * sh;\n\t\tconst cameraTop = cameraBottom - cameraHeight;\n\t\tlet _x = x3;\n\t\tlet _y = y2;\n\t\tif (x3 >= cameraLeft && x3 <= cameraRight && y2 <= cameraBottom && _y >= cameraTop) {\n\t\t\t_x = sw * (_x - cameraLeft) / cameraWidth;\n\t\t\t_y = sh * (_y - cameraTop) / cameraHeight;\n\t\t\tcamera.screenToWorld(_x, _y, camera.nearClip, vecA3);\n\t\t\tcamera.screenToWorld(_x, _y, camera.farClip, vecB3);\n\t\t\tray3.origin.copy(vecA3);\n\t\t\tray3.direction.set(0, 0, -1);\n\t\t\tray3.end.copy(vecB3);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\t_checkElement(ray3, element, screen) {\n\t\tif (element.maskedBy) {\n\t\t\tif (this._checkElement(ray3, element.maskedBy.element, screen) < 0) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t\tlet scale2;\n\t\tif (screen) {\n\t\t\tscale2 = _ElementInput.calculateScaleToScreen(element);\n\t\t} else {\n\t\t\tscale2 = _ElementInput.calculateScaleToWorld(element);\n\t\t}\n\t\tconst corners = _ElementInput.buildHitCorners(element, screen ? element.screenCorners : element.worldCorners, scale2);\n\t\treturn intersectLineQuad(ray3.origin, ray3.end, corners);\n\t}\n\t// In most cases the corners used for hit testing will just be the element's\n\t// screen corners. However, in cases where the element has additional hit\n\t// padding specified, we need to expand the screenCorners to incorporate the\n\t// padding.\n\t// NOTE: Used by Editor for visualization in the viewport\n\tstatic buildHitCorners(element, screenOrWorldCorners, scale2) {\n\t\tlet hitCorners = screenOrWorldCorners;\n\t\tconst button = element.entity && element.entity.button;\n\t\tif (button) {\n\t\t\tconst hitPadding = element.entity.button.hitPadding || ZERO_VEC4;\n\t\t\t_paddingTop.copy(element.entity.up);\n\t\t\t_paddingBottom.copy(_paddingTop).mulScalar(-1);\n\t\t\t_paddingRight.copy(element.entity.right);\n\t\t\t_paddingLeft.copy(_paddingRight).mulScalar(-1);\n\t\t\t_paddingTop.mulScalar(hitPadding.w * scale2.y);\n\t\t\t_paddingBottom.mulScalar(hitPadding.y * scale2.y);\n\t\t\t_paddingRight.mulScalar(hitPadding.z * scale2.x);\n\t\t\t_paddingLeft.mulScalar(hitPadding.x * scale2.x);\n\t\t\t_cornerBottomLeft.copy(hitCorners[0]).add(_paddingBottom).add(_paddingLeft);\n\t\t\t_cornerBottomRight.copy(hitCorners[1]).add(_paddingBottom).add(_paddingRight);\n\t\t\t_cornerTopRight.copy(hitCorners[2]).add(_paddingTop).add(_paddingRight);\n\t\t\t_cornerTopLeft.copy(hitCorners[3]).add(_paddingTop).add(_paddingLeft);\n\t\t\thitCorners = [_cornerBottomLeft, _cornerBottomRight, _cornerTopRight, _cornerTopLeft];\n\t\t}\n\t\tif (scale2.x < 0) {\n\t\t\tconst left = hitCorners[2].x;\n\t\t\tconst right2 = hitCorners[0].x;\n\t\t\thitCorners[0].x = left;\n\t\t\thitCorners[1].x = right2;\n\t\t\thitCorners[2].x = right2;\n\t\t\thitCorners[3].x = left;\n\t\t}\n\t\tif (scale2.y < 0) {\n\t\t\tconst bottom = hitCorners[2].y;\n\t\t\tconst top = hitCorners[0].y;\n\t\t\thitCorners[0].y = bottom;\n\t\t\thitCorners[1].y = bottom;\n\t\t\thitCorners[2].y = top;\n\t\t\thitCorners[3].y = top;\n\t\t}\n\t\tif (scale2.z < 0) {\n\t\t\tconst x3 = hitCorners[2].x;\n\t\t\tconst y2 = hitCorners[2].y;\n\t\t\tconst z2 = hitCorners[2].z;\n\t\t\thitCorners[2].x = hitCorners[0].x;\n\t\t\thitCorners[2].y = hitCorners[0].y;\n\t\t\thitCorners[2].z = hitCorners[0].z;\n\t\t\thitCorners[0].x = x3;\n\t\t\thitCorners[0].y = y2;\n\t\t\thitCorners[0].z = z2;\n\t\t}\n\t\treturn hitCorners;\n\t}\n\t// NOTE: Used by Editor for visualization in the viewport\n\tstatic calculateScaleToScreen(element) {\n\t\tlet current = element.entity;\n\t\tconst screenScale = element.screen.screen.scale;\n\t\t_accumulatedScale.set(screenScale, screenScale, screenScale);\n\t\twhile (current && !current.screen) {\n\t\t\t_accumulatedScale.mul(current.getLocalScale());\n\t\t\tcurrent = current.parent;\n\t\t}\n\t\treturn _accumulatedScale;\n\t}\n\t// NOTE: Used by Editor for visualization in the viewport\n\tstatic calculateScaleToWorld(element) {\n\t\tlet current = element.entity;\n\t\t_accumulatedScale.set(1, 1, 1);\n\t\twhile (current) {\n\t\t\t_accumulatedScale.mul(current.getLocalScale());\n\t\t\tcurrent = current.parent;\n\t\t}\n\t\treturn _accumulatedScale;\n\t}\n\tget wheel() {\n\t\treturn this.wheelDelta * -2;\n\t}\n};\n\nvar PIXELFORMAT_L8_A8 = PIXELFORMAT_LA8;\nvar PIXELFORMAT_R5_G6_B5 = PIXELFORMAT_RGB565;\nvar PIXELFORMAT_R5_G5_B5_A1 = PIXELFORMAT_RGBA5551;\nvar PIXELFORMAT_R4_G4_B4_A4 = PIXELFORMAT_RGBA4;\nvar PIXELFORMAT_R8_G8_B8 = PIXELFORMAT_RGB8;\nvar PIXELFORMAT_R8_G8_B8_A8 = PIXELFORMAT_RGBA8;\nvar PIXELFORMAT_SRGB = PIXELFORMAT_SRGB8;\nvar PIXELFORMAT_SRGBA = PIXELFORMAT_SRGBA8;\nvar BLENDMODE_CONSTANT_COLOR = BLENDMODE_CONSTANT;\nvar BLENDMODE_ONE_MINUS_CONSTANT_COLOR = BLENDMODE_ONE_MINUS_CONSTANT;\nvar BLENDMODE_CONSTANT_ALPHA = BLENDMODE_CONSTANT;\nvar BLENDMODE_ONE_MINUS_CONSTANT_ALPHA = BLENDMODE_ONE_MINUS_CONSTANT;\nvar CHUNKAPI_1_51 = \"1.51\";\nvar CHUNKAPI_1_55 = \"1.55\";\nvar CHUNKAPI_1_56 = \"1.56\";\nvar CHUNKAPI_1_57 = \"1.57\";\nvar CHUNKAPI_1_58 = \"1.58\";\nvar CHUNKAPI_1_60 = \"1.60\";\nvar CHUNKAPI_1_62 = \"1.62\";\nvar CHUNKAPI_1_65 = \"1.65\";\nvar CHUNKAPI_1_70 = \"1.70\";\nvar CHUNKAPI_2_1 = \"2.1\";\nvar CHUNKAPI_2_3 = \"2.3\";\nvar CHUNKAPI_2_5 = \"2.5\";\nvar CHUNKAPI_2_6 = \"2.6\";\nvar CHUNKAPI_2_7 = \"2.7\";\nvar CHUNKAPI_2_8 = \"2.8\";\nvar _viewport4 = new Vec4();\nfunction createSphere(device, opts) {\n\treturn Mesh.fromGeometry(device, new SphereGeometry(opts));\n}\nfunction createPlane(device, opts) {\n\treturn Mesh.fromGeometry(device, new PlaneGeometry(opts));\n}\nfunction createBox(device, opts) {\n\treturn Mesh.fromGeometry(device, new BoxGeometry(opts));\n}\nfunction createTorus(device, opts) {\n\treturn Mesh.fromGeometry(device, new TorusGeometry(opts));\n}\nfunction createCapsule(device, opts) {\n\treturn Mesh.fromGeometry(device, new CapsuleGeometry(opts));\n}\nfunction createCone(device, opts) {\n\treturn Mesh.fromGeometry(device, new ConeGeometry(opts));\n}\nfunction createCylinder(device, opts) {\n\treturn Mesh.fromGeometry(device, new CylinderGeometry(opts));\n}\nfunction createMesh2(device, positions, opts = {}) {\n\tconst geom = new Geometry();\n\tgeom.positions = positions;\n\tgeom.normals = opts.normals;\n\tgeom.tangents = opts.tangents;\n\tgeom.colors = opts.colors;\n\tgeom.uvs = opts.uvs;\n\tgeom.uvs1 = opts.uvs1;\n\tgeom.blendIndices = opts.blendIndices;\n\tgeom.blendWeights = opts.blendWeights;\n\tgeom.indices = opts.indices;\n\treturn Mesh.fromGeometry(device, geom, opts);\n}\nfunction drawFullscreenQuad(device, target2, vertexBuffer, shader, rect) {\n\tlet viewport;\n\tif (rect) {\n\t\tconst w = target2 ? target2.width : device.width;\n\t\tconst h2 = target2 ? target2.height : device.height;\n\t\tviewport = _viewport4.set(rect.x * w, rect.y * h2, rect.z * w, rect.w * h2);\n\t}\n\tdrawQuadWithShader(device, target2, shader, viewport);\n}\nvar Key = AnimationKey;\nvar Node = AnimationNode;\nvar LitOptions = LitShaderOptions;\nvar shaderChunks = new Proxy({}, {\n\tget(target2, prop) {\n\t\treturn ShaderChunks.get(getApplication().graphicsDevice, SHADERLANGUAGE_GLSL).get(prop);\n\t},\n\tset(target2, prop, value) {\n\t\tShaderChunks.get(getApplication().graphicsDevice, SHADERLANGUAGE_GLSL).set(prop, value);\n\t\treturn true;\n\t}\n});\nvar EVENT_KEYDOWN = \"keydown\";\nvar EVENT_KEYUP = \"keyup\";\nvar EVENT_MOUSEDOWN = \"mousedown\";\nvar EVENT_MOUSEMOVE = \"mousemove\";\nvar EVENT_MOUSEUP = \"mouseup\";\nvar EVENT_MOUSEWHEEL = \"mousewheel\";\nvar EVENT_TOUCHSTART = \"touchstart\";\nvar EVENT_TOUCHEND = \"touchend\";\nvar EVENT_TOUCHMOVE = \"touchmove\";\nvar EVENT_TOUCHCANCEL = \"touchcancel\";\nvar EVENT_GAMEPADCONNECTED = \"gamepadconnected\";\nvar EVENT_GAMEPADDISCONNECTED = \"gamepaddisconnected\";\nvar EVENT_SELECT = \"select\";\nvar EVENT_SELECTSTART = \"selectstart\";\nvar EVENT_SELECTEND = \"selectend\";\nvar RIGIDBODY_TYPE_STATIC = BODYTYPE_STATIC;\nvar RIGIDBODY_TYPE_DYNAMIC = BODYTYPE_DYNAMIC;\nvar RIGIDBODY_TYPE_KINEMATIC = BODYTYPE_KINEMATIC;\nvar RIGIDBODY_CF_STATIC_OBJECT = BODYFLAG_STATIC_OBJECT;\nvar RIGIDBODY_CF_KINEMATIC_OBJECT = BODYFLAG_KINEMATIC_OBJECT;\nvar RIGIDBODY_CF_NORESPONSE_OBJECT = BODYFLAG_NORESPONSE_OBJECT;\nvar RIGIDBODY_ACTIVE_TAG = BODYSTATE_ACTIVE_TAG;\nvar RIGIDBODY_ISLAND_SLEEPING = BODYSTATE_ISLAND_SLEEPING;\nvar RIGIDBODY_WANTS_DEACTIVATION = BODYSTATE_WANTS_DEACTIVATION;\nvar RIGIDBODY_DISABLE_DEACTIVATION = BODYSTATE_DISABLE_DEACTIVATION;\nvar RIGIDBODY_DISABLE_SIMULATION = BODYSTATE_DISABLE_SIMULATION;\n\nvar CpuTimer = class {\n\tconstructor(app2) {\n\t\tthis._frameIndex = 0;\n\t\tthis._frameTimings = [];\n\t\tthis._timings = [];\n\t\tthis._prevTimings = [];\n\t\tthis.unitsName = \"ms\";\n\t\tthis.decimalPlaces = 1;\n\t\tthis.enabled = true;\n\t\tapp2.on(\"frameupdate\", this.begin.bind(this, \"update\"));\n\t\tapp2.on(\"framerender\", this.mark.bind(this, \"render\"));\n\t\tapp2.on(\"frameend\", this.mark.bind(this, \"other\"));\n\t}\n\t// mark the beginning of the frame\n\tbegin(name) {\n\t\tif (!this.enabled) {\n\t\t\treturn;\n\t\t}\n\t\tif (this._frameIndex < this._frameTimings.length) {\n\t\t\tthis._frameTimings.splice(this._frameIndex);\n\t\t}\n\t\tconst tmp = this._prevTimings;\n\t\tthis._prevTimings = this._timings;\n\t\tthis._timings = this._frameTimings;\n\t\tthis._frameTimings = tmp;\n\t\tthis._frameIndex = 0;\n\t\tthis.mark(name);\n\t}\n\t// mark\n\tmark(name) {\n\t\tif (!this.enabled) {\n\t\t\treturn;\n\t\t}\n\t\tconst timestamp = now();\n\t\tif (this._frameIndex > 0) {\n\t\t\tconst prev = this._frameTimings[this._frameIndex - 1];\n\t\t\tprev[1] = timestamp - prev[1];\n\t\t} else if (this._timings.length > 0) {\n\t\t\tconst prev = this._timings[this._timings.length - 1];\n\t\t\tprev[1] = timestamp - prev[1];\n\t\t}\n\t\tif (this._frameIndex >= this._frameTimings.length) {\n\t\t\tthis._frameTimings.push([name, timestamp]);\n\t\t} else {\n\t\t\tconst timing = this._frameTimings[this._frameIndex];\n\t\t\ttiming[0] = name;\n\t\t\ttiming[1] = timestamp;\n\t\t}\n\t\tthis._frameIndex++;\n\t}\n\tget timings() {\n\t\treturn this._timings.slice(0, -1).map((v6) => v6[1]);\n\t}\n};\n\nvar GpuTimer = class {\n\tconstructor(device) {\n\t\tthis.device = device;\n\t\tif (device.gpuProfiler) {\n\t\t\tdevice.gpuProfiler.enabled = true;\n\t\t}\n\t\tthis.enabled = true;\n\t\tthis.unitsName = \"ms\";\n\t\tthis.decimalPlaces = 1;\n\t\tthis._timings = [];\n\t}\n\tget timings() {\n\t\tthis._timings[0] = this.device.gpuProfiler?._frameTime ?? 0;\n\t\treturn this._timings;\n\t}\n};\n\nvar StatsTimer = class {\n\tconstructor(app2, statNames, decimalPlaces, unitsName, multiplier) {\n\t\tthis.app = app2;\n\t\tthis.values = [];\n\t\tthis.statNames = statNames;\n\t\tthis.unitsName = unitsName;\n\t\tthis.decimalPlaces = decimalPlaces;\n\t\tthis.multiplier = multiplier || 1;\n\t\tconst resolve2 = (path2, obj) => {\n\t\t\treturn path2.split(\".\").reduce((prev, curr) => {\n\t\t\t\tif (!prev) return null;\n\t\t\t\tif (prev instanceof Map) {\n\t\t\t\t\treturn prev.get(curr);\n\t\t\t\t}\n\t\t\t\treturn prev[curr];\n\t\t\t}, obj || this);\n\t\t};\n\t\tapp2.on(\"frameupdate\", (ms) => {\n\t\t\tfor (let i2 = 0; i2 < this.statNames.length; i2++) {\n\t\t\t\tconst value = resolve2(this.statNames[i2], this.app.stats);\n\t\t\t\tthis.values[i2] = (value ?? 0) * this.multiplier;\n\t\t\t}\n\t\t});\n\t}\n\tget timings() {\n\t\treturn this.values;\n\t}\n};\n\nvar Graph = class {\n\tconstructor(name, app2, watermark, textRefreshRate, timer) {\n\t\tthis.app = app2;\n\t\tthis.name = name;\n\t\tthis.device = app2.graphicsDevice;\n\t\tthis.timer = timer;\n\t\tthis.watermark = watermark;\n\t\tthis.enabled = false;\n\t\tthis.textRefreshRate = textRefreshRate;\n\t\tthis.avgTotal = 0;\n\t\tthis.avgTimer = 0;\n\t\tthis.avgCount = 0;\n\t\tthis.maxValue = 0;\n\t\tthis.timingText = \"\";\n\t\tthis.maxText = \"\";\n\t\tthis.texture = null;\n\t\tthis.yOffset = 0;\n\t\tthis.graphType = 0;\n\t\tthis.cursor = 0;\n\t\tthis.sample = new Uint8ClampedArray(4);\n\t\tthis.sample.set([0, 0, 0, 255]);\n\t\tthis.needsClear = false;\n\t\tthis.counter = 0;\n\t\tthis.app.on(\"frameupdate\", this.update, this);\n\t}\n\tdestroy() {\n\t\tthis.app.off(\"frameupdate\", this.update, this);\n\t}\n\t// called when context was lost, function releases all context related resources\n\tloseContext() {\n\t\tif (this.timer && typeof this.timer.loseContext === \"function\") {\n\t\t\tthis.timer.loseContext();\n\t\t}\n\t}\n\tupdate(ms) {\n\t\tconst timings = this.timer.timings;\n\t\tconst total = timings.reduce((a, v6) => a + v6, 0);\n\t\tthis.avgTotal += total;\n\t\tthis.avgTimer += ms;\n\t\tthis.avgCount++;\n\t\tthis.maxValue = Math.max(this.maxValue, total);\n\t\tif (this.avgTimer > this.textRefreshRate) {\n\t\t\tthis.timingText = (this.avgTotal / this.avgCount).toFixed(this.timer.decimalPlaces);\n\t\t\tthis.maxText = this.maxValue.toFixed(this.timer.decimalPlaces);\n\t\t\tthis.avgTimer = 0;\n\t\t\tthis.avgTotal = 0;\n\t\t\tthis.avgCount = 0;\n\t\t\tthis.maxValue = 0;\n\t\t}\n\t\tif (this.enabled) {\n\t\t\tconst range = 1.5 * this.watermark;\n\t\t\tthis.sample[0] = Math.floor(total / range * 255);\n\t\t\tthis.sample[1] = 0;\n\t\t\tthis.sample[2] = 0;\n\t\t\tthis.sample[3] = this.watermark / range * 255;\n\t\t\tif (this.yOffset >= this.texture.height) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst data2 = this.texture.lock();\n\t\t\tif (this.needsClear) {\n\t\t\t\tconst rowOffset = this.yOffset * this.texture.width * 4;\n\t\t\t\tdata2.fill(0, rowOffset, rowOffset + this.texture.width * 4);\n\t\t\t\tthis.needsClear = false;\n\t\t\t}\n\t\t\tdata2.set(this.sample, (this.cursor + this.yOffset * this.texture.width) * 4);\n\t\t\tthis.texture.unlock();\n\t\t\tthis.cursor++;\n\t\t\tif (this.cursor === this.texture.width) {\n\t\t\t\tthis.cursor = 0;\n\t\t\t}\n\t\t}\n\t}\n\trender(render2d, x3, y2, w, h2) {\n\t\trender2d.quad(\n\t\t\tx3 + w,\n\t\t\ty2,\n\t\t\t-w,\n\t\t\th2,\n\t\t\tthis.enabled ? this.cursor : 0,\n\t\t\tthis.enabled ? 0.5 + this.yOffset : this.texture.height - 1,\n\t\t\t-w,\n\t\t\t0,\n\t\t\tthis.texture,\n\t\t\tthis.graphType\n\t\t);\n\t}\n};\n\nvar WordAtlas = class {\n\tconstructor(device, words) {\n\t\tconst initContext = (context2) => {\n\t\t\tcontext2.font = '10px \"Lucida Console\", Monaco, monospace';\n\t\t\tcontext2.textAlign = \"left\";\n\t\t\tcontext2.textBaseline = \"alphabetic\";\n\t\t};\n\t\tconst isNumber = (word) => {\n\t\t\treturn word === \".\" || word.length === 1 && word.charCodeAt(0) >= 48 && word.charCodeAt(0) <= 57;\n\t\t};\n\t\tconst canvas = document.createElement(\"canvas\");\n\t\tconst context = canvas.getContext(\"2d\", { alpha: true });\n\t\tinitContext(context);\n\t\tconst placements = /* @__PURE__ */ new Map();\n\t\tconst padding = 5;\n\t\tconst width = 512;\n\t\tlet x3 = padding;\n\t\tlet y2 = padding;\n\t\twords.forEach((word) => {\n\t\t\tconst measurement = context.measureText(word);\n\t\t\tconst l = Math.ceil(-measurement.actualBoundingBoxLeft);\n\t\t\tconst r = Math.ceil(measurement.actualBoundingBoxRight);\n\t\t\tconst a = Math.ceil(measurement.actualBoundingBoxAscent);\n\t\t\tconst d = Math.ceil(measurement.actualBoundingBoxDescent);\n\t\t\tconst w = l + r;\n\t\t\tconst h2 = a + d;\n\t\t\tif (x3 + w + padding >= width) {\n\t\t\t\tx3 = padding;\n\t\t\t\ty2 += 16;\n\t\t\t}\n\t\t\tplacements.set(word, { l, r, a, d, w, h: h2, x: x3, y: y2 });\n\t\t\tx3 += w + padding;\n\t\t});\n\t\tcanvas.width = 512;\n\t\tcanvas.height = math.nextPowerOfTwo(y2 + 16 + padding);\n\t\tinitContext(context);\n\t\tcontext.fillStyle = \"rgb(0, 0, 0)\";\n\t\tcontext.fillRect(0, 0, canvas.width, canvas.height);\n\t\tplacements.forEach((m, word) => {\n\t\t\tcontext.fillStyle = isNumber(word) ? \"rgb(255, 240, 100)\" : \"rgb(150, 220, 230)\";\n\t\t\tcontext.fillText(word, m.x - m.l, m.y + m.a);\n\t\t});\n\t\tthis.placements = placements;\n\t\tconst data2 = context.getImageData(0, 0, canvas.width, canvas.height).data;\n\t\tfor (let i2 = 0; i2 < data2.length; i2 += 4) {\n\t\t\tconst maxChannel = Math.max(data2[i2 + 0], data2[i2 + 1], data2[i2 + 2]);\n\t\t\tdata2[i2 + 3] = Math.min(maxChannel * 2, 255);\n\t\t}\n\t\tthis.texture = new Texture(device, {\n\t\t\tname: \"mini-stats-word-atlas\",\n\t\t\twidth: canvas.width,\n\t\t\theight: canvas.height,\n\t\t\tmipmaps: false,\n\t\t\tminFilter: FILTER_NEAREST,\n\t\t\tmagFilter: FILTER_NEAREST,\n\t\t\tlevels: [data2]\n\t\t});\n\t}\n\tdestroy() {\n\t\tthis.texture.destroy();\n\t\tthis.texture = null;\n\t}\n\trender(render2d, word, x3, y2) {\n\t\tconst p = this.placements.get(word);\n\t\tif (p) {\n\t\t\tconst padding = 1;\n\t\t\trender2d.quad(\n\t\t\t\tx3 + p.l - padding,\n\t\t\t\ty2 - p.d + padding,\n\t\t\t\tp.w + padding * 2,\n\t\t\t\tp.h + padding * 2,\n\t\t\t\tp.x - padding,\n\t\t\t\tthis.texture.height - p.y - p.h - padding,\n\t\t\t\tvoid 0,\n\t\t\t\tvoid 0,\n\t\t\t\tthis.texture,\n\t\t\t\t1\n\t\t\t);\n\t\t\treturn p.w;\n\t\t}\n\t\tlet totalWidth = 0;\n\t\tfor (let i2 = 0; i2 < word.length; i2++) {\n\t\t\tconst char = word[i2];\n\t\t\tif (char === \" \") {\n\t\t\t\ttotalWidth += 5;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst charPlacement = this.placements.get(char);\n\t\t\tif (charPlacement) {\n\t\t\t\tconst padding = 1;\n\t\t\t\trender2d.quad(\n\t\t\t\t\tx3 + totalWidth + charPlacement.l - padding,\n\t\t\t\t\ty2 - charPlacement.d + padding,\n\t\t\t\t\tcharPlacement.w + padding * 2,\n\t\t\t\t\tcharPlacement.h + padding * 2,\n\t\t\t\t\tcharPlacement.x - padding,\n\t\t\t\t\tthis.texture.height - charPlacement.y - charPlacement.h - padding,\n\t\t\t\t\tvoid 0,\n\t\t\t\t\tvoid 0,\n\t\t\t\t\tthis.texture,\n\t\t\t\t\t1\n\t\t\t\t);\n\t\t\t\ttotalWidth += charPlacement.w;\n\t\t\t}\n\t\t}\n\t\treturn totalWidth;\n\t}\n};\n\nvar graphColorDefault = \"1.0, 0.412, 0.380\";\nvar graphColorGpu = \"0.467, 0.867, 0.467\";\nvar graphColorCpu = \"0.424, 0.627, 0.863\";\nvar mainBackgroundColor = \"0.0, 0.0, 0.0\";\nvar gpuBackgroundColor = \"0.15, 0.15, 0.0\";\nvar cpuBackgroundColor = \"0.15, 0.0, 0.1\";\nvar vertexShaderGLSL = `\n\tattribute vec3 vertex_position;\n\tattribute vec4 vertex_texCoord0;\n\tvarying vec4 uv0;\n\tvarying float wordFlag;\n\tvoid main(void) {\n\t\tgl_Position = vec4(vertex_position.xy * 2.0 - 1.0, 0.5, 1.0);\n\t\tuv0 = vertex_texCoord0;\n\t\twordFlag = vertex_position.z;\n\t}\n`;\nvar vertexShaderWGSL = `\n\tattribute vertex_position: vec3f;\n\tattribute vertex_texCoord0: vec4f;\n\tvarying uv0: vec4f;\n\tvarying wordFlag: f32;\n\t@vertex fn vertexMain(input : VertexInput) -> VertexOutput {\n\t\tvar output : VertexOutput;\n\t\toutput.position = vec4(input.vertex_position.xy * 2.0 - 1.0, 0.5, 1.0);\n\t\toutput.uv0 = input.vertex_texCoord0;\n\t\toutput.wordFlag = input.vertex_position.z;\n\t\treturn output;\n\t}\n`;\nvar fragmentShaderGLSL = `\n\tvarying vec4 uv0;\n\tvarying float wordFlag;\n\tuniform vec4 clr;\n\tuniform sampler2D graphTex;\n\tuniform sampler2D wordsTex;\n\tvoid main (void) {\n\t\tvec3 graphColor = vec3(${graphColorDefault});\n\t\tif (wordFlag > 0.5) {\n\t\t\tgraphColor = vec3(${graphColorCpu});\n\t\t} else if (wordFlag > 0.2) {\n\t\t\tgraphColor = vec3(${graphColorGpu});\n\t\t}\n\t\tvec4 graphSample = texture2D(graphTex, uv0.xy);\n\t\tvec4 graph;\n\t\tif (uv0.w < graphSample.r)\n\t\t\tgraph = vec4(graphColor, 1.0);\n\t\telse {\n\t\t\tvec3 bgColor = vec3(${mainBackgroundColor});\n\t\t\tif (wordFlag > 0.5) {\n\t\t\t\tbgColor = vec3(${cpuBackgroundColor});\n\t\t\t} else if (wordFlag > 0.2) {\n\t\t\t\tbgColor = vec3(${gpuBackgroundColor});\n\t\t\t}\n\t\t\tgraph = vec4(bgColor, 1.0);\n\t\t}\n\t\tvec4 words = texture2D(wordsTex, vec2(uv0.x, 1.0 - uv0.y));\n\t\tif (wordFlag > 0.99) {\n\t\t\tgl_FragColor = words * clr;\n\t\t} else {\n\t\t\tgl_FragColor = graph * clr;\n\t\t}\n\t}\n`;\nvar fragmentShaderWGSL = `\n\tvarying uv0: vec4f;\n\tvarying wordFlag: f32;\n\tuniform clr: vec4f;\n\tvar graphTex : texture_2d<f32>;\n\tvar graphTex_sampler : sampler;\n\tvar wordsTex : texture_2d<f32>;\n\tvar wordsTex_sampler : sampler;\n\t@fragment fn fragmentMain(input : FragmentInput) -> FragmentOutput {\n\t\tvar uv0: vec4f = input.uv0;\n\t\tvar graphColor: vec3f = vec3f(${graphColorDefault});\n\t\tif (input.wordFlag > 0.5) {\n\t\t\tgraphColor = vec3f(${graphColorCpu});\n\t\t} else if (input.wordFlag > 0.2) {\n\t\t\tgraphColor = vec3f(${graphColorGpu});\n\t\t}\n\t\tvar graphSample: vec4f = textureSample(graphTex, graphTex_sampler, uv0.xy);\n\t\tvar graph: vec4f;\n\t\tif (uv0.w < graphSample.r) {\n\t\t\tgraph = vec4f(graphColor, 1.0);\n\t\t} else {\n\t\t\tvar bgColor: vec3f = vec3f(${mainBackgroundColor});\n\t\t\tif (input.wordFlag > 0.5) {\n\t\t\t\tbgColor = vec3f(${cpuBackgroundColor});\n\t\t\t} else if (input.wordFlag > 0.2) {\n\t\t\t\tbgColor = vec3f(${gpuBackgroundColor});\n\t\t\t}\n\t\t\tgraph = vec4f(bgColor, 1.0);\n\t\t}\n\t\tvar words: vec4f = textureSample(wordsTex, wordsTex_sampler, vec2f(uv0.x, 1.0 - uv0.y));\n\t\tvar output: FragmentOutput;\n\t\tif (input.wordFlag > 0.99) {\n\t\t\toutput.color = words * uniform.clr;\n\t\t} else {\n\t\t\toutput.color = graph * uniform.clr;\n\t\t}\n\t\treturn output;\n\t}\n`;\nvar Render2d = class {\n\tconstructor(device, maxQuads = 2048) {\n\t\tconst format = new VertexFormat(device, [\n\t\t\t{ semantic: SEMANTIC_POSITION, components: 3, type: TYPE_FLOAT32 },\n\t\t\t{ semantic: SEMANTIC_TEXCOORD0, components: 4, type: TYPE_FLOAT32 }\n\t\t]);\n\t\tconst indices = new Uint16Array(maxQuads * 6);\n\t\tfor (let i2 = 0; i2 < maxQuads; ++i2) {\n\t\t\tindices[i2 * 6 + 0] = i2 * 4;\n\t\t\tindices[i2 * 6 + 1] = i2 * 4 + 1;\n\t\t\tindices[i2 * 6 + 2] = i2 * 4 + 2;\n\t\t\tindices[i2 * 6 + 3] = i2 * 4;\n\t\t\tindices[i2 * 6 + 4] = i2 * 4 + 2;\n\t\t\tindices[i2 * 6 + 5] = i2 * 4 + 3;\n\t\t}\n\t\tthis.device = device;\n\t\tthis.maxQuads = maxQuads;\n\t\tthis.buffer = new VertexBuffer(device, format, maxQuads * 4, {\n\t\t\tusage: BUFFER_STREAM\n\t\t});\n\t\tthis.data = new Float32Array(this.buffer.numBytes / 4);\n\t\tthis.indexBuffer = new IndexBuffer(device, INDEXFORMAT_UINT16, maxQuads * 6, BUFFER_STATIC, indices);\n\t\tthis.prim = {\n\t\t\ttype: PRIMITIVE_TRIANGLES,\n\t\t\tindexed: true,\n\t\t\tbase: 0,\n\t\t\tbaseVertex: 0,\n\t\t\tcount: 0\n\t\t};\n\t\tthis.quads = 0;\n\t\tthis.mesh = new Mesh(device);\n\t\tthis.mesh.vertexBuffer = this.buffer;\n\t\tthis.mesh.indexBuffer[0] = this.indexBuffer;\n\t\tthis.mesh.primitive = [this.prim];\n\t\tconst material = new ShaderMaterial({\n\t\t\tuniqueName: \"MiniStats\",\n\t\t\tvertexGLSL: vertexShaderGLSL,\n\t\t\tfragmentGLSL: fragmentShaderGLSL,\n\t\t\tvertexWGSL: vertexShaderWGSL,\n\t\t\tfragmentWGSL: fragmentShaderWGSL,\n\t\t\tattributes: {\n\t\t\t\tvertex_position: SEMANTIC_POSITION,\n\t\t\t\tvertex_texCoord0: SEMANTIC_TEXCOORD0\n\t\t\t}\n\t\t});\n\t\tthis.material = material;\n\t\tmaterial.cull = CULLFACE_NONE;\n\t\tmaterial.depthState = DepthState.NODEPTH;\n\t\tmaterial.blendState = new BlendState(\n\t\t\ttrue,\n\t\t\tBLENDEQUATION_ADD,\n\t\t\tBLENDMODE_SRC_ALPHA,\n\t\t\tBLENDMODE_ONE_MINUS_SRC_ALPHA,\n\t\t\tBLENDEQUATION_ADD,\n\t\t\tBLENDMODE_ONE,\n\t\t\tBLENDMODE_ONE\n\t\t);\n\t\tmaterial.update();\n\t\tthis.meshInstance = new MeshInstance(this.mesh, material, new GraphNode(\"MiniStatsMesh\"));\n\t\tthis.uniforms = {\n\t\t\tclr: new Float32Array(4)\n\t\t};\n\t\tthis.targetSize = {\n\t\t\twidth: device.width,\n\t\t\theight: device.height\n\t\t};\n\t}\n\tquad(x3, y2, w, h2, u, v6, uw, uh, texture, wordFlag = 0) {\n\t\tif (this.quads >= this.maxQuads) {\n\t\t\treturn;\n\t\t}\n\t\tconst rw = this.targetSize.width;\n\t\tconst rh = this.targetSize.height;\n\t\tconst x0 = x3 / rw;\n\t\tconst y0 = y2 / rh;\n\t\tconst x1 = (x3 + w) / rw;\n\t\tconst y1 = (y2 + h2) / rh;\n\t\tconst tw = texture.width;\n\t\tconst th = texture.height;\n\t\tconst u0 = u / tw;\n\t\tconst v0 = v6 / th;\n\t\tconst u1 = (u + (uw ?? w)) / tw;\n\t\tconst v15 = (v6 + (uh ?? h2)) / th;\n\t\tthis.data.set([\n\t\t\tx0,\n\t\t\ty0,\n\t\t\twordFlag,\n\t\t\tu0,\n\t\t\tv0,\n\t\t\t0,\n\t\t\t0,\n\t\t\tx1,\n\t\t\ty0,\n\t\t\twordFlag,\n\t\t\tu1,\n\t\t\tv0,\n\t\t\t1,\n\t\t\t0,\n\t\t\tx1,\n\t\t\ty1,\n\t\t\twordFlag,\n\t\t\tu1,\n\t\t\tv15,\n\t\t\t1,\n\t\t\t1,\n\t\t\tx0,\n\t\t\ty1,\n\t\t\twordFlag,\n\t\t\tu0,\n\t\t\tv15,\n\t\t\t0,\n\t\t\t1\n\t\t], 4 * 7 * this.quads);\n\t\tthis.quads++;\n\t\tthis.prim.count += 6;\n\t}\n\tstartFrame() {\n\t\tthis.quads = 0;\n\t\tthis.prim.count = 0;\n\t\tthis.targetSize.width = this.device.canvas.scrollWidth;\n\t\tthis.targetSize.height = this.device.canvas.scrollHeight;\n\t}\n\trender(app2, layer, graphTexture, wordsTexture, clr, height) {\n\t\tthis.buffer.setData(this.data.buffer);\n\t\tthis.uniforms.clr.set(clr, 0);\n\t\tthis.material.setParameter(\"clr\", this.uniforms.clr);\n\t\tthis.material.setParameter(\"graphTex\", graphTexture);\n\t\tthis.material.setParameter(\"wordsTex\", wordsTexture);\n\t\tapp2.drawMeshInstance(this.meshInstance, layer);\n\t}\n};\n\nvar cpuStatDisplayNames = {\n\tanimUpdate: \"anim\",\n\tphysicsTime: \"physics\",\n\trenderTime: \"render\",\n\tgsplatSort: \"gsplatSort\"\n};\nvar delayedStartStats = /* @__PURE__ */ new Set([\n\t\"physicsTime\",\n\t\"animUpdate\",\n\t\"gsplatSort\"\n]);\nvar MiniStats = class _MiniStats {\n\tconstructor(app2, options2 = _MiniStats.getDefaultOptions()) {\n\t\tconst device = app2.graphicsDevice;\n\t\tthis.graphRows = /* @__PURE__ */ new Map();\n\t\tthis.freeRows = [];\n\t\tthis.nextRowIndex = 0;\n\t\tthis.sizes = options2.sizes;\n\t\tthis.initGraphs(app2, device, options2);\n\t\tconst words = new Set(\n\t\t\t[\"\", \"ms\", \"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \".\", \"-\", \" \"].concat(this.graphs.map((graph) => graph.name)).concat(options2.stats ? options2.stats.map((stat) => stat.unitsName) : []).filter((item) => !!item)\n\t\t);\n\t\tfor (let i2 = 97; i2 <= 122; i2++) {\n\t\t\twords.add(String.fromCharCode(i2));\n\t\t}\n\t\tfor (let i2 = 65; i2 <= 90; i2++) {\n\t\t\twords.add(String.fromCharCode(i2));\n\t\t}\n\t\tthis.wordAtlas = new WordAtlas(device, words);\n\t\tthis._activeSizeIndex = options2.startSizeIndex;\n\t\tconst gpuTimingMinSize = options2.gpuTimingMinSize ?? 1;\n\t\tconst cpuTimingMinSize = options2.cpuTimingMinSize ?? 1;\n\t\tconst vramTimingMinSize = options2.vramTimingMinSize ?? 1;\n\t\tif (gpuTimingMinSize < this.sizes.length || cpuTimingMinSize < this.sizes.length || vramTimingMinSize < this.sizes.length) {\n\t\t\tconst lastWidth = this.sizes[this.sizes.length - 1].width;\n\t\t\tfor (let i2 = 1; i2 < this.sizes.length - 1; i2++) {\n\t\t\t\tthis.sizes[i2].width = lastWidth;\n\t\t\t}\n\t\t}\n\t\tconst div = document.createElement(\"div\");\n\t\tdiv.setAttribute(\"id\", \"mini-stats\");\n\t\tdiv.style.cssText = \"position:fixed;bottom:0;left:0;background:transparent;\";\n\t\tdocument.body.appendChild(div);\n\t\tdiv.addEventListener(\"mouseenter\", (event) => {\n\t\t\tthis.opacity = 1;\n\t\t});\n\t\tdiv.addEventListener(\"mouseleave\", (event) => {\n\t\t\tthis.opacity = this._activeSizeIndex > 0 ? 0.85 : 0.7;\n\t\t});\n\t\tdiv.addEventListener(\"click\", (event) => {\n\t\t\tevent.preventDefault();\n\t\t\tif (this._enabled) {\n\t\t\t\tthis.activeSizeIndex = (this.activeSizeIndex + 1) % this.sizes.length;\n\t\t\t\tthis.resize(this.sizes[this.activeSizeIndex].width, this.sizes[this.activeSizeIndex].height, this.sizes[this.activeSizeIndex].graphs);\n\t\t\t}\n\t\t});\n\t\tdevice.on(\"resizecanvas\", this.updateDiv, this);\n\t\tdevice.on(\"losecontext\", this.loseContext, this);\n\t\tapp2.on(\"postrender\", this.postRender, this);\n\t\tthis.app = app2;\n\t\tthis.drawLayer = app2.scene.layers.getLayerById(LAYERID_UI);\n\t\tthis.device = device;\n\t\tthis.render2d = new Render2d(device);\n\t\tthis.div = div;\n\t\tthis.width = 0;\n\t\tthis.height = 0;\n\t\tthis.gspacing = 2;\n\t\tthis.clr = [1, 1, 1, options2.startSizeIndex > 0 ? 0.85 : 0.7];\n\t\tthis._enabled = true;\n\t\tthis.gpuTimingMinSize = gpuTimingMinSize;\n\t\tthis.gpuPassGraphs = /* @__PURE__ */ new Map();\n\t\tthis.cpuTimingMinSize = cpuTimingMinSize;\n\t\tthis.cpuGraphs = /* @__PURE__ */ new Map();\n\t\tthis.vramTimingMinSize = vramTimingMinSize;\n\t\tthis.vramGraphs = /* @__PURE__ */ new Map();\n\t\tthis.frameIndex = 0;\n\t\tthis.textRefreshRate = options2.textRefreshRate;\n\t\tthis.activeSizeIndex = this._activeSizeIndex;\n\t}\n\tdestroy() {\n\t\tthis.device.off(\"resizecanvas\", this.updateDiv, this);\n\t\tthis.device.off(\"losecontext\", this.loseContext, this);\n\t\tthis.app.off(\"postrender\", this.postRender, this);\n\t\tthis.graphs.forEach((graph) => graph.destroy());\n\t\tthis.gpuPassGraphs.clear();\n\t\tthis.cpuGraphs.clear();\n\t\tthis.vramGraphs.clear();\n\t\tthis.wordAtlas.destroy();\n\t\tthis.texture.destroy();\n\t\tthis.div.remove();\n\t}\n\tstatic statPresets = {\n\t\tgsplats: [\n\t\t\t{ name: \"GSplats\", stats: [\"frame.gsplats\"], decimalPlaces: 3, multiplier: 1 / 1e6, unitsName: \"M\", watermark: 10 }\n\t\t],\n\t\tgsplatsCopy: [\n\t\t\t{ name: \"GsplatsCopy\", stats: [\"frame.gsplatBufferCopy\"], decimalPlaces: 1, multiplier: 1, unitsName: \"%\", watermark: 100 }\n\t\t]\n\t};\n\tstatic getDefaultOptions(extraStats = []) {\n\t\tconst options2 = {\n\t\t\t// sizes of area to render individual graphs in and spacing between individual graphs\n\t\t\tsizes: [\n\t\t\t\t{ width: 100, height: 16, spacing: 0, graphs: false },\n\t\t\t\t{ width: 128, height: 32, spacing: 2, graphs: true },\n\t\t\t\t{ width: 256, height: 64, spacing: 2, graphs: true }\n\t\t\t],\n\t\t\t// index into sizes array for initial setting\n\t\t\tstartSizeIndex: 0,\n\t\t\t// refresh rate of text stats in ms\n\t\t\ttextRefreshRate: 500,\n\t\t\t// cpu graph options\n\t\t\tcpu: {\n\t\t\t\tenabled: true,\n\t\t\t\twatermark: 33\n\t\t\t},\n\t\t\t// gpu graph options\n\t\t\tgpu: {\n\t\t\t\tenabled: true,\n\t\t\t\twatermark: 33\n\t\t\t},\n\t\t\t// array of options to render additional graphs based on stats collected into Application.stats\n\t\t\tstats: [\n\t\t\t\t{\n\t\t\t\t\t// display name\n\t\t\t\t\tname: \"Frame\",\n\t\t\t\t\t// path to data inside Application.stats\n\t\t\t\t\tstats: [\"frame.ms\"],\n\t\t\t\t\t// number of decimal places (defaults to none)\n\t\t\t\t\tdecimalPlaces: 1,\n\t\t\t\t\t// units (defaults to \"\")\n\t\t\t\t\tunitsName: \"ms\",\n\t\t\t\t\t// watermark - shown as a line on the graph, useful for displaying a budget\n\t\t\t\t\twatermark: 33\n\t\t\t\t},\n\t\t\t\t// total number of draw calls\n\t\t\t\t{\n\t\t\t\t\tname: \"DrawCalls\",\n\t\t\t\t\tstats: [\"drawCalls.total\"],\n\t\t\t\t\twatermark: 1e3\n\t\t\t\t},\n\t\t\t\t// used VRAM in MB\n\t\t\t\t{\n\t\t\t\t\tname: \"VRAM\",\n\t\t\t\t\tstats: [\"vram.totalUsed\"],\n\t\t\t\t\tdecimalPlaces: 1,\n\t\t\t\t\tmultiplier: 1 / (1024 * 1024),\n\t\t\t\t\tunitsName: \"MB\",\n\t\t\t\t\twatermark: 1024\n\t\t\t\t}\n\t\t\t],\n\t\t\t// minimum size index to show GPU pass timing graphs\n\t\t\tgpuTimingMinSize: 1,\n\t\t\t// minimum size index to show CPU sub-timing graphs\n\t\t\tcpuTimingMinSize: 1,\n\t\t\t// minimum size index to show VRAM subcategory graphs\n\t\t\tvramTimingMinSize: 1\n\t\t};\n\t\tif (extraStats.length > 0) {\n\t\t\tconst frameIndex = options2.stats.findIndex((s2) => s2.name === \"Frame\");\n\t\t\tconst insertIndex = frameIndex !== -1 ? frameIndex + 1 : options2.stats.length;\n\t\t\tconst extra = extraStats.flatMap((name) => _MiniStats.statPresets[name] ?? []).reverse();\n\t\t\toptions2.stats.splice(insertIndex, 0, ...extra);\n\t\t}\n\t\treturn options2;\n\t}\n\tset activeSizeIndex(value) {\n\t\tthis._activeSizeIndex = value;\n\t\tthis.gspacing = this.sizes[value].spacing;\n\t\tthis.resize(this.sizes[value].width, this.sizes[value].height, this.sizes[value].graphs);\n\t\tthis.opacity = value > 0 ? 0.85 : 0.7;\n\t\tif (value < this.gpuTimingMinSize && this.gpuPassGraphs) {\n\t\t\tthis.clearSubGraphs(this.gpuPassGraphs, \"GPU\", 0.33);\n\t\t}\n\t\tif (value < this.cpuTimingMinSize && this.cpuGraphs) {\n\t\t\tthis.clearSubGraphs(this.cpuGraphs, \"CPU\", 0.66);\n\t\t}\n\t\tif (value < this.vramTimingMinSize && this.vramGraphs) {\n\t\t\tthis.clearSubGraphs(this.vramGraphs);\n\t\t}\n\t}\n\tget activeSizeIndex() {\n\t\treturn this._activeSizeIndex;\n\t}\n\tset opacity(value) {\n\t\tthis.clr[3] = value;\n\t}\n\tget opacity() {\n\t\treturn this.clr[3];\n\t}\n\tget overallHeight() {\n\t\tconst graphs = this.graphs;\n\t\tconst spacing = this.gspacing;\n\t\treturn this.height * graphs.length + spacing * (graphs.length - 1);\n\t}\n\tset enabled(value) {\n\t\tif (value !== this._enabled) {\n\t\t\tthis._enabled = value;\n\t\t\tfor (let i2 = 0; i2 < this.graphs.length; ++i2) {\n\t\t\t\tthis.graphs[i2].enabled = value;\n\t\t\t\tthis.graphs[i2].timer.enabled = value;\n\t\t\t}\n\t\t}\n\t}\n\tget enabled() {\n\t\treturn this._enabled;\n\t}\n\tinitGraphs(app2, device, options2) {\n\t\tthis.graphs = [];\n\t\tif (options2.stats) {\n\t\t\toptions2.stats.forEach((entry) => {\n\t\t\t\tif (entry.name === \"VRAM\") {\n\t\t\t\t\tconst timer = new StatsTimer(app2, entry.stats, entry.decimalPlaces, entry.unitsName, entry.multiplier);\n\t\t\t\t\tconst graph = new Graph(entry.name, app2, entry.watermark, options2.textRefreshRate, timer);\n\t\t\t\t\tthis.graphs.push(graph);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tif (options2.cpu.enabled) {\n\t\t\tconst timer = new CpuTimer(app2);\n\t\t\tconst graph = new Graph(\"CPU\", app2, options2.cpu.watermark, options2.textRefreshRate, timer);\n\t\t\tgraph.graphType = 0.66;\n\t\t\tthis.graphs.push(graph);\n\t\t}\n\t\tif (options2.gpu.enabled) {\n\t\t\tconst timer = new GpuTimer(device);\n\t\t\tconst graph = new Graph(\"GPU\", app2, options2.gpu.watermark, options2.textRefreshRate, timer);\n\t\t\tgraph.graphType = 0.33;\n\t\t\tthis.graphs.push(graph);\n\t\t}\n\t\tif (options2.stats) {\n\t\t\toptions2.stats.forEach((entry) => {\n\t\t\t\tif (entry.name === \"VRAM\") {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst timer = new StatsTimer(app2, entry.stats, entry.decimalPlaces, entry.unitsName, entry.multiplier);\n\t\t\t\tconst graph = new Graph(entry.name, app2, entry.watermark, options2.textRefreshRate, timer);\n\t\t\t\tthis.graphs.push(graph);\n\t\t\t});\n\t\t}\n\t\tthis.texture = new Texture(device, {\n\t\t\tname: \"mini-stats-graph-texture\",\n\t\t\twidth: 1,\n\t\t\theight: 1,\n\t\t\tmipmaps: false,\n\t\t\tminFilter: FILTER_NEAREST,\n\t\t\tmagFilter: FILTER_NEAREST,\n\t\t\taddressU: ADDRESS_REPEAT,\n\t\t\taddressV: ADDRESS_REPEAT\n\t\t});\n\t\tthis.graphs.forEach((graph) => {\n\t\t\tgraph.texture = this.texture;\n\t\t\tthis.allocateRow(graph);\n\t\t});\n\t}\n\trender() {\n\t\tconst graphs = this.graphs;\n\t\tconst wordAtlas = this.wordAtlas;\n\t\tconst render2d = this.render2d;\n\t\tconst width = this.width;\n\t\tconst height = this.height;\n\t\tconst gspacing = this.gspacing;\n\t\trender2d.startFrame();\n\t\tfor (let i2 = 0; i2 < graphs.length; ++i2) {\n\t\t\tconst graph = graphs[i2];\n\t\t\tlet y2 = i2 * (height + gspacing);\n\t\t\tgraph.render(render2d, 0, y2, width, height);\n\t\t\tlet x3 = 1;\n\t\t\ty2 += height - 13;\n\t\t\tx3 += wordAtlas.render(render2d, graph.name, x3, y2) + 10;\n\t\t\tconst timingText = graph.timingText;\n\t\t\tfor (let j = 0; j < timingText.length; ++j) {\n\t\t\t\tx3 += wordAtlas.render(render2d, timingText[j], x3, y2);\n\t\t\t}\n\t\t\tif (graph.maxText && this._activeSizeIndex > 0) {\n\t\t\t\tx3 += 5;\n\t\t\t\tx3 += wordAtlas.render(render2d, \"max\", x3, y2);\n\t\t\t\tx3 += 5;\n\t\t\t\tconst maxText = graph.maxText;\n\t\t\t\tfor (let j = 0; j < maxText.length; ++j) {\n\t\t\t\t\tx3 += wordAtlas.render(render2d, maxText[j], x3, y2);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (graph.timer.unitsName) {\n\t\t\t\tx3 += wordAtlas.render(render2d, graph.timer.unitsName, x3, y2);\n\t\t\t}\n\t\t}\n\t\trender2d.render(this.app, this.drawLayer, this.texture, this.wordAtlas.texture, this.clr, height);\n\t}\n\tresize(width, height, showGraphs) {\n\t\tconst graphs = this.graphs;\n\t\tfor (let i2 = 0; i2 < graphs.length; ++i2) {\n\t\t\tgraphs[i2].enabled = showGraphs;\n\t\t}\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t\tthis.updateDiv();\n\t}\n\tupdateDiv() {\n\t\tconst rect = this.device.canvas.getBoundingClientRect();\n\t\tthis.div.style.left = `${rect.left}px`;\n\t\tthis.div.style.bottom = `${window.innerHeight - rect.bottom}px`;\n\t\tthis.div.style.width = `${this.width}px`;\n\t\tthis.div.style.height = `${this.overallHeight}px`;\n\t}\n\tloseContext() {\n\t\tthis.graphs.forEach((graph) => graph.loseContext());\n\t}\n\tupdateSubStats(subGraphs, mainGraphName, stats, statPathPrefix, removeAfterFrames) {\n\t\tconst passesToRemove = [];\n\t\tfor (const [statName, statData] of subGraphs) {\n\t\t\tconst timing = stats instanceof Map ? stats.get(statName) || 0 : stats[statName] || 0;\n\t\t\tif (timing > 0) {\n\t\t\t\tstatData.lastNonZeroFrame = this.frameIndex;\n\t\t\t} else if (removeAfterFrames > 0) {\n\t\t\t\tconst shouldAutoHide = statPathPrefix === \"gpu\";\n\t\t\t\tif (shouldAutoHide && this.frameIndex - statData.lastNonZeroFrame > removeAfterFrames) {\n\t\t\t\t\tpassesToRemove.push(statName);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor (const statName of passesToRemove) {\n\t\t\tconst statData = subGraphs.get(statName);\n\t\t\tif (statData) {\n\t\t\t\tconst index = this.graphs.indexOf(statData.graph);\n\t\t\t\tif (index !== -1) {\n\t\t\t\t\tthis.graphs.splice(index, 1);\n\t\t\t\t}\n\t\t\t\tthis.freeRow(statData.graph);\n\t\t\t\tstatData.graph.destroy();\n\t\t\t\tsubGraphs.delete(statName);\n\t\t\t}\n\t\t}\n\t\tconst statsEntries = stats instanceof Map ? stats : Object.entries(stats);\n\t\tconst mainGraph = this.graphs.find((g) => g.name === mainGraphName);\n\t\tfor (const [statName, timing] of statsEntries) {\n\t\t\tif (!subGraphs.has(statName)) {\n\t\t\t\tconst isDelayedStart = statPathPrefix === \"gpu\" || delayedStartStats.has(statName);\n\t\t\t\tif (isDelayedStart && timing === 0) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tlet displayName = statName;\n\t\t\t\tif (statPathPrefix === \"frame\") {\n\t\t\t\t\tdisplayName = cpuStatDisplayNames[statName] || statName;\n\t\t\t\t}\n\t\t\t\tconst graphName = `  ${displayName}`;\n\t\t\t\tconst watermark = mainGraph?.watermark ?? 10;\n\t\t\t\tconst decimalPlaces = 1;\n\t\t\t\tconst unitsName = statPathPrefix === \"vram\" ? \"MB\" : \"ms\";\n\t\t\t\tconst multiplier = statPathPrefix === \"vram\" ? 1 / (1024 * 1024) : 1;\n\t\t\t\tconst statPath = `${statPathPrefix}.${statName}`;\n\t\t\t\tconst timer = new StatsTimer(this.app, [statPath], decimalPlaces, unitsName, multiplier);\n\t\t\t\tconst graph = new Graph(graphName, this.app, watermark, this.textRefreshRate, timer);\n\t\t\t\tif (statPathPrefix === \"gpu\") {\n\t\t\t\t\tgraph.graphType = 0.33;\n\t\t\t\t} else if (statPathPrefix === \"frame\") {\n\t\t\t\t\tgraph.graphType = 0.66;\n\t\t\t\t}\n\t\t\t\tgraph.texture = this.texture;\n\t\t\t\tthis.allocateRow(graph);\n\t\t\t\tconst currentSize = this.sizes[this._activeSizeIndex];\n\t\t\t\tgraph.enabled = currentSize.graphs;\n\t\t\t\tlet mainGraphIndex = this.graphs.findIndex((g) => g.name === mainGraphName);\n\t\t\t\tif (mainGraphIndex === -1) {\n\t\t\t\t\tmainGraphIndex = 0;\n\t\t\t\t}\n\t\t\t\tlet insertIndex = mainGraphIndex;\n\t\t\t\tfor (let i2 = mainGraphIndex - 1; i2 >= 0; i2--) {\n\t\t\t\t\tif (this.graphs[i2].name.startsWith(\" \")) {\n\t\t\t\t\t\tinsertIndex = i2;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.graphs.splice(insertIndex, 0, graph);\n\t\t\t\tsubGraphs.set(statName, {\n\t\t\t\t\tgraph,\n\t\t\t\t\tlastNonZeroFrame: timing > 0 ? this.frameIndex : this.frameIndex - removeAfterFrames - 1\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\tif (mainGraph) {\n\t\t\tfor (const statData of subGraphs.values()) {\n\t\t\t\tstatData.graph.watermark = mainGraph.watermark;\n\t\t\t}\n\t\t}\n\t}\n\tallocateRow(graph) {\n\t\tlet row;\n\t\tif (this.freeRows.length > 0) {\n\t\t\trow = this.freeRows.pop();\n\t\t} else {\n\t\t\trow = this.nextRowIndex++;\n\t\t\tthis.ensureTextureHeight(this.nextRowIndex);\n\t\t}\n\t\tthis.graphRows.set(graph, row);\n\t\tgraph.yOffset = row;\n\t\tgraph.needsClear = true;\n\t\treturn row;\n\t}\n\tfreeRow(graph) {\n\t\tconst row = this.graphRows.get(graph);\n\t\tif (row !== void 0) {\n\t\t\tthis.freeRows.push(row);\n\t\t\tthis.graphRows.delete(graph);\n\t\t}\n\t}\n\tclearSubGraphs(subGraphs, mainGraphName, graphType) {\n\t\tfor (const statData of subGraphs.values()) {\n\t\t\tconst index = this.graphs.indexOf(statData.graph);\n\t\t\tif (index !== -1) {\n\t\t\t\tthis.graphs.splice(index, 1);\n\t\t\t}\n\t\t\tthis.freeRow(statData.graph);\n\t\t\tstatData.graph.destroy();\n\t\t}\n\t\tsubGraphs.clear();\n\t\tif (mainGraphName) {\n\t\t\tconst mainGraph = this.graphs.find((g) => g.name === mainGraphName);\n\t\t\tif (mainGraph) mainGraph.graphType = graphType;\n\t\t}\n\t}\n\tensureTextureHeight(requiredRows) {\n\t\tconst maxWidth = this.sizes[this.sizes.length - 1].width;\n\t\tconst requiredWidth = math.nextPowerOfTwo(maxWidth);\n\t\tconst requiredHeight = math.nextPowerOfTwo(requiredRows);\n\t\tif (requiredHeight > this.texture.height) {\n\t\t\tthis.texture.resize(requiredWidth, requiredHeight);\n\t\t}\n\t}\n\tpostRender() {\n\t\tif (this._enabled) {\n\t\t\tthis.render();\n\t\t\tif (this._activeSizeIndex >= this.gpuTimingMinSize) {\n\t\t\t\tconst gpuStats = this.app.stats.gpu;\n\t\t\t\tif (gpuStats) {\n\t\t\t\t\tthis.updateSubStats(this.gpuPassGraphs, \"GPU\", gpuStats, \"gpu\", 240);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (this._activeSizeIndex >= this.cpuTimingMinSize) {\n\t\t\t\tconst cpuStats = {\n\t\t\t\t\tscriptUpdate: this.app.stats.frame.scriptUpdate,\n\t\t\t\t\tscriptPostUpdate: this.app.stats.frame.scriptPostUpdate,\n\t\t\t\t\tanimUpdate: this.app.stats.frame.animUpdate,\n\t\t\t\t\tphysicsTime: this.app.stats.frame.physicsTime,\n\t\t\t\t\trenderTime: this.app.stats.frame.renderTime,\n\t\t\t\t\tgsplatSort: this.app.stats.frame.gsplatSort\n\t\t\t\t};\n\t\t\t\tthis.updateSubStats(this.cpuGraphs, \"CPU\", cpuStats, \"frame\", 240);\n\t\t\t}\n\t\t\tif (this._activeSizeIndex >= this.vramTimingMinSize) {\n\t\t\t\tconst vram = this.app.stats.vram;\n\t\t\t\tconst vramStats = {\n\t\t\t\t\ttex: vram.tex,\n\t\t\t\t\tgeom: vram.geom\n\t\t\t\t};\n\t\t\t\tif (this.device.isWebGPU) {\n\t\t\t\t\tvramStats.buffers = vram.buffers;\n\t\t\t\t}\n\t\t\t\tthis.updateSubStats(this.vramGraphs, \"VRAM\", vramStats, \"vram\", 0);\n\t\t\t}\n\t\t}\n\t\tthis.frameIndex++;\n\t}\n};\n\nvar shaderOutlineExtendPS = `\n\tvarying vec2 vUv0;\n\tuniform vec2 uOffset;\n\tuniform float uSrcMultiplier;\n\tuniform sampler2D source;\n\tvoid main(void)\n\t{\n\t\tvec4 pixel;\n\t\tvec4 texel = texture2D(source, vUv0);\n\t\tvec4 firstTexel = texel;\n\t\tfloat diff = texel.a * uSrcMultiplier;\n\t\tpixel = texture2D(source, vUv0 + uOffset * -2.0);\n\t\ttexel = max(texel, pixel);\n\t\tdiff = max(diff, length(firstTexel.rgb - pixel.rgb));\n\t\tpixel = texture2D(source, vUv0 + uOffset * -1.0);\n\t\ttexel = max(texel, pixel);\n\t\tdiff = max(diff, length(firstTexel.rgb - pixel.rgb));\n\t\tpixel = texture2D(source, vUv0 + uOffset * 1.0);\n\t\ttexel = max(texel, pixel);\n\t\tdiff = max(diff, length(firstTexel.rgb - pixel.rgb));\n\t\tpixel = texture2D(source, vUv0 + uOffset * 2.0);\n\t\ttexel = max(texel, pixel);\n\t\tdiff = max(diff, length(firstTexel.rgb - pixel.rgb));\n\t   gl_FragColor = vec4(texel.rgb, min(diff, 1.0));\n\t}\n`;\nvar shaderOutlineExtendWGSL = `\n\tvarying vUv0: vec2f;\n\tuniform uOffset: vec2f;\n\tuniform uSrcMultiplier: f32;\n\tvar source: texture_2d<f32>;\n\tvar sourceSampler: sampler;\n\t@fragment\n\tfn fragmentMain(input: FragmentInput) -> FragmentOutput {\n\t\tvar output: FragmentOutput;\n\t\t\n\t\tvar pixel: vec4f;\n\t\tvar texel = textureSample(source, sourceSampler, input.vUv0);\n\t\tlet firstTexel = texel;\n\t\tvar diff = texel.a * uniform.uSrcMultiplier;\n\t\tpixel = textureSample(source, sourceSampler, input.vUv0 + uniform.uOffset * -2.0);\n\t\ttexel = max(texel, pixel);\n\t\tdiff = max(diff, length(firstTexel.rgb - pixel.rgb));\n\t\tpixel = textureSample(source, sourceSampler, input.vUv0 + uniform.uOffset * -1.0);\n\t\ttexel = max(texel, pixel);\n\t\tdiff = max(diff, length(firstTexel.rgb - pixel.rgb));\n\t\tpixel = textureSample(source, sourceSampler, input.vUv0 + uniform.uOffset * 1.0);\n\t\ttexel = max(texel, pixel);\n\t\tdiff = max(diff, length(firstTexel.rgb - pixel.rgb));\n\t\tpixel = textureSample(source, sourceSampler, input.vUv0 + uniform.uOffset * 2.0);\n\t\ttexel = max(texel, pixel);\n\t\tdiff = max(diff, length(firstTexel.rgb - pixel.rgb));\n\t\toutput.color = vec4f(texel.rgb, min(diff, 1.0));\n\t\treturn output;\n\t}\n`;\nvar _tempFloatArray = new Float32Array(2);\nvar _tempColor4 = new Color();\nvar OutlineRenderer = class {\n\tconstructor(app2, renderingLayer, priority = -1) {\n\t\tthis.app = app2;\n\t\tthis.renderingLayer = renderingLayer ?? app2.scene.layers.getLayerByName(\"Immediate\");\n\t\tthis.rt = this.createRenderTarget(\"OutlineTexture\", 1, 1, true);\n\t\tthis.outlineCameraEntity = new Entity(\"OutlineCamera\");\n\t\tthis.outlineCameraEntity.addComponent(\"camera\", {\n\t\t\tlayers: [this.renderingLayer.id],\n\t\t\tpriority,\n\t\t\tclearColor: new Color(0, 0, 0, 0),\n\t\t\trenderTarget: this.rt\n\t\t});\n\t\tthis.outlineShaderPass = this.outlineCameraEntity.camera.setShaderPass(\"pcOutline\");\n\t\tthis.postRender = (cameraComponent) => {\n\t\t\tif (this.outlineCameraEntity.camera === cameraComponent) {\n\t\t\t\tthis.onPostRender();\n\t\t\t}\n\t\t};\n\t\tapp2.scene.on(\"postrender\", this.postRender);\n\t\tthis.app.root.addChild(this.outlineCameraEntity);\n\t\tthis.tempRt = this.createRenderTarget(\"OutlineTempTexture\", 1, 1, false);\n\t\tthis.blendState = new BlendState(true, BLENDEQUATION_ADD, BLENDMODE_SRC_ALPHA, BLENDMODE_ONE_MINUS_SRC_ALPHA);\n\t\tconst device = this.app.graphicsDevice;\n\t\tthis.shaderExtend = ShaderUtils.createShader(device, {\n\t\t\tuniqueName: \"OutlineExtendShader\",\n\t\t\tattributes: { vertex_position: SEMANTIC_POSITION },\n\t\t\tvertexChunk: \"fullscreenQuadVS\",\n\t\t\tfragmentGLSL: shaderOutlineExtendPS,\n\t\t\tfragmentWGSL: shaderOutlineExtendWGSL\n\t\t});\n\t\tthis.shaderBlend = ShaderUtils.createShader(device, {\n\t\t\tuniqueName: \"OutlineBlendShader\",\n\t\t\tattributes: { vertex_position: SEMANTIC_POSITION },\n\t\t\tvertexChunk: \"fullscreenQuadVS\",\n\t\t\tfragmentChunk: \"outputTex2DPS\"\n\t\t});\n\t\tthis.quadRenderer = new QuadRender(this.shaderBlend);\n\t}\n\tdestroy() {\n\t\tthis.outlineCameraEntity.destroy();\n\t\tthis.outlineCameraEntity = null;\n\t\tthis.rt.destroyTextureBuffers();\n\t\tthis.rt.destroy();\n\t\tthis.rt = null;\n\t\tthis.tempRt.destroyTextureBuffers();\n\t\tthis.tempRt.destroy();\n\t\tthis.tempRt = null;\n\t\tthis.app.scene.off(\"postrender\", this.postRender);\n\t\tthis.quadRenderer?.destroy();\n\t\tthis.quadRenderer = null;\n\t}\n\tgetMeshInstances(entity, recursive) {\n\t\tconst meshInstances = [];\n\t\tif (entity) {\n\t\t\tconst renders = recursive ? entity.findComponents(\"render\") : entity.render ? [entity.render] : [];\n\t\t\trenders.forEach((render) => {\n\t\t\t\tif (render.meshInstances) {\n\t\t\t\t\tmeshInstances.push(...render.meshInstances);\n\t\t\t\t}\n\t\t\t});\n\t\t\tconst models = recursive ? entity.findComponents(\"model\") : entity.model ? [entity.model] : [];\n\t\t\tmodels.forEach((model) => {\n\t\t\t\tif (model.meshInstances) {\n\t\t\t\t\tmeshInstances.push(...model.meshInstances);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\treturn meshInstances;\n\t}\n\taddEntity(entity, color3, recursive = true) {\n\t\tconst meshInstances = this.getMeshInstances(entity, recursive);\n\t\tmeshInstances.forEach((meshInstance) => {\n\t\t\tif (meshInstance.material instanceof StandardMaterial) {\n\t\t\t\tconst outlineShaderPass = this.outlineShaderPass;\n\t\t\t\tmeshInstance.material.onUpdateShader = (options2) => {\n\t\t\t\t\tif (options2.pass === outlineShaderPass) {\n\t\t\t\t\t\tconst opts = new StandardMaterialOptions();\n\t\t\t\t\t\topts.defines = options2.defines;\n\t\t\t\t\t\topts.opacityMap = options2.opacityMap;\n\t\t\t\t\t\topts.opacityMapUv = options2.opacityMapUv;\n\t\t\t\t\t\topts.opacityMapChannel = options2.opacityMapChannel;\n\t\t\t\t\t\topts.opacityMapTransform = options2.opacityMapTransform;\n\t\t\t\t\t\topts.opacityVertexColor = options2.opacityVertexColor;\n\t\t\t\t\t\topts.opacityVertexColorChannel = options2.opacityVertexColorChannel;\n\t\t\t\t\t\topts.litOptions.vertexColors = options2.litOptions.vertexColors;\n\t\t\t\t\t\topts.litOptions.alphaTest = options2.litOptions.alphaTest;\n\t\t\t\t\t\topts.litOptions.skin = options2.litOptions.skin;\n\t\t\t\t\t\topts.litOptions.batch = options2.litOptions.batch;\n\t\t\t\t\t\topts.litOptions.useInstancing = options2.litOptions.useInstancing;\n\t\t\t\t\t\topts.litOptions.useMorphPosition = options2.litOptions.useMorphPosition;\n\t\t\t\t\t\topts.litOptions.useMorphNormal = options2.litOptions.useMorphNormal;\n\t\t\t\t\t\topts.litOptions.useMorphTextureBasedInt = options2.litOptions.useMorphTextureBasedInt;\n\t\t\t\t\t\topts.litOptions.opacityFadesSpecular = options2.litOptions.opacityFadesSpecular;\n\t\t\t\t\t\treturn opts;\n\t\t\t\t\t}\n\t\t\t\t\treturn options2;\n\t\t\t\t};\n\t\t\t\t_tempColor4.linear(color3);\n\t\t\t\tconst colArray = new Float32Array([_tempColor4.r, _tempColor4.g, _tempColor4.b]);\n\t\t\t\tmeshInstance.setParameter(\"pcOutlineColor\", colArray);\n\t\t\t}\n\t\t});\n\t\tthis.renderingLayer.addMeshInstances(meshInstances, true);\n\t}\n\tremoveEntity(entity, recursive = true) {\n\t\tconst meshInstances = this.getMeshInstances(entity, recursive);\n\t\tthis.renderingLayer.removeMeshInstances(meshInstances);\n\t\tmeshInstances.forEach((meshInstance) => {\n\t\t\tif (meshInstance.material instanceof StandardMaterial) {\n\t\t\t\tmeshInstance.material.onUpdateShader = null;\n\t\t\t\tmeshInstance.deleteParameter(\"pcOutlineColor\");\n\t\t\t}\n\t\t});\n\t}\n\tremoveAllEntities() {\n\t\tthis.renderingLayer.clearMeshInstances();\n\t}\n\tblendOutlines() {\n\t\tconst device = this.app.graphicsDevice;\n\t\tdevice.scope.resolve(\"source\").setValue(this.rt.colorBuffer);\n\t\tdevice.setDrawStates(this.blendState);\n\t\tthis.quadRenderer.render();\n\t}\n\tonPostRender() {\n\t\tconst device = this.app.graphicsDevice;\n\t\tconst uOffset = device.scope.resolve(\"uOffset\");\n\t\tconst uColorBuffer = device.scope.resolve(\"source\");\n\t\tconst uSrcMultiplier = device.scope.resolve(\"uSrcMultiplier\");\n\t\tconst { rt, tempRt, shaderExtend } = this;\n\t\tconst { width, height } = rt;\n\t\t_tempFloatArray[0] = 1 / width / 2;\n\t\t_tempFloatArray[1] = 0;\n\t\tuOffset.setValue(_tempFloatArray);\n\t\tuColorBuffer.setValue(rt.colorBuffer);\n\t\tuSrcMultiplier.setValue(0);\n\t\tdrawQuadWithShader(device, tempRt, shaderExtend);\n\t\t_tempFloatArray[0] = 0;\n\t\t_tempFloatArray[1] = 1 / height / 2;\n\t\tuOffset.setValue(_tempFloatArray);\n\t\tuColorBuffer.setValue(tempRt.colorBuffer);\n\t\tuSrcMultiplier.setValue(1);\n\t\tdrawQuadWithShader(device, rt, shaderExtend);\n\t}\n\tcreateRenderTarget(name, width, height, depth) {\n\t\tconst texture = new Texture(this.app.graphicsDevice, {\n\t\t\tname,\n\t\t\twidth,\n\t\t\theight,\n\t\t\tformat: PIXELFORMAT_SRGBA8,\n\t\t\tmipmaps: false,\n\t\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE,\n\t\t\tminFilter: FILTER_LINEAR_MIPMAP_LINEAR,\n\t\t\tmagFilter: FILTER_LINEAR\n\t\t});\n\t\treturn new RenderTarget({\n\t\t\tcolorBuffer: texture,\n\t\t\tdepth,\n\t\t\torigin: RENDERTARGET_ORIGIN_BOTTOM\n\t\t});\n\t}\n\tupdateRenderTarget(sceneCamera) {\n\t\tconst width = sceneCamera.renderTarget?.width ?? this.app.graphicsDevice.width;\n\t\tconst height = sceneCamera.renderTarget?.height ?? this.app.graphicsDevice.height;\n\t\tconst outlineCamera = this.outlineCameraEntity.camera;\n\t\tif (!outlineCamera.renderTarget || outlineCamera.renderTarget.width !== width || outlineCamera.renderTarget.height !== height) {\n\t\t\tthis.rt.resize(width, height);\n\t\t\tthis.tempRt.resize(width, height);\n\t\t}\n\t}\n\tframeUpdate(sceneCameraEntity, blendLayer, blendLayerTransparent) {\n\t\tconst sceneCamera = sceneCameraEntity.camera;\n\t\tthis.updateRenderTarget(sceneCamera);\n\t\tconst evt = this.app.scene.on(\"prerender:layer\", (cameraComponent, layer, transparent) => {\n\t\t\tif (sceneCamera === cameraComponent && transparent === blendLayerTransparent && layer === blendLayer) {\n\t\t\t\tthis.blendOutlines();\n\t\t\t\tevt.off();\n\t\t\t}\n\t\t});\n\t\tthis.outlineCameraEntity.setLocalPosition(sceneCameraEntity.getPosition());\n\t\tthis.outlineCameraEntity.setLocalRotation(sceneCameraEntity.getRotation());\n\t\tconst outlineCamera = this.outlineCameraEntity.camera;\n\t\toutlineCamera.projection = sceneCamera.projection;\n\t\toutlineCamera.horizontalFov = sceneCamera.horizontalFov;\n\t\toutlineCamera.fov = sceneCamera.fov;\n\t\toutlineCamera.orthoHeight = sceneCamera.orthoHeight;\n\t\toutlineCamera.nearClip = sceneCamera.nearClip;\n\t\toutlineCamera.farClip = sceneCamera.farClip;\n\t}\n};\n\nvar LINECAP_BUTT = 0;\nvar LINECAP_SQUARE = 1;\nvar LINECAP_ROUND = 2;\nvar LINEJOIN_MITER = 0;\nvar LINEJOIN_BEVEL = 1;\nvar LINEJOIN_ROUND = 2;\nvar validateStyle = (value, min, max, name) => {\n\tif (!Number.isInteger(value) || value < min || value > max) {\n\t\tthrow new RangeError(`${name} must be an integer between ${min} and ${max}.`);\n\t}\n};\nvar validateNumber = (value, min, name) => {\n\tif (!Number.isFinite(value) || value < min) {\n\t\tthrow new RangeError(`${name} must be a finite number greater than or equal to ${min}.`);\n\t}\n};\nvar WideLine = class {\n\t_positions = new Float32Array(0);\n\t_colors = new Float32Array([1, 1, 1]);\n\t_widths = new Float32Array([1]);\n\t_renderer = null;\n\t_rendererIndex = -1;\n\t_join = LINEJOIN_MITER;\n\t_cap = LINECAP_BUTT;\n\t_closed = false;\n\t_dashLength = 0;\n\t_gapLength = 0;\n\t_dashOffset = 0;\n\tset(positions, colors = Color.WHITE, widths = 1) {\n\t\tconst pointCount = this._validatePositions(positions, 0);\n\t\tthis._validateColors(colors, pointCount);\n\t\tthis._validateWidths(widths, pointCount);\n\t\tconst packedPositions = this._copyPositions(positions, 0, this._positions);\n\t\tconst packedColors = this._copyColors(colors, pointCount, this._colors);\n\t\tconst packedWidths = this._copyWidths(widths, pointCount, this._widths);\n\t\tthis._positions = packedPositions;\n\t\tthis._colors = packedColors;\n\t\tthis._widths = packedWidths;\n\t\tthis._changed();\n\t\treturn this;\n\t}\n\tsetPositions(positions) {\n\t\tthis._positions = this._copyPositions(positions, this.pointCount, this._positions);\n\t\tthis._changed();\n\t\treturn this;\n\t}\n\tsetColors(colors) {\n\t\tthis._colors = this._copyColors(colors, this.pointCount, this._colors);\n\t\tthis._changed();\n\t\treturn this;\n\t}\n\tsetWidths(widths) {\n\t\tthis._widths = this._copyWidths(widths, this.pointCount, this._widths);\n\t\tthis._changed();\n\t\treturn this;\n\t}\n\tget pointCount() {\n\t\treturn this._positions.length / 3;\n\t}\n\tget renderer() {\n\t\treturn this._renderer;\n\t}\n\tset join(value) {\n\t\tvalidateStyle(value, LINEJOIN_MITER, LINEJOIN_ROUND, \"join\");\n\t\tif (this._join !== value) {\n\t\t\tthis._join = value;\n\t\t\tthis._changed();\n\t\t}\n\t}\n\tget join() {\n\t\treturn this._join;\n\t}\n\tset cap(value) {\n\t\tvalidateStyle(value, LINECAP_BUTT, LINECAP_ROUND, \"cap\");\n\t\tif (this._cap !== value) {\n\t\t\tthis._cap = value;\n\t\t\tthis._changed();\n\t\t}\n\t}\n\tget cap() {\n\t\treturn this._cap;\n\t}\n\tset closed(value) {\n\t\tvalue = !!value;\n\t\tif (this._closed !== value) {\n\t\t\tthis._closed = value;\n\t\t\tthis._changed();\n\t\t}\n\t}\n\tget closed() {\n\t\treturn this._closed;\n\t}\n\tset dashLength(value) {\n\t\tvalidateNumber(value, 0, \"dashLength\");\n\t\tif (this._dashLength !== value) {\n\t\t\tthis._dashLength = value;\n\t\t\tthis._changed();\n\t\t}\n\t}\n\tget dashLength() {\n\t\treturn this._dashLength;\n\t}\n\tset gapLength(value) {\n\t\tvalidateNumber(value, 0, \"gapLength\");\n\t\tif (this._gapLength !== value) {\n\t\t\tthis._gapLength = value;\n\t\t\tthis._changed();\n\t\t}\n\t}\n\tget gapLength() {\n\t\treturn this._gapLength;\n\t}\n\tset dashOffset(value) {\n\t\tif (!Number.isFinite(value)) {\n\t\t\tthrow new RangeError(\"dashOffset must be a finite number.\");\n\t\t}\n\t\tif (this._dashOffset !== value) {\n\t\t\tthis._dashOffset = value;\n\t\t\tthis._changed();\n\t\t}\n\t}\n\tget dashOffset() {\n\t\treturn this._dashOffset;\n\t}\n\t_validatePositions(positions, expectedPointCount) {\n\t\tconst length = positions?.length;\n\t\tif (!Number.isInteger(length) || length % 3 !== 0 || length < 6) {\n\t\t\tthrow new RangeError(\"positions must contain packed xyz values for at least two points.\");\n\t\t}\n\t\tconst pointCount = length / 3;\n\t\tif (expectedPointCount && pointCount !== expectedPointCount) {\n\t\t\tthrow new RangeError(`positions must contain exactly ${expectedPointCount * 3} values.`);\n\t\t}\n\t\treturn pointCount;\n\t}\n\t_copyPositions(positions, expectedPointCount, target2) {\n\t\tthis._validatePositions(positions, expectedPointCount);\n\t\tconst result = target2.length === positions.length ? target2 : new Float32Array(positions.length);\n\t\tresult.set(positions);\n\t\treturn result;\n\t}\n\t_validateColors(colors, pointCount) {\n\t\tif (colors instanceof Color) {\n\t\t\treturn;\n\t\t}\n\t\tif (colors?.length !== pointCount * 3) {\n\t\t\tthrow new RangeError(`colors must contain exactly ${pointCount * 3} values.`);\n\t\t}\n\t}\n\t_copyColors(colors, pointCount, target2) {\n\t\tthis._validateColors(colors, pointCount);\n\t\tif (colors instanceof Color) {\n\t\t\tconst result2 = target2.length === 3 ? target2 : new Float32Array(3);\n\t\t\tresult2[0] = colors.r;\n\t\t\tresult2[1] = colors.g;\n\t\t\tresult2[2] = colors.b;\n\t\t\treturn result2;\n\t\t}\n\t\tconst result = target2.length === colors.length ? target2 : new Float32Array(colors.length);\n\t\tresult.set(colors);\n\t\treturn result;\n\t}\n\t_validateWidths(widths, pointCount) {\n\t\tif (typeof widths === \"number\") {\n\t\t\tvalidateNumber(widths, 0, \"width\");\n\t\t\treturn;\n\t\t}\n\t\tif (widths?.length !== pointCount) {\n\t\t\tthrow new RangeError(`widths must contain exactly ${pointCount} values.`);\n\t\t}\n\t\tfor (let i2 = 0; i2 < widths.length; i2++) {\n\t\t\tvalidateNumber(widths[i2], 0, `widths[${i2}]`);\n\t\t}\n\t}\n\t_copyWidths(widths, pointCount, target2) {\n\t\tthis._validateWidths(widths, pointCount);\n\t\tif (typeof widths === \"number\") {\n\t\t\tconst result2 = target2.length === 1 ? target2 : new Float32Array(1);\n\t\t\tresult2[0] = widths;\n\t\t\treturn result2;\n\t\t}\n\t\tconst result = target2.length === widths.length ? target2 : new Float32Array(widths.length);\n\t\tresult.set(widths);\n\t\treturn result;\n\t}\n\t_changed() {\n\t\tthis._renderer?._lineChanged(this);\n\t}\n};\n\nvar LINEWIDTH_SCREEN = 0;\nvar LINEWIDTH_WORLD = 1;\nvar FLOATS_PER_INSTANCE = 30;\nvar ROUND_SEGMENTS = 16;\nvar vertexGLSL = `\n\tattribute vec3 vertex_position;\n\tattribute vec4 instance_prevWidth;\n\tattribute vec4 instance_startWidth;\n\tattribute vec4 instance_endDistance;\n\tattribute vec4 instance_nextDistance;\n\tattribute vec3 instance_startColor;\n\tattribute vec3 instance_endColor;\n\tattribute vec4 instance_style;\n\tattribute vec4 instance_dashFlags;\n\tuniform mat4 matrix_viewProjection;\n\tuniform vec4 uScreenSize;\n\t#ifdef WIDE_LINE_WORLD_SPACE_WIDTH\n\t\tuniform mat4 matrix_projection;\n\t#endif\n\tvarying vec3 vColor;\n\tvarying vec4 vDash;\n\tvarying vec3 vLineData;\n\tvarying float vDistance;\n\tvec2 safeNormalize(vec2 value, vec2 fallbackValue) {\n\t\tfloat lengthValue = length(value);\n\t\treturn lengthValue > 0.00001 ? value / lengthValue : fallbackValue;\n\t}\n\tvec2 perpendicular(vec2 value) {\n\t\treturn vec2(-value.y, value.x);\n\t}\n\tvec2 toScreen(vec4 clipPosition) {\n\t\tfloat w = abs(clipPosition.w) > 0.00001 ? clipPosition.w : 0.00001;\n\t\treturn clipPosition.xy / w * uScreenSize.xy * 0.5;\n\t}\n\tvec4 offsetClip(vec4 clipPosition, vec2 pixelOffset) {\n\t\tclipPosition.xy += pixelOffset * (2.0 * uScreenSize.zw) * clipPosition.w;\n\t\treturn clipPosition;\n\t}\n\tfloat resolveHalfWidth(float width, vec4 clipPosition) {\n\t\t#ifdef WIDE_LINE_WORLD_SPACE_WIDTH\n\t\t\tfloat pixelsPerWorldUnit = abs(matrix_projection[1][1]) * uScreenSize.y * 0.5 /\n\t\t\t\tmax(abs(clipPosition.w), 0.00001);\n\t\t\treturn width * 0.5 * pixelsPerWorldUnit;\n\t\t#else\n\t\t\treturn width * 0.5;\n\t\t#endif\n\t}\n\tvec2 miterOffset(vec2 firstDirection, vec2 secondDirection, float side, float halfWidth) {\n\t\tvec2 secondNormal = perpendicular(secondDirection);\n\t\tvec2 miter = safeNormalize(perpendicular(firstDirection) + secondNormal, secondNormal);\n\t\tfloat scale = halfWidth / max(dot(miter, secondNormal), 0.25);\n\t\treturn miter * side * min(scale, halfWidth * 4.0);\n\t}\n\tvoid main(void) {\n\t\tvec3 prev = instance_prevWidth.xyz;\n\t\tvec3 start = instance_startWidth.xyz;\n\t\tvec3 end = instance_endDistance.xyz;\n\t\tvec3 next = instance_nextDistance.xyz;\n\t\tfloat startDistance = instance_endDistance.w;\n\t\tfloat endDistance = instance_nextDistance.w;\n\t\tvec4 prevClip = matrix_viewProjection * vec4(prev, 1.0);\n\t\tvec4 startClip = matrix_viewProjection * vec4(start, 1.0);\n\t\tvec4 endClip = matrix_viewProjection * vec4(end, 1.0);\n\t\tvec4 nextClip = matrix_viewProjection * vec4(next, 1.0);\n\t\tfloat startHalfWidth = resolveHalfWidth(instance_prevWidth.w, startClip);\n\t\tfloat endHalfWidth = resolveHalfWidth(instance_startWidth.w, endClip);\n\t\tvec2 startScreen = toScreen(startClip);\n\t\tvec2 endScreen = toScreen(endClip);\n\t\tvec2 currentDirection = safeNormalize(endScreen - startScreen, vec2(1.0, 0.0));\n\t\tvec2 previousDirection = safeNormalize(startScreen - toScreen(prevClip), currentDirection);\n\t\tvec2 nextDirection = safeNormalize(toScreen(nextClip) - endScreen, currentDirection);\n\t\tvec2 currentNormal = perpendicular(currentDirection);\n\t\tvec2 previousNormal = perpendicular(previousDirection);\n\t\tfloat joinStyle = instance_style.x;\n\t\tfloat capStyle = instance_style.y;\n\t\tuint flags = uint(instance_dashFlags.y + 0.5);\n\t\tbool startConnected = (flags & 1u) != 0u;\n\t\tbool endConnected = (flags & 2u) != 0u;\n\t\tfloat kind = vertex_position.z;\n\t\tvec4 clipPosition;\n\t\tvLineData = vec3(0.0, startHalfWidth, 0.0);\n\t\tif (kind < 0.5) {\n\t\t\tfloat along = vertex_position.x;\n\t\t\tfloat side = vertex_position.y;\n\t\t\tbool atStart = along < 0.5;\n\t\t\tfloat halfWidth = atStart ? startHalfWidth : endHalfWidth;\n\t\t\tvec2 offset;\n\t\t\tif (atStart) {\n\t\t\t\tif (startConnected && joinStyle < 0.5) {\n\t\t\t\t\toffset = miterOffset(previousDirection, currentDirection, side, halfWidth);\n\t\t\t\t} else {\n\t\t\t\t\toffset = currentNormal * side * halfWidth;\n\t\t\t\t\tif (!startConnected && capStyle > 0.5 && capStyle < 1.5) {\n\t\t\t\t\t\toffset -= currentDirection * halfWidth;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tclipPosition = offsetClip(startClip, offset);\n\t\t\t} else {\n\t\t\t\tif (endConnected && joinStyle < 0.5) {\n\t\t\t\t\toffset = miterOffset(currentDirection, nextDirection, side, halfWidth);\n\t\t\t\t} else {\n\t\t\t\t\toffset = currentNormal * side * halfWidth;\n\t\t\t\t\tif (!endConnected && capStyle > 0.5 && capStyle < 1.5) {\n\t\t\t\t\t\toffset += currentDirection * halfWidth;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tclipPosition = offsetClip(endClip, offset);\n\t\t\t}\n\t\t\tvColor = mix(instance_startColor, instance_endColor, along);\n\t\t\tvDistance = mix(startDistance, endDistance, along);\n\t\t\tvLineData = vec3(side, mix(startHalfWidth, endHalfWidth, along), 1.0);\n\t\t} else if (kind < 1.5) {\n\t\t\tbool visible = (startConnected && joinStyle > 1.5) || (!startConnected && capStyle > 1.5);\n\t\t\tfloat scale = visible ? startHalfWidth : 0.0;\n\t\t\tvec2 offset = (currentDirection * vertex_position.x + currentNormal * vertex_position.y) * scale;\n\t\t\tclipPosition = offsetClip(startClip, offset);\n\t\t\tvColor = instance_startColor;\n\t\t\tvDistance = startDistance;\n\t\t} else if (kind < 2.5) {\n\t\t\tbool visible = !endConnected && capStyle > 1.5;\n\t\t\tfloat scale = visible ? endHalfWidth : 0.0;\n\t\t\tvec2 offset = (currentDirection * vertex_position.x + currentNormal * vertex_position.y) * scale;\n\t\t\tclipPosition = offsetClip(endClip, offset);\n\t\t\tvColor = instance_endColor;\n\t\t\tvDistance = endDistance;\n\t\t} else {\n\t\t\tbool visible = startConnected && joinStyle > 0.5 && joinStyle < 1.5;\n\t\t\tfloat scale = visible ? startHalfWidth : 0.0;\n\t\t\tvec2 offset = vec2(0.0);\n\t\t\tif (kind > 3.5 && kind < 4.5) {\n\t\t\t\toffset = previousNormal * vertex_position.y * scale;\n\t\t\t} else if (kind > 4.5) {\n\t\t\t\toffset = currentNormal * vertex_position.y * scale;\n\t\t\t}\n\t\t\tclipPosition = offsetClip(startClip, offset);\n\t\t\tvColor = instance_startColor;\n\t\t\tvDistance = startDistance;\n\t\t}\n\t\tvDash = vec4(instance_style.z, instance_style.w, instance_dashFlags.x, capStyle);\n\t\tgl_Position = clipPosition;\n\t}\n`;\nvar fragmentGLSL = `\n\tvarying vec3 vColor;\n\tvarying vec4 vDash;\n\tvarying vec3 vLineData;\n\tvarying float vDistance;\n\tvoid main(void) {\n\t\tfloat worldPerPixel = length(vec2(dFdx(vDistance), dFdy(vDistance)));\n\t\tif (vDash.x > 0.0 && vDash.y > 0.0) {\n\t\t\tfloat period = vDash.x + vDash.y;\n\t\t\tfloat phase = mod(vDistance + vDash.z, period);\n\t\t\tif (phase < 0.0) {\n\t\t\t\tphase += period;\n\t\t\t}\n\t\t\tif (phase > vDash.x) {\n\t\t\t\tif (vDash.w > 1.5 && vLineData.z > 0.5) {\n\t\t\t\t\tfloat along = min(phase - vDash.x, period - phase) / max(worldPerPixel, 0.00001);\n\t\t\t\t\tfloat across = abs(vLineData.x) * vLineData.y;\n\t\t\t\t\tif (length(vec2(along, across)) > vLineData.y) {\n\t\t\t\t\t\tdiscard;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tdiscard;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tgl_FragColor = vec4(vColor, 1.0);\n\t}\n`;\nvar vertexWGSL = `\n\tattribute vertex_position: vec3f;\n\tattribute instance_prevWidth: vec4f;\n\tattribute instance_startWidth: vec4f;\n\tattribute instance_endDistance: vec4f;\n\tattribute instance_nextDistance: vec4f;\n\tattribute instance_startColor: vec3f;\n\tattribute instance_endColor: vec3f;\n\tattribute instance_style: vec4f;\n\tattribute instance_dashFlags: vec4f;\n\tuniform matrix_viewProjection: mat4x4f;\n\tuniform uScreenSize: vec4f;\n\t#ifdef WIDE_LINE_WORLD_SPACE_WIDTH\n\t\tuniform matrix_projection: mat4x4f;\n\t#endif\n\tvarying vColor: vec3f;\n\tvarying vDash: vec4f;\n\tvarying vLineData: vec3f;\n\tvarying vDistance: f32;\n\tfn safeNormalize(value: vec2f, fallbackValue: vec2f) -> vec2f {\n\t\tlet lengthValue = length(value);\n\t\treturn select(fallbackValue, value / lengthValue, lengthValue > 0.00001);\n\t}\n\tfn perpendicular(value: vec2f) -> vec2f {\n\t\treturn vec2f(-value.y, value.x);\n\t}\n\tfn toScreen(clipPosition: vec4f) -> vec2f {\n\t\tlet w = select(0.00001, clipPosition.w, abs(clipPosition.w) > 0.00001);\n\t\treturn clipPosition.xy / w * uniform.uScreenSize.xy * 0.5;\n\t}\n\tfn offsetClip(position: vec4f, pixelOffset: vec2f) -> vec4f {\n\t\tvar clipPosition = position;\n\t\tclipPosition.x += pixelOffset.x * (2.0 * uniform.uScreenSize.z) * clipPosition.w;\n\t\tclipPosition.y += pixelOffset.y * (2.0 * uniform.uScreenSize.w) * clipPosition.w;\n\t\treturn clipPosition;\n\t}\n\tfn resolveHalfWidth(width: f32, clipPosition: vec4f) -> f32 {\n\t\t#ifdef WIDE_LINE_WORLD_SPACE_WIDTH\n\t\t\tlet pixelsPerWorldUnit = abs(uniform.matrix_projection[1][1]) * uniform.uScreenSize.y * 0.5 /\n\t\t\t\tmax(abs(clipPosition.w), 0.00001);\n\t\t\treturn width * 0.5 * pixelsPerWorldUnit;\n\t\t#else\n\t\t\treturn width * 0.5;\n\t\t#endif\n\t}\n\tfn miterOffset(firstDirection: vec2f, secondDirection: vec2f, side: f32, halfWidth: f32) -> vec2f {\n\t\tlet secondNormal = perpendicular(secondDirection);\n\t\tlet miter = safeNormalize(perpendicular(firstDirection) + secondNormal, secondNormal);\n\t\tlet scale = halfWidth / max(dot(miter, secondNormal), 0.25);\n\t\treturn miter * side * min(scale, halfWidth * 4.0);\n\t}\n\t@vertex\n\tfn vertexMain(input: VertexInput) -> VertexOutput {\n\t\tvar output: VertexOutput;\n\t\tlet prev = input.instance_prevWidth.xyz;\n\t\tlet start = input.instance_startWidth.xyz;\n\t\tlet end = input.instance_endDistance.xyz;\n\t\tlet next = input.instance_nextDistance.xyz;\n\t\tlet startDistance = input.instance_endDistance.w;\n\t\tlet endDistance = input.instance_nextDistance.w;\n\t\tlet prevClip = uniform.matrix_viewProjection * vec4f(prev, 1.0);\n\t\tlet startClip = uniform.matrix_viewProjection * vec4f(start, 1.0);\n\t\tlet endClip = uniform.matrix_viewProjection * vec4f(end, 1.0);\n\t\tlet nextClip = uniform.matrix_viewProjection * vec4f(next, 1.0);\n\t\tlet startHalfWidth = resolveHalfWidth(input.instance_prevWidth.w, startClip);\n\t\tlet endHalfWidth = resolveHalfWidth(input.instance_startWidth.w, endClip);\n\t\tlet startScreen = toScreen(startClip);\n\t\tlet endScreen = toScreen(endClip);\n\t\tlet currentDirection = safeNormalize(endScreen - startScreen, vec2f(1.0, 0.0));\n\t\tlet previousDirection = safeNormalize(startScreen - toScreen(prevClip), currentDirection);\n\t\tlet nextDirection = safeNormalize(toScreen(nextClip) - endScreen, currentDirection);\n\t\tlet currentNormal = perpendicular(currentDirection);\n\t\tlet previousNormal = perpendicular(previousDirection);\n\t\tlet joinStyle = input.instance_style.x;\n\t\tlet capStyle = input.instance_style.y;\n\t\tlet flags = u32(input.instance_dashFlags.y + 0.5);\n\t\tlet startConnected = (flags & 1u) != 0u;\n\t\tlet endConnected = (flags & 2u) != 0u;\n\t\tlet kind = input.vertex_position.z;\n\t\tvar clipPosition: vec4f;\n\t\toutput.vLineData = vec3f(0.0, startHalfWidth, 0.0);\n\t\tif (kind < 0.5) {\n\t\t\tlet along = input.vertex_position.x;\n\t\t\tlet side = input.vertex_position.y;\n\t\t\tlet atStart = along < 0.5;\n\t\t\tlet halfWidth = select(endHalfWidth, startHalfWidth, atStart);\n\t\t\tvar offset: vec2f;\n\t\t\tif (atStart) {\n\t\t\t\tif (startConnected && joinStyle < 0.5) {\n\t\t\t\t\toffset = miterOffset(previousDirection, currentDirection, side, halfWidth);\n\t\t\t\t} else {\n\t\t\t\t\toffset = currentNormal * side * halfWidth;\n\t\t\t\t\tif (!startConnected && capStyle > 0.5 && capStyle < 1.5) {\n\t\t\t\t\t\toffset -= currentDirection * halfWidth;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tclipPosition = offsetClip(startClip, offset);\n\t\t\t} else {\n\t\t\t\tif (endConnected && joinStyle < 0.5) {\n\t\t\t\t\toffset = miterOffset(currentDirection, nextDirection, side, halfWidth);\n\t\t\t\t} else {\n\t\t\t\t\toffset = currentNormal * side * halfWidth;\n\t\t\t\t\tif (!endConnected && capStyle > 0.5 && capStyle < 1.5) {\n\t\t\t\t\t\toffset += currentDirection * halfWidth;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tclipPosition = offsetClip(endClip, offset);\n\t\t\t}\n\t\t\toutput.vColor = mix(input.instance_startColor, input.instance_endColor, along);\n\t\t\toutput.vDistance = mix(startDistance, endDistance, along);\n\t\t\toutput.vLineData = vec3f(side, mix(startHalfWidth, endHalfWidth, along), 1.0);\n\t\t} else if (kind < 1.5) {\n\t\t\tlet visible = (startConnected && joinStyle > 1.5) || (!startConnected && capStyle > 1.5);\n\t\t\tlet scale = select(0.0, startHalfWidth, visible);\n\t\t\tlet offset = (currentDirection * input.vertex_position.x + currentNormal * input.vertex_position.y) * scale;\n\t\t\tclipPosition = offsetClip(startClip, offset);\n\t\t\toutput.vColor = input.instance_startColor;\n\t\t\toutput.vDistance = startDistance;\n\t\t} else if (kind < 2.5) {\n\t\t\tlet visible = !endConnected && capStyle > 1.5;\n\t\t\tlet scale = select(0.0, endHalfWidth, visible);\n\t\t\tlet offset = (currentDirection * input.vertex_position.x + currentNormal * input.vertex_position.y) * scale;\n\t\t\tclipPosition = offsetClip(endClip, offset);\n\t\t\toutput.vColor = input.instance_endColor;\n\t\t\toutput.vDistance = endDistance;\n\t\t} else {\n\t\t\tlet visible = startConnected && joinStyle > 0.5 && joinStyle < 1.5;\n\t\t\tlet scale = select(0.0, startHalfWidth, visible);\n\t\t\tvar offset = vec2f(0.0);\n\t\t\tif (kind > 3.5 && kind < 4.5) {\n\t\t\t\toffset = previousNormal * input.vertex_position.y * scale;\n\t\t\t} else if (kind > 4.5) {\n\t\t\t\toffset = currentNormal * input.vertex_position.y * scale;\n\t\t\t}\n\t\t\tclipPosition = offsetClip(startClip, offset);\n\t\t\toutput.vColor = input.instance_startColor;\n\t\t\toutput.vDistance = startDistance;\n\t\t}\n\t\toutput.vDash = vec4f(input.instance_style.z, input.instance_style.w, input.instance_dashFlags.x, capStyle);\n\t\toutput.position = clipPosition;\n\t\treturn output;\n\t}\n`;\nvar fragmentWGSL = `\n\tvarying vColor: vec3f;\n\tvarying vDash: vec4f;\n\tvarying vLineData: vec3f;\n\tvarying vDistance: f32;\n\t@fragment\n\tfn fragmentMain(input: FragmentInput) -> FragmentOutput {\n\t\tvar output: FragmentOutput;\n\t\tlet worldPerPixel = length(vec2f(dpdx(input.vDistance), dpdy(input.vDistance)));\n\t\tif (input.vDash.x > 0.0 && input.vDash.y > 0.0) {\n\t\t\tlet period = input.vDash.x + input.vDash.y;\n\t\t\tvar phase = input.vDistance + input.vDash.z;\n\t\t\tphase = phase - floor(phase / period) * period;\n\t\t\tif (phase > input.vDash.x) {\n\t\t\t\tif (input.vDash.w > 1.5 && input.vLineData.z > 0.5) {\n\t\t\t\t\tlet along = min(phase - input.vDash.x, period - phase) / max(worldPerPixel, 0.00001);\n\t\t\t\t\tlet across = abs(input.vLineData.x) * input.vLineData.y;\n\t\t\t\t\tif (length(vec2f(along, across)) > input.vLineData.y) {\n\t\t\t\t\t\tdiscard;\n\t\t\t\t\t\treturn output;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tdiscard;\n\t\t\t\t\treturn output;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\toutput.color = vec4f(input.vColor, 1.0);\n\t\treturn output;\n\t}\n`;\nvar createTemplateMesh = (device) => {\n\tconst positions = [\n\t\t0,\n\t\t-1,\n\t\t0,\n\t\t0,\n\t\t1,\n\t\t0,\n\t\t1,\n\t\t-1,\n\t\t0,\n\t\t1,\n\t\t1,\n\t\t0\n\t];\n\tconst indices = [0, 2, 1, 1, 2, 3];\n\tconst addDisk = (kind) => {\n\t\tconst center2 = positions.length / 3;\n\t\tpositions.push(0, 0, kind);\n\t\tfor (let i2 = 0; i2 <= ROUND_SEGMENTS; i2++) {\n\t\t\tconst angle = i2 / ROUND_SEGMENTS * Math.PI * 2;\n\t\t\tpositions.push(Math.cos(angle), Math.sin(angle), kind);\n\t\t}\n\t\tfor (let i2 = 0; i2 < ROUND_SEGMENTS; i2++) {\n\t\t\tindices.push(center2, center2 + i2 + 1, center2 + i2 + 2);\n\t\t}\n\t};\n\taddDisk(1);\n\taddDisk(2);\n\tfor (let side = -1; side <= 1; side += 2) {\n\t\tconst base = positions.length / 3;\n\t\tpositions.push(\n\t\t\t0,\n\t\t\t0,\n\t\t\t3,\n\t\t\t0,\n\t\t\tside,\n\t\t\t4,\n\t\t\t0,\n\t\t\tside,\n\t\t\t5\n\t\t);\n\t\tindices.push(base, base + 1, base + 2);\n\t}\n\tconst mesh = new Mesh(device);\n\tmesh.setPositions(positions);\n\tmesh.setIndices(indices);\n\tmesh.update(PRIMITIVE_TRIANGLES, false);\n\treturn mesh;\n};\nvar WideLineRenderer = class {\n\t_lines = [];\n\t_layer;\n\t_depthTest = true;\n\t_depthWrite = true;\n\t_enabled = true;\n\t_widthUnits = LINEWIDTH_SCREEN;\n\t_capacity = 0;\n\t_segmentCount = 0;\n\t_dirty = true;\n\t_destroyed = false;\n\t_vertexBuffer = null;\n\t_instanceData = null;\n\tconstructor(app2) {\n\t\tthis.app = app2;\n\t\tthis.device = app2.graphicsDevice;\n\t\tthis._vertexFormat = new VertexFormat(this.device, [\n\t\t\t{ semantic: SEMANTIC_ATTR8, components: 4, type: TYPE_FLOAT32 },\n\t\t\t{ semantic: SEMANTIC_ATTR9, components: 4, type: TYPE_FLOAT32 },\n\t\t\t{ semantic: SEMANTIC_ATTR10, components: 4, type: TYPE_FLOAT32 },\n\t\t\t{ semantic: SEMANTIC_ATTR11, components: 4, type: TYPE_FLOAT32 },\n\t\t\t{ semantic: SEMANTIC_ATTR12, components: 3, type: TYPE_FLOAT32 },\n\t\t\t{ semantic: SEMANTIC_ATTR13, components: 3, type: TYPE_FLOAT32 },\n\t\t\t{ semantic: SEMANTIC_ATTR14, components: 4, type: TYPE_FLOAT32 },\n\t\t\t{ semantic: SEMANTIC_ATTR15, components: 4, type: TYPE_FLOAT32 }\n\t\t]);\n\t\tthis.material = new ShaderMaterial({\n\t\t\tuniqueName: \"WideLineRenderer\",\n\t\t\tvertexGLSL,\n\t\t\tfragmentGLSL,\n\t\t\tvertexWGSL,\n\t\t\tfragmentWGSL,\n\t\t\tattributes: {\n\t\t\t\tvertex_position: SEMANTIC_POSITION,\n\t\t\t\tinstance_prevWidth: SEMANTIC_ATTR8,\n\t\t\t\tinstance_startWidth: SEMANTIC_ATTR9,\n\t\t\t\tinstance_endDistance: SEMANTIC_ATTR10,\n\t\t\t\tinstance_nextDistance: SEMANTIC_ATTR11,\n\t\t\t\tinstance_startColor: SEMANTIC_ATTR12,\n\t\t\t\tinstance_endColor: SEMANTIC_ATTR13,\n\t\t\t\tinstance_style: SEMANTIC_ATTR14,\n\t\t\t\tinstance_dashFlags: SEMANTIC_ATTR15\n\t\t\t}\n\t\t});\n\t\tthis.material.cull = CULLFACE_NONE;\n\t\tthis.material.depthTest = this._depthTest;\n\t\tthis.material.depthWrite = this._depthWrite;\n\t\tthis.material.update();\n\t\tthis.meshInstance = new MeshInstance(\n\t\t\tcreateTemplateMesh(this.device),\n\t\t\tthis.material,\n\t\t\tnew GraphNode(\"WideLineRenderer\")\n\t\t);\n\t\tthis.meshInstance.cull = false;\n\t\tthis.meshInstance.pick = false;\n\t\tthis.meshInstance.visible = false;\n\t\tconst layer = app2.scene.layers.getLayerByName(\"Immediate\");\n\t\tif (!layer) {\n\t\t\tthrow new Error(\"WideLineRenderer requires an Immediate layer.\");\n\t\t}\n\t\tthis._layer = layer;\n\t\tthis._layer.addMeshInstances([this.meshInstance]);\n\t\tapp2.on(\"prerender\", this._onPrerender, this);\n\t}\n\tadd(line) {\n\t\tif (!(line instanceof WideLine)) {\n\t\t\tthrow new TypeError(\"line must be a WideLine.\");\n\t\t}\n\t\tif (line._renderer) {\n\t\t\tthrow new Error(\"WideLine is already owned by a WideLineRenderer.\");\n\t\t}\n\t\tline._renderer = this;\n\t\tline._rendererIndex = this._lines.length;\n\t\tthis._lines.push(line);\n\t\tthis._dirty = true;\n\t}\n\tremove(line) {\n\t\tif (line?._renderer !== this) {\n\t\t\treturn false;\n\t\t}\n\t\tconst index = line._rendererIndex;\n\t\tconst last = this._lines.pop();\n\t\tif (last !== line) {\n\t\t\tthis._lines[index] = last;\n\t\t\tlast._rendererIndex = index;\n\t\t}\n\t\tline._renderer = null;\n\t\tline._rendererIndex = -1;\n\t\tthis._dirty = true;\n\t\treturn true;\n\t}\n\tclear() {\n\t\tfor (let i2 = 0; i2 < this._lines.length; i2++) {\n\t\t\tconst line = this._lines[i2];\n\t\t\tline._renderer = null;\n\t\t\tline._rendererIndex = -1;\n\t\t}\n\t\tthis._lines.length = 0;\n\t\tthis._dirty = true;\n\t}\n\tdestroy() {\n\t\tif (this._destroyed) {\n\t\t\treturn;\n\t\t}\n\t\tthis._destroyed = true;\n\t\tthis.app.off(\"prerender\", this._onPrerender, this);\n\t\tthis.clear();\n\t\tthis._layer.removeMeshInstances([this.meshInstance]);\n\t\tif (this._vertexBuffer) {\n\t\t\tthis.meshInstance.setInstancing(null);\n\t\t\tthis._vertexBuffer.destroy();\n\t\t\tthis._vertexBuffer = null;\n\t\t\tthis._instanceData = null;\n\t\t}\n\t\tthis.meshInstance.destroy();\n\t\tthis.material.destroy();\n\t}\n\tset layer(value) {\n\t\tif (!value) {\n\t\t\tthrow new TypeError(\"layer must be a Layer.\");\n\t\t}\n\t\tif (this._layer !== value) {\n\t\t\tthis._layer?.removeMeshInstances([this.meshInstance]);\n\t\t\tthis._layer = value;\n\t\t\tthis._layer.addMeshInstances([this.meshInstance]);\n\t\t}\n\t}\n\tget layer() {\n\t\treturn this._layer;\n\t}\n\tset depthTest(value) {\n\t\tvalue = !!value;\n\t\tif (this._depthTest !== value) {\n\t\t\tthis._depthTest = value;\n\t\t\tthis.material.depthTest = value;\n\t\t}\n\t}\n\tget depthTest() {\n\t\treturn this._depthTest;\n\t}\n\tset depthWrite(value) {\n\t\tvalue = !!value;\n\t\tif (this._depthWrite !== value) {\n\t\t\tthis._depthWrite = value;\n\t\t\tthis.material.depthWrite = value;\n\t\t}\n\t}\n\tget depthWrite() {\n\t\treturn this._depthWrite;\n\t}\n\tset enabled(value) {\n\t\tvalue = !!value;\n\t\tif (this._enabled !== value) {\n\t\t\tthis._enabled = value;\n\t\t\tthis._updateVisibility();\n\t\t}\n\t}\n\tget enabled() {\n\t\treturn this._enabled;\n\t}\n\tset widthUnits(value) {\n\t\tif (value !== LINEWIDTH_SCREEN && value !== LINEWIDTH_WORLD) {\n\t\t\tthrow new RangeError(\"widthUnits must be LINEWIDTH_SCREEN or LINEWIDTH_WORLD.\");\n\t\t}\n\t\tif (this._widthUnits !== value) {\n\t\t\tthis._widthUnits = value;\n\t\t\tthis.material.setDefine(\"WIDE_LINE_WORLD_SPACE_WIDTH\", value === LINEWIDTH_WORLD);\n\t\t\tthis.material.update();\n\t\t}\n\t}\n\tget widthUnits() {\n\t\treturn this._widthUnits;\n\t}\n\tset capacity(value) {\n\t\tif (!Number.isInteger(value) || value < 0) {\n\t\t\tthrow new RangeError(\"capacity must be a non-negative integer.\");\n\t\t}\n\t\tconst capacity = Math.max(value, this._requiredSegmentCount());\n\t\tif (this._capacity !== capacity) {\n\t\t\tthis._resize(capacity);\n\t\t\tthis._dirty = true;\n\t\t}\n\t}\n\tget capacity() {\n\t\treturn this._capacity;\n\t}\n\t_lineChanged(line) {\n\t\tif (line._renderer === this) {\n\t\t\tthis._dirty = true;\n\t\t}\n\t}\n\t_onPrerender() {\n\t\tif (this._dirty) {\n\t\t\tthis._rebuild();\n\t\t}\n\t}\n\t_requiredSegmentCount() {\n\t\tlet count = 0;\n\t\tfor (let i2 = 0; i2 < this._lines.length; i2++) {\n\t\t\tconst line = this._lines[i2];\n\t\t\tconst pointCount = line.pointCount;\n\t\t\tif (pointCount >= 2) {\n\t\t\t\tcount += line._closed ? pointCount : pointCount - 1;\n\t\t\t}\n\t\t}\n\t\treturn count;\n\t}\n\t_resize(capacity) {\n\t\tif (this._vertexBuffer) {\n\t\t\tthis.meshInstance.setInstancing(null);\n\t\t\tthis._vertexBuffer.destroy();\n\t\t\tthis._vertexBuffer = null;\n\t\t\tthis._instanceData = null;\n\t\t}\n\t\tthis._capacity = capacity;\n\t\tif (capacity > 0) {\n\t\t\tthis._vertexBuffer = new VertexBuffer(this.device, this._vertexFormat, capacity, {\n\t\t\t\tusage: BUFFER_DYNAMIC\n\t\t\t});\n\t\t\tthis._instanceData = new Float32Array(this._vertexBuffer.lock());\n\t\t\tthis.meshInstance.setInstancing(this._vertexBuffer);\n\t\t\tthis.meshInstance.instancingCount = 0;\n\t\t}\n\t\tthis._updateVisibility();\n\t}\n\t_rebuild() {\n\t\tconst required = this._requiredSegmentCount();\n\t\tif (required > this._capacity) {\n\t\t\tconst grownCapacity = Math.max(required, this._capacity > 0 ? this._capacity * 2 : required);\n\t\t\tthis._resize(grownCapacity);\n\t\t}\n\t\tthis._segmentCount = required;\n\t\tif (required === 0) {\n\t\t\tif (this.meshInstance.instancingData) {\n\t\t\t\tthis.meshInstance.instancingCount = 0;\n\t\t\t}\n\t\t\tthis._dirty = false;\n\t\t\tthis._updateVisibility();\n\t\t\treturn;\n\t\t}\n\t\tconst data2 = this._instanceData;\n\t\tlet instance = 0;\n\t\tfor (let i2 = 0; i2 < this._lines.length; i2++) {\n\t\t\tinstance = this._writeLine(data2, instance, this._lines[i2]);\n\t\t}\n\t\tthis._vertexBuffer.unlock();\n\t\tthis.meshInstance.instancingCount = required;\n\t\tthis._dirty = false;\n\t\tthis._updateVisibility();\n\t}\n\t_writeLine(data2, instance, line) {\n\t\tconst positions = line._positions;\n\t\tconst colors = line._colors;\n\t\tconst widths = line._widths;\n\t\tconst pointCount = line.pointCount;\n\t\tif (pointCount < 2) {\n\t\t\treturn instance;\n\t\t}\n\t\tconst segmentCount = line._closed ? pointCount : pointCount - 1;\n\t\tlet distance = 0;\n\t\tfor (let segment = 0; segment < segmentCount; segment++) {\n\t\t\tconst startIndex = segment;\n\t\t\tconst endIndex = (segment + 1) % pointCount;\n\t\t\tconst startConnected = line._closed || segment > 0;\n\t\t\tconst endConnected = line._closed || segment < segmentCount - 1;\n\t\t\tconst prevIndex = startConnected ? (startIndex + pointCount - 1) % pointCount : startIndex;\n\t\t\tconst nextIndex = endConnected ? (endIndex + 1) % pointCount : endIndex;\n\t\t\tconst startPosition = startIndex * 3;\n\t\t\tconst endPosition = endIndex * 3;\n\t\t\tconst dx = positions[endPosition] - positions[startPosition];\n\t\t\tconst dy = positions[endPosition + 1] - positions[startPosition + 1];\n\t\t\tconst dz = positions[endPosition + 2] - positions[startPosition + 2];\n\t\t\tconst endDistance = distance + Math.sqrt(dx * dx + dy * dy + dz * dz);\n\t\t\tlet offset3 = instance * FLOATS_PER_INSTANCE;\n\t\t\toffset3 = this._writePosition(data2, offset3, positions, prevIndex);\n\t\t\tdata2[offset3++] = widths.length === 1 ? widths[0] : widths[startIndex];\n\t\t\toffset3 = this._writePosition(data2, offset3, positions, startIndex);\n\t\t\tdata2[offset3++] = widths.length === 1 ? widths[0] : widths[endIndex];\n\t\t\toffset3 = this._writePosition(data2, offset3, positions, endIndex);\n\t\t\tdata2[offset3++] = distance;\n\t\t\toffset3 = this._writePosition(data2, offset3, positions, nextIndex);\n\t\t\tdata2[offset3++] = endDistance;\n\t\t\toffset3 = this._writeColor(data2, offset3, colors, startIndex);\n\t\t\toffset3 = this._writeColor(data2, offset3, colors, endIndex);\n\t\t\tdata2[offset3++] = line._join;\n\t\t\tdata2[offset3++] = line._cap;\n\t\t\tdata2[offset3++] = line._dashLength;\n\t\t\tdata2[offset3++] = line._gapLength;\n\t\t\tdata2[offset3++] = line._dashOffset;\n\t\t\tdata2[offset3++] = (startConnected ? 1 : 0) | (endConnected ? 2 : 0);\n\t\t\tdata2[offset3++] = 0;\n\t\t\tdata2[offset3] = 0;\n\t\t\tdistance = endDistance;\n\t\t\tinstance++;\n\t\t}\n\t\treturn instance;\n\t}\n\t_writePosition(data2, offset3, positions, point5) {\n\t\tconst source = point5 * 3;\n\t\tdata2[offset3++] = positions[source];\n\t\tdata2[offset3++] = positions[source + 1];\n\t\tdata2[offset3++] = positions[source + 2];\n\t\treturn offset3;\n\t}\n\t_writeColor(data2, offset3, colors, point5) {\n\t\tconst source = colors.length === 3 ? 0 : point5 * 3;\n\t\tdata2[offset3++] = colors[source];\n\t\tdata2[offset3++] = colors[source + 1];\n\t\tdata2[offset3++] = colors[source + 2];\n\t\treturn offset3;\n\t}\n\t_updateVisibility() {\n\t\tthis.meshInstance.visible = this._enabled && this._segmentCount > 0;\n\t}\n};\n\nvar _u = new Vec3();\nvar _v = new Vec3();\nvar _dir = new Vec3();\nvar _pos = new Vec3();\nvar _head = new Vec3();\nvar _lightDir = new Vec3();\nvar _mat2 = new Mat4();\nvar _view = new Mat4();\nvar _proj = new Mat4();\nvar _color = new Color();\nvar DEG_TO_RAD = Math.PI / 180;\nvar NDC_CORNERS = [\n\t-1,\n\t-1,\n\t-1,\n\t1,\n\t-1,\n\t-1,\n\t1,\n\t1,\n\t-1,\n\t-1,\n\t1,\n\t-1,\n\t-1,\n\t-1,\n\t1,\n\t1,\n\t-1,\n\t1,\n\t1,\n\t1,\n\t1,\n\t-1,\n\t1,\n\t1\n];\nvar FRUSTUM_EDGES = [\n\t0,\n\t1,\n\t1,\n\t2,\n\t2,\n\t3,\n\t3,\n\t0,\n\t4,\n\t5,\n\t5,\n\t6,\n\t6,\n\t7,\n\t7,\n\t4,\n\t0,\n\t4,\n\t1,\n\t5,\n\t2,\n\t6,\n\t3,\n\t7\n];\nvar _corners = [];\nfor (let i2 = 0; i2 < 8; i2++) {\n\t_corners.push(new Vec3());\n}\nvar buildBasis = (dir4) => {\n\tif (Math.abs(dir4.x) < 0.5) {\n\t\t_u.set(1, 0, 0);\n\t} else {\n\t\t_u.set(0, 1, 0);\n\t}\n\t_v.cross(dir4, _u).normalize();\n\t_u.cross(_v, dir4).normalize();\n};\nvar WireRenderer = class {\n\tcolor = new Color(1, 1, 1, 1);\n\tlayer = null;\n\tdepthTest = true;\n\tsegments = 20;\n\ttransform = null;\n\tconstructor(app2) {\n\t\tthis.app = app2;\n\t\tthis._scene = app2.scene;\n\t\tthis._immediate = app2.scene.immediate;\n\t\tthis._writer = null;\n\t}\n\t_begin(vertexCount) {\n\t\tthis._writer = this._immediate.allocateLines(\n\t\t\tvertexCount,\n\t\t\tthis.color,\n\t\t\tthis.depthTest,\n\t\t\tthis.layer ?? this._scene.defaultDrawLayer\n\t\t);\n\t}\n\t_steps() {\n\t\treturn Math.max(3, Math.floor(this.segments));\n\t}\n\t_segment(x0, y0, z0, x1, y1, z1) {\n\t\tconst m = this.transform;\n\t\tif (m) {\n\t\t\tconst d = m.data;\n\t\t\tthis._writer.segment(\n\t\t\t\td[0] * x0 + d[4] * y0 + d[8] * z0 + d[12],\n\t\t\t\td[1] * x0 + d[5] * y0 + d[9] * z0 + d[13],\n\t\t\t\td[2] * x0 + d[6] * y0 + d[10] * z0 + d[14],\n\t\t\t\td[0] * x1 + d[4] * y1 + d[8] * z1 + d[12],\n\t\t\t\td[1] * x1 + d[5] * y1 + d[9] * z1 + d[13],\n\t\t\t\td[2] * x1 + d[6] * y1 + d[10] * z1 + d[14]\n\t\t\t);\n\t\t} else {\n\t\t\tthis._writer.segment(x0, y0, z0, x1, y1, z1);\n\t\t}\n\t}\n\t_vertex(x3, y2, z2, color3) {\n\t\tconst m = this.transform;\n\t\tif (m) {\n\t\t\tconst d = m.data;\n\t\t\tthis._writer.vertex(\n\t\t\t\td[0] * x3 + d[4] * y2 + d[8] * z2 + d[12],\n\t\t\t\td[1] * x3 + d[5] * y2 + d[9] * z2 + d[13],\n\t\t\t\td[2] * x3 + d[6] * y2 + d[10] * z2 + d[14],\n\t\t\t\tcolor3.r,\n\t\t\t\tcolor3.g,\n\t\t\t\tcolor3.b,\n\t\t\t\tcolor3.a\n\t\t\t);\n\t\t} else {\n\t\t\tthis._writer.vertex(x3, y2, z2, color3.r, color3.g, color3.b, color3.a);\n\t\t}\n\t}\n\t_arc(center2, u, v6, radius, steps, start = 0, sweep = Math.PI * 2) {\n\t\tconst writer = this._writer;\n\t\tconst positions = writer.positions;\n\t\tconst colors = writer.colors;\n\t\tlet k = writer.cursor;\n\t\tconst { r, g, b, a } = this.color;\n\t\tconst m = this.transform;\n\t\tconst d = m ? m.data : null;\n\t\tconst cx = center2.x, cy = center2.y, cz = center2.z;\n\t\tconst ux = u.x, uy = u.y, uz = u.z;\n\t\tconst vx = v6.x, vy = v6.y, vz = v6.z;\n\t\tconst step = sweep / steps;\n\t\tlet angle = start;\n\t\tlet c0 = Math.cos(angle) * radius;\n\t\tlet s0 = Math.sin(angle) * radius;\n\t\tfor (let i2 = 0; i2 < steps; i2++) {\n\t\t\tangle += step;\n\t\t\tconst c1 = Math.cos(angle) * radius;\n\t\t\tconst s1 = Math.sin(angle) * radius;\n\t\t\tlet x0 = cx + ux * c0 + vx * s0;\n\t\t\tlet y0 = cy + uy * c0 + vy * s0;\n\t\t\tlet z0 = cz + uz * c0 + vz * s0;\n\t\t\tlet x1 = cx + ux * c1 + vx * s1;\n\t\t\tlet y1 = cy + uy * c1 + vy * s1;\n\t\t\tlet z1 = cz + uz * c1 + vz * s1;\n\t\t\tif (d) {\n\t\t\t\tconst ax = x0, ay = y0, az = z0;\n\t\t\t\tconst bx = x1, by = y1, bz = z1;\n\t\t\t\tx0 = d[0] * ax + d[4] * ay + d[8] * az + d[12];\n\t\t\t\ty0 = d[1] * ax + d[5] * ay + d[9] * az + d[13];\n\t\t\t\tz0 = d[2] * ax + d[6] * ay + d[10] * az + d[14];\n\t\t\t\tx1 = d[0] * bx + d[4] * by + d[8] * bz + d[12];\n\t\t\t\ty1 = d[1] * bx + d[5] * by + d[9] * bz + d[13];\n\t\t\t\tz1 = d[2] * bx + d[6] * by + d[10] * bz + d[14];\n\t\t\t}\n\t\t\tlet p = k * 3;\n\t\t\tpositions[p++] = x0;\n\t\t\tpositions[p++] = y0;\n\t\t\tpositions[p++] = z0;\n\t\t\tpositions[p++] = x1;\n\t\t\tpositions[p++] = y1;\n\t\t\tpositions[p] = z1;\n\t\t\tlet c2 = k * 4;\n\t\t\tcolors[c2++] = r;\n\t\t\tcolors[c2++] = g;\n\t\t\tcolors[c2++] = b;\n\t\t\tcolors[c2++] = a;\n\t\t\tcolors[c2++] = r;\n\t\t\tcolors[c2++] = g;\n\t\t\tcolors[c2++] = b;\n\t\t\tcolors[c2] = a;\n\t\t\tk += 2;\n\t\t\tc0 = c1;\n\t\t\ts0 = s1;\n\t\t}\n\t\twriter.cursor = k;\n\t}\n\t_writePoints(positions, colors, strip, closed) {\n\t\tconst count = positions.length;\n\t\tconst segments = strip ? closed ? count : count - 1 : count / 2;\n\t\tthis._begin(segments * 2);\n\t\tif (colors) {\n\t\t\tif (strip) {\n\t\t\t\tfor (let i2 = 0; i2 < segments; i2++) {\n\t\t\t\t\tconst next = (i2 + 1) % count;\n\t\t\t\t\tthis._vertex(positions[i2].x, positions[i2].y, positions[i2].z, colors[i2]);\n\t\t\t\t\tthis._vertex(positions[next].x, positions[next].y, positions[next].z, colors[next]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (let i2 = 0; i2 < count; i2++) {\n\t\t\t\t\tthis._vertex(positions[i2].x, positions[i2].y, positions[i2].z, colors[i2]);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (strip) {\n\t\t\tfor (let i2 = 0; i2 < segments; i2++) {\n\t\t\t\tconst a = positions[i2];\n\t\t\t\tconst b = positions[(i2 + 1) % count];\n\t\t\t\tthis._segment(a.x, a.y, a.z, b.x, b.y, b.z);\n\t\t\t}\n\t\t} else {\n\t\t\tfor (let i2 = 0; i2 < count; i2 += 2) {\n\t\t\t\tconst a = positions[i2];\n\t\t\t\tconst b = positions[i2 + 1];\n\t\t\t\tthis._segment(a.x, a.y, a.z, b.x, b.y, b.z);\n\t\t\t}\n\t\t}\n\t}\n\tline(start, end) {\n\t\tthis._begin(2);\n\t\tthis._segment(start.x, start.y, start.z, end.x, end.y, end.z);\n\t}\n\tlines(positions, colors) {\n\t\tif (!this.transform) {\n\t\t\tthis.app.drawLines(positions, colors ?? this.color, this.depthTest, this.layer ?? void 0);\n\t\t\treturn;\n\t\t}\n\t\tthis._writePoints(positions, colors, false, false);\n\t}\n\tlinesPacked(positions, colors) {\n\t\tif (!this.transform) {\n\t\t\tthis.app.drawLineArrays(positions, colors ?? this.color, this.depthTest, this.layer ?? void 0);\n\t\t\treturn;\n\t\t}\n\t\tconst count = positions.length / 3;\n\t\tthis._begin(count);\n\t\tif (colors) {\n\t\t\tfor (let i2 = 0, p = 0, c2 = 0; i2 < count; i2++, p += 3, c2 += 4) {\n\t\t\t\t_color.set(colors[c2], colors[c2 + 1], colors[c2 + 2], colors[c2 + 3]);\n\t\t\t\tthis._vertex(positions[p], positions[p + 1], positions[p + 2], _color);\n\t\t\t}\n\t\t} else {\n\t\t\tfor (let i2 = 0, p = 0; i2 < count; i2 += 2, p += 6) {\n\t\t\t\tthis._segment(\n\t\t\t\t\tpositions[p],\n\t\t\t\t\tpositions[p + 1],\n\t\t\t\t\tpositions[p + 2],\n\t\t\t\t\tpositions[p + 3],\n\t\t\t\t\tpositions[p + 4],\n\t\t\t\t\tpositions[p + 5]\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\tpolyline(positions, colors) {\n\t\tif (positions.length < 2) {\n\t\t\treturn;\n\t\t}\n\t\tthis._writePoints(positions, colors, true, false);\n\t}\n\tloop(positions, colors) {\n\t\tif (positions.length < 2) {\n\t\t\treturn;\n\t\t}\n\t\tthis._writePoints(positions, colors, true, true);\n\t}\n\tboxMinMax(min, max) {\n\t\tthis._begin(12 * 2);\n\t\tconst { x: ax, y: ay, z: az } = min;\n\t\tconst { x: bx, y: by, z: bz } = max;\n\t\tthis._segment(ax, ay, az, bx, ay, az);\n\t\tthis._segment(bx, ay, az, bx, by, az);\n\t\tthis._segment(bx, by, az, ax, by, az);\n\t\tthis._segment(ax, by, az, ax, ay, az);\n\t\tthis._segment(ax, ay, bz, bx, ay, bz);\n\t\tthis._segment(bx, ay, bz, bx, by, bz);\n\t\tthis._segment(bx, by, bz, ax, by, bz);\n\t\tthis._segment(ax, by, bz, ax, ay, bz);\n\t\tthis._segment(ax, ay, az, ax, ay, bz);\n\t\tthis._segment(bx, ay, az, bx, ay, bz);\n\t\tthis._segment(bx, by, az, bx, by, bz);\n\t\tthis._segment(ax, by, az, ax, by, bz);\n\t}\n\tbox(box) {\n\t\tconst orientation = box.worldTransform;\n\t\tif (orientation) {\n\t\t\tconst outer = this.transform;\n\t\t\tthis.transform = outer ? _mat2.mul2(outer, orientation) : orientation;\n\t\t\tconst he = box.halfExtents;\n\t\t\t_u.set(-he.x, -he.y, -he.z);\n\t\t\t_v.set(he.x, he.y, he.z);\n\t\t\tthis.boxMinMax(_u, _v);\n\t\t\tthis.transform = outer;\n\t\t\treturn;\n\t\t}\n\t\tthis.boxMinMax(box.getMin(), box.getMax());\n\t}\n\tsphere(center2, radius) {\n\t\tconst steps = this._steps();\n\t\tthis._begin(steps * 3 * 2);\n\t\t_u.set(1, 0, 0);\n\t\t_v.set(0, 1, 0);\n\t\tthis._arc(center2, _u, _v, radius, steps);\n\t\t_u.set(1, 0, 0);\n\t\t_v.set(0, 0, 1);\n\t\tthis._arc(center2, _u, _v, radius, steps);\n\t\t_u.set(0, 1, 0);\n\t\t_v.set(0, 0, 1);\n\t\tthis._arc(center2, _u, _v, radius, steps);\n\t}\n\tcircle(center2, normal, radius) {\n\t\tconst steps = this._steps();\n\t\tthis._begin(steps * 2);\n\t\t_dir.copy(normal).normalize();\n\t\tbuildBasis(_dir);\n\t\tthis._arc(center2, _u, _v, radius, steps);\n\t}\n\tcylinder(start, end, radius) {\n\t\t_dir.sub2(end, start);\n\t\tif (_dir.length() < 1e-6) {\n\t\t\treturn;\n\t\t}\n\t\t_dir.normalize();\n\t\tbuildBasis(_dir);\n\t\tconst steps = this._steps();\n\t\tthis._begin((steps * 2 + 4) * 2);\n\t\tthis._arc(start, _u, _v, radius, steps);\n\t\tthis._arc(end, _u, _v, radius, steps);\n\t\tthis._sideLines(start, end, radius);\n\t}\n\t_sideLines(start, end, radius) {\n\t\tfor (let i2 = 0; i2 < 4; i2++) {\n\t\t\tconst t = i2 & 1 ? _v : _u;\n\t\t\tconst s2 = i2 < 2 ? radius : -radius;\n\t\t\tthis._segment(\n\t\t\t\tstart.x + t.x * s2,\n\t\t\t\tstart.y + t.y * s2,\n\t\t\t\tstart.z + t.z * s2,\n\t\t\t\tend.x + t.x * s2,\n\t\t\t\tend.y + t.y * s2,\n\t\t\t\tend.z + t.z * s2\n\t\t\t);\n\t\t}\n\t}\n\tcapsule(start, end, radius) {\n\t\t_dir.sub2(end, start);\n\t\tif (_dir.length() < 1e-6) {\n\t\t\tthis.sphere(start, radius);\n\t\t\treturn;\n\t\t}\n\t\t_dir.normalize();\n\t\tbuildBasis(_dir);\n\t\tconst steps = this._steps();\n\t\tconst half = Math.max(2, steps >> 1);\n\t\tthis._begin((steps * 2 + 4 + half * 4) * 2);\n\t\tthis._arc(start, _u, _v, radius, steps);\n\t\tthis._arc(end, _u, _v, radius, steps);\n\t\tthis._sideLines(start, end, radius);\n\t\tthis._arc(end, _u, _dir, radius, half, 0, Math.PI);\n\t\tthis._arc(end, _v, _dir, radius, half, 0, Math.PI);\n\t\tthis._arc(start, _u, _dir, radius, half, Math.PI, Math.PI);\n\t\tthis._arc(start, _v, _dir, radius, half, Math.PI, Math.PI);\n\t}\n\tcone(apex, direction, angle, length) {\n\t\t_dir.copy(direction);\n\t\tif (_dir.length() < 1e-6) {\n\t\t\treturn;\n\t\t}\n\t\t_dir.normalize();\n\t\tbuildBasis(_dir);\n\t\tconst radius = length * Math.tan(Math.min(angle, 89.9) * DEG_TO_RAD);\n\t\t_pos.copy(_dir).mulScalar(length).add(apex);\n\t\tconst steps = this._steps();\n\t\tthis._begin((steps + 4) * 2);\n\t\tthis._arc(_pos, _u, _v, radius, steps);\n\t\tfor (let i2 = 0; i2 < 4; i2++) {\n\t\t\tconst t = i2 & 1 ? _v : _u;\n\t\t\tconst s2 = i2 < 2 ? radius : -radius;\n\t\t\tthis._segment(\n\t\t\t\tapex.x,\n\t\t\t\tapex.y,\n\t\t\t\tapex.z,\n\t\t\t\t_pos.x + t.x * s2,\n\t\t\t\t_pos.y + t.y * s2,\n\t\t\t\t_pos.z + t.z * s2\n\t\t\t);\n\t\t}\n\t}\n\tplane(center2, normal, size) {\n\t\tthis._begin(5 * 2);\n\t\t_dir.copy(normal).normalize();\n\t\tbuildBasis(_dir);\n\t\tconst h2 = size * 0.5;\n\t\tconst ax = _u.x * h2, ay = _u.y * h2, az = _u.z * h2;\n\t\tconst bx = _v.x * h2, by = _v.y * h2, bz = _v.z * h2;\n\t\tthis._segment(\n\t\t\tcenter2.x - ax - bx,\n\t\t\tcenter2.y - ay - by,\n\t\t\tcenter2.z - az - bz,\n\t\t\tcenter2.x + ax - bx,\n\t\t\tcenter2.y + ay - by,\n\t\t\tcenter2.z + az - bz\n\t\t);\n\t\tthis._segment(\n\t\t\tcenter2.x + ax - bx,\n\t\t\tcenter2.y + ay - by,\n\t\t\tcenter2.z + az - bz,\n\t\t\tcenter2.x + ax + bx,\n\t\t\tcenter2.y + ay + by,\n\t\t\tcenter2.z + az + bz\n\t\t);\n\t\tthis._segment(\n\t\t\tcenter2.x + ax + bx,\n\t\t\tcenter2.y + ay + by,\n\t\t\tcenter2.z + az + bz,\n\t\t\tcenter2.x - ax + bx,\n\t\t\tcenter2.y - ay + by,\n\t\t\tcenter2.z - az + bz\n\t\t);\n\t\tthis._segment(\n\t\t\tcenter2.x - ax + bx,\n\t\t\tcenter2.y - ay + by,\n\t\t\tcenter2.z - az + bz,\n\t\t\tcenter2.x - ax - bx,\n\t\t\tcenter2.y - ay - by,\n\t\t\tcenter2.z - az - bz\n\t\t);\n\t\tthis._segment(\n\t\t\tcenter2.x,\n\t\t\tcenter2.y,\n\t\t\tcenter2.z,\n\t\t\tcenter2.x + _dir.x * h2,\n\t\t\tcenter2.y + _dir.y * h2,\n\t\t\tcenter2.z + _dir.z * h2\n\t\t);\n\t}\n\tpoint(position5, size) {\n\t\tthis._begin(3 * 2);\n\t\tconst h2 = size * 0.5;\n\t\tconst { x: x3, y: y2, z: z2 } = position5;\n\t\tthis._segment(x3 - h2, y2, z2, x3 + h2, y2, z2);\n\t\tthis._segment(x3, y2 - h2, z2, x3, y2 + h2, z2);\n\t\tthis._segment(x3, y2, z2 - h2, x3, y2, z2 + h2);\n\t}\n\tarrow(from, to) {\n\t\t_dir.sub2(to, from);\n\t\tconst length = _dir.length();\n\t\tif (length < 1e-6) {\n\t\t\treturn;\n\t\t}\n\t\t_dir.mulScalar(1 / length);\n\t\tbuildBasis(_dir);\n\t\tconst steps = this._steps();\n\t\tthis._begin((steps + 5) * 2);\n\t\tthis._segment(from.x, from.y, from.z, to.x, to.y, to.z);\n\t\tconst headLength = length * 0.2;\n\t\tconst headRadius = headLength * 0.5;\n\t\t_head.copy(_dir).mulScalar(-headLength).add(to);\n\t\tthis._arc(_head, _u, _v, headRadius, steps);\n\t\tfor (let i2 = 0; i2 < 4; i2++) {\n\t\t\tconst t = i2 & 1 ? _v : _u;\n\t\t\tconst s2 = i2 < 2 ? headRadius : -headRadius;\n\t\t\tthis._segment(\n\t\t\t\tto.x,\n\t\t\t\tto.y,\n\t\t\t\tto.z,\n\t\t\t\t_head.x + t.x * s2,\n\t\t\t\t_head.y + t.y * s2,\n\t\t\t\t_head.z + t.z * s2\n\t\t\t);\n\t\t}\n\t}\n\taxes(matrix2, size) {\n\t\tthis._begin(3 * 2);\n\t\tconst d = matrix2.data;\n\t\tconst ox = d[12], oy = d[13], oz = d[14];\n\t\tfor (let i2 = 0; i2 < 3; i2++) {\n\t\t\tconst c2 = i2 * 4;\n\t\t\t_color.set(i2 === 0 ? 1 : 0, i2 === 1 ? 1 : 0, i2 === 2 ? 1 : 0, 1);\n\t\t\tthis._vertex(ox, oy, oz, _color);\n\t\t\tthis._vertex(\n\t\t\t\tox + d[c2] * size,\n\t\t\t\toy + d[c2 + 1] * size,\n\t\t\t\toz + d[c2 + 2] * size,\n\t\t\t\t_color\n\t\t\t);\n\t\t}\n\t}\n\tfrustum(source) {\n\t\tconst camera = source;\n\t\tif (camera.projectionMatrix) {\n\t\t\tconst projection = _proj.copy(camera.projectionMatrix);\n\t\t\tcamera.calculateProjection?.(projection, VIEW_CENTER);\n\t\t\tif (camera.calculateTransform) {\n\t\t\t\tcamera.calculateTransform(_view, VIEW_CENTER);\n\t\t\t} else {\n\t\t\t\tconst node = camera.entity;\n\t\t\t\t_view.setTRS(node.getPosition(), node.getRotation(), Vec3.ONE);\n\t\t\t}\n\t\t\t_view.invert();\n\t\t\t_mat2.mul2(projection, _view);\n\t\t} else {\n\t\t\t_mat2.copy(source);\n\t\t}\n\t\t_mat2.invert();\n\t\tthis._begin(12 * 2);\n\t\tconst d = _mat2.data;\n\t\tfor (let i2 = 0; i2 < 8; i2++) {\n\t\t\tconst x3 = NDC_CORNERS[i2 * 3];\n\t\t\tconst y2 = NDC_CORNERS[i2 * 3 + 1];\n\t\t\tconst z2 = NDC_CORNERS[i2 * 3 + 2];\n\t\t\tconst iw = 1 / (d[3] * x3 + d[7] * y2 + d[11] * z2 + d[15]);\n\t\t\t_corners[i2].set(\n\t\t\t\t(d[0] * x3 + d[4] * y2 + d[8] * z2 + d[12]) * iw,\n\t\t\t\t(d[1] * x3 + d[5] * y2 + d[9] * z2 + d[13]) * iw,\n\t\t\t\t(d[2] * x3 + d[6] * y2 + d[10] * z2 + d[14]) * iw\n\t\t\t);\n\t\t}\n\t\tfor (let i2 = 0; i2 < FRUSTUM_EDGES.length; i2 += 2) {\n\t\t\tconst a = _corners[FRUSTUM_EDGES[i2]];\n\t\t\tconst b = _corners[FRUSTUM_EDGES[i2 + 1]];\n\t\t\tthis._segment(a.x, a.y, a.z, b.x, b.y, b.z);\n\t\t}\n\t}\n\tlight(light, size = 1) {\n\t\tconst entity = light.entity;\n\t\tconst position5 = entity.getPosition();\n\t\tconst direction = _lightDir.copy(entity.up).mulScalar(-1);\n\t\tconst outer = this.color;\n\t\tthis.color = light.color;\n\t\tswitch (light.type) {\n\t\t\tcase \"omni\":\n\t\t\t\tthis.sphere(position5, light.range);\n\t\t\t\tbreak;\n\t\t\tcase \"spot\":\n\t\t\t\tthis.cone(position5, direction, light.outerConeAngle, light.range);\n\t\t\t\tbreak;\n\t\t\tcase \"directional\":\n\t\t\t\t_pos.copy(direction).mulScalar(size).add(position5);\n\t\t\t\tthis.arrow(position5, _pos);\n\t\t\t\tbreak;\n\t\t}\n\t\tthis.color = outer;\n\t}\n};\n\nvar CoreExporter = class {\n\t// eslint-disable-next-line no-useless-constructor\n\tconstructor() {\n\t}\n\ttextureToCanvas(texture, options2 = {}) {\n\t\tconst image = texture.getSource();\n\t\tif (typeof HTMLImageElement !== \"undefined\" && image instanceof HTMLImageElement || typeof HTMLCanvasElement !== \"undefined\" && image instanceof HTMLCanvasElement || typeof OffscreenCanvas !== \"undefined\" && image instanceof OffscreenCanvas || typeof ImageBitmap !== \"undefined\" && image instanceof ImageBitmap) {\n\t\t\tconst { width: width2, height: height2 } = this.calcTextureSize(image.width, image.height, options2.maxTextureSize);\n\t\t\tconst canvas = document.createElement(\"canvas\");\n\t\t\tcanvas.width = width2;\n\t\t\tcanvas.height = height2;\n\t\t\tconst context = canvas.getContext(\"2d\");\n\t\t\tif (context === null) {\n\t\t\t\treturn Promise.resolve(void 0);\n\t\t\t}\n\t\t\tcontext.drawImage(image, 0, 0, canvas.width, canvas.height);\n\t\t\tif (options2.color) {\n\t\t\t\tconst { r, g, b } = options2.color;\n\t\t\t\tconst imagedata = context.getImageData(0, 0, width2, height2);\n\t\t\t\tconst data2 = imagedata.data;\n\t\t\t\tfor (let i2 = 0; i2 < data2.length; i2 += 4) {\n\t\t\t\t\tdata2[i2 + 0] = data2[i2 + 0] * r;\n\t\t\t\t\tdata2[i2 + 1] = data2[i2 + 1] * g;\n\t\t\t\t\tdata2[i2 + 2] = data2[i2 + 2] * b;\n\t\t\t\t}\n\t\t\t\tcontext.putImageData(imagedata, 0, 0);\n\t\t\t}\n\t\t\treturn Promise.resolve(canvas);\n\t\t}\n\t\tconst device = texture.device;\n\t\tconst { width, height } = this.calcTextureSize(texture.width, texture.height, options2.maxTextureSize);\n\t\tconst format = isCompressedPixelFormat(texture.format) ? PIXELFORMAT_RGBA8 : texture.format;\n\t\tconst dstTexture = new Texture(device, {\n\t\t\tname: \"ExtractedTexture\",\n\t\t\twidth,\n\t\t\theight,\n\t\t\tformat,\n\t\t\tcubemap: false,\n\t\t\tmipmaps: false,\n\t\t\tminFilter: FILTER_LINEAR,\n\t\t\tmagFilter: FILTER_LINEAR,\n\t\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE\n\t\t});\n\t\tconst renderTarget = new RenderTarget({\n\t\t\tcolorBuffer: dstTexture,\n\t\t\tdepth: false\n\t\t});\n\t\tconst shader = ShaderUtils.createShader(device, {\n\t\t\tuniqueName: \"ShaderCoreExporterBlit\",\n\t\t\tattributes: { vertex_position: SEMANTIC_POSITION },\n\t\t\tvertexChunk: \"fullscreenQuadVS\",\n\t\t\tfragmentChunk: \"outputTex2DPS\"\n\t\t});\n\t\tlet released = false;\n\t\tconst release = () => {\n\t\t\tif (released) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\treleased = true;\n\t\t\tdevice.off(\"destroy\", release);\n\t\t\tdstTexture.destroy();\n\t\t\trenderTarget.destroy();\n\t\t};\n\t\tdevice.on(\"destroy\", release);\n\t\tdevice.scope.resolve(\"source\").setValue(texture);\n\t\tdevice.setBlendState(BlendState.NOBLEND);\n\t\tdrawQuadWithShader(device, renderTarget, shader);\n\t\treturn dstTexture.read(0, 0, width, height, {\n\t\t\trenderTarget,\n\t\t\timmediate: true\n\t\t}).finally(release).then((textureData2) => {\n\t\t\tconst pixels = new Uint8ClampedArray(width * height * 4);\n\t\t\tpixels.set(textureData2);\n\t\t\tconst newImage = new ImageData(pixels, width, height);\n\t\t\tconst canvas = document.createElement(\"canvas\");\n\t\t\tcanvas.width = width;\n\t\t\tcanvas.height = height;\n\t\t\tconst newContext = canvas.getContext(\"2d\");\n\t\t\tif (!newContext) {\n\t\t\t\treturn Promise.resolve(void 0);\n\t\t\t}\n\t\t\tnewContext.putImageData(newImage, 0, 0);\n\t\t\treturn Promise.resolve(canvas);\n\t\t});\n\t}\n\tcalcTextureSize(width, height, maxTextureSize) {\n\t\tif (maxTextureSize) {\n\t\t\tconst scale2 = Math.min(maxTextureSize / Math.max(width, height), 1);\n\t\t\twidth = Math.round(width * scale2);\n\t\t\theight = Math.round(height * scale2);\n\t\t}\n\t\treturn { width, height };\n\t}\n};\n\nvar u8 = Uint8Array;\nvar u16 = Uint16Array;\nvar i32 = Int32Array;\nvar fleb = new u8([\n\t0,\n\t0,\n\t0,\n\t0,\n\t0,\n\t0,\n\t0,\n\t0,\n\t1,\n\t1,\n\t1,\n\t1,\n\t2,\n\t2,\n\t2,\n\t2,\n\t3,\n\t3,\n\t3,\n\t3,\n\t4,\n\t4,\n\t4,\n\t4,\n\t5,\n\t5,\n\t5,\n\t5,\n\t0,\n\t/* unused */\n\t0,\n\t0,\n\t/* impossible */\n\t0\n]);\nvar fdeb = new u8([\n\t0,\n\t0,\n\t0,\n\t0,\n\t1,\n\t1,\n\t2,\n\t2,\n\t3,\n\t3,\n\t4,\n\t4,\n\t5,\n\t5,\n\t6,\n\t6,\n\t7,\n\t7,\n\t8,\n\t8,\n\t9,\n\t9,\n\t10,\n\t10,\n\t11,\n\t11,\n\t12,\n\t12,\n\t13,\n\t13,\n\t/* unused */\n\t0,\n\t0\n]);\nvar clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\nvar freb = function(eb, start) {\n\tvar b = new u16(31);\n\tfor (var i2 = 0; i2 < 31; ++i2) {\n\t\tb[i2] = start += 1 << eb[i2 - 1];\n\t}\n\tvar r = new i32(b[30]);\n\tfor (var i2 = 1; i2 < 30; ++i2) {\n\t\tfor (var j = b[i2]; j < b[i2 + 1]; ++j) {\n\t\t\tr[j] = j - b[i2] << 5 | i2;\n\t\t}\n\t}\n\treturn { b, r };\n};\nvar _a = freb(fleb, 2);\nvar fl = _a.b;\nvar revfl = _a.r;\nfl[28] = 258, revfl[258] = 28;\nvar _b = freb(fdeb, 0);\nvar fd = _b.b;\nvar revfd = _b.r;\nvar rev = new u16(32768);\nfor (i = 0; i < 32768; ++i) {\n\tx2 = (i & 43690) >> 1 | (i & 21845) << 1;\n\tx2 = (x2 & 52428) >> 2 | (x2 & 13107) << 2;\n\tx2 = (x2 & 61680) >> 4 | (x2 & 3855) << 4;\n\trev[i] = ((x2 & 65280) >> 8 | (x2 & 255) << 8) >> 1;\n}\nvar x2;\nvar i;\nvar hMap = (function(cd, mb, r) {\n\tvar s2 = cd.length;\n\tvar i2 = 0;\n\tvar l = new u16(mb);\n\tfor (; i2 < s2; ++i2) {\n\t\tif (cd[i2])\n\t\t\t++l[cd[i2] - 1];\n\t}\n\tvar le = new u16(mb);\n\tfor (i2 = 1; i2 < mb; ++i2) {\n\t\tle[i2] = le[i2 - 1] + l[i2 - 1] << 1;\n\t}\n\tvar co;\n\tif (r) {\n\t\tco = new u16(1 << mb);\n\t\tvar rvb = 15 - mb;\n\t\tfor (i2 = 0; i2 < s2; ++i2) {\n\t\t\tif (cd[i2]) {\n\t\t\t\tvar sv = i2 << 4 | cd[i2];\n\t\t\t\tvar r_1 = mb - cd[i2];\n\t\t\t\tvar v6 = le[cd[i2] - 1]++ << r_1;\n\t\t\t\tfor (var m = v6 | (1 << r_1) - 1; v6 <= m; ++v6) {\n\t\t\t\t\tco[rev[v6] >> rvb] = sv;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} else {\n\t\tco = new u16(s2);\n\t\tfor (i2 = 0; i2 < s2; ++i2) {\n\t\t\tif (cd[i2]) {\n\t\t\t\tco[i2] = rev[le[cd[i2] - 1]++] >> 15 - cd[i2];\n\t\t\t}\n\t\t}\n\t}\n\treturn co;\n});\nvar flt = new u8(288);\nfor (i = 0; i < 144; ++i)\n\tflt[i] = 8;\nvar i;\nfor (i = 144; i < 256; ++i)\n\tflt[i] = 9;\nvar i;\nfor (i = 256; i < 280; ++i)\n\tflt[i] = 7;\nvar i;\nfor (i = 280; i < 288; ++i)\n\tflt[i] = 8;\nvar i;\nvar fdt = new u8(32);\nfor (i = 0; i < 32; ++i)\n\tfdt[i] = 5;\nvar i;\nvar flm = /* @__PURE__ */ hMap(flt, 9, 0);\nvar fdm = /* @__PURE__ */ hMap(fdt, 5, 0);\nvar shft = function(p) {\n\treturn (p + 7) / 8 | 0;\n};\nvar slc = function(v6, s2, e) {\n\tif (s2 == null || s2 < 0)\n\t\ts2 = 0;\n\tif (e == null || e > v6.length)\n\t\te = v6.length;\n\treturn new u8(v6.subarray(s2, e));\n};\nvar ec = [\n\t\"unexpected EOF\",\n\t\"invalid block type\",\n\t\"invalid length/literal\",\n\t\"invalid distance\",\n\t\"stream finished\",\n\t\"no stream handler\",\n\t,\n\t// determined by compression function\n\t\"no callback\",\n\t\"invalid UTF-8 data\",\n\t\"extra field too long\",\n\t\"date not in range 1980-2099\",\n\t\"filename too long\",\n\t\"stream finishing\",\n\t\"invalid zip data\"\n\t// determined by unknown compression method\n];\nvar err = function(ind, msg, nt) {\n\tvar e = new Error(msg || ec[ind]);\n\te.code = ind;\n\tif (Error.captureStackTrace)\n\t\tError.captureStackTrace(e, err);\n\tif (!nt)\n\t\tthrow e;\n\treturn e;\n};\nvar wbits = function(d, p, v6) {\n\tv6 <<= p & 7;\n\tvar o = p / 8 | 0;\n\td[o] |= v6;\n\td[o + 1] |= v6 >> 8;\n};\nvar wbits16 = function(d, p, v6) {\n\tv6 <<= p & 7;\n\tvar o = p / 8 | 0;\n\td[o] |= v6;\n\td[o + 1] |= v6 >> 8;\n\td[o + 2] |= v6 >> 16;\n};\nvar hTree = function(d, mb) {\n\tvar t = [];\n\tfor (var i2 = 0; i2 < d.length; ++i2) {\n\t\tif (d[i2])\n\t\t\tt.push({ s: i2, f: d[i2] });\n\t}\n\tvar s2 = t.length;\n\tvar t2 = t.slice();\n\tif (!s2)\n\t\treturn { t: et, l: 0 };\n\tif (s2 == 1) {\n\t\tvar v6 = new u8(t[0].s + 1);\n\t\tv6[t[0].s] = 1;\n\t\treturn { t: v6, l: 1 };\n\t}\n\tt.sort(function(a, b) {\n\t\treturn a.f - b.f;\n\t});\n\tt.push({ s: -1, f: 25001 });\n\tvar l = t[0], r = t[1], i0 = 0, i1 = 1, i22 = 2;\n\tt[0] = { s: -1, f: l.f + r.f, l, r };\n\twhile (i1 != s2 - 1) {\n\t\tl = t[t[i0].f < t[i22].f ? i0++ : i22++];\n\t\tr = t[i0 != i1 && t[i0].f < t[i22].f ? i0++ : i22++];\n\t\tt[i1++] = { s: -1, f: l.f + r.f, l, r };\n\t}\n\tvar maxSym = t2[0].s;\n\tfor (var i2 = 1; i2 < s2; ++i2) {\n\t\tif (t2[i2].s > maxSym)\n\t\t\tmaxSym = t2[i2].s;\n\t}\n\tvar tr = new u16(maxSym + 1);\n\tvar mbt = ln(t[i1 - 1], tr, 0);\n\tif (mbt > mb) {\n\t\tvar i2 = 0, dt = 0;\n\t\tvar lft = mbt - mb, cst = 1 << lft;\n\t\tt2.sort(function(a, b) {\n\t\t\treturn tr[b.s] - tr[a.s] || a.f - b.f;\n\t\t});\n\t\tfor (; i2 < s2; ++i2) {\n\t\t\tvar i2_1 = t2[i2].s;\n\t\t\tif (tr[i2_1] > mb) {\n\t\t\t\tdt += cst - (1 << mbt - tr[i2_1]);\n\t\t\t\ttr[i2_1] = mb;\n\t\t\t} else\n\t\t\t\tbreak;\n\t\t}\n\t\tdt >>= lft;\n\t\twhile (dt > 0) {\n\t\t\tvar i2_2 = t2[i2].s;\n\t\t\tif (tr[i2_2] < mb)\n\t\t\t\tdt -= 1 << mb - tr[i2_2]++ - 1;\n\t\t\telse\n\t\t\t\t++i2;\n\t\t}\n\t\tfor (; i2 >= 0 && dt; --i2) {\n\t\t\tvar i2_3 = t2[i2].s;\n\t\t\tif (tr[i2_3] == mb) {\n\t\t\t\t--tr[i2_3];\n\t\t\t\t++dt;\n\t\t\t}\n\t\t}\n\t\tmbt = mb;\n\t}\n\treturn { t: new u8(tr), l: mbt };\n};\nvar ln = function(n, l, d) {\n\treturn n.s == -1 ? Math.max(ln(n.l, l, d + 1), ln(n.r, l, d + 1)) : l[n.s] = d;\n};\nvar lc = function(c2) {\n\tvar s2 = c2.length;\n\twhile (s2 && !c2[--s2])\n\t\t;\n\tvar cl = new u16(++s2);\n\tvar cli = 0, cln = c2[0], cls = 1;\n\tvar w = function(v6) {\n\t\tcl[cli++] = v6;\n\t};\n\tfor (var i2 = 1; i2 <= s2; ++i2) {\n\t\tif (c2[i2] == cln && i2 != s2)\n\t\t\t++cls;\n\t\telse {\n\t\t\tif (!cln && cls > 2) {\n\t\t\t\tfor (; cls > 138; cls -= 138)\n\t\t\t\t\tw(32754);\n\t\t\t\tif (cls > 2) {\n\t\t\t\t\tw(cls > 10 ? cls - 11 << 5 | 28690 : cls - 3 << 5 | 12305);\n\t\t\t\t\tcls = 0;\n\t\t\t\t}\n\t\t\t} else if (cls > 3) {\n\t\t\t\tw(cln), --cls;\n\t\t\t\tfor (; cls > 6; cls -= 6)\n\t\t\t\t\tw(8304);\n\t\t\t\tif (cls > 2)\n\t\t\t\t\tw(cls - 3 << 5 | 8208), cls = 0;\n\t\t\t}\n\t\t\twhile (cls--)\n\t\t\t\tw(cln);\n\t\t\tcls = 1;\n\t\t\tcln = c2[i2];\n\t\t}\n\t}\n\treturn { c: cl.subarray(0, cli), n: s2 };\n};\nvar clen = function(cf, cl) {\n\tvar l = 0;\n\tfor (var i2 = 0; i2 < cl.length; ++i2)\n\t\tl += cf[i2] * cl[i2];\n\treturn l;\n};\nvar wfblk = function(out, pos, dat) {\n\tvar s2 = dat.length;\n\tvar o = shft(pos + 2);\n\tout[o] = s2 & 255;\n\tout[o + 1] = s2 >> 8;\n\tout[o + 2] = out[o] ^ 255;\n\tout[o + 3] = out[o + 1] ^ 255;\n\tfor (var i2 = 0; i2 < s2; ++i2)\n\t\tout[o + i2 + 4] = dat[i2];\n\treturn (o + 4 + s2) * 8;\n};\nvar wblk = function(dat, out, final, syms, lf, df, eb, li, bs, bl, p) {\n\twbits(out, p++, final);\n\t++lf[256];\n\tvar _a2 = hTree(lf, 15), dlt = _a2.t, mlb = _a2.l;\n\tvar _b2 = hTree(df, 15), ddt = _b2.t, mdb = _b2.l;\n\tvar _c = lc(dlt), lclt = _c.c, nlc = _c.n;\n\tvar _d = lc(ddt), lcdt = _d.c, ndc = _d.n;\n\tvar lcfreq = new u16(19);\n\tfor (var i2 = 0; i2 < lclt.length; ++i2)\n\t\t++lcfreq[lclt[i2] & 31];\n\tfor (var i2 = 0; i2 < lcdt.length; ++i2)\n\t\t++lcfreq[lcdt[i2] & 31];\n\tvar _e = hTree(lcfreq, 7), lct = _e.t, mlcb = _e.l;\n\tvar nlcc = 19;\n\tfor (; nlcc > 4 && !lct[clim[nlcc - 1]]; --nlcc)\n\t\t;\n\tvar flen = bl + 5 << 3;\n\tvar ftlen = clen(lf, flt) + clen(df, fdt) + eb;\n\tvar dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) + 2 * lcfreq[16] + 3 * lcfreq[17] + 7 * lcfreq[18];\n\tif (bs >= 0 && flen <= ftlen && flen <= dtlen)\n\t\treturn wfblk(out, p, dat.subarray(bs, bs + bl));\n\tvar lm, ll, dm, dl;\n\twbits(out, p, 1 + (dtlen < ftlen)), p += 2;\n\tif (dtlen < ftlen) {\n\t\tlm = hMap(dlt, mlb, 0), ll = dlt, dm = hMap(ddt, mdb, 0), dl = ddt;\n\t\tvar llm = hMap(lct, mlcb, 0);\n\t\twbits(out, p, nlc - 257);\n\t\twbits(out, p + 5, ndc - 1);\n\t\twbits(out, p + 10, nlcc - 4);\n\t\tp += 14;\n\t\tfor (var i2 = 0; i2 < nlcc; ++i2)\n\t\t\twbits(out, p + 3 * i2, lct[clim[i2]]);\n\t\tp += 3 * nlcc;\n\t\tvar lcts = [lclt, lcdt];\n\t\tfor (var it = 0; it < 2; ++it) {\n\t\t\tvar clct = lcts[it];\n\t\t\tfor (var i2 = 0; i2 < clct.length; ++i2) {\n\t\t\t\tvar len = clct[i2] & 31;\n\t\t\t\twbits(out, p, llm[len]), p += lct[len];\n\t\t\t\tif (len > 15)\n\t\t\t\t\twbits(out, p, clct[i2] >> 5 & 127), p += clct[i2] >> 12;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tlm = flm, ll = flt, dm = fdm, dl = fdt;\n\t}\n\tfor (var i2 = 0; i2 < li; ++i2) {\n\t\tvar sym = syms[i2];\n\t\tif (sym > 255) {\n\t\t\tvar len = sym >> 18 & 31;\n\t\t\twbits16(out, p, lm[len + 257]), p += ll[len + 257];\n\t\t\tif (len > 7)\n\t\t\t\twbits(out, p, sym >> 23 & 31), p += fleb[len];\n\t\t\tvar dst = sym & 31;\n\t\t\twbits16(out, p, dm[dst]), p += dl[dst];\n\t\t\tif (dst > 3)\n\t\t\t\twbits16(out, p, sym >> 5 & 8191), p += fdeb[dst];\n\t\t} else {\n\t\t\twbits16(out, p, lm[sym]), p += ll[sym];\n\t\t}\n\t}\n\twbits16(out, p, lm[256]);\n\treturn p + ll[256];\n};\nvar deo = /* @__PURE__ */ new i32([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]);\nvar et = /* @__PURE__ */ new u8(0);\nvar dflt = function(dat, lvl, plvl, pre, post, st) {\n\tvar s2 = st.z || dat.length;\n\tvar o = new u8(pre + s2 + 5 * (1 + Math.ceil(s2 / 7e3)) + post);\n\tvar w = o.subarray(pre, o.length - post);\n\tvar lst = st.l;\n\tvar pos = (st.r || 0) & 7;\n\tif (lvl) {\n\t\tif (pos)\n\t\t\tw[0] = st.r >> 3;\n\t\tvar opt = deo[lvl - 1];\n\t\tvar n = opt >> 13, c2 = opt & 8191;\n\t\tvar msk_1 = (1 << plvl) - 1;\n\t\tvar prev = st.p || new u16(32768), head = st.h || new u16(msk_1 + 1);\n\t\tvar bs1_1 = Math.ceil(plvl / 3), bs2_1 = 2 * bs1_1;\n\t\tvar hsh = function(i3) {\n\t\t\treturn (dat[i3] ^ dat[i3 + 1] << bs1_1 ^ dat[i3 + 2] << bs2_1) & msk_1;\n\t\t};\n\t\tvar syms = new i32(25e3);\n\t\tvar lf = new u16(288), df = new u16(32);\n\t\tvar lc_1 = 0, eb = 0, i2 = st.i || 0, li = 0, wi = st.w || 0, bs = 0;\n\t\tfor (; i2 + 2 < s2; ++i2) {\n\t\t\tvar hv = hsh(i2);\n\t\t\tvar imod = i2 & 32767, pimod = head[hv];\n\t\t\tprev[imod] = pimod;\n\t\t\thead[hv] = imod;\n\t\t\tif (wi <= i2) {\n\t\t\t\tvar rem = s2 - i2;\n\t\t\t\tif ((lc_1 > 7e3 || li > 24576) && (rem > 423 || !lst)) {\n\t\t\t\t\tpos = wblk(dat, w, 0, syms, lf, df, eb, li, bs, i2 - bs, pos);\n\t\t\t\t\tli = lc_1 = eb = 0, bs = i2;\n\t\t\t\t\tfor (var j = 0; j < 286; ++j)\n\t\t\t\t\t\tlf[j] = 0;\n\t\t\t\t\tfor (var j = 0; j < 30; ++j)\n\t\t\t\t\t\tdf[j] = 0;\n\t\t\t\t}\n\t\t\t\tvar l = 2, d = 0, ch_1 = c2, dif = imod - pimod & 32767;\n\t\t\t\tif (rem > 2 && hv == hsh(i2 - dif)) {\n\t\t\t\t\tvar maxn = Math.min(n, rem) - 1;\n\t\t\t\t\tvar maxd = Math.min(32767, i2);\n\t\t\t\t\tvar ml = Math.min(258, rem);\n\t\t\t\t\twhile (dif <= maxd && --ch_1 && imod != pimod) {\n\t\t\t\t\t\tif (dat[i2 + l] == dat[i2 + l - dif]) {\n\t\t\t\t\t\t\tvar nl = 0;\n\t\t\t\t\t\t\tfor (; nl < ml && dat[i2 + nl] == dat[i2 + nl - dif]; ++nl)\n\t\t\t\t\t\t\t\t;\n\t\t\t\t\t\t\tif (nl > l) {\n\t\t\t\t\t\t\t\tl = nl, d = dif;\n\t\t\t\t\t\t\t\tif (nl > maxn)\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tvar mmd = Math.min(dif, nl - 2);\n\t\t\t\t\t\t\t\tvar md = 0;\n\t\t\t\t\t\t\t\tfor (var j = 0; j < mmd; ++j) {\n\t\t\t\t\t\t\t\t\tvar ti = i2 - dif + j & 32767;\n\t\t\t\t\t\t\t\t\tvar pti = prev[ti];\n\t\t\t\t\t\t\t\t\tvar cd = ti - pti & 32767;\n\t\t\t\t\t\t\t\t\tif (cd > md)\n\t\t\t\t\t\t\t\t\t\tmd = cd, pimod = ti;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\timod = pimod, pimod = prev[imod];\n\t\t\t\t\t\tdif += imod - pimod & 32767;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (d) {\n\t\t\t\t\tsyms[li++] = 268435456 | revfl[l] << 18 | revfd[d];\n\t\t\t\t\tvar lin = revfl[l] & 31, din = revfd[d] & 31;\n\t\t\t\t\teb += fleb[lin] + fdeb[din];\n\t\t\t\t\t++lf[257 + lin];\n\t\t\t\t\t++df[din];\n\t\t\t\t\twi = i2 + l;\n\t\t\t\t\t++lc_1;\n\t\t\t\t} else {\n\t\t\t\t\tsyms[li++] = dat[i2];\n\t\t\t\t\t++lf[dat[i2]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor (i2 = Math.max(i2, wi); i2 < s2; ++i2) {\n\t\t\tsyms[li++] = dat[i2];\n\t\t\t++lf[dat[i2]];\n\t\t}\n\t\tpos = wblk(dat, w, lst, syms, lf, df, eb, li, bs, i2 - bs, pos);\n\t\tif (!lst) {\n\t\t\tst.r = pos & 7 | w[pos / 8 | 0] << 3;\n\t\t\tpos -= 7;\n\t\t\tst.h = head, st.p = prev, st.i = i2, st.w = wi;\n\t\t}\n\t} else {\n\t\tfor (var i2 = st.w || 0; i2 < s2 + lst; i2 += 65535) {\n\t\t\tvar e = i2 + 65535;\n\t\t\tif (e >= s2) {\n\t\t\t\tw[pos / 8 | 0] = lst;\n\t\t\t\te = s2;\n\t\t\t}\n\t\t\tpos = wfblk(w, pos + 1, dat.subarray(i2, e));\n\t\t}\n\t\tst.i = s2;\n\t}\n\treturn slc(o, 0, pre + shft(pos) + post);\n};\nvar crct = /* @__PURE__ */ (function() {\n\tvar t = new Int32Array(256);\n\tfor (var i2 = 0; i2 < 256; ++i2) {\n\t\tvar c2 = i2, k = 9;\n\t\twhile (--k)\n\t\t\tc2 = (c2 & 1 && -306674912) ^ c2 >>> 1;\n\t\tt[i2] = c2;\n\t}\n\treturn t;\n})();\nvar crc = function() {\n\tvar c2 = -1;\n\treturn {\n\t\tp: function(d) {\n\t\t\tvar cr = c2;\n\t\t\tfor (var i2 = 0; i2 < d.length; ++i2)\n\t\t\t\tcr = crct[cr & 255 ^ d[i2]] ^ cr >>> 8;\n\t\t\tc2 = cr;\n\t\t},\n\t\td: function() {\n\t\t\treturn ~c2;\n\t\t}\n\t};\n};\nvar dopt = function(dat, opt, pre, post, st) {\n\tif (!st) {\n\t\tst = { l: 1 };\n\t\tif (opt.dictionary) {\n\t\t\tvar dict = opt.dictionary.subarray(-32768);\n\t\t\tvar newDat = new u8(dict.length + dat.length);\n\t\t\tnewDat.set(dict);\n\t\t\tnewDat.set(dat, dict.length);\n\t\t\tdat = newDat;\n\t\t\tst.w = dict.length;\n\t\t}\n\t}\n\treturn dflt(dat, opt.level == null ? 6 : opt.level, opt.mem == null ? st.l ? Math.ceil(Math.max(8, Math.min(13, Math.log(dat.length))) * 1.5) : 20 : 12 + opt.mem, pre, post, st);\n};\nvar mrg = function(a, b) {\n\tvar o = {};\n\tfor (var k in a)\n\t\to[k] = a[k];\n\tfor (var k in b)\n\t\to[k] = b[k];\n\treturn o;\n};\nvar wbytes = function(d, b, v6) {\n\tfor (; v6; ++b)\n\t\td[b] = v6, v6 >>>= 8;\n};\nfunction deflateSync(data2, opts) {\n\treturn dopt(data2, opts || {}, 0, 0);\n}\nvar fltn = function(d, p, t, o) {\n\tfor (var k in d) {\n\t\tvar val = d[k], n = p + k, op = o;\n\t\tif (Array.isArray(val))\n\t\t\top = mrg(o, val[1]), val = val[0];\n\t\tif (ArrayBuffer.isView(val))\n\t\t\tt[n] = [val, op];\n\t\telse {\n\t\t\tt[n += \"/\"] = [new u8(0), op];\n\t\t\tfltn(val, n, t, o);\n\t\t}\n\t}\n};\nvar te = typeof TextEncoder != \"undefined\" && /* @__PURE__ */ new TextEncoder();\nvar td = typeof TextDecoder != \"undefined\" && /* @__PURE__ */ new TextDecoder();\nvar tds = 0;\ntry {\n\ttd.decode(et, { stream: true });\n\ttds = 1;\n} catch (e) {\n}\nfunction strToU8(str, latin1) {\n\tif (latin1) {\n\t\tvar ar_1 = new u8(str.length);\n\t\tfor (var i2 = 0; i2 < str.length; ++i2)\n\t\t\tar_1[i2] = str.charCodeAt(i2);\n\t\treturn ar_1;\n\t}\n\tif (te)\n\t\treturn te.encode(str);\n\tvar l = str.length;\n\tvar ar = new u8(str.length + (str.length >> 1));\n\tvar ai = 0;\n\tvar w = function(v6) {\n\t\tar[ai++] = v6;\n\t};\n\tfor (var i2 = 0; i2 < l; ++i2) {\n\t\tif (ai + 5 > ar.length) {\n\t\t\tvar n = new u8(ai + 8 + (l - i2 << 1));\n\t\t\tn.set(ar);\n\t\t\tar = n;\n\t\t}\n\t\tvar c2 = str.charCodeAt(i2);\n\t\tif (c2 < 128 || latin1)\n\t\t\tw(c2);\n\t\telse if (c2 < 2048)\n\t\t\tw(192 | c2 >> 6), w(128 | c2 & 63);\n\t\telse if (c2 > 55295 && c2 < 57344)\n\t\t\tc2 = 65536 + (c2 & 1023 << 10) | str.charCodeAt(++i2) & 1023, w(240 | c2 >> 18), w(128 | c2 >> 12 & 63), w(128 | c2 >> 6 & 63), w(128 | c2 & 63);\n\t\telse\n\t\t\tw(224 | c2 >> 12), w(128 | c2 >> 6 & 63), w(128 | c2 & 63);\n\t}\n\treturn slc(ar, 0, ai);\n}\nvar exfl = function(ex) {\n\tvar le = 0;\n\tif (ex) {\n\t\tfor (var k in ex) {\n\t\t\tvar l = ex[k].length;\n\t\t\tif (l > 65535)\n\t\t\t\terr(9);\n\t\t\tle += l + 4;\n\t\t}\n\t}\n\treturn le;\n};\nvar wzh = function(d, b, f, fn, u, c2, ce, co) {\n\tvar fl2 = fn.length, ex = f.extra, col = co && co.length;\n\tvar exl = exfl(ex);\n\twbytes(d, b, ce != null ? 33639248 : 67324752), b += 4;\n\tif (ce != null)\n\t\td[b++] = 20, d[b++] = f.os;\n\td[b] = 20, b += 2;\n\td[b++] = f.flag << 1 | (c2 < 0 && 8), d[b++] = u && 8;\n\td[b++] = f.compression & 255, d[b++] = f.compression >> 8;\n\tvar dt = new Date(f.mtime == null ? Date.now() : f.mtime), y2 = dt.getFullYear() - 1980;\n\tif (y2 < 0 || y2 > 119)\n\t\terr(10);\n\twbytes(d, b, y2 << 25 | dt.getMonth() + 1 << 21 | dt.getDate() << 16 | dt.getHours() << 11 | dt.getMinutes() << 5 | dt.getSeconds() >> 1), b += 4;\n\tif (c2 != -1) {\n\t\twbytes(d, b, f.crc);\n\t\twbytes(d, b + 4, c2 < 0 ? -c2 - 2 : c2);\n\t\twbytes(d, b + 8, f.size);\n\t}\n\twbytes(d, b + 12, fl2);\n\twbytes(d, b + 14, exl), b += 16;\n\tif (ce != null) {\n\t\twbytes(d, b, col);\n\t\twbytes(d, b + 6, f.attrs);\n\t\twbytes(d, b + 10, ce), b += 14;\n\t}\n\td.set(fn, b);\n\tb += fl2;\n\tif (exl) {\n\t\tfor (var k in ex) {\n\t\t\tvar exf = ex[k], l = exf.length;\n\t\t\twbytes(d, b, +k);\n\t\t\twbytes(d, b + 2, l);\n\t\t\td.set(exf, b + 4), b += 4 + l;\n\t\t}\n\t}\n\tif (col)\n\t\td.set(co, b), b += col;\n\treturn b;\n};\nvar wzf = function(o, b, c2, d, e) {\n\twbytes(o, b, 101010256);\n\twbytes(o, b + 8, c2);\n\twbytes(o, b + 10, c2);\n\twbytes(o, b + 12, d);\n\twbytes(o, b + 16, e);\n};\nfunction zipSync(data2, opts) {\n\tif (!opts)\n\t\topts = {};\n\tvar r = {};\n\tvar files = [];\n\tfltn(data2, \"\", r, opts);\n\tvar o = 0;\n\tvar tot = 0;\n\tfor (var fn in r) {\n\t\tvar _a2 = r[fn], file = _a2[0], p = _a2[1];\n\t\tvar compression = p.level == 0 ? 0 : 8;\n\t\tvar f = strToU8(fn), s2 = f.length;\n\t\tvar com = p.comment, m = com && strToU8(com), ms = m && m.length;\n\t\tvar exl = exfl(p.extra);\n\t\tif (s2 > 65535)\n\t\t\terr(11);\n\t\tvar d = compression ? deflateSync(file, p) : file, l = d.length;\n\t\tvar c2 = crc();\n\t\tc2.p(file);\n\t\tfiles.push(mrg(p, {\n\t\t\tsize: file.length,\n\t\t\tcrc: c2.d(),\n\t\t\tc: d,\n\t\t\tf,\n\t\t\tm,\n\t\t\tu: s2 != fn.length || m && com.length != ms,\n\t\t\to,\n\t\t\tcompression\n\t\t}));\n\t\to += 30 + s2 + exl + l;\n\t\ttot += 76 + 2 * (s2 + exl) + (ms || 0) + l;\n\t}\n\tvar out = new u8(tot + 22), oe = o, cdl = tot - o;\n\tfor (var i2 = 0; i2 < files.length; ++i2) {\n\t\tvar f = files[i2];\n\t\twzh(out, f.o, f, f.f, f.u, f.c.length);\n\t\tvar badd = 30 + f.f.length + exfl(f.extra);\n\t\tout.set(f.c, f.o + badd);\n\t\twzh(out, o, f, f.f, f.u, f.c.length, f.o, f.m), o += 16 + badd + (f.m ? f.m.length : 0);\n\t}\n\twzf(out, o, files.length, cdl, oe);\n\treturn out;\n}\n\nvar ROOT_FILE_NAME = \"root\";\nvar header = `#usda 1.0\n(\n\t\tcustomLayerData = {\n\t\t\t\tstring creator = \"PlayCanvas UsdzExporter\"\n\t\t}\n\t\tmetersPerUnit = 1\n\t\tupAxis = \"Y\"\n)\n`;\nvar materialListTemplate = (materials) => `\ndef \"Materials\"\n{\n\t\t${materials.join(\"\\n\")}\n}\n`;\nvar meshTemplate = (faceVertexCounts, indices, normals, positions, uv0, uv1) => `\ndef \"Mesh\"\n{\n\t\tdef Mesh \"Mesh\"\n\t\t{\n\t\t\t\tint[] faceVertexCounts = [${faceVertexCounts}]\n\t\t\t\tint[] faceVertexIndices = [${indices}]\n\t\t\t\tnormal3f[] normals = [${normals}] (\n\t\t\t\t\t\tinterpolation = \"vertex\"\n\t\t\t\t)\n\t\t\t\tpoint3f[] points = [${positions}]\n\t\t\t\ttexCoord2f[] primvars:st = [${uv0}] (\n\t\t\t\t\t\tinterpolation = \"vertex\"\n\t\t\t\t)\n\t\t\t\ttexCoord2f[] primvars:st1 = [${uv1}] (\n\t\t\t\t\t\tinterpolation = \"vertex\"\n\t\t\t\t)\n\t\t\t\tuniform token subdivisionScheme = \"none\"\n\t\t}\n}\n`;\nvar meshInstanceTemplate = (nodeName, meshRefPath, worldMatrix, materialRefPath) => (\n\t/* usd */\n\t`\ndef Xform \"${nodeName}\" (\n\t\tprepend references = ${meshRefPath}\n)\n{\n\t\tmatrix4d xformOp:transform = ${worldMatrix}\n\t\tuniform token[] xformOpOrder = [\"xformOp:transform\"]\n\n\t\trel material:binding = ${materialRefPath}\n}\n`\n);\nvar materialValueTemplate = (type, name, value) => `                    ${type} inputs:${name} = ${value}`;\nvar UsdzExporter = class extends CoreExporter {\n\tmeshMap;\n\tmaterialMap;\n\tmaterials;\n\ttextureMap;\n\tnodeNames;\n\tfiles;\n\tinit() {\n\t\tthis.meshMap = /* @__PURE__ */ new Map();\n\t\tthis.textureMap = /* @__PURE__ */ new Map();\n\t\tthis.materialMap = /* @__PURE__ */ new Map();\n\t\tthis.materials = [];\n\t\tthis.files = {};\n\t\tthis.nodeNames = /* @__PURE__ */ new Set();\n\t}\n\tdone() {\n\t\tthis.meshMap = null;\n\t\tthis.textureMap = null;\n\t\tthis.materialMap = null;\n\t\tthis.materials = null;\n\t\tthis.files = null;\n\t\tthis.nodeNames = null;\n\t}\n\tbuild(entity, options2 = {}) {\n\t\tthis.init();\n\t\tthis.addFile(null, ROOT_FILE_NAME);\n\t\tconst allMeshInstances = [];\n\t\tif (entity) {\n\t\t\tconst renders = entity.findComponents(\"render\");\n\t\t\trenders.forEach((render) => {\n\t\t\t\tallMeshInstances.push(...render.meshInstances);\n\t\t\t});\n\t\t}\n\t\tlet rootContent = \"\";\n\t\tallMeshInstances.forEach((meshInstance) => {\n\t\t\trootContent += this.buildMeshInstance(meshInstance);\n\t\t});\n\t\trootContent += materialListTemplate(this.materials);\n\t\tthis.addFile(null, ROOT_FILE_NAME, \"\", rootContent);\n\t\tconst textureOptions = {\n\t\t\tmaxTextureSize: options2.maxTextureSize\n\t\t};\n\t\tconst textureArray = Array.from(this.textureMap.keys());\n\t\tconst promises = [];\n\t\tfor (let i2 = 0; i2 < textureArray.length; i2++) {\n\t\t\tconst isRGBA = true;\n\t\t\tconst mimeType = isRGBA ? \"image/png\" : \"image/jpeg\";\n\t\t\tconst texture = textureArray[i2];\n\t\t\tconst texturePromise = this.textureToCanvas(texture, textureOptions).then((canvas) => {\n\t\t\t\tif (canvas) {\n\t\t\t\t\treturn new Promise((resolve2) => canvas.toBlob(resolve2, mimeType, 1)).then(\n\t\t\t\t\t\t(blob) => blob.arrayBuffer()\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tconsole.warn(`Export of texture ${texture.name} is not currently supported.`);\n\t\t\t\treturn new Promise((resolve2) => resolve2(null));\n\t\t\t});\n\t\t\tpromises.push(texturePromise);\n\t\t}\n\t\tconst finalData = Promise.all(promises).then((values) => {\n\t\t\tvalues.forEach((textureArrayBuffer, index) => {\n\t\t\t\tconst texture = textureArray[index];\n\t\t\t\tconst ids3 = this.getTextureFileIds(texture);\n\t\t\t\tthis.files[ids3.fileName] = new Uint8Array(textureArrayBuffer);\n\t\t\t});\n\t\t\tthis.alignFiles();\n\t\t\tconst arraybuffer = zipSync(this.files, { level: 0 });\n\t\t\tthis.done();\n\t\t\treturn arraybuffer;\n\t\t});\n\t\treturn finalData;\n\t}\n\talignFiles() {\n\t\tlet offset3 = 0;\n\t\tfor (const filename in this.files) {\n\t\t\tconst file = this.files[filename];\n\t\t\tconst headerSize = 34 + filename.length;\n\t\t\toffset3 += headerSize;\n\t\t\tconst offsetMod64 = offset3 & 63;\n\t\t\tif (offsetMod64 !== 4) {\n\t\t\t\tconst padLength = 64 - offsetMod64;\n\t\t\t\tconst padding = new Uint8Array(padLength);\n\t\t\t\tthis.files[filename] = [file, { extra: { 12345: padding } }];\n\t\t\t}\n\t\t\toffset3 = file.length;\n\t\t}\n\t}\n\tgetFileIds(category, name, ref, extension = \"usda\") {\n\t\tconst fileName = `${category ? `${category}/` : \"\"}${name}.${extension}`;\n\t\tconst refName = `@./${fileName}@</${ref}>`;\n\t\treturn { name, fileName, refName };\n\t}\n\tgetTextureFileIds(texture) {\n\t\treturn this.getFileIds(\"texture\", `Texture_${texture.id}`, \"Texture\", \"png\");\n\t}\n\taddFile(category, uniqueId, refName = \"\", content = \"\") {\n\t\tlet contentU8 = null;\n\t\tif (content) {\n\t\t\tcontent = `${header}\n${content}`;\n\t\t\tcontentU8 = strToU8(content);\n\t\t}\n\t\tconst ids3 = this.getFileIds(category, uniqueId, refName);\n\t\tthis.files[ids3.fileName] = contentU8;\n\t\treturn ids3.refName;\n\t}\n\tgetMaterialRef(material) {\n\t\tlet materialRef = this.materialMap.get(material);\n\t\tif (!materialRef) {\n\t\t\tmaterialRef = this.buildMaterial(material);\n\t\t\tthis.materialMap.set(material, materialRef);\n\t\t}\n\t\treturn materialRef;\n\t}\n\tgetMeshRef(mesh) {\n\t\tlet meshRef = this.meshMap.get(mesh);\n\t\tif (!meshRef) {\n\t\t\tmeshRef = this.buildMesh(mesh);\n\t\t\tthis.meshMap.set(mesh, meshRef);\n\t\t}\n\t\treturn meshRef;\n\t}\n\tbuildArray2(array3) {\n\t\tconst components2 = [];\n\t\tconst count = array3.length;\n\t\tfor (let i2 = 0; i2 < count; i2 += 2) {\n\t\t\tcomponents2.push(`(${array3[i2]}, ${1 - array3[i2 + 1]})`);\n\t\t}\n\t\treturn components2.join(\", \");\n\t}\n\tbuildArray3(array3) {\n\t\tconst components2 = [];\n\t\tconst count = array3.length;\n\t\tfor (let i2 = 0; i2 < count; i2 += 3) {\n\t\t\tcomponents2.push(`(${array3[i2]}, ${array3[i2 + 1]}, ${array3[i2 + 2]})`);\n\t\t}\n\t\treturn components2.join(\", \");\n\t}\n\tbuildMat4(mat2) {\n\t\tconst data2 = mat2.data;\n\t\tconst vectors = [];\n\t\tfor (let i2 = 0; i2 < 16; i2 += 4) {\n\t\t\tvectors.push(`(${data2[i2]}, ${data2[i2 + 1]}, ${data2[i2 + 2]}, ${data2[i2 + 3]})`);\n\t\t}\n\t\treturn `( ${vectors.join(\", \")} )`;\n\t}\n\t// format: https://graphics.pixar.com/usd/release/spec_usdpreviewsurface.html\n\tbuildMaterial(material) {\n\t\tconst materialName = `Material_${material.id}`;\n\t\tconst materialPath = `/Materials/${materialName}`;\n\t\tconst materialPropertyPath = (property) => `<${materialPath}${property}>`;\n\t\tconst buildTexture = (texture, textureIds, mapType, uvChannel, tiling, offset3, rotation7, tintColor) => {\n\t\t\treturn `\n\t\t\t\t\t\t\t\tdef Shader \"Transform2d_${mapType}\" (\n\t\t\t\t\t\t\t\t\t\tsdrMetadata = {\n\t\t\t\t\t\t\t\t\t\t\t\tstring role = \"math\"\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tuniform token info:id = \"UsdTransform2d\"\n\t\t\t\t\t\t\t\t\t\tfloat2 inputs:in.connect = ${materialPropertyPath(`/uvReader_${uvChannel}.outputs:result`)}\n\t\t\t\t\t\t\t\t\t\tfloat inputs:rotation = ${rotation7}\n\t\t\t\t\t\t\t\t\t\tfloat2 inputs:scale = (${tiling.x}, ${tiling.y})\n\t\t\t\t\t\t\t\t\t\tfloat2 inputs:translation = (${offset3.x}, ${offset3.y})\n\t\t\t\t\t\t\t\t\t\tfloat2 outputs:result\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tdef Shader \"Texture_${texture.id}_${mapType}\"\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tuniform token info:id = \"UsdUVTexture\"\n\t\t\t\t\t\t\t\t\t\tasset inputs:file = @${textureIds.fileName}@\n\t\t\t\t\t\t\t\t\t\tfloat2 inputs:st.connect = ${materialPropertyPath(`/Transform2d_${mapType}.outputs:result`)}\n\t\t\t\t\t\t\t\t\t\ttoken inputs:wrapS = \"repeat\"\n\t\t\t\t\t\t\t\t\t\ttoken inputs:wrapT = \"repeat\"\n\t\t\t\t\t\t\t\t\t\tfloat4 inputs:scale = (${tintColor.r}, ${tintColor.g}, ${tintColor.b}, ${tintColor.a})\n\t\t\t\t\t\t\t\t\t\tfloat outputs:r\n\t\t\t\t\t\t\t\t\t\tfloat outputs:g\n\t\t\t\t\t\t\t\t\t\tfloat outputs:b\n\t\t\t\t\t\t\t\t\t\tfloat3 outputs:rgb\n\t\t\t\t\t\t\t\t\t\tfloat outputs:a\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t`;\n\t\t};\n\t\tconst inputs = [];\n\t\tconst samplers = [];\n\t\tconst addTexture = (textureSlot, uniform, propType, propName, valueName, handleOpacity = false, tintTexture = false) => {\n\t\t\tconst texture = material[textureSlot];\n\t\t\tif (texture) {\n\t\t\t\tconst textureIds = this.getTextureFileIds(texture);\n\t\t\t\tthis.textureMap.set(texture, textureIds.refName);\n\t\t\t\tconst channel = material[`${textureSlot}Channel`] || \"rgb\";\n\t\t\t\tconst textureValue = materialPropertyPath(`/${textureIds.name}_${valueName}.outputs:${channel}`);\n\t\t\t\tinputs.push(materialValueTemplate(propType, `${propName}.connect`, textureValue));\n\t\t\t\tif (handleOpacity) {\n\t\t\t\t\tif (material.alphaTest > 0) {\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tconst tiling = material[`${textureSlot}Tiling`];\n\t\t\t\tconst offset3 = material[`${textureSlot}Offset`];\n\t\t\t\tconst rotation7 = material[`${textureSlot}Rotation`];\n\t\t\t\tconst uvChannel = material[`${textureSlot}Uv`] === 1 ? \"st1\" : \"st\";\n\t\t\t\tconst tintColor = tintTexture && uniform ? uniform : Color.WHITE;\n\t\t\t\tsamplers.push(buildTexture(texture, textureIds, valueName, uvChannel, tiling, offset3, rotation7, tintColor));\n\t\t\t} else if (uniform) {\n\t\t\t\tconst value = propType === \"float\" ? `${uniform}` : `(${uniform.r}, ${uniform.g}, ${uniform.b})`;\n\t\t\t\tinputs.push(materialValueTemplate(propType, propName, value));\n\t\t\t}\n\t\t};\n\t\taddTexture(\"diffuseMap\", material.diffuse, \"color3f\", \"diffuseColor\", \"diffuse\", false, true);\n\t\tif (material.transparent || material.alphaTest > 0) {\n\t\t\taddTexture(\"opacityMap\", material.opacity, \"float\", \"opacity\", \"opacity\", true);\n\t\t}\n\t\taddTexture(\"normalMap\", null, \"normal3f\", \"normal\", \"normal\");\n\t\taddTexture(\"emissiveMap\", material.emissive, \"color3f\", \"emissiveColor\", \"emissive\", false, true);\n\t\taddTexture(\"aoMap\", null, \"float\", \"occlusion\", \"occlusion\");\n\t\tconst metalness = material.useMetalness ? material.metalness : 0;\n\t\taddTexture(\"metalnessMap\", metalness, \"float\", \"metallic\", \"metallic\");\n\t\tconst roughness = material.glossInvert ? material.gloss : 1 - material.gloss;\n\t\taddTexture(\"glossMap\", roughness, \"float\", \"roughness\", \"roughness\");\n\t\tconst materialObject = `\n\t\t\t\t\t\tdef Material \"${materialName}\"\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tdef Shader \"PreviewSurface\"\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tuniform token info:id = \"UsdPreviewSurface\"\n${inputs.join(\"\\n\")}\n\t\t\t\t\t\t\t\t\t\tint inputs:useSpecularWorkflow = 0\n\t\t\t\t\t\t\t\t\t\ttoken outputs:surface\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\ttoken outputs:surface.connect = ${materialPropertyPath(\"/PreviewSurface.outputs:surface\")}\n\n\t\t\t\t\t\t\t\tdef Shader \"uvReader_st\"\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tuniform token info:id = \"UsdPrimvarReader_float2\"\n\t\t\t\t\t\t\t\t\t\ttoken inputs:varname = \"st\"\n\t\t\t\t\t\t\t\t\t\tfloat2 inputs:fallback = (0.0, 0.0)\n\t\t\t\t\t\t\t\t\t\tfloat2 outputs:result\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tdef Shader \"uvReader_st1\"\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tuniform token info:id = \"UsdPrimvarReader_float2\"\n\t\t\t\t\t\t\t\t\t\ttoken inputs:varname = \"st1\"\n\t\t\t\t\t\t\t\t\t\tfloat2 inputs:fallback = (0.0, 0.0)\n\t\t\t\t\t\t\t\t\t\tfloat2 outputs:result\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t${samplers.join(\"\\n\")}\n\t\t\t\t\t\t}\n\t\t\t\t`;\n\t\tthis.materials.push(materialObject);\n\t\treturn materialPropertyPath(\"\");\n\t}\n\tbuildMesh(mesh) {\n\t\tlet positions = [];\n\t\tconst indices = [];\n\t\tlet normals = [];\n\t\tlet uv0 = [];\n\t\tlet uv1 = [];\n\t\tmesh.getVertexStream(SEMANTIC_POSITION, positions);\n\t\tmesh.getVertexStream(SEMANTIC_NORMAL, normals);\n\t\tmesh.getVertexStream(SEMANTIC_TEXCOORD0, uv0);\n\t\tmesh.getVertexStream(SEMANTIC_TEXCOORD1, uv1);\n\t\tmesh.getIndices(indices);\n\t\tconst indicesCount = indices.length || positions.length;\n\t\tconst faceVertexCounts = Array(indicesCount / 3).fill(3).join(\", \");\n\t\tif (!indices.length) {\n\t\t\tfor (let i2 = 0; i2 < indicesCount; i2++) {\n\t\t\t\tindices[i2] = i2;\n\t\t\t}\n\t\t}\n\t\tconst numVerts = positions.length / 3;\n\t\tnormals = normals.length ? normals : Array(numVerts * 3).fill(0);\n\t\tuv0 = uv0.length ? uv0 : Array(numVerts * 2).fill(0);\n\t\tuv1 = uv1.length ? uv1 : Array(numVerts * 2).fill(0);\n\t\tpositions = this.buildArray3(positions);\n\t\tnormals = this.buildArray3(normals);\n\t\tuv0 = this.buildArray2(uv0);\n\t\tuv1 = this.buildArray2(uv1);\n\t\tconst meshObject = meshTemplate(faceVertexCounts, indices, normals, positions, uv0, uv1);\n\t\tconst refPath = this.addFile(\"mesh\", `Mesh_${mesh.id}`, \"Mesh\", meshObject);\n\t\treturn refPath;\n\t}\n\tbuildMeshInstance(meshInstance) {\n\t\tconst meshRefPath = this.getMeshRef(meshInstance.mesh);\n\t\tconst materialRefPath = this.getMaterialRef(meshInstance.material);\n\t\tconst worldMatrix = this.buildMat4(meshInstance.node.getWorldTransform());\n\t\tconst name = meshInstance.node.name.replace(/[^a-z0-9]/gi, \"_\");\n\t\tlet nodeName = name;\n\t\twhile (this.nodeNames.has(nodeName)) {\n\t\t\tnodeName = `${name}_${Math.random().toString(36).slice(2, 7)}`;\n\t\t}\n\t\tthis.nodeNames.add(nodeName);\n\t\treturn meshInstanceTemplate(nodeName, meshRefPath, worldMatrix, materialRefPath);\n\t}\n};\n\nvar ARRAY_BUFFER = 34962;\nvar ELEMENT_ARRAY_BUFFER = 34963;\nvar getIndexComponentType = (indexFormat) => {\n\tswitch (indexFormat) {\n\t\tcase INDEXFORMAT_UINT8:\n\t\t\treturn 5121;\n\t\tcase INDEXFORMAT_UINT16:\n\t\t\treturn 5123;\n\t\tcase INDEXFORMAT_UINT32:\n\t\t\treturn 5125;\n\t}\n\treturn 0;\n};\nvar getComponentType = (dataType) => {\n\tswitch (dataType) {\n\t\tcase TYPE_INT8:\n\t\t\treturn 5120;\n\t\tcase TYPE_UINT8:\n\t\t\treturn 5121;\n\t\tcase TYPE_INT16:\n\t\t\treturn 5122;\n\t\tcase TYPE_UINT16:\n\t\t\treturn 5123;\n\t\tcase TYPE_INT32:\n\t\t\treturn 5124;\n\t\tcase TYPE_UINT32:\n\t\t\treturn 5125;\n\t\tcase TYPE_FLOAT32:\n\t\t\treturn 5126;\n\t}\n\treturn 0;\n};\nvar getAccessorType = (componentCount) => {\n\tswitch (componentCount) {\n\t\tcase 1:\n\t\t\treturn \"SCALAR\";\n\t\tcase 2:\n\t\t\treturn \"VEC2\";\n\t\tcase 3:\n\t\t\treturn \"VEC3\";\n\t\tcase 4:\n\t\t\treturn \"VEC4\";\n\t}\n\treturn 0;\n};\nvar getSemantic = (engineSemantic) => {\n\tswitch (engineSemantic) {\n\t\tcase SEMANTIC_POSITION:\n\t\t\treturn \"POSITION\";\n\t\tcase SEMANTIC_NORMAL:\n\t\t\treturn \"NORMAL\";\n\t\tcase SEMANTIC_TANGENT:\n\t\t\treturn \"TANGENT\";\n\t\tcase SEMANTIC_COLOR:\n\t\t\treturn \"COLOR_0\";\n\t\tcase SEMANTIC_BLENDINDICES:\n\t\t\treturn \"JOINTS_0\";\n\t\tcase SEMANTIC_BLENDWEIGHT:\n\t\t\treturn \"WEIGHTS_0\";\n\t\tcase SEMANTIC_TEXCOORD0:\n\t\t\treturn \"TEXCOORD_0\";\n\t\tcase SEMANTIC_TEXCOORD1:\n\t\t\treturn \"TEXCOORD_1\";\n\t\tcase SEMANTIC_TEXCOORD2:\n\t\t\treturn \"TEXCOORD_2\";\n\t\tcase SEMANTIC_TEXCOORD3:\n\t\t\treturn \"TEXCOORD_3\";\n\t\tcase SEMANTIC_TEXCOORD4:\n\t\t\treturn \"TEXCOORD_4\";\n\t\tcase SEMANTIC_TEXCOORD5:\n\t\t\treturn \"TEXCOORD_5\";\n\t\tcase SEMANTIC_TEXCOORD6:\n\t\t\treturn \"TEXCOORD_6\";\n\t\tcase SEMANTIC_TEXCOORD7:\n\t\t\treturn \"TEXCOORD_7\";\n\t}\n\treturn \"\";\n};\nvar getFilter = function(filter) {\n\tswitch (filter) {\n\t\tcase FILTER_NEAREST:\n\t\t\treturn 9728;\n\t\tcase FILTER_LINEAR:\n\t\t\treturn 9729;\n\t\tcase FILTER_NEAREST_MIPMAP_NEAREST:\n\t\t\treturn 9984;\n\t\tcase FILTER_LINEAR_MIPMAP_NEAREST:\n\t\t\treturn 9985;\n\t\tcase FILTER_NEAREST_MIPMAP_LINEAR:\n\t\t\treturn 9986;\n\t\tcase FILTER_LINEAR_MIPMAP_LINEAR:\n\t\t\treturn 9987;\n\t}\n\treturn 0;\n};\nvar getWrap = function(wrap) {\n\tswitch (wrap) {\n\t\tcase ADDRESS_CLAMP_TO_EDGE:\n\t\t\treturn 33071;\n\t\tcase ADDRESS_MIRRORED_REPEAT:\n\t\t\treturn 33648;\n\t\tcase ADDRESS_REPEAT:\n\t\t\treturn 10497;\n\t}\n\treturn 0;\n};\nfunction isCanvasTransparent(canvas) {\n\tconst context = canvas.getContext(\"2d\");\n\tconst pixelData = context.getImageData(0, 0, canvas.width, canvas.height).data;\n\tfor (let i2 = 3; i2 < pixelData.length; i2 += 4) {\n\t\tif (pixelData[i2] < 255) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\nvar textureSemantics = [\n\t\"anisotropyMap\",\n\t\"aoMap\",\n\t\"clearCoatGlossMap\",\n\t\"clearCoatMap\",\n\t\"clearCoatNormalMap\",\n\t\"colorMap\",\n\t\"diffuseMap\",\n\t\"emissiveMap\",\n\t\"iridescenceMap\",\n\t\"iridescenceThicknessMap\",\n\t\"metalnessMap\",\n\t\"normalMap\",\n\t\"refractionMap\",\n\t\"sheenGlossMap\",\n\t\"sheenMap\",\n\t\"specularityFactorMap\",\n\t\"specularMap\",\n\t\"thicknessMap\"\n];\nvar GltfExporter = class _GltfExporter extends CoreExporter {\n\tcollectResources(root) {\n\t\tconst resources = {\n\t\t\tbuffers: [],\n\t\t\tcameras: [],\n\t\t\tentities: [],\n\t\t\tmaterials: [],\n\t\t\tskins: [],\n\t\t\ttextures: [],\n\t\t\t// entry: { node, meshInstances}\n\t\t\tentityMeshInstances: [],\n\t\t\t// maps a buffer (vertex or index) to an array of bufferview indices\n\t\t\tbufferViewMap: /* @__PURE__ */ new Map(),\n\t\t\tcompressableTexture: /* @__PURE__ */ new Set()\n\t\t};\n\t\tconst { materials, buffers, entityMeshInstances, textures } = resources;\n\t\troot.forEach((entity) => {\n\t\t\tresources.entities.push(entity);\n\t\t});\n\t\tconst collectMeshInstances = (meshInstances) => {\n\t\t\tmeshInstances.forEach((meshInstance) => {\n\t\t\t\tconst material = meshInstance.material;\n\t\t\t\tif (materials.indexOf(material) < 0) {\n\t\t\t\t\tresources.materials.push(material);\n\t\t\t\t\ttextureSemantics.forEach((semantic) => {\n\t\t\t\t\t\tconst texture = material[semantic];\n\t\t\t\t\t\tif (texture && textures.indexOf(texture) < 0) {\n\t\t\t\t\t\t\tif (semantic !== \"normalMap\") {\n\t\t\t\t\t\t\t\tresources.compressableTexture.add(texture);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttextures.push(texture);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tconst node = meshInstance.node;\n\t\t\t\tlet nodeMeshInstances = entityMeshInstances.find((e) => e.node === node);\n\t\t\t\tif (!nodeMeshInstances) {\n\t\t\t\t\tnodeMeshInstances = { node, meshInstances: [] };\n\t\t\t\t\tentityMeshInstances.push(nodeMeshInstances);\n\t\t\t\t}\n\t\t\t\tnodeMeshInstances.meshInstances.push(meshInstance);\n\t\t\t\tconst mesh = meshInstance.mesh;\n\t\t\t\tconst vertexBuffer = mesh.vertexBuffer;\n\t\t\t\tif (buffers.indexOf(vertexBuffer) < 0) {\n\t\t\t\t\tbuffers.unshift(vertexBuffer);\n\t\t\t\t}\n\t\t\t\tconst indexBuffer = mesh.indexBuffer[0];\n\t\t\t\tif (buffers.indexOf(indexBuffer) < 0) {\n\t\t\t\t\tbuffers.push(indexBuffer);\n\t\t\t\t}\n\t\t\t\tif (mesh.skin && resources.skins.indexOf(mesh.skin) < 0) {\n\t\t\t\t\tresources.skins.push(mesh.skin);\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\t\tresources.entities.forEach((entity) => {\n\t\t\tif (entity.camera) {\n\t\t\t\tresources.cameras.push(entity.camera);\n\t\t\t}\n\t\t\tif (entity.render && entity.render.enabled) {\n\t\t\t\tcollectMeshInstances(entity.render.meshInstances);\n\t\t\t}\n\t\t\tif (entity.model && entity.model.enabled && entity.model.meshInstances) {\n\t\t\t\tcollectMeshInstances(entity.model.meshInstances);\n\t\t\t}\n\t\t});\n\t\treturn resources;\n\t}\n\twriteBufferViews(resources, json) {\n\t\tjson.bufferViews = [];\n\t\tfor (const buffer of resources.buffers) {\n\t\t\t_GltfExporter.writeBufferView(resources, json, buffer);\n\t\t}\n\t}\n\tstatic writeBufferView(resources, json, buffer) {\n\t\tjson.buffers = json.buffers ?? [];\n\t\tjson.buffers[0] = json.buffers[0] ?? { byteLength: 0 };\n\t\tconst bufferInfo = json.buffers[0];\n\t\tbufferInfo.byteLength = math.roundUp(bufferInfo.byteLength, 4);\n\t\tconst offset3 = bufferInfo.byteLength;\n\t\tconst addBufferView = (target2, byteLength, byteOffset, byteStride) => {\n\t\t\tconst bufferView = {\n\t\t\t\tbuffer: 0,\n\t\t\t\tbyteLength,\n\t\t\t\tbyteOffset\n\t\t\t};\n\t\t\tif (target2 === ARRAY_BUFFER || target2 === ELEMENT_ARRAY_BUFFER) {\n\t\t\t\tbufferView.target = target2;\n\t\t\t}\n\t\t\tif (byteStride !== void 0) {\n\t\t\t\tbufferView.byteStride = byteStride;\n\t\t\t}\n\t\t\treturn json.bufferViews.push(bufferView) - 1;\n\t\t};\n\t\tlet arrayBuffer;\n\t\tif (buffer instanceof VertexBuffer) {\n\t\t\tarrayBuffer = buffer.lock();\n\t\t\tconst format = buffer.getFormat();\n\t\t\tif (format.interleaved) {\n\t\t\t\tconst bufferViewIndex = addBufferView(ARRAY_BUFFER, arrayBuffer.byteLength, offset3, format.size);\n\t\t\t\tresources.bufferViewMap.set(buffer, [bufferViewIndex]);\n\t\t\t} else {\n\t\t\t\tconst bufferViewIndices = [];\n\t\t\t\tfor (const element of format.elements) {\n\t\t\t\t\tconst bufferViewIndex = addBufferView(\n\t\t\t\t\t\tARRAY_BUFFER,\n\t\t\t\t\t\telement.size * format.vertexCount,\n\t\t\t\t\t\toffset3 + element.offset,\n\t\t\t\t\t\telement.size\n\t\t\t\t\t);\n\t\t\t\t\tbufferViewIndices.push(bufferViewIndex);\n\t\t\t\t}\n\t\t\t\tresources.bufferViewMap.set(buffer, bufferViewIndices);\n\t\t\t}\n\t\t} else if (buffer instanceof IndexBuffer) {\n\t\t\tarrayBuffer = buffer.lock();\n\t\t\tconst bufferViewIndex = addBufferView(ELEMENT_ARRAY_BUFFER, arrayBuffer.byteLength, offset3);\n\t\t\tresources.bufferViewMap.set(buffer, [bufferViewIndex]);\n\t\t} else {\n\t\t\tarrayBuffer = buffer;\n\t\t\tconst bufferViewIndex = addBufferView(void 0, arrayBuffer.byteLength, offset3);\n\t\t\tresources.bufferViewMap.set(buffer, [bufferViewIndex]);\n\t\t}\n\t\tbufferInfo.byteLength += arrayBuffer.byteLength;\n\t}\n\twriteCameras(resources, json) {\n\t\tif (resources.cameras.length > 0) {\n\t\t\tjson.cameras = resources.cameras.map((cam) => {\n\t\t\t\tconst projection = cam.projection;\n\t\t\t\tconst nearClip = cam.nearClip;\n\t\t\t\tconst farClip = cam.farClip;\n\t\t\t\tconst camera = {};\n\t\t\t\tif (projection === PROJECTION_ORTHOGRAPHIC) {\n\t\t\t\t\tcamera.type = \"orthographic\";\n\t\t\t\t\tcamera.orthographic = {\n\t\t\t\t\t\txmag: 1,\n\t\t\t\t\t\tymag: 1,\n\t\t\t\t\t\tznear: nearClip,\n\t\t\t\t\t\tzfar: farClip\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\tconst fov = cam.fov;\n\t\t\t\t\tcamera.type = \"perspective\";\n\t\t\t\t\tcamera.perspective = {\n\t\t\t\t\t\tyfov: fov * math.DEG_TO_RAD,\n\t\t\t\t\t\tznear: nearClip,\n\t\t\t\t\t\tzfar: farClip\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\treturn camera;\n\t\t\t});\n\t\t}\n\t}\n\tattachTexture(resources, material, destination, name, textureSemantic, json) {\n\t\tconst texture = material[textureSemantic];\n\t\tif (texture) {\n\t\t\tconst textureIndex = resources.textures.indexOf(texture);\n\t\t\tif (textureIndex < 0) console.warn(`Texture ${texture.name} wasn't collected.`);\n\t\t\tdestination[name] = {\n\t\t\t\tindex: textureIndex\n\t\t\t};\n\t\t\tconst textureTexCoord = material[`${textureSemantic}Uv`] ?? 0;\n\t\t\tif (textureTexCoord !== 0) {\n\t\t\t\tdestination[name].texCoord = textureTexCoord;\n\t\t\t}\n\t\t\tconst scale2 = material[`${textureSemantic}Tiling`];\n\t\t\tconst offset3 = material[`${textureSemantic}Offset`];\n\t\t\tconst rotation7 = material[`${textureSemantic}Rotation`];\n\t\t\tif (scale2 && !scale2.equals(Vec2.ONE) || offset3 && !offset3.equals(Vec2.ZERO) || rotation7 !== 0) {\n\t\t\t\tdestination[name].extensions = {\n\t\t\t\t\tKHR_texture_transform: {}\n\t\t\t\t};\n\t\t\t\tjson.extensionsUsed = json.extensionsUsed ?? [];\n\t\t\t\tif (!json.extensionsUsed.includes(\"KHR_texture_transform\")) {\n\t\t\t\t\tjson.extensionsUsed.push(\"KHR_texture_transform\");\n\t\t\t\t}\n\t\t\t\tjson.extensionsRequired = json.extensionsRequired ?? [];\n\t\t\t\tif (!json.extensionsRequired.includes(\"KHR_texture_transform\")) {\n\t\t\t\t\tjson.extensionsRequired.push(\"KHR_texture_transform\");\n\t\t\t\t}\n\t\t\t\tif (scale2 && !scale2.equals(Vec2.ONE)) {\n\t\t\t\t\tdestination[name].extensions.KHR_texture_transform.scale = [scale2.x, scale2.y];\n\t\t\t\t}\n\t\t\t\tif (offset3 && !offset3.equals(Vec2.ZERO)) {\n\t\t\t\t\tdestination[name].extensions.KHR_texture_transform.offset = [offset3.x, offset3.y - 1 + scale2.y];\n\t\t\t\t}\n\t\t\t\tif (rotation7 !== 0) {\n\t\t\t\t\tdestination[name].extensions.KHR_texture_transform.rotation = rotation7 * math.DEG_TO_RAD;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\taddExtension(json, output, name, data2 = {}) {\n\t\toutput.extensions = output.extensions || {};\n\t\toutput.extensions[name] = data2;\n\t\tjson.extensionsUsed = json.extensionsUsed ?? [];\n\t\tif (!json.extensionsUsed.includes(name)) {\n\t\t\tjson.extensionsUsed.push(name);\n\t\t}\n\t}\n\twriteStandardMaterial(resources, mat2, output, json) {\n\t\tconst { diffuse, emissive, opacity, metalness, gloss, glossInvert } = mat2;\n\t\tconst pbr = output.pbrMetallicRoughness;\n\t\tconst baseColor = mat2.useLighting ? diffuse : emissive;\n\t\tif (!baseColor.equals(Color.WHITE) || opacity !== 1) {\n\t\t\tconst { r, g, b } = baseColor.clone().linear();\n\t\t\tpbr.baseColorFactor = [r, g, b, opacity];\n\t\t}\n\t\tif (mat2.useMetalness) {\n\t\t\tif (metalness !== 1) {\n\t\t\t\tpbr.metallicFactor = metalness;\n\t\t\t}\n\t\t} else {\n\t\t\tpbr.metallicFactor = 0;\n\t\t}\n\t\tconst roughness = glossInvert ? gloss : 1 - gloss;\n\t\tif (roughness !== 1) {\n\t\t\tpbr.roughnessFactor = roughness;\n\t\t}\n\t\tthis.attachTexture(resources, mat2, pbr, \"baseColorTexture\", mat2.useLighting ? \"diffuseMap\" : \"emissiveMap\", json);\n\t\tthis.attachTexture(resources, mat2, pbr, \"metallicRoughnessTexture\", \"metalnessMap\", json);\n\t\tif (mat2.useLighting && !emissive.equals(Color.BLACK)) {\n\t\t\tconst { r, g, b } = emissive.clone().linear();\n\t\t\toutput.emissiveFactor = [r, g, b];\n\t\t}\n\t\tif (mat2.enableGGXSpecular && (mat2.anisotropyIntensity !== 0 || mat2.anisotropyRotation !== 0 || mat2.anisotropyMap)) {\n\t\t\tconst anisotropyExt = {};\n\t\t\tif (mat2.anisotropyIntensity !== 0) {\n\t\t\t\tanisotropyExt.anisotropyStrength = mat2.anisotropyIntensity;\n\t\t\t}\n\t\t\tif (mat2.anisotropyRotation !== 0) {\n\t\t\t\tanisotropyExt.anisotropyRotation = mat2.anisotropyRotation * math.DEG_TO_RAD;\n\t\t\t}\n\t\t\tthis.attachTexture(resources, mat2, anisotropyExt, \"anisotropyTexture\", \"anisotropyMap\", json);\n\t\t\tif (Object.keys(anisotropyExt).length > 0) {\n\t\t\t\tthis.addExtension(json, output, \"KHR_materials_anisotropy\", anisotropyExt);\n\t\t\t}\n\t\t}\n\t\tif (mat2.clearCoat > 0) {\n\t\t\tconst clearcoatExt = {\n\t\t\t\t// Parser multiplies by 0.25, so we divide by 0.25 (multiply by 4) to reverse\n\t\t\t\tclearcoatFactor: Math.min(mat2.clearCoat * 4, 1)\n\t\t\t};\n\t\t\tif (mat2.clearCoatGloss !== 0) {\n\t\t\t\tclearcoatExt.clearcoatRoughnessFactor = mat2.clearCoatGloss;\n\t\t\t}\n\t\t\tthis.attachTexture(resources, mat2, clearcoatExt, \"clearcoatTexture\", \"clearCoatMap\", json);\n\t\t\tthis.attachTexture(resources, mat2, clearcoatExt, \"clearcoatRoughnessTexture\", \"clearCoatGlossMap\", json);\n\t\t\tif (mat2.clearCoatNormalMap) {\n\t\t\t\tthis.attachTexture(resources, mat2, clearcoatExt, \"clearcoatNormalTexture\", \"clearCoatNormalMap\", json);\n\t\t\t\tif (mat2.clearCoatBumpiness !== 1) {\n\t\t\t\t\tclearcoatExt.clearcoatNormalTexture.scale = mat2.clearCoatBumpiness;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.addExtension(json, output, \"KHR_materials_clearcoat\", clearcoatExt);\n\t\t}\n\t\tif (mat2.dispersion !== 0) {\n\t\t\tthis.addExtension(json, output, \"KHR_materials_dispersion\", {\n\t\t\t\tdispersion: mat2.dispersion\n\t\t\t});\n\t\t}\n\t\tif (mat2.useLighting && mat2.emissiveIntensity !== 1) {\n\t\t\tthis.addExtension(json, output, \"KHR_materials_emissive_strength\", {\n\t\t\t\temissiveStrength: mat2.emissiveIntensity\n\t\t\t});\n\t\t}\n\t\tconst defaultRefractionIndex = 1 / 1.5;\n\t\tif (mat2.refractionIndex !== defaultRefractionIndex && mat2.refractionIndex > 0) {\n\t\t\tthis.addExtension(json, output, \"KHR_materials_ior\", {\n\t\t\t\tior: 1 / mat2.refractionIndex\n\t\t\t});\n\t\t}\n\t\tif (mat2.useIridescence) {\n\t\t\tconst iridescenceExt = {};\n\t\t\tif (mat2.iridescence !== 0) {\n\t\t\t\tiridescenceExt.iridescenceFactor = mat2.iridescence;\n\t\t\t}\n\t\t\tif (mat2.iridescenceRefractionIndex !== 1.3) {\n\t\t\t\tiridescenceExt.iridescenceIor = mat2.iridescenceRefractionIndex;\n\t\t\t}\n\t\t\tif (mat2.iridescenceThicknessMin !== 100) {\n\t\t\t\tiridescenceExt.iridescenceThicknessMinimum = mat2.iridescenceThicknessMin;\n\t\t\t}\n\t\t\tif (mat2.iridescenceThicknessMax !== 400) {\n\t\t\t\tiridescenceExt.iridescenceThicknessMaximum = mat2.iridescenceThicknessMax;\n\t\t\t}\n\t\t\tthis.attachTexture(resources, mat2, iridescenceExt, \"iridescenceTexture\", \"iridescenceMap\", json);\n\t\t\tthis.attachTexture(resources, mat2, iridescenceExt, \"iridescenceThicknessTexture\", \"iridescenceThicknessMap\", json);\n\t\t\tif (Object.keys(iridescenceExt).length > 0) {\n\t\t\t\tthis.addExtension(json, output, \"KHR_materials_iridescence\", iridescenceExt);\n\t\t\t}\n\t\t}\n\t\tif (mat2.useSheen) {\n\t\t\tconst sheenExt = {};\n\t\t\tif (!mat2.sheen.equals(Color.BLACK)) {\n\t\t\t\tconst { r, g, b } = mat2.sheen.clone().linear();\n\t\t\t\tsheenExt.sheenColorFactor = [r, g, b];\n\t\t\t}\n\t\t\tif (mat2.sheenGloss !== 0) {\n\t\t\t\tsheenExt.sheenRoughnessFactor = mat2.sheenGloss;\n\t\t\t}\n\t\t\tthis.attachTexture(resources, mat2, sheenExt, \"sheenColorTexture\", \"sheenMap\", json);\n\t\t\tthis.attachTexture(resources, mat2, sheenExt, \"sheenRoughnessTexture\", \"sheenGlossMap\", json);\n\t\t\tif (Object.keys(sheenExt).length > 0) {\n\t\t\t\tthis.addExtension(json, output, \"KHR_materials_sheen\", sheenExt);\n\t\t\t}\n\t\t}\n\t\tif (mat2.useMetalnessSpecularColor || !mat2.useMetalness) {\n\t\t\tconst specularExt = {};\n\t\t\tif (!mat2.specular.equals(Color.WHITE)) {\n\t\t\t\tconst { r, g, b } = mat2.specular.clone().linear();\n\t\t\t\tspecularExt.specularColorFactor = [r, g, b];\n\t\t\t}\n\t\t\tif (mat2.specularityFactor !== 1) {\n\t\t\t\tspecularExt.specularFactor = mat2.specularityFactor;\n\t\t\t}\n\t\t\tthis.attachTexture(resources, mat2, specularExt, \"specularColorTexture\", \"specularMap\", json);\n\t\t\tthis.attachTexture(resources, mat2, specularExt, \"specularTexture\", \"specularityFactorMap\", json);\n\t\t\tif (Object.keys(specularExt).length > 0) {\n\t\t\t\tthis.addExtension(json, output, \"KHR_materials_specular\", specularExt);\n\t\t\t}\n\t\t}\n\t\tif (mat2.useDynamicRefraction && (mat2.refraction !== 0 || mat2.refractionMap)) {\n\t\t\tconst transmissionExt = {};\n\t\t\tif (mat2.refraction !== 0) {\n\t\t\t\ttransmissionExt.transmissionFactor = mat2.refraction;\n\t\t\t}\n\t\t\tthis.attachTexture(resources, mat2, transmissionExt, \"transmissionTexture\", \"refractionMap\", json);\n\t\t\tif (Object.keys(transmissionExt).length > 0) {\n\t\t\t\tthis.addExtension(json, output, \"KHR_materials_transmission\", transmissionExt);\n\t\t\t}\n\t\t}\n\t\tif (!mat2.useLighting) {\n\t\t\tthis.addExtension(json, output, \"KHR_materials_unlit\");\n\t\t}\n\t\tif (mat2.useDynamicRefraction && (mat2.thickness !== 0 || mat2.attenuationDistance !== 0 || !mat2.attenuation.equals(Color.WHITE) || mat2.thicknessMap)) {\n\t\t\tconst volumeExt = {};\n\t\t\tif (mat2.thickness !== 0) {\n\t\t\t\tvolumeExt.thicknessFactor = mat2.thickness;\n\t\t\t}\n\t\t\tif (mat2.attenuationDistance !== 0) {\n\t\t\t\tvolumeExt.attenuationDistance = mat2.attenuationDistance;\n\t\t\t}\n\t\t\tif (!mat2.attenuation.equals(Color.WHITE)) {\n\t\t\t\tconst { r, g, b } = mat2.attenuation.clone().linear();\n\t\t\t\tvolumeExt.attenuationColor = [r, g, b];\n\t\t\t}\n\t\t\tthis.attachTexture(resources, mat2, volumeExt, \"thicknessTexture\", \"thicknessMap\", json);\n\t\t\tif (Object.keys(volumeExt).length > 0) {\n\t\t\t\tthis.addExtension(json, output, \"KHR_materials_volume\", volumeExt);\n\t\t\t}\n\t\t}\n\t}\n\twriteMaterials(resources, json) {\n\t\tif (resources.materials.length > 0) {\n\t\t\tjson.materials = resources.materials.map((mat2) => {\n\t\t\t\tconst { name, blendType, cull, alphaTest } = mat2;\n\t\t\t\tconst material = {\n\t\t\t\t\tpbrMetallicRoughness: {}\n\t\t\t\t};\n\t\t\t\tif (name && name.length > 0) {\n\t\t\t\t\tmaterial.name = name;\n\t\t\t\t}\n\t\t\t\tif (mat2 instanceof StandardMaterial) {\n\t\t\t\t\tthis.writeStandardMaterial(resources, mat2, material, json);\n\t\t\t\t}\n\t\t\t\tif (blendType === BLEND_NORMAL) {\n\t\t\t\t\tmaterial.alphaMode = \"BLEND\";\n\t\t\t\t} else if (blendType === BLEND_NONE) {\n\t\t\t\t\tif (alphaTest !== 0) {\n\t\t\t\t\t\tmaterial.alphaMode = \"MASK\";\n\t\t\t\t\t\tmaterial.alphaCutoff = alphaTest;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (cull === CULLFACE_NONE) {\n\t\t\t\t\tmaterial.doubleSided = true;\n\t\t\t\t}\n\t\t\t\tthis.attachTexture(resources, mat2, material, \"normalTexture\", \"normalMap\", json);\n\t\t\t\tthis.attachTexture(resources, mat2, material, \"occlusionTexture\", \"aoMap\", json);\n\t\t\t\tif (material.occlusionTexture && mat2.aoIntensity !== 1) {\n\t\t\t\t\tmaterial.occlusionTexture.strength = mat2.aoIntensity;\n\t\t\t\t}\n\t\t\t\tthis.attachTexture(resources, mat2, material, \"emissiveTexture\", \"emissiveMap\", json);\n\t\t\t\treturn material;\n\t\t\t});\n\t\t}\n\t}\n\twriteNodes(resources, json) {\n\t\tif (resources.entities.length > 0) {\n\t\t\tjson.nodes = resources.entities.map((entity) => {\n\t\t\t\tconst name = entity.name;\n\t\t\t\tconst t = entity.getLocalPosition();\n\t\t\t\tconst r = entity.getLocalRotation();\n\t\t\t\tconst s2 = entity.getLocalScale();\n\t\t\t\tconst node = {};\n\t\t\t\tif (name && name.length > 0) {\n\t\t\t\t\tnode.name = name;\n\t\t\t\t}\n\t\t\t\tif (!t.equals(Vec3.ZERO)) {\n\t\t\t\t\tnode.translation = [t.x, t.y, t.z];\n\t\t\t\t}\n\t\t\t\tif (!r.equals(Quat.IDENTITY)) {\n\t\t\t\t\tnode.rotation = [r.x, r.y, r.z, r.w];\n\t\t\t\t}\n\t\t\t\tif (!s2.equals(Vec3.ONE)) {\n\t\t\t\t\tnode.scale = [s2.x, s2.y, s2.z];\n\t\t\t\t}\n\t\t\t\tif (entity.camera && entity.camera.enabled) {\n\t\t\t\t\tnode.camera = resources.cameras.indexOf(entity.camera);\n\t\t\t\t}\n\t\t\t\tconst entityMeshInstance = resources.entityMeshInstances.find((e) => e.node === entity);\n\t\t\t\tif (entityMeshInstance) {\n\t\t\t\t\tnode.mesh = resources.entityMeshInstances.indexOf(entityMeshInstance);\n\t\t\t\t\tconst meshInstance = entityMeshInstance.meshInstances[0];\n\t\t\t\t\tif (meshInstance && meshInstance.mesh.skin) {\n\t\t\t\t\t\tnode.skin = resources.skins.indexOf(meshInstance.mesh.skin);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (entity.children.length > 0) {\n\t\t\t\t\tnode.children = [];\n\t\t\t\t\tentity.children.forEach((child) => {\n\t\t\t\t\t\tnode.children.push(resources.entities.indexOf(child));\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn node;\n\t\t\t});\n\t\t}\n\t}\n\twriteMeshes(resources, json, options2) {\n\t\tif (resources.entityMeshInstances.length > 0) {\n\t\t\tjson.accessors = [];\n\t\t\tjson.meshes = [];\n\t\t\tresources.entityMeshInstances.forEach((entityMeshInstances) => {\n\t\t\t\tconst mesh = {\n\t\t\t\t\tprimitives: []\n\t\t\t\t};\n\t\t\t\tconst meshInstances = entityMeshInstances.meshInstances;\n\t\t\t\tmeshInstances.forEach((meshInstance) => {\n\t\t\t\t\tconst primitive2 = _GltfExporter.createPrimitive(resources, json, meshInstance.mesh, options2);\n\t\t\t\t\tprimitive2.material = resources.materials.indexOf(meshInstance.material);\n\t\t\t\t\tmesh.primitives.push(primitive2);\n\t\t\t\t});\n\t\t\t\tjson.meshes.push(mesh);\n\t\t\t});\n\t\t}\n\t}\n\tstatic createPrimitive(resources, json, mesh, options2 = {}) {\n\t\tconst primitive2 = {\n\t\t\tattributes: {}\n\t\t};\n\t\tconst { vertexBuffer } = mesh;\n\t\tconst { format } = vertexBuffer;\n\t\tconst { interleaved, elements } = format;\n\t\tconst numVertices = vertexBuffer.getNumVertices();\n\t\telements.forEach((element, elementIndex) => {\n\t\t\tconst semantic = getSemantic(element.name);\n\t\t\tif (options2.stripUnusedAttributes) {\n\t\t\t\tlet isUsed = true;\n\t\t\t\tif (semantic.startsWith(\"TEXCOORD_\")) {\n\t\t\t\t\tconst texCoordIndex = parseInt(semantic.split(\"_\")[1], 10);\n\t\t\t\t\tisUsed = resources.materials.some((material) => {\n\t\t\t\t\t\treturn textureSemantics.some((texSemantic) => {\n\t\t\t\t\t\t\tconst texture = material[texSemantic];\n\t\t\t\t\t\t\tif (!texture) {\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst uv = material[`${texSemantic}Uv`] ?? 0;\n\t\t\t\t\t\t\treturn uv === texCoordIndex;\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif (semantic === \"COLOR_0\") {\n\t\t\t\t\tisUsed = resources.materials.some((material) => material.vertexColors);\n\t\t\t\t}\n\t\t\t\tif (semantic === \"TANGENT\") {\n\t\t\t\t\tisUsed = resources.materials.some((material) => material.normalMap);\n\t\t\t\t}\n\t\t\t\tif (semantic === \"JOINTS_0\" || semantic === \"WEIGHTS_0\") {\n\t\t\t\t\tisUsed = resources.entityMeshInstances.some((emi) => emi.meshInstances.some((mi) => mi.mesh.skin));\n\t\t\t\t}\n\t\t\t\tif (!isUsed) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tlet bufferView = resources.bufferViewMap.get(vertexBuffer);\n\t\t\tif (!bufferView) {\n\t\t\t\t_GltfExporter.writeBufferView(resources, json, vertexBuffer);\n\t\t\t\tresources.buffers.push(vertexBuffer);\n\t\t\t\tbufferView = resources.bufferViewMap.get(vertexBuffer);\n\t\t\t}\n\t\t\tconst viewIndex = bufferView[interleaved ? 0 : elementIndex];\n\t\t\tconst accessor = {\n\t\t\t\tbufferView: viewIndex,\n\t\t\t\tbyteOffset: interleaved ? element.offset : 0,\n\t\t\t\tcomponentType: getComponentType(element.dataType),\n\t\t\t\ttype: getAccessorType(element.numComponents),\n\t\t\t\tcount: numVertices\n\t\t\t};\n\t\t\tconst idx = json.accessors.push(accessor) - 1;\n\t\t\tprimitive2.attributes[semantic] = idx;\n\t\t\tif (element.name === SEMANTIC_POSITION) {\n\t\t\t\tconst positions = [];\n\t\t\t\tmesh.getPositions(positions);\n\t\t\t\tconst min = new Vec3();\n\t\t\t\tconst max = new Vec3();\n\t\t\t\tBoundingBox.computeMinMax(positions, min, max);\n\t\t\t\taccessor.min = [min.x, min.y, min.z];\n\t\t\t\taccessor.max = [max.x, max.y, max.z];\n\t\t\t}\n\t\t});\n\t\tconst indexBuffer = mesh.indexBuffer[0];\n\t\tif (indexBuffer) {\n\t\t\tlet bufferView = resources.bufferViewMap.get(indexBuffer);\n\t\t\tif (!bufferView) {\n\t\t\t\t_GltfExporter.writeBufferView(resources, json, indexBuffer);\n\t\t\t\tresources.buffers.push(indexBuffer);\n\t\t\t\tbufferView = resources.bufferViewMap.get(indexBuffer);\n\t\t\t}\n\t\t\tconst viewIndex = bufferView[0];\n\t\t\tconst accessor = {\n\t\t\t\tbufferView: viewIndex,\n\t\t\t\tcomponentType: getIndexComponentType(indexBuffer.getFormat()),\n\t\t\t\tcount: indexBuffer.getNumIndices(),\n\t\t\t\ttype: \"SCALAR\"\n\t\t\t};\n\t\t\tconst idx = json.accessors.push(accessor) - 1;\n\t\t\tprimitive2.indices = idx;\n\t\t}\n\t\treturn primitive2;\n\t}\n\twriteSkins(resources, json) {\n\t\tif (resources.skins.length > 0) {\n\t\t\tjson.skins = resources.skins.map((skin) => {\n\t\t\t\tconst matrices = new Float32Array(skin.inverseBindPose.length * 16);\n\t\t\t\tfor (let i2 = 0; i2 < skin.inverseBindPose.length; i2++) {\n\t\t\t\t\tconst ibm = skin.inverseBindPose[i2];\n\t\t\t\t\tmatrices.set(ibm.data, i2 * 16);\n\t\t\t\t}\n\t\t\t\tconst matrixBuffer = matrices.buffer;\n\t\t\t\t_GltfExporter.writeBufferView(resources, json, matrixBuffer);\n\t\t\t\tresources.buffers.push(matrixBuffer);\n\t\t\t\tconst bufferView = resources.bufferViewMap.get(matrixBuffer);\n\t\t\t\tconst accessor = {\n\t\t\t\t\tbufferView: bufferView[0],\n\t\t\t\t\tcomponentType: getComponentType(TYPE_FLOAT32),\n\t\t\t\t\tcount: skin.inverseBindPose.length,\n\t\t\t\t\ttype: \"MAT4\"\n\t\t\t\t};\n\t\t\t\tconst accessorIndex = json.accessors.push(accessor) - 1;\n\t\t\t\tconst joints = skin.boneNames.map((boneName) => {\n\t\t\t\t\tconst node = resources.entities.find((entity) => entity.name === boneName);\n\t\t\t\t\treturn resources.entities.indexOf(node);\n\t\t\t\t});\n\t\t\t\treturn {\n\t\t\t\t\tinverseBindMatrices: accessorIndex,\n\t\t\t\t\tjoints\n\t\t\t\t};\n\t\t\t});\n\t\t}\n\t}\n\tconvertTextures(srcTextures, options2) {\n\t\tconst textureOptions = {\n\t\t\tmaxTextureSize: options2.maxTextureSize\n\t\t};\n\t\tconst promises = [];\n\t\tsrcTextures.forEach((srcTexture) => {\n\t\t\tconst promise = this.textureToCanvas(srcTexture, textureOptions);\n\t\t\tpromise.then((canvas) => {\n\t\t\t\treturn new Promise((resolve2) => resolve2(canvas));\n\t\t\t});\n\t\t\tpromises.push(promise);\n\t\t});\n\t\treturn promises;\n\t}\n\twriteTextures(resources, textureCanvases, json, options2) {\n\t\tconst textures = resources.textures;\n\t\tconst promises = [];\n\t\tfor (let i2 = 0; i2 < textureCanvases.length; i2++) {\n\t\t\tconst texture = textures[i2];\n\t\t\tconst canvas = textureCanvases[i2];\n\t\t\tconst isRGBA = isCanvasTransparent(canvas) || !resources.compressableTexture.has(texture);\n\t\t\tconst mimeType = isRGBA ? \"image/png\" : \"image/jpeg\";\n\t\t\tpromises.push(\n\t\t\t\tthis.getBlob(canvas, mimeType).then((blob) => {\n\t\t\t\t\tconst reader = new FileReader();\n\t\t\t\t\treader.readAsArrayBuffer(blob);\n\t\t\t\t\treturn new Promise((resolve2) => {\n\t\t\t\t\t\treader.onloadend = () => {\n\t\t\t\t\t\t\tresolve2(reader);\n\t\t\t\t\t\t};\n\t\t\t\t\t});\n\t\t\t\t}).then((reader) => {\n\t\t\t\t\tconst buffer = this.getPaddedArrayBuffer(reader.result);\n\t\t\t\t\t_GltfExporter.writeBufferView(resources, json, buffer);\n\t\t\t\t\tresources.buffers.push(buffer);\n\t\t\t\t\tconst bufferView = resources.bufferViewMap.get(buffer);\n\t\t\t\t\tjson.images[i2] = {\n\t\t\t\t\t\tmimeType,\n\t\t\t\t\t\tbufferView: bufferView[0]\n\t\t\t\t\t};\n\t\t\t\t\tjson.samplers[i2] = {\n\t\t\t\t\t\tminFilter: getFilter(texture.minFilter),\n\t\t\t\t\t\tmagFilter: getFilter(texture.magFilter),\n\t\t\t\t\t\twrapS: getWrap(texture.addressU),\n\t\t\t\t\t\twrapT: getWrap(texture.addressV)\n\t\t\t\t\t};\n\t\t\t\t\tjson.textures[i2] = {\n\t\t\t\t\t\tsampler: i2,\n\t\t\t\t\t\tsource: i2\n\t\t\t\t\t};\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\t\treturn Promise.all(promises);\n\t}\n\tgetBlob(canvas, mimeType) {\n\t\tif (canvas.toBlob !== void 0) {\n\t\t\treturn new Promise((resolve2) => {\n\t\t\t\tcanvas.toBlob(resolve2, mimeType);\n\t\t\t});\n\t\t}\n\t\tlet quality = 1;\n\t\tif (mimeType === \"image/jpeg\") {\n\t\t\tquality = 0.92;\n\t\t}\n\t\treturn canvas.convertToBlob({\n\t\t\ttype: mimeType,\n\t\t\tquality\n\t\t});\n\t}\n\tgetPaddedArrayBuffer(arrayBuffer, paddingByte = 0) {\n\t\tconst paddedLength = math.roundUp(arrayBuffer.byteLength, 4);\n\t\tif (paddedLength !== arrayBuffer.byteLength) {\n\t\t\tconst array3 = new Uint8Array(paddedLength);\n\t\t\tarray3.set(new Uint8Array(arrayBuffer));\n\t\t\tif (paddingByte !== 0) {\n\t\t\t\tfor (let i2 = arrayBuffer.byteLength; i2 < paddedLength; i2++) {\n\t\t\t\t\tarray3[i2] = paddingByte;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn array3.buffer;\n\t\t}\n\t\treturn arrayBuffer;\n\t}\n\tbuildJson(resources, options2) {\n\t\tconst promises = this.convertTextures(resources.textures, options2);\n\t\treturn Promise.all(promises).then(async (textureCanvases) => {\n\t\t\tconst json = {\n\t\t\t\tasset: {\n\t\t\t\t\tversion: \"2.0\",\n\t\t\t\t\tgenerator: \"PlayCanvas GltfExporter\"\n\t\t\t\t},\n\t\t\t\tscenes: [\n\t\t\t\t\t{\n\t\t\t\t\t\tnodes: [\n\t\t\t\t\t\t\t0\n\t\t\t\t\t\t]\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\timages: [],\n\t\t\t\tsamplers: [],\n\t\t\t\ttextures: [],\n\t\t\t\tscene: 0\n\t\t\t};\n\t\t\tthis.writeBufferViews(resources, json);\n\t\t\tthis.writeCameras(resources, json);\n\t\t\tthis.writeMeshes(resources, json, options2);\n\t\t\tthis.writeMaterials(resources, json);\n\t\t\tthis.writeNodes(resources, json, options2);\n\t\t\tthis.writeSkins(resources, json);\n\t\t\tawait this.writeTextures(resources, textureCanvases, json, options2);\n\t\t\tif (!json.images.length) delete json.images;\n\t\t\tif (!json.samplers.length) delete json.samplers;\n\t\t\tif (!json.textures.length) delete json.textures;\n\t\t\treturn json;\n\t\t});\n\t}\n\tbuild(entity, options2 = {}) {\n\t\tconst resources = this.collectResources(entity);\n\t\treturn this.buildJson(resources, options2).then((json) => {\n\t\t\tconst encoder = new TextEncoder();\n\t\t\tconst jsonData = encoder.encode(JSON.stringify(json));\n\t\t\tconst headerLength = 12;\n\t\t\tconst jsonHeaderLength = 8;\n\t\t\tconst jsonDataLength = jsonData.length;\n\t\t\tconst jsonPaddingLength = 4 - (jsonDataLength & 3) & 3;\n\t\t\tconst binaryHeaderLength = 8;\n\t\t\tconst binaryDataLength = json.buffers.reduce(\n\t\t\t\t(total, buffer) => math.roundUp(total + buffer.byteLength, 4),\n\t\t\t\t0\n\t\t\t);\n\t\t\tlet totalLength = headerLength + jsonHeaderLength + jsonDataLength + jsonPaddingLength;\n\t\t\tif (binaryDataLength > 0) {\n\t\t\t\ttotalLength += binaryHeaderLength + binaryDataLength;\n\t\t\t}\n\t\t\tconst glbBuffer = new ArrayBuffer(totalLength);\n\t\t\tconst glbView = new DataView(glbBuffer);\n\t\t\tglbView.setUint32(0, 1179937895, true);\n\t\t\tglbView.setUint32(4, 2, true);\n\t\t\tglbView.setUint32(8, totalLength, true);\n\t\t\tglbView.setUint32(12, jsonDataLength + jsonPaddingLength, true);\n\t\t\tglbView.setUint32(16, 1313821514, true);\n\t\t\tlet offset3 = headerLength + jsonHeaderLength;\n\t\t\tnew Uint8Array(glbBuffer, offset3, jsonDataLength).set(jsonData);\n\t\t\toffset3 += jsonDataLength;\n\t\t\tfor (let i2 = 0; i2 < jsonPaddingLength; i2++) {\n\t\t\t\tglbView.setUint8(offset3 + i2, 32);\n\t\t\t}\n\t\t\toffset3 += jsonPaddingLength;\n\t\t\tif (binaryDataLength > 0) {\n\t\t\t\tglbView.setUint32(offset3, binaryDataLength, true);\n\t\t\t\tglbView.setUint32(offset3 + 4, 5130562, true);\n\t\t\t\toffset3 += binaryHeaderLength;\n\t\t\t\tresources.buffers.forEach((buffer) => {\n\t\t\t\t\tlet src;\n\t\t\t\t\tconst bufferViewId = resources.bufferViewMap.get(buffer)[0];\n\t\t\t\t\tconst bufferOffset = json.bufferViews[bufferViewId].byteOffset;\n\t\t\t\t\tif (buffer instanceof ArrayBuffer) {\n\t\t\t\t\t\tsrc = new Uint8Array(buffer);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst srcBuffer = buffer.lock();\n\t\t\t\t\t\tif (srcBuffer instanceof ArrayBuffer) {\n\t\t\t\t\t\t\tsrc = new Uint8Array(srcBuffer);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsrc = new Uint8Array(srcBuffer.buffer, srcBuffer.byteOffset, srcBuffer.byteLength);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tconst dst = new Uint8Array(glbBuffer, offset3 + bufferOffset, src.byteLength);\n\t\t\t\t\tdst.set(src);\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn Promise.resolve(glbBuffer);\n\t\t});\n\t}\n};\n\nvar SSAOTYPE_NONE = \"none\";\nvar SSAOTYPE_LIGHTING = \"lighting\";\nvar SSAOTYPE_COMBINE = \"combine\";\n\nvar downsample_default = `\nuniform sampler2D sourceTexture;\nuniform vec2 sourceInvResolution;\nvarying vec2 uv0;\n#ifdef PREMULTIPLY\n\tuniform sampler2D premultiplyTexture;\n#endif\nvoid main()\n{\n\tvec3 e = texture2D (sourceTexture, uv0).rgb;\n\t#ifdef BOXFILTER\n\t\tvec3 value = e;\n\t\t#ifdef PREMULTIPLY\n\t\t\tfloat premultiply = texture2D(premultiplyTexture, uv0).{PREMULTIPLY_SRC_CHANNEL};\n\t\t\tvalue *= vec3(premultiply);\n\t\t#endif\n\t#else\n\t\tfloat x = sourceInvResolution.x;\n\t\tfloat y = sourceInvResolution.y;\n\t\tvec3 a = texture2D(sourceTexture, vec2 (uv0.x - 2.0 * x, uv0.y + 2.0 * y)).rgb;\n\t\tvec3 b = texture2D(sourceTexture, vec2 (uv0.x,\t\t   uv0.y + 2.0 * y)).rgb;\n\t\tvec3 c = texture2D(sourceTexture, vec2 (uv0.x + 2.0 * x, uv0.y + 2.0 * y)).rgb;\n\t\tvec3 d = texture2D(sourceTexture, vec2 (uv0.x - 2.0 * x, uv0.y)).rgb;\n\t\tvec3 f = texture2D(sourceTexture, vec2 (uv0.x + 2.0 * x, uv0.y)).rgb;\n\t\tvec3 g = texture2D(sourceTexture, vec2 (uv0.x - 2.0 * x, uv0.y - 2.0 * y)).rgb;\n\t\tvec3 h = texture2D(sourceTexture, vec2 (uv0.x,\t\t   uv0.y - 2.0 * y)).rgb;\n\t\tvec3 i = texture2D(sourceTexture, vec2 (uv0.x + 2.0 * x, uv0.y - 2.0 * y)).rgb;\n\t\tvec3 j = texture2D(sourceTexture, vec2 (uv0.x - x, uv0.y + y)).rgb;\n\t\tvec3 k = texture2D(sourceTexture, vec2 (uv0.x + x, uv0.y + y)).rgb;\n\t\tvec3 l = texture2D(sourceTexture, vec2 (uv0.x - x, uv0.y - y)).rgb;\n\t\tvec3 m = texture2D(sourceTexture, vec2 (uv0.x + x, uv0.y - y)).rgb;\n\t\tvec3 value = e * 0.125;\n\t\tvalue += (a + c + g + i) * 0.03125;\n\t\tvalue += (b + d + f + h) * 0.0625;\n\t\tvalue += (j + k + l + m) * 0.125;\n\t#endif\n\t#ifdef REMOVE_INVALID\n\t\tvalue = max(value, vec3(0.0));\n\t#endif\n\tgl_FragColor = vec4(value, 1.0);\n}\n`;\n\nvar downsample_default2 = `\nvar sourceTexture: texture_2d<f32>;\nvar sourceTextureSampler: sampler;\nuniform sourceInvResolution: vec2f;\nvarying uv0: vec2f;\n#ifdef PREMULTIPLY\n\tvar premultiplyTexture: texture_2d<f32>;\n\tvar premultiplyTextureSampler: sampler;\n#endif\n@fragment\nfn fragmentMain(input: FragmentInput) -> FragmentOutput {\n\tvar output: FragmentOutput;\n\tlet e: half3 = half3(textureSample(sourceTexture, sourceTextureSampler, input.uv0).rgb);\n\t#ifdef BOXFILTER\n\t\tvar value: half3 = e;\n\t\t#ifdef PREMULTIPLY\n\t\t\tlet premultiply: half = half(textureSample(premultiplyTexture, premultiplyTextureSampler, input.uv0).{PREMULTIPLY_SRC_CHANNEL});\n\t\t\tvalue *= premultiply;\n\t\t#endif\n\t#else\n\t\tlet x: f32 = uniform.sourceInvResolution.x;\n\t\tlet y: f32 = uniform.sourceInvResolution.y;\n\t\tlet a: half3 = half3(textureSample(sourceTexture, sourceTextureSampler, vec2f(input.uv0.x - 2.0 * x, input.uv0.y + 2.0 * y)).rgb);\n\t\tlet b: half3 = half3(textureSample(sourceTexture, sourceTextureSampler, vec2f(input.uv0.x,\t\t   input.uv0.y + 2.0 * y)).rgb);\n\t\tlet c: half3 = half3(textureSample(sourceTexture, sourceTextureSampler, vec2f(input.uv0.x + 2.0 * x, input.uv0.y + 2.0 * y)).rgb);\n\t\tlet d: half3 = half3(textureSample(sourceTexture, sourceTextureSampler, vec2f(input.uv0.x - 2.0 * x, input.uv0.y)).rgb);\n\t\tlet f: half3 = half3(textureSample(sourceTexture, sourceTextureSampler, vec2f(input.uv0.x + 2.0 * x, input.uv0.y)).rgb);\n\t\tlet g: half3 = half3(textureSample(sourceTexture, sourceTextureSampler, vec2f(input.uv0.x - 2.0 * x, input.uv0.y - 2.0 * y)).rgb);\n\t\tlet h: half3 = half3(textureSample(sourceTexture, sourceTextureSampler, vec2f(input.uv0.x,\t\t   input.uv0.y - 2.0 * y)).rgb);\n\t\tlet i: half3 = half3(textureSample(sourceTexture, sourceTextureSampler, vec2f(input.uv0.x + 2.0 * x, input.uv0.y - 2.0 * y)).rgb);\n\t\tlet j: half3 = half3(textureSample(sourceTexture, sourceTextureSampler, vec2f(input.uv0.x - x, input.uv0.y + y)).rgb);\n\t\tlet k: half3 = half3(textureSample(sourceTexture, sourceTextureSampler, vec2f(input.uv0.x + x, input.uv0.y + y)).rgb);\n\t\tlet l: half3 = half3(textureSample(sourceTexture, sourceTextureSampler, vec2f(input.uv0.x - x, input.uv0.y - y)).rgb);\n\t\tlet m: half3 = half3(textureSample(sourceTexture, sourceTextureSampler, vec2f(input.uv0.x + x, input.uv0.y - y)).rgb);\n\t\tvar value: half3 = e * half(0.125);\n\t\tvalue += (a + c + g + i) * half(0.03125);\n\t\tvalue += (b + d + f + h) * half(0.0625);\n\t\tvalue += (j + k + l + m) * half(0.125);\n\t#endif\n\t#ifdef REMOVE_INVALID\n\t\tvalue = max(value, half3(0.0));\n\t#endif\n\toutput.color = vec4f(vec3f(value), 1.0);\n\treturn output;\n}\n`;\n\nvar RenderPassDownsample = class extends RenderPassShaderQuad {\n\tconstructor(device, sourceTexture, options2 = {}) {\n\t\tsuper(device);\n\t\tthis.sourceTexture = sourceTexture;\n\t\tthis.premultiplyTexture = options2.premultiplyTexture;\n\t\tShaderChunks.get(device, SHADERLANGUAGE_GLSL).set(\"downsamplePS\", downsample_default);\n\t\tShaderChunks.get(device, SHADERLANGUAGE_WGSL).set(\"downsamplePS\", downsample_default2);\n\t\tconst boxFilter = options2.boxFilter ?? false;\n\t\tconst key = `${boxFilter ? \"Box\" : \"\"}-${options2.premultiplyTexture ? \"Premultiply\" : \"\"}-${options2.premultiplySrcChannel ?? \"\"}-${options2.removeInvalid ? \"RemoveInvalid\" : \"\"}`;\n\t\tconst defines = /* @__PURE__ */ new Map();\n\t\tif (boxFilter) defines.set(\"BOXFILTER\", \"\");\n\t\tif (options2.premultiplyTexture) defines.set(\"PREMULTIPLY\", \"\");\n\t\tif (options2.removeInvalid) defines.set(\"REMOVE_INVALID\", \"\");\n\t\tdefines.set(\"{PREMULTIPLY_SRC_CHANNEL}\", options2.premultiplySrcChannel ?? \"x\");\n\t\tthis.shader = ShaderUtils.createShader(device, {\n\t\t\tuniqueName: `DownSampleShader:${key}`,\n\t\t\tattributes: { aPosition: SEMANTIC_POSITION },\n\t\t\tvertexChunk: \"quadVS\",\n\t\t\tfragmentChunk: \"downsamplePS\",\n\t\t\tfragmentDefines: defines\n\t\t});\n\t\tthis.sourceTextureId = device.scope.resolve(\"sourceTexture\");\n\t\tthis.premultiplyTextureId = device.scope.resolve(\"premultiplyTexture\");\n\t\tthis.sourceInvResolutionId = device.scope.resolve(\"sourceInvResolution\");\n\t\tthis.sourceInvResolutionValue = new Float32Array(2);\n\t}\n\tsetSourceTexture(value) {\n\t\tthis._sourceTexture = value;\n\t\tthis.options.resizeSource = value;\n\t}\n\texecute() {\n\t\tthis.sourceTextureId.setValue(this.sourceTexture);\n\t\tif (this.premultiplyTexture) {\n\t\t\tthis.premultiplyTextureId.setValue(this.premultiplyTexture);\n\t\t}\n\t\tthis.sourceInvResolutionValue[0] = 1 / this.sourceTexture.width;\n\t\tthis.sourceInvResolutionValue[1] = 1 / this.sourceTexture.height;\n\t\tthis.sourceInvResolutionId.setValue(this.sourceInvResolutionValue);\n\t\tsuper.execute();\n\t}\n};\n\nvar upsample_default = `\n\tuniform sampler2D sourceTexture;\n\tuniform vec2 sourceInvResolution;\n\tvarying vec2 uv0;\n\tvoid main()\n\t{\n\t\tfloat x = sourceInvResolution.x;\n\t\tfloat y = sourceInvResolution.y;\n\t\tvec3 a = texture2D (sourceTexture, vec2 (uv0.x - x, uv0.y + y)).rgb;\n\t\tvec3 b = texture2D (sourceTexture, vec2 (uv0.x,\t uv0.y + y)).rgb;\n\t\tvec3 c = texture2D (sourceTexture, vec2 (uv0.x + x, uv0.y + y)).rgb;\n\t\tvec3 d = texture2D (sourceTexture, vec2 (uv0.x - x, uv0.y)).rgb;\n\t\tvec3 e = texture2D (sourceTexture, vec2 (uv0.x,\t uv0.y)).rgb;\n\t\tvec3 f = texture2D (sourceTexture, vec2 (uv0.x + x, uv0.y)).rgb;\n\t\tvec3 g = texture2D (sourceTexture, vec2 (uv0.x - x, uv0.y - y)).rgb;\n\t\tvec3 h = texture2D (sourceTexture, vec2 (uv0.x,\t uv0.y - y)).rgb;\n\t\tvec3 i = texture2D (sourceTexture, vec2 (uv0.x + x, uv0.y - y)).rgb;\n\t\tvec3 value = e * 0.25;\n\t\tvalue += (b + d + f + h) * 0.125;\n\t\tvalue += (a + c + g + i) * 0.0625;\n\t\tgl_FragColor = vec4(value, 1.0);\n\t}\n`;\n\nvar upsample_default2 = `\n\tvar sourceTexture: texture_2d<f32>;\n\tvar sourceTextureSampler: sampler;\n\tuniform sourceInvResolution: vec2f;\n\tvarying uv0: vec2f;\n\t@fragment\n\tfn fragmentMain(input: FragmentInput) -> FragmentOutput {\n\t\tvar output: FragmentOutput;\n\t\tlet x: f32 = uniform.sourceInvResolution.x;\n\t\tlet y: f32 = uniform.sourceInvResolution.y;\n\t\tlet a: half3 = half3(textureSample(sourceTexture, sourceTextureSampler, vec2f(input.uv0.x - x, input.uv0.y + y)).rgb);\n\t\tlet b: half3 = half3(textureSample(sourceTexture, sourceTextureSampler, vec2f(input.uv0.x,\t input.uv0.y + y)).rgb);\n\t\tlet c: half3 = half3(textureSample(sourceTexture, sourceTextureSampler, vec2f(input.uv0.x + x, input.uv0.y + y)).rgb);\n\t\tlet d: half3 = half3(textureSample(sourceTexture, sourceTextureSampler, vec2f(input.uv0.x - x, input.uv0.y)).rgb);\n\t\tlet e: half3 = half3(textureSample(sourceTexture, sourceTextureSampler, vec2f(input.uv0.x,\t input.uv0.y)).rgb);\n\t\tlet f: half3 = half3(textureSample(sourceTexture, sourceTextureSampler, vec2f(input.uv0.x + x, input.uv0.y)).rgb);\n\t\tlet g: half3 = half3(textureSample(sourceTexture, sourceTextureSampler, vec2f(input.uv0.x - x, input.uv0.y - y)).rgb);\n\t\tlet h: half3 = half3(textureSample(sourceTexture, sourceTextureSampler, vec2f(input.uv0.x,\t input.uv0.y - y)).rgb);\n\t\tlet i: half3 = half3(textureSample(sourceTexture, sourceTextureSampler, vec2f(input.uv0.x + x, input.uv0.y - y)).rgb);\n\t\tvar value: half3 = e * half(0.25);\n\t\tvalue += (b + d + f + h) * half(0.125);\n\t\tvalue += (a + c + g + i) * half(0.0625);\n\t\toutput.color = vec4f(vec3f(value), 1.0);\n\t\treturn output;\n\t}\n`;\n\nvar RenderPassUpsample = class extends RenderPassShaderQuad {\n\tconstructor(device, sourceTexture) {\n\t\tsuper(device);\n\t\tthis.sourceTexture = sourceTexture;\n\t\tShaderChunks.get(device, SHADERLANGUAGE_GLSL).set(\"upsamplePS\", upsample_default);\n\t\tShaderChunks.get(device, SHADERLANGUAGE_WGSL).set(\"upsamplePS\", upsample_default2);\n\t\tthis.shader = ShaderUtils.createShader(device, {\n\t\t\tuniqueName: \"UpSampleShader\",\n\t\t\tattributes: { aPosition: SEMANTIC_POSITION },\n\t\t\tvertexChunk: \"quadVS\",\n\t\t\tfragmentChunk: \"upsamplePS\"\n\t\t});\n\t\tthis.sourceTextureId = device.scope.resolve(\"sourceTexture\");\n\t\tthis.sourceInvResolutionId = device.scope.resolve(\"sourceInvResolution\");\n\t\tthis.sourceInvResolutionValue = new Float32Array(2);\n\t}\n\texecute() {\n\t\tthis.sourceTextureId.setValue(this.sourceTexture);\n\t\tthis.sourceInvResolutionValue[0] = 1 / this.sourceTexture.width;\n\t\tthis.sourceInvResolutionValue[1] = 1 / this.sourceTexture.height;\n\t\tthis.sourceInvResolutionId.setValue(this.sourceInvResolutionValue);\n\t\tsuper.execute();\n\t}\n};\n\nvar FramePassBloom = class extends FramePass {\n\tbloomTexture;\n\tblurLevel = 16;\n\tbloomRenderTarget;\n\ttextureFormat;\n\trenderTargets = [];\n\tconstructor(device, sourceTexture, format) {\n\t\tsuper(device);\n\t\tthis._sourceTexture = sourceTexture;\n\t\tthis.textureFormat = format;\n\t\tthis.bloomRenderTarget = this.createRenderTarget(0);\n\t\tthis.bloomTexture = this.bloomRenderTarget.colorBuffer;\n\t}\n\tdestroy() {\n\t\tthis.destroyRenderPasses();\n\t\tthis.destroyRenderTargets();\n\t}\n\tdestroyRenderTargets(startIndex = 0) {\n\t\tfor (let i2 = startIndex; i2 < this.renderTargets.length; i2++) {\n\t\t\tconst rt = this.renderTargets[i2];\n\t\t\trt.destroyTextureBuffers();\n\t\t\trt.destroy();\n\t\t}\n\t\tthis.renderTargets.length = 0;\n\t}\n\tdestroyRenderPasses() {\n\t\tfor (let i2 = 0; i2 < this.beforePasses.length; i2++) {\n\t\t\tthis.beforePasses[i2].destroy();\n\t\t}\n\t\tthis.beforePasses.length = 0;\n\t}\n\tcreateRenderTarget(index) {\n\t\treturn new RenderTarget({\n\t\t\tdepth: false,\n\t\t\tcolorBuffer: new Texture(this.device, {\n\t\t\t\tname: `BloomTexture${index}`,\n\t\t\t\twidth: 1,\n\t\t\t\theight: 1,\n\t\t\t\tformat: this.textureFormat,\n\t\t\t\tmipmaps: false,\n\t\t\t\tminFilter: FILTER_LINEAR,\n\t\t\t\tmagFilter: FILTER_LINEAR,\n\t\t\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE\n\t\t\t})\n\t\t});\n\t}\n\tcreateRenderTargets(count) {\n\t\tfor (let i2 = 0; i2 < count; i2++) {\n\t\t\tconst rt = i2 === 0 ? this.bloomRenderTarget : this.createRenderTarget(i2);\n\t\t\tthis.renderTargets.push(rt);\n\t\t}\n\t}\n\t// number of levels till hitting min size\n\tcalcMipLevels(width, height, minSize) {\n\t\tconst min = Math.min(width, height);\n\t\treturn Math.floor(Math.log2(min) - Math.log2(minSize));\n\t}\n\tcreateRenderPasses(numPasses) {\n\t\tconst device = this.device;\n\t\tlet passSourceTexture = this._sourceTexture;\n\t\tfor (let i2 = 0; i2 < numPasses; i2++) {\n\t\t\tconst pass = new RenderPassDownsample(device, passSourceTexture);\n\t\t\tconst rt = this.renderTargets[i2];\n\t\t\tpass.init(rt, {\n\t\t\t\tresizeSource: passSourceTexture,\n\t\t\t\tscaleX: 0.5,\n\t\t\t\tscaleY: 0.5\n\t\t\t});\n\t\t\tpass.setClearColor(Color.BLACK);\n\t\t\tthis.beforePasses.push(pass);\n\t\t\tpassSourceTexture = rt.colorBuffer;\n\t\t}\n\t\tpassSourceTexture = this.renderTargets[numPasses - 1].colorBuffer;\n\t\tfor (let i2 = numPasses - 2; i2 >= 0; i2--) {\n\t\t\tconst pass = new RenderPassUpsample(device, passSourceTexture);\n\t\t\tconst rt = this.renderTargets[i2];\n\t\t\tpass.init(rt);\n\t\t\tpass.blendState = BlendState.ADDBLEND;\n\t\t\tthis.beforePasses.push(pass);\n\t\t\tpassSourceTexture = rt.colorBuffer;\n\t\t}\n\t}\n\tonDisable() {\n\t\tthis.renderTargets[0]?.resize(1, 1);\n\t\tthis.destroyRenderPasses();\n\t\tthis.destroyRenderTargets(1);\n\t}\n\tframeUpdate() {\n\t\tsuper.frameUpdate();\n\t\tconst maxNumPasses = this.calcMipLevels(this._sourceTexture.width, this._sourceTexture.height, 1);\n\t\tconst numPasses = math.clamp(maxNumPasses, 1, this.blurLevel);\n\t\tif (this.renderTargets.length !== numPasses) {\n\t\t\tthis.destroyRenderPasses();\n\t\t\tthis.destroyRenderTargets(1);\n\t\t\tthis.createRenderTargets(numPasses);\n\t\t\tthis.createRenderPasses(numPasses);\n\t\t}\n\t}\n};\n\nvar compose_default = `\n\t#include \"tonemappingPS\"\n\t#include \"gammaPS\"\n\tvarying vec2 uv0;\n\tuniform sampler2D sceneTexture;\n\tuniform vec2 sceneTextureInvRes;\n\tuniform float composeTargetFlipY;\n\t#include \"composeBloomPS\"\n\t#include \"composeDofPS\"\n\t#include \"composeSsaoPS\"\n\t#include \"composeGradingPS\"\n\t#include \"composeColorEnhancePS\"\n\t#include \"composeVignettePS\"\n\t#include \"composeFringingPS\"\n\t#include \"composeCasPS\"\n\t#include \"composeColorLutPS\"\n\t#if DEBUG_COMPOSE == depth\n\t\t#include \"screenDepthPS\"\n\t#endif\n\t#include \"composeDeclarationsPS\"\n\tvoid main() {\n\t\t#include \"composeMainStartPS\"\n\t\tvec2 uv = vec2(uv0.x, mix(uv0.y, 1.0 - uv0.y, composeTargetFlipY));\n\t\tvec4 scene = texture2DLod(sceneTexture, uv, 0.0);\n\t\tvec3 result = scene.rgb;\n\t\t#ifdef CAS\n\t\t\tresult = applyCas(result, uv, sharpness);\n\t\t#endif\n\t\t#ifdef DOF\n\t\t\tresult = applyDof(result, uv);\n\t\t#endif\n\t\t#ifdef SSAO_TEXTURE\n\t\t\tresult = applySsao(result, uv);\n\t\t#endif\n\t\t#ifdef FRINGING\n\t\t\tresult = applyFringing(result, uv);\n\t\t#endif\n\t\t#ifdef BLOOM\n\t\t\tresult = applyBloom(result, uv);\n\t\t#endif\n\t\t#ifdef COLOR_ENHANCE\n\t\t\tresult = applyColorEnhance(result);\n\t\t#endif\n\t\t#ifdef GRADING\n\t\t\tresult = applyGrading(result);\n\t\t#endif\n\t\tresult = toneMap(max(vec3(0.0), result));\n\t\t#ifdef COLOR_LUT\n\t\t\tresult = applyColorLUT(result);\n\t\t#endif\n\t\t#ifdef VIGNETTE\n\t\t\tresult = applyVignette(result, uv);\n\t\t#endif\n\t\t#include \"composeMainEndPS\"\n\t\t#ifdef DEBUG_COMPOSE\n\t\t\t#if DEBUG_COMPOSE == scene\n\t\t\t\tresult = scene.rgb;\n\t\t\t#elif defined(BLOOM) && DEBUG_COMPOSE == bloom\n\t\t\t\tresult = dBloom * bloomIntensity;\n\t\t\t#elif defined(DOF) && DEBUG_COMPOSE == dofcoc\n\t\t\t\tresult = vec3(dCoc, 0.0);\n\t\t\t#elif defined(DOF) && DEBUG_COMPOSE == dofblur\n\t\t\t\tresult = dBlur;\n\t\t\t#elif defined(SSAO_TEXTURE) && DEBUG_COMPOSE == ssao\n\t\t\t\tresult = vec3(dSsao);\n\t\t\t#elif defined(VIGNETTE) && DEBUG_COMPOSE == vignette\n\t\t\t\tresult = vec3(dVignette);\n\t\t\t#elif DEBUG_COMPOSE == depth\n\t\t\t\tfloat dDepth = getLinearScreenDepth(uv);\n\t\t\t\tresult = vec3(clamp((dDepth - camera_params.z) / (camera_params.y - camera_params.z), 0.0, 1.0));\n\t\t\t#elif DEBUG_COMPOSE == depthmissing\n\t\t\t\tresult = vec3(0.0);\n\t\t\t#endif\n\t\t#endif\n\t\tresult = gammaCorrectOutput(result);\n\t\tgl_FragColor = vec4(result, scene.a);\n\t}\n`;\n\nvar compose_bloom_default = `\n\t#ifdef BLOOM\n\t\tuniform sampler2D bloomTexture;\n\t\tuniform float bloomIntensity;\n\t\t\n\t\tvec3 dBloom;\n\t\t\n\t\tvec3 applyBloom(vec3 color, vec2 uv) {\n\t\t\tdBloom = texture2DLod(bloomTexture, uv, 0.0).rgb;\n\t\t\treturn color + dBloom * bloomIntensity;\n\t\t}\n\t#endif\n`;\n\nvar compose_dof_default = `\n\t#ifdef DOF\n\t\tuniform sampler2D cocTexture;\n\t\tuniform sampler2D blurTexture;\n\t\t\n\t\tvec2 dCoc;\n\t\tvec3 dBlur;\n\t\tvec3 getDofBlur(vec2 uv) {\n\t\t\tdCoc = texture2DLod(cocTexture, uv, 0.0).rg;\n\t\t\t#if DOF_UPSCALE\n\t\t\t\tvec2 blurTexelSize = 1.0 / vec2(textureSize(blurTexture, 0));\n\t\t\t\tvec3 bilinearBlur = vec3(0.0);\n\t\t\t\tfloat totalWeight = 0.0;\n\t\t\t\tfor (int i = -1; i <= 1; i++) {\n\t\t\t\t\tfor (int j = -1; j <= 1; j++) {\n\t\t\t\t\t\tvec2 offset = vec2(i, j) * blurTexelSize;\n\t\t\t\t\t\tvec2 cocSample = texture2DLod(cocTexture, uv + offset, 0.0).rg;\n\t\t\t\t\t\tvec3 blurSample = texture2DLod(blurTexture, uv + offset, 0.0).rgb;\n\t\t\t\t\t\tfloat cocWeight = clamp(cocSample.r + cocSample.g, 0.0, 1.0);\n\t\t\t\t\t\tbilinearBlur += blurSample * cocWeight;\n\t\t\t\t\t\ttotalWeight += cocWeight;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (totalWeight > 0.0) {\n\t\t\t\t\tbilinearBlur /= totalWeight;\n\t\t\t\t}\n\t\t\t\tdBlur = bilinearBlur;\n\t\t\t\treturn bilinearBlur;\n\t\t\t#else\n\t\t\t\tdBlur = texture2DLod(blurTexture, uv, 0.0).rgb;\n\t\t\t\treturn dBlur;\n\t\t\t#endif\n\t\t}\n\t\tvec3 applyDof(vec3 color, vec2 uv) {\n\t\t\tvec3 blur = getDofBlur(uv);\n\t\t\treturn mix(color, blur, dCoc.r + dCoc.g);\n\t\t}\n\t#endif\n`;\n\nvar compose_ssao_default = `\n\t#ifdef SSAO\n\t\t#define SSAO_TEXTURE\n\t#endif\n\t#if DEBUG_COMPOSE == ssao\n\t\t#define SSAO_TEXTURE\n\t#endif\n\t#ifdef SSAO_TEXTURE\n\t\tuniform sampler2D ssaoTexture;\n\t\t\n\t\tfloat dSsao;\n\t\t\n\t\tvec3 applySsao(vec3 color, vec2 uv) {\n\t\t\tdSsao = texture2DLod(ssaoTexture, uv, 0.0).r;\n\t\t\t\n\t\t\t#ifdef SSAO\n\t\t\t\treturn color * dSsao;\n\t\t\t#else\n\t\t\t\treturn color;\n\t\t\t#endif\n\t\t}\n\t#endif\n`;\n\nvar compose_grading_default = `\n\t#ifdef GRADING\n\t\tuniform vec3 brightnessContrastSaturation;\n\t\tuniform vec3 tint;\n\t\tvec3 colorGradingHDR(vec3 color, float brt, float sat, float con) {\n\t\t\tcolor *= tint;\n\t\t\tcolor = color * brt;\n\t\t\tfloat grey = dot(color, vec3(0.3, 0.59, 0.11));\n\t\t\tgrey = grey / max(1.0, max(color.r, max(color.g, color.b)));\n\t\t\tcolor = mix(vec3(grey), color, sat);\n\t\t\treturn mix(vec3(0.5), color, con);\n\t\t}\n\t\tvec3 applyGrading(vec3 color) {\n\t\t\treturn colorGradingHDR(color, \n\t\t\t\tbrightnessContrastSaturation.x, \n\t\t\t\tbrightnessContrastSaturation.z, \n\t\t\t\tbrightnessContrastSaturation.y);\n\t\t}\n\t#endif\n`;\n\nvar compose_color_enhance_default = `\n\t#ifdef COLOR_ENHANCE\n\t\tuniform vec4 colorEnhanceParams;\n\t\tuniform float colorEnhanceMidtones;\n\t\tvec3 applyColorEnhance(vec3 color) {\n\t\t\tfloat maxChannel = max(color.r, max(color.g, color.b));\n\t\t\tfloat lum = dot(color, vec3(0.2126, 0.7152, 0.0722));\n\t\t\tif (colorEnhanceParams.x != 0.0 || colorEnhanceParams.y != 0.0) {\n\t\t\t\tfloat logLum = log2(max(lum, 0.001)) / 10.0 + 0.5;\n\t\t\t\tlogLum = clamp(logLum, 0.0, 1.0);\n\t\t\t\tfloat shadowWeight = pow(1.0 - logLum, 2.0);\n\t\t\t\tfloat highlightWeight = pow(logLum, 2.0);\n\t\t\t\tcolor *= pow(2.0, colorEnhanceParams.x * shadowWeight);\n\t\t\t\tcolor *= pow(2.0, colorEnhanceParams.y * highlightWeight);\n\t\t\t}\n\t\t\tif (colorEnhanceMidtones != 0.0) {\n\t\t\t\tconst float pivot = 0.18;\n\t\t\t\tconst float widthStops = 1.25;\n\t\t\t\tconst float maxStops = 2.0;\n\t\t\t\tfloat y = max(dot(color, vec3(0.2126, 0.7152, 0.0722)), 1e-6);\n\t\t\t\tfloat d = log2(y / pivot);\n\t\t\t\tfloat w = exp(-(d * d) / (2.0 * widthStops * widthStops));\n\t\t\t\tfloat stops = colorEnhanceMidtones * maxStops * w;\n\t\t\t\tcolor *= exp2(stops);\n\t\t\t}\n\t\t\tif (colorEnhanceParams.z != 0.0) {\n\t\t\t\tfloat minChannel = min(color.r, min(color.g, color.b));\n\t\t\t\tmaxChannel = max(color.r, max(color.g, color.b));\n\t\t\t\tfloat sat = (maxChannel - minChannel) / max(maxChannel, 0.001);\n\t\t\t\tlum = dot(color, vec3(0.2126, 0.7152, 0.0722));\n\t\t\t\tfloat normalizedLum = lum / max(1.0, maxChannel);\n\t\t\t\tvec3 grey = vec3(normalizedLum) * maxChannel;\n\t\t\t\tfloat satBoost = colorEnhanceParams.z * (1.0 - sat);\n\t\t\t\tcolor = mix(grey, color, 1.0 + satBoost);\n\t\t\t}\n\t\t\tif (colorEnhanceParams.w != 0.0) {\n\t\t\t\tmaxChannel = max(color.r, max(color.g, color.b));\n\t\t\t\tfloat scale = max(1.0, maxChannel);\n\t\t\t\tvec3 normalized = color / scale;\n\t\t\t\tfloat darkChannel = min(normalized.r, min(normalized.g, normalized.b));\n\t\t\t\tfloat atmosphericLight = 0.95;\n\t\t\t\tfloat t = 1.0 - colorEnhanceParams.w * darkChannel / atmosphericLight;\n\t\t\t\tt = max(t, 0.1);\n\t\t\t\tvec3 dehazed = (normalized - atmosphericLight) / t + atmosphericLight;\n\t\t\t\tcolor = dehazed * scale;\n\t\t\t}\n\t\t\treturn max(vec3(0.0), color);\n\t\t}\n\t#endif\n`;\n\nvar compose_vignette_default = `\n\t#ifdef VIGNETTE\n\t\tuniform vec4 vignetterParams;\n\t\tuniform vec3 vignetteColor;\n\t\t\n\t\tfloat dVignette;\n\t\t\n\t\tfloat calcVignette(vec2 uv) {\n\t\t\tfloat inner = vignetterParams.x;\n\t\t\tfloat outer = vignetterParams.y;\n\t\t\tfloat curvature = vignetterParams.z;\n\t\t\tfloat intensity = vignetterParams.w;\n\t\t\tvec2 curve = pow(abs(uv * 2.0 -1.0), vec2(1.0 / curvature));\n\t\t\tfloat edge = pow(length(curve), curvature);\n\t\t\tdVignette = 1.0 - intensity * smoothstep(inner, outer, edge);\n\t\t\treturn dVignette;\n\t\t}\n\t\tvec3 applyVignette(vec3 color, vec2 uv) {\n\t\t\treturn mix(vignetteColor, color, calcVignette(uv));\n\t\t}\n\t#endif\n`;\n\nvar compose_fringing_default = `\n\t#ifdef FRINGING\n\t\tuniform float fringingIntensity;\n\t\tvec3 applyFringing(vec3 color, vec2 uv) {\n\t\t\tvec2 centerDistance = uv - 0.5;\n\t\t\tvec2 offset = fringingIntensity * centerDistance * centerDistance;\n\t\t\tcolor.r = texture2D(sceneTexture, uv - offset).r;\n\t\t\tcolor.b = texture2D(sceneTexture, uv + offset).b;\n\t\t\treturn color;\n\t\t}\n\t#endif\n`;\n\nvar compose_cas_default = `\n\t#ifdef CAS\n\t\tuniform float sharpness;\n\t\t#ifdef CAS_HDR\n\t\t\tfloat maxComponent(float x, float y, float z) { return max(x, max(y, z)); }\n\t\t\tvec3 toSDR(vec3 c) { return c / (1.0 + maxComponent(c.r, c.g, c.b)); }\n\t\t\tvec3 toHDR(vec3 c) { return c / max(1.0 - maxComponent(c.r, c.g, c.b), 1e-4); }\n\t\t#else\n\t\t\tvec3 toSDR(vec3 c) { return c; }\n\t\t\tvec3 toHDR(vec3 c) { return c; }\n\t\t#endif\n\t\tvec3 applyCas(vec3 color, vec2 uv, float sharpness) {\n\t\t\tfloat x = sceneTextureInvRes.x;\n\t\t\tfloat y = sceneTextureInvRes.y;\n\t\t\tvec3 a = toSDR(texture2DLod(sceneTexture, uv + vec2(0.0, -y), 0.0).rgb);\n\t\t\tvec3 b = toSDR(texture2DLod(sceneTexture, uv + vec2(-x, 0.0), 0.0).rgb);\n\t\t\tvec3 c = toSDR(color.rgb);\n\t\t\tvec3 d = toSDR(texture2DLod(sceneTexture, uv + vec2(x, 0.0), 0.0).rgb);\n\t\t\tvec3 e = toSDR(texture2DLod(sceneTexture, uv + vec2(0.0, y), 0.0).rgb);\n\t\t\tfloat min_g = min(a.g, min(b.g, min(c.g, min(d.g, e.g))));\n\t\t\tfloat max_g = max(a.g, max(b.g, max(c.g, max(d.g, e.g))));\n\t\t\tfloat sharpening_amount = sqrt(min(1.0 - max_g, min_g) / max(max_g, 1e-4));\n\t\t\tfloat w = sharpening_amount * sharpness;\n\t\t\tvec3 res = (w * (a + b + d + e) + c) / (4.0 * w + 1.0);\n\t\t\tres = max(res, 0.0);\n\t\t\treturn toHDR(res);\n\t\t}\n\t#endif\n`;\n\nvar compose_color_lut_default = `\n\t#ifdef COLOR_LUT\n\t\tconst float COLOR_LUT_N = 16.0;\n\t\tconst float COLOR_LUT_W = 256.0;\n\t\tconst float COLOR_LUT_MAX = COLOR_LUT_N - 1.0;\n\t\tconst float COLOR_LUT_HALF_PX_X = 0.5 / COLOR_LUT_W;\n\t\tconst float COLOR_LUT_HALF_PX_Y = 0.5 / COLOR_LUT_N;\n\t\tconst float COLOR_LUT_R_SCALE = COLOR_LUT_MAX / COLOR_LUT_W;\n\t\tconst float COLOR_LUT_G_SCALE = COLOR_LUT_MAX / COLOR_LUT_N;\n\t\tconst float COLOR_LUT_SLICE = 1.0 / COLOR_LUT_N;\n\t\tuniform vec3 colorLUTParams;\n\t\tuniform sampler2D colorLUT;\n\t\t#ifdef COLOR_LUT2\n\t\t\tuniform sampler2D colorLUT2;\n\t\t#endif\n\t\tvec3 sampleColorLUT(sampler2D lut, vec2 uv_l, vec2 uv_h, float t) {\n\t\t\tvec3 color_l = texture2DLod(lut, uv_l, 0.0).rgb;\n\t\t\tvec3 color_h = texture2DLod(lut, uv_h, 0.0).rgb;\n\t\t\treturn mix(color_l, color_h, t);\n\t\t}\n\t\tvec3 applyColorLUT(vec3 color) {\n\t\t\tvec3 srgbCoord = pow(max(color, vec3(0.0)) + 0.0000001, vec3(1.0 / 2.2));\n\t\t\tvec3 c = clamp(srgbCoord, 0.0, 1.0);\n\t\t\tfloat cell = c.b * COLOR_LUT_MAX;\n\t\t\tfloat cell_l = floor(cell);\n\t\t\tfloat cell_h = ceil(cell);\n\t\t\tfloat t = fract(cell);\n\t\t\tfloat r_offset = COLOR_LUT_HALF_PX_X + c.r * COLOR_LUT_R_SCALE;\n\t\t\tfloat g_offset = COLOR_LUT_HALF_PX_Y + c.g * COLOR_LUT_G_SCALE;\n\t\t\tvec2 uv_l = vec2(cell_l * COLOR_LUT_SLICE + r_offset, g_offset);\n\t\t\tvec2 uv_h = vec2(cell_h * COLOR_LUT_SLICE + r_offset, g_offset);\n\t\t\tvec3 lut1 = sampleColorLUT(colorLUT, uv_l, uv_h, t);\n\t\t\t#ifdef COLOR_LUT2\n\t\t\t\tvec3 lut2 = sampleColorLUT(colorLUT2, uv_l, uv_h, t);\n\t\t\t\tfloat w1 = colorLUTParams.x * (1.0 - colorLUTParams.z);\n\t\t\t\tfloat w2 = colorLUTParams.y * colorLUTParams.z;\n\t\t\t\treturn color + (lut1 - color) * w1 + (lut2 - color) * w2;\n\t\t\t#else\n\t\t\t\treturn mix(color, lut1, colorLUTParams.x);\n\t\t\t#endif\n\t\t}\n\t#endif\n`;\n\nvar composeChunksGLSL = {\n\tcomposePS: compose_default,\n\tcomposeBloomPS: compose_bloom_default,\n\tcomposeDofPS: compose_dof_default,\n\tcomposeSsaoPS: compose_ssao_default,\n\tcomposeGradingPS: compose_grading_default,\n\tcomposeColorEnhancePS: compose_color_enhance_default,\n\tcomposeVignettePS: compose_vignette_default,\n\tcomposeFringingPS: compose_fringing_default,\n\tcomposeCasPS: compose_cas_default,\n\tcomposeColorLutPS: compose_color_lut_default,\n\t// empty chunks for user customizations\n\tcomposeDeclarationsPS: \"\",\n\tcomposeMainStartPS: \"\",\n\tcomposeMainEndPS: \"\"\n};\n\nvar compose_default2 = `\n\t#include \"tonemappingPS\"\n\t#include \"gammaPS\"\n\tvarying uv0: vec2f;\n\tvar sceneTexture: texture_2d<f32>;\n\tvar sceneTextureSampler: sampler;\n\tuniform sceneTextureInvRes: vec2f;\n\tuniform composeTargetFlipY: f32;\n\t#include \"composeBloomPS\"\n\t#include \"composeDofPS\"\n\t#include \"composeSsaoPS\"\n\t#include \"composeGradingPS\"\n\t#include \"composeColorEnhancePS\"\n\t#include \"composeVignettePS\"\n\t#include \"composeFringingPS\"\n\t#include \"composeCasPS\"\n\t#include \"composeColorLutPS\"\n\t#if DEBUG_COMPOSE == depth\n\t\t#include \"screenDepthPS\"\n\t#endif\n\t#include \"composeDeclarationsPS\"\n\t@fragment\n\tfn fragmentMain(input: FragmentInput) -> FragmentOutput {\n\t\t#include \"composeMainStartPS\"\n\t\tvar output: FragmentOutput;\n\t\tvar uv = vec2f(uv0.x, mix(uv0.y, 1.0 - uv0.y, uniform.composeTargetFlipY));\n\t\tlet scene = textureSampleLevel(sceneTexture, sceneTextureSampler, uv, 0.0);\n\t\tvar result = scene.rgb;\n\t\t#ifdef CAS\n\t\t\tresult = applyCas(result, uv, uniform.sharpness);\n\t\t#endif\n\t\t#ifdef DOF\n\t\t\tresult = applyDof(result, uv);\n\t\t#endif\n\t\t#ifdef SSAO_TEXTURE\n\t\t\tresult = applySsao(result, uv);\n\t\t#endif\n\t\t#ifdef FRINGING\n\t\t\tresult = applyFringing(result, uv);\n\t\t#endif\n\t\t#ifdef BLOOM\n\t\t\tresult = applyBloom(result, uv);\n\t\t#endif\n\t\t#ifdef COLOR_ENHANCE\n\t\t\tresult = applyColorEnhance(result);\n\t\t#endif\n\t\t#ifdef GRADING\n\t\t\tresult = applyGrading(result);\n\t\t#endif\n\t\tresult = toneMap(max(vec3f(0.0), result));\n\t\t#ifdef COLOR_LUT\n\t\t\tresult = applyColorLUT(result);\n\t\t#endif\n\t\t#ifdef VIGNETTE\n\t\t\tresult = applyVignette(result, uv);\n\t\t#endif\n\t\t#include \"composeMainEndPS\"\n\t\t#ifdef DEBUG_COMPOSE\n\t\t\t#if DEBUG_COMPOSE == scene\n\t\t\t\tresult = scene.rgb;\n\t\t\t#elif defined(BLOOM) && DEBUG_COMPOSE == bloom\n\t\t\t\tresult = dBloom * uniform.bloomIntensity;\n\t\t\t#elif defined(DOF) && DEBUG_COMPOSE == dofcoc\n\t\t\t\tresult = vec3f(dCoc, 0.0);\n\t\t\t#elif defined(DOF) && DEBUG_COMPOSE == dofblur\n\t\t\t\tresult = dBlur;\n\t\t\t#elif defined(SSAO_TEXTURE) && DEBUG_COMPOSE == ssao\n\t\t\t\tresult = vec3f(dSsao);\n\t\t\t#elif defined(VIGNETTE) && DEBUG_COMPOSE == vignette\n\t\t\t\tresult = vec3f(dVignette);\n\t\t\t#elif DEBUG_COMPOSE == depth\n\t\t\t\tlet dDepth = getLinearScreenDepth(uv);\n\t\t\t\tresult = vec3f(clamp((dDepth - uniform.camera_params.z) / (uniform.camera_params.y - uniform.camera_params.z), 0.0, 1.0));\n\t\t\t#elif DEBUG_COMPOSE == depthmissing\n\t\t\t\tresult = vec3f(0.0);\n\t\t\t#endif\n\t\t#endif\n\t\tresult = gammaCorrectOutput(result);\n\t\toutput.color = vec4f(result, scene.a);\n\t\treturn output;\n\t}\n`;\n\nvar compose_bloom_default2 = `\n\t#ifdef BLOOM\n\t\tvar bloomTexture: texture_2d<f32>;\n\t\tvar bloomTextureSampler: sampler;\n\t\tuniform bloomIntensity: f32;\n\t\t\n\t\tvar<private> dBloom: vec3f;\n\t\t\n\t\tfn applyBloom(color: vec3f, uv: vec2f) -> vec3f {\n\t\t\tdBloom = textureSampleLevel(bloomTexture, bloomTextureSampler, uv, 0.0).rgb;\n\t\t\treturn color + dBloom * uniform.bloomIntensity;\n\t\t}\n\t#endif\n`;\n\nvar compose_dof_default2 = `\n\t#ifdef DOF\n\t\tvar cocTexture: texture_2d<f32>;\n\t\tvar cocTextureSampler: sampler;\n\t\tvar blurTexture: texture_2d<f32>;\n\t\tvar blurTextureSampler: sampler;\n\t\t\n\t\tvar<private> dCoc: vec2f;\n\t\tvar<private> dBlur: vec3f;\n\t\tfn getDofBlur(uv: vec2f) -> vec3f {\n\t\t\tdCoc = textureSampleLevel(cocTexture, cocTextureSampler, uv, 0.0).rg;\n\t\t\t#if DOF_UPSCALE\n\t\t\t\tlet blurTexelSize = 1.0 / vec2f(textureDimensions(blurTexture, 0));\n\t\t\t\tvar bilinearBlur = vec3f(0.0);\n\t\t\t\tvar totalWeight = 0.0;\n\t\t\t\tfor (var i = -1; i <= 1; i++) {\n\t\t\t\t\tfor (var j = -1; j <= 1; j++) {\n\t\t\t\t\t\tlet offset = vec2f(f32(i), f32(j)) * blurTexelSize;\n\t\t\t\t\t\tlet cocSample = textureSampleLevel(cocTexture, cocTextureSampler, uv + offset, 0.0).rg;\n\t\t\t\t\t\tlet blurSample = textureSampleLevel(blurTexture, blurTextureSampler, uv + offset, 0.0).rgb;\n\t\t\t\t\t\tlet cocWeight = clamp(cocSample.r + cocSample.g, 0.0, 1.0);\n\t\t\t\t\t\tbilinearBlur += blurSample * cocWeight;\n\t\t\t\t\t\ttotalWeight += cocWeight;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (totalWeight > 0.0) {\n\t\t\t\t\tbilinearBlur /= totalWeight;\n\t\t\t\t}\n\t\t\t\tdBlur = bilinearBlur;\n\t\t\t\treturn bilinearBlur;\n\t\t\t#else\n\t\t\t\tdBlur = textureSampleLevel(blurTexture, blurTextureSampler, uv, 0.0).rgb;\n\t\t\t\treturn dBlur;\n\t\t\t#endif\n\t\t}\n\t\tfn applyDof(color: vec3f, uv: vec2f) -> vec3f {\n\t\t\tlet blur = getDofBlur(uv);\n\t\t\treturn mix(color, blur, dCoc.r + dCoc.g);\n\t\t}\n\t#endif\n`;\n\nvar compose_ssao_default2 = `\n\t#ifdef SSAO\n\t\t#define SSAO_TEXTURE\n\t#endif\n\t#if DEBUG_COMPOSE == ssao\n\t\t#define SSAO_TEXTURE\n\t#endif\n\t#ifdef SSAO_TEXTURE\n\t\tvar ssaoTexture: texture_2d<f32>;\n\t\tvar ssaoTextureSampler: sampler;\n\t\t\n\t\tvar<private> dSsao: f32;\n\t\t\n\t\tfn applySsao(color: vec3f, uv: vec2f) -> vec3f {\n\t\t\tdSsao = textureSampleLevel(ssaoTexture, ssaoTextureSampler, uv, 0.0).r;\n\t\t\t\n\t\t\t#ifdef SSAO\n\t\t\t\treturn color * dSsao;\n\t\t\t#else\n\t\t\t\treturn color;\n\t\t\t#endif\n\t\t}\n\t#endif\n`;\n\nvar compose_grading_default2 = `\n\t#ifdef GRADING\n\t\tuniform brightnessContrastSaturation: vec3f;\n\t\tuniform tint: vec3f;\n\t\tfn colorGradingHDR(color: vec3f, brt: f32, sat: f32, con: f32) -> vec3f {\n\t\t\tvar colorOut = color * uniform.tint;\n\t\t\tcolorOut = colorOut * brt;\n\t\t\tlet grey = dot(colorOut, vec3f(0.3, 0.59, 0.11));\n\t\t\tlet normalizedGrey = grey / max(1.0, max(colorOut.r, max(colorOut.g, colorOut.b)));\n\t\t\tcolorOut = mix(vec3f(normalizedGrey), colorOut, sat);\n\t\t\treturn mix(vec3f(0.5), colorOut, con);\n\t\t}\n\t\tfn applyGrading(color: vec3f) -> vec3f {\n\t\t\treturn colorGradingHDR(color, \n\t\t\t\tuniform.brightnessContrastSaturation.x, \n\t\t\t\tuniform.brightnessContrastSaturation.z, \n\t\t\t\tuniform.brightnessContrastSaturation.y);\n\t\t}\n\t#endif\n`;\n\nvar compose_color_enhance_default2 = `\n\t#ifdef COLOR_ENHANCE\n\t\tuniform colorEnhanceParams: vec4f;\n\t\tuniform colorEnhanceMidtones: f32;\n\t\tfn applyColorEnhance(color: vec3f) -> vec3f {\n\t\t\tvar colorOut = color;\n\t\t\tvar maxChannel = max(colorOut.r, max(colorOut.g, colorOut.b));\n\t\t\tvar lum = dot(colorOut, vec3f(0.2126, 0.7152, 0.0722));\n\t\t\tif (uniform.colorEnhanceParams.x != 0.0 || uniform.colorEnhanceParams.y != 0.0) {\n\t\t\t\tvar logLum = log2(max(lum, 0.001)) / 10.0 + 0.5;\n\t\t\t\tlogLum = clamp(logLum, 0.0, 1.0);\n\t\t\t\tlet shadowWeight = pow(1.0 - logLum, 2.0);\n\t\t\t\tlet highlightWeight = pow(logLum, 2.0);\n\t\t\t\tcolorOut *= pow(2.0, uniform.colorEnhanceParams.x * shadowWeight);\n\t\t\t\tcolorOut *= pow(2.0, uniform.colorEnhanceParams.y * highlightWeight);\n\t\t\t}\n\t\t\tif (uniform.colorEnhanceMidtones != 0.0) {\n\t\t\t\tlet pivot = 0.18;\n\t\t\t\tlet widthStops = 1.25;\n\t\t\t\tlet maxStops = 2.0;\n\t\t\t\tlet y = max(dot(colorOut, vec3f(0.2126, 0.7152, 0.0722)), 1e-6);\n\t\t\t\tlet d = log2(y / pivot);\n\t\t\t\tlet w = exp(-(d * d) / (2.0 * widthStops * widthStops));\n\t\t\t\tlet stops = uniform.colorEnhanceMidtones * maxStops * w;\n\t\t\t\tcolorOut *= exp2(stops);\n\t\t\t}\n\t\t\tif (uniform.colorEnhanceParams.z != 0.0) {\n\t\t\t\tlet minChannel = min(colorOut.r, min(colorOut.g, colorOut.b));\n\t\t\t\tmaxChannel = max(colorOut.r, max(colorOut.g, colorOut.b));\n\t\t\t\tlet sat = (maxChannel - minChannel) / max(maxChannel, 0.001);\n\t\t\t\tlum = dot(colorOut, vec3f(0.2126, 0.7152, 0.0722));\n\t\t\t\tlet normalizedLum = lum / max(1.0, maxChannel);\n\t\t\t\tlet grey = vec3f(normalizedLum) * maxChannel;\n\t\t\t\tlet satBoost = uniform.colorEnhanceParams.z * (1.0 - sat);\n\t\t\t\tcolorOut = mix(grey, colorOut, 1.0 + satBoost);\n\t\t\t}\n\t\t\tif (uniform.colorEnhanceParams.w != 0.0) {\n\t\t\t\tmaxChannel = max(colorOut.r, max(colorOut.g, colorOut.b));\n\t\t\t\tlet scale = max(1.0, maxChannel);\n\t\t\t\tlet normalized = colorOut / scale;\n\t\t\t\tlet darkChannel = min(normalized.r, min(normalized.g, normalized.b));\n\t\t\t\tlet atmosphericLight = 0.95;\n\t\t\t\tvar t = 1.0 - uniform.colorEnhanceParams.w * darkChannel / atmosphericLight;\n\t\t\t\tt = max(t, 0.1);\n\t\t\t\tlet dehazed = (normalized - atmosphericLight) / t + atmosphericLight;\n\t\t\t\tcolorOut = dehazed * scale;\n\t\t\t}\n\t\t\treturn max(vec3f(0.0), colorOut);\n\t\t}\n\t#endif\n`;\n\nvar compose_vignette_default2 = `\n\t#ifdef VIGNETTE\n\t\tuniform vignetterParams: vec4f;\n\t\tuniform vignetteColor: vec3f;\n\t\t\n\t\tvar<private> dVignette: f32;\n\t\t\n\t\tfn calcVignette(uv: vec2f) -> f32 {\n\t\t\tlet inner = uniform.vignetterParams.x;\n\t\t\tlet outer = uniform.vignetterParams.y;\n\t\t\tlet curvature = uniform.vignetterParams.z;\n\t\t\tlet intensity = uniform.vignetterParams.w;\n\t\t\tlet curve = pow(abs(uv * 2.0 - 1.0), vec2f(1.0 / curvature));\n\t\t\tlet edge = pow(length(curve), curvature);\n\t\t\tdVignette = 1.0 - intensity * smoothstep(inner, outer, edge);\n\t\t\treturn dVignette;\n\t\t}\n\t\tfn applyVignette(color: vec3f, uv: vec2f) -> vec3f {\n\t\t\treturn mix(uniform.vignetteColor, color, calcVignette(uv));\n\t\t}\n\t#endif\n`;\n\nvar compose_fringing_default2 = `\n\t#ifdef FRINGING\n\t\tuniform fringingIntensity: f32;\n\t\tfn applyFringing(color: vec3f, uv: vec2f) -> vec3f {\n\t\t\tlet centerDistance = uv - 0.5;\n\t\t\tlet offset = uniform.fringingIntensity * centerDistance * centerDistance;\n\t\t\tvar colorOut = color;\n\t\t\tcolorOut.r = textureSample(sceneTexture, sceneTextureSampler, uv - offset).r;\n\t\t\tcolorOut.b = textureSample(sceneTexture, sceneTextureSampler, uv + offset).b;\n\t\t\treturn colorOut;\n\t\t}\n\t#endif\n`;\n\nvar compose_cas_default2 = `\n\t#ifdef CAS\n\t\tuniform sharpness: f32;\n\t\t#ifdef CAS_HDR\n\t\t\tfn maxComponent(x: f32, y: f32, z: f32) -> f32 { return max(x, max(y, z)); }\n\t\t\tfn toSDR(c: vec3f) -> vec3f { return c / (1.0 + maxComponent(c.r, c.g, c.b)); }\n\t\t\tfn toHDR(c: vec3f) -> vec3f { return c / max(1.0 - maxComponent(c.r, c.g, c.b), 1e-4); }\n\t\t#else\n\t\t\tfn toSDR(c: vec3f) -> vec3f { return c; }\n\t\t\tfn toHDR(c: vec3f) -> vec3f { return c; }\n\t\t#endif\n\t\tfn applyCas(color: vec3f, uv: vec2f, sharpness: f32) -> vec3f {\n\t\t\tlet x = uniform.sceneTextureInvRes.x;\n\t\t\tlet y = uniform.sceneTextureInvRes.y;\n\t\t\tlet a: half3 = half3(toSDR(textureSampleLevel(sceneTexture, sceneTextureSampler, uv + vec2f(0.0, -y), 0.0).rgb));\n\t\t\tlet b: half3 = half3(toSDR(textureSampleLevel(sceneTexture, sceneTextureSampler, uv + vec2f(-x, 0.0), 0.0).rgb));\n\t\t\tlet c: half3 = half3(toSDR(color.rgb));\n\t\t\tlet d: half3 = half3(toSDR(textureSampleLevel(sceneTexture, sceneTextureSampler, uv + vec2f(x, 0.0), 0.0).rgb));\n\t\t\tlet e: half3 = half3(toSDR(textureSampleLevel(sceneTexture, sceneTextureSampler, uv + vec2f(0.0, y), 0.0).rgb));\n\t\t\tlet min_g = min(a.g, min(b.g, min(c.g, min(d.g, e.g))));\n\t\t\tlet max_g = max(a.g, max(b.g, max(c.g, max(d.g, e.g))));\n\t\t\tlet sharpening_amount = sqrt(min(half(1.0) - max_g, min_g) / max(max_g, half(1e-4)));\n\t\t\tlet w = sharpening_amount * half(sharpness);\n\t\t\tvar res = (w * (a + b + d + e) + c) / (half(4.0) * w + half(1.0));\n\t\t\tres = max(res, half3(0.0));\n\t\t\treturn toHDR(vec3f(res));\n\t\t}\n\t#endif\n`;\n\nvar compose_color_lut_default2 = `\n\t#ifdef COLOR_LUT\n\t\tconst COLOR_LUT_N: f32 = 16.0;\n\t\tconst COLOR_LUT_W: f32 = 256.0;\n\t\tconst COLOR_LUT_MAX: f32 = COLOR_LUT_N - 1.0;\n\t\tconst COLOR_LUT_HALF_PX_X: f32 = 0.5 / COLOR_LUT_W;\n\t\tconst COLOR_LUT_HALF_PX_Y: f32 = 0.5 / COLOR_LUT_N;\n\t\tconst COLOR_LUT_R_SCALE: f32 = COLOR_LUT_MAX / COLOR_LUT_W;\n\t\tconst COLOR_LUT_G_SCALE: f32 = COLOR_LUT_MAX / COLOR_LUT_N;\n\t\tconst COLOR_LUT_SLICE: f32 = 1.0 / COLOR_LUT_N;\n\t\tuniform colorLUTParams: vec3f;\n\t\tvar colorLUT: texture_2d<f32>;\n\t\tvar colorLUTSampler: sampler;\n\t\t#ifdef COLOR_LUT2\n\t\t\tvar colorLUT2: texture_2d<f32>;\n\t\t\tvar colorLUT2Sampler: sampler;\n\t\t#endif\n\t\tfn sampleColorLUT(lut: texture_2d<f32>, lutSampler: sampler, uv_l: vec2f, uv_h: vec2f, t: f32) -> vec3f {\n\t\t\tlet color_l: vec3f = textureSampleLevel(lut, lutSampler, uv_l, 0.0).rgb;\n\t\t\tlet color_h: vec3f = textureSampleLevel(lut, lutSampler, uv_h, 0.0).rgb;\n\t\t\treturn mix(color_l, color_h, vec3f(t));\n\t\t}\n\t\tfn applyColorLUT(color: vec3f) -> vec3f {\n\t\t\tlet srgbCoord: vec3f = pow(max(color, vec3f(0.0)) + vec3f(0.0000001), vec3f(1.0 / 2.2));\n\t\t\tlet c: vec3f = clamp(srgbCoord, vec3f(0.0), vec3f(1.0));\n\t\t\tlet cell: f32 = c.b * COLOR_LUT_MAX;\n\t\t\tlet cell_l: f32 = floor(cell);\n\t\t\tlet cell_h: f32 = ceil(cell);\n\t\t\tlet t: f32 = fract(cell);\n\t\t\tlet r_offset: f32 = COLOR_LUT_HALF_PX_X + c.r * COLOR_LUT_R_SCALE;\n\t\t\tlet g_offset: f32 = COLOR_LUT_HALF_PX_Y + c.g * COLOR_LUT_G_SCALE;\n\t\t\tlet uv_l: vec2f = vec2f(cell_l * COLOR_LUT_SLICE + r_offset, g_offset);\n\t\t\tlet uv_h: vec2f = vec2f(cell_h * COLOR_LUT_SLICE + r_offset, g_offset);\n\t\t\tlet lut1: vec3f = sampleColorLUT(colorLUT, colorLUTSampler, uv_l, uv_h, t);\n\t\t\t#ifdef COLOR_LUT2\n\t\t\t\tlet lut2: vec3f = sampleColorLUT(colorLUT2, colorLUT2Sampler, uv_l, uv_h, t);\n\t\t\t\tlet w1: f32 = uniform.colorLUTParams.x * (1.0 - uniform.colorLUTParams.z);\n\t\t\t\tlet w2: f32 = uniform.colorLUTParams.y * uniform.colorLUTParams.z;\n\t\t\t\treturn color + (lut1 - color) * w1 + (lut2 - color) * w2;\n\t\t\t#else\n\t\t\t\treturn mix(color, lut1, vec3f(uniform.colorLUTParams.x));\n\t\t\t#endif\n\t\t}\n\t#endif\n`;\n\nvar composeChunksWGSL = {\n\tcomposePS: compose_default2,\n\tcomposeBloomPS: compose_bloom_default2,\n\tcomposeDofPS: compose_dof_default2,\n\tcomposeSsaoPS: compose_ssao_default2,\n\tcomposeGradingPS: compose_grading_default2,\n\tcomposeColorEnhancePS: compose_color_enhance_default2,\n\tcomposeVignettePS: compose_vignette_default2,\n\tcomposeFringingPS: compose_fringing_default2,\n\tcomposeCasPS: compose_cas_default2,\n\tcomposeColorLutPS: compose_color_lut_default2,\n\t// empty chunks for user customizations\n\tcomposeDeclarationsPS: \"\",\n\tcomposeMainStartPS: \"\",\n\tcomposeMainEndPS: \"\"\n};\n\nvar RenderPassCompose = class extends RenderPassShaderQuad {\n\tsceneTexture = null;\n\tbloomIntensity = 0.01;\n\t_bloomTexture = null;\n\t_cocTexture = null;\n\tblurTexture = null;\n\tblurTextureUpscale = false;\n\t_ssaoTexture = null;\n\t_toneMapping = TONEMAP_LINEAR;\n\t_gradingEnabled = false;\n\tgradingSaturation = 1;\n\tgradingContrast = 1;\n\tgradingBrightness = 1;\n\tgradingTint = new Color(1, 1, 1, 1);\n\t_shaderDirty = true;\n\t_vignetteEnabled = false;\n\tvignetteInner = 0.5;\n\tvignetteOuter = 1;\n\tvignetteCurvature = 0.5;\n\tvignetteIntensity = 0.3;\n\tvignetteColor = new Color(0, 0, 0);\n\t_fringingEnabled = false;\n\tfringingIntensity = 10;\n\t_colorEnhanceEnabled = false;\n\tcolorEnhanceShadows = 0;\n\tcolorEnhanceHighlights = 0;\n\tcolorEnhanceVibrance = 0;\n\tcolorEnhanceDehaze = 0;\n\tcolorEnhanceMidtones = 0;\n\t_taaEnabled = false;\n\t_hdrScene = true;\n\t_sharpness = 0.5;\n\t_gammaCorrection = GAMMA_SRGB;\n\t_colorLUT = null;\n\t_colorLUT2 = null;\n\tcolorLUTIntensity = 1;\n\tcolorLUT2Intensity = 1;\n\tcolorLUTBlend = 0;\n\t_key = \"\";\n\t_debug = null;\n\t_sceneDepthAvailable = false;\n\t// track user-provided custom compose chunks\n\t_customComposeChunks = /* @__PURE__ */ new Map([\n\t\t[\"composeDeclarationsPS\", \"\"],\n\t\t[\"composeMainStartPS\", \"\"],\n\t\t[\"composeMainEndPS\", \"\"]\n\t]);\n\tconstructor(graphicsDevice, cameraComponent) {\n\t\tsuper(graphicsDevice);\n\t\tthis.cameraComponent = cameraComponent;\n\t\tShaderChunks.get(graphicsDevice, SHADERLANGUAGE_GLSL).add(composeChunksGLSL, false);\n\t\tShaderChunks.get(graphicsDevice, SHADERLANGUAGE_WGSL).add(composeChunksWGSL, false);\n\t\tconst { scope } = graphicsDevice;\n\t\tthis.sceneTextureId = scope.resolve(\"sceneTexture\");\n\t\tthis.bloomTextureId = scope.resolve(\"bloomTexture\");\n\t\tthis.cocTextureId = scope.resolve(\"cocTexture\");\n\t\tthis.ssaoTextureId = scope.resolve(\"ssaoTexture\");\n\t\tthis.blurTextureId = scope.resolve(\"blurTexture\");\n\t\tthis.bloomIntensityId = scope.resolve(\"bloomIntensity\");\n\t\tthis.bcsId = scope.resolve(\"brightnessContrastSaturation\");\n\t\tthis.tintId = scope.resolve(\"tint\");\n\t\tthis.vignetterParamsId = scope.resolve(\"vignetterParams\");\n\t\tthis.vignetteColorId = scope.resolve(\"vignetteColor\");\n\t\tthis.fringingIntensityId = scope.resolve(\"fringingIntensity\");\n\t\tthis.sceneTextureInvResId = scope.resolve(\"sceneTextureInvRes\");\n\t\tthis.sceneTextureInvResValue = new Float32Array(2);\n\t\tthis.sharpnessId = scope.resolve(\"sharpness\");\n\t\tthis.colorLUTId = scope.resolve(\"colorLUT\");\n\t\tthis.colorLUT2Id = scope.resolve(\"colorLUT2\");\n\t\tthis.colorLUTParams = new Float32Array(3);\n\t\tthis.colorLUTParamsId = scope.resolve(\"colorLUTParams\");\n\t\tthis.colorEnhanceParamsId = scope.resolve(\"colorEnhanceParams\");\n\t\tthis.colorEnhanceMidtonesId = scope.resolve(\"colorEnhanceMidtones\");\n\t\tthis.composeTargetFlipYId = scope.resolve(\"composeTargetFlipY\");\n\t\tthis.cameraParams = new Float32Array(4);\n\t\tthis.cameraParamsId = scope.resolve(\"camera_params\");\n\t}\n\tset debug(value) {\n\t\tif (this._debug !== value) {\n\t\t\tthis._debug = value;\n\t\t\tthis._shaderDirty = true;\n\t\t}\n\t}\n\tget debug() {\n\t\treturn this._debug;\n\t}\n\tset sceneDepthAvailable(value) {\n\t\tif (this._sceneDepthAvailable !== value) {\n\t\t\tthis._sceneDepthAvailable = value;\n\t\t\tthis._shaderDirty = true;\n\t\t}\n\t}\n\tget sceneDepthAvailable() {\n\t\treturn this._sceneDepthAvailable;\n\t}\n\tget _debugMode() {\n\t\tif (this._debug === \"depth\" && !this._sceneDepthAvailable) {\n\t\t\treturn \"depthmissing\";\n\t\t}\n\t\treturn this._debug;\n\t}\n\tset colorLUT(value) {\n\t\tif (this._colorLUT !== value) {\n\t\t\tthis._colorLUT = value;\n\t\t\tthis._shaderDirty = true;\n\t\t\tthis._validateColorLUT(value, \"colorLUT\");\n\t\t}\n\t}\n\tget colorLUT() {\n\t\treturn this._colorLUT;\n\t}\n\tset colorLUT2(value) {\n\t\tif (this._colorLUT2 !== value) {\n\t\t\tthis._colorLUT2 = value;\n\t\t\tthis._shaderDirty = true;\n\t\t\tthis._validateColorLUT(value, \"colorLUT2\");\n\t\t}\n\t}\n\tget colorLUT2() {\n\t\treturn this._colorLUT2;\n\t}\n\t// Validate that a LUT texture is configured as a 256x16 sRGB strip with no mipmaps and\n\t// linear filtering. Stripped in release builds.\n\t_validateColorLUT(value, slotName) {\n\t}\n\tset bloomTexture(value) {\n\t\tif (this._bloomTexture !== value) {\n\t\t\tthis._bloomTexture = value;\n\t\t\tthis._shaderDirty = true;\n\t\t}\n\t}\n\tget bloomTexture() {\n\t\treturn this._bloomTexture;\n\t}\n\tset cocTexture(value) {\n\t\tif (this._cocTexture !== value) {\n\t\t\tthis._cocTexture = value;\n\t\t\tthis._shaderDirty = true;\n\t\t}\n\t}\n\tget cocTexture() {\n\t\treturn this._cocTexture;\n\t}\n\tset ssaoTexture(value) {\n\t\tif (this._ssaoTexture !== value) {\n\t\t\tthis._ssaoTexture = value;\n\t\t\tthis._shaderDirty = true;\n\t\t}\n\t}\n\tget ssaoTexture() {\n\t\treturn this._ssaoTexture;\n\t}\n\tset taaEnabled(value) {\n\t\tif (this._taaEnabled !== value) {\n\t\t\tthis._taaEnabled = value;\n\t\t\tthis._shaderDirty = true;\n\t\t}\n\t}\n\tget taaEnabled() {\n\t\treturn this._taaEnabled;\n\t}\n\tset gradingEnabled(value) {\n\t\tif (this._gradingEnabled !== value) {\n\t\t\tthis._gradingEnabled = value;\n\t\t\tthis._shaderDirty = true;\n\t\t}\n\t}\n\tget gradingEnabled() {\n\t\treturn this._gradingEnabled;\n\t}\n\tset vignetteEnabled(value) {\n\t\tif (this._vignetteEnabled !== value) {\n\t\t\tthis._vignetteEnabled = value;\n\t\t\tthis._shaderDirty = true;\n\t\t}\n\t}\n\tget vignetteEnabled() {\n\t\treturn this._vignetteEnabled;\n\t}\n\tset fringingEnabled(value) {\n\t\tif (this._fringingEnabled !== value) {\n\t\t\tthis._fringingEnabled = value;\n\t\t\tthis._shaderDirty = true;\n\t\t}\n\t}\n\tget fringingEnabled() {\n\t\treturn this._fringingEnabled;\n\t}\n\tset colorEnhanceEnabled(value) {\n\t\tif (this._colorEnhanceEnabled !== value) {\n\t\t\tthis._colorEnhanceEnabled = value;\n\t\t\tthis._shaderDirty = true;\n\t\t}\n\t}\n\tget colorEnhanceEnabled() {\n\t\treturn this._colorEnhanceEnabled;\n\t}\n\tset toneMapping(value) {\n\t\tif (this._toneMapping !== value) {\n\t\t\tthis._toneMapping = value;\n\t\t\tthis._shaderDirty = true;\n\t\t}\n\t}\n\tget toneMapping() {\n\t\treturn this._toneMapping;\n\t}\n\tset sharpness(value) {\n\t\tif (this._sharpness !== value) {\n\t\t\tthis._sharpness = value;\n\t\t\tthis._shaderDirty = true;\n\t\t}\n\t}\n\tget sharpness() {\n\t\treturn this._sharpness;\n\t}\n\tget isSharpnessEnabled() {\n\t\treturn this._sharpness > 0;\n\t}\n\tset hdrScene(value) {\n\t\tif (this._hdrScene !== value) {\n\t\t\tthis._hdrScene = value;\n\t\t\tthis._shaderDirty = true;\n\t\t}\n\t}\n\tget hdrScene() {\n\t\treturn this._hdrScene;\n\t}\n\tpostInit() {\n\t\tthis.setClearColor(Color.BLACK);\n\t\tthis.setClearDepth(1);\n\t\tthis.setClearStencil(0);\n\t}\n\tframeUpdate() {\n\t\tconst rt = this.renderTarget ?? this.device.backBuffer;\n\t\tconst srgb = rt.isColorBufferSrgb(0);\n\t\tconst neededGammaCorrection = srgb ? GAMMA_NONE : GAMMA_SRGB;\n\t\tif (this._gammaCorrection !== neededGammaCorrection) {\n\t\t\tthis._gammaCorrection = neededGammaCorrection;\n\t\t\tthis._shaderDirty = true;\n\t\t}\n\t\tconst shaderChunks2 = ShaderChunks.get(this.device, this.device.isWebGPU ? SHADERLANGUAGE_WGSL : SHADERLANGUAGE_GLSL);\n\t\tfor (const [name, prevValue] of this._customComposeChunks.entries()) {\n\t\t\tconst currentValue = shaderChunks2.get(name);\n\t\t\tif (currentValue !== prevValue) {\n\t\t\t\tthis._customComposeChunks.set(name, currentValue);\n\t\t\t\tthis._shaderDirty = true;\n\t\t\t}\n\t\t}\n\t\tif (this._shaderDirty) {\n\t\t\tthis._shaderDirty = false;\n\t\t\tconst gammaCorrectionName = gammaNames[this._gammaCorrection];\n\t\t\tconst customChunks = this._customComposeChunks;\n\t\t\tconst declHash = hashCode(customChunks.get(\"composeDeclarationsPS\") ?? \"\");\n\t\t\tconst startHash = hashCode(customChunks.get(\"composeMainStartPS\") ?? \"\");\n\t\t\tconst endHash = hashCode(customChunks.get(\"composeMainEndPS\") ?? \"\");\n\t\t\tconst debugMode = this._debugMode;\n\t\t\tconst depthDefines = /* @__PURE__ */ new Map();\n\t\t\tconst depthKey = debugMode === \"depth\" ? ShaderUtils.addScreenDepthChunkDefines(this.cameraComponent.shaderParams, depthDefines) : \"\";\n\t\t\tconst key = `${this.toneMapping}-${gammaCorrectionName}-${this.bloomTexture ? \"bloom\" : \"nobloom\"}-${this.cocTexture ? \"dof\" : \"nodof\"}-${this.blurTextureUpscale ? \"dofupscale\" : \"\"}-${this.ssaoTexture ? \"ssao\" : \"nossao\"}-${this.gradingEnabled ? \"grading\" : \"nograding\"}-${this.colorEnhanceEnabled ? \"colorenhance\" : \"nocolorenhance\"}-${this.colorLUT ? \"colorlut\" : \"nocolorlut\"}-${this.colorLUT2 ? \"colorlut2\" : \"nocolorlut2\"}-${this.vignetteEnabled ? \"vignette\" : \"novignette\"}-${this.fringingEnabled ? \"fringing\" : \"nofringing\"}-${this.taaEnabled ? \"taa\" : \"notaa\"}-${this.isSharpnessEnabled ? this._hdrScene ? \"cashdr\" : \"cas\" : \"nocas\"}-${debugMode ?? \"\"}${depthKey}-decl${declHash}-start${startHash}-end${endHash}`;\n\t\t\tif (this._key !== key) {\n\t\t\t\tthis._key = key;\n\t\t\t\tconst defines = /* @__PURE__ */ new Map();\n\t\t\t\tdefines.set(\"TONEMAP\", tonemapNames[this.toneMapping]);\n\t\t\t\tdefines.set(\"GAMMA\", gammaCorrectionName);\n\t\t\t\tif (this.bloomTexture) defines.set(\"BLOOM\", true);\n\t\t\t\tif (this.cocTexture) defines.set(\"DOF\", true);\n\t\t\t\tif (this.blurTextureUpscale) defines.set(\"DOF_UPSCALE\", true);\n\t\t\t\tif (this.ssaoTexture) defines.set(\"SSAO\", true);\n\t\t\t\tif (this.gradingEnabled) defines.set(\"GRADING\", true);\n\t\t\t\tif (this.colorEnhanceEnabled) defines.set(\"COLOR_ENHANCE\", true);\n\t\t\t\tif (this.colorLUT) defines.set(\"COLOR_LUT\", true);\n\t\t\t\tif (this.colorLUT && this.colorLUT2) defines.set(\"COLOR_LUT2\", true);\n\t\t\t\tif (this.vignetteEnabled) defines.set(\"VIGNETTE\", true);\n\t\t\t\tif (this.fringingEnabled) defines.set(\"FRINGING\", true);\n\t\t\t\tif (this.taaEnabled) defines.set(\"TAA\", true);\n\t\t\t\tif (this.isSharpnessEnabled) {\n\t\t\t\t\tdefines.set(\"CAS\", true);\n\t\t\t\t\tif (this._hdrScene) defines.set(\"CAS_HDR\", true);\n\t\t\t\t}\n\t\t\t\tif (debugMode) defines.set(\"DEBUG_COMPOSE\", debugMode);\n\t\t\t\tdepthDefines.forEach((value, name) => defines.set(name, value));\n\t\t\t\tthis.shader = ShaderUtils.createShader(this.device, {\n\t\t\t\t\tuniqueName: `ComposeShader-${key}`,\n\t\t\t\t\tattributes: { aPosition: SEMANTIC_POSITION },\n\t\t\t\t\tvertexChunk: \"quadVS\",\n\t\t\t\t\tfragmentChunk: \"composePS\",\n\t\t\t\t\tfragmentDefines: defines\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\texecute() {\n\t\tif (this._debugMode === \"depth\") {\n\t\t\tthis.cameraParamsId.setValue(this.cameraComponent.camera.fillShaderParams(this.cameraParams));\n\t\t}\n\t\tconst sceneTex = this.sceneTexture;\n\t\tthis.sceneTextureId.setValue(sceneTex);\n\t\tthis.sceneTextureInvResValue[0] = 1 / sceneTex.width;\n\t\tthis.sceneTextureInvResValue[1] = 1 / sceneTex.height;\n\t\tthis.sceneTextureInvResId.setValue(this.sceneTextureInvResValue);\n\t\tthis.composeTargetFlipYId.setValue(this.renderTarget?.flipY ? 1 : 0);\n\t\tif (this._bloomTexture) {\n\t\t\tthis.bloomTextureId.setValue(this._bloomTexture);\n\t\t\tthis.bloomIntensityId.setValue(this.bloomIntensity);\n\t\t}\n\t\tif (this._cocTexture) {\n\t\t\tthis.cocTextureId.setValue(this._cocTexture);\n\t\t\tthis.blurTextureId.setValue(this.blurTexture);\n\t\t}\n\t\tif (this._ssaoTexture) {\n\t\t\tthis.ssaoTextureId.setValue(this._ssaoTexture);\n\t\t}\n\t\tif (this._gradingEnabled) {\n\t\t\tthis.bcsId.setValue([this.gradingBrightness, this.gradingContrast, this.gradingSaturation]);\n\t\t\tthis.tintId.setValue([this.gradingTint.r, this.gradingTint.g, this.gradingTint.b]);\n\t\t}\n\t\tif (this._colorEnhanceEnabled) {\n\t\t\tthis.colorEnhanceParamsId.setValue([this.colorEnhanceShadows, this.colorEnhanceHighlights, this.colorEnhanceVibrance, this.colorEnhanceDehaze]);\n\t\t\tthis.colorEnhanceMidtonesId.setValue(this.colorEnhanceMidtones);\n\t\t}\n\t\tconst lutTexture = this._colorLUT;\n\t\tif (lutTexture) {\n\t\t\tthis.colorLUTParams[0] = this.colorLUTIntensity;\n\t\t\tthis.colorLUTParams[1] = this.colorLUT2Intensity;\n\t\t\tthis.colorLUTParams[2] = this.colorLUTBlend;\n\t\t\tthis.colorLUTParamsId.setValue(this.colorLUTParams);\n\t\t\tthis.colorLUTId.setValue(lutTexture);\n\t\t\tif (this._colorLUT2) {\n\t\t\t\tthis.colorLUT2Id.setValue(this._colorLUT2);\n\t\t\t}\n\t\t}\n\t\tif (this._vignetteEnabled) {\n\t\t\tthis.vignetterParamsId.setValue([this.vignetteInner, this.vignetteOuter, this.vignetteCurvature, this.vignetteIntensity]);\n\t\t\tthis.vignetteColorId.setValue([this.vignetteColor.r, this.vignetteColor.g, this.vignetteColor.b]);\n\t\t}\n\t\tif (this._fringingEnabled) {\n\t\t\tthis.fringingIntensityId.setValue(this.fringingIntensity / 1024);\n\t\t}\n\t\tif (this.isSharpnessEnabled) {\n\t\t\tthis.sharpnessId.setValue(math.lerp(-0.125, -0.2, this.sharpness));\n\t\t}\n\t\tsuper.execute();\n\t}\n};\n\nvar sampleCatmullRom_default = `\nvec4 SampleTextureCatmullRom(TEXTURE_ACCEPT(tex), vec2 uv, vec2 texSize) {\n\tvec2 samplePos = uv * texSize;\n\tvec2 texPos1 = floor(samplePos - 0.5) + 0.5;\n\tvec2 f = samplePos - texPos1;\n\tvec2 w0 = f * (-0.5 + f * (1.0 - 0.5 * f));\n\tvec2 w1 = 1.0 + f * f * (-2.5 + 1.5 * f);\n\tvec2 w2 = f * (0.5 + f * (2.0 - 1.5 * f));\n\tvec2 w3 = f * f * (-0.5 + 0.5 * f);\n\tvec2 w12 = w1 + w2;\n\tvec2 offset12 = w2 / (w1 + w2);\n\tvec2 texPos0 = (texPos1 - 1.0) / texSize;\n\tvec2 texPos3 = (texPos1 + 2.0) / texSize;\n\tvec2 texPos12 = (texPos1 + offset12) / texSize;\n\tvec4 result = vec4(0.0);\n\tresult += texture2DLod(tex, vec2(texPos0.x, texPos0.y), 0.0) * w0.x * w0.y;\n\tresult += texture2DLod(tex, vec2(texPos12.x, texPos0.y), 0.0) * w12.x * w0.y;\n\tresult += texture2DLod(tex, vec2(texPos3.x, texPos0.y), 0.0) * w3.x * w0.y;\n\tresult += texture2DLod(tex, vec2(texPos0.x, texPos12.y), 0.0) * w0.x * w12.y;\n\tresult += texture2DLod(tex, vec2(texPos12.x, texPos12.y), 0.0) * w12.x * w12.y;\n\tresult += texture2DLod(tex, vec2(texPos3.x, texPos12.y), 0.0) * w3.x * w12.y;\n\tresult += texture2DLod(tex, vec2(texPos0.x, texPos3.y), 0.0) * w0.x * w3.y;\n\tresult += texture2DLod(tex, vec2(texPos12.x, texPos3.y), 0.0) * w12.x * w3.y;\n\tresult += texture2DLod(tex, vec2(texPos3.x, texPos3.y), 0.0) * w3.x * w3.y;\n\treturn result;\n}\n`;\n\nvar sampleCatmullRom_default2 = `\nfn SampleTextureCatmullRom(tex: texture_2d<f32>, texSampler: sampler, uv: vec2f, texSize: vec2f) -> vec4f {\n\tlet samplePos: vec2f = uv * texSize;\n\tlet texPos1: vec2f = floor(samplePos - 0.5) + 0.5;\n\tlet f: vec2f = samplePos - texPos1;\n\tlet w0: vec2f = f * (-0.5 + f * (1.0 - 0.5 * f));\n\tlet w1: vec2f = 1.0 + f * f * (-2.5 + 1.5 * f);\n\tlet w2: vec2f = f * (0.5 + f * (2.0 - 1.5 * f));\n\tlet w3: vec2f = f * f * (-0.5 + 0.5 * f);\n\tlet w12: vec2f = w1 + w2;\n\tlet offset12: vec2f = w2 / w12;\n\tlet texPos0: vec2f = (texPos1 - 1.0) / texSize;\n\tlet texPos3: vec2f = (texPos1 + 2.0) / texSize;\n\tlet texPos12: vec2f = (texPos1 + offset12) / texSize;\n\tvar result: vec4f = vec4f(0.0);\n\tresult = result + textureSampleLevel(tex, texSampler, vec2f(texPos0.x, texPos0.y), 0.0) * w0.x * w0.y;\n\tresult = result + textureSampleLevel(tex, texSampler, vec2f(texPos12.x, texPos0.y), 0.0) * w12.x * w0.y;\n\tresult = result + textureSampleLevel(tex, texSampler, vec2f(texPos3.x, texPos0.y), 0.0) * w3.x * w0.y;\n\tresult = result + textureSampleLevel(tex, texSampler, vec2f(texPos0.x, texPos12.y), 0.0) * w0.x * w12.y;\n\tresult = result + textureSampleLevel(tex, texSampler, vec2f(texPos12.x, texPos12.y), 0.0) * w12.x * w12.y;\n\tresult = result + textureSampleLevel(tex, texSampler, vec2f(texPos3.x, texPos12.y), 0.0) * w3.x * w12.y;\n\tresult = result + textureSampleLevel(tex, texSampler, vec2f(texPos0.x, texPos3.y), 0.0) * w0.x * w3.y;\n\tresult = result + textureSampleLevel(tex, texSampler, vec2f(texPos12.x, texPos3.y), 0.0) * w12.x * w3.y;\n\tresult = result + textureSampleLevel(tex, texSampler, vec2f(texPos3.x, texPos3.y), 0.0) * w3.x * w3.y;\n\treturn result;\n}\n`;\n\nvar taaResolve_default = `\n\t#include  \"sampleCatmullRomPS\"\n\t#include  \"screenDepthPS\"\n\tuniform sampler2D sourceTexture;\n\tuniform sampler2D historyTexture;\n\tuniform mat4 matrix_viewProjectionPrevious;\n\tuniform mat4 matrix_viewProjectionInverse;\n\tuniform vec4 jitters;\n\tuniform vec2 textureSize;\n\tvarying vec2 uv0;\n\tvec2 reproject(vec2 uv, float depth) {\n\t\tdepth = depth * 2.0 - 1.0;\n\t\tvec4 ndc = vec4(uv * 2.0 - 1.0, depth, 1.0);\n\t\tndc.xy -= jitters.xy;\n\t\tvec4 worldPosition = matrix_viewProjectionInverse * ndc;\n\t\tworldPosition /= worldPosition.w;\n\t\tvec4 screenPrevious = matrix_viewProjectionPrevious * worldPosition;\n\t\treturn (screenPrevious.xy / screenPrevious.w) * 0.5 + 0.5;\n\t}\n\tvec3 colorClampPremul(vec2 uv, vec3 historyPremul) {\n\t\tvec3 minPremul = vec3(9999.0);\n\t\tvec3 maxPremul = vec3(-9999.0);\n\t\tfor(float x = -1.0; x <= 1.0; ++x) {\n\t\t\tfor(float y = -1.0; y <= 1.0; ++y) {\n\t\t\t\tvec4 s = texture2D(sourceTexture, uv + vec2(x, y) / textureSize);\n\t\t\t\tvec3 premul = s.rgb * s.a;\n\t\t\t\tminPremul = min(minPremul, premul);\n\t\t\t\tmaxPremul = max(maxPremul, premul);\n\t\t\t}\n\t\t}\n\t\treturn clamp(historyPremul, minPremul, maxPremul);\n\t}\n\tvoid main()\n\t{\n\t\tvec4 srcColor = texture2D(sourceTexture, uv0);\n\t\tfloat linearDepth = getLinearScreenDepth(uv0);\n\t\tfloat depth = delinearizeDepth(linearDepth);\n\t\tvec2 historyUv = reproject(uv0, depth);\n\t\t#ifdef QUALITY_HIGH\n\t\t\tvec4 historySample = SampleTextureCatmullRom(TEXTURE_PASS(historyTexture), historyUv, textureSize);\n\t\t#else\n\t\t\tvec4 historySample = texture2D(historyTexture, historyUv);\n\t\t#endif\n\t\tvec3 historyPremul = historySample.rgb * historySample.a;\n\t\tvec3 srcPremul = srcColor.rgb * srcColor.a;\n\t\tvec3 historyPremulClamped = colorClampPremul(uv0, historyPremul);\n\t\tfloat mixFactor = (historyUv.x < 0.0 || historyUv.x > 1.0 || historyUv.y < 0.0 || historyUv.y > 1.0) ?\n\t\t\t1.0 : 0.05;\n\t\tvec3 mixedPremul = mix(historyPremulClamped, srcPremul, mixFactor);\n\t\tfloat a = srcColor.a;\n\t\tconst float UNPREMUL_EPS = 1.0 / 255.0;\n\t\tvec3 rgbStraight = (a > UNPREMUL_EPS) ? (mixedPremul / a) : srcColor.rgb;\n\t\tgl_FragColor = vec4(rgbStraight, a);\n\t}\n`;\n\nvar taaResolve_default2 = `\n\t#include \"sampleCatmullRomPS\"\n\t#include \"screenDepthPS\"\n\tvar sourceTexture: texture_2d<f32>;\n\tvar sourceTextureSampler: sampler;\n\tvar historyTexture: texture_2d<f32>;\n\tvar historyTextureSampler: sampler;\n\tuniform matrix_viewProjectionPrevious: mat4x4f;\n\tuniform matrix_viewProjectionInverse: mat4x4f;\n\tuniform jitters: vec4f;\n\tuniform textureSize: vec2f;\n\tvarying uv0: vec2f;\n\tfn reproject(uv_in: vec2f, depth: f32) -> vec2f {\n\t\tvar uv = vec2f(uv_in.x, 1.0 - uv_in.y);\n\t\tvar ndc = vec4f(uv * 2.0 - 1.0, depth, 1.0);\n\t\tndc = vec4f(ndc.xy - uniform.jitters.xy, ndc.zw);\n\t\tvar worldPosition = uniform.matrix_viewProjectionInverse * ndc;\n\t\tworldPosition = worldPosition / worldPosition.w;\n\t\tlet screenPrevious = uniform.matrix_viewProjectionPrevious * worldPosition;\n\t\tvar result = (screenPrevious.xy / screenPrevious.w) * 0.5 + 0.5;\n\t\tresult.y = 1.0 - result.y;\n\t\treturn result;\n\t}\n\tfn colorClampPremul(uv: vec2f, historyPremul: vec3f) -> vec3f {\n\t\tvar minPremul = vec3f(9999.0);\n\t\tvar maxPremul = vec3f(-9999.0);\n\t\tfor (var ix: i32 = -1; ix <= 1; ix = ix + 1) {\n\t\t\tfor (var iy: i32 = -1; iy <= 1; iy = iy + 1) {\n\t\t\t\tlet s = textureSample(sourceTexture, sourceTextureSampler, uv + vec2f(f32(ix), f32(iy)) / uniform.textureSize);\n\t\t\t\tlet premul = s.rgb * s.a;\n\t\t\t\tminPremul = min(minPremul, premul);\n\t\t\t\tmaxPremul = max(maxPremul, premul);\n\t\t\t}\n\t\t}\n\t\treturn clamp(historyPremul, minPremul, maxPremul);\n\t}\n\t@fragment\n\tfn fragmentMain(input: FragmentInput) -> FragmentOutput {\n\t\tvar output: FragmentOutput;\n\t\tlet srcColor = textureSample(sourceTexture, sourceTextureSampler, uv0);\n\t\tlet linearDepth = getLinearScreenDepth(uv0);\n\t\tlet depth = delinearizeDepth(linearDepth);\n\t\tlet historyUv = reproject(uv0, depth);\n\t\t#ifdef QUALITY_HIGH\n\t\t\tvar historySample: vec4f = SampleTextureCatmullRom(historyTexture, historyTextureSampler, historyUv, uniform.textureSize);\n\t\t#else\n\t\t\tvar historySample: vec4f = textureSample(historyTexture, historyTextureSampler, historyUv);\n\t\t#endif\n\t\tlet historyPremul = historySample.rgb * historySample.a;\n\t\tlet srcPremul = srcColor.rgb * srcColor.a;\n\t\tlet historyPremulClamped = colorClampPremul(uv0, historyPremul);\n\t\tlet mixFactor_condition = historyUv.x < 0.0 || historyUv.x > 1.0 || historyUv.y < 0.0 || historyUv.y > 1.0;\n\t\tlet mixFactor = select(0.05, 1.0, mixFactor_condition);\n\t\tlet mixedPremul = mix(historyPremulClamped, srcPremul, mixFactor);\n\t\tlet a = srcColor.a;\n\t\tlet UNPREMUL_EPS = 1.0 / 255.0;\n\t\tlet rgbStraight = select(srcColor.rgb, mixedPremul / a, a > UNPREMUL_EPS);\n\t\toutput.color = vec4f(rgbStraight, a);\n\t\treturn output;\n\t}\n`;\n\nvar RenderPassTAA = class extends RenderPassShaderQuad {\n\thistoryIndex = 0;\n\thistoryTexture = null;\n\thistoryTextures = [];\n\thistoryRenderTargets = [];\n\tconstructor(device, sourceTexture, cameraComponent) {\n\t\tsuper(device);\n\t\tthis.sourceTexture = sourceTexture;\n\t\tthis.cameraComponent = cameraComponent;\n\t\tShaderChunks.get(device, SHADERLANGUAGE_GLSL).set(\"sampleCatmullRomPS\", sampleCatmullRom_default);\n\t\tShaderChunks.get(device, SHADERLANGUAGE_WGSL).set(\"sampleCatmullRomPS\", sampleCatmullRom_default2);\n\t\tShaderChunks.get(device, SHADERLANGUAGE_GLSL).set(\"taaResolvePS\", taaResolve_default);\n\t\tShaderChunks.get(device, SHADERLANGUAGE_WGSL).set(\"taaResolvePS\", taaResolve_default2);\n\t\tconst defines = /* @__PURE__ */ new Map();\n\t\tdefines.set(\"QUALITY_HIGH\", true);\n\t\tconst depthKey = ShaderUtils.addScreenDepthChunkDefines(cameraComponent.shaderParams, defines);\n\t\tthis.shader = ShaderUtils.createShader(device, {\n\t\t\tuniqueName: `TaaResolveShader${depthKey}`,\n\t\t\tattributes: { aPosition: SEMANTIC_POSITION },\n\t\t\tvertexChunk: \"quadVS\",\n\t\t\tfragmentChunk: \"taaResolvePS\",\n\t\t\tfragmentDefines: defines\n\t\t});\n\t\tconst { scope } = device;\n\t\tthis.sourceTextureId = scope.resolve(\"sourceTexture\");\n\t\tthis.textureSizeId = scope.resolve(\"textureSize\");\n\t\tthis.textureSize = new Float32Array(2);\n\t\tthis.historyTextureId = scope.resolve(\"historyTexture\");\n\t\tthis.viewProjPrevId = scope.resolve(\"matrix_viewProjectionPrevious\");\n\t\tthis.viewProjInvId = scope.resolve(\"matrix_viewProjectionInverse\");\n\t\tthis.jittersId = scope.resolve(\"jitters\");\n\t\tthis.cameraParams = new Float32Array(4);\n\t\tthis.cameraParamsId = scope.resolve(\"camera_params\");\n\t\tthis.setup();\n\t}\n\tdestroy() {\n\t\tif (this.renderTarget) {\n\t\t\tthis.renderTarget.destroyTextureBuffers();\n\t\t\tthis.renderTarget.destroy();\n\t\t\tthis.renderTarget = null;\n\t\t}\n\t}\n\tsetup() {\n\t\tfor (let i2 = 0; i2 < 2; ++i2) {\n\t\t\tthis.historyTextures[i2] = new Texture(this.device, {\n\t\t\t\tname: `TAA-History-${i2}`,\n\t\t\t\twidth: 4,\n\t\t\t\theight: 4,\n\t\t\t\tformat: this.sourceTexture.format,\n\t\t\t\tmipmaps: false,\n\t\t\t\tminFilter: FILTER_LINEAR,\n\t\t\t\tmagFilter: FILTER_LINEAR,\n\t\t\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE\n\t\t\t});\n\t\t\tthis.historyRenderTargets[i2] = new RenderTarget({\n\t\t\t\tcolorBuffer: this.historyTextures[i2],\n\t\t\t\tdepth: false\n\t\t\t});\n\t\t}\n\t\tthis.historyTexture = this.historyTextures[0];\n\t\tthis.init(this.historyRenderTargets[0], {\n\t\t\tresizeSource: this.sourceTexture\n\t\t});\n\t}\n\tbefore() {\n\t\tthis.sourceTextureId.setValue(this.sourceTexture);\n\t\tthis.historyTextureId.setValue(this.historyTextures[1 - this.historyIndex]);\n\t\tthis.textureSize[0] = this.sourceTexture.width;\n\t\tthis.textureSize[1] = this.sourceTexture.height;\n\t\tthis.textureSizeId.setValue(this.textureSize);\n\t\tconst camera = this.cameraComponent.camera;\n\t\tthis.viewProjPrevId.setValue(camera._viewProjPrevious.data);\n\t\tthis.viewProjInvId.setValue(camera._viewProjInverse.data);\n\t\tthis.jittersId.setValue(camera._jitters);\n\t\tthis.cameraParamsId.setValue(camera.fillShaderParams(this.cameraParams));\n\t}\n\t// called when the parent render pass gets added to the frame graph\n\tupdate() {\n\t\tthis.historyIndex = 1 - this.historyIndex;\n\t\tthis.historyTexture = this.historyTextures[this.historyIndex];\n\t\tthis.renderTarget = this.historyRenderTargets[this.historyIndex];\n\t\treturn this.historyTexture;\n\t}\n};\n\nvar coc_default = `\n\t#include \"screenDepthPS\"\n\tvarying vec2 uv0;\n\tuniform vec3 params;\n\tvoid main()\n\t{\n\t\tfloat depth = getLinearScreenDepth(uv0);\n\t\tfloat focusDistance = params.x;\n\t\tfloat focusRange = params.y;\n\t\tfloat invRange = params.z;\n\t\tfloat farRange = focusDistance + focusRange * 0.5;\n\t\t\n\t\tfloat cocFar = min((depth - farRange) * invRange, 1.0);\n\t\t#ifdef NEAR_BLUR\n\t\t\tfloat nearRange = focusDistance - focusRange * 0.5;\n\t\t\tfloat cocNear = min((nearRange - depth) * invRange, 1.0);\n\t\t#else\n\t\t\tfloat cocNear = 0.0;\n\t\t#endif\n\t\tgl_FragColor = vec4(cocFar, cocNear, 0.0, 0.0);\n\t}\n`;\n\nvar coc_default2 = `\n#include \"screenDepthPS\"\nvarying uv0: vec2f;\nuniform params: vec3f;\n@fragment\nfn fragmentMain(input: FragmentInput) -> FragmentOutput {\n\tvar output: FragmentOutput;\n\tlet depth: f32 = getLinearScreenDepth(uv0);\n\tlet focusDistance: f32 = uniform.params.x;\n\tlet focusRange: f32 = uniform.params.y;\n\tlet invRange: f32 = uniform.params.z;\n\tlet farRange: f32 = focusDistance + focusRange * 0.5;\n\tlet cocFar: f32 = min((depth - farRange) * invRange, 1.0);\n\t#ifdef NEAR_BLUR\n\t\tlet nearRange: f32 = focusDistance - focusRange * 0.5;\n\t\tvar cocNear: f32 = min((nearRange - depth) * invRange, 1.0);\n\t#else\n\t\tvar cocNear: f32 = 0.0;\n\t#endif\n\toutput.color = vec4f(cocFar, cocNear, 0.0, 0.0);\n\treturn output;\n}\n`;\n\nvar RenderPassCoC = class extends RenderPassShaderQuad {\n\tfocusDistance;\n\tfocusRange;\n\tconstructor(device, cameraComponent, nearBlur) {\n\t\tsuper(device);\n\t\tthis.cameraComponent = cameraComponent;\n\t\tShaderChunks.get(device, SHADERLANGUAGE_GLSL).set(\"cocPS\", coc_default);\n\t\tShaderChunks.get(device, SHADERLANGUAGE_WGSL).set(\"cocPS\", coc_default2);\n\t\tconst defines = /* @__PURE__ */ new Map();\n\t\tif (nearBlur) defines.set(\"NEAR_BLUR\", \"\");\n\t\tconst depthKey = ShaderUtils.addScreenDepthChunkDefines(cameraComponent.shaderParams, defines);\n\t\tthis.shader = ShaderUtils.createShader(device, {\n\t\t\tuniqueName: `CocShader-${nearBlur}${depthKey}`,\n\t\t\tattributes: { aPosition: SEMANTIC_POSITION },\n\t\t\tvertexChunk: \"quadVS\",\n\t\t\tfragmentChunk: \"cocPS\",\n\t\t\tfragmentDefines: defines\n\t\t});\n\t\tthis.paramsId = device.scope.resolve(\"params\");\n\t\tthis.paramsValue = new Float32Array(3);\n\t\tthis.cameraParams = new Float32Array(4);\n\t\tthis.cameraParamsId = device.scope.resolve(\"camera_params\");\n\t}\n\texecute() {\n\t\tconst { paramsValue, focusRange } = this;\n\t\tparamsValue[0] = this.focusDistance + 1e-3;\n\t\tparamsValue[1] = focusRange;\n\t\tparamsValue[2] = 1 / focusRange;\n\t\tthis.paramsId.setValue(paramsValue);\n\t\tconst camera = this.cameraComponent.camera;\n\t\tthis.cameraParamsId.setValue(camera.fillShaderParams(this.cameraParams));\n\t\tsuper.execute();\n\t}\n};\n\nvar dofBlur_default = `\n\t#if defined(NEAR_BLUR)\n\t\tuniform sampler2D nearTexture;\n\t#endif\n\tuniform sampler2D farTexture;\n\tuniform sampler2D cocTexture;\n\tuniform vec2 kernel[{KERNEL_COUNT}];\n\tuniform float blurRadiusNear;\n\tuniform float blurRadiusFar;\n\tvarying vec2 uv0;\n\tvoid main()\n\t{\n\t\tvec2 coc = texture2D(cocTexture, uv0).rg;\n\t\tfloat cocFar = coc.r;\n\t\tvec3 sum = vec3(0.0, 0.0, 0.0);\n\t\t#if defined(NEAR_BLUR)\n\t\t\tfloat cocNear = coc.g;\n\t\t\tif (cocNear > 0.0001) {\n\t\t\t\tvec2 nearTextureSize = vec2(textureSize(nearTexture, 0));\n\t\t\t\tvec2 step = cocNear * blurRadiusNear * vec2(nearTextureSize.y / nearTextureSize.x, 1.0);\n\t\t\t\tfor (int i = 0; i < {KERNEL_COUNT}; i++) {\n\t\t\t\t\tvec2 uv = uv0 + step * kernel[i];\n\t\t\t\t\tvec3 tap = texture2DLod(nearTexture, uv, 0.0).rgb;\n\t\t\t\t\tsum += tap.rgb;\n\t\t\t\t}\n\t\t\t\tsum *= float({INV_KERNEL_COUNT});\n\t\t\t} else\n\t\t#endif\n\t\t\t\n\t\t\tif (cocFar > 0.0001) {\n\t\t\tvec2 farTextureSize = vec2(textureSize(farTexture, 0));\n\t\t\tvec2 step = cocFar * blurRadiusFar * vec2(farTextureSize.y / farTextureSize.x, 1.0);\n\t\t\tfloat sumCoC = 0.0; \n\t\t\tfor (int i = 0; i < {KERNEL_COUNT}; i++) {\n\t\t\t\tvec2 uv = uv0 + step * kernel[i];\n\t\t\t\tvec3 tap = texture2DLod(farTexture, uv, 0.0).rgb;\n\t\t\t\tfloat cocThis = texture2DLod(cocTexture, uv, 0.0).r;\n\t\t\t\ttap *= cocThis;\n\t\t\t\tsumCoC += cocThis;\n\t\t\t\tsum += tap;\n\t\t\t}\n\t\t\tif (sumCoC > 0.0)\n\t\t\t\tsum /= sumCoC;\n\t\t\tsum /= cocFar;\n\t\t}\n\t\tpcFragColor0 = vec4(sum, 1.0);\n\t}\n`;\n\nvar dofBlur_default2 = `\n#if defined(NEAR_BLUR)\n\tvar nearTexture: texture_2d<f32>;\n\tvar nearTextureSampler: sampler;\n#endif\nvar farTexture: texture_2d<f32>;\nvar farTextureSampler: sampler;\nvar cocTexture: texture_2d<f32>;\nvar cocTextureSampler: sampler;\nuniform kernel: array<vec2f, {KERNEL_COUNT}>;\nuniform blurRadiusNear: f32;\nuniform blurRadiusFar: f32;\nvarying uv0: vec2f;\n@fragment\nfn fragmentMain(input: FragmentInput) -> FragmentOutput {\n\tvar output: FragmentOutput;\n\tlet coc: vec2f = textureSample(cocTexture, cocTextureSampler, input.uv0).rg;\n\tlet cocFar: f32 = coc.r;\n\tvar sum: vec3f = vec3f(0.0, 0.0, 0.0);\n\t#if defined(NEAR_BLUR)\n\t\tlet cocNear: f32 = coc.g;\n\t\tif (cocNear > 0.0001) {\n\t\t\tlet nearTextureSize: vec2f = vec2f(textureDimensions(nearTexture, 0));\n\t\t\tlet step: vec2f = cocNear * uniform.blurRadiusNear * vec2f(nearTextureSize.y / nearTextureSize.x, 1.0);\n\t\t\tfor (var i: i32 = 0; i < {KERNEL_COUNT}; i = i + 1) {\n\t\t\t\tlet uv: vec2f = uv0 + step * uniform.kernel[i].element;\n\t\t\t\tlet tap: vec3f = textureSampleLevel(nearTexture, nearTextureSampler, uv, 0.0).rgb;\n\t\t\t\tsum = sum + tap;\n\t\t\t}\n\t\t\tsum = sum * f32({INV_KERNEL_COUNT});\n\t\t} else\n\t#endif\n\t\tif (cocFar > 0.0001) {\n\t\t\tlet farTextureSize: vec2f = vec2f(textureDimensions(farTexture, 0));\n\t\t\tlet step: vec2f = cocFar * uniform.blurRadiusFar * vec2f(farTextureSize.y / farTextureSize.x, 1.0);\n\t\t\tvar sumCoC: f32 = 0.0;\n\t\t\tfor (var i: i32 = 0; i < {KERNEL_COUNT}; i = i + 1) {\n\t\t\t\tlet uv: vec2f = uv0 + step * uniform.kernel[i].element;\n\t\t\t\tvar tap: vec3f = textureSampleLevel(farTexture, farTextureSampler, uv, 0.0).rgb;\n\t\t\t\tlet cocThis: f32 = textureSampleLevel(cocTexture, cocTextureSampler, uv, 0.0).r;\n\t\t\t\ttap = tap * cocThis;\n\t\t\t\tsumCoC = sumCoC + cocThis;\n\t\t\t\tsum = sum + tap;\n\t\t\t}\n\t\t\tif (sumCoC > 0.0) {\n\t\t\t\tsum = sum / sumCoC;\n\t\t\t}\n\t\t\tsum = sum / cocFar;\n\t\t}\n\toutput.color = vec4f(sum, 1.0);\n\treturn output;\n}\n`;\n\nvar RenderPassDofBlur = class extends RenderPassShaderQuad {\n\tblurRadiusNear = 1;\n\tblurRadiusFar = 1;\n\t_blurRings = 3;\n\t_blurRingPoints = 3;\n\treferenceHeight = 540;\n\tconstructor(device, nearTexture, farTexture, cocTexture) {\n\t\tsuper(device);\n\t\tthis.nearTexture = nearTexture;\n\t\tthis.farTexture = farTexture;\n\t\tthis.cocTexture = cocTexture;\n\t\tShaderChunks.get(device, SHADERLANGUAGE_GLSL).set(\"dofBlurPS\", dofBlur_default);\n\t\tShaderChunks.get(device, SHADERLANGUAGE_WGSL).set(\"dofBlurPS\", dofBlur_default2);\n\t\tconst { scope } = device;\n\t\tthis.kernelId = scope.resolve(\"kernel[0]\");\n\t\tthis.kernelCountId = scope.resolve(\"kernelCount\");\n\t\tthis.blurRadiusNearId = scope.resolve(\"blurRadiusNear\");\n\t\tthis.blurRadiusFarId = scope.resolve(\"blurRadiusFar\");\n\t\tthis.nearTextureId = scope.resolve(\"nearTexture\");\n\t\tthis.farTextureId = scope.resolve(\"farTexture\");\n\t\tthis.cocTextureId = scope.resolve(\"cocTexture\");\n\t}\n\tset blurRings(value) {\n\t\tif (this._blurRings !== value) {\n\t\t\tthis._blurRings = value;\n\t\t\tthis.shader = null;\n\t\t}\n\t}\n\tget blurRings() {\n\t\treturn this._blurRings;\n\t}\n\tset blurRingPoints(value) {\n\t\tif (this._blurRingPoints !== value) {\n\t\t\tthis._blurRingPoints = value;\n\t\t\tthis.shader = null;\n\t\t}\n\t}\n\tget blurRingPoints() {\n\t\treturn this._blurRingPoints;\n\t}\n\tcreateShader() {\n\t\tthis.kernel = new Float32Array(Kernel.concentric(this.blurRings, this.blurRingPoints));\n\t\tconst kernelCount = this.kernel.length >> 1;\n\t\tconst nearBlur = this.nearTexture !== null;\n\t\tconst defines = /* @__PURE__ */ new Map();\n\t\tdefines.set(\"{KERNEL_COUNT}\", kernelCount);\n\t\tdefines.set(\"{INV_KERNEL_COUNT}\", 1 / kernelCount);\n\t\tif (nearBlur) defines.set(\"NEAR_BLUR\", \"\");\n\t\tthis.shader = ShaderUtils.createShader(this.device, {\n\t\t\tuniqueName: `DofBlurShader-${kernelCount}-${nearBlur ? \"nearBlur\" : \"noNearBlur\"}`,\n\t\t\tattributes: { aPosition: SEMANTIC_POSITION },\n\t\t\tvertexChunk: \"quadVS\",\n\t\t\tfragmentChunk: \"dofBlurPS\",\n\t\t\tfragmentDefines: defines\n\t\t});\n\t}\n\texecute() {\n\t\tif (!this.shader) {\n\t\t\tthis.createShader();\n\t\t}\n\t\tthis.nearTextureId.setValue(this.nearTexture);\n\t\tthis.farTextureId.setValue(this.farTexture);\n\t\tthis.cocTextureId.setValue(this.cocTexture);\n\t\tthis.kernelId.setValue(this.kernel);\n\t\tthis.kernelCountId.setValue(this.kernel.length >> 1);\n\t\tconst referenceHeight = this.referenceHeight > 0 ? this.referenceHeight : 540;\n\t\tconst invReferenceHeight = 1 / referenceHeight;\n\t\tthis.blurRadiusNearId.setValue(this.blurRadiusNear * invReferenceHeight);\n\t\tthis.blurRadiusFarId.setValue(this.blurRadiusFar * invReferenceHeight);\n\t\tsuper.execute();\n\t}\n};\n\nvar FramePassDof = class extends FramePass {\n\tfocusDistance = 100;\n\tfocusRange = 50;\n\tblurRadius = 1;\n\tblurRings = 3;\n\tblurRingPoints = 3;\n\thighQuality = true;\n\tcocTexture = null;\n\tblurTexture = null;\n\tcocPass = null;\n\tfarPass = null;\n\tblurPass = null;\n\tconstructor(device, cameraComponent, sceneTexture, sceneTextureHalf, highQuality, nearBlur) {\n\t\tsuper(device);\n\t\tthis.highQuality = highQuality;\n\t\tthis.cocPass = this.setupCocPass(device, cameraComponent, sceneTexture, nearBlur);\n\t\tthis.beforePasses.push(this.cocPass);\n\t\tconst sourceTexture = highQuality ? sceneTexture : sceneTextureHalf;\n\t\tthis.farPass = this.setupFarPass(device, sourceTexture, 0.5);\n\t\tthis.beforePasses.push(this.farPass);\n\t\tthis.blurPass = this.setupBlurPass(device, sceneTextureHalf, nearBlur, highQuality ? 2 : 0.5);\n\t\tthis.beforePasses.push(this.blurPass);\n\t}\n\tdestroy() {\n\t\tthis.destroyRenderPasses();\n\t\tthis.cocPass = null;\n\t\tthis.farPass = null;\n\t\tthis.blurPass = null;\n\t\tthis.destroyRT(this.cocRT);\n\t\tthis.destroyRT(this.farRt);\n\t\tthis.destroyRT(this.blurRt);\n\t\tthis.cocRT = null;\n\t\tthis.farRt = null;\n\t\tthis.blurRt = null;\n\t}\n\tdestroyRenderPasses() {\n\t\tfor (let i2 = 0; i2 < this.beforePasses.length; i2++) {\n\t\t\tthis.beforePasses[i2].destroy();\n\t\t}\n\t\tthis.beforePasses.length = 0;\n\t}\n\tdestroyRT(rt) {\n\t\tif (rt) {\n\t\t\trt.destroyTextureBuffers();\n\t\t\trt.destroy();\n\t\t}\n\t}\n\tsetupCocPass(device, cameraComponent, sourceTexture, nearBlur) {\n\t\tconst format = nearBlur ? PIXELFORMAT_RG8 : PIXELFORMAT_R8;\n\t\tthis.cocRT = this.createRenderTarget(\"CoCTexture\", format);\n\t\tthis.cocTexture = this.cocRT.colorBuffer;\n\t\tconst cocPass = new RenderPassCoC(device, cameraComponent, nearBlur);\n\t\tcocPass.init(this.cocRT, {\n\t\t\tresizeSource: sourceTexture\n\t\t});\n\t\tcocPass.setClearColor(Color.BLACK);\n\t\treturn cocPass;\n\t}\n\tsetupFarPass(device, sourceTexture, scale2) {\n\t\tthis.farRt = this.createRenderTarget(\"FarDofTexture\", sourceTexture.format);\n\t\tconst farPass = new RenderPassDownsample(device, sourceTexture, {\n\t\t\tboxFilter: true,\n\t\t\tpremultiplyTexture: this.cocTexture,\n\t\t\tpremultiplySrcChannel: \"r\"\n\t\t\t// far CoC\n\t\t});\n\t\tfarPass.init(this.farRt, {\n\t\t\tresizeSource: sourceTexture,\n\t\t\tscaleX: scale2,\n\t\t\tscaleY: scale2\n\t\t});\n\t\tfarPass.setClearColor(Color.BLACK);\n\t\treturn farPass;\n\t}\n\tsetupBlurPass(device, nearTexture, nearBlur, scale2) {\n\t\tconst farTexture = this.farRt?.colorBuffer;\n\t\tthis.blurRt = this.createRenderTarget(\"DofBlurTexture\", nearTexture.format);\n\t\tthis.blurTexture = this.blurRt.colorBuffer;\n\t\tconst blurPass = new RenderPassDofBlur(device, nearBlur ? nearTexture : null, farTexture, this.cocTexture);\n\t\tblurPass.init(this.blurRt, {\n\t\t\tresizeSource: nearTexture,\n\t\t\tscaleX: scale2,\n\t\t\tscaleY: scale2\n\t\t});\n\t\tblurPass.setClearColor(Color.BLACK);\n\t\treturn blurPass;\n\t}\n\tcreateTexture(name, format) {\n\t\treturn new Texture(this.device, {\n\t\t\tname,\n\t\t\twidth: 1,\n\t\t\theight: 1,\n\t\t\tformat,\n\t\t\tmipmaps: false,\n\t\t\tminFilter: FILTER_LINEAR,\n\t\t\tmagFilter: FILTER_LINEAR,\n\t\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE\n\t\t});\n\t}\n\tcreateRenderTarget(name, format) {\n\t\treturn new RenderTarget({\n\t\t\tcolorBuffer: this.createTexture(name, format),\n\t\t\tdepth: false,\n\t\t\tstencil: false\n\t\t});\n\t}\n\tframeUpdate() {\n\t\tsuper.frameUpdate();\n\t\tthis.cocPass.focusDistance = this.focusDistance;\n\t\tthis.cocPass.focusRange = this.focusRange;\n\t\tthis.blurPass.blurRadiusNear = this.blurRadius;\n\t\tthis.blurPass.blurRadiusFar = this.blurRadius;\n\t\tthis.blurPass.blurRings = this.blurRings;\n\t\tthis.blurPass.blurRingPoints = this.blurRingPoints;\n\t}\n};\n\nvar volumetricFog_default = `\n\t#include \"screenDepthPS\"\n\tvarying vec2 uv0;\n\tuniform vec3 uFogCameraPos;\n\tuniform vec3 uFogCameraFwd;\n\tuniform mat4 uFogInvView;\n\tuniform vec2 uFogProjScale;\n\tuniform vec3 uFogTint;\n\tuniform vec3 uFogLightColor;\n\tuniform vec3 uFogLightDir;\n\tuniform vec3 uFogAmbient;\n\tuniform vec4 uFogParams;\n\tuniform vec4 uFogScatterParams;\n\tuniform float uFogExtinction;\n\t#ifdef FOG_SHADOWS\n\t\tuniform mat4 uFogShadowMatrixPalette[4];\n\t\tuniform vec4 uFogShadowCascadeDistances;\n\t\tuniform vec4 uFogShadowParams;\n\t\t#ifdef FOG_SHADOW_PCF\n\t\t\tuniform sampler2DShadow uFogShadowMap;\n\t\t#else\n\t\t\tuniform sampler2D uFogShadowMap;\n\t\t#endif\n\t\tfloat sampleFogShadow(vec3 worldPos, float viewDepth) {\n\t\t\tif (viewDepth >= uFogShadowParams.w) return 1.0;\n\t\t\tvec4 comparisons = step(uFogShadowCascadeDistances, vec4(viewDepth));\n\t\t\tint cascadeIndex = int(min(dot(comparisons, vec4(1.0)), uFogShadowParams.x - 1.0));\n\t\t\tvec3 shadowCoord = (uFogShadowMatrixPalette[cascadeIndex] * vec4(worldPos, 1.0)).xyz;\n\t\t\tfloat z = shadowCoord.z - uFogShadowParams.y;\n\t\t\t#ifdef FOG_SHADOW_PCF\n\t\t\t\treturn textureShadow(uFogShadowMap, vec3(shadowCoord.xy, z));\n\t\t\t#else\n\t\t\t\treturn step(z, texture2D(uFogShadowMap, shadowCoord.xy).r);\n\t\t\t#endif\n\t\t}\n\t#endif\n\tfloat fogNoise(vec2 fragCoord) {\n\t\tconst vec3 magic = vec3(0.06711056, 0.00583715, 52.9829189);\n\t\treturn fract(magic.z * fract(dot(fragCoord, magic.xy)));\n\t}\n\tfloat fogPhase(float cosTheta, float g) {\n\t\tfloat g2 = g * g;\n\t\tfloat denom = 1.0 + g2 - 2.0 * g * cosTheta;\n\t\treturn (1.0 - g2) / (12.56637 * denom * sqrt(denom));\n\t}\n\tvoid main() {\n\t\tvec2 ndcUV = uv0;\n\t\t#ifdef WEBGPU\n\t\t\tndcUV.y = 1.0 - ndcUV.y;\n\t\t#endif\n\t\tvec2 ndc = ndcUV * 2.0 - 1.0;\n\t\tvec3 rayDir = normalize((uFogInvView * vec4(ndc * uFogProjScale, -1.0, 0.0)).xyz);\n\t\tfloat rayDot = max(dot(rayDir, uFogCameraFwd), 0.001);\n\t\tfloat rayLength = min(getLinearScreenDepth(uv0) / rayDot, uFogParams.w);\n\t\tfloat stepCount = uFogScatterParams.y;\n\t\tfloat dt = rayLength / stepCount;\n\t\tfloat noise = fract(fogNoise(gl_FragCoord.xy) + uFogScatterParams.z);\n\t\tvec3 sunLight = uFogLightColor * fogPhase(dot(rayDir, uFogLightDir), uFogScatterParams.x);\n\t\tvec3 inscatter = vec3(0.0);\n\t\tfloat transmittance = 1.0;\n\t\tfor (float i = 0.0; i < stepCount; i += 1.0) {\n\t\t\tfloat t = (i + noise) * dt;\n\t\t\tvec3 pos = uFogCameraPos + rayDir * t;\n\t\t\tfloat density = uFogParams.x * exp(-uFogParams.z * max(pos.y - uFogParams.y, 0.0));\n\t\t\tfloat shadow = 1.0;\n\t\t\t#ifdef FOG_SHADOWS\n\t\t\t\tshadow = mix(1.0, sampleFogShadow(pos, t * rayDot), uFogScatterParams.w);\n\t\t\t#endif\n\t\t\tvec3 radiance = sunLight * shadow + uFogAmbient;\n\t\t\tinscatter += transmittance * uFogTint * radiance * (density * dt);\n\t\t\ttransmittance *= exp(-uFogExtinction * density * dt);\n\t\t\tif (transmittance < 0.005) break;\n\t\t}\n\t\tgl_FragColor = vec4(inscatter, transmittance);\n\t}\n`;\n\nvar volumetricFog_default2 = `\n\t#include \"screenDepthPS\"\n\tvarying uv0: vec2f;\n\tuniform uFogCameraPos: vec3f;\n\tuniform uFogCameraFwd: vec3f;\n\tuniform uFogInvView: mat4x4f;\n\tuniform uFogProjScale: vec2f;\n\tuniform uFogTint: vec3f;\n\tuniform uFogLightColor: vec3f;\n\tuniform uFogLightDir: vec3f;\n\tuniform uFogAmbient: vec3f;\n\tuniform uFogParams: vec4f;\n\tuniform uFogScatterParams: vec4f;\n\tuniform uFogExtinction: f32;\n\t#ifdef FOG_SHADOWS\n\t\tuniform uFogShadowMatrixPalette: array<mat4x4f, 4>;\n\t\tuniform uFogShadowCascadeDistances: vec4f;\n\t\tuniform uFogShadowParams: vec4f;\n\t\t#ifdef FOG_SHADOW_PCF\n\t\t\tvar uFogShadowMap: texture_depth_2d;\n\t\t\tvar uFogShadowMapSampler: sampler_comparison;\n\t\t#else\n\t\t\tvar uFogShadowMap: texture_2d<f32>;\n\t\t\tvar uFogShadowMapSampler: sampler;\n\t\t#endif\n\t\tfn sampleFogShadow(worldPos: vec3f, viewDepth: f32) -> f32 {\n\t\t\tif (viewDepth >= uniform.uFogShadowParams.w) {\n\t\t\t\treturn 1.0;\n\t\t\t}\n\t\t\tlet comparisons: vec4f = step(uniform.uFogShadowCascadeDistances, vec4f(viewDepth));\n\t\t\tlet cascadeIndex: i32 = i32(min(dot(comparisons, vec4f(1.0)), uniform.uFogShadowParams.x - 1.0));\n\t\t\tlet shadowCoord: vec3f = (uniform.uFogShadowMatrixPalette[cascadeIndex] * vec4f(worldPos, 1.0)).xyz;\n\t\t\tlet z: f32 = shadowCoord.z - uniform.uFogShadowParams.y;\n\t\t\t#ifdef FOG_SHADOW_PCF\n\t\t\t\treturn textureSampleCompareLevel(uFogShadowMap, uFogShadowMapSampler, shadowCoord.xy, z);\n\t\t\t#else\n\t\t\t\treturn step(z, textureSampleLevel(uFogShadowMap, uFogShadowMapSampler, shadowCoord.xy, 0.0).r);\n\t\t\t#endif\n\t\t}\n\t#endif\n\tfn fogNoise(fragCoord: vec2f) -> f32 {\n\t\tconst magic: vec3f = vec3f(0.06711056, 0.00583715, 52.9829189);\n\t\treturn fract(magic.z * fract(dot(fragCoord, magic.xy)));\n\t}\n\tfn fogPhase(cosTheta: f32, g: f32) -> f32 {\n\t\tlet g2: f32 = g * g;\n\t\tlet denom: f32 = 1.0 + g2 - 2.0 * g * cosTheta;\n\t\treturn (1.0 - g2) / (12.56637 * denom * sqrt(denom));\n\t}\n\t@fragment\n\tfn fragmentMain(input: FragmentInput) -> FragmentOutput {\n\t\tvar output: FragmentOutput;\n\t\tlet ndcUV: vec2f = vec2f(input.uv0.x, 1.0 - input.uv0.y);\n\t\tlet ndc: vec2f = ndcUV * 2.0 - 1.0;\n\t\tlet rayDir: vec3f = normalize((uniform.uFogInvView * vec4f(ndc * uniform.uFogProjScale, -1.0, 0.0)).xyz);\n\t\tlet rayDot: f32 = max(dot(rayDir, uniform.uFogCameraFwd), 0.001);\n\t\tlet rayLength: f32 = min(getLinearScreenDepth(input.uv0) / rayDot, uniform.uFogParams.w);\n\t\tlet stepCount: f32 = uniform.uFogScatterParams.y;\n\t\tlet dt: f32 = rayLength / stepCount;\n\t\tlet noise: f32 = fract(fogNoise(pcPosition.xy) + uniform.uFogScatterParams.z);\n\t\tlet sunLight: vec3f = uniform.uFogLightColor * fogPhase(dot(rayDir, uniform.uFogLightDir), uniform.uFogScatterParams.x);\n\t\tvar inscatter: vec3f = vec3f(0.0);\n\t\tvar transmittance: f32 = 1.0;\n\t\tfor (var i: f32 = 0.0; i < stepCount; i += 1.0) {\n\t\t\tlet t: f32 = (i + noise) * dt;\n\t\t\tlet pos: vec3f = uniform.uFogCameraPos + rayDir * t;\n\t\t\tlet density: f32 = uniform.uFogParams.x * exp(-uniform.uFogParams.z * max(pos.y - uniform.uFogParams.y, 0.0));\n\t\t\tvar shadow: f32 = 1.0;\n\t\t\t#ifdef FOG_SHADOWS\n\t\t\t\tshadow = mix(1.0, sampleFogShadow(pos, t * rayDot), uniform.uFogScatterParams.w);\n\t\t\t#endif\n\t\t\tlet radiance: vec3f = sunLight * shadow + uniform.uFogAmbient;\n\t\t\tinscatter += transmittance * uniform.uFogTint * radiance * (density * dt);\n\t\t\ttransmittance *= exp(-uniform.uFogExtinction * density * dt);\n\t\t\tif (transmittance < 0.005) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\toutput.color = vec4f(inscatter, transmittance);\n\t\treturn output;\n\t}\n`;\n\nvar volumetricFogCombine_default = `\n\t#include \"screenDepthPS\"\n\tvarying vec2 uv0;\n\tuniform sampler2D uFogTexture;\n\tuniform vec4 uFogTextureSize;\n\tvoid main() {\n\t\tfloat depth = getLinearScreenDepth(uv0);\n\t\tvec2 texel = uv0 * uFogTextureSize.xy - 0.5;\n\t\tvec2 base = (floor(texel) + 0.5) * uFogTextureSize.zw;\n\t\tvec2 f = fract(texel);\n\t\tvec2 uvs[4];\n\t\tuvs[0] = base;\n\t\tuvs[1] = base + vec2(uFogTextureSize.z, 0.0);\n\t\tuvs[2] = base + vec2(0.0, uFogTextureSize.w);\n\t\tuvs[3] = base + uFogTextureSize.zw;\n\t\tvec4 bilinear = vec4((1.0 - f.x) * (1.0 - f.y), f.x * (1.0 - f.y), (1.0 - f.x) * f.y, f.x * f.y);\n\t\tvec4 sum = vec4(0.0);\n\t\tfloat sumWeight = 0.0;\n\t\tfor (int i = 0; i < 4; i++) {\n\t\t\tfloat sampleDepth = getLinearScreenDepth(uvs[i]);\n\t\t\tfloat w = bilinear[i] / (1.0 + 16.0 * abs(sampleDepth - depth) / max(depth, 0.001));\n\t\t\tsum += texture2D(uFogTexture, uvs[i]) * w;\n\t\t\tsumWeight += w;\n\t\t}\n\t\tgl_FragColor = sum / max(sumWeight, 0.0001);\n\t}\n`;\n\nvar volumetricFogCombine_default2 = `\n\t#include \"screenDepthPS\"\n\tvarying uv0: vec2f;\n\tvar uFogTexture: texture_2d<f32>;\n\tvar uFogTextureSampler: sampler;\n\tuniform uFogTextureSize: vec4f;\n\t@fragment\n\tfn fragmentMain(input: FragmentInput) -> FragmentOutput {\n\t\tvar output: FragmentOutput;\n\t\tlet depth: f32 = getLinearScreenDepth(input.uv0);\n\t\tlet texel: vec2f = input.uv0 * uniform.uFogTextureSize.xy - 0.5;\n\t\tlet base: vec2f = (floor(texel) + 0.5) * uniform.uFogTextureSize.zw;\n\t\tlet f: vec2f = fract(texel);\n\t\tvar uvs: array<vec2f, 4>;\n\t\tuvs[0] = base;\n\t\tuvs[1] = base + vec2f(uniform.uFogTextureSize.z, 0.0);\n\t\tuvs[2] = base + vec2f(0.0, uniform.uFogTextureSize.w);\n\t\tuvs[3] = base + uniform.uFogTextureSize.zw;\n\t\tlet bilinear: vec4f = vec4f((1.0 - f.x) * (1.0 - f.y), f.x * (1.0 - f.y), (1.0 - f.x) * f.y, f.x * f.y);\n\t\tvar sum: vec4f = vec4f(0.0);\n\t\tvar sumWeight: f32 = 0.0;\n\t\tfor (var i: i32 = 0; i < 4; i += 1) {\n\t\t\tlet sampleDepth: f32 = getLinearScreenDepth(uvs[i]);\n\t\t\tlet w: f32 = bilinear[i] / (1.0 + 16.0 * abs(sampleDepth - depth) / max(depth, 0.001));\n\t\t\tsum += textureSampleLevel(uFogTexture, uFogTextureSampler, uvs[i], 0.0) * w;\n\t\t\tsumWeight += w;\n\t\t}\n\t\toutput.color = sum / max(sumWeight, 0.0001);\n\t\treturn output;\n\t}\n`;\n\nvar volumetricFogLocal_default = `\n\t#include \"screenDepthPS\"\n\t#include \"clusteredLightUtilsPS\"\n\tfloat square(float x) {\n\t\treturn x * x;\n\t}\n\tfloat saturate(float x) {\n\t\treturn clamp(x, 0.0, 1.0);\n\t}\n\t#include \"falloffInvSquaredPS\"\n\t#include \"falloffLinearPS\"\n\t#include \"spotPS\"\n\t#ifdef VOL_COOKIES\n\t\t#include \"clusteredLightCookiesPS\"\n\t#endif\n\tvarying vec2 uv0;\n\tuniform vec3 uVolCameraPos;\n\tuniform vec3 uVolCameraFwd;\n\tuniform mat4 uVolInvView;\n\tuniform vec2 uVolProjScale;\n\tuniform vec3 uVolTint;\n\tuniform vec4 uVolFogParams;\n\tuniform vec4 uVolMarchParams;\n\tuniform vec4 uVolLightPosRange;\n\tuniform vec4 uVolLightSphere;\n\tuniform vec3 uVolLightColor;\n\tuniform vec4 uVolLightDir;\n\tuniform vec4 uVolLightSpot;\n\tuniform vec4 uVolLightAtten;\n\t#if defined(VOL_SHADOWS) || defined(VOL_COOKIES)\n\t\tuniform mat4 uVolLightProjMatrix;\n\t\tuniform vec4 uVolLightAtlas;\n\t\tuniform vec2 shadowAtlasParams;\n\t#endif\n\t#ifdef VOL_SHADOWS\n\t\tuniform sampler2DShadow shadowAtlasTexture;\n\t\tfloat volSampleShadow(vec3 pos, vec3 lightVec, float spiral) {\n\t\t\tvec2 tapOffset = vec2(cos(spiral), sin(spiral)) / shadowAtlasParams.x;\n\t\t\tif (uVolLightDir.w > 0.0) {\n\t\t\t\tvec4 projPos = uVolLightProjMatrix * vec4(pos, 1.0);\n\t\t\t\tvec3 shadowCoord = projPos.xyz / projPos.w;\n\t\t\t\treturn textureShadow(shadowAtlasTexture, vec3(shadowCoord.xy + tapOffset, shadowCoord.z));\n\t\t\t}\n\t\t\tvec2 uv = getCubemapAtlasCoordinates(uVolLightAtlas.xyz, shadowAtlasParams.y, shadowAtlasParams.x, lightVec);\n\t\t\tfloat shadowZ = length(lightVec) / uVolLightPosRange.w + uVolLightAtlas.w;\n\t\t\treturn textureShadow(shadowAtlasTexture, vec3(uv + tapOffset, shadowZ));\n\t\t}\n\t#endif\n\t#ifdef VOL_COOKIES\n\t\tuniform sampler2D cookieAtlasTexture;\n\t\tuniform vec4 uVolLightCookieChannel;\n\t\tvec3 volSampleCookie(vec3 pos, vec3 lightVec) {\n\t\t\tif (uVolLightDir.w > 0.0) {\n\t\t\t\treturn getCookie2DClustered(TEXTURE_PASS(cookieAtlasTexture), uVolLightProjMatrix, pos,\n\t\t\t\t\tuVolLightSpot.w, uVolLightCookieChannel);\n\t\t\t}\n\t\t\treturn getCookieCubeClustered(TEXTURE_PASS(cookieAtlasTexture), lightVec, uVolLightSpot.w,\n\t\t\t\tuVolLightCookieChannel, shadowAtlasParams.x, shadowAtlasParams.y, uVolLightAtlas.xyz);\n\t\t}\n\t#endif\n\tfloat fogNoise(vec2 fragCoord) {\n\t\tconst vec3 magic = vec3(0.06711056, 0.00583715, 52.9829189);\n\t\treturn fract(magic.z * fract(dot(fragCoord, magic.xy)));\n\t}\n\tfloat fogPhase(float cosTheta, float g) {\n\t\tfloat g2 = g * g;\n\t\tfloat denom = 1.0 + g2 - 2.0 * g * cosTheta;\n\t\treturn (1.0 - g2) / (12.56637 * denom * sqrt(denom));\n\t}\n\tfloat volFogSegmentDepth(float s0, float s1, float h0, float rayDirY) {\n\t\tif (s1 <= s0) return 0.0;\n\t\tfloat density = uVolFogParams.x;\n\t\tfloat falloff = uVolFogParams.z;\n\t\tfloat hMid = h0 + rayDirY * (s0 + s1) * 0.5;\n\t\tif (hMid <= 0.0) {\n\t\t\treturn density * (s1 - s0);\n\t\t}\n\t\tfloat scale = falloff * rayDirY;\n\t\tif (abs(scale) < 1e-6) {\n\t\t\treturn density * exp(-falloff * hMid) * (s1 - s0);\n\t\t}\n\t\treturn density * (exp(-falloff * (h0 + rayDirY * s0)) - exp(-falloff * (h0 + rayDirY * s1))) / scale;\n\t}\n\tvec2 volClipCone(vec2 span, float root, float gradient, float axial) {\n\t\tif (axial < 0.0) return span;\n\t\treturn gradient > 0.0 ? vec2(max(span.x, root), span.y) : vec2(span.x, min(span.y, root));\n\t}\n\tfloat volFogOpticalDepth(float t, float rayDirY) {\n\t\tfloat h0 = uVolCameraPos.y - uVolFogParams.y;\n\t\tfloat sCross = abs(rayDirY) > 1e-6 ? clamp(-h0 / rayDirY, 0.0, t) : 0.0;\n\t\tfloat depth = volFogSegmentDepth(0.0, sCross, h0, rayDirY) +\n\t\t\t\t\t  volFogSegmentDepth(sCross, t, h0, rayDirY);\n\t\treturn depth * uVolMarchParams.w;\n\t}\n\tvoid main() {\n\t\tvec2 ndcUV = uv0;\n\t\t#ifdef WEBGPU\n\t\t\tndcUV.y = 1.0 - ndcUV.y;\n\t\t#endif\n\t\tvec2 ndc = ndcUV * 2.0 - 1.0;\n\t\tvec3 rayDir = normalize((uVolInvView * vec4(ndc * uVolProjScale, -1.0, 0.0)).xyz);\n\t\tfloat rayDot = max(dot(rayDir, uVolCameraFwd), 0.001);\n\t\tfloat sceneT = min(getLinearScreenDepth(uv0) / rayDot, uVolFogParams.w);\n\t\tvec3 sphereToCam = uVolCameraPos - uVolLightSphere.xyz;\n\t\tfloat halfB = dot(sphereToCam, rayDir);\n\t\tfloat c = dot(sphereToCam, sphereToCam) - uVolLightSphere.w * uVolLightSphere.w;\n\t\tfloat discriminant = halfB * halfB - c;\n\t\tif (discriminant <= 0.0) discard;\n\t\tfloat rootOffset = sqrt(discriminant);\n\t\tfloat t0 = max(-halfB - rootOffset, 0.0);\n\t\tfloat t1 = min(-halfB + rootOffset, sceneT);\n\t\tif (uVolLightDir.w > 0.0) {\n\t\t\tvec3 apexToCam = uVolCameraPos - uVolLightPosRange.xyz;\n\t\t\tfloat axisStart = dot(apexToCam, uVolLightDir.xyz);\n\t\t\tfloat axisRate = dot(rayDir, uVolLightDir.xyz);\n\t\t\tif (abs(axisRate) > 1e-6) {\n\t\t\t\tfloat tApex = -axisStart / axisRate;\n\t\t\t\tfloat tRange = (uVolLightPosRange.w - axisStart) / axisRate;\n\t\t\t\tt0 = max(t0, min(tApex, tRange));\n\t\t\t\tt1 = min(t1, max(tApex, tRange));\n\t\t\t} else if (axisStart < 0.0 || axisStart > uVolLightPosRange.w) {\n\t\t\t\tdiscard;\n\t\t\t}\n\t\t\tfloat cosSqr = uVolLightSpot.y * uVolLightSpot.y;\n\t\t\tfloat qa = axisRate * axisRate - cosSqr;\n\t\t\tfloat qb = axisRate * axisStart - cosSqr * dot(rayDir, apexToCam);\n\t\t\tfloat qc = axisStart * axisStart - cosSqr * dot(apexToCam, apexToCam);\n\t\t\tvec2 span = vec2(t0, t1);\n\t\t\tif (abs(qa) > 1e-6) {\n\t\t\t\tfloat discriminantCone = qb * qb - qa * qc;\n\t\t\t\tif (discriminantCone > 0.0) {\n\t\t\t\t\tfloat rootOffsetCone = sqrt(discriminantCone);\n\t\t\t\t\tfloat rootA = (-qb - rootOffsetCone) / qa;\n\t\t\t\t\tfloat rootB = (-qb + rootOffsetCone) / qa;\n\t\t\t\t\tspan = volClipCone(span, rootA, qa * rootA + qb, axisStart + rootA * axisRate);\n\t\t\t\t\tspan = volClipCone(span, rootB, qa * rootB + qb, axisStart + rootB * axisRate);\n\t\t\t\t}\n\t\t\t} else if (abs(qb) > 1e-6) {\n\t\t\t\tfloat root = -0.5 * qc / qb;\n\t\t\t\tspan = volClipCone(span, root, qb, axisStart + root * axisRate);\n\t\t\t}\n\t\t\tt0 = span.x;\n\t\t\tt1 = span.y;\n\t\t}\n\t\tif (t1 <= t0) discard;\n\t\tfloat stepCount = uVolMarchParams.y;\n\t\tfloat dt = (t1 - t0) / stepCount;\n\t\tfloat noise = fract(fogNoise(gl_FragCoord.xy) + uVolMarchParams.z);\n\t\tvec3 inscatter = vec3(0.0);\n\t\tfor (float i = 0.0; i < stepCount; i += 1.0) {\n\t\t\tfloat t = t0 + (i + noise) * dt;\n\t\t\tvec3 pos = uVolCameraPos + rayDir * t;\n\t\t\tfloat density = uVolFogParams.x * exp(-uVolFogParams.z * max(pos.y - uVolFogParams.y, 0.0));\n\t\t\tvec3 lightVec = pos - uVolLightPosRange.xyz;\n\t\t\tvec3 lightDirNorm = normalize(lightVec);\n\t\t\tfloat atten = uVolLightAtten.x > 0.0 ?\n\t\t\t\tgetFalloffLinear(uVolLightPosRange.w, lightVec) :\n\t\t\t\tgetFalloffInvSquared(uVolLightPosRange.w, lightVec);\n\t\t\tif (uVolLightDir.w > 0.0) {\n\t\t\t\tatten *= getSpotEffect(uVolLightDir.xyz, uVolLightSpot.x, uVolLightSpot.y, lightDirNorm);\n\t\t\t}\n\t\t\tif (atten > 0.00001) {\n\t\t\t\t#ifdef VOL_SHADOWS\n\t\t\t\t\tif (uVolLightSpot.z > 0.0) {\n\t\t\t\t\t\tfloat spiral = (i + noise) * 2.39996;\n\t\t\t\t\t\tatten *= mix(1.0, volSampleShadow(pos, lightVec, spiral), uVolLightSpot.z);\n\t\t\t\t\t}\n\t\t\t\t#endif\n\t\t\t\tvec3 radiance = uVolLightColor;\n\t\t\t\t#ifdef VOL_COOKIES\n\t\t\t\t\tif (uVolLightSpot.w > 0.0) {\n\t\t\t\t\t\tradiance *= volSampleCookie(pos, lightVec);\n\t\t\t\t\t}\n\t\t\t\t#endif\n\t\t\t\tfloat transmittance = exp(-volFogOpticalDepth(t, rayDir.y));\n\t\t\t\tfloat phase = fogPhase(dot(rayDir, -lightDirNorm), uVolMarchParams.x);\n\t\t\t\tinscatter += transmittance * uVolTint * radiance * (atten * phase * density * dt);\n\t\t\t}\n\t\t}\n\t\tgl_FragColor = vec4(inscatter, 1.0);\n\t}\n`;\n\nvar volumetricFogLocal_default2 = `\n\t#include \"screenDepthPS\"\n\t#include \"clusteredLightUtilsPS\"\n\tfn square(x: f32) -> f32 {\n\t\treturn x * x;\n\t}\n\t#include \"falloffInvSquaredPS\"\n\t#include \"falloffLinearPS\"\n\t#include \"spotPS\"\n\t#ifdef VOL_COOKIES\n\t\t#include \"clusteredLightCookiesPS\"\n\t#endif\n\tvarying uv0: vec2f;\n\tuniform uVolCameraPos: vec3f;\n\tuniform uVolCameraFwd: vec3f;\n\tuniform uVolInvView: mat4x4f;\n\tuniform uVolProjScale: vec2f;\n\tuniform uVolTint: vec3f;\n\tuniform uVolFogParams: vec4f;\n\tuniform uVolMarchParams: vec4f;\n\tuniform uVolLightPosRange: vec4f;\n\tuniform uVolLightSphere: vec4f;\n\tuniform uVolLightColor: vec3f;\n\tuniform uVolLightDir: vec4f;\n\tuniform uVolLightSpot: vec4f;\n\tuniform uVolLightAtten: vec4f;\n\t#if defined(VOL_SHADOWS) || defined(VOL_COOKIES)\n\t\tuniform uVolLightProjMatrix: mat4x4f;\n\t\tuniform uVolLightAtlas: vec4f;\n\t\tuniform shadowAtlasParams: vec2f;\n\t#endif\n\t#ifdef VOL_SHADOWS\n\t\tvar shadowAtlasTexture: texture_depth_2d;\n\t\tvar shadowAtlasTextureSampler: sampler_comparison;\n\t\tfn volSampleShadow(pos: vec3f, lightVec: vec3f, spiral: f32) -> f32 {\n\t\t\tlet tapOffset: vec2f = vec2f(cos(spiral), sin(spiral)) / uniform.shadowAtlasParams.x;\n\t\t\tif (uniform.uVolLightDir.w > 0.0) {\n\t\t\t\tlet projPos: vec4f = uniform.uVolLightProjMatrix * vec4f(pos, 1.0);\n\t\t\t\tlet shadowCoord: vec3f = projPos.xyz / projPos.w;\n\t\t\t\treturn textureSampleCompareLevel(shadowAtlasTexture, shadowAtlasTextureSampler, shadowCoord.xy + tapOffset, shadowCoord.z);\n\t\t\t}\n\t\t\tlet uv: vec2f = getCubemapAtlasCoordinates(uniform.uVolLightAtlas.xyz, uniform.shadowAtlasParams.y, uniform.shadowAtlasParams.x, lightVec);\n\t\t\tlet shadowZ: f32 = length(lightVec) / uniform.uVolLightPosRange.w + uniform.uVolLightAtlas.w;\n\t\t\treturn textureSampleCompareLevel(shadowAtlasTexture, shadowAtlasTextureSampler, uv + tapOffset, shadowZ);\n\t\t}\n\t#endif\n\t#ifdef VOL_COOKIES\n\t\tvar cookieAtlasTexture: texture_2d<f32>;\n\t\tvar cookieAtlasTextureSampler: sampler;\n\t\tuniform uVolLightCookieChannel: vec4f;\n\t\tfn volSampleCookie(pos: vec3f, lightVec: vec3f) -> vec3f {\n\t\t\tif (uniform.uVolLightDir.w > 0.0) {\n\t\t\t\treturn getCookie2DClustered(cookieAtlasTexture, cookieAtlasTextureSampler, uniform.uVolLightProjMatrix,\n\t\t\t\t\tpos, uniform.uVolLightSpot.w, uniform.uVolLightCookieChannel);\n\t\t\t}\n\t\t\treturn getCookieCubeClustered(cookieAtlasTexture, cookieAtlasTextureSampler, lightVec,\n\t\t\t\tuniform.uVolLightSpot.w, uniform.uVolLightCookieChannel, uniform.shadowAtlasParams.x,\n\t\t\t\tuniform.shadowAtlasParams.y, uniform.uVolLightAtlas.xyz);\n\t\t}\n\t#endif\n\tfn fogNoise(fragCoord: vec2f) -> f32 {\n\t\tconst magic: vec3f = vec3f(0.06711056, 0.00583715, 52.9829189);\n\t\treturn fract(magic.z * fract(dot(fragCoord, magic.xy)));\n\t}\n\tfn fogPhase(cosTheta: f32, g: f32) -> f32 {\n\t\tlet g2: f32 = g * g;\n\t\tlet denom: f32 = 1.0 + g2 - 2.0 * g * cosTheta;\n\t\treturn (1.0 - g2) / (12.56637 * denom * sqrt(denom));\n\t}\n\tfn volFogSegmentDepth(s0: f32, s1: f32, h0: f32, rayDirY: f32) -> f32 {\n\t\tif (s1 <= s0) {\n\t\t\treturn 0.0;\n\t\t}\n\t\tlet density: f32 = uniform.uVolFogParams.x;\n\t\tlet falloff: f32 = uniform.uVolFogParams.z;\n\t\tlet hMid: f32 = h0 + rayDirY * (s0 + s1) * 0.5;\n\t\tif (hMid <= 0.0) {\n\t\t\treturn density * (s1 - s0);\n\t\t}\n\t\tlet scale: f32 = falloff * rayDirY;\n\t\tif (abs(scale) < 1e-6) {\n\t\t\treturn density * exp(-falloff * hMid) * (s1 - s0);\n\t\t}\n\t\treturn density * (exp(-falloff * (h0 + rayDirY * s0)) - exp(-falloff * (h0 + rayDirY * s1))) / scale;\n\t}\n\tfn volClipCone(span: vec2f, root: f32, gradient: f32, axial: f32) -> vec2f {\n\t\tif (axial < 0.0) {\n\t\t\treturn span;\n\t\t}\n\t\tif (gradient > 0.0) {\n\t\t\treturn vec2f(max(span.x, root), span.y);\n\t\t}\n\t\treturn vec2f(span.x, min(span.y, root));\n\t}\n\tfn volFogOpticalDepth(t: f32, rayDirY: f32) -> f32 {\n\t\tlet h0: f32 = uniform.uVolCameraPos.y - uniform.uVolFogParams.y;\n\t\tvar sCross: f32 = 0.0;\n\t\tif (abs(rayDirY) > 1e-6) {\n\t\t\tsCross = clamp(-h0 / rayDirY, 0.0, t);\n\t\t}\n\t\tlet depth: f32 = volFogSegmentDepth(0.0, sCross, h0, rayDirY) +\n\t\t\t\t\t\tvolFogSegmentDepth(sCross, t, h0, rayDirY);\n\t\treturn depth * uniform.uVolMarchParams.w;\n\t}\n\t@fragment\n\tfn fragmentMain(input: FragmentInput) -> FragmentOutput {\n\t\tvar output: FragmentOutput;\n\t\tlet ndcUV: vec2f = vec2f(input.uv0.x, 1.0 - input.uv0.y);\n\t\tlet ndc: vec2f = ndcUV * 2.0 - 1.0;\n\t\tlet rayDir: vec3f = normalize((uniform.uVolInvView * vec4f(ndc * uniform.uVolProjScale, -1.0, 0.0)).xyz);\n\t\tlet rayDot: f32 = max(dot(rayDir, uniform.uVolCameraFwd), 0.001);\n\t\tlet sceneT: f32 = min(getLinearScreenDepth(input.uv0) / rayDot, uniform.uVolFogParams.w);\n\t\tlet sphereToCam: vec3f = uniform.uVolCameraPos - uniform.uVolLightSphere.xyz;\n\t\tlet halfB: f32 = dot(sphereToCam, rayDir);\n\t\tlet c: f32 = dot(sphereToCam, sphereToCam) - uniform.uVolLightSphere.w * uniform.uVolLightSphere.w;\n\t\tlet discriminant: f32 = halfB * halfB - c;\n\t\tif (discriminant <= 0.0) {\n\t\t\tdiscard;\n\t\t\treturn output;\n\t\t}\n\t\tlet rootOffset: f32 = sqrt(discriminant);\n\t\tvar t0: f32 = max(-halfB - rootOffset, 0.0);\n\t\tvar t1: f32 = min(-halfB + rootOffset, sceneT);\n\t\tif (uniform.uVolLightDir.w > 0.0) {\n\t\t\tlet apexToCam: vec3f = uniform.uVolCameraPos - uniform.uVolLightPosRange.xyz;\n\t\t\tlet axisStart: f32 = dot(apexToCam, uniform.uVolLightDir.xyz);\n\t\t\tlet axisRate: f32 = dot(rayDir, uniform.uVolLightDir.xyz);\n\t\t\tif (abs(axisRate) > 1e-6) {\n\t\t\t\tlet tApex: f32 = -axisStart / axisRate;\n\t\t\t\tlet tRange: f32 = (uniform.uVolLightPosRange.w - axisStart) / axisRate;\n\t\t\t\tt0 = max(t0, min(tApex, tRange));\n\t\t\t\tt1 = min(t1, max(tApex, tRange));\n\t\t\t} else if (axisStart < 0.0 || axisStart > uniform.uVolLightPosRange.w) {\n\t\t\t\tdiscard;\n\t\t\t\treturn output;\n\t\t\t}\n\t\t\tlet cosSqr: f32 = uniform.uVolLightSpot.y * uniform.uVolLightSpot.y;\n\t\t\tlet qa: f32 = axisRate * axisRate - cosSqr;\n\t\t\tlet qb: f32 = axisRate * axisStart - cosSqr * dot(rayDir, apexToCam);\n\t\t\tlet qc: f32 = axisStart * axisStart - cosSqr * dot(apexToCam, apexToCam);\n\t\t\tvar span: vec2f = vec2f(t0, t1);\n\t\t\tif (abs(qa) > 1e-6) {\n\t\t\t\tlet discriminantCone: f32 = qb * qb - qa * qc;\n\t\t\t\tif (discriminantCone > 0.0) {\n\t\t\t\t\tlet rootOffsetCone: f32 = sqrt(discriminantCone);\n\t\t\t\t\tlet rootA: f32 = (-qb - rootOffsetCone) / qa;\n\t\t\t\t\tlet rootB: f32 = (-qb + rootOffsetCone) / qa;\n\t\t\t\t\tspan = volClipCone(span, rootA, qa * rootA + qb, axisStart + rootA * axisRate);\n\t\t\t\t\tspan = volClipCone(span, rootB, qa * rootB + qb, axisStart + rootB * axisRate);\n\t\t\t\t}\n\t\t\t} else if (abs(qb) > 1e-6) {\n\t\t\t\tlet root: f32 = -0.5 * qc / qb;\n\t\t\t\tspan = volClipCone(span, root, qb, axisStart + root * axisRate);\n\t\t\t}\n\t\t\tt0 = span.x;\n\t\t\tt1 = span.y;\n\t\t}\n\t\tif (t1 <= t0) {\n\t\t\tdiscard;\n\t\t\treturn output;\n\t\t}\n\t\tlet stepCount: f32 = uniform.uVolMarchParams.y;\n\t\tlet dt: f32 = (t1 - t0) / stepCount;\n\t\tlet noise: f32 = fract(fogNoise(pcPosition.xy) + uniform.uVolMarchParams.z);\n\t\tvar inscatter: vec3f = vec3f(0.0);\n\t\tfor (var i: f32 = 0.0; i < stepCount; i += 1.0) {\n\t\t\tlet t: f32 = t0 + (i + noise) * dt;\n\t\t\tlet pos: vec3f = uniform.uVolCameraPos + rayDir * t;\n\t\t\tlet density: f32 = uniform.uVolFogParams.x * exp(-uniform.uVolFogParams.z * max(pos.y - uniform.uVolFogParams.y, 0.0));\n\t\t\tlet lightVec: vec3f = pos - uniform.uVolLightPosRange.xyz;\n\t\t\tlet lightDirNorm: vec3f = normalize(lightVec);\n\t\t\tvar atten: f32 = select(\n\t\t\t\tgetFalloffInvSquared(uniform.uVolLightPosRange.w, lightVec),\n\t\t\t\tgetFalloffLinear(uniform.uVolLightPosRange.w, lightVec),\n\t\t\t\tuniform.uVolLightAtten.x > 0.0);\n\t\t\tif (uniform.uVolLightDir.w > 0.0) {\n\t\t\t\tatten = atten * getSpotEffect(uniform.uVolLightDir.xyz, uniform.uVolLightSpot.x, uniform.uVolLightSpot.y, lightDirNorm);\n\t\t\t}\n\t\t\tif (atten > 0.00001) {\n\t\t\t\t#ifdef VOL_SHADOWS\n\t\t\t\t\tif (uniform.uVolLightSpot.z > 0.0) {\n\t\t\t\t\t\tlet spiral: f32 = (i + noise) * 2.39996;\n\t\t\t\t\t\tatten = atten * mix(1.0, volSampleShadow(pos, lightVec, spiral), uniform.uVolLightSpot.z);\n\t\t\t\t\t}\n\t\t\t\t#endif\n\t\t\t\tvar radiance: vec3f = uniform.uVolLightColor;\n\t\t\t\t#ifdef VOL_COOKIES\n\t\t\t\t\tif (uniform.uVolLightSpot.w > 0.0) {\n\t\t\t\t\t\tradiance = radiance * volSampleCookie(pos, lightVec);\n\t\t\t\t\t}\n\t\t\t\t#endif\n\t\t\t\tlet transmittance: f32 = exp(-volFogOpticalDepth(t, rayDir.y));\n\t\t\t\tlet phase: f32 = fogPhase(dot(rayDir, -lightDirNorm), uniform.uVolMarchParams.x);\n\t\t\t\tinscatter += transmittance * uniform.uVolTint * radiance * (atten * phase * density * dt);\n\t\t\t}\n\t\t}\n\t\toutput.color = vec4f(inscatter, 1.0);\n\t\treturn output;\n\t}\n`;\n\nvar volumetricFogLocal_default3 = `\n\tattribute vec2 aPosition;\n\tuniform vec4 uVolLightRect;\n\tvarying vec2 uv0;\n\tvoid main(void)\n\t{\n\t\tvec2 ndc = mix(uVolLightRect.xy, uVolLightRect.zw, aPosition * 0.5 + 0.5);\n\t\tgl_Position = vec4(ndc, 0.0, 1.0);\n\t\tuv0 = getImageEffectUV(ndc * 0.5 + 0.5);\n\t}\n`;\n\nvar volumetricFogLocal_default4 = `\n\tattribute aPosition: vec2f;\n\tuniform uVolLightRect: vec4f;\n\tvarying uv0: vec2f;\n\t@vertex fn vertexMain(input: VertexInput) -> VertexOutput {\n\t\tvar output: VertexOutput;\n\t\tlet ndc: vec2f = mix(uniform.uVolLightRect.xy, uniform.uVolLightRect.zw, input.aPosition * 0.5 + 0.5);\n\t\toutput.position = vec4f(ndc, 0.0, 1.0);\n\t\toutput.uv0 = getImageEffectUV(ndc * 0.5 + 0.5);\n\t\treturn output;\n\t}\n`;\n\nvar _tempDir = new Vec3();\nvar _tempVec3 = new Vec3();\nvar _tempSphere = new BoundingSphere();\nvar _tempCorner = new Vec4();\nvar _tempProjected = new Vec4();\nvar _tempRect2 = new Vec4();\nvar _cookieChannelMasks = {\n\t\"rrr\": [1, 0, 0, 0],\n\t\"ggg\": [0, 1, 0, 0],\n\t\"bbb\": [0, 0, 1, 0],\n\t\"aaa\": [0, 0, 0, 1],\n\t\"rgb\": [1, 1, 1, 0]\n};\nvar _cookieChannelMaskNone = [0, 0, 0, 0];\nvar RenderPassVolumetricFog = class extends RenderPassShaderQuad {\n\tlight = null;\n\tshadowsEnabled = false;\n\tlightRenderData = null;\n\ttint = new Color(1, 1, 1);\n\tdensity = 0.01;\n\theightBase = 0;\n\theightFalloff = 0.05;\n\textinction = 1;\n\tanisotropy = 0.6;\n\tintensity = 1;\n\tambientColor = new Color(1, 1, 1);\n\tambientIntensity = 0.02;\n\tmaxDistance = 300;\n\tsteps = 24;\n\tnoiseOffset = 0;\n\texposure = 1;\n\t_variantKey = null;\n\tconstructor(device, cameraComponent) {\n\t\tsuper(device);\n\t\tthis.cameraComponent = cameraComponent;\n\t\tconst scope = device.scope;\n\t\tthis.cameraPosId = scope.resolve(\"uFogCameraPos\");\n\t\tthis.cameraFwdId = scope.resolve(\"uFogCameraFwd\");\n\t\tthis.invViewId = scope.resolve(\"uFogInvView\");\n\t\tthis.projScaleId = scope.resolve(\"uFogProjScale\");\n\t\tthis.tintId = scope.resolve(\"uFogTint\");\n\t\tthis.lightColorId = scope.resolve(\"uFogLightColor\");\n\t\tthis.lightDirId = scope.resolve(\"uFogLightDir\");\n\t\tthis.ambientId = scope.resolve(\"uFogAmbient\");\n\t\tthis.fogParamsId = scope.resolve(\"uFogParams\");\n\t\tthis.scatterParamsId = scope.resolve(\"uFogScatterParams\");\n\t\tthis.extinctionId = scope.resolve(\"uFogExtinction\");\n\t\tthis.shadowMapId = scope.resolve(\"uFogShadowMap\");\n\t\tthis.shadowMatrixPaletteId = scope.resolve(\"uFogShadowMatrixPalette[0]\");\n\t\tthis.shadowCascadeDistancesId = scope.resolve(\"uFogShadowCascadeDistances\");\n\t\tthis.shadowParamsId = scope.resolve(\"uFogShadowParams\");\n\t\tthis._cameraPos = new Float32Array(3);\n\t\tthis._cameraFwd = new Float32Array(3);\n\t\tthis._projScale = new Float32Array(2);\n\t\tthis._tint = new Float32Array(3);\n\t\tthis._lightColor = new Float32Array(3);\n\t\tthis._lightDir = new Float32Array(3);\n\t\tthis._ambient = new Float32Array(3);\n\t\tthis._fogParams = new Float32Array(4);\n\t\tthis._scatterParams = new Float32Array(4);\n\t\tthis._shadowParams = new Float32Array(4);\n\t}\n\tupdateShaderVariant(shadows, pcf) {\n\t\tconst depthKey = ShaderUtils.getScreenDepthChunkKey(this.cameraComponent.shaderParams);\n\t\tconst key = `${shadows}-${pcf}${depthKey}`;\n\t\tif (this._variantKey !== key) {\n\t\t\tthis._variantKey = key;\n\t\t\tconst defines = /* @__PURE__ */ new Map();\n\t\t\tShaderUtils.addScreenDepthChunkDefines(this.cameraComponent.shaderParams, defines);\n\t\t\tif (shadows) defines.set(\"FOG_SHADOWS\", \"\");\n\t\t\tif (pcf) defines.set(\"FOG_SHADOW_PCF\", \"\");\n\t\t\tthis.shader = ShaderUtils.createShader(this.device, {\n\t\t\t\tuniqueName: `VolumetricFogShader-${key}`,\n\t\t\t\tattributes: { aPosition: SEMANTIC_POSITION },\n\t\t\t\tvertexChunk: \"quadVS\",\n\t\t\t\tfragmentChunk: \"volumetricFogPS\",\n\t\t\t\tfragmentDefines: defines\n\t\t\t});\n\t\t}\n\t}\n\texecute() {\n\t\tconst { light } = this;\n\t\tconst camera = this.cameraComponent.camera;\n\t\tconst node = camera._node;\n\t\tthis.invViewId.setValue(node.getWorldTransform().data);\n\t\tconst pos = node.getPosition();\n\t\tthis._cameraPos[0] = pos.x;\n\t\tthis._cameraPos[1] = pos.y;\n\t\tthis._cameraPos[2] = pos.z;\n\t\tthis.cameraPosId.setValue(this._cameraPos);\n\t\tconst fwd = node.forward;\n\t\tthis._cameraFwd[0] = fwd.x;\n\t\tthis._cameraFwd[1] = fwd.y;\n\t\tthis._cameraFwd[2] = fwd.z;\n\t\tthis.cameraFwdId.setValue(this._cameraFwd);\n\t\tconst projData = camera.projectionMatrix.data;\n\t\tthis._projScale[0] = 1 / projData[0];\n\t\tthis._projScale[1] = 1 / projData[5];\n\t\tthis.projScaleId.setValue(this._projScale);\n\t\tconst lightScale = this.intensity * this.exposure;\n\t\tif (light) {\n\t\t\tlight._node.getWorldTransform().getY(_tempDir).normalize();\n\t\t\tthis._lightDir[0] = _tempDir.x;\n\t\t\tthis._lightDir[1] = _tempDir.y;\n\t\t\tthis._lightDir[2] = _tempDir.z;\n\t\t\tconst color3 = light._colorLinear;\n\t\t\tthis._lightColor[0] = color3[0] * lightScale;\n\t\t\tthis._lightColor[1] = color3[1] * lightScale;\n\t\t\tthis._lightColor[2] = color3[2] * lightScale;\n\t\t} else {\n\t\t\tthis._lightDir[0] = 0;\n\t\t\tthis._lightDir[1] = 1;\n\t\t\tthis._lightDir[2] = 0;\n\t\t\tthis._lightColor[0] = 0;\n\t\t\tthis._lightColor[1] = 0;\n\t\t\tthis._lightColor[2] = 0;\n\t\t}\n\t\tthis.lightDirId.setValue(this._lightDir);\n\t\tthis.lightColorId.setValue(this._lightColor);\n\t\tif (this.shadowsEnabled && light && this.lightRenderData) {\n\t\t\tconst lightRenderData = this.lightRenderData;\n\t\t\tconst biases = light._getUniformBiasValues(lightRenderData);\n\t\t\tthis.shadowMapId.setValue(lightRenderData.shadowBuffer);\n\t\t\tthis.shadowMatrixPaletteId.setValue(light._shadowMatrixPalette);\n\t\t\tthis.shadowCascadeDistancesId.setValue(light._shadowCascadeDistances);\n\t\t\tthis._shadowParams[0] = light.numCascades;\n\t\t\tthis._shadowParams[1] = biases.bias;\n\t\t\tthis._shadowParams[2] = 0;\n\t\t\tthis._shadowParams[3] = light.shadowDistance;\n\t\t\tthis.shadowParamsId.setValue(this._shadowParams);\n\t\t}\n\t\tconst { tint, ambientColor, ambientIntensity } = this;\n\t\tthis._tint[0] = tint.r;\n\t\tthis._tint[1] = tint.g;\n\t\tthis._tint[2] = tint.b;\n\t\tthis.tintId.setValue(this._tint);\n\t\tconst ambientScale = ambientIntensity * this.exposure;\n\t\tthis._ambient[0] = ambientColor.r * ambientScale;\n\t\tthis._ambient[1] = ambientColor.g * ambientScale;\n\t\tthis._ambient[2] = ambientColor.b * ambientScale;\n\t\tthis.ambientId.setValue(this._ambient);\n\t\tthis._fogParams[0] = this.density;\n\t\tthis._fogParams[1] = this.heightBase;\n\t\tthis._fogParams[2] = this.heightFalloff;\n\t\tthis._fogParams[3] = this.maxDistance;\n\t\tthis.fogParamsId.setValue(this._fogParams);\n\t\tthis.extinctionId.setValue(this.extinction);\n\t\tthis._scatterParams[0] = this.anisotropy;\n\t\tthis._scatterParams[1] = this.steps;\n\t\tthis._scatterParams[2] = this.noiseOffset;\n\t\tthis._scatterParams[3] = light ? light.shadowIntensity : 1;\n\t\tthis.scatterParamsId.setValue(this._scatterParams);\n\t\tsuper.execute();\n\t}\n};\nvar RenderPassVolumetricFogLocal = class extends RenderPassShaderQuad {\n\tscenePass = null;\n\tomniLights = true;\n\tspotLights = true;\n\ttint = new Color(1, 1, 1);\n\tdensity = 0.01;\n\theightBase = 0;\n\theightFalloff = 0.05;\n\textinction = 1;\n\tanisotropy = 0.6;\n\tintensity = 1;\n\tmaxDistance = 300;\n\tsteps = 12;\n\tnoiseOffset = 0;\n\texposure = 1;\n\t_variantKey = null;\n\tconstructor(device, cameraComponent) {\n\t\tsuper(device);\n\t\tthis.cameraComponent = cameraComponent;\n\t\tthis.blendState = new BlendState(\n\t\t\ttrue,\n\t\t\tBLENDEQUATION_ADD,\n\t\t\tBLENDMODE_ONE,\n\t\t\tBLENDMODE_ONE,\n\t\t\tBLENDEQUATION_ADD,\n\t\t\tBLENDMODE_ZERO,\n\t\t\tBLENDMODE_ONE\n\t\t);\n\t\tconst scope = device.scope;\n\t\tthis.cameraPosId = scope.resolve(\"uVolCameraPos\");\n\t\tthis.cameraFwdId = scope.resolve(\"uVolCameraFwd\");\n\t\tthis.invViewId = scope.resolve(\"uVolInvView\");\n\t\tthis.projScaleId = scope.resolve(\"uVolProjScale\");\n\t\tthis.tintId = scope.resolve(\"uVolTint\");\n\t\tthis.fogParamsId = scope.resolve(\"uVolFogParams\");\n\t\tthis.marchParamsId = scope.resolve(\"uVolMarchParams\");\n\t\tthis.lightRectId = scope.resolve(\"uVolLightRect\");\n\t\tthis.lightPosRangeId = scope.resolve(\"uVolLightPosRange\");\n\t\tthis.lightSphereId = scope.resolve(\"uVolLightSphere\");\n\t\tthis.lightColorId = scope.resolve(\"uVolLightColor\");\n\t\tthis.lightDirId = scope.resolve(\"uVolLightDir\");\n\t\tthis.lightSpotId = scope.resolve(\"uVolLightSpot\");\n\t\tthis.lightAttenId = scope.resolve(\"uVolLightAtten\");\n\t\tthis.lightProjMatrixId = scope.resolve(\"uVolLightProjMatrix\");\n\t\tthis.lightAtlasId = scope.resolve(\"uVolLightAtlas\");\n\t\tthis.lightCookieChannelId = scope.resolve(\"uVolLightCookieChannel\");\n\t\tthis._cameraPos = new Float32Array(3);\n\t\tthis._cameraFwd = new Float32Array(3);\n\t\tthis._projScale = new Float32Array(2);\n\t\tthis._tint = new Float32Array(3);\n\t\tthis._fogParams = new Float32Array(4);\n\t\tthis._marchParams = new Float32Array(4);\n\t\tthis._lightRect = new Float32Array(4);\n\t\tthis._lightPosRange = new Float32Array(4);\n\t\tthis._lightSphere = new Float32Array(4);\n\t\tthis._lightColor = new Float32Array(3);\n\t\tthis._lightDir = new Float32Array(4);\n\t\tthis._lightSpot = new Float32Array(4);\n\t\tthis._lightAtten = new Float32Array(4);\n\t\tthis._lightAtlas = new Float32Array(4);\n\t}\n\tupdateShaderVariant(shadows, cookies) {\n\t\tconst depthKey = ShaderUtils.getScreenDepthChunkKey(this.cameraComponent.shaderParams);\n\t\tconst key = `${shadows}-${cookies}${depthKey}`;\n\t\tif (this._variantKey !== key) {\n\t\t\tthis._variantKey = key;\n\t\t\tconst defines = /* @__PURE__ */ new Map();\n\t\t\tShaderUtils.addScreenDepthChunkDefines(this.cameraComponent.shaderParams, defines);\n\t\t\tif (shadows) defines.set(\"VOL_SHADOWS\", \"\");\n\t\t\tif (cookies) defines.set(\"VOL_COOKIES\", \"\");\n\t\t\tthis.shader = ShaderUtils.createShader(this.device, {\n\t\t\t\tuniqueName: `VolumetricFogLocalShader-${key}`,\n\t\t\t\tattributes: { aPosition: SEMANTIC_POSITION },\n\t\t\t\tvertexChunk: \"volumetricFogLocalVS\",\n\t\t\t\tfragmentChunk: \"volumetricFogLocalPS\",\n\t\t\t\tfragmentDefines: defines\n\t\t\t});\n\t\t}\n\t}\n\t_getLightClusters() {\n\t\tconst steps = this.scenePass?.layerRenderSteps;\n\t\tif (steps) {\n\t\t\tfor (let i2 = 0; i2 < steps.length; i2++) {\n\t\t\t\tconst clusters = steps[i2].lightClusters;\n\t\t\t\tif (clusters && clusters.usedLights.length > 1) {\n\t\t\t\t\treturn clusters;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\t_evalLightRect(light, camera, rect) {\n\t\tlight.getBoundingSphere(_tempSphere);\n\t\tconst radius = _tempSphere.radius;\n\t\tcamera.viewMatrix.transformPoint(_tempSphere.center, _tempVec3);\n\t\tif (-_tempVec3.z - radius <= camera.nearClip) {\n\t\t\trect.set(-1, -1, 1, 1);\n\t\t\treturn true;\n\t\t}\n\t\tconst projection = camera.projectionMatrix;\n\t\tlet minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity;\n\t\tfor (let i2 = 0; i2 < 8; i2++) {\n\t\t\t_tempCorner.set(\n\t\t\t\t_tempVec3.x + (i2 & 1 ? radius : -radius),\n\t\t\t\t_tempVec3.y + (i2 & 2 ? radius : -radius),\n\t\t\t\t_tempVec3.z + (i2 & 4 ? radius : -radius),\n\t\t\t\t1\n\t\t\t);\n\t\t\tprojection.transformVec4(_tempCorner, _tempProjected);\n\t\t\tconst x3 = _tempProjected.x / _tempProjected.w;\n\t\t\tconst y2 = _tempProjected.y / _tempProjected.w;\n\t\t\tminX = Math.min(minX, x3);\n\t\t\tminY = Math.min(minY, y2);\n\t\t\tmaxX = Math.max(maxX, x3);\n\t\t\tmaxY = Math.max(maxY, y2);\n\t\t}\n\t\trect.set(Math.max(minX, -1), Math.max(minY, -1), Math.min(maxX, 1), Math.min(maxY, 1));\n\t\treturn rect.x < rect.z && rect.y < rect.w;\n\t}\n\t_setupLight(light, shadows, cookies) {\n\t\tconst camera = this.cameraComponent.camera;\n\t\tconst isSpot = light._type === LIGHTTYPE_SPOT;\n\t\tif (!this._evalLightRect(light, camera, _tempRect2)) {\n\t\t\treturn false;\n\t\t}\n\t\tthis._lightRect[0] = _tempRect2.x;\n\t\tthis._lightRect[1] = _tempRect2.y;\n\t\tthis._lightRect[2] = _tempRect2.z;\n\t\tthis._lightRect[3] = _tempRect2.w;\n\t\tthis.lightRectId.setValue(this._lightRect);\n\t\tthis._lightSphere[0] = _tempSphere.center.x;\n\t\tthis._lightSphere[1] = _tempSphere.center.y;\n\t\tthis._lightSphere[2] = _tempSphere.center.z;\n\t\tthis._lightSphere[3] = _tempSphere.radius;\n\t\tthis.lightSphereId.setValue(this._lightSphere);\n\t\tconst pos = light._node.getPosition();\n\t\tthis._lightPosRange[0] = pos.x;\n\t\tthis._lightPosRange[1] = pos.y;\n\t\tthis._lightPosRange[2] = pos.z;\n\t\tthis._lightPosRange[3] = light.attenuationEnd;\n\t\tthis.lightPosRangeId.setValue(this._lightPosRange);\n\t\tconst scale2 = this.intensity * this.exposure * light.volumetricScattering;\n\t\tconst color3 = light._colorLinear;\n\t\tthis._lightColor[0] = color3[0] * scale2;\n\t\tthis._lightColor[1] = color3[1] * scale2;\n\t\tthis._lightColor[2] = color3[2] * scale2;\n\t\tthis.lightColorId.setValue(this._lightColor);\n\t\tif (isSpot) {\n\t\t\tlight._node.getWorldTransform().getY(_tempDir).mulScalar(-1).normalize();\n\t\t}\n\t\tthis._lightDir[0] = isSpot ? _tempDir.x : 0;\n\t\tthis._lightDir[1] = isSpot ? _tempDir.y : 0;\n\t\tthis._lightDir[2] = isSpot ? _tempDir.z : 0;\n\t\tthis._lightDir[3] = isSpot ? 1 : 0;\n\t\tthis.lightDirId.setValue(this._lightDir);\n\t\tthis._lightAtten[0] = light._falloffMode === LIGHTFALLOFF_LINEAR ? 1 : 0;\n\t\tthis.lightAttenId.setValue(this._lightAtten);\n\t\tconst hasAtlasSlot = light.atlasViewportAllocated;\n\t\tconst hasShadowMap = shadows && hasAtlasSlot && light.castShadows;\n\t\tconst useShadow = hasShadowMap && light.shadowIntensity > 0;\n\t\tconst useCookie = cookies && hasAtlasSlot && !!light._cookie && light.cookieIntensity > 0;\n\t\tthis._lightSpot[0] = light._innerConeAngleCos;\n\t\tthis._lightSpot[1] = light._outerConeAngleCos;\n\t\tthis._lightSpot[2] = useShadow ? light.shadowIntensity : 0;\n\t\tthis._lightSpot[3] = useCookie ? light.cookieIntensity : 0;\n\t\tthis.lightSpotId.setValue(this._lightSpot);\n\t\tif (shadows || cookies) {\n\t\t\tconst lightRenderData = hasShadowMap ? light.getRenderData(null, 0) : null;\n\t\t\tif (isSpot) {\n\t\t\t\tconst matrix2 = lightRenderData?.shadowMatrix ?? (useCookie ? LightCamera.evalSpotCookieMatrix(light) : Mat4.IDENTITY);\n\t\t\t\tthis.lightProjMatrixId.setValue(matrix2.data);\n\t\t\t} else {\n\t\t\t\tthis.lightProjMatrixId.setValue(Mat4.IDENTITY.data);\n\t\t\t}\n\t\t\tconst viewport = light.atlasViewport;\n\t\t\tthis._lightAtlas[0] = viewport.x;\n\t\t\tthis._lightAtlas[1] = viewport.y;\n\t\t\tthis._lightAtlas[2] = viewport.z / 3;\n\t\t\tthis._lightAtlas[3] = lightRenderData ? light._getUniformBiasValues(lightRenderData).bias : 0;\n\t\t\tthis.lightAtlasId.setValue(this._lightAtlas);\n\t\t}\n\t\tif (cookies) {\n\t\t\tthis.lightCookieChannelId.setValue(useCookie ? _cookieChannelMasks[light._cookieChannel] ?? _cookieChannelMasks.rgb : _cookieChannelMaskNone);\n\t\t}\n\t\treturn true;\n\t}\n\texecute() {\n\t\tconst clusters = this._getLightClusters();\n\t\tif (!clusters || !this.quadRender) {\n\t\t\treturn;\n\t\t}\n\t\tconst camera = this.cameraComponent.camera;\n\t\tconst node = camera._node;\n\t\tconst { lighting } = this.cameraComponent.system.app.scene;\n\t\tthis.invViewId.setValue(node.getWorldTransform().data);\n\t\tconst pos = node.getPosition();\n\t\tthis._cameraPos[0] = pos.x;\n\t\tthis._cameraPos[1] = pos.y;\n\t\tthis._cameraPos[2] = pos.z;\n\t\tthis.cameraPosId.setValue(this._cameraPos);\n\t\tconst fwd = node.forward;\n\t\tthis._cameraFwd[0] = fwd.x;\n\t\tthis._cameraFwd[1] = fwd.y;\n\t\tthis._cameraFwd[2] = fwd.z;\n\t\tthis.cameraFwdId.setValue(this._cameraFwd);\n\t\tconst projData = camera.projectionMatrix.data;\n\t\tthis._projScale[0] = 1 / projData[0];\n\t\tthis._projScale[1] = 1 / projData[5];\n\t\tthis.projScaleId.setValue(this._projScale);\n\t\tconst { tint } = this;\n\t\tthis._tint[0] = tint.r;\n\t\tthis._tint[1] = tint.g;\n\t\tthis._tint[2] = tint.b;\n\t\tthis.tintId.setValue(this._tint);\n\t\tthis._fogParams[0] = this.density;\n\t\tthis._fogParams[1] = this.heightBase;\n\t\tthis._fogParams[2] = this.heightFalloff;\n\t\tthis._fogParams[3] = this.maxDistance;\n\t\tthis.fogParamsId.setValue(this._fogParams);\n\t\tthis._marchParams[0] = this.anisotropy;\n\t\tthis._marchParams[1] = this.steps;\n\t\tthis._marchParams[2] = this.noiseOffset;\n\t\tthis._marchParams[3] = this.extinction;\n\t\tthis.marchParamsId.setValue(this._marchParams);\n\t\tthis.device.setDrawStates(\n\t\t\tthis.blendState,\n\t\t\tthis.depthState,\n\t\t\tthis.cullMode,\n\t\t\tthis.frontFace,\n\t\t\tthis.stencilFront,\n\t\t\tthis.stencilBack\n\t\t);\n\t\tconst { shadowsEnabled, cookiesEnabled } = lighting;\n\t\tconst { omniLights, spotLights } = this;\n\t\tconst lights2 = clusters.usedLights;\n\t\tfor (let i2 = 1; i2 < lights2.length; i2++) {\n\t\t\tconst light = lights2[i2].light;\n\t\t\tconst enabled = light?.volumetricScattering > 0 && (light._type === LIGHTTYPE_SPOT ? spotLights : omniLights);\n\t\t\tif (enabled && this._setupLight(light, shadowsEnabled, cookiesEnabled)) {\n\t\t\t\tthis.quadRender.render();\n\t\t\t}\n\t\t}\n\t}\n};\nvar RenderPassVolumetricFogCombine = class extends RenderPassShaderQuad {\n\tconstructor(device, cameraComponent, fogTexture) {\n\t\tsuper(device);\n\t\tthis.fogTexture = fogTexture;\n\t\tconst defines = /* @__PURE__ */ new Map();\n\t\tconst depthKey = ShaderUtils.addScreenDepthChunkDefines(cameraComponent.shaderParams, defines);\n\t\tthis.shader = ShaderUtils.createShader(device, {\n\t\t\tuniqueName: `VolumetricFogCombineShader${depthKey}`,\n\t\t\tattributes: { aPosition: SEMANTIC_POSITION },\n\t\t\tvertexChunk: \"quadVS\",\n\t\t\tfragmentChunk: \"volumetricFogCombinePS\",\n\t\t\tfragmentDefines: defines\n\t\t});\n\t\tthis.blendState = new BlendState(\n\t\t\ttrue,\n\t\t\tBLENDEQUATION_ADD,\n\t\t\tBLENDMODE_ONE,\n\t\t\tBLENDMODE_SRC_ALPHA,\n\t\t\tBLENDEQUATION_ADD,\n\t\t\tBLENDMODE_ZERO,\n\t\t\tBLENDMODE_ONE\n\t\t);\n\t\tthis.fogTextureId = device.scope.resolve(\"uFogTexture\");\n\t\tthis.fogTextureSizeId = device.scope.resolve(\"uFogTextureSize\");\n\t\tthis._fogTextureSize = new Float32Array(4);\n\t}\n\texecute() {\n\t\tconst { fogTexture } = this;\n\t\tthis.fogTextureId.setValue(fogTexture);\n\t\tthis._fogTextureSize[0] = fogTexture.width;\n\t\tthis._fogTextureSize[1] = fogTexture.height;\n\t\tthis._fogTextureSize[2] = 1 / fogTexture.width;\n\t\tthis._fogTextureSize[3] = 1 / fogTexture.height;\n\t\tthis.fogTextureSizeId.setValue(this._fogTextureSize);\n\t\tsuper.execute();\n\t}\n};\nvar FramePassVolumetricFog = class extends FramePass {\n\tlight = null;\n\ttint = new Color(1, 1, 1);\n\tdensity = 0.01;\n\theightBase = 0;\n\theightFalloff = 0.05;\n\textinction = 1;\n\tanisotropy = 0.6;\n\tintensity = 1;\n\tambientColor = new Color(1, 1, 1);\n\tambientIntensity = 0.02;\n\tmaxDistance = 300;\n\tsteps = 24;\n\ttemporalDither = false;\n\tlocalOmniLights = false;\n\tlocalSpotLights = false;\n\tlocalIntensity = 1;\n\tlocalSteps = 12;\n\t_scale = 0.5;\n\t_frameIndex = 0;\n\tconstructor(device, cameraComponent, sceneTexture, sceneRenderTarget, scenePass = null) {\n\t\tsuper(device);\n\t\tthis.cameraComponent = cameraComponent;\n\t\tShaderChunks.get(device, SHADERLANGUAGE_GLSL).set(\"volumetricFogPS\", volumetricFog_default);\n\t\tShaderChunks.get(device, SHADERLANGUAGE_WGSL).set(\"volumetricFogPS\", volumetricFog_default2);\n\t\tShaderChunks.get(device, SHADERLANGUAGE_GLSL).set(\"volumetricFogCombinePS\", volumetricFogCombine_default);\n\t\tShaderChunks.get(device, SHADERLANGUAGE_WGSL).set(\"volumetricFogCombinePS\", volumetricFogCombine_default2);\n\t\tShaderChunks.get(device, SHADERLANGUAGE_GLSL).set(\"volumetricFogLocalPS\", volumetricFogLocal_default);\n\t\tShaderChunks.get(device, SHADERLANGUAGE_WGSL).set(\"volumetricFogLocalPS\", volumetricFogLocal_default2);\n\t\tShaderChunks.get(device, SHADERLANGUAGE_GLSL).set(\"volumetricFogLocalVS\", volumetricFogLocal_default3);\n\t\tShaderChunks.get(device, SHADERLANGUAGE_WGSL).set(\"volumetricFogLocalVS\", volumetricFogLocal_default4);\n\t\tconst format = device.getRenderableHdrFormat([PIXELFORMAT_RGBA16F, PIXELFORMAT_RGBA32F], true, 1) ?? PIXELFORMAT_RGBA8;\n\t\tthis.fogTexture = new Texture(device, {\n\t\t\tname: \"VolumetricFogTexture\",\n\t\t\twidth: 4,\n\t\t\theight: 4,\n\t\t\tformat,\n\t\t\tmipmaps: false,\n\t\t\tminFilter: FILTER_LINEAR,\n\t\t\tmagFilter: FILTER_LINEAR,\n\t\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE\n\t\t});\n\t\tthis.fogRenderTarget = new RenderTarget({\n\t\t\tname: \"VolumetricFogRT\",\n\t\t\tcolorBuffer: this.fogTexture,\n\t\t\tdepth: false\n\t\t});\n\t\tthis.fogPass = new RenderPassVolumetricFog(device, cameraComponent);\n\t\tthis.fogPass.init(this.fogRenderTarget, {\n\t\t\tresizeSource: sceneTexture,\n\t\t\tscaleX: this._scale,\n\t\t\tscaleY: this._scale\n\t\t});\n\t\tthis.fogPass.setClearColor(new Color(0, 0, 0, 1));\n\t\tthis.beforePasses.push(this.fogPass);\n\t\tthis.localPass = new RenderPassVolumetricFogLocal(device, cameraComponent);\n\t\tthis.localPass.scenePass = scenePass;\n\t\tthis.localPass.init(this.fogRenderTarget);\n\t\tthis.beforePasses.push(this.localPass);\n\t\tthis.combinePass = new RenderPassVolumetricFogCombine(device, cameraComponent, this.fogTexture);\n\t\tthis.combinePass.init(sceneRenderTarget);\n\t\tthis.beforePasses.push(this.combinePass);\n\t}\n\tdestroy() {\n\t\tthis.beforePasses.forEach((pass) => pass.destroy());\n\t\tthis.beforePasses.length = 0;\n\t\tthis.fogPass = null;\n\t\tthis.localPass = null;\n\t\tthis.combinePass = null;\n\t\tif (this.fogRenderTarget) {\n\t\t\tthis.fogRenderTarget.destroyTextureBuffers();\n\t\t\tthis.fogRenderTarget.destroy();\n\t\t\tthis.fogRenderTarget = null;\n\t\t\tthis.fogTexture = null;\n\t\t}\n\t}\n\tset scale(value) {\n\t\tthis._scale = value;\n\t\tthis.fogPass.scaleX = value;\n\t\tthis.fogPass.scaleY = value;\n\t}\n\tget scale() {\n\t\treturn this._scale;\n\t}\n\tframeUpdate() {\n\t\tsuper.frameUpdate();\n\t\tconst { light, fogPass, localPass } = this;\n\t\tconst camera = this.cameraComponent.camera;\n\t\tconst scene = this.cameraComponent.system.app.scene;\n\t\tlet shadows = false;\n\t\tlet pcf = false;\n\t\tlet lightRenderData = null;\n\t\tif (light && light.castShadows && light.shadowIntensity > 0) {\n\t\t\tlightRenderData = light.getRenderData(camera, 0);\n\t\t\tif (lightRenderData.shadowBuffer) {\n\t\t\t\tshadows = true;\n\t\t\t\tpcf = !!shadowTypeInfo.get(light._shadowType)?.pcf;\n\t\t\t}\n\t\t}\n\t\tfogPass.updateShaderVariant(shadows, pcf);\n\t\tfogPass.shadowsEnabled = shadows;\n\t\tfogPass.lightRenderData = shadows ? lightRenderData : null;\n\t\tfogPass.light = light;\n\t\tfogPass.tint.copy(this.tint);\n\t\tfogPass.density = this.density;\n\t\tfogPass.heightBase = this.heightBase;\n\t\tfogPass.heightFalloff = this.heightFalloff;\n\t\tfogPass.extinction = this.extinction;\n\t\tfogPass.anisotropy = this.anisotropy;\n\t\tfogPass.intensity = this.intensity;\n\t\tfogPass.ambientColor.copy(this.ambientColor);\n\t\tfogPass.ambientIntensity = this.ambientIntensity;\n\t\tfogPass.maxDistance = this.maxDistance;\n\t\tfogPass.steps = Math.max(1, Math.floor(this.steps));\n\t\tfogPass.exposure = scene.exposure;\n\t\tthis._frameIndex = (this._frameIndex + 1) % 16;\n\t\tfogPass.noiseOffset = this.temporalDither ? this._frameIndex * 0.618034 : 0;\n\t\tconst { localOmniLights, localSpotLights } = this;\n\t\tlocalPass.enabled = (localOmniLights || localSpotLights) && scene.clusteredLightingEnabled;\n\t\tif (localPass.enabled) {\n\t\t\tconst { shadowsEnabled, cookiesEnabled } = scene.lighting;\n\t\t\tlocalPass.updateShaderVariant(shadowsEnabled, cookiesEnabled);\n\t\t\tlocalPass.omniLights = localOmniLights;\n\t\t\tlocalPass.spotLights = localSpotLights;\n\t\t\tlocalPass.tint.copy(this.tint);\n\t\t\tlocalPass.density = this.density;\n\t\t\tlocalPass.heightBase = this.heightBase;\n\t\t\tlocalPass.heightFalloff = this.heightFalloff;\n\t\t\tlocalPass.extinction = this.extinction;\n\t\t\tlocalPass.anisotropy = this.anisotropy;\n\t\t\tlocalPass.maxDistance = this.maxDistance;\n\t\t\tlocalPass.intensity = this.localIntensity;\n\t\t\tlocalPass.steps = Math.max(1, Math.floor(this.localSteps));\n\t\t\tlocalPass.exposure = scene.exposure;\n\t\t\tlocalPass.noiseOffset = fogPass.noiseOffset;\n\t\t}\n\t}\n};\n\nvar tempMeshInstances2 = [];\nvar DEPTH_UNIFORM_NAME = \"uSceneDepthMap\";\nvar RenderPassPrepass = class extends RenderPass {\n\tlinearDepthTexture;\n\tlinearDepthClearValue = new Color(0, 0, 0, 0);\n\t_qualifiedLayerIndices = [];\n\tconstructor(device, scene, renderer, camera, options2) {\n\t\tsuper(device);\n\t\tthis.scene = scene;\n\t\tthis.renderer = renderer;\n\t\tthis.camera = camera;\n\t\tthis.setupRenderTarget(options2);\n\t}\n\tdestroy() {\n\t\tsuper.destroy();\n\t\tthis.camera.shaderParams.sceneDepthMapLinear = false;\n\t\tthis.camera.shaderParams.sceneDepthMapPacked = false;\n\t\tthis.camera.shaderParams.sceneDepthMapReciprocal = false;\n\t\tthis.renderTarget?.destroy();\n\t\tthis.renderTarget = null;\n\t\tthis.linearDepthTexture?.destroy();\n\t\tthis.linearDepthTexture = null;\n\t}\n\tsetupRenderTarget(options2) {\n\t\tconst { device } = this;\n\t\tthis.linearDepthFormat = device.textureFloatRenderable ? PIXELFORMAT_R32F : PIXELFORMAT_RGBA8;\n\t\tthis.linearDepthTexture = Texture.createDataTexture2D(device, \"SceneLinearDepthTexture\", 1, 1, this.linearDepthFormat);\n\t\tconst renderTarget = new RenderTarget({\n\t\t\tname: \"PrepassRT\",\n\t\t\tcolorBuffer: this.linearDepthTexture,\n\t\t\t// use depth buffer, but this can be discarded after the prepass as the depth is stored in the linearDepthTexture\n\t\t\tdepth: true,\n\t\t\t// always single sampled\n\t\t\tsamples: 1\n\t\t});\n\t\tconst { shaderParams } = this.camera;\n\t\tshaderParams.sceneDepthMapLinear = true;\n\t\tshaderParams.sceneDepthMapPacked = this.linearDepthFormat === PIXELFORMAT_RGBA8;\n\t\tshaderParams.sceneDepthMapReciprocal = false;\n\t\tthis.init(renderTarget, options2);\n\t}\n\tafter() {\n\t\tthis.device.scope.resolve(DEPTH_UNIFORM_NAME).setValue(this.linearDepthTexture);\n\t\tthis.camera.camera.publishSceneDepthMap(this.linearDepthTexture, this.device.renderVersion);\n\t}\n\texecute() {\n\t\tconst { renderer, scene, renderTarget } = this;\n\t\tconst camera = this.camera.camera;\n\t\tconst layers = scene.layers.layerList;\n\t\tconst isTransparent = scene.layers.subLayerList;\n\t\tfor (const i2 of this._qualifiedLayerIndices) {\n\t\t\tconst layer = layers[i2];\n\t\t\tconst culledInstances = layer.getCulledInstances(camera);\n\t\t\tconst meshInstances = isTransparent[i2] ? culledInstances.transparent : culledInstances.opaque;\n\t\t\tfor (let j = 0; j < meshInstances.length; j++) {\n\t\t\t\tconst meshInstance = meshInstances[j];\n\t\t\t\tif (meshInstance.material?.depthWrite) {\n\t\t\t\t\ttempMeshInstances2.push(meshInstance);\n\t\t\t\t}\n\t\t\t}\n\t\t\trenderer.renderForwardLayer(camera, renderTarget, null, void 0, SHADER_PREPASS, {\n\t\t\t\tmeshInstances: tempMeshInstances2\n\t\t\t});\n\t\t\ttempMeshInstances2.length = 0;\n\t\t}\n\t}\n\tframeUpdate() {\n\t\tsuper.frameUpdate();\n\t\tconst { camera } = this;\n\t\tthis.setClearDepth(camera.clearDepthBuffer ? 1 : void 0);\n\t\tlet clearValue;\n\t\tif (camera.clearDepthBuffer) {\n\t\t\tconst farClip = camera.farClip - Number.MIN_VALUE;\n\t\t\tclearValue = this.linearDepthClearValue;\n\t\t\tif (this.linearDepthFormat === PIXELFORMAT_R32F) {\n\t\t\t\tclearValue.r = farClip;\n\t\t\t} else {\n\t\t\t\tFloatPacking.float2RGBA8(farClip, clearValue);\n\t\t\t}\n\t\t}\n\t\tthis.setClearColor(clearValue);\n\t\tconst { renderer, scene } = this;\n\t\tconst cullCamera = this.camera.camera;\n\t\tconst composition = scene.layers;\n\t\tconst layerList = composition.layerList;\n\t\tconst qualified = this._qualifiedLayerIndices;\n\t\tqualified.length = 0;\n\t\tfor (let i2 = 0; i2 < layerList.length; i2++) {\n\t\t\tif (layerList[i2].id === LAYERID_DEPTH) break;\n\t\t\tif (composition.isSubLayerRenderedByCamera(i2, cullCamera)) {\n\t\t\t\tqualified.push(i2);\n\t\t\t\trenderer.culler.requestMeshInstanceCull(cullCamera, layerList[i2]);\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar depthAwareBlur_default = `\n\t#include \"screenDepthPS\"\n\tvarying vec2 uv0;\n\tuniform sampler2D sourceTexture;\n\tuniform vec2 sourceInvResolution;\n\tuniform int filterSize;\n\tfloat random(const highp vec2 w) {\n\t\tconst vec3 m = vec3(0.06711056, 0.00583715, 52.9829189);\n\t\treturn fract(m.z * fract(dot(w, m.xy)));\n\t}\n\tmediump float bilateralWeight(in mediump float depth, in mediump float sampleDepth) {\n\t\tmediump float diff = (sampleDepth - depth);\n\t\treturn max(0.0, 1.0 - diff * diff);\n\t}\n\tvoid tap(inout float sum, inout float totalWeight, float weight, float depth, vec2 position) {\n\t\tmediump float color = texture2D(sourceTexture, position).r;\n\t\tmediump float textureDepth = -getLinearScreenDepth(position);\n\t\n\t\tmediump float bilateral = bilateralWeight(depth, textureDepth);\n\t\tbilateral *= weight;\n\t\tsum += color * bilateral;\n\t\ttotalWeight += bilateral;\n\t}\n\tvoid main() {\n\t\tmediump float depth = -getLinearScreenDepth(uv0);\n\t\tmediump float totalWeight = 1.0;\n\t\tmediump float color = texture2D(sourceTexture, uv0 ).r;\n\t\tmediump float sum = color * totalWeight;\n\t\tfor (mediump int i = -filterSize; i <= filterSize; i++) {\n\t\t\tmediump float weight = 1.0;\n\t\t\t#ifdef HORIZONTAL\n\t\t\t\tvec2 offset = vec2(i, 0) * sourceInvResolution;\n\t\t\t#else\n\t\t\t\tvec2 offset = vec2(0, i) * sourceInvResolution;\n\t\t\t#endif\n\t\t\ttap(sum, totalWeight, weight, depth, uv0 + offset);\n\t\t}\n\t\tmediump float ao = sum / totalWeight;\n\t\tgl_FragColor.r = ao;\n\t}\n`;\n\nvar depthAwareBlur_default2 = `\n#include \"screenDepthPS\"\nvarying uv0: vec2f;\nvar sourceTexture: texture_2d<f32>;\nvar sourceTextureSampler: sampler;\nuniform sourceInvResolution: vec2f;\nuniform filterSize: i32;\nfn random(w: vec2f) -> f32 {\n\tconst m: vec3f = vec3f(0.06711056, 0.00583715, 52.9829189);\n\treturn fract(m.z * fract(dot(w, m.xy)));\n}\nfn bilateralWeight(depth: f32, sampleDepth: f32) -> f32 {\n\tlet diff: f32 = (sampleDepth - depth);\n\treturn max(0.0, 1.0 - diff * diff);\n}\nfn tap(sum_ptr: ptr<function, f32>, totalWeight_ptr: ptr<function, f32>, weight: f32, depth: f32, position: vec2f) {\n\tlet color: f32 = textureSample(sourceTexture, sourceTextureSampler, position).r;\n\tlet textureDepth: f32 = -getLinearScreenDepth(position);\n\tlet bilateral: f32 = bilateralWeight(depth, textureDepth) * weight;\n\t*sum_ptr = *sum_ptr + color * bilateral;\n\t*totalWeight_ptr = *totalWeight_ptr + bilateral;\n}\n@fragment\nfn fragmentMain(input: FragmentInput) -> FragmentOutput {\n\tvar output: FragmentOutput;\n\tlet depth: f32 = -getLinearScreenDepth(input.uv0);\n\tvar totalWeight: f32 = 1.0;\n\tlet color: f32 = textureSample(sourceTexture, sourceTextureSampler, input.uv0 ).r;\n\tvar sum: f32 = color * totalWeight;\n\tfor (var i: i32 = -uniform.filterSize; i <= uniform.filterSize; i = i + 1) {\n\t\tlet weight: f32 = 1.0;\n\t\t#ifdef HORIZONTAL\n\t\t\tvar offset: vec2f = vec2f(f32(i), 0.0) * uniform.sourceInvResolution;\n\t\t#else\n\t\t\tvar offset: vec2f = vec2f(0.0, f32(i)) * uniform.sourceInvResolution;\n\t\t#endif\n\t\ttap(&sum, &totalWeight, weight, depth, input.uv0 + offset);\n\t}\n\tlet ao: f32 = sum / totalWeight;\n\toutput.color = vec4f(ao, ao, ao, 1.0);\n\treturn output;\n}\n`;\n\nvar RenderPassDepthAwareBlur = class extends RenderPassShaderQuad {\n\tconstructor(device, sourceTexture, cameraComponent, horizontal) {\n\t\tsuper(device);\n\t\tthis.sourceTexture = sourceTexture;\n\t\tShaderChunks.get(device, SHADERLANGUAGE_GLSL).set(\"depthAwareBlurPS\", depthAwareBlur_default);\n\t\tShaderChunks.get(device, SHADERLANGUAGE_WGSL).set(\"depthAwareBlurPS\", depthAwareBlur_default2);\n\t\tconst defines = /* @__PURE__ */ new Map();\n\t\tif (horizontal) defines.set(\"HORIZONTAL\", \"\");\n\t\tconst depthKey = ShaderUtils.addScreenDepthChunkDefines(cameraComponent.shaderParams, defines);\n\t\tthis.shader = ShaderUtils.createShader(device, {\n\t\t\tuniqueName: `DepthAware${horizontal ? \"Horizontal\" : \"Vertical\"}BlurShader${depthKey}`,\n\t\t\tattributes: { aPosition: SEMANTIC_POSITION },\n\t\t\tvertexChunk: \"quadVS\",\n\t\t\tfragmentChunk: \"depthAwareBlurPS\",\n\t\t\tfragmentDefines: defines\n\t\t});\n\t\tconst scope = this.device.scope;\n\t\tthis.sourceTextureId = scope.resolve(\"sourceTexture\");\n\t\tthis.sourceInvResolutionId = scope.resolve(\"sourceInvResolution\");\n\t\tthis.sourceInvResolutionValue = new Float32Array(2);\n\t\tthis.filterSizeId = scope.resolve(\"filterSize\");\n\t}\n\texecute() {\n\t\tthis.filterSizeId.setValue(4);\n\t\tthis.sourceTextureId.setValue(this.sourceTexture);\n\t\tconst { width, height } = this.sourceTexture;\n\t\tthis.sourceInvResolutionValue[0] = 1 / width;\n\t\tthis.sourceInvResolutionValue[1] = 1 / height;\n\t\tthis.sourceInvResolutionId.setValue(this.sourceInvResolutionValue);\n\t\tsuper.execute();\n\t}\n};\n\nvar ssao_default = `\n\t#include \"screenDepthPS\"\n\t\n\tvarying vec2 uv0;\n\tuniform vec2 uInvResolution;\n\tuniform float uAspect;\n\t#define saturate(x) clamp(x,0.0,1.0)\n\thighp float getWFromProjectionMatrix(const mat4 p, const vec3 v) {\n\t\treturn -v.z;\n\t}\n\thighp float getViewSpaceZFromW(const mat4 p, const float w) {\n\t\treturn -w;\n\t}\n\tconst float kLog2LodRate = 3.0;\n\tfloat random(const highp vec2 w) {\n\t\tconst vec3 m = vec3(0.06711056, 0.00583715, 52.9829189);\n\t\treturn fract(m.z * fract(dot(w, m.xy)));\n\t}\n\thighp vec2 getFragCoord() {\n\t\treturn gl_FragCoord.xy;\n\t}\n\thighp vec3 computeViewSpacePositionFromDepth(highp vec2 uv, highp float linearDepth) {\n\t\treturn vec3((0.5 - uv) * vec2(uAspect, 1.0) * linearDepth, linearDepth);\n\t}\n\thighp vec2 snapToDepthTexelCenter(const highp vec2 uv) {\n\t\tvec2 size = vec2(textureSize(uSceneDepthMap, 0));\n\t\treturn (floor(uv * size) + 0.5) / size;\n\t}\n\thighp vec3 faceNormal(highp vec3 dpdx, highp vec3 dpdy) {\n\t\treturn normalize(cross(dpdx, dpdy));\n\t}\n\thighp vec3 computeViewSpaceNormal(const highp vec3 position) {\n\t\treturn faceNormal(dFdx(position), dFdy(position));\n\t}\n\thighp vec3 computeViewSpaceNormal(const highp vec3 position, const highp vec2 uv) {\n\t\thighp vec2 uvdx = snapToDepthTexelCenter(uv + vec2(uInvResolution.x, 0.0));\n\t\thighp vec2 uvdy = snapToDepthTexelCenter(uv + vec2(0.0, uInvResolution.y));\n\t\thighp vec3 px = computeViewSpacePositionFromDepth(uvdx, -getLinearScreenDepth(uvdx));\n\t\thighp vec3 py = computeViewSpacePositionFromDepth(uvdy, -getLinearScreenDepth(uvdy));\n\t\thighp vec3 dpdx = px - position;\n\t\thighp vec3 dpdy = py - position;\n\t\treturn faceNormal(dpdx, dpdy);\n\t}\n\tuniform vec2 uSampleCount;\n\tuniform float uSpiralTurns;\n\t#define PI (3.14159)\n\tmediump vec3 tapLocation(mediump float i, const mediump float noise) {\n\t\tmediump float offset = ((2.0 * PI) * 2.4) * noise;\n\t\tmediump float angle = ((i * uSampleCount.y) * uSpiralTurns) * (2.0 * PI) + offset;\n\t\tmediump float radius = (i + noise + 0.5) * uSampleCount.y;\n\t\treturn vec3(cos(angle), sin(angle), radius * radius);\n\t}\n\thighp vec2 startPosition(const float noise) {\n\t\tfloat angle = ((2.0 * PI) * 2.4) * noise;\n\t\treturn vec2(cos(angle), sin(angle));\n\t}\n\tuniform vec2 uAngleIncCosSin;\n\thighp mat2 tapAngleStep() {\n\t\thighp vec2 t = uAngleIncCosSin;\n\t\treturn mat2(t.x, t.y, -t.y, t.x);\n\t}\n\tmediump vec3 tapLocationFast(mediump float i, mediump vec2 p, const mediump float noise) {\n\t\tmediump float radius = (i + noise + 0.5) * uSampleCount.y;\n\t\treturn vec3(p, radius * radius);\n\t}\n\tuniform float uMaxLevel;\n\tuniform float uInvRadiusSquared;\n\tuniform float uMinHorizonAngleSineSquared;\n\tuniform float uBias;\n\tuniform float uPeak2;\n\tvoid computeAmbientOcclusionSAO(inout mediump float occlusion, mediump float i, mediump float ssDiskRadius,\n\t\t\tconst highp vec2 uv, const highp vec3 origin, const mediump vec3 normal,\n\t\t\tconst mediump vec2 tapPosition, const float noise) {\n\t\tmediump vec3 tap = tapLocationFast(i, tapPosition, noise);\n\t\tmediump float ssRadius = max(1.0, tap.z * ssDiskRadius);\n\t\tmediump vec2 uvSamplePos = snapToDepthTexelCenter(uv + vec2(ssRadius * tap.xy) * uInvResolution);\n\t\tmediump float level = clamp(floor(log2(ssRadius)) - kLog2LodRate, 0.0, float(uMaxLevel));\n\t\thighp float occlusionDepth = -getLinearScreenDepth(uvSamplePos);\n\t\thighp vec3 p = computeViewSpacePositionFromDepth(uvSamplePos, occlusionDepth);\n\t\tvec3 v = p - origin;\n\t\tfloat vv = dot(v, v);\n\t\tfloat vn = dot(v, normal);\n\t\tmediump float w = max(0.0, 1.0 - vv * uInvRadiusSquared);\n\t\tw = w * w;\n\t\tw *= step(vv * uMinHorizonAngleSineSquared, vn * vn);\n\t\tocclusion += w * max(0.0, vn + origin.z * uBias) / (vv + uPeak2);\n\t}\n\tuniform float uProjectionScaleRadius;\n\tuniform float uIntensity;\n\tuniform float uRandomize;\n\tfloat scalableAmbientObscurance(highp vec2 uv, highp vec3 origin, vec3 normal) {\n\t\tfloat noise = random(getFragCoord()) + uRandomize;\n\t\thighp vec2 tapPosition = startPosition(noise);\n\t\thighp mat2 angleStep = tapAngleStep();\n\t\tfloat ssDiskRadius = -(uProjectionScaleRadius / origin.z);\n\t\tfloat occlusion = 0.0;\n\t\tfor (float i = 0.0; i < uSampleCount.x; i += 1.0) {\n\t\t\tcomputeAmbientOcclusionSAO(occlusion, i, ssDiskRadius, uv, origin, normal, tapPosition, noise);\n\t\t\ttapPosition = angleStep * tapPosition;\n\t\t}\n\t\treturn occlusion;\n\t}\n\tuniform float uPower;\n\tvoid main() {\n\t\thighp vec2 uv = snapToDepthTexelCenter(uv0);\n\t\thighp float depth = -getLinearScreenDepth(uv);\n\t\thighp vec3 origin = computeViewSpacePositionFromDepth(uv, depth);\n\t\tvec3 normal = computeViewSpaceNormal(origin, uv);\n\t\tfloat occlusion = 0.0;\n\t\tif (uIntensity > 0.0) {\n\t\t\tocclusion = scalableAmbientObscurance(uv, origin, normal);\n\t\t}\n\t\tfloat ao = max(0.0, 1.0 - occlusion * uIntensity);\n\t\tao = pow(ao, uPower);\n\t\tgl_FragColor = vec4(ao, ao, ao, 1.0);\n\t}\n`;\n\nvar ssao_default2 = `\n\t#include \"screenDepthPS\"\n\tvarying uv0: vec2f;\n\tuniform uInvResolution: vec2f;\n\tuniform uAspect: f32;\n\tfn getWFromProjectionMatrix(p: mat4x4f, v: vec3f) -> f32 {\n\t\treturn -v.z;\n\t}\n\tfn getViewSpaceZFromW(p: mat4x4f, w: f32) -> f32 {\n\t\treturn -w;\n\t}\n\tconst kLog2LodRate: f32 = 3.0;\n\tfn random(w: vec2f) -> f32 {\n\t\tconst m: vec3f = vec3f(0.06711056, 0.00583715, 52.9829189);\n\t\treturn fract(m.z * fract(dot(w, m.xy)));\n\t}\n\tfn getFragCoord() -> vec2f {\n\t\treturn pcPosition.xy;\n\t}\n\tfn computeViewSpacePositionFromDepth(uv: vec2f, linearDepth: f32) -> vec3f {\n\t\treturn vec3f((0.5 - uv) * vec2f(uniform.uAspect, 1.0) * linearDepth, linearDepth);\n\t}\n\tfn snapToDepthTexelCenter(uv: vec2f) -> vec2f {\n\t\tlet size: vec2f = vec2f(textureDimensions(uSceneDepthMap, 0));\n\t\treturn (floor(uv * size) + vec2f(0.5)) / size;\n\t}\n\tfn faceNormal(dpdx: vec3f, dpdy: vec3f) -> vec3f {\n\t\treturn normalize(cross(dpdx, dpdy));\n\t}\n\tfn computeViewSpaceNormalDeriv(position: vec3f) -> vec3f {\n\t\treturn faceNormal(dpdx(position), dpdy(position));\n\t}\n\tfn computeViewSpaceNormalDepth(position: vec3f, uv: vec2f) -> vec3f {\n\t\tlet uvdx: vec2f = snapToDepthTexelCenter(uv + vec2f(uniform.uInvResolution.x, 0.0));\n\t\tlet uvdy: vec2f = snapToDepthTexelCenter(uv + vec2f(0.0, uniform.uInvResolution.y));\n\t\tlet px: vec3f = computeViewSpacePositionFromDepth(uvdx, -getLinearScreenDepth(uvdx));\n\t\tlet py: vec3f = computeViewSpacePositionFromDepth(uvdy, -getLinearScreenDepth(uvdy));\n\t\tlet dpdx: vec3f = px - position;\n\t\tlet dpdy: vec3f = py - position;\n\t\treturn faceNormal(dpdx, dpdy);\n\t}\n\tuniform uSampleCount: vec2f;\n\tuniform uSpiralTurns: f32;\n\tconst PI: f32 = 3.14159;\n\tfn tapLocation(i: f32, noise: f32) -> vec3f {\n\t\tlet offset: f32 = ((2.0 * PI) * 2.4) * noise;\n\t\tlet angle: f32 = ((i * uniform.uSampleCount.y) * uniform.uSpiralTurns) * (2.0 * PI) + offset;\n\t\tlet radius: f32 = (i + noise + 0.5) * uniform.uSampleCount.y;\n\t\treturn vec3f(cos(angle), sin(angle), radius * radius);\n\t}\n\tfn startPosition(noise: f32) -> vec2f {\n\t\tlet angle: f32 = ((2.0 * PI) * 2.4) * noise;\n\t\treturn vec2f(cos(angle), sin(angle));\n\t}\n\tuniform uAngleIncCosSin: vec2f;\n\tfn tapAngleStep() -> mat2x2f {\n\t\tlet t: vec2f = uniform.uAngleIncCosSin;\n\t\treturn mat2x2f(vec2f(t.x, t.y), vec2f(-t.y, t.x));\n\t}\n\tfn tapLocationFast(i: f32, p: vec2f, noise_in: f32) -> vec3f {\n\t\tlet radius: f32 = (i + noise_in + 0.5) * uniform.uSampleCount.y;\n\t\treturn vec3f(p.x, p.y, radius * radius);\n\t}\n\tuniform uMaxLevel: f32;\n\tuniform uInvRadiusSquared: f32;\n\tuniform uMinHorizonAngleSineSquared: f32;\n\tuniform uBias: f32;\n\tuniform uPeak2: f32;\n\tfn computeAmbientOcclusionSAO(occlusion_ptr: ptr<function, f32>, i: f32, ssDiskRadius: f32,\n\t\t\tuv: vec2f, origin: vec3f, normal: vec3f,\n\t\t\ttapPosition: vec2f, noise: f32) {\n\t\tlet tap: vec3f = tapLocationFast(i, tapPosition, noise);\n\t\tlet ssRadius: f32 = max(1.0, tap.z * ssDiskRadius);\n\t\tlet uvSamplePos: vec2f = snapToDepthTexelCenter(uv + (ssRadius * tap.xy) * uniform.uInvResolution);\n\t\tlet level: f32 = clamp(floor(log2(ssRadius)) - kLog2LodRate, 0.0, uniform.uMaxLevel);\n\t\tlet occlusionDepth: f32 = -getLinearScreenDepth(uvSamplePos);\n\t\tlet p: vec3f = computeViewSpacePositionFromDepth(uvSamplePos, occlusionDepth);\n\t\tlet v: vec3f = p - origin;\n\t\tlet vv: f32 = dot(v, v);\n\t\tlet vn: f32 = dot(v, normal);\n\t\tvar w_val: f32 = max(0.0, 1.0 - vv * uniform.uInvRadiusSquared);\n\t\tw_val = w_val * w_val;\n\t\tw_val = w_val * step(vv * uniform.uMinHorizonAngleSineSquared, vn * vn);\n\t\t*occlusion_ptr = *occlusion_ptr + w_val * max(0.0, vn + origin.z * uniform.uBias) / (vv + uniform.uPeak2);\n\t}\n\tuniform uProjectionScaleRadius: f32;\n\tuniform uIntensity: f32;\n\tuniform uRandomize: f32;\n\tfn scalableAmbientObscurance(uv: vec2f, origin: vec3f, normal: vec3f) -> f32 {\n\t\tlet noise: f32 = random(getFragCoord()) + uniform.uRandomize;\n\t\tvar tapPosition: vec2f = startPosition(noise);\n\t\tlet angleStep: mat2x2f = tapAngleStep();\n\t\tlet ssDiskRadius: f32 = -(uniform.uProjectionScaleRadius / origin.z);\n\t\tvar occlusion: f32 = 0.0;\n\t\tfor (var i: i32 = 0; i < i32(uniform.uSampleCount.x); i = i + 1) {\n\t\t\tcomputeAmbientOcclusionSAO(&occlusion, f32(i), ssDiskRadius, uv, origin, normal, tapPosition, noise);\n\t\t\ttapPosition = angleStep * tapPosition;\n\t\t}\n\t\treturn occlusion;\n\t}\n\tuniform uPower: f32;\n\t@fragment\n\tfn fragmentMain(input: FragmentInput) -> FragmentOutput {\n\t\tvar output: FragmentOutput;\n\t\tlet uv: vec2f = snapToDepthTexelCenter(input.uv0);\n\t\tlet depth: f32 = -getLinearScreenDepth(uv);\n\t\tlet origin: vec3f = computeViewSpacePositionFromDepth(uv, depth);\n\t\tlet normal: vec3f = computeViewSpaceNormalDepth(origin, uv);\n\t\tvar occlusion: f32 = 0.0;\n\t\tif (uniform.uIntensity > 0.0) {\n\t\t\tocclusion = scalableAmbientObscurance(uv, origin, normal);\n\t\t}\n\t\tvar ao: f32 = max(0.0, 1.0 - occlusion * uniform.uIntensity);\n\t\tao = pow(ao, uniform.uPower);\n\t\toutput.color = vec4f(ao, ao, ao, 1.0);\n\t\treturn output;\n\t}\n`;\n\nvar RenderPassSsao = class extends RenderPassShaderQuad {\n\tradius = 5;\n\tintensity = 1;\n\tpower = 1;\n\tsampleCount = 10;\n\tminAngle = 5;\n\trandomize = false;\n\tssaoTexture;\n\t_scale = 1;\n\t_blueNoise = new BlueNoise(19);\n\tconstructor(device, sourceTexture, cameraComponent, blurEnabled) {\n\t\tsuper(device);\n\t\tthis.sourceTexture = sourceTexture;\n\t\tthis.cameraComponent = cameraComponent;\n\t\tShaderChunks.get(device, SHADERLANGUAGE_GLSL).set(\"ssaoPS\", ssao_default);\n\t\tShaderChunks.get(device, SHADERLANGUAGE_WGSL).set(\"ssaoPS\", ssao_default2);\n\t\tconst defines = /* @__PURE__ */ new Map();\n\t\tconst depthKey = ShaderUtils.addScreenDepthChunkDefines(cameraComponent.shaderParams, defines);\n\t\tthis.shader = ShaderUtils.createShader(device, {\n\t\t\tuniqueName: `SsaoShader${depthKey}`,\n\t\t\tattributes: { aPosition: SEMANTIC_POSITION },\n\t\t\tvertexChunk: \"quadVS\",\n\t\t\tfragmentChunk: \"ssaoPS\",\n\t\t\tfragmentDefines: defines\n\t\t});\n\t\tconst rt = this.createRenderTarget(\"SsaoFinalTexture\");\n\t\tthis.ssaoTexture = rt.colorBuffer;\n\t\tthis.init(rt, {\n\t\t\tresizeSource: this.sourceTexture\n\t\t});\n\t\tconst clearColor = new Color(0, 0, 0, 0);\n\t\tthis.setClearColor(clearColor);\n\t\tif (blurEnabled) {\n\t\t\tconst blurRT = this.createRenderTarget(\"SsaoTempTexture\");\n\t\t\tconst blurPassHorizontal = new RenderPassDepthAwareBlur(device, rt.colorBuffer, cameraComponent, true);\n\t\t\tblurPassHorizontal.init(blurRT, {\n\t\t\t\tresizeSource: rt.colorBuffer\n\t\t\t});\n\t\t\tblurPassHorizontal.setClearColor(clearColor);\n\t\t\tconst blurPassVertical = new RenderPassDepthAwareBlur(device, blurRT.colorBuffer, cameraComponent, false);\n\t\t\tblurPassVertical.init(rt, {\n\t\t\t\tresizeSource: rt.colorBuffer\n\t\t\t});\n\t\t\tblurPassVertical.setClearColor(clearColor);\n\t\t\tthis.afterPasses.push(blurPassHorizontal);\n\t\t\tthis.afterPasses.push(blurPassVertical);\n\t\t}\n\t\tthis.ssaoTextureId = device.scope.resolve(\"ssaoTexture\");\n\t\tthis.ssaoTextureSizeInvId = device.scope.resolve(\"ssaoTextureSizeInv\");\n\t}\n\tdestroy() {\n\t\tthis.renderTarget?.destroyTextureBuffers();\n\t\tthis.renderTarget?.destroy();\n\t\tthis.renderTarget = null;\n\t\tif (this.afterPasses.length > 0) {\n\t\t\tconst blurRt = this.afterPasses[0].renderTarget;\n\t\t\tblurRt?.destroyTextureBuffers();\n\t\t\tblurRt?.destroy();\n\t\t}\n\t\tthis.afterPasses.forEach((pass) => pass.destroy());\n\t\tthis.afterPasses.length = 0;\n\t\tsuper.destroy();\n\t}\n\tset scale(value) {\n\t\tthis._scale = value;\n\t\tthis.scaleX = value;\n\t\tthis.scaleY = value;\n\t}\n\tget scale() {\n\t\treturn this._scale;\n\t}\n\tcreateRenderTarget(name) {\n\t\treturn new RenderTarget({\n\t\t\tdepth: false,\n\t\t\tcolorBuffer: Texture.createDataTexture2D(this.device, name, 1, 1, PIXELFORMAT_R8)\n\t\t});\n\t}\n\texecute() {\n\t\tconst { device, sampleCount, minAngle } = this;\n\t\tconst { width, height } = this.renderTarget.colorBuffer;\n\t\tconst scope = device.scope;\n\t\tscope.resolve(\"uAspect\").setValue(width / height);\n\t\tscope.resolve(\"uInvResolution\").setValue([1 / width, 1 / height]);\n\t\tscope.resolve(\"uSampleCount\").setValue([sampleCount, 1 / sampleCount]);\n\t\tconst minAngleSin = Math.sin(minAngle * math.DEG_TO_RAD);\n\t\tscope.resolve(\"uMinHorizonAngleSineSquared\").setValue(minAngleSin * minAngleSin);\n\t\tconst spiralTurns = 10;\n\t\tconst step = 1 / (sampleCount - 0.5) * spiralTurns * 2 * 3.141;\n\t\tconst radius = this.radius;\n\t\tconst bias = 1e-3;\n\t\tconst peak = 0.1 * radius;\n\t\tconst intensity = 2 * (peak * 2 * 3.141) * this.intensity / sampleCount;\n\t\tconst projectionScale = 0.5 * height;\n\t\tscope.resolve(\"uSpiralTurns\").setValue(spiralTurns);\n\t\tscope.resolve(\"uAngleIncCosSin\").setValue([Math.cos(step), Math.sin(step)]);\n\t\tscope.resolve(\"uMaxLevel\").setValue(0);\n\t\tscope.resolve(\"uInvRadiusSquared\").setValue(1 / (radius * radius));\n\t\tscope.resolve(\"uBias\").setValue(bias);\n\t\tscope.resolve(\"uPeak2\").setValue(peak * peak);\n\t\tscope.resolve(\"uIntensity\").setValue(intensity);\n\t\tscope.resolve(\"uPower\").setValue(this.power);\n\t\tscope.resolve(\"uProjectionScaleRadius\").setValue(projectionScale * radius);\n\t\tscope.resolve(\"uRandomize\").setValue(this.randomize ? this._blueNoise.value() : 0);\n\t\tsuper.execute();\n\t}\n\tafter() {\n\t\tthis.ssaoTextureId.setValue(this.ssaoTexture);\n\t\tconst srcTexture = this.sourceTexture;\n\t\tthis.ssaoTextureSizeInvId.setValue([1 / srcTexture.width, 1 / srcTexture.height]);\n\t}\n};\n\nvar CameraFrameOptions = class {\n\tformats;\n\tstencil = false;\n\tsamples = 1;\n\tsceneColorMap = false;\n\t// skybox is the last layer rendered before the grab passes\n\tlastGrabLayerId = LAYERID_SKYBOX;\n\tlastGrabLayerIsTransparent = false;\n\t// immediate layer is the last layer rendered before the post-processing\n\tlastSceneLayerId = LAYERID_IMMEDIATE;\n\tlastSceneLayerIsTransparent = true;\n\t// TAA\n\ttaaEnabled = false;\n\t// Bloom\n\tbloomEnabled = false;\n\t// SSAO\n\tssaoType = SSAOTYPE_NONE;\n\tssaoBlurEnabled = true;\n\tprepassEnabled = false;\n\t// Whether the scene depth is rendered by the scene pass into an additional attachment of the\n\t// scene render target, instead of, or in addition to, by the depth prepass. This is not a user\n\t// setting - sanitizeOptions derives it from what needs the depth and what the device supports.\n\tsceneTextureDepth = false;\n\t// DOF\n\tdofEnabled = false;\n\tdofNearBlur = false;\n\tdofHighQuality = true;\n\t// Volumetric fog\n\tvolumetricFogEnabled = false;\n};\nvar _defaultOptions = new CameraFrameOptions();\nvar _sceneDepthFormats = [PIXELFORMAT_R32F, PIXELFORMAT_R16F];\nvar FramePassCameraFrame = class _FramePassCameraFrame extends FramePass {\n\tapp;\n\tprePass;\n\tscenePass;\n\tcomposePass;\n\tbloomPass;\n\tssaoPass;\n\ttaaPass;\n\tscenePassHalf;\n\tdofPass;\n\tvolumetricFogPass;\n\t_renderTargetScale = 1;\n\tlayersDirty = false;\n\tcameraFrame;\n\trt = null;\n\t_sceneTextureNames = [];\n\tsceneDepthTexture = null;\n\tsceneDepthSlot = 0;\n\trtSceneColor = null;\n\t_sceneDepthClearValue = new Color(0, 0, 0, 1);\n\tconstructor(app2, cameraFrame, cameraComponent, options2 = {}) {\n\t\tsuper(app2.graphicsDevice);\n\t\tthis.app = app2;\n\t\tthis.cameraComponent = cameraComponent;\n\t\tthis.cameraFrame = cameraFrame;\n\t\tthis.options = this.sanitizeOptions(options2);\n\t\tthis.setupRenderPasses(this.options);\n\t}\n\tdestroy() {\n\t\tthis.reset();\n\t}\n\treset() {\n\t\tthis.sceneTexture = null;\n\t\tthis.sceneTextureHalf = null;\n\t\tif (this.sceneDepthTexture) {\n\t\t\tthis.sceneDepthTexture = null;\n\t\t\tthis.sceneDepthSlot = 0;\n\t\t\tthis._sceneTextureNames.length = 0;\n\t\t\tconst { shaderParams } = this.cameraComponent;\n\t\t\tshaderParams.sceneDepthMapLinear = false;\n\t\t\tshaderParams.sceneDepthMapPacked = false;\n\t\t\tshaderParams.sceneDepthMapReciprocal = false;\n\t\t}\n\t\tif (this.rtSceneColor) {\n\t\t\tthis.rtSceneColor.destroy();\n\t\t\tthis.rtSceneColor = null;\n\t\t}\n\t\tif (this.rt) {\n\t\t\tthis.rt.destroyTextureBuffers();\n\t\t\tthis.rt.destroy();\n\t\t\tthis.rt = null;\n\t\t}\n\t\tif (this.rtHalf) {\n\t\t\tthis.rtHalf.destroyTextureBuffers();\n\t\t\tthis.rtHalf.destroy();\n\t\t\tthis.rtHalf = null;\n\t\t}\n\t\tthis.beforePasses.forEach((pass) => pass.destroy());\n\t\tthis.beforePasses.length = 0;\n\t\tthis.prePass = null;\n\t\tthis.scenePass = null;\n\t\tthis.scenePassTransparent = null;\n\t\tthis.colorGrabPass = null;\n\t\tthis.composePass = null;\n\t\tthis.bloomPass = null;\n\t\tthis.ssaoPass = null;\n\t\tthis.taaPass = null;\n\t\tthis.afterPass = null;\n\t\tthis.scenePassHalf = null;\n\t\tthis.dofPass = null;\n\t\tthis.volumetricFogPass = null;\n\t}\n\tsanitizeOptions(options2) {\n\t\toptions2 = Object.assign({}, _defaultOptions, options2);\n\t\tconst postProcessDepth = options2.taaEnabled || options2.dofEnabled || options2.volumetricFogEnabled || options2.ssaoType === SSAOTYPE_COMBINE;\n\t\tconst inSceneDepth = this.needsInSceneDepth(options2);\n\t\tconst splatDepth = this.app.scene.gsplat.sceneDepthWrite;\n\t\tconst deviceSupported = _FramePassCameraFrame.isSceneTextureDepthSupported(this.device);\n\t\tconst unsupportedReason = this.sceneTexturesUnsupportedReason(options2);\n\t\tconst requiresSplatDepth = inSceneDepth || this.sceneDepthFormat !== PIXELFORMAT_R32F;\n\t\toptions2.sceneTextureDepth = postProcessDepth && deviceSupported && !unsupportedReason && (!requiresSplatDepth || splatDepth);\n\t\toptions2.prepassEnabled = inSceneDepth || postProcessDepth && !options2.sceneTextureDepth;\n\t\treturn options2;\n\t}\n\trendersGSplats() {\n\t\tlet renders = false;\n\t\treturn renders;\n\t}\n\tneedsInSceneDepth(options2) {\n\t\treturn options2.prepassEnabled || options2.ssaoType === SSAOTYPE_LIGHTING;\n\t}\n\tsceneTexturesUnsupportedReason(options2) {\n\t\tif (options2.samples > 1) {\n\t\t\treturn \"multi-sampling is enabled on the CameraFrame, which the scene depth cannot be rendered with\";\n\t\t}\n\t\tif (!this.cameraComponent.camera.fullSizeClearRect) {\n\t\t\treturn \"this camera does not clear the whole render target, and the clear it uses instead would also clear the scene depth\";\n\t\t}\n\t\tif (this.needsInSceneDepth(options2)) {\n\t\t\treturn \"the depth prepass this camera also needs stores the depth differently, and the two cannot be told apart by the shaders sampling them\";\n\t\t}\n\t\treturn null;\n\t}\n\tget sceneDepthFormat() {\n\t\treturn _FramePassCameraFrame.getSceneDepthFormat(this.device);\n\t}\n\tstatic getSceneDepthFormat(device) {\n\t\treturn device.getRenderableHdrFormat(_sceneDepthFormats, false, 1, true);\n\t}\n\tstatic isSceneTextureDepthSupported(device) {\n\t\treturn device.supportsIndependentBlending && _FramePassCameraFrame.getSceneDepthFormat(device) !== void 0;\n\t}\n\tset renderTargetScale(value) {\n\t\tthis._renderTargetScale = value;\n\t\tif (this.scenePass) {\n\t\t\tthis.scenePass.scaleX = value;\n\t\t\tthis.scenePass.scaleY = value;\n\t\t}\n\t}\n\tget renderTargetScale() {\n\t\treturn this._renderTargetScale;\n\t}\n\tneedsReset(options2) {\n\t\tconst currentOptions = this.options;\n\t\tconst arraysNotEqual = (arr1, arr2) => arr1 !== arr2 && (!(Array.isArray(arr1) && Array.isArray(arr2)) || arr1.length !== arr2.length || !arr1.every((value, index) => value === arr2[index]));\n\t\treturn options2.ssaoType !== currentOptions.ssaoType || options2.ssaoBlurEnabled !== currentOptions.ssaoBlurEnabled || options2.taaEnabled !== currentOptions.taaEnabled || options2.samples !== currentOptions.samples || options2.stencil !== currentOptions.stencil || options2.bloomEnabled !== currentOptions.bloomEnabled || options2.prepassEnabled !== currentOptions.prepassEnabled || options2.sceneTextureDepth !== currentOptions.sceneTextureDepth || options2.sceneColorMap !== currentOptions.sceneColorMap || options2.dofEnabled !== currentOptions.dofEnabled || options2.dofNearBlur !== currentOptions.dofNearBlur || options2.dofHighQuality !== currentOptions.dofHighQuality || options2.volumetricFogEnabled !== currentOptions.volumetricFogEnabled || arraysNotEqual(options2.formats, currentOptions.formats);\n\t}\n\t// manually called, applies changes\n\tupdate(options2) {\n\t\toptions2 = this.sanitizeOptions(options2);\n\t\tif (this.needsReset(options2) || this.layersDirty) {\n\t\t\tthis.layersDirty = false;\n\t\t\tthis.reset();\n\t\t}\n\t\tthis.options = options2;\n\t\tif (!this.sceneTexture) {\n\t\t\tthis.setupRenderPasses(this.options);\n\t\t}\n\t}\n\tcreateRenderTarget(name, depth, stencil, samples, sceneTextures) {\n\t\tconst texture = new Texture(this.device, {\n\t\t\tname,\n\t\t\twidth: 4,\n\t\t\theight: 4,\n\t\t\tformat: this.hdrFormat,\n\t\t\tmipmaps: false,\n\t\t\tminFilter: FILTER_LINEAR,\n\t\t\tmagFilter: FILTER_LINEAR,\n\t\t\taddressU: ADDRESS_CLAMP_TO_EDGE,\n\t\t\taddressV: ADDRESS_CLAMP_TO_EDGE\n\t\t});\n\t\treturn new RenderTarget({\n\t\t\tcolorBuffers: sceneTextures?.length ? [texture, ...sceneTextures] : [texture],\n\t\t\tdepth,\n\t\t\tstencil,\n\t\t\tsamples\n\t\t});\n\t}\n\tsetupRenderPasses(options2) {\n\t\tconst { device } = this;\n\t\tconst cameraComponent = this.cameraComponent;\n\t\tconst targetRenderTarget = cameraComponent.renderTarget;\n\t\tthis.hdrFormat = device.getRenderableHdrFormat(options2.formats, true, options2.samples) || PIXELFORMAT_RGBA8;\n\t\tthis._bloomEnabled = options2.bloomEnabled && this.hdrFormat !== PIXELFORMAT_RGBA8;\n\t\tthis._sceneHalfEnabled = this._bloomEnabled || options2.dofEnabled;\n\t\tcameraComponent.shaderParams.ssaoEnabled = options2.ssaoType === SSAOTYPE_LIGHTING;\n\t\tconst sceneTextures = [];\n\t\tconst names = this._sceneTextureNames;\n\t\tnames.length = 0;\n\t\tif (options2.sceneTextureDepth) {\n\t\t\tthis.sceneDepthTexture = Texture.createDataTexture2D(device, \"SceneTextureDepth\", 4, 4, this.sceneDepthFormat);\n\t\t\tsceneTextures.push(this.sceneDepthTexture);\n\t\t\tnames.push(SCENETEXTURE_DEPTH);\n\t\t\tthis.sceneDepthSlot = sceneTextures.length;\n\t\t}\n\t\tthis.rt = this.createRenderTarget(\"SceneColor\", true, options2.stencil, options2.samples, sceneTextures);\n\t\tthis.sceneTexture = this.rt.colorBuffer;\n\t\tif (this.sceneDepthTexture) {\n\t\t\tconst { shaderParams } = cameraComponent;\n\t\t\tshaderParams.sceneDepthMapLinear = true;\n\t\t\tshaderParams.sceneDepthMapPacked = false;\n\t\t\tshaderParams.sceneDepthMapReciprocal = true;\n\t\t\tthis.rtSceneColor = new RenderTarget({\n\t\t\t\tname: \"SceneColorOnly\",\n\t\t\t\tcolorBuffers: [this.sceneTexture],\n\t\t\t\tdepth: false,\n\t\t\t\tsamples: 1\n\t\t\t});\n\t\t}\n\t\tif (this._sceneHalfEnabled) {\n\t\t\tthis.rtHalf = this.createRenderTarget(\"SceneColorHalf\", false, false, 1);\n\t\t\tthis.sceneTextureHalf = this.rtHalf.colorBuffer;\n\t\t}\n\t\tthis.sceneOptions = {\n\t\t\tresizeSource: targetRenderTarget,\n\t\t\tscaleX: this.renderTargetScale,\n\t\t\tscaleY: this.renderTargetScale\n\t\t};\n\t\tthis.createPasses(options2);\n\t\tconst allPasses = this.collectPasses();\n\t\tthis.beforePasses = allPasses.filter((element) => element !== void 0 && element !== null);\n\t\tthis.updateCameraUseFlags();\n\t}\n\tupdateCameraUseFlags() {\n\t\tconst firstSeen = /* @__PURE__ */ new Map();\n\t\tconst lastSeen = /* @__PURE__ */ new Map();\n\t\tfor (let i2 = 0; i2 < this.beforePasses.length; i2++) {\n\t\t\tconst pass = this.beforePasses[i2];\n\t\t\tif (pass instanceof RenderPassForward) {\n\t\t\t\tconst steps = pass.layerRenderSteps;\n\t\t\t\tfor (let j = 0; j < steps.length; j++) {\n\t\t\t\t\tconst step = steps[j];\n\t\t\t\t\tconst cam = step.cameraComponent;\n\t\t\t\t\tif (cam) {\n\t\t\t\t\t\tif (!firstSeen.has(cam)) {\n\t\t\t\t\t\t\tfirstSeen.set(cam, step);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlastSeen.set(cam, step);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfirstSeen.forEach((step) => {\n\t\t\tstep.firstCameraUse = true;\n\t\t});\n\t\tlastSeen.forEach((step) => {\n\t\t\tstep.lastCameraUse = true;\n\t\t});\n\t}\n\tcollectPasses() {\n\t\tconst ssaoBeforeScene = this.options.ssaoType === SSAOTYPE_LIGHTING;\n\t\treturn [\n\t\t\tthis.prePass,\n\t\t\tssaoBeforeScene ? this.ssaoPass : null,\n\t\t\tthis.scenePass,\n\t\t\tthis.colorGrabPass,\n\t\t\tthis.scenePassTransparent,\n\t\t\tssaoBeforeScene ? null : this.ssaoPass,\n\t\t\tthis.volumetricFogPass,\n\t\t\tthis.taaPass,\n\t\t\tthis.scenePassHalf,\n\t\t\tthis.bloomPass,\n\t\t\tthis.dofPass,\n\t\t\tthis.composePass,\n\t\t\tthis.afterPass\n\t\t];\n\t}\n\tcreatePasses(options2) {\n\t\tthis.setupScenePrepass(options2);\n\t\tthis.setupSsaoPass(options2);\n\t\tconst scenePassesInfo = this.setupScenePass(options2);\n\t\tthis.setupVolumetricFogPass(options2);\n\t\tconst sceneTextureWithTaa = this.setupTaaPass(options2);\n\t\tthis.setupSceneHalfPass(options2, sceneTextureWithTaa);\n\t\tthis.setupBloomPass(options2, this.sceneTextureHalf);\n\t\tthis.setupDofPass(options2, this.sceneTexture, this.sceneTextureHalf);\n\t\tthis.setupComposePass(options2);\n\t\tthis.setupAfterPass(options2, scenePassesInfo);\n\t}\n\tsetupScenePrepass(options2) {\n\t\tif (options2.prepassEnabled) {\n\t\t\tconst { app: app2, device, cameraComponent } = this;\n\t\t\tconst { scene, renderer } = app2;\n\t\t\tthis.prePass = new RenderPassPrepass(device, scene, renderer, cameraComponent, this.sceneOptions);\n\t\t}\n\t}\n\tsetupScenePassSettings(pass) {\n\t\tpass.gammaCorrection = GAMMA_NONE;\n\t\tpass.toneMapping = TONEMAP_NONE;\n\t\tpass.sceneTextures = this._sceneTextureNames;\n\t}\n\taddCameraLayers(renderPass, startIndex, firstLayerClears, lastLayerId, lastLayerIsTransparent = true) {\n\t\tconst cameraComponent = this.cameraComponent;\n\t\tconst { layerList, subLayerList } = renderPass.layerComposition;\n\t\tlet clearRenderTarget = firstLayerClears;\n\t\tlet index = startIndex;\n\t\twhile (index < layerList.length) {\n\t\t\tconst layer = layerList[index];\n\t\t\tconst isTransparent = subLayerList[index];\n\t\t\tif (cameraComponent.camera.layersSet.has(layer.id)) {\n\t\t\t\trenderPass.addLayer(cameraComponent, layer, isTransparent, clearRenderTarget);\n\t\t\t\tclearRenderTarget = false;\n\t\t\t}\n\t\t\tindex++;\n\t\t\tif (layer.id === lastLayerId && isTransparent === lastLayerIsTransparent) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\treturn index;\n\t}\n\tsetupScenePass(options2) {\n\t\tconst { app: app2, device } = this;\n\t\tconst { scene, renderer } = app2;\n\t\tconst composition = scene.layers;\n\t\tthis.scenePass = new RenderPassForward(device, composition, scene, renderer);\n\t\tthis.setupScenePassSettings(this.scenePass);\n\t\tthis.scenePass.init(this.rt, this.sceneOptions);\n\t\tconst lastLayerId = options2.sceneColorMap ? options2.lastGrabLayerId : options2.lastSceneLayerId;\n\t\tconst lastLayerIsTransparent = options2.sceneColorMap ? options2.lastGrabLayerIsTransparent : options2.lastSceneLayerIsTransparent;\n\t\tconst ret = {\n\t\t\tlastAddedIndex: 0,\n\t\t\t// the last layer index added to the scene pass\n\t\t\tclearRenderTarget: true\n\t\t\t// true if the render target should be cleared\n\t\t};\n\t\tret.lastAddedIndex = this.addCameraLayers(this.scenePass, ret.lastAddedIndex, ret.clearRenderTarget, lastLayerId, lastLayerIsTransparent);\n\t\tret.clearRenderTarget = false;\n\t\tif (options2.sceneColorMap) {\n\t\t\tthis.colorGrabPass = new FramePassColorGrab(device);\n\t\t\tthis.colorGrabPass.source = this.rt;\n\t\t\tthis.scenePassTransparent = new RenderPassForward(device, composition, scene, renderer);\n\t\t\tthis.setupScenePassSettings(this.scenePassTransparent);\n\t\t\tthis.scenePassTransparent.init(this.rt);\n\t\t\tret.lastAddedIndex = this.addCameraLayers(this.scenePassTransparent, ret.lastAddedIndex, ret.clearRenderTarget, options2.lastSceneLayerId, options2.lastSceneLayerIsTransparent);\n\t\t\tif (!this.scenePassTransparent.rendersAnything) {\n\t\t\t\tthis.scenePassTransparent.destroy();\n\t\t\t\tthis.scenePassTransparent = null;\n\t\t\t}\n\t\t\tif (this.scenePassTransparent) {\n\t\t\t\tif (options2.prepassEnabled) {\n\t\t\t\t\tthis.scenePassTransparent.depthStencilOps.storeDepth = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t(this.scenePassTransparent ?? this.scenePass).sceneTexturesCamera = this.cameraComponent.camera;\n\t\tthis.scenePass.clearSceneTextures = options2.sceneTextureDepth && !options2.prepassEnabled;\n\t\treturn ret;\n\t}\n\tsetupSsaoPass(options2) {\n\t\tconst { ssaoBlurEnabled, ssaoType } = options2;\n\t\tconst { device, cameraComponent } = this;\n\t\tif (ssaoType !== SSAOTYPE_NONE) {\n\t\t\tthis.ssaoPass = new RenderPassSsao(device, this.sceneTexture, cameraComponent, ssaoBlurEnabled);\n\t\t}\n\t}\n\tsetupSceneHalfPass(options2, sourceTexture) {\n\t\tif (this._sceneHalfEnabled) {\n\t\t\tthis.scenePassHalf = new RenderPassDownsample(this.device, this.sceneTexture, {\n\t\t\t\tboxFilter: true,\n\t\t\t\tremoveInvalid: true\n\t\t\t\t// remove invalid pixels to avoid bloom / dof artifacts\n\t\t\t});\n\t\t\tthis.scenePassHalf.name = \"RenderPassSceneHalf\";\n\t\t\tthis.scenePassHalf.init(this.rtHalf, {\n\t\t\t\tresizeSource: sourceTexture,\n\t\t\t\tscaleX: 0.5,\n\t\t\t\tscaleY: 0.5\n\t\t\t});\n\t\t\tthis.scenePassHalf.setClearColor(Color.BLACK);\n\t\t}\n\t}\n\tsetupBloomPass(options2, inputTexture) {\n\t\tif (this._bloomEnabled) {\n\t\t\tthis.bloomPass = new FramePassBloom(this.device, inputTexture, this.hdrFormat);\n\t\t}\n\t}\n\tsetupDofPass(options2, inputTexture, inputTextureHalf) {\n\t\tif (options2.dofEnabled) {\n\t\t\tthis.dofPass = new FramePassDof(this.device, this.cameraComponent, inputTexture, inputTextureHalf, options2.dofHighQuality, options2.dofNearBlur);\n\t\t}\n\t}\n\tsetupVolumetricFogPass(options2) {\n\t\tif (options2.volumetricFogEnabled) {\n\t\t\tthis.volumetricFogPass = new FramePassVolumetricFog(\n\t\t\t\tthis.device,\n\t\t\t\tthis.cameraComponent,\n\t\t\t\tthis.sceneTexture,\n\t\t\t\tthis.rtSceneColor ?? this.rt,\n\t\t\t\tthis.scenePass\n\t\t\t);\n\t\t\tthis.volumetricFogPass.temporalDither = options2.taaEnabled;\n\t\t}\n\t}\n\tsetupTaaPass(options2) {\n\t\tlet textureWithTaa = this.sceneTexture;\n\t\tif (options2.taaEnabled) {\n\t\t\tthis.taaPass = new RenderPassTAA(this.device, this.sceneTexture, this.cameraComponent);\n\t\t\ttextureWithTaa = this.taaPass.historyTexture;\n\t\t}\n\t\treturn textureWithTaa;\n\t}\n\tsetupComposePass(options2) {\n\t\tthis.composePass = new RenderPassCompose(this.device, this.cameraComponent);\n\t\tthis.composePass.bloomTexture = this.bloomPass?.bloomTexture;\n\t\tthis.composePass.hdrScene = this.hdrFormat !== PIXELFORMAT_RGBA8;\n\t\tthis.composePass.taaEnabled = options2.taaEnabled;\n\t\tthis.composePass.cocTexture = this.dofPass?.cocTexture;\n\t\tthis.composePass.blurTexture = this.dofPass?.blurTexture;\n\t\tthis.composePass.blurTextureUpscale = !this.dofPass?.highQuality;\n\t\tconst cameraComponent = this.cameraComponent;\n\t\tconst targetRenderTarget = cameraComponent.renderTarget;\n\t\tthis.composePass.init(targetRenderTarget);\n\t\tthis.composePass.ssaoTexture = options2.ssaoType === SSAOTYPE_COMBINE ? this.ssaoPass.ssaoTexture : null;\n\t}\n\tsetupAfterPass(options2, scenePassesInfo) {\n\t\tconst { app: app2, cameraComponent } = this;\n\t\tconst { scene, renderer } = app2;\n\t\tconst composition = scene.layers;\n\t\tconst targetRenderTarget = cameraComponent.renderTarget;\n\t\tthis.afterPass = new RenderPassForward(this.device, composition, scene, renderer);\n\t\tthis.afterPass.init(targetRenderTarget);\n\t\tthis.addCameraLayers(this.afterPass, scenePassesInfo.lastAddedIndex, scenePassesInfo.clearRenderTarget);\n\t}\n\tframeUpdate() {\n\t\tif (this.layersDirty) {\n\t\t\tthis.cameraFrame.update();\n\t\t}\n\t\tsuper.frameUpdate();\n\t\tconst { options: options2, composePass } = this;\n\t\tconst sceneDepthAvailable = options2.sceneTextureDepth || options2.prepassEnabled;\n\t\tcomposePass.sceneDepthAvailable = sceneDepthAvailable;\n\t\tif (this.sceneDepthTexture) {\n\t\t\tconst { scenePass } = this;\n\t\t\tconst resizeSource = scenePass.options.resizeSource ?? this.device.backBuffer;\n\t\t\tthis.rtSceneColor.resize(\n\t\t\t\tMath.floor(resizeSource.width * scenePass.scaleX),\n\t\t\t\tMath.floor(resizeSource.height * scenePass.scaleY)\n\t\t\t);\n\t\t\tconst clearValue = this._sceneDepthClearValue;\n\t\t\tclearValue.r = 1 / this.cameraComponent.camera.farClip;\n\t\t\tthis.scenePass.setClearColor(clearValue, this.sceneDepthSlot);\n\t\t}\n\t\tconst sceneTexture = this.taaPass?.update() ?? this.rt.colorBuffer;\n\t\tthis.composePass.sceneTexture = sceneTexture;\n\t\tthis.scenePassHalf?.setSourceTexture(sceneTexture);\n\t}\n};\n\nvar CameraFrame = class {\n\t_enabled = true;\n\trendering = {\n\t\trenderFormats: [PIXELFORMAT_111110F, PIXELFORMAT_RGBA16F, PIXELFORMAT_RGBA32F],\n\t\tstencil: false,\n\t\trenderTargetScale: 1,\n\t\tsamples: 1,\n\t\tsceneColorMap: false,\n\t\tsceneDepthMap: false,\n\t\ttoneMapping: 0,\n\t\tsharpness: 0\n\t};\n\tssao = {\n\t\ttype: SSAOTYPE_NONE,\n\t\tblurEnabled: true,\n\t\trandomize: false,\n\t\tintensity: 0.5,\n\t\tradius: 30,\n\t\tsamples: 12,\n\t\tpower: 6,\n\t\tminAngle: 10,\n\t\tscale: 1\n\t};\n\tbloom = {\n\t\tintensity: 0,\n\t\tblurLevel: 16\n\t};\n\tgrading = {\n\t\tenabled: false,\n\t\tbrightness: 1,\n\t\tcontrast: 1,\n\t\tsaturation: 1,\n\t\ttint: new Color(1, 1, 1, 1)\n\t};\n\tcolorLUT = {\n\t\ttexture: null,\n\t\tintensity: 1,\n\t\ttexture2: null,\n\t\tintensity2: 1,\n\t\tblend: 0\n\t};\n\tvignette = {\n\t\tintensity: 0,\n\t\tinner: 0.5,\n\t\touter: 1,\n\t\tcurvature: 0.5,\n\t\tcolor: new Color(0, 0, 0)\n\t};\n\ttaa = {\n\t\tenabled: false,\n\t\tjitter: 1\n\t};\n\tfringing = {\n\t\tintensity: 0\n\t};\n\tcolorEnhance = {\n\t\tenabled: false,\n\t\tshadows: 0,\n\t\thighlights: 0,\n\t\tvibrance: 0,\n\t\tmidtones: 0,\n\t\tdehaze: 0\n\t};\n\tdof = {\n\t\tenabled: false,\n\t\tnearBlur: false,\n\t\tfocusDistance: 100,\n\t\tfocusRange: 10,\n\t\tblurRadius: 3,\n\t\tblurRings: 4,\n\t\tblurRingPoints: 5,\n\t\thighQuality: true\n\t};\n\tvolumetricFog = {\n\t\tenabled: false,\n\t\tlight: null,\n\t\tlocalOmniLights: false,\n\t\tlocalSpotLights: false,\n\t\tlocalIntensity: 1,\n\t\tlocalSteps: 12,\n\t\ttint: new Color(1, 1, 1),\n\t\tdensity: 0.01,\n\t\theightBase: 0,\n\t\theightFalloff: 0.05,\n\t\textinction: 1,\n\t\tanisotropy: 0.6,\n\t\tintensity: 1,\n\t\tambientColor: new Color(1, 1, 1),\n\t\tambientIntensity: 0.02,\n\t\tmaxDistance: 300,\n\t\tsteps: 24,\n\t\tscale: 0.5\n\t};\n\tdebug = null;\n\toptions = new CameraFrameOptions();\n\trenderPassCamera = null;\n\tconstructor(app2, cameraComponent) {\n\t\tthis.app = app2;\n\t\tthis.cameraComponent = cameraComponent;\n\t\tthis.updateOptions();\n\t\tthis.enable();\n\t\tthis.cameraLayersChanged = cameraComponent.on(\"set:layers\", () => {\n\t\t\tif (this.renderPassCamera) this.renderPassCamera.layersDirty = true;\n\t\t});\n\t}\n\tdestroy() {\n\t\tthis.disable();\n\t\tthis.cameraLayersChanged.off();\n\t}\n\tenable() {\n\t\tthis.renderPassCamera = this.createRenderPass();\n\t\tthis.cameraComponent.framePasses = [this.renderPassCamera];\n\t}\n\tdisable() {\n\t\tconst cameraComponent = this.cameraComponent;\n\t\tcameraComponent.framePasses?.forEach((renderPass) => {\n\t\t\trenderPass.destroy();\n\t\t});\n\t\tcameraComponent.framePasses = [];\n\t\tcameraComponent.rendering = null;\n\t\tcameraComponent.jitter = 0;\n\t\tcameraComponent.shaderParams.ssaoEnabled = false;\n\t\tthis.renderPassCamera = null;\n\t}\n\tcreateRenderPass() {\n\t\treturn new FramePassCameraFrame(this.app, this, this.cameraComponent, this.options);\n\t}\n\tset enabled(value) {\n\t\tif (this._enabled !== value) {\n\t\t\tif (value) {\n\t\t\t\tthis.enable();\n\t\t\t} else {\n\t\t\t\tthis.disable();\n\t\t\t}\n\t\t\tthis._enabled = value;\n\t\t}\n\t}\n\tget enabled() {\n\t\treturn this._enabled;\n\t}\n\tupdateOptions() {\n\t\tconst { options: options2, rendering, bloom, taa, ssao } = this;\n\t\toptions2.stencil = rendering.stencil;\n\t\toptions2.samples = rendering.samples;\n\t\toptions2.sceneColorMap = rendering.sceneColorMap;\n\t\toptions2.prepassEnabled = rendering.sceneDepthMap;\n\t\toptions2.bloomEnabled = bloom.intensity > 0;\n\t\toptions2.taaEnabled = taa.enabled;\n\t\toptions2.ssaoType = ssao.type;\n\t\toptions2.ssaoBlurEnabled = ssao.blurEnabled;\n\t\toptions2.formats = rendering.renderFormats.slice();\n\t\toptions2.dofEnabled = this.dof.enabled;\n\t\toptions2.dofNearBlur = this.dof.nearBlur;\n\t\toptions2.dofHighQuality = this.dof.highQuality;\n\t\toptions2.volumetricFogEnabled = this._volumetricFogSupported();\n\t}\n\t_volumetricFogSupported() {\n\t\tconst { volumetricFog, cameraComponent } = this;\n\t\tif (!volumetricFog.enabled) {\n\t\t\treturn false;\n\t\t}\n\t\tif (volumetricFog.light && volumetricFog.light.type !== \"directional\") {\n\t\t\treturn false;\n\t\t}\n\t\tlet localLights = volumetricFog.localOmniLights || volumetricFog.localSpotLights;\n\t\tif (localLights && !cameraComponent.system.app.scene.clusteredLightingEnabled) {\n\t\t\tlocalLights = false;\n\t\t}\n\t\tif (!volumetricFog.light && !localLights) {\n\t\t\treturn false;\n\t\t}\n\t\tif (cameraComponent.projection !== PROJECTION_PERSPECTIVE) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t}\n\tstatic isSplatSceneDepthSupported(device) {\n\t\treturn FramePassCameraFrame.isSceneTextureDepthSupported(device);\n\t}\n\tupdate() {\n\t\tif (!this._enabled) return;\n\t\tconst cameraComponent = this.cameraComponent;\n\t\tconst { options: options2, renderPassCamera, rendering, bloom, grading, colorEnhance, vignette, fringing, taa, ssao } = this;\n\t\tthis.updateOptions();\n\t\trenderPassCamera.update(options2);\n\t\tconst { composePass, bloomPass, ssaoPass, dofPass, volumetricFogPass } = renderPassCamera;\n\t\trenderPassCamera.renderTargetScale = math.clamp(rendering.renderTargetScale, 0.1, 1);\n\t\tcomposePass.toneMapping = rendering.toneMapping;\n\t\tcomposePass.sharpness = rendering.sharpness;\n\t\tif (options2.bloomEnabled && bloomPass) {\n\t\t\tcomposePass.bloomIntensity = bloom.intensity;\n\t\t\tbloomPass.blurLevel = bloom.blurLevel;\n\t\t}\n\t\tif (options2.dofEnabled) {\n\t\t\tdofPass.focusDistance = this.dof.focusDistance;\n\t\t\tdofPass.focusRange = this.dof.focusRange;\n\t\t\tdofPass.blurRadius = this.dof.blurRadius;\n\t\t\tdofPass.blurRings = this.dof.blurRings;\n\t\t\tdofPass.blurRingPoints = this.dof.blurRingPoints;\n\t\t}\n\t\tif (options2.volumetricFogEnabled) {\n\t\t\tconst { volumetricFog } = this;\n\t\t\tvolumetricFogPass.light = volumetricFog.light?.light ?? null;\n\t\t\tvolumetricFogPass.localOmniLights = volumetricFog.localOmniLights;\n\t\t\tvolumetricFogPass.localSpotLights = volumetricFog.localSpotLights;\n\t\t\tvolumetricFogPass.localIntensity = volumetricFog.localIntensity;\n\t\t\tvolumetricFogPass.localSteps = math.clamp(volumetricFog.localSteps, 2, 64);\n\t\t\tvolumetricFogPass.tint.copy(volumetricFog.tint);\n\t\t\tvolumetricFogPass.density = volumetricFog.density;\n\t\t\tvolumetricFogPass.heightBase = volumetricFog.heightBase;\n\t\t\tvolumetricFogPass.heightFalloff = volumetricFog.heightFalloff;\n\t\t\tvolumetricFogPass.extinction = Math.max(volumetricFog.extinction, 0);\n\t\t\tvolumetricFogPass.anisotropy = math.clamp(volumetricFog.anisotropy, 0, 0.95);\n\t\t\tvolumetricFogPass.intensity = volumetricFog.intensity;\n\t\t\tvolumetricFogPass.ambientColor.copy(volumetricFog.ambientColor);\n\t\t\tvolumetricFogPass.ambientIntensity = volumetricFog.ambientIntensity;\n\t\t\tvolumetricFogPass.maxDistance = volumetricFog.maxDistance;\n\t\t\tvolumetricFogPass.steps = math.clamp(volumetricFog.steps, 4, 128);\n\t\t\tvolumetricFogPass.scale = math.clamp(volumetricFog.scale, 0.25, 1);\n\t\t}\n\t\tif (options2.ssaoType !== SSAOTYPE_NONE) {\n\t\t\tssaoPass.intensity = ssao.intensity;\n\t\t\tssaoPass.power = ssao.power;\n\t\t\tssaoPass.radius = ssao.radius;\n\t\t\tssaoPass.sampleCount = ssao.samples;\n\t\t\tssaoPass.minAngle = ssao.minAngle;\n\t\t\tssaoPass.scale = ssao.scale;\n\t\t\tssaoPass.randomize = ssao.randomize;\n\t\t}\n\t\tcomposePass.gradingEnabled = grading.enabled;\n\t\tif (grading.enabled) {\n\t\t\tcomposePass.gradingSaturation = grading.saturation;\n\t\t\tcomposePass.gradingBrightness = grading.brightness;\n\t\t\tcomposePass.gradingContrast = grading.contrast;\n\t\t\tcomposePass.gradingTint = grading.tint;\n\t\t}\n\t\tcomposePass.colorLUT = this.colorLUT.texture;\n\t\tcomposePass.colorLUTIntensity = this.colorLUT.intensity;\n\t\tcomposePass.colorLUT2 = this.colorLUT.texture2;\n\t\tcomposePass.colorLUT2Intensity = this.colorLUT.intensity2;\n\t\tcomposePass.colorLUTBlend = this.colorLUT.blend;\n\t\tcomposePass.vignetteEnabled = vignette.intensity > 0;\n\t\tif (composePass.vignetteEnabled) {\n\t\t\tcomposePass.vignetteInner = vignette.inner;\n\t\t\tcomposePass.vignetteOuter = vignette.outer;\n\t\t\tcomposePass.vignetteCurvature = vignette.curvature;\n\t\t\tcomposePass.vignetteIntensity = vignette.intensity;\n\t\t\tcomposePass.vignetteColor.copy(vignette.color);\n\t\t}\n\t\tcomposePass.fringingEnabled = fringing.intensity > 0;\n\t\tif (composePass.fringingEnabled) {\n\t\t\tcomposePass.fringingIntensity = fringing.intensity;\n\t\t}\n\t\tcomposePass.colorEnhanceEnabled = colorEnhance.enabled;\n\t\tif (colorEnhance.enabled) {\n\t\t\tcomposePass.colorEnhanceShadows = colorEnhance.shadows;\n\t\t\tcomposePass.colorEnhanceHighlights = colorEnhance.highlights;\n\t\t\tcomposePass.colorEnhanceVibrance = colorEnhance.vibrance;\n\t\t\tcomposePass.colorEnhanceMidtones = colorEnhance.midtones;\n\t\t\tcomposePass.colorEnhanceDehaze = colorEnhance.dehaze;\n\t\t}\n\t\tcameraComponent.jitter = taa.enabled ? taa.jitter : 0;\n\t\tcomposePass.debug = this.debug;\n\t\tif (composePass.debug === \"ssao\" && options2.ssaoType === SSAOTYPE_NONE) composePass.debug = null;\n\t\tif (composePass.debug === \"vignette\" && !composePass.vignetteEnabled) composePass.debug = null;\n\t}\n};\n\nvar tmpV1 = new Vec3();\nvar rotation2 = new Quat();\nvar Pose = class _Pose {\n\tposition = new Vec3();\n\tangles = new Vec3();\n\tdistance = 0;\n\tpitchRange = new Vec2(-Infinity, Infinity);\n\tyawRange = new Vec2(-Infinity, Infinity);\n\txRange = new Vec2(-Infinity, Infinity);\n\tyRange = new Vec2(-Infinity, Infinity);\n\tzRange = new Vec2(-Infinity, Infinity);\n\tconstructor(position5 = Vec3.ZERO, angles3 = Vec3.ZERO, distance = 0) {\n\t\tthis.set(position5, angles3, distance);\n\t}\n\tcopy(other) {\n\t\treturn this.set(other.position, other.angles, other.distance);\n\t}\n\tclone() {\n\t\treturn new _Pose(this.position.clone(), this.angles.clone(), this.distance);\n\t}\n\tequalsApprox(other, epsilon = 1e-6) {\n\t\treturn this.position.equalsApprox(other.position, epsilon) && this.angles.equalsApprox(other.angles, epsilon) && Math.abs(this.distance - other.distance) < epsilon;\n\t}\n\tlerp(lhs, rhs, alpha1, alpha2 = alpha1, alpha3 = alpha1) {\n\t\tthis.position.lerp(lhs.position, rhs.position, alpha1);\n\t\tthis.angles.x = math.lerpAngle(lhs.angles.x, rhs.angles.x, alpha2) % 360;\n\t\tthis.angles.y = math.lerpAngle(lhs.angles.y, rhs.angles.y, alpha2) % 360;\n\t\tthis.angles.z = math.lerpAngle(lhs.angles.z, rhs.angles.z, alpha2) % 360;\n\t\tthis.distance = math.lerp(lhs.distance, rhs.distance, alpha3);\n\t\treturn this;\n\t}\n\tmove(offset3) {\n\t\tthis.position.add(offset3);\n\t\tthis.position.x = math.clamp(this.position.x, this.xRange.x, this.xRange.y);\n\t\tthis.position.y = math.clamp(this.position.y, this.yRange.x, this.yRange.y);\n\t\tthis.position.z = math.clamp(this.position.z, this.zRange.x, this.zRange.y);\n\t\treturn this;\n\t}\n\trotate(euler) {\n\t\tthis.angles.add(euler);\n\t\tthis.angles.x %= 360;\n\t\tthis.angles.y %= 360;\n\t\tthis.angles.z %= 360;\n\t\tthis.angles.x = math.clamp(this.angles.x, this.pitchRange.x, this.pitchRange.y);\n\t\tthis.angles.y = math.clamp(this.angles.y, this.yawRange.x, this.yawRange.y);\n\t\treturn this;\n\t}\n\tset(position5, angles3, distance) {\n\t\tthis.position.copy(position5);\n\t\tthis.angles.copy(angles3);\n\t\tthis.distance = distance;\n\t\treturn this;\n\t}\n\tlook(from, to) {\n\t\tthis.position.copy(from);\n\t\tthis.distance = from.distance(to);\n\t\tconst dir4 = tmpV1.sub2(to, from).normalize();\n\t\tconst elev = Math.atan2(-dir4.y, Math.sqrt(dir4.x * dir4.x + dir4.z * dir4.z)) * math.RAD_TO_DEG;\n\t\tconst azim = Math.atan2(-dir4.x, -dir4.z) * math.RAD_TO_DEG;\n\t\tthis.angles.set(-elev, azim, 0);\n\t\treturn this;\n\t}\n\tgetFocus(out) {\n\t\treturn rotation2.setFromEulerAngles(this.angles).transformVector(Vec3.FORWARD, out).mulScalar(this.distance).add(this.position);\n\t}\n};\n\nvar InputDelta = class {\n\t_value;\n\tconstructor(arg) {\n\t\tif (Array.isArray(arg)) {\n\t\t\tthis._value = arg.slice();\n\t\t} else {\n\t\t\tthis._value = new Array(+arg).fill(0);\n\t\t}\n\t}\n\tadd(other) {\n\t\tfor (let i2 = 0; i2 < this._value.length; i2++) {\n\t\t\tthis._value[i2] += other._value[i2] || 0;\n\t\t}\n\t\treturn this;\n\t}\n\tappend(offsets) {\n\t\tfor (let i2 = 0; i2 < this._value.length; i2++) {\n\t\t\tthis._value[i2] += offsets[i2] || 0;\n\t\t}\n\t\treturn this;\n\t}\n\tcopy(other) {\n\t\tfor (let i2 = 0; i2 < this._value.length; i2++) {\n\t\t\tthis._value[i2] = other._value[i2] || 0;\n\t\t}\n\t\treturn this;\n\t}\n\tlength() {\n\t\tlet sum = 0;\n\t\tfor (const value of this._value) {\n\t\t\tsum += value * value;\n\t\t}\n\t\treturn Math.sqrt(sum);\n\t}\n\tread() {\n\t\tconst value = this._value.slice();\n\t\tthis._value.fill(0);\n\t\treturn value;\n\t}\n};\nvar InputFrame = class {\n\tdeltas = {};\n\tconstructor(data2) {\n\t\tfor (const name in data2) {\n\t\t\tthis.deltas[name] = new InputDelta(data2[name]);\n\t\t}\n\t}\n\tread() {\n\t\tconst frame = {};\n\t\tfor (const name in this.deltas) {\n\t\t\tframe[name] = this.deltas[name].read();\n\t\t}\n\t\treturn frame;\n\t}\n};\nvar InputSource = class extends InputFrame {\n\t_element = null;\n\t_events = new EventHandler();\n\ton(event, callback) {\n\t\tthis._events.on(event, callback);\n\t}\n\toff(event, callback) {\n\t\tthis._events.off(event, callback);\n\t}\n\tfire(event, ...args) {\n\t\tthis._events.fire(event, ...args);\n\t}\n\tattach(element) {\n\t\tif (this._element) {\n\t\t\tthis.detach();\n\t\t}\n\t\tthis._element = element;\n\t}\n\tdetach() {\n\t\tif (!this._element) {\n\t\t\treturn;\n\t\t}\n\t\tthis._element = null;\n\t\tthis.read();\n\t}\n\tdestroy() {\n\t\tthis.detach();\n\t\tthis._events.off();\n\t}\n};\nvar InputConsumer = class {\n\tupdate(frame, dt) {\n\t\tframe.read();\n\t}\n};\nvar InputController = class extends InputConsumer {\n\t_pose = new Pose();\n\tattach(pose, smooth = true) {\n\t}\n\tdetach() {\n\t}\n\tupdate(frame, dt) {\n\t\tsuper.update(frame, dt);\n\t\treturn this._pose;\n\t}\n\tdestroy() {\n\t\tthis.detach();\n\t}\n};\n\nvar DOUBLE_TAP_THRESHOLD = 250;\nvar DOUBLE_TAP_VARIANCE = 100;\n\nvar isTouchPointer = (pointerType) => pointerType === \"touch\" || pointerType === \"pen\";\nvar movementState = () => {\n\tconst state = /* @__PURE__ */ new Map();\n\treturn {\n\t\tdown: (event) => {\n\t\t\tstate.set(event.pointerId, [event.screenX, event.screenY]);\n\t\t},\n\t\tmove: (event) => {\n\t\t\tif (!state.has(event.pointerId)) {\n\t\t\t\treturn [0, 0];\n\t\t\t}\n\t\t\tconst prev = state.get(event.pointerId);\n\t\t\tconst mvX = event.screenX - prev[0];\n\t\t\tconst mvY = event.screenY - prev[1];\n\t\t\tprev[0] = event.screenX;\n\t\t\tprev[1] = event.screenY;\n\t\t\treturn [mvX, mvY];\n\t\t},\n\t\tup: (event) => {\n\t\t\tstate.delete(event.pointerId);\n\t\t}\n\t};\n};\n\nvar v = new Vec2();\nvar VirtualJoystick = class {\n\t_range = 70;\n\t_position = new Vec2();\n\t_value = new Vec2();\n\tconstructor({ range } = {}) {\n\t\tthis._range = range ?? this._range;\n\t}\n\tget value() {\n\t\treturn this._value;\n\t}\n\tdown(x3, y2) {\n\t\tthis._position.set(x3, y2);\n\t\tthis._value.set(0, 0);\n\t\treturn [x3, y2, x3, y2];\n\t}\n\tmove(x3, y2) {\n\t\tv.set(x3 - this._position.x, y2 - this._position.y);\n\t\tif (v.length() > this._range) {\n\t\t\tv.normalize().mulScalar(this._range);\n\t\t}\n\t\tthis._value.set(\n\t\t\tmath.clamp(v.x / this._range, -1, 1),\n\t\t\tmath.clamp(v.y / this._range, -1, 1)\n\t\t);\n\t\tconst { x: bx, y: by } = this._position;\n\t\treturn [bx, by, bx + v.x, by + v.y];\n\t}\n\tup() {\n\t\tthis._position.set(0, 0);\n\t\tthis._value.set(0, 0);\n\t\treturn [-1, -1, -1, -1];\n\t}\n};\n\nvar SingleGestureSource = class extends InputSource {\n\t_movementState = movementState();\n\t_layout = \"joystick\";\n\t_pointerData = /* @__PURE__ */ new Map();\n\t_lastPointer = { x: 0, y: 0, time: 0 };\n\t_joystick;\n\tconstructor() {\n\t\tsuper({\n\t\t\tinput: [0, 0],\n\t\t\tdoubleTap: [0]\n\t\t});\n\t\tthis._joystick = new VirtualJoystick();\n\t\tthis._onPointerDown = this._onPointerDown.bind(this);\n\t\tthis._onPointerMove = this._onPointerMove.bind(this);\n\t\tthis._onPointerUp = this._onPointerUp.bind(this);\n\t}\n\tset layout(value) {\n\t\tif (this._layout === value) {\n\t\t\treturn;\n\t\t}\n\t\tthis._layout = value;\n\t\tthis.read();\n\t\tthis._pointerData.clear();\n\t}\n\tget layout() {\n\t\treturn this._layout;\n\t}\n\tget joystick() {\n\t\treturn this._joystick;\n\t}\n\t_onPointerDown(event) {\n\t\tconst { pointerType, pointerId, clientX, clientY } = event;\n\t\tthis._movementState.down(event);\n\t\tif (!isTouchPointer(pointerType)) {\n\t\t\treturn;\n\t\t}\n\t\tthis._element?.setPointerCapture(pointerId);\n\t\tthis._pointerData.set(pointerId, {\n\t\t\tx: clientX,\n\t\t\ty: clientY\n\t\t});\n\t\tconst now2 = Date.now();\n\t\tconst sqrDist = (this._lastPointer.x - clientX) ** 2 + (this._lastPointer.y - clientY) ** 2;\n\t\tif (sqrDist < DOUBLE_TAP_VARIANCE && now2 - this._lastPointer.time < DOUBLE_TAP_THRESHOLD) {\n\t\t\tthis.deltas.doubleTap.append([1]);\n\t\t}\n\t\tthis._lastPointer.x = clientX;\n\t\tthis._lastPointer.y = clientY;\n\t\tthis._lastPointer.time = now2;\n\t\tif (this._layout === \"joystick\") {\n\t\t\tthis.fire(\"joystick:position\", this._joystick.down(clientX, clientY));\n\t\t}\n\t}\n\t_onPointerMove(event) {\n\t\tconst { pointerType, pointerId, target: target2, clientX, clientY } = event;\n\t\tconst [movementX, movementY] = this._movementState.move(event);\n\t\tif (!isTouchPointer(pointerType)) {\n\t\t\treturn;\n\t\t}\n\t\tif (target2 !== this._element) {\n\t\t\treturn;\n\t\t}\n\t\tconst data2 = this._pointerData.get(pointerId);\n\t\tif (!data2) {\n\t\t\treturn;\n\t\t}\n\t\tdata2.x = clientX;\n\t\tdata2.y = clientY;\n\t\tif (this._layout === \"joystick\") {\n\t\t\tthis.fire(\"joystick:position\", this._joystick.move(clientX, clientY));\n\t\t} else {\n\t\t\tthis.deltas.input.append([movementX, movementY]);\n\t\t}\n\t}\n\t_onPointerUp(event) {\n\t\tconst { pointerType, pointerId } = event;\n\t\tthis._movementState.up(event);\n\t\tif (!isTouchPointer(pointerType)) {\n\t\t\treturn;\n\t\t}\n\t\tthis._element?.releasePointerCapture(pointerId);\n\t\tconst data2 = this._pointerData.get(pointerId);\n\t\tif (!data2) {\n\t\t\treturn;\n\t\t}\n\t\tthis._pointerData.delete(pointerId);\n\t\tif (this._layout === \"joystick\") {\n\t\t\tthis.fire(\"joystick:position\", this._joystick.up());\n\t\t}\n\t}\n\tattach(element) {\n\t\tsuper.attach(element);\n\t\tthis._element = element;\n\t\tthis._element.addEventListener(\"pointerdown\", this._onPointerDown);\n\t\tthis._element.addEventListener(\"pointermove\", this._onPointerMove);\n\t\tthis._element.addEventListener(\"pointerup\", this._onPointerUp);\n\t\tthis._element.addEventListener(\"pointercancel\", this._onPointerUp);\n\t}\n\tdetach() {\n\t\tif (!this._element) {\n\t\t\treturn;\n\t\t}\n\t\tthis._element.removeEventListener(\"pointerdown\", this._onPointerDown);\n\t\tthis._element.removeEventListener(\"pointermove\", this._onPointerMove);\n\t\tthis._element.removeEventListener(\"pointerup\", this._onPointerUp);\n\t\tthis._element.removeEventListener(\"pointercancel\", this._onPointerUp);\n\t\tthis._pointerData.clear();\n\t\tsuper.detach();\n\t}\n\tread() {\n\t\tthis.deltas.input.append([this._joystick.value.x, this._joystick.value.y]);\n\t\treturn super.read();\n\t}\n\tdestroy() {\n\t\tthis._joystick.up();\n\t\tsuper.destroy();\n\t}\n};\n\nvar startsWith = (str, prefix) => str.indexOf(prefix) === 0;\nvar endsWith = (str, suffix) => str.indexOf(suffix, str.length - suffix.length) !== -1;\nvar DualGestureSource = class extends InputSource {\n\t_movementState = movementState();\n\t_layout = \"joystick-touch\";\n\t_pointerData = /* @__PURE__ */ new Map();\n\t_lastPointer = { x: 0, y: 0, time: 0 };\n\t_leftJoystick;\n\t_rightJoystick;\n\tconstructor(layout) {\n\t\tsuper({\n\t\t\tleftInput: [0, 0],\n\t\t\trightInput: [0, 0],\n\t\t\tdoubleTap: [0]\n\t\t});\n\t\tif (layout) {\n\t\t\tthis.layout = layout;\n\t\t}\n\t\tthis._leftJoystick = new VirtualJoystick();\n\t\tthis._rightJoystick = new VirtualJoystick();\n\t\tthis._onPointerDown = this._onPointerDown.bind(this);\n\t\tthis._onPointerMove = this._onPointerMove.bind(this);\n\t\tthis._onPointerUp = this._onPointerUp.bind(this);\n\t}\n\tset layout(value) {\n\t\tif (this._layout === value) {\n\t\t\treturn;\n\t\t}\n\t\tthis._layout = value;\n\t\tthis.read();\n\t\tthis._pointerData.clear();\n\t}\n\tget layout() {\n\t\treturn this._layout;\n\t}\n\tget leftJoystick() {\n\t\treturn this._leftJoystick;\n\t}\n\tget rightJoystick() {\n\t\treturn this._rightJoystick;\n\t}\n\t_onPointerDown(event) {\n\t\tconst { pointerType, pointerId, clientX, clientY } = event;\n\t\tthis._movementState.down(event);\n\t\tif (pointerType !== \"touch\") {\n\t\t\treturn;\n\t\t}\n\t\tthis._element?.setPointerCapture(pointerId);\n\t\tconst left = clientX < window.innerWidth * 0.5;\n\t\tthis._pointerData.set(pointerId, {\n\t\t\tx: clientX,\n\t\t\ty: clientY,\n\t\t\tleft\n\t\t});\n\t\tconst now2 = Date.now();\n\t\tconst sqrDist = (this._lastPointer.x - clientX) ** 2 + (this._lastPointer.y - clientY) ** 2;\n\t\tif (sqrDist < DOUBLE_TAP_VARIANCE && now2 - this._lastPointer.time < DOUBLE_TAP_THRESHOLD) {\n\t\t\tthis.deltas.doubleTap.append([1]);\n\t\t}\n\t\tthis._lastPointer.x = clientX;\n\t\tthis._lastPointer.y = clientY;\n\t\tthis._lastPointer.time = now2;\n\t\tif (left && startsWith(this._layout, \"joystick\")) {\n\t\t\tthis.fire(\"joystick:position:left\", this._leftJoystick.down(clientX, clientY));\n\t\t}\n\t\tif (!left && endsWith(this._layout, \"joystick\")) {\n\t\t\tthis.fire(\"joystick:position:right\", this._rightJoystick.down(clientX, clientY));\n\t\t}\n\t}\n\t_onPointerMove(event) {\n\t\tconst { pointerType, pointerId, target: target2, clientX, clientY } = event;\n\t\tconst [movementX, movementY] = this._movementState.move(event);\n\t\tif (pointerType !== \"touch\") {\n\t\t\treturn;\n\t\t}\n\t\tif (target2 !== this._element) {\n\t\t\treturn;\n\t\t}\n\t\tconst data2 = this._pointerData.get(pointerId);\n\t\tif (!data2) {\n\t\t\treturn;\n\t\t}\n\t\tconst { left } = data2;\n\t\tdata2.x = clientX;\n\t\tdata2.y = clientY;\n\t\tif (left) {\n\t\t\tif (startsWith(this._layout, \"joystick\")) {\n\t\t\t\tthis.fire(\"joystick:position:left\", this._leftJoystick.move(clientX, clientY));\n\t\t\t} else {\n\t\t\t\tthis.deltas.leftInput.append([movementX, movementY]);\n\t\t\t}\n\t\t} else {\n\t\t\tif (endsWith(this._layout, \"joystick\")) {\n\t\t\t\tthis.fire(\"joystick:position:right\", this._rightJoystick.move(clientX, clientY));\n\t\t\t} else {\n\t\t\t\tthis.deltas.rightInput.append([movementX, movementY]);\n\t\t\t}\n\t\t}\n\t}\n\t_onPointerUp(event) {\n\t\tconst { pointerType, pointerId } = event;\n\t\tthis._movementState.up(event);\n\t\tif (pointerType !== \"touch\") {\n\t\t\treturn;\n\t\t}\n\t\tthis._element?.releasePointerCapture(pointerId);\n\t\tconst data2 = this._pointerData.get(pointerId);\n\t\tif (!data2) {\n\t\t\treturn;\n\t\t}\n\t\tconst { left } = data2;\n\t\tthis._pointerData.delete(pointerId);\n\t\tif (left && startsWith(this._layout, \"joystick\")) {\n\t\t\tthis.fire(\"joystick:position:left\", this._leftJoystick.up());\n\t\t}\n\t\tif (!left && endsWith(this._layout, \"joystick\")) {\n\t\t\tthis.fire(\"joystick:position:right\", this._rightJoystick.up());\n\t\t}\n\t}\n\tattach(element) {\n\t\tsuper.attach(element);\n\t\tthis._element = element;\n\t\tthis._element.addEventListener(\"pointerdown\", this._onPointerDown);\n\t\tthis._element.addEventListener(\"pointermove\", this._onPointerMove);\n\t\tthis._element.addEventListener(\"pointerup\", this._onPointerUp);\n\t\tthis._element.addEventListener(\"pointercancel\", this._onPointerUp);\n\t}\n\tdetach() {\n\t\tif (!this._element) {\n\t\t\treturn;\n\t\t}\n\t\tthis._element.removeEventListener(\"pointerdown\", this._onPointerDown);\n\t\tthis._element.removeEventListener(\"pointermove\", this._onPointerMove);\n\t\tthis._element.removeEventListener(\"pointerup\", this._onPointerUp);\n\t\tthis._element.removeEventListener(\"pointercancel\", this._onPointerUp);\n\t\tthis._pointerData.clear();\n\t\tsuper.detach();\n\t}\n\tread() {\n\t\tthis.deltas.leftInput.append([this._leftJoystick.value.x, this._leftJoystick.value.y]);\n\t\tthis.deltas.rightInput.append([this._rightJoystick.value.x, this._rightJoystick.value.y]);\n\t\treturn super.read();\n\t}\n\tdestroy() {\n\t\tthis._leftJoystick.up();\n\t\tthis._rightJoystick.up();\n\t\tsuper.destroy();\n\t}\n};\n\nvar tmpVa = new Vec2();\nvar MultiTouchSource = class extends InputSource {\n\t_movementState = movementState();\n\t_pointerEvents = /* @__PURE__ */ new Map();\n\t_pointerPos = new Vec2();\n\t_pinchDist = -1;\n\tconstructor() {\n\t\tsuper({\n\t\t\ttouch: [0, 0],\n\t\t\tcount: [0],\n\t\t\tpinch: [0]\n\t\t});\n\t\tthis._onPointerDown = this._onPointerDown.bind(this);\n\t\tthis._onPointerMove = this._onPointerMove.bind(this);\n\t\tthis._onPointerUp = this._onPointerUp.bind(this);\n\t\tthis._onContextMenu = this._onContextMenu.bind(this);\n\t}\n\t_onPointerDown(event) {\n\t\tconst { pointerId, pointerType } = event;\n\t\tthis._movementState.down(event);\n\t\tif (!isTouchPointer(pointerType)) {\n\t\t\treturn;\n\t\t}\n\t\tthis._element?.setPointerCapture(pointerId);\n\t\tthis._pointerEvents.set(pointerId, event);\n\t\tthis.deltas.count.append([1]);\n\t\tif (this._pointerEvents.size > 1) {\n\t\t\tthis._getMidPoint(this._pointerPos);\n\t\t\tthis._pinchDist = this._getPinchDist();\n\t\t}\n\t}\n\t_onPointerMove(event) {\n\t\tconst { pointerType, target: target2, pointerId } = event;\n\t\tconst [movementX, movementY] = this._movementState.move(event);\n\t\tif (!isTouchPointer(pointerType)) {\n\t\t\treturn;\n\t\t}\n\t\tif (target2 !== this._element) {\n\t\t\treturn;\n\t\t}\n\t\tif (this._pointerEvents.size === 0) {\n\t\t\treturn;\n\t\t}\n\t\tthis._pointerEvents.set(pointerId, event);\n\t\tif (this._pointerEvents.size > 1) {\n\t\t\tconst mid = this._getMidPoint(tmpVa);\n\t\t\tthis.deltas.touch.append([mid.x - this._pointerPos.x, mid.y - this._pointerPos.y]);\n\t\t\tthis._pointerPos.copy(mid);\n\t\t\tconst pinchDist = this._getPinchDist();\n\t\t\tif (this._pinchDist > 0) {\n\t\t\t\tthis.deltas.pinch.append([this._pinchDist - pinchDist]);\n\t\t\t}\n\t\t\tthis._pinchDist = pinchDist;\n\t\t} else {\n\t\t\tthis.deltas.touch.append([movementX, movementY]);\n\t\t}\n\t}\n\t_onPointerUp(event) {\n\t\tconst { pointerType, pointerId } = event;\n\t\tthis._movementState.up(event);\n\t\tif (!isTouchPointer(pointerType)) {\n\t\t\treturn;\n\t\t}\n\t\tthis._element?.releasePointerCapture(pointerId);\n\t\tthis._pointerEvents.delete(pointerId);\n\t\tthis.deltas.count.append([-1]);\n\t\tif (this._pointerEvents.size < 2) {\n\t\t\tthis._pinchDist = -1;\n\t\t}\n\t\tthis._pointerPos.set(0, 0);\n\t}\n\t_onContextMenu(event) {\n\t\tevent.preventDefault();\n\t}\n\t_getMidPoint(out) {\n\t\tif (this._pointerEvents.size < 2) {\n\t\t\treturn out.set(0, 0);\n\t\t}\n\t\tconst [a, b] = this._pointerEvents.values();\n\t\tconst dx = a.clientX - b.clientX;\n\t\tconst dy = a.clientY - b.clientY;\n\t\treturn out.set(b.clientX + dx * 0.5, b.clientY + dy * 0.5);\n\t}\n\t_getPinchDist() {\n\t\tif (this._pointerEvents.size < 2) {\n\t\t\treturn 0;\n\t\t}\n\t\tconst [a, b] = this._pointerEvents.values();\n\t\tconst dx = a.clientX - b.clientX;\n\t\tconst dy = a.clientY - b.clientY;\n\t\treturn Math.sqrt(dx * dx + dy * dy);\n\t}\n\tattach(element) {\n\t\tsuper.attach(element);\n\t\tthis._element = element;\n\t\tthis._element.addEventListener(\"pointerdown\", this._onPointerDown);\n\t\tthis._element.addEventListener(\"pointermove\", this._onPointerMove);\n\t\tthis._element.addEventListener(\"pointerup\", this._onPointerUp);\n\t\tthis._element.addEventListener(\"pointercancel\", this._onPointerUp);\n\t\tthis._element.addEventListener(\"contextmenu\", this._onContextMenu);\n\t}\n\tdetach() {\n\t\tif (!this._element) {\n\t\t\treturn;\n\t\t}\n\t\tthis._element.removeEventListener(\"pointerdown\", this._onPointerDown);\n\t\tthis._element.removeEventListener(\"pointermove\", this._onPointerMove);\n\t\tthis._element.removeEventListener(\"pointerup\", this._onPointerUp);\n\t\tthis._element.removeEventListener(\"pointercancel\", this._onPointerUp);\n\t\tthis._element.removeEventListener(\"contextmenu\", this._onContextMenu);\n\t\tthis._pointerEvents.clear();\n\t\tsuper.detach();\n\t}\n};\n\nvar PASSIVE = { passive: false };\nvar KEY_CODES = {\n\tA: 0,\n\tB: 1,\n\tC: 2,\n\tD: 3,\n\tE: 4,\n\tF: 5,\n\tG: 6,\n\tH: 7,\n\tI: 8,\n\tJ: 9,\n\tK: 10,\n\tL: 11,\n\tM: 12,\n\tN: 13,\n\tO: 14,\n\tP: 15,\n\tQ: 16,\n\tR: 17,\n\tS: 18,\n\tT: 19,\n\tU: 20,\n\tV: 21,\n\tW: 22,\n\tX: 23,\n\tY: 24,\n\tZ: 25,\n\t\"0\": 26,\n\t\"1\": 27,\n\t\"2\": 28,\n\t\"3\": 29,\n\t\"4\": 30,\n\t\"5\": 31,\n\t\"6\": 32,\n\t\"7\": 33,\n\t\"8\": 34,\n\t\"9\": 35,\n\tUP: 36,\n\tDOWN: 37,\n\tLEFT: 38,\n\tRIGHT: 39,\n\tSPACE: 40,\n\tSHIFT: 41,\n\tCTRL: 42\n};\nvar KEY_COUNT = Object.keys(KEY_CODES).length;\nvar array2 = Array(KEY_COUNT).fill(0);\nvar KeyboardMouseSource = class _KeyboardMouseSource extends InputSource {\n\t_movementState = movementState();\n\tstatic keyCode = KEY_CODES;\n\t_pointerId = -1;\n\t_pointerLock;\n\t_keyMap = /* @__PURE__ */ new Map();\n\t_keyPrev = Array(KEY_COUNT).fill(0);\n\t_keyNow = Array(KEY_COUNT).fill(0);\n\t_button = Array(3).fill(0);\n\tconstructor({ pointerLock = false } = {}) {\n\t\tsuper({\n\t\t\tkey: Array(KEY_COUNT).fill(0),\n\t\t\tbutton: [0, 0, 0],\n\t\t\tmouse: [0, 0],\n\t\t\twheel: [0]\n\t\t});\n\t\tthis._pointerLock = pointerLock ?? false;\n\t\tconst { keyCode } = _KeyboardMouseSource;\n\t\tfor (let i2 = 0; i2 < 26; i2++) {\n\t\t\tconst code = `Key${String.fromCharCode(\"A\".charCodeAt(0) + i2)}`;\n\t\t\tthis._keyMap.set(code, keyCode.A + i2);\n\t\t}\n\t\tfor (let i2 = 0; i2 < 10; i2++) {\n\t\t\tconst code = `Digit${i2}`;\n\t\t\tthis._keyMap.set(code, keyCode[\"0\"] + i2);\n\t\t}\n\t\tthis._keyMap.set(\"ArrowUp\", keyCode.UP);\n\t\tthis._keyMap.set(\"ArrowDown\", keyCode.DOWN);\n\t\tthis._keyMap.set(\"ArrowLeft\", keyCode.LEFT);\n\t\tthis._keyMap.set(\"ArrowRight\", keyCode.RIGHT);\n\t\tthis._keyMap.set(\"Space\", keyCode.SPACE);\n\t\tthis._keyMap.set(\"ShiftLeft\", keyCode.SHIFT);\n\t\tthis._keyMap.set(\"ShiftRight\", keyCode.SHIFT);\n\t\tthis._keyMap.set(\"ControlLeft\", keyCode.CTRL);\n\t\tthis._keyMap.set(\"ControlRight\", keyCode.CTRL);\n\t\tthis._onWheel = this._onWheel.bind(this);\n\t\tthis._onPointerDown = this._onPointerDown.bind(this);\n\t\tthis._onPointerMove = this._onPointerMove.bind(this);\n\t\tthis._onPointerUp = this._onPointerUp.bind(this);\n\t\tthis._onContextMenu = this._onContextMenu.bind(this);\n\t\tthis._onKeyDown = this._onKeyDown.bind(this);\n\t\tthis._onKeyUp = this._onKeyUp.bind(this);\n\t}\n\t_onWheel(event) {\n\t\tevent.preventDefault();\n\t\tthis.deltas.wheel.append([event.deltaY]);\n\t}\n\t_onPointerDown(event) {\n\t\tthis._movementState.down(event);\n\t\tif (event.pointerType !== \"mouse\") {\n\t\t\treturn;\n\t\t}\n\t\tif (this._pointerLock) {\n\t\t\tif (document.pointerLockElement !== this._element) {\n\t\t\t\tthis._element?.requestPointerLock();\n\t\t\t}\n\t\t} else {\n\t\t\tthis._element?.setPointerCapture(event.pointerId);\n\t\t}\n\t\tthis._clearButtons();\n\t\tthis._button[event.button] = 1;\n\t\tthis.deltas.button.append(this._button);\n\t\tif (this._pointerId !== -1) {\n\t\t\treturn;\n\t\t}\n\t\tthis._pointerId = event.pointerId;\n\t}\n\t_onPointerMove(event) {\n\t\tconst [movementX, movementY] = this._pointerLock && document.pointerLockElement === this._element ? [event.movementX, event.movementY] : this._movementState.move(event);\n\t\tif (event.pointerType !== \"mouse\") {\n\t\t\treturn;\n\t\t}\n\t\tif (event.target !== this._element) {\n\t\t\treturn;\n\t\t}\n\t\tif (this._pointerLock) {\n\t\t\tif (document.pointerLockElement !== this._element) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t} else {\n\t\t\tif (this._pointerId !== event.pointerId) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tthis.deltas.mouse.append([movementX, movementY]);\n\t}\n\t_onPointerUp(event) {\n\t\tthis._movementState.up(event);\n\t\tif (event.pointerType !== \"mouse\") {\n\t\t\treturn;\n\t\t}\n\t\tif (!this._pointerLock) {\n\t\t\tthis._element?.releasePointerCapture(event.pointerId);\n\t\t}\n\t\tthis._clearButtons();\n\t\tthis.deltas.button.append(this._button);\n\t\tif (this._pointerId !== event.pointerId) {\n\t\t\treturn;\n\t\t}\n\t\tthis._pointerId = -1;\n\t}\n\t_onContextMenu(event) {\n\t\tevent.preventDefault();\n\t}\n\t_onKeyDown(event) {\n\t\tif (this._pointerLock && document.pointerLockElement !== this._element) {\n\t\t\treturn;\n\t\t}\n\t\tevent.stopPropagation();\n\t\tthis._setKey(event.code, 1);\n\t}\n\t_onKeyUp(event) {\n\t\tevent.stopPropagation();\n\t\tthis._setKey(event.code, 0);\n\t}\n\t_clearButtons() {\n\t\tfor (let i2 = 0; i2 < this._button.length; i2++) {\n\t\t\tif (this._button[i2] === 1) {\n\t\t\t\tthis._button[i2] = -1;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tthis._button[i2] = 0;\n\t\t}\n\t}\n\t_setKey(code, value) {\n\t\tif (!this._keyMap.has(code)) {\n\t\t\treturn;\n\t\t}\n\t\tthis._keyNow[this._keyMap.get(code) ?? 0] = value;\n\t}\n\tattach(element) {\n\t\tsuper.attach(element);\n\t\tthis._element = element;\n\t\tthis._element.addEventListener(\"wheel\", this._onWheel, PASSIVE);\n\t\tthis._element.addEventListener(\"pointerdown\", this._onPointerDown);\n\t\tthis._element.addEventListener(\"pointermove\", this._onPointerMove);\n\t\tthis._element.addEventListener(\"pointerup\", this._onPointerUp);\n\t\tthis._element.addEventListener(\"pointercancel\", this._onPointerUp);\n\t\tthis._element.addEventListener(\"pointerleave\", this._onPointerUp);\n\t\tthis._element.addEventListener(\"lostpointercapture\", this._onPointerUp);\n\t\tthis._element.addEventListener(\"contextmenu\", this._onContextMenu);\n\t\twindow.addEventListener(\"keydown\", this._onKeyDown, false);\n\t\twindow.addEventListener(\"keyup\", this._onKeyUp, false);\n\t}\n\tdetach() {\n\t\tif (!this._element) {\n\t\t\treturn;\n\t\t}\n\t\tthis._element.removeEventListener(\"wheel\", this._onWheel, PASSIVE);\n\t\tthis._element.removeEventListener(\"pointerdown\", this._onPointerDown);\n\t\tthis._element.removeEventListener(\"pointermove\", this._onPointerMove);\n\t\tthis._element.removeEventListener(\"pointerup\", this._onPointerUp);\n\t\tthis._element.removeEventListener(\"pointercancel\", this._onPointerUp);\n\t\tthis._element.removeEventListener(\"pointerleave\", this._onPointerUp);\n\t\tthis._element.removeEventListener(\"lostpointercapture\", this._onPointerUp);\n\t\tthis._element.removeEventListener(\"contextmenu\", this._onContextMenu);\n\t\twindow.removeEventListener(\"keydown\", this._onKeyDown, false);\n\t\twindow.removeEventListener(\"keyup\", this._onKeyUp, false);\n\t\tthis._keyNow.fill(0);\n\t\tthis._keyPrev.fill(0);\n\t\tsuper.detach();\n\t}\n\tread() {\n\t\tfor (let i2 = 0; i2 < array2.length; i2++) {\n\t\t\tarray2[i2] = this._keyNow[i2] - this._keyPrev[i2];\n\t\t\tthis._keyPrev[i2] = this._keyNow[i2];\n\t\t}\n\t\tthis.deltas.key.append(array2);\n\t\treturn super.read();\n\t}\n};\n\nvar BUTTON_CODES = {\n\tA: 0,\n\tB: 1,\n\tX: 2,\n\tY: 3,\n\tLB: 4,\n\tRB: 5,\n\tLT: 6,\n\tRT: 7,\n\tSELECT: 8,\n\tSTART: 9,\n\tLEFT_STICK: 10,\n\tRIGHT_STICK: 11\n};\nvar BUTTON_COUNT = Object.keys(BUTTON_CODES).length;\nvar GamepadSource = class extends InputSource {\n\tstatic buttonCode = BUTTON_CODES;\n\t_buttonPrev = Array(BUTTON_COUNT).fill(0);\n\tconstructor() {\n\t\tsuper({\n\t\t\tbuttons: Array(BUTTON_COUNT).fill(0),\n\t\t\tleftStick: [0, 0],\n\t\t\trightStick: [0, 0]\n\t\t});\n\t}\n\tread() {\n\t\tconst gamepads2 = navigator.getGamepads();\n\t\tfor (let i2 = 0; i2 < gamepads2.length; i2++) {\n\t\t\tconst gp = gamepads2[i2];\n\t\t\tif (!gp) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (gp.mapping !== \"standard\") {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (gp.axes.length < 4) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (gp.buttons.length < BUTTON_COUNT) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst { buttons, axes } = gp;\n\t\t\tfor (let j = 0; j < this._buttonPrev.length; j++) {\n\t\t\t\tconst state = +buttons[j].pressed;\n\t\t\t\tthis.deltas.buttons[j] = state - this._buttonPrev[j];\n\t\t\t\tthis._buttonPrev[j] = state;\n\t\t\t}\n\t\t\tthis.deltas.leftStick.append([axes[0], axes[1]]);\n\t\t\tthis.deltas.rightStick.append([axes[2], axes[3]]);\n\t\t}\n\t\treturn super.read();\n\t}\n};\n\nvar damp = (damping, dt) => 1 - Math.pow(damping, dt * 1e3);\n\nvar offset = new Vec3();\nvar angles = new Vec3();\nvar forward = new Vec3();\nvar right = new Vec3();\nvar up2 = new Vec3();\nvar rotation3 = new Quat();\nvar FlyController = class extends InputController {\n\t_targetPose = new Pose();\n\trotateDamping = 0.98;\n\tmoveDamping = 0.98;\n\tset pitchRange(value) {\n\t\tthis._targetPose.pitchRange.copy(value);\n\t\tthis._pose.copy(this._targetPose.rotate(Vec3.ZERO));\n\t}\n\tget pitchRange() {\n\t\treturn this._targetPose.pitchRange;\n\t}\n\tset yawRange(value) {\n\t\tthis._targetPose.yawRange.copy(value);\n\t\tthis._pose.copy(this._targetPose.rotate(Vec3.ZERO));\n\t}\n\tget yawRange() {\n\t\treturn this._targetPose.yawRange;\n\t}\n\tattach(pose, smooth = true) {\n\t\tthis._targetPose.copy(pose);\n\t\tif (!smooth) {\n\t\t\tthis._pose.copy(this._targetPose);\n\t\t}\n\t}\n\tdetach() {\n\t\tthis._targetPose.copy(this._pose);\n\t}\n\tupdate(frame, dt) {\n\t\tconst { move, rotate } = frame.read();\n\t\tthis._targetPose.rotate(angles.set(-rotate[1], -rotate[0], 0));\n\t\trotation3.setFromEulerAngles(this._pose.angles);\n\t\trotation3.transformVector(Vec3.FORWARD, forward);\n\t\trotation3.transformVector(Vec3.RIGHT, right);\n\t\trotation3.transformVector(Vec3.UP, up2);\n\t\toffset.set(0, 0, 0);\n\t\toffset.add(forward.mulScalar(move[2]));\n\t\toffset.add(right.mulScalar(move[0]));\n\t\toffset.add(up2.mulScalar(move[1]));\n\t\tthis._targetPose.move(offset);\n\t\treturn this._pose.lerp(\n\t\t\tthis._pose,\n\t\t\tthis._targetPose,\n\t\t\tdamp(this.moveDamping, dt),\n\t\t\tdamp(this.rotateDamping, dt)\n\t\t);\n\t}\n\tdestroy() {\n\t\tthis.detach();\n\t}\n};\n\nvar dir = new Vec3();\nvar offset2 = new Vec3();\nvar angles2 = new Vec3();\nvar rotation4 = new Quat();\nvar OrbitController = class extends InputController {\n\t_targetRootPose = new Pose();\n\t_rootPose = new Pose();\n\t_targetChildPose = new Pose();\n\t_childPose = new Pose();\n\trotateDamping = 0.98;\n\tmoveDamping = 0.98;\n\tzoomDamping = 0.98;\n\tset pitchRange(range) {\n\t\tthis._targetRootPose.pitchRange.copy(range);\n\t\tthis._rootPose.copy(this._targetRootPose.rotate(Vec3.ZERO));\n\t}\n\tget pitchRange() {\n\t\treturn this._targetRootPose.pitchRange;\n\t}\n\tset yawRange(range) {\n\t\tthis._targetRootPose.yawRange.copy(range);\n\t\tthis._rootPose.copy(this._targetRootPose.rotate(Vec3.ZERO));\n\t}\n\tget yawRange() {\n\t\treturn this._targetRootPose.yawRange;\n\t}\n\tset zoomRange(range) {\n\t\tthis._targetChildPose.zRange.copy(range);\n\t\tthis._childPose.copy(this._targetChildPose.move(Vec3.ZERO));\n\t}\n\tget zoomRange() {\n\t\treturn this._targetRootPose.zRange;\n\t}\n\tattach(pose, smooth = true) {\n\t\tthis._targetRootPose.set(pose.getFocus(dir), pose.angles, 0);\n\t\tthis._targetChildPose.position.set(0, 0, pose.distance);\n\t\tif (!smooth) {\n\t\t\tthis._rootPose.copy(this._targetRootPose);\n\t\t\tthis._childPose.copy(this._targetChildPose);\n\t\t}\n\t}\n\tdetach() {\n\t\tthis._targetRootPose.copy(this._rootPose);\n\t\tthis._targetChildPose.copy(this._childPose);\n\t}\n\tupdate(frame, dt) {\n\t\tconst { move, rotate } = frame.read();\n\t\toffset2.set(move[0], move[1], 0);\n\t\trotation4.setFromEulerAngles(this._rootPose.angles).transformVector(offset2, offset2);\n\t\tthis._targetRootPose.move(offset2);\n\t\tconst { z: dist } = this._targetChildPose.position;\n\t\tthis._targetChildPose.move(offset2.set(0, 0, dist * (1 + move[2]) - dist));\n\t\tthis._targetRootPose.rotate(angles2.set(-rotate[1], -rotate[0], 0));\n\t\tthis._rootPose.lerp(\n\t\t\tthis._rootPose,\n\t\t\tthis._targetRootPose,\n\t\t\tdamp(this.moveDamping, dt),\n\t\t\tdamp(this.rotateDamping, dt),\n\t\t\t1\n\t\t);\n\t\tthis._childPose.lerp(\n\t\t\tthis._childPose,\n\t\t\tthis._targetChildPose,\n\t\t\tdamp(this.zoomDamping, dt),\n\t\t\t1,\n\t\t\t1\n\t\t);\n\t\trotation4.setFromEulerAngles(this._rootPose.angles).transformVector(this._childPose.position, offset2).add(this._rootPose.position);\n\t\treturn this._pose.set(offset2, this._rootPose.angles, this._childPose.position.z);\n\t}\n\tdestroy() {\n\t\tthis.detach();\n\t}\n};\n\nvar EPSILON2 = 1e-3;\nvar dir2 = new Vec3();\nvar position3 = new Vec3();\nvar rotation5 = new Quat();\nvar FocusController = class extends InputController {\n\t_targetRootPose = new Pose();\n\t_rootPose = new Pose();\n\t_targetChildPose = new Pose();\n\t_childPose = new Pose();\n\tfocusDamping = 0.98;\n\tattach(pose, smooth = true) {\n\t\tthis._targetRootPose.set(pose.getFocus(dir2), pose.angles, 0);\n\t\tthis._targetChildPose.position.set(0, 0, pose.distance);\n\t\tif (!smooth) {\n\t\t\tthis._rootPose.copy(this._targetRootPose);\n\t\t\tthis._childPose.copy(this._targetChildPose);\n\t\t}\n\t}\n\tdetach() {\n\t\tthis._targetRootPose.copy(this._rootPose);\n\t\tthis._targetChildPose.copy(this._childPose);\n\t}\n\tcomplete() {\n\t\treturn this._targetRootPose.equalsApprox(this._rootPose, EPSILON2) && this._targetChildPose.equalsApprox(this._childPose, EPSILON2);\n\t}\n\tupdate(frame, dt) {\n\t\tframe.read();\n\t\tthis._rootPose.lerp(\n\t\t\tthis._rootPose,\n\t\t\tthis._targetRootPose,\n\t\t\tdamp(this.focusDamping, dt),\n\t\t\tdamp(this.focusDamping, dt),\n\t\t\t1\n\t\t);\n\t\tthis._childPose.lerp(\n\t\t\tthis._childPose,\n\t\t\tthis._targetChildPose,\n\t\t\tdamp(this.focusDamping, dt),\n\t\t\t1,\n\t\t\t1\n\t\t);\n\t\trotation5.setFromEulerAngles(this._rootPose.angles).transformVector(this._childPose.position, position3).add(this._rootPose.position);\n\t\treturn this._pose.set(position3, this._rootPose.angles, this._childPose.position.length());\n\t}\n\tdestroy() {\n\t\tthis.detach();\n\t}\n};\n\nvar GIZMOSPACE_LOCAL = \"local\";\nvar GIZMOSPACE_WORLD = \"world\";\nvar GIZMOAXIS_X = \"x\";\nvar GIZMOAXIS_Y = \"y\";\nvar GIZMOAXIS_Z = \"z\";\nvar GIZMOAXIS_YZ = \"yz\";\nvar GIZMOAXIS_XZ = \"xz\";\nvar GIZMOAXIS_XY = \"xy\";\nvar GIZMOAXIS_XYZ = \"xyz\";\nvar GIZMOAXIS_FACE = \"face\";\n\nvar v5 = new Vec3();\nvar position4 = new Vec3();\nvar dir3 = new Vec3();\nvar rotation6 = new Quat();\nvar m1 = new Mat4();\nvar m2 = new Mat4();\nvar ray = new Ray();\nvar MIN_SCALE = 1e-4;\nvar PERS_SCALE_RATIO = 0.3;\nvar ORTHO_SCALE_RATIO = 0.32;\nvar UPDATE_EPSILON = 1e-6;\nvar DIST_EPSILON = 1e-4;\nvar Gizmo = class _Gizmo extends EventHandler {\n\tstatic EVENT_POINTERDOWN = \"pointer:down\";\n\tstatic EVENT_POINTERMOVE = \"pointer:move\";\n\tstatic EVENT_POINTERUP = \"pointer:up\";\n\tstatic EVENT_POSITIONUPDATE = \"position:update\";\n\tstatic EVENT_ROTATIONUPDATE = \"rotation:update\";\n\tstatic EVENT_SCALEUPDATE = \"scale:update\";\n\tstatic EVENT_NODESATTACH = \"nodes:attach\";\n\tstatic EVENT_NODESDETACH = \"nodes:detach\";\n\tstatic EVENT_RENDERUPDATE = \"render:update\";\n\t_size = 1;\n\t_scale = 1;\n\t_coordSpace = \"world\";\n\t_app;\n\t_device;\n\t_handles = [];\n\t_mouseButtons = [true, true, true];\n\t_camera;\n\t_layer;\n\t_renderUpdate = false;\n\tnodes = [];\n\troot;\n\tintersectShapes = [];\n\tpreventDefault = true;\n\tstatic createLayer(app2, layerName = \"Gizmo\", layerIndex = app2.scene.layers.layerList.length) {\n\t\tconst layer = new Layer({\n\t\t\tname: layerName,\n\t\t\tclearDepthBuffer: true,\n\t\t\topaqueSortMode: SORTMODE_NONE,\n\t\t\ttransparentSortMode: SORTMODE_NONE\n\t\t});\n\t\tapp2.scene.layers.insert(layer, layerIndex);\n\t\treturn layer;\n\t}\n\tconstructor(camera, layer, name = \"gizmo\") {\n\t\tsuper();\n\t\tthis._layer = layer;\n\t\tthis._camera = camera;\n\t\tthis._camera.layers = this._camera.layers.concat(this._layer.id);\n\t\tthis._app = this._camera.system.app;\n\t\tthis._device = this._app.graphicsDevice;\n\t\tthis.root = new Entity(name);\n\t\tthis._app.root.addChild(this.root);\n\t\tthis.root.enabled = false;\n\t\tthis._updateScale();\n\t\tthis._onPointerDown = this._onPointerDown.bind(this);\n\t\tthis._onPointerMove = this._onPointerMove.bind(this);\n\t\tthis._onPointerUp = this._onPointerUp.bind(this);\n\t\tthis._device.canvas.addEventListener(\"pointerdown\", this._onPointerDown);\n\t\tthis._device.canvas.addEventListener(\"pointermove\", this._onPointerMove);\n\t\tthis._device.canvas.addEventListener(\"pointerup\", this._onPointerUp);\n\t\tthis._handles.push(this._app.on(\"prerender\", () => this.prerender()));\n\t\tthis._handles.push(this._app.on(\"update\", () => this.update()));\n\t\tthis._handles.push(this._app.on(\"destroy\", () => this.destroy()));\n\t}\n\tset enabled(state) {\n\t\tconst cameraDist = this.root.getLocalPosition().distance(this.camera.entity.getPosition());\n\t\tconst enabled = state ? this.nodes.length > 0 && cameraDist > DIST_EPSILON : false;\n\t\tif (enabled !== this.root.enabled) {\n\t\t\tthis.root.enabled = enabled;\n\t\t\tthis._renderUpdate = true;\n\t\t}\n\t}\n\tget enabled() {\n\t\treturn this.root.enabled;\n\t}\n\tget mouseButtons() {\n\t\treturn this._mouseButtons;\n\t}\n\tset layer(layer) {\n\t\tif (this._layer === layer) {\n\t\t\treturn;\n\t\t}\n\t\tthis._camera.layers = this._camera.layers.filter((id14) => id14 !== this._layer.id);\n\t\tthis._layer = layer;\n\t\tthis._camera.layers = this._camera.layers.concat(this._layer.id);\n\t\tthis.enabled = true;\n\t}\n\tget layer() {\n\t\treturn this._layer;\n\t}\n\tset camera(camera) {\n\t\tif (this._camera === camera) {\n\t\t\treturn;\n\t\t}\n\t\tthis._camera.layers = this._camera.layers.filter((id14) => id14 !== this._layer.id);\n\t\tthis._camera = camera;\n\t\tthis._camera.layers = this._camera.layers.concat(this._layer.id);\n\t\tthis.enabled = true;\n\t}\n\tget camera() {\n\t\treturn this._camera;\n\t}\n\tset coordSpace(value) {\n\t\tthis._coordSpace = value ?? this._coordSpace;\n\t\tthis._updateRotation();\n\t}\n\tget coordSpace() {\n\t\treturn this._coordSpace;\n\t}\n\tset size(value) {\n\t\tthis._size = value;\n\t\tthis._updateScale();\n\t}\n\tget size() {\n\t\treturn this._size;\n\t}\n\tget facingDir() {\n\t\tif (this._camera.projection === PROJECTION_PERSPECTIVE) {\n\t\t\tconst gizmoPos = this.root.getLocalPosition();\n\t\t\tconst cameraPos = this._camera.entity.getPosition();\n\t\t\treturn dir3.sub2(cameraPos, gizmoPos).normalize();\n\t\t}\n\t\treturn dir3.copy(this._camera.entity.forward).mulScalar(-1);\n\t}\n\tget cameraDir() {\n\t\tconst cameraPos = this._camera.entity.getPosition();\n\t\tconst gizmoPos = this.root.getLocalPosition();\n\t\treturn dir3.sub2(cameraPos, gizmoPos).normalize();\n\t}\n\t_onPointerDown(e) {\n\t\tif (!this.enabled || document.pointerLockElement) {\n\t\t\treturn;\n\t\t}\n\t\tif (!this.mouseButtons[e.button]) {\n\t\t\treturn;\n\t\t}\n\t\tconst selection = this._getSelection(e.offsetX, e.offsetY);\n\t\tif (selection[0]) {\n\t\t\tif (this.preventDefault) {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t\te.stopPropagation();\n\t\t}\n\t\tconst { canvas } = this._device;\n\t\tcanvas.setPointerCapture(e.pointerId);\n\t\tthis.fire(_Gizmo.EVENT_POINTERDOWN, e.offsetX, e.offsetY, selection[0]);\n\t}\n\t_onPointerMove(e) {\n\t\tif (!this.enabled || document.pointerLockElement) {\n\t\t\treturn;\n\t\t}\n\t\tconst selection = this._getSelection(e.offsetX, e.offsetY);\n\t\tif (selection[0]) {\n\t\t\tif (this.preventDefault) {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t\te.stopPropagation();\n\t\t}\n\t\tthis.fire(_Gizmo.EVENT_POINTERMOVE, e.offsetX, e.offsetY, selection[0]);\n\t}\n\t_onPointerUp(e) {\n\t\tif (!this.enabled || document.pointerLockElement) {\n\t\t\treturn;\n\t\t}\n\t\tif (!this.mouseButtons[e.button]) {\n\t\t\treturn;\n\t\t}\n\t\tconst selection = this._getSelection(e.offsetX, e.offsetY);\n\t\tif (selection[0]) {\n\t\t\tif (this.preventDefault) {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t\te.stopPropagation();\n\t\t}\n\t\tconst { canvas } = this._device;\n\t\tcanvas.releasePointerCapture(e.pointerId);\n\t\tthis.fire(_Gizmo.EVENT_POINTERUP, e.offsetX, e.offsetY, selection[0]);\n\t}\n\t_updatePosition() {\n\t\tposition4.set(0, 0, 0);\n\t\tif (this._coordSpace === \"local\") {\n\t\t\tposition4.copy(this.nodes[this.nodes.length - 1].getPosition());\n\t\t} else {\n\t\t\tfor (let i2 = 0; i2 < this.nodes.length; i2++) {\n\t\t\t\tconst node = this.nodes[i2];\n\t\t\t\tposition4.add(node.getPosition());\n\t\t\t}\n\t\t\tposition4.mulScalar(1 / (this.nodes.length || 1));\n\t\t}\n\t\tif (position4.equalsApprox(this.root.getLocalPosition(), UPDATE_EPSILON)) {\n\t\t\treturn;\n\t\t}\n\t\tthis.root.setLocalPosition(position4);\n\t\tthis.fire(_Gizmo.EVENT_POSITIONUPDATE, position4);\n\t\tthis._renderUpdate = true;\n\t}\n\t_updateRotation() {\n\t\trotation6.set(0, 0, 0, 1);\n\t\tif (this._coordSpace === \"local\" && this.nodes.length !== 0) {\n\t\t\trotation6.copy(this.nodes[this.nodes.length - 1].getRotation());\n\t\t}\n\t\tif (rotation6.equalsApprox(this.root.getRotation(), UPDATE_EPSILON)) {\n\t\t\treturn;\n\t\t}\n\t\tthis.root.setRotation(rotation6);\n\t\tthis.fire(_Gizmo.EVENT_ROTATIONUPDATE, rotation6.getEulerAngles());\n\t\tthis._renderUpdate = true;\n\t}\n\t_updateScale() {\n\t\tif (this._camera.projection === PROJECTION_PERSPECTIVE) {\n\t\t\tconst gizmoPos = this.root.getLocalPosition();\n\t\t\tconst cameraPos = this._camera.entity.getPosition();\n\t\t\tconst dist = v5.sub2(gizmoPos, cameraPos).dot(this._camera.entity.forward);\n\t\t\tthis._scale = Math.tan(0.5 * this._camera.fov * math.DEG_TO_RAD) * dist * PERS_SCALE_RATIO;\n\t\t} else {\n\t\t\tthis._scale = this._camera.orthoHeight * ORTHO_SCALE_RATIO;\n\t\t}\n\t\tthis._scale = Math.max(this._scale * this._size, MIN_SCALE);\n\t\tif (Math.abs(this._scale - this.root.getLocalScale().x) < UPDATE_EPSILON) {\n\t\t\treturn;\n\t\t}\n\t\tthis.root.setLocalScale(this._scale, this._scale, this._scale);\n\t\tthis.fire(_Gizmo.EVENT_SCALEUPDATE, this._scale);\n\t\tthis._renderUpdate = true;\n\t}\n\t_getSelection(x3, y2) {\n\t\tconst start = this._camera.screenToWorld(x3, y2, 0);\n\t\tconst end = this._camera.screenToWorld(x3, y2, this._camera.farClip - this._camera.nearClip);\n\t\tconst dir4 = v5.copy(end).sub(start).normalize();\n\t\tconst selection = [];\n\t\tfor (let i2 = 0; i2 < this.intersectShapes.length; i2++) {\n\t\t\tconst shape = this.intersectShapes[i2];\n\t\t\tif (shape.disabled || !shape.entity.enabled) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst parentTM = shape.entity.getWorldTransform();\n\t\t\tfor (let j = 0; j < shape.triData.length; j++) {\n\t\t\t\tconst { tris, transform, priority } = shape.triData[j];\n\t\t\t\tconst triWTM = m1.copy(parentTM).mul(transform);\n\t\t\t\tconst invTriWTM = m2.copy(triWTM).invert();\n\t\t\t\tinvTriWTM.transformPoint(start, ray.origin);\n\t\t\t\tinvTriWTM.transformVector(dir4, ray.direction);\n\t\t\t\tray.direction.normalize();\n\t\t\t\tfor (let k = 0; k < tris.length; k++) {\n\t\t\t\t\tif (tris[k].intersectsRay(ray, v5)) {\n\t\t\t\t\t\tselection.push({\n\t\t\t\t\t\t\tdist: triWTM.transformPoint(v5).sub(start).length(),\n\t\t\t\t\t\t\tmeshInstances: shape.meshInstances,\n\t\t\t\t\t\t\tpriority\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (selection.length) {\n\t\t\tselection.sort((s0, s1) => {\n\t\t\t\tif (s0.priority !== 0 && s1.priority !== 0) {\n\t\t\t\t\treturn s1.priority - s0.priority;\n\t\t\t\t}\n\t\t\t\treturn s0.dist - s1.dist;\n\t\t\t});\n\t\t\treturn selection[0].meshInstances;\n\t\t}\n\t\treturn [];\n\t}\n\tattach(nodes = []) {\n\t\tif (Array.isArray(nodes)) {\n\t\t\tif (nodes.length === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.nodes = nodes;\n\t\t} else {\n\t\t\tthis.nodes = [nodes];\n\t\t}\n\t\tthis._updatePosition();\n\t\tthis._updateRotation();\n\t\tthis._updateScale();\n\t\tthis.fire(_Gizmo.EVENT_NODESATTACH);\n\t\tthis.enabled = true;\n\t}\n\tdetach() {\n\t\tthis.enabled = false;\n\t\tthis.fire(_Gizmo.EVENT_NODESDETACH);\n\t\tthis.nodes = [];\n\t}\n\tprerender() {\n\t}\n\tupdate() {\n\t\tif (this._renderUpdate) {\n\t\t\tthis._renderUpdate = false;\n\t\t\tthis.fire(_Gizmo.EVENT_RENDERUPDATE);\n\t\t}\n\t\tif (!this.enabled) {\n\t\t\treturn;\n\t\t}\n\t\tthis._updatePosition();\n\t\tthis._updateRotation();\n\t\tthis._updateScale();\n\t}\n\tdestroy() {\n\t\tthis.detach();\n\t\tthis._device.canvas.removeEventListener(\"pointerdown\", this._onPointerDown);\n\t\tthis._device.canvas.removeEventListener(\"pointermove\", this._onPointerMove);\n\t\tthis._device.canvas.removeEventListener(\"pointerup\", this._onPointerUp);\n\t\tthis._handles.forEach((handle) => handle.off());\n\t\tthis.root.destroy();\n\t}\n};\n\nvar COLOR_RED = Object.freeze(new Color(1, 0.3, 0.3));\nvar COLOR_GREEN = Object.freeze(new Color(0.3, 1, 0.3));\nvar COLOR_BLUE = Object.freeze(new Color(0.3, 0.3, 1));\nvar COLOR_YELLOW = Object.freeze(new Color(1, 1, 0.5));\nvar COLOR_GRAY = Object.freeze(new Color(0.5, 0.5, 0.5, 0.5));\nvar color4from3 = (color3, a) => {\n\treturn new Color(color3.r, color3.g, color3.b, a);\n};\n\nvar v1 = new Vec3();\nvar v22 = new Vec3();\nvar point = new Vec3();\nvar ray2 = new Ray();\nvar plane = new Plane();\nvar color = new Color();\nvar AXES = [\"x\", \"y\", \"z\"];\nvar TransformGizmo = class _TransformGizmo extends Gizmo {\n\tstatic EVENT_TRANSFORMSTART = \"transform:start\";\n\tstatic EVENT_TRANSFORMMOVE = \"transform:move\";\n\tstatic EVENT_TRANSFORMEND = \"transform:end\";\n\t_theme = {\n\t\tshapeBase: {\n\t\t\tx: COLOR_RED.clone(),\n\t\t\ty: COLOR_GREEN.clone(),\n\t\t\tz: COLOR_BLUE.clone(),\n\t\t\txyz: new Color(0.8, 0.8, 0.8, 1),\n\t\t\tf: new Color(0.8, 0.8, 0.8, 1)\n\t\t},\n\t\tshapeHover: {\n\t\t\tx: new Color().lerp(COLOR_RED, Color.WHITE, 0.75),\n\t\t\ty: new Color().lerp(COLOR_GREEN, Color.WHITE, 0.75),\n\t\t\tz: new Color().lerp(COLOR_BLUE, Color.WHITE, 0.75),\n\t\t\txyz: Color.WHITE.clone(),\n\t\t\tf: Color.WHITE.clone()\n\t\t},\n\t\tguideBase: {\n\t\t\tx: COLOR_RED.clone(),\n\t\t\ty: COLOR_GREEN.clone(),\n\t\t\tz: COLOR_BLUE.clone()\n\t\t},\n\t\tguideOcclusion: 0.8,\n\t\tdisabled: COLOR_GRAY.clone()\n\t};\n\t_rootStartPos = new Vec3();\n\t_rootStartRot = new Quat();\n\t_shapes = {};\n\t_shapeMap = /* @__PURE__ */ new Map();\n\t_hovering = /* @__PURE__ */ new Set();\n\t_hoverAxis = \"\";\n\t_hoverIsPlane = false;\n\t_selectedAxis = \"\";\n\t_selectedIsPlane = false;\n\t_selectionStartPoint = new Vec3();\n\tsnap = false;\n\tsnapIncrement = 1;\n\tdragMode = \"selected\";\n\tconstructor(camera, layer, name = \"gizmo:transform\") {\n\t\tsuper(camera, layer, name);\n\t\tthis.on(Gizmo.EVENT_POINTERDOWN, (x3, y2, meshInstance) => {\n\t\t\tconst shape = this._shapeMap.get(meshInstance);\n\t\t\tif (shape?.disabled) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (this._dragging) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (!meshInstance) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis._hoverAxis = \"\";\n\t\t\tthis._hoverIsPlane = false;\n\t\t\tthis._selectedAxis = this._getAxis(meshInstance);\n\t\t\tthis._selectedIsPlane = this._getIsPlane(meshInstance);\n\t\t\tthis._rootStartPos.copy(this.root.getLocalPosition());\n\t\t\tthis._rootStartRot.copy(this.root.getRotation());\n\t\t\tconst point5 = this._screenToPoint(x3, y2);\n\t\t\tthis._selectionStartPoint.copy(point5);\n\t\t\tthis.fire(_TransformGizmo.EVENT_TRANSFORMSTART, point5, x3, y2);\n\t\t});\n\t\tthis.on(Gizmo.EVENT_POINTERMOVE, (x3, y2, meshInstance) => {\n\t\t\tconst shape = this._shapeMap.get(meshInstance);\n\t\t\tif (shape?.disabled) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis._hover(meshInstance);\n\t\t\tif (!this._dragging) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst point5 = this._screenToPoint(x3, y2);\n\t\t\tthis.fire(_TransformGizmo.EVENT_TRANSFORMMOVE, point5, x3, y2);\n\t\t});\n\t\tthis.on(Gizmo.EVENT_POINTERUP, (_x, _y, meshInstance) => {\n\t\t\tthis._hover(meshInstance);\n\t\t\tif (!this._dragging) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (meshInstance) {\n\t\t\t\tthis._hoverAxis = this._selectedAxis;\n\t\t\t\tthis._hoverIsPlane = this._selectedIsPlane;\n\t\t\t}\n\t\t\tthis._selectedAxis = \"\";\n\t\t\tthis._selectedIsPlane = false;\n\t\t\tthis.fire(_TransformGizmo.EVENT_TRANSFORMEND);\n\t\t});\n\t\tthis.on(Gizmo.EVENT_NODESDETACH, () => {\n\t\t\tthis._hoverAxis = \"\";\n\t\t\tthis._hoverIsPlane = false;\n\t\t\tthis._hover();\n\t\t\tthis.fire(Gizmo.EVENT_POINTERUP);\n\t\t});\n\t}\n\tget theme() {\n\t\treturn this._theme;\n\t}\n\tset xAxisColor(value) {\n\t\tthis.setTheme({\n\t\t\tshapeBase: {\n\t\t\t\tx: value\n\t\t\t},\n\t\t\tshapeHover: {\n\t\t\t\tx: color4from3(value, this.colorAlpha)\n\t\t\t},\n\t\t\tguideBase: {\n\t\t\t\tx: value\n\t\t\t},\n\t\t\tguideOcclusion: 1\n\t\t});\n\t}\n\tget xAxisColor() {\n\t\treturn this._theme.shapeBase.x;\n\t}\n\tset yAxisColor(value) {\n\t\tthis.setTheme({\n\t\t\tshapeBase: {\n\t\t\t\ty: value\n\t\t\t},\n\t\t\tshapeHover: {\n\t\t\t\ty: color4from3(value, this.colorAlpha)\n\t\t\t},\n\t\t\tguideBase: {\n\t\t\t\ty: value\n\t\t\t},\n\t\t\tguideOcclusion: 1\n\t\t});\n\t}\n\tget yAxisColor() {\n\t\treturn this._theme.shapeBase.y;\n\t}\n\tset zAxisColor(value) {\n\t\tthis.setTheme({\n\t\t\tshapeBase: {\n\t\t\t\tz: value\n\t\t\t},\n\t\t\tshapeHover: {\n\t\t\t\tz: color4from3(value, this.colorAlpha)\n\t\t\t},\n\t\t\tguideBase: {\n\t\t\t\tz: value\n\t\t\t},\n\t\t\tguideOcclusion: 1\n\t\t});\n\t}\n\tget zAxisColor() {\n\t\treturn this._theme.shapeBase.z;\n\t}\n\tset colorAlpha(value) {\n\t\tthis.setTheme({\n\t\t\tshapeHover: {\n\t\t\t\tx: color4from3(this._theme.shapeHover.x, value),\n\t\t\t\ty: color4from3(this._theme.shapeHover.y, value),\n\t\t\t\tz: color4from3(this._theme.shapeHover.z, value),\n\t\t\t\txyz: color4from3(this._theme.shapeHover.xyz, value),\n\t\t\t\tf: color4from3(this._theme.shapeHover.f, value)\n\t\t\t}\n\t\t});\n\t}\n\tget colorAlpha() {\n\t\treturn (this._theme.shapeHover.x.a + this._theme.shapeHover.y.a + this._theme.shapeHover.z.a + this._theme.shapeHover.xyz.a + this._theme.shapeHover.f.a) / 5;\n\t}\n\tget _dragging() {\n\t\treturn !this._hoverAxis && !!this._selectedAxis;\n\t}\n\t_getAxis(meshInstance) {\n\t\tif (!meshInstance) {\n\t\t\treturn \"\";\n\t\t}\n\t\treturn meshInstance.node.name.split(\":\")[1];\n\t}\n\t_getIsPlane(meshInstance) {\n\t\tif (!meshInstance) {\n\t\t\treturn false;\n\t\t}\n\t\treturn meshInstance.node.name.indexOf(\"plane\") !== -1;\n\t}\n\t_hover(meshInstance) {\n\t\tif (this._dragging) {\n\t\t\treturn;\n\t\t}\n\t\tconst remove = new Set(this._hovering);\n\t\tlet changed = false;\n\t\tconst add = (axis) => {\n\t\t\tif (remove.has(axis)) {\n\t\t\t\tremove.delete(axis);\n\t\t\t} else {\n\t\t\t\tthis._hovering.add(axis);\n\t\t\t\tthis._shapes[axis]?.hover(true);\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t};\n\t\tthis._hoverAxis = this._getAxis(meshInstance);\n\t\tthis._hoverIsPlane = this._getIsPlane(meshInstance);\n\t\tif (this._hoverAxis) {\n\t\t\tif (this._hoverAxis === \"xyz\") {\n\t\t\t\tadd(\"x\");\n\t\t\t\tadd(\"y\");\n\t\t\t\tadd(\"z\");\n\t\t\t\tadd(\"xyz\");\n\t\t\t} else if (this._hoverIsPlane) {\n\t\t\t\tswitch (this._hoverAxis) {\n\t\t\t\t\tcase \"x\":\n\t\t\t\t\t\tadd(\"y\");\n\t\t\t\t\t\tadd(\"z\");\n\t\t\t\t\t\tadd(\"yz\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"y\":\n\t\t\t\t\t\tadd(\"x\");\n\t\t\t\t\t\tadd(\"z\");\n\t\t\t\t\t\tadd(\"xz\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"z\":\n\t\t\t\t\t\tadd(\"x\");\n\t\t\t\t\t\tadd(\"y\");\n\t\t\t\t\t\tadd(\"xy\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tadd(this._hoverAxis);\n\t\t\t}\n\t\t}\n\t\tfor (const axis of remove) {\n\t\t\tthis._hovering.delete(axis);\n\t\t\tthis._shapes[axis]?.hover(false);\n\t\t\tchanged = true;\n\t\t}\n\t\tif (changed) {\n\t\t\tthis._renderUpdate = true;\n\t\t}\n\t}\n\t_createRay(mouseWPos) {\n\t\tif (this._camera.projection === PROJECTION_PERSPECTIVE) {\n\t\t\tray2.origin.copy(this._camera.entity.getPosition());\n\t\t\tray2.direction.sub2(mouseWPos, ray2.origin).normalize();\n\t\t\treturn ray2;\n\t\t}\n\t\tconst orthoDepth = this._camera.farClip - this._camera.nearClip;\n\t\tray2.origin.sub2(mouseWPos, v1.copy(this._camera.entity.forward).mulScalar(orthoDepth));\n\t\tray2.direction.copy(this._camera.entity.forward);\n\t\treturn ray2;\n\t}\n\t_createPlane(axis, isFacing, isLine) {\n\t\tconst facingDir = v1.copy(this.facingDir);\n\t\tconst normal = plane.normal.set(0, 0, 0);\n\t\tif (isFacing) {\n\t\t\tnormal.copy(this._camera.entity.forward).mulScalar(-1);\n\t\t} else {\n\t\t\tnormal[axis] = 1;\n\t\t\tthis._rootStartRot.transformVector(normal, normal);\n\t\t\tif (isLine) {\n\t\t\t\tv22.cross(normal, facingDir).normalize();\n\t\t\t\tnormal.cross(v22, normal).normalize();\n\t\t\t}\n\t\t}\n\t\treturn plane.setFromPointNormal(this._rootStartPos, normal);\n\t}\n\t_dirFromAxis(axis, dir4) {\n\t\tif (axis === \"f\") {\n\t\t\tdir4.copy(this._camera.entity.forward).mulScalar(-1);\n\t\t} else {\n\t\t\tdir4.set(0, 0, 0);\n\t\t\tdir4[axis] = 1;\n\t\t}\n\t\treturn dir4;\n\t}\n\t_projectToAxis(point5, axis) {\n\t\tv1.set(0, 0, 0);\n\t\tv1[axis] = 1;\n\t\tpoint5.copy(v1.mulScalar(v1.dot(point5)));\n\t\tconst v6 = point5[axis];\n\t\tpoint5.set(0, 0, 0);\n\t\tpoint5[axis] = v6;\n\t}\n\t_screenToPoint(x3, y2, isFacing = false, isLine = false) {\n\t\tconst mouseWPos = this._camera.screenToWorld(x3, y2, 1);\n\t\tconst axis = this._selectedAxis;\n\t\tconst ray3 = this._createRay(mouseWPos);\n\t\tconst plane2 = this._createPlane(axis, isFacing, isLine);\n\t\tif (!plane2.intersectsRay(ray3, point)) {\n\t\t\treturn point;\n\t\t}\n\t\treturn point;\n\t}\n\t_drawGuideLines(pos, rot, activeAxis, activeIsPlane) {\n\t\tfor (const axis of AXES) {\n\t\t\tif (activeAxis === \"xyz\") {\n\t\t\t\tthis._drawSpanLine(pos, rot, axis);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (activeIsPlane) {\n\t\t\t\tif (axis !== activeAxis) {\n\t\t\t\t\tthis._drawSpanLine(pos, rot, axis);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (axis === activeAxis) {\n\t\t\t\t\tthis._drawSpanLine(pos, rot, axis);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t_drawSpanLine(pos, rot, axis) {\n\t\tconst dir4 = this._dirFromAxis(axis, v1);\n\t\tconst base = this._theme.guideBase[axis];\n\t\tconst from = v1.copy(dir4).mulScalar(this._camera.farClip - this._camera.nearClip);\n\t\tconst to = v22.copy(from).mulScalar(-1);\n\t\trot.transformVector(from, from).add(pos);\n\t\trot.transformVector(to, to).add(pos);\n\t\tif (this._theme.guideOcclusion < 1) {\n\t\t\tconst occluded = color.copy(base);\n\t\t\toccluded.a *= 1 - this._theme.guideOcclusion;\n\t\t\tthis._app.drawLine(from, to, occluded, false, this._layer);\n\t\t}\n\t\tif (base.a !== 0) {\n\t\t\tthis._app.drawLine(from, to, base, true);\n\t\t}\n\t}\n\t_createTransform() {\n\t\tfor (const key in this._shapes) {\n\t\t\tconst shape = this._shapes[key];\n\t\t\tthis.root.addChild(shape.entity);\n\t\t\tthis.intersectShapes.push(shape);\n\t\t\tfor (let i2 = 0; i2 < shape.meshInstances.length; i2++) {\n\t\t\t\tthis._shapeMap.set(shape.meshInstances[i2], shape);\n\t\t\t}\n\t\t}\n\t}\n\tenableShape(shapeAxis, enabled) {\n\t\tif (shapeAxis === \"face\") {\n\t\t\tshapeAxis = \"f\";\n\t\t}\n\t\tconst shape = this._shapes[shapeAxis];\n\t\tif (!shape) {\n\t\t\treturn;\n\t\t}\n\t\tshape.disabled = !enabled;\n\t}\n\tisShapeEnabled(shapeAxis) {\n\t\tif (shapeAxis === \"face\") {\n\t\t\tshapeAxis = \"f\";\n\t\t}\n\t\tconst shape = this._shapes[shapeAxis];\n\t\tif (!shape) {\n\t\t\treturn false;\n\t\t}\n\t\treturn !shape.disabled;\n\t}\n\tsetTheme(partial) {\n\t\tconst theme = { ...this._theme, ...partial };\n\t\tif (typeof theme !== \"object\" || typeof theme.shapeBase !== \"object\" || typeof theme.shapeHover !== \"object\" || typeof theme.guideBase !== \"object\") {\n\t\t\treturn;\n\t\t}\n\t\tfor (const axis in theme.shapeBase) {\n\t\t\tif (theme.shapeBase[axis] instanceof Color) {\n\t\t\t\tthis._theme.shapeBase[axis].copy(theme.shapeBase[axis]);\n\t\t\t}\n\t\t}\n\t\tfor (const axis in theme.shapeHover) {\n\t\t\tif (theme.shapeHover[axis] instanceof Color) {\n\t\t\t\tthis._theme.shapeHover[axis].copy(theme.shapeHover[axis]);\n\t\t\t}\n\t\t}\n\t\tfor (const axis in theme.guideBase) {\n\t\t\tif (theme.guideBase[axis] instanceof Color) {\n\t\t\t\tthis._theme.guideBase[axis].copy(theme.guideBase[axis]);\n\t\t\t}\n\t\t}\n\t\tif (typeof theme.guideOcclusion === \"number\") {\n\t\t\tthis._theme.guideOcclusion = math.clamp(theme.guideOcclusion, 0, 1);\n\t\t}\n\t\tif (theme.disabled instanceof Color) {\n\t\t\tthis._theme.disabled.copy(theme.disabled);\n\t\t}\n\t\tfor (const name in this._shapes) {\n\t\t\tthis._shapes[name].hover(!!this._hoverAxis);\n\t\t}\n\t}\n\tprerender() {\n\t\tsuper.prerender();\n\t\tif (!this.enabled) {\n\t\t\treturn;\n\t\t}\n\t\tconst gizmoPos = this.root.getLocalPosition();\n\t\tconst gizmoRot = this.root.getRotation();\n\t\tconst activeAxis = this._hoverAxis || this._selectedAxis;\n\t\tconst activeIsPlane = this._hoverIsPlane || this._selectedIsPlane;\n\t\tthis._drawGuideLines(gizmoPos, gizmoRot, activeAxis, activeIsPlane);\n\t}\n\tdestroy() {\n\t\tsuper.destroy();\n\t\tfor (const key in this._shapes) {\n\t\t\tthis._shapes[key].destroy();\n\t\t}\n\t}\n};\n\nvar tmpV12 = new Vec3();\nvar tmpV2 = new Vec3();\nvar tmpV3 = new Vec3();\nvar TriData = class {\n\t_priority = 0;\n\t_transform = new Mat4();\n\ttris = [];\n\tconstructor(geometry, priority = 0) {\n\t\tthis.fromGeometry(geometry);\n\t\tthis._priority = priority;\n\t}\n\tget transform() {\n\t\treturn this._transform;\n\t}\n\tget priority() {\n\t\treturn this._priority;\n\t}\n\tsetTransform(pos = new Vec3(), rot = new Quat(), scale2 = new Vec3()) {\n\t\tthis.transform.setTRS(pos, rot, scale2);\n\t}\n\tfromGeometry(geometry) {\n\t\tif (!geometry || !(geometry instanceof Geometry)) {\n\t\t\tthrow new Error(\"No geometry provided.\");\n\t\t}\n\t\tconst positions = geometry.positions ?? [];\n\t\tconst indices = geometry.indices ?? [];\n\t\tthis.tris = [];\n\t\tfor (let k = 0; k < indices.length; k += 3) {\n\t\t\tconst i1 = indices[k];\n\t\t\tconst i2 = indices[k + 1];\n\t\t\tconst i3 = indices[k + 2];\n\t\t\ttmpV12.set(positions[i1 * 3], positions[i1 * 3 + 1], positions[i1 * 3 + 2]);\n\t\t\ttmpV2.set(positions[i2 * 3], positions[i2 * 3 + 1], positions[i2 * 3 + 2]);\n\t\t\ttmpV3.set(positions[i3 * 3], positions[i3 * 3 + 1], positions[i3 * 3 + 2]);\n\t\t\tconst tri = new Tri(tmpV12, tmpV2, tmpV3);\n\t\t\tthis.tris.push(tri);\n\t\t}\n\t}\n};\n\nvar unlitShader = {\n\tuniqueName: \"gizmo-unlit\",\n\tattributes: {\n\t\tvertex_position: SEMANTIC_POSITION\n\t},\n\tvertexGLSL: `\n\t\tattribute vec3 vertex_position;\n\t\n\t\tuniform mat4 matrix_model;\n\t\tuniform mat4 matrix_viewProjection;\n\t\n\t\tvoid main(void) {\n\t\t\tgl_Position = matrix_viewProjection * matrix_model * vec4(vertex_position, 1.0);\n\t\t\tgl_Position.z = clamp(gl_Position.z, -abs(gl_Position.w), abs(gl_Position.w));\n\t\t}\n\t`,\n\tfragmentGLSL: `\n\t\t#include \"gammaPS\"\n\t\n\t\tprecision highp float;\n\t\n\t\tuniform vec4 uColor;\n\t\tuniform float uDepth;\n\t\tvoid main(void) {\n\t\t\tif (uColor.a < 1.0 / 255.0) {\n\t\t\t\tdiscard;\n\t\t\t}\n\t\t\tgl_FragColor = vec4(gammaCorrectOutput(decodeGamma(uColor)), uColor.a);\n\t\t\t#if DEPTH_WRITE == 1\n\t\t\t\tgl_FragDepth = uDepth;\n\t\t\t#endif\n\t\t}\n\t`,\n\tvertexWGSL: `\n\t\tattribute vertex_position: vec3f;\n\t\tuniform matrix_model: mat4x4f;\n\t\tuniform matrix_viewProjection: mat4x4f;\n\t\t@vertex\n\t\tfn vertexMain(input: VertexInput) -> VertexOutput {\n\t\t\tvar output: VertexOutput;\n\t\t\tlet pos = vec4f(input.vertex_position, 1.0);\n\t\t\toutput.position = uniform.matrix_viewProjection * uniform.matrix_model * pos;\n\t\t\toutput.position.z = clamp(output.position.z, -abs(output.position.w), abs(output.position.w));\n\t\t\treturn output;\n\t\t}\n\t`,\n\tfragmentWGSL: `\n\t\t#include \"gammaPS\"\n\t\tuniform uColor: vec4f;\n\t\tuniform uDepth: f32;\n\t\t@fragment\n\t\tfn fragmentMain(input: FragmentInput) -> FragmentOutput {\n\t\t\tvar output: FragmentOutput;\n\t\t\tif (uniform.uColor.a < 1.0 / 255.0) {\n\t\t\t\tdiscard;\n\t\t\t}\n\t\t\toutput.color = vec4f(gammaCorrectOutput(decodeGamma(uniform.uColor)), uniform.uColor.a);\n\t\t\t#if DEPTH_WRITE == 1\n\t\t\t\toutput.fragDepth = uniform.uDepth;\n\t\t\t#endif\n\t\t\treturn output;\n\t\t}\n\t`\n};\n\nvar tmpG = new Geometry();\ntmpG.positions = [];\ntmpG.normals = [];\nvar Shape = class {\n\t_position = new Vec3();\n\t_rotation = new Vec3();\n\t_scale = new Vec3(1, 1, 1);\n\t_layers = [];\n\t_material = new ShaderMaterial(unlitShader);\n\t_disabled = false;\n\t_visible = true;\n\t_defaultColor = Color.WHITE;\n\t_hoverColor = Color.BLACK;\n\t_disabledColor = COLOR_GRAY;\n\t_cull = CULLFACE_BACK;\n\t_depth = -1;\n\tdevice;\n\taxis;\n\tentity;\n\ttriData = [];\n\tmeshInstances = [];\n\tconstructor(device, name, args) {\n\t\tthis.device = device;\n\t\tthis.axis = args.axis ?? \"x\";\n\t\tif (args.position instanceof Vec3) {\n\t\t\tthis._position.copy(args.position);\n\t\t}\n\t\tif (args.rotation instanceof Vec3) {\n\t\t\tthis._rotation.copy(args.rotation);\n\t\t}\n\t\tif (args.scale instanceof Vec3) {\n\t\t\tthis._scale.copy(args.scale);\n\t\t}\n\t\tthis._disabled = args.disabled ?? this._disabled;\n\t\tthis._visible = args.visible ?? this._visible;\n\t\tthis._layers = args.layers ?? this._layers;\n\t\tif (args.defaultColor instanceof Color) {\n\t\t\tthis._defaultColor = args.defaultColor;\n\t\t}\n\t\tif (args.hoverColor instanceof Color) {\n\t\t\tthis._hoverColor = args.hoverColor;\n\t\t}\n\t\tif (args.disabledColor instanceof Color) {\n\t\t\tthis._disabledColor = args.disabledColor;\n\t\t}\n\t\tthis._cull = args.cull ?? this._cull;\n\t\tthis._depth = args.depth ?? this._depth;\n\t\tthis.entity = new Entity(`${name}:${this.axis}`);\n\t\tthis.entity.setLocalPosition(this._position);\n\t\tthis.entity.setLocalEulerAngles(this._rotation);\n\t\tthis.entity.setLocalScale(this._scale);\n\t}\n\tset disabled(value) {\n\t\tthis._disabled = value ?? false;\n\t\tthis.hover(false);\n\t}\n\tget disabled() {\n\t\treturn this._disabled;\n\t}\n\tset visible(value) {\n\t\tif (value === this._visible) {\n\t\t\treturn;\n\t\t}\n\t\tfor (let i2 = 0; i2 < this.meshInstances.length; i2++) {\n\t\t\tthis.meshInstances[i2].visible = value;\n\t\t}\n\t\tthis._visible = value;\n\t}\n\tget visible() {\n\t\treturn this._visible;\n\t}\n\t_createRenderComponent(entity, meshes) {\n\t\tconst color3 = this._disabled ? this._disabledColor : this._defaultColor;\n\t\tthis._material.setDefine(\"DEPTH_WRITE\", this._depth > 0 ? \"1\" : \"0\");\n\t\tthis._material.setParameter(\"uDepth\", this._depth);\n\t\tthis._material.setParameter(\"uColor\", color3.toArray());\n\t\tthis._material.cull = this._cull;\n\t\tthis._material.blendType = BLEND_NORMAL;\n\t\tthis._material.update();\n\t\tconst meshInstances = [];\n\t\tfor (let i2 = 0; i2 < meshes.length; i2++) {\n\t\t\tconst mi = new MeshInstance(meshes[i2], this._material);\n\t\t\tmi.cull = false;\n\t\t\tmeshInstances.push(mi);\n\t\t\tthis.meshInstances.push(mi);\n\t\t}\n\t\tentity.addComponent(\"render\", {\n\t\t\tmeshInstances,\n\t\t\tlayers: this._layers,\n\t\t\tcastShadows: false\n\t\t});\n\t}\n\t_update() {\n\t\tthis.entity.setLocalPosition(this._position);\n\t\tthis.entity.setLocalEulerAngles(this._rotation);\n\t\tthis.entity.setLocalScale(this._scale);\n\t}\n\thover(state) {\n\t\tconst color3 = this._disabled ? this._disabledColor : state ? this._hoverColor : this._defaultColor;\n\t\tthis._material.setParameter(\"uColor\", color3.toArray());\n\t}\n\tdestroy() {\n\t\tthis.entity.destroy();\n\t}\n};\n\nvar UPDATE_EPSILON2 = 1e-6;\nvar PlaneShape = class extends Shape {\n\t_cull = CULLFACE_NONE;\n\t_size = 0.16;\n\t_gap = 0;\n\t_flipped = new Vec3();\n\tconstructor(device, args = {}) {\n\t\tsuper(device, \"plane\", args);\n\t\tthis._size = args.size ?? this._size;\n\t\tthis._gap = args.gap ?? this._gap;\n\t\tthis.triData = [\n\t\t\tnew TriData(new PlaneGeometry())\n\t\t];\n\t\tthis._createRenderComponent(this.entity, [\n\t\t\tMesh.fromGeometry(this.device, new PlaneGeometry())\n\t\t]);\n\t\tthis._update();\n\t}\n\tset size(value) {\n\t\tthis._size = value ?? this._size;\n\t\tthis._update();\n\t}\n\tget size() {\n\t\treturn this._size;\n\t}\n\tset gap(value) {\n\t\tthis._gap = value ?? this._gap;\n\t\tthis._update();\n\t}\n\tget gap() {\n\t\treturn this._gap;\n\t}\n\tset flipped(value) {\n\t\tif (this._flipped.distance(value) < UPDATE_EPSILON2) {\n\t\t\treturn;\n\t\t}\n\t\tthis._flipped.copy(value);\n\t\tthis._update();\n\t}\n\tget flipped() {\n\t\treturn this._flipped;\n\t}\n\t_update() {\n\t\tconst offset3 = this._size / 2 + this._gap;\n\t\tthis._position.set(\n\t\t\tthis._flipped.x ? -offset3 : offset3,\n\t\t\tthis._flipped.y ? -offset3 : offset3,\n\t\t\tthis._flipped.z ? -offset3 : offset3\n\t\t);\n\t\tthis._position[this.axis] = 0;\n\t\tthis.entity.setLocalPosition(this._position);\n\t\tthis.entity.setLocalEulerAngles(this._rotation);\n\t\tthis.entity.setLocalScale(this._size, this._size, this._size);\n\t}\n};\n\nvar tmpV13 = new Vec3();\nvar tmpV22 = new Vec3();\nvar tmpQ1 = new Quat();\nvar ArrowShape = class extends Shape {\n\t_gap = 0;\n\t_lineThickness = 0.02;\n\t_lineLength = 0.5;\n\t_arrowThickness = 0.12;\n\t_arrowLength = 0.18;\n\t_tolerance = 0.1;\n\t_head;\n\t_line;\n\tconstructor(device, args = {}) {\n\t\tsuper(device, \"arrow\", args);\n\t\tthis._gap = args.gap ?? this._gap;\n\t\tthis._lineThickness = args.lineThickness ?? this._lineThickness;\n\t\tthis._lineLength = args.lineLength ?? this._lineLength;\n\t\tthis._arrowThickness = args.arrowThickness ?? this._arrowThickness;\n\t\tthis._arrowLength = args.arrowLength ?? this._arrowLength;\n\t\tthis._tolerance = args.tolerance ?? this._tolerance;\n\t\tthis.triData = [\n\t\t\tnew TriData(new ConeGeometry()),\n\t\t\tnew TriData(new CylinderGeometry(), 1)\n\t\t];\n\t\tthis._head = new Entity(`head:${this.axis}`);\n\t\tthis.entity.addChild(this._head);\n\t\tthis._createRenderComponent(this._head, [\n\t\t\tMesh.fromGeometry(this.device, new ConeGeometry())\n\t\t]);\n\t\tthis._line = new Entity(`line:${this.axis}`);\n\t\tthis.entity.addChild(this._line);\n\t\tthis._createRenderComponent(this._line, [\n\t\t\tMesh.fromGeometry(this.device, new CylinderGeometry())\n\t\t]);\n\t\tthis._update();\n\t}\n\tset gap(value) {\n\t\tthis._gap = value ?? this._gap;\n\t\tthis._update();\n\t}\n\tget gap() {\n\t\treturn this._gap;\n\t}\n\tset lineThickness(value) {\n\t\tthis._lineThickness = value ?? this._lineThickness;\n\t\tthis._update();\n\t}\n\tget lineThickness() {\n\t\treturn this._lineThickness;\n\t}\n\tset lineLength(value) {\n\t\tthis._lineLength = value ?? this._lineLength;\n\t\tthis._update();\n\t}\n\tget lineLength() {\n\t\treturn this._lineLength;\n\t}\n\tset arrowThickness(value) {\n\t\tthis._arrowThickness = value ?? this._arrowThickness;\n\t\tthis._update();\n\t}\n\tget arrowThickness() {\n\t\treturn this._arrowThickness;\n\t}\n\tset arrowLength(value) {\n\t\tthis._arrowLength = value ?? this._arrowLength;\n\t\tthis._update();\n\t}\n\tget arrowLength() {\n\t\treturn this._arrowLength;\n\t}\n\tset tolerance(value) {\n\t\tthis._tolerance = value;\n\t\tthis._update();\n\t}\n\tget tolerance() {\n\t\treturn this._tolerance;\n\t}\n\t_update() {\n\t\ttmpV13.set(0, this._gap + this._arrowLength * 0.5 + this._lineLength, 0);\n\t\ttmpQ1.set(0, 0, 0, 1);\n\t\ttmpV22.set(this._arrowThickness, this._arrowLength, this._arrowThickness);\n\t\tthis.triData[0].setTransform(tmpV13, tmpQ1, tmpV22);\n\t\ttmpV13.set(0, this._gap + this._lineLength * 0.5, 0);\n\t\ttmpQ1.set(0, 0, 0, 1);\n\t\ttmpV22.set(this._lineThickness + this._tolerance, this._lineLength, this._lineThickness + this._tolerance);\n\t\tthis.triData[1].setTransform(tmpV13, tmpQ1, tmpV22);\n\t\tthis._head.setLocalPosition(0, this._gap + this._arrowLength * 0.5 + this._lineLength, 0);\n\t\tthis._head.setLocalScale(this._arrowThickness, this._arrowLength, this._arrowThickness);\n\t\tthis._line.setLocalPosition(0, this._gap + this._lineLength * 0.5, 0);\n\t\tthis._line.setLocalScale(this._lineThickness, this._lineLength, this._lineThickness);\n\t}\n};\n\nvar SphereShape = class extends Shape {\n\t_radius = 0.03;\n\tconstructor(device, args = {}) {\n\t\tsuper(device, \"sphereCenter\", args);\n\t\tthis._radius = args.radius ?? this._radius;\n\t\tthis.triData = [\n\t\t\tnew TriData(new SphereGeometry(), 2)\n\t\t];\n\t\tthis._createRenderComponent(this.entity, [\n\t\t\tMesh.fromGeometry(this.device, new SphereGeometry({\n\t\t\t\tlatitudeBands: 32,\n\t\t\t\tlongitudeBands: 32\n\t\t\t}))\n\t\t]);\n\t\tthis._update();\n\t}\n\tset radius(value) {\n\t\tthis._radius = value ?? this._radius;\n\t\tthis._update();\n\t}\n\tget radius() {\n\t\treturn this._radius;\n\t}\n\t_update() {\n\t\tconst scale2 = this._radius * 2;\n\t\tthis.entity.setLocalScale(scale2, scale2, scale2);\n\t}\n};\n\nvar v12 = new Vec3();\nvar v23 = new Vec3();\nvar point2 = new Vec3();\nvar delta = new Vec3();\nvar q3 = new Quat();\nvar GLANCE_EPSILON = 0.01;\nvar AXES2 = [\"x\", \"y\", \"z\"];\nvar TranslateGizmo = class extends TransformGizmo {\n\t_shapes = {\n\t\txyz: new SphereShape(this._device, {\n\t\t\taxis: \"xyz\",\n\t\t\tlayers: [this._layer.id],\n\t\t\tdefaultColor: this._theme.shapeBase.xyz,\n\t\t\thoverColor: this._theme.shapeHover.xyz,\n\t\t\tdisabledColor: this._theme.disabled\n\t\t}),\n\t\tyz: new PlaneShape(this._device, {\n\t\t\taxis: \"x\",\n\t\t\tlayers: [this._layer.id],\n\t\t\trotation: new Vec3(0, 0, -90),\n\t\t\tdefaultColor: this._theme.shapeBase.x,\n\t\t\thoverColor: this._theme.shapeHover.x,\n\t\t\tdisabledColor: this._theme.disabled,\n\t\t\tdepth: 1\n\t\t}),\n\t\txz: new PlaneShape(this._device, {\n\t\t\taxis: \"y\",\n\t\t\tlayers: [this._layer.id],\n\t\t\trotation: new Vec3(0, 0, 0),\n\t\t\tdefaultColor: this._theme.shapeBase.y,\n\t\t\thoverColor: this._theme.shapeHover.y,\n\t\t\tdisabledColor: this._theme.disabled,\n\t\t\tdepth: 1\n\t\t}),\n\t\txy: new PlaneShape(this._device, {\n\t\t\taxis: \"z\",\n\t\t\tlayers: [this._layer.id],\n\t\t\trotation: new Vec3(90, 0, 0),\n\t\t\tdefaultColor: this._theme.shapeBase.z,\n\t\t\thoverColor: this._theme.shapeHover.z,\n\t\t\tdisabledColor: this._theme.disabled,\n\t\t\tdepth: 1\n\t\t}),\n\t\tx: new ArrowShape(this._device, {\n\t\t\taxis: \"x\",\n\t\t\tlayers: [this._layer.id],\n\t\t\trotation: new Vec3(0, 0, -90),\n\t\t\tdefaultColor: this._theme.shapeBase.x,\n\t\t\thoverColor: this._theme.shapeHover.x,\n\t\t\tdisabledColor: this._theme.disabled\n\t\t}),\n\t\ty: new ArrowShape(this._device, {\n\t\t\taxis: \"y\",\n\t\t\tlayers: [this._layer.id],\n\t\t\trotation: new Vec3(0, 0, 0),\n\t\t\tdefaultColor: this._theme.shapeBase.y,\n\t\t\thoverColor: this._theme.shapeHover.y,\n\t\t\tdisabledColor: this._theme.disabled\n\t\t}),\n\t\tz: new ArrowShape(this._device, {\n\t\t\taxis: \"z\",\n\t\t\tlayers: [this._layer.id],\n\t\t\trotation: new Vec3(90, 0, 0),\n\t\t\tdefaultColor: this._theme.shapeBase.z,\n\t\t\thoverColor: this._theme.shapeHover.z,\n\t\t\tdisabledColor: this._theme.disabled\n\t\t})\n\t};\n\t_nodeLocalPositions = /* @__PURE__ */ new Map();\n\t_nodePositions = /* @__PURE__ */ new Map();\n\tsnapIncrement = 1;\n\tflipPlanes = true;\n\tconstructor(camera, layer) {\n\t\tsuper(camera, layer, \"gizmo:translate\");\n\t\tthis._createTransform();\n\t\tthis.on(TransformGizmo.EVENT_TRANSFORMSTART, () => {\n\t\t\tthis._storeNodePositions();\n\t\t\tthis._drag(true);\n\t\t});\n\t\tthis.on(TransformGizmo.EVENT_TRANSFORMMOVE, (point5) => {\n\t\t\tconst translateDelta = delta.copy(point5).sub(this._selectionStartPoint);\n\t\t\tif (this.snap) {\n\t\t\t\ttranslateDelta.mulScalar(1 / this.snapIncrement);\n\t\t\t\ttranslateDelta.round();\n\t\t\t\ttranslateDelta.mulScalar(this.snapIncrement);\n\t\t\t}\n\t\t\tthis._setNodePositions(translateDelta);\n\t\t});\n\t\tthis.on(TransformGizmo.EVENT_TRANSFORMEND, () => {\n\t\t\tthis._drag(false);\n\t\t});\n\t\tthis.on(TransformGizmo.EVENT_NODESDETACH, () => {\n\t\t\tthis._nodeLocalPositions.clear();\n\t\t\tthis._nodePositions.clear();\n\t\t});\n\t}\n\tset axisGap(value) {\n\t\tthis._setArrowProp(\"gap\", value);\n\t}\n\tget axisGap() {\n\t\treturn this._shapes.x.gap;\n\t}\n\tset axisLineThickness(value) {\n\t\tthis._setArrowProp(\"lineThickness\", value);\n\t}\n\tget axisLineThickness() {\n\t\treturn this._shapes.x.lineThickness;\n\t}\n\tset axisLineLength(value) {\n\t\tthis._setArrowProp(\"lineLength\", value);\n\t}\n\tget axisLineLength() {\n\t\treturn this._shapes.x.lineLength;\n\t}\n\tset axisLineTolerance(value) {\n\t\tthis._setArrowProp(\"tolerance\", value);\n\t}\n\tget axisLineTolerance() {\n\t\treturn this._shapes.x.tolerance;\n\t}\n\tset axisArrowThickness(value) {\n\t\tthis._setArrowProp(\"arrowThickness\", value);\n\t}\n\tget axisArrowThickness() {\n\t\treturn this._shapes.x.arrowThickness;\n\t}\n\tset axisArrowLength(value) {\n\t\tthis._setArrowProp(\"arrowLength\", value);\n\t}\n\tget axisArrowLength() {\n\t\treturn this._shapes.x.arrowLength;\n\t}\n\tset axisPlaneSize(value) {\n\t\tthis._setPlaneProp(\"size\", value);\n\t}\n\tget axisPlaneSize() {\n\t\treturn this._shapes.yz.size;\n\t}\n\tset axisPlaneGap(value) {\n\t\tthis._setPlaneProp(\"gap\", value);\n\t}\n\tget axisPlaneGap() {\n\t\treturn this._shapes.yz.gap;\n\t}\n\tset axisCenterSize(value) {\n\t\tthis._shapes.xyz.radius = value;\n\t}\n\tget axisCenterSize() {\n\t\treturn this._shapes.xyz.radius;\n\t}\n\tset flipShapes(value) {\n\t\tthis.flipPlanes = value;\n\t}\n\tget flipShapes() {\n\t\treturn this.flipPlanes;\n\t}\n\t_setArrowProp(prop, value) {\n\t\tthis._shapes.x[prop] = value;\n\t\tthis._shapes.y[prop] = value;\n\t\tthis._shapes.z[prop] = value;\n\t}\n\t_setPlaneProp(prop, value) {\n\t\tthis._shapes.yz[prop] = value;\n\t\tthis._shapes.xz[prop] = value;\n\t\tthis._shapes.xy[prop] = value;\n\t}\n\t_shapesLookAtCamera() {\n\t\tconst cameraDir = this.cameraDir;\n\t\tlet changed = false;\n\t\tlet dot, enabled;\n\t\tdot = cameraDir.dot(this.root.right);\n\t\tenabled = 1 - Math.abs(dot) > GLANCE_EPSILON;\n\t\tif (this._shapes.x.entity.enabled !== enabled) {\n\t\t\tthis._shapes.x.entity.enabled = enabled;\n\t\t\tchanged = true;\n\t\t}\n\t\tdot = cameraDir.dot(this.root.up);\n\t\tenabled = 1 - Math.abs(dot) > GLANCE_EPSILON;\n\t\tif (this._shapes.y.entity.enabled !== enabled) {\n\t\t\tthis._shapes.y.entity.enabled = enabled;\n\t\t\tchanged = true;\n\t\t}\n\t\tdot = cameraDir.dot(this.root.forward);\n\t\tenabled = 1 - Math.abs(dot) > GLANCE_EPSILON;\n\t\tif (this._shapes.z.entity.enabled !== enabled) {\n\t\t\tthis._shapes.z.entity.enabled = enabled;\n\t\t\tchanged = true;\n\t\t}\n\t\tlet flipped;\n\t\tv12.cross(cameraDir, this.root.right);\n\t\tenabled = 1 - v12.length() > GLANCE_EPSILON;\n\t\tif (this._shapes.yz.entity.enabled !== enabled) {\n\t\t\tthis._shapes.yz.entity.enabled = enabled;\n\t\t\tchanged = true;\n\t\t}\n\t\tflipped = this.flipPlanes ? v23.set(0, +(v12.dot(this.root.forward) < 0), +(v12.dot(this.root.up) < 0)) : Vec3.ZERO;\n\t\tif (!this._shapes.yz.flipped.equals(flipped)) {\n\t\t\tthis._shapes.yz.flipped = flipped;\n\t\t\tchanged = true;\n\t\t}\n\t\tv12.cross(cameraDir, this.root.forward);\n\t\tenabled = 1 - v12.length() > GLANCE_EPSILON;\n\t\tif (this._shapes.xy.entity.enabled !== enabled) {\n\t\t\tthis._shapes.xy.entity.enabled = enabled;\n\t\t\tchanged = true;\n\t\t}\n\t\tflipped = this.flipPlanes ? v23.set(+(v12.dot(this.root.up) < 0), +(v12.dot(this.root.right) > 0), 0) : Vec3.ZERO;\n\t\tif (!this._shapes.xy.flipped.equals(flipped)) {\n\t\t\tthis._shapes.xy.flipped = flipped;\n\t\t\tchanged = true;\n\t\t}\n\t\tv12.cross(cameraDir, this.root.up);\n\t\tenabled = 1 - v12.length() > GLANCE_EPSILON;\n\t\tif (this._shapes.xz.entity.enabled !== enabled) {\n\t\t\tthis._shapes.xz.entity.enabled = enabled;\n\t\t\tchanged = true;\n\t\t}\n\t\tflipped = this.flipPlanes ? v23.set(+(v12.dot(this.root.forward) > 0), 0, +(v12.dot(this.root.right) > 0)) : Vec3.ZERO;\n\t\tif (!this._shapes.xz.flipped.equals(flipped)) {\n\t\t\tthis._shapes.xz.flipped = flipped;\n\t\t\tchanged = true;\n\t\t}\n\t\tif (changed) {\n\t\t\tthis._renderUpdate = true;\n\t\t}\n\t}\n\t_drag(state) {\n\t\tfor (const axis in this._shapes) {\n\t\t\tconst shape = this._shapes[axis];\n\t\t\tswitch (this.dragMode) {\n\t\t\t\tcase \"show\": {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tcase \"hide\": {\n\t\t\t\t\tshape.visible = !state;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tcase \"selected\": {\n\t\t\t\t\tif (this._selectedAxis === \"xyz\") {\n\t\t\t\t\t\tshape.visible = state ? axis.length === 1 : true;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tif (this._selectedIsPlane) {\n\t\t\t\t\t\tshape.visible = state ? axis.length === 1 && !axis.includes(this._selectedAxis) : true;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tshape.visible = state ? axis === this._selectedAxis : true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis._renderUpdate = true;\n\t}\n\t_storeNodePositions() {\n\t\tfor (let i2 = 0; i2 < this.nodes.length; i2++) {\n\t\t\tconst node = this.nodes[i2];\n\t\t\tthis._nodeLocalPositions.set(node, node.getLocalPosition().clone());\n\t\t\tthis._nodePositions.set(node, node.getPosition().clone());\n\t\t}\n\t}\n\t_setNodePositions(translateDelta) {\n\t\tfor (let i2 = 0; i2 < this.nodes.length; i2++) {\n\t\t\tconst node = this.nodes[i2];\n\t\t\tif (this._coordSpace === \"local\") {\n\t\t\t\tconst pos = this._nodeLocalPositions.get(node);\n\t\t\t\tif (!pos) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tv12.copy(translateDelta);\n\t\t\t\tnode.parent?.getWorldTransform().getScale(v23);\n\t\t\t\tv23.x = 1 / v23.x;\n\t\t\t\tv23.y = 1 / v23.y;\n\t\t\t\tv23.z = 1 / v23.z;\n\t\t\t\tq3.copy(node.getLocalRotation()).transformVector(v12, v12);\n\t\t\t\tv12.mul(v23);\n\t\t\t\tnode.setLocalPosition(v12.add(pos));\n\t\t\t} else {\n\t\t\t\tconst pos = this._nodePositions.get(node);\n\t\t\t\tif (!pos) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tnode.setPosition(v12.copy(translateDelta).add(pos));\n\t\t\t}\n\t\t}\n\t\tthis._updatePosition();\n\t}\n\t_screenToPoint(x3, y2) {\n\t\tconst mouseWPos = this._camera.screenToWorld(x3, y2, 1);\n\t\tconst axis = this._selectedAxis;\n\t\tconst isPlane = this._selectedIsPlane;\n\t\tconst ray3 = this._createRay(mouseWPos);\n\t\tconst plane2 = this._createPlane(axis, axis === \"xyz\", !isPlane);\n\t\tif (!plane2.intersectsRay(ray3, point2)) {\n\t\t\treturn point2;\n\t\t}\n\t\tq3.copy(this._rootStartRot).invert().transformVector(point2, point2);\n\t\tif (!isPlane && axis !== \"xyz\") {\n\t\t\tthis._projectToAxis(point2, axis);\n\t\t}\n\t\treturn point2;\n\t}\n\t_drawGuideLines(pos, rot, activeAxis, activeIsPlane) {\n\t\tfor (const axis of AXES2) {\n\t\t\tif (this._dragging || activeAxis === \"xyz\") {\n\t\t\t\tthis._drawSpanLine(pos, rot, axis);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (activeIsPlane) {\n\t\t\t\tif (axis !== activeAxis) {\n\t\t\t\t\tthis._drawSpanLine(pos, rot, axis);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (axis === activeAxis) {\n\t\t\t\t\tthis._drawSpanLine(pos, rot, axis);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tprerender() {\n\t\tsuper.prerender();\n\t\tif (!this.enabled) {\n\t\t\treturn;\n\t\t}\n\t\tthis._shapesLookAtCamera();\n\t}\n};\n\nvar TORUS_RENDER_SEGMENTS = 80;\nvar TORUS_INTERSECT_SEGMENTS = 20;\nvar ArcShape = class extends Shape {\n\t_tubeRadius = 0.01;\n\t_ringRadius = 0.5;\n\t_sectorAngle = 360;\n\t_tolerance = 0.05;\n\t_triDataCache;\n\tconstructor(device, args = {}) {\n\t\tsuper(device, \"disk\", args);\n\t\tthis._tubeRadius = args.tubeRadius ?? this._tubeRadius;\n\t\tthis._ringRadius = args.ringRadius ?? this._ringRadius;\n\t\tthis._sectorAngle = args.sectorAngle ?? this._sectorAngle;\n\t\tthis._triDataCache = [\n\t\t\tnew TriData(this._createTorusGeometry(this._sectorAngle)),\n\t\t\tnew TriData(this._createTorusGeometry(360))\n\t\t];\n\t\tthis.triData = [this._triDataCache[0]];\n\t\tthis._createRenderComponent(this.entity, [\n\t\t\tthis._createTorusMesh(this._sectorAngle),\n\t\t\tthis._createTorusMesh(360)\n\t\t]);\n\t\tthis.show(\"sector\");\n\t\tthis._update();\n\t}\n\t_createTorusGeometry(sectorAngle) {\n\t\treturn new TorusGeometry({\n\t\t\ttubeRadius: this._tubeRadius + this._tolerance,\n\t\t\tringRadius: this._ringRadius,\n\t\t\tsectorAngle,\n\t\t\tsegments: TORUS_INTERSECT_SEGMENTS\n\t\t});\n\t}\n\t_createTorusMesh(sectorAngle) {\n\t\tconst geom = new TorusGeometry({\n\t\t\ttubeRadius: this._tubeRadius,\n\t\t\tringRadius: this._ringRadius,\n\t\t\tsectorAngle,\n\t\t\tsegments: TORUS_RENDER_SEGMENTS\n\t\t});\n\t\treturn Mesh.fromGeometry(this.device, geom);\n\t}\n\tset tubeRadius(value) {\n\t\tthis._tubeRadius = value ?? this._tubeRadius;\n\t\tthis._update();\n\t}\n\tget tubeRadius() {\n\t\treturn this._tubeRadius;\n\t}\n\tset ringRadius(value) {\n\t\tthis._ringRadius = value ?? this._ringRadius;\n\t\tthis._update();\n\t}\n\tget ringRadius() {\n\t\treturn this._ringRadius;\n\t}\n\tset tolerance(value) {\n\t\tthis._tolerance = value ?? this._tolerance;\n\t\tthis._update();\n\t}\n\tget tolerance() {\n\t\treturn this._tolerance;\n\t}\n\t_update() {\n\t\tthis._triDataCache[0].fromGeometry(this._createTorusGeometry(this._sectorAngle));\n\t\tthis._triDataCache[1].fromGeometry(this._createTorusGeometry(360));\n\t\tthis.meshInstances[0].mesh = this._createTorusMesh(this._sectorAngle);\n\t\tthis.meshInstances[1].mesh = this._createTorusMesh(360);\n\t}\n\tshow(state) {\n\t\tswitch (state) {\n\t\t\tcase \"sector\": {\n\t\t\t\tthis.triData[0] = this._triDataCache[0];\n\t\t\t\tthis.meshInstances[0].visible = true;\n\t\t\t\tthis.meshInstances[1].visible = false;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \"ring\": {\n\t\t\t\tthis.triData[0] = this._triDataCache[1];\n\t\t\t\tthis.meshInstances[0].visible = false;\n\t\t\t\tthis.meshInstances[1].visible = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \"none\": {\n\t\t\t\tthis.meshInstances[0].visible = false;\n\t\t\t\tthis.meshInstances[1].visible = false;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar tmpV14 = new Vec3();\nvar MeshLine = class {\n\t_thickness = 0.02;\n\t_material = new ShaderMaterial(unlitShader);\n\tentity = new Entity(\"mesh-line\");\n\tconstructor(app2, layer, args = {}) {\n\t\tthis._thickness = args.thickness ?? this._thickness;\n\t\tthis._material.blendState = BlendState.ALPHABLEND;\n\t\tthis._material.setDefine(\"DEPTH_WRITE\", \"1\");\n\t\tthis._material.setParameter(\"uDepth\", 0);\n\t\tthis._material.update();\n\t\tconst mesh = Mesh.fromGeometry(app2.graphicsDevice, new CylinderGeometry());\n\t\tconst meshInstance = new MeshInstance(mesh, this._material);\n\t\tthis.entity.addComponent(\"render\", {\n\t\t\tmeshInstances: [meshInstance],\n\t\t\tlayers: [layer.id]\n\t\t});\n\t}\n\tset thickness(value) {\n\t\tthis._thickness = value ?? this._thickness;\n\t}\n\tget thickness() {\n\t\treturn this._thickness;\n\t}\n\tdraw(from, to, scale2, color3) {\n\t\tthis._material.setParameter(\"uColor\", color3.toArray());\n\t\tconst dir4 = tmpV14.sub2(to, from).normalize();\n\t\tconst elev = Math.atan2(-dir4.y, Math.sqrt(dir4.x * dir4.x + dir4.z * dir4.z)) * math.RAD_TO_DEG;\n\t\tconst azim = Math.atan2(-dir4.x, -dir4.z) * math.RAD_TO_DEG;\n\t\tthis.entity.setLocalEulerAngles(-elev + 90, azim, 0);\n\t\tconst length = from.distance(to) * scale2;\n\t\tthis.entity.setLocalPosition(dir4.mulScalar(0.5 * length).add(from));\n\t\tthis.entity.setLocalScale(this._thickness * scale2, length, this._thickness * scale2);\n\t}\n\tdestroy() {\n\t\tthis._material.destroy();\n\t\tthis.entity.destroy();\n\t}\n};\n\nvar point3 = new Vec3();\nvar v13 = new Vec3();\nvar v24 = new Vec3();\nvar v32 = new Vec3();\nvar q1 = new Quat();\nvar q22 = new Quat();\nvar color2 = new Color();\nvar RING_FACING_EPSILON = 1e-4;\nvar UPDATE_EPSILON3 = 1e-6;\nvar AXES3 = [\"x\", \"y\", \"z\"];\nvar RotateGizmo = class extends TransformGizmo {\n\t_shapes = {\n\t\tz: new ArcShape(this._device, {\n\t\t\taxis: \"z\",\n\t\t\tlayers: [this._layer.id],\n\t\t\trotation: new Vec3(90, 0, 90),\n\t\t\tdefaultColor: this._theme.shapeBase.z,\n\t\t\thoverColor: this._theme.shapeHover.z,\n\t\t\tdisabledColor: this._theme.disabled,\n\t\t\tsectorAngle: 180\n\t\t}),\n\t\tx: new ArcShape(this._device, {\n\t\t\taxis: \"x\",\n\t\t\tlayers: [this._layer.id],\n\t\t\trotation: new Vec3(0, 0, -90),\n\t\t\tdefaultColor: this._theme.shapeBase.x,\n\t\t\thoverColor: this._theme.shapeHover.x,\n\t\t\tdisabledColor: this._theme.disabled,\n\t\t\tsectorAngle: 180\n\t\t}),\n\t\ty: new ArcShape(this._device, {\n\t\t\taxis: \"y\",\n\t\t\tlayers: [this._layer.id],\n\t\t\trotation: new Vec3(0, 0, 0),\n\t\t\tdefaultColor: this._theme.shapeBase.y,\n\t\t\thoverColor: this._theme.shapeHover.y,\n\t\t\tdisabledColor: this._theme.disabled,\n\t\t\tsectorAngle: 180\n\t\t}),\n\t\tf: new ArcShape(this._device, {\n\t\t\taxis: \"f\",\n\t\t\tlayers: [this._layer.id],\n\t\t\tdefaultColor: this._theme.shapeBase.f,\n\t\t\thoverColor: this._theme.shapeHover.f,\n\t\t\tdisabledColor: this._theme.disabled,\n\t\t\tringRadius: 0.55\n\t\t}),\n\t\txyz: new SphereShape(this._device, {\n\t\t\taxis: \"xyz\",\n\t\t\tlayers: [this._layer.id],\n\t\t\tdefaultColor: this._theme.shapeBase.xyz,\n\t\t\thoverColor: this._theme.shapeHover.xyz,\n\t\t\tdisabledColor: this._theme.disabled,\n\t\t\tradius: 0.5\n\t\t})\n\t};\n\t_selectionStartAngle = 0;\n\t_nodeLocalRotations = /* @__PURE__ */ new Map();\n\t_nodeRotations = /* @__PURE__ */ new Map();\n\t_nodeOffsets = /* @__PURE__ */ new Map();\n\t_screenPos = new Vec2();\n\t_screenStartPos = new Vec2();\n\t_guideAngleStart = new Vec3();\n\t_guideAngleEnd = new Vec3();\n\t_guideAngleLines;\n\t_facingDir = new Vec3();\n\tsnapIncrement = 5;\n\trotationMode = \"absolute\";\n\tconstructor(camera, layer) {\n\t\tsuper(camera, layer, \"gizmo:rotate\");\n\t\tthis.setTheme({\n\t\t\tshapeBase: {\n\t\t\t\txyz: new Color(0, 0, 0, 0)\n\t\t\t},\n\t\t\tshapeHover: {\n\t\t\t\txyz: new Color(1, 1, 1, 0.2)\n\t\t\t}\n\t\t});\n\t\tthis._createTransform();\n\t\tthis._guideAngleLines = [\n\t\t\tnew MeshLine(this._app, this._layer),\n\t\t\tnew MeshLine(this._app, this._layer)\n\t\t];\n\t\tthis._guideAngleLines.forEach((line) => {\n\t\t\tthis._app.root.addChild(line.entity);\n\t\t\tline.entity.enabled = false;\n\t\t});\n\t\tthis.on(TransformGizmo.EVENT_TRANSFORMSTART, (point5, x3, y2) => {\n\t\t\tthis._screenPos.set(x3, y2);\n\t\t\tthis._screenStartPos.set(x3, y2);\n\t\t\tthis._selectionStartAngle = this._calculateArcAngle(point5, x3, y2);\n\t\t\tthis._storeNodeRotations();\n\t\t\tthis._storeGuidePoints();\n\t\t\tthis._drag(true);\n\t\t\tthis._angleGuide(true);\n\t\t});\n\t\tthis.on(TransformGizmo.EVENT_TRANSFORMMOVE, (point5, x3, y2) => {\n\t\t\tconst axis = this._selectedAxis;\n\t\t\tif (!axis) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis._screenPos.set(x3, y2);\n\t\t\tif (axis === \"xyz\") {\n\t\t\t\tconst facingDir = v13.copy(this.facingDir);\n\t\t\t\tconst delta3 = v24.copy(point5).sub(this._selectionStartPoint);\n\t\t\t\tconst angleAxis = v13.cross(facingDir, delta3).normalize();\n\t\t\t\tconst angleDelta = this._screenPos.distance(this._screenStartPos);\n\t\t\t\tthis._setNodeRotations(axis, angleAxis, angleDelta);\n\t\t\t} else {\n\t\t\t\tlet angleDelta = this._calculateArcAngle(point5, x3, y2) - this._selectionStartAngle;\n\t\t\t\tif (this.snap) {\n\t\t\t\t\tangleDelta = Math.round(angleDelta / this.snapIncrement) * this.snapIncrement;\n\t\t\t\t}\n\t\t\t\tconst angleAxis = this._dirFromAxis(axis, v13);\n\t\t\t\tthis._setNodeRotations(axis, angleAxis, angleDelta);\n\t\t\t\tthis._updateGuidePoints(angleDelta);\n\t\t\t\tthis._angleGuide(true);\n\t\t\t}\n\t\t});\n\t\tthis.on(TransformGizmo.EVENT_TRANSFORMEND, () => {\n\t\t\tthis._drag(false);\n\t\t\tthis._angleGuide(false);\n\t\t});\n\t\tthis.on(TransformGizmo.EVENT_NODESDETACH, () => {\n\t\t\tthis._nodeLocalRotations.clear();\n\t\t\tthis._nodeRotations.clear();\n\t\t\tthis._nodeOffsets.clear();\n\t\t});\n\t}\n\tset xyzTubeRadius(value) {\n\t\tthis._setDiskProp(\"tubeRadius\", value);\n\t}\n\tget xyzTubeRadius() {\n\t\treturn this._shapes.x.tubeRadius;\n\t}\n\tset xyzRingRadius(value) {\n\t\tthis._setDiskProp(\"ringRadius\", value);\n\t}\n\tget xyzRingRadius() {\n\t\treturn this._shapes.x.ringRadius;\n\t}\n\tset faceTubeRadius(value) {\n\t\tthis._shapes.f.tubeRadius = value;\n\t}\n\tget faceTubeRadius() {\n\t\treturn this._shapes.f.tubeRadius;\n\t}\n\tset faceRingRadius(value) {\n\t\tthis._shapes.f.ringRadius = value;\n\t}\n\tget faceRingRadius() {\n\t\treturn this._shapes.f.ringRadius;\n\t}\n\tset centerRadius(value) {\n\t\tthis._shapes.xyz.radius = value;\n\t}\n\tget centerRadius() {\n\t\treturn this._shapes.xyz.radius;\n\t}\n\tset ringTolerance(value) {\n\t\tthis._setDiskProp(\"tolerance\", value);\n\t\tthis._shapes.f.tolerance = value;\n\t}\n\tget ringTolerance() {\n\t\treturn this._shapes.x.tolerance;\n\t}\n\tset angleGuideThickness(value) {\n\t\tthis._guideAngleLines[0].thickness = value;\n\t\tthis._guideAngleLines[1].thickness = value;\n\t}\n\tget angleGuideThickness() {\n\t\treturn this._guideAngleLines[0].thickness;\n\t}\n\tset orbitRotation(value) {\n\t\tthis.rotationMode = value ? \"orbit\" : \"absolute\";\n\t}\n\tget orbitRotation() {\n\t\treturn this.rotationMode === \"orbit\";\n\t}\n\t_setDiskProp(prop, value) {\n\t\tthis._shapes.x[prop] = value;\n\t\tthis._shapes.y[prop] = value;\n\t\tthis._shapes.z[prop] = value;\n\t}\n\t_storeGuidePoints() {\n\t\tconst gizmoPos = this.root.getLocalPosition();\n\t\tconst axis = this._selectedAxis;\n\t\tconst isFacing = axis === \"f\";\n\t\tconst scale2 = isFacing ? this.faceRingRadius : this.xyzRingRadius;\n\t\tthis._guideAngleStart.copy(this._selectionStartPoint).sub(gizmoPos).normalize();\n\t\tthis._guideAngleStart.mulScalar(scale2);\n\t\tthis._guideAngleEnd.copy(this._guideAngleStart);\n\t}\n\t_updateGuidePoints(angleDelta) {\n\t\tconst axis = this._selectedAxis;\n\t\tconst isFacing = axis === \"f\";\n\t\tif (isFacing) {\n\t\t\tv13.copy(this.facingDir);\n\t\t} else {\n\t\t\tv13.set(0, 0, 0);\n\t\t\tv13[axis] = 1;\n\t\t\tthis._rootStartRot.transformVector(v13, v13);\n\t\t}\n\t\tq1.setFromAxisAngle(v13, angleDelta);\n\t\tq1.transformVector(this._guideAngleStart, this._guideAngleEnd);\n\t\tthis._renderUpdate = true;\n\t}\n\t_angleGuide(state) {\n\t\tconst axis = this._selectedAxis;\n\t\tif (state && this.dragMode !== \"show\" && axis !== \"xyz\") {\n\t\t\tconst gizmoPos = this.root.getLocalPosition();\n\t\t\tconst baseColor = this._theme.shapeHover[axis];\n\t\t\tconst startColor = color2.copy(baseColor);\n\t\t\tstartColor.a *= 0.3;\n\t\t\tthis._guideAngleLines[0].draw(\n\t\t\t\tgizmoPos,\n\t\t\t\tv13.copy(this._guideAngleStart).add(gizmoPos),\n\t\t\t\tthis._scale,\n\t\t\t\tstartColor\n\t\t\t);\n\t\t\tthis._guideAngleLines[1].draw(\n\t\t\t\tgizmoPos,\n\t\t\t\tv13.copy(this._guideAngleEnd).add(gizmoPos),\n\t\t\t\tthis._scale,\n\t\t\t\tbaseColor\n\t\t\t);\n\t\t\tthis._guideAngleLines[0].entity.enabled = true;\n\t\t\tthis._guideAngleLines[1].entity.enabled = true;\n\t\t} else {\n\t\t\tthis._guideAngleLines[0].entity.enabled = false;\n\t\t\tthis._guideAngleLines[1].entity.enabled = false;\n\t\t}\n\t}\n\t_shapesLookAtCamera() {\n\t\tif (this._camera.projection === PROJECTION_PERSPECTIVE) {\n\t\t\tconst dir4 = this._camera.entity.getPosition().sub(this.root.getPosition()).normalize();\n\t\t\tconst elev = Math.atan2(-dir4.y, Math.sqrt(dir4.x * dir4.x + dir4.z * dir4.z)) * math.RAD_TO_DEG;\n\t\t\tconst azim = Math.atan2(-dir4.x, -dir4.z) * math.RAD_TO_DEG;\n\t\t\tthis._shapes.f.entity.setEulerAngles(-elev + 90, azim, 0);\n\t\t} else {\n\t\t\tq1.copy(this._camera.entity.getRotation()).getEulerAngles(v13);\n\t\t\tthis._shapes.f.entity.setEulerAngles(v13);\n\t\t\tthis._shapes.f.entity.rotateLocal(-90, 0, 0);\n\t\t}\n\t\tlet angle, dot, sector;\n\t\tconst facingDir = v13.copy(this.facingDir);\n\t\tq1.copy(this.root.getRotation()).invert().transformVector(facingDir, facingDir);\n\t\tangle = Math.atan2(facingDir.z, facingDir.y) * math.RAD_TO_DEG;\n\t\tthis._shapes.x.entity.setLocalEulerAngles(0, angle - 90, -90);\n\t\tangle = Math.atan2(facingDir.x, facingDir.z) * math.RAD_TO_DEG;\n\t\tthis._shapes.y.entity.setLocalEulerAngles(0, angle, 0);\n\t\tangle = Math.atan2(facingDir.y, facingDir.x) * math.RAD_TO_DEG;\n\t\tthis._shapes.z.entity.setLocalEulerAngles(90, 0, angle + 90);\n\t\tif (!this._dragging) {\n\t\t\tdot = facingDir.dot(this.root.right);\n\t\t\tsector = 1 - Math.abs(dot) > RING_FACING_EPSILON;\n\t\t\tthis._shapes.x.show(sector ? \"sector\" : \"ring\");\n\t\t\tdot = facingDir.dot(this.root.up);\n\t\t\tsector = 1 - Math.abs(dot) > RING_FACING_EPSILON;\n\t\t\tthis._shapes.y.show(sector ? \"sector\" : \"ring\");\n\t\t\tdot = facingDir.dot(this.root.forward);\n\t\t\tsector = 1 - Math.abs(dot) > RING_FACING_EPSILON;\n\t\t\tthis._shapes.z.show(sector ? \"sector\" : \"ring\");\n\t\t}\n\t\tif (!facingDir.equalsApprox(this._facingDir, UPDATE_EPSILON3)) {\n\t\t\tthis._facingDir.copy(facingDir);\n\t\t\tthis._renderUpdate = true;\n\t\t}\n\t}\n\t_drag(state) {\n\t\tfor (const axis in this._shapes) {\n\t\t\tconst shape = this._shapes[axis];\n\t\t\tif (!(shape instanceof ArcShape)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tswitch (this.dragMode) {\n\t\t\t\tcase \"show\": {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"hide\": {\n\t\t\t\t\tshape.show(state ? axis === this._selectedAxis ? \"ring\" : \"none\" : \"sector\");\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tcase \"selected\": {\n\t\t\t\t\tshape.show(state ? axis === this._selectedAxis ? \"ring\" : \"sector\" : \"sector\");\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis._renderUpdate = true;\n\t}\n\t_storeNodeRotations() {\n\t\tconst gizmoPos = this.root.getLocalPosition();\n\t\tfor (let i2 = 0; i2 < this.nodes.length; i2++) {\n\t\t\tconst node = this.nodes[i2];\n\t\t\tthis._nodeLocalRotations.set(node, node.getLocalRotation().clone());\n\t\t\tthis._nodeRotations.set(node, node.getRotation().clone());\n\t\t\tthis._nodeOffsets.set(node, node.getPosition().clone().sub(gizmoPos));\n\t\t}\n\t}\n\t_setNodeRotations(axis, angleAxis, angleDelta) {\n\t\tconst gizmoPos = this.root.getLocalPosition();\n\t\tq1.setFromAxisAngle(angleAxis, angleDelta);\n\t\tfor (let i2 = 0; i2 < this.nodes.length; i2++) {\n\t\t\tconst node = this.nodes[i2];\n\t\t\tif ((axis === \"x\" || axis === \"y\" || axis === \"z\") && this._coordSpace === \"local\") {\n\t\t\t\tconst rot = this._nodeLocalRotations.get(node);\n\t\t\t\tif (!rot) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tq22.copy(rot).mul(q1);\n\t\t\t\tnode.setLocalRotation(q22);\n\t\t\t} else {\n\t\t\t\tconst rot = this._nodeRotations.get(node);\n\t\t\t\tif (!rot) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst offset3 = this._nodeOffsets.get(node);\n\t\t\t\tif (!offset3) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tv13.copy(offset3);\n\t\t\t\tq1.transformVector(v13, v13);\n\t\t\t\tq22.copy(q1).mul(rot);\n\t\t\t\tnode.setRotation(q22);\n\t\t\t\tnode.setPosition(v13.add(gizmoPos));\n\t\t\t}\n\t\t}\n\t\tif (this._coordSpace === \"local\") {\n\t\t\tthis._updateRotation();\n\t\t}\n\t}\n\t_screenToPoint(x3, y2) {\n\t\tconst mouseWPos = this._camera.screenToWorld(x3, y2, 1);\n\t\tconst axis = this._selectedAxis;\n\t\tconst ray3 = this._createRay(mouseWPos);\n\t\tconst plane2 = this._createPlane(axis, axis === \"f\" || axis === \"xyz\", false);\n\t\tif (!plane2.intersectsRay(ray3, point3)) {\n\t\t\tray3.direction.mulScalar(-1);\n\t\t\tconst intersection = plane2.intersectsRay(ray3, point3);\n\t\t\tray3.direction.mulScalar(-1);\n\t\t\tif (!intersection) {\n\t\t\t\treturn point3.copy(this.root.getLocalPosition());\n\t\t\t}\n\t\t}\n\t\treturn point3;\n\t}\n\t_calculateArcAngle(point5, x3, y2) {\n\t\tconst gizmoPos = this.root.getLocalPosition();\n\t\tconst axis = this._selectedAxis;\n\t\tconst plane2 = this._createPlane(axis, axis === \"f\", false);\n\t\tlet angle = 0;\n\t\tconst facingDir = this.facingDir;\n\t\tconst facingDot = plane2.normal.dot(facingDir);\n\t\tswitch (this.rotationMode) {\n\t\t\tcase \"absolute\": {\n\t\t\t\tthis._camera.worldToScreen(gizmoPos, v24);\n\t\t\t\tif (axis === \"f\" || facingDot > 1 - RING_FACING_EPSILON) {\n\t\t\t\t\tv13.set(\n\t\t\t\t\t\tthis._screenStartPos.y >= v24.y ? 1 : -1,\n\t\t\t\t\t\tthis._screenStartPos.x >= v24.x ? -1 : 1,\n\t\t\t\t\t\t0\n\t\t\t\t\t).normalize();\n\t\t\t\t} else {\n\t\t\t\t\tconst projDir = v13.cross(plane2.normal, facingDir).normalize();\n\t\t\t\t\tthis._camera.worldToScreen(projDir.add(gizmoPos), v32);\n\t\t\t\t\tv13.sub2(v32, v24).normalize();\n\t\t\t\t}\n\t\t\t\tv24.set(x3, y2, 0);\n\t\t\t\tangle = v13.dot(v24);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \"orbit\": {\n\t\t\t\tv13.sub2(point5, gizmoPos);\n\t\t\t\tswitch (axis) {\n\t\t\t\t\tcase \"x\": {\n\t\t\t\t\t\tq1.copy(this._rootStartRot).invert().transformVector(v13, v13);\n\t\t\t\t\t\tangle = Math.atan2(v13.z, v13.y) * math.RAD_TO_DEG;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase \"y\": {\n\t\t\t\t\t\tq1.copy(this._rootStartRot).invert().transformVector(v13, v13);\n\t\t\t\t\t\tangle = Math.atan2(v13.x, v13.z) * math.RAD_TO_DEG;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase \"z\": {\n\t\t\t\t\t\tq1.copy(this._rootStartRot).invert().transformVector(v13, v13);\n\t\t\t\t\t\tangle = Math.atan2(v13.y, v13.x) * math.RAD_TO_DEG;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase \"f\": {\n\t\t\t\t\t\tq1.copy(this._camera.entity.getRotation()).invert().transformVector(v13, v13);\n\t\t\t\t\t\tangle = Math.sign(facingDot) * Math.atan2(v13.y, v13.x) * math.RAD_TO_DEG;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tconst dir4 = v13.sub2(point5, this._camera.entity.getPosition()).normalize();\n\t\t\t\tconst dot = dir4.dot(this._camera.entity.forward);\n\t\t\t\tif (dot < 0) {\n\t\t\t\t\tangle += 180;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\treturn angle;\n\t}\n\t_drawGuideLines(pos, rot, activeAxis, activeIsPlane) {\n\t\tfor (const axis of AXES3) {\n\t\t\tif (activeAxis === \"xyz\") {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (activeIsPlane) {\n\t\t\t\tif (axis !== activeAxis) {\n\t\t\t\t\tthis._drawSpanLine(pos, rot, axis);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (axis === activeAxis) {\n\t\t\t\t\tthis._drawSpanLine(pos, rot, axis);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tprerender() {\n\t\tsuper.prerender();\n\t\tif (!this.enabled) {\n\t\t\treturn;\n\t\t}\n\t\tthis._shapesLookAtCamera();\n\t}\n\tdestroy() {\n\t\tthis._guideAngleLines.forEach((line) => line.destroy());\n\t\tsuper.destroy();\n\t}\n};\n\nvar BoxShape = class extends Shape {\n\t_size = 0.06;\n\tconstructor(device, args = {}) {\n\t\tsuper(device, \"boxCenter\", args);\n\t\tthis._size = args.size ?? this._size;\n\t\tthis.triData = [\n\t\t\tnew TriData(new BoxGeometry(), 2)\n\t\t];\n\t\tthis._createRenderComponent(this.entity, [\n\t\t\tMesh.fromGeometry(this.device, new BoxGeometry())\n\t\t]);\n\t\tthis._update();\n\t}\n\tset size(value) {\n\t\tthis._size = value ?? this._size;\n\t\tthis._update();\n\t}\n\tget size() {\n\t\treturn this._size;\n\t}\n\t_update() {\n\t\tthis.entity.setLocalScale(this._size, this._size, this._size);\n\t}\n};\n\nvar tmpV15 = new Vec3();\nvar tmpV23 = new Vec3();\nvar tmpQ12 = new Quat();\nvar BoxLineShape = class extends Shape {\n\t_gap = 0;\n\t_lineThickness = 0.02;\n\t_lineLength = 0.5;\n\t_boxSize = 0.12;\n\t_tolerance = 0.1;\n\t_box;\n\t_line;\n\t_flipped = false;\n\tconstructor(device, args = {}) {\n\t\tsuper(device, \"boxLine\", args);\n\t\tthis._gap = args.gap ?? this._gap;\n\t\tthis._lineThickness = args.lineThickness ?? this._lineThickness;\n\t\tthis._lineLength = args.lineLength ?? this._lineLength;\n\t\tthis._boxSize = args.boxSize ?? this._boxSize;\n\t\tthis._tolerance = args.tolerance ?? this._tolerance;\n\t\tthis.triData = [\n\t\t\tnew TriData(new BoxGeometry()),\n\t\t\tnew TriData(new CylinderGeometry(), 1)\n\t\t];\n\t\tthis._box = new Entity(`box:${this.axis}`);\n\t\tthis.entity.addChild(this._box);\n\t\tthis._createRenderComponent(this._box, [\n\t\t\tMesh.fromGeometry(this.device, new BoxGeometry())\n\t\t]);\n\t\tthis._line = new Entity(`line:${this.axis}`);\n\t\tthis.entity.addChild(this._line);\n\t\tthis._createRenderComponent(this._line, [\n\t\t\tMesh.fromGeometry(this.device, new CylinderGeometry())\n\t\t]);\n\t\tthis._update();\n\t}\n\tset gap(value) {\n\t\tthis._gap = value ?? this._gap;\n\t\tthis._update();\n\t}\n\tget gap() {\n\t\treturn this._gap;\n\t}\n\tset lineThickness(value) {\n\t\tthis._lineThickness = value ?? this._lineThickness;\n\t\tthis._update();\n\t}\n\tget lineThickness() {\n\t\treturn this._lineThickness;\n\t}\n\tset lineLength(value) {\n\t\tthis._lineLength = value ?? this._lineLength;\n\t\tthis._update();\n\t}\n\tget lineLength() {\n\t\treturn this._lineLength;\n\t}\n\tset boxSize(value) {\n\t\tthis._boxSize = value ?? this._boxSize;\n\t\tthis._update();\n\t}\n\tget boxSize() {\n\t\treturn this._boxSize;\n\t}\n\tset tolerance(value) {\n\t\tthis._tolerance = value;\n\t\tthis._update();\n\t}\n\tget tolerance() {\n\t\treturn this._tolerance;\n\t}\n\tset flipped(value) {\n\t\tif (this._flipped === value) {\n\t\t\treturn;\n\t\t}\n\t\tthis._flipped = value;\n\t\tif (this._rotation.equals(Vec3.ZERO)) {\n\t\t\ttmpV15.set(0, 0, this._flipped ? 180 : 0);\n\t\t} else {\n\t\t\ttmpV15.copy(this._rotation).mulScalar(this._flipped ? -1 : 1);\n\t\t}\n\t\tthis._line.enabled = !this._flipped;\n\t\tthis.entity.setLocalEulerAngles(tmpV15);\n\t}\n\tget flipped() {\n\t\treturn this._flipped;\n\t}\n\t_update() {\n\t\ttmpV15.set(0, this._gap + this._boxSize * 0.5 + this._lineLength, 0);\n\t\ttmpQ12.set(0, 0, 0, 1);\n\t\ttmpV23.set(this._boxSize, this._boxSize, this._boxSize);\n\t\tthis.triData[0].setTransform(tmpV15, tmpQ12, tmpV23);\n\t\ttmpV15.set(0, this._gap + this._lineLength * 0.5, 0);\n\t\ttmpQ12.set(0, 0, 0, 1);\n\t\ttmpV23.set(this._lineThickness + this._tolerance, this._lineLength, this._lineThickness + this._tolerance);\n\t\tthis.triData[1].setTransform(tmpV15, tmpQ12, tmpV23);\n\t\tthis._box.setLocalPosition(0, this._gap + this._boxSize * 0.5 + this._lineLength, 0);\n\t\tthis._box.setLocalScale(this._boxSize, this._boxSize, this._boxSize);\n\t\tthis._line.setLocalPosition(0, this._gap + this._lineLength * 0.5, 0);\n\t\tthis._line.setLocalScale(this._lineThickness, this._lineLength, this._lineThickness);\n\t}\n};\n\nvar v14 = new Vec3();\nvar v25 = new Vec3();\nvar point4 = new Vec3();\nvar delta2 = new Vec3();\nvar q4 = new Quat();\nvar GLANCE_EPSILON2 = 0.01;\nvar ScaleGizmo = class extends TransformGizmo {\n\t_shapes = {\n\t\txyz: new BoxShape(this._device, {\n\t\t\taxis: \"xyz\",\n\t\t\tlayers: [this._layer.id],\n\t\t\tdefaultColor: this._theme.shapeBase.xyz,\n\t\t\thoverColor: this._theme.shapeHover.xyz,\n\t\t\tdisabledColor: this._theme.disabled\n\t\t}),\n\t\tyz: new PlaneShape(this._device, {\n\t\t\taxis: \"x\",\n\t\t\tlayers: [this._layer.id],\n\t\t\trotation: new Vec3(0, 0, -90),\n\t\t\tdefaultColor: this._theme.shapeBase.x,\n\t\t\thoverColor: this._theme.shapeHover.x,\n\t\t\tdisabledColor: this._theme.disabled,\n\t\t\tdepth: 1\n\t\t}),\n\t\txz: new PlaneShape(this._device, {\n\t\t\taxis: \"y\",\n\t\t\tlayers: [this._layer.id],\n\t\t\trotation: new Vec3(0, 0, 0),\n\t\t\tdefaultColor: this._theme.shapeBase.y,\n\t\t\thoverColor: this._theme.shapeHover.y,\n\t\t\tdisabledColor: this._theme.disabled,\n\t\t\tdepth: 1\n\t\t}),\n\t\txy: new PlaneShape(this._device, {\n\t\t\taxis: \"z\",\n\t\t\tlayers: [this._layer.id],\n\t\t\trotation: new Vec3(90, 0, 0),\n\t\t\tdefaultColor: this._theme.shapeBase.z,\n\t\t\thoverColor: this._theme.shapeHover.z,\n\t\t\tdisabledColor: this._theme.disabled,\n\t\t\tdepth: 1\n\t\t}),\n\t\tx: new BoxLineShape(this._device, {\n\t\t\taxis: \"x\",\n\t\t\tlayers: [this._layer.id],\n\t\t\trotation: new Vec3(0, 0, -90),\n\t\t\tdefaultColor: this._theme.shapeBase.x,\n\t\t\thoverColor: this._theme.shapeHover.x,\n\t\t\tdisabledColor: this._theme.disabled\n\t\t}),\n\t\ty: new BoxLineShape(this._device, {\n\t\t\taxis: \"y\",\n\t\t\tlayers: [this._layer.id],\n\t\t\trotation: new Vec3(0, 0, 0),\n\t\t\tdefaultColor: this._theme.shapeBase.y,\n\t\t\thoverColor: this._theme.shapeHover.y,\n\t\t\tdisabledColor: this._theme.disabled\n\t\t}),\n\t\tz: new BoxLineShape(this._device, {\n\t\t\taxis: \"z\",\n\t\t\tlayers: [this._layer.id],\n\t\t\trotation: new Vec3(90, 0, 0),\n\t\t\tdefaultColor: this._theme.shapeBase.z,\n\t\t\thoverColor: this._theme.shapeHover.z,\n\t\t\tdisabledColor: this._theme.disabled\n\t\t})\n\t};\n\t_coordSpace = \"local\";\n\t_nodeScales = /* @__PURE__ */ new Map();\n\t_uniform = false;\n\tsnapIncrement = 1;\n\tflipPlanes = true;\n\tlowerBoundScale = new Vec3(-Infinity, -Infinity, -Infinity);\n\tconstructor(camera, layer) {\n\t\tsuper(camera, layer, \"gizmo:scale\");\n\t\tthis._createTransform();\n\t\tthis.on(TransformGizmo.EVENT_TRANSFORMSTART, () => {\n\t\t\tthis._storeNodeScales();\n\t\t\tthis._drag(true);\n\t\t});\n\t\tthis.on(TransformGizmo.EVENT_TRANSFORMMOVE, (point5) => {\n\t\t\tconst scaleDelta = delta2.copy(point5).sub(this._selectionStartPoint);\n\t\t\tif (this.snap) {\n\t\t\t\tscaleDelta.mulScalar(1 / this.snapIncrement);\n\t\t\t\tscaleDelta.round();\n\t\t\t\tscaleDelta.mulScalar(this.snapIncrement);\n\t\t\t}\n\t\t\tscaleDelta.mulScalar(1 / this._scale);\n\t\t\tthis._setNodeScales(scaleDelta.add(Vec3.ONE));\n\t\t});\n\t\tthis.on(TransformGizmo.EVENT_TRANSFORMEND, () => {\n\t\t\tthis._drag(false);\n\t\t});\n\t\tthis.on(TransformGizmo.EVENT_NODESDETACH, () => {\n\t\t\tthis._nodeScales.clear();\n\t\t});\n\t}\n\tset coordSpace(value) {\n\t}\n\tget coordSpace() {\n\t\treturn this._coordSpace;\n\t}\n\tset uniform(value) {\n\t\tthis._uniform = value ?? this._uniform;\n\t}\n\tget uniform() {\n\t\treturn this._uniform;\n\t}\n\tset axisGap(value) {\n\t\tthis._setArrowProp(\"gap\", value);\n\t}\n\tget axisGap() {\n\t\treturn this._shapes.x.gap;\n\t}\n\tset axisLineThickness(value) {\n\t\tthis._setArrowProp(\"lineThickness\", value);\n\t}\n\tget axisLineThickness() {\n\t\treturn this._shapes.x.lineThickness;\n\t}\n\tset axisLineLength(value) {\n\t\tthis._setArrowProp(\"lineLength\", value);\n\t}\n\tget axisLineLength() {\n\t\treturn this._shapes.x.lineLength;\n\t}\n\tset axisLineTolerance(value) {\n\t\tthis._setArrowProp(\"tolerance\", value);\n\t}\n\tget axisLineTolerance() {\n\t\treturn this._shapes.x.tolerance;\n\t}\n\tset axisBoxSize(value) {\n\t\tthis._setArrowProp(\"boxSize\", value);\n\t}\n\tget axisBoxSize() {\n\t\treturn this._shapes.x.boxSize;\n\t}\n\tset axisPlaneSize(value) {\n\t\tthis._setPlaneProp(\"size\", value);\n\t}\n\tget axisPlaneSize() {\n\t\treturn this._shapes.yz.size;\n\t}\n\tset axisPlaneGap(value) {\n\t\tthis._setPlaneProp(\"gap\", value);\n\t}\n\tget axisPlaneGap() {\n\t\treturn this._shapes.yz.gap;\n\t}\n\tset axisCenterSize(value) {\n\t\tthis._shapes.xyz.size = value;\n\t}\n\tget axisCenterSize() {\n\t\treturn this._shapes.xyz.size;\n\t}\n\tset flipShapes(value) {\n\t\tthis.flipPlanes = value;\n\t}\n\tget flipShapes() {\n\t\treturn this.flipPlanes;\n\t}\n\t_setArrowProp(prop, value) {\n\t\tthis._shapes.x[prop] = value;\n\t\tthis._shapes.y[prop] = value;\n\t\tthis._shapes.z[prop] = value;\n\t}\n\t_setPlaneProp(prop, value) {\n\t\tthis._shapes.yz[prop] = value;\n\t\tthis._shapes.xz[prop] = value;\n\t\tthis._shapes.xy[prop] = value;\n\t}\n\t_shapesLookAtCamera() {\n\t\tconst cameraDir = this.cameraDir;\n\t\tlet changed = false;\n\t\tlet dot, enabled;\n\t\tdot = cameraDir.dot(this.root.right);\n\t\tenabled = 1 - Math.abs(dot) > GLANCE_EPSILON2;\n\t\tif (this._shapes.x.entity.enabled !== enabled) {\n\t\t\tthis._shapes.x.entity.enabled = enabled;\n\t\t\tchanged = true;\n\t\t}\n\t\tdot = cameraDir.dot(this.root.up);\n\t\tenabled = 1 - Math.abs(dot) > GLANCE_EPSILON2;\n\t\tif (this._shapes.y.entity.enabled !== enabled) {\n\t\t\tthis._shapes.y.entity.enabled = enabled;\n\t\t\tchanged = true;\n\t\t}\n\t\tdot = cameraDir.dot(this.root.forward);\n\t\tenabled = 1 - Math.abs(dot) > GLANCE_EPSILON2;\n\t\tif (this._shapes.z.entity.enabled !== enabled) {\n\t\t\tthis._shapes.z.entity.enabled = enabled;\n\t\t\tchanged = true;\n\t\t}\n\t\tlet flipped;\n\t\tv14.cross(cameraDir, this.root.right);\n\t\tenabled = 1 - v14.length() > GLANCE_EPSILON2;\n\t\tif (this._shapes.yz.entity.enabled !== enabled) {\n\t\t\tthis._shapes.yz.entity.enabled = enabled;\n\t\t\tchanged = true;\n\t\t}\n\t\tflipped = this.flipPlanes ? v25.set(0, +(v14.dot(this.root.forward) < 0), +(v14.dot(this.root.up) < 0)) : Vec3.ZERO;\n\t\tif (!this._shapes.yz.flipped.equals(flipped)) {\n\t\t\tthis._shapes.yz.flipped = flipped;\n\t\t\tchanged = true;\n\t\t}\n\t\tv14.cross(cameraDir, this.root.forward);\n\t\tenabled = 1 - v14.length() > GLANCE_EPSILON2;\n\t\tif (this._shapes.xy.entity.enabled !== enabled) {\n\t\t\tthis._shapes.xy.entity.enabled = enabled;\n\t\t\tchanged = true;\n\t\t}\n\t\tflipped = this.flipPlanes ? v25.set(+(v14.dot(this.root.up) < 0), +(v14.dot(this.root.right) > 0), 0) : Vec3.ZERO;\n\t\tif (!this._shapes.xy.flipped.equals(flipped)) {\n\t\t\tthis._shapes.xy.flipped = flipped;\n\t\t\tchanged = true;\n\t\t}\n\t\tv14.cross(cameraDir, this.root.up);\n\t\tenabled = 1 - v14.length() > GLANCE_EPSILON2;\n\t\tif (this._shapes.xz.entity.enabled !== enabled) {\n\t\t\tthis._shapes.xz.entity.enabled = enabled;\n\t\t\tchanged = true;\n\t\t}\n\t\tflipped = this.flipPlanes ? v25.set(+(v14.dot(this.root.forward) > 0), 0, +(v14.dot(this.root.right) > 0)) : Vec3.ZERO;\n\t\tif (!this._shapes.xz.flipped.equals(flipped)) {\n\t\t\tthis._shapes.xz.flipped = flipped;\n\t\t\tchanged = true;\n\t\t}\n\t\tif (changed) {\n\t\t\tthis._renderUpdate = true;\n\t\t}\n\t}\n\t_drag(state) {\n\t\tfor (const axis in this._shapes) {\n\t\t\tconst shape = this._shapes[axis];\n\t\t\tswitch (this.dragMode) {\n\t\t\t\tcase \"show\": {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tcase \"hide\": {\n\t\t\t\t\tshape.visible = !state;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tcase \"selected\": {\n\t\t\t\t\tif (this._selectedAxis === \"xyz\") {\n\t\t\t\t\t\tshape.visible = state ? axis.length === 1 : true;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tif (this._selectedIsPlane) {\n\t\t\t\t\t\tshape.visible = state ? axis.length === 1 && !axis.includes(this._selectedAxis) : true;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tshape.visible = state ? axis === this._selectedAxis : true;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis._renderUpdate = true;\n\t}\n\t_storeNodeScales() {\n\t\tfor (let i2 = 0; i2 < this.nodes.length; i2++) {\n\t\t\tconst node = this.nodes[i2];\n\t\t\tthis._nodeScales.set(node, node.getLocalScale().clone());\n\t\t}\n\t}\n\t_setNodeScales(scaleDelta) {\n\t\tfor (let i2 = 0; i2 < this.nodes.length; i2++) {\n\t\t\tconst node = this.nodes[i2];\n\t\t\tconst scale2 = this._nodeScales.get(node);\n\t\t\tif (!scale2) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tnode.setLocalScale(v14.copy(scale2).mul(scaleDelta).max(this.lowerBoundScale));\n\t\t}\n\t}\n\t_screenToPoint(x3, y2) {\n\t\tconst gizmoPos = this.root.getLocalPosition();\n\t\tconst mouseWPos = this._camera.screenToWorld(x3, y2, 1);\n\t\tconst axis = this._selectedAxis;\n\t\tconst isPlane = this._selectedIsPlane;\n\t\tconst ray3 = this._createRay(mouseWPos);\n\t\tconst plane2 = this._createPlane(axis, axis === \"xyz\", !isPlane);\n\t\tif (!plane2.intersectsRay(ray3, point4)) {\n\t\t\treturn point4;\n\t\t}\n\t\tif (axis === \"xyz\") {\n\t\t\tconst projDir = v25.add2(this._camera.entity.up, this._camera.entity.right).normalize();\n\t\t\tconst dir4 = v14.sub2(point4, gizmoPos);\n\t\t\tconst v6 = dir4.length() * dir4.normalize().dot(projDir);\n\t\t\tpoint4.set(v6, v6, v6);\n\t\t\treturn point4;\n\t\t}\n\t\tq4.copy(this._rootStartRot).invert().transformVector(point4, point4);\n\t\tif (!isPlane) {\n\t\t\tthis._projectToAxis(point4, axis);\n\t\t}\n\t\tif (this._uniform && isPlane) {\n\t\t\tv14.set(1, 1, 1);\n\t\t\tv14[axis] = 0;\n\t\t\tpoint4.copy(v14.mulScalar(v14.dot(point4)));\n\t\t\tpoint4[axis] = 0;\n\t\t}\n\t\treturn point4;\n\t}\n\tprerender() {\n\t\tsuper.prerender();\n\t\tif (!this.enabled) {\n\t\t\treturn;\n\t\t}\n\t\tthis._shapesLookAtCamera();\n\t}\n};\n\nvar tmpV16 = new Vec3();\nvar tmpV24 = new Vec3();\nvar tmpV32 = new Vec3();\nvar tmpM1 = new Mat4();\nvar ViewCube = class _ViewCube extends EventHandler {\n\tstatic EVENT_CAMERAALIGN = \"camera:align\";\n\t_size = 0;\n\t_svg;\n\t_group;\n\t_anchor = new Vec4(1, 1, 1, 1);\n\t_colorX = COLOR_RED.clone();\n\t_colorY = COLOR_GREEN.clone();\n\t_colorZ = COLOR_BLUE.clone();\n\t_colorNeg = new Color(0.3, 0.3, 0.3);\n\t_radius = 10;\n\t_textSize = 10;\n\t_lineThickness = 2;\n\t_lineLength = 40;\n\t_shapes;\n\tconstructor(anchor) {\n\t\tsuper();\n\t\tthis.dom = document.createElement(\"div\");\n\t\tthis.dom.id = \"view-cube-container\";\n\t\tthis.dom.style.cssText = [\n\t\t\t\"position: absolute\",\n\t\t\t\"margin: auto\",\n\t\t\t\"pointer-events: none\"\n\t\t].join(\";\");\n\t\tdocument.body.appendChild(this.dom);\n\t\tthis.anchor = anchor ?? this._anchor;\n\t\tthis._svg = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n\t\tthis._svg.id = \"view-cube-svg\";\n\t\tthis._group = document.createElementNS(this._svg.namespaceURI, \"g\");\n\t\tthis._svg.appendChild(this._group);\n\t\tthis._resize();\n\t\tconst colX = this._colorX.toString(false);\n\t\tconst colY = this._colorY.toString(false);\n\t\tconst colZ = this._colorZ.toString(false);\n\t\tthis._shapes = {\n\t\t\tnx: this._circle(colX),\n\t\t\tny: this._circle(colY),\n\t\t\tnz: this._circle(colZ),\n\t\t\tpx: this._circle(colX, true, \"X\"),\n\t\t\tpy: this._circle(colY, true, \"Y\"),\n\t\t\tpz: this._circle(colZ, true, \"Z\"),\n\t\t\txaxis: this._line(colX),\n\t\t\tyaxis: this._line(colY),\n\t\t\tzaxis: this._line(colZ)\n\t\t};\n\t\tthis._shapes.px.children[0].addEventListener(\"pointerdown\", () => {\n\t\t\tthis.fire(_ViewCube.EVENT_CAMERAALIGN, Vec3.RIGHT);\n\t\t});\n\t\tthis._shapes.py.children[0].addEventListener(\"pointerdown\", () => {\n\t\t\tthis.fire(_ViewCube.EVENT_CAMERAALIGN, Vec3.UP);\n\t\t});\n\t\tthis._shapes.pz.children[0].addEventListener(\"pointerdown\", () => {\n\t\t\tthis.fire(_ViewCube.EVENT_CAMERAALIGN, Vec3.BACK);\n\t\t});\n\t\tthis._shapes.nx.children[0].addEventListener(\"pointerdown\", () => {\n\t\t\tthis.fire(_ViewCube.EVENT_CAMERAALIGN, Vec3.LEFT);\n\t\t});\n\t\tthis._shapes.ny.children[0].addEventListener(\"pointerdown\", () => {\n\t\t\tthis.fire(_ViewCube.EVENT_CAMERAALIGN, Vec3.DOWN);\n\t\t});\n\t\tthis._shapes.nz.children[0].addEventListener(\"pointerdown\", () => {\n\t\t\tthis.fire(_ViewCube.EVENT_CAMERAALIGN, Vec3.FORWARD);\n\t\t});\n\t\tthis.dom.appendChild(this._svg);\n\t}\n\tset anchor(value) {\n\t\tthis._anchor.copy(value);\n\t\tthis.dom.style.top = this._anchor.x ? \"0px\" : \"auto\";\n\t\tthis.dom.style.right = this._anchor.y ? \"0px\" : \"auto\";\n\t\tthis.dom.style.bottom = this._anchor.z ? \"0px\" : \"auto\";\n\t\tthis.dom.style.left = this._anchor.w ? \"0px\" : \"auto\";\n\t}\n\tget anchor() {\n\t\treturn this._anchor;\n\t}\n\tset colorX(value) {\n\t\tthis._colorX.copy(value);\n\t\tthis._shapes.px.children[0].setAttribute(\"fill\", this._colorX.toString(false));\n\t\tthis._shapes.px.children[0].setAttribute(\"stroke\", this._colorX.toString(false));\n\t\tthis._shapes.nx.children[0].setAttribute(\"stroke\", this._colorX.toString(false));\n\t\tthis._shapes.xaxis.setAttribute(\"stroke\", this._colorX.toString(false));\n\t}\n\tget colorX() {\n\t\treturn this._colorX;\n\t}\n\tset colorY(value) {\n\t\tthis._colorY.copy(value);\n\t\tthis._shapes.py.children[0].setAttribute(\"fill\", this._colorY.toString(false));\n\t\tthis._shapes.py.children[0].setAttribute(\"stroke\", this._colorY.toString(false));\n\t\tthis._shapes.ny.children[0].setAttribute(\"stroke\", this._colorY.toString(false));\n\t\tthis._shapes.yaxis.setAttribute(\"stroke\", this._colorY.toString(false));\n\t}\n\tget colorY() {\n\t\treturn this._colorY;\n\t}\n\tset colorZ(value) {\n\t\tthis._colorZ.copy(value);\n\t\tthis._shapes.pz.children[0].setAttribute(\"fill\", this._colorZ.toString(false));\n\t\tthis._shapes.pz.children[0].setAttribute(\"stroke\", this._colorZ.toString(false));\n\t\tthis._shapes.nz.children[0].setAttribute(\"stroke\", this._colorZ.toString(false));\n\t\tthis._shapes.zaxis.setAttribute(\"stroke\", this._colorZ.toString(false));\n\t}\n\tget colorZ() {\n\t\treturn this._colorZ;\n\t}\n\tset colorNeg(value) {\n\t\tthis._colorNeg.copy(value);\n\t\tthis._shapes.px.children[0].setAttribute(\"fill\", this._colorNeg.toString(false));\n\t\tthis._shapes.py.children[0].setAttribute(\"fill\", this._colorNeg.toString(false));\n\t\tthis._shapes.pz.children[0].setAttribute(\"fill\", this._colorNeg.toString(false));\n\t}\n\tget colorNeg() {\n\t\treturn this._colorNeg;\n\t}\n\tset radius(value) {\n\t\tthis._radius = value;\n\t\tthis._shapes.px.children[0].setAttribute(\"r\", `${value}`);\n\t\tthis._shapes.py.children[0].setAttribute(\"r\", `${value}`);\n\t\tthis._shapes.pz.children[0].setAttribute(\"r\", `${value}`);\n\t\tthis._shapes.nx.children[0].setAttribute(\"r\", `${value}`);\n\t\tthis._shapes.ny.children[0].setAttribute(\"r\", `${value}`);\n\t\tthis._shapes.nz.children[0].setAttribute(\"r\", `${value}`);\n\t\tthis._resize();\n\t}\n\tget radius() {\n\t\treturn this._radius;\n\t}\n\tset textSize(value) {\n\t\tthis._textSize = value;\n\t\tthis._shapes.px.children[1].setAttribute(\"font-size\", `${value}`);\n\t\tthis._shapes.py.children[1].setAttribute(\"font-size\", `${value}`);\n\t\tthis._shapes.pz.children[1].setAttribute(\"font-size\", `${value}`);\n\t}\n\tget textSize() {\n\t\treturn this._textSize;\n\t}\n\tset lineThickness(value) {\n\t\tthis._lineThickness = value;\n\t\tthis._shapes.xaxis.setAttribute(\"stroke-width\", `${value}`);\n\t\tthis._shapes.yaxis.setAttribute(\"stroke-width\", `${value}`);\n\t\tthis._shapes.zaxis.setAttribute(\"stroke-width\", `${value}`);\n\t\tthis._shapes.px.children[0].setAttribute(\"stroke-width\", `${value}`);\n\t\tthis._shapes.py.children[0].setAttribute(\"stroke-width\", `${value}`);\n\t\tthis._shapes.pz.children[0].setAttribute(\"stroke-width\", `${value}`);\n\t\tthis._shapes.nx.children[0].setAttribute(\"stroke-width\", `${value}`);\n\t\tthis._shapes.ny.children[0].setAttribute(\"stroke-width\", `${value}`);\n\t\tthis._shapes.nz.children[0].setAttribute(\"stroke-width\", `${value}`);\n\t\tthis._resize();\n\t}\n\tget lineThickness() {\n\t\treturn this._lineThickness;\n\t}\n\tset lineLength(value) {\n\t\tthis._lineLength = value;\n\t\tthis._resize();\n\t}\n\tget lineLength() {\n\t\treturn this._lineLength;\n\t}\n\t_resize() {\n\t\tthis._size = 2 * (this.lineLength + this.radius + this.lineThickness);\n\t\tthis.dom.style.width = `${this._size}px`;\n\t\tthis.dom.style.height = `${this._size}px`;\n\t\tthis._svg.setAttribute(\"width\", `${this._size}`);\n\t\tthis._svg.setAttribute(\"height\", `${this._size}`);\n\t\tthis._group.setAttribute(\"transform\", `translate(${this._size * 0.5}, ${this._size * 0.5})`);\n\t}\n\t_transform(group, x3, y2) {\n\t\tgroup.setAttribute(\"transform\", `translate(${x3 * this._lineLength}, ${y2 * this._lineLength})`);\n\t}\n\t_x2y2(line, x3, y2) {\n\t\tline.setAttribute(\"x2\", `${x3 * this._lineLength}`);\n\t\tline.setAttribute(\"y2\", `${y2 * this._lineLength}`);\n\t}\n\t_line(color3) {\n\t\tconst result = document.createElementNS(this._svg.namespaceURI, \"line\");\n\t\tresult.setAttribute(\"stroke\", color3);\n\t\tresult.setAttribute(\"stroke-width\", `${this._lineThickness}`);\n\t\tthis._group.appendChild(result);\n\t\treturn result;\n\t}\n\t_circle(color3, fill = false, text) {\n\t\tconst group = document.createElementNS(this._svg.namespaceURI, \"g\");\n\t\tconst circle = document.createElementNS(this._svg.namespaceURI, \"circle\");\n\t\tcircle.setAttribute(\"fill\", fill ? color3 : this._colorNeg.toString(false));\n\t\tcircle.setAttribute(\"stroke\", color3);\n\t\tcircle.setAttribute(\"stroke-width\", `${this._lineThickness}`);\n\t\tcircle.setAttribute(\"r\", `${this._radius}`);\n\t\tcircle.setAttribute(\"cx\", \"0\");\n\t\tcircle.setAttribute(\"cy\", \"0\");\n\t\tcircle.setAttribute(\"pointer-events\", \"all\");\n\t\tgroup.appendChild(circle);\n\t\tif (text) {\n\t\t\tconst t = document.createElementNS(this._svg.namespaceURI, \"text\");\n\t\t\tt.setAttribute(\"font-size\", `${this._textSize}`);\n\t\t\tt.setAttribute(\"font-family\", \"Arial\");\n\t\t\tt.setAttribute(\"font-weight\", \"bold\");\n\t\t\tt.setAttribute(\"text-anchor\", \"middle\");\n\t\t\tt.setAttribute(\"alignment-baseline\", \"central\");\n\t\t\tt.textContent = text;\n\t\t\tgroup.appendChild(t);\n\t\t}\n\t\tgroup.setAttribute(\"cursor\", \"pointer\");\n\t\tthis._group.appendChild(group);\n\t\treturn group;\n\t}\n\tupdate(cameraMatrix) {\n\t\tif (!this._size) {\n\t\t\treturn;\n\t\t}\n\t\ttmpM1.invert(cameraMatrix);\n\t\ttmpM1.getX(tmpV16);\n\t\ttmpM1.getY(tmpV24);\n\t\ttmpM1.getZ(tmpV32);\n\t\tthis._transform(this._shapes.px, tmpV16.x, -tmpV16.y);\n\t\tthis._transform(this._shapes.nx, -tmpV16.x, tmpV16.y);\n\t\tthis._transform(this._shapes.py, tmpV24.x, -tmpV24.y);\n\t\tthis._transform(this._shapes.ny, -tmpV24.x, tmpV24.y);\n\t\tthis._transform(this._shapes.pz, tmpV32.x, -tmpV32.y);\n\t\tthis._transform(this._shapes.nz, -tmpV32.x, tmpV32.y);\n\t\tthis._x2y2(this._shapes.xaxis, tmpV16.x, -tmpV16.y);\n\t\tthis._x2y2(this._shapes.yaxis, tmpV24.x, -tmpV24.y);\n\t\tthis._x2y2(this._shapes.zaxis, tmpV32.x, -tmpV32.y);\n\t\tconst order = [\n\t\t\t{ n: [\"xaxis\", \"px\"], value: tmpV16.z },\n\t\t\t{ n: [\"yaxis\", \"py\"], value: tmpV24.z },\n\t\t\t{ n: [\"zaxis\", \"pz\"], value: tmpV32.z },\n\t\t\t{ n: [\"nx\"], value: -tmpV16.z },\n\t\t\t{ n: [\"ny\"], value: -tmpV24.z },\n\t\t\t{ n: [\"nz\"], value: -tmpV32.z }\n\t\t].sort((a, b) => a.value - b.value);\n\t\tconst fragment = document.createDocumentFragment();\n\t\torder.forEach((o) => {\n\t\t\to.n.forEach((n) => {\n\t\t\t\tfragment.appendChild(this._shapes[n]);\n\t\t\t});\n\t\t});\n\t\tthis._group.appendChild(fragment);\n\t}\n\tdestroy() {\n\t\tthis.dom.remove();\n\t\tthis.off();\n\t}\n};\nexport {\n\tABSOLUTE_URL,\n\tACTION_GAMEPAD,\n\tACTION_KEYBOARD,\n\tACTION_MOUSE,\n\tADDRESS_CLAMP_TO_EDGE,\n\tADDRESS_MIRRORED_REPEAT,\n\tADDRESS_REPEAT,\n\tAMBIENTSRC_AMBIENTSH,\n\tAMBIENTSRC_CONSTANT,\n\tAMBIENTSRC_ENVALATLAS,\n\tANIM_BLEND_1D,\n\tANIM_BLEND_2D_CARTESIAN,\n\tANIM_BLEND_2D_DIRECTIONAL,\n\tANIM_BLEND_DIRECT,\n\tANIM_CONTROL_STATES,\n\tANIM_EQUAL_TO,\n\tANIM_GREATER_THAN,\n\tANIM_GREATER_THAN_EQUAL_TO,\n\tANIM_INTERRUPTION_NEXT,\n\tANIM_INTERRUPTION_NEXT_PREV,\n\tANIM_INTERRUPTION_NONE,\n\tANIM_INTERRUPTION_PREV,\n\tANIM_INTERRUPTION_PREV_NEXT,\n\tANIM_LAYER_ADDITIVE,\n\tANIM_LAYER_OVERWRITE,\n\tANIM_LESS_THAN,\n\tANIM_LESS_THAN_EQUAL_TO,\n\tANIM_NOT_EQUAL_TO,\n\tANIM_PARAMETER_BOOLEAN,\n\tANIM_PARAMETER_FLOAT,\n\tANIM_PARAMETER_INTEGER,\n\tANIM_PARAMETER_TRIGGER,\n\tANIM_STATE_ANY,\n\tANIM_STATE_END,\n\tANIM_STATE_START,\n\tASPECT_AUTO,\n\tASPECT_MANUAL,\n\tASSET_ANIMATION,\n\tASSET_AUDIO,\n\tASSET_CONTAINER,\n\tASSET_CSS,\n\tASSET_CUBEMAP,\n\tASSET_HTML,\n\tASSET_IMAGE,\n\tASSET_JSON,\n\tASSET_MATERIAL,\n\tASSET_MODEL,\n\tASSET_SCRIPT,\n\tASSET_SHADER,\n\tASSET_TEXT,\n\tASSET_TEXTURE,\n\tASSET_TEXTUREATLAS,\n\tAXIS_KEY,\n\tAXIS_MOUSE_X,\n\tAXIS_MOUSE_Y,\n\tAXIS_PAD_L_X,\n\tAXIS_PAD_L_Y,\n\tAXIS_PAD_R_X,\n\tAXIS_PAD_R_Y,\n\tAmmoPhysicsWorld,\n\tAnimBinder,\n\tAnimClip,\n\tAnimClipHandler,\n\tAnimComponent,\n\tAnimComponentLayer,\n\tAnimComponentSystem,\n\tAnimController,\n\tAnimCurve,\n\tAnimData,\n\tAnimEvaluator,\n\tAnimEvents,\n\tAnimSnapshot,\n\tAnimStateGraph,\n\tAnimStateGraphHandler,\n\tAnimTarget,\n\tAnimTrack,\n\tAnimation,\n\tAnimationComponent,\n\tAnimationComponentSystem,\n\tAnimationHandler,\n\tAnimationKey,\n\tAnimationNode,\n\tAppBase,\n\tAppOptions,\n\tApplication,\n\tAsset,\n\tAssetListLoader,\n\tAssetReference,\n\tAssetRegistry,\n\tAudioHandler,\n\tAudioListenerComponent,\n\tAudioListenerComponentSystem,\n\tBAKE_COLOR,\n\tBAKE_COLORDIR,\n\tBINDGROUP_MESH,\n\tBINDGROUP_MESH_UB,\n\tBINDGROUP_VIEW,\n\tBLENDEQUATION_ADD,\n\tBLENDEQUATION_MAX,\n\tBLENDEQUATION_MIN,\n\tBLENDEQUATION_REVERSE_SUBTRACT,\n\tBLENDEQUATION_SUBTRACT,\n\tBLENDMODE_CONSTANT,\n\tBLENDMODE_CONSTANT_ALPHA,\n\tBLENDMODE_CONSTANT_COLOR,\n\tBLENDMODE_DST_ALPHA,\n\tBLENDMODE_DST_COLOR,\n\tBLENDMODE_ONE,\n\tBLENDMODE_ONE_MINUS_CONSTANT,\n\tBLENDMODE_ONE_MINUS_CONSTANT_ALPHA,\n\tBLENDMODE_ONE_MINUS_CONSTANT_COLOR,\n\tBLENDMODE_ONE_MINUS_DST_ALPHA,\n\tBLENDMODE_ONE_MINUS_DST_COLOR,\n\tBLENDMODE_ONE_MINUS_SRC1_ALPHA,\n\tBLENDMODE_ONE_MINUS_SRC1_COLOR,\n\tBLENDMODE_ONE_MINUS_SRC_ALPHA,\n\tBLENDMODE_ONE_MINUS_SRC_COLOR,\n\tBLENDMODE_SRC1_ALPHA,\n\tBLENDMODE_SRC1_COLOR,\n\tBLENDMODE_SRC_ALPHA,\n\tBLENDMODE_SRC_ALPHA_SATURATE,\n\tBLENDMODE_SRC_COLOR,\n\tBLENDMODE_ZERO,\n\tBLEND_ADDITIVE,\n\tBLEND_ADDITIVEALPHA,\n\tBLEND_MAX,\n\tBLEND_MIN,\n\tBLEND_MULTIPLICATIVE,\n\tBLEND_MULTIPLICATIVE2X,\n\tBLEND_NONE,\n\tBLEND_NORMAL,\n\tBLEND_PREMULTIPLIED,\n\tBLEND_SCREEN,\n\tBLEND_SUBTRACTIVE,\n\tBLUR_BOX,\n\tBLUR_GAUSSIAN,\n\tBODYFLAG_KINEMATIC_OBJECT,\n\tBODYFLAG_NORESPONSE_OBJECT,\n\tBODYFLAG_STATIC_OBJECT,\n\tBODYGROUP_DEFAULT,\n\tBODYGROUP_DYNAMIC,\n\tBODYGROUP_ENGINE_1,\n\tBODYGROUP_ENGINE_2,\n\tBODYGROUP_ENGINE_3,\n\tBODYGROUP_KINEMATIC,\n\tBODYGROUP_NONE,\n\tBODYGROUP_STATIC,\n\tBODYGROUP_TRIGGER,\n\tBODYGROUP_USER_1,\n\tBODYGROUP_USER_2,\n\tBODYGROUP_USER_3,\n\tBODYGROUP_USER_4,\n\tBODYGROUP_USER_5,\n\tBODYGROUP_USER_6,\n\tBODYGROUP_USER_7,\n\tBODYGROUP_USER_8,\n\tBODYMASK_ALL,\n\tBODYMASK_NONE,\n\tBODYMASK_NOT_STATIC,\n\tBODYMASK_NOT_STATIC_KINEMATIC,\n\tBODYMASK_STATIC,\n\tBODYSTATE_ACTIVE_TAG,\n\tBODYSTATE_DISABLE_DEACTIVATION,\n\tBODYSTATE_DISABLE_SIMULATION,\n\tBODYSTATE_ISLAND_SLEEPING,\n\tBODYSTATE_WANTS_DEACTIVATION,\n\tBODYTYPE_DYNAMIC,\n\tBODYTYPE_KINEMATIC,\n\tBODYTYPE_STATIC,\n\tBUFFERUSAGE_COPY_DST,\n\tBUFFERUSAGE_COPY_SRC,\n\tBUFFERUSAGE_INDEX,\n\tBUFFERUSAGE_INDIRECT,\n\tBUFFERUSAGE_READ,\n\tBUFFERUSAGE_STORAGE,\n\tBUFFERUSAGE_UNIFORM,\n\tBUFFERUSAGE_VERTEX,\n\tBUFFERUSAGE_WRITE,\n\tBUFFER_DYNAMIC,\n\tBUFFER_GPUDYNAMIC,\n\tBUFFER_STATIC,\n\tBUFFER_STREAM,\n\tBUTTON_TRANSITION_MODE_SPRITE_CHANGE,\n\tBUTTON_TRANSITION_MODE_TINT,\n\tBatch,\n\tBatchGroup,\n\tBatchManager,\n\tBinaryHandler,\n\tBindGroupFormat,\n\tBindStorageBufferFormat,\n\tBindStorageTextureFormat,\n\tBindTextureFormat,\n\tBindUniformBufferFormat,\n\tBlendState,\n\tBoundingBox,\n\tBoundingSphere,\n\tBoxGeometry,\n\tBundle,\n\tBundleHandler,\n\tBundleRegistry,\n\tButtonComponent,\n\tButtonComponentSystem,\n\tCHUNKAPI_1_51,\n\tCHUNKAPI_1_55,\n\tCHUNKAPI_1_56,\n\tCHUNKAPI_1_57,\n\tCHUNKAPI_1_58,\n\tCHUNKAPI_1_60,\n\tCHUNKAPI_1_62,\n\tCHUNKAPI_1_65,\n\tCHUNKAPI_1_70,\n\tCHUNKAPI_2_1,\n\tCHUNKAPI_2_3,\n\tCHUNKAPI_2_5,\n\tCHUNKAPI_2_6,\n\tCHUNKAPI_2_7,\n\tCHUNKAPI_2_8,\n\tCLEARFLAG_COLOR,\n\tCLEARFLAG_DEPTH,\n\tCLEARFLAG_STENCIL,\n\tCUBEFACE_NEGX,\n\tCUBEFACE_NEGY,\n\tCUBEFACE_NEGZ,\n\tCUBEFACE_POSX,\n\tCUBEFACE_POSY,\n\tCUBEFACE_POSZ,\n\tCUBEPROJ_BOX,\n\tCUBEPROJ_NONE,\n\tCULLFACE_BACK,\n\tCULLFACE_FRONT,\n\tCULLFACE_FRONTANDBACK,\n\tCULLFACE_NONE,\n\tCURVE_LINEAR,\n\tCURVE_SMOOTHSTEP,\n\tCURVE_SPLINE,\n\tCURVE_STEP,\n\tCamera,\n\tCameraComponent,\n\tCameraComponentSystem,\n\tCameraFrame,\n\tCameraFrameOptions,\n\tCanvasFont,\n\tCapsuleGeometry,\n\tChunkUtils,\n\tCircleGeometry,\n\tCollisionComponent,\n\tCollisionComponentSystem,\n\tColor,\n\tComponent,\n\tComponentSystem,\n\tComponentSystemRegistry,\n\tCompute,\n\tComputeRadixSort,\n\tConeGeometry,\n\tContactPoint,\n\tContactResult,\n\tContainerHandler,\n\tContainerResource,\n\tController,\n\tCssHandler,\n\tCubemapHandler,\n\tCurve,\n\tCurveSet,\n\tCylinderGeometry,\n\tDEPTHRESOLVE_MAX,\n\tDEPTHRESOLVE_MIN,\n\tDEPTHRESOLVE_SAMPLE0,\n\tDETAILMODE_ADD,\n\tDETAILMODE_MAX,\n\tDETAILMODE_MIN,\n\tDETAILMODE_MUL,\n\tDETAILMODE_OVERLAY,\n\tDETAILMODE_SCREEN,\n\tDEVICETYPE_NULL,\n\tDEVICETYPE_WEBGL2,\n\tDEVICETYPE_WEBGPU,\n\tDEVICETYPE_WEBGPU_BARE,\n\tDISPLAYFORMAT_HDR,\n\tDISPLAYFORMAT_LDR,\n\tDISPLAYFORMAT_LDR_SRGB,\n\tDISTANCE_EXPONENTIAL,\n\tDISTANCE_INVERSE,\n\tDISTANCE_LINEAR,\n\tDITHER_BAYER16,\n\tDITHER_BAYER2,\n\tDITHER_BAYER4,\n\tDITHER_BAYER8,\n\tDITHER_BLUENOISE,\n\tDITHER_IGNNOISE,\n\tDITHER_NONE,\n\tDefaultAnimBinder,\n\tDepthState,\n\tDomeGeometry,\n\tDrawCommands,\n\tDualGestureSource,\n\tELEMENTTYPE_GROUP,\n\tELEMENTTYPE_IMAGE,\n\tELEMENTTYPE_TEXT,\n\tEMITTERSHAPE_BOX,\n\tEMITTERSHAPE_SPHERE,\n\tEVENT_CULL_END,\n\tEVENT_GAMEPADCONNECTED,\n\tEVENT_GAMEPADDISCONNECTED,\n\tEVENT_KEYDOWN,\n\tEVENT_KEYUP,\n\tEVENT_MOUSEDOWN,\n\tEVENT_MOUSEMOVE,\n\tEVENT_MOUSEUP,\n\tEVENT_MOUSEWHEEL,\n\tEVENT_POSTCULL,\n\tEVENT_POSTRENDER,\n\tEVENT_POSTRENDER_LAYER,\n\tEVENT_PRECULL,\n\tEVENT_PRERENDER,\n\tEVENT_PRERENDER_LAYER,\n\tEVENT_SELECT,\n\tEVENT_SELECTEND,\n\tEVENT_SELECTSTART,\n\tEVENT_TOUCHCANCEL,\n\tEVENT_TOUCHEND,\n\tEVENT_TOUCHMOVE,\n\tEVENT_TOUCHSTART,\n\tElementComponent,\n\tElementComponentSystem,\n\tElementDragHelper,\n\tElementInput,\n\tElementInputEvent,\n\tElementMouseEvent,\n\tElementSelectEvent,\n\tElementTouchEvent,\n\tEntity,\n\tEnvLighting,\n\tEventHandle,\n\tEventHandler,\n\tFILLMODE_FILL_WINDOW,\n\tFILLMODE_KEEP_ASPECT,\n\tFILLMODE_NONE,\n\tFILTER_LINEAR,\n\tFILTER_LINEAR_MIPMAP_LINEAR,\n\tFILTER_LINEAR_MIPMAP_NEAREST,\n\tFILTER_NEAREST,\n\tFILTER_NEAREST_MIPMAP_LINEAR,\n\tFILTER_NEAREST_MIPMAP_NEAREST,\n\tFITMODE_CONTAIN,\n\tFITMODE_COVER,\n\tFITMODE_STRETCH,\n\tFITTING_BOTH,\n\tFITTING_NONE,\n\tFITTING_SHRINK,\n\tFITTING_STRETCH,\n\tFOG_EXP,\n\tFOG_EXP2,\n\tFOG_LINEAR,\n\tFOG_NONE,\n\tFONT_BITMAP,\n\tFONT_MSDF,\n\tFRESNEL_NONE,\n\tFRESNEL_SCHLICK,\n\tFRONTFACE_CCW,\n\tFRONTFACE_CW,\n\tFUNC_ALWAYS,\n\tFUNC_EQUAL,\n\tFUNC_GREATER,\n\tFUNC_GREATEREQUAL,\n\tFUNC_LESS,\n\tFUNC_LESSEQUAL,\n\tFUNC_NEVER,\n\tFUNC_NOTEQUAL,\n\tFloatPacking,\n\tFlyController,\n\tFocusController,\n\tFogParams,\n\tFolderHandler,\n\tFont,\n\tFontHandler,\n\tForwardRenderer,\n\tFramePass,\n\tFramePassBloom,\n\tFramePassCameraFrame,\n\tFramePassColorGrab,\n\tFramePassDof,\n\tFrustum,\n\tGAMMA_NONE,\n\tGAMMA_SRGB,\n\tGIZMOAXIS_FACE,\n\tGIZMOAXIS_X,\n\tGIZMOAXIS_XY,\n\tGIZMOAXIS_XYZ,\n\tGIZMOAXIS_XZ,\n\tGIZMOAXIS_Y,\n\tGIZMOAXIS_YZ,\n\tGIZMOAXIS_Z,\n\tGIZMOSPACE_LOCAL,\n\tGIZMOSPACE_WORLD,\n\tGSPLATDATA_COMPACT,\n\tGSPLATDATA_LARGE,\n\tGSPLAT_DEBUG_AABBS,\n\tGSPLAT_DEBUG_HEATMAP,\n\tGSPLAT_DEBUG_LOD,\n\tGSPLAT_DEBUG_NODE_AABBS,\n\tGSPLAT_DEBUG_NONE,\n\tGSPLAT_DEBUG_SH_UPDATE,\n\tGSPLAT_FORWARD,\n\tGSPLAT_LODMODE_DISTANCE,\n\tGSPLAT_LODMODE_ERROR,\n\tGSPLAT_RENDERER_AUTO,\n\tGSPLAT_RENDERER_COMPUTE,\n\tGSPLAT_RENDERER_RASTER_CPU_SORT,\n\tGSPLAT_RENDERER_RASTER_GPU_SORT,\n\tGSPLAT_SHADOW,\n\tGSPLAT_STREAM_INSTANCE,\n\tGSPLAT_STREAM_RESOURCE,\n\tGSplatComponent,\n\tGSplatComponentSystem,\n\tGSplatContainer,\n\tGSplatData,\n\tGSplatFormat,\n\tGSplatHandler,\n\tGSplatInstance,\n\tGSplatProcessor,\n\tGSplatResource,\n\tGSplatResourceBase,\n\tGSplatSogData,\n\tGSplatSogResource,\n\tGSplatVaryings,\n\tGamePads,\n\tGamepadSource,\n\tGeometry,\n\tGizmo,\n\tGltfExporter,\n\tGraphNode,\n\tGraphicsDevice,\n\tHierarchyHandler,\n\tHtmlHandler,\n\tHttp,\n\tI18n,\n\tINDEXFORMAT_UINT16,\n\tINDEXFORMAT_UINT32,\n\tINDEXFORMAT_UINT8,\n\tINTERPOLATION_CUBIC,\n\tINTERPOLATION_LINEAR,\n\tINTERPOLATION_STEP,\n\tImageElement,\n\tIndexBuffer,\n\tIndexedList,\n\tInputConsumer,\n\tInputController,\n\tInputDelta,\n\tInputFrame,\n\tInputSource,\n\tJOINTTYPE_6DOF,\n\tJOINTTYPE_BALL,\n\tJOINTTYPE_FIXED,\n\tJOINTTYPE_HINGE,\n\tJOINTTYPE_SLIDER,\n\tJointComponent,\n\tJointComponentSystem,\n\tJsonHandler,\n\tJsonStandardMaterialParser,\n\tKEY_0,\n\tKEY_1,\n\tKEY_2,\n\tKEY_3,\n\tKEY_4,\n\tKEY_5,\n\tKEY_6,\n\tKEY_7,\n\tKEY_8,\n\tKEY_9,\n\tKEY_A,\n\tKEY_ADD,\n\tKEY_ALT,\n\tKEY_B,\n\tKEY_BACKSPACE,\n\tKEY_BACK_SLASH,\n\tKEY_C,\n\tKEY_CAPS_LOCK,\n\tKEY_CLOSE_BRACKET,\n\tKEY_COMMA,\n\tKEY_CONTEXT_MENU,\n\tKEY_CONTROL,\n\tKEY_D,\n\tKEY_DECIMAL,\n\tKEY_DELETE,\n\tKEY_DIVIDE,\n\tKEY_DOWN,\n\tKEY_E,\n\tKEY_END,\n\tKEY_ENTER,\n\tKEY_EQUAL,\n\tKEY_ESCAPE,\n\tKEY_F,\n\tKEY_F1,\n\tKEY_F10,\n\tKEY_F11,\n\tKEY_F12,\n\tKEY_F2,\n\tKEY_F3,\n\tKEY_F4,\n\tKEY_F5,\n\tKEY_F6,\n\tKEY_F7,\n\tKEY_F8,\n\tKEY_F9,\n\tKEY_G,\n\tKEY_H,\n\tKEY_HOME,\n\tKEY_I,\n\tKEY_INSERT,\n\tKEY_J,\n\tKEY_K,\n\tKEY_L,\n\tKEY_LEFT,\n\tKEY_M,\n\tKEY_META,\n\tKEY_MULTIPLY,\n\tKEY_N,\n\tKEY_NUMPAD_0,\n\tKEY_NUMPAD_1,\n\tKEY_NUMPAD_2,\n\tKEY_NUMPAD_3,\n\tKEY_NUMPAD_4,\n\tKEY_NUMPAD_5,\n\tKEY_NUMPAD_6,\n\tKEY_NUMPAD_7,\n\tKEY_NUMPAD_8,\n\tKEY_NUMPAD_9,\n\tKEY_O,\n\tKEY_OPEN_BRACKET,\n\tKEY_P,\n\tKEY_PAGE_DOWN,\n\tKEY_PAGE_UP,\n\tKEY_PAUSE,\n\tKEY_PERIOD,\n\tKEY_PRINT_SCREEN,\n\tKEY_Q,\n\tKEY_R,\n\tKEY_RETURN,\n\tKEY_RIGHT,\n\tKEY_S,\n\tKEY_SEMICOLON,\n\tKEY_SEPARATOR,\n\tKEY_SHIFT,\n\tKEY_SLASH,\n\tKEY_SPACE,\n\tKEY_SUBTRACT,\n\tKEY_T,\n\tKEY_TAB,\n\tKEY_U,\n\tKEY_UP,\n\tKEY_V,\n\tKEY_W,\n\tKEY_WINDOWS,\n\tKEY_X,\n\tKEY_Y,\n\tKEY_Z,\n\tKernel,\n\tKey,\n\tKeyboard,\n\tKeyboardEvent,\n\tKeyboardMouseSource,\n\tLAYERID_DEPTH,\n\tLAYERID_IMMEDIATE,\n\tLAYERID_SKYBOX,\n\tLAYERID_UI,\n\tLAYERID_WORLD,\n\tLAYER_GIZMO,\n\tLAYER_HUD,\n\tLAYER_WORLD,\n\tLIGHTFALLOFF_INVERSESQUARED,\n\tLIGHTFALLOFF_LINEAR,\n\tLIGHTSHAPE_DISK,\n\tLIGHTSHAPE_PUNCTUAL,\n\tLIGHTSHAPE_RECT,\n\tLIGHTSHAPE_SPHERE,\n\tLIGHTTYPE_COUNT,\n\tLIGHTTYPE_DIRECTIONAL,\n\tLIGHTTYPE_OMNI,\n\tLIGHTTYPE_POINT,\n\tLIGHTTYPE_SPOT,\n\tLIGHT_COLOR_DIVIDER,\n\tLINECAP_BUTT,\n\tLINECAP_ROUND,\n\tLINECAP_SQUARE,\n\tLINEJOIN_BEVEL,\n\tLINEJOIN_MITER,\n\tLINEJOIN_ROUND,\n\tLINEWIDTH_SCREEN,\n\tLINEWIDTH_WORLD,\n\tLayer,\n\tLayerComposition,\n\tLayoutCalculator,\n\tLayoutChildComponent,\n\tLayoutChildComponentSystem,\n\tLayoutGroupComponent,\n\tLayoutGroupComponentSystem,\n\tLight,\n\tLightComponent,\n\tLightComponentSystem,\n\tLightingParams,\n\tLightmapper,\n\tLitMaterial,\n\tLitOptions,\n\tLitShaderOptions,\n\tLocalizedAsset,\n\tMASK_AFFECT_DYNAMIC,\n\tMASK_AFFECT_LIGHTMAPPED,\n\tMASK_BAKE,\n\tMOTION_FREE,\n\tMOTION_LIMITED,\n\tMOTION_LOCKED,\n\tMOUSEBUTTON_LEFT,\n\tMOUSEBUTTON_MIDDLE,\n\tMOUSEBUTTON_NONE,\n\tMOUSEBUTTON_RIGHT,\n\tMat3,\n\tMat4,\n\tMaterial,\n\tMaterialHandler,\n\tMesh,\n\tMeshInstance,\n\tMiniStats,\n\tModel,\n\tModelComponent,\n\tModelComponentSystem,\n\tModelHandler,\n\tMorph,\n\tMorphInstance,\n\tMorphTarget,\n\tMouse,\n\tMouseEvent,\n\tMultiTouchSource,\n\tNode,\n\tNullGraphicsDevice,\n\tNullPhysicsWorld,\n\tORIENTATION_HORIZONTAL,\n\tORIENTATION_VERTICAL,\n\tOrbitController,\n\tOrientedBox,\n\tOutlineRenderer,\n\tPAD_1,\n\tPAD_2,\n\tPAD_3,\n\tPAD_4,\n\tPAD_DOWN,\n\tPAD_FACE_1,\n\tPAD_FACE_2,\n\tPAD_FACE_3,\n\tPAD_FACE_4,\n\tPAD_LEFT,\n\tPAD_L_SHOULDER_1,\n\tPAD_L_SHOULDER_2,\n\tPAD_L_STICK_BUTTON,\n\tPAD_L_STICK_X,\n\tPAD_L_STICK_Y,\n\tPAD_RIGHT,\n\tPAD_R_SHOULDER_1,\n\tPAD_R_SHOULDER_2,\n\tPAD_R_STICK_BUTTON,\n\tPAD_R_STICK_X,\n\tPAD_R_STICK_Y,\n\tPAD_SELECT,\n\tPAD_START,\n\tPAD_UP,\n\tPAD_VENDOR,\n\tPARALLAX_OCCLUSION,\n\tPARALLAX_OFFSET,\n\tPARTICLEMODE_CPU,\n\tPARTICLEMODE_GPU,\n\tPARTICLEORIENTATION_EMITTER,\n\tPARTICLEORIENTATION_SCREEN,\n\tPARTICLEORIENTATION_WORLD,\n\tPARTICLESORT_DISTANCE,\n\tPARTICLESORT_NEWER_FIRST,\n\tPARTICLESORT_NONE,\n\tPARTICLESORT_OLDER_FIRST,\n\tPIXELFORMAT_111110F,\n\tPIXELFORMAT_A8,\n\tPIXELFORMAT_ASTC_4x4,\n\tPIXELFORMAT_ASTC_4x4_SRGB,\n\tPIXELFORMAT_ATC_RGB,\n\tPIXELFORMAT_ATC_RGBA,\n\tPIXELFORMAT_BC6F,\n\tPIXELFORMAT_BC6UF,\n\tPIXELFORMAT_BC7,\n\tPIXELFORMAT_BC7_SRGBA,\n\tPIXELFORMAT_BGRA8,\n\tPIXELFORMAT_DEPTH,\n\tPIXELFORMAT_DEPTH16,\n\tPIXELFORMAT_DEPTHSTENCIL,\n\tPIXELFORMAT_DXT1,\n\tPIXELFORMAT_DXT1_SRGB,\n\tPIXELFORMAT_DXT3,\n\tPIXELFORMAT_DXT3_SRGBA,\n\tPIXELFORMAT_DXT5,\n\tPIXELFORMAT_DXT5_SRGBA,\n\tPIXELFORMAT_ETC1,\n\tPIXELFORMAT_ETC2_RGB,\n\tPIXELFORMAT_ETC2_RGBA,\n\tPIXELFORMAT_ETC2_SRGB,\n\tPIXELFORMAT_ETC2_SRGBA,\n\tPIXELFORMAT_L8,\n\tPIXELFORMAT_L8_A8,\n\tPIXELFORMAT_LA8,\n\tPIXELFORMAT_PVRTC_2BPP_RGBA_1,\n\tPIXELFORMAT_PVRTC_2BPP_RGB_1,\n\tPIXELFORMAT_PVRTC_4BPP_RGBA_1,\n\tPIXELFORMAT_PVRTC_4BPP_RGB_1,\n\tPIXELFORMAT_R16F,\n\tPIXELFORMAT_R16I,\n\tPIXELFORMAT_R16U,\n\tPIXELFORMAT_R32F,\n\tPIXELFORMAT_R32I,\n\tPIXELFORMAT_R32U,\n\tPIXELFORMAT_R4_G4_B4_A4,\n\tPIXELFORMAT_R5_G5_B5_A1,\n\tPIXELFORMAT_R5_G6_B5,\n\tPIXELFORMAT_R8,\n\tPIXELFORMAT_R8I,\n\tPIXELFORMAT_R8U,\n\tPIXELFORMAT_R8_G8_B8,\n\tPIXELFORMAT_R8_G8_B8_A8,\n\tPIXELFORMAT_RG16F,\n\tPIXELFORMAT_RG16I,\n\tPIXELFORMAT_RG16U,\n\tPIXELFORMAT_RG32F,\n\tPIXELFORMAT_RG32I,\n\tPIXELFORMAT_RG32U,\n\tPIXELFORMAT_RG8,\n\tPIXELFORMAT_RG8I,\n\tPIXELFORMAT_RG8S,\n\tPIXELFORMAT_RG8U,\n\tPIXELFORMAT_RGB10A2,\n\tPIXELFORMAT_RGB10A2U,\n\tPIXELFORMAT_RGB16F,\n\tPIXELFORMAT_RGB32F,\n\tPIXELFORMAT_RGB565,\n\tPIXELFORMAT_RGB8,\n\tPIXELFORMAT_RGB9E5,\n\tPIXELFORMAT_RGBA16F,\n\tPIXELFORMAT_RGBA16I,\n\tPIXELFORMAT_RGBA16U,\n\tPIXELFORMAT_RGBA32F,\n\tPIXELFORMAT_RGBA32I,\n\tPIXELFORMAT_RGBA32U,\n\tPIXELFORMAT_RGBA4,\n\tPIXELFORMAT_RGBA5551,\n\tPIXELFORMAT_RGBA8,\n\tPIXELFORMAT_RGBA8I,\n\tPIXELFORMAT_RGBA8S,\n\tPIXELFORMAT_RGBA8U,\n\tPIXELFORMAT_SBGRA8,\n\tPIXELFORMAT_SRGB,\n\tPIXELFORMAT_SRGB8,\n\tPIXELFORMAT_SRGBA,\n\tPIXELFORMAT_SRGBA8,\n\tPRIMITIVE_LINELOOP,\n\tPRIMITIVE_LINES,\n\tPRIMITIVE_LINESTRIP,\n\tPRIMITIVE_POINTS,\n\tPRIMITIVE_TRIANGLES,\n\tPRIMITIVE_TRIFAN,\n\tPRIMITIVE_TRISTRIP,\n\tPROJECTION_ORTHOGRAPHIC,\n\tPROJECTION_PERSPECTIVE,\n\tParticleEmitter,\n\tParticleSystemComponent,\n\tParticleSystemComponentSystem,\n\tPhysicsWorld,\n\tPicker,\n\tPlane,\n\tPlaneGeometry,\n\tPose,\n\tPostEffect,\n\tPostEffectQueue,\n\tProgramLibrary,\n\tQuadRender,\n\tQuat,\n\tRADIX_SORT_AUTO,\n\tRADIX_SORT_ONESWEEP,\n\tRADIX_SORT_PORTABLE,\n\tREFLECTIONSRC_CUBEMAP,\n\tREFLECTIONSRC_ENVATLAS,\n\tREFLECTIONSRC_ENVATLASHQ,\n\tREFLECTIONSRC_NONE,\n\tREFLECTIONSRC_SPHEREMAP,\n\tRENDERSTYLE_POINTS,\n\tRENDERSTYLE_SOLID,\n\tRENDERSTYLE_WIREFRAME,\n\tRENDERTARGET_ORIGIN_BOTTOM,\n\tRENDERTARGET_ORIGIN_NATIVE,\n\tRENDERTARGET_ORIGIN_TOP,\n\tRESOLUTION_AUTO,\n\tRESOLUTION_FIXED,\n\tRIGIDBODY_ACTIVE_TAG,\n\tRIGIDBODY_CF_KINEMATIC_OBJECT,\n\tRIGIDBODY_CF_NORESPONSE_OBJECT,\n\tRIGIDBODY_CF_STATIC_OBJECT,\n\tRIGIDBODY_DISABLE_DEACTIVATION,\n\tRIGIDBODY_DISABLE_SIMULATION,\n\tRIGIDBODY_ISLAND_SLEEPING,\n\tRIGIDBODY_TYPE_DYNAMIC,\n\tRIGIDBODY_TYPE_KINEMATIC,\n\tRIGIDBODY_TYPE_STATIC,\n\tRIGIDBODY_WANTS_DEACTIVATION,\n\tRay,\n\tRaycastResult,\n\tReadStream,\n\tRenderComponent,\n\tRenderComponentSystem,\n\tRenderHandler,\n\tRenderPass,\n\tRenderPassCompose,\n\tRenderPassDepthAwareBlur,\n\tRenderPassDownsample,\n\tRenderPassForward,\n\tRenderPassPicker,\n\tRenderPassPrepass,\n\tRenderPassShaderQuad,\n\tRenderPassSsao,\n\tRenderPassTAA,\n\tRenderPassUpsample,\n\tRenderTarget,\n\tRenderView,\n\tResourceHandler,\n\tResourceLoader,\n\tRigidBodyComponent,\n\tRigidBodyComponentSystem,\n\tRotateGizmo,\n\tSAMPLETYPE_DEPTH,\n\tSAMPLETYPE_FLOAT,\n\tSAMPLETYPE_INT,\n\tSAMPLETYPE_UINT,\n\tSAMPLETYPE_UNFILTERABLE_FLOAT,\n\tSCALEMODE_BLEND,\n\tSCALEMODE_NONE,\n\tSCENETEXTURE_DEPTH,\n\tSCROLLBAR_VISIBILITY_SHOW_ALWAYS,\n\tSCROLLBAR_VISIBILITY_SHOW_WHEN_REQUIRED,\n\tSCROLL_MODE_BOUNCE,\n\tSCROLL_MODE_CLAMP,\n\tSCROLL_MODE_INFINITE,\n\tSEMANTIC_ATTR0,\n\tSEMANTIC_ATTR1,\n\tSEMANTIC_ATTR10,\n\tSEMANTIC_ATTR11,\n\tSEMANTIC_ATTR12,\n\tSEMANTIC_ATTR13,\n\tSEMANTIC_ATTR14,\n\tSEMANTIC_ATTR15,\n\tSEMANTIC_ATTR2,\n\tSEMANTIC_ATTR3,\n\tSEMANTIC_ATTR4,\n\tSEMANTIC_ATTR5,\n\tSEMANTIC_ATTR6,\n\tSEMANTIC_ATTR7,\n\tSEMANTIC_ATTR8,\n\tSEMANTIC_ATTR9,\n\tSEMANTIC_BLENDINDICES,\n\tSEMANTIC_BLENDWEIGHT,\n\tSEMANTIC_COLOR,\n\tSEMANTIC_NORMAL,\n\tSEMANTIC_POSITION,\n\tSEMANTIC_TANGENT,\n\tSEMANTIC_TEXCOORD,\n\tSEMANTIC_TEXCOORD0,\n\tSEMANTIC_TEXCOORD1,\n\tSEMANTIC_TEXCOORD2,\n\tSEMANTIC_TEXCOORD3,\n\tSEMANTIC_TEXCOORD4,\n\tSEMANTIC_TEXCOORD5,\n\tSEMANTIC_TEXCOORD6,\n\tSEMANTIC_TEXCOORD7,\n\tSHADERDEF_BATCH,\n\tSHADERDEF_DIRLM,\n\tSHADERDEF_INSTANCING,\n\tSHADERDEF_LM,\n\tSHADERDEF_LMAMBIENT,\n\tSHADERDEF_MORPH_NORMAL,\n\tSHADERDEF_MORPH_POSITION,\n\tSHADERDEF_MORPH_TEXTURE_BASED_INT,\n\tSHADERDEF_NOSHADOW,\n\tSHADERDEF_SCREENSPACE,\n\tSHADERDEF_SKIN,\n\tSHADERDEF_TANGENTS,\n\tSHADERDEF_UV0,\n\tSHADERDEF_UV1,\n\tSHADERDEF_VCOLOR,\n\tSHADERLANGUAGE_GLSL,\n\tSHADERLANGUAGE_WGSL,\n\tSHADERPASS_ALBEDO,\n\tSHADERPASS_AO,\n\tSHADERPASS_EMISSION,\n\tSHADERPASS_FORWARD,\n\tSHADERPASS_GLOSS,\n\tSHADERPASS_LIGHTING,\n\tSHADERPASS_METALNESS,\n\tSHADERPASS_OPACITY,\n\tSHADERPASS_SPECULARITY,\n\tSHADERPASS_UV0,\n\tSHADERPASS_WORLDNORMAL,\n\tSHADERSTAGE_COMPUTE,\n\tSHADERSTAGE_FRAGMENT,\n\tSHADERSTAGE_VERTEX,\n\tSHADERTAG_MATERIAL,\n\tSHADER_DEPTH_PICK,\n\tSHADER_FORWARD,\n\tSHADER_PICK,\n\tSHADER_PREPASS,\n\tSHADER_SHADOW,\n\tSHADOWCAMERA_NAME,\n\tSHADOWUPDATE_NONE,\n\tSHADOWUPDATE_REALTIME,\n\tSHADOWUPDATE_THISFRAME,\n\tSHADOW_CASCADE_0,\n\tSHADOW_CASCADE_1,\n\tSHADOW_CASCADE_2,\n\tSHADOW_CASCADE_3,\n\tSHADOW_CASCADE_ALL,\n\tSHADOW_PCF1,\n\tSHADOW_PCF1_16F,\n\tSHADOW_PCF1_32F,\n\tSHADOW_PCF3,\n\tSHADOW_PCF3_16F,\n\tSHADOW_PCF3_32F,\n\tSHADOW_PCF5,\n\tSHADOW_PCF5_16F,\n\tSHADOW_PCF5_32F,\n\tSHADOW_PCSS_32F,\n\tSHADOW_VSM16,\n\tSHADOW_VSM32,\n\tSHADOW_VSM_16F,\n\tSHADOW_VSM_32F,\n\tSKYTYPE_BOX,\n\tSKYTYPE_DOME,\n\tSKYTYPE_INFINITE,\n\tSORTMODE_BACK2FRONT,\n\tSORTMODE_CUSTOM,\n\tSORTMODE_FRONT2BACK,\n\tSORTMODE_MANUAL,\n\tSORTMODE_MATERIALMESH,\n\tSORTMODE_NONE,\n\tSPECOCC_AO,\n\tSPECOCC_GLOSSDEPENDENT,\n\tSPECOCC_NONE,\n\tSPRITETYPE_ANIMATED,\n\tSPRITETYPE_SIMPLE,\n\tSPRITE_RENDERMODE_SIMPLE,\n\tSPRITE_RENDERMODE_SLICED,\n\tSPRITE_RENDERMODE_TILED,\n\tSSAOTYPE_COMBINE,\n\tSSAOTYPE_LIGHTING,\n\tSSAOTYPE_NONE,\n\tSTENCILOP_DECREMENT,\n\tSTENCILOP_DECREMENTWRAP,\n\tSTENCILOP_INCREMENT,\n\tSTENCILOP_INCREMENTWRAP,\n\tSTENCILOP_INVERT,\n\tSTENCILOP_KEEP,\n\tSTENCILOP_REPLACE,\n\tSTENCILOP_ZERO,\n\tScaleGizmo,\n\tScene,\n\tSceneDepthReader,\n\tSceneHandler,\n\tSceneRegistry,\n\tSceneRegistryItem,\n\tSceneSettingsHandler,\n\tScopeId,\n\tScopeSpace,\n\tScreenComponent,\n\tScreenComponentSystem,\n\tScript,\n\tScriptAttributes,\n\tScriptComponent,\n\tScriptComponentSystem,\n\tScriptHandler,\n\tScriptRegistry,\n\tScriptType,\n\tScrollViewComponent,\n\tScrollViewComponentSystem,\n\tScrollbarComponent,\n\tScrollbarComponentSystem,\n\tShader,\n\tShaderChunks,\n\tShaderHandler,\n\tShaderMaterial,\n\tShaderPass,\n\tShaderUtils,\n\tSingleContactResult,\n\tSingleGestureSource,\n\tSkeleton,\n\tSkin,\n\tSkinBatchInstance,\n\tSkinInstance,\n\tSky,\n\tSortedLoopArray,\n\tSound,\n\tSoundComponent,\n\tSoundComponentSystem,\n\tSoundInstance,\n\tSoundInstance3d,\n\tSoundManager,\n\tSoundSlot,\n\tSphereGeometry,\n\tSprite,\n\tSpriteAnimationClip,\n\tSpriteComponent,\n\tSpriteComponentSystem,\n\tSpriteHandler,\n\tStandardMaterial,\n\tStandardMaterialOptions,\n\tStencilParameters,\n\tStorageBuffer,\n\tTEXHINT_ASSET,\n\tTEXHINT_LIGHTMAP,\n\tTEXHINT_NONE,\n\tTEXHINT_SHADOWMAP,\n\tTEXPROPERTY_ADDRESS_U,\n\tTEXPROPERTY_ADDRESS_V,\n\tTEXPROPERTY_ADDRESS_W,\n\tTEXPROPERTY_ALL,\n\tTEXPROPERTY_ANISOTROPY,\n\tTEXPROPERTY_COMPARE_FUNC,\n\tTEXPROPERTY_COMPARE_ON_READ,\n\tTEXPROPERTY_MAG_FILTER,\n\tTEXPROPERTY_MIN_FILTER,\n\tTEXTUREDIMENSION_1D,\n\tTEXTUREDIMENSION_2D,\n\tTEXTUREDIMENSION_2D_ARRAY,\n\tTEXTUREDIMENSION_3D,\n\tTEXTUREDIMENSION_CUBE,\n\tTEXTUREDIMENSION_CUBE_ARRAY,\n\tTEXTURELOCK_NONE,\n\tTEXTURELOCK_READ,\n\tTEXTURELOCK_WRITE,\n\tTEXTUREPROJECTION_CUBE,\n\tTEXTUREPROJECTION_EQUIRECT,\n\tTEXTUREPROJECTION_NONE,\n\tTEXTUREPROJECTION_OCTAHEDRAL,\n\tTEXTURETYPE_DEFAULT,\n\tTEXTURETYPE_RGBE,\n\tTEXTURETYPE_RGBM,\n\tTEXTURETYPE_RGBP,\n\tTEXTURETYPE_SWIZZLEGGGR,\n\tTONEMAP_ACES,\n\tTONEMAP_ACES2,\n\tTONEMAP_FILMIC,\n\tTONEMAP_HEJL,\n\tTONEMAP_LINEAR,\n\tTONEMAP_NEUTRAL,\n\tTONEMAP_NONE,\n\tTRACEID_ASSETS,\n\tTRACEID_BINDGROUPFORMAT_ALLOC,\n\tTRACEID_BINDGROUP_ALLOC,\n\tTRACEID_BUFFERS,\n\tTRACEID_COMPUTEPIPELINE_ALLOC,\n\tTRACEID_ELEMENT,\n\tTRACEID_GPU_TIMINGS,\n\tTRACEID_OCTREE_RESOURCES,\n\tTRACEID_PIPELINELAYOUT_ALLOC,\n\tTRACEID_RENDERPIPELINE_ALLOC,\n\tTRACEID_RENDER_ACTION,\n\tTRACEID_RENDER_FRAME,\n\tTRACEID_RENDER_FRAME_TIME,\n\tTRACEID_RENDER_PASS,\n\tTRACEID_RENDER_PASS_DETAIL,\n\tTRACEID_RENDER_QUEUE,\n\tTRACEID_RENDER_TARGET_ALLOC,\n\tTRACEID_SHADER_ALLOC,\n\tTRACEID_SHADER_COMPILE,\n\tTRACEID_TEXTURES,\n\tTRACEID_TEXTURE_ALLOC,\n\tTRACEID_VRAM_IB,\n\tTRACEID_VRAM_SB,\n\tTRACEID_VRAM_TEXTURE,\n\tTRACEID_VRAM_VB,\n\tTRANSFORM_FEEDBACK_INTERLEAVED,\n\tTRANSFORM_FEEDBACK_SEPARATE,\n\tTYPE_FLOAT16,\n\tTYPE_FLOAT32,\n\tTYPE_INT16,\n\tTYPE_INT32,\n\tTYPE_INT8,\n\tTYPE_UINT16,\n\tTYPE_UINT32,\n\tTYPE_UINT8,\n\tTags,\n\tTemplate,\n\tTemplateHandler,\n\tTextElement,\n\tTextHandler,\n\tTexture,\n\tTextureAtlas,\n\tTextureAtlasHandler,\n\tTextureHandler,\n\tTextureUtils,\n\tTextureView,\n\tTorusGeometry,\n\tTouch,\n\tTouchDevice,\n\tTouchEvent,\n\tTracing,\n\tTransformFeedback,\n\tTransformGizmo,\n\tTranslateGizmo,\n\tTri,\n\tUNIFORMTYPE_BOOL,\n\tUNIFORMTYPE_BOOLARRAY,\n\tUNIFORMTYPE_BVEC2,\n\tUNIFORMTYPE_BVEC2ARRAY,\n\tUNIFORMTYPE_BVEC3,\n\tUNIFORMTYPE_BVEC3ARRAY,\n\tUNIFORMTYPE_BVEC4,\n\tUNIFORMTYPE_BVEC4ARRAY,\n\tUNIFORMTYPE_FLOAT,\n\tUNIFORMTYPE_FLOATARRAY,\n\tUNIFORMTYPE_INT,\n\tUNIFORMTYPE_INTARRAY,\n\tUNIFORMTYPE_ITEXTURE2D,\n\tUNIFORMTYPE_ITEXTURE2D_ARRAY,\n\tUNIFORMTYPE_ITEXTURE3D,\n\tUNIFORMTYPE_ITEXTURECUBE,\n\tUNIFORMTYPE_IVEC2,\n\tUNIFORMTYPE_IVEC2ARRAY,\n\tUNIFORMTYPE_IVEC3,\n\tUNIFORMTYPE_IVEC3ARRAY,\n\tUNIFORMTYPE_IVEC4,\n\tUNIFORMTYPE_IVEC4ARRAY,\n\tUNIFORMTYPE_MAT2,\n\tUNIFORMTYPE_MAT3,\n\tUNIFORMTYPE_MAT4,\n\tUNIFORMTYPE_MAT4ARRAY,\n\tUNIFORMTYPE_TEXTURE2D,\n\tUNIFORMTYPE_TEXTURE2D_ARRAY,\n\tUNIFORMTYPE_TEXTURE2D_SHADOW,\n\tUNIFORMTYPE_TEXTURE3D,\n\tUNIFORMTYPE_TEXTURECUBE,\n\tUNIFORMTYPE_TEXTURECUBE_SHADOW,\n\tUNIFORMTYPE_UINT,\n\tUNIFORMTYPE_UINTARRAY,\n\tUNIFORMTYPE_UTEXTURE2D,\n\tUNIFORMTYPE_UTEXTURE2D_ARRAY,\n\tUNIFORMTYPE_UTEXTURE3D,\n\tUNIFORMTYPE_UTEXTURECUBE,\n\tUNIFORMTYPE_UVEC2,\n\tUNIFORMTYPE_UVEC2ARRAY,\n\tUNIFORMTYPE_UVEC3,\n\tUNIFORMTYPE_UVEC3ARRAY,\n\tUNIFORMTYPE_UVEC4,\n\tUNIFORMTYPE_UVEC4ARRAY,\n\tUNIFORMTYPE_VEC2,\n\tUNIFORMTYPE_VEC2ARRAY,\n\tUNIFORMTYPE_VEC3,\n\tUNIFORMTYPE_VEC3ARRAY,\n\tUNIFORMTYPE_VEC4,\n\tUNIFORMTYPE_VEC4ARRAY,\n\tUNIFORM_BUFFER_DEFAULT_SLOT_NAME,\n\tUNUSED_UNIFORM_NAME,\n\tURI,\n\tUniformBufferFormat,\n\tUniformFormat,\n\tUsdzExporter,\n\tVIEW_CENTER,\n\tVIEW_LEFT,\n\tVIEW_RIGHT,\n\tVec2,\n\tVec3,\n\tVec4,\n\tVertexBuffer,\n\tVertexFormat,\n\tVertexIterator,\n\tViewCube,\n\tWORKBUFFER_UPDATE_ALWAYS,\n\tWORKBUFFER_UPDATE_AUTO,\n\tWORKBUFFER_UPDATE_ONCE,\n\tWasmModule,\n\tWebglGraphicsDevice,\n\tWebgpuGraphicsDevice,\n\tWideLine,\n\tWideLineRenderer,\n\tWireRenderer,\n\tWorldClusters,\n\tXRDEPTHSENSINGFORMAT_F32,\n\tXRDEPTHSENSINGFORMAT_L8A8,\n\tXRDEPTHSENSINGFORMAT_R16U,\n\tXRDEPTHSENSINGUSAGE_CPU,\n\tXRDEPTHSENSINGUSAGE_GPU,\n\tXREYE_LEFT,\n\tXREYE_NONE,\n\tXREYE_RIGHT,\n\tXRHAND_LEFT,\n\tXRHAND_NONE,\n\tXRHAND_RIGHT,\n\tXRPAD_A,\n\tXRPAD_B,\n\tXRPAD_SQUEEZE,\n\tXRPAD_STICK_BUTTON,\n\tXRPAD_STICK_X,\n\tXRPAD_STICK_Y,\n\tXRPAD_TOUCHPAD_BUTTON,\n\tXRPAD_TOUCHPAD_X,\n\tXRPAD_TOUCHPAD_Y,\n\tXRPAD_TRIGGER,\n\tXRSPACE_BOUNDEDFLOOR,\n\tXRSPACE_LOCAL,\n\tXRSPACE_LOCALFLOOR,\n\tXRSPACE_UNBOUNDED,\n\tXRSPACE_VIEWER,\n\tXRTARGETRAY_GAZE,\n\tXRTARGETRAY_POINTER,\n\tXRTARGETRAY_SCREEN,\n\tXRTRACKABLE_MESH,\n\tXRTRACKABLE_PLANE,\n\tXRTRACKABLE_POINT,\n\tXRTYPE_AR,\n\tXRTYPE_INLINE,\n\tXRTYPE_VR,\n\tXrAnchor,\n\tXrAnchors,\n\tXrDomOverlay,\n\tXrFinger,\n\tXrHand,\n\tXrHitTest,\n\tXrHitTestSource,\n\tXrImageTracking,\n\tXrInput,\n\tXrInputSource,\n\tXrJoint,\n\tXrLightEstimation,\n\tXrManager,\n\tXrMeshDetection,\n\tXrPlane,\n\tXrPlaneDetection,\n\tXrTrackedImage,\n\tXrView,\n\tXrViews,\n\tZoneComponent,\n\tZoneComponentSystem,\n\tambientSrcNames,\n\tapp,\n\tbasisInitialize,\n\tbindGroupNames,\n\tblendNames,\n\tcalculateNormals,\n\tcalculateTangents,\n\tcreateBox,\n\tcreateCapsule,\n\tcreateCone,\n\tcreateCylinder,\n\tcreateGraphicsDevice,\n\tcreateMesh2 as createMesh,\n\tcreatePlane,\n\tcreateScript,\n\tcreateShader,\n\tcreateShaderFromCode,\n\tcreateSphere,\n\tcreateTorus,\n\tcreateURI,\n\tcubemaProjectionNames,\n\tditherNames,\n\tdracoDecode,\n\tdracoInitialize,\n\tdrawFullscreenQuad,\n\tdrawQuadWithShader,\n\textend,\n\tfresnelNames,\n\tgammaNames,\n\tgetGlslShaderType,\n\tgetPixelFormatArrayType,\n\tgetReservedScriptNames,\n\tgetTouchTargetCoords,\n\tgetWgslShaderType,\n\tguid,\n\thttp,\n\tindexFormatByteSize,\n\tisCompressedPixelFormat,\n\tisIntegerPixelFormat,\n\tisMultisampleCapablePixelFormat,\n\tisMultisampleResolveCapablePixelFormat,\n\tisSrgbPixelFormat,\n\tlightFalloffNames,\n\tlightShapeNames,\n\tlightTypeNames,\n\tmath,\n\tnow,\n\tparallaxNames,\n\tpath,\n\tpixelFormatGammaToLinear,\n\tpixelFormatInfo,\n\tpixelFormatLinearToGamma,\n\tplatform,\n\tprimitiveGlslToWgslTypeMap,\n\treflectionSrcNames,\n\tregisterScript,\n\treprojectTexture,\n\trequiresManualGamma,\n\trevision,\n\tsceneTextureUniformNames,\n\tscript,\n\tsemanticToLocation,\n\tshaderChunks,\n\tshadowTypeInfo,\n\tspecularOcclusionNames,\n\tspriteRenderModeNames,\n\tstring,\n\ttonemapNames,\n\ttypedArrayIndexFormats,\n\ttypedArrayIndexFormatsByteSize,\n\ttypedArrayToType,\n\ttypedArrayTypes,\n\ttypedArrayTypesByteSize,\n\tuniformTypeToName,\n\tuniformTypeToNameMapWGSL,\n\tuniformTypeToNameWGSL,\n\tuniformTypeToStorage,\n\tversion,\n\tvertexTypesNames\n};\n","import { WasmModule, basisInitialize, dracoInitialize } from 'playcanvas';\n\nexport const loadModules = function (modules, urlPrefix) {\n\n    return new Promise((resolve) => {\n\n        if (typeof modules === \"undefined\" || modules.length === 0) {\n\n            resolve();\n\n        } else {\n            let remaining = modules.length;\n            const moduleLoaded = () => {\n                if (--remaining === 0) {\n                    resolve();\n                }\n            };\n\n            modules.forEach(function (m) {\n                WasmModule.setConfig(m.moduleName, {\n                    glueUrl: urlPrefix + m.glueUrl,\n                    wasmUrl: urlPrefix + m.wasmUrl,\n                    fallbackUrl: urlPrefix + m.fallbackUrl\n                });\n\n                if (!m.hasOwnProperty('preload') || m.preload) {\n                    if (m.moduleName === 'BASIS') {\n                        // preload basis transcoder\n                        basisInitialize();\n                        moduleLoaded();\n                    } else if (m.moduleName === 'DracoDecoderModule') {\n                        // preload draco decoder\n                        if (dracoInitialize) {\n                            // 1.63 onwards\n                            dracoInitialize();\n                            moduleLoaded();\n                        } else {\n                            // 1.62 and earlier\n                            WasmModule.getInstance(m.moduleName, moduleLoaded);\n                        }\n                    } else {\n                        // load remaining modules in global scope\n                        WasmModule.getInstance(m.moduleName, moduleLoaded);\n                    }\n                } else {\n                    moduleLoaded();\n                }\n            });\n        }\n    });\n};\n","import { script } from 'playcanvas';\n\n \nexport const ASSET_PREFIX = \"\";\nexport const SCRIPT_PREFIX = \"\";\nexport const SCENE_PATH = \"2529569.json\";\n\nexport const CONTEXT_OPTIONS = {\n    'antialias': true,\n    'alpha': true,\n    'preserveDrawingBuffer': false,\n    'deviceTypes': [`webgl2`, `webgl1`],\n    'powerPreference': \"default\"\n};\n\nexport const SCRIPTS = [ 297806016, 295577736, 295577692, 295570922, 295573199, 295569273, 295569277, 300419029, 301806981 ];\nexport const CONFIG_FILENAME = \"config.json\";\nexport const INPUT_SETTINGS = {\n    useKeyboard: true,\n    useMouse: true,\n    useGamepads: false,\n    useTouch: true\n};\nexport const PRELOAD_MODULES = [\n    {'moduleName' : 'BASIS', 'glueUrl' : 'files/assets/297686070/1/basis.wasm.js', 'wasmUrl' : 'files/assets/297686068/1/basis.wasm.wasm', 'fallbackUrl' : 'files/assets/297686069/1/basis.js', 'preload' : false},\n    {'moduleName' : 'DracoDecoderModule', 'glueUrl' : 'files/assets/295577610/1/draco.wasm.js', 'wasmUrl' : 'files/assets/295577611/1/draco.wasm.wasm', 'fallbackUrl' : 'files/assets/295577609/1/draco.js', 'preload' : true},\n];\n    \nscript.legacy = false;\n","\n\npc.script.createLoadingScreen(function (app) {\n    var showSplash = function () {\n        // splash wrapper\n        var wrapper = document.createElement('div');\n        wrapper.id = 'application-splash-wrapper';\n        document.body.appendChild(wrapper);\n\n        // splash\n        var splash = document.createElement('div');\n        splash.id = 'application-splash';\n        wrapper.appendChild(splash);\n        splash.style.display = 'none';\n        \n        var container = document.createElement('div');\n        container.id = 'progress-bar-container';\n        splash.appendChild(container);\n\n        var bar = document.createElement('div');\n        bar.id = 'progress-bar';\n        container.appendChild(bar);\n\n    };\n\n    var hideSplash = function () {\n        var splash = document.getElementById('application-splash-wrapper');\n        if (splash !== null) \n        {\n            splash.parentElement.removeChild(splash);\n        }\n    };\n\n    var setProgress = function (value) {\n        var bar = document.getElementById('progress-bar');\n        if(bar) {\n            value = Math.min(1, Math.max(0, value));\n            bar.style.width = value * 100 + '%';\n        }\n    };\n\n    var createCss = function () {\n        var css = [\n            'body {',\n            '    background-color: transparent;',\n            '}',\n\n            '#application-splash-wrapper {',\n            '    position: absolute;',\n            '    top: 0;',\n            '    left: 0;',\n            '    height: 100%;',\n            '    width: 100%;',\n            '    background-color: transparent;',\n            '}',\n\n            '#application-splash {',\n            '    position: absolute;',\n            '    top: 50%;',\n            '    width: 370px;',\n            '    left: 50%;',\n            '    transform: translate(-50%, -50%);',\n            '}',\n\n            '#application-splash img {',\n            '    width: 40%;',\n            '    margin-left: 30%',\n            '}',\n        \n            '#progress-bar-container {',\n            '    margin: 20px auto 0 auto;',\n            '    height: 2px;',\n            '    width: 100%;',\n            '    background-color: #9C9C9C;',\n            '}',\n\n            '#progress-bar {',\n            '    width: 0%;',\n            '    height: 100%;',\n            '    background-color: #ffffff;',\n            '}',\n            '@media (max-width: 480px) {',\n            '    #application-splash {',\n            '        width: 170px;',\n            '    }',\n            '}'\n        ].join(\"\\n\");\n\n        var style = document.createElement('style');\n        style.type = 'text/css';\n        if (style.styleSheet) {\n          style.styleSheet.cssText = css;\n        } else {\n          style.appendChild(document.createTextNode(css));\n        }\n\n        document.head.appendChild(style);\n    };\n\n\n    createCss();\n\n    showSplash();\n    \n    // Use an image from the assets in the project via the asset registry\n    // More information: http://developer.playcanvas.com/en/api/pc.AssetRegistry.html\n    app.on('preload:start', function() {\n        var splash = document.getElementById('application-splash');\n        \n        var logoAsset = app.assets.find('logo_amao.png');\n        \n        if (logoAsset) {\n            var logo = document.createElement('img');    \n            logo.src = logoAsset.getFileUrl();\n\n            // Insert DOM before the progress bar\n            if (splash.childNodes.length > 0) {\n                splash.insertBefore(logo, splash.childNodes[0]);\n            } else {\n                splash.appendChild(logo);\n            }\n            \n            logo.onload = function () {\n                splash.style.display = 'block';\n            };\n        }\n    });\n        \n    app.on('preload:end', function () {\n        app.off('preload:progress');\n    });\n    app.on('preload:progress', setProgress);\n    app.on('start', hideSplash);\n});"],"names":["__require","x3","require","Proxy","get","a","b","apply","arguments","Error","TRACEID_RENDER_FRAME","TRACEID_RENDER_FRAME_TIME","TRACEID_RENDER_PASS","TRACEID_RENDER_PASS_DETAIL","TRACEID_RENDER_ACTION","TRACEID_RENDER_TARGET_ALLOC","TRACEID_TEXTURE_ALLOC","TRACEID_SHADER_ALLOC","TRACEID_SHADER_COMPILE","TRACEID_VRAM_TEXTURE","TRACEID_VRAM_VB","TRACEID_VRAM_IB","TRACEID_VRAM_SB","TRACEID_BINDGROUP_ALLOC","TRACEID_BINDGROUPFORMAT_ALLOC","TRACEID_RENDERPIPELINE_ALLOC","TRACEID_COMPUTEPIPELINE_ALLOC","TRACEID_PIPELINELAYOUT_ALLOC","TRACEID_ELEMENT","TRACEID_TEXTURES","TRACEID_BUFFERS","TRACEID_ASSETS","TRACEID_RENDER_QUEUE","TRACEID_OCTREE_RESOURCES","TRACEID_GPU_TIMINGS","version","revision","extend","target2","ex","prop","copy","Array","isArray","guid","create","replace","c2","r","Math","random","v6","toString","path","delimiter","join","sections","result","i2","length","one","two","normalize","pathname","lead","startsWith","trail","endsWith","parts","split","cleaned","slice","push","lastDelimiterIndex","lastIndexOf","substring","getBasename","getDirectory","getExtension","ext","pop","isRelativePath","charAt","match","extractPath","ua","navigator","userAgent","environment","window","global","platformName","test","browserName","xbox","visionos","maxTouchPoints","touch","gamepads","getGamepads","webkitGetGamepads","workers","Worker","platform","name","globalThis","self","browser","worker","desktop","includes","mobile","ios","android","ASCII_LOWERCASE","ASCII_UPPERCASE","ASCII_LETTERS","HIGH_SURROGATE_BEGIN","HIGH_SURROGATE_END","LOW_SURROGATE_BEGIN","LOW_SURROGATE_END","ZERO_WIDTH_JOINER","REGIONAL_INDICATOR_BEGIN","REGIONAL_INDICATOR_END","FITZPATRICK_MODIFIER_BEGIN","FITZPATRICK_MODIFIER_END","DIACRITICAL_MARKS_BEGIN","DIACRITICAL_MARKS_END","VARIATION_MODIFIER_BEGIN","VARIATION_MODIFIER_END","getCodePointData","string2","size","first","charCodeAt","second","code","long","isCodeBetween","begin","end","codeData","numCharsToTakeForNextSymbol","index","string","format","s2","args","getCodePoint","codePointData","getCodePoints","TypeError","arr","codePoint","getSymbols","output","take","ch","char","fromCodePoint","map","String","fromCharCode","Tracing","_Tracing","set","channel","enabled","_traceChannels","has","Set","stack","EventHandle","off","_removed","handler","offByHandle","on","callback","scope","_addCallback","once","removed","value","toJSON","key","_once","EventHandler","initEventHandler","_callbacks","Map","_callbackActive","callbackActive","evt","callbacks","values","clear","delete","splice","handle","ind","indexOf","fire","arg1","arg2","arg3","arg4","arg5","arg6","arg7","arg8","callbacksInitial","call","existingCallback","callbacks2","hasEvent","IndexedList","item","_index","location","_list","remove","idx","list","cachedResult","func","uninitToken","Impl","_Impl","loadScript","url","document","createElement","setAttribute","onload","onerror","body","appendChild","loadWasm","moduleName","config","loadUrl","wasmSupported","glueUrl","wasmUrl","fallbackUrl","err2","module2","locateFile","onAbort","then","instance","getModule","modules","hasOwnProperty","initializing","initialize","errorHandler","console","error","forEach","WebAssembly","instantiate","Module","Uint8Array","of","Instance","e","WasmModule","setConfig","getConfig","getInstance","ReadStream","remainingBytes","dataView","byteLength","offset","reset","offset3","skip","bytes","align","_inc","amount","readChar","getUint8","readChars","numChars","readU8","readU16","getUint16","readU32","getUint32","readU64","readU32be","readArray","readLine","view","arraybuffer","DataView","SortedLoopArray","_binarySearch","left","right2","items","search","_sortBy","middle","current","floor","_doSort","sortBy","insert","loopIndex","append","sort","_sortHandler","bind","Tags","add","changed","tags","_processArguments","_parent","query","_has","multiple","t","flat","tmp","parent","EVENT_ADD","EVENT_REMOVE","EVENT_CHANGE","now","performance","Date","createURI","options2","authority","scheme","host","hostpath","fragment","re","URI","getQuery","queryParams","decodeURIComponent","queryParam","pair","setQuery","params","q5","encodeURIComponent","uri","CURVE_LINEAR","CURVE_SMOOTHSTEP","CURVE_SPLINE","CURVE_STEP","math","DEG_TO_RAD","PI","RAD_TO_DEG","clamp","min","max","intToBytes24","g","intToBytes32","bytesToInt24","bytesToInt32","lerp","alpha","lerpUnclamped","lerpAngle","powerOfTwo","nextPowerOfTwo","val","nearestPowerOfTwo","pow","round","log2","diff","smoothstep","smootherstep","roundUp","numToRound","ceil","between","num","inclusive","Color","_Color","clone","cstr","rhs","equals","lhs","linear","src","gamma","mulScalar","scalar","fromString","hex","parseInt","fromArray","asArray","toFixed","aa","toArray","BLACK","Object","freeze","BLUE","CYAN","GRAY","GREEN","MAGENTA","RED","WHITE","YELLOW","CurveEvaluator","evaluate","time","forceReset","_left","_right","_reset","type","_curve","_p0","_recip","_p1","_evaluateHermite","_m0","_m1","keys","len","Infinity","isFinite","_calcTangents","d","s1_","s2_","tension","s1","a_","d_","p0","p12","m0","m12","t2","twot","omt","omt2","curve","Curve","_eval","closest","abs","quantize","precision","Float32Array","step","quantizeClamped","data2","CurveSet","curves","_type","indexOrCurve","clearKeys","numCurves","ev","arg","floatView","int32View","Int32Array","buffer","FloatPacking","float2Half","bits","m","float2RGBA8","intBits","Kernel","concentric","numRings","numPoints","kernel","spacing","ring","radius","circumference","pointsPerRing","angleStep","point5","angle","cos","y2","sin","Vec3","_Vec3","x","y","z","add2","addScalar","addScaled","cross","lx","ly","lz","rx","ry","rz","distance","z2","sqrt","div","div2","divScalar","dot","equalsApprox","epsilon","lengthSq","mul","mul2","scale","invLength","project","a_dot_b","b_dot_b","sub","sub2","subScalar","ZERO","HALF","ONE","UP","DOWN","RIGHT","LEFT","FORWARD","BACK","Mat3","_Mat3","data","dst","getX","getY","getZ","l","isIdentity","setIdentity","transpose","setFromMat4","setFromQuat","qx","qy","qz","qw","w","x22","xx","xy","xz","yy","yz","zz","wx","wy","wz","invertMat4","a0","a1","a2","a4","a5","a6","a8","a9","a10","b11","b21","b31","b12","b22","b32","b13","b23","b33","det","invDet","transformVector","vec2","res","IDENTITY","Vec2","_Vec2","rotate","degrees","atan2","angleTo","angleRad","Vec4","_Vec4","_halfSize","Mat4","_Mat4","_getPerspectiveHalfSize","halfSize","fov","aspect","znear","fovIsHorizontal","tan","a00","a01","a02","a03","a11","a12","a13","a20","a21","a22","a23","a30","a31","a32","a33","b0","b1","b2","b3","mulAffine2","transformPoint","transformVec4","setLookAt","position5","up3","setFrustum","bottom","top","zfar","temp1","temp2","temp3","temp4","setPerspective","setOrtho","near","far","setFromAxisAngle","axis","tx","ty","setTranslate","setScale","setViewport","width","height","setReflection","normal","invert","b00","b01","b02","b03","b04","b05","b06","b07","b08","b09","b10","setTRS","sx","sy","sz","getTranslation","getScale","scale2","scaleSign","setFromEulerAngles","ey","ez","c1","s3","c3","getEulerAngles","eulers","asin","halfPi","Quat","_Quat","conjugate","other","getAxisAngle","rad","acos","q1x","q1y","q1z","q1w","q2x","q2y","q2z","q2w","sa","ca","halfToRad","cx","cy","cz","m00","m01","m02","m10","m11","m20","m21","m22","setFromDirections","from","to","dotProduct","Number","EPSILON","slerp","lw","rw","cosHalfTheta","halfTheta","sinHalfTheta","ratioA","ratioB","ix","iy","iz","iw","tmpVecA","tmpVecB","tmpVecC","tmpVecD","tmpVecE","BoundingBox","_BoundingBox","tc","center","tcx","tcy","tcz","th","halfExtents","thx","thy","thz","tminx","tmaxx","tminy","tmaxy","tminz","tmaxz","oc","ocx","ocy","ocz","oh","ohx","ohy","ohz","ominx","omaxx","ominy","omaxy","ominz","omaxz","intersects","aMax","getMax","aMin","getMin","bMax2","bMin2","_intersectsRay","ray3","tMin","origin","tMax","dir4","direction","MAX_VALUE","realMin","realMax","minMax","maxMin","_fastIntersectsRay","prod","absDiff","absDir","rayDir","intersectsRay","setMinMax","_min","_max","containsPoint","h2","closestPoint","setFromTransformedAabb","aabb3","ignoreScale","ac","ar","mx0","mx1","mx2","my0","my1","my2","mz0","mz1","mz2","computeMinMax","vertices","numVerts","minx","miny","minz","maxx","maxy","maxz","n","compute","intersectsBoundingSphere","sphere","sq","_distanceToBoundingSphereSq","boxMin","boxMax","out","pn","_expand","expandMin","expandMax","center2","tmpVecA2","tmpVecB2","BoundingSphere","lenSq","discr","totalRadius","Plane","intersectsLine","start","d0","d1","denominator","nx","ny","nz","setFromPointNormal","_c23","_c31","_c12","_corner","_scratchPlanes","intersectPlanes","p22","p32","denom","invDenom","Frustum","planes","planeData","getPlane","setPlane","plane2","_setPlane","matrix2","m03","m13","m23","m30","m31","m32","m33","p","zi","xi","yi","containsSphere","containsAabb","extent","Ray","tmpRay","tmpVec3","tmpSphere","tmpMat4","OrientedBox","worldTransform","_worldTransform","_modelTransform","_aabb","e1","e2","h","s","q","Tri","v0","v15","v26","v1","v2","f","u","ADDRESS_REPEAT","ADDRESS_CLAMP_TO_EDGE","ADDRESS_MIRRORED_REPEAT","BLENDMODE_ZERO","BLENDMODE_ONE","BLENDMODE_SRC_COLOR","BLENDMODE_ONE_MINUS_SRC_COLOR","BLENDMODE_DST_COLOR","BLENDMODE_ONE_MINUS_DST_COLOR","BLENDMODE_SRC_ALPHA","BLENDMODE_SRC_ALPHA_SATURATE","BLENDMODE_ONE_MINUS_SRC_ALPHA","BLENDMODE_DST_ALPHA","BLENDMODE_ONE_MINUS_DST_ALPHA","BLENDMODE_CONSTANT","BLENDMODE_ONE_MINUS_CONSTANT","BLENDMODE_SRC1_COLOR","BLENDMODE_ONE_MINUS_SRC1_COLOR","BLENDMODE_SRC1_ALPHA","BLENDMODE_ONE_MINUS_SRC1_ALPHA","BLENDEQUATION_ADD","BLENDEQUATION_SUBTRACT","BLENDEQUATION_REVERSE_SUBTRACT","BLENDEQUATION_MIN","BLENDEQUATION_MAX","BUFFERUSAGE_READ","BUFFERUSAGE_WRITE","BUFFERUSAGE_COPY_SRC","BUFFERUSAGE_COPY_DST","BUFFERUSAGE_INDEX","BUFFERUSAGE_VERTEX","BUFFERUSAGE_UNIFORM","BUFFERUSAGE_STORAGE","BUFFERUSAGE_INDIRECT","BUFFER_STATIC","BUFFER_DYNAMIC","BUFFER_STREAM","BUFFER_GPUDYNAMIC","TRANSFORM_FEEDBACK_INTERLEAVED","TRANSFORM_FEEDBACK_SEPARATE","CLEARFLAG_COLOR","CLEARFLAG_DEPTH","CLEARFLAG_STENCIL","CUBEFACE_POSX","CUBEFACE_NEGX","CUBEFACE_POSY","CUBEFACE_NEGY","CUBEFACE_POSZ","CUBEFACE_NEGZ","RENDERTARGET_ORIGIN_TOP","RENDERTARGET_ORIGIN_BOTTOM","RENDERTARGET_ORIGIN_NATIVE","DEPTHRESOLVE_SAMPLE0","DEPTHRESOLVE_MIN","DEPTHRESOLVE_MAX","CULLFACE_NONE","CULLFACE_BACK","CULLFACE_FRONT","CULLFACE_FRONTANDBACK","FRONTFACE_CCW","FRONTFACE_CW","FILTER_NEAREST","FILTER_LINEAR","FILTER_NEAREST_MIPMAP_NEAREST","FILTER_NEAREST_MIPMAP_LINEAR","FILTER_LINEAR_MIPMAP_NEAREST","FILTER_LINEAR_MIPMAP_LINEAR","FUNC_NEVER","FUNC_LESS","FUNC_EQUAL","FUNC_LESSEQUAL","FUNC_GREATER","FUNC_NOTEQUAL","FUNC_GREATEREQUAL","FUNC_ALWAYS","INDEXFORMAT_UINT8","INDEXFORMAT_UINT16","INDEXFORMAT_UINT32","indexFormatByteSize","PIXELFORMAT_A8","PIXELFORMAT_L8","PIXELFORMAT_LA8","PIXELFORMAT_RGB565","PIXELFORMAT_RGBA5551","PIXELFORMAT_RGBA4","PIXELFORMAT_RGB8","PIXELFORMAT_RGBA8","PIXELFORMAT_DXT1","PIXELFORMAT_DXT3","PIXELFORMAT_DXT5","PIXELFORMAT_RGB16F","PIXELFORMAT_RGBA16F","PIXELFORMAT_RGB32F","PIXELFORMAT_RGBA32F","PIXELFORMAT_R32F","PIXELFORMAT_DEPTH","PIXELFORMAT_DEPTHSTENCIL","PIXELFORMAT_111110F","PIXELFORMAT_SRGB8","PIXELFORMAT_SRGBA8","PIXELFORMAT_ETC1","PIXELFORMAT_ETC2_RGB","PIXELFORMAT_ETC2_RGBA","PIXELFORMAT_PVRTC_2BPP_RGB_1","PIXELFORMAT_PVRTC_2BPP_RGBA_1","PIXELFORMAT_PVRTC_4BPP_RGB_1","PIXELFORMAT_PVRTC_4BPP_RGBA_1","PIXELFORMAT_ASTC_4x4","PIXELFORMAT_ATC_RGB","PIXELFORMAT_ATC_RGBA","PIXELFORMAT_BGRA8","PIXELFORMAT_R8I","PIXELFORMAT_R8U","PIXELFORMAT_R16I","PIXELFORMAT_R16U","PIXELFORMAT_R32I","PIXELFORMAT_R32U","PIXELFORMAT_RG8I","PIXELFORMAT_RG8U","PIXELFORMAT_RG16I","PIXELFORMAT_RG16U","PIXELFORMAT_RG32I","PIXELFORMAT_RG32U","PIXELFORMAT_RGBA8I","PIXELFORMAT_RGBA8U","PIXELFORMAT_RGBA16I","PIXELFORMAT_RGBA16U","PIXELFORMAT_RGBA32I","PIXELFORMAT_RGBA32U","PIXELFORMAT_R16F","PIXELFORMAT_RG16F","PIXELFORMAT_R8","PIXELFORMAT_RG8","PIXELFORMAT_DXT1_SRGB","PIXELFORMAT_DXT3_SRGBA","PIXELFORMAT_DXT5_SRGBA","PIXELFORMAT_ETC2_SRGB","PIXELFORMAT_ETC2_SRGBA","PIXELFORMAT_ASTC_4x4_SRGB","PIXELFORMAT_SBGRA8","PIXELFORMAT_BC6F","PIXELFORMAT_BC6UF","PIXELFORMAT_BC7","PIXELFORMAT_BC7_SRGBA","PIXELFORMAT_DEPTH16","PIXELFORMAT_RG32F","PIXELFORMAT_RGB9E5","PIXELFORMAT_RG8S","PIXELFORMAT_RGBA8S","PIXELFORMAT_RGB10A2","PIXELFORMAT_RGB10A2U","pixelFormatInfo","ldr","msaa","msaaResolve","srgbFormat","isUint","srgb","blockSize","isInt","isCompressedPixelFormat","isSrgbPixelFormat","isIntegerPixelFormat","info","isMultisampleCapablePixelFormat","isMultisampleResolveCapablePixelFormat","GLSL_FLOAT","sampler","returnType","GLSL_UINT","GLSL_INT","WGSL_FLOAT","textureType","WGSL_UINT","WGSL_INT","getGlslShaderType","getWgslShaderType","pixelFormatLinearToGamma","pixelFormatGammaToLinear","requiresManualGamma","getPixelFormatArrayType","Uint32Array","Int16Array","Uint16Array","Int8Array","PRIMITIVE_POINTS","PRIMITIVE_LINES","PRIMITIVE_LINELOOP","PRIMITIVE_LINESTRIP","PRIMITIVE_TRIANGLES","PRIMITIVE_TRISTRIP","PRIMITIVE_TRIFAN","SEMANTIC_POSITION","SEMANTIC_NORMAL","SEMANTIC_TANGENT","SEMANTIC_BLENDWEIGHT","SEMANTIC_BLENDINDICES","SEMANTIC_COLOR","SEMANTIC_TEXCOORD","SEMANTIC_TEXCOORD0","SEMANTIC_TEXCOORD1","SEMANTIC_TEXCOORD2","SEMANTIC_TEXCOORD3","SEMANTIC_TEXCOORD4","SEMANTIC_TEXCOORD5","SEMANTIC_TEXCOORD6","SEMANTIC_TEXCOORD7","SEMANTIC_ATTR0","SEMANTIC_ATTR1","SEMANTIC_ATTR2","SEMANTIC_ATTR3","SEMANTIC_ATTR4","SEMANTIC_ATTR5","SEMANTIC_ATTR6","SEMANTIC_ATTR7","SEMANTIC_ATTR8","SEMANTIC_ATTR9","SEMANTIC_ATTR10","SEMANTIC_ATTR11","SEMANTIC_ATTR12","SEMANTIC_ATTR13","SEMANTIC_ATTR14","SEMANTIC_ATTR15","SHADERTAG_MATERIAL","STENCILOP_KEEP","STENCILOP_ZERO","STENCILOP_REPLACE","STENCILOP_INCREMENT","STENCILOP_INCREMENTWRAP","STENCILOP_DECREMENT","STENCILOP_DECREMENTWRAP","STENCILOP_INVERT","TEXTURELOCK_NONE","TEXTURELOCK_READ","TEXTURELOCK_WRITE","TEXTURETYPE_DEFAULT","TEXTURETYPE_RGBM","TEXTURETYPE_RGBE","TEXTURETYPE_RGBP","TEXTURETYPE_SWIZZLEGGGR","TEXHINT_NONE","TEXHINT_SHADOWMAP","TEXHINT_ASSET","TEXHINT_LIGHTMAP","TEXTUREDIMENSION_1D","TEXTUREDIMENSION_2D","TEXTUREDIMENSION_2D_ARRAY","TEXTUREDIMENSION_CUBE","TEXTUREDIMENSION_CUBE_ARRAY","TEXTUREDIMENSION_3D","SAMPLETYPE_FLOAT","SAMPLETYPE_UNFILTERABLE_FLOAT","SAMPLETYPE_DEPTH","SAMPLETYPE_INT","SAMPLETYPE_UINT","TEXTUREPROJECTION_NONE","TEXTUREPROJECTION_CUBE","TEXTUREPROJECTION_EQUIRECT","TEXTUREPROJECTION_OCTAHEDRAL","SHADERLANGUAGE_GLSL","SHADERLANGUAGE_WGSL","TYPE_INT8","TYPE_UINT8","TYPE_INT16","TYPE_UINT16","TYPE_INT32","TYPE_UINT32","TYPE_FLOAT32","TYPE_FLOAT16","UNIFORMTYPE_BOOL","UNIFORMTYPE_INT","UNIFORMTYPE_FLOAT","UNIFORMTYPE_VEC2","UNIFORMTYPE_VEC3","UNIFORMTYPE_VEC4","UNIFORMTYPE_IVEC2","UNIFORMTYPE_IVEC3","UNIFORMTYPE_IVEC4","UNIFORMTYPE_BVEC2","UNIFORMTYPE_BVEC3","UNIFORMTYPE_BVEC4","UNIFORMTYPE_MAT2","UNIFORMTYPE_MAT3","UNIFORMTYPE_MAT4","UNIFORMTYPE_TEXTURE2D","UNIFORMTYPE_TEXTURECUBE","UNIFORMTYPE_FLOATARRAY","UNIFORMTYPE_TEXTURE2D_SHADOW","UNIFORMTYPE_TEXTURECUBE_SHADOW","UNIFORMTYPE_TEXTURE3D","UNIFORMTYPE_VEC2ARRAY","UNIFORMTYPE_VEC3ARRAY","UNIFORMTYPE_VEC4ARRAY","UNIFORMTYPE_MAT4ARRAY","UNIFORMTYPE_TEXTURE2D_ARRAY","UNIFORMTYPE_UINT","UNIFORMTYPE_UVEC2","UNIFORMTYPE_UVEC3","UNIFORMTYPE_UVEC4","UNIFORMTYPE_INTARRAY","UNIFORMTYPE_UINTARRAY","UNIFORMTYPE_BOOLARRAY","UNIFORMTYPE_IVEC2ARRAY","UNIFORMTYPE_UVEC2ARRAY","UNIFORMTYPE_BVEC2ARRAY","UNIFORMTYPE_IVEC3ARRAY","UNIFORMTYPE_UVEC3ARRAY","UNIFORMTYPE_BVEC3ARRAY","UNIFORMTYPE_IVEC4ARRAY","UNIFORMTYPE_UVEC4ARRAY","UNIFORMTYPE_BVEC4ARRAY","UNIFORMTYPE_ITEXTURE2D","UNIFORMTYPE_UTEXTURE2D","UNIFORMTYPE_ITEXTURECUBE","UNIFORMTYPE_UTEXTURECUBE","UNIFORMTYPE_ITEXTURE3D","UNIFORMTYPE_UTEXTURE3D","UNIFORMTYPE_ITEXTURE2D_ARRAY","UNIFORMTYPE_UTEXTURE2D_ARRAY","uniformTypeToName","uniformTypeToNameWGSL","uniformTypeToNameMapWGSL","names","uniformTypeToStorage","DEVICETYPE_WEBGL2","DEVICETYPE_WEBGPU","DEVICETYPE_WEBGPU_BARE","DEVICETYPE_NULL","SHADERSTAGE_VERTEX","SHADERSTAGE_FRAGMENT","SHADERSTAGE_COMPUTE","DISPLAYFORMAT_LDR","DISPLAYFORMAT_LDR_SRGB","DISPLAYFORMAT_HDR","TEXPROPERTY_MIN_FILTER","TEXPROPERTY_MAG_FILTER","TEXPROPERTY_ADDRESS_U","TEXPROPERTY_ADDRESS_V","TEXPROPERTY_ADDRESS_W","TEXPROPERTY_COMPARE_ON_READ","TEXPROPERTY_COMPARE_FUNC","TEXPROPERTY_ANISOTROPY","TEXPROPERTY_ALL","BINDGROUP_VIEW","BINDGROUP_MESH","BINDGROUP_MESH_UB","bindGroupNames","UNIFORM_BUFFER_DEFAULT_SLOT_NAME","UNUSED_UNIFORM_NAME","typedArrayTypes","typedArrayTypesByteSize","vertexTypesNames","typedArrayToType","typedArrayIndexFormats","typedArrayIndexFormatsByteSize","primitiveGlslToWgslTypeMap","semanticToLocation","id","BindBaseFormat","visibility","slot","scopeId","BindUniformBufferFormat","BindStorageBufferFormat","readOnly","BindTextureFormat","textureDimension","sampleType","hasSampler","samplerName","multisampled","BindStorageTextureFormat","write","read","BindGroupFormat","destroy","impl","getTexture","textureFormatsMap","textureFormats","getStorageTexture","storageTextureFormatsMap","storageTextureFormats","loseContext","graphicsDevice","formats","uniformBufferFormats","storageBufferFormats","device","bufferFormatsMap","bf","tf","resolve","storageBufferFormatsMap","createBindGroupFormatImpl","DeviceCache","onCreate","_cache","TextureUtils","_TextureUtils","calcLevelDimension","dimension","mipLevel","calcMipLevelsCount","depth","calcLevelGpuSize","formatInfo","pixelSize","blockWidth","blockHeight","blockDepth","calcGpuSize","mipmaps","cubemap","calcTextureSize","count","widthMultiple","StringIds","stringIds","TextureView","texture","baseMipLevel","mipLevelCount","baseArrayLayer","arrayLayerCount","id2","Texture","_Texture","createDataTexture2D","levels","minFilter","magFilter","addressU","addressV","onTextureDestroyed","adjustVramSizeTracking","_vram","_gpuSize","releaseSourceAfterUpload","releaseImageSources","_levels","ImageBitmap","level","close","j","setReleaseSourceAfterUpload","_needsUpload","_needsMipmapsUpload","recreateImpl","upload","createTextureImpl","dirtyAll","_clearLevels","_cubemap","resize","_width","_height","_depth","_updateNumLevels","_samples","gpuSize","vram","tex","propertyChanged","flag","renderVersionDirty","renderVersion","maxLevels","requestedLevels","_numLevelsRequested","_numLevels","_mipmaps","lockedMode","_lockedMode","_minFilter","_format","_magFilter","_addressU","_addressV","addressW","_volume","_addressW","compareOnRead","_compareOnRead","compareFunc","_compareFunc","anisotropy","_anisotropy","oldMipmaps","oldNumLevels","array","isWebGPU","texturesToUpload","numLevels","storage","_storage","samples","mips","_compressed","_arrayLength","arrayLength","volume","_shadersDirty","rgbm","swizzleGGGR","_glTexture","currentSrgb","linearFormat","flipY","_flipY","markForUpload","premultiplyAlpha","_premultiplyAlpha","pot","encoding","_levelsUpdated","_mipmapsUploaded","lock","face","mode","_lockedLevel","ArrayBuffer","setSource","source","_isHTMLElementInterface","supportsHtmlTextures","invalid","_isBrowserInterface","HTMLVideoElement","videoWidth","videoHeight","rect","getBoundingClientRect","_invalid","getSource","unlock","uploadVersion","uploadImmediate","_validateCopy","getView","_integerFormat","requestedSamples","maxSamples","projection","textureData","white","gray","black","pink","BuiltInTextures","deviceCache","getBuiltInTexture","cache","pixels","id3","DynamicBindGroup","bindGroup","offsets","BindGroup","defaultUniformBuffer","setUniformBuffer","uniformBuffer","uniformBuffers","dirty","setStorageBuffer","storageBuffer","storageBuffers","setTexture","textures","renderVersionUpdated","_textureImpls","setStorageTexture","storageTextures","_storageTextureImpls","updateUniformBuffers","update","textureFormat","storageTextureFormat","storageBufferFormat","uniformBufferOffsets","persistent","container","allocation","gpuBuffer","_uniformBufferContainers","createBindGroupImpl","BitPacking","shift","mask","all","shifted","any","stringIds2","opMask","factorMask","colorOpShift","colorSrcFactorShift","colorDstFactorShift","alphaOpShift","alphaSrcFactorShift","alphaDstFactorShift","redWriteShift","greenWriteShift","blueWriteShift","alphaWriteShift","blendShift","allWriteMasks","allWriteShift","overridesBit","stateMask","maxAttachments","usesSecondarySource","factor","stateUsesSecondarySource","state","BlendState","_BlendState","blend","attachment0","_keyDirty","setColorBlend","op","srcFactor","dstFactor","setAlphaBlend","setColorWrite","redWrite","greenWrite","blueWrite","alphaWrite","colorOp","colorSrcFactor","colorDstFactor","alphaOp","alphaSrcFactor","alphaDstFactor","allWrite","hasAttachmentOverrides","setAttachment","_attachments","_attachmentsUpdated","clearAttachment","getAttachment","attachments","overrides","_evalKey","_key","usesDualSourceBlending","DEFAULT","NOBLEND","NOWRITE","ALPHABLEND","ADDBLEND","stringIds3","funcMask","funcShift","writeShift","DepthState","_DepthState","updateKey","depthBias","_depthBias","depthBiasSlope","_depthBiasSlope","NODEPTH","WRITEDEPTH","BufferUtils","createStorageView","arrayType","byteOffset","isView","arrayBuffer","elementSize","BYTES_PER_ELEMENT","numBytes","id4","IndexBuffer","buffers","indexBuffer","initialized","ib","restoreContext","getFormat","getNumIndices","numIndices","setData","writeData","indices","subarray","readData","usage","initialData","createIndexBufferImpl","bytesPerIndex","Version","globalId","idCounter","VersionedObject","increment","ScopeId","setValue","versionObject","getValue","ScopeSpace","variables","removeValue","uniform","id5","VertexBuffer","vaoKeyPart","_vaoKeyPart","renderingHash","vb","getUsage","getNumVertices","numVertices","createVertexBufferImpl","verticesByteSize","hashCode","str","hash","hash32Fnv1a","array3","prime","stringIds4","webgpuValidElementSizes","deviceCache2","VertexFormat","_VertexFormat","elements","_elements","getDefaultInstancingFormat","semantic","components","defaultInstancingFormat","isElementValid","elementDesc","_evaluateHash","stringElementsBatch","stringElementsRender","dataType","numComponents","stride","asInt","stringElementBatch","stringElementRender","batchingString","batchingHash","shaderProcessingHashString","renderingHashString","description","vertexCount","hasUv0","hasUv1","hasColor","hasTangents","interleaved","instancing","reduce","total","desc","element","stringIds5","StencilParameters","_StencilParameters","_func","_dirty","ref","_ref","fail","_fail","zfail","_zfail","zpass","_zpass","readMask","_readMask","writeMask","_writeMask","id6","StorageBuffer","byteSize","allocate","sb","immediate","bufferOffset","dataOffset","srcBuffer","srcOffset","dstOffset","commandEncoder","getCommandEncoder","copyBufferToBuffer","bufferUsage","addStorageUsage","createBufferImpl","_tempBlendState","_tempDepthState","GraphicsDevice","_GraphicsDevice","postInit","vertexFormat","positions","quadVertexBuffer","quadIndexBuffer","initCapsDefines","capsDefines","textureFloatFilterable","textureFloatRenderable","supportsMultiDraw","supportsDualSourceBlending","supportsPrimitiveIndex","supportsShaderF16","supportsSubgroups","supportsSubgroupSizeControl","supportsSubgroupId","supportsLinearIndexing","supportsUnrestrictedPointerParameters","supportsPointerCompositeAccess","supportsPacked4x8IntegerDotProduct","supportsTextureAndSamplerLet","supportsStorageTextureRead","dynamicBuffers","gpuProfiler","_destroyed","onDestroyShader","shader","shaders","postDestroy","canvas","contextLost","backBufferSize","targets","initializeRenderState","initializeContextCaches","vertexBuffers","shaderValid","shaderAsyncCompile","renderTarget","blendState","depthState","cullMode","frontFace","alphaToCoverage","vx","vy","vw","vh","sw","sh","blendColor","boneLimit","webgl2","isWebGL2","textureFloatHighPrecision","extBlendMinmax","extTextureHalfFloat","extTextureLod","textureHalfFloatFilterable","supportsMrt","supportsVolumeTextures","supportsInstancing","textureHalfFloatUpdatable","extTextureFloat","extStandardDerivatives","setBlendFunction","blendSrc","blendDst","currentBlendState","setBlendState","setBlendFunctionSeparate","blendSrcAlpha","blendDstAlpha","setBlendEquation","blendEquation","setBlendEquationSeparate","blendAlphaEquation","getBlending","setBlending","blending","setDepthWrite","setDepthState","setDepthFunc","setDepthTest","getCullMode","setStencilState","stencilFront","stencilBack","setBlendColor","setCullMode","setFrontFace","setDrawStates","setRenderTarget","setVertexBuffer","vertexBuffer","clearVertexBuffer","getIndirectDrawSlot","indirectDrawBuffer","getIndirectDispatchSlot","indirectDispatchBuffer","getRenderTarget","initRenderTarget","init","draw","primitive2","numInstances","drawCommands","last","_isImageBrowserInterface","_isImageCanvasInterface","_isImageVideoInterface","HTMLImageElement","HTMLCanvasElement","HTMLElement","resizeCanvas","pixelRatio","_maxPixelRatio","devicePixelRatio","setResolution","EVENT_RESIZE","updateClientRect","clientRect","fullscreen","maxPixelRatio","ratio","deviceType","_deviceType","startRenderPass","renderPass","endRenderPass","startComputePass","endComputePass","frameStart","renderPassIndex","frameEnd","mapsToClear","computeDispatch","computes","getRenderableHdrFormat","filterable","blendable","textureRG11B10Renderable","textureHalfFloatRenderable","textureFloatBlendable","validateAttributes","_a2","_b2","_c","_d","_e","_f","_g","_h","_i","backBuffer","backBufferFormat","backBufferAntialias","isNull","isHdr","maxIndirectDrawCount","maxIndirectDispatchCount","maxAnisotropy","maxCubeMapSize","maxTextureSize","maxVolumeSize","maxColorAttachments","supportsStencil","supportsCompute","supportsSubgroupUniformity","maxSubgroupSize","minSubgroupSize","insideRenderPass","supportsUniformBuffers","supportsClipDistances","supportsTransientAttachments","supportsTextureFormatTier1","supportsTextureFormatTier2","supportsIndependentBlending","stencilEnabled","defaultClearOptions","color","stencil","flags","initOptions","antialias","powerPreference","displayFormat","transientColor","transientDepth","xrCompatible","xr","ub","_shaderStats","vsCompiled","fsCompiled","linked","materialShaders","compileTime","_drawCallsPerFrame","_shaderSwitchesPerFrame","_primsPerFrame","_renderTargetCreationTime","textureBias","id7","RenderTarget","_device","destroyFrameBuffers","destroyTextureBuffers","_depthBuffer","_colorBuffers","colorBuffer","_colorBuffer","_resolveBuffers","resolveBuffer","_depthResolveBuffer","evaluateDimensions","validateMrt","createRenderTargetImpl","_mipLevel","color3","success","copyRenderTarget","_origin","depthResolveMode","_depthResolveMode","_transientColor","_transientDepth","_stencil","colorBufferCount","getColorBuffer","getResolveBuffer","depthBuffer","depthResolveBuffer","_face","_glFrameBuffer","isColorBufferSrgb","autoResolve","colorBuffers","suppliedColorBuffers","msColorBuffer","find","msDepthBuffer","msBuffer","explicitMsaa","resolveOption","resolveBuffers","transientSupported","WebgpuBindGroup","createDescriptor","wgpu","createBindGroup","entries","binding","resource","textureIndex","isTextureView","wgpuTexture","getSampler","bufferIndex","wgpuBuffer","layout","bindGroupLayout","WebgpuUtils","shaderStage","stage","ret","GPUShaderStage","VERTEX","FRAGMENT","COMPUTE","gpuTextureFormats","samplerTypes","sampleTypes","stringIds6","WebgpuBindGroupFormat","bindGroupFormat","bufferFormat","hasDynamicOffset","viewDimension","gpuSampleType","gpuSamplerType","storageTexture","access","createBindGroupLayout","WebgpuBuffer","deferDestroy","createBuffer","usageFlags","GPUBufferUsage","COPY_DST","srcData","queue","writeBuffer","readStorageBuffer","writeStorageBuffer","clearStorageBuffer","WebgpuIndexBuffer","arr1","arr2","gpuVertexFormats","gpuVertexFormatsNormalized","WebgpuVertexBufferLayout","vertexFormat0","vertexFormat1","getKey","addFormat","stepMode","attributes","elementCount","formatTable","shaderLocation","arrayStride","WebgpuPipeline","getPipelineLayout","bindGroupFormats","bindGroupLayouts","_layoutId","pipelineLayout","createPipelineLayout","_attachmentBlendState","_alphaToCoverageFormats","getWriteMask","GPUColorWrite","ALPHA","_primitiveTopology","_blendOperation","_blendFactor","_compareFunction","_cullModes","_frontFace","_stencilOps","_indexFormat","CacheEntry","pipeline","hashes","WebgpuRenderPipeline","ibFormat","primitiveType","alphaToCoverageEnabled","getAlphaToCoverage","lookupHashes2","lookupHashes","cacheEntries","entry","primitiveTopology","vertexBufferLayout","cacheEntry","getBlend","operation","colorAttachments","supported","getDepthStencil","depthStencil","depthAttachment","depthWriteEnabled","depthCompare","biasAllowed","depthBiasSlopeScale","stencilReadMas","stencilWriteMask","compare","failOp","passOp","depthFailOp","webgpuShader","vertex","module","getVertexShaderModule","entryPoint","vertexEntryPoint","primitive","topology","multisample","stripIndexFormat","getFragmentShaderModule","fragmentEntryPoint","attachmentState","createRenderPipeline","CacheEntry2","WebgpuComputePipeline","computeKey","impls","getComputeShaderModule","computeEntryPoint","_pipelineId2","createComputePipeline","RefCountedObject","incRefCount","_refCount","decRefCount","refCount","Entry","obj","object","RefCountedKeyCache","release","MultisampledTextureCache","multisampledTextureCache","getMultisampledTextureCache","FramePass","_name","_enabled","onEnable","onDisable","frameUpdate","before","execute","after","render","executeEnabled","_skipStart","_skipEnd","requiresCubemaps","beforePasses","afterPasses","ColorAttachmentOps","clearValue","clearValueLinear","store","genMipmaps","DepthStencilAttachmentOps","clearDepthValue","clearStencilValue","clearDepth","clearStencil","storeDepth","resolveDepth","storeStencil","RenderPass","colorOps","colorArrayOps","scaleX","_options","scaleY","options","allocateAttachments","rt","depthStencilOps","numColorOps","resolve2","intFormat","resizeSource","setClearColor","setClearDepth","depthValue","setClearStencil","stencilValue","realPass","fullSizeClearRect","stringIds7","ColorAttachment","multisampledBuffer","resolveView","transient","DepthAttachment","depthTextureInternal","depthTexture","multisampledDepthBuffer","multisampledDepthBufferKey","gpuFormat","hasStencil","WebgpuRenderTarget","assignedColorTexture","colorAttachment","assignColorTexture","gpuTexture","viewFormat","wgpuDevice","xrViewDesc","xrColorTextureViewDescriptor","xrSlice","xrColorTexture","createView","renderPassDescriptor","resolveTarget","setColorAttachment","initDepthStencil","isBackbuffer","initColor","isDefaultFramebuffer","renderingView","depthTextureDesc","sampleCount","GPUTextureUsage","RENDER_ATTACHMENT","TRANSIENT_ATTACHMENT","TEXTURE_BINDING","COPY_SRC","createTexture","depthFormat","msTextures","msDepthTexture","multisampledDepthDesc","depthStencilAttachment","colorView","backBufferViewFormat","multisampledTextureDesc","multisampledColorBuffer","setupForRenderPass","loadOp","storeOp","depthClearValue","depthLoadOp","depthStoreOp","depthReadOnly","stencilClearValue","stencilLoadOp","stencilStoreOp","stencilReadOnly","uniformTypeToNumComponents","UniformFormat","isArrayType","calculateOffset","alignment","shortName","updateType","componentSize","UniformBufferFormat","uniforms","KEYWORD","KEYWORD_LINE","ARRAY_IDENTIFIER","precisionQualifiers","shadowSamplers","textureDimensions","sampler2D","sampler3D","samplerCube","samplerCubeShadow","sampler2DShadow","sampler2DArray","sampler2DArrayShadow","isampler2D","usampler2D","isampler3D","usampler3D","isamplerCube","usamplerCube","isampler2DArray","usampler2DArray","textureDimensionInfo","UniformLine","line","words","trim","rest","exec","arraySize","isNaN","failed","isSampler","isSignedInt","isUnsignedInt","ShaderProcessorGLSL","_ShaderProcessorGLSL","run","shaderDefinition","varyingMap","vertexExtracted","extract","vshader","fragmentExtracted","fshader","attributesMap","attributesBlock","processAttributes","processingOptions","vertexVaryingsBlock","processVaryings","varyings","fragmentVaryingsBlock","outBlock","processOuts","outs","concatUniforms","concat","parsedUniforms","uniformsData","processUniforms","vBlock","MARKER","fBlock","meshUniformBufferFormat","meshBindGroupFormat","uniformsOnly","replacement","keyword","lastIndex","lineMatch","cutOut","parseUniformLines","uniformLines","uniformLinesSamplers","uniformLinesNonSamplers","meshUniforms","hasUniform","uniformType","uniformFormat","hasTexture","uniformFormats","bindGroupIndex","getUniformShaderDeclaration","getTexturesShaderDeclaration","varyingLines","isVertex","block","splitToWords","outsLines","getTypeCount","lastChar","attributeLines","shaderDefinitionAttributes","copyCode","getVertexElement","attribNumElements","newName","isSignedType","bindIndex","typeString","sampleTypePrefix","namePostfix","extraCode","KEYWORD2","KEYWORD_LINE2","KEYWORD_RESOURCE","VARYING","ENTRY_FUNCTION","FRAG_DEPTH_ASSIGN","SAMPLE_MASK_ASSIGN","FRAGMENT_BUILTINS","wgslName","wgslType","wgslBuiltin","pcName","isFallback","requiresFeature","VERTEX_BUILTINS","detectUsedBuiltins","builtins","entryInputName","filter","RegExp","ensureNonEmptyStruct","used","otherFieldsPresent","fallback","renderBuiltinStructFields","renderBuiltinPrivates","renderBuiltinCopies","textureBaseInfo","baseSampleType","getTextureInfo","baseType","componentType","baseInfo","finalSampleType","getTextureDeclarationType","msFormat","baseTypeString","coreFormatString","gpuFormatToPixelFormat","pixelFormat","wrappedArrayTypes","UNIFORM_ARRAY_REGEX","UniformLine2","ubName","TEXTURE_REGEX","STORAGE_TEXTURE_REGEX","STORAGE_BUFFER_REGEX","EXTERNAL_TEXTURE_REGEX","SAMPLER_REGEX","ResourceLine","isTexture","isStorageTexture","isStorageBuffer","isExternalTexture","accessMode","samplerType","originalLine","matchedElements","textureMatch","storageTextureMatch","storageBufferMatch","externalTextureMatch","samplerMatch","WebgpuShaderProcessorWGSL","_WebgpuShaderProcessorWGSL","vertexInputName","fragmentInputName","renameUniformAccess","parsedResources","mergeResources","resources","resourcesData","processResources","fOutput","generateFragmentOutputStruct","useDualSourceBlending","copyInputs","runCompute","reflectedGroupIndex","extracted","computeUniformBufferFormat","resourceFormats","buildResourceFormats","ubBindFormat","allFormats","cshader","computeBindGroupFormat","getTextureShaderDeclaration","directives","srcName","dstName","regex","fragmentResources","fragmentResource","existing","ubFormat","structName","format2","textureTypeName","storageType","fmtString","blockPrivates","blockCopy","usedBuiltins","numRenderTargets","structCode","colorName","needsFragDepth","needsSampleMask","floatAttributeToInt","signed","longToShortMap","shortType","floatToIntShort","blockAttributes","originalType","usedLocations","inputName","braceIndex","beginning","lineToInject","computeShaderIds","WebgpuShader","_vertexCode","_fragmentCode","createShaderModule","shaderType","shaderModule","_computeCode","processGLSL","processed","definition","transpile","ready","processComputeWGSL","callerBindGroupFormat","computeUniformBufferFormats","computeReflectedGroupIndex","computeReflectedBindGroupFormat","computeReflectedUniformBufferFormat","processWGSL","originalSrc","glslang","twgsl","label","spirv","compileGLSL","wgsl","convertSpirV2WGSL","original","vertexCode","fragmentCode","_computeKey","keyString","shaderLanguage","gpuAddressModes","gpuFilterModes","mip","dummyUse","thingOne","WebgpuTexture","depthOrArrayLayers","STORAGE_BINDING","viewDescr","viewCache","samplers","textureView","textureDescr","defaultViewDimension","addressModeU","addressModeV","addressModeW","mipmapFilter","forceNearest","allLinear","maxTextureAnisotropy","createSampler","uploadData","anyUploads","anyLevelMissing","requiredMipLevels","mipObject","faceSource","isExternalImage","uploadExternalImage","uploadTypedArrayData","arraySource","uploadElementImage","mipmapRenderer","generate","image","OffscreenCanvas","premultipliedAlpha","copySize","submit","getContext","copyExternalImageToTexture","destination","copyElementImageToTexture","dest","dataLayout","bytesPerRow","rowsPerImage","blockDim","size2","writeTexture","paddedBytesPerRow","stagingBuffer","copyTextureToBuffer","readBuffer","temp","ArrayType","targetBuffer","sourceMipLevel","destMipLevel","sourceX","sourceY","dx","destX","dy","destY","_uploadDirtyTextures","copyTextureToTexture","WebgpuUniformBuffer","storageInt32","WebgpuVertexBuffer","KEYWORD3","DEFINE","EXTENSION","UNDEF","IF","ENDIF","IDENTIFIER","DEFINED","DEFINED_PARENS","DEFINED_BEFORE_PAREN","COMPARISON","INVALID","INCLUDE","LOOP_INDEX","FRAGCOLOR","NUMERIC_LITERAL","Preprocessor","_Preprocessor","sourceName","stripComments","trimEnd","defines","injectDefines","_preprocess","stripDefines","intDefines","isInteger","parseFloat","stripUnusedColorAttachments","RemoveEmptyLines","processArraySize","counts","matches","anySingleUse","some","lines","keepLines","originalSource","define","expression","identifierValue","identifier","keep","_keep","stripThisDefine","replacementDefine","undef","extension","iff","evaluated","anyKeep","endif","blockInfo","blockCode","endifCommand","include","countIdentifier","includeSource","countString","evaluateAtomicExpression","expr","definedMatch","exists","comparisonMatch","operator","result2","processParentheses","wrapsEntire","foundParen","maxDepth","deepestStart","deepestEnd","inDefinedParen","beforeParen","subExpr","subError","correct","processedExpr","parenError","withoutDefined","orSegments","orSegment","andSegments","andResult","andSegment","gles3_default","gles3_default2","webgpu_default","webgpu_default2","webgpu_wgsl_default","webgpu_wgsl_default2","shared_default","shared_wgsl_default","half_types_default","_attrib2Semantic","vertex_position","vertex_normal","vertex_tangent","vertex_texCoord0","vertex_texCoord1","vertex_texCoord2","vertex_texCoord3","vertex_texCoord4","vertex_texCoord5","vertex_texCoord6","vertex_texCoord7","vertex_color","vertex_boneIndices","vertex_boneWeights","ShaderDefinitionUtils","_ShaderDefinitionUtils","createDefinition","normalizedOutputTypes","options3","fragmentOutputTypes","getDefines","gpu","gl2","deviceIntro","attachmentsDefine","outType","getDefinesWgsl","getWGSLEnables","glslOutType","wgslOutType","vertCode","fragCode","vertexDefinesCode","getDefinesCode","vertexDefines","fragmentDefinesCode","fragmentDefines","versionCode","precisionCode","getShaderNameCode","fragmentPreamble","vincludes","vertexIncludes","fincludes","fragmentIncludes","feedbackVaryings","feedbackVaryingsMode","useTransformFeedback","forcePrecision","maxPrecision","collectAttributes","vsCode","attribs","attrs","found","ignore","startOfLine","lineStartString","endOfLine","startOfAttribName","attribName","id8","Shader","enablesCode","definesCode","cdefines","cincludes","createShaderImpl","UsedBuffer","DynamicBufferAllocation","DynamicBuffers","gpuBuffers","stagingBuffers","usedBuffers","activeBuffer","alloc","alignedStart2","bufferAlignment","space","bufferSize","scheduleSubmit","alignedStart","_updateFunctions","storageFloat32","storageUint32","UniformBuffer","assignStorage","setUniform","updateFunction","startUpdate","dynamicBindGroup","getBindGroup","endUpdate","createUniformBufferImpl","webgpu_clear_default","base","baseVertex","indexed","WebgpuClearRenderer","defaultOptions","setBindGroup","emptyBindGroup","colorData","setShader","webgpu_mipmap_default","WebgpuMipmapRenderer","pipelineCache","webgpuTexture","numFaces","srcViews","dstView","passEncoder","beginRenderPass","getBindGroupLayout","minSampler","setPipeline","DynamicBuffer","ubSize","bindGroupCache","WebgpuDynamicBuffer","onAvailable","mappedRange","getMappedRange","isStaging","MAP_WRITE","UNIFORM","mappedAtCreation","WebgpuDynamicBuffers","pendingStagingBuffers","createCommandEncoder","usedBuffer","unmap","cb","finish","addCommandBuffer","onCommandBuffersSubmitted","mapBufferAsync","GPUMapMode","WRITE","mapped","GpuProfiler","pastFrameAllocations","_enableRequest","passTimings","_passTimings","processEnableRequest","_frameTime","request","frameAllocations","_parsePassName","parsedName","_nameCache","report","timings","frameTime","allocations","sum","timing","getSlot","maxCount","slotCount","WebgpuQuerySet","querySet","queryBuffer","activeStagingBuffer","getStagingBuffer","MAP_READ","resolveQuerySet","bytesPerSlot","READ","srcTimings","BigInt64Array","minTime","maxTime","isTimestamp","capacity","createQuerySet","QUERY_RESOLVE","STORAGE","WebgpuGpuProfiler","timestampQueriesSet","results","frameGPUMarkerSlot","supportsTimestampQuery","webgpu_depth_resolve_default","WebgpuResolver","shaderCache","getShader","toUpperCase","getPipeline","createPipeline","sourceTexture","destinationTexture","srcView","_indirectDispatchEntryByteSize","WebgpuCompute","bindGroups","updateBindGroup","dispatch","indirectSlotIndex","indirectBuffer","indirectFrameStamp","dispatchWorkgroupsIndirect","dispatchWorkgroups","reflectedBindGroup","computePipeline","WebgpuDrawCommands","gpuIndirect","gpuIndirectSigned","indexOrVertexCount","instanceCount","firstIndexOrVertex","firstInstance","o","totalPrimitives","WebgpuUploadStream","_onDeviceLost","availableStagingBuffers","minByteSize","uploadStream","pending","available","useSingleBuffer","uploadDirect","uploadStaging","newBuffer","_lastUploadSubmitVersion","submitVersion","WebgpuXrBridge","_binding","_layer","_cachedFramebufferSize","_clearXrState","beginFrame","frame","referenceSpace","xrBridge","pose","getViewerPose","views","subImages","xrSubImages","getViewSubImage","_onBindingError","colorTexture","viewDescriptor","getViewDescriptor","viewport","xrColorTextureViewFormat","setXrBackBufferFormat","endFrame","presentationLayer","graphicsBinding","getFramebufferSize","_frame","layer","textureWidth","lh","textureHeight","getViewport","xrView","attachPresentation","session","XRGPUBindingCtor","XRGPUBinding","colorFormat","getPreferredColorFormat","layerOpts","scaleFactor","framebufferScaleFactor","createProjectionLayer","updateRenderState","layers","depthNear","depthFar","syncCameraColorTexture","xrCamera","getCameraImage","encoder","syncCameraDepthTexture","depthInfo","_texture","_depthPixelFormat","releasePresentation","onGraphicsDeviceLost","bridge","_session","rs","renderState","onGraphicsDeviceRestored","eventHandler","setTimeout","_framebufferScaleFactor","onBindingError","_uniqueLocations","_indirectEntryByteSize","_indirectDispatchEntryByteSize2","_gpuFormatToPixelFormat","WebgpuGraphicsDevice","clearRenderer","resolver","externalBackbuffer","destroyDeferredResources","commandBuffers","renderPipeline","gpuContext","unconfigure","gpuAdapter","canvasConfig","xrCurrentViewIndex","_canvasBackBufferFormat","initDeviceCaps","limits","maxTextures","maxSampledTexturesPerShaderStage","maxTextureDimension2D","maxTextureDimension3D","fragmentUniformsCount","maxUniformBufferBindingSize","vertexUniformsCount","supportsAreaLights","supportsGpuParticles","supportsImageBitmap","wgslFeatures","wgslLanguageFeatures","initWebGpu","glslangUrl","twgslUrl","baseUrl","baseURI","href","buildUrl","srcPath","URL","twgslScriptUrl","twgslWasmUrl","glslangScriptUrl","Promise","default","createDevice","adapterOptions","requestAdapter","vendor","featureLevel","bare","requiredFeatures","requireFeature","feature","features","extCompressedTextureS3TC","extCompressedTextureS3TCSliced3D","extCompressedTextureETC","extCompressedTextureASTC","extCompressedTextureASTCSliced3D","supportsDepthClip","supportsDepth32Stencil","supportsIndirectFirstInstance","supportsStorageRGBA8","subgroupMaxSize","subgroupMinSize","requiredLimits","adapterLimits","limitName","deviceDescr","defaultQueue","requestDevice","lost","handleDeviceLost","addEventListener","canvasToneMapping","preferredCanvasFormat","getPreferredCanvasFormat","hdrMediaQuery","matchMedia","colorSpace","alphaMode","toneMapping","viewFormats","configure","createBackbuffer","reason","setupPassEncoderDefaults","minUniformBufferOffsetAlignment","outColorBuffer","getCurrentTexture","wrt","attachmentViewFormat","_indirectDrawNextIndex","_indirectDispatchNextIndex","createDrawCommandImpl","createXrBridgeImpl","createUploadStreamImpl","createComputeImpl","allocateIndirectDrawBuffer","_indirectDrawBuffer","_indirectDrawBufferCount","nextIndex","allocateIndirectDispatchBuffer","_indirectDispatchBuffer","_indirectDispatchBufferCount","submitVertexBuffer","vbBuffer","validateVBLocations","vb0","vb1","validateVB","vbSlot","setIndexBuffer","drawsCount","indirectOffset","slotIndex","drawIndexedIndirect","drawIndirect","drawIndexed","asyncCompile","stencilRef","setStencilReference","setBlendConstant","setAlphaToCoverage","setupTimeStampWrites","passDesc","timestampWrites","beginningOfPassWriteIndex","endOfPassWriteIndex","renderPassDesc","setScissor","destTexture","computePassDesc","beginComputePass","applyParameters","countX","countY","countZ","endCommandEncoder","commandBuffer","front","unshift","deferredDestroys","_deferredDestroys","gpuResource","setScissorRect","clearBuffer","mapAsync","destBuffer","reject","copySrc","srcType","srcSamples","dstSamples","copyDst","sourceRT","sourceAttachment","destMsDepth","hasTranspilers","WebglBuffer","bufferId","gl","deleteBuffer","glUsage","STATIC_DRAW","DYNAMIC_DRAW","STREAM_DRAW","DYNAMIC_COPY","bindBuffer","bufferData","bufferSubData","WebglVertexBuffer","unbindVertexArray","vao","ARRAY_BUFFER","WebglIndexBuffer","ELEMENT_ARRAY_BUFFER","glFormat","UNSIGNED_BYTE","UNSIGNED_SHORT","UNSIGNED_INT","WebglShaderInput","locationId","WebglShaderProcessorGLSL","_WebglShaderProcessorGLSL","processUniformsGL2","getUniformShaderDeclarationGL2","_vertexShaderBuiltins","CompiledShaderCache","deleteShader","_vertexShaderCache","_fragmentShaderCache","WebglShader","glProgram","deleteProgram","glVertexShader","glFragmentShader","_vsource","_fsource","compile","link","vsource","fsource","_compileShaderSource","isContextLost","createProgram","attachShader","outNames","attr","bufferMode","INTERLEAVED_ATTRIBS","SEPARATE_ATTRIBS","transformFeedbackVaryings","loc","bindAttribLocation","linkProgram","isVertexShader","shaderDeviceCache","glShader","createShader","VERTEX_SHADER","FRAGMENT_SHADER","shaderSource","compileShader","finalize","linkStatus","getProgramParameter","LINK_STATUS","_isCompiled","message","getProgramInfoLog","numAttributes","ACTIVE_ATTRIBUTES","getActiveAttrib","getAttribLocation","samplerTypes2","_samplerTypes","numUniforms","ACTIVE_UNIFORMS","getActiveUniform","getUniformLocation","shaderInput","pcUniformType","numBlocks","ACTIVE_UNIFORM_BLOCKS","blockName","getActiveUniformBlockName","bindingPoint","uniformBlockBinding","getShaderParameter","COMPILE_STATUS","infoLog","getShaderInfoLog","_processError","isLinked","extParallelShaderCompile","COMPLETION_STATUS_KHR","linePrefix","compileDuration","WebglUniformBuffer","UNIFORM_BUFFER","WebglBindGroup","WebglBindGroupFormat","WebglDynamicBuffer","WebglDynamicBuffers","free","onFrameEnd","pool","WebglDrawCommands","glCounts","glOffsetsBytes","glInstanceCounts","indexSizeBytes","downsampleImage","srcW","srcH","dstW","dstH","context","drawImage","WebglTexture","textureUnits","textureUnit","deleteTexture","dirtyParameterFlags","_glTarget","TEXTURE_CUBE_MAP","TEXTURE_3D","TEXTURE_2D_ARRAY","TEXTURE_2D","_glFormat","_glInternalFormat","_glPixelType","LUMINANCE","LUMINANCE_ALPHA","R8","RG","RG8","RGB","RGB565","UNSIGNED_SHORT_5_6_5","RGBA","RGB5_A1","UNSIGNED_SHORT_5_5_5_1","RGBA4","UNSIGNED_SHORT_4_4_4_4","RGB8","RGBA8","RGB9_E5","UNSIGNED_INT_5_9_9_9_REV","RG8_SNORM","BYTE","RGBA8_SNORM","RGB10_A2","UNSIGNED_INT_2_10_10_10_REV","RGBA_INTEGER","RGB10_A2UI","COMPRESSED_RGB_S3TC_DXT1_EXT","COMPRESSED_RGBA_S3TC_DXT3_EXT","COMPRESSED_RGBA_S3TC_DXT5_EXT","extCompressedTextureETC1","COMPRESSED_RGB_ETC1_WEBGL","extCompressedTexturePVRTC","COMPRESSED_RGB_PVRTC_2BPPV1_IMG","COMPRESSED_RGBA_PVRTC_2BPPV1_IMG","COMPRESSED_RGB_PVRTC_4BPPV1_IMG","COMPRESSED_RGBA_PVRTC_4BPPV1_IMG","COMPRESSED_RGB8_ETC2","COMPRESSED_RGBA8_ETC2_EAC","COMPRESSED_RGBA_ASTC_4x4_KHR","extCompressedTextureATC","COMPRESSED_RGB_ATC_WEBGL","COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL","extTextureCompressionBPTC","COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT","COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT","COMPRESSED_RGBA_BPTC_UNORM_EXT","SRGB","extCompressedTextureS3TC_SRGB","COMPRESSED_SRGB_S3TC_DXT1_EXT","SRGB_ALPHA","COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT","COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT","COMPRESSED_SRGB8_ETC2","COMPRESSED_SRGB8_ALPHA8_ETC2_EAC","COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR","COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT","R16F","HALF_FLOAT","RG16F","RGB16F","RGBA16F","RGB32F","FLOAT","RGBA32F","R32F","RG32F","DEPTH_COMPONENT","DEPTH_COMPONENT32F","DEPTH_COMPONENT16","DEPTH_STENCIL","DEPTH24_STENCIL8","UNSIGNED_INT_24_8","R11F_G11F_B10F","UNSIGNED_INT_10F_11F_11F_REV","SRGB8","SRGB8_ALPHA8","RED_INTEGER","R8I","R8UI","R16I","SHORT","R16UI","R32I","INT","R32UI","RG_INTEGER","RG8I","RG8UI","RG16I","RG16UI","RG32I","RG32UI","RGBA8I","RGBA8UI","RGBA16I","RGBA16UI","RGBA32I","RGBA32UI","_glCreated","resMult","texStorage3D","generateMipmap","setUnpackFlipY","setUnpackPremultiplyAlpha","texSubImage2D","TEXTURE_CUBE_MAP_POSITIVE_X","texImage2D","texData","compressedTexSubImage2D","compressedTexImage2D","setUnpackAlignment","compressedTexImage3D","texImage3D","compressedTexSubImage3D","texSubImage3D","texElementImage2D","readTextureAsync","writeTextureAsync","_validatedFboConfigs","FramebufferPair","msaaFB","deleteRenderbuffer","resolveFB","WebglRenderTarget","_isInitialized","suppliedColorFramebuffer","deleteFramebuffer","_glDepthBuffer","_glResolveFrameBuffer","_glMsaaColorBuffers","colorMrtFramebuffers","framebuffer","_glMsaaDepthBuffer","msaaDepthBufferKey","createFramebuffer","setFramebuffer","attachmentBaseConstant","COLOR_ATTACHMENT0","maxRenderBufferSize","framebufferTexture2D","FRAMEBUFFER","drawBuffers","attachmentPoint","DEPTH_STENCIL_ATTACHMENT","DEPTH_ATTACHMENT","willRenderMsaa","createRenderbuffer","internalFormat","bindRenderbuffer","RENDERBUFFER","renderbufferStorage","framebufferRenderbuffer","renderbufferStorageMultisample","_createMsaaMrtFramebuffers","srcFramebuffer","dstFramebuffer","_checkFbo","colorFormats","validated","status","checkFramebufferStatus","FRAMEBUFFER_INCOMPLETE_ATTACHMENT","FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT","FRAMEBUFFER_INCOMPLETE_DIMENSIONS","FRAMEBUFFER_UNSUPPORTED","FRAMEBUFFER_COMPLETE","internalResolve","bindFramebuffer","READ_FRAMEBUFFER","DRAW_FRAMEBUFFER","blitFramebuffer","NEAREST","fbPair","COLOR_BUFFER_BIT","DEPTH_BUFFER_BIT","isXrFramebuffer","defaultFramebuffer","xrColorQuad","resolveMsaaColorToXrFramebufferViaQuads","WebglUploadStream","availablePBOs","pbo","pendingPBOs","sync","deleteSync","clientWaitSync","CONDITION_SATISFIED","ALREADY_SIGNALED","uploadPBO","activeTexture","bindTexture","startY","pboInfo","PIXEL_UNPACK_BUFFER","pixelStorei","UNPACK_ROW_LENGTH","UNPACK_SKIP_ROWS","UNPACK_SKIP_PIXELS","fenceSync","SYNC_GPU_COMMANDS_COMPLETE","flush","WebglXrBridge","_graphicsBinding","_presentationLayer","_deleteCameraFramebuffers","_cameraFbSource","_cameraFbDest","_referenceSpace","baseLayer","framebufferWidth","framebufferHeight","XRWebGLLayer","XRWebGLBinding","depthPixelFormat","makeXRCompatible","catch","_quadPrimitive","vsSrc","fsSrc","WebglXrMsaaCopy","_getShader","_shader","_sourceId","_ensureScratch","_scratchTex","_scratchRt","msaaReadFbo","xrDrawFbo","FrameQueriesInfo","queries","deleteQuery","WebglGpuProfiler","freeQueries","frameQueries","previousFrameQueries","frameQueriesInfo","extDisjointTimerQuery","createQuery","beginQuery","TIME_ELAPSED_EXT","endQuery","previousQueriesInfo","previousQueries","lastQuery","getQueryParameter","QUERY_RESULT_AVAILABLE","disjoint","getParameter","GPU_DISJOINT_EXT","duration","QUERY_RESULT","_attachmentBlendState2","maxBlendAttachments","_attachmentClearValue","_attachmentClearValueInt","_attachmentClearValueUint","_clearOptions","getPixelFormatChannelsForRgbaReadback","invalidateAttachments","READBACK_FRAME_START_WAIT","WebglGraphicsDevice","_readbackCopies","abandon","feedback","deleteTransformFeedback","clearVertexArrayObjectCache","_xrMsaaCopy","removeEventListener","_contextLostHandler","_contextRestoredHandler","frameBuffer","updateBackbufferFormat","alphaBits","ALPHA_BITS","updateBackbuffer","resolutionChanged","_defaultFramebufferChanged","_defaultFramebuffer","bindBufferBase","getPrecision","getShaderPrecisionFormat","vertexShaderPrecisionHighpFloat","HIGH_FLOAT","vertexShaderPrecisionMediumpFloat","MEDIUM_FLOAT","fragmentShaderPrecisionHighpFloat","fragmentShaderPrecisionMediumpFloat","highpAvailable","mediumpAvailable","supportedExtensions","_extDisjointTimerQuery","initializeExtensions","getSupportedExtensions","extColorBufferFloat","extColorBufferHalfFloat","extDebugRendererInfo","extTextureFloatLinear","extFloatBlend","extBlendFuncExtended","extDrawBuffersIndexed","extTextureFilterAnisotropic","extMultiDraw","initializeCapabilities","MAX_TEXTURE_SIZE","MAX_CUBE_MAP_TEXTURE_SIZE","MAX_RENDERBUFFER_SIZE","MAX_TEXTURE_IMAGE_UNITS","maxCombinedTextures","MAX_COMBINED_TEXTURE_IMAGE_UNITS","maxVertexTextures","MAX_VERTEX_TEXTURE_IMAGE_UNITS","MAX_VERTEX_UNIFORM_VECTORS","MAX_FRAGMENT_UNIFORM_VECTORS","MAX_COLOR_ATTACHMENTS","MAX_3D_TEXTURE_SIZE","unmaskedRenderer","UNMASKED_RENDERER_WEBGL","unmaskedVendor","UNMASKED_VENDOR_WEBGL","maliRendererRegex","samsungModelRegex","MAX_TEXTURE_MAX_ANISOTROPY_EXT","antialiasSupported","forceDisableMultisampling","MAX_SAMPLES","disable","BLEND","blendFunc","FUNC_ADD","colorMask","enable","CULL_FACE","cullFace","DEPTH_TEST","depthFunc","LEQUAL","depthMask","STENCIL_TEST","stencilFuncFront","stencilFuncBack","stencilRefFront","stencilRefBack","stencilMaskFront","stencilMaskBack","stencilFunc","ALWAYS","stencilFailFront","stencilFailBack","stencilZfailFront","stencilZfailBack","stencilZpassFront","stencilZpassBack","stencilWriteMaskFront","stencilWriteMaskBack","stencilOp","KEEP","stencilMask","raster","SAMPLE_ALPHA_TO_COVERAGE","RASTERIZER_DISCARD","depthBiasEnabled","POLYGON_OFFSET_FILL","clearColor","hint","FRAGMENT_SHADER_DERIVATIVE_HINT","NICEST","SCISSOR_TEST","TEXTURE0","UNPACK_COLORSPACE_CONVERSION_WEBGL","NONE","unpackFlipY","UNPACK_FLIP_Y_WEBGL","unpackPremultiplyAlpha","UNPACK_PREMULTIPLY_ALPHA_WEBGL","unpackAlignment","UNPACK_ALIGNMENT","initTextureUnits","_vaoMap","boundVao","activeFramebuffer","transformFeedbackBuffers","scissor","fb","prevRt","updateBegin","sourceRenderTarget","destTarget","copyTexSubImage2D","clearFlags","useClearBuffers","writeMasksReset","colorOps2","clearValueArray","clearBufferuiv","COLOR","clearBufferiv","clearBufferfv","STENCIL_ATTACHMENT","invalidateFramebuffer","_tempEnableSafariTextureUnitWorkaround","unit","targetImpl","updateEnd","textureTarget","textureObject","targetToSlot","bindTextureOnUnit","setTextureParameters","texParameteri","TEXTURE_MIN_FILTER","glFilter","TEXTURE_MAG_FILTER","TEXTURE_WRAP_S","glAddress","TEXTURE_WRAP_T","TEXTURE_WRAP_R","TEXTURE_COMPARE_MODE","COMPARE_REF_TO_TEXTURE","TEXTURE_COMPARE_FUNC","glComparison","texParameterf","TEXTURE_MAX_ANISOTROPY_EXT","_vertexArrayKey","removeVertexArrayFromCache","deleteVertexArray","createVertexArray","useCache","bindVertexArray","vertexAttribIPointer","glType","vertexAttribPointer","enableVertexAttribArray","vertexAttribDivisor","setBuffers","_multiDrawLoopFallback","drawElementsInstanced","drawElements","drawArraysInstanced","drawArrays","activateShader","samplerValue","uniform1i","numTextures","uniform1iv","uniformVersion","programVersion","commitFunction","TRANSFORM_FEEDBACK_BUFFER","beginTransformFeedback","POINTS","glPrimitive","multiDrawElementsInstancedWEBGL","multiDrawElementsWEBGL","multiDrawArraysInstancedWEBGL","multiDrawArraysWEBGL","first2","endTransformFeedback","glClearFlag","readPixels","clientWaitAsync","interval_ms","TIMEOUT_EXPIRED","WAIT_FAILED","readPixelsAsync","forceRgba","frequent","pixelType","buf","PIXEL_PACK_BUFFER","STREAM_READ","copyOut","getBufferSubData","timer","settled","settle","clearTimeout","rgbaChannels","needsRgbaReadback","outputData","released","readPromise","pixelCount","setTransformFeedbackBuffers","active","wasActive","createTransformFeedback","bindTransformFeedback","TRANSFORM_FEEDBACK","setRaster","setStencilTest","setStencilFunc","setStencilFuncFront","stencilFuncSeparate","FRONT","setStencilFuncBack","setStencilOperation","glStencilOp","setStencilOperationFront","stencilOpSeparate","stencilMaskSeparate","setStencilOperationBack","applyBlendState","prevState","glBlendEquation","blendEquationSeparate","blendFuncSeparate","glBlendFunctionColor","glBlendFunctionAlpha","applyBlendStateIndexed","enableiOES","disableiOES","blendEquationSeparateiOES","blendFuncSeparateiOES","colorMaskiOES","attachment0Key","currentDepthState","polygonOffset","glCull","glFrontFace","useProgram","mapObj","requestFullscreen","exitFullscreen","fullscreenElement","event","preventDefault","ua2","ua3","firefoxVersion","version2","disableAntialias","isChrome","isSafari","isMac","appVersion","_tempMacChromeBlitFramebufferWorkaround","SAMPLER_2D","SAMPLER_CUBE","UNSIGNED_INT_SAMPLER_2D","INT_SAMPLER_2D","SAMPLER_2D_SHADOW","SAMPLER_CUBE_SHADOW","SAMPLER_3D","INT_SAMPLER_3D","UNSIGNED_INT_SAMPLER_3D","SAMPLER_2D_ARRAY","INT_SAMPLER_2D_ARRAY","UNSIGNED_INT_SAMPLER_2D_ARRAY","REPEAT","CLAMP_TO_EDGE","MIRRORED_REPEAT","FUNC_SUBTRACT","FUNC_REVERSE_SUBTRACT","MIN","MAX","SRC_COLOR","ONE_MINUS_SRC_COLOR","DST_COLOR","ONE_MINUS_DST_COLOR","SRC_ALPHA","SRC_ALPHA_SATURATE","ONE_MINUS_SRC_ALPHA","DST_ALPHA","ONE_MINUS_DST_ALPHA","CONSTANT_COLOR","ONE_MINUS_CONSTANT_COLOR","SRC1_COLOR_WEBGL","ONE_MINUS_SRC1_COLOR_WEBGL","SRC1_ALPHA_WEBGL","ONE_MINUS_SRC1_ALPHA_WEBGL","CONSTANT_ALPHA","ONE_MINUS_CONSTANT_ALPHA","NEVER","LESS","EQUAL","GREATER","NOTEQUAL","GEQUAL","REPLACE","INCR","INCR_WRAP","DECR","DECR_WRAP","INVERT","STENCIL_BUFFER_BIT","FRONT_AND_BACK","CCW","CW","LINEAR","NEAREST_MIPMAP_NEAREST","NEAREST_MIPMAP_LINEAR","LINEAR_MIPMAP_NEAREST","LINEAR_MIPMAP_LINEAR","LINES","LINE_LOOP","LINE_STRIP","TRIANGLES","TRIANGLE_STRIP","TRIANGLE_FAN","BOOL","FLOAT_VEC2","FLOAT_VEC3","FLOAT_VEC4","INT_VEC2","INT_VEC3","INT_VEC4","BOOL_VEC2","BOOL_VEC3","BOOL_VEC4","FLOAT_MAT2","FLOAT_MAT3","FLOAT_MAT4","UNSIGNED_INT_VEC2","UNSIGNED_INT_VEC3","UNSIGNED_INT_VEC4","INT_SAMPLER_CUBE","scopeX","scopeY","scopeZ","scopeW","uniformValue","uniform1f","uniform2fv","uniform3fv","uniform4fv","uniform2iv","uniform3iv","uniform4iv","uniformMatrix2fv","uniformMatrix3fv","uniformMatrix4fv","uniform1fv","uniform1ui","uniform2uiv","uniform3uiv","uniform4uiv","uniform1uiv","constantTexSource","NullIndexBuffer","NullRenderTarget","NullShader","NullTexture","NullVertexBuffer","NullDrawCommands","NullUniformBuffer","NullBindGroup","NullBindGroupFormat","NullDynamicBuffers","NullGraphicsDevice","disableParticleSystem","createGraphicsDevice","deviceTypes","deviceCreateFuncs","attempt","next","log","ComputeParameter","Compute","setParameter","param","parameters","deleteParameter","setupDispatch","setupIndirectDispatch","calcDispatchSize","maxDimension","DrawCommands","_maxCount","_count","primitiveCount","TransformFeedback","_createOutputBuffer","inputBuffer","_ownedOutputBuffers","process","swap","oldRt","_inputBuffers","_outputBuffers","_swapPairs","input","outputBuffer","inputBuffers","outputBuffers","descriptors","set1","set2","set3","set4","arraySet1","inputArray","inputIndex","arraySet2","arraySet3","arraySet4","arrayGet1","outputArray","outputIndex","arrayGet2","arrayGet3","arrayGet4","VertexIteratorAccessor","getToArray","setFromArray","vertexElement","VertexIterator","accessors","numAccessors","accessor","copyCount","vertexFormatSize","ACTION_MOUSE","ACTION_KEYBOARD","ACTION_GAMEPAD","AXIS_MOUSE_X","AXIS_MOUSE_Y","AXIS_PAD_L_X","AXIS_PAD_L_Y","AXIS_PAD_R_X","AXIS_PAD_R_Y","AXIS_KEY","KEY_BACKSPACE","KEY_TAB","KEY_RETURN","KEY_ENTER","KEY_SHIFT","KEY_CONTROL","KEY_ALT","KEY_PAUSE","KEY_CAPS_LOCK","KEY_ESCAPE","KEY_SPACE","KEY_PAGE_UP","KEY_PAGE_DOWN","KEY_END","KEY_HOME","KEY_LEFT","KEY_UP","KEY_RIGHT","KEY_DOWN","KEY_PRINT_SCREEN","KEY_INSERT","KEY_DELETE","KEY_0","KEY_1","KEY_2","KEY_3","KEY_4","KEY_5","KEY_6","KEY_7","KEY_8","KEY_9","KEY_SEMICOLON","KEY_EQUAL","KEY_A","KEY_B","KEY_C","KEY_D","KEY_E","KEY_F","KEY_G","KEY_H","KEY_I","KEY_J","KEY_K","KEY_L","KEY_M","KEY_N","KEY_O","KEY_P","KEY_Q","KEY_R","KEY_S","KEY_T","KEY_U","KEY_V","KEY_W","KEY_X","KEY_Y","KEY_Z","KEY_WINDOWS","KEY_CONTEXT_MENU","KEY_NUMPAD_0","KEY_NUMPAD_1","KEY_NUMPAD_2","KEY_NUMPAD_3","KEY_NUMPAD_4","KEY_NUMPAD_5","KEY_NUMPAD_6","KEY_NUMPAD_7","KEY_NUMPAD_8","KEY_NUMPAD_9","KEY_MULTIPLY","KEY_ADD","KEY_SEPARATOR","KEY_SUBTRACT","KEY_DECIMAL","KEY_DIVIDE","KEY_F1","KEY_F2","KEY_F3","KEY_F4","KEY_F5","KEY_F6","KEY_F7","KEY_F8","KEY_F9","KEY_F10","KEY_F11","KEY_F12","KEY_COMMA","KEY_PERIOD","KEY_SLASH","KEY_OPEN_BRACKET","KEY_BACK_SLASH","KEY_CLOSE_BRACKET","KEY_META","MOUSEBUTTON_NONE","MOUSEBUTTON_LEFT","MOUSEBUTTON_MIDDLE","MOUSEBUTTON_RIGHT","PAD_1","PAD_2","PAD_3","PAD_4","PAD_FACE_1","PAD_FACE_2","PAD_FACE_3","PAD_FACE_4","PAD_L_SHOULDER_1","PAD_R_SHOULDER_1","PAD_L_SHOULDER_2","PAD_R_SHOULDER_2","PAD_SELECT","PAD_START","PAD_L_STICK_BUTTON","PAD_R_STICK_BUTTON","PAD_UP","PAD_DOWN","PAD_LEFT","PAD_RIGHT","PAD_VENDOR","PAD_L_STICK_X","PAD_L_STICK_Y","PAD_R_STICK_X","PAD_R_STICK_Y","XRPAD_TOUCHPAD_X","XRPAD_TOUCHPAD_Y","XRPAD_STICK_X","XRPAD_STICK_Y","XRPAD_TOUCHPAD_BUTTON","XRPAD_TRIGGER","XRPAD_SQUEEZE","XRPAD_STICK_BUTTON","XRPAD_A","XRPAD_B","KeyboardEvent","keyboard","keyCode","target","_keyboardEvent","makeKeyboardEvent","toKeyCode","_keyCodeToKeyIdentifier","Keyboard","attach","_element","detach","_keyDownHandler","_keyPressHandler","_keyUpHandler","_visibilityChangeHandler","_windowBlurHandler","toKeyIdentifier","id14","_handleKeyDown","charCode","_keymap","stopPropagation","_handleKeyUp","_handleKeyPress","_handleVisibilityChange","visibilityState","_handleWindowBlur","_lastmap","isPressed","wasPressed","wasReleased","EVENT_KEYDOWN","EVENT_KEYUP","isMousePointerLocked","pointerLockElement","mozPointerLockElement","webkitPointerLockElement","MouseEvent","_MouseEvent","wheel","wheelDelta","mouse","button","buttons","ctrlKey","altKey","shiftKey","metaKey","coords","_getTargetCoords","deltaY","movementX","webkitMovementX","mozMovementX","movementY","webkitMovementY","mozMovementY","_lastX","_lastY","_buttons","Mouse","isPointerLocked","_target","_attached","passive","_upHandler","_downHandler","_moveHandler","_wheelHandler","disableContextMenu","_contextMenuHandler","enableContextMenu","enablePointerLock","requestPointerLock","disablePointerLock","exitPointerLock","_lastbuttons","_handleUp","_handleDown","_handleMove","_handleWheel","clientX","clientWidth","clientY","clientHeight","EVENT_MOUSEMOVE","EVENT_MOUSEDOWN","EVENT_MOUSEUP","EVENT_MOUSEWHEEL","Controller","_keyboard","_mouse","_enableMouse","dt","_gamepads","_axesValues","_axes","appendAction","action_name","action","_actions","registerKeys","_enableKeyboard","registerMouse","registerPadButton","pad","registerAxis","controller","getAxis","positive","positiveKey","negativeKey","negative","actionName","dummyArray","MAPS_INDEXES","axes","MAPS","DEFAULT_DUAL","synthesizedButtons","PS3","mapping","DEFAULT_XR","PRODUCT_CODES","custom_maps","getMap","custom","product","raw","defaultmap","deadZone","sleep","ms","GamePadButton","pressed","touched","wasTouched","previous","dummyButton","GamePad","connected","_compileMapping","_compiledMapping","axesIndexes","buttonsIndexes","axesMap","buttonsMap","synthesizedButtonsMap","_previousAxes","gamepad","previousAxes","updateMap","resetMap","pulse","intensity","actuators","vibrationActuator","hapticActuators","startDelay","strongMagnitude","weakMagnitude","actuator","playEffect","getButton","isTouched","hand","GamePads","_ongamepadconnected","padIndex","findIndex","gp","_ongamepaddisconnected","poll","pads","padDevices","findByIndex","nPad","_ongamepadconnectedHandler","_ongamepaddisconnectedHandler","orderIndex","pulseAll","findById","gamepadsSupported","EVENT_GAMEPADCONNECTED","EVENT_GAMEPADDISCONNECTED","getTouchTargetCoords","touch2","totalOffsetX","totalOffsetY","parentNode","offsetLeft","scrollLeft","offsetTop","scrollTop","offsetParent","pageX","pageY","Touch","TouchEvent","getTouchById","touches","changedTouches","TouchDevice","_startHandler","_endHandler","_cancelHandler","_handleTouchStart","_handleTouchEnd","_handleTouchMove","_handleTouchCancel","EVENT_TOUCHSTART","EVENT_TOUCHEND","EVENT_TOUCHMOVE","EVENT_TOUCHCANCEL","Http","_Http","maxConcurrentRequests","_maxConcurrentRequests","_pump","progress","lengthComputable","loaded","endHandler","post","postdata","put","del","method","errored","retry","assign","retries","maxRetries","async","headers","Document","FormData","contentType","ContentType","FORM_URLENCODED","bFirstItem","encodedKey","encodedValue","JSON","stringify","timestamp","xhr","XMLHttpRequest","open","withCredentials","responseType","_guessResponseType","header2","setRequestHeader","onreadystatechange","_onReadyStateChange","_onError","send","_releaseSlot","_acquire","toLowerCase","binaryExtensions","ResponseType","DOCUMENT","TEXT","_isBinaryContentType","binTypes","BASIS","BIN","DDS","GLB","MP3","MP4","OGG","OPUS","WAV","_isBinaryResponseType","BLOB","readyState","responseURL","_onSuccess","response","getResponseHeader","parse","responseText","XML","responseXML","retrying","retryDelay","maxRetryDelay","limit","throttled","_activeRequests","_slotHeld","_sendQueue","_sendQueueHead","AAC","GIF","JPEG","PNG","http","DISTANCE_LINEAR","DISTANCE_INVERSE","DISTANCE_EXPONENTIAL","Listener","getPosition","position","setPosition","listener","positionX","positionY","positionZ","setOrientation","orientation","forwardX","forwardY","forwardZ","upX","upY","upZ","getOrientation","_manager","manager","CONTEXT_STATE_RUNNING","USER_INPUT_EVENTS","SoundManager","suspended","_userSuspended","_context","AudioContextCtor","AudioContext","webkitAudioContext","_registerUnlockListeners","suspend","_suspend","resume","_resume","_removeUnlockListeners","createBufferSource","sampleRate","connect","onended","disconnect","_unlockHandler","eventName","_unlockHandlerFunc","Sound","STATE_PLAYING","STATE_PAUSED","STATE_STOPPED","STOP_NEVER_DELAY","capTime","SoundInstance","currentTime","_state","_suspendInstanceEvents","stop","_startOffset","play","_currentTime","_updateCurrentTime","_duration","isPlaying","_sound","soundDuration","startTime","_startTime","isPaused","isStopped","isSuspended","_suspended","loop","wasLooping","_loop","_updateRegionStop","pitch","_currentOffset","_startedAt","_syncSourcePosition","_pitch","playbackRate","_regionStopPending","sound","_createSource","gain","_onPlay","_onPlayCallback","_onPause","_onPauseCallback","_onResume","_onResumeCallback","_onStop","_onStopCallback","_onEnded","_suspendEndEvent","_onEndCallback","_onManagerVolumeChange","_onManagerSuspend","pause","_onManagerResume","_initializeNodes","createGain","_inputNode","_connectorNode","_playWhenLoaded","_waitingContextSuspension","_playAudioImmediate","currentOffset","_startSource","_onManagerDestroy","_sourceOffset","_sourceOffsetAt","_sourceLooping","region","loopEnd","loopStart","wasPlaying","setExternalNodes","firstNode","lastNode","speakers","_firstNode","_lastNode","clearExternalNodes","getExternalNodes","_endedHandler","onPlay","onPause","onResume","onStop","onEnd","EVENT_PLAY","EVENT_PAUSE","EVENT_RESUME","EVENT_STOP","EVENT_END","MAX_DISTANCE","SoundInstance3d","panner","createPanner","_position","velocity","_velocity","maxDistance","refDistance","rollOffFactor","rolloffFactor","distanceModel","BLEND_SUBTRACTIVE","BLEND_ADDITIVE","BLEND_NORMAL","BLEND_NONE","BLEND_PREMULTIPLIED","BLEND_MULTIPLICATIVE","BLEND_ADDITIVEALPHA","BLEND_MULTIPLICATIVE2X","BLEND_SCREEN","BLEND_MIN","BLEND_MAX","blendNames","FOG_NONE","FOG_LINEAR","FOG_EXP","FOG_EXP2","FRESNEL_NONE","FRESNEL_SCHLICK","fresnelNames","LAYER_HUD","LAYER_GIZMO","LAYER_WORLD","LAYERID_WORLD","LAYERID_DEPTH","LAYERID_SKYBOX","LAYERID_IMMEDIATE","LAYERID_UI","LIGHTTYPE_DIRECTIONAL","LIGHTTYPE_OMNI","LIGHTTYPE_POINT","LIGHTTYPE_SPOT","LIGHTTYPE_COUNT","lightTypeNames","LIGHT_COLOR_DIVIDER","LIGHTSHAPE_PUNCTUAL","LIGHTSHAPE_RECT","LIGHTSHAPE_DISK","LIGHTSHAPE_SPHERE","lightShapeNames","LIGHTFALLOFF_LINEAR","LIGHTFALLOFF_INVERSESQUARED","lightFalloffNames","SHADOW_PCF3_32F","SHADOW_PCF3","SHADOW_VSM_16F","SHADOW_VSM16","SHADOW_VSM_32F","SHADOW_VSM32","SHADOW_PCF5_32F","SHADOW_PCF5","SHADOW_PCF1_32F","SHADOW_PCF1","SHADOW_PCSS_32F","SHADOW_PCF1_16F","SHADOW_PCF3_16F","SHADOW_PCF5_16F","shadowTypeInfo","kind","pcf","vsm","pcss","SHADOW_CASCADE_0","SHADOW_CASCADE_1","SHADOW_CASCADE_2","SHADOW_CASCADE_3","SHADOW_CASCADE_ALL","BLUR_BOX","BLUR_GAUSSIAN","PARTICLESORT_NONE","PARTICLESORT_DISTANCE","PARTICLESORT_NEWER_FIRST","PARTICLESORT_OLDER_FIRST","PARTICLEMODE_GPU","PARTICLEMODE_CPU","EMITTERSHAPE_BOX","EMITTERSHAPE_SPHERE","PARTICLEORIENTATION_SCREEN","PARTICLEORIENTATION_WORLD","PARTICLEORIENTATION_EMITTER","PROJECTION_PERSPECTIVE","PROJECTION_ORTHOGRAPHIC","RENDERSTYLE_SOLID","RENDERSTYLE_WIREFRAME","RENDERSTYLE_POINTS","CUBEPROJ_NONE","CUBEPROJ_BOX","cubemaProjectionNames","DETAILMODE_MUL","DETAILMODE_ADD","DETAILMODE_SCREEN","DETAILMODE_OVERLAY","DETAILMODE_MIN","DETAILMODE_MAX","GAMMA_NONE","GAMMA_SRGB","gammaNames","TONEMAP_LINEAR","TONEMAP_FILMIC","TONEMAP_HEJL","TONEMAP_ACES","TONEMAP_ACES2","TONEMAP_NEUTRAL","TONEMAP_NONE","tonemapNames","SPECOCC_NONE","SPECOCC_AO","SPECOCC_GLOSSDEPENDENT","specularOcclusionNames","REFLECTIONSRC_NONE","REFLECTIONSRC_ENVATLAS","REFLECTIONSRC_ENVATLASHQ","REFLECTIONSRC_CUBEMAP","REFLECTIONSRC_SPHEREMAP","reflectionSrcNames","AMBIENTSRC_AMBIENTSH","AMBIENTSRC_ENVALATLAS","AMBIENTSRC_CONSTANT","ambientSrcNames","SHADERDEF_NOSHADOW","SHADERDEF_SKIN","SHADERDEF_UV0","SHADERDEF_UV1","SHADERDEF_VCOLOR","SHADERDEF_INSTANCING","SHADERDEF_LM","SHADERDEF_DIRLM","SHADERDEF_SCREENSPACE","SHADERDEF_TANGENTS","SHADERDEF_MORPH_POSITION","SHADERDEF_MORPH_NORMAL","SHADERDEF_LMAMBIENT","SHADERDEF_MORPH_TEXTURE_BASED_INT","SHADERDEF_BATCH","SHADOWUPDATE_NONE","SHADOWUPDATE_THISFRAME","SHADOWUPDATE_REALTIME","MASK_AFFECT_DYNAMIC","MASK_AFFECT_LIGHTMAPPED","MASK_BAKE","SHADER_FORWARD","SHADER_PREPASS","SHADER_SHADOW","SHADER_PICK","SHADER_DEPTH_PICK","SHADERPASS_FORWARD","SHADERPASS_ALBEDO","SHADERPASS_WORLDNORMAL","SHADERPASS_OPACITY","SHADERPASS_SPECULARITY","SHADERPASS_GLOSS","SHADERPASS_METALNESS","SHADERPASS_AO","SHADERPASS_EMISSION","SHADERPASS_LIGHTING","SHADERPASS_UV0","SPRITE_RENDERMODE_SIMPLE","SPRITE_RENDERMODE_SLICED","SPRITE_RENDERMODE_TILED","spriteRenderModeNames","BAKE_COLOR","BAKE_COLORDIR","VIEW_CENTER","VIEW_LEFT","VIEW_RIGHT","SORTMODE_NONE","SORTMODE_MANUAL","SORTMODE_MATERIALMESH","SORTMODE_BACK2FRONT","SORTMODE_FRONT2BACK","SORTMODE_CUSTOM","ASPECT_AUTO","ASPECT_MANUAL","ORIENTATION_HORIZONTAL","ORIENTATION_VERTICAL","SKYTYPE_INFINITE","SKYTYPE_BOX","SKYTYPE_DOME","DITHER_NONE","DITHER_BAYER2","DITHER_BAYER4","DITHER_BAYER8","DITHER_BAYER16","DITHER_BLUENOISE","DITHER_IGNNOISE","PARALLAX_OFFSET","PARALLAX_OCCLUSION","parallaxNames","ditherNames","EVENT_PRERENDER","EVENT_POSTRENDER","EVENT_PRERENDER_LAYER","EVENT_POSTRENDER_LAYER","EVENT_PRECULL","EVENT_POSTCULL","EVENT_CULL_END","GSPLAT_FORWARD","GSPLAT_SHADOW","SHADOWCAMERA_NAME","WORKBUFFER_UPDATE_AUTO","WORKBUFFER_UPDATE_ONCE","WORKBUFFER_UPDATE_ALWAYS","GSPLAT_STREAM_RESOURCE","GSPLAT_STREAM_INSTANCE","GSPLATDATA_LARGE","GSPLATDATA_COMPACT","GSPLAT_RENDERER_AUTO","GSPLAT_RENDERER_RASTER_CPU_SORT","GSPLAT_RENDERER_RASTER_GPU_SORT","GSPLAT_RENDERER_COMPUTE","GSPLAT_LODMODE_ERROR","GSPLAT_LODMODE_DISTANCE","GSPLAT_DEBUG_NONE","GSPLAT_DEBUG_LOD","GSPLAT_DEBUG_SH_UPDATE","GSPLAT_DEBUG_HEATMAP","GSPLAT_DEBUG_AABBS","GSPLAT_DEBUG_NODE_AABBS","RADIX_SORT_AUTO","RADIX_SORT_PORTABLE","RADIX_SORT_ONESWEEP","SCENETEXTURE_DEPTH","sceneTextureUniformNames","ShaderProcessorOptions","groupFormat","generateKey","viewUniformFormat","programLibraryDeviceCache","getProgramLibrary","library","setProgramLibrary","ShaderGenerator","definesHash","sortedArray","shaderPassDeviceCache","ShaderPassInfo","buildShaderDefines","isShadow","lightType","shadowInfo","shadowType","perspectiveDepth","isForward","ShaderPass","_ShaderPass","passesNamed","passesIndexed","getByIndex","getByName","ShaderChunkMap","markDirty","override","existed","isDirty","resetDirty","k","validations","_validations","_chunksCache","ShaderChunks","_ShaderChunks","glsl","registerValidation","useWGSL","MapUtils","merge","maps","ShaderGeneratorPassThrough","createShaderDefinition","ShaderUtils","_ShaderUtils","programLibrary","getCachedShader","uniqueName","vertexWGSL","vertexChunk","fragmentWGSL","fragmentChunk","chunksMap","vertexGLSL","fragmentGLSL","setCachedShader","getCoreDefines","material","cameraShaderParams","shaderPassInfo","pass","processShader","materialGenerator","libraryModuleName","register","variant","getProgram","unregister","getScreenDepthChunkKey","sceneDepthMapLinear","sceneDepthMapPacked","sceneDepthMapReciprocal","addScreenDepthChunkDefines","vsName","fsName","shaderDefinitionOptions","createShaderFromCode","fsCode","_quadPrimitive2","_tempViewport","_tempScissor","_dynamicBindGroup","QuadRender","RenderPassQuad","quad","scissorRect","_tempRect","drawQuadWithShader","Batch","scene","meshInstance","removeFromLayers","addToLayers","getLayerById","addMeshInstances","removeMeshInstances","updateBoundingBox","origMeshInstances","aabb","_aabbVer","model","meshInstances","dynamic","batchGroupId","BatchGroup","maxAabbSize","_ui","_sprite","_obj","sprite","MODEL","ELEMENT","SPRITE","RENDER","_invMatrix","SkinInstance","rootBone","_rootBone","numBones","numPixels","boneTexture","matrixPalette","entity","skin","bones","boneNames","boneName","bone","findByName","initSkin","inverseBindPose","matrices","uploadBones","_updateMatrices","rootNode","skinUpdateIndex","_skinUpdateIndex","getWorldTransform","updateMatrices","_updateBeforeCull","updateMatrixPalette","mp","pe","SkinBatchInstance","nodes","id9","copyToTypedArray","numValues","GeometryData","initDefaults","recreate","verticesUsage","indicesUsage","maxVertices","maxIndices","indexCount","vertexStreamsUpdated","indexStreamUpdated","vertexStreamDictionary","_changeVertexCount","DEFAULT_COMPONENTS_POSITION","DEFAULT_COMPONENTS_NORMAL","DEFAULT_COMPONENTS_UV","DEFAULT_COMPONENTS_COLORS","GeometryVertexStream","componentCount","dataTypeNormalize","Mesh","_Mesh","fromGeometry","geometry","mesh","normals","tangents","colors","uvs","uvs1","blendIndices","blendWeights","setPositions","setNormals","setVertexStream","setColors32","setUvs","setIndices","morph","_morph","_destroyIndexBuffer","_geometryData","_initBoneAabbs","morphTargets","boneAabb","boneUsed","boneMin","boneMax","maxMorphX","maxMorphY","maxMorphZ","iterator","posElement","weightsElement","indicesElement","boneWeight","boneIndex","minMorphX","minMorphY","minMorphZ","deltaPositions","dz","positionElement","x4","_initGeometryData","verticesDynamic","indicesDynamic","getVertexStream","done","stream","setColors","getPositions","getNormals","getUvs","getColors","getIndices","streamIndices","destroyVB","destroyIB","_updateVertexBuffer","_updateIndexBuffer","updateRenderStates","_buildVertexFormat","vertexDesc","allocateVertexCount","_storageVertex","createFormat","_storageIndex","srcIndices","prepareRenderState","renderStyle","generateWireframe","indicesArrayType","tmpIndices","seen","i1","safeNumVertices","wireBuffer","storageIndex","storageVertex","scaleCompensatePosTransform","scaleCompensatePos","scaleCompensateRot","scaleCompensateRot2","scaleCompensateScale","scaleCompensateScaleForParent","tmpMat42","tmpQuat","invParentWtm","rotation","invParentRot","matrix","up","createTest","Function","node","findNode","children","_children","GraphNode","right","_up","forward","_forward","normalMatrix","normalMat","_normalMatrix","_dirtyNormal","_notifyHierarchyStateChanged","_enabledInHierarchy","root","getChildren","getName","getPath","getRoot","getParent","setName","graphDepth","_graphDepth","_onHierarchyStateChanged","_frozen","_unfreezeParentToRoot","_cloneInternal","localPosition","localRotation","localScale","localEulerAngles","eulerAngles","localTransform","_dirtyLocal","_dirtyWorld","scaleCompensation","child","findOne","findByTag","queryNode","checkNode","findByPath","path2","imax","thisArg","isDescendantOf","isAncestorOf","getLocalEulerAngles","getLocalPosition","getLocalRotation","getLocalScale","getLocalTransform","getRotation","_scale","_sync","worldScaleSign","_worldScaleSign","removeChild","reparent","insertChild","addChild","setLocalEulerAngles","_dirtifyLocal","setLocalPosition","setLocalRotation","setLocalScale","_dirtifyWorld","_dirtifyWorldInternal","setRotation","parentRot","setPositionAndRotation","rotation7","parentWtm","setEulerAngles","_prepareInsertChild","_onInsertChild","addChildAndSaveTransform","wPos","wRot","_fireOnHierarchy","nameHierarchy","enabledInHierarchy","_updateGraphDepth","parentWorldScale","parentToUseScaleFrom","tmatrix","syncHierarchy","lookAt","ux","uy","uz","translate","translateLocal","rot","rotateLocal","defaultMaterialDeviceCache","getDefaultMaterial","setDefaultMaterial","RefCountedCache","incRef","decRef","LightmapCache","NumericIds","_counter","PickerId","_tmpAabb","_tempBoneAabb","_meshSet","InstancingData","_destroyVertexBuffer","numObjects","ShaderInstance","getUniformBuffer","MeshInstance","_MeshInstance","drawBucket","bucket","_drawBucket","_renderStyle","_mesh","_updateAabb","_updateAabbFunc","localAabb","_customAabb","toWorldSpace","skinInstance","_morphInstance","_targets","_aabbMeshVer","morphAabb","clearShaders","_shaderCache","shaderInstance","getShaderInstance","shaderPass","lightHash","sortedLights","shaderDefs","_shaderDefs","mat2","_material","variants","getShaderVariant","objDefs","prevMat","removeMeshInstanceRef","addMeshInstanceRef","transparent","_updateShaderDefs","calculateSortDistance","_calculateSortDistance","receiveShadow","_receiveShadow","batching","_skinInstance","_setupSkinUpdate","morphInstance","morphPositions","morphNormals","intRenderFormat","screenSpace","_screenSpace","_sortKeyForward","toggles","instancingCount","instancingData","setRealtimeLightmap","lightmapParamNames","destroyDrawCommands","cmd","_prepareRenderStyleForArray","_isVisible","camera","visible","isVisibleFunc","frustum","alphaTest","setInstancing","cull","setIndirect","_deleteDrawCommandsKey","setMultiDraw","indexFormat","cmds","getDrawCommands","getIndirectMetaData","prim","meshMetaData","ensureMaterial","clearParameters","getParameters","old","setParameters","paramName","parameter","setLightmapped","setCustomAabb","castShadow","shadowCascadeMask","drawOrder","shaderPassMask","visibleThisFrame","flipFacesFactor","gsplatInstance","indirectData","pick","_sortKeyShadow","_sortKeyDynamic","_triFanIndices","_triStripIndices","mat3","paramsIdentical","equalParamSets","params1","params2","getScaleSign","mi","BatchManager","_batchGroups","_batchList","_dirtyGroups","addGroup","_batchGroupCounter","group","removeGroup","newBatchList","destroyBatch","_removeModelsFromBatchGroup","markGroupDirty","getGroupByName","groups","getGroupById","getBatches","batch","groupId","_filterBatchableInstances","nodeName","hasUnsupported","_extractRender","groupMeshInstances","valid","_extractModel","removeModelFromLayers","_extractElement","_text","_model","_image","_renderable","unmaskMeshInstance","_dirtifyMask","_onPrerender","_collectAndRemoveMeshInstances","groupIds","_meshInstance","_renderMode","newDirtyGroups","lists","groupData","prepare","POSITIVE_INFINITY","translucent","halfMaxAabbSize","maxInstanceCount","maxNumVertices","testAabb","skipTranslucentAabb","sf","meshInstancesLeftA","meshInstancesLeftB","skipMesh","defs","vertCount","vertexFormatBatchingHash","collectBatchedMeshData","streams","batchNumVerts","batchNumIndices","elems","_init","vertexFormats","batchData","indexBase","indexBaseVertex","indexData","verticesOffset","indexOffset","transform","indexArrayType","typeArrayType","elementByteSize","totalComponents","m4","m5","m6","m8","m9","m122","m14","m3","m7","srcFormat","batchGroup","updateAll","clonedMeshInstances","_colorUniformName","FramePassColorGrab","releaseRenderTarget","colorRenderTarget","shouldReallocate","targetRT","sourceFormat","targetFormat","allocateRenderTarget","sourceRt","_depthUniformName","FramePassDepthGrab","depthRenderTarget","isDepth","destinationRt","useDepthBuffer","numSamples","publishSceneDepthMap","CameraShaderParams","_hash","gammaCorrection","srgbRenderTarget","fog","ssaoEnabled","_sceneTextures","_defines","_definesDirty","_sceneDepthMapLinear","_sceneDepthMapPacked","_sceneDepthMapReciprocal","upperName","shaderOutputGamma","_fog","_toneMapping","_ssaoEnabled","_gammaCorrectionAssigned","_gammaCorrection","_srgbRenderTarget","sceneTextures","gammaOutput","_deviceCoord","_halfSize2","_point","_invViewProjMat","_xrViewProjMat","_xrViewFrustum","_frustumViewInvMat","_frustumViewMat","_frustumViewProjMat","_frustumPoints","Camera","_Camera","applyShaderProjectionTransform","applyWebGpuDepthRange","scratch","_applyShaderProjectionScratch","_flipYProjectionMatrix","_webGpuDepthRangeMatrix","renderPassColorGrab","renderPassDepthGrab","framePasses","sceneDepthMap","sceneDepthMapVersion","_storeShaderMatrices","viewProjMat2","jitterX","jitterY","_shaderMatricesVersion","_viewProjPrevious","_viewProjCurrent","_viewProjInverse","_jitters","_scissorRectClear","_rect","aspectRatio","newValue","_aspectRatio","_projMatDirty","xrActive","_xrProperties","_aspectRatioMode","calculateAspectRatio","aspectRatioMode","calculateProjection","_calculateProjection","calculateTransform","_calculateTransform","_clearColor","clearColorBuffer","_clearColorBuffer","_clearDepth","clearDepthBuffer","_clearDepthBuffer","_clearStencil","clearStencilBuffer","_clearStencilBuffer","cullFaces","_cullFaces","farClip","_farClip","flipFaces","_flipFaces","_fov","frustumCulling","_frustumCulling","horizontalFov","_horizontalFov","_layers","_layersSet","layersSet","nearClip","_nearClip","_node","orthoHeight","_orthoHeight","_projection","projectionMatrix","_evaluateProjectionMatrix","_projMat","projectionOffset","_projectionOffset","_renderTarget","_scissorRect","viewMatrix","_viewMatDirty","wtm","_viewMat","aperture","_aperture","sensitivity","_sensitivity","shutter","_shutter","xrViews","_xrViews","addCullLayer","_cullLayers","cullLayers","clearCullLayers","jitter","_enableRenderPassColorGrab","_enableRenderPassDepthGrab","renderer","_updateViewProjMat","_viewProjMatDirty","_viewProjMat","updateViewTransforms","parentWorldTransform","updateTransforms","updateXrFrustum","projMat","viewOffMat","updateFrustum","pos","worldToScreen","worldCoord","cw","screenCoord","vpm","rh","screenToWorld","range","invView","cameraPos","_projMatSkybox","getProjectionMatrixSkybox","getExposure","ev100","getScreenSize","viewAngle","sphereViewHeight","screenViewHeight","getFrustumCorners","points","setXrProperties","properties","fillShaderParams","fogParams","shaderParams","RenderView","_viewport","projViewOffMat","_projViewOffMat","_viewOffMat","viewInvOffMat","_viewInvOffMat","viewMat3","_viewMat3","positionData","_positionData","setView","viewInvMat2","viewMat2","_viewInvMat","_viewportMatrix","LightCamera","_LightCamera","pointLightRotations","evalSpotCookieMatrix","light","cookieCamera","_spotCookieCamera","_outerConeAngle","cookieNode","cookieMatrix","rectViewport","atlasViewport","tempVec3","tempAreaLightSizes","areaHalfAxisWidth","areaHalfAxisHeight","TextureIndexFloat","POSITION_RANGE","DIRECTION_FLAGS","COLOR_ANGLES_BIAS","PROJ_MAT_0","ATLAS_VIEWPORT","PROJ_MAT_1","PROJ_MAT_2","PROJ_MAT_3","AREA_DATA_WIDTH","AREA_DATA_HEIGHT","COUNT","enums","prefix","lightBufferDefines","LightsBuffer","maxLights","_maxLights","pixelsPerLightFloat","lightsFloat","lightsUint","lightsTexture","setBounds","delta3","boundsMin","boundsDelta","uploadTextures","updateUniforms","_lightsTextureId","getSpotDirection","spot","getLightAreaSizes","addLightData","lightIndex","isSpot","hasAtlasViewport","atlasViewportAllocated","isCookie","cookiesEnabled","_cookie","isArea","areaLightsEnabled","shape","castShadows","shadowsEnabled","lightProjectionMatrix","lightRenderData","getRenderData","shadowMatrix","dataFloat","dataUint","dataFloatStart","attenuationEnd","clusteredData","biases","_getUniformBiasValues","biasHalf","bias","normalBiasHalf","normalBias","getClusteredFlags","matData","areaSizes","invMaxColorValue","invMaxAttenuation","tmpSize","tempVec32","tempMin3","tempMax3","tempBox","ClusterLight","WorldClusters","usedLights","_usedLights","maxCellLightCount","_maxCellLightCount","_cellsDirty","lightsBuffer","cells","_cells","_cellsLimit","releaseClusterTexture","clusterTexture","registerUniforms","_numClusteredLightsId","_clusterMaxCellsId","_clusterWorldTextureId","_clusterBoundsMinId","_clusterBoundsMinData","_clusterBoundsDeltaId","_clusterBoundsDeltaData","_clusterCellsCountByBoundsSizeId","_clusterCellsCountByBoundsSizeData","_clusterCellsDotId","_clusterCellsDotData","_clusterCellsMaxId","_clusterCellsMaxData","_clusterTextureWidthId","updateParams","lightingParams","maxLightsPerCell","updateCells","numCells","totalPixels","use16BitIndex","clusters","Uint8ClampedArray","evalLightCellMinMax","clusteredLight","collectLights","lights2","runtimeLight","zeroAngleSpotlight","getBoundingBox","evaluateBounds","boundsMax","updateClusters","fill","divX","divZ","pixelsPerCellCount","xStart","xEnd","yStart","yEnd","zStart","zEnd","clusterIndex","activate","reportCount","_goldenAngle","circlePoint","theta","circlePointDeterministic","spherePointDeterministic","radicalInverse","decodeTable","encodeTable","ChunkUtils","decodeFunc","encodeFunc","getProjectionName","packFloat32ToRGBA8","encX","encY","encZ","encW","packSamples","hemisphereSamplePhong","dstVec","specularPower","phi","cosTheta","sinTheta","hemisphereSampleLambert","hemisphereSampleGGX","D_GGX","NoH","linearRoughness","generatePhongSamples","H","generateLambertSamples","sourceTotalPixels","pixelsPerSample","pdf","requiredSamplesGGX","getRequiredSamplesGGX","table","generateGGXSamples","roughness","L","N","requiredSamples","createSamplesTex","packedSamples","SimpleCache","destroyContent","missFunc","samplesCache","deviceCache3","getCachedTexture","getSamplesFnc","generateLambertSamplesTex","generatePhongSamplesTex","generateGGXSamplesTex","reprojectTexture","seamPixels","innerWidth","innerHeight","funcNames","distribution","processFunc","prefilterSamples","sourceFunc","targetFunc","shaderKey","constantSource","constantParams","uvModParam","samplesTex","calcLevels","supportsFloat16","supportsFloat32","lightingSourcePixelFormat","lightingPixelFormat","createCubemap","EnvLighting","generateSkyboxCubemap","generateLightingSource","generateAtlas","numReflectionSamples","numAmbientSamples","generatePrefilteredAtlas","sources","legacyAmbient","builtinAttributes","LitShader","fDefineSet","condition","fDefines","sharedDefineSet","vDefines","generateVertexShader","useUv","useUnmodifiedUv","mapTransforms","nineSlicedMode","linearDepth","needsNormal","useInstancing","languageChunks","chunks","instance_line1","instance_line2","instance_line3","instance_line4","useHeights","useNormals","useClearCoatNormals","enableGGXSpecular","maxUvSets","numTransforms","transformDone","mapTransform","uv","checkId","varName","vertexColors","useVertexColorGamma","useMsdf","msdfTextAttribute","vertex_outlineParameters","vertex_shadowParameters","useMorphPosition","useMorphNormal","useMorphTextureBasedInt","morph_vertex_id","pixelSnap","varyingsCode","_setupLightingDefines","hasAreaLights","clusteredLightingEnabled","lights","lighting","clusteredLightingCookiesEnabled","clusteredLightingAreaLightsEnabled","lightMaskDynamic","clusteredLightingShadowsEnabled","noShadow","clusteredShadowInfo","clusteredLightingShadowType","lightShape","_shape","_shadowType","_falloffMode","affectSpecularity","_cookieChannel","_cookieTransform","_cookieFalloff","_normalOffsetBias","_isVsm","cascadeBlend","numCascades","prepareForwardPass","lightingUv","clusteredAreaLights","addAmbient","lightMapEnabled","lightMapWithoutAmbient","hasTBN","useSpecular","reflections","useClearCoat","fresnelModel","useSheen","useIridescence","needsSceneColor","needsScreenSize","needsTransforms","useMetalness","useAnisotropy","useSpecularityFactor","useCubeMapRotation","occludeSpecularFloat","separateAmbient","twoSidedLighting","dirLightMapEnabled","skyboxIntensity","useRefraction","useDynamicRefraction","dispersion","opacityFadesSpecular","ssao","useAo","occludeDirect","diffuseMapEnabled","shadowCatcher","blendType","cubeMapProjection","occludeSpecular","reflectionSource","ambientSource","reflectionEncoding","reflectionCubemapEncoding","ambientEncoding","preparePrepassPass","opacityShadowDither","prepareShadowPass","generateFragmentShader","frontendDecl","frontendCode","shadowPass","allowWGSL","userChunks","shaderChunks","userAttributes","engineChunks","userChunkMap","chunk","chunkName","ambientSH","LitShaderOptions","opacityDither","toneMap","StandardMaterialOptions","litOptions","forceUv1","metalnessTint","glossTint","emissiveEncoding","lightMapEncoding","vertexColorGamma","packedNormal","normalDetailPackedNormal","clearCoatPackedNormal","glossInvert","sheenGlossInvert","clearCoatGlossInvert","useAO","_defineDeprecatedOption","defineProperty","prototype","tempOptions","litOptionProperties","getOwnPropertyNames","litOption","LitOptionsUtils","generateLightsKey","_matTex2D","buildPropertiesList","ShaderGeneratorStandard","props","optionsContextMin","propsMin","optionsContext","_getUvSourceExpression","transformPropName","uVPropName","allowParallaxOffset","transformId","uvChannel","isMainPass","heightMap","_validateMapChunk","propName","_addMapDefines","mapPropName","propNameCaps","identifierPropName","channelPropName","vertexColorChannelPropName","tintPropName","vertexColorPropName","detailModePropName","invertName","tintOption","vertexColorOption","textureOption","textureIdentifier","detailModeOption","chunkCode","textureId","alias","textureDecode","_correctChannel","chan","_matTex2D2","channelCount","chr","addLen","createVertexShader","litShader","mapName","colorChannelName","channelName","transformName","uvName","uvSet","prepareFragmentDefines","lightMap","lightVertexColor","dirLightMap","parallaxMode","parallaxSelfShadow","useSpecularColor","aoMap","aoVertexColor","isForwardPass","textureMapping","normalMap","clearCoatNormalMap","baseName","diffuseDetail","diffuseDetailEncoding","diffuseEncoding","sheenEncoding","specularEncoding","aoDetail","tag","standard","blendModes","alphaSrc","id10","Material","_Material","flatShading","setDefine","hasShaderChunks","_shaderChunks","getShaderChunks","shaderChunksVersion","_oldChunks","fromEntries","_depthState","slopeDepthBias","updateVersion","_updateVersion","_blendState","sceneTexturesWrite","_sceneTexturesWrite","_updateTransparency","wasDualSource","clearVariants","blendMode","alphaDst","_updateMeshInstanceKeys","depthTest","depthWrite","_setParameterSimple","_definesKey","_clearVariantsIfDirty","_dirtyShader","prepareForRender","_preparedVersion","uniformObject","modified","definesKey","getDefine","defaultMaterial","userId","_shaderVersion","_scene","mapTransformsEqual","StandardMaterialMapTransforms","_ids","_states","_mutable","markMutable","transformsChanged","tiling","Float64Array","_updateIds","groupsByUv","previousIds","ids3","groupTopologyChanged","mapId","getUniform","getId","LitMaterialOptionsBuilder","_LitMaterialOptionsBuilder","renderParams","updateSharedOptions","updateMaterialOptions","updateEnvOptions","updateLightingOptions","useLighting","occludeSpecularIntensity","hasSpecular","hasSpecularityFactor","ggxSpecular","hasRefraction","hasClearCoat","hasSheen","hasIrridescence","hasMetalness","dynamicRefraction","hasLighting","hasHeights","hasNormals","hasClearCoatNormals","hasAo","hasDiffuseMap","useFog","useTonemap","useSkybox","envAtlas","skybox","hasSkybox","_skyboxRotationShaderInclude","lightsFiltered","lType","notBlack","StandardMaterialOptionsBuilder","updateMinRef","stdMat","_updateSharedOptions","_updateMinOptions","_updateUVOptions","updateRef","_updateEnvOptions","_updateMaterialOptions","_updateLightOptions","minimalOptions","hasVcolor","uniqueTextureMap","_updateTexOptions","parallaxShadowSamples","diffuseMap","isOpacity","mname","vname","vcname","cname","tname","uname","iname","allow","_getMapTransformId","isPrepass","specularMap","sphereMap","cubeMap","specular","specularityFactor","clearCoat","useMetalnessSpecularColor","specularityFactorTint","isPackedNormalMap","equalish","metalness","diffuseDetailMap","emissiveMap","refractionTint","refraction","refractionIndexTint","refractionIndex","thicknessTint","thickness","sheenMap","aoMapUv","aoUvSet","aoDetailMap","normalDetail","normalDetailMap","diffuseDetailMode","aoDetailMode","clearCoatGloss","iorTint","iridescenceTint","iridescence","msdfMap","specularityFactorMap","anisotropyIntensity","anisotropyMap","refractionMap","usingSceneEnv","lightMapChannel","lightMapUv","lightMapTransform","lightmapPixelFormat","_textureParameter","vertexColor","standardMaterialParameterTypes","mappingFormat","_engine","ambient","aoIntensity","diffuse","anisotropyRotation","shininess","gloss","clearCoatBumpiness","sheen","sheenGloss","emissive","emissiveIntensity","bumpiness","normalDetailMapBumpiness","heightMapFactor","heightMapBase","parallaxSamples","alphaFade","alphaDither","opacity","reflectivity","attenuation","attenuationDistance","cubeMapProjectionBox","iridescenceThicknessTint","iridescenceThicknessMin","iridescenceThicknessMax","iridescenceRefractionIndex","standardMaterialTextureParameters","standardMaterialCubemapParameters","standardMaterialRemovedParameters","aoMapVertexColor","diffuseMapTint","diffuseMapVertexColor","emissiveMapTint","emissiveMapVertexColor","glossMapVertexColor","metalnessMapVertexColor","opacityMapVertexColor","specularAntialias","specularMapTint","specularMapVertexColor","ambientTint","emissiveTint","diffuseTint","specularTint","sheenTint","conserveEnergy","useGamma","useGammaTonemap","sheenGlossTint","_props","_uniforms","_params","_tempColor","isBlack","StandardMaterial","_uniformCache","_mapTransforms","copyFromBacking","_alphaDither","specularIsBlack","_specular","_specularIsBlack","_setParameter","_setParameters","_processParameters","paramsName","prevParams","_updateMap","_allocUniform","allocFunc","metalnessMap","ditherScale","_opacity","updateEnvUniforms","hasLocalEnvOverride","shaderOptBuilder","onUpdateShader","asset","_assetReferences","_unbind","sign","_activeParams","_activeLightingParams","TEXTURE_PARAMETERS","CUBEMAP_PARAMETERS","defineUniform","getUniformFunc","definePropInternal","constructorFunc","setterFunc","getterFunc","defineValueProp","internalName","dirtyShaderFunc","onGet","onSet","oldValue","defaultValue","defineAggProp","defineProp","markMapTransformsDirty","markMapTransformsMutable","_defineTex2D","mapTiling","mapOffset","mapRotation","cr","sr","uniform0","uniform1","_defineColor","_defineFloat","_defineObject","_defineFlag","_defineMaterialProps","_parallaxShadowSamples","bboxMin","minUniform","bboxMax","maxUniform","_prefilteredCubemaps","cubemaps","complete","empty","_defineDeprecatedAlias","oldName","_defineRemovedTint","base64String","initData","binaryString","atob","blueNoiseData","BlueNoise","_next","seed","vec4","lightCubeDir","LightCube","ambientLight","weight","_direction","_intensity","lightColor","_color","namePrefix","deviceCacheBlueNoise","getBlueNoiseTexture","ShadowMap","_ShadowMap","renderTargets","shadowMap","_shadowResolution","create2dMap","createAtlas","resolution","formatName","isPcss","cached","_tempArray","_tempArray2","_scissor","Slot","lightId","LightTextureAtlas","destroyShadowAtlas","destroyCookieAtlas","shadowAtlas","cookieAtlas","cookieRenderTarget","allocateShadowAtlas","existingFormat","requiredFormat","scissorOffset","shadowAtlasResolution","scissorVec","allocateCookieAtlas","allocateUniforms","_shadowAtlasTextureId","_shadowAtlasParamsId","_shadowAtlasParams","_cookieAtlasTextureId","shadowBuffer","shadowEdgePixels","subdivide","numLights","atlasSplit","gridSize","arraysEqual","every","slots","splitCount","invSize","nextLevelSplit","invSizeNext","rectNext","localLights","needsShadowAtlas","needsCookieAtlas","processLights","lightShadow","lightCookie","cookie","maxScreenSize","cookieAtlasResolution","setupSlot","faceCount","numShadowFaces","smallSize","cubeSlotsOffsets","shadowViewport","shadowScissor","assignSlot","slotReassigned","atlasSlotUpdated","atlasVersion","atlasSlotIndex","assignCount","_shadowMap","previousSlot","previousSlot2","usedCount","ShadowMapCache","shadowMaps","isCubeMap","RenderPassShadowLocalNonClustered","shadowRenderer","renderFace","applyVsm","renderVsm","shadowCamera","prepareFace","setupRenderPass","ShadowRendererLocal","prepareShadowMap","comp","casters","isClustered","shadowCam","shadowCamNode","lightNode","tileSize","lightTextureAtlas","texelSize","filterSize","atan","cullShadowCasters","visibleCasters","cullShadowCastersOmni","prepareLights","shadowLights","needsShadowRendering","buildNonClusteredRenderPasses","frameGraph","addRenderPass","RenderPassShadowDirectional","allCascadesRendering","shadowUpdateOverrides","_unionSceneAabb","_cascadeAabbs","_cascadeAabbValid","_cascadeRadii","shadowCamView","aabbPoints","_depthRange","getDepthRange","cameraViewMatrix","aabbMin","aabbMax","ShadowRendererDirectional","nearDist","generateSplitDistances","shadowDistance","numActiveCascades","cascade","cascades","frustumNearDist","_shadowCascadeDistances","frustumFarDist","frustumPoints","cameraWorldMat","dist","lightDir","sizeRatio","scaledUp","scaledRight","scaledDir","cascadeFlag","origNumVisibleCasters","numVisibleCasters","cascadeAabb","useUnion","_isPcss","aabbSource","depthRange","projectionCompensation","farDist","fraction","linearDist","logDist","cascadeDistribution","getLightRenderPass","tempSet","_faceLists","_faceCameras","shadowCamView2","shadowCamViewProj","pixelOffset","blurScissorRect","viewportMatrix","gauss","sigma","exp","gaussWeights","kernelSize","halfWidth","ShadowRenderer","createShadowCamera","isVsm","isPcf","_cullShadowCastersInternal","casterLists","_collectCasterLists","sortCompareShader","_casterLists","layerList","_lightsSet","shadowCasters","lightPos","lightX","lightY","lightZ","slope","bounds","listIndex","slopeX","slopeY","slopeZ","limXY","limXZ","limYX","limYZ","limZX","limZY","drawCallA","drawCallB","keyA","keyB","setupRenderState","useShadowSampler","_isPcf","blendStateNoWrite","blendStateWrite","shadowDepthState","dispatchUniforms","dispatchViewPos","shadowMapLightRadiusId","_shadowMatrixPalette","getShadowPass","shadowPassInfo","shadowPassCache","shadowPassName","submitCasters","flipFactor","setBaseConstants","setSkinning","setupCullModeAndFrontFace","shadowShader","setVertexBuffers","setMorphing","setMeshInstanceMatrices","setupMeshUniformBuffers","style","_shadowDrawCalls","_instancedDrawCalls","shadowUpdateMode","getLightRenderData","clearRenderTarget","renderTargetIndex","setCameraUniforms","setupViewUniformBuffers","setupViewport","_vsmBlurSize","applyVsmBlur","getVsmBlurShader","blurMode","blurVsmShader","blurShader","blurVsmWeights","origShadowMap","tempShadowMap","shadowMapCache","tempRt","vsmBlurMode","sourceId","pixelOffsetId","weightId","initViewUniformFormat","FramePassMultiView","subs","numViews","childCount","backBufferImpl","savedXrColorTexture","savedColorTexture","savedViewFormat","tempClusterArray","WorldClustersAllocator","_empty","_allocated","cluster","_clusters","_assignClustersForPass","layerRenderSteps","lightClusters","hasClusteredLights","getLightIdHash","existingStep","renderPasses","passCount","clusteredLightsSet","_viewport2","_invViewProjMatrices","RenderPassCookieRenderer","_RenderPassCookieRenderer","_quadRenderer2D","_quadRendererCube","_evtDeviceRestored","onDeviceRestored","_forceCopy","filteredLights","_filteredLights","cookieUpdated","cookieRenderVersion","initInvViewProjMatrices","quadRenderer2D","quadRendererCube","renderTargetWidth","_cubeSlotsOffsets","blitTextureId","invViewProjId","RenderPassShadowLocalClustered","shadowRendererLocal","FramePassUpdateClustered","cookiesRenderPass","shadowRenderPass","worldClustersAllocator","tempSphere","_tempSet","Culler","cullMeshInstances","drawCalls","culledInstances","opaque","doCull","drawCall","processingMeshInstances","cameras","cullLights","physicalUnits","getBoundingSphere","usePhysicalUnits","screenSize","cullShadowmaps","_shadowRendererLocal","cameraDirShadowLights","lightList","_shadowRendererDirectional","consumeOneShotShadows","clustered","_shadowMapUpdates","collectDirectionalShadowLights","cameraComponent","cameraLayers","cameraLayer","layerDirLights","splitLights","updateLightVisibility","numCameras","layerIds","_lights","updateLightTextureAtlas","requestMeshInstanceCull","_cullCameras","executeMeshInstanceCull","getCulledInstances","cullComposition","_camerasRendered","dirLightShadows","viewProjMat","viewInvMat","viewMat","_tempLightSet","_tempLayerSet","_dynamicBindGroup2","_tempClearColor","_tempClearOptions","_haltonSequence","_tempProjMat0","_tempProjMat1","_tempProjMat4","_tempProjMat5","_tempSet2","_tempMeshInstances","_tempMeshInstancesSkinned","Renderer","_renderPassUpdateClustered","gsplatDirector","pixelWidth","pixelHeight","viewList","projMatSkybox","webgpu","targetWidth","targetHeight","blueNoiseJitterVersion","blueNoise","blueNoiseJitterVec","jitterVec","blueNoiseJitterData","blueNoiseJitterId","projId","projSkyboxId","viewInvId","viewId","viewId3","viewProjId","flipYId","tbnBasis","cameraParamsId","cameraParams","viewportWidth","viewportHeight","viewportSize","viewportSizeId","exposureId","exposure","setupCullMode","opacityMap","opacityMapId","alphaTestId","updateCpuSkinMatrices","drawCallsCount","si","updateGpuSkinMatrices","updateMorphing","morphInst","updateGSplats","gpuUpdate","prepareRendering","vertexBufferIds","morphPositionTex","texturePositions","morphNormalTex","textureNormals","morphTexParams","_textureParams","_skinDrawCalls","boneTextureId","vp","viewPos","viewPosId","setupViewUniforms","viewIndexId","getViewUniformBuffer","_viewUniformBuffers","viewCount","_dynamicViewBindGroup","_viewBindGroups","_viewBindGroupOffsets","meshBindGroup","meshUniformBuffer","setNormalMatrix","modelMatrix","modelMatrixId","normalMatrixId","stats","_stats","updateShaders","onlyLitShaders","emitter","updateFrameUniforms","blueNoiseTextureId","layerCount","meshInst","updateLayerComposition","shaderVersion","_update","clustersDebugRendered","culler","WeakMap","_viewOffsetScratch","_skinTime","_morphTime","_cullTime","_shadowMapTime","_lightClustersTime","_layerCompositionUpdateTime","_numDrawCallsCulled","_lightClusters","_gsplatCount","lightCube","constantLightCube","LayerRenderStep","setupClears","firstCameraUse","lastCameraUse","RenderPassForward","rendersAnything","addLayerRenderStep","layerRenderStep","addLayer","autoClears","firstStep","updateDirectionalShadows","shadowDirLights","updateCameraBeforePasses","updateClears","colorIndex","noDepthClear","layerComposition","isEnabled","clearSceneTextures","renderLayerRenderStep","sceneTexturesCamera","uniformName","originalGammaCorrection","originalToneMapping","originalSceneTextures","renderForwardLayer","FramePassPostprocessing","renderAction","onPostprocessing","_noWrite","_caches","getSingleAttachmentBlendState","attachmentCount","masked","_noLights","tmpColor","_drawCallList","shaderInstances","isNewMaterial","lightMaskChanged","vogelDiskPrecalculationSamples","vogelSpherePrecalculationSamples","ForwardRenderer","dispatchGlobalLights","ambientUniform","ambientColor","ambientLuminance","ambientId","skyboxIntensityId","skyboxLuminance","cubeMapRotationMatrixId","_skyboxRotationMat3","_resolveLight","lightColorId","lightDirId","lightShadowMapId","lightShadowMatrixId","lightShadowParamsId","lightShadowIntensity","lightShadowSearchAreaId","lightRadiusId","lightPosId","lightWidth","lightWidthId","lightHeight","lightHeightId","lightInAngleId","lightOutAngleId","lightCookieId","lightCookieIntId","lightCookieMatrixId","lightCookieOffsetId","lightCameraParamsId","lightSoftShadowParamsId","shadowMatrixPaletteId","shadowCascadeDistancesId","shadowCascadeCountId","shadowCascadeBlendId","shadowCascadeRadiiId","setLTCDirectionalLight","cnt","campos","hWidth","hHeight","dispatchDirectLights","dirs","directional","_colorLinear","shadowIntensity","_softShadowParams","shadowRT","penumbraSize","_shadowCameraParams","radii","_shadowCascadeRadii","_shadowRenderParams","setLTCPositionalLight","dispatchOmniLight","omni","pixelsPerMeter","cookieIntensity","dispatchSpotLight","_innerConeAngleCos","_outerConeAngleCos","fovRatio","_cookieTransformUniform","_cookieOffsetUniform","_cookieOffset","dispatchLocalLights","usedDirLights","omnis","numOmnis","spts","numSpts","renderForwardPrepareMaterials","addCall","getLightHash","prevMaterial","prevObjDefs","prevLightMask","lightMask","_materialSwitches","renderForwardInternal","preparedCalls","drawCallback","activeView","viewListStart","viewListEnd","preparedCallsCount","newMaterial","_forwardDrawCalls","renderForward","allDrawCalls","sortVisible","onPreRenderLayer","requiresLightCube","debugLayer","_activeCamera","setFogConstants","forwardDrawCalls","fogUniform","fogColor","fogColorId","fogStartId","fogEndId","fogDensityId","density","setSceneConstants","_screenSize","screenSizeId","pcssDiskSamplesId","pcssDiskSamples","pcssSphereSamplesId","pcssSphereSamples","buildFrameGraph","startIndex","newStart","renderActions","_renderActions","mv","_isMultiview","useCameraPasses","beginMultiView","endMultiView","isDepthLayer","isGrabPass","renderSceneColorMap","renderSceneDepthMap","nextRenderAction","isNextLayerDepth","isNextLayerGrabPass","nextNeedDirShadows","isDepthOnly","triggerPostprocess","addMainRenderPass","colorGrabPass","sceneCamera","endIndex","_layerRenderStepFromRenderAction","_updateSkyMesh","updateShadows","_depthMapTime","_forwardTime","_sortTime","layerCounter","lightKeys","_tempMaterials","sortManual","sortMaterialMesh","sortBackToFront","sortFrontToBack","sortCallbacks","CulledInstances","Layer","_dirtyComposition","gsplatPlacementsDirty","incrementCounter","decrementCounter","_clusteredLightsSet","_refCounter","addGSplatPlacement","placement","gsplatPlacementsSet","gsplatPlacements","removeGSplatPlacement","addGSplatShadowCaster","gsplatShadowCastersSet","gsplatShadowCasters","removeGSplatShadowCaster","skipShadowCasters","destMeshInstances","destMeshInstancesSet","meshInstancesSet","addShadowCasters","sceneShaderVer","removeShadowCasters","shadowCastersSet","clearMeshInstances","markLightsDirty","_lightHashDirty","_lightIdHashDirty","_splitLightsDirty","hasLight","addLight","removeLight","clearLights","removeLayer","_splitLights","evaluateLightHash","directionalLights","useIds","isLocalLight","_lightHash","_lightIdHash","addCamera","camerasSet","removeCamera","clearCameras","_calculateSortDistances","camPos","camFwd","px","py","pz","fx","fy","fz","zDist","meshPos","instances","_visibleInstances","sortMode","transparentSortMode","opaqueSortMode","cameraNode","sortPos","sortDir","customCalculateSortValues","customSortCallback","cmpPriority","priority","sortPriority","RenderAction","LayerComposition","renderActionCount","addDummyRenderAction","cameraFirstRenderAction","cameraFirstRenderActionIndex","lastRenderAction","postProcessMarked","isLayerEnabled","subLayerEnabled","disablePostEffectsLayer","isTransparent","subLayerList","addRenderAction","postEffectsEnabled","propagateRenderTarget","_logRenderActions","getNextRenderAction","renderActionIndex","needsCameraClear","needsLayerClear","fromCamera","ra","thisCamera","_isLayerAdded","layerIdMap","_isSublayerAdded","layerTransparentIndexMap","layerOpaqueIndexMap","_opaqueOrder","_transparentOrder","_updateLayerMaps","_updateOpaqueOrder","_updateTransparentOrder","pushOpaque","insertOpaque","removeOpaque","pushTransparent","insertTransparent","removeTransparent","getOpaqueIndex","getTransparentIndex","isSubLayerRenderedByCamera","layerNameMap","subLayerIndexMap","getLayerByName","_sortLayersDescending","layersA","layersB","order","topLayerA","topLayerB","sortTransparentLayers","sortOpaqueLayers","tmpVec","tmpBiases","tmpColor2","chanId","lightTypes","directionalCascades","channelMap","id11","LightRenderData","Light","_Light","_destroyShadowMap","releaseRenderData","_renderData","shadowSamples","shadowBlockerSamples","shadowBias","_shadowBias","_updateShadowBias","_cascadeBlend","_mask","updateClusteredFlags","stype","_usePhysicalUnits","_updateLinearColor","layersDirty","_castShadows","_shadowIntensity","bakeShadows","shadowResolution","vsmBlurSize","normalOffsetBias","falloffMode","innerConeAngle","_innerConeAngle","updateClusterData","outerConeAngle","_updateOuterAngle","_penumbraSize","penumbraFalloff","radAngle","_outerConeAngleSin","_affectSpecularity","luminance","_luminance","_cookieMatrix","_atlasViewport","cookieFalloff","cookieChannel","cookieTransform","_cookieTransformSet","cookieOffset","_cookieOffsetSet","xformNew","rd","clusteredLighting","setColor","attenuationStart","vsmBias","volumetricScattering","getLightUnitConversion","outerAngle","innerAngle","falloffEnd","falloffStart","getColor","cosAngle","box","scl","colorLinear","isDynamic","isLightmapped","clusteredFlags","useCookie","updateColor","updateAngles","clusteredData16","cosThreshold","angleShrinkFactor","innerCos","outerCos","isStatic","bakeDir","bakeNumSamples","bakeArea","LightingParams","applySettings","lightingShadowsEnabled","lightingCookiesEnabled","lightingAreaLightsEnabled","lightingShadowAtlasResolution","lightingCookieAtlasResolution","lightingMaxLightsPerCell","lightingMaxLights","lightingShadowType","lightingCells","_maxLightsPerCell","_maxTextureSize","_cookieAtlasResolution","_shadowAtlasResolution","_dirtyLightsFnc","_cookiesEnabled","_supportsAreaLights","_areaLightsEnabled","_shadowsEnabled","dirtyLightsFnc","MorphInstance","_MorphInstance","rtPositions","rtNormals","_getWeightIndex","_weightMap","getWeight","_weights","setWeight","_createShader","outputType","_updateTextureRenderTarget","activeCount","isPos","setAabbUniforms","morphTextureId","targetsTexturePositions","targetsTextureNormals","countId","morphFactor","_shaderMorphWeights","morphIndex","_shaderMorphIndex","_updateTextureMorph","zeroTextures","aabbSizeId","_aabbSize","_aabbNrmSize","aabbMinId","_aabbMin","_aabbNrmMin","weights","maxNumTargets","defaultWeight","createRT","textureVar","_createTexture","_renderTextureFormat","morphTextureWidth","morphTextureHeight","Model","_Model","getGraph","graph","setGraph","getCameras","setCameras","getLights","setLights","getMaterials","materials","srcNodes","cloneNodes","_duplicate","newNode","cloneGraph","cloneMeshInstances","cloneSkinInstances","cloneMorphInstances","skinInstances","cloneSkinInstance","morphInstances","cloneMorphInstance","nodeIndex","cloneMeshInstance","skinInstanceIndex","morphInstanceIndex","_shadersVersion","_immutable","Morph","targetAabb","_morphPositions","_morphNormals","_initTextureBased","_postInit","_findSparseSet","deltaArrays","usedDataIndices","freeIndex","dataCount","vertexUsed","deltaInfos","deltaNormals","halfFloat","_textureFormat","texturesDataPositions","texturesDataNormals","textureDataSize","textureData2","dstIndex","formatDesc","getTarget","_updateMorphFlags","preferHighPrecision","renderableHalf","renderableFloat","MorphTarget","_MorphTarget","_defaultWeight","preserveData","nonUniformScale","uniformScale","particleTexChannels","rotMat","rotMatInv","randomPosTformed","randomPos","rndFactor3Vec","particlePosPrev","velocityVec","localVelocityVec","velocityVec2","localVelocityVec2","radialVelocityVec","particlePos","particleFinalPos","moveDirVec","tmpVec32","saturate","glMod","ParticleCPUUpdater","calcSpawnPosition","particleTex","spawnMatrix2","extentsInnerRatioUniform2","emitterPos","_emitter","rX","rY","rZ","rW","useCpu","numParticlesPot","emitterShape","edgeX","edgeY","edgeZ","localSpace","spawnBoundsSphereInnerRatio","emitterRadius","emitterRadiusInner","particleRate","rate","rate2","startSpawnTime","startAngle","startAngle2","vbToSort","isOnStop","fullMat","posCam","vertSize","useMesh","cf","cc","rotSpeed","rotSpeed2","alpha2","radialSpeed","radialSpeed2","precision1","numParticles","vbCPU","numParticleVerts","rndFactor","particleLifetime","lifetime","life","nlife","scale3","alphaDiv","respawn","particleEnabled","qRotSpeed","qRotSpeed2","qScale","qScale2","qAlpha","qAlpha2","qRadialSpeed","qRadialSpeed2","qLocalVelocity","qLocalVelocity2","qVelocity","qVelocity2","initialVelocity","wrap","wrapBounds","particleDistance","vbOffset","quadX","quadY","quadZ","alignToMotion","vbStride","vbOld","spawnMatrix3","emitterMatrix3","emitterMatrix3Inv","ParticleGPUUpdater","randomize","frameRandomUniform","constantRadialSpeedDivMult","constantGraphSampleSize","constantGraphNumSamples","constantNumParticles","constantNumParticlesPot","constantInternalTex0","internalTex0","constantInternalTex1","internalTex1","constantInternalTex2","internalTex2","constantInternalTex3","internalTex3","emitterScale","emitterMatrix","constantSpawnBounds","constantSpawnPosInnerRatio","constantSpawnBoundsSphere","constantSpawnBoundsSphereInnerRatio","constantInitialVelocity","emitterPosUniform","constantEmitterPos","constantFrameRandom","constantDelta","constantRate","constantRateDiv","constantStartAngle","constantStartAngle2","constantSeed","constantLifetime","emitterScaleUniform","constantEmitterScale","constantEmitterMatrix","constantEmitterMatrixInv","constantLocalVelocityDivMult","localVelocityUMax","constantVelocityDivMult","velocityUMax","constantRotSpeedDivMult","rotSpeedUMax","texIN","swapTex","particleTexOUT","particleTexIN","beenReset","particleTexStart","texOUT","constantParticleTexIN","rtParticleTexIN","rtParticleTexOUT","shaderParticleUpdateRespawn","shaderParticleUpdateNoRespawn","shaderParticleUpdateOnStop","gd","constantParticleTexOUT","constantFaceTangent","constantFaceBinorm","normalTypeNames","ShaderGeneratorParticle","createVertexDefines","meshUv","animTex","soft","stretch","customFace","animTexLoop","particle_vertexData","particle_uv","particle_vertexData2","particle_vertexData3","particle_vertexData4","particle_vertexData5","createFragmentDefines","halflambert","executionDefine","particle","ParticleMaterial","halfLambert","depthSoftening","noFog","inTools","_isAnimated","animLoop","particleVerts","pixelData","mult8Bit","mipFilter","saturate2","default0Curve","default1Curve","default0Curve3","default1Curve3","particleTexHeight","particleTexChannels2","extentsInnerRatioUniform","spawnMatrix","tmpVec33","bMin","bMax","setPropertyTarget","setPropertyOptions","setProperty","pName","defaultVal","pack3NFloats","packed","packTextureXYZ_NXYZ","qXYZ","qXYZ2","packTextureRGBA","qRGB","qA","packTexture5Floats","qB","qC","qD","qE","packTexture2Floats","calcSpawnDuration","subGraph","A","B","maxUnsignedGraphValue","outUMax","chans","normalizeGraph","uMax","divGraphFrom2Curves","curve1","curve2","particleEmitterDeviceCache","ParticleEmitter","defaultParamTexture","centerPoint","dtex","xgrad","ygrad","calculateWorldBounds","recalculateLocalBounds","emitterExtents","prevEmitterExtents","prevEmitterRadius","calculateLocalBounds","nodeWT","worldBoundsNoTrail","localBounds","worldBoundsTrail","now2","simTimeTotal","timeToSwitchBounds","worldBounds","resetWorldBounds","maxR","maxScale","stepWeight","wVels","lVels","accumX","accumY","accumZ","accumR","accumW","rebuild","colorMap","spawnBounds","forceCpuParticles","wasVisible","_destroyResources","rebuildGraphs","iSort","_gpuUpdater","emitterExtentsInner","_cpuUpdater","particleFormat","shaderUniqueId","shaderOptions","numParticleIndices","_allocate","_createMaterial","resetMaterial","_setMaterialTextures","resetTime","addTime","preWarm","prewarm","finishFrame","animNumFrames","animTilesX","animTilesY","localVelocityGraph","velocityGraph","qColor","colorGraph","rotationSpeedGraph","scaleGraph","alphaGraph","radialSpeedGraph","localVelocityGraph2","velocityGraph2","qColor2","colorGraph2","rotationSpeedGraph2","scaleGraph2","alphaGraph2","radialSpeedGraph2","colorUMax","scaleUMax","alphaUMax","radialSpeedUMax","qLocalVelocityDiv","qVelocityDiv","qColorDiv","qRotSpeedDiv","qScaleDiv","qAlphaDiv","qRadialSpeedDiv","colorParam","animTilesParams","animParams","animIndexParams","wrapBoundsUniform","_compParticleFaceParams","tangent","binormal","particleNormal","emitterMat","getVertexInfo","psysVertCount","psysIndexCount","meshData","posOffset","posStride","uvOffset","uvStride","elements2","el","uvElement","vertID","vert","posIndex","uvIndex","baseIndex","origLoop","lifetimeFraction","iterations","stepDelta","endTime","tilesParams","animStartFrame","animSpeed","animNumAnimations","animIndex","randomizeAnimIndex","onFinished","_addTimeTime","fixedTimeStep","maxSubSteps","simTime","ShaderGeneratorShader","shaderDesc","vsHashGLSL","fsHashGLSL","vsHashWGSL","fsHashWGSL","chunksKey","createAttributesDefinition","definitionOptions","srcAttributes","addSharedDefines","createVertexDefinition","sharedIncludes","createFragmentDefinition","shaderGeneratorShader","ShaderMaterial","_shaderDesc","language","gsplatStreamDecl_default","gsplatStreamDecl_default2","gsplatComputeStreamDecl_default","gsplatStreamOutput_default","gsplatStreamOutput_default2","containerFloatRead_default","containerFloatRead_default2","containerSimpleRead_default","containerSimpleRead_default2","serializeStreams","versionCounter","RE_NAME","RE_SAMPLER","RE_TEXTURE_TYPE","RE_RETURN_TYPE","RE_FUNC_NAME","RE_BINDING","RE_INDEX","RE_COLOR_SLOT","RE_DEFINE_GUARD","GSplatFormat","_GSplatFormat","streamsStr","extraStr","_extraStreams","_read","extraStreamsVersion","_extraStreamsVersion","extraStreams","resourceStreams","_resourceStreams","instanceStreams","_instanceStreams","addExtraStreams","added","_streamNames","_invalidateCaches","removeExtraStreams","allowStreamRemoval","getInputDeclarations","streamNames","template","getShaderType","funcName","decl","getReadCode","getComputeInputDeclarations","startBinding","getComputeBindFormats","setWriteCode","writeGLSL","writeWGSL","_write","getWriteCode","getOutputDeclarations","outputStreams","colorSlot","getOutputStubs","stub","getStream","createDefaultFormat","readGLSL","readWGSL","createSimpleFormat","dataFormat","CACHE_STRIDE","gsplatVaryingDeclVS_default","gsplatVaryingDeclPS_default","gsplatVaryingDeclVS_default2","gsplatVaryingFlushVS_default","gsplatVaryingDeclCS_default","gsplatVaryingDeclPS_default2","gsplatVaryingCacheWriteCS_default","gsplatVaryingCacheReadVS_default","GLSL_TYPES","WGSL_TYPES","COMPONENT_SWIZZLE","RE_NAME2","RE_TYPE","RE_FUNC_NAME2","RE_WORD","RE_VALUE","GLSL_CHUNK_NAMES","WGSL_CHUNK_NAMES","pascal","encodeWord","decodeWord","GSplatVaryings","_streams","_words","_version","_changed","_generateChunks","types","declVSTemplate","declPSTemplate","vs","ps","cs","cacheWrite","cacheRead","wordOffset","components2","component","gsplatUserVaryingsVS","gsplatUserVaryingsPS","gsplatUserVaryingsFlushVS","gsplatUserVaryingsCS","gsplatUserCacheWriteCS","gsplatUserCacheReadVS","containerCompactRead_default","containerCompactWrite_default","containerPackedRead_default","containerPackedWrite_default","containerCompactRead_default2","containerCompactWrite_default2","containerPackedRead_default2","containerPackedWrite_default2","ALPHA_VISIBILITY_THRESHOLD","SPLAT_BUDGET_DEFAULT","NUM_VALUE_BUCKETS","GSplatParams","_createFormat","_resolveRenderer","_renderer","_currentRenderer","currentRenderer","debug","_debug","prev","colorizeLod","debugAabbs","debugNodeAabbs","enableIds","_enableIds","lodBehindPenalty","_lodBehindPenalty","lodRangeMin","lodRangeMax","lodUnderfillLimit","_lodUnderfillLimit","splatBudget","_splatBudget","lodMode","_lodMode","colorRamp","_colorRamp","colorizeColorUpdate","colorUpdateDistance","colorUpdateDistanceLodScale","colorUpdateAngleLodScale","alphaClip","alphaClipForward","minPixelSize","minContribution","foveationStrength","foveationCenter","antiAlias","twoDimensional","fisheye","_fisheye","wasEnabled","_dataFormat","_varyings","radialSorting","gsplatRadialSorting","lodUpdateDistance","gsplatLodUpdateDistance","lodUpdateAngle","gsplatLodUpdateAngle","gsplatLodBehindPenalty","gsplatLodUnderfillLimit","gsplatSplatBudget","gsplatLodMode","gsplatAlphaClip","gsplatAlphaClipForward","gsplatMinPixelSize","gsplatMinContribution","gsplatFoveationStrength","gsplatFoveationCenter","gsplatAntiAlias","gsplatUseFog","gsplatUseTonemap","colorUpdateAngle","gsplatColorUpdateAngle","cooldownTicks","gsplatCooldownTicks","gsplatDataFormat","gsplatEnableIds","_appliedVaryingsVersion","colorRampIntensity","sceneDepthWrite","FisheyeProjection","projMatrix","p00","p11","_lastT","_lastFov","_lastP00","_lastP11","invK","cornerScale","maxTheta","kMin","kStart","SQRT2","halfFovX","effHalfFovX","projMat00","halfFovY","effHalfFovY","projMat11","calculateNormals","triangleCount","p1p2","p1p3","faceNormal","i22","i3","invLen","calculateTangents","v33","w1","w2","w3","sdir","tdir","tan1","tan2","x1","y1","z1","t12","t22","area","t1","ndott","Geometry","primitiveUv1Padding","primitiveUv1PaddingScale","BoxGeometry","opts","he","ws","widthSegments","ls","lengthSegments","hs","heightSegments","yOffset","minY","maxY","corners","faceAxes","faceNormals","sides","TOP","BOTTOM","vcounter","generateFace","side","uSegments","vSegments","SphereGeometry","latitudeBands","longitudeBands","lat","lon","sinPhi","cosPhi","DomeGeometry","bottomLimit","curvatureRadius","curvatureRadiusSq","SkyGeometry","_SkyGeometry","dome","infinite","geom","SkyMesh","skyLayer","_depthWrite","aPosition","skyboxHighlightMultiplier","skyboxMip","Sky","_preRenderEvt","resetSkyMesh","skyType","skyMeshPosition","skyMeshRotation","skyMeshScale","skyCenter","_center","updateSkyMesh","skyMesh","_fisheyeProj","_setFisheyeDefine","_getSkyboxTex","centerArray","projectedSkydomeCenterId","_onPreRender","proj","identityGraphNode","MIN_VERTEX_CAPACITY","SHRINK_FRAME_DELAY","ImmediateBatch","_reserve","required","_vertexCount","_capacity","_setCapacity","retained","_positions","_colors","_writeUniformColor","addLines","destPos","destCol","col","addLinesArrays","floats","colorFloats","onPreRender","visibleList","_framesSinceHighUse","_peakVertexCount","ImmediateBatches","getBatch","LineWriter","_cursor","_end","_r","_b","_a","filled","cursor","segment","x0","y0","z0","tempPoints","vec","Immediate","createMaterial","materialDepth","_materialDepth","materialNoDepth","_materialNoDepth","batches","batchesMap","allBatches","allocateLines","writer","lineWriter","getShaderDesc","fragmentGLSL2","fragmentWGSL2","shaderDescs","getTextureShaderDesc","getUnfilterableTextureShaderDesc","getDepthTextureShaderDesc","getQuadMesh","quadMesh","drawMesh","graphNode","getGraphNode","layerMeshInstances","drawWireAlignedBox","mulPoint","drawWireSphere","numSegments","sin0","cos0","sin1","cos1","batchLayer","updatedLayers","onPostRender","textureShader","depthTextureShader","cubeLocalPos","cubeWorldPos","FogParams","Scene","defaultDrawLayer","ambientBakeNumSamples","_ambientBakeNumSamples","ambientBakeSpherePart","_ambientBakeSpherePart","_clusteredLightingEnabled","_envAtlas","_internalEnvAtlas","_resetSkyMesh","sky","_sky","_lightingParams","gsplat","_gsplatParams","_fogParams","lightmapFilterRange","_lightmapFilterRange","lightmapFilterSmoothness","_lightmapFilterSmoothness","prefilteredCubemaps","_skyboxCubeMap","_skyboxIntensity","_skyboxLuminance","_skyboxMip","_skyboxHighlightMultiplier","skyboxRotation","_skyboxRotation","_skyboxRotationMat4","drawLine","drawLines","drawLineArrays","settings","physics","_gravity","gravity","global_ambient","fog_color","fog_start","fog_end","fog_density","lightmapSizeMultiplier","lightmapMaxResolution","lightmapMode","setting","skyboxMapping","setSkybox","lightmapHDR","fogEnd","fogStart","fogDensity","skyboxPrefiltered128","skyboxPrefiltered64","skyboxPrefiltered32","skyboxPrefiltered16","skyboxPrefiltered8","skyboxPrefiltered4","models","_models","ambientBake","ambientBakeOcclusionBrightness","ambientBakeOcclusionContrast","lightmapFilterEnabled","gsplatCentersEnabled","dynamicLights","bakedLights","updateShadersTime","EVENT_SETLAYERS","EVENT_SETSKYBOX","Skin","ibp","spriteNormals","spriteIndices","Sprite","frameKeys","_frameKeys","_atlas","_updatingProperties","_meshesDirty","_createMeshes","atlas","_onSetFrames","_onFrameChanged","_onFrameRemoved","pixelsPerUnit","_pixelsPerUnit","renderMode","meshes","_meshes","createMeshFunc","_create9SliceMesh","_createSimpleMesh","frames","texWidth","texHeight","hp","pivot","lu","bv","ru","tv","frameKey","TextureAtlas","_frames","setFrame","border","removeFrame","AnimationKey","AnimationNode","_keys","Animation","getNode","_nodeDict","addNode","_nodes","InterpolatedKey","_targetNode","setTarget","_written","_keyFrames","_quat","_pos","Skeleton","animation","_animation","_time","numNodes","_interpolatedKeys","_currKeyIndices","updateGraph","looping","interpKey","_interpolatedKeyDict","foundKey","currKeyIndex","k1","k2","skel1","skel2","key1","key2","dstKey","addInterpolatedKeys","prefixSumSource","WORKGROUP_SIZE_X","WORKGROUP_SIZE_Y","THREADS_PER_WORKGROUP","ITEMS_PER_WORKGROUP","PrefixSumKernel","destroyPasses","_scanShader","_addBlockShader","_bindGroupFormat","_uniformBufferFormat","_createFormatsAndShaders","createPassesRecursive","dataBuffer","workgroupCount","dispatchX","dispatchY","findOptimalDispatchSize","blockSumBuffer","scanCompute","addBlockCompute","allocatedCount","passes","maxComputeWorkgroupsPerDimension","requiredPasses","_countPassesNeeded","currentPasses","levelCount","radixSort4bitSource","radixSortReorderSource","ComputeRadixSortBase","sortedIndices","_values0","numPasses","_numBits","radixBits","_values1","sortedKeys","_keys0","radix","_keys1","keysBuffer","numBits","initialValues","skipLastPassKeyWrite","destructiveKeys","sortIndirect","maxElementCount","sortSlotBase","sortElementCountBuffer","prepareIndirect","_indirectInfo","_allocatePingPongElementBuffers","effectiveCount","_destructiveKeys","_destroyPingPongBuffers","indirect","_indirect","_elementCount","_hasInitialValues","_skipLastPassKeyWrite","WORKGROUP_SIZE_X2","WORKGROUP_SIZE_Y2","THREADS_PER_WORKGROUP2","ELEMENTS_PER_THREAD","ELEMENTS_PER_WORKGROUP","BITS_PER_PASS","BUCKET_COUNT","ComputeRadixSortMultipass","_destroyBuffers","_destroyPasses","_histogramBindGroupFormat","_reorderBindGroupFormat","_passes","histogramCompute","reorderCompute","_blockSums","_prefixSumKernel","_workgroupCount","_allocatedWorkgroupCount","_createPasses","hasInitialValues","suffix","bitOffset","isFirstPass","isLastPass","histogramShader","reorderShader","_allocateBuffers","forceRealloc","allocWorkgroupCount","currentWorkgroupCount","buffersNeedRealloc","passesNeedRecreate","blockSumSize","_dispatchSize","currentBit","_execute","prevDestructiveKeys","currentKeys","currentValues","nextKeys","nextValues","histogramEntries","reorderEntries","onesweepGlobalHistSource","onesweepScanSource","onesweepBinningSource","D_DIM","KEYS_PER_THREAD","PART_SIZE","G_HIST_DIM","G_HIST_PART_SIZE","RADIX","MAX_PASSES","ComputeRadixSortOneSweep","_globalHistShader","_binningShader","_globalHistBindGroupFormat","_scanBindGroupFormat","_binningBindGroupFormat","_globalHistCompute","_scanCompute","_binningComputes","_globalHistUniformFormat","_scanUniformFormat","_binningUniformFormat","_globalHist","_passHist","_allocatedThreadBlocks","_threadBlocks","_ensureBinningComputes","allocThreadBlocks","currentThreadBlocks","needRealloc","maxPerDim","_binningDispatchSize","histBlocks","_globalHistDispatchSize","histCompute","binCompute","maxSubgroups","histGroupEntries","scanGroupEntries","binGroupEntries","histDefines","scanDefines","binDefines","ComputeRadixSort","_canUseOneSweep","_impl","chosen","_viewport3","PostEffect","inputTarget","outputTarget","drawQuad","needsDepthBuffer","quadVertexShader","RenderPassShaderQuad","quadRender","LitMaterialOptions","usedUvs","shaderChunkGLSL","shaderChunkWGSL","dummyUvs","ShaderGeneratorLit","glslHash","wgslHash","loHash","uvOptions","dummy","usedUvSets","lit","LitMaterial","primitiveUv1Padding2","primitiveUv1PaddingScale2","ConeBaseGeometry","baseRadius","peakRadius","capSegments","roundedCaps","bottomToTop","norm","_v2","third","fourth","capOffset","CapsuleGeometry","CircleGeometry","sectors","rings","ringExponent","ringRadius","ringVertex","inner","innerNext","outer","outerNext","ConeGeometry","CylinderGeometry","PlaneGeometry","TorusGeometry","rc","tubeRadius","sectorAngle","segments","ProgramLibrary","clearCache","generator","_generators","isRegistered","generateShaderDefinition","def","definitionsCache","lcopy","storeNewProgram","_precached","processedCache","userMaterialId","generationKeyString","generationKey","processingKeyString","processingKey","totalKey","processedShader","generatedShaderDef","passName","opt","defaultMat","_getDefaultStdMatOptions","_programsCollection","dumpPrograms","text","display","click","_isClearingCache","removeFromCache","cachedShader","_defaultStdMatOptionMin","_defaultStdMatOption","precompile","standardMaterial","defaultCameraShaderParams","UploadStream","_deviceLostEvent","gsplatCopyToWorkbuffer_default","gsplatCopyToWorkbuffer_default2","gsplatCopyInstancedQuad_default","gsplatCopyInstancedQuad_default2","_viewProjMat2","_frustum","BOUNDS_ENTRY_FLOATS","GSplatFrustumCuller","boundsBuffer","transformsBuffer","updateBoundsData","boundsGroups","totalEntries","numBoundsEntries","totalBoundsEntries","_allocatedBoundsEntries","ab","_boundsFloatView","_boundsUintView","_tmpSpheres","floatView2","uintView","tmpSpheres","boundsBaseIndex","splat","writeBoundsSpheres","updateTransformsData","numMatrices","_allocatedTransformCount","_transformsData","setFrustumPlanes","frustumPlanes","computeFrustumPlanes","setFisheyeData","cameraForward","fisheyeCameraPos","fisheyeCameraForward","fisheyeMaxTheta","_viewMat2","_invModelMat","_modelScale","_modelRotation","_tmpSize","_whiteColor","GSplatWorkBufferRenderPass","splats","_subDrawTexture","colorsByLod","changedAllocIds","_partialData","workBuffer","textureSize","requiredCapacity","writeOffset","splatInfo","activeSplats","intervals","numIntervals","allocId","baseOffset","allocIds","intervalAllocIds","appendSubDraws","intervalOffsets","usesWorkBufferGeometry","ensureSubDrawTexture","supportsWorkBufferGeometry","_usesWorkBufferGeometry","colorOnly","_cameraPositionData","renderSplat","overrideSubDrawTexture","overrideSubDrawCount","subDrawBase","subDrawTexture","subDrawCount","workBufferModifier","getWorkBufferModifier","formatHash","formatDeclarations","workBufferRenderInfo","getWorkBufferRenderInfo","lodIndex","_modelScaleData","_modelRotationData","placementId","getInstanceStreams","syncWithFormat","ts","_textureSize","GSplatStreams","_textureDimensions","numElements","_isInstance","_formatVersion","getTexturesInOrder","allStreams","isInstance","id12","WorkBufferRenderInfo","clonedDefines","colorStream","useInstanced","GSplatWorkBuffer","_createRenderTargets","colorRenderPass","prevVersion","orderTexture","orderBuffer","frustumCuller","setOrderData","newByteSize","renderColor","GSplatResourceCleanup","_GSplatResourceCleanup","queueDestroy","_pendingDestroy","_actualDestroy","id13","tempMap","GSplatResourceBase","_GSplatResourceBase","centers","_centers","hasCenters","workBufferRenderInfos","ensureMesh","createMesh","_meshRefCount","releaseMesh","workBufferFormat","configureMaterialDefines","configureMaterial","outputCode","writeCode","splatInstanceSize","instanceSize","meshPositions","meshIndices","numSplats","gsplatData","centersVersion","prepareCenters","getCenters","calcAabb","GSplatContainer","_maxSplats","maxSplats","_numSplats","centersUpdated","mat4","quat","aabb2","debugColor","SH_C0","SplatIterator","activated","getProp","cg","sigmoid","calcSplatMat","GSplatData","_GSplatData","calcSplatAabb","elementName","getElement","addProp","createIter","pred","mx","my","mz","Mx","My","Mz","scaleVal","calcAabbExact","iter","calcFocalPoint","renderWireframeBounds","worldMat","isCompressed","shBands","numProps","sizes","calcMortonOrder","calcMinMax","encodeMorton3","y3","z3","Part1By2","x5","minX","maxX","minZ","maxZ","sizeX","sizeY","sizeZ","codes","reorder","getStorage","returnStorage","property","reorderData","comments","SortWorker","myself","parentPort","cameraPosition3","cameraDirection3","forceUpdate","lastCameraPosition","lastCameraDirection","boundMin","boundMax","distances","countBuffer","numBins","binCount","binBase","binDivider","binarySearch","compare_fn","cmp","sortStartTime","minDist","maxDist","compareBits","bucketCount","numChunks","binMin","binMax","binTotal","binRange","ii","bin","sortKey","destIndex","cameraDist","findZero","postMessage","sortTime","msgData","chunksSrc","validX","validY","validZ","cameraPosition","cameraDirection","GSplatSorter","terminate","orderData","transfer","applyPendingSorted","pendingSorted","setMapping","setCamera","messageHandler","newOrder","oldOrder","workerSource","eval","createObjectURL","Blob","mat","GSplatInstance","sorter","setMaterialOrderData","dither","cameraMat","modelMat","invModelMat3","dims","orderTarget","gsplatProcess_default","gsplatProcess_default2","GSplatProcessor","_quadRender","_renderPass","_parameters","_resolveTexture","texture2","getInstanceTexture","_createRenderTarget","_dstStreamDescriptors","_destination","_dstResource","_srcResource","dstFormat","inputDeclarations","readCode","_useAllInputStreams","sameResource","inputStreamNames","_dstStreamNames","_source","outputDeclarations","_srcTextures","streamName","srcStreams","getSHData","numCoeffs","GSplatResource","updateColorData","SH_C04","updateTransformData","transformA","transformB","dataA","dataAFloat32","dataB","updateSHData","sh1to3Texture","sh4to7Texture","sh8to11Texture","sh12to15Texture","sh1to3Data","sh4to7Data","sh8to11Data","sh12to15Data","t11","t10","float32","uint32","gsplatSogCenters_default","gsplatSogCenters_default2","SH_C02","readImageDataAsync","GSplatSogIterator","meta","means","scales","sh0","shN","means_l_data","means_l","means_u_data","means_u","quats_data","quats","scales_data","sh0_data","sh_labels_data","sh_labels","sh_centroids_data","sh_centroids","coeffs","mins","maxs","codebook","r2","GSplatSogData","_destroyGpuResources","codebookTexture","calcBands","centroidsWidth","shBandsWidths","destroyed","isSog","decompress","members","_patchCodebooks","shMembers","rot_1","rot_2","rot_3","rot_0","scale_0","scale_1","scale_2","f_dc_0","f_dc_1","f_dc_2","generateCenters","centersTexture","means_mins","means_maxs","u32","asFloat","_createCodebookTexture","scalesCb","sh0Cb","shNCb","urlSuffix","prepareCodebook","prepareGpuData","GSplatSogResource","releaseTextureSources","_populateParameters","isV2","hasSH","FILLMODE_NONE","FILLMODE_FILL_WINDOW","FILLMODE_KEEP_ASPECT","RESOLUTION_AUTO","RESOLUTION_FIXED","currentApplication","getApplication","setApplication","app2","_createdLoadingScreen","script","app","createLoadingScreen","FrameGraph","multiview","_compilePasses","renderTargetMap","prevPass","firstPass","firstRT","secondPass","secondRT","lastCubeTexture","lastCubeRenderPass","thisTexture","AreaLightCacheEntry","texture0","texture1","deviceCache4","AreaLightLuts","_AreaLightLuts","postfix","applyTextures","createPlaceholder","ltcMat1","ltcMat2","buildTexture","device2","data3","convertToHalfFloat","srcData1","srcData2","data1","tex1","tex2","DEFAULT_LOCALE","DEFAULT_LOCALE_FALLBACKS","PLURALS","definePluralFn","locales","fn","getLang","locale","replaceLang","desiredLang","findAvailableLocale","desiredLocale","availableLocales","lang","mod10","mod100","DEFAULT_PLURAL_FN","getPluralFn","ABSOLUTE_URL","ASSET_ANIMATION","ASSET_AUDIO","ASSET_IMAGE","ASSET_JSON","ASSET_MODEL","ASSET_MATERIAL","ASSET_TEXT","ASSET_TEXTURE","ASSET_TEXTUREATLAS","ASSET_CUBEMAP","ASSET_SHADER","ASSET_CSS","ASSET_HTML","ASSET_SCRIPT","ASSET_CONTAINER","AssetFile","filename","contents","assetIdCounter","VARIANT_SUPPORT","pvr","dxt","etc2","etc1","basis","VARIANT_DEFAULT_PRIORITY","Asset","file","registry","_loader","_app","enableBundles","bundles","listBundlesForAsset","oldFile","_file","newFile","reload","_data","patch","_old","_resources","preload","_preload","loading","load","loadFaces","_loadFaces","getFileUrl","separator","getAbsoluteUrl","relativePath","getLocalizedAssetId","_i18n","addLocalizedAssetId","assetId","removeLocalizedAssetId","unload","urlObject","revokeObjectURL","fetchArrayBuffer","EVENT_LOAD","EVENT_UNLOAD","EVENT_ERROR","EVENT_PROGRESS","EVENT_ADDLOCALIZED","EVENT_REMOVELOCALIZED","TagsCache","addItem","removeItem","tagsRest","missingIndex","AssetRegistry","loader","filters","assets","_assets","_idToAsset","_urlToAsset","_nameToAsset","_onNameChange","_tags","_onTagAdd","_onTagRemove","getByUrl","force","_fireLoad","_opened","assetIds","assetInBundle","_loaded","extra","getHandler","head","fileUrl","loadFromUrl","loadFromUrlAndFilename","loadFromUrlError","startLoad","asset2","loadedAsset","_loadTextures","_loadModel","modelAsset","continuation","basename","mappingUrl","_loadMaterials","onMaterialLoaded","materialAsset","err3","onTextureLoaded","texParams","nameOld","findAll","getAssetById","BundleRegistry","_onAssetAdd","_idToBundle","_onBundleLoadStart","_onBundleLoad","_onBundleError","_indexAssetInBundle","_assetToBundles","_indexAssetFileUrls","_unbindAssetEvents","bundle","urls","_getAssetFileUrls","_urlsToBundles","numFiles","_onAssetRemove","otherBundles","_fileRequests","requests","decodedUrl","_findLoadedOrLoadingBundleForUrl","candidate","hasUrl","urlIsLoadedOrLoading","ComponentSystemRegistry","system","anim","audiolistener","collision","joint","layoutchild","layoutgroup","particlesystem","rigidbody","screen","scrollbar","scrollview","zone","Bundle","addFile","Untar","pump","bytesReceived","readFile","reader","headerRead","bytesRead","headerSize","decoder","TextDecoder","decode","fileName","fileSize","fileType","ustarFormat","bytesRemained","paddingSize","fetchPromise","assetsPrefix","getReader","ResourceHandler","_maxRetries","addParser","parser","decider","canParse","_parsers","removeParser","parsers","fetch","_makeContext","clean","_selectParser","handlerType","BundleHandler","_fetchRetries","tryFetch","untar","ResourceLoader","_ResourceLoader","addHandler","_handlers","removeHandler","makeKey","_loadNull","_requests","self2","handleLoad","urlObj","_onFailure","openBinary","normalizedUrl","bundlesIgnore","bundlesFilter","fileUrlFromBundle","onLoad","warn","getFromCache","enableRetry","disableRetry","I18nParser","_validate","header","messages","I18n","_I18n","idNum","_locale","_lang","_pluralFn","_translations","_findFallbackLocale","getText","translations","getPluralText","pluralFn","addData","parsed","_parser","_availableLangs","removeData","_onAssetLoad","_onAssetChange","_onAssetUnload","SCRIPT_INITIALIZE","SCRIPT_POST_INITIALIZE","SCRIPT_UPDATE","SCRIPT_POST_UPDATE","SCRIPT_SWAP","reservedScriptNames","Script","_enabledOld","_initialized","_scriptMethod","_postInitialized","_beingEnabled","postInitialize","initScript","script2","__destroyed","__scriptType","__executionOrder","scriptName","__name","EVENT_ENABLE","EVENT_DISABLE","EVENT_STATE","EVENT_DESTROY","EVENT_ATTR","__getScriptName","getScriptName","funcNameRegex","toLowerCamelCase","constructorFn","getScriptRegistryName","ScriptRegistry","addSchema","schema","_scriptSchemas","getSchema","_scripts","systems","_components","scriptInstances","scriptInstancesInitialized","_scriptsIndex","awaiting","scriptInstance","preloading","_awaitingInsertIndex","script3","scripts","initializeAttributes","nameOrType","scriptType","cmpStaticOrder","sortStaticOrder","_enableList","tmpPool","getTempArray","releaseTempArray","Entity","_Entity","addComponent","c","removeComponent","findComponent","entity2","findComponents","findScript","findScripts","entities","_entityIndex","_guid","getGuid","setGuid","guid2","enableFirst","_onHierarchyStatePostChanged","_getSortedComponents","onPostStateChange","findByGuid","_destroying","duplicatedIdsMap","_cloneRecursively","resolveDuplicatedEntityReferenceProperties","needSort","cloneComponent","oldChild","newChild","_template","oldSubtreeRoot","oldEntity","newEntity","componentName","entityProperties","getPropertiesOfType","propertyDescriptor","propertyName","oldEntityReferenceId","entityIsWithinOldSubtree","newEntityReferenceId","_new","SceneRegistryItem","_loading","_onLoadedCallbacks","SceneRegistry","_urlIndex","findByUrl","_loadSceneData","sceneItem","storeInCache","loadSceneData","unloadSceneData","_loadSceneHierarchy","onBeforeAddHierarchy","sceneItem2","_preloadScripts","loadSceneHierarchy","loadSceneSettings","applySceneSettings","changeScene","loadScene","ApplicationStats","lightmapper","batcher","_batcher","updateBasic","_timeToCountFrames","fps","_fpsAccum","gsplats","gsplatBufferCopy","_gsplatBufferCopy","updateDetailed","shadowMapUpdates","shadowMapTime","depthMapTime","forwardTime","prims","triangles","cullTime","skinTime","morphTime","lightClustersTime","otherPrimitives","culled","shadow","skinned","instanced","removedByInstancing","misc","_depthDrawCalls","_immediateRendered","renderTargetCreationTime","particles","updatesPerFrame","_updatesPerFrame","gsplatSort","updateStart","updateTime","renderStart","renderTime","physicsStart","physicsTime","scriptUpdateStart","scriptUpdate","scriptPostUpdateStart","scriptPostUpdate","animUpdateStart","animUpdate","instancingTime","alphaTest_default","ambient_default","anisotropy_default","ao_default","aoDiffuseOcc_default","aoSpecOcc_default","bakeDirLmEnd_default","bakeLmEnd_default","base_default","baseNineSliced_default","baseNineSlicedTiled_default","bayer_default","blurVSM_default","clearCoat_default","clearCoatGloss_default","clearCoatNormal_default","clusteredLightUtils_default","clusteredLightCookies_default","clusteredLightShadows_default","clusteredLight_default","combine_default","cookie_blit_2d_default","cookie_blit_cube_default","cookie_blit_default","cookie_default","cubeMapProject_default","cubeMapRotate_default","debug_output_default","debug_process_frontend_default","decode_default","detailModes_default","diffuse_default","emissive_default","encode_default","end_default","envAtlas_default","envProc_default","falloffInvSquared_default","falloffLinear_default","flat_normal_default","float_as_uint_default","scene_textures_default","fog_default","fresnelSchlick_default","fullscreenQuad_default","gamma_default","gloss_default","quad_default","immediateLine_default","immediateLine_default2","iridescenceDiffraction_default","iridescence_default","iridescenceThickness_default","ior_default","lightDeclaration_default","lightDiffuseLambert_default","lightDirPoint_default","lightEvaluation_default","lightFunctionLight_default","lightFunctionShadow_default","lighting_default","lightmapAdd_default","lightmap_default","lightSpecularAnisoGGX_default","lightSpecularGGX_default","lightSpecularBlinn_default","lightSheen_default","linearizeDepth_default","litForwardBackend_default","litForwardDeclaration_default","litForwardMain_default","litForwardPostCode_default","litForwardPreCode_default","litMain_default","litMain_default2","litOtherMain_default","litShaderArgs_default","litShaderCore_default","litShadowMain_default","ltc_default","metalness_default","msdf_default","metalnessModulate_default","morph_default","morph_default2","msdf_default2","normal_default","normalCore_default","normalMap_default","opacity_default","opacity_dither_default","outline_declaration_default","outline_output_default","output_default","outputAlpha_default","outputTex2D_default","sheen_default","sheenGloss_default","parallax_default","pick_default","reflDir_default","reflDirAniso_default","reflectionCC_default","reflectionCube_default","reflectionEnvHQ_default","reflectionEnv_default","reflectionSphere_default","reflectionSheen_default","refractionCube_default","refractionDynamic_default","reproject_default","reproject_default2","screenDepth_default","shadowCascades_default","shadow_caster_default","shadowEVSM_default","shadowPCF1_default","shadowPCF3_default","shadowPCF5_default","shadowPCSS_default","shadowSoft_default","skinBatch_default","skin_default","skybox_default","skybox_default2","specular_default","spherical_default","specularityFactor_default","spot_default","startNineSliced_default","startNineSlicedTiled_default","stdDeclaration_default","stdFrontEnd_default","TBN_default","thickness_default","tonemapping_default","tonemappingAces_default","tonemappingAces2_default","tonemappingFilmic_default","tonemappingHejl_default","tonemappingLinear_default","tonemappingNeutral_default","tonemappingNone_default","transform_default","transformCore_default","transformInstancing_default","transmission_default","twoSidedLighting_default","uv0_default","uv1_default","uvTransform_default","uvTransformUniforms_default","viewDir_default","shaderChunksGLSL","alphaTestPS","ambientPS","anisotropyPS","aoPS","aoDiffuseOccPS","aoSpecOccPS","bakeDirLmEndPS","bakeLmEndPS","basePS","baseNineSlicedPS","baseNineSlicedTiledPS","bayerPS","blurVSMPS","clearCoatPS","clearCoatGlossPS","clearCoatNormalPS","clusteredLightCookiesPS","clusteredLightShadowsPS","clusteredLightUtilsPS","clusteredLightPS","combinePS","cookieBlit2DPS","cookieBlitCubePS","cookieBlitVS","cookiePS","cubeMapProjectPS","cubeMapRotatePS","debugOutputPS","debugProcessFrontendPS","detailModesPS","diffusePS","decodePS","emissivePS","encodePS","endPS","envAtlasPS","envProcPS","falloffInvSquaredPS","falloffLinearPS","flatNormalPS","floatAsUintPS","sceneTexturesPS","fogPS","fresnelSchlickPS","frontendCodePS","frontendDeclPS","fullscreenQuadVS","gammaPS","gles3PS","gles3VS","glossPS","quadVS","immediateLinePS","immediateLineVS","iridescenceDiffractionPS","iridescencePS","iridescenceThicknessPS","iorPS","lightDeclarationPS","lightDiffuseLambertPS","lightDirPointPS","lightEvaluationPS","lightFunctionLightPS","lightFunctionShadowPS","lightingPS","lightmapAddPS","lightmapPS","lightSpecularAnisoGGXPS","lightSpecularGGXPS","lightSpecularBlinnPS","lightSheenPS","linearizeDepthPS","litForwardBackendPS","litForwardDeclarationPS","litForwardMainPS","litForwardPostCodePS","litForwardPreCodePS","litMainPS","litMainVS","litOtherMainPS","litShaderArgsPS","litShaderCorePS","litShadowMainPS","litUserDeclarationPS","litUserDeclarationVS","litUserCodePS","litUserCodeVS","litUserMainStartPS","litUserMainStartVS","litUserMainEndPS","litUserMainEndVS","ltcPS","metalnessPS","metalnessModulatePS","morphPS","morphVS","msdfPS","msdfVS","normalVS","normalCoreVS","normalMapPS","opacityPS","opacityDitherPS","outlineDeclarationPS","outlineOutputPS","outputPS","outputAlphaPS","outputTex2DPS","sheenPS","sheenGlossPS","parallaxPS","pickPS","reflDirPS","reflDirAnisoPS","reflectionCCPS","reflectionCubePS","reflectionEnvHQPS","reflectionEnvPS","reflectionSpherePS","reflectionSheenPS","refractionCubePS","refractionDynamicPS","reprojectPS","reprojectVS","screenDepthPS","shadowCascadesPS","shadowCasterPS","shadowEVSMPS","shadowPCF1PS","shadowPCF3PS","shadowPCF5PS","shadowPCSSPS","shadowSoftPS","skinBatchVS","skinVS","skyboxPS","skyboxVS","specularPS","sphericalPS","specularityFactorPS","spotPS","startNineSlicedPS","startNineSlicedTiledPS","stdDeclarationPS","stdFrontEndPS","TBNPS","thicknessPS","tonemappingPS","tonemappingAcesPS","tonemappingAces2PS","tonemappingFilmicPS","tonemappingHejlPS","tonemappingLinearPS","tonemappingNeutralPS","tonemappingNonePS","transformVS","transformCoreVS","transformInstancingVS","transmissionPS","twoSidedLightingPS","uv0VS","uv1VS","uvTransformVS","uvTransformUniformsPS","viewDirPS","webgpuPS","webgpuVS","alphaTest_default2","ambient_default2","anisotropy_default2","ao_default2","aoDiffuseOcc_default2","aoSpecOcc_default2","bakeDirLmEnd_default2","bakeLmEnd_default2","base_default2","baseNineSliced_default2","baseNineSlicedTiled_default2","bayer_default2","blurVSM_default2","clearCoat_default2","clearCoatGloss_default2","clearCoatNormal_default2","clusteredLightUtils_default2","clusteredLightCookies_default2","clusteredLightShadows_default2","clusteredLight_default2","combine_default2","cookie_blit_2d_default2","cookie_blit_cube_default2","cookie_blit_default2","cubeMapProject_default2","cubeMapRotate_default2","debug_output_default2","debug_process_frontend_default2","decode_default2","detailModes_default2","diffuse_default2","emissive_default2","encode_default2","end_default2","envAtlas_default2","envProc_default2","falloffInvSquared_default2","falloffLinear_default2","flat_normal_default2","float_as_uint_default2","scene_textures_default2","fog_default2","fogMath_default","fresnelSchlick_default2","fullscreenQuad_default2","gamma_default2","gloss_default2","quad_default2","indirect_core_default","immediateLine_default3","immediateLine_default4","iridescenceDiffraction_default2","iridescence_default2","iridescenceThickness_default2","ior_default2","lightDeclaration_default2","lightDiffuseLambert_default2","lightDirPoint_default2","lightEvaluation_default2","lightFunctionLight_default2","lightFunctionShadow_default2","lighting_default2","lightmapAdd_default2","lightmap_default2","lightSpecularAnisoGGX_default2","lightSpecularGGX_default2","lightSpecularBlinn_default2","lightSheen_default2","linearizeDepth_default2","litForwardBackend_default2","litForwardDeclaration_default2","litForwardMain_default2","litForwardPostCode_default2","litForwardPreCode_default2","litMain_default3","litMain_default4","litOtherMain_default2","litShaderArgs_default2","litShaderCore_default2","litShadowMain_default2","ltc_default2","metalness_default2","msdf_default3","metalnessModulate_default2","morph_default3","morph_default4","msdf_default4","normal_default2","normalCore_default2","normalMap_default2","opacity_default2","opacity_dither_default2","outline_declaration_default2","outline_output_default2","output_default2","outputAlpha_default2","outputTex2D_default2","sheen_default2","sheenGloss_default2","parallax_default2","pick_default2","reflDir_default2","reflDirAniso_default2","reflectionCC_default2","reflectionCube_default2","reflectionEnvHQ_default2","reflectionEnv_default2","reflectionSphere_default2","reflectionSheen_default2","refractionCube_default2","refractionDynamic_default2","reproject_default3","reproject_default4","screenDepth_default2","shadowCascades_default2","shadow_caster_default2","shadowEVSM_default2","shadowPCF1_default2","shadowPCF3_default2","shadowPCF5_default2","shadowSoft_default2","skinBatch_default2","skin_default2","skybox_default3","skybox_default4","sort_indirect_args_default","specular_default2","spherical_default2","specularityFactor_default2","spot_default2","startNineSliced_default2","startNineSlicedTiled_default2","stdDeclaration_default2","stdFrontEnd_default2","TBN_default2","thickness_default2","tonemapping_default2","tonemappingAces_default2","tonemappingAces2_default2","tonemappingFilmic_default2","tonemappingHejl_default2","tonemappingLinear_default2","tonemappingNeutral_default2","tonemappingNone_default2","transform_default2","transformCore_default2","transformInstancing_default2","transmission_default2","twoSidedLighting_default2","uv0_default2","uv1_default2","uvTransform_default2","uvTransformUniforms_default2","viewDir_default2","shaderChunksWGSL","fogMathPS","indirectCoreCS","sortIndirectArgsCS","AppBase","_AppBase","appOptions","assetPrefix","batchManager","componentSystems","elementInput","gamepads2","physicsWorld","resourceHandlers","scriptsOrder","scriptPrefix","soundManager","_initDefaultMaterial","_initProgramLibrary","_soundManager","_registerSceneImmediate","defaultLayerWorld","defaultLayerDepth","defaultLayerSkybox","defaultLayerUi","defaultLayerImmediate","defaultLayerComposition","_firstBake","_firstBatch","attachSelectEvents","_scriptPrefix","resourceHandler","componentSystem","setPhysicsWorld","onVisibilityChange","_applications","fillMode","_fillMode","resolutionMode","_resolutionMode","application_properties","scenes","_parseApplicationProperties","_parseScenes","_parseAssets","loadedCount","onAssetLoadOrError","sceneData","maxAssetRetries","useDevicePixelRatio","use_device_pixel_ratio","resolution_mode","fill_mode","setCanvasResolution","setCanvasFillMode","layerOrder","composition","sublayer","batchGroups","grp","i18nAssets","i18n","_loadLibraries","libraries","onLibrariesLoaded","scriptsIndex","bundlesIndex","loadingType","_librariesLoaded","requestAnimationFrame","frameRequestId","tick","inputUpdate","_inTools","updateCanvasSize","renderComposition","isHidden","hidden","_allowResize","windowWidth","windowHeight","winR","onLibraryLoaded","setAreaLightLuts","_skyboxAsset","_onSkyboxChanged","_onSkyboxRemoved","bake","_processTimestamp","drawMeshInstance","drawTexture","drawDepthTexture","_inFrameUpdate","_destroyRequested","canvasId","_gsplatSortedEvt","scriptHandler","cancelTick","cancelAnimationFrame","getEntityFromIndex","isFullscreen","enableFullscreen","Element","ALLOW_KEYBOARD_INPUT","disableFullscreen","getSceneUrl","xrFrame","maxDeltaTime","timeScale","skipUpdate","autoRender","renderNextFrame","AppOptions","tempSphere2","BakeLight","restore","startBake","endBake","lightBounds","_tempPoint","BakeLightSimple","numVirtualLights","prepareVirtualLight","directionalSpreadAngle","linearIntensity","_tempPoint2","BakeLightAmbient","fullIntensity","lightEntity","affectDynamic","affectLightmapped","BakeMeshNode","bilateralDeNoise_default","dilate_default","bilateralDeNoise_default2","dilate_default2","DENOISE_FILTER_SIZE","lightmapFiltersChunksGLSL","glslBilateralDeNoisePS","glslDilatePS","lightmapFiltersChunksWLSL","wgslBilateralDeNoisePS","wgslDilatePS","LightmapFilters","setSourceTexture","constantPixelOffset","prepareDenoise","filterRange","filterSmoothness","bakeHDR","shaderDenoise","sigmas","constantSigmas","constantKernel","bZnorm","evaluateDenoiseUniforms","getDenoise","getDilate","shaderDilate","normpdf","kSize","RenderPassLightmapper","receivers","worldClusters","lightArray","MAX_LIGHTMAP_SIZE","PASS_COLOR","PASS_DIR","tempVec","Lightmapper","blackTex","initBake","_initCalled","lightmapFilters","constantBakeDir","srcParams","shadowLocalClusteredPass","finishBake","bakeNodes","destroyRT","ambientAOMaterial","createMaterialForPass","createMaterials","passMaterials","collectModels","allNodes","lightmapped","notInstancedMeshInstances","prepareShadowCasters","castShadowsLightmap","calculateLightmapSize","sizeMult","srcArea","_area","areaMult","computeNodeBounds","totalArea","lightmapSize","setLightmapping","startShaders","startFboTime","startCompileTime","bakeInternal","nowTime","totalRenderTime","shadersLinked","fboTime","lightmapCount","allocateTextures","bakeNode","prepareLightsToBake","allLights","bakeLights","sceneLights","bakeLight","restoreLights","setupScene","restoreScene","computeNodesBounds","computeBounds","backupMaterials","restoreMaterials","lightCameraPrepare","lightCameraPrepareAndCull","casterBounds","lightAffectsNode","frustumSize","nodeVisible","setupLightArray","renderShadowMap","shadowMapRendered","postprocessTextures","numDilates2x","dilateShader","denoiseShader","filterLightmap","nodeRT","lightmap","tempRT","tempTex","bilateralFilterEnabled","rcv","shadersUpdatedOn1stPass","isAmbientLight","isDirectional","virtualLightIndex","clusterLights","passMaterial","lastVirtualLightForPass","ComponentSystem","ComponentType","componentData","DataType","initializeComponentData","record","descriptor","convertValue","matchingProperties","extraDataProperties","_validProps","INTERPOLATION_STEP","INTERPOLATION_LINEAR","INTERPOLATION_CUBIC","AnimCache","_len","_findKey","_t","_hermite","interpolation","idx0","idx1","hermite","p1","m1","AnimSnapshot","animTrack","_results","_inputs","_curves","outputs","_outputs","_output","AnimClip","_AnimClip","track","_track","_snapshot","snapshot","alignCursorToCurrentTime","speed","signChanged","_speed","blendWeight","_blendWeight","blendOrder","_blendOrder","eventCursor","_eventCursor","eventCursorEnd","isReverse","events","nextEvent","nextEventAheadOfTime","nextEventBehindTime","resetEventCursor","moveEventCursor","clipFrameTime","frameEndTime","eventFrame","residual","fireNextEvent","_eventHandler","fireNextEventInFrame","frameStartTime","activeEventsForFrame","initialCursor","progressForTime","deltaTime","_playing","playing","ANIM_INTERRUPTION_NONE","ANIM_INTERRUPTION_PREV","ANIM_INTERRUPTION_NEXT","ANIM_INTERRUPTION_PREV_NEXT","ANIM_INTERRUPTION_NEXT_PREV","ANIM_GREATER_THAN","ANIM_LESS_THAN","ANIM_GREATER_THAN_EQUAL_TO","ANIM_LESS_THAN_EQUAL_TO","ANIM_EQUAL_TO","ANIM_NOT_EQUAL_TO","ANIM_PARAMETER_INTEGER","ANIM_PARAMETER_FLOAT","ANIM_PARAMETER_BOOLEAN","ANIM_PARAMETER_TRIGGER","ANIM_BLEND_1D","ANIM_BLEND_2D_DIRECTIONAL","ANIM_BLEND_2D_CARTESIAN","ANIM_BLEND_DIRECT","ANIM_STATE_START","ANIM_STATE_END","ANIM_STATE_ANY","ANIM_CONTROL_STATES","ANIM_LAYER_OVERWRITE","ANIM_LAYER_ADDITIVE","AnimBlend","_AnimBlend","blendVec","additive","it","blendQuat","stableSort","lessFunc","AnimTargetValue","_AnimTargetValue","_normalizeWeights","_component","normalizeWeights","updateWeights","totalWeight","_layerBlendType","setMask","updateValue","counter","IDENTITY_QUAT_ARR","valueType","baseValue","TYPE_QUAT","q1","aV1","q2","aV2","q3","aV","quatArr","vecArr","setter","unbind","TYPE_VEC3","AnimEvaluator","clips","_clips","addClip","clip","binder","_binder","inputs","paths","resolved","targetPath","blendCounter","animComponent","layerIndex","removeClip","unresolve","removeClips","updateClipTrack","rebind","findClip","assignMask","outputAnimation","usesLayerBlending","animTarget","AnimEvents","_events","AnimTrack","_AnimTrack","animEvents","_animEvents","_input","_interpolation","EMPTY","AnimBinder","joinPath","pathSegments","character","escape2","splitPath","curr","encode","entityPath","propertyPath","AnimTarget","_set","_get","_targetPath","isTransform","_isTransform","isWeight","_isWeight","DefaultAnimBinder","_DefaultAnimBinder","_isPathActive","rootNodeNames","currEntityPath","_isPathInMask","createAnimTarget","valueCount","encodedPath","targetCache","handlers","nodeCounts","activeNodes","checkMaskValue","maskItem","flatten","findMeshInstances","weightName","textureName","textureAsset","Component","_Component","_buildAccessors","configurable","_accessorsBuilt","buildAccessors","onSetEnabled","AnimationComponent","animations","_animations","onSetAnimations","_unbindAssets","animName","animationsIndex","currAnim","_stopCurrentAnimation","value2","loadAnimationAssets","skeleton","animEvaluator","blendTime","prevAnim","_createAnimationController","blendSpeed","fromSkel","toSkel","getAnimation","setModel","_resetAnimationController","modelComponent","animationNames","hasJson","hasGlb","_bindAsset","evtName","_pendingAssetAdds","_onAssetAdded","_boundAssets","onAssetChanged","onAssetRemoved","_onAssetReady","attribute","restarted","onBeforeRemove","_properties","AnimationComponentSystem","clonedAnimations","clonedAnimationsIndex","onUpdate","AnimNode","point","pointLength","_pointLength","_weight","normalizedWeight","_weightedSpeed","absoluteSpeed","weightedSpeed","_animTrack","AnimBlendTree","_AnimBlendTree","calculateWeights","syncAnimations","_syncAnimations","getChild","updateParameterValues","paramsEqual","_parameterValues","updatedParameter","_findParameter","getNodeWeightedDuration","speedMultiplier","getNodeCount","createTree","findParameter","_pointCache","AnimBlendTree1D","weightedDurationSum","child2Distance","parameterDistance","AnimBlendTreeCartesian2D","_AnimBlendTreeCartesian2D","pointDistanceCache","pointKey","weightSum","_p","pi","_pip","minj","pipj","AnimBlendTreeDirectional2D","_AnimBlendTreeDirectional2D","pointCache","pLength","piLength","pjLength","weightedChildDuration","AnimBlendTreeDirect","AnimState","_createTree","_getNodeFromPath","currNode","_blendTree","addAnimation","pathString","indexOfAnimation","_animationList","_updateHasAnimations","_hasAnimations","hasAnimations","nodeCount","playable","trackClipName","trackClip","_controller","timelineDuration","blendTree","AnimTransition","_from","_to","_priority","conditions","_conditions","exitTime","_exitTime","transitionOffset","_transitionOffset","interruptionSource","_interruptionSource","hasExitTime","AnimController","_animEvaluator","activeState","stateName","_activeStateName","_findState","activeStateName","activeStateAnimations","previousState","_previousStateName","previousStateName","_stateNames","activeStateProgress","_getActiveStateProgressForTime","_timeInState","activeStateDuration","_activeStateDurationDirty","maxDuration","activeClip","_activeStateDuration","activeStateCurrentTime","_timeInStateBefore","transitioning","_isTransitioning","transitionProgress","_currTransitionTime","_totalTransitionTime","states","_findTransitionsFromState","transitions","_findTransitionsFromStateCache","_transitions","transition","_findTransitionsBetweenStates","sourceStateName","destinationStateName","_findTransitionsBetweenStatesCache","_transitionHasConditionsMet","parameterName","predicate","_findTransition","_transitionInterruptionSource","progressBefore","startTransition","updateStateFromTransition","_consumeTrigger","_transitionPreviousStates","interpolatedTime","hasTransitionOffset","timeInState","timeInStateBefore","offsetTime","_transitionToState","newStateName","assignAnimation","_activate","removeNodeAnimations","stateWeight","activeClips","totalClips","consumeTrigger","v3","v4","AnimComponentBinder","_AnimComponentBinder","_packFloat","_packBoolean","_packVec2","_packVec3","_packVec4","_packColor","_packQuat","propertyComponent","_getEntityFromHierarchy","_createAnimTargetForProperty","entityHierarchy","currEntity","_resolvePath","resolveLeaf","steps","_setter","packFunc","setterFuncName","baseValues","objKey","propertyHierarchy","materialPropertyName","materialTexture","animDataType","animDataComponents","layerName","AnimComponentLayer","layerPlaying","dirtifyTargets","_blendType","_blendTime","_blendTimeElapsed","_startingWeight","_targetWeight","blendToWeight","nodePath","getAnimationAsset","animationAssets","AnimStateGraph","layerId","dataLayer","dataLayerTransition","conditionKeys","paramId","AnimComponent","stateGraphAsset","removeStateGraph","_stateGraphAsset","_onStateGraphAssetChangeEvent","_id","_asset","_stateGraph","loadStateGraph","_animationAssets","stateGraph","layerIndices","_layerIndices","prevAnimationAssets","prevMasks","_addLayer","animBinder","findAnimationLayer","_assignParameters","paramKeys","paramKey","containsBlendTree","setupAnimationAssets","stateKey","animationAsset","onAnimationAssetLoaded","stateName2","targetKey","animatesEntity","addAnimationState","getParameterValue","setParameterValue","getFloat","setFloat","getInteger","setInteger","getBoolean","setBoolean","getTrigger","setTrigger","singleFrame","_consumedTriggers","resetTrigger","trigger","oldAnim","AnimComponentSystem","complexProperties","cloneLayer","masks","maskData","maskKey","decodeURI","onAnimationUpdate","onMeshInstancesChange","pathArr","clonePath","AudioListenerComponent","setCurrentListener","AudioListenerComponentSystem","BUTTON_TRANSITION_MODE_TINT","BUTTON_TRANSITION_MODE_SPRITE_CHANGE","ELEMENTTYPE_GROUP","ELEMENTTYPE_IMAGE","ELEMENTTYPE_TEXT","FITMODE_STRETCH","FITMODE_CONTAIN","FITMODE_COVER","VisualState","HOVER","PRESSED","INACTIVE","STATES_TO_TINT_NAMES","STATES_TO_SPRITE_ASSET_NAMES","STATES_TO_SPRITE_FRAME_NAMES","ButtonComponent","_active","_updateVisualState","imageEntity","_imageEntity","_imageEntityUnsubscribe","_imageEntitySubscribe","hitPadding","_hitPadding","transitionMode","_transitionMode","oldMode","_cancelTween","_resetToDefaultVisualState","_forceReapplyVisualState","hoverTint","_setTint","_hoverTint","pressedTint","_pressedTint","inactiveTint","_inactiveTint","fadeDuration","_fadeDuration","hoverSpriteAsset","_setTransitionValue","_hoverSpriteAsset","hoverSpriteFrame","_hoverSpriteFrame","pressedSpriteAsset","_pressedSpriteAsset","pressedSpriteFrame","_pressedSpriteFrame","inactiveSpriteAsset","_inactiveSpriteAsset","inactiveSpriteFrame","_inactiveSpriteFrame","_evtImageEntityElementAdd","_onImageElementGain","_onImageElementLose","_imageEntityElementSubscribe","_evtImageEntityElementRemove","_evtImageEntityElementColor","_onSetColor","_evtImageEntityElementOpacity","_onSetOpacity","_evtImageEntityElementSpriteAsset","_onSetSpriteAsset","_evtImageEntityElementSpriteFrame","_onSetSpriteFrame","_imageEntityElementUnsubscribe","_onElementComponentRemove","_toggleHitElementListeners","_onElementComponentAdd","_storeDefaultVisualState","onOrOff","isAdding","_hasHitElementListeners","_onMouseEnter","_onMouseLeave","_onMouseDown","_onMouseUp","_onTouchStart","_onTouchEnd","_onTouchLeave","_onTouchCancel","_onSelectStart","_onSelectEnd","_onSelectEnter","_onSelectLeave","_onClick","_storeDefaultColor","_storeDefaultOpacity","_storeDefaultSpriteAsset","spriteAsset","_storeDefaultSpriteFrame","spriteFrame","_defaultTint","_defaultSpriteAsset","_defaultSpriteFrame","_isApplyingTint","_isApplyingSprite","_isHovering","_fireIfActive","_isPressed","_hoveringCounter","oldVisualState","_visualState","newVisualState","_determineVisualState","tintName","tintColor","_applyTint","spriteAssetName","spriteFrameName","_applySprite","_applyTintImmediately","_applyTintWithTween","toColor3","color4","_tweenInfo","lerpColor","_updateTintTween","elapsedTime","elapsedProportion","_evtElementAdd","oldButton","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_CLICK","EVENT_TOUCHLEAVE","EVENT_SELECTSTART","EVENT_SELECTEND","EVENT_SELECTENTER","EVENT_SELECTLEAVE","EVENT_HOVERSTART","EVENT_HOVEREND","EVENT_PRESSEDSTART","EVENT_PRESSEDEND","_properties2","ButtonComponentSystem","_vec3","CollisionComponent","changeType","_halfExtents","recreatePhysicalShapes","linearOffset","_linearOffset","_updateHasOffset","angularOffset","_angularOffset","_radius","_axis","renderAsset","_renderAsset","onRenderAssetRemoved","_render","convexHull","_convexHull","doRecreatePhysicalShape","checkVertexDuplicates","_checkVertexDuplicates","_hasOffset","_onInsert","world","_compoundParent","ancestor","getCompoundChildCount","_updateEachDescendantTransform","updateCompoundChildTransform","_updateCompound","bodyComponent","getShapePosition","lo","getShapeRotation","enableSimulation","disableSimulation","_removeCompoundChild","_builtWorldScale","EVENT_CONTACT","EVENT_COLLISIONSTART","EVENT_COLLISIONEND","EVENT_TRIGGERENTER","EVENT_TRIGGERLEAVE","BODYTYPE_STATIC","BODYTYPE_DYNAMIC","BODYTYPE_KINEMATIC","BODYFLAG_STATIC_OBJECT","BODYFLAG_KINEMATIC_OBJECT","BODYFLAG_NORESPONSE_OBJECT","BODYSTATE_ACTIVE_TAG","BODYSTATE_ISLAND_SLEEPING","BODYSTATE_WANTS_DEACTIVATION","BODYSTATE_DISABLE_DEACTIVATION","BODYSTATE_DISABLE_SIMULATION","BODYGROUP_NONE","BODYGROUP_DEFAULT","BODYGROUP_DYNAMIC","BODYGROUP_STATIC","BODYGROUP_KINEMATIC","BODYGROUP_ENGINE_1","BODYGROUP_TRIGGER","BODYGROUP_ENGINE_2","BODYGROUP_ENGINE_3","BODYGROUP_USER_1","BODYGROUP_USER_2","BODYGROUP_USER_3","BODYGROUP_USER_4","BODYGROUP_USER_5","BODYGROUP_USER_6","BODYGROUP_USER_7","BODYGROUP_USER_8","BODYMASK_NONE","BODYMASK_ALL","BODYMASK_STATIC","BODYMASK_NOT_STATIC","BODYMASK_NOT_STATIC_KINEMATIC","_rotation","Trigger","_getEntityTransform","createBody","mass","noContactResponse","setRestitution","setFriction","setDamping","setLinearFactor","setAngularFactor","destroyBody","updateTransform","setTransform","addTrigger","removeTrigger","mat42","p2","p3","quat2","quat22","_properties3","collisionImpls","createPhysicalShape","createShape","capsule","cylinder","cone","createMeshShape","recreateMeshShapes","updateMeshTransform","compound","getImpl","beforeInitialize","afterInitialize","recreateBody","recreateTrigger","destroyShape","beforeRemove","recreateShapes","firstCompoundChild","_addEachDescendant","updateShapeTransform","createMeshSource","bakeScale","checkDuplicates","shapeScale","_getNodeScaling","_getNodeTransform","entityTransform","doRecreateMeshShape","onRemove","loadMeshAsset","privateProperty","previousPropertyValue","onAssetFullyReady","loadAndHandleAsset","asset3","containerAsset","worldScale","CollisionComponentSystem","clearEntityCollisions","_body","parentComponent","updateCompoundChild","removeCompoundChild","onTransformChanged","previousType","newType","_calculateNodeRelativeTransform","relative","ao","newOrigin","_tempColor2","_vertexFormatDeviceCache","ImageRenderable","setMaterial","_entity","setMesh","forceUpdateAabb","addModelToLayers","setUnmaskDrawOrder","getLastChild","lastChild","getMaskOffset","setDrawOrder","setCull","visibleFn","_isScreenSpace","isVisibleForCamera","setScreenSpace","setLayer","setAabbFunc","_meshDirty","ImageElement","_defaultMesh","_onParentResizeOrPivotChange","_onScreenSpaceChange","_onScreenChange","_onDrawOrderChange","_onResolutionChange","_updateMesh","_updateMaterial","_hasUserMaterial","_materialAsset","_system","defaultImageMaterials","_use9Slicing","nineSliced","nineTiled","getImageElementMaterial","_isScreenCulled","_createMesh","calculatedWidth","calculatedHeight","vertexData","fitMode","_targetAspectRatio","actualRatio","frameData","_spriteFrame","borderWidthScale","borderHeightScale","_innerOffset","_atlasRect","ppu","scaleMulX","scaleMulY","_outerScale","_innerOffsetUniform","_atlasRectUniform","_outerScaleUniform","vertexDataF32","atlasTextureWidth","atlasTextureHeight","_updateSprite","nineSlice","refreshMesh","_beingInitialized","_toggleMask","_onMaterialLoad","_onMaterialAdded","_bindMaterialAsset","_onMaterialChange","_onMaterialRemove","_unbindMaterialAsset","_onTextureAdded","_textureAsset","_bindTextureAsset","_onTextureLoad","_onTextureChange","_onTextureRemove","_unbindTextureAsset","_onSpriteAssetAdded","_spriteAsset","_bindSpriteAsset","_onSpriteAssetLoad","_onSpriteAssetChange","_onSpriteAssetRemove","_unbindSpriteAsset","textureAtlasAsset","_onTextureAtlasLoad","atlasAssetId","_bindSprite","_evtSetMeshes","_onSpriteMeshesChange","_onSpritePpuChange","_onAtlasTextureChange","_unbindSprite","atlasAsset","_setStencil","stencilParams","maskedBy","_maskRef","sp","_updateRenderableEmissive","_colorUniform","_removeMaterialAssetEvents","defaultScreenSpaceImageMaskMaterial","defaultImageMaskMaterial","defaultScreenSpaceImageMaterial","defaultImageMaterial","newAspectRatio","_prev","LocalizedAsset","defaultAsset","_defaultAsset","_unbindDefaultAsset","_bindDefaultAsset","_onSetLocale","localizedAsset","_localizedAsset","_onLocalizedAssetAdd","_unbindLocalizedAsset","_bindLocalizedAsset","autoLoad","_autoLoad","disableLocalization","_disableLocalization","_onDefaultAssetAdd","_onLocaleAdd","_onLocaleRemove","_onDefaultAssetRemove","_onLocalizedAssetLoad","_onLocalizedAssetChange","_onLocalizedAssetRemove","localizedAssetId","FONT_MSDF","FONT_BITMAP","EOF_TOKEN","ERROR_TOKEN","TEXT_TOKEN","OPEN_BRACKET_TOKEN","CLOSE_BRACKET_TOKEN","EQUALS_TOKEN","STRING_TOKEN","IDENTIFIER_TOKEN","WHITESPACE_TOKEN","WHITESPACE_CHARS","IDENTIFIER_REGEX","Scanner","token","_last","_buf","_error","debugPrint","tokenStrings","_eof","_mode","_tag","_cur","_store","_whitespace","_string","_isIdentifierSymbol","_identifier","_symbols","symbols","Parser","_scanner","_parseTag","combineTags","resolveMarkupTags","numSymbols","edges","tagStack","removeTags","tags2","addTags","edgeKeys","resolvedTags","edge","prevTag","resolvedTag","evaluateMarkup","stripped_symbols","invalidTag","resolved_tags","Markup","MeshInfo","outlines","shadows","gapIndices","createTextMesh","meshInfo","LINE_BREAK_CHAR","WHITESPACE_CHAR","WORD_BOUNDARY_CHAR","ALPHANUMERIC_CHAR","CJK_CHAR","NO_LINE_BREAK_CJK_CHAR","CONTROL_CHARS","CONTROL_GLYPH_DATA","xadvance","xoffset","yoffset","colorTmp","vec2Tmp","_tempColor3","TextElement","_setMaterial","_fontAsset","font","_onParentResize","_onPivotChange","_onLocaleSet","_onLocalizationData","_noResize","_font","_updateText","_drawOrder","_i18nKey","fontAsset","_resetLocalizedText","_setText","unicodeConverter","unicodeConverterFunc","getUnicodeConverter","_enableMarkup","_rtlReorder","rtlReorderFunc","getRtlReorder","_rtl","rtl","getColorThicknessHash","getColorOffsetHash","paletteMap","outlinePaletteMap","shadowPaletteMap","_colorPalette","_outlineColor","_outlinePalette","_outlineThickness","_shadowColor","_shadowPalette","_shadowOffset","_symbolColors","_symbolOutlineParams","_symbolShadowParams","outline","outlineHash","offsetX","offsetY","offX","offY","shadowHash","_updateMaterialEmissive","_updateMaterialOutline","_updateMaterialShadow","charactersPerTexture","_calculateCharsPerTexture","removedModel","screenCulled","_meshInfo","_justify","_removeMeshInstance","_setTextureParams","_getPxRange","_outlineColorUniform","_outlineThicknessScale","_shadowColorUniform","_shadowOffsetUniform","_shadowOffsetScale","_setMaskedBy","_updateMeshes","_rangeStart","_rangeEnd","_updateRenderRange","msdf","getTextElementMaterial","_isWordBoundary","_isValidNextChar","nextchar","_isNextCJKBoundary","_isNextCJKWholeWord","json","minFont","_minFontSize","_maxFontSize","maxFont","autoFit","_shouldAutoFit","_fontSize","justify","MAGIC","_x","_y","_z","_xMinusTrailingWhitespace","wordStartX","wordStartIndex","lineStartIndex","numWordsThisLine","numCharsThisLine","numBreaksThisLine","numGapsThisLine","numGapsAtWordStart","prevWasWhitespace","seenNonWhitespaceThisLine","splitHorizontalAnchors","anchor","maxLineWidth","autoWidth","_wrapLines","fontMinY","fontMaxY","breakLine","lineBreakIndex","lineBreakX","lineGaps","_lineWidths","_lineGaps","sliceStart","sliceEnd","chars","_lineContents","_scaledLineHeight","retryUpdateMeshes","_lineHeight","_fontMinY","_fontMaxY","color_r","color_g","color_b","outline_color_rg","outline_color_ba","outline_thickness","shadow_color_rg","shadow_color_ba","shadow_offset_xy","isLineBreak","_maxLines","advance","quadsize","dataScale","kerning","kernTable","kernLeft","isWhitespace","meshInfoId","candidateLineWidth","_spacing","backtrack","backtrackStart","backtrackEnd","backChar","backCharData","backMeshInfo","fontSize","_shouldAutoFitWidth","_shouldAutoFitHeight","_getUv","colorIdx","outlineIdx","shadowIdx","_autoWidth","autoHeight","_autoHeight","ha","_alignment","va","prevQuad","lineIndex","slack","numGaps","justified","gapWidth","hoffset","voffset","quad2","qoffset","tmp0","tmp1","vertMax","_aabbDirty","_onFontRender","_onFontLoad","_onFontChange","_onFontRemove","y22","_autoFitWidth","_autoFitHeight","symbolIndex","startChars","endChars","lineHeight","wrapLines","_originalFontSize","previousFontType","charId","newFontSize","rtlReorder","_unicodeConverter","outlineColor","outlineThickness","shadowColor","shadowOffset","minFontSize","maxFontSize","autoFitWidth","autoFitHeight","maxLines","enableMarkup","symbolColors","symbolOutlineParams","symbolShadowParams","rangeStart","rangeEnd","_currentMaterialType","_maskedMaterialSrc","position2","invParentWtm2","vecA","vecB","matA","matB","matC","matD","tmpCorners","ElementComponent","_absLeft","_localAnchor","_margin","_absRight","_absTop","_absBottom","_hasSplitAnchorsX","_anchor","_hasSplitAnchorsY","_calculateLocalAnchors","_calculateSize","_anchorDirty","_batchGroupId","wt","wb","_setHeight","_calculatedHeight","_pivot","_setCalculatedWidth","_calculatedWidth","_setCalculatedHeight","canvasCorners","_canvasCornersDirty","_canvasCorners","screenCorners","_addedModels","wr","wl","_setWidth","margin","_maskedBy","prevX","prevY","_cornersDirty","_worldCornersDirty","_flagChildrenAsDirty","_screenCorners","_calcScreenCorners","parentBottomLeft","_screenTransform","textWidth","textHeight","useInput","_useInput","addElement","removeElement","_fitMode","worldCorners","_worldCorners","_screenMatrix","localPos","_setValue","_dirtyBatch","_patch","_setPosition","_setLocalPosition","_unpatch","_screenToWorld","pvt","resx","resy","_anchorTransform","_sizeDirty","_parentWorldTransform","depthOffset","pivotOffset","_parseUpToScreen","_updateScreen","_prerender","syncMask","_bindScreen","_bindElement","_unbindScreen","_unbindElement","previousScreen","syncDrawOrder","_updateMask","renderableElement","currentMask","_onScreenResize","_onScreenRemove","getOffsetPosition","onLayersChanged","oldComp","newComp","_evtLayerAdded","onLayerAdded","_evtLayerRemoved","onLayerRemoved","_group","_evtLayersChanged","propagateCalculatedWidth","propagateCalculatedHeight","newWidth","newHeight","updateMargins","_offsetReadAt","_maskOffset","mo","clipL","clipR","clipT","clipB","cameraWidth","cameraHeight","hitCorners","overflowX","overflowY","ElementComponentSystem","_defaultTexture","splitHorAnchors","splitVerAnchors","_marginChange","shouldForceSetAnchor","onAddComponent","textAttibutes","_defaultTextMaterials","opacityMapChannel","emissiveVertexColor","_createBaseImageMaterial","nineSliceTiled","defaultScreenSpaceImageMask9SlicedMaterial","defaultScreenSpaceImageMask9TiledMaterial","defaultScreenSpaceImage9TiledMaterial","defaultScreenSpaceImage9SlicedMaterial","defaultImage9SlicedMaskMaterial","defaultImage9TiledMaskMaterial","defaultImage9SlicedMaterial","defaultImage9TiledMaterial","registerUnicodeConverter","registerRtlReorder","JOINTTYPE_FIXED","JOINTTYPE_BALL","JOINTTYPE_HINGE","JOINTTYPE_SLIDER","JOINTTYPE_6DOF","MOTION_FREE","MOTION_LIMITED","MOTION_LOCKED","_mat","_jointMat","_frameMatA","_frameMatB","_vec32","_vec3b","_jointTypes","_breakSeparation","setVec2","setVec3","JointComponent","_destroyConstraint","_broken","_tryCreateConstraint","entityA","_setJointEntity","_entityA","entityB","_entityB","enableCollision","_enableCollision","breakImpulse","impulse","_breakImpulse","_joint","setBreakImpulse","_breakable","constraint","nativeJoint","isBroken","enableLimits","_enableLimits","_updateLimits","_limits","motorSpeed","_motorSpeed","_updateMotor","maxMotorForce","_maxMotorForce","swingLimitY","_swingLimitY","swingLimitZ","_swingLimitZ","twistLimit","_twistLimit","linearMotionX","_linearMotionX","linearMotionY","_linearMotionY","linearMotionZ","_linearMotionZ","linearLimitsX","_linearLimitsX","linearLimitsY","_linearLimitsY","linearLimitsZ","_linearLimitsZ","linearStiffness","_linearStiffness","_updateSpring","linearDamping","_linearDamping","linearEquilibrium","_linearEquilibrium","angularMotionX","_angularMotionX","angularMotionY","_angularMotionY","angularMotionZ","_angularMotionZ","angularLimitsX","_angularLimitsX","angularLimitsY","_angularLimitsY","angularLimitsZ","_angularLimitsZ","angularStiffness","_angularStiffness","angularDamping","_angularDamping","angularEquilibrium","_angularEquilibrium","refreshFrames","evtProp","_isBodyReady","_simulationEnabled","_subscribeBodyAvailable","_evtSimEnabledA","_onBodyAvailable","_evtSimEnabledB","_clearBodyAvailableSubscriptions","_onBodyLost","_pending","_createConstraint","_createFrame","bodyEntity","rigidbodyA","rigidbodyB","_anchorA","_axisA","_anchorB","createJoint","bodyA","bodyB","frameA","frameB","_evtBodyTeardown","_activateBodies","destroyJoint","_isAnchorSeparated","slide","_checkBroken","broken","updateLimits","updateMotor","updateSpring","_evtEntityADestroy","_evtEntityBDestroy","oldJoint","newEntityA","newEntityB","EVENT_BREAK","_properties4","JointComponentSystem","onPostUpdate","LayoutChildComponent","minWidth","_minWidth","minHeight","_minHeight","maxWidth","_maxWidth","maxHeight","_maxHeight","fitWidthProportion","_fitWidthProportion","fitHeightProportion","_fitHeightProportion","excludeFromLayout","_excludeFromLayout","LayoutChildComponentSystem","layoutChild","FITTING_NONE","FITTING_STRETCH","FITTING_SHRINK","FITTING_BOTH","AXIS_MAPPINGS","calculatedSize","minSize","maxSize","fitting","fittingProportion","OPPOSITE_ORIENTATION","PROPERTY_DEFAULTS","FITTING_ACTION","APPLY_STRETCHING","APPLY_SHRINKING","availableSpace","createCalculator","minExtentA","minExtentB","maxExtentA","calculateAll","allElements","layoutOptions","shouldIncludeInLayout","containerSize","padding","resetAnchors","reverseLinesIfRequired","splitLines","calculateSizesOnAxisB","calculateSizesOnAxisA","calculateBasePositions","applyAlignmentAndPadding","applySizesAndPositions","createLayoutInfo","layoutChildComponent","getElementSizeProperties","runningSize","allowOverrun","idealElementSize","reverseAxisA","reverseX","reverseY","reverseAxisB","reverse","sizesAllLines","sizesThisLine","idealRequiredSpace","calculateTotalSpace","fittingAction","determineFittingAction","stretchSizesToFitContainer","shrinkSizesToFitContainer","largestElementsForEachLine","largestSizesForEachLine","largestElement","largestSize","NEGATIVE_INFINITY","elementIndex","sizesThisElement","sizesForThisElement","currentSize","availableSize","elementFittingAction","fittingMode","totalSizes","sumValues","totalSpacing","ascendingMaxSizeOrder","getTraversalOrder","fittingProportions","getNormalizedValues","fittingProportionSums","createSumArray","remainingUndershoot","targetIncrease","calculateAdjustment","targetSize","actualSize","actualIncrease","appliedIncrease","descendingMinSizeOrder","inverseFittingProportions","invertNormalizedValues","inverseFittingProportionSums","remainingOvershoot","targetReduction","actualReduction","appliedReduction","remainingAdjustment","proportion","sumOfRemainingProportions","positionsAllLines","positionsThisLine","alignmentA","alignmentB","paddingA","paddingB","axisAOffset","axisBOffset","withinLineAxisBOffset","layoutWidth","layoutHeight","xOffset","sizeProperties","getProperty","accumulator","normalizedValues","numItems","invertedValues","orderBy","descending","assignIndex","itemA","itemB","getIndex","sumArray","CALCULATE_FNS","LayoutCalculator","calculateLayout","calculateFn","isEnabledAndHasEnabledElement","LayoutGroupComponent","_orientation","_scheduleReflow","_reverseX","_reverseY","_padding","widthFitting","_widthFitting","heightFitting","_heightFitting","_wrap","_isSelfOrChild","_listenForReflowEvents","onOff","_onElementOrLayoutComponentAdd","_onElementOrLayoutComponentRemove","_onChildInsert","_onChildRemove","_isPerformingReflow","scheduleReflow","reflow","containerWidth","containerHeight","layoutInfo","_layoutCalculator","MAX_ITERATIONS","LayoutGroupComponentSystem","layoutGroup","_reflowQueue","_onPostUpdate","_processReflowQueue","iterationCount","queue2","componentA","componentB","PrimitivesCache","primData","_primitivesCache","getShapePrimitive","ModelComponent","customAabb","_bindModelAsset","_onModelAssetAdded","_unbindModelAsset","_clonedModel","_receiveShadows","_lightmapped","_mapping","_unsetMaterialEvents","receiveShadows","_castShadowsLightmap","_lightmapSizeMultiplier","_onMaterialAssetAdd","assetMapping","_loadAndSetMeshInstanceMaterial","_getMaterialAssetUrl","onRemoveChild","onInsertChild","_setMaterialEvent","_materialEvents","_getAssetByIdOrPath","idOrPath","isPath","isAsset","hide","show","_onMaterialAssetLoad","_onMaterialAssetUnload","_onMaterialAssetRemove","_onMaterialAssetChange","_onModelAssetLoad","_onModelAssetUnload","_onModelAssetChange","_onModelAssetRemove","setVisible","_properties5","ModelComponentSystem","aabbCenter","aabbHalfExtents","meshInstancesClone","ASSET_PROPERTIES","_properties6","depthLayer","ParticleSystemComponent","autoPlay","_autoPlay","_setComplexProperty","_numParticles","_lifetime","_rate","_rate2","_startAngle","_startAngle2","_preWarm","_lighting","_halfLambert","_noFog","_depthSoftening","_requestDepth","_releaseDepth","_sort","_stretch","_alignToMotion","_emitterShape","_setSimpleProperty","_emitterExtents","_emitterExtentsInner","_emitterRadius","_emitterRadiusInner","_initialVelocity","_wrapBounds","_localSpace","colorMapAsset","_colorMapAsset","_unbindColorMapAsset","_bindColorMapAsset","normalMapAsset","_normalMapAsset","_unbindNormalMapAsset","_bindNormalMapAsset","meshAsset","_onMeshChanged","_meshAsset","_unbindMeshAsset","_bindMeshAsset","_unbindRenderAsset","_bindRenderAsset","_onRenderChanged","_particleNormal","_setGraphProperty","_localVelocityGraph","_localVelocityGraph2","_velocityGraph","_velocityGraph2","_rotationSpeedGraph","_rotationSpeedGraph2","_radialSpeedGraph","_radialSpeedGraph2","_scaleGraph","_scaleGraph2","_colorGraph","_colorGraph2","_alphaGraph","_alphaGraph2","_colorMap","_normalMap","_animTilesX","_animTilesY","_animStartFrame","_animNumFrames","_animNumAnimations","_animIndex","_randomizeAnimIndex","_animSpeed","_animLoop","oldLayers","addMeshInstanceToLayers","removeMeshInstanceFromLayers","_onColorMapAssetLoad","_onColorMapAssetUnload","_onColorMapAssetRemove","_onColorMapAssetChange","_onNormalMapAssetLoad","_onNormalMapAssetUnload","_onNormalMapAssetRemove","_onNormalMapAssetChange","_onMeshAssetLoad","_onMeshAssetUnload","_onMeshAssetRemove","_onMeshAssetChange","_onRenderAssetLoad","_onRenderAssetUnload","_onRenderAssetRemove","_onRenderSetMeshes","_requestedDepth","_paused","unpause","setInTools","particle_default","particle_default2","particleAnimFrameClamp_default","particleAnimFrameLoop_default","particleAnimTex_default","particleInput_default","particleOutput_default","particleUpdaterAABB_default","particleUpdaterEnd_default","particleUpdaterInit_default","particleUpdaterNoRespawn_default","particleUpdaterOnStop_default","particleUpdaterRespawn_default","particleUpdaterSphere_default","particleUpdaterStart_default","particle_billboard_default","particle_blendAdd_default","particle_blendMultiply_default","particle_blendNormal_default","particle_cpu_default","particle_cpu_end_default","particle_customFace_default","particle_end_default","particle_end_default2","particle_halflambert_default","particle_init_default","particle_lambert_default","particle_lighting_default","particle_localShift_default","particle_mesh_default","particle_normal_default","particle_normalMap_default","particle_pointAlong_default","particle_simulation_default","particle_shader_default","particle_shader_default2","particle_soft_default","particle_soft_default2","particle_stretch_default","particle_TBN_default","particle_wrap_default","particleChunksGLSL","particlePS","particleVS","particleAnimFrameClampVS","particleAnimFrameLoopVS","particleAnimTexVS","particleInputPS","particleOutputPS","particleUpdaterAABBPS","particleUpdaterEndPS","particleUpdaterInitPS","particleUpdaterNoRespawnPS","particleUpdaterOnStopPS","particleUpdaterRespawnPS","particleUpdaterSpherePS","particleUpdaterStartPS","particle_billboardVS","particle_blendAddPS","particle_blendMultiplyPS","particle_blendNormalPS","particle_cpuVS","particle_cpu_endVS","particle_customFaceVS","particle_endPS","particle_endVS","particle_halflambertPS","particle_initVS","particle_lambertPS","particle_lightingPS","particle_localShiftVS","particle_meshVS","particle_normalVS","particle_normalMapPS","particle_pointAlongVS","particle_simulationPS","particle_shaderPS","particle_shaderVS","particle_softPS","particle_softVS","particle_stretchVS","particle_TBNVS","particle_wrapVS","particle_default3","particle_default4","particleAnimFrameClamp_default2","particleAnimFrameLoop_default2","particleAnimTex_default2","particleInput_default2","particleOutput_default2","particleUpdaterAABB_default2","particleUpdaterEnd_default2","particleUpdaterInit_default2","particleUpdaterNoRespawn_default2","particleUpdaterOnStop_default2","particleUpdaterRespawn_default2","particleUpdaterSphere_default2","particleUpdaterStart_default2","particle_billboard_default2","particle_blendAdd_default2","particle_blendMultiply_default2","particle_blendNormal_default2","particle_cpu_default2","particle_cpu_end_default2","particle_customFace_default2","particle_end_default3","particle_end_default4","particle_halflambert_default2","particle_init_default2","particle_lambert_default2","particle_lighting_default2","particle_localShift_default2","particle_mesh_default2","particle_normal_default2","particle_normalMap_default2","particle_pointAlong_default2","particle_simulation_default2","particle_shader_default3","particle_shader_default4","particle_soft_default3","particle_soft_default4","particle_stretch_default2","particle_TBN_default2","particle_wrap_default2","particleChunksWGSL","_propertyTypes","ParticleSystemComponentSystem","numSteps","SkinInstanceCachedObject","SkinInstanceCache","_SkinInstanceCache","createCachedSkinInstance","skinInst","getCachedSkinInstance","addCachedSkinInstance","cachedObjArray","_skinInstanceCache","cachedObj","removeCachedSkinInstance","cachedObjIndex","AssetReference","_registry","_bind","_url","_evtLoadById","_onLoad","_evtAddById","_onAdd","_evtRemoveById","_onRemove","_evtUnloadById","_onUnload","_evtLoadByUrl","_evtAddByUrl","_evtRemoveByUrl","_scope","RenderComponent","_meshInstances","destroyMeshInstances","_materialReferences","_destroyMeshInstances","_shadowCascadeMask","_onMeshInstancesChanged","materialAssets","_onMaterialUnload","_assetReference","_onRenderAssetAdded","assignAsset","isString","_clearSkinInstances","_cloneSkinInstances","_onSetMeshes","_cloneMeshes","_updateMainMaterial","oldRender","_properties7","RenderComponentSystem","srcMeshInstances","ObjectPool","_resize","_pool","_constructor","freeAll","RaycastResult","hitFraction","PhysicsBody","friction","setRollingFriction","restitution","angular","setLinearVelocity","getLinearVelocity","setAngularVelocity","getAngularVelocity","setMass","isActive","getTransform","setKinematicTarget","applyForce","relativePoint","applyTorque","torque","applyImpulse","applyTorqueImpulse","nativeBody","PhysicsJoint","PhysicsWorld","setGravity","flushContacts","addBody","removeBody","addCompoundChild","raycastFirst","raycastAll","contactListener","nativeWorld","AmmoPhysicsBody","_world","_btVec1","getCollisionShape","calculateLocalInertia","setMassProps","updateInertiaTensor","_btTransform","quat4","_btQuat","setOrigin","setWorldTransform","motionState","getMotionState","_noContactResponse","setInterpolationWorldTransform","setInterpolationLinearVelocity","setInterpolationAngularVelocity","getOrigin","vec1","_btVec2","_frameMat","_vec33","_quat2","_dof","lower","upper","dofLimits","motion","fixedJoint","Ammo","btFixedConstraint","ballJoint","btConeTwistConstraint","setLimit","hingeJoint","axisCorrection","btHingeConstraint","maxImpulse","_fixedTimeStep","enableAngularMotor","sliderJoint","btSliderConstraint","setLowerLinLimit","setUpperLinLimit","setLowerAngLimit","setUpperAngLimit","setPoweredLinMotor","setTargetLinMotorVelocity","setMaxLinMotorForce","sixDofJoint","btGeneric6DofSpringConstraint","dof","setLinearLowerLimit","setLinearUpperLimit","alx","aux","aly","auy","alz","auz","setAngularLowerLimit","setAngularUpperLimit","linStiffness","linDamping","linEquilibrium","angStiffness","angDamping","angEquilibrium","enableSpring","setStiffness","setEquilibriumPoint","jointImpls","AmmoPhysicsJoint","breakable","setBreakingImpulseThreshold","enableFeedback","getAppliedImpulse","createBtFrame","frameMat","btTransform","btVector3","btQuaternion","getFixedBody","_fixedBody","btDefaultMotionState","btSphereShape","inertia","btRigidBodyConstructionInfo","btRigidBody","addConstraint","removeConstraint","destroyFixedBody","getTriMesh","triMesh","_triMeshCache","numTriangles","checkDupes","btTriangleMesh","vertexCache","indexedArray","getIndexedMeshArray","at","m_numTriangles","addVertex","findOrAddVertex","i4","addIndex","createHullChild","hull","btConvexHullShape","addPoint","recalcLocalAabb","setMargin","addChildShape","createTriMeshChild","triMeshShape","btBvhTriangleMeshShape","setLocalScaling","shapeFactories","ammoHe","btBoxShape","btCapsuleShapeX","btCapsuleShapeZ","btCapsuleShape","btCylinderShapeX","btCylinderShapeZ","btCylinderShape","btConeShapeX","btConeShapeZ","btConeShape","btCompoundShape","factory","_shapeType","destroyShape2","numShapes","getNumChildShapes","getChildShape","indexOfCompoundChild","childPointer","getPointer","updateChildTransform","removeChildShape","removeChildShapeByIndex","AmmoContactPair","readContact","contactPoint","_manifold","getContactPoint","localPointA","get_m_localPointA","localPointB","get_m_localPointB","positionWorldOnA","getPositionWorldOnA","positionWorldOnB","getPositionWorldOnB","normalWorldOnB","get_m_normalWorldOnB","localPoint","localPointOther","pointOther","triggerA","triggerB","contactCount","AmmoPhysicsWorld","_btRayStart","_btRayEnd","solver","overlappingPairCache","dispatcher","collisionConfiguration","localInertia","bodyInfo","setCollisionFlags","getCollisionFlags","setActivationState","addRigidBody","forceActivationState","removeRigidBody","_gravityFloat32","getGravity","stepSimulation","_useTickCallback","_walkContacts","onContactsBegin","numManifolds","getNumManifolds","_contactPair","manifold","getManifoldByIndexInternal","wb0","castObject","getBody0","wb1","getBody1","e0","e12","numContacts","getNumContacts","onContactPair","onContactsEnd","rayCallback","ClosestRayResultCallback","filterCollisionGroup","set_m_collisionFilterGroup","filterCollisionMask","set_m_collisionFilterMask","rayTest","hasHit","collisionObj","get_m_collisionObject","get_m_hitPointWorld","get_m_hitNormalWorld","get_m_closestHitFraction","AllHitsRayResultCallback","collisionObjs","get_m_collisionObjects","hitFractions","get_m_hitFractions","numHits","filterTags","filterCallback","btDefaultCollisionConfiguration","btCollisionDispatcher","btDbvtBroadphase","btSequentialImpulseConstraintSolver","btDiscreteDynamicsWorld","setInternalTickCallback","checkForCollisionsPointer","addFunction","_quat1","_quat22","_vec34","_position2","_rotation2","_vecA","_vecB","RigidBodyComponent","damping","angularFactor","_angularFactor","angularVelocity","_angularVelocity","_friction","linearFactor","_linearFactor","linearVelocity","_linearVelocity","_mass","_restitution","rollingFriction","_rollingFriction","isStaticOrKinematic","isKinematic","syncEntityToBody","_updateDynamic","invertedAo","entityRot","_updateKinematic","teleport","bodyType","syncBodyToEntity","ContactPoint","ContactResult","contacts","SingleContactResult","pointA","pointB","_properties8","RigidBodyComponentSystem","contactPointPool","contactResultPool","singleContactResultPool","dynamicsWorld","_dynamic","_kinematic","_compounds","_triggers","_storeCollision","isNewCollision","collisions","others","frameCollisions","_createReverseContactPoint","forward2","contact","_createSingleContactResult","_createContactResult","_cleanOldCollisions","frameCollision","entityCollision","entityRigidbody","_hasContactEvent","forwardContacts","reverseContacts","newCollision","e0Events","e1Events","e0BodyEvents","e1BodyEvents","globalEvents","forwardResult","reverseResult","triggers","compounds","kinematic","SCALEMODE_NONE","SCALEMODE_BLEND","_transform","ScreenComponent","queueDrawOrderSync","_processDrawOrderSync","_recurseDrawOrderSync","prevDrawOrder","_calcProjectionMatrix","_resolution","_updateScale","_calcScale","referenceResolution","_scaleBlend","_onResize","_referenceResolution","_scaleMode","scaleMode","scaleBlend","ScreenComponentSystem","_updateDescendantElements","screenEntity","_onUpdate","windowResolution","processDrawOrderSyncQueue","_drawOrderSyncQueue","_inputScreenPosition","_inputWorldPosition","_ray","_plane","_normal","_point2","_entityRotation","OPPOSITE_AXIS","ElementDragHelper","_toggleLifecycleListeners","_onMouseDownOrTouchStart","_toggleDragListeners","isOn","_hasDragListeners","_onMove","_onMouseUpOrTouchEnd","_isDragging","_dragCamera","_calculateDragScale","currentMousePosition","_screenToLocal","_dragStartMousePosition","_dragStartHandlePosition","inputSource","getDirection","_determineInputPosition","_chooseRayOriginAndDirection","_dragScale","isWithin2DScreen","screenScale","dragScale","_deltaMousePosition","deltaMousePosition","_deltaHandlePosition","deltaHandlePosition","currentPosition","constrainedAxis","isDragging","EVENT_DRAGSTART","EVENT_DRAGEND","EVENT_DRAGMOVE","SCROLL_MODE_CLAMP","SCROLL_MODE_BOUNCE","SCROLL_MODE_INFINITE","SCROLLBAR_VISIBILITY_SHOW_ALWAYS","SCROLLBAR_VISIBILITY_SHOW_WHEN_REQUIRED","_tempScrollValue","ScrollViewComponent","horizontal","_horizontal","_syncScrollbarEnabledState","vertical","_vertical","scrollMode","_scrollMode","bounceAmount","_bounceAmount","dragThreshold","_dragThreshold","useMouseWheel","_useMouseWheel","mouseWheelSensitivity","_mouseWheelSensitivity","horizontalScrollbarVisibility","_horizontalScrollbarVisibility","verticalScrollbarVisibility","_verticalScrollbarVisibility","viewportEntity","_viewportEntity","_viewportEntityUnsubscribe","_viewportEntitySubscribe","contentEntity","_contentEntity","_contentEntityUnsubscribe","_contentEntitySubscribe","horizontalScrollbarEntity","_horizontalScrollbarEntity","_horizontalScrollbarEntityUnsubscribe","_scrollbarEntities","_horizontalScrollbarEntitySubscribe","verticalScrollbarEntity","_verticalScrollbarEntity","_verticalScrollbarEntityUnsubscribe","_verticalScrollbarEntitySubscribe","scroll","_onSetScroll","_scroll","_toggleElementListeners","_hasElementListeners","_syncAll","_onMouseWheel","_evtElementRemove","_evtViewportEntityElementAdd","_onViewportElementGain","_onViewportElementLose","_viewportEntityElementSubscribe","_evtViewportElementRemove","_evtViewportResize","_viewportEntityElementUnsubscribe","_evtContentEntityElementAdd","_onContentElementGain","_onContentElementLose","_contentEntityElementSubscribe","_evtContentElementRemove","_evtContentResize","_contentEntityElementUnsubscribe","_destroyDragHelper","_contentDragHelper","_onContentDragStart","_onContentDragEnd","_onContentDragMove","_prevContentSizes","_dragStartPosition","_prevContentDragPosition","_enableContentInput","_wasDragged","_setScrollFromContentPosition","_setVelocityFromContentPositionDelta","_disabledContentInput","_disableContentInput","_evtHorizontalScrollbarAdd","_onHorizontalScrollbarGain","_evtVerticalScrollbarAdd","_onVerticalScrollbarGain","_onHorizontalScrollbarLose","_onVerticalScrollbarLose","_onSetHorizontalScrollbarValue","scrollValueX","_scrollbarUpdateFlags","_onSetVerticalScrollbarValue","scrollValueY","_evtHorizontalScrollbarRemove","_evtHorizontalScrollbarValue","_syncScrollbarPosition","_evtVerticalScrollbarRemove","_evtVerticalScrollbarValue","resetVelocity","xChanged","_updateAxis","yChanged","scrollValue","hasChanged","_determineNewScrollValue","_syncContentPosition","_getScrollingEnabled","_getMaxScrollValue","_setVelocityFromOvershoot","_getAxis","_getSign","prevContentSize","currContentSize","_getContentSize","prevMaxOffset","_getMaxOffset","currMaxOffset","contentPosition","scrollbarEntity","handleSize","_getScrollbarHandleSize","isScrollingEnabled","requestedVisibility","_getScrollbarVisibility","_contentIsLargerThanViewport","_getViewportSize","_contentPositionToScrollValue","maxOffsetH","maxOffsetV","contentSize","overshoot","_toOvershoot","_getSize","_getCalculatedDimension","_updateVelocity","_hasOvershoot","maxScrollValue","overshootValue","overshootPixels","_applyScrollValueTension","log10","_setScrollbarComponentsEnabled","_setContentDraggingEnabled","wheelEvent","normalizedDeltaX","deltaX","normalizedDeltaY","scrollX","scrollY","_disabledContentInputEntities","_disableInput","oldScrollView","EVENT_SETSCROLL","_properties9","ScrollViewComponentSystem","ScrollbarComponent","_handleEntity","_getOppositeDimension","_rebuildDragHelper","_updateHandlePositionAndSize","_value","_handleSize","handleEntity","_handleEntityUnsubscribe","_handleEntitySubscribe","_evtHandleEntityElementAdd","_onHandleElementGain","_onHandleElementLose","_handleEntityElementSubscribe","handles","_evtHandleEntityChanges","_handleEntityElementUnsubscribe","_handleDragHelper","_onHandleDrag","_handlePositionToScrollValue","_getHandlePosition","_getDimension","_getHandleLength","handlePosition","_getUsableTrackLength","_scrollValueToHandlePosition","_getTrackLength","oldScrollbar","EVENT_SETVALUE","_properties10","ScrollbarComponentSystem","_onAddComponent","instanceOptions","SoundSlot","overlap","isLoaded","_hasAsset","_createInstance","playWhenLoaded","paused","resumed","stopped","_onAssetRemoved","_overlap","_onInstancePlayHandler","_onInstancePauseHandler","_onInstanceResumeHandler","_onInstanceStopHandler","_onInstanceEndHandler","positional","_onInstancePlay","_onInstancePause","_onInstanceResume","_onInstanceStop","_onInstanceEnd","updatePosition","oldAsset","assetDuration","SoundComponent","_updateSoundInstances","isFactor","_slots","_distanceModel","_maxDistance","_refDistance","_rollOffFactor","_positional","oldLength","playingBeforeDisable","_playingBeforeDisable","addSlot","removeSlot","_getSlotProperty","_properties11","SoundComponentSystem","srcSlot","SPRITETYPE_SIMPLE","SPRITETYPE_ANIMATED","SpriteAnimationClip","MIN_VALUE","_setFrame","_setTime","_onSpritePpuChanged","currentClip","_showFrame","_destroy","EVENT_LOOP","PARAM_EMISSIVE_MAP","PARAM_OPACITY_MAP","PARAM_EMISSIVE","PARAM_OPACITY","PARAM_INNER_OFFSET","PARAM_OUTER_SCALE","PARAM_ATLAS_RECT","SpriteComponent","_currentClip","_defaultClip","_autoPlayClip","_tryAutoPlay","flipX","_flipX","_updateTransform","autoPlayClip","_inLayers","_onLayersChanged","_onLayerAdded","_onLayerRemoved","default9SlicedMaterialSlicedMode","default9SlicedMaterialTiledMode","posX","posY","SpriteComponentSystem","_defaultMaterial","_default9SlicedMaterialSlicedMode","_default9SlicedMaterialTiledMode","ZoneComponent","_size","_checkState","_onSetEnabled","_oldState","ZoneComponentSystem","PostEffectEntry","effect","PostEffectQueue","_allocateColorBuffer","destinationRenderTarget","_createOffscreenTarget","useDepth","hdr","outputRt","effects","_resizeOffscreenTarget","_destroyOffscreenTarget","addEffect","isFirstEffect","newEntry","_sourceTarget","_newPostEffect","_requestDepthMap","removeEffect","_releaseDepthMap","_requestDepthMaps","_releaseDepthMaps","depthLayer2","requestSceneDepthMap","_onCanvasResized","resizeRenderTargets","desiredWidth","desiredHeight","onCameraRectChanged","depthTarget","CameraComponent","setShaderPass","_camera","getShaderPass","dirtyLayerCompositionCameras","_disablePostEffectsLayer","postEffects","_postEffects","_sceneColorMapRequested","requestSceneColorMap","_renderSceneColorMap","_sceneDepthMapRequested","_renderSceneDepthMap","_enableDepthLayer","hasDepthLayer","layerComp","screenx","screeny","cameraz","onAppPrerender","addCameraToLayers","removeCameraFromLayers","startXr","spaceType","endXr","_properties12","CameraComponentSystem","_properties13","LightComponent","_light","removeLightFromLayers","refreshProperties","cookieAsset","_cookieAssetId","onCookieAssetRemove","onCookieAssetAdd","_cookieAssetAdd","cookieAngle","_cookieAngle","_cookieScale","scx","scy","cookieScale","_affectDynamic","_affectLightmapped","_bake","addLightToLayers","onCookieAssetSet","forceLoad","_cookieAsset","onCookieAssetLoad","LightComponentSystem","vecLookup","rawToValue","field","vecType","CurveType","attributeToValue","assignAttributesToScript","attributeSchemaMap","attributeName","attributeSchema","dataToAssign","ScriptAttributes","_ScriptAttributes","reservedNames","__attributes","oldCopy","ScriptType","__attributesRaw","initScriptType","__initializeAttributes","methods","ScriptComponent","_scriptsData","_beginLooping","_endLooping","_isLoopingThroughScripts","wasLoopingBefore","_removeDestroyedScripts","_addComponentToEnabled","_removeComponentFromEnabled","_destroyedScripts","_removeScriptInstance","_resetExecutionOrder","_onInitializeAttributes","_attributeDataMap","_onInitialize","_onPostInitialize","_updateList","_postUpdateList","_declarationOrder","_insertScriptInstance","scriptsLength","postUpdate","_resolveEntityScriptAttribute","useGuid","newAttributes","newGuidArray","scriptData","ownScriptName","onSwap","declarationIndex","scriptInstanceOld","oldScriptComponent","newScriptComponent","newAttributesRaw","oldAttributes","newJsonValue","move","indOld","_executionOrder","EVENT_CREATE","EVENT_MOVE","METHOD_INITIALIZE_ATTRIBUTES","METHOD_INITIALIZE","METHOD_POST_INITIALIZE","METHOD_UPDATE","METHOD_POST_UPDATE","executionOrderCounter","ScriptComponentSystem","MAX_SAFE_INTEGER","_enabledComponents","previousName","_callComponentMethod","UnifiedSortWorker","centersMap","centersData","indexMap","_radialSort","_warnedSortKeyOverflow","binWeightsUtil","GSplatSortBinWeights","unpackBinWeights","binWeights","evaluateSortKeysCommon","sortParams","distances2","countBuffer2","centersData2","processSplatFn","ids","invBinRange","compactIdx","paramIdx","intervalsArray","intervalStart","intervalEnd","evaluateSortKeysLinear","minDist2","range2","distances3","countBuffer3","transformedDirection","sdx","sdy","sdz","srcIndex","evaluateSortKeysRadial","transformedPosition","distSq","invertedDist","countingSort","validCount","computeEffectiveDistanceRangeLinear","pxMin","pyMin","pzMin","pxMax","pyMax","pzMax","dMin","dMax","eMin","eMax","localMin","localMax","computeEffectiveDistanceRangeRadial","totalActiveSplats","cameraBin","computeCameraBin","transferList","buildIndexMap","pixelOffsets","workBufferIndex","command","GSplatSortBinWeights2","_GSplatSortBinWeights","NUM_BINS","WEIGHT_TIERS","radialSort","cameraOffsetFromRangeStart","cameraBinFloat","lastCameraBin","lastBucketCount","bitsPerBin","distFromCamera","weightByDistance","accumulated","divider","excess","lastDividerIdx","weightTiers","_neededIds","GSplatUnifiedSorter","onSorted","jobsInFlight","releaseOrderData","bufferLength","availableOrderData","setCenters","centersSet","centersBuffer","updateCentersForSplats","setSortParameters","payload","hasNewVersion","newLength","setSortParams","MemBlock","_offset","_free","_prevFree","_nextFree","_bucket","BlockAllocator","usedSize","_usedSize","freeSize","_freeSize","fragmentation","_freeRegionCount","_bucketFor","clz32","_addToBucket","_freeBucketHeads","_removeFromBucket","_rebucket","newBucket","_obtain","_release","_insertAfterInMainList","_headAll","_tailAll","_removeFromMainList","_findFreeBlock","startBucket","best","gap","prevFree","nextFree","grow","newCapacity","defrag","maxMoves","_defragFull","_defragIncremental","remaining","freeBlock","phase1Moves","phase2Moves","lastAlloc","_moveBlock","allocBlock","newOffset","freed","gapPrev","updateAllocation","toFree","toAllocate","totalRemaining","neededCapacity","headroomCapacity","_growMultiplier","growMultiplier","tmpSize2","subDrawDataArray","_fullRangeInterval","GSplatInfo","intervalNodeIndices","setLayout","updateSubDraws","updateIntervals","totalCount","interval","nodeInfos","octreeNodes","totalCapacity","subDrawData","sourceBase","targetOffset","row","fullRows","maxSubDraws","requiredSize","worldMatrix","worldMatrixChanged","previousWorldTransform","_getDirtySource","_lastDirtyVersion","dirtyVersion","workBufferUpdate","_lastFormatVersion","boundingSphere","hasSphericalHarmonics","parentPlacementId","colorAccumulatedTranslation","parentPlacement","GsplatAllocId","GSplatPlacement","lodFalloff","_lodFalloff","lodDirty","_lodRangeMin","_lodRangeMax","_workBufferModifier","_workBufferUpdate","ensureInstanceStreams","_invWorldMat","_localCameraPos","_localCameraFwd","_tempCompletedUrls","REF_TAN_HALF_FOV","NodeInfo","resetLod","currentLod","optimalLod","worldDistance","lodCoverage","inst","GSplatOctreeInstance","pendingLoadCount","prefetchPending","octree","environmentUrl","environmentPlacement","skipRefCounting","releaseLodTable","lodTable","filesToDecRef","getFileDecrements","fileIndex","filePlacements","unloadResource","decEnvironmentRefCount","pendingDecrements","activePlacements","removedCandidates","pendingVisibleAdds","nodeInfo","unloadEnvironmentResource","dirtyModifiedPlacements","dirtyPlacementSetChanged","needsLodUpdate","toRelease","selectDesiredLodIndex","optimalLodIndex","findCoarserAccepted","lod2","fi","lods","getFileResource","coarsest","lod","coarserOnChain","prefetchNextLod","desiredLodIndex","fi2","ensureFileResource","targetLod","finerOnChain","resolveLodRange","maxLod","lodLevels","rangeMin","rangeMax","acquireLodTable","evaluateNodeCoverage","distanceMode","uniformScale2","ortho","fovScale","tanHalfVFov","tanHalfHFov","invOrthoHeight","worldCameraPosition","octreeWorldTransform","localCameraPosition","worldCameraForward","localCameraForward","boundsFlat","nodeBoundsMinMax","fwx","fwy","fwz","actualDistance","penaltyFactor","dotOverDistance","fovAdjustedDistance","coverage","worldDist","projectedRadius","applyLodChanges","currentLodIndex","currentFileIndex","desiredFileIndex","willBeVisible","pendingEntry","newFileIndex","prevPendingPlacement","decrementFileRef","oldFileIndex","prevPendingFi","incrementFileRef","newPlacement","pendingEntry2","removeScheduled","addFilePlacement","testMoved","threshold","previousPosition","updateMoved","newLodIndex","nodeLods","li","pollPrefetchCompletions","ensureEnvironmentResource","envResource","environmentResource","consumePlacementSetChanged","debugRender","consumeNeedsLodUpdate","files","incEnvironmentRefCount","tmpMin","tmpMax","GSplatOctreeNode","boundData","DISTANCE_BAND_MULTIPLIER","GSplatLodTable","accept","firstUpgrade","upgradeToLod","startLod","lowest","startCount","upgradeCost","upgradeRatio","totalStartCount","totalFinestCount","spanLength","maxUpgrades","bandWeight","upgradeCount","coarsestData","emptyLod","finerCount","ec2","LN2","candidateCount","frontierCount","bestError","coarseLod","fineLod","reach","_toDelete","GSplatOctree","_lodTables","fileResources","cooldowns","assetLoader","_traceLodCounts","_deriveLodErrors","_extractLeafNodes","leafNodes","bound","errors","fileRefCounts","fullUrl","updateCooldownTick","getResource","environmentRefCount","assetFileUrl","lodErrorSource","baseDir","filenames","lodLevel","tree","fileErrors","lodErrors","nodeData","lodData","mn","GSplatOctreeResource","_newAllocIds","_toAllocateIds","_toAllocate","_toFree","GSplatWorldState","needsUpload","needsUploadIds","allocIdToSplat","computeAllocationDiff","allocationMap","_diffAlloc","applyAllocations","allocator","fullRebuild","churn","incrementalDefragMoves","moved","cap","assignSplatOffsets","totalIntervals","splatChanged","buildBoundsGroups","groupMap","boundsIndex","sortParametersSet","sortedBefore","pendingReleases","GSplatPlacementStateTracker","hasChanges","placements","formatVersion","modifierHash","_f32","_u32","keyOf","KEY_LO","KEY_HI","KEY_SCALE","KEY_ONE","KEY_PIVOT","GSplatBudgetBalancer","_ensureCapacity","_coverage","_coverageKey","_instanceOf","_bucketOf","_bucketOfKey","_push","_bucketHead","_bucketTail","balance","octreeInstances","budget","_instances","tables","_tables","bases","_instanceBase","nodeTotal","useKeys","_assignChainEnd","coverageKey","instanceOf","falloff","cov","spent","cost","finest","invModelMat","_localCamPos","_closestPt","_meshInstanceAabb","_tempPlacementAabb","_cameraDeltas","translationDelta","tempOctreesTicked","_queuedSplats","_updatedSplats","_splatsWithSH","_changedColorAllocIds","tempNonOctreePlacements","tempOctreePlacements","_lodColorsRaw","_randomColorRaw","ALLOCATOR_GROW_MULTIPLIER","GSplatWorld","worldState","_worldStates","_octreeInstances","_octreeInstancesToDestroy","_workBuffer","currentVersion","_currentVersion","lastWorldStateVersion","_lastWorldStateVersion","bufferCopyUploaded","_bufferCopyUploaded","bufferCopyTotal","_bufferCopyTotal","awaitingLodUpdate","_awaitingLodUpdate","hasOctreeInstances","loadingCount","currentState","getState","hasBounds","resetFrameStats","invalidate","_worldStateDirty","_workBufferRebuildRequired","invalidateSortState","syncFormat","bufferRecreated","sortNeeded","currentFormat","_workBufferFormatVersion","wbFormatVersion","reconcile","_hasNewOctreeInstances","_layerPlacementsDirty","_placementSetChanged","_layerPlacements","allowLodUpdate","requireCenters","newVersion","overdrawDirty","_framesTillFullUpdate","_lodUpdateRequested","fullUpdate","hasNewInstances","anyInstanceNeedsLodUpdate","anyOctreeMoved","cameraMovedOrRotatedForLod","instNeeds","testCameraMovedForLod","_lastLodCameraPos","_lastLodCameraFwd","_lastLodCameraFov","_enforceBudget","_updateWorldState","stateChanged","_stateTracker","placementsChanged","worldChanged","leafResource","newState","_allocator","_allocationMap","markSorted","updateBounds","rebuilt","cleanupOldWorldStates","rebuildWorkBuffer","sortedState","applyWorkBufferUpdates","updateColorCameraTracking","forceFullRebuild","renderAll","splatsToRender","totalBlocks","uploadBlocks","getDebugColors","activeIds","lookup","oldState","calculateColorCameraDeltas","hasCameraMovement","movedAny","uploadedBlocks","ni","nodeIndices","distanceThreshold","currentCameraPos","cameraMoved","cameraRotated","lodUpdateAngleDeg","currentCameraFwd","rotThreshold","currentFov","fovChanged","_lastColorUpdateCameraPos","fixedSplats","paddingEstimate","octreeBudget","adjustedBudget","_budgetBalancer","computeAggregateAabb","layerPlacements","_accumulatePlacementAabb","tickCooldowns","markInstancesNeedLodUpdate","prepareSortParameters","GSplatRenderer","resolveFisheye","setRenderMode","usesGpuSort","requiresBounds","requiresCpuSort","setDataSource","onWorkBufferFormatChanged","setGpuSortedRendering","drawSlot","sortedIds","numSplatsBuffer","setCpuSortedRendering","updateOverdrawMode","invalidateCullUpload","prepareRenderView","preparePickingView","pickParams","fisheyeProj","GSplatQuadRenderer","oldRenderMode","wasForward","wasShadow","_injectFormatChunks","_updateIdDefines","_bindWorkBufferTextures","wbFormat","cam","fisheyeEnabled","_lastFisheyeEnabled","fp","noTonemap","_lastNoFog","_lastNoTonemap","_syncWithWorkBufferFormat","sourceMaterialVersion","_sourceMaterialVersion","copyMaterialSettings","hasPcId","sourceMaterial","keysToDelete","_internalDefines","sourceChunksKey","_lastSourceChunksKey","overdrawEnabled","wasOverdrawEnabled","originalBlendType","createMeshInstance","computeGsplatProjectorSource","dispatch_core_default","computeGsplatProjectorWriteIndirectArgsSource","computeGsplatProjectCommonSource","computeGsplatCommonSource","computeGsplatTileIntersectSource","gsplatComputeSplat_default","gsplatModify_default","gsplatHelpers_default","INDEX_COUNT","PROJECTOR_WORKGROUP_SIZE","PROJECTOR_INTERNAL_DEFINES","_cameraDir","_viewProjMat3","_viewProjData","_viewProj1Data","_viewData","_shaderProjMat","GSplatProjector","projCache","sortKeys","renderCounter","binWeightsBuffer","_projectorComputes","_projectorBindGroupFormat","_writeIndirectArgsCompute","_writeArgsBindGroupFormat","_projectorUniformBufferFormat","_projectorUniformBufferFormatFisheye","_projectorUniformBufferFormatStereo","_writeArgsUniformBufferFormat","_createUniformBufferFormats","baseFields","_createWriteIndirectArgsCompute","_destroyProjectorComputes","_projectorKey","pickMode","fisheyeMode","stereo","_createProjectorCompute","fixedBindings","_userModifySource","_userVaryingsSource","_userCacheWriteSource","_userCacheWords","_userDefines","_getProjectorCompute","userCacheWords","materialKey","_materialKey","wgslChunks","cacheStride","_allocatedCacheCount","_allocatedCacheStride","compactedSplatIds","isStereo","stereoMode","aaMode","cameraDir","invRange","focal","cameraPositionData","cameraDirectionData","writeIndirectArgs","sortIndirectInfo","computeGsplatIntervalCullSource","computeGsplatIntervalScatterSource","computeGsplatWriteIndirectArgsSource","INTERVAL_STRIDE","buildGSplatIntervalData","writeIdx","WORKGROUP_SIZE","INDEX_COUNT2","GSplatIntervalCompaction","intervalsBuffer","prefixSumKernel","_destroyCullPass","_scatterCompute","_scatterBindGroupFormat","_scatterUniformBufferFormat","_cullComputePerspective","_cullBindGroupFormatPerspective","_cullComputeFisheye","_cullBindGroupFormatFisheye","_createCullPass","uniformBufferFormat","_getCullCompute","_createScatterCompute","_scratch","ensureCompactedSplatIds","requiredCountSize","allocatedCountBufferSize","invalidateUpload","_uploadedVersion","uploadIntervals","allocatedIntervalCount","dispatchCompact","cullCompute","cullWorkgroups","prefixCount","scatterCompute","_scatterDispatchSize","dispatchSlotBase","_invProjMat","_shaderProjMat2","_camPos","_camDir","_tmpV","GSplatHybridRenderer","gpuSorter","projector","intervalCompaction","_pickMaterial","_pickMeshInstance","setStereo","_ensureGpuPipeline","sceneCam","xrViewCount","sortAndProjectForCamera","setHybridSortedRendering","indirectDrawSlot","prepareForPicking","_runFrustumCulling","allocateAndWriteIntervalIndirectArgs","ic","roundedNumBits","computeDistanceRange","indirectDispatchSlot","sortInfo","sortSlotCount","lastCompactedNumIntervals","_computeClipToViewZ","_clipToViewZ","_cacheStride","pickMaterial","pickMeshInstance","_clipToViewZPick","GSplatHybridRendererScratch","_allocatedCompacted","computeGsplatShadowCullSource","computeGsplatShadowIndirectArgsSource","WORKGROUP_SIZE2","INDEX_COUNT3","GSplatShadowRenderer","_destroyEntry","_compaction","_cullShader","_cullBindGroupFormat","_argsShader","_argsBindGroupFormat","_ensureCullShader","_cullFormatVersion","_userChunksKey","_cullBuiltChunksKey","_buildCullShader","_userModifyWgsl","_cullShaderGen","_createArgsShader","_configureMaterialWorkBuffer","setCastersAabb","syncLights","desired","_desiredLights","_createEntry","gsplatParams","_syncUserModify","_cullEntry","userMat","_applyUserModify","_fillFrustumPlanes","shadowRes","worldSizeThreshold","allocatedIndexCount","compaction","_frustumPlanes","cullComputeGen","_cullDispatchSize","argsCompute","_createMeshInstance","cameraPosition2","cameraDirection2","translation","splatAxis","invModelMat2","GSplatManager","_deviceRestoredEvent","destroyCpuSorting","_hybridScratch","_onDeviceRestored","cpuSorter","initCpuSorting","createSorter","hasPendingSort","_fillPickParams","_writeGsplatParams","_fillRenderViewParams","_renderViewParams","_pickParams","_syncShadowRenderer","wantShadow","_createRenderer","activeRenderer","prepareRendererMode","requested","_markResult","_markSortedIfNeeded","testCameraMovedForSort","lastSortCameraPos","lastSortCameraFwd","fireFrameReadyEvent","director","updateStreaming","_lastStreamToken","_streamAdvanced","_formatResult","_updateResult","_feedCpuSorterCenters","_streamToken","lastState","_bakeResult","sortCpu","aggregateAabb","lastVersion","_centersVersions","sorterRequest","SetUtils","setA","setB","elem","tempLayersToRemove","GSplatLayerData","createManager","updateConfiguration","hasNormalPlacements","hasShadowCasters","setsEqual","useSharedManager","desiredMainMode","desiredShadowMode","gsplatManager","gsplatManagerShadow","GSplatCameraData","layersMap","layerData","removeLayerData","getLayerData","GSplatDirector","camerasMap","cameraData","getCameraData","needRender","streamed","shadowManager","gsplatCount","camerasComponents","GSplatComponent","_instance","_placement","unified","destroyInstance","_materialTmp","lodBaseDistance","lodMultiplier","lodDistances","_unified","_onGSplatAssetAdded","setWorkBufferModifier","_onGSplatAssetRemove","_resource","_onGSplatAssetLoad","_onGSplatAssetUnload","gsplatCenter_default","gsplatCommon_default","gsplatSplat_default","gsplatEvalSH_default","gsplatHelpers_default2","gsplatModify_default2","gsplatModify_default3","gsplatWorkBufferGeometry_default","gsplatQuatToMat3_default","gsplatStructs_default","gsplatCorner_default","gsplatOutput_default","gsplat_default","gsplatSource_default","gsplat_default2","gsplatPacking_default","gsplatFormat_default","uncompressed_default","uncompressedSH_default","compressed_default","compressedSH_default","sog_default","sogSH_default","containerDecl_default","containerRead_default","gsplatChunksGLSL","gsplatCenterVS","gsplatCornerVS","gsplatCommonVS","gsplatSplatVS","gsplatEvalSHVS","gsplatHelpersVS","gsplatModifyVS","gsplatModifyPS","gsplatWorkBufferGeometryPS","gsplatQuatToMat3VS","gsplatStructsVS","gsplatOutputVS","gsplatPS","gsplatSourceVS","gsplatVS","gsplatPackingPS","gsplatFormatVS","gsplatUncompressedVS","gsplatUncompressedSHVS","gsplatCompressedVS","gsplatCompressedSHVS","gsplatSogVS","gsplatSogSHVS","gsplatContainerDeclVS","gsplatContainerReadVS","gsplatContainerFloatReadVS","gsplatCenter_default2","gsplatCommon_default2","gsplatSplat_default2","gsplatEvalSH_default2","gsplatModify_default4","gsplatWorkBufferGeometry_default2","gsplatQuatToMat3_default2","gsplatStructs_default2","gsplatCorner_default2","gsplatOutput_default2","gsplat_default3","gsplatSource_default2","gsplat_default4","gsplatHybrid_default","gsplatPacking_default2","gsplatFormat_default2","uncompressed_default2","uncompressedSH_default2","compressed_default2","compressedSH_default2","sog_default2","sogSH_default2","containerDecl_default2","containerRead_default2","gsplatChunksWGSL","gsplatHybridVS","_properties14","GSplatComponentSystem","onFrameRender","gSplatComponent","srcMaterial","getMaterial","getGSplatMaterial","EVENT_MATERIALCREATED","EVENT_FRAMEREADY","EVENT_FRAMEREQUEST","Render","decRefMeshes","incRefMeshes","EVENT_SETMESHES","onContainerAssetLoaded","containerResource","renders","renderIndex","onContainerAssetAdded","onContainerAssetRemoved","RenderHandler","AnimCurve","_paths","AnimData","gltfToEngineSemanticMap","getPrimitiveType","isTriangleMode","getDequantizeFunc","dequantizeArray","dstArray","srcArray","convFunc","GltfAccessor","_GltfAccessor","getNumComponents","accessorType","getComponentType","getComponentSizeInBytes","getComponentDataType","getData","gltfAccessor","bufferViews","sparse","indicesAccessor","valuesAccessor","baseAccessor","bufferView","targetIndex","bytesPerElement","tmpArray","byteStride","extractComponent","getDataFloat32","normalized","float32Data","ctype","createInstancing","gltf","nodeInstancingMap","TRANSLATION","rotations","ROTATION","SCALE","matrixIndex","DracoWorker","jsUrl","draco","POSITION_ATTRIBUTE","NORMAL_ATTRIBUTE","typedArray","DT_INT8","DT_INT16","DT_INT32","DT_UINT8","DT_UINT16","DT_UINT32","DT_FLOAT32","componentSizeInBytes","toEngineDataType","attributeSizeInBytes","num_components","data_type","attributeOrder2","generateNormals2","subtract","decodeMesh","DecoderBuffer","Init","Decoder","GetEncodedGeometryType","TRIANGULAR_MESH","DecodeBufferToMesh","ok","num_faces","shortIndices","num_points","indicesSize","indicesPtr","_malloc","GetTrianglesUInt16Array","HEAPU16","GetTrianglesUInt32Array","HEAPU32","num_attributes","GetAttribute","attribute_type","totalVertexSize","normalOffset","unique_id","sizeInBytes","ptrSize","ptr","GetAttributeDataArrayForAllPoints","HEAPU8","jobId","workQueue","DracoDecoderModule","exports","instantiateWasm","imports","successCallback","downloadMaxRetries","JobQueue","workers2","jobCallbacks","jobQueue","job","index2","index1","enqueueJob","downloadScript","compileModule","compileManual","compileStreaming","defaultNumWorkers","lazyConfig","initializeWorkers","moduleConfig","numWorkers","dracoSource","dracoModule","isNode","workerUrl","dracoInitialize","lazyInit","dracoDecode","createVariants","extensions","KHR_materials_variants","registerMeshVariants","meshId","meshVariants","tempMapping","mappings","createDracoMesh","meshDefaultMaterials","flatShadedMeshes","promises","POSITION","dracoExt","KHR_draco_mesh_compression","decompressedData","idToSemantic","extensionName","shDegreeCoefCounts","shBandCoefCounts","hasGSplatExtension","createGSplatData","readAttribute","opacities","bands","numCoefs","createGSplats","gltfMesh","primitives","createLight","gltfLight","lightProps","outerAngleRad","innerAngleRad","createLights","KHR_lights_punctual","gltfLights","preprocess","postprocess","gltfNode","getTextureSource","gltfTexture","KHR_texture_basisu","EXT_texture_webp","extractTextureTransform","texCoord","zeros","ones","textureTransform","KHR_texture_transform","tilingVec","offsetVec","KHR_materials_anisotropy","anisotropyStrength","anisotropyTexture","KHR_materials_clearcoat","clearcoatFactor","clearcoatTexture","clearCoatMap","clearCoatMapChannel","clearcoatRoughnessFactor","clearcoatRoughnessTexture","clearCoatGlossMap","clearCoatGlossMapChannel","clearcoatNormalTexture","KHR_materials_dispersion","KHR_materials_emissive_strength","emissiveStrength","KHR_materials_ior","ior","KHR_materials_iridescence","iridescenceFactor","iridescenceMapChannel","iridescenceMap","iridescenceTexture","iridescenceIor","iridescenceThicknessMinimum","iridescenceThicknessMaximum","iridescenceThicknessMapChannel","iridescenceThicknessMap","iridescenceThicknessTexture","KHR_materials_pbrSpecularGlossiness","diffuseFactor","diffuseTexture","diffuseMapChannel","specularFactor","glossinessFactor","specularGlossinessTexture","glossMap","specularMapChannel","glossMapChannel","getColorTextures","KHR_materials_sheen","sheenColorFactor","sheenColorTexture","sheenRoughnessFactor","sheenGlossMap","sheenRoughnessTexture","sheenGlossMapChannel","KHR_materials_specular","specularColorTexture","specularColorFactor","specularityFactorMapChannel","specularTexture","KHR_materials_transmission","transmissionFactor","refractionMapChannel","transmissionTexture","KHR_materials_unlit","emissiveMapUv","diffuseMapUv","emissiveMapTiling","diffuseMapTiling","emissiveMapOffset","diffuseMapOffset","emissiveMapRotation","diffuseMapRotation","emissiveMapChannel","diffuseVertexColor","emissiveVertexColorChannel","diffuseVertexColorChannel","KHR_materials_volume","thicknessFactor","thicknessMap","thicknessTexture","thicknessMapChannel","attenuationColor","glbMaterialExtensions","GlbResources","skins","isDataURI","getDataURIMimeType","attributeOrder","generateIndices","dummyIndices","generateNormals","sourceDesc","srcStride","normalsTemp","cloneTexture","shallowCopyLevels","cloneTextureAsset","createVertexBufferInternal","positionDesc","sourceOffset","isCorrectlyInterleaved","targetArray","sourceArray","targetStride","sourceStride","kend","createVertexBuffer","vertexBufferDict","useAttributes","attribIds","attrib","vbKey","accessorData","createSkin","gltfSkin","glbSkins","bindMatrix","joints","numJoints","inverseBindMatrices","ibmData","ibmValues","assetOptions","NORMAL","extras","targetNames","morphPreserveData","morphPreferHighPrecision","gltfMaterial","specularVertexColor","pbrData","pbrMetallicRoughness","baseColorFactor","baseColorTexture","metallicFactor","roughnessFactor","metallicRoughnessTexture","metalnessMapChannel","normalTexture","occlusionTexture","aoMapChannel","strength","emissiveFactor","emissiveTexture","alphaCutoff","doubleSided","createAnimation","gltfAnimation","animationIndex","gltfAccessors","gltfNodes","createAnimData","interpMap","inputMap","outputMap","curveMap","outputCounter","quatArrays","transformSchema","constructNodePath","createMorphTargetCurves","outData","morphTargetCount","keyframeCount","singleBufferSize","morphTargetOutput","morphCurve","channels","inputKey","outputKey","curveKey","curveData","prevIndex","dp","tempMat","tempVec2","tempQuat","createNode","EXT_mesh_gpu_instancing","createCamera","gltfCamera","isOrthographic","gltfProperties","orthographic","perspective","ymag","xmag","yfov","cameraEntity","createSkins","createMeshes","skipMeshes","applyFlatShading","clones","flatShadedIndex","createAnimations","createNodes","uniqueNames","createScenes","sceneRoot","childNode","createCameras","linkSkins","meshGroup","createResources","bufferViewData","textureAssets","textureInstances","applySampler","gltfSampler","getFilter2","getWrap2","wrapS","wrapT","gltfTextureUniqueId","createImages","urlBase","images","processAsync","mimeTypeFileExtensions","getGammaTextures","gltf2","textureInfos","textureInfo","loadTexture","gltfImage","mimeType","gammaTextures","promise","crossOrigin","createTextures","seenImages","gltfImageIndex","cloneAsset","imageAsset","loadBuffers","binaryChunk","gltfBuffer","byteString","binaryArray","parseGltf","gltfChunk","decodeBinaryUtf8","escape","parseGlb","glbData","magic","chunkLength","chunkType","chunkData","parseChunk","hasGlbHeader","u82","createBufferViews","gltfBufferView","buffer2","GlbParser","err4","createDefaultMaterial","GlbAnimationParser","parseResult","JsonAnimationParser","_parseAnimationV3","animData","_parseAnimationV4","defPos","defaults","defRot","defScl","AnimationHandler","AnimClipParser","AnimClipHandler","AnimStateGraphParser","AnimStateGraphHandler","AudioParser","msg","_isSupported","decodeAudioData","AudioHandler","BinaryParser","BinaryHandler","GlbContainerResource","_GlbContainerResource","createModel","createAsset","_assetName","assetName","subAsset","instantiateModelEntity","instantiateRenderEntity","skinnedMeshInstances","materialIndex","instData","vbFormat","cloneHierarchy","glb","attachedMi","glbNode","cloneMi","splatAssets","_meshGSplats","childClone","sceneClones","createSceneHierarchy","getMaterialVariants","applyMaterialVariant","renderComponent","_applyMaterialVariant","applyMaterialVariantInstances","sceneNodes","nodeType","model2","skinInstances2","skinIndex","destroyAsset","destroyAssets","meshGSplats","gsplatAsset","GlbContainerParser","_getUrlWithoutParams","ContainerResource","ContainerHandler","TextParser","CssHandler","CubemapHandler","loadAssets","getAssetIds","cubemapAsset","compareAssetIds","assetIdA","assetIdB","assetData","oldAssets","_handlerState","oldResources","getType","faceAssets","cmpArrays","faceTextures","faceLevels","faceTexture","faces","resolveId","valueInt","loadedAssetIds","loadedAssets","onError","processTexAsset","texAsset2","texAsset","assetId_","addressu","addressv","FolderHandler","Font","em","upgradeDataSchema","newChars","newKey","letter","FontHandler","numLoaded","isMsdf","textureOptions","onLoaded","pageUrl","pageAsset","GSplatAssetLoaderBase","GSplatAssetLoader","_loadQueue","_currentlyLoading","_retryCount","_failed","_canLoad","maxConcurrentLoads","_startLoading","_onAssetLoadSuccess","_onAssetLoadError","_processQueue","retryCount","retryErr","queueIndex","hasFailed","GSplatOctreeParser","SH_C03","SplatCompressedIterator","unpackUnorm","unpack111011","unpack8888","unpackRot","chunkSize","shData0","shData1","shData2","shCoeffs","ci","shData","GSplatCompressedData","getChunks","strideCopy","numEntries","GSplatCompressedResource","evalChunkTextureSize","formatStreams","packedTexture","packedData","shTexture0","shTexture1","shTexture2","sh0Data","sh1Data","sh2Data","chunkTextureSize","chunkTexture","chunkTextureData","magicBytes","endHeaderBytes","dataTypeMap","StreamBuf","progressFunc","tail","newSize","copyWithin","compact","getInt8","getInt16","getInt32","getFloat32","getFloat64","parseHeader","isCompressedPly","chunkProperties","vertexProperties","shProperties","_","hasBaseElements","hasSHElements","isFloatPly","readCompressedPly","streamBuf","numChunkProperties","evalStorageSize","storageSize","toCopy","texStorageSize","srcCoeffs","tmpBuf","toRead","tidx","readFloatPly","numProperties","inputSize","vertexIdx","floatData","checkFloatData","readGeneralPly","propertyParsingFunctions","streamBuf2","readPly","propertyFilter","startsWith2","headerLength","defaultElementFilter","PlyParser","gsplatCentersEnabledAtLoad","totalLength","totalReceived","elementFilter","parseZipArchive","u162","offset4","extractEocd","cdSizeBytes","cdOffsetBytes","extractCdr","filenameLength","extraFieldLength","fileCommentLength","compressionMethod","compressedSizeBytes","uncompressedSizeBytes","lfhOffsetBytes","recordSizeBytes","extractLfh","extraLength","offsetBytes","eocd","cdr","lfh","compression","inflate","compressed","ds","DecompressionStream","pipeThrough","Response","downloadArrayBuffer","statusText","releaseLock","SogBundleParser","_shouldAbort","unloaded","ownedByResource","metaFile","url2","allSettled","combineProgress","reporting","upgradeMeta","SogParser","loadTextures","mapUrl","GSplatHandler","CompressUtils","setCompressedPRS","singleVecs","___1","tripleVecs","___2","oneCharToKey","fieldFirstCode","fieldArray","multCharToKey","fieldCodeBase","Decompress","_Decompress","_handleMap","_handleArray","_result","_handleKey","origKey","_handleArElt","elt","SceneParser","compressedFormat","entDecompressed","curData","curEnt","_createEntity","childEnt","_openComponentData","resource_id","_setPosRotScale","_isTemplate","systemsList","entityData","isTemplate","SceneUtils","errMsg","HierarchyHandler","HtmlHandler","JsonParser","JsonHandler","StandardMaterialValidator","setInvalid","removeInvalid","validate","TYPES","REMOVED","pathMapping","enumType","enumValidators","chunkNames","_createEnumValidator","JsonStandardMaterialParser","migrated","migrate","dstMap","mapping_format","RENAMED_PROPERTIES","DEPRECATED_PROPERTIES","_validator","PLACEHOLDER_MAP","MaterialHandler","_bindAndAssignAssets","_assignTexture","_getPlaceholderTexture","placeholder","_assignPlaceholderTexture","_onTextureAdd","_onTextureRemoveOrUnload","_assignCubemap","prefiltered","_onCubemapLoad","_onCubemapAdd","_onCubemapRemoveOrUnload","prefilteredCubeMap128","TEXTURES","assetReference","dataAssetId","isPlaceHolderTexture","dataValidated","CUBEMAPS","GlbModelParser","modelHandler","JSON_PRIMITIVE_TYPE","JSON_VERTEX_ELEMENT_TYPE","JsonModelParser","modelData","_parseNodes","_parseSkins","_parseVertexBuffers","_parseIndexBuffers","morphs","_parseMorphs","_parseMeshes","_parseMeshInstances","parents","skinData","ibm","_getMorphVertexCount","morphTarget","morphTargetArray","sparseToFull","full","attributeMap","texCoord0","texCoord1","texCoord2","texCoord3","texCoord4","texCoord5","texCoord6","texCoord7","maxVerts","meshAabb","meshInstanceData","ModelHandler","handleMaterial","SceneHandler","ScriptTypes","_ScriptTypes","Type","_types","getReservedScriptNames","createScript","registerScript","reservedAttributes","ScriptHandler","onScriptLoad","urlWithoutEndHash","basePath","isEsmScript","_loadModule","_loadScript","isBrowserWithOrigin","importUrl","__esmScriptDynamicImportRuntime__","scriptSchema","scriptClass","extendsScriptType","ShaderHandler","onTextureAtlasLoaded","onTextureAtlasAdded","SpriteHandler","__data","_updateAtlas","Template","_templateRoot","_parseTemplate","TemplateParser","TemplateHandler","TextHandler","JSON_ADDRESS_MODE","JSON_FILTER_MODE","regexFrame","TextureAtlasHandler","textureUrl","minfilter","magfilter","BasisWorker","BASIS_FORMAT","cTFETC1","cTFETC2","cTFBC1","cTFBC3","cTFPVRTC1_4_RGB","cTFPVRTC1_4_RGBA","cTFASTC_4x4","cTFATC_RGB","cTFATC_RGBA_INTERPOLATED_ALPHA","cTFRGBA32","cTFRGB565","cTFRGBA4444","opaqueMapping","astc","atc","none","alphaMapping","PIXEL_FORMAT","ETC1","ETC2_RGB","ETC2_RGBA","DXT1","DXT5","PVRTC_4BPP_RGB_1","PVRTC_4BPP_RGBA_1","ASTC_4x4","ATC_RGB","ATC_RGBA","R8_G8_B8_A8","R5_G6_B5","R4_G4_B4_A4","basisToEngineMapping","basisFormat","deviceDetails2","unswizzleGGGR","genB","R","G","pack565","isPOT","performanceNow","rgbPriority","rgbaPriority","chooseTargetFormat","hasAlpha","isUASTC","testInOrder","dimensionsValid","transcodeKTX2","KTX2File","funcStart","basisFile","getWidth","getHeight","getLevels","getHasAlpha","isCubemap","deviceDetails","unswizzle","isGGGR","startTranscoding","is16BitFormat","transcodeImage","dstSize","getImageTranscodedSizeInBytes","levelData","faceData","transcodeTime","unswizzledGGGR","transcodeBasis","BasisFile","getImageWidth","getImageHeight","getNumImages","getNumLevels","transcode","isKTX2","workerTranscode","err","workerInit","instantiateWasmFunc","initializeBasis","onmessage","getCompressionFormats","prepareWorkerModules","getWorkerBlob","basisCode","sendResponse","module_","BasisQueue","clients","enqueueClient","client","handleResponse","TypedArray","BasisClient","eager","defaultNumWorkers2","defaultRgbPriority","defaultRgbaPriority","defaultMaxRetries","lazyConfig2","basisInitialize","eagerWorkers","clientConfig","basisTranscode","TextureParser","BasisParser","basisModuleFound","ImgParser","hasContents","_loadImageBitmapFromBlob","_loadImageBitmap","_loadImage","originalUrl","Image","retryTimeout","dummySize","blob","createImageBitmap","colorSpaceConversion","imageBitmap","IDENTIFIER2","KNOWN_FORMATS","createContainer","KtxParser","dataU32","endianness","glTypeSize","glInternalFormat","glBaseInternalFormat","pixelDepth","numberOfArrayElements","numberOfFaces","numberOfMipmapLevels","bytesOfKeyValueData","mipmapLevel","imageSizeInBytes","KHRConstants","KHR_DF_MODEL_UASTC","Ktx2Parser","vkFormat","typeSize","supercompressionScheme","dfdByteOffset","dfdByteLength","kvdByteOffset","kvdByteLength","sgdByteOffset","sgdByteLength","uncompressedByteLength","dfdTotalSize","colorModel","DdsParser","isFourCc","fcc","bpp","FCC_DXT1","FCC_DXT5","FCC_FP16","FCC_FP32","FCC_ETC1","FCC_PVRTC_2BPP_RGB_1","FCC_PVRTC_2BPP_RGBA_1","FCC_PVRTC_4BPP_RGB_1","FCC_PVRTC_4BPP_RGBA_1","pvrtc2","pvrtc4","mipSize","DXT_BLOCK_WIDTH","DXT_BLOCK_HEIGHT","numBlocksAcross","numBlocksDown","mipWidth","mipHeight","mipBuff","HdrParser","readStream","_readPixels","_readPixelsFlat","rgbe","scanstart","JSON_ADDRESS_MODE2","JSON_FILTER_MODE2","JSON_TEXTURE_TYPE","_completePartialMipmapChain","isHtmlElement","downsample","sampledWidth","sampledHeight","sampledData","xs","ys","xsys","TextureHandler","imgParser","_getTextureOptions","XRTYPE_INLINE","XRTYPE_VR","XRTYPE_AR","XRSPACE_VIEWER","XRSPACE_LOCAL","XRSPACE_LOCALFLOOR","XRSPACE_BOUNDEDFLOOR","XRSPACE_UNBOUNDED","XRTARGETRAY_GAZE","XRTARGETRAY_SCREEN","XRTARGETRAY_POINTER","XREYE_NONE","XREYE_LEFT","XREYE_RIGHT","XRHAND_NONE","XRHAND_LEFT","XRHAND_RIGHT","XRTRACKABLE_POINT","XRTRACKABLE_PLANE","XRTRACKABLE_MESH","XRDEPTHSENSINGUSAGE_CPU","XRDEPTHSENSINGUSAGE_GPU","XRDEPTHSENSINGFORMAT_L8A8","XRDEPTHSENSINGFORMAT_R16U","XRDEPTHSENSINGFORMAT_F32","XrDomOverlay","_supported","domOverlayState","_root","XRDOMOverlayState","poolVec3","poolQuat","XrHitTestSource","_xrHitTestSource","hitTest","cancel","_transient","transientResults","getHitTestResultsForTransientInput","transientResult","_getByInputSource","updateHitResults","getHitTestResults","_inputSource","candidateDistance","candidateHitTestResult","getPose","xrHitTestSource","EVENT_RESULT","XrHitTest","_onSessionStart","enabledFeatures","_available","_checkingAvailability","requestReferenceSpace","requestHitTestSource","hitTestSource","_onSessionEnd","profile","xrRay","offsetRay","DOMPoint","XRRay","entityTypes","_onHitTestSource","requestHitTestSourceForTransientInput","XRSession","EVENT_AVAILABLE","EVENT_UNAVAILABLE","XrTrackedImage","trackable","_trackable","tracking","_tracking","emulated","_emulated","_bitmap","widthInMeters","bitmap","_pose","_measuredWidth","EVENT_TRACKED","EVENT_UNTRACKED","XrImageTracking","trackedImage","_images","getTrackedImageScores","prepareImages","bitmaps","getImageTrackingResults","trackingState","measuredWidthInMeters","imageSpace","XRImageTrackingResult","XrFinger","_hand","_joints","tip","_tip","_fingers","tipJointIds","XRHand","tipJointIdsIndex","XrJoint","_localPosition","_localRotation","_updateTransforms","_localTransform","finger","_finger","wrist","_wrist","fingerJointIds","vecA2","vecB2","vecC","XrHand","xrInputSource","_xrInputSource","jointSpace","getJointPose","j1","_jointsById","j4","j6","j9","j16","j21","_dirtyRay","_rayLocal","jointL","jointR","handedness","squeezing","_fingerIsClosed","_squeezing","getJointById","fingers","tips","_tips","xrHand","jointId","EVENT_TRACKING","EVENT_TRACKINGLOST","vec3A","quat3","XrInputSource","targetRayMode","profiles","grip","_grip","selecting","_selecting","_elementInput","_elementEntity","elementEntity","hitTestSources","_hitTestSources","gripSpace","gripPose","_localPositionLast","_velocitiesTimestamp","_velocitiesAvailable","velocitiesSupported","targetRayPose","targetRaySpace","_updateRayTransforms","parentTransform","hitTestStart","onHitTestSourceAdd","hitTestResult","onHitTestSourceRemove","ray","EVENT_SELECT","EVENT_SQUEEZE","EVENT_SQUEEZESTART","EVENT_SQUEEZEEND","EVENT_HITTESTADD","EVENT_HITTESTREMOVE","EVENT_HITTESTRESULT","XrInput","_onInputSourcesChangeEvt","inputSources","_addInputSource","_inputSources","_onInputSourcesChange","_removeInputSource","XRPose","vec3A2","vec3B","mat4A","mat4B","XrLightEstimation","requestLightProbe","_lightProbeRequested","_lightProbe","lightProbe","wasRequested","lightEstimate","getLightEstimate","pli","primaryLightIntensity","primaryLightDirection","_sphericalHarmonics","sphericalHarmonicsCoefficients","sphericalHarmonics","ids2","XrPlane","_xrPlane","_planeDetection","planeSpace","_lastChangedTime","lastChangedTime","polygon","semanticLabel","planeDetection","xrPlane","XrPlaneDetection","_planes","_planesIndex","detectedPlanes","XRPlane","XrAnchor","_xrAnchor","xrAnchor","anchorSpace","_anchors","persist","persistence","_uuid","_uuidRequests","requestPersistentHandle","uuid","_indexByUuid","uuidRequest","forget","anchors","EVENT_PERSIST","EVENT_FORGET","XrAnchors","_creationQueue","_createAnchor","_onAnchorDestroy","XRHitTestResult","hitResult","createAnchor","XRRigidTransform","_persistence","restorePersistentAnchor","deletePersistentAnchor","_callbacksAnchors","trackedAnchors","uuids","persistentAnchors","XRAnchor","XrMesh","xrMesh","_xrMesh","_meshDetection","meshSpace","_lastChanged","meshDetection","XrMeshDetection","detectedMeshes","_removeMesh","XRMesh","XrView","textureColor","_textureColor","textureDepth","_textureDepth","depthUvMatrix","_depthMatrix","depthValueToMeters","_depthInfo","rawValueToMeters","eye","_xrView","availableColor","_xrCamera","inverse","_updateTextureColor","_updateDepth","availableDepth","depthGpuOptimized","infoSource","getDepthInformation","matrixDirty","resized","normDepthBufferFromNormView","_emptyDepthBuffer","getDepth","getDepthInMeters","viewsCount","supportedColor","supportedDepth","filtering","EVENT_DEPTHRESIZE","XrViews","_supportedColor","_supportedDepth","_availableColor","_availableDepth","depthUsage","_depthUsage","_depthFormat","_depthFormats","_indexTmp","depthDataFormat","XRDepthInformation","XRCamera","XrBridge","_evtDeviceLost","XrManager","_XrManager","_allowsSpatialTracking","featurePolicy","allowsFeature","allowed","isDeviceSupported","_backendSupportsXr","isSessionSupported","_spaceType","_setClipPlanes","optionalFeatures","imageTracking","domOverlay","depthSensing","usagePreference","dataFormatPreference","cameraColor","trackedImages","_onStartOptionsReady","requestSession","isAvailable","_deviceAvailabilityCheck","_sessionSupportCheck","initiateRoomCapture","updateTargetFrameRate","frameRate","onClipPlanesChange","onFrameRateChange","_depthNear","_depthFar","supportedFrameRates","_supportedFrameRates","_framebufferSize","lengthOld","posePosition","poseOrientation","lightEstimation","fixedFoveation","EVENT_START","EVENT_UPDATE","Application","graphicsDeviceOptions","addComponentSystems","addResourceHandles","NullPhysicsWorld","AssetListLoader","_waitingAssets","_onAddAsset","_assetHasDependencies","_callback","loadingAssets","_loadingAssets","_loadingComplete","_waitForAsset","assetList","assetRegistry","DEFAULT_TEXTURE_SIZE","Atlas","ctx","clearRect","fillStyle","fillRect","CanvasFont","_chars","_normalizeCharsSet","_renderAtlas","updateTextures","newCharsSet","atlases","fontName","glyphSize","fontWeight","_colorToRgbString","renderCharacter","fillText","_getAtlas","charsArray","TEXT_ALIGN","TEXT_BASELINE","atlasIndex","_createJson","maxDescent","metrics","_getTextMetrics","descent","_xOffset","_yOffset","fs","textAlign","textBaseline","measureText","_addChar","atlas2","mapNum","mapW","mapH","textSpan","innerHTML","ascent","tempMeshInstances","RenderPassPicker","getViewUniformFormat","_viewUniformFormat","emptyWorldClusters","_qualifiedLayerIndices","_pickMeshInstances","srcLayers","pickerWidth","pickerHeight","srcLayer","pickMI","tempSet2","_floatView","_int32View","Picker","getSelection","sanitizeRect","decodePixels","getSelectionAsync","_readTexture","deviceValid","getWorldPointAsync","invViewProj","isOrtho","getPointDepthAsync","ndcDepth","deviceCoord","renderTargetDepth","selection","scene_depth_read_default","scene_depth_read_default2","_farLimitFractionFull","_farLimitFractionHalf","SceneDepthReader","_valid","_depthRendered","_process","internal","_settleRequests","_updateShader","_updateRenderTarget","_readRequest","rectValue","gridValue","rectId","gridId","farId","emptyId","depthMapId","_borrowBuffer","_returnBuffer","_shaderKey","_destroyRenderTarget","_buffers","_invalidate","_onPostRender","_onCameraRemove","_onDeviceDestroy","SceneSettingsHandler","targetX","targetY","vecA3","vecB3","rayA","rayB","rayC","_pq","_pa","_pb","_pc","_pd","_m","_au","_bv","_cw","_ir","_sct","_accumulatedScale","_paddingTop","_paddingBottom","_paddingLeft","_paddingRight","_cornerBottomLeft","_cornerBottomRight","_cornerTopRight","_cornerTopLeft","ZERO_VEC4","scalarTriple","intersectLineQuad","ElementInputEvent","_stopPropagation","stopImmediatePropagation","ElementMouseEvent","lastX","lastY","ElementTouchEvent","ElementSelectEvent","ElementInput","_ElementInput","domElement","_useMouse","_useTouch","_touchstartHandler","_touchendHandler","_touchmoveHandler","_touchcancelHandler","_selectEventsAttached","_useXr","_clickedEntities","_onXrStart","_onXrEnd","_onXrUpdate","_onXrInputRemove","_calcMouseCoords","_onElementMouseEvent","_determineTouchedElements","touchedElements","_getTargetElementByCoords","newTouchedElements","newTouchInfo","oldTouchInfo","_touchedElements","_fireEvent","_touchesForWhichTouchLeaveHasFired","touchId","touchInfo","hovered","eventType","lastHovered","_hoveredElement","_pressedElement","fireClick","lastTouchUp","_onElementSelectEvent","_selectedElements","_selectedPressedElements","hoveredBefore","hoveredNow","_getTargetElementByRay","_sortElements","rayScreen","_calculateRayScreen","ray3d","_calculateRay3d","_getTargetElement","screenPos","closestDistance3d","currentDistance","_checkElement","cameraLeft","cameraRight","cameraBottom","cameraTop","calculateScaleToScreen","calculateScaleToWorld","buildHitCorners","screenOrWorldCorners","useMouse","useTouch","useXr","PIXELFORMAT_L8_A8","PIXELFORMAT_R5_G6_B5","PIXELFORMAT_R5_G5_B5_A1","PIXELFORMAT_R4_G4_B4_A4","PIXELFORMAT_R8_G8_B8","PIXELFORMAT_R8_G8_B8_A8","PIXELFORMAT_SRGB","PIXELFORMAT_SRGBA","BLENDMODE_CONSTANT_COLOR","BLENDMODE_ONE_MINUS_CONSTANT_COLOR","BLENDMODE_CONSTANT_ALPHA","BLENDMODE_ONE_MINUS_CONSTANT_ALPHA","CHUNKAPI_1_51","CHUNKAPI_1_55","CHUNKAPI_1_56","CHUNKAPI_1_57","CHUNKAPI_1_58","CHUNKAPI_1_60","CHUNKAPI_1_62","CHUNKAPI_1_65","CHUNKAPI_1_70","CHUNKAPI_2_1","CHUNKAPI_2_3","CHUNKAPI_2_5","CHUNKAPI_2_6","CHUNKAPI_2_7","CHUNKAPI_2_8","_viewport4","createSphere","createPlane","createBox","createTorus","createCapsule","createCone","createCylinder","createMesh2","drawFullscreenQuad","Key","Node","LitOptions","RIGIDBODY_TYPE_STATIC","RIGIDBODY_TYPE_DYNAMIC","RIGIDBODY_TYPE_KINEMATIC","RIGIDBODY_CF_STATIC_OBJECT","RIGIDBODY_CF_KINEMATIC_OBJECT","RIGIDBODY_CF_NORESPONSE_OBJECT","RIGIDBODY_ACTIVE_TAG","RIGIDBODY_ISLAND_SLEEPING","RIGIDBODY_WANTS_DEACTIVATION","RIGIDBODY_DISABLE_DEACTIVATION","RIGIDBODY_DISABLE_SIMULATION","CpuTimer","_frameIndex","_frameTimings","_prevTimings","_timings","mark","unitsName","decimalPlaces","GpuTimer","StatsTimer","statNames","multiplier","Graph","avgTotal","avgTimer","avgCount","maxValue","textRefreshRate","timingText","maxText","watermark","sample","needsClear","rowOffset","render2d","graphType","WordAtlas","word","totalWidth","charPlacement","initContext","context2","isNumber","measurement","actualBoundingBoxLeft","actualBoundingBoxRight","actualBoundingBoxAscent","actualBoundingBoxDescent","getImageData","maxChannel","graphColorDefault","graphColorGpu","graphColorCpu","mainBackgroundColor","gpuBackgroundColor","cpuBackgroundColor","vertexShaderGLSL","vertexShaderWGSL","fragmentShaderGLSL","fragmentShaderWGSL","Render2d","uw","uh","wordFlag","quads","maxQuads","tw","u0","u1","startFrame","scrollWidth","scrollHeight","graphTexture","wordsTexture","clr","cpuStatDisplayNames","delayedStartStats","MiniStats","_MiniStats","updateDiv","postRender","graphs","gpuPassGraphs","cpuGraphs","vramGraphs","wordAtlas","getDefaultOptions","extraStats","startSizeIndex","cpu","gpuTimingMinSize","cpuTimingMinSize","vramTimingMinSize","frameIndex","insertIndex","flatMap","statPresets","activeSizeIndex","_activeSizeIndex","gspacing","clearSubGraphs","overallHeight","initGraphs","allocateRow","drawLayer","showGraphs","updateSubStats","subGraphs","mainGraphName","statPathPrefix","removeAfterFrames","passesToRemove","statName","statData","lastNonZeroFrame","shouldAutoHide","freeRow","statsEntries","mainGraph","isDelayedStart","displayName","graphName","statPath","mainGraphIndex","freeRows","nextRowIndex","ensureTextureHeight","graphRows","requiredRows","requiredWidth","requiredHeight","gpuStats","cpuStats","vramStats","stat","lastWidth","cssText","gsplatsCopy","shaderOutlineExtendPS","shaderOutlineExtendWGSL","_tempFloatArray","_tempColor4","OutlineRenderer","outlineCameraEntity","quadRenderer","getMeshInstances","recursive","addEntity","outlineShaderPass","opacityMapUv","opacityMapTransform","opacityVertexColor","opacityVertexColorChannel","colArray","renderingLayer","removeEntity","removeAllEntities","blendOutlines","uOffset","uColorBuffer","uSrcMultiplier","shaderExtend","createRenderTarget","updateRenderTarget","outlineCamera","sceneCameraEntity","blendLayer","blendLayerTransparent","shaderBlend","LINECAP_BUTT","LINECAP_SQUARE","LINECAP_ROUND","LINEJOIN_MITER","LINEJOIN_BEVEL","LINEJOIN_ROUND","validateStyle","RangeError","validateNumber","WideLine","widths","pointCount","_validatePositions","_validateColors","_validateWidths","packedPositions","_copyPositions","packedColors","_copyColors","packedWidths","_copyWidths","_widths","setWidths","_join","_cap","closed","_closed","dashLength","_dashLength","gapLength","_gapLength","dashOffset","_dashOffset","expectedPointCount","_lineChanged","_rendererIndex","LINEWIDTH_SCREEN","LINEWIDTH_WORLD","FLOATS_PER_INSTANCE","ROUND_SEGMENTS","createTemplateMesh","addDisk","WideLineRenderer","_lines","_vertexBuffer","_instanceData","_depthTest","_updateVisibility","widthUnits","_widthUnits","_requiredSegmentCount","_rebuild","_vertexFormat","grownCapacity","_segmentCount","_writeLine","segmentCount","startConnected","endConnected","startPosition","endPosition","endDistance","_writePosition","_writeColor","instance_prevWidth","instance_startWidth","instance_endDistance","instance_nextDistance","instance_startColor","instance_endColor","instance_style","instance_dashFlags","_u","_v","_dir","_head","_lightDir","_mat2","_view","_proj","NDC_CORNERS","FRUSTUM_EDGES","_corners","buildBasis","WireRenderer","_begin","_writer","_immediate","_steps","_segment","_vertex","_arc","sweep","vz","c0","s0","ax","ay","az","bx","by","bz","_writePoints","strip","linesPacked","polyline","boxMinMax","circle","_sideLines","half","apex","plane","arrow","headLength","headRadius","ox","oy","oz","CoreExporter","textureToCanvas","width2","height2","imagedata","putImageData","dstTexture","finally","newImage","ImageData","newContext","u8","u16","i32","fleb","fdeb","clim","freb","eb","fl","revfl","revfd","rev","i","x2","hMap","cd","mb","le","co","flt","fdt","flm","fdm","shft","slc","ec","nt","captureStackTrace","wbits","wbits16","hTree","et","i0","maxSym","tr","mbt","ln","lft","cst","i2_1","i2_2","i2_3","lc","cl","cli","cln","cls","clen","wfblk","dat","wblk","final","syms","lf","df","bs","bl","dlt","mlb","ddt","mdb","lclt","nlc","lcdt","ndc","lcfreq","lct","mlcb","nlcc","flen","ftlen","dtlen","lm","ll","dm","dl","llm","lcts","clct","sym","deo","dflt","lvl","plvl","pre","st","lst","msk_1","bs1_1","bs2_1","hsh","lc_1","wi","hv","imod","pimod","rem","ch_1","dif","maxn","maxd","ml","nl","mmd","md","ti","pti","lin","din","crct","crc","dopt","dictionary","dict","newDat","mem","mrg","wbytes","deflateSync","fltn","te","TextEncoder","td","tds","strToU8","latin1","ai","exfl","wzh","ce","fl2","exl","os","mtime","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","exf","wzf","zipSync","tot","com","comment","oe","cdl","badd","ROOT_FILE_NAME","materialListTemplate","meshTemplate","faceVertexCounts","uv0","uv1","meshInstanceTemplate","meshRefPath","materialRefPath","materialValueTemplate","UsdzExporter","meshMap","textureMap","materialMap","nodeNames","build","allMeshInstances","rootContent","buildMeshInstance","textureArray","texturePromise","toBlob","finalData","textureArrayBuffer","getTextureFileIds","alignFiles","offsetMod64","padLength","getFileIds","category","refName","uniqueId","content","contentU8","getMaterialRef","materialRef","buildMaterial","getMeshRef","meshRef","buildMesh","buildArray2","buildArray3","buildMat4","vectors","materialName","materialPath","materialPropertyPath","textureIds","mapType","addTexture","textureSlot","propType","valueName","handleOpacity","tintTexture","textureValue","materialObject","indicesCount","meshObject","refPath","getIndexComponentType","getAccessorType","getSemantic","engineSemantic","getFilter","getWrap","isCanvasTransparent","textureSemantics","GltfExporter","_GltfExporter","collectResources","entityMeshInstances","bufferViewMap","compressableTexture","collectMeshInstances","nodeMeshInstances","writeBufferViews","writeBufferView","bufferInfo","addBufferView","bufferViewIndex","bufferViewIndices","writeCameras","attachTexture","textureSemantic","textureTexCoord","extensionsUsed","extensionsRequired","addExtension","writeStandardMaterial","pbr","baseColor","anisotropyExt","clearcoatExt","defaultRefractionIndex","iridescenceExt","sheenExt","specularExt","transmissionExt","volumeExt","writeMaterials","writeNodes","entityMeshInstance","writeMeshes","createPrimitive","stripUnusedAttributes","isUsed","texCoordIndex","texSemantic","emi","viewIndex","writeSkins","matrixBuffer","accessorIndex","convertTextures","srcTextures","srcTexture","writeTextures","textureCanvases","isRGBA","getBlob","FileReader","readAsArrayBuffer","onloadend","getPaddedArrayBuffer","quality","convertToBlob","paddingByte","paddedLength","buildJson","jsonData","jsonHeaderLength","jsonDataLength","jsonPaddingLength","binaryHeaderLength","binaryDataLength","glbBuffer","glbView","setUint32","setUint8","bufferViewId","SSAOTYPE_NONE","SSAOTYPE_LIGHTING","SSAOTYPE_COMBINE","downsample_default","downsample_default2","RenderPassDownsample","_sourceTexture","sourceTextureId","premultiplyTexture","premultiplyTextureId","sourceInvResolutionValue","sourceInvResolutionId","boxFilter","premultiplySrcChannel","upsample_default","upsample_default2","RenderPassUpsample","FramePassBloom","destroyRenderPasses","destroyRenderTargets","createRenderTargets","bloomRenderTarget","calcMipLevels","createRenderPasses","passSourceTexture","maxNumPasses","blurLevel","bloomTexture","compose_default","compose_bloom_default","compose_dof_default","compose_ssao_default","compose_grading_default","compose_color_enhance_default","compose_vignette_default","compose_fringing_default","compose_cas_default","compose_color_lut_default","composeChunksGLSL","composePS","composeBloomPS","composeDofPS","composeSsaoPS","composeGradingPS","composeColorEnhancePS","composeVignettePS","composeFringingPS","composeCasPS","composeColorLutPS","composeDeclarationsPS","composeMainStartPS","composeMainEndPS","compose_default2","compose_bloom_default2","compose_dof_default2","compose_ssao_default2","compose_grading_default2","compose_color_enhance_default2","compose_vignette_default2","compose_fringing_default2","compose_cas_default2","compose_color_lut_default2","composeChunksWGSL","RenderPassCompose","_shaderDirty","sceneDepthAvailable","_sceneDepthAvailable","_debugMode","colorLUT","_colorLUT","_validateColorLUT","colorLUT2","_colorLUT2","slotName","_bloomTexture","cocTexture","_cocTexture","ssaoTexture","_ssaoTexture","taaEnabled","_taaEnabled","gradingEnabled","_gradingEnabled","vignetteEnabled","_vignetteEnabled","fringingEnabled","_fringingEnabled","colorEnhanceEnabled","_colorEnhanceEnabled","sharpness","_sharpness","isSharpnessEnabled","hdrScene","_hdrScene","neededGammaCorrection","shaderChunks2","prevValue","_customComposeChunks","currentValue","gammaCorrectionName","customChunks","declHash","startHash","endHash","debugMode","depthDefines","depthKey","blurTextureUpscale","sceneTex","sceneTexture","sceneTextureId","sceneTextureInvResValue","sceneTextureInvResId","composeTargetFlipYId","bloomTextureId","bloomIntensityId","bloomIntensity","cocTextureId","blurTextureId","blurTexture","ssaoTextureId","bcsId","gradingBrightness","gradingContrast","gradingSaturation","tintId","gradingTint","colorEnhanceParamsId","colorEnhanceShadows","colorEnhanceHighlights","colorEnhanceVibrance","colorEnhanceDehaze","colorEnhanceMidtonesId","colorEnhanceMidtones","lutTexture","colorLUTParams","colorLUTIntensity","colorLUT2Intensity","colorLUTBlend","colorLUTParamsId","colorLUTId","colorLUT2Id","vignetterParamsId","vignetteInner","vignetteOuter","vignetteCurvature","vignetteIntensity","vignetteColorId","vignetteColor","fringingIntensityId","fringingIntensity","sharpnessId","sampleCatmullRom_default","sampleCatmullRom_default2","taaResolve_default","taaResolve_default2","RenderPassTAA","setup","historyTextures","historyRenderTargets","historyTexture","historyTextureId","historyIndex","textureSizeId","viewProjPrevId","viewProjInvId","jittersId","coc_default","coc_default2","RenderPassCoC","paramsValue","focusRange","focusDistance","paramsId","nearBlur","dofBlur_default","dofBlur_default2","RenderPassDofBlur","blurRings","_blurRings","blurRingPoints","_blurRingPoints","kernelCount","nearTexture","nearTextureId","farTextureId","farTexture","kernelId","kernelCountId","referenceHeight","invReferenceHeight","blurRadiusNearId","blurRadiusNear","blurRadiusFarId","blurRadiusFar","FramePassDof","cocPass","farPass","blurPass","cocRT","farRt","blurRt","setupCocPass","setupFarPass","setupBlurPass","blurRadius","sceneTextureHalf","highQuality","volumetricFog_default","volumetricFog_default2","volumetricFogCombine_default","volumetricFogCombine_default2","volumetricFogLocal_default","volumetricFogLocal_default2","volumetricFogLocal_default3","volumetricFogLocal_default4","_tempDir","_tempVec3","_tempSphere","_tempCorner","_tempProjected","_tempRect2","_cookieChannelMasks","_cookieChannelMaskNone","RenderPassVolumetricFog","updateShaderVariant","_variantKey","invViewId","_cameraPos","cameraPosId","fwd","_cameraFwd","cameraFwdId","projData","_projScale","projScaleId","lightScale","_lightColor","shadowMapId","_shadowParams","shadowParamsId","tint","ambientIntensity","_tint","ambientScale","_ambient","heightBase","heightFalloff","fogParamsId","extinctionId","extinction","_scatterParams","noiseOffset","scatterParamsId","RenderPassVolumetricFogLocal","cookies","_getLightClusters","scenePass","_evalLightRect","_setupLight","_lightRect","lightRectId","_lightSphere","lightSphereId","_lightPosRange","lightPosRangeId","_lightAtten","lightAttenId","hasAtlasSlot","hasShadowMap","useShadow","_lightSpot","lightSpotId","lightProjMatrixId","_lightAtlas","lightAtlasId","lightCookieChannelId","rgb","_marchParams","marchParamsId","omniLights","spotLights","RenderPassVolumetricFogCombine","fogTexture","fogTextureId","_fogTextureSize","fogTextureSizeId","FramePassVolumetricFog","fogPass","localPass","combinePass","fogRenderTarget","temporalDither","localOmniLights","localSpotLights","localIntensity","localSteps","sceneRenderTarget","tempMeshInstances2","DEPTH_UNIFORM_NAME","RenderPassPrepass","linearDepthTexture","setupRenderTarget","linearDepthFormat","linearDepthClearValue","cullCamera","qualified","depthAwareBlur_default","depthAwareBlur_default2","RenderPassDepthAwareBlur","filterSizeId","ssao_default","ssao_default2","RenderPassSsao","minAngle","minAngleSin","spiralTurns","peak","projectionScale","power","_blueNoise","ssaoTextureSizeInvId","blurEnabled","blurRT","blurPassHorizontal","blurPassVertical","CameraFrameOptions","sceneColorMap","lastGrabLayerId","lastGrabLayerIsTransparent","lastSceneLayerId","lastSceneLayerIsTransparent","bloomEnabled","ssaoType","ssaoBlurEnabled","prepassEnabled","sceneTextureDepth","dofEnabled","dofNearBlur","dofHighQuality","volumetricFogEnabled","_defaultOptions","_sceneDepthFormats","FramePassCameraFrame","_FramePassCameraFrame","sceneDepthTexture","sceneDepthSlot","_sceneTextureNames","rtSceneColor","rtHalf","prePass","scenePassTransparent","composePass","bloomPass","ssaoPass","taaPass","afterPass","scenePassHalf","dofPass","volumetricFogPass","sanitizeOptions","postProcessDepth","inSceneDepth","needsInSceneDepth","splatDepth","deviceSupported","isSceneTextureDepthSupported","unsupportedReason","sceneTexturesUnsupportedReason","requiresSplatDepth","sceneDepthFormat","rendersGSplats","getSceneDepthFormat","renderTargetScale","_renderTargetScale","needsReset","currentOptions","arraysNotEqual","setupRenderPasses","hdrFormat","targetRenderTarget","_bloomEnabled","_sceneHalfEnabled","sceneOptions","createPasses","allPasses","collectPasses","updateCameraUseFlags","firstSeen","lastSeen","ssaoBeforeScene","setupScenePrepass","setupSsaoPass","scenePassesInfo","setupScenePass","setupVolumetricFogPass","sceneTextureWithTaa","setupTaaPass","setupSceneHalfPass","setupBloomPass","setupDofPass","setupComposePass","setupAfterPass","setupScenePassSettings","addCameraLayers","firstLayerClears","lastLayerId","lastLayerIsTransparent","lastAddedIndex","inputTexture","inputTextureHalf","textureWithTaa","cameraFrame","_sceneDepthClearValue","CameraFrame","cameraLayersChanged","renderPassCamera","createRenderPass","rendering","updateOptions","bloom","taa","renderFormats","_volumetricFogSupported","volumetricFog","isSplatSceneDepthSupported","grading","colorEnhance","vignette","fringing","saturation","brightness","contrast","intensity2","curvature","highlights","vibrance","midtones","dehaze","tmpV1","rotation2","Pose","_Pose","angles","alpha1","alpha3","xRange","yRange","zRange","euler","pitchRange","yawRange","angles3","look","elev","azim","getFocus","InputDelta","InputFrame","deltas","InputSource","InputConsumer","InputController","smooth","DOUBLE_TAP_THRESHOLD","DOUBLE_TAP_VARIANCE","isTouchPointer","pointerType","movementState","down","pointerId","screenX","screenY","mvX","mvY","v","VirtualJoystick","_range","SingleGestureSource","_layout","_pointerData","joystick","_joystick","_onPointerDown","_movementState","setPointerCapture","sqrDist","_lastPointer","doubleTap","_onPointerMove","_onPointerUp","releasePointerCapture","DualGestureSource","leftJoystick","_leftJoystick","rightJoystick","_rightJoystick","leftInput","rightInput","tmpVa","MultiTouchSource","_pointerEvents","_getMidPoint","_pointerPos","_pinchDist","_getPinchDist","mid","pinchDist","pinch","_onContextMenu","PASSIVE","KEY_CODES","C","D","E","F","I","J","K","M","O","P","Q","S","T","U","V","W","X","Y","Z","SPACE","SHIFT","CTRL","KEY_COUNT","array2","KeyboardMouseSource","_KeyboardMouseSource","_onWheel","_pointerLock","_clearButtons","_button","_pointerId","_onKeyDown","_setKey","_onKeyUp","_keyMap","_keyNow","_keyPrev","pointerLock","BUTTON_CODES","LB","RB","LT","RT","SELECT","START","LEFT_STICK","RIGHT_STICK","BUTTON_COUNT","GamepadSource","_buttonPrev","leftStick","rightStick","buttonCode","damp","up2","rotation3","FlyController","_targetPose","moveDamping","rotateDamping","dir","offset2","angles2","rotation4","OrbitController","_targetRootPose","_rootPose","zoomRange","_targetChildPose","_childPose","zoomDamping","EPSILON2","dir2","position3","rotation5","FocusController","focusDamping","GIZMOSPACE_LOCAL","GIZMOSPACE_WORLD","GIZMOAXIS_X","GIZMOAXIS_Y","GIZMOAXIS_Z","GIZMOAXIS_YZ","GIZMOAXIS_XZ","GIZMOAXIS_XY","GIZMOAXIS_XYZ","GIZMOAXIS_FACE","v5","position4","dir3","rotation6","m2","MIN_SCALE","PERS_SCALE_RATIO","ORTHO_SCALE_RATIO","UPDATE_EPSILON","DIST_EPSILON","Gizmo","_Gizmo","createLayer","_renderUpdate","mouseButtons","_mouseButtons","coordSpace","_coordSpace","_updateRotation","facingDir","gizmoPos","_getSelection","EVENT_POINTERDOWN","EVENT_POINTERMOVE","EVENT_POINTERUP","_updatePosition","EVENT_POSITIONUPDATE","EVENT_ROTATIONUPDATE","EVENT_SCALEUPDATE","intersectShapes","disabled","parentTM","triData","tris","triWTM","invTriWTM","EVENT_NODESATTACH","EVENT_NODESDETACH","prerender","EVENT_RENDERUPDATE","_handles","COLOR_RED","COLOR_GREEN","COLOR_BLUE","COLOR_GRAY","color4from3","v22","ray2","AXES","TransformGizmo","_TransformGizmo","theme","_theme","xAxisColor","setTheme","shapeBase","shapeHover","colorAlpha","guideBase","guideOcclusion","yAxisColor","zAxisColor","xyz","_dragging","_hoverAxis","_selectedAxis","_getIsPlane","_hover","_hovering","_shapes","hover","_hoverIsPlane","_createRay","mouseWPos","orthoDepth","_createPlane","isFacing","isLine","_rootStartRot","_rootStartPos","_dirFromAxis","_projectToAxis","_screenToPoint","_drawGuideLines","activeAxis","activeIsPlane","_drawSpanLine","occluded","_createTransform","_shapeMap","enableShape","shapeAxis","isShapeEnabled","partial","gizmoRot","_selectedIsPlane","_selectionStartPoint","snap","snapIncrement","dragMode","EVENT_TRANSFORMSTART","EVENT_TRANSFORMMOVE","EVENT_TRANSFORMEND","tmpV12","tmpV2","tmpV3","TriData","tri","unlitShader","tmpG","Shape","_disabled","_visible","_createRenderComponent","_disabledColor","_defaultColor","_cull","_hoverColor","defaultColor","hoverColor","disabledColor","UPDATE_EPSILON2","PlaneShape","_gap","flipped","_flipped","tmpV13","tmpV22","tmpQ1","ArrowShape","lineThickness","_lineThickness","lineLength","_lineLength","arrowThickness","_arrowThickness","arrowLength","_arrowLength","tolerance","_tolerance","_line","SphereShape","v12","v23","point2","delta","GLANCE_EPSILON","AXES2","TranslateGizmo","axisGap","_setArrowProp","axisLineThickness","axisLineLength","axisLineTolerance","axisArrowThickness","axisArrowLength","axisPlaneSize","_setPlaneProp","axisPlaneGap","axisCenterSize","flipShapes","flipPlanes","_shapesLookAtCamera","_drag","_storeNodePositions","_nodeLocalPositions","_nodePositions","_setNodePositions","translateDelta","isPlane","TORUS_RENDER_SEGMENTS","TORUS_INTERSECT_SEGMENTS","ArcShape","_createTorusGeometry","_tubeRadius","_ringRadius","_createTorusMesh","_triDataCache","_sectorAngle","tmpV14","MeshLine","_thickness","point3","v13","v24","v32","q22","color2","RING_FACING_EPSILON","UPDATE_EPSILON3","AXES3","RotateGizmo","xyzTubeRadius","_setDiskProp","xyzRingRadius","faceTubeRadius","faceRingRadius","centerRadius","ringTolerance","angleGuideThickness","_guideAngleLines","orbitRotation","rotationMode","_storeGuidePoints","_guideAngleStart","_guideAngleEnd","_updateGuidePoints","angleDelta","_angleGuide","startColor","sector","_facingDir","_storeNodeRotations","_nodeLocalRotations","_nodeRotations","_nodeOffsets","_setNodeRotations","angleAxis","intersection","_calculateArcAngle","facingDot","_screenStartPos","projDir","_selectionStartAngle","_screenPos","BoxShape","tmpV15","tmpV23","tmpQ12","BoxLineShape","boxSize","_boxSize","_box","v14","v25","point4","delta2","q4","GLANCE_EPSILON2","ScaleGizmo","_uniform","axisBoxSize","_storeNodeScales","_nodeScales","_setNodeScales","scaleDelta","lowerBoundScale","tmpV16","tmpV24","tmpV32","tmpM1","ViewCube","_ViewCube","dom","colorX","_colorX","xaxis","colorY","_colorY","yaxis","colorZ","_colorZ","zaxis","colorNeg","_colorNeg","textSize","_textSize","_svg","_x2y2","createElementNS","namespaceURI","_circle","textContent","cameraMatrix","createDocumentFragment","colX","colY","colZ","EVENT_CAMERAALIGN","loadModules","urlPrefix","moduleLoaded","ASSET_PREFIX","SCRIPT_PREFIX","SCENE_PATH","CONTEXT_OPTIONS","SCRIPTS","CONFIG_FILENAME","INPUT_SETTINGS","useKeyboard","useGamepads","PRELOAD_MODULES","legacy","pc","showSplash","wrapper","splash","bar","hideSplash","getElementById","parentElement","setProgress","createCss","css","styleSheet","createTextNode","logoAsset","logo","childNodes","insertBefore"],"mappings":"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AACA,CAAC,CAED,IAAIC,cAAAA,CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,eAAAA,CAAkB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,mBAAAA,CAAsB;AAC1B,CAAC,CAED,IAAIC,oBAAAA,CAAuB;AAC3B;AACA,CAAC,CAED,IAAIC,cAAAA,CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,mBAAAA,CAAsB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,kBAAAA,CAAqB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,gBAAAA,CAAmB,CACtBC,eAAAA,CAAiB/gD,kBACjBghD,aAAAA,CAAe/gD,eAAAA,CACfghD,cAAAA,CAAgB/gD,gBAAAA,CAChBghD,gBAAAA,CAAkB3gD,kBAAAA,CAClB4gD,iBAAkB3gD,kBAAAA,CAClB4gD,gBAAAA,CAAkB3gD,kBAAAA,CAClB4gD,gBAAAA,CAAkB3gD,kBAAAA,CAClB4gD,gBAAAA,CAAkB3gD,kBAAAA,CAClB4gD,gBAAAA,CAAkB3gD,kBAAAA,CAClB4gD,gBAAAA,CAAkB3gD,kBAAAA,CAClB4gD,gBAAAA,CAAkB3gD,kBAAAA,CAClB4gD,YAAAA,CAAcrhD,eACdshD,kBAAAA,CAAoBvhD,qBAAAA,CACpBwhD,kBAAAA,CAAoBzhD,oBACrB,CAAA,CACA,IAAI0hD,qBAAAA,CAAwB,MAAMC,sBAAAA,CACjC,OAAOC,gBAAAA,CAAiB31C,MAAM,CAAE18B,QAAQ,CAAE,CACzC,MAAMsyE,qBAAAA,CAAyBC,QAAAA,EAAAA,CAC9B,IAAIC,mBAAAA,CAAsBD,QAAAA,CAASC,mBAAmB,EAAI,MAAA,CAC1D,GAAI,CAAChlF,KAAAA,CAAMC,OAAO,CAAC+kF,mBAAAA,CAAAA,CAAsB,CACxCA,mBAAAA,CAAsB,CAACA,mBAAAA,EAAoB,CAE5C,OAAOA,mBACR,CAAA,CACA,MAAMC,UAAAA,CAAa,CAACC,IAAKC,GAAAA,CAAKzW,QAAAA,CAAUqW,QAAAA,GAAAA,CACvC,MAAMK,WAAAA,CAAcl2C,MAAAA,CAAOuG,QAAQ,CAAGyvC,GAAAA,CAAMC,GAAAA,CAC5C,IAAIE,iBAAAA,CAAoB,EAAA,CACxB,GAAI,CAAC3W,QAAAA,CAAU,CACd,GAAIqW,QAAAA,CAASxQ,qBAAqB,CAAE,CACnC8Q,iBAAAA,EAAqB,iCACtB,CACA,MAAML,mBAAAA,CAAsBF,qBAAAA,CAAsBC,QAAAA,CAAAA,CAClD,IAAK,IAAI/jF,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAKkuC,MAAAA,CAAOikB,mBAAmB,CAAEnyD,EAAAA,EAAAA,CAAM,CACvDqkF,iBAAAA,EAAqB,CAAC,yBAAyB,EAAErkF,EAAAA;AACtD,CAAC,CACI,MAAMskF,OAAAA,CAAUN,mBAAmB,CAAChkF,EAAAA,CAAG,EAAI,MAAA,CAC3CqkF,iBAAAA,EAAqB,CAAC,gBAAgB,EAAErkF,EAAAA,CAAG,CAAC,EAAEskF,OAAAA;AACnD,EAAC,CAEE,CACA,OAAOD,iBAAAA,CAAoBD,WAC5B,CAAA,CACA,MAAMG,cAAAA,CAAiB,CAAC7W,QAAAA,CAAUqW,QAAAA,GAAAA,CACjC,IAAIj/E,IAAAA,CAAO8+E,sBAAAA,CAAuBY,cAAc,CAC/Ct2C,MAAAA,CACAw/B,QAAAA,CAAW,QAAA,CAAW,UAAA,CACtB,CAACA,QAAAA,EAAYqW,QAAAA,CAASxQ,qBAAoB,CAAA,CAE3C,GAAI,CAAC7F,QAAAA,CAAU,CACd,MAAMsW,mBAAAA,CAAsBF,qBAAAA,CAAsBC,QAAAA,CAAAA,CAClD,IAAK,IAAI/jF,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAKkuC,MAAAA,CAAOikB,mBAAmB,CAAEnyD,EAAAA,EAAAA,CAAM,CACvD,MAAMykF,WAAAA,CAAcT,mBAAmB,CAAChkF,EAAAA,CAAG,EAAI,MAAA,CAC/C,MAAM0kF,WAAAA,CAAcz4C,0BAAAA,CAA2BvvC,GAAG,CAAC+nF,WAAAA,CAAAA,CACnD3/E,IAAAA,EAAQ,CAAC,eAAe,EAAE9E,EAAAA,CAAG,GAAG,EAAE0kF,WAAAA,CAAY;AACnD,EAAC,CAEE,CACA,OAAO5/E,IACR,CAAA,CACA,MAAMhC,IAAAA,CAAO0O,QAAAA,CAAS1O,IAAI,EAAI,UAAA,CAC9B,IAAI6hF,QAAAA,CACJ,IAAIC,SACJ,MAAMC,iBAAAA,CAAoBjB,uBAAuBkB,cAAc,CAAC52C,OAAQ18B,QAAAA,CAASuzE,aAAa,EAC9F,MAAMC,mBAAAA,CAAsBpB,uBAAuBkB,cAAc,CAAC52C,OAAQ18B,QAAAA,CAASyzE,eAAe,EAClG,MAAMlN,IAAAA,CAAOvmE,SAAS8mE,cAAc,GAAKpyC,oBACzC,GAAI6xC,IAAAA,CAAM,CACT4M,QAAAA,CAAW;AACd,QAAQ,EAAEJ,eAAe,IAAA,CAAM/yE,QAAAA,CAAAA;AAC/B,QAAQ,EAAEqzE,iBAAAA;AACV,QAAQ,EAAElC,kBAAAA;AACV,QAAQ,EAAEH,oBAAAA;AACV,QAAQ,EAAEE,mBAAAA;AACV,QAAQ,EAAElxE,SAAS0mE,UAAU;AAC7B,MAAM,CAAC,CACJ0M,QAAAA,CAAW;AACd,QAAQ,EAAEL,eAAe,KAAA,CAAO/yE,QAAAA,CAAAA;AAChC,QAAQ,EAAEwzE,mBAAAA;AACV,QAAQ,EAAErC,kBAAAA;AACV,QAAQ,EAAEJ,mBAAAA;AACV,QAAQ,EAAEG,mBAAAA;AACV,QAAQ,EAAElxE,SAAS2mE,YAAY;AAC/B,MAAM,EAAC,CACL,KAAO,CACNwM,QAAAA,CAAW,CAAC,EAAEf,sBAAAA,CAAuBsB,WAAW,CAACh3C,MAAAA,CAAAA,CAAU+1C,UAAAA,CAAW3B,gBAAiBF,cAAAA,CAAgB,IAAA,CAAM5wE,UAAYqzE,iBAAAA,CAAoBjB,sBAAAA,CAAuBuB,aAAa,CAACj3C,MAAAA,CAAAA;AACrL,QAAQ,EAAEu0C,cAAAA;AACV,QAAQ,EAAEmB,sBAAAA,CAAuBwB,iBAAiB,CAACtiF,IAAAA,CAAAA;AACnD,QAAQ,EAAE0O,QAAAA,CAAS0mE,UAAU,CAAC,CAAC,CAC5B0M,QAAAA,CAAW,CAAC,EAAGpzE,CAAAA,QAAAA,CAAS6zE,gBAAgB,EAAI,EAAC,EAAKzB,sBAAAA,CAAuBsB,WAAW,CAACh3C,MAAAA,CAAAA,CAAU+1C,UAAAA,CAAW5B,cAAAA,CAAgBF,aAAAA,CAAe,KAAA,CAAO3wE,QAAAA,CAAAA,CAAYwzE,mBAAAA,CAAsBpB,sBAAAA,CAAuBuB,aAAa,CAACj3C,MAAAA,CAAAA;AAC1N,QAAQ,EAAEu0C,cAAAA;AACV,QAAQ,EAAEmB,sBAAAA,CAAuBwB,iBAAiB,CAACtiF,IAAAA,CAAAA;AACnD,QAAQ,EAAE0O,QAAAA,CAAS2mE,YAAY,CAAC,EAC9B,CACA,OAAO,CACNr1E,KACAw1E,cAAAA,CAAgB9mE,QAAAA,CAAS8mE,cAAc,EAAIryC,mBAAAA,CAC3Cg1B,WAAYzpD,QAAAA,CAASypD,UAAU,CAC/B6P,OAAAA,CAAS6Z,QAAAA,CACTW,SAAAA,CAAW9zE,QAAAA,CAAS+zE,cAAc,CAClCC,SAAAA,CAAWh0E,SAASi0E,gBAAgB,CACpCza,QAAS4Z,QAAAA,CACTc,gBAAAA,CAAkBl0E,SAASk0E,gBAAgB,CAC3CC,qBAAsBn0E,QAAAA,CAASm0E,oBAAoB,CACnDC,oBAAAA,CAAsBp0E,QAAAA,CAASo0E,oBAAoB,CACnDxZ,uBAAAA,CAAyB56D,QAAAA,CAAS46D,uBAAuB,CACzDC,mBAAAA,CAAqB76D,QAAAA,CAAS66D,mBAAmB,CACjDkH,qBAAAA,CAAuB,CAAC,CAAC/hE,QAAAA,CAAS+hE,qBAAoB,CAExD,CACA,OAAOiR,cAAAA,CAAet2C,MAAM,CAAEwoC,UAAU,CAAEnD,qBAAAA,CAAwB,KAAK,CAAE,CACxE,IAAIzuE,KAAO,EAAA,CACX,GAAIopC,OAAOwa,iBAAiB,CAAE,CAC7B5jD,IAAAA,EAAQ,gBACT,CACA,GAAI4xE,UAAAA,GAAe,YAAcxoC,MAAAA,CAAOua,sBAAsB,CAAE,CAC/D3jD,IAAAA,EAAQ,4BACT,CACA,GAAI4xE,UAAAA,GAAe,UAAA,EAAcnD,sBAAuB,CACvDzuE,IAAAA,EAAQ,iCACT,CACA,GAAIopC,OAAOya,iBAAiB,CAAE,CAC7B7jD,IAAAA,EAAQ,sBACT,CACA,GAAIopC,MAAAA,CAAO2a,kBAAkB,CAAE,CAC9B/jD,MAAQ,0BACT,CACA,GAAI4xE,UAAAA,GAAe,SAAA,EAAaxoC,OAAO4a,sBAAsB,CAAE,CAC9DhkD,IAAAA,EAAQ,8BACT,CACA,GAAIopC,MAAAA,CAAO6a,qCAAqC,CAAE,CACjDjkD,MAAQ,8CACT,CACA,GAAIopC,MAAAA,CAAO8a,8BAA8B,CAAE,CAC1ClkD,IAAAA,EAAQ,uCACT,CACA,GAAIopC,MAAAA,CAAO+a,kCAAkC,CAAE,CAC9CnkD,IAAAA,EAAQ,6CACT,CACA,GAAIopC,OAAOgb,4BAA4B,CAAE,CACxCpkD,IAAAA,EAAQ,sCACT,CACA,OAAOA,IACR,CACA,OAAOggF,cAAAA,CAAe52C,MAAM,CAAEiwC,OAAO,CAAE,CACtC,IAAIr5E,KAAO,EAAA,CACXopC,MAAAA,CAAOka,WAAW,CAAC17C,OAAO,CAAC,CAAC7E,KAAAA,CAAOE,OAClCjD,IAAAA,EAAQ,CAAC,QAAQ,EAAEiD,GAAAA,CAAI,CAAC,EAAEF,KAAAA;AAC7B,EAAC,CACC,CAAA,CACA/C,IAAAA,EAAQ,IAAA,CACRq5E,SAASzxE,OAAAA,CAAQ,CAAC7E,KAAAA,CAAOE,GAAAA,GAAAA,CACxBjD,MAAQ,CAAC,QAAQ,EAAEiD,GAAAA,CAAI,CAAC,EAAEF,KAAAA;AAC7B,EAAC,CACC,CAAA,CACA/C,IAAAA,EAAQ,IAAA,CACR,OAAOA,IACR,CAEA,OAAOsgF,iBAAAA,CAAkBtiF,IAAI,CAAE,CAC9B,OAAO,CAAC,oBAAoB,EAAEA,IAAAA;AAChC,CAAC,CAEA,OAAOoiF,WAAAA,CAAYh3C,MAAM,CAAE,CAC1B,OAAOA,MAAAA,CAAOuG,QAAQ,CAAG,gBAAA,CAAmB,mBAC7C,CACA,OAAO0wC,aAAAA,CAAcj3C,MAAM,CAAE23C,cAAc,CAAE,CAC5C,GAAIA,cAAAA,EAAkBA,cAAAA,GAAmB,OAAA,EAAWA,cAAAA,GAAmB,SAAA,EAAaA,cAAAA,GAAmB,MAAA,CAAQ,CAC9GA,eAAiB,KAClB,CACA,GAAIA,cAAAA,CAAgB,CACnB,GAAIA,cAAAA,GAAmB,OAAA,EAAW33C,OAAO43C,YAAY,GAAK,OAAA,CAAS,CAClED,cAAAA,CAAiB,UAClB,CACA,GAAIA,iBAAmB,SAAA,EAAa33C,MAAAA,CAAO43C,YAAY,GAAK,MAAA,CAAQ,CACnED,cAAAA,CAAiB,OAClB,CACD,CACA,MAAMvsE,SAAAA,CAAYusE,cAAAA,CAAiBA,cAAAA,CAAiB33C,MAAAA,CAAO50B,SAAS,CACpE,MAAMxU,IAAAA,CAAO;AACf,gBAAgB,EAAEwU,SAAAA,CAAU;AAC5B,gBAAgB,EAAEA,SAAAA,CAAU;AAC5B,gBAAgB,EAAEA,SAAAA,CAAU;AAC5B,gBAAgB,EAAEA,SAAAA,CAAU;AAC5B,gBAAgB,EAAEA,SAAAA,CAAU;AAC5B,gBAAgB,EAAEA,SAAAA,CAAU;AAC5B,gBAAgB,EAAEA,SAAAA,CAAU;AAC5B,IAAI,CAAC,CACH,OAAOxU,IACR,CACA,OAAOihF,iBAAAA,CAAkBC,MAAM,CAAE,CAChC,MAAMC,OAAAA,CAAU,EAAC,CACjB,IAAIC,KAAAA,CAAQ,CAAA,CACZ,IAAIC,KAAAA,CAAQH,MAAAA,CAAOj9E,OAAO,CAAC,WAAA,CAAA,CAC3B,MAAOo9E,KAAAA,EAAS,CAAA,CAAG,CAClB,GAAIA,MAAQ,CAAA,EAAKH,MAAM,CAACG,KAAAA,CAAQ,EAAE,GAAK,GAAA,CAAK,MAC5C,IAAIC,MAAAA,CAAS,KAAA,CACb,GAAID,KAAAA,CAAQ,EAAG,CACd,IAAIE,WAAAA,CAAcL,MAAAA,CAAOhlF,WAAW,CAAC,IAAA,CAAMmlF,KAAAA,CAAAA,CAC3CE,WAAAA,CAAcA,cAAgB,EAAC,CAAIA,WAAAA,CAAc,CAAA,CAAI,EACrD,MAAMC,eAAAA,CAAkBN,MAAAA,CAAO/kF,SAAS,CAAColF,WAAAA,CAAaF,KAAAA,CAAAA,CACtD,GAAIG,eAAAA,CAAgBljF,QAAQ,CAAC,GAAA,CAAA,CAAM,CAClCgjF,MAAAA,CAAS,KACV,CACD,CACA,GAAI,CAACA,MAAAA,CAAQ,CACZ,MAAMG,SAAAA,CAAYP,OAAOj9E,OAAO,CAAC,GAAA,CAAKo9E,KAAAA,CAAAA,CACtC,MAAMK,iBAAAA,CAAoBR,MAAAA,CAAOhlF,WAAW,CAAC,IAAKulF,SAAAA,CAAAA,CAClD,MAAME,UAAAA,CAAaT,MAAAA,CAAO/kF,SAAS,CAACulF,iBAAAA,CAAoB,CAAA,CAAGD,SAAAA,CAAAA,CAC3D,GAAIN,OAAO,CAACQ,UAAAA,CAAW,CAAE,CACzB,KAAO,CACN,MAAM/iC,QAAAA,CAAWk/B,gBAAgB,CAAC6D,UAAAA,CAAW,CAC7C,GAAI/iC,QAAAA,GAAa,MAAK,CAAG,CACxBuiC,OAAO,CAACQ,UAAAA,CAAW,CAAG/iC,SACvB,MAAO,CACNuiC,OAAO,CAACQ,UAAAA,CAAW,CAAG,CAAC,IAAI,EAAEP,KAAAA,CAAM,CAAC,CACpCA,KAAAA,GACD,CACD,CACD,CACAC,KAAAA,CAAQH,MAAAA,CAAOj9E,OAAO,CAAC,WAAA,CAAao9E,KAAAA,CAAQ,CAAA,EAC7C,CACA,OAAOF,OACR,CACD,CAAA,CAEA,IAAIS,GAAAA,CAAM,CAAA,CACV,IAAIC,MAAAA,CAAS,MA6CZv4B,IAAAA,EAAO,CACN,IAAI,CAAC6oB,KAAK,CAAG,KACb,CAAA,IAAI,CAAC9M,MAAM,CAAG,MACf,CACA,IAAIyN,KAAAA,EAAQ,CACX,OAAO,CAAC,UAAU,EAAE,IAAI,CAACzrC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC4qC,UAAU,CAACuB,cAAc,GAAKpyC,mBAAAA,CAAsB,MAAA,CAAS,MAAA,CAAO,EAAE,EAAE,IAAI,CAACpjC,IAAI,CAAC,CAAC,CAEzHuqC,OAAAA,EAAU,CACT,IAAI,CAACa,MAAM,CAACqb,eAAe,CAAC,IAAI,CAAA,CAChC,IAAI,CAACjc,IAAI,CAACD,OAAO,CAAC,IAAI,EACvB,CACAQ,WAAAA,EAAc,CACb,IAAI,CAACugB,IAAI,EAAA,CACT,IAAI,CAAC9gB,IAAI,CAACO,WAAW,GACtB,CACA0S,gBAAiB,CAChB,IAAI,CAACjT,IAAI,CAACiT,cAAc,CAAC,IAAI,CAACrS,MAAM,CAAE,IAAI,EAC3C,CA1DA,YAAYJ,cAAc,CAAEipC,UAAU,CAAE,CAHxC3K,gBAAAA,CAAAA,IAAAA,CAAAA,yBAAAA,CAAAA,MAAAA,CAAAA,CACAC,sBAAAA,qBAAAA,CAAAA,MAAAA,CAAAA,CACApR,gBAAAA,CAAAA,IAAAA,CAAAA,aAA6B,IAAI7yD,GAAAA,CAEhC,CAAA,IAAI,CAAC+jC,EAAE,CAAGu6C,GAAAA,EACV,CAAA,IAAI,CAACx4C,MAAM,CAAGJ,eACdipC,UAAAA,CAAa,CAAE,GAAGA,UAAU,CAC5B,CAAA,IAAI,CAACA,UAAU,CAAGA,UAClB,CAAA,IAAI,CAACj0E,IAAI,CAAGi0E,UAAAA,CAAWj0E,IAAI,EAAI,UAAA,CAC/B,IAAI,CAACsrD,IAAI,GACT,GAAI2oB,UAAAA,CAAW9C,OAAO,CAAE,CACvB,MAAM2S,WAAAA,CAAcjD,qBAAAA,CAAsBa,cAAc,CAAC12C,cAAAA,CAAgB,SAAA,CAAA,CACzE,MAAM+4C,YAAclD,qBAAAA,CAAsBmB,cAAc,CAACh3C,cAAAA,CAAgBipC,WAAW+P,QAAQ,CAAA,CAC5F,MAAM7S,OAAAA,CAAU2S,YAAcC,WAAAA,CAAc9P,UAAAA,CAAW9C,OAAO,CAC9D,MAAM8S,SAAAA,CAAY,IAAI3+E,GAAAA,CAAI2uE,UAAAA,CAAWgQ,SAAS,CAAA,CAC9C,GAAI,CAACA,SAAAA,CAAUhgF,GAAG,CAAC,aAAA,CAAA,CAAgB,CAClCggF,SAAAA,CAAUpgF,GAAG,CAAC,aAAA,CAAeg8E,kBAAAA,EAC9B,CACA5L,UAAAA,CAAW9C,OAAO,CAAG6J,YAAAA,CAAarT,GAAG,CAACwJ,OAAAA,CAAS8S,SAAAA,CAAW,CACzD/I,WAAY,CAAC,mBAAmB,EAAE,IAAI,CAACpG,KAAK,CAAC,CAAC,CAC9C0G,aAAc,IACf,CAAA,EACD,CAAA,KAAO,CACN,MAAMvG,IAAAA,CAAOhB,UAAAA,CAAWuB,cAAc,GAAKpyC,mBAC3C6wC,CAAAA,UAAAA,CAAWjM,OAAO,CAAGgT,YAAAA,CAAarT,GAAG,CAACsM,UAAAA,CAAWjM,OAAO,CAAEiM,UAAAA,CAAWuO,SAAS,CAAE,CAC/EtH,UAAAA,CAAY,CAAC,kBAAkB,EAAE,IAAI,CAACpG,KAAK,CAAC,CAAC,CAC7C0G,YAAAA,CAAcvG,IACf,CAAA,CAAA,CACA,GAAIhB,WAAWuB,cAAc,GAAKryC,mBAAAA,CAAqB,CACtD8wC,WAAW9b,UAAU,GAAK8b,UAAAA,CAAW9b,UAAU,CAAG0oB,qBAAAA,CAAsBoC,iBAAiB,CAAChP,UAAAA,CAAWjM,OAAO,CAAA,EAC7G,CACA,MAAM4T,2BAAAA,CAA8B5wC,cAAAA,CAAeqd,QAAQ,GAAKtoD,QAAAA,CAASC,IAAI,GAAK,OAASD,QAAAA,CAASC,IAAI,GAAK,KAAI,CACjHi0E,CAAAA,UAAAA,CAAW/L,OAAO,CAAG8S,aAAarT,GAAG,CAACsM,UAAAA,CAAW/L,OAAO,CAAE+L,UAAAA,CAAWyO,SAAS,CAAE,CAC/E9G,4BACAJ,YAAAA,CAAcvG,IAAAA,CACdiG,UAAAA,CAAY,CAAC,oBAAoB,EAAE,IAAI,CAACpG,KAAK,CAAC,CAAA,CAC/C,CAAA,CACA,GAAI,CAACb,UAAAA,CAAWjM,OAAO,EAAI,CAACiM,UAAAA,CAAW/L,OAAO,CAAE,CAC/C,IAAI,CAACb,MAAM,CAAG,IAAA,CACd,MACD,CACD,CACA,IAAI,CAAC78B,IAAI,CAAGQ,cAAAA,CAAek5C,gBAAgB,CAAC,IAAI,EACjD,CAmBD,CAAA,CAEA,IAAIC,UAAAA,CAAa,KAAA,CAAA,WAAA,EAAA,CAChB5sC,gBAAAA,CAAAA,IAAAA,CAAAA,WAAAA,CAAAA,MAAAA,CAAAA,CACAshC,gBAAAA,CAAAA,IAAAA,CAAAA,eAAAA,CAAAA,QACAjuE,gBAAAA,CAAAA,IAAAA,CAAAA,QAAAA,CAAAA,MAAAA,CAAAA,CACAhJ,sBAAAA,MAAAA,CAAAA,MAAAA,EAAAA,CACD,CAAA,CACA,IAAIwiF,uBAAAA,CAA0B,KAAA,CAAA,WAAA,EAAA,CAC7BtyC,gBAAAA,CAAAA,IAAAA,CAAAA,SAAAA,CAAAA,MAAAA,CAAAA,CACAyF,gBAAAA,CAAAA,IAAAA,CAAAA,WAAAA,CAAAA,QACA3sC,gBAAAA,CAAAA,IAAAA,CAAAA,QAAAA,CAAAA,MAAAA,EAAAA,CACD,EACA,IAAIy5E,cAAAA,CAAiB,KAAA,CAWpB95C,OAAAA,EAAU,CACT,IAAI,CAAC+5C,UAAU,CAAC16E,OAAO,CAAC,SAAC2tC,EAAAA,CACxBA,UAAUhN,OAAO,CAAC,IAAI,CAACa,MAAM,EAC9B,CAAA,CACA,CAAA,IAAI,CAACk5C,UAAU,CAAG,IAAA,CAClB,IAAI,CAACC,cAAc,CAAC36E,OAAO,CAAC,aAACivE,EAAAA,CAC5BA,aAAAA,CAActuC,OAAO,CAAC,IAAI,CAACa,MAAM,EAClC,CAAA,CACA,CAAA,IAAI,CAACm5C,cAAc,CAAG,IACtB,CAAA,IAAI,CAACC,WAAW,CAAG,IACnB,CAAA,IAAI,CAACC,YAAY,CAAG,KACrB,CACAC,MAAMptC,UAAU,CAAE11C,IAAI,CAAE,CACvB,GAAI,IAAI,CAAC6iF,YAAY,CAAE,CACtB,MAAME,aAAAA,CAAgB30E,IAAAA,CAAK0B,OAAO,CAAC,IAAI,CAAC+yE,YAAY,CAAC7iF,IAAI,CAAE,IAAI,CAACgjF,eAAe,CAAA,CAC/E,MAAMC,KAAAA,CAAQ,IAAI,CAACC,UAAU,CAAGH,aAAAA,CAChC,GAAIE,KAAAA,CAAQjjF,IAAAA,CAAM,CACjB,IAAI,CAACmjF,cAAc,GACpB,CACD,CACA,GAAI,CAAC,IAAI,CAACN,YAAY,CAAE,CACvB,IAAIltC,SAAAA,CAAY,IAAI,CAAC+sC,UAAU,CAAC9lF,GAAG,EAAA,CACnC,GAAI,CAAC+4C,SAAAA,CAAW,CACfA,UAAY,IAAI,CAACuf,YAAY,CAAC,IAAI,CAAC1rB,MAAM,CAAE,IAAI,CAAC05C,UAAU,CAAE,KAAA,EAC7D,CACA,IAAIjM,aAAAA,CAAgB,IAAI,CAAC0L,cAAc,CAAC/lF,GAAG,EAAA,CAC3C,GAAI,CAACq6E,cAAe,CACnBA,aAAAA,CAAgB,IAAI,CAAC/hB,YAAY,CAAC,IAAI,CAAC1rB,MAAM,CAAE,IAAI,CAAC05C,UAAU,CAAE,IAAA,EACjE,CACA,IAAI,CAACL,YAAY,CAAG,IAAIN,UACxB,CAAA,IAAI,CAACM,YAAY,CAAC5L,aAAa,CAAGA,aAClC,CAAA,IAAI,CAAC4L,YAAY,CAACltC,SAAS,CAAGA,SAC9B,CAAA,IAAI,CAACktC,YAAY,CAAC75E,MAAM,CAAG,CAC3B,CAAA,IAAI,CAAC65E,YAAY,CAAC7iF,IAAI,CAAG,EAC1B,CACA,MAAM6iF,YAAAA,CAAe,IAAI,CAACA,YAAY,CACtC,MAAMO,aAAeh1E,IAAAA,CAAK0B,OAAO,CAAC+yE,YAAAA,CAAa7iF,IAAI,CAAE,IAAI,CAACgjF,eAAe,CACzEttC,CAAAA,UAAAA,CAAWC,SAAS,CAAGktC,aAAaltC,SACpCD,CAAAA,UAAAA,CAAW1sC,MAAM,CAAGo6E,YACpB1tC,CAAAA,UAAAA,CAAWxF,OAAO,CAAG2yC,YAAAA,CAAa5L,aAAa,CAAC6L,KAAK,CAACM,YAAAA,CAAcpjF,IAAAA,CACpE6iF,CAAAA,YAAAA,CAAa7iF,IAAI,CAAGojF,YAAAA,CAAepjF,KACpC,CACAmjF,cAAAA,EAAiB,CAChB,GAAI,IAAI,CAACN,YAAY,CAAE,CACtB,IAAI,CAACD,WAAW,CAACxmF,IAAI,CAAC,IAAI,CAACymF,YAAY,CACvC,CAAA,IAAI,CAACA,YAAY,CAAG,KACrB,CACD,CACAzM,MAAAA,EAAS,CACR,IAAI,CAAC+M,cAAc,GACpB,CAvDA,WAAA,CAAY35C,MAAM,CAAE05C,UAAU,CAAEF,eAAe,CAAE,CALjDE,gBAAAA,CAAAA,IAAAA,CAAAA,aAAAA,MAAAA,CAAAA,CACAR,gBAAAA,CAAAA,IAAAA,CAAAA,YAAAA,CAAa,EAAE,CAAA,CACfC,gBAAAA,CAAAA,IAAAA,CAAAA,gBAAAA,CAAiB,EAAE,EACnBC,gBAAAA,CAAAA,IAAAA,CAAAA,aAAAA,CAAc,EAAE,CAAA,CAChBC,sBAAAA,cAAAA,CAAe,IAAA,CAEd,CAAA,IAAI,CAACr5C,MAAM,CAAGA,MACd,CAAA,IAAI,CAAC05C,UAAU,CAAGA,UAClB,CAAA,IAAI,CAACF,eAAe,CAAGA,gBACxB,CAoDD,CAAA,CAEA,IAAIK,iBAAmB,EACvBA,CAAAA,gBAAgB,CAAClhD,iBAAAA,CAAkB,CAAG,SAASkS,aAAa,CAAElxC,KAAK,CAAE+F,OAAO,CAAA,CAC3E,MAAMgR,GAAAA,CAAMm6B,aAAAA,CAAcivC,cAC1BppE,CAAAA,GAAG,CAAChR,OAAAA,CAAQ,CAAG/F,MAChB,CACAkgF,CAAAA,gBAAgB,CAACjhD,gBAAAA,CAAiB,CAAG,CAACiS,aAAAA,CAAelxC,MAAO+F,OAAAA,GAAAA,CAC3D,MAAMgR,GAAAA,CAAMm6B,aAAAA,CAAcivC,cAAc,CACxCppE,GAAG,CAAChR,QAAQ,CAAG/F,KAAK,CAAC,CAAA,CAAE,CACvB+W,GAAG,CAAChR,OAAAA,CAAU,EAAE,CAAG/F,KAAK,CAAC,CAAA,EAAE,CAE5BkgF,CAAAA,gBAAgB,CAAChhD,gBAAAA,CAAiB,CAAG,CAACgS,aAAAA,CAAelxC,MAAO+F,OAAAA,GAAAA,CAC3D,MAAMgR,GAAAA,CAAMm6B,aAAAA,CAAcivC,cAAc,CACxCppE,GAAG,CAAChR,QAAQ,CAAG/F,KAAK,CAAC,CAAA,CAAE,CACvB+W,GAAG,CAAChR,OAAAA,CAAU,EAAE,CAAG/F,KAAK,CAAC,CAAA,CAAE,CAC3B+W,GAAG,CAAChR,OAAAA,CAAU,CAAA,CAAE,CAAG/F,KAAK,CAAC,GAAE,CAE5BkgF,CAAAA,gBAAgB,CAAC/gD,gBAAAA,CAAiB,CAAG,CAAC+R,aAAAA,CAAelxC,MAAO+F,OAAAA,GAAAA,CAC3D,MAAMgR,GAAAA,CAAMm6B,aAAAA,CAAcivC,cAAc,CACxCppE,GAAG,CAAChR,QAAQ,CAAG/F,KAAK,CAAC,CAAA,CAAE,CACvB+W,GAAG,CAAChR,OAAAA,CAAU,EAAE,CAAG/F,KAAK,CAAC,CAAA,CAAE,CAC3B+W,GAAG,CAAChR,QAAU,CAAA,CAAE,CAAG/F,KAAK,CAAC,EAAE,CAC3B+W,GAAG,CAAChR,QAAU,CAAA,CAAE,CAAG/F,KAAK,CAAC,GAAE,CAE5BkgF,CAAAA,gBAAgB,CAACnhD,eAAAA,CAAgB,CAAG,SAASmS,aAAa,CAAElxC,KAAK,CAAE+F,OAAO,CAAA,CACzE,MAAMgR,GAAAA,CAAMm6B,aAAAA,CAAc6jC,YAC1Bh+D,CAAAA,GAAG,CAAChR,OAAAA,CAAQ,CAAG/F,MAChB,CACAkgF,CAAAA,gBAAgB,CAAC9gD,iBAAAA,CAAkB,CAAG,SAAS8R,aAAa,CAAElxC,KAAK,CAAE+F,OAAO,CAAA,CAC3E,MAAMgR,GAAAA,CAAMm6B,aAAAA,CAAc6jC,YAC1Bh+D,CAAAA,GAAG,CAAChR,OAAAA,CAAQ,CAAG/F,KAAK,CAAC,CAAA,CAAE,CACvB+W,GAAG,CAAChR,OAAAA,CAAU,CAAA,CAAE,CAAG/F,KAAK,CAAC,CAAA,EAC1B,CACAkgF,CAAAA,gBAAgB,CAAC7gD,iBAAAA,CAAkB,CAAG,SAAS6R,aAAa,CAAElxC,KAAK,CAAE+F,OAAO,CAAA,CAC3E,MAAMgR,GAAAA,CAAMm6B,cAAc6jC,YAC1Bh+D,CAAAA,GAAG,CAAChR,OAAAA,CAAQ,CAAG/F,KAAK,CAAC,EAAE,CACvB+W,GAAG,CAAChR,QAAU,CAAA,CAAE,CAAG/F,KAAK,CAAC,CAAA,CACzB+W,CAAAA,GAAG,CAAChR,OAAAA,CAAU,CAAA,CAAE,CAAG/F,KAAK,CAAC,CAAA,EAC1B,CACAkgF,CAAAA,gBAAgB,CAAC5gD,iBAAAA,CAAkB,CAAG,SAAS4R,aAAa,CAAElxC,KAAK,CAAE+F,OAAO,EAC3E,MAAMgR,GAAAA,CAAMm6B,aAAAA,CAAc6jC,YAAY,CACtCh+D,GAAG,CAAChR,OAAAA,CAAQ,CAAG/F,KAAK,CAAC,CAAA,CACrB+W,CAAAA,GAAG,CAAChR,OAAAA,CAAU,EAAE,CAAG/F,KAAK,CAAC,CAAA,CAAE,CAC3B+W,GAAG,CAAChR,OAAAA,CAAU,EAAE,CAAG/F,KAAK,CAAC,CAAA,CAAE,CAC3B+W,GAAG,CAAChR,OAAAA,CAAU,EAAE,CAAG/F,KAAK,CAAC,CAAA,EAAE,CAE5BkgF,CAAAA,gBAAgB,CAACxgD,iBAAiB,CAAG,CAACwR,aAAAA,CAAelxC,KAAAA,CAAO+F,OAAAA,GAAAA,CAC3D,MAAMgR,GAAAA,CAAMm6B,aAAAA,CAAcivC,cAAc,CACxCppE,GAAG,CAAChR,QAAQ,CAAG/F,KAAK,CAAC,CAAA,CAAE,CACvB+W,GAAG,CAAChR,OAAAA,CAAU,EAAE,CAAG/F,KAAK,CAAC,CAAA,CAAE,CAC3B+W,GAAG,CAAChR,OAAAA,CAAU,EAAE,CAAG/F,KAAK,CAAC,CAAA,CAAE,CAC3B+W,GAAG,CAAChR,OAAAA,CAAU,CAAA,CAAE,CAAG/F,KAAK,CAAC,EAAE,CAC3B+W,GAAG,CAAChR,QAAU,CAAA,CAAE,CAAG/F,KAAK,CAAC,EAAE,CAC3B+W,GAAG,CAAChR,QAAU,CAAA,CAAE,CAAG/F,KAAK,CAAC,GAAE,CAE5BkgF,CAAAA,gBAAgB,CAACvgD,gBAAAA,CAAiB,CAAG,CAACuR,aAAAA,CAAelxC,MAAO+F,OAAAA,GAAAA,CAC3D,MAAMgR,GAAAA,CAAMm6B,aAAAA,CAAcivC,cAC1BppE,CAAAA,GAAG,CAAChR,OAAAA,CAAQ,CAAG/F,KAAK,CAAC,EAAE,CACvB+W,GAAG,CAAChR,QAAU,CAAA,CAAE,CAAG/F,KAAK,CAAC,EAAE,CAC3B+W,GAAG,CAAChR,QAAU,CAAA,CAAE,CAAG/F,KAAK,CAAC,EAAE,CAC3B+W,GAAG,CAAChR,QAAU,CAAA,CAAE,CAAG/F,KAAK,CAAC,CAAA,CACzB+W,CAAAA,GAAG,CAAChR,OAAAA,CAAU,CAAA,CAAE,CAAG/F,KAAK,CAAC,CAAA,CACzB+W,CAAAA,GAAG,CAAChR,OAAAA,CAAU,CAAA,CAAE,CAAG/F,KAAK,CAAC,CAAA,CACzB+W,CAAAA,GAAG,CAAChR,OAAAA,CAAU,CAAA,CAAE,CAAG/F,KAAK,CAAC,CAAA,CACzB+W,CAAAA,GAAG,CAAChR,OAAAA,CAAU,CAAA,CAAE,CAAG/F,KAAK,CAAC,CAAA,CAAE,CAC3B+W,GAAG,CAAChR,OAAAA,CAAU,EAAA,CAAG,CAAG/F,KAAK,CAAC,CAAA,EAAE,CAE7BkgF,CAAAA,gBAAgB,CAACngD,sBAAAA,CAAuB,CAAG,SAASmR,aAAa,CAAElxC,KAAK,CAAE+F,OAAO,CAAEiiC,KAAK,CAAA,CACvF,MAAMjxB,IAAMm6B,aAAAA,CAAcivC,cAAc,CACxC,IAAK,IAAIhoF,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAK6vC,KAAAA,CAAO7vC,EAAAA,EAAAA,CAAM,CAClC4e,GAAG,CAAChR,QAAU5N,EAAAA,CAAK,CAAA,CAAE,CAAG6H,KAAK,CAAC7H,EAAAA,EAC/B,CACD,CACA+nF,CAAAA,gBAAgB,CAAC//C,qBAAAA,CAAsB,CAAG,CAAC+Q,aAAAA,CAAelxC,KAAAA,CAAO+F,OAAAA,CAASiiC,KAAAA,GAAAA,CACzE,MAAMjxB,GAAAA,CAAMm6B,aAAAA,CAAcivC,cAAc,CACxC,IAAK,IAAIhoF,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAK6vC,MAAO7vC,EAAAA,EAAAA,CAAM,CAClC4e,GAAG,CAAChR,OAAAA,CAAU5N,EAAAA,CAAK,CAAA,CAAE,CAAG6H,KAAK,CAAC7H,EAAAA,CAAK,CAAA,CACnC4e,CAAAA,GAAG,CAAChR,OAAAA,CAAU5N,EAAAA,CAAK,EAAI,CAAA,CAAE,CAAG6H,KAAK,CAAC7H,GAAK,CAAA,CAAI,CAAA,EAAE,CAE/C,CACA+nF,CAAAA,gBAAgB,CAAC9/C,qBAAAA,CAAsB,CAAG,CAAC8Q,aAAAA,CAAelxC,KAAAA,CAAO+F,OAAAA,CAASiiC,SACzE,MAAMjxB,GAAAA,CAAMm6B,aAAAA,CAAcivC,cAAc,CACxC,IAAK,IAAIhoF,EAAAA,CAAK,EAAGA,EAAAA,CAAK6vC,KAAAA,CAAO7vC,EAAAA,EAAAA,CAAM,CAClC4e,GAAG,CAAChR,OAAAA,CAAU5N,EAAAA,CAAK,CAAA,CAAE,CAAG6H,KAAK,CAAC7H,EAAAA,CAAK,CAAA,CAAE,CACrC4e,GAAG,CAAChR,OAAAA,CAAU5N,GAAK,CAAA,CAAI,CAAA,CAAE,CAAG6H,KAAK,CAAC7H,EAAAA,CAAK,CAAA,CAAI,CAAA,CAC3C4e,CAAAA,GAAG,CAAChR,OAAAA,CAAU5N,EAAAA,CAAK,CAAA,CAAI,CAAA,CAAE,CAAG6H,KAAK,CAAC7H,EAAAA,CAAK,CAAA,CAAI,CAAA,EAC5C,CACD,CACA+nF,CAAAA,gBAAgB,CAAC1/C,iBAAiB,CAAG,CAAC0Q,aAAAA,CAAelxC,KAAAA,CAAO+F,QAASiiC,KAAAA,GAAAA,CACpE,MAAMjxB,GAAAA,CAAMm6B,aAAAA,CAAckvC,aAAa,CACvCrpE,GAAG,CAAChR,QAAQ,CAAG/F,MAChB,CACAkgF,CAAAA,gBAAgB,CAACz/C,iBAAAA,CAAkB,CAAG,CAACyQ,aAAAA,CAAelxC,KAAAA,CAAO+F,OAAAA,CAASiiC,KAAAA,GAAAA,CACrE,MAAMjxB,GAAAA,CAAMm6B,aAAAA,CAAckvC,aAC1BrpE,CAAAA,GAAG,CAAChR,OAAAA,CAAQ,CAAG/F,KAAK,CAAC,CAAA,CAAE,CACvB+W,GAAG,CAAChR,OAAAA,CAAU,CAAA,CAAE,CAAG/F,KAAK,CAAC,CAAA,EAAE,CAE5BkgF,CAAAA,gBAAgB,CAACx/C,iBAAAA,CAAkB,CAAG,CAACwQ,aAAAA,CAAelxC,KAAAA,CAAO+F,OAAAA,CAASiiC,KAAAA,GAAAA,CACrE,MAAMjxB,GAAAA,CAAMm6B,aAAAA,CAAckvC,aAAa,CACvCrpE,GAAG,CAAChR,OAAAA,CAAQ,CAAG/F,KAAK,CAAC,CAAA,CACrB+W,CAAAA,GAAG,CAAChR,OAAAA,CAAU,CAAA,CAAE,CAAG/F,KAAK,CAAC,CAAA,CACzB+W,CAAAA,GAAG,CAAChR,OAAAA,CAAU,CAAA,CAAE,CAAG/F,KAAK,CAAC,CAAA,EAC1B,CACAkgF,CAAAA,gBAAgB,CAACv/C,iBAAAA,CAAkB,CAAG,CAACuQ,aAAAA,CAAelxC,KAAAA,CAAO+F,QAASiiC,KAAAA,GAAAA,CACrE,MAAMjxB,GAAAA,CAAMm6B,aAAAA,CAAckvC,aAAa,CACvCrpE,GAAG,CAAChR,QAAQ,CAAG/F,KAAK,CAAC,CAAA,CAAE,CACvB+W,GAAG,CAAChR,OAAAA,CAAU,EAAE,CAAG/F,KAAK,CAAC,CAAA,CAAE,CAC3B+W,GAAG,CAAChR,OAAAA,CAAU,EAAE,CAAG/F,KAAK,CAAC,CAAA,CAAE,CAC3B+W,GAAG,CAAChR,QAAU,CAAA,CAAE,CAAG/F,KAAK,CAAC,GAAE,CAE5BkgF,CAAAA,gBAAgB,CAACt/C,oBAAAA,CAAqB,CAAG,SAASsQ,aAAa,CAAElxC,KAAK,CAAE+F,OAAO,CAAEiiC,KAAK,CAAA,CACrF,MAAMjxB,GAAAA,CAAMm6B,aAAAA,CAAc6jC,YAAY,CACtC,IAAK,IAAI58E,EAAAA,CAAK,EAAGA,EAAAA,CAAK6vC,KAAAA,CAAO7vC,EAAAA,EAAAA,CAAM,CAClC4e,GAAG,CAAChR,OAAAA,CAAU5N,EAAAA,CAAK,EAAE,CAAG6H,KAAK,CAAC7H,EAAAA,EAAG,CAEnC,CACA+nF,CAAAA,gBAAgB,CAACp/C,qBAAAA,CAAsB,CAAGo/C,gBAAgB,CAACt/C,qBAAqB,CAChFs/C,gBAAgB,CAACr/C,sBAAsB,CAAG,SAASqQ,aAAa,CAAElxC,KAAK,CAAE+F,OAAO,CAAEiiC,KAAK,EACtF,MAAMjxB,GAAAA,CAAMm6B,aAAAA,CAAckvC,aAAa,CACvC,IAAK,IAAIjoF,EAAAA,CAAK,EAAGA,EAAAA,CAAK6vC,KAAAA,CAAO7vC,EAAAA,EAAAA,CAAM,CAClC4e,GAAG,CAAChR,OAAAA,CAAU5N,EAAAA,CAAK,CAAA,CAAE,CAAG6H,KAAK,CAAC7H,EAAAA,EAC/B,CACD,CACA+nF,CAAAA,gBAAgB,CAACn/C,uBAAuB,CAAG,CAACmQ,aAAAA,CAAelxC,KAAAA,CAAO+F,QAASiiC,KAAAA,GAAAA,CAC1E,MAAMjxB,GAAAA,CAAMm6B,aAAAA,CAAc6jC,YAAY,CACtC,IAAK,IAAI58E,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAK6vC,KAAAA,CAAO7vC,EAAAA,EAAAA,CAAM,CAClC4e,GAAG,CAAChR,OAAAA,CAAU5N,EAAAA,CAAK,EAAE,CAAG6H,KAAK,CAAC7H,EAAAA,CAAK,EAAE,CACrC4e,GAAG,CAAChR,QAAU5N,EAAAA,CAAK,CAAA,CAAI,CAAA,CAAE,CAAG6H,KAAK,CAAC7H,EAAAA,CAAK,CAAA,CAAI,CAAA,EAAE,CAE/C,CACA+nF,CAAAA,gBAAgB,CAACj/C,sBAAAA,CAAuB,CAAGi/C,gBAAgB,CAACn/C,sBAAAA,CAC5Dm/C,CAAAA,gBAAgB,CAACl/C,sBAAAA,CAAuB,CAAG,CAACkQ,aAAAA,CAAelxC,MAAO+F,OAAAA,CAASiiC,KAAAA,GAAAA,CAC1E,MAAMjxB,GAAAA,CAAMm6B,cAAckvC,aAAa,CACvC,IAAK,IAAIjoF,GAAK,CAAA,CAAGA,EAAAA,CAAK6vC,KAAAA,CAAO7vC,EAAAA,EAAAA,CAAM,CAClC4e,GAAG,CAAChR,OAAAA,CAAU5N,EAAAA,CAAK,EAAE,CAAG6H,KAAK,CAAC7H,EAAAA,CAAK,EAAE,CACrC4e,GAAG,CAAChR,OAAAA,CAAU5N,EAAAA,CAAK,CAAA,CAAI,CAAA,CAAE,CAAG6H,KAAK,CAAC7H,EAAAA,CAAK,CAAA,CAAI,GAAE,CAE/C,CACA+nF,CAAAA,gBAAgB,CAACh/C,sBAAAA,CAAuB,CAAG,CAACgQ,cAAelxC,KAAAA,CAAO+F,OAAAA,CAASiiC,KAAAA,GAAAA,CAC1E,MAAMjxB,IAAMm6B,aAAAA,CAAc6jC,YAAY,CACtC,IAAK,IAAI58E,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAK6vC,KAAAA,CAAO7vC,KAAM,CAClC4e,GAAG,CAAChR,OAAAA,CAAU5N,EAAAA,CAAK,CAAA,CAAE,CAAG6H,KAAK,CAAC7H,EAAAA,CAAK,CAAA,CAAE,CACrC4e,GAAG,CAAChR,OAAAA,CAAU5N,EAAAA,CAAK,CAAA,CAAI,EAAE,CAAG6H,KAAK,CAAC7H,EAAAA,CAAK,EAAI,CAAA,CAC3C4e,CAAAA,GAAG,CAAChR,OAAAA,CAAU5N,EAAAA,CAAK,CAAA,CAAI,CAAA,CAAE,CAAG6H,KAAK,CAAC7H,EAAAA,CAAK,CAAA,CAAI,GAAE,CAE/C,CACA+nF,CAAAA,gBAAgB,CAAC9+C,sBAAAA,CAAuB,CAAG8+C,gBAAgB,CAACh/C,sBAAAA,CAAuB,CACnFg/C,gBAAgB,CAAC/+C,sBAAAA,CAAuB,CAAG,CAAC+P,cAAelxC,KAAAA,CAAO+F,OAAAA,CAASiiC,KAAAA,GAAAA,CAC1E,MAAMjxB,IAAMm6B,aAAAA,CAAckvC,aAAa,CACvC,IAAK,IAAIjoF,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAK6vC,KAAAA,CAAO7vC,KAAM,CAClC4e,GAAG,CAAChR,OAAAA,CAAU5N,GAAK,CAAA,CAAE,CAAG6H,KAAK,CAAC7H,EAAAA,CAAK,CAAA,CAAE,CACrC4e,GAAG,CAAChR,OAAAA,CAAU5N,EAAAA,CAAK,CAAA,CAAI,EAAE,CAAG6H,KAAK,CAAC7H,EAAAA,CAAK,EAAI,CAAA,CAC3C4e,CAAAA,GAAG,CAAChR,OAAAA,CAAU5N,EAAAA,CAAK,CAAA,CAAI,CAAA,CAAE,CAAG6H,KAAK,CAAC7H,EAAAA,CAAK,CAAA,CAAI,GAAE,CAE/C,CAAA,CACA,IAAIkoF,cAAgB,KAAA,CAqBnB76C,OAAAA,EAAU,CACT,GAAI,IAAI,CAAC6M,UAAU,CAAE,CACpB,MAAMhM,MAAAA,CAAS,IAAI,CAACA,MAAM,CAC1BA,MAAAA,CAAOiS,OAAO,CAACx3C,MAAM,CAAC,IAAI,CAAA,CAC1B,IAAI,CAAC2kC,IAAI,CAACD,OAAO,CAACa,OAClBA,CAAAA,MAAAA,CAAOgD,KAAK,CAAC2iB,EAAE,EAAI,IAAI,CAACtuD,MAAM,CAACohD,SAChC,CACD,CACA,IAAIj5C,MAAAA,EAAS,CACZ,OAAO,IAAI,CAACwsC,UAAU,CAAG,CAAA,CAAI,IAAI,CAACE,UAAU,CAAC1sC,MAAM,CAEpDy6E,aAAAA,CAAcvzC,OAAO,CAAE,CACtB,IAAI,CAACgoC,YAAY,CAAGhoC,OACpB,CAAA,IAAI,CAACqzC,aAAa,CAAG,IAAI9mD,WAAAA,CAAYyT,OAAAA,CAAQt6B,MAAM,CAAEs6B,OAAAA,CAAQ+K,UAAU,CAAE/K,OAAAA,CAAQnnC,UAAU,CAAG,CAAA,CAC9F,CAAA,IAAI,CAACu6E,cAAc,CAAG,IAAIzuE,aAAaq7B,OAAAA,CAAQt6B,MAAM,CAAEs6B,OAAAA,CAAQ+K,UAAU,CAAE/K,OAAAA,CAAQnnC,UAAU,CAAG,GACjG,CACAogC,WAAAA,EAAc,CACb,IAAI,CAACP,IAAI,EAAEO,WAAAA,GACZ,CACA0S,gBAAiB,CAChB,IAAI,CAACjT,IAAI,EAAE+J,MAAAA,CAAO,IAAI,EACvB,CACA+wC,UAAAA,CAAWjb,aAAa,CAAEtlE,KAAK,CAAE,CAChC,MAAM+F,OAAAA,CAAUu/D,aAAAA,CAAcz/D,MAAM,CACpC,GAAI7F,KAAAA,GAAU,IAAA,EAAQA,QAAU,MAAK,CAAG,CACvC,MAAMwgF,eAAiBN,gBAAgB,CAAC5a,aAAAA,CAAclF,UAAU,CAAC,CACjE,GAAIogB,cAAAA,CAAgB,CACnBA,eAAe,IAAI,CAAExgF,KAAAA,CAAO+F,OAAAA,CAASu/D,cAAct9B,KAAK,EACzD,CAAA,KAAO,CACN,IAAI,CAACm4C,cAAc,CAACrhF,GAAG,CAACkB,KAAAA,CAAO+F,OAAAA,EAChC,CACD,CAED,CACAjH,GAAAA,CAAI7D,IAAI,CAAE+E,KAAK,CAAE,CAChB,MAAMslE,aAAAA,CAAgB,IAAI,CAAC5nE,MAAM,CAACe,GAAG,CAAC5J,GAAG,CAACoG,MAC1C,GAAIqqE,aAAAA,CAAe,CAClB,IAAI,CAACib,UAAU,CAACjb,aAAAA,CAAetlE,KAAAA,EAChC,CACD,CACAygF,WAAAA,CAAYC,gBAAgB,CAAE,CAC7B,GAAI,CAAC,IAAI,CAACruC,UAAU,CAAE,CACrB,MAAME,WAAa,IAAI,CAACA,UAAU,CAClC,IAAI,CAAClM,MAAM,CAACkb,cAAc,CAACo+B,KAAK,CAACptC,UAAAA,CAAY,IAAI,CAAC70C,MAAM,CAACohD,QAAQ,CAAA,CACjE,IAAI,CAACwhC,aAAa,CAAC/tC,UAAAA,CAAWxF,OAAO,CAAA,CACrC,GAAI2zC,gBAAAA,CAAkB,CACrBA,gBAAAA,CAAiB7vC,SAAS,CAAG0B,UAAAA,CAAWC,SAAS,CAACmuC,YAAY,CAAC,IAAI,CACnED,CAAAA,gBAAAA,CAAiB5vC,OAAO,CAAC,EAAE,CAAGyB,UAAAA,CAAW1sC,OAC1C,CACD,CACD,CACA+6E,SAAAA,EAAY,CACX,GAAI,IAAI,CAACvuC,UAAU,CAAE,CACpB,IAAI,CAAC5M,IAAI,CAAC+J,MAAM,CAAC,IAAI,EACtB,MAAO,CACN,IAAI,CAAC+C,UAAU,CAACC,SAAS,CAACtI,MAAM,EAChC,CAAA,IAAI,CAACi2C,cAAc,CAAG,IACtB,CAAA,IAAI,CAACpL,YAAY,CAAG,KACrB,CACD,CACA/iC,MAAAA,CAAO0uC,gBAAgB,CAAE,CACxB,IAAI,CAACD,WAAW,CAACC,gBAAAA,CAAAA,CACjB,MAAMngB,QAAAA,CAAW,IAAI,CAAC7iE,MAAM,CAAC6iE,QAAQ,CACrC,IAAK,IAAIpoE,EAAAA,CAAK,EAAGA,EAAAA,CAAKooE,QAAAA,CAASnoE,MAAM,CAAED,KAAM,CAC5C,MAAM6H,KAAAA,CAAQugE,QAAQ,CAACpoE,EAAAA,CAAG,CAACusC,OAAO,CAAC1kC,KAAK,CACxC,IAAI,CAACugF,UAAU,CAAChgB,QAAQ,CAACpoE,EAAAA,CAAG,CAAE6H,OAC/B,CACA,IAAI,CAAC4gF,SAAS,GACf,CAlFA,WAAA,CAAY36C,cAAc,CAAEvoC,MAAM,CAAE20C,UAAAA,CAAa,IAAI,CAAE,CANvDhM,gBAAAA,CAAAA,IAAAA,CAAAA,QAAAA,CAAAA,QACAgM,gBAAAA,CAAAA,IAAAA,CAAAA,YAAAA,CAAAA,MAAAA,CAAAA,CACAE,sBAAAA,YAAAA,CAAAA,MAAAA,CAAAA,CACA4tC,gBAAAA,CAAAA,IAAAA,CAAAA,iBAAAA,MAAAA,CAAAA,CACApL,gBAAAA,CAAAA,IAAAA,CAAAA,cAAAA,CAAAA,MAAAA,CAAAA,CACAqL,gBAAAA,CAAAA,IAAAA,CAAAA,eAAAA,CAAAA,OAEC,CAAA,IAAI,CAAC/5C,MAAM,CAAGJ,cACd,CAAA,IAAI,CAACvoC,MAAM,CAAGA,MACd,CAAA,IAAI,CAAC20C,UAAU,CAAGA,UAAAA,CAClB,GAAIA,UAAAA,CAAY,CACf,IAAI,CAAC5M,IAAI,CAAGQ,cAAAA,CAAe46C,uBAAuB,CAAC,IAAI,CAAA,CACvD,MAAM9zC,OAAAA,CAAU,IAAI2B,YAAYhxC,MAAAA,CAAOohD,QAAQ,CAAA,CAC/C,IAAI,CAACwhC,aAAa,CAAC,IAAI9tE,UAAAA,CAAWu6B,OAAAA,CAAAA,CAClC9G,CAAAA,cAAAA,CAAeoD,KAAK,CAAC2iB,EAAE,EAAI,IAAI,CAACtuD,MAAM,CAACohD,QAAQ,CAC/C,IAAI,CAACzY,MAAM,CAACiS,OAAO,CAAC9vC,GAAG,CAAC,IAAI,EAC7B,CAAA,KAAO,CACN,IAAI,CAAC+pC,UAAU,CAAG,IAAI8sC,wBACvB,CACD,CAsED,CAAA,CAEA,IAAIyB,oBAAAA,CAAuB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAI3pB,SAAAA,CAAY,CACf5nD,IAAAA,CAAMwqB,kBAAAA,CACNgnD,IAAAA,CAAM,CAAA,CACNC,UAAAA,CAAY,CAAA,CACZh5C,KAAAA,CAAO,CAAA,CACPi5C,QAAS,KACV,CAAA,CACA,IAAIC,mBAAAA,CAAsB,KAAA,CAezB17C,OAAAA,EAAU,CACT,IAAI,CAACmc,MAAM,CAACnc,OAAO,EACnB,CAAA,IAAI,CAACmc,MAAM,CAAG,IAAA,CACd,IAAI,CAACzQ,aAAa,CAAC1L,OAAO,EAC1B,CAAA,IAAI,CAAC0L,aAAa,CAAG,KACtB,CACArwC,KAAAA,CAAMwlC,MAAM,CAAEkc,YAAY,CAAE54C,QAAQ,CAAEw3E,cAAc,CAAE,CACrDx3E,QAAAA,CAAWA,UAAYw3E,cAAAA,CACvB,MAAM51B,KAAAA,CAAQ5hD,QAAAA,CAAS4hD,KAAK,EAAI41B,cAAAA,CAAe51B,KAAK,CACpD,GAAIA,KAAAA,GAAU,CAAA,CAAG,CAChB,KAAM,CAAEra,aAAa,CAAEwvC,gBAAgB,CAAE,CAAG,IAAI,CAChDxvC,aAAAA,CAAcuvC,WAAW,CAACC,kBAC1Br6C,MAAAA,CAAO+6C,YAAY,CAAC19C,iBAAAA,CAAmBg9C,gBAAAA,CAAiB7vC,SAAS,CAAE6vC,gBAAAA,CAAiB5vC,OAAO,CAAA,CAC3FzK,MAAAA,CAAO+6C,YAAY,CAAC39C,cAAAA,CAAgB4C,MAAAA,CAAOg7C,cAAc,CAAA,CACzD,IAAI7+B,UAAAA,CACJ,GAAI+I,KAAAA,CAAQ96B,eAAAA,GAAoB8xB,YAAAA,CAAa4K,WAAW,EAAI5K,aAAa9c,IAAI,CAACs3B,oBAAmB,CAAA,CAAI,CACpG,MAAMnP,MAAAA,CAASjkD,SAAS0hD,KAAK,EAAI81B,cAAAA,CAAe91B,KAAK,CACrD,IAAI,CAACi2B,SAAS,CAACxiF,GAAG,CAAC8uD,MAAAA,CAAAA,CACnBpL,UAAAA,CAAahO,UAAAA,CAAWkC,QAAO,CAChC,KAAO,CACN8L,UAAAA,CAAahO,UAAAA,CAAWmC,QACzB,CACAzF,aAAAA,CAAcpyC,GAAG,CAAC,OAAA,CAAS,IAAI,CAACwiF,SAAS,CAAA,CACzC,IAAI7+B,UAAAA,CACJ,GAAI8I,MAAQ76B,eAAAA,EAAmB6xB,YAAAA,CAAalb,KAAK,CAAE,CAClD,MAAMA,KAAAA,CAAQ19B,QAAAA,CAAS09B,KAAK,EAAI85C,cAAAA,CAAe95C,KAAK,CACpD6J,aAAAA,CAAcpyC,GAAG,CAAC,OAAA,CAASuoC,OAC3Bob,UAAAA,CAAavL,UAAAA,CAAWQ,WACzB,CAAA,KAAO,CACNxG,aAAAA,CAAcpyC,GAAG,CAAC,OAAA,CAAS,CAAA,CAAA,CAC3B2jD,UAAAA,CAAavL,UAAAA,CAAWO,QAAO,CAEhC,GAAI8T,KAAAA,CAAQ56B,iBAAAA,EAAqB4xB,YAAAA,CAAa+I,OAAO,CAAE,CAEvDpa,aAAAA,CAAc0vC,SAAS,EAAA,CACvBv6C,MAAAA,CAAOuf,aAAa,CAACpD,UAAAA,CAAYC,UAAAA,CAAAA,CACjCpc,MAAAA,CAAOk7C,SAAS,CAAC,IAAI,CAAC5/B,MAAM,CAAA,CAC5Btb,MAAAA,CAAOmgB,IAAI,CAAC2Q,SAAAA,EACb,CACD,CArDA,WAAA,CAAY9wB,MAAM,CAAE,CACnB,IAAI,CAACsb,MAAM,CAAG,IAAIm9B,MAAAA,CAAOz4C,MAAAA,CAAQ,CAChCprC,IAAAA,CAAM,2BAAA,CACNw1E,cAAAA,CAAgBpyC,oBAChB4kC,OAAAA,CAAS6d,oBAAAA,CACT3d,OAAAA,CAAS2d,oBACV,CAAA,CACA,CAAA,IAAI,CAAC5vC,aAAa,CAAG,IAAImvC,aAAAA,CAAch6C,MAAAA,CAAQ,IAAIi6B,mBAAAA,CAAoBj6B,MAAAA,CAAQ,CAC9E,IAAI05B,aAAAA,CAAc,OAAA,CAAS5gC,gBAAAA,CAAAA,CAC3B,IAAI4gC,aAAAA,CAAc,OAAA,CAAS/gC,iBAAAA,CAAAA,CAC3B,CAAA,CAAG,MACJ,CAAA,IAAI,CAAC0hD,gBAAgB,CAAG,IAAI9vC,gBAC5B,CAAA,IAAI,CAAC0wC,SAAS,CAAG,IAAI5vE,YAAAA,CAAa,CAAA,EACnC,CAyCD,CAAA,CAEA,IAAI8vE,qBAAAA,CAAwB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,oBAAAA,CAAuB,KAAA,CAa1Bj8C,OAAAA,EAAU,CACT,IAAI,CAACmc,MAAM,CAACnc,OAAO,EACnB,CAAA,IAAI,CAACmc,MAAM,CAAG,IAAA,CACd,IAAI,CAAC+/B,aAAa,CAAC7gF,KAAK,GACzB,CACA+xE,QAAAA,CAAS+O,aAAa,CAAE,CACvB,MAAMrQ,YAAAA,CAAeqQ,aAAAA,CAAclkC,IAAI,CACvC,GAAI6zB,YAAAA,CAAa/oC,aAAa,EAAI,CAAA,CAAG,CACpC,MACD,CACA,GAAIo5C,aAAAA,CAAct5C,OAAO,CAACiF,MAAM,CAAE,CACjC,MACD,CACA,MAAMjH,MAAAA,CAAS,IAAI,CAACA,MAAM,CAC1B,MAAMqpB,IAAAA,CAAOrpB,MAAAA,CAAOqpB,IAAI,CACxB,MAAMhyD,MAAAA,CAAS4zE,YAAAA,CAAa5zE,MAAM,CAClC,IAAIo3D,SAAW,IAAI,CAAC4sB,aAAa,CAAC7sF,GAAG,CAAC6I,QACtC,GAAI,CAACo3D,QAAAA,CAAU,CACd,MAAM+B,YAAAA,CAAe,IAAI,CAAClV,MAAM,CAAClc,IAAI,CACrCqvB,QAAAA,CAAWpF,KAAKgI,oBAAoB,CAAC,CACpCrH,MAAAA,CAAQ,MAAA,CACRyG,MAAAA,CAAQ,CACPC,MAAAA,CAAQF,YAAAA,CAAaG,qBAAqB,EAAA,CAC1CC,UAAAA,CAAYJ,YAAAA,CAAaK,gBAAe,CACzC,CACAltD,QAAAA,CAAU,CACT+sD,MAAAA,CAAQF,YAAAA,CAAaU,uBAAuB,EAAA,CAC5CN,UAAAA,CAAYJ,YAAAA,CAAaW,kBAAkB,CAC3CvV,OAAAA,CAAS,CAAC,CACTvkD,MACD,CAAA,CACD,CAAA,CACAy5D,SAAAA,CAAW,CACVC,QAAAA,CAAU,gBACX,CACD,CAAA,CAAA,CACA,IAAI,CAACsqB,aAAa,CAAC5iF,GAAG,CAACpB,MAAAA,CAAQo3D,QAAAA,EAChC,CACA,MAAMzsB,OAAAA,CAAUs5C,aAAAA,CAAct5C,OAAO,CACrC,MAAMu5C,QAAAA,CAAWv5C,QAAQP,OAAO,CAAG,CAAA,CAAIO,OAAAA,CAAQsE,KAAK,CAAGtE,QAAQgF,WAAW,CAAG,CAAA,CAC7E,MAAMw0C,QAAAA,CAAW,EAAE,CACnB,IAAK,IAAItzC,IAAAA,CAAO,CAAA,CAAGA,IAAAA,CAAOqzC,QAAAA,CAAUrzC,OAAQ,CAC3CszC,QAAAA,CAAS5oF,IAAI,CAAC0oF,aAAAA,CAAclkB,UAAU,CAAC,CACtCv2B,SAAAA,CAAW,IAAA,CACXoB,YAAAA,CAAc,CAAA,CACdC,aAAAA,CAAe,EACfC,cAAAA,CAAgB+F,IACjB,CAAA,CAAA,EACD,CACA,MAAMgR,cAAAA,CAAiBlZ,OAAOmZ,iBAAiB,EAAA,CAC/C,IAAK,IAAIrnD,EAAAA,CAAK,CAAA,CAAGA,GAAKm5E,YAAAA,CAAa/oC,aAAa,CAAEpwC,EAAAA,EAAAA,CAAM,CACvD,IAAK,IAAIo2C,IAAAA,CAAO,CAAA,CAAGA,IAAAA,CAAOqzC,QAAAA,CAAUrzC,IAAAA,EAAAA,CAAQ,CAC3C,MAAMuzC,OAAAA,CAAUH,aAAAA,CAAclkB,UAAU,CAAC,CACxCv2B,SAAAA,CAAW,KACXoB,YAAAA,CAAcnwC,EAAAA,CACdowC,aAAAA,CAAe,CAAA,CACfC,cAAAA,CAAgB+F,IACjB,GACA,MAAMwzC,WAAAA,CAAcxiC,cAAAA,CAAeyiC,eAAe,CAAC,CAClDlsB,iBAAkB,CAAC,CAClB5uD,IAAAA,CAAM46E,OAAAA,CACN1iB,MAAAA,CAAQ,OAAA,CACRC,QAAS,OACV,CAAA,CAAC,CACF,CAAA,CACA,MAAMxuB,SAAAA,CAAY6e,KAAKC,eAAe,CAAC,CACtCU,MAAAA,CAAQyE,QAAAA,CAASmtB,kBAAkB,CAAC,CAAA,CAAA,CACpCryB,OAAAA,CAAS,CAAC,CACTC,OAAAA,CAAS,CAAA,CACTC,SAAU,IAAI,CAACoyB,UAChB,CAAA,CAAG,CACFryB,QAAS,CAAA,CACTC,QAAAA,CAAU+xB,QAAQ,CAACtzC,IAAAA,CACpB,EAAC,CACF,CAAA,CACAwzC,WAAAA,CAAYI,WAAW,CAACrtB,QAAAA,CAAAA,CACxBitB,YAAYX,YAAY,CAAC,CAAA,CAAGvwC,SAAAA,CAAAA,CAC5BkxC,WAAAA,CAAYv7B,IAAI,CAAC,CAAA,CAAA,CACjBu7B,WAAAA,CAAY1kF,GAAG,EACfwkF,CAAAA,QAAQ,CAACtzC,IAAAA,CAAK,CAAGuzC,QAClB,CACD,CACAz7C,MAAAA,CAAOyuB,QAAQ,CAAG,KACnB,CA7FA,WAAA,CAAYzuB,MAAM,CAAE,CAFpBA,gBAAAA,CAAAA,IAAAA,CAAAA,QAAAA,CAAAA,MAAAA,CAAAA,CACAq7C,gBAAAA,CAAAA,IAAAA,CAAAA,eAAAA,CAAgC,IAAInhF,GAAAA,CAEnC,CAAA,IAAI,CAAC8lC,MAAM,CAAGA,MACd,CAAA,IAAI,CAACsb,MAAM,CAAG,IAAIm9B,OAAOz4C,MAAAA,CAAQ,CAChCprC,IAAAA,CAAM,4BAAA,CACNw1E,cAAAA,CAAgBpyC,mBAAAA,CAChB4kC,QAASue,qBAAAA,CACTre,OAAAA,CAASqe,qBACV,CAAA,CACA,CAAA,IAAI,CAACU,UAAU,CAAG77C,MAAAA,CAAOqpB,IAAI,CAACqiB,aAAa,CAAC,CAAEhpC,SAAAA,CAAW,QAAS,CAAA,EACnE,CAqFD,CAAA,CAEA,IAAIq5C,aAAAA,CAAgB,KAAA,CASnBl4C,MAAAA,EAAS,CACT,CACAy2C,YAAAA,CAAa30B,EAAE,CAAE,CAChB,MAAMq2B,MAAAA,CAASr2B,EAAAA,CAAGtuD,MAAM,CAACohD,QAAQ,CACjC,IAAIjO,SAAAA,CAAY,IAAI,CAACyxC,cAAc,CAACztF,GAAG,CAACwtF,MAAAA,CAAAA,CACxC,GAAI,CAACxxC,UAAW,CACfA,SAAAA,CAAY,IAAIE,SAAAA,CAAU,IAAI,CAAC1K,MAAM,CAAE,IAAI,CAAC+qB,eAAe,CAAEpF,EAAAA,CAAAA,CAC7Dnb,UAAUmB,MAAM,EAAA,CAChB,IAAI,CAACswC,cAAc,CAACxjF,GAAG,CAACujF,MAAAA,CAAQxxC,SAAAA,EACjC,CACA,OAAOA,SACR,CAjBA,WAAA,CAAYxK,MAAM,CAAE,CAFpBA,gBAAAA,CAAAA,IAAAA,CAAAA,QAAAA,CAAAA,MAAAA,CAAAA,CACAi8C,gBAAAA,CAAAA,IAAAA,CAAAA,gBAAAA,CAAiC,IAAI/hF,GAAAA,CAEpC,CAAA,IAAI,CAAC8lC,MAAM,CAAGA,MACd,CAAA,IAAI,CAAC+qB,eAAe,CAAG,IAAI7rB,eAAAA,CAAgB,IAAI,CAACc,MAAM,CAAE,CACvD,IAAI1B,uBAAAA,CAAwBf,gCAAAA,CAAkCnB,kBAAAA,CAAqBC,oBAAAA,CAAAA,CACnF,EACF,CAaD,CAAA,CAEA,IAAI6/C,mBAAAA,CAAsB,cAAcH,aAAAA,CAevC58C,QAAQa,MAAM,CAAE,CACfA,MAAAA,CAAOgD,KAAK,CAAC2iB,EAAE,EAAI,IAAI,CAACv5C,MAAM,CAAC5V,IAAI,CACnC,IAAI,CAAC4V,MAAM,CAAC+yB,OAAO,EACnB,CAAA,IAAI,CAAC/yB,MAAM,CAAG,KACf,CACA+vE,aAAc,CACb,IAAI,CAACC,WAAW,CAAG,IAAI,CAAChwE,MAAM,CAACiwE,cAAc,GAC9C,CACA/C,KAAAA,CAAM55E,OAAO,CAAElJ,IAAI,CAAE,CACpB,OAAO,IAAI2V,WAAW,IAAI,CAACiwE,WAAW,CAAE18E,OAAAA,CAASlJ,IAAAA,CAAO,EACzD,CAtBA,WAAA,CAAYwpC,MAAM,CAAExpC,IAAI,CAAE8lF,SAAS,CAAE,CACpC,KAAK,CAACt8C,MAAAA,CAAAA,CAHP5zB,gBAAAA,CAAAA,IAAAA,CAAAA,SAAS,IAAA,CAAA,CACTgwE,gBAAAA,CAAAA,IAAAA,CAAAA,aAAAA,CAAc,IAAA,CAGb,CAAA,IAAI,CAAChwE,MAAM,CAAG4zB,MAAAA,CAAOqpB,IAAI,CAACqC,YAAY,CAAC,CACtCl1D,IAAAA,CACAs8C,KAAAA,CAAOwpC,SAAAA,CAAY1wB,cAAAA,CAAe2wB,SAAS,CAAG3wB,cAAAA,CAAeuM,QAAQ,CAAGvM,cAAAA,CAAe4wB,OAAO,CAAG5wB,eAAeC,QAAQ,CACxH4wB,gBAAAA,CAAkBH,SACnB,CAAA,CAAA,CACA,GAAIA,UAAW,CACd,IAAI,CAACH,WAAW,GACjB,CACAn8C,OAAOgD,KAAK,CAAC2iB,EAAE,EAAInvD,KACpB,CAYD,EAEA,IAAIkmF,oBAAAA,CAAuB,cAAczD,cAAAA,CAExC95C,OAAAA,EAAU,CACT,IAAI,CAACw6C,cAAc,EAAA,CACnB,IAAK,KAAM,CAAExtC,SAAS,CAAEshC,aAAa,CAAE,GAAI,IAAI,CAAC2L,WAAW,CAAE,CAC5DjtC,SAAAA,CAAUhN,OAAO,CAAC,IAAI,CAACa,MAAM,CAAA,CAC7BytC,aAAAA,CAActuC,OAAO,CAAC,IAAI,CAACa,MAAM,EAClC,CACA,IAAK,MAAMytC,aAAAA,IAAiB,IAAI,CAACkP,qBAAqB,CAAE,CACvDlP,aAAAA,CAActuC,OAAO,CAAC,IAAI,CAACa,MAAM,EAClC,CACA,IAAI,CAAC28C,qBAAqB,CAAC5qF,MAAM,CAAG,CAAA,CACpC,KAAK,CAACotC,OAAAA,GACP,CACAusB,YAAAA,CAAa1rB,MAAM,CAAExpC,IAAI,CAAE8lF,SAAS,CAAE,CACrC,OAAO,IAAIJ,mBAAAA,CAAoBl8C,OAAQxpC,IAAAA,CAAM8lF,SAAAA,CAC9C,CACA1P,MAAAA,EAAS,CACR,KAAK,CAACA,MAAAA,EAAAA,CACN,MAAMjrC,KAAAA,CAAQ,IAAI,CAACy3C,WAAW,CAACrnF,MAAM,CACrC,GAAI4vC,KAAAA,CAAO,CACV,MAAM3B,OAAS,IAAI,CAACA,MAAM,CAC1B,MAAMk5C,UAAAA,CAAa,IAAI,CAACA,UAAU,CAClC,MAAMhgC,cAAAA,CAAiBlZ,MAAAA,CAAOqpB,IAAI,CAACuzB,oBAAoB,EAAA,CACvD,IAAK,IAAI9qF,EAAAA,CAAK6vC,MAAQ,CAAA,CAAG7vC,EAAAA,EAAM,CAAA,CAAGA,EAAAA,EAAAA,CAAM,CACvC,MAAM+qF,WAAa,IAAI,CAACzD,WAAW,CAACtnF,EAAAA,CAAG,CACvC,KAAM,CAAE27E,aAAa,CAAEthC,SAAS,CAAE3sC,MAAAA,CAAQE,OAAO,CAAElJ,IAAI,CAAE,CAAGqmF,UAAAA,CAC5D,MAAMz1E,IAAMqmE,aAAAA,CAAcrhE,MAAM,CAChChF,GAAAA,CAAI01E,KAAK,EAAA,CACT5jC,eAAeE,kBAAkB,CAAChyC,GAAAA,CAAK1H,OAAAA,CAASysC,SAAAA,CAAU//B,MAAM,CAAE1M,OAAAA,CAASlJ,IAAAA,CAAAA,CAC3E0iF,UAAAA,CAAWtmF,IAAI,CAACu5C,SAAAA,EACjB,CACA,MAAM4wC,EAAAA,CAAK7jC,cAAAA,CAAe8jC,MAAM,EAAA,CAChCh9C,MAAAA,CAAOi9C,gBAAgB,CAACF,EAAAA,CAAI,IAAA,CAAA,CAC5B,IAAK,IAAIjrF,EAAAA,CAAK,EAAGA,EAAAA,CAAK6vC,KAAAA,CAAO7vC,EAAAA,EAAAA,CAAM,CAClC,MAAM27E,aAAAA,CAAgB,IAAI,CAAC2L,WAAW,CAACtnF,EAAAA,CAAG,CAAC27E,aAAa,CACxD,IAAI,CAACkP,qBAAqB,CAAC/pF,IAAI,CAAC66E,eACjC,CACA,IAAI,CAAC2L,WAAW,CAACrnF,MAAM,CAAG,EAC3B,CACD,CACAmrF,yBAAAA,EAA4B,CAC3B,MAAMv7C,MAAQ,IAAI,CAACg7C,qBAAqB,CAAC5qF,MAAM,CAC/C,GAAI4vC,KAAAA,CAAO,CACV,MAAM3B,MAAAA,CAAS,IAAI,CAACA,MAAM,CAC1B,IAAK,IAAIluC,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAK6vC,MAAO7vC,EAAAA,EAAAA,CAAM,CAClC,MAAM27E,aAAAA,CAAgB,IAAI,CAACkP,qBAAqB,CAAC7qF,EAAAA,CAAG,CACpDkuC,MAAAA,CAAOm9C,cAAc,CAAC1P,cAAcrhE,MAAM,CAAEgxE,UAAAA,CAAWC,KAAK,CAAA,CAAEv/E,IAAI,CAAC,MAACw/E,EAAAA,CACnE,GAAIA,MAAAA,EAAU,IAAI,CAACnE,cAAc,CAAE,CAClC1L,aAAAA,CAAc0O,WAAW,EAAA,CACzB,IAAI,CAAChD,cAAc,CAACvmF,IAAI,CAAC66E,aAAAA,EAC1B,CAAA,KAAO,CACNA,aAAAA,CAActuC,OAAO,CAACa,MAAAA,EACvB,CACD,CAAA,EACD,CACA,IAAI,CAAC28C,qBAAqB,CAAC5qF,MAAM,CAAG,EACrC,CACD,CAAA,WAAA,CAAA,GAAA,IAAA,CAAA,CA1D0B,KAAA,CAAA,GAAA,IAAA,CAAA,CAC1B4qF,gBAAAA,CAAAA,IAAAA,CAAAA,uBAAAA,CAAwB,EAAE,GA0D3B,CAAA,CAEA,IAAIY,WAAAA,CAAc,KAAA,CASjB59C,WAAAA,EAAc,CACb,IAAI,CAAC69C,oBAAoB,CAAChjF,KAAK,GAChC,CACA,IAAI7B,OAAAA,CAAQgB,KAAK,CAAE,CAClB,IAAI,CAAC8jF,cAAc,CAAG9jF,MACvB,CACA,IAAIhB,OAAAA,EAAU,CACb,OAAO,IAAI,CAAC8kF,cAAc,CAE3B,IAAIC,WAAAA,EAAc,CACjB,OAAO,IAAI,CAACC,YAAY,CAEzBC,sBAAuB,CACtB,GAAI,IAAI,CAACH,cAAc,GAAK,IAAI,CAAC5qB,QAAQ,CAAE,CAC1C,IAAI,CAACA,QAAQ,CAAG,IAAI,CAAC4qB,cAAc,CACnC,GAAI,CAAC,IAAI,CAAC5qB,QAAQ,CAAE,CACnB,IAAI,CAACgrB,UAAU,CAAG,EACnB,CACD,CACD,CACAC,QAAQh5C,aAAa,CAAE,CACtB,IAAI,CAAC04C,oBAAoB,CAAC/kF,GAAG,CAACqsC,aAAAA,CAAe,IAAI,CAACi5C,gBAAgB,CAClE,CAAA,IAAI,CAACA,gBAAgB,CAAG,GAAE,CAE3BC,cAAAA,CAAeppF,IAAI,CAAE,CACpB,IAAIqpF,WAAa,IAAI,CAACC,UAAU,CAAC1vF,GAAG,CAACoG,MACrC,GAAIqpF,UAAAA,GAAe,MAAK,CAAG,CAC1B,GAAIrpF,KAAKvC,UAAU,CAAC,YAAA,CAAA,CAAe,CAClC4rF,UAAAA,CAAarpF,IAAAA,CAAK7B,SAAS,CAAC,EAAA,EAC7B,CAAA,KAAO,CACNkrF,UAAAA,CAAarpF,KACd,CACA,IAAI,CAACspF,UAAU,CAACzlF,GAAG,CAAC7D,KAAMqpF,UAAAA,EAC3B,CACA,OAAOA,UACR,CACAE,MAAAA,CAAOr5C,aAAa,CAAEs5C,OAAO,CAAEC,SAAS,CAAE,CACzC,GAAID,OAAAA,CAAS,CACZ,MAAME,WAAAA,CAAc,IAAI,CAACd,oBAAoB,CAAChvF,GAAG,CAACs2C,aAAAA,CAAAA,CAClD,GAAI,CAACw5C,YAAa,CACjB,MACD,CACA,GAAIF,OAAAA,CAAQrsF,MAAM,CAAG,CAAA,CAAG,CACvB,IAAI,CAAC8rF,UAAU,CAAGQ,WAAaD,OAAAA,CAAQlnC,MAAM,CAAC,CAACqnC,GAAAA,CAAK57E,CAAAA,GAAM47E,IAAM57E,CAAAA,CAAG,CAAA,EACpE,CACA,IAAI,CAACg7E,YAAY,CAACnjF,KAAK,EAAA,CACvB,IAAK,IAAI1I,EAAAA,CAAK,CAAA,CAAGA,GAAKwsF,WAAAA,CAAYvsF,MAAM,CAAE,EAAED,EAAAA,CAAI,CAC/C,MAAM8C,IAAAA,CAAO0pF,WAAW,CAACxsF,EAAAA,CAAG,CAC5B,MAAM0sF,OAASJ,OAAO,CAACtsF,EAAAA,CAAG,CAC1B,MAAMmsF,UAAAA,CAAa,IAAI,CAACD,cAAc,CAACppF,IAAAA,CAAAA,CACvC,IAAI,CAAC+oF,YAAY,CAACllF,GAAG,CAACwlF,UAAAA,CAAY,CAAC,IAAI,CAACN,YAAY,CAACnvF,GAAG,CAACyvF,UAAAA,CAAAA,EAAe,CAAA,EAAKO,MAAAA,EAC9E,CACA,GAAIjmF,OAAAA,CAAQ/J,GAAG,CAAC8B,mBAAAA,CAAAA,CAAsB,CACrC,IAAI6mD,KAAAA,CAAQ,CAAA,CACZ,IAAK,IAAIrlD,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAKwsF,WAAAA,CAAYvsF,MAAM,CAAE,EAAED,EAAAA,CAAI,CAClCwsF,WAAW,CAACxsF,IACzBqlD,KAAAA,EAASinC,OAAO,CAACtsF,EAAAA,EAClB,CACD,CACD,CACA,IAAI,CAAC0rF,oBAAoB,CAAC/iF,MAAM,CAACqqC,aAAAA,EAClC,CACA25C,OAAAA,CAAQ7pF,IAAI,CAAE,CACb,GAAI,IAAI,CAACmpF,gBAAgB,CAAChsF,MAAM,EAAI,IAAI,CAAC2sF,QAAQ,CAAE,CAClD,OAAO,GACR,CACA,MAAMtgD,IAAAA,CAAO,IAAI,CAAC2/C,gBAAgB,CAAChsF,MAAM,CACzC,IAAI,CAACgsF,gBAAgB,CAACnrF,IAAI,CAACgC,IAAAA,CAAAA,CAC3B,OAAOwpC,IACR,CACA,IAAIugD,SAAAA,EAAY,CACf,OAAO,IAAI,CAACZ,gBAAgB,CAAChsF,MAC9B,CAAA,WAAA,EAAA,CAhFAgsF,gBAAAA,CAAAA,IAAAA,CAAAA,kBAAAA,CAAmB,EAAE,EACrBP,gBAAAA,CAAAA,IAAAA,CAAAA,sBAAAA,CAAuC,IAAItjF,GAAAA,CAAAA,CAC3C24D,gBAAAA,CAAAA,IAAAA,CAAAA,UAAAA,CAAW,OACX4qB,gBAAAA,CAAAA,IAAAA,CAAAA,gBAAAA,CAAiB,KAAA,CAAA,CACjBI,gBAAAA,CAAAA,IAAAA,CAAAA,YAAAA,CAAa,CAAA,CAAA,CACbF,sBAAAA,cAAAA,CAA+B,IAAIzjF,GAAAA,CAAAA,CACnCgkF,gBAAAA,CAAAA,IAAAA,CAAAA,YAAAA,CAA6B,IAAIhkF,KACjCwkF,gBAAAA,CAAAA,IAAAA,CAAAA,UAAAA,CAAW,IAAA,EAAA,CA0EZ,CAAA,CAEA,IAAIE,cAAAA,CAAiB,MAmBpBz/C,OAAAA,EAAU,CACT,IAAI,CAACa,MAAM,CAACyrB,YAAY,CAAC,IAAI,CAACozB,QAAQ,CACtC,CAAA,IAAI,CAACA,QAAQ,CAAG,IAAA,CAChB,IAAI,CAAC7+C,MAAM,CAACyrB,YAAY,CAAC,IAAI,CAACqzB,WAAW,CACzC,CAAA,IAAI,CAACA,WAAW,CAAG,IACnB,CAAA,IAAI,CAACC,mBAAmB,CAAG,IAAA,CAC3B,IAAI,CAAC5F,cAAc,CAAC36E,OAAO,CAAC,aAACivE,EAAAA,CAC5BA,cAActuC,OAAO,GACtB,CAAA,CACA,CAAA,IAAI,CAACg6C,cAAc,CAAG,KACvB,CACA6F,gBAAAA,EAAmB,CAClB,IAAIvR,cAAgB,IAAI,CAAC0L,cAAc,CAAC/lF,GAAG,EAAA,CAC3C,GAAI,CAACq6E,aAAAA,CAAe,CACnBA,aAAAA,CAAgB,IAAI,CAACztC,MAAM,CAACqpB,IAAI,CAACqC,YAAY,CAAC,CAC7Cl1D,KAAM,IAAI,CAACsoF,WAAW,CAACtoF,IAAI,CAC3Bs8C,KAAAA,CAAO8Y,cAAAA,CAAeC,QAAQ,CAAGD,cAAAA,CAAeqzB,QAAO,CACxD,EACD,CACA,OAAOxR,aACR,CACArtC,OAAAA,CAAQuB,KAAK,CAAE,CACd,MAAM3B,MAAAA,CAAS,IAAI,CAACA,MAAM,CAC1B,MAAMkZ,cAAAA,CAAiBlZ,MAAAA,CAAOmZ,iBAAiB,EAAA,CAC/CD,cAAAA,CAAegmC,eAAe,CAAC,IAAI,CAACL,QAAQ,CAAE,CAAA,CAAGl9C,KAAAA,CAAO,IAAI,CAACm9C,WAAW,CAAE,CAAA,CAAA,CAC1E,MAAMC,mBAAAA,CAAsB,IAAI,CAACC,gBAAgB,EACjD,CAAA,IAAI,CAACD,mBAAmB,CAAGA,mBAAAA,CAC3B7lC,cAAAA,CAAeE,kBAAkB,CAAC,IAAI,CAAC0lC,WAAW,CAAE,CAAA,CAAGC,mBAAAA,CAAqB,CAAA,CAAG,IAAI,CAACI,YAAY,CAAGx9C,KAAAA,EACpG,CACAm8C,OAAAA,CAAQn8C,KAAK,CAAEmD,aAAa,CAAE,CAC7B,MAAM2oC,aAAAA,CAAgB,IAAI,CAACsR,mBAC3B,CAAA,IAAI,CAACA,mBAAmB,CAAG,IAAA,CAC3B,OAAO,IAAI,CAAC/+C,MAAM,CAACm9C,cAAc,CAAC1P,aAAAA,CAAe2P,UAAAA,CAAWgC,IAAI,CAAA,CAAEthF,IAAI,CAAC,MAACw/E,EAAAA,CACvE,GAAI,CAACA,MAAAA,CAAQ,CACZ7P,cAActuC,OAAO,EAAA,CACrB,OAAO,IACR,CACA,MAAMkgD,WAAa,IAAIC,aAAAA,CAAc7R,aAAAA,CAAc4O,cAAc,EAAA,CAAA,CACjE,MAAM+B,QAAU,EAAE,CAClB,IAAImB,OAAAA,CAAU,IAAA,CACd,IAAIC,QAAU,IAAA,CACd,IAAK,IAAI1tF,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAK6vC,MAAO7vC,EAAAA,EAAAA,CAAM,CAClC,MAAMiF,KAAAA,CAAQsoF,UAAU,CAACvtF,GAAK,CAAA,CAAE,CAChC,MAAMkF,GAAAA,CAAMqoF,UAAU,CAACvtF,GAAK,CAAA,CAAI,CAAA,CAAE,CAClCssF,OAAAA,CAAQxrF,IAAI,CAACvB,KAAK6T,GAAG,CAAC,CAAA,CAAG4W,MAAAA,CAAO9kB,GAAAA,CAAMD,KAAAA,CAAAA,CAAS,OAC/C,GAAIwoF,OAAAA,GAAY,IAAA,EAAQxoF,KAAAA,CAAQwoF,OAAAA,CAASA,OAAAA,CAAUxoF,MACnD,GAAIC,GAAAA,CAAMuoF,OAAAA,CAASA,OAAAA,CAAUvoF,GAAAA,CAC7B,GAAIwoF,UAAY,IAAA,EAAQxoF,GAAAA,CAAMwoF,OAAAA,CAASA,OAAAA,CAAUxoF,GAAAA,CACjD,GAAID,MAAQyoF,OAAAA,CAASA,OAAAA,CAAUzoF,MAChC,CACA,MAAMsnF,SAAAA,CAAY18C,MAAQ,CAAA,CAAI7lB,MAAAA,CAAO0jE,OAAAA,CAAUD,OAAAA,CAAAA,CAAW,IAAA,CAAO,CAAA,CACjE9R,cAAcqP,KAAK,EACnB,CAAA,IAAI,CAAC3D,cAAc,EAAEvmF,IAAAA,CAAK66E,aAAAA,CAAAA,CAC1B,OAAO,CACN3oC,aAAAA,CACAs5C,OAAAA,CACAC,SACD,CACD,CAAA,CACD,CAzEA,WAAA,CAAYr+C,MAAM,CAAEy/C,WAAW,CAAEC,QAAQ,CAAE,CAJ3Cb,gBAAAA,CAAAA,IAAAA,CAAAA,UAAAA,CAAAA,MAAAA,CAAAA,CACA1F,gBAAAA,CAAAA,IAAAA,CAAAA,gBAAAA,CAAiB,EAAE,CAAA,CACnB4F,gBAAAA,CAAAA,IAAAA,CAAAA,qBAAAA,CAAsB,MACtBI,gBAAAA,CAAAA,IAAAA,CAAAA,cAAAA,CAAAA,MAAAA,CAEC,CAAA,IAAI,CAACn/C,MAAM,CAAGA,MACd,CAAA,IAAI,CAAC0/C,QAAQ,CAAGA,QAChB,CAAA,IAAI,CAACP,YAAY,CAAGM,WAAAA,CAAc,CAAA,CAAI,CAAA,CACtC,MAAMp2B,IAAAA,CAAOrpB,MAAAA,CAAOqpB,IAAI,CACxB,IAAI,CAACw1B,QAAQ,CAAGx1B,KAAKs2B,cAAc,CAAC,CACnCz2E,IAAAA,CAAMu2E,WAAAA,CAAc,WAAA,CAAc,YAClC99C,KAAAA,CAAO+9C,QACR,CAAA,CACA,CAAA,IAAI,CAACZ,WAAW,CAAGz1B,IAAAA,CAAKqC,YAAY,CAAC,CACpCl1D,IAAAA,CAAM,IAAI,CAAC2oF,YAAY,CAAGO,QAAAA,CAC1B5sC,KAAAA,CAAO8Y,cAAAA,CAAeg0B,aAAa,CAAGh0B,cAAAA,CAAei0B,OAAO,CAAGj0B,cAAAA,CAAeuM,QAAQ,CAAGvM,cAAAA,CAAeC,QAAO,CAChH,EACD,CA6DD,CAAA,CAEA,IAAIi0B,iBAAAA,CAAoB,cAAcvC,WAAAA,CASrCp+C,OAAAA,EAAU,CACT,IAAI,CAAC4gD,mBAAmB,EAAE5gD,OAAAA,EAC1B,CAAA,IAAI,CAAC4gD,mBAAmB,CAAG,KAC5B,CACA/9B,UAAAA,EAAa,CACZ,IAAI,CAAC47B,oBAAoB,GAC1B,CACA17B,QAAAA,EAAW,CACV,GAAI,IAAI,CAAC2Q,QAAQ,CAAE,CAClB,IAAI,CAACktB,mBAAmB,EAAE3/C,OAAAA,CAAQ,IAAI,CAACu+C,SAAS,CAAG,GACpD,CACD,CACAb,OAAAA,EAAU,CACT,GAAI,IAAI,CAACjrB,QAAQ,CAAE,CAClB,MAAM/tB,aAAAA,CAAgB,IAAI,CAAC9E,MAAM,CAAC8E,aAClC,CAAA,IAAI,CAACi7C,mBAAmB,EAAEjC,OAAAA,CAAQ,IAAI,CAACa,SAAS,CAAE75C,aAAAA,CAAAA,CAAehnC,IAAAA,CAAK,OAACkiF,EAAAA,CACtE,GAAIA,OAAAA,CAAS,CACZ,IAAI,CAAC7B,MAAM,CAAC6B,OAAAA,CAAQl7C,aAAa,CAAEk7C,OAAAA,CAAQ5B,OAAO,CAAE4B,OAAAA,CAAQ3B,SAAS,EACtE,CACD,CAAA,CAAA,CACA,KAAK,CAACP,OAAAA,CAAQh5C,aAAAA,EACf,CACD,CA5BA,WAAA,CAAY9E,MAAM,CAAE,CACnB,KAAK,EAAA,CAHNA,sBAAAA,QAAAA,CAAAA,MAAAA,CAAAA,CACAigD,gBAAAA,CAAAA,IAAAA,CAAAA,oBAAAA,CAAAA,OAGC,CAAA,IAAI,CAACjgD,MAAM,CAAGA,MACd,CAAA,IAAI,CAAC0+C,QAAQ,CAAG,IAChB,CAAA,IAAI,CAACqB,mBAAmB,CAAG//C,MAAAA,CAAOkgD,sBAAsB,CAAG,IAAItB,cAAAA,CAAe5+C,MAAAA,CAAQ,IAAA,CAAM,CAAA,CAAI,IAAI,CAAC0+C,QAAQ,CAAA,CAAI,KAClH,CAwBD,CAAA,CAEA,IAAIyB,4BAAAA,CAA+B;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,cAAAA,CAAiB,KAAA,CAOpBjhD,OAAAA,EAAU,CACT,IAAI,CAACkhD,WAAW,CAAC7hF,OAAO,CAAC,MAAC88C,EAAWA,MAAAA,CAAOnc,OAAO,EAAA,CACnD,CAAA,IAAI,CAACkhD,WAAW,CAAG,IACnB,CAAA,IAAI,CAAChF,aAAa,CAAG,KACtB,CACAiF,SAAAA,CAAUn4C,IAAI,CAAE,CACf,IAAImT,MAAAA,CAAS,IAAI,CAAC+kC,WAAW,CAAC7xF,GAAG,CAAC25C,IAAAA,CAAAA,CAClC,GAAI,CAACmT,MAAAA,CAAQ,CACZ,MAAM1kD,IAAAA,CAAO,CAAC,sBAAsB,EAAEuxC,IAAAA,CAAKo4C,WAAW,EAAA;AACzD,EAAEJ,4BAAAA,CAA6B,CAAC,CAC7B7kC,MAAAA,CAAS,IAAIm9B,MAAAA,CAAO,IAAI,CAACz4C,MAAM,CAAE,CAChCprC,KAAM,CAAC,0BAA0B,EAAEuzC,IAAAA,CAAK,CAAC,CACzCiiC,eAAgBpyC,mBAAAA,CAChB4kC,OAAAA,CAAShmE,IAAAA,CACTkmE,OAAAA,CAASlmE,IACV,CAAA,CAAA,CACA,IAAI,CAACypF,WAAW,CAAC5nF,GAAG,CAAC0vC,IAAAA,CAAMmT,QAC5B,CACA,OAAOA,MACR,CACAklC,WAAAA,CAAYnpF,MAAM,CAAE8wC,IAAI,CAAE,CACzB,MAAMtuC,GAAAA,CAAM,CAAC,EAAExC,MAAAA,CAAO,CAAC,EAAE8wC,IAAAA,CAAK,CAAC,CAC/B,IAAIsmB,QAAAA,CAAW,IAAI,CAAC4sB,aAAa,CAAC7sF,GAAG,CAACqL,GAAAA,CAAAA,CACtC,GAAI,CAAC40D,QAAAA,CAAU,CACdA,SAAW,IAAI,CAACgyB,cAAc,CAACppF,MAAAA,CAAQ8wC,IAAAA,CAAAA,CACvC,IAAI,CAACkzC,aAAa,CAAC5iF,GAAG,CAACoB,GAAAA,CAAK40D,UAC7B,CACA,OAAOA,QACR,CACAgyB,cAAAA,CAAeppF,MAAM,CAAE8wC,IAAI,CAAE,CAC5B,MAAMqoB,YAAAA,CAAe,IAAI,CAAC8vB,SAAS,CAACn4C,IAAAA,CAAAA,CAAM/I,IAAI,CAC9C,MAAMqvB,SAAW,IAAI,CAACzuB,MAAM,CAACqpB,IAAI,CAACgI,oBAAoB,CAAC,CACtDrH,OAAQ,MAAA,CACRyG,MAAAA,CAAQ,CACPC,MAAAA,CAAQF,YAAAA,CAAaG,qBAAqB,EAAA,CAC1CC,UAAAA,CAAYJ,YAAAA,CAAaK,gBAAe,CACzC,CACAltD,QAAAA,CAAU,CACT+sD,MAAAA,CAAQF,YAAAA,CAAaU,uBAAuB,EAAA,CAC5CN,UAAAA,CAAYJ,YAAAA,CAAaW,kBAAkB,CAC3CvV,OAAAA,CAAS,CAAC,CACTvkD,MACD,CAAA,CACD,CAAA,CACAy5D,SAAAA,CAAW,CACVC,QAAAA,CAAU,gBACX,CACD,CAAA,CAAA,CACA,OAAOtC,QACR,CACA6F,YAAAA,CAAapb,cAAc,CAAEwnC,aAAa,CAAEC,kBAAkB,CAAEx4C,IAAAA,CAAOld,gBAAgB,CAAE,CACxF,MAAM+U,MAAAA,CAAS,IAAI,CAACA,MAAM,CAC1B,MAAMqpB,IAAAA,CAAOrpB,MAAAA,CAAOqpB,IAAI,CACxB,MAAMoF,QAAAA,CAAW,IAAI,CAAC+xB,WAAW,CAACG,kBAAAA,CAAmBtpF,MAAM,CAAE8wC,IAAAA,CAAAA,CAC7D,MAAMozC,QAAAA,CAAWmF,cAAc/V,kBAAkB,CACjD,IAAK,IAAIziC,IAAAA,CAAO,CAAA,CAAGA,KAAOqzC,QAAAA,CAAUrzC,IAAAA,EAAAA,CAAQ,CAC3C,MAAM04C,OAAAA,CAAUF,aAAAA,CAActpB,UAAU,CAAC,CACxCv2B,SAAAA,CAAW,IAAA,CACXlsB,MAAAA,CAAQ,YAAA,CACRstB,aAAc,CAAA,CACdC,aAAAA,CAAe,CAAA,CACfC,cAAAA,CAAgB+F,IACjB,CAAA,CAAA,CACA,MAAMuzC,OAAAA,CAAUkF,kBAAAA,CAAmBvpB,UAAU,CAAC,CAC7Cv2B,SAAAA,CAAW,KACXoB,YAAAA,CAAc,CAAA,CACdC,cAAe,CAAA,CACfC,cAAAA,CAAgB+F,IACjB,CAAA,CAAA,CACA,MAAMwzC,WAAAA,CAAcxiC,cAAAA,CAAeyiC,eAAe,CAAC,CAClDlsB,gBAAAA,CAAkB,CAAC,CAClB5uD,IAAAA,CAAM46E,OAAAA,CACN1iB,MAAAA,CAAQ,QACRC,OAAAA,CAAS,OACV,CAAA,CACD,CAAA,CAAA,CACA,MAAMxuB,UAAY6e,IAAAA,CAAKC,eAAe,CAAC,CACtCU,MAAAA,CAAQyE,QAAAA,CAASmtB,kBAAkB,CAAC,CAAA,CAAA,CACpCryB,OAAAA,CAAS,CAAC,CACTC,OAAAA,CAAS,EACTC,QAAAA,CAAUm3B,OACX,CAAA,CACD,CAAA,CAAA,CACAlF,WAAAA,CAAYI,WAAW,CAACrtB,QAAAA,CAAAA,CACxBitB,WAAAA,CAAYX,YAAY,CAAC,CAAA,CAAGvwC,WAC5BkxC,WAAAA,CAAYv7B,IAAI,CAAC,CAAA,CAAA,CACjBu7B,WAAAA,CAAY1kF,GAAG,GAChB,CACAgpC,MAAAA,CAAOyuB,QAAQ,CAAG,KACnB,CA5FA,WAAA,CAAYzuB,MAAM,CAAE,CAHpBA,gBAAAA,CAAAA,IAAAA,CAAAA,QAAAA,CAAAA,MAAAA,CAAAA,CACAq7C,gBAAAA,CAAAA,IAAAA,CAAAA,eAAAA,CAAgC,IAAInhF,GAAAA,CAAAA,CACpCmmF,gBAAAA,CAAAA,IAAAA,CAAAA,cAA8B,IAAInmF,GAAAA,CAEjC,CAAA,IAAI,CAAC8lC,MAAM,CAAGA,OACf,CA2FD,CAAA,CAEA,IAAI6gD,8BAAAA,CAAiC,CAAA,CAAI,EACzC,IAAIC,aAAAA,CAAgB,KAAA,CAwCnB3hD,OAAAA,EAAU,CACT,IAAI,CAAC2L,cAAc,CAACtsC,OAAO,CAAC,EAACmnD,EAAOA,GAAGxmB,OAAO,EAAA,CAC9C,CAAA,IAAI,CAAC2L,cAAc,CAAC/4C,MAAM,CAAG,CAAA,CAC7B,IAAI,CAACgvF,UAAU,CAACviF,OAAO,CAAEgsC,SAAAA,EAAcA,SAAAA,CAAUrL,OAAO,EAAA,CACxD,CAAA,IAAI,CAAC4hD,UAAU,CAAChvF,MAAM,CAAG,EAC1B,CACAivF,eAAAA,EAAkB,CACjB,IAAK,IAAIlvF,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAK,IAAI,CAACivF,UAAU,CAAChvF,MAAM,CAAED,EAAAA,EAAAA,CAAM,CACnD,MAAM04C,SAAAA,CAAY,IAAI,CAACu2C,UAAU,CAACjvF,EAAAA,CAAG,CACrC04C,SAAAA,CAAUkB,oBAAoB,EAAA,CAC9BlB,SAAAA,CAAUmB,MAAM,GACjB,CACD,CACAs1C,SAAS5yF,EAAE,CAAEof,EAAE,CAAEkB,EAAE,CAAE,CACpB,MAAMqxB,MAAAA,CAAS,IAAI,CAACxd,OAAO,CAACwd,MAAM,CAClC,IAAK,IAAIluC,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAK,IAAI,CAACivF,UAAU,CAAChvF,MAAM,CAAED,EAAAA,EAAAA,CAAM,CACnDkuC,MAAAA,CAAO+6C,YAAY,CAACjpF,EAAAA,CAAI,IAAI,CAACivF,UAAU,CAACjvF,EAAAA,CAAG,EAC5C,CACA,MAAM4pF,WAAAA,CAAc17C,OAAO07C,WAAW,CACtCA,WAAAA,CAAYI,WAAW,CAAC,IAAI,CAACrtB,QAAQ,CAAA,CACrC,KAAM,CAAEyyB,iBAAiB,CAAEC,cAAc,CAAEC,kBAAkB,CAAE,CAAG,IAAI,CAAC5+D,OAAO,CAC9E,GAAI0+D,iBAAAA,EAAqB,CAAA,CAAG,CAC3B,IAAI/0C,SAAAA,CACJ,GAAIg1C,cAAAA,CAAgB,CACnBh1C,SAAAA,CAAYg1C,cAAAA,CAAe/hD,IAAI,CAAChzB,OAAM,CACvC,KAAO,CACN+/B,SAAAA,CAAYnM,OAAO+f,sBAAsB,CAAC3gB,IAAI,CAAChzB,OAChD,CACA,MAAM1M,OAAAA,CAAUwhF,iBAAAA,CAAoBL,8BAAAA,CACpCnF,WAAAA,CAAY2F,0BAA0B,CAACl1C,SAAAA,CAAWzsC,OAAAA,EACnD,CAAA,KAAO,CACNg8E,WAAAA,CAAY4F,kBAAkB,CAACjzF,EAAAA,CAAIof,EAAAA,CAAIkB,IACxC,CACD,CAtEA,YAAY6T,OAAO,CAAE,CAFrBsoB,gBAAAA,CAAAA,IAAAA,CAAAA,gBAAAA,CAAiB,EAAE,EACnBi2C,gBAAAA,CAAAA,IAAAA,CAAAA,YAAAA,CAAa,EAAE,CAEd,CAAA,IAAI,CAACv+D,OAAO,CAAGA,OAAAA,CACf,KAAM,CAAEwd,MAAM,CAAEsb,MAAM,CAAE,CAAG94B,OAAAA,CAC3B,KAAM,CACLwjD,sBAAsB,CACtBkD,2BAA2B,CAC3BE,+BAA+B,CAC/BC,mCAAmC,CACnCF,0BAAyB,CACzB,CAAG7tB,MAAAA,CAAOlc,IAAI,CACf,MAAMS,OAAAA,CAAU,EAAE,CAClB,GAAImmC,sBAAAA,CAAwB,CAC3B,MAAMx7B,SAAAA,CAAY,IAAIE,UAAU1K,MAAAA,CAAQgmC,sBAAAA,CAAAA,CACxC,GAAIkD,2BAAAA,CAA6B,CAChC,IAAK,MAAMt0E,IAAAA,IAAQs0E,2BAAAA,CAA6B,CAC/C,GAAIA,2BAAAA,CAA4BhrE,cAAc,CAACtJ,IAAAA,CAAAA,CAAO,CACrD,MAAM+wD,EAAAA,CAAK,IAAIq0B,aAAAA,CAAch6C,MAAAA,CAAQkpC,2BAA2B,CAACt0E,KAAK,CAAE,IAAA,CAAA,CACxE,IAAI,CAACk2C,cAAc,CAACl4C,IAAI,CAAC+yD,EAAAA,CAAAA,CACzBnb,SAAAA,CAAUI,gBAAgB,CAACh2C,IAAAA,CAAM+wD,IAClC,CACD,CACD,CACA9lB,OAAO,CAAC,CAAA,CAAE,CAAGmmC,sBACb,CAAA,IAAI,CAAC+a,UAAU,CAAC,EAAE,CAAGv2C,UACtB,CACA,GAAI4+B,+BAAAA,CAAiC,CACpC,MAAMmY,kBAAAA,CAAqB,IAAI72C,SAAAA,CAAU1K,MAAAA,CAAQopC,+BAAAA,CAAAA,CACjD,GAAIC,oCAAqC,CACxC,MAAM1jB,EAAAA,CAAK,IAAIq0B,aAAAA,CAAch6C,MAAAA,CAAQqpC,oCAAqC,IAAA,CAAA,CAC1E,IAAI,CAACv+B,cAAc,CAACl4C,IAAI,CAAC+yD,EAAAA,CAAAA,CACzB47B,kBAAAA,CAAmB32C,gBAAgB,CAAC,YAAA,CAAc+a,EAAAA,EACnD,CACA9lB,OAAO,CAACspC,0BAAAA,CAA2B,CAAGC,+BACtC,CAAA,IAAI,CAAC2X,UAAU,CAAC5X,0BAAAA,CAA2B,CAAGoY,mBAC/C,CACA,IAAI,CAAC9yB,QAAQ,CAAGzuB,MAAAA,CAAOwhD,eAAe,CAAChzF,GAAG,CAAC8sD,OAAQzb,OAAAA,EACpD,CAmCD,EAEA,IAAI4hD,kBAAAA,CAAqB,KAAA,CAQxB/oC,QAAAA,CAASgmC,QAAQ,CAAE,CAClB,GAAI,IAAI,CAACgD,WAAW,EAAI,IAAI,CAACA,WAAW,CAAC3vF,MAAM,GAAK,CAAA,CAAI2sF,QAAAA,CAAU,CACjE,MACD,CACA,IAAI,CAACh4C,OAAO,EAAEvH,SACd,CAAA,IAAI,CAACuiD,WAAW,CAAG,IAAIzuD,YAAY,CAAA,CAAIyrD,QAAAA,CACvC,CAAA,IAAI,CAACiD,iBAAiB,CAAG,IAAIx1E,UAAAA,CAAW,IAAI,CAACu1E,WAAW,CAACt1E,MAAM,CAC/D,CAAA,IAAI,CAACs6B,OAAO,CAAG,IAAI8R,aAAAA,CAAc,IAAI,CAACxY,MAAM,CAAE,IAAI,CAAC0hD,WAAW,CAACniF,UAAU,CAAEsqB,oBAAAA,CAAuBL,oBAAAA,EACnG,CACArnB,GAAAA,CAAIrQ,EAAE,CAAE8vF,kBAAkB,CAAEC,aAAa,CAAEC,kBAAkB,CAAEnH,UAAAA,CAAa,CAAC,CAAEoH,aAAAA,CAAgB,CAAC,CAAE,CACjG,MAAMC,CAAAA,CAAIlwF,EAAAA,CAAK,CACf,CAAA,IAAI,CAAC4vF,WAAW,CAACM,CAAAA,CAAI,CAAA,CAAE,CAAGJ,kBAC1B,CAAA,IAAI,CAACF,WAAW,CAACM,EAAI,CAAA,CAAE,CAAGH,aAC1B,CAAA,IAAI,CAACH,WAAW,CAACM,CAAAA,CAAI,CAAA,CAAE,CAAGF,kBAC1B,CAAA,IAAI,CAACH,iBAAiB,CAACK,CAAAA,CAAI,CAAA,CAAE,CAAGrH,UAChC,CAAA,IAAI,CAAC+G,WAAW,CAACM,EAAI,CAAA,CAAE,CAAGD,cAC3B,CACAp2C,MAAAA,CAAOhK,KAAK,CAAE,CACb,GAAI,IAAI,CAAC+E,OAAO,EAAI/E,MAAQ,CAAA,CAAG,CAC9B,MAAMogC,IAAAA,CAAOpgC,KAAAA,CAAQ,CAAA,CACrB,IAAI,CAAC+E,OAAO,CAAC1H,KAAK,CAAC,CAAA,CAAG,IAAI,CAAC0iD,WAAW,CAAE,CAAA,CAAG3f,IAAAA,EAC5C,CACA,IAAIkgB,eAAAA,CAAkB,CAAA,CACtB,OAAOA,eACR,CACA9iD,OAAAA,EAAU,CACT,IAAI,CAACuH,OAAO,EAAEvH,OAAAA,EACd,CAAA,IAAI,CAACuH,OAAO,CAAG,KAChB,CA/BA,WAAA,CAAY1G,MAAM,CAAE,CAJpBA,gBAAAA,CAAAA,IAAAA,CAAAA,QAAAA,CAAAA,MAAAA,CAAAA,CACA0hD,sBAAAA,aAAAA,CAAc,IAAA,CAAA,CACdC,gBAAAA,CAAAA,IAAAA,CAAAA,mBAAAA,CAAoB,IAAA,CAAA,CACpBj7C,gBAAAA,CAAAA,IAAAA,CAAAA,UAAU,IAAA,CAET,CAAA,IAAI,CAAC1G,MAAM,CAAGA,OACf,CA8BD,CAAA,CAEA,IAAIkiD,kBAAAA,CAAqB,KAAA,CASxBC,aAAAA,EAAgB,CAChB,CACAhjD,OAAAA,EAAU,CACT,IAAI,CAACic,UAAU,CAAG,IAAA,CAClB,IAAI,CAACgnC,uBAAuB,CAAC5jF,OAAO,CAAE4N,MAAAA,EAAWA,MAAAA,CAAO+yB,OAAO,EAAA,CAAA,CAC/D,IAAI,CAACw9C,qBAAqB,CAACn+E,OAAO,CAAE4N,QAAWA,MAAAA,CAAO+yB,OAAO,EAAA,EAC9D,CACAwM,MAAAA,CAAO02C,WAAW,CAAE,CACnB,MAAMriD,MAAAA,CAAS,IAAI,CAACsiD,YAAY,CAACtiD,MAAM,CACvC,MAAMuiD,OAAAA,CAAU,IAAI,CAAC5F,qBAAqB,CAC1C,IAAK,IAAI7qF,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAKywF,QAAQxwF,MAAM,CAAED,KAAM,CAC3C,MAAMsa,OAASm2E,OAAO,CAACzwF,EAAAA,CAAG,CAC1BkuC,MAAAA,CAAOm9C,cAAc,CAAC/wE,MAAAA,CAAQgxE,UAAAA,CAAWC,KAAK,CAAA,CAAEv/E,IAAI,CAAC,MAACw/E,EAAAA,CACrD,GAAIA,MAAAA,EAAU,CAAC,IAAI,CAACliC,UAAU,CAAE,CAC/B,IAAI,CAACgnC,uBAAuB,CAACxvF,IAAI,CAACwZ,MAAAA,EACnC,CAAA,KAAO,CACNA,MAAAA,CAAO+yB,OAAO,GACf,CACD,CAAA,EACD,CACAojD,OAAAA,CAAQxwF,MAAM,CAAG,EACjB,MAAMywF,SAAAA,CAAY,IAAI,CAACJ,uBAAuB,CAC9C,IAAK,IAAItwF,EAAAA,CAAK0wF,UAAUzwF,MAAM,CAAG,EAAGD,EAAAA,EAAM,CAAA,CAAGA,EAAAA,EAAAA,CAAM,CAClD,GAAI0wF,SAAS,CAAC1wF,EAAAA,CAAG,CAAC0E,IAAI,CAAG6rF,WAAAA,CAAa,CACrCG,SAAS,CAAC1wF,EAAAA,CAAG,CAACqtC,OAAO,EAAA,CACrBqjD,SAAAA,CAAU9nF,MAAM,CAAC5I,EAAAA,CAAI,CAAA,EACtB,CACD,CACD,CACA+xC,OAAOr4B,KAAK,CAAE9a,OAAO,CAAEgP,OAAO,CAAElJ,IAAI,CAAE,CACrC,GAAI,IAAI,CAACisF,eAAe,CAAE,CACzB,IAAI,CAACC,YAAY,CAACl3E,KAAAA,CAAO9a,QAASgP,OAAAA,CAASlJ,IAAAA,EAC5C,CAAA,KAAO,CACN,IAAI,CAACmsF,aAAa,CAACn3E,KAAAA,CAAO9a,OAAAA,CAASgP,OAAAA,CAASlJ,IAAAA,EAC7C,CACD,CACAksF,YAAAA,CAAal3E,KAAK,CAAE9a,OAAO,CAAEgP,OAAO,CAAElJ,IAAI,CAAE,CAC3C,MAAMi7C,UAAAA,CAAa/xC,OAAAA,CAAU8L,MAAMqmC,iBAAiB,CACnCr7C,IAAAA,CAAOgV,KAAAA,CAAMqmC,kBAC9BnhD,OAAAA,CAAQsuC,KAAK,CAACyS,UAAAA,CAAYjmC,KAAAA,CAAO,EAAGhV,IAAAA,EACrC,CACAmsF,aAAAA,CAAcn3E,KAAK,CAAE9a,OAAO,CAAEgP,OAAO,CAAElJ,IAAI,CAAE,CAC5C,MAAMwpC,OAAS,IAAI,CAACsiD,YAAY,CAACtiD,MAAM,CACvC,MAAMyR,UAAAA,CAAa/xC,OAAAA,CAAU8L,KAAAA,CAAMqmC,iBAAiB,CACpD,MAAM4G,QAAAA,CAAWjiD,IAAAA,CAAOgV,KAAAA,CAAMqmC,iBAAiB,CAC/C,GAAI,IAAI,CAAC8qC,qBAAqB,CAAC5qF,MAAM,CAAG,CAAA,CAAG,CAE3C,IAAI,CAAC45C,MAAM,CAAC8M,QAAAA,CAAAA,CACZ,MAAMrsC,MAAAA,CAAS,IAAI,CAACg2E,uBAAuB,CAAChvF,GAAG,IAAM,CAAC,IAAA,CACrD,MAAMwvF,SAAAA,CAAY,IAAI,CAACN,YAAY,CAACtiD,MAAM,CAACqpB,IAAI,CAACqC,YAAY,CAAC,CAC5Dl1D,IAAAA,CAAMiiD,QAAAA,CACN3F,KAAAA,CAAO8Y,cAAAA,CAAe2wB,SAAS,CAAG3wB,cAAAA,CAAeuM,QAAQ,CACzDskB,gBAAAA,CAAkB,IACnB,GACA,OAAOmG,SACR,CAAA,GAAA,CACA,MAAMxG,WAAAA,CAAchwE,OAAOiwE,cAAc,EAAA,CACzC,IAAIz9E,UAAAA,CAAWw9E,WAAAA,CAAAA,CAAa3jF,GAAG,CAAC,IAAImG,UAAAA,CAAW4M,KAAAA,CAAMY,MAAM,CAAEZ,KAAAA,CAAMimC,UAAU,CAAEgH,QAAAA,CAAAA,CAAAA,CAC/ErsC,MAAAA,CAAO0wE,KAAK,EAAA,CACZ98C,MAAAA,CAAOmZ,iBAAiB,EAAA,CAAGC,kBAAkB,CAC5ChtC,MAAAA,CACA,CAAA,CACA1b,OAAAA,CAAQ0uC,IAAI,CAAChzB,MAAM,CACnBqlC,UAAAA,CACAgH,QAAAA,CAAAA,CAED,IAAI,CAACkkC,qBAAqB,CAAC/pF,IAAI,CAACwZ,MAAAA,CAChC,CAAA,IAAI,CAACy2E,wBAAwB,CAAG7iD,MAAAA,CAAO8iD,cAAa,CAvErD,WAAA,CAAYR,YAAY,CAAE,CAJ1BF,gBAAAA,CAAAA,IAAAA,CAAAA,0BAA0B,EAAE,CAAA,CAC5BzF,gBAAAA,CAAAA,IAAAA,CAAAA,uBAAAA,CAAwB,EAAE,CAAA,CAC1BvhC,sBAAAA,YAAAA,CAAa,KAAA,CAAA,CACbynC,gBAAAA,CAAAA,IAAAA,CAAAA,0BAAAA,CAA2B,EAAC,CAE3B,CAAA,IAAI,CAACP,YAAY,CAAGA,YACpB,CAAA,IAAI,CAACG,eAAe,CAAGH,YAAAA,CAAaG,gBACrC,CAsED,CAAA,CAEA,IAAIM,cAAAA,CAAiB,KAAA,CAOpB5jD,OAAAA,CAAQa,MAAM,CAAE,CACf,IAAI,CAACgjD,QAAQ,CAAG,IAChB,CAAA,IAAI,CAACC,MAAM,CAAG,IAAA,CACd,IAAI,CAACC,sBAAsB,CAACzqF,GAAG,CAAC,CAAA,CAAG,CAAA,CAAA,CACnCunC,OAAOmjD,aAAa,GACrB,CACAC,UAAAA,CAAWC,KAAK,CAAEC,cAAc,CAAE,CACjC,MAAMtjD,MAAAA,CAAS,IAAI,CAACujD,QAAQ,CAACvjD,MAAM,CACnCA,MAAAA,CAAOmjD,aAAa,EAAA,CACpB,GAAI,CAAC,IAAI,CAACH,QAAQ,EAAI,CAAC,IAAI,CAACC,MAAM,EAAI,CAACK,cAAAA,CAAgB,CACtD,MACD,CACA,MAAME,KAAOH,KAAAA,CAAMI,aAAa,CAACH,cAAAA,CAAAA,CACjC,GAAI,CAACE,IAAAA,EAAQ,CAACA,IAAAA,CAAKE,KAAK,EAAE3xF,MAAAA,CAAQ,CACjC,MACD,CACA,MAAM4xF,UAAY3jD,MAAAA,CAAO4jD,WAAW,CACpC,IAAK,IAAI9xF,EAAAA,CAAK,EAAGA,EAAAA,CAAK0xF,IAAAA,CAAKE,KAAK,CAAC3xF,MAAM,CAAED,KAAM,CAC9C,IAAI6d,GAAAA,CACJ,GAAI,CACHA,GAAAA,CAAM,IAAI,CAACqzE,QAAQ,CAACa,eAAe,CAAC,IAAI,CAACZ,MAAM,CAAEO,IAAAA,CAAKE,KAAK,CAAC5xF,EAAAA,CAAG,EAChE,CAAE,MAAOiN,EAAG,CACX,IAAI,CAACwkF,QAAQ,CAACO,eAAe,GAAG/kF,CAAAA,CAAAA,CAChC,MACD,CACA,MAAMglF,YAAAA,CAAep0E,GAAAA,EAAKo0E,YAAAA,CAC1B,GAAI,CAACA,aAAc,SACnB,IAAIC,cAAAA,CAAiB,IAAA,CACrB,GAAI,OAAOr0E,IAAIs0E,iBAAiB,GAAK,UAAA,CAAY,CAChD,GAAI,CACH,MAAM7sC,IAAAA,CAAOznC,GAAAA,CAAIs0E,iBAAiB,EAAA,CAClC,GAAI7sC,IAAAA,CAAM,CACT4sC,cAAAA,CAAiB,CAAE,GAAG5sC,IAAI,EAC3B,CACD,CAAE,MAAOr4C,CAAAA,CAAG,CACZ,CACD,CACA4kF,UAAU/wF,IAAI,CAAC,CACdmxF,YAAAA,CACAC,cAAAA,CACAE,SAAUv0E,GAAAA,CAAIu0E,QAAQ,CACtBptB,UAAAA,CAAYktB,cAAAA,EAAgB3sF,MAAAA,EAAU0sF,aAAa1sF,MACpD,CAAA,EACD,CACA,MAAMZ,KAAAA,CAAQktF,SAAS,CAAC,CAAA,CAAE,CAC1B,GAAIltF,KAAAA,CAAO,CACVupC,OAAOm3B,cAAc,CAAG1gE,KAAAA,CAAMstF,YAAY,CAC1C/jD,OAAOmkD,wBAAwB,CAAG1tF,KAAAA,CAAMqgE,UAAU,CAClD92B,MAAAA,CAAOokD,qBAAqB,CAAC3tF,KAAAA,CAAMqgE,UAAU,CAAA,CAC7C,IAAI,CAACosB,sBAAsB,CAACzqF,GAAG,CAAChC,KAAAA,CAAMstF,YAAY,CAACpsE,KAAK,CAAElhB,KAAAA,CAAMstF,YAAY,CAACnsE,MAAM,EACpF,CACD,CACAysE,QAAAA,EAAW,CACV,MAAMrkD,MAAAA,CAAS,IAAI,CAACujD,QAAQ,CAACvjD,MAAM,CACnCA,MAAAA,EAAQmjD,aAAAA,GACT,CACA,IAAImB,iBAAAA,EAAoB,CACvB,OAAO,IAAI,CAACrB,MAAM,CAEnB,IAAIsB,eAAAA,EAAkB,CACrB,OAAO,IAAI,CAACvB,QAAQ,CAErBwB,kBAAAA,CAAmBC,MAAM,CAAE1hE,GAAG,CAAE,CAC/B,MAAM2hE,KAAAA,CAAQ,IAAI,CAACzB,MAAM,CACzB,GAAIyB,KAAAA,CAAO,CACV,MAAMzoE,GAAKyoE,KAAAA,CAAMC,YAAY,EAAID,KAAAA,CAAM/sE,KAAK,CAC5C,MAAMitE,EAAAA,CAAKF,KAAAA,CAAMG,aAAa,EAAIH,KAAAA,CAAM9sE,MAAM,CAC9C,GAAIqE,EAAAA,CAAK,CAAA,EAAK2oE,EAAAA,CAAK,CAAA,CAAG,CACrB7hE,GAAAA,CAAItqB,GAAG,CAACwjB,EAAAA,CAAI2oE,EAAAA,CAAAA,CACZ,MACD,CACD,CACA,GAAI,IAAI,CAAC1B,sBAAsB,CAACr1E,CAAC,CAAG,CAAA,EAAK,IAAI,CAACq1E,sBAAsB,CAACp1E,CAAC,CAAG,CAAA,CAAG,CAC3EiV,GAAAA,CAAIlyB,IAAI,CAAC,IAAI,CAACqyF,sBAAsB,CAAA,CACpC,MACD,CACAngE,GAAAA,CAAItqB,GAAG,CAAC,CAAA,CAAG,CAAA,EACZ,CACAqsF,WAAAA,CAAYL,MAAM,CAAEM,MAAM,CAAE,CAC3B,GAAI,IAAI,CAAC/B,QAAQ,EAAI,IAAI,CAACC,MAAM,CAAE,CACjC,GAAI,CACH,MAAMtzE,GAAAA,CAAM,IAAI,CAACqzE,QAAQ,CAACa,eAAe,CAAC,IAAI,CAACZ,MAAM,CAAE8B,QACvD,GAAIp1E,GAAAA,EAAKu0E,QAAAA,CAAU,CAClB,OAAOv0E,GAAAA,CAAIu0E,QAAQ,CAErB,CAAE,KAAM,CACR,CACD,CACA,OAAO,CAAEr2E,CAAAA,CAAG,CAAA,CAAGC,CAAAA,CAAG,CAAA,CAAG6J,MAAO,CAAA,CAAGC,MAAAA,CAAQ,CAAE,CAC1C,CACAotE,mBAAmBC,OAAO,CAAE3hF,QAAQ,CAAE,CACrC,MAAM4hF,iBAAmBrwF,UAAAA,CAAWswF,YAAY,CAChD,GAAI,OAAOD,gBAAAA,GAAqB,YAAa,CAC5C,IAAI,CAAC3B,QAAQ,CAACO,eAAe,GAAG,IAAIj1F,KAAAA,CAAM,gDAAA,CAAA,CAAA,CAC1C,MACD,CACA,MAAMmxC,OAAS,IAAI,CAACujD,QAAQ,CAACvjD,MAAM,CACnC,MAAMqpB,IAAAA,CAAOrpB,MAAAA,CAAOqpB,IAAI,CACxB,GAAI,CACH,IAAI,CAAC25B,QAAQ,CAAG,IAAIkC,gBAAAA,CAAiBD,OAAAA,CAAS57B,MAC/C,CAAE,MAAO14D,EAAAA,CAAI,CACZ,IAAI,CAAC4yF,QAAQ,CAACO,eAAe,GAAGnzF,EAAAA,CAAAA,CAChC,MACD,CACA,MAAMy0F,WAAAA,CAAc,IAAI,CAACpC,QAAQ,CAACqC,uBAAuB,GACzD,MAAMC,SAAAA,CAAY,CACjBF,WAAAA,CACAG,WAAAA,CAAajiF,QAAAA,CAASkiF,sBAAqB,CAC5C,CACA,GAAI,CACH,IAAI,CAACvC,MAAM,CAAG,IAAI,CAACD,QAAQ,CAACyC,qBAAqB,CAAC,CACjD,GAAGH,SAAS,CACZ9yD,WAAAA,CAAa,eACd,GACD,CAAE,KAAM,CACP,IAAI,CAACywD,MAAM,CAAG,IAAI,CAACD,QAAQ,CAACyC,qBAAqB,CAAC,CACjD,GAAGH,SAAS,CACZ9yD,WAAAA,CAAa,SACd,GACD,CACAyyD,OAAAA,CAAQS,iBAAiB,CAAC,CACzBC,MAAAA,CAAQ,CAAC,IAAI,CAAC1C,MAAM,CAAC,CACrB2C,SAAAA,CAAWtiF,SAASsiF,SAAS,CAC7BC,QAAAA,CAAUviF,QAAAA,CAASuiF,QACpB,GACD,CACAC,sBAAAA,CAAuBC,QAAQ,CAAE/jD,OAAO,CAAE,CACzC,GAAI,CAAC,IAAI,CAACghD,QAAQ,EAAEgD,eAAgB,CACnC,MACD,CACA,MAAM5+E,GAAAA,CAAM,IAAI,CAAC47E,QAAQ,CAACgD,cAAc,CAACD,QAAAA,CAAAA,CACzC,GAAI,CAAC3+E,GAAAA,CAAK,CACT,MACD,CACA,MAAMsJ,IAAMsxB,OAAAA,CAAQ5C,IAAI,EAAEy3B,UAAAA,CAC1B,GAAI,CAACnmD,IAAK,CACT,MACD,CACA,MAAMsvB,MAAAA,CAAS,IAAI,CAACujD,QAAQ,CAACvjD,MAAM,CACnC,MAAMimD,OAAAA,CAAUjmD,OAAOmZ,iBAAiB,EAAA,CACxC,MAAMxhC,KAAAA,CAAQouE,QAAAA,CAASpuE,KAAK,CAC5B,MAAMC,MAAAA,CAASmuE,QAAAA,CAASnuE,MAAM,CAC9BquE,OAAAA,CAAQzX,oBAAoB,CAC3B,CAAExsC,OAAAA,CAAS56B,GAAI,CAAA,CACf,CAAE46B,QAAStxB,GAAI,CAAA,CACf,CAACiH,KAAAA,CAAOC,MAAAA,CAAQ,EAAC,EAEnB,CACAsuE,sBAAAA,CAAuBC,SAAS,CAAEC,QAAQ,CAAEC,iBAAiB,CAAE,CAC9D,GAAIF,SAAAA,EAAWnkD,OAAAA,CAAS,CAEzB,CACAskD,mBAAAA,EAAsB,CACrB,IAAI,CAACtD,QAAQ,CAAG,KACjB,CACAuD,oBAAAA,EAAuB,CACtB,MAAMC,OAAS,IAAI,CAACjD,QAAQ,CAC5B,MAAM0B,OAAAA,CAAUuB,OAAOC,QAAQ,CAC/B,GAAI,CAACxB,OAAAA,CAAS,CACb,MACD,CACA,MAAMyB,EAAAA,CAAKzB,OAAAA,CAAQ0B,WAAW,CAC9B,MAAM3mD,MAAAA,CAASwmD,MAAAA,CAAOxmD,MACtB,CAAA,IAAI,CAACgjD,QAAQ,CAAG,IAChB,CAAA,IAAI,CAACC,MAAM,CAAG,IAAA,CACd,IAAI,CAACC,sBAAsB,CAACzqF,GAAG,CAAC,CAAA,CAAG,CAAA,CAAA,CACnCunC,MAAAA,CAAOmjD,aAAa,EAAA,CACpB8B,QAAQS,iBAAiB,CAAC,CACzBC,MAAAA,CAAQ,EAAE,CACVC,UAAWc,EAAAA,CAAGd,SAAS,CACvBC,QAAAA,CAAUa,EAAAA,CAAGb,QAAO,CACrB,EACD,CACAe,wBAAAA,EAA2B,CAC1B,MAAMJ,MAAAA,CAAS,IAAI,CAACjD,QAAQ,CAC5B,GAAI,CAACiD,MAAAA,CAAOC,QAAQ,CAAE,CACrB,MACD,CACA,MAAMI,aAAeL,MAAAA,CAAOK,YAAY,CACxCC,UAAAA,CAAW,IAAA,CACV,GAAI,CAACN,MAAAA,CAAOC,QAAQ,CAAE,CACrB,MACD,CACA,GAAI,CACH,MAAMC,EAAAA,CAAKF,MAAAA,CAAOC,QAAQ,CAACE,WAAW,CACtCH,MAAAA,CAAOxB,kBAAkB,CAACwB,MAAAA,CAAOC,QAAQ,CAAE,CAC1CjB,sBAAAA,CAAwBgB,MAAAA,CAAOO,uBAAuB,CACtDnB,SAAAA,CAAWc,GAAGd,SAAS,CACvBC,QAAAA,CAAUa,EAAAA,CAAGb,QAAQ,CACrBmB,eAAgBR,MAAAA,CAAO1C,eAAc,CACtC,EACD,CAAE,MAAOnzF,GAAI,CACZk2F,YAAAA,CAAa/rF,IAAI,CAAC,OAAA,CAASnK,IAC5B,CACD,CAAA,CAAG,CAAA,EACJ,CAtMA,WAAA,CAAY4yF,QAAQ,CAAE,CAHtBP,gBAAAA,CAAAA,IAAAA,CAAAA,UAAAA,CAAW,IAAA,CAAA,CACXC,gBAAAA,CAAAA,IAAAA,CAAAA,QAAAA,CAAS,MACTC,gBAAAA,CAAAA,IAAAA,CAAAA,wBAAAA,CAAyB,IAAItvE,IAAAA,CAE5B,CAAA,IAAI,CAAC2vE,QAAQ,CAAGA,SACjB,CAqMD,CAAA,CAEA,IAAI0D,iBAAmC,IAAI/sF,GAAAA,CAC3C,IAAIgtF,sBAAAA,CAAyB,CAAA,CAAI,CAAA,CACjC,IAAIC,+BAAAA,CAAkC,CAAA,CAAI,CAAA,CAC1C,IAAIC,uBAAAA,CAA0B,CAC7B,aAAcl6D,iBAAAA,CACd,iBAAA,CAAmBa,kBAAAA,CACnB,YAAA,CAAcW,iBAAAA,CACd,iBAAA,CAAmB6B,mBACnB,aAAA,CAAehD,mBAChB,EACA,IAAI85D,oBAAAA,CAAuB,cAAc3tC,cAAAA,CAyCxCva,OAAAA,EAAU,CACT,IAAI,CAACmoD,aAAa,EAAEnoD,OAAAA,EACpB,CAAA,IAAI,CAACmoD,aAAa,CAAG,IACrB,CAAA,IAAI,CAAChb,cAAc,EAAEntC,OAAAA,EACrB,CAAA,IAAI,CAACmtC,cAAc,CAAG,IACtB,CAAA,IAAI,CAACib,QAAQ,EAAEpoD,OAAAA,EACf,CAAA,IAAI,CAACooD,QAAQ,CAAG,IAChB,CAAA,IAAI,CAACvM,cAAc,EAAE3jF,MAAAA,CAAO8nC,OAAAA,EAC5B,CAAA,IAAI,CAAC67C,cAAc,EAAE77C,OAAAA,EACrB,CAAA,IAAI,CAAC67C,cAAc,CAAG,IACtB,CAAA,IAAI,CAAC13B,UAAU,EAAEnkB,SACjB,CAAA,IAAI,CAACmkB,UAAU,CAAG,IAAA,CAClB,IAAI,CAAC6/B,aAAa,EAClB,CAAA,IAAI,CAACqE,kBAAkB,CAAG,IAAA,CAC1B,KAAK,CAACroD,OAAAA,EAAAA,CACN,IAAI,CAACsoD,wBAAwB,EAC7B,CAAA,IAAI,CAACvuC,cAAc,CAAG,IACtB,CAAA,IAAI,CAACwuC,cAAc,CAAC31F,MAAM,CAAG,CAC7B,CAAA,IAAI,CAAC2pF,WAAW,CAAG,IACnB,CAAA,IAAI,CAACjtB,QAAQ,CAAG,IAChB,CAAA,IAAI,CAAClK,gBAAgB,CAAG,KACxB,CAAA,IAAI,CAAC+I,gBAAgB,CAACv7D,MAAM,CAAG,CAAA,CAC/B,IAAI,CAAC41F,cAAc,CAACv9C,KAAK,CAAC5vC,KAAK,EAAA,CAC/B,IAAI,CAACgnF,eAAe,CAACp3C,KAAK,CAAC5vC,KAAK,EAChC,CAAA,IAAI,CAACotF,UAAU,EAAEC,WAAAA,EACjB,CAAA,IAAI,CAACx+B,IAAI,EAAElqB,OAAAA,EACX,CAAA,IAAI,CAACkqB,IAAI,CAAG,IACZ,CAAA,IAAI,CAACy+B,UAAU,CAAG,IAClB,CAAA,IAAI,CAACF,UAAU,CAAG,IAClB,CAAA,IAAI,CAACG,YAAY,CAAG,KACrB,CACA5E,eAAgB,CACf,IAAI,CAAChsB,cAAc,CAAG,IACtB,CAAA,IAAI,CAACgtB,wBAAwB,CAAG,IAChC,CAAA,IAAI,CAACltB,4BAA4B,CAAG,IACpC,CAAA,IAAI,CAAC2sB,WAAW,CAAC7xF,MAAM,CAAG,CAC1B,CAAA,IAAI,CAACi2F,kBAAkB,CAAG,EAAC,CAC3B,GAAI,IAAI,CAACC,uBAAuB,GAAK,MAAK,CAAG,CAC5C,IAAI,CAAC1kC,gBAAgB,CAAG,IAAI,CAAC0kC,wBAAuB,CAEtD,CACA7D,qBAAAA,CAAsBttB,UAAU,CAAE,CACjC,MAAMz/D,MAAAA,CAAS+vF,uBAAuB,CAACtwB,UAAAA,CAAW,CAClD,GAAIz/D,MAAAA,GAAW,MAAK,CAAG,CACtB,IAAI,CAACksD,gBAAgB,CAAGlsD,OACzB,CACD,CACA6wF,cAAAA,EAAiB,CAChB,MAAMC,MAAAA,CAAS,IAAI,CAAC9+B,IAAI,EAAE8+B,MAC1B,CAAA,IAAI,CAACA,MAAM,CAAGA,MACd,CAAA,IAAI,CAAC/8E,SAAS,CAAG,OACjB,CAAA,IAAI,CAACwsE,YAAY,CAAG,OACpB,CAAA,IAAI,CAACluC,UAAU,CAAG,CAClB,CAAA,IAAI,CAAC0+C,WAAW,CAAGD,MAAAA,CAAOE,gCAAgC,CAC1D,IAAI,CAACtkC,cAAc,CAAGokC,MAAAA,CAAOG,qBAC7B,CAAA,IAAI,CAACxkC,cAAc,CAAGqkC,MAAAA,CAAOG,qBAAqB,CAClD,IAAI,CAACtkC,aAAa,CAAGmkC,MAAAA,CAAOI,qBAC5B,CAAA,IAAI,CAACtkC,mBAAmB,CAAGkkC,MAAAA,CAAOlkC,mBAAmB,CACrD,IAAI,CAAC1C,aAAa,CAAG,CACrB,CAAA,IAAI,CAACsC,aAAa,CAAG,EACrB,CAAA,IAAI,CAAC2kC,qBAAqB,CAAGL,MAAAA,CAAOM,2BAA2B,CAAG,EAClE,CAAA,IAAI,CAACC,mBAAmB,CAAGP,OAAOM,2BAA2B,CAAG,EAChE,CAAA,IAAI,CAACjkC,sBAAsB,CAAG,IAC9B,CAAA,IAAI,CAACmkC,kBAAkB,CAAG,IAC1B,CAAA,IAAI,CAACC,oBAAoB,CAAG,IAC5B,CAAA,IAAI,CAACzkC,eAAe,CAAG,IACvB,CAAA,IAAI,CAAC/J,sBAAsB,CAAG,IAC9B,CAAA,IAAI,CAACsI,0BAA0B,CAAG,IAClC,CAAA,IAAI,CAACmmC,mBAAmB,CAAG,IAC3B,CAAA,IAAI,CAAChkC,2BAA2B,CAAG,IACnC,CAAA,IAAI,CAACje,OAAO,CAAG,IAAI,CAAC4c,mBAAmB,CAAG,CAAA,CAAI,CAAA,CAC9C,MAAMslC,YAAAA,CAAej1F,MAAAA,CAAOH,SAAS,CAACsiF,GAAG,CAAC+S,oBAAoB,CAC9D,IAAI,CAAC9tC,0BAA0B,CAAG6tC,cAAcjwF,GAAAA,CAAI,yCAAA,CACpD,CAAA,IAAI,CAACurD,0BAA0B,CAAG0kC,YAAAA,EAAcjwF,GAAAA,CAAI,sBACpD,CAAA,IAAI,CAAC8hD,kBAAkB,CAAGmuC,YAAAA,EAAcjwF,GAAAA,CAAI,aAAA,CAC5C,CAAA,IAAI,CAAC+hD,sBAAsB,CAAGkuC,YAAAA,EAAcjwF,GAAAA,CAAI,iBAAA,CAChD,CAAA,IAAI,CAACgiD,qCAAqC,CAAGiuC,YAAAA,EAAcjwF,GAAAA,CAAI,kCAC/D,CAAA,IAAI,CAACiiD,8BAA8B,CAAGguC,YAAAA,EAAcjwF,IAAI,0BAAA,CACxD,CAAA,IAAI,CAACkiD,kCAAkC,CAAG+tC,cAAcjwF,GAAAA,CAAI,gCAAA,CAC5D,CAAA,IAAI,CAACmiD,4BAA4B,CAAG8tC,YAAAA,EAAcjwF,GAAAA,CAAI,yBAAA,CAAA,CACtD,IAAI,CAACohD,eAAe,GACrB,CACA,MAAM+uC,UAAAA,CAAWC,UAAU,CAAEC,QAAQ,CAAE,CACtC,GAAI,CAACr1F,MAAAA,CAAOH,SAAS,CAACsiF,GAAG,CAAE,CAE1B,MAAM,IAAInnF,MAAM,wFAAA,CACjB,CACA,GAAIo6F,UAAAA,EAAcC,QAAAA,CAAU,CAC3B,MAAMC,OAAAA,CAAUt1F,MAAAA,CAAO8I,QAAQ,EAAEysF,OAAAA,EAAWv1F,MAAAA,CAAOkI,QAAQ,CAACstF,IAAI,CAChE,MAAMC,QAAAA,CAAYC,UACjB,OAAO,IAAIC,GAAAA,CAAID,OAAAA,CAASJ,OAAAA,CAAAA,CAAS33F,QAAQ,EAC1C,CAAA,CACA,MAAMi4F,cAAAA,CAAiBH,QAAAA,CAASJ,QAAAA,CAAAA,CAChC,MAAMQ,aAAeJ,QAAAA,CAASJ,QAAAA,CAASh4F,OAAO,CAAC,KAAA,CAAO,UACtD,MAAMy4F,gBAAAA,CAAmBL,QAAAA,CAASL,UAAAA,CAAAA,CAClC,MAAMjJ,OAAAA,CAAU,MAAM4J,OAAAA,CAAQn9C,GAAG,CAAC,CACjC,OAGC,CAAC,EAAEg9C,cAAAA,CAAe,CAAA,CAAA,CACjB3rF,IAAI,CAAC,IAAM2rE,KAAAA,CAAMigB,YAAAA,CAAAA,CAAAA,CACnB,OAGC,CAAC,EAAEC,iBAAiB,CAAA,CAAA,CACnB7rF,IAAI,CAAC,OAACH,EAAYA,QAAQksF,OAAO,EAAA,CAAA,CACnC,CACD,CAAA,IAAI,CAACpgB,KAAK,CAAGuW,OAAO,CAAC,CAAA,CAAE,CACvB,IAAI,CAACxW,OAAO,CAAGwW,OAAO,CAAC,GAAE,CAE1B,OAAO,IAAI,CAAC8J,YAAY,EACzB,CACA,MAAMA,YAAAA,EAAe,CACpB,GAAI,IAAI,CAAC1uC,UAAU,CAAE,CACpB,OAAO,IACR,CACA,MAAM2uC,cAAAA,CAAiB,CACtB1kC,eAAAA,CAAiB,IAAI,CAACF,WAAW,CAACE,eAAe,GAAK,SAAA,CAAY,IAAI,CAACF,WAAW,CAACE,eAAe,CAAG,MAAK,CAE1GI,YAAAA,CAAc,CAAC,CAAC,IAAI,CAACN,WAAW,CAACM,YAClC,EACA,MAAMqiC,UAAAA,CAAa,MAAMj0F,MAAAA,CAAOH,SAAS,CAACsiF,GAAG,CAACgU,cAAc,CAACD,cAAAA,CAAAA,CAC7D,GAAI,IAAI,CAAC3uC,UAAU,CAAE,CACpB,OAAO,IACR,CACA,IAAI,CAAC0sC,UAAU,CAAGA,UAAAA,CAClB,GAAI,IAAI,CAACA,UAAU,EAAE/1D,IAAAA,EAAMk4D,MAAAA,GAAW,SAAA,CAAW,CAChD,OAAO,IACR,CACA,MAAMC,YAAAA,CAAe,IAAI,CAAC/kC,WAAW,CAAC+kC,YAAY,CAClD,MAAMC,IAAAA,CAAOD,eAAiB,MAAA,CAC9B,MAAME,gBAAAA,CAAmB,EAAE,CAC3B,MAAMC,eAAiBF,IAAAA,CAAO,IAAM,KAAA,CAASG,OAAAA,EAAAA,CAC5C,MAAM56B,UAAY,IAAI,CAACo4B,UAAU,CAACyC,QAAQ,CAAC1xF,GAAG,CAACyxF,OAAAA,CAAAA,CAC/C,GAAI56B,SAAAA,CAAW,CACd06B,gBAAAA,CAAiBx3F,IAAI,CAAC03F,OAAAA,EACvB,CACA,OAAO56B,SACR,CACA,CAAA,IAAI,CAACvV,sBAAsB,CAAGkwC,cAAAA,CAAe,oBAAA,CAC7C,CAAA,IAAI,CAAC1nC,qBAAqB,CAAG0nC,cAAAA,CAAe,mBAAA,CAC5C,CAAA,IAAI,CAACG,wBAAwB,CAAGH,cAAAA,CAAe,wBAAA,CAC/C,CAAA,IAAI,CAACI,gCAAgC,CAAGJ,cAAAA,CAAe,kCAAA,CACvD,CAAA,IAAI,CAACK,uBAAuB,CAAGL,cAAAA,CAAe,2BAC9C,CAAA,IAAI,CAACM,wBAAwB,CAAGN,cAAAA,CAAe,2BAC/C,CAAA,IAAI,CAACO,gCAAgC,CAAGP,cAAAA,CAAe,qCACvD,CAAA,IAAI,CAACnK,sBAAsB,CAAGmK,cAAAA,CAAe,kBAC7C,CAAA,IAAI,CAACQ,iBAAiB,CAAGR,cAAAA,CAAe,qBACxC,CAAA,IAAI,CAACS,sBAAsB,CAAGT,cAAAA,CAAe,wBAC7C,CAAA,IAAI,CAACU,6BAA6B,CAAGV,cAAAA,CAAe,0BACpD,CAAA,IAAI,CAAC7vC,iBAAiB,CAAG6vC,cAAAA,CAAe,aACxC,CAAA,IAAI,CAACW,oBAAoB,CAAGX,cAAAA,CAAe,qBAC3C,CAAA,IAAI,CAAC5nC,wBAAwB,CAAG4nC,cAAAA,CAAe,2BAC/C,CAAA,IAAI,CAAC5lC,qBAAqB,CAAG4lC,cAAAA,CAAe,iBAC5C,CAAA,IAAI,CAAC/vC,0BAA0B,CAAG+vC,cAAAA,CAAe,uBACjD,CAAA,IAAI,CAAC1lC,0BAA0B,CAAG0lC,cAAAA,CAAe,uBACjD,CAAA,IAAI,CAACzlC,0BAA0B,CAAGylC,cAAAA,CAAe,uBACjD,CAAA,IAAI,CAAC1lC,0BAA0B,GAAK,IAAI,CAACA,0BAA0B,CAAG,IAAI,CAACC,0BAA0B,CACrG,CAAA,IAAI,CAACrK,sBAAsB,CAAG8vC,cAAAA,CAAe,iBAAA,CAC7C,CAAA,IAAI,CAAC5vC,iBAAiB,CAAG4vC,cAAAA,CAAe,WAAA,CACxC,CAAA,IAAI,CAAC3vC,2BAA2B,CAAG2vC,cAAAA,CAAe,uBAAA,CAClD,CAAA,IAAI,CAAChmC,eAAe,CAAG,IAAI,CAACyjC,UAAU,EAAE/1D,IAAAA,EAAMk5D,eAAAA,EAAmB,CACjE,CAAA,IAAI,CAAC3mC,eAAe,CAAG,IAAI,CAACwjC,UAAU,EAAE/1D,IAAAA,EAAMm5D,eAAAA,EAAmB,CAAA,CACxCr3F,MAAAA,CAAOH,SAAS,CAACsiF,GAAG,CAAC+S,oBAAoB,CAAGj4F,KAAAA,CAAM6qB,IAAI,CAAC9nB,MAAAA,CAAOH,SAAS,CAACsiF,GAAG,CAAC+S,oBAAoB,CAAA,CAAI,GAC7H,MAAMoC,eAAiB,EAAC,CACxB,GAAI,CAAChB,IAAAA,CAAM,CACV,MAAMiB,aAAAA,CAAgB,IAAI,CAACtD,UAAU,EAAEK,MAAAA,CACvC,GAAIiD,aAAAA,CAAe,CAClB,IAAK,MAAMC,SAAAA,IAAaD,aAAAA,CAAe,CACtC,GAAIC,SAAAA,GAAc,iBAAA,EAAqBA,SAAAA,GAAc,iBAAA,CAAmB,CACvE,QACD,CACAF,cAAc,CAACE,SAAAA,CAAU,CAAGD,aAAa,CAACC,SAAAA,EAC3C,CACD,CACD,CACA,MAAMC,YAAc,CACnBlB,gBAAAA,CACAe,eACAI,YAAAA,CAAc,CACb7hB,MAAO,eACR,CACD,CAAA,CACA,MAAMrgB,IAAAA,CAAO,MAAMy+B,WAAW0D,aAAa,CAACF,WAAAA,CAAAA,CAC5C,GAAI,IAAI,CAAClwC,UAAU,CAAE,CACpBiO,IAAAA,CAAKlqB,OAAO,EAAA,CACZ,OAAO,IACR,CACA,IAAI,CAACkqB,IAAI,CAAGA,IACZ,CAAA,IAAI,CAAC5gB,oBAAoB,CAAG,OAAO,IAAI,CAAC4gB,IAAI,CAAC0C,KAAK,EAAEihB,yBAAAA,GAA8B,UAClF,CAAA,IAAI,CAACtoB,4BAA4B,CAAG,OAAOqT,eAAAA,GAAoB,aAAe,sBAAA,GAA0BA,eACxG,CAAA,IAAI,CAAC1O,IAAI,CAACoiC,IAAI,EAAE3tF,IAAAA,CAAK,IAAI,CAAC4tF,gBAAgB,CAACzpF,IAAI,CAAC,IAAI,CAAA,CACpD,CAAA,IAAI,CAAConD,IAAI,CAACsiC,gBAAgB,GAAG,iBAAA,CAAmB,EAAC5/E,EAAAA,CACtCA,EAAAA,CAAGxN,MACd,GACA,IAAI,CAAC2pF,cAAc,EACnB,CAAA,IAAI,CAACN,UAAU,CAAG,IAAI,CAACnsC,MAAM,CAACoxB,UAAU,CAAC,QAAA,CAAA,CACzC,IAAI+e,iBAAAA,CAAoB,UAAA,CACxB,IAAIC,sBAAwBh4F,MAAAA,CAAOH,SAAS,CAACsiF,GAAG,CAAC8V,wBAAwB,EAAA,CACzE,MAAMxmC,aAAAA,CAAgB,IAAI,CAACH,WAAW,CAACG,aACvC,CAAA,IAAI,CAAC/B,gBAAgB,CAAGsoC,qBAAAA,GAA0B,YAAA,CAAevmC,aAAAA,GAAkB9oB,sBAAAA,CAAyBzO,kBAAAA,CAAqBb,iBAAAA,CAEhIo4B,gBAAkB9oB,sBAAAA,CAAyBjM,kBAAAA,CAAqB7B,iBAEjE,CAAA,IAAI,CAACiqC,oBAAoB,CAAGrT,aAAAA,GAAkB9oB,sBAAAA,CAAyB,CAAC,EAAEqvD,qBAAAA,CAAsB,KAAK,CAAC,CAAGA,qBAAAA,CACzG,GAAIvmC,aAAAA,GAAkB7oB,iBAAAA,EAAqB,IAAI,CAAC0d,sBAAsB,CAAE,CACvE,MAAM4xC,aAAAA,CAAgBl4F,OAAOm4F,UAAU,CAAC,uBAAA,CAAA,CACxC,GAAID,aAAAA,EAAenb,OAAAA,CAAS,CAC3B,IAAI,CAACrtB,gBAAgB,CAAGh2B,mBACxB,CAAA,IAAI,CAACorC,oBAAoB,CAAG,aAAA,CAC5BkzB,qBAAAA,CAAwB,aACxB,CAAA,IAAI,CAACnoC,KAAK,CAAG,IAAA,CACbkoC,iBAAAA,CAAoB,WACrB,CACD,CACA,IAAI,CAAC7D,YAAY,CAAG,CACnB/nD,MAAAA,CAAQ,IAAI,CAACqpB,IAAI,CACjB4iC,UAAAA,CAAY,OACZC,SAAAA,CAAW,IAAI,CAAC/mC,WAAW,CAAC1/C,KAAK,CAAG,eAAA,CAAkB,QAAA,CAEtDpO,MAAAA,CAAQw0F,qBAAAA,CACRM,WAAAA,CAAa,CAAEhkD,KAAMyjD,iBAAkB,CAAA,CAEvC94C,MAAOilB,eAAAA,CAAgBC,iBAAiB,CAAGD,eAAAA,CAAgBI,QAAQ,CAAGJ,eAAAA,CAAgBlM,QAAQ,CAG9FugC,YAAa9mC,aAAAA,GAAkB9oB,sBAAAA,CAAyB,CAAC,IAAI,CAACm8B,oBAAoB,CAAC,CAAG,EAAC,CAExF,CAAA,IAAI,CAACivB,UAAU,EAAEyE,SAAAA,CAAU,IAAI,CAACtE,YAAY,CAC5C,CAAA,IAAI,CAACE,uBAAuB,CAAG,IAAI,CAAC1kC,gBAAgB,CACpD,IAAI,CAAC+oC,gBAAgB,EACrB,CAAA,IAAI,CAAChF,aAAa,CAAG,IAAIzM,mBAAAA,CAAoB,IAAI,CACjD,CAAA,IAAI,CAACvO,cAAc,CAAG,IAAI8O,oBAAAA,CAAqB,IAAI,CACnD,CAAA,IAAI,CAACmM,QAAQ,CAAG,IAAInH,cAAAA,CAAe,IAAI,CAAA,CACvC,IAAI,CAACxmC,QAAQ,EAAA,CACb,OAAO,IAAI,CAEZ,MAAM8xC,gBAAAA,CAAiB35D,IAAI,CAAE,CAC5B,GAAIA,IAAAA,CAAKw6D,MAAM,GAAK,WAAA,EAAe,CAAC,IAAI,CAACnxC,UAAU,CAAE,CACpD,KAAK,CAACzb,WAAAA,EAAAA,CACN,IAAI,CAAC7kC,IAAI,CAAC,YAAA,CACV,CAAA,MAAM,IAAI,CAACgvF,YAAY,GACvB,GAAI,IAAI,CAAC1uC,UAAU,CAAE,CACpB,MACD,CACA,KAAK,CAAC/I,cAAAA,EAAAA,CACN,IAAI,CAACv3C,IAAI,CAAC,gBAAA,EACX,CACD,CACA8+C,QAAAA,EAAW,CACV,KAAK,CAACA,QAAAA,EAAAA,CACN,IAAI,CAACiC,qBAAqB,GAC1B,IAAI,CAAC2wC,wBAAwB,EAC7B,CAAA,IAAI,CAACrxC,WAAW,CAAG,IAAI2kC,iBAAAA,CAAkB,IAAI,CAC7C,CAAA,IAAI,CAAC5kC,cAAc,CAAG,IAAIwhC,oBAAAA,CAAqB,IAAI,CAAE,GAAA,CAAM,IAAA,CAAM,IAAI,CAACyL,MAAM,CAACsE,+BAA+B,CAC5G,CAAA,IAAI,CAACzR,cAAc,CAAG,IAAItwC,SAAAA,CAAU,IAAI,CAAE,IAAIxL,eAAAA,CAAgB,IAAI,CAAE,EAAE,CAAA,CAAA,CACtE,IAAI,CAAC87C,cAAc,CAACrvC,MAAM,GAC3B,CACA2gD,gBAAAA,EAAmB,CAClB,IAAI,CAACpoC,eAAe,CAAG,IAAI,CAACiB,WAAW,CAACF,OAAO,CAC/C,IAAI,CAAC3B,UAAU,CAAG,IAAIkD,YAAAA,CAAa,CAClC5xD,IAAAA,CAAM,mBAAA,CACNgrC,cAAAA,CAAgB,IAAI,CACpBoB,KAAAA,CAAO,IAAI,CAACmkB,WAAW,CAACnkB,KAAK,CAC7BikB,OAAAA,CAAS,IAAI,CAACf,eAAe,CAC7Btd,QAAS,IAAI,CAACA,OAAO,CACrB2e,cAAAA,CAAgB,IAAI,CAACJ,WAAW,CAACI,cAAc,CAC/CC,cAAAA,CAAgB,IAAI,CAACL,WAAW,CAACK,cAClC,CAAA,CACA,CAAA,IAAI,CAAClC,UAAU,CAAClkB,IAAI,CAACq4B,YAAY,CAAG,KACrC,CACAzV,UAAAA,EAAa,CACZ,KAAK,CAACA,aACN,IAAI,CAAC7G,WAAW,CAAC6G,UAAU,EAAA,CAC3B,IAAI,CAAC4qB,MAAM,EAAA,CACX,MAAM8f,cAAAA,CAAiB,IAAI,CAACv1B,cAAc,EAAI,IAAI,CAACywB,UAAU,EAAE+E,iBAAAA,IAAAA,EAAyB,IAAI,CAACnF,kBAAkB,EAAEpoD,IAAAA,CAAKy3B,WACtH,GAAI,IAAI,CAAClb,cAAc,CAAC9tC,CAAC,GAAK6+E,cAAAA,CAAe/0E,KAAK,EAAI,IAAI,CAACgkC,cAAc,CAAC7tC,CAAC,GAAK4+E,cAAAA,CAAe90E,MAAM,CAAE,CACtG,IAAI,CAAC+jC,cAAc,CAACljD,GAAG,CAACi0F,cAAAA,CAAe/0E,KAAK,CAAE+0E,cAAAA,CAAe90E,MAAM,CAAA,CACnE,IAAI,CAAC0rC,UAAU,CAACnkB,OAAO,EACvB,CAAA,IAAI,CAACmkB,UAAU,CAAG,IAAA,CAClB,IAAI,CAACgpC,gBAAgB,GACtB,CACA,MAAMt3B,EAAAA,CAAK,IAAI,CAAC1R,UAAU,CAC1B,MAAMspC,GAAAA,CAAM53B,EAAAA,CAAG51B,IAAI,CACnB,MAAMytD,qBAAuBH,cAAAA,GAAmB,IAAI,CAACv1B,cAAc,EAAI,IAAI,CAACgtB,wBAAwB,CAAG,IAAI,CAACA,wBAAwB,CAAG,IAAI,CAACxrB,oBAAoB,CAChKi0B,GAAAA,CAAIr1B,kBAAkB,CAAC,EAAG,MAAK,CAAGs1B,oBAAAA,CAClC73B,CAAAA,EAAAA,CAAG7wB,MAAM,CAAGuoD,cAAAA,CAAe/0E,KAAK,CAChCq9C,EAAAA,CAAG5wB,OAAO,CAAGsoD,cAAAA,CAAe90E,MAAM,CAClC,IAAI,CAACqoC,gBAAgB,CAAC+U,EAAAA,CAAAA,CACtB43B,GAAAA,CAAIh2B,kBAAkB,CAAC81B,cAAAA,CAAgBG,oBAAAA,EACxC,CACA3qC,QAAAA,EAAW,CACV,KAAK,CAACA,QAAAA,EAAAA,CACN,IAAI,CAAC/G,WAAW,CAAC+G,QAAQ,EAAA,CACzB,IAAI,CAAC0qB,MAAM,EAAA,CACX,GAAI,CAAC,IAAI,CAAClxB,WAAW,CAAE,CACtB,IAAI,CAACP,WAAW,CAAC2iC,OAAO,GACzB,CACA,IAAI,CAACgP,sBAAsB,CAAG,CAC9B,CAAA,IAAI,CAACC,0BAA0B,CAAG,EACnC,CACAxzC,iBAAiBoS,UAAU,CAAE,CAC5B,OAAO,IAAIH,aAAaG,UAAAA,CACzB,CACA6uB,uBAAAA,CAAwB3vC,aAAa,CAAE,CACtC,OAAO,IAAI4jC,mBAAAA,CAAoB5jC,aAAAA,CAChC,CACA2J,sBAAAA,CAAuBkL,YAAY,CAAEroD,MAAM,CAAEiM,QAAQ,CAAE,CACtD,OAAO,IAAIqrE,kBAAAA,CAAmBjvB,YAAAA,CAAcroD,MAAAA,CAAQiM,QAAAA,CACrD,CACA0vC,qBAAAA,CAAsBd,WAAW,CAAE5uC,QAAQ,CAAE,CAC5C,OAAO,IAAI8oD,kBAAkBla,WAAAA,CAAa5uC,QAAAA,CAC3C,CACAw1E,gBAAAA,CAAiBx9B,MAAM,CAAE,CACxB,OAAO,IAAI8sB,YAAAA,CAAa9sB,MAAAA,CACzB,CACA0xC,qBAAAA,CAAsB1sC,YAAY,CAAE,CACnC,OAAO,IAAImhC,kBAAAA,CAAmB,IAAI,CACnC,CACA39C,iBAAAA,CAAkB9B,OAAO,CAAE,CAC1B,IAAI,CAACoJ,QAAQ,CAACjpC,GAAG,CAAC6/B,OAAAA,CAAAA,CAClB,OAAO,IAAI0oC,aAAAA,CAAc1oC,OAAAA,CAC1B,CACAirD,kBAAAA,CAAmB1J,QAAQ,CAAE,CAC5B,OAAO,IAAIR,cAAAA,CAAeQ,QAAAA,CAC3B,CACAl8B,uBAAuBnL,YAAY,CAAE,CACpC,OAAO,IAAIua,kBAAAA,CAAmBva,aAC/B,CACAgxC,sBAAAA,CAAuB5K,YAAY,CAAE,CACpC,OAAO,IAAIJ,kBAAAA,CAAmBI,YAAAA,CAC/B,CACAhiD,yBAAAA,CAA0ByqB,eAAe,CAAE,CAC1C,OAAO,IAAID,sBAAsBC,eAAAA,CAClC,CACA1e,oBAAoB7B,SAAS,CAAE,CAC9B,OAAO,IAAI2e,eACZ,CACAgkC,iBAAAA,CAAkB3qE,OAAO,CAAE,CAC1B,OAAO,IAAIs+D,cAAct+D,OAAAA,CAC1B,CACA,IAAIq9B,kBAAAA,EAAqB,CACxB,IAAI,CAACutC,0BAA0B,EAAA,CAC/B,OAAO,IAAI,CAACC,mBAAmB,CAEhCD,0BAAAA,EAA6B,CAC5B,GAAI,IAAI,CAACN,sBAAsB,GAAK,CAAA,EAAK,IAAI,CAACQ,wBAAwB,CAAG,IAAI,CAAC3pC,oBAAoB,CAAE,CACnG,IAAI,CAAC0pC,mBAAmB,EAAEluD,OAAAA,EAC1B,CAAA,IAAI,CAACkuD,mBAAmB,CAAG,KAC5B,CACA,GAAI,IAAI,CAACA,mBAAmB,GAAK,IAAA,CAAM,CACtC,IAAI,CAACA,mBAAmB,CAAG,IAAI70C,aAAAA,CAAc,IAAI,CAAE,IAAI,CAACmL,oBAAoB,CAAGujC,sBAAAA,CAAwBr9D,oBAAAA,CAAuBL,oBAAAA,CAC9H,CAAA,IAAI,CAAC8jE,wBAAwB,CAAG,IAAI,CAAC3pC,qBAAoB,CAE3D,CACA/D,mBAAAA,CAAoBje,KAAAA,CAAQ,CAAC,CAAE,CAC9B,IAAI,CAACyrD,0BAA0B,EAAA,CAC/B,MAAMhvD,IAAAA,CAAO,IAAI,CAAC0uD,sBAAsB,CACxC,MAAMS,UAAY,IAAI,CAACT,sBAAsB,CAAGnrD,KAChD,CAAA,IAAI,CAACmrD,sBAAsB,CAAGS,SAAAA,CAC9B,OAAOnvD,IACR,CACA,IAAI2hB,sBAAAA,EAAyB,CAC5B,IAAI,CAACytC,8BAA8B,EAAA,CACnC,OAAO,IAAI,CAACC,uBACb,CACAD,8BAAAA,EAAiC,CAChC,GAAI,IAAI,CAACT,0BAA0B,GAAK,CAAA,EAAK,IAAI,CAACW,4BAA4B,CAAG,IAAI,CAAC9pC,wBAAwB,CAAE,CAC/G,IAAI,CAAC6pC,uBAAuB,EAAEtuD,OAAAA,EAC9B,CAAA,IAAI,CAACsuD,uBAAuB,CAAG,KAChC,CACA,GAAI,IAAI,CAACA,uBAAuB,GAAK,IAAA,CAAM,CAC1C,IAAI,CAACA,uBAAuB,CAAG,IAAIj1C,aAAAA,CAAc,IAAI,CAAE,IAAI,CAACoL,wBAAwB,CAAGujC,+BAAAA,CAAiCt9D,oBAAAA,CAAuBL,oBAAAA,CAC/I,CAAA,IAAI,CAACkkE,4BAA4B,CAAG,IAAI,CAAC9pC,yBAAwB,CAEnE,CACA9D,uBAAAA,CAAwBne,KAAAA,CAAQ,CAAC,CAAE,CAClC,IAAI,CAAC6rD,8BAA8B,EAAA,CACnC,MAAMpvD,KAAO,IAAI,CAAC2uD,0BAA0B,CAC5C,MAAMQ,SAAAA,CAAY,IAAI,CAACR,0BAA0B,CAAGprD,KACpD,CAAA,IAAI,CAACorD,0BAA0B,CAAGQ,SAAAA,CAClC,OAAOnvD,IACR,CACA28C,YAAAA,CAAa5jF,KAAK,CAAEqzC,SAAS,CAAEC,OAAO,CAAE,CACvC,GAAI,IAAI,CAACixC,WAAW,CAAE,CACrB,IAAI,CAACA,WAAW,CAACX,YAAY,CAAC5jF,MAAOqzC,SAAAA,CAAUpL,IAAI,CAACoL,SAAS,CAAEC,OAAAA,EAAWD,UAAUuB,oBAAoB,CACxG,CAAA,IAAI,CAACuhB,gBAAgB,CAACn2D,KAAAA,CAAM,CAAGqzC,SAAAA,CAAUnzC,MAAM,CAAC+nC,KAAI,CAEtD,CACAuuD,kBAAAA,CAAmBjuC,YAAY,CAAEthB,IAAI,CAAE,CACtC,MAAM/mC,MAAAA,CAASqoD,YAAAA,CAAaroD,MAAM,CAClC,KAAM,CAAE2/C,WAAW,CAAE3B,QAAQ,CAAE,CAAGh+C,OAClC,MAAM21D,YAAAA,CAAe3X,QAAAA,CAAStjD,MAAM,CACpC,MAAM67F,SAAWluC,YAAAA,CAAatgB,IAAI,CAAChzB,MAAM,CACzC,GAAI4qC,YAAa,CAChB,IAAI,CAAC0kC,WAAW,CAACj8B,eAAe,CAACrhB,IAAAA,CAAMwvD,QAAAA,CAAAA,CACvC,OAAO,CACR,CACA,IAAK,IAAI97F,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAKk7D,YAAAA,CAAcl7D,EAAAA,EAAAA,CAAM,CACzC,IAAI,CAAC4pF,WAAW,CAACj8B,eAAe,CAACrhB,KAAOtsC,EAAAA,CAAI87F,QAAAA,CAAUv4C,QAAQ,CAACvjD,EAAAA,CAAG,CAAC0N,MAAM,EAC1E,CACA,OAAOwtD,YACR,CACA6gC,mBAAAA,CAAoBC,GAAG,CAAEC,GAAG,CAAE,CAC7B,MAAMC,UAAAA,CAAa,EAAC55C,EAAAA,CACnB,KAAM,CAAEiB,QAAQ,CAAE,CAAGjB,GAAG/8C,MAAM,CAC9B,IAAK,IAAIvF,EAAAA,CAAK,CAAA,CAAGA,GAAKujD,QAAAA,CAAStjD,MAAM,CAAED,EAAAA,EAAAA,CAAM,CAC5C,MAAM8C,KAAOygD,QAAQ,CAACvjD,EAAAA,CAAG,CAAC8C,IAAI,CAC9B,MAAMmH,QAAAA,CAAWiiC,kBAAkB,CAACppC,IAAAA,CAAK,CACzC,GAAIqyF,iBAAiBpuF,GAAG,CAACkD,QAAAA,CAAAA,CAAW,CAEpCkrF,gBAAAA,CAAiBxuF,GAAG,CAACsD,QAAAA,CAAUnH,IAAAA,EAChC,CACD,CAAA,CACAo5F,UAAAA,CAAWF,KACXE,UAAAA,CAAWD,GAAAA,CAAAA,CACX9G,gBAAAA,CAAiBzsF,KAAK,GACvB,CACA2lD,KAAKC,UAAU,CAAElO,WAAW,CAAEmO,YAAAA,CAAe,CAAC,CAAEC,YAAY,CAAE7pD,KAAAA,CAAQ,IAAI,CAAE8pD,IAAAA,CAAO,IAAI,CAAE,CACxF,GAAI,IAAI,CAACjF,MAAM,CAACytB,KAAK,EAAI,CAAC,IAAI,CAACztB,MAAM,CAAC2gB,MAAM,CAAE,CAC7C,MAAMyf,WAAAA,CAAc,IAAI,CAACA,WAAW,CACpC,IAAIjtB,QAAAA,CAAW,IAAI,CAACA,QAAQ,CAC5B,MAAMq/B,GAAAA,CAAM,IAAI,CAAC/xC,aAAa,CAAC,CAAA,CAAE,CACjC,MAAMgyC,GAAAA,CAAM,IAAI,CAAChyC,aAAa,CAAC,CAAA,CAAE,CACjC,GAAItlD,KAAAA,CAAO,CACV,GAAIq3F,GAAAA,CAAK,CACR,MAAMG,MAAAA,CAAS,IAAI,CAACN,kBAAkB,CAACG,GAAAA,CAAK,CAAA,CAAA,CAC5C,GAAIC,GAAAA,CAAK,CACR,IAAI,CAACJ,kBAAkB,CAACI,GAAAA,CAAKE,MAAAA,EAC9B,CACD,CACAx/B,QAAAA,CAAW,IAAI,CAACk5B,cAAc,CAACn5F,GAAG,CACjC4xD,UAAAA,CACA0tC,GAAAA,EAAKz2F,MAAAA,CACL02F,GAAAA,EAAK12F,MAAAA,CACL66C,aAAa76C,MAAAA,CACb,IAAI,CAACikD,MAAM,CACX,IAAI,CAACY,YAAY,CACjB,IAAI,CAACoR,gBAAgB,CACrB,IAAI,CAACnR,UAAU,CACf,IAAI,CAACC,UAAU,CACf,IAAI,CAACC,QAAQ,CACb,IAAI,CAACyI,cAAc,CACnB,IAAI,CAAC5F,YAAY,CACjB,IAAI,CAACC,WAAW,CAChB,IAAI,CAAC7C,SAAS,CACd,IAAI,CAACC,eAAc,EAEpB,GAAI,IAAI,CAACkS,QAAQ,GAAKA,QAAAA,CAAU,CAC/B,IAAI,CAACA,QAAQ,CAAGA,QAAAA,CAChBitB,WAAAA,CAAYI,WAAW,CAACrtB,QAAAA,EACzB,CACD,CACA,GAAIvc,WAAAA,CAAa,CAChBwpC,WAAAA,CAAYwS,cAAc,CAACh8C,WAAAA,CAAY9S,IAAI,CAAChzB,MAAM,CAAE8lC,WAAAA,CAAY9S,IAAI,CAAC/nC,MAAM,EAC5E,CACA,GAAIipD,YAAAA,CAAc,CACjB,MAAM5Z,OAAAA,CAAU4Z,YAAAA,CAAalhB,IAAI,EAAEsH,OAAAA,EAAW,IAAI,CAACmZ,kBAAkB,CACrE,MAAMshC,cAAAA,CAAiBz6C,OAAAA,CAAQtH,IAAI,CAAChzB,MAAM,CAC1C,MAAM+hF,UAAAA,CAAa7tC,aAAa3e,KAAK,CACrC,IAAK,IAAI53B,CAAAA,CAAI,CAAA,CAAGA,EAAIokF,UAAAA,CAAYpkF,CAAAA,EAAAA,CAAK,CACpC,MAAMqkF,cAAAA,CAAkB9tC,CAAAA,YAAAA,CAAa+tC,SAAS,CAAGtkF,CAAAA,EAAKm9E,sBAAAA,CACtD,GAAIh1C,WAAAA,CAAa,CAChBwpC,WAAAA,CAAY4S,mBAAmB,CAACnN,cAAAA,CAAgBiN,gBACjD,CAAA,KAAO,CACN1S,WAAAA,CAAY6S,YAAY,CAACpN,cAAAA,CAAgBiN,gBAC1C,CACD,CACD,CAAA,KAAO,CACN,GAAIl8C,WAAAA,CAAa,CAChBwpC,WAAAA,CAAY8S,WAAW,CAACpuC,UAAAA,CAAWze,KAAK,CAAE0e,aAAcD,UAAAA,CAAWs6B,IAAI,CAAEt6B,UAAAA,CAAWu6B,UAAU,EAAI,CAAA,CAAG,CAAA,EACtG,CAAA,KAAO,CACNe,WAAAA,CAAYv7B,IAAI,CAACC,UAAAA,CAAWze,KAAK,CAAE0e,YAAAA,CAAcD,UAAAA,CAAWs6B,IAAI,CAAE,CAAA,EACnE,CACD,CACA,IAAI,CAACx0B,kBAAkB,GACxB,CACA,GAAI3F,IAAAA,CAAM,CACT,IAAI,CAACZ,iBAAiB,EACtB,CAAA,IAAI,CAAC8O,QAAQ,CAAG,KACjB,CACD,CACAysB,SAAAA,CAAU5/B,MAAM,CAAEmzC,YAAAA,CAAe,KAAK,CAAE,CACvC,GAAInzC,MAAAA,GAAW,IAAI,CAACA,MAAM,CAAE,CAC3B,IAAI,CAACA,MAAM,CAAGA,OACf,CACD,CACA2C,aAAAA,CAAc9B,UAAU,CAAE,CACzB,IAAI,CAACA,UAAU,CAACtrD,IAAI,CAACsrD,UAAAA,EACtB,CACA0C,aAAAA,CAAczC,UAAU,CAAE,CACzB,IAAI,CAACA,UAAU,CAACvrD,IAAI,CAACurD,UAAAA,EACtB,CACA6C,eAAAA,CAAgBC,YAAY,CAAEC,WAAW,CAAE,CAC1C,GAAID,YAAAA,EAAgBC,YAAa,CAChC,IAAI,CAAC2F,cAAc,CAAG,IAAA,CACtB,IAAI,CAAC5F,YAAY,CAACruD,IAAI,CAACquD,YAAAA,EAAgB3H,kBAAkBnH,OAAO,CAAA,CAChE,IAAI,CAAC+O,WAAW,CAACtuD,IAAI,CAACsuD,WAAAA,EAAe5H,iBAAAA,CAAkBnH,OAAO,CAAA,CAC9D,MAAMuH,GAAAA,CAAM,IAAI,CAACuH,YAAY,CAACvH,GAAG,CACjC,GAAI,IAAI,CAAC+2C,UAAU,GAAK/2C,GAAAA,CAAK,CAC5B,IAAI,CAAC+2C,UAAU,CAAG/2C,GAAAA,CAClB,IAAI,CAAC+jC,WAAW,CAACiT,mBAAmB,CAACh3C,GAAAA,EACtC,CACD,MAAO,CACN,IAAI,CAACmN,cAAc,CAAG,MACvB,CACD,CACA1F,aAAAA,CAAchuD,CAAC,CAAEgU,CAAC,CAAE1W,CAAC,CAAED,CAAC,CAAE,CACzB,MAAM0C,EAAAA,CAAK,IAAI,CAAC2rD,UAAU,CAC1B,GAAI1rD,CAAAA,GAAMD,EAAAA,CAAGC,CAAC,EAAIgU,CAAAA,GAAMjU,EAAAA,CAAGiU,CAAC,EAAI1W,CAAAA,GAAMyC,GAAGzC,CAAC,EAAID,CAAAA,GAAM0C,EAAAA,CAAG1C,CAAC,CAAE,CACzD0C,EAAAA,CAAGsH,GAAG,CAACrH,CAAAA,CAAGgU,CAAAA,CAAG1W,CAAAA,CAAGD,GAChB,IAAI,CAACitF,WAAW,CAACkT,gBAAgB,CAACz9F,IACnC,CACD,CACAkuD,WAAAA,CAAYhD,QAAQ,CAAE,CACrB,IAAI,CAACA,QAAQ,CAAGA,SACjB,CACAiD,YAAAA,CAAahD,SAAS,CAAE,CACvB,IAAI,CAACA,SAAS,CAAGA,UAClB,CACAuyC,kBAAAA,CAAmB3gD,KAAK,CAAE,CACzB,IAAI,CAACqO,eAAe,CAAGrO,MACxB,CACA4N,uBAAAA,EAA0B,CACzB,KAAK,CAACA,uBAAAA,GACP,CACA0wC,wBAAAA,EAA2B,CAC1B,IAAI,CAAC/9B,QAAQ,CAAG,IAChB,CAAA,IAAI,CAACigC,UAAU,CAAG,CAAA,CAClB,IAAI,CAAC5xC,UAAU,CAACrkD,GAAG,CAAC,CAAA,CAAG,CAAA,CAAG,CAAA,CAAG,CAAA,EAC9B,CACA81E,oBAAAA,EAAuB,CACtB,IAAI,CAAC/nC,gBAAgB,CAAChoC,OAAO,CAAEwjC,OAAAA,EAAAA,CAC9B,GAAIA,OAAAA,CAAQ0B,YAAY,EAAI1B,OAAAA,CAAQ2B,mBAAmB,CAAE,CACxD3B,OAAAA,CAAQ6B,MAAM,GACf,CACD,CAAA,CAAA,CACA,IAAI,CAAC2C,gBAAgB,CAAChsC,KAAK,GAC5B,CACAs0F,oBAAAA,CAAqBC,QAAQ,CAAEn6F,IAAI,CAAE,CACpC,GAAI,IAAI,CAACumD,WAAW,CAAC0X,QAAQ,CAAE,CAC9B,GAAI,IAAI,CAAC1X,WAAW,CAAC4kC,mBAAmB,CAAE,CACzC,MAAM3hD,IAAAA,CAAO,IAAI,CAAC+c,WAAW,CAACsjC,OAAO,CAAC7pF,IAAAA,CAAAA,CACtC,GAAIwpC,OAAS,EAAC,CAAG,CACjB,KAAO,CACN2wD,SAAWA,QAAAA,EAAY,EACvBA,CAAAA,QAAAA,CAASC,eAAe,CAAG,CAC1BnQ,QAAAA,CAAU,IAAI,CAAC1jC,WAAW,CAAC4kC,mBAAmB,CAAClB,QAAQ,CACvDoQ,yBAAAA,CAA2B7wD,IAAAA,CAAO,CAAA,CAClC8wD,oBAAqB9wD,IAAAA,CAAO,CAAA,CAAI,CACjC,EACD,CACD,CACD,CACA,OAAO2wD,QACR,CACAptC,eAAAA,CAAgBC,UAAU,CAAE,CAC3B,IAAI,CAAC2sB,oBAAoB,EAAA,CACzB,MAAMvZ,EAAAA,CAAKpT,WAAW1F,YAAY,EAAI,IAAI,CAACoH,UAC3C,CAAA,IAAI,CAACpH,YAAY,CAAG8Y,EAAAA,CACpB,MAAM43B,GAAAA,CAAM53B,EAAAA,CAAG51B,IAAI,CACnB,GAAI41B,EAAAA,GAAO,IAAI,CAAC1R,UAAU,CAAE,CAC3B,IAAI,CAACrD,gBAAgB,CAAC+U,EAAAA,EACvB,CACA43B,GAAAA,CAAI9zB,kBAAkB,CAAClX,WAAYoT,EAAAA,CAAAA,CACnC,MAAMm6B,cAAAA,CAAiBvC,GAAAA,CAAIv1B,oBAAoB,CAC/C,IAAI,CAACy3B,oBAAoB,CAACK,cAAAA,CAAgBvtC,UAAAA,CAAWhtD,IAAI,EACzD,MAAMskD,cAAAA,CAAiB,IAAI,CAACC,iBAAiB,EAC7C,CAAA,IAAI,CAACuiC,WAAW,CAAGxiC,cAAAA,CAAeyiC,eAAe,CAACwT,cAAAA,CAClD,CAAA,IAAI,CAACzT,WAAW,CAAChS,KAAK,CAAG,CAAC,EAAE9nB,UAAAA,CAAWhtD,IAAI,CAAC,gBAAgB,EAAEogE,EAAAA,CAAGpgE,IAAI,CAAC,CAAC,CACvE,IAAI,CAAC43F,wBAAwB,EAAA,CAC7B,KAAM,CAAE70E,KAAK,CAAEC,MAAM,CAAE,CAAGo9C,EAAAA,CAC1B,IAAI,CAACt9C,WAAW,CAAC,CAAA,CAAG,CAAA,CAAGC,KAAAA,CAAOC,MAAAA,CAAAA,CAC9B,IAAI,CAACw3E,UAAU,CAAC,CAAA,CAAG,CAAA,CAAGz3E,KAAAA,CAAOC,OAC7B,CAAA,IAAI,CAAC2sC,gBAAgB,CAAG,KACzB,CACA1C,aAAAA,CAAcD,UAAU,CAAE,CACzB,IAAI,CAAC85B,WAAW,CAAC1kF,GAAG,EACpB,CAAA,IAAI,CAAC0kF,WAAW,CAAG,IACnB,CAAA,IAAI,CAACn3B,gBAAgB,CAAG,KACxB,CAAA,IAAI,CAAC+I,gBAAgB,CAACv7D,MAAM,CAAG,CAAA,CAC/B,MAAMrB,OAAAA,CAAU,IAAI,CAACwrD,YAAY,CACjC,GAAIxrD,OAAAA,CAAS,CACZ,GAAIA,OAAAA,CAAQy3D,WAAW,EAAIvG,UAAAA,CAAWqT,eAAe,CAACX,YAAY,EAAI1S,WAAWhb,OAAO,CAAG,CAAA,CAAG,CAC7F,MAAMmiB,YAAAA,CAAer4D,QAAQy3D,WAAW,CAACvhB,OAAO,CAAG,CAAA,CACnD,GAAImiB,YAAAA,EAAgBr4D,OAAAA,CAAQ83D,WAAW,CAAE,CACxC,MAAMqH,gBAAkBn/D,OAAAA,CAAQ0uC,IAAI,CAACywB,eAAe,CACpD,MAAM6wB,cAAgB33B,YAAAA,CAAe8G,eAAAA,EAAiBuG,YAAAA,CAAevG,eAAAA,EAAiBwG,uBAAAA,CACtF,MAAMg5B,YAActmC,YAAAA,CAAer4D,OAAAA,CAAQ03D,kBAAkB,EAAEhpB,IAAAA,CAAKy3B,UAAAA,CAAanmE,QAAQy3D,WAAW,CAAC/oB,IAAI,CAACy3B,UAAU,CACpH,GAAIhH,eAAAA,EAAiBoG,SAAAA,CAAW,CAChC,KAAO,GAAIyqB,aAAAA,EAAiB2O,YAAa,CACxC,IAAI,CAAC9H,QAAQ,CAACjzB,YAAY,CAAC,IAAI,CAACpb,cAAc,CAAEwnC,aAAAA,CAAe2O,WAAAA,CAAa3+F,QAAQi3D,gBAAgB,EACrG,CACD,CACD,CACD,CACA,IAAK,IAAI71D,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAK8vD,UAAAA,CAAW8S,aAAa,CAAC3iE,MAAM,CAAED,EAAAA,EAAAA,CAAM,CAC5D,MAAM2iE,QAAAA,CAAW7S,WAAW8S,aAAa,CAAC5iE,EAAAA,CAAG,CAC7C,GAAI2iE,QAAAA,CAASV,UAAU,CAAE,CACxB,IAAI,CAACuY,cAAc,CAACC,QAAQ,CAAC3qB,UAAAA,CAAW1F,YAAY,CAAC2K,aAAa,CAAC/0D,GAAG,CAACstC,IAAI,EAC5E,CACD,CACD,CACA0iB,iBAAiBltD,IAAI,CAAE,CACtB,IAAI,CAAC25E,oBAAoB,EACzB,CAAA,IAAI,CAAC9f,QAAQ,CAAG,KAChB,MAAM6gC,eAAAA,CAAkB,IAAI,CAACR,oBAAoB,CAAC,MAAK,CAAGl6F,IAAAA,CAAAA,CAC1D,MAAMskD,cAAAA,CAAiB,IAAI,CAACC,iBAAiB,EAC7C,CAAA,IAAI,CAACuiC,WAAW,CAAGxiC,eAAeq2C,gBAAgB,CAACD,eAAAA,CACnD,CAAA,IAAI,CAAC/qC,gBAAgB,CAAG,KACzB,CACAxC,cAAAA,EAAiB,CAChB,IAAI,CAAC25B,WAAW,CAAC1kF,GAAG,EACpB,CAAA,IAAI,CAAC0kF,WAAW,CAAG,IACnB,CAAA,IAAI,CAACn3B,gBAAgB,CAAG,KACxB,CAAA,IAAI,CAAC+I,gBAAgB,CAACv7D,MAAM,CAAG,EAChC,CACAqwD,eAAAA,CAAgBC,QAAQ,CAAEztD,IAAAA,CAAO,SAAS,CAAE,CAC3C,IAAI,CAACktD,gBAAgB,CAACltD,IAAAA,CAAAA,CACtB,IAAK,IAAI9C,EAAAA,CAAK,CAAA,CAAGA,GAAKuwD,QAAAA,CAAStwD,MAAM,CAAED,EAAAA,EAAAA,CAAM,CAC5C,MAAM0wB,QAAU6/B,QAAQ,CAACvwD,EAAAA,CAAG,CAC5B0wB,OAAAA,CAAQgtE,eAAe,GACvBhtE,OAAAA,CAAQ4c,IAAI,CAAC4hD,eAAe,GAC7B,CACA,IAAK,IAAIlvF,EAAAA,CAAK,EAAGA,EAAAA,CAAKuwD,QAAAA,CAAStwD,MAAM,CAAED,EAAAA,EAAAA,CAAM,CAC5C,MAAM0wB,OAAAA,CAAU6/B,QAAQ,CAACvwD,EAAAA,CAAG,CAC5B0wB,OAAAA,CAAQ4c,IAAI,CAAC6hD,QAAQ,CAACz+D,OAAAA,CAAQitE,MAAM,CAAEjtE,OAAAA,CAAQktE,MAAM,CAAEltE,QAAQmtE,MAAM,EACrE,CACA,IAAI,CAAC5tC,cAAc,GACpB,CACA5I,iBAAAA,EAAoB,CACnB,IAAID,cAAAA,CAAiB,IAAI,CAACA,cAAc,CACxC,GAAI,CAACA,cAAAA,CAAgB,CACpBA,eAAiB,IAAI,CAACmQ,IAAI,CAACuzB,oBAAoB,EAC/C,CAAA,IAAI,CAAC1jC,cAAc,CAAGA,eACvB,CACA,OAAOA,cACR,CACA02C,iBAAAA,EAAoB,CACnB,KAAM,CAAE12C,cAAc,CAAE,CAAG,IAAI,CAC/B,GAAIA,eAAgB,CACnB,MAAM6jC,EAAAA,CAAK7jC,cAAAA,CAAe8jC,MAAM,EAAA,CAChC,IAAI,CAACC,gBAAgB,CAACF,EAAAA,CACtB,CAAA,IAAI,CAAC7jC,cAAc,CAAG,KACvB,CACD,CACA+jC,gBAAAA,CAAiB4S,aAAa,CAAEC,KAAAA,CAAQ,KAAK,CAAE,CAC9C,GAAIA,MAAO,CACV,IAAI,CAACpI,cAAc,CAACqI,OAAO,CAACF,aAAAA,EAC7B,CAAA,KAAO,CACN,IAAI,CAACnI,cAAc,CAAC90F,IAAI,CAACi9F,aAAAA,EAC1B,CACD,CACAjjB,QAAS,CACR,IAAI,CAACgjB,iBAAiB,EAAA,CACtB,GAAI,IAAI,CAAClI,cAAc,CAAC31F,MAAM,CAAG,CAAA,CAAG,CACnC,IAAI,CAACmpD,cAAc,CAAC0xB,MAAM,EAAA,CAC1B,IAAI,CAACvjB,IAAI,CAAC0C,KAAK,CAAC6gB,MAAM,CAAC,IAAI,CAAC8a,cAAc,CAC1C,CAAA,IAAI,CAACA,cAAc,CAAC31F,MAAM,CAAG,CAC7B,CAAA,IAAI,CAAC+wF,aAAa,EAAA,CAClB,IAAI,CAAC5nC,cAAc,CAACgiC,yBAAyB,GAC9C,CACA,IAAI,CAACuK,wBAAwB,GAC9B,CACAA,wBAAAA,EAA2B,CAC1B,MAAMuI,gBAAAA,CAAmB,IAAI,CAACC,iBAAiB,CAC/C,GAAID,gBAAAA,CAAiBj+F,MAAM,CAAG,EAAG,CAChC,IAAK,IAAID,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAKk+F,iBAAiBj+F,MAAM,CAAED,EAAAA,EAAAA,CAAM,CACpDk+F,gBAAgB,CAACl+F,GAAG,CAACqtC,OAAO,GAC7B,CACA6wD,gBAAAA,CAAiBj+F,MAAM,CAAG,EAC3B,CACD,CACA05D,YAAAA,CAAaykC,WAAW,CAAE,CACzB,GAAIA,WAAAA,CAAa,CAChB,GAAI,IAAI,CAAC90C,UAAU,CAAE,CACpB80C,WAAAA,CAAY/wD,OAAO,GACpB,MAAO,CACN,IAAI,CAAC8wD,iBAAiB,CAACr9F,IAAI,CAACs9F,WAAAA,EAC7B,CACD,CACD,CACA11F,KAAAA,CAAM8I,QAAQ,CAAE,CACf,GAAIA,QAAAA,CAAS4hD,KAAK,CAAE,CACnB,IAAI,CAACoiC,aAAa,CAAC9sF,KAAK,CAAC,IAAI,CAAE,IAAI,CAAC0hD,YAAY,CAAE54C,QAAAA,CAAU,IAAI,CAACyhD,mBAAmB,EACrF,CACD,CACArtC,WAAAA,CAAYrpB,EAAE,CAAEof,EAAE,CAAE+D,CAAC,CAAEsP,EAAE,CAAE,CAC1B,GAAI,IAAI,CAAC46D,WAAW,CAAE,CACrB,GAAI,IAAI,CAACvkB,cAAc,CAAE,CACxB,MACD,CACA,GAAI,CAAC,IAAI,CAACjb,YAAY,CAAC1U,KAAK,CAAE,CAC7B/5B,EAAAA,CAAK,IAAI,CAACyuC,YAAY,CAACtkC,MAAM,CAAGnK,EAAAA,CAAKqT,GACtC,CACA,IAAI,CAAC07B,EAAE,CAAGnuD,EACV,CAAA,IAAI,CAACouD,EAAE,CAAGhvC,EACV,CAAA,IAAI,CAACivC,EAAE,CAAGlrC,CACV,CAAA,IAAI,CAACmrC,EAAE,CAAG77B,EAAAA,CACV,IAAI,CAAC46D,WAAW,CAAChkE,WAAW,CAACrpB,EAAAA,CAAIof,EAAAA,CAAI+D,CAAAA,CAAGsP,EAAAA,CAAI,CAAA,CAAG,GAChD,CACD,CACAsuE,UAAAA,CAAW/gG,EAAE,CAAEof,EAAE,CAAE+D,CAAC,CAAEsP,EAAE,CAAE,CACzB,GAAI,IAAI,CAAC46D,WAAW,CAAE,CACrB,GAAI,IAAI,CAACvkB,cAAc,CAAE,CACxB,MACD,CACA,GAAI,CAAC,IAAI,CAACjb,YAAY,CAAC1U,KAAK,CAAE,CAC7B/5B,EAAAA,CAAK,IAAI,CAACyuC,YAAY,CAACtkC,MAAM,CAAGnK,EAAAA,CAAKqT,GACtC,CACA,IAAI,CAAClI,EAAE,CAAGvqB,EACV,CAAA,IAAI,CAACwqB,EAAE,CAAGpL,EACV,CAAA,IAAI,CAACmvC,EAAE,CAAGprC,CACV,CAAA,IAAI,CAACqrC,EAAE,CAAG/7B,EAAAA,CACV,IAAI,CAAC46D,WAAW,CAACyU,cAAc,CAAC9hG,EAAAA,CAAIof,EAAAA,CAAI+D,EAAGsP,EAAAA,EAC5C,CACD,CACAqrC,kBAAAA,CAAmBlhB,aAAa,CAAEvrC,QAAU,CAAC,CAAElJ,IAAAA,CAAOy0C,aAAAA,CAAcwN,QAAQ,CAAE,CAC7E,MAAMS,cAAAA,CAAiB,IAAI,CAACC,iBAAiB,GAC7CD,cAAAA,CAAek3C,WAAW,CAACnlD,aAAAA,CAAc7+B,MAAM,CAAE1M,QAASlJ,IAAAA,EAC3D,CACA2mF,cAAAA,CAAe/wE,MAAM,CAAE+7B,IAAI,CAAE,CAC5B,GAAI,IAAI,CAACuT,WAAW,CAAE,CACrB,OAAOkuC,OAAAA,CAAQxpD,OAAO,CAAC,KAAA,CACxB,CACA,OAAOh0B,MAAAA,CAAOikF,QAAQ,CAACloD,IAAAA,CAAAA,CAAMrqC,IAAI,CAAC,IAAM,IAAA,CAAOS,KAAAA,EAAAA,CAC9C,OAAO,KACR,CAAA,CACD,CACA0tD,iBAAAA,CAAkBhhB,aAAa,CAAEvrC,OAAAA,CAAU,CAAC,CAAElJ,KAAOy0C,aAAAA,CAAcwN,QAAQ,CAAG/4C,OAAO,CAAE8L,MAAQ,IAAI,CAAEotC,SAAAA,CAAY,KAAK,CAAE,CACvH,MAAM60B,aAAAA,CAAgB,IAAI,CAACl0B,gBAAgB,CAAClwB,gBAAAA,CAAmBG,sBAC/DikD,aAAAA,CAAc/0B,QAAQ,CAAC,IAAI,CAAEliD,IAAAA,CAAAA,CAC7B,MAAM85F,UAAAA,CAAa7iB,aAAAA,CAAcrhE,MAAM,CACvC,MAAM8sC,cAAAA,CAAiB,IAAI,CAACC,iBAAiB,EAAA,CAC7CD,cAAAA,CAAeE,kBAAkB,CAACnO,cAAc7+B,MAAM,CAAE1M,OAAAA,CAAS4wF,UAAAA,CAAY,CAAA,CAAG95F,IAAAA,CAAAA,CAChF,OAAO,IAAI,CAACm3E,UAAU,CAACF,aAAAA,CAAej3E,IAAAA,CAAMgV,MAAOotC,SAAAA,CACpD,CACA+0B,WAAWF,aAAa,CAAEj3E,IAAI,CAAEgV,KAAAA,CAAQ,IAAI,CAAEotC,SAAAA,CAAY,KAAK,CAAE,CAChE,MAAM03C,UAAAA,CAAa7iB,aAAAA,CAAcrhE,MAAM,CACvC,OAAO,IAAIw9E,OAAAA,CAAQ,CAACz0B,QAAAA,CAAUo7B,MAAAA,GAAAA,CAC7B,MAAMtxD,KAAO,IAAA,CACZ,IAAI,CAACk+C,cAAc,CAACmT,UAAAA,CAAYlT,WAAWgC,IAAI,CAAA,CAAEthF,IAAI,CAAC,MAACw/E,EAAAA,CACtD,GAAI,CAACA,MAAAA,CAAQ,CACZ7P,aAAAA,CAActuC,OAAO,CAAC,IAAI,CAAA,CAC1BoxD,MAAAA,CAAO,IAAI1hG,KAAAA,CAAM,sFAAA,CAAA,CAAA,CACjB,MACD,CACA2c,KAAAA,GAAUA,KAAAA,CAAQ,IAAI5M,UAAAA,CAAWpI,IAAAA,CAAI,EACrC,MAAMg6F,OAAAA,CAAUF,UAAAA,CAAWjU,cAAc,CAAC,CAAA,CAAG7lF,MAC7C,MAAMi6F,OAAAA,CAAUjlF,KAAAA,CAAM,WAAW,CACjCA,KAAAA,CAAM/S,GAAG,CAAC,IAAIg4F,OAAAA,CAAQD,OAAAA,CAAAA,CAAAA,CACtBF,UAAAA,CAAWxT,KAAK,GAChBrP,aAAAA,CAActuC,OAAO,CAAC,IAAI,CAAA,CAC1Bg2B,QAAAA,CAAS3pD,OACV,CAAA,EACD,CAAA,CACA,GAAIotC,SAAAA,CAAW,CACd,IAAI,CAACg0B,MAAM,EAAA,CACX3tC,IAAAA,GACD,CAAA,KAAO,CACN6nD,UAAAA,CAAW,KACV7nD,IAAAA,GACD,CAAA,EACD,CACD,CAAA,CACD,CACAitB,kBAAAA,CAAmBjhB,aAAa,CAAE4N,YAAAA,CAAe,CAAC,CAAErtC,KAAK,CAAEstC,UAAAA,CAAa,CAAC,CAAEtiD,IAAI,CAAE,CAChF,IAAI,CAAC6yD,IAAI,CAAC0C,KAAK,CAACC,WAAW,CAAC/gB,aAAAA,CAAc7+B,MAAM,CAAEysC,YAAAA,CAAcrtC,KAAAA,CAAOstC,UAAAA,CAAYtiD,MACpF,CACAixD,gBAAAA,CAAiBlf,MAAM,CAAE0kC,IAAI,CAAE1lB,MAAM,CAAEvmB,KAAK,CAAE,CAC7C,MAAM2rC,QAAAA,CAAW,CAChBh1D,KAAAA,CAAO4wB,MAAAA,CAASA,MAAAA,CAAO5wB,KAAK,CAAGs1D,IAAAA,CAAKt1D,KAAK,CACzCC,MAAAA,CAAQ2wB,MAAAA,CAASA,MAAAA,CAAO3wB,MAAM,CAAGq1D,KAAKr1D,MAAM,CAC5C+yD,kBAAAA,CAAoB,CACrB,CAAA,CACA,MAAMzxB,eAAiB,IAAI,CAACC,iBAAiB,EAAA,CAC7C,GAAIoO,MAAAA,CAAQ,CACX,MAAMmpC,UAAAA,CAAa,CAACnoD,MAAAA,CAASA,MAAAA,CAAOue,WAAW,EAAElgB,OAAAA,CAAU,CAAA,GAAM,CAAA,CACjE,MAAM+pD,WAAa,CAAC1jB,IAAAA,CAAOA,IAAAA,CAAKnmB,WAAW,EAAElgB,QAAU,CAAA,GAAM,CAAA,CAC7D,GAAI8pD,UAAAA,GAAeC,UAAAA,CAAY,CAC9B,OAAO,KACR,CACA,MAAMH,OAAAA,CAAU,CACfxuD,QAASuG,MAAAA,CAASA,MAAAA,CAAOue,WAAW,CAAC1nB,IAAI,CAACy3B,UAAU,CAAG,IAAI,CAACvT,UAAU,CAAClkB,IAAI,CAACs3B,oBAAoB,CAChG51B,QAAAA,CAAUyH,MAAAA,CAASA,MAAAA,CAAOzH,QAAQ,CAAG,CACtC,CAAA,CACA,MAAM8vD,OAAAA,CAAU,CACf5uD,QAASirC,IAAAA,CAAOA,IAAAA,CAAKnmB,WAAW,CAAC1nB,IAAI,CAACy3B,UAAU,CAAG,IAAI,CAACvT,UAAU,CAAClkB,IAAI,CAACs3B,oBAAoB,CAC5F51B,QAAAA,CAAUmsC,IAAAA,CAAOA,IAAAA,CAAKnsC,QAAQ,CAAG,CAClC,CAAA,CACAoY,cAAAA,CAAes1B,oBAAoB,CAACgiB,OAAAA,CAASI,QAASjkB,QAAAA,EACvD,CACA,GAAI3rC,KAAAA,CAAO,CACV,MAAM6vD,SAAWtoD,MAAAA,CAASA,MAAAA,CAAS,IAAI,CAAC2T,YAAY,CACpD,GAAI20C,QAAAA,CAASzxD,IAAI,CAACywB,eAAe,EAAEoG,SAAAA,CAAW,CAC7C,OAAO,KACR,CACA,MAAM66B,gBAAAA,CAAmBD,QAAAA,CAASzxD,IAAI,CAACywB,eAAe,CACtD,MAAM6wB,aAAAA,CAAgBoQ,gBAAAA,CAAiB16B,YAAY,EAAI06B,gBAAAA,CAAiBz6B,uBAAuB,CAC/F,MAAM0X,cAAAA,CAAiB8iB,SAAS/vD,QAAQ,CACxC,GAAI+vD,QAAAA,CAASjqD,OAAO,CAAG,EAAG,CACzB,MAAMmqD,WAAAA,CAAc9jB,IAAAA,EAAM9kB,WAAAA,EAAavhB,OAAAA,CAAU,EAAIqmC,IAAAA,CAAK9kB,WAAW,CAAG,IAAA,CACxE,GAAI4oC,WAAAA,CAAa,CAChB,GAAIA,WAAAA,CAAYnqD,OAAO,GAAKiqD,QAAAA,CAASjqD,OAAO,CAAE,CAC7C,OAAO,KACR,CACAsS,cAAAA,CAAes1B,oBAAoB,CAClC,CAAExsC,OAAAA,CAAS0+C,aAAc,CAAA,CACzB,CAAE1+C,QAAS+uD,WAAAA,CAAY3xD,IAAI,CAACy3B,UAAU,CAAC,CACvC8V,UAEF,CAAA,KAAO,CACN,MAAM0iB,WAAAA,CAAcpiB,IAAAA,CAAKnmB,WAAW,CAAC1nB,IAAI,CAACy3B,UAAU,CACpD,IAAI,CAAC0wB,QAAQ,CAACjzB,YAAY,CAACpb,cAAAA,CAAgBwnC,aAAAA,CAAe2O,WAAAA,CAAawB,SAASlpC,gBAAgB,EACjG,CACD,CAAA,KAAO,CACN,MAAM0nC,YAAcpiB,IAAAA,CAAOA,IAAAA,CAAK9kB,WAAW,CAAC/oB,IAAI,CAACy3B,UAAU,CAAG,IAAI,CAAC3a,YAAY,CAAC9c,IAAI,CAACywB,eAAe,CAACuG,YAAY,CACjH,MAAM4X,aAAef,IAAAA,CAAOA,IAAAA,CAAKnsC,QAAQ,CAAG,IAAI,CAACob,YAAY,CAACpb,QAAQ,CACtE,MAAM0vD,OAAAA,CAAU,CACfxuD,QAAS0+C,aAAAA,CACT5/C,QAAAA,CAAUitC,cACX,CAAA,CACA,MAAM6iB,OAAAA,CAAU,CACf5uD,OAAAA,CAASqtD,WAAAA,CACTvuD,QAAAA,CAAUktC,YACX,CAAA,CACA90B,cAAAA,CAAes1B,oBAAoB,CAACgiB,OAAAA,CAASI,OAAAA,CAASjkB,QAAAA,EACvD,CACD,CACA,OAAO,IACR,CACA,IAAIqkB,cAAAA,EAAiB,CACpB,OAAO,IAAI,CAACxnB,OAAO,EAAI,IAAI,CAACC,KAAK,CA10BlC,WAAA,CAAYhuB,MAAM,CAAEn4C,QAAAA,CAAW,EAAE,CAAE,CAClC,KAAK,CAACm4C,MAAAA,CAAQn4C,UA/Bf2sF,gBAAAA,CAAAA,IAAAA,CAAAA,mBAAAA,CAAoB,EAAE,CAAA,CACtBnI,gBAAAA,CAAAA,IAAAA,CAAAA,YAAAA,CAAa,MACbz+B,gBAAAA,CAAAA,IAAAA,CAAAA,MAAAA,CAAO,IAAA,CAAA,CACP0+B,gBAAAA,CAAAA,IAAAA,CAAAA,cAAAA,CAAe,IAAA,CAAA,CACfJ,sBAAAA,gBAAAA,CAAiB,IAAIh5B,oBAAAA,CAAqB,IAAI,CAAA,CAAA,CAC9C6yB,gBAAAA,CAAAA,IAAAA,CAAAA,kBAAkB,IAAIjwB,qBAAAA,CAAsB,IAAI,CAAA,CAAA,CAChD87B,gBAAAA,CAAAA,IAAAA,CAAAA,qBAAAA,CAAsB,MACtBC,gBAAAA,CAAAA,IAAAA,CAAAA,0BAAAA,CAA2B,CAAA,CAAA,CAC3BR,gBAAAA,CAAAA,IAAAA,CAAAA,wBAAAA,CAAyB,CAAA,CAAA,CACzBW,sBAAAA,yBAAAA,CAA0B,IAAA,CAAA,CAC1BC,gBAAAA,CAAAA,IAAAA,CAAAA,8BAAAA,CAA+B,CAAA,CAAA,CAC/BX,gBAAAA,CAAAA,IAAAA,CAAAA,6BAA6B,CAAA,CAAA,CAC7BzF,gBAAAA,CAAAA,IAAAA,CAAAA,eAAAA,CAAAA,MAAAA,CAAAA,CACAhb,gBAAAA,CAAAA,IAAAA,CAAAA,iBAAAA,MAAAA,CAAAA,CACA7d,gBAAAA,CAAAA,IAAAA,CAAAA,UAAAA,CAAW,IAAA,CAAA,CACXnB,gBAAAA,CAAAA,IAAAA,CAAAA,mBAAmB,EAAE,CAAA,CACrB0tB,gBAAAA,CAAAA,IAAAA,CAAAA,gBAAAA,CAAAA,MAAAA,CAAAA,CACA8H,sBAAAA,eAAAA,CAAgB,CAAA,CAAA,CAChBmF,gBAAAA,CAAAA,IAAAA,CAAAA,yBAAAA,CAAAA,MAAAA,CAAAA,CACA9wB,sBAAAA,gBAAAA,CAAiB,IAAA,CAAA,CACjBgtB,gBAAAA,CAAAA,IAAAA,CAAAA,0BAAAA,CAA2B,IAAA,CAAA,CAC3BltB,gBAAAA,CAAAA,IAAAA,CAAAA,+BAA+B,IAAA,CAAA,CAC/B2sB,gBAAAA,CAAAA,IAAAA,CAAAA,aAAAA,CAAc,EAAE,CAAA,CAChBoE,gBAAAA,CAAAA,IAAAA,CAAAA,qBAAqB,EAAC,CAAA,CACtBR,sBAAAA,oBAAAA,CAAqB,IAAA,CAAA,CACrBtuC,sBAAAA,gBAAAA,CAAiB,IAAA,CAAA,CACjBwuC,gBAAAA,CAAAA,IAAAA,CAAAA,gBAAAA,CAAiB,EAAE,CAAA,CACnBS,sBAAAA,QAAAA,CAAAA,MAAAA,CAAAA,CACA3e,gBAAAA,CAAAA,IAAAA,CAAAA,SAAAA,CAAU,IAAA,CAAA,CACVC,sBAAAA,OAAAA,CAAQ,IAAA,CAAA,CAGPnmE,QAAAA,CAAW,IAAI,CAAC6hD,WAAW,CAC3B7hD,QAAAA,CAASmC,KAAK,CAAGnC,QAAAA,CAASmC,KAAK,EAAI,IACnC,CAAA,IAAI,CAAC+9C,mBAAmB,CAAGlgD,SAAS8hD,SAAS,EAAI,KACjD,CAAA,IAAI,CAAC7e,QAAQ,CAAG,IAChB,CAAA,IAAI,CAACmb,WAAW,CAAGzlB,iBACnB,CAAA,IAAI,CAACiuD,YAAY,CAAG5mF,SAAS4mF,YAAY,CACzC,IAAI,CAAC3wF,KAAK,CAAC6mC,OAAO,CAAC5C,mBAAAA,CAAAA,CAAqBgW,QAAQ,CAAC,CAAA,EAClD,CAm0BD,EAEA,IAAIy9C,WAAAA,CAAc,KAAA,CAEjB9xD,OAAAA,CAAQa,MAAM,CAAE,CACf,GAAI,IAAI,CAACkxD,QAAQ,CAAE,CAClBlxD,OAAOmxD,EAAE,CAACC,YAAY,CAAC,IAAI,CAACF,QAAQ,CACpC,CAAA,IAAI,CAACA,QAAQ,CAAG,KACjB,CACD,CACA,IAAI/+C,WAAAA,EAAc,CACjB,OAAO,CAAC,CAAC,IAAI,CAAC++C,QACf,CACAvxD,WAAAA,EAAc,CACb,IAAI,CAACuxD,QAAQ,CAAG,KACjB,CACA/nD,MAAAA,CAAOnJ,MAAM,CAAE8S,KAAK,CAAEpiD,OAAO,CAAEg2C,OAAO,CAAE,CACvC,MAAMyqD,EAAAA,CAAKnxD,OAAOmxD,EAAE,CACpB,GAAI,CAAC,IAAI,CAACD,QAAQ,CAAE,CACnB,IAAIG,OAAAA,CACJ,OAAQv+C,KAAAA,EACP,KAAKhpB,aAAAA,CACJunE,OAAAA,CAAUF,EAAAA,CAAGG,WAAW,CACxB,WACIvnE,cAAAA,CACJsnE,OAAAA,CAAUF,EAAAA,CAAGI,YAAY,CACzB,WACIvnE,aAAAA,CACJqnE,OAAAA,CAAUF,EAAAA,CAAGK,WAAW,CACxB,WACIvnE,iBAAAA,CACJonE,OAAAA,CAAUF,EAAAA,CAAGM,YAAY,CACzB,KACF,CACA,IAAI,CAACP,QAAQ,CAAGC,EAAAA,CAAGzlC,YAAY,GAC/BylC,EAAAA,CAAGO,UAAU,CAAChhG,OAAAA,CAAS,IAAI,CAACwgG,QAAQ,CAAA,CACpCC,EAAAA,CAAGQ,UAAU,CAACjhG,OAAAA,CAASg2C,OAAAA,CAAS2qD,SACjC,CAAA,KAAO,CACNF,EAAAA,CAAGO,UAAU,CAAChhG,OAAAA,CAAS,IAAI,CAACwgG,QAAQ,CAAA,CACpCC,EAAAA,CAAGS,aAAa,CAAClhG,QAAS,CAAA,CAAGg2C,OAAAA,EAC9B,CACD,CAAA,WAAA,EAAA,CAtCAwqD,gBAAAA,CAAAA,IAAAA,CAAAA,UAAAA,CAAW,OAuCZ,CAAA,CAEA,IAAIW,kBAAoB,cAAcZ,WAAAA,CAGrC9xD,QAAQa,MAAM,CAAE,CACf,KAAK,CAACb,OAAAA,CAAQa,QACdA,MAAAA,CAAO8xD,iBAAiB,GACzB,CACAnyD,WAAAA,EAAc,CACb,KAAK,CAACA,WAAAA,EACN,CAAA,IAAI,CAACoyD,GAAG,CAAG,KACZ,CACA5oD,MAAAA,CAAOuW,YAAY,CAAE,CACpB,MAAM1f,MAAAA,CAAS0f,YAAAA,CAAa1f,MAAM,CAClC,KAAK,CAACmJ,OAAOnJ,MAAAA,CAAQ0f,YAAAA,CAAa5M,KAAK,CAAE9S,MAAAA,CAAOmxD,EAAE,CAACa,YAAY,CAAEtyC,YAAAA,CAAahZ,OAAO,EACtF,CAAA,WAAA,CAAA,GAAA,IAAA,CAAA,CAduB,eAEvBqrD,gBAAAA,CAAAA,IAAAA,CAAAA,KAAAA,CAAM,OAaP,CAAA,CAEA,IAAIE,iBAAmB,cAAchB,WAAAA,CAapC9nD,MAAAA,CAAO+I,WAAW,CAAE,CACnB,MAAMlS,MAAAA,CAASkS,WAAAA,CAAYlS,MAAM,CACjC,KAAK,CAACmJ,OAAOnJ,MAAAA,CAAQkS,WAAAA,CAAYY,KAAK,CAAE9S,MAAAA,CAAOmxD,EAAE,CAACe,oBAAoB,CAAEhgD,WAAAA,CAAYxL,OAAO,EAC5F,CAfA,YAAYwL,WAAW,CAAE,CACxB,KAAK,EAAA,CACL,MAAMi/C,GAAKj/C,WAAAA,CAAYlS,MAAM,CAACmxD,EAAE,CAChC,MAAM95F,OAAS66C,WAAAA,CAAY76C,MAAM,CACjC,GAAIA,MAAAA,GAAWk1B,iBAAAA,CAAmB,CACjC,IAAI,CAAC4lE,QAAQ,CAAGhB,EAAAA,CAAGiB,cAAa,CACjC,KAAO,GAAI/6F,MAAAA,GAAWm1B,kBAAAA,CAAoB,CACzC,IAAI,CAAC2lE,QAAQ,CAAGhB,EAAAA,CAAGkB,eACpB,MAAO,GAAIh7F,MAAAA,GAAWo1B,kBAAAA,CAAoB,CACzC,IAAI,CAAC0lE,QAAQ,CAAGhB,EAAAA,CAAGmB,aACpB,CACD,CAKD,EAEA,IAAIC,gBAAAA,CAAmB,KAAA,CACtB,WAAA,CAAY3yD,cAAc,CAAEhrC,IAAI,CAAEsU,IAAI,CAAEspF,UAAU,CAAE,CACnD,IAAI,CAACA,UAAU,CAAGA,UAClB,CAAA,IAAI,CAACn0D,OAAO,CAAGuB,cAAAA,CAAermC,KAAK,CAAC6mC,OAAO,CAACxrC,IAAAA,CAC5C,CAAA,IAAI,CAACrE,OAAO,CAAG,IAAI2iD,OAAAA,CACnB,GAAIt+C,IAAAA,CAAK7B,SAAS,CAAC6B,IAAAA,CAAK7C,MAAM,CAAG,CAAA,CAAA,GAAO,KAAA,CAAO,CAC9C,OAAQmX,IAAAA,EACP,KAAKyvB,iBAAAA,CACJzvB,IAAAA,CAAOwwB,sBAAAA,CACP,MACD,KAAKhB,eAAAA,CACJxvB,KAAOqxB,oBAAAA,CACP,MACD,KAAKJ,gBAAAA,CACJjxB,IAAAA,CAAOsxB,qBAAAA,CACP,MACD,KAAK/B,gBAAAA,CACJvvB,IAAAA,CAAOuxB,qBAAAA,CACP,MACD,KAAK7B,iBACJ1vB,IAAAA,CAAO4wB,qBAAAA,CACP,MACD,KAAKf,iBAAAA,CACJ7vB,IAAAA,CAAOwxB,uBACP,MACD,KAAKN,kBACJlxB,IAAAA,CAAOyxB,sBAAAA,CACP,MACD,KAAKzB,iBAAAA,CACJhwB,IAAAA,CAAO0xB,sBAAAA,CACP,MACD,KAAK/B,iBACJ3vB,IAAAA,CAAO6wB,qBAAAA,CACP,MACD,KAAKf,iBAAAA,CACJ9vB,IAAAA,CAAO2xB,uBACP,MACD,KAAKR,iBAAAA,CACJnxB,IAAAA,CAAO4xB,sBAAAA,CACP,WACI3B,iBAAAA,CACJjwB,IAAAA,CAAO6xB,sBAAAA,CACP,MACD,KAAKjC,gBAAAA,CACJ5vB,KAAO8wB,qBAAAA,CACP,MACD,KAAKf,iBAAAA,CACJ/vB,IAAAA,CAAO8xB,sBAAAA,CACP,MACD,KAAKV,iBAAAA,CACJpxB,IAAAA,CAAO+xB,sBAAAA,CACP,MACD,KAAK7B,kBACJlwB,IAAAA,CAAOgyB,sBAAAA,CACP,KACF,CACD,CACA,IAAI,CAAC8a,QAAQ,CAAG9sC,IAChB,CAAA,IAAI,CAACvP,KAAK,CAAG,CAAC,IAAA,CAAM,IAAA,CAAM,IAAA,CAAM,IAAA,CAAK,CACrC,IAAI,CAAC2sC,KAAK,CAAG,GAAE,CAEjB,CAAA,CAEA,IAAImsD,wBAAAA,CAA2B,MAAMC,yBAAAA,SAAkCr2B,oBACtE,OAAOE,GAAAA,CAAIv8B,MAAM,CAAEw8B,gBAAgB,CAAElhB,MAAM,CAAE,CAC5C,MAAMohB,eAAAA,CAAkBg2B,yBAAAA,CAA0B/1B,OAAO,CAACH,gBAAAA,CAAiBI,OAAO,CAAE,IAAA,CAAA,CACpF,MAAMC,iBAAAA,CAAoB61B,0BAA0B/1B,OAAO,CAACH,gBAAAA,CAAiBM,OAAO,CAAE,IAAA,CAAA,CACtF,MAAMY,cAAAA,CAAiBhB,eAAAA,CAAgBxC,QAAQ,CAACyD,MAAM,CAACd,iBAAAA,CAAkB3C,QAAQ,CAAA,CACjF,MAAMA,QAAAA,CAAWppE,KAAAA,CAAM6qB,IAAI,CAAC,IAAI7iB,GAAAA,CAAI4kE,cAAAA,CAAAA,CAAAA,CACpC,MAAME,cAAAA,CAAiB80B,0BAA0Bh0B,iBAAiB,CAACxE,QAAAA,CAAU5e,MAAAA,CAAAA,CAC7E,MAAM1kD,IAAAA,CAAO87F,0BAA0BC,kBAAkB,CAAC/0B,cAAAA,CAAgBpB,gBAAAA,CAAiBU,iBAAiB,CAAA,CAC5G,MAAMN,OAAAA,CAAUF,eAAAA,CAAgBt1D,GAAG,CAAClW,OAAO,CAACmrE,oBAAoB2B,MAAM,CAAEpnE,IAAAA,CAAAA,CACxE,MAAMkmE,OAAAA,CAAUD,iBAAAA,CAAkBz1D,GAAG,CAAClW,OAAO,CAACmrE,mBAAAA,CAAoB2B,MAAM,CAAEpnE,MAC1E,OAAO,CAAEgmE,OAAAA,CAASE,OAAQ,CAC3B,CACA,OAAO61B,kBAAAA,CAAmBz4B,QAAQ,CAAEgD,iBAAiB,CAAE,CACtD,IAAItmE,IAAAA,CAAO,EAAA,CACX,MAAMkgE,UAAAA,CAAaoG,iBAAAA,CAAkBiC,cAAc,CAAChiC,cAAAA,CAAe,CACnE,GAAI25B,UAAAA,CAAY,CACflgE,IAAAA,EAAQ87F,0BAA0BE,8BAA8B,CAAC97B,UAAAA,CAAY35B,cAAAA,EAC9E,CACA+8B,QAAAA,CAAS17D,OAAO,CAAEs1C,OAAAA,EAAAA,CACjB,GAAI,CAACopB,iBAAAA,CAAkB6B,UAAU,CAACjrB,OAAAA,CAAQl/C,IAAI,CAAA,CAAG,CAChDgC,IAAAA,EAAQ,CAAC,QAAQ,EAAEk9C,OAAAA,CAAQ4nB,IAAI,CAAC;AACpC,EACG,CACD,CAAA,CAAA,CACA,OAAO9kE,IACR,CACA,OAAOg8F,8BAAAA,CAA+Bv7F,MAAM,CAAEmzC,SAAS,CAAE,CACxD,MAAM51C,IAAAA,CAAO0oC,cAAc,CAACkN,SAAAA,CAAU,CACtC,IAAI5zC,IAAAA,CAAO,CAAC,0BAA0B,EAAEhC,IAAAA,CAAK;AAC/C,CAAC,CACCyC,MAAAA,CAAO6iE,QAAQ,CAAC17D,OAAO,CAAC,OAACs1C,EAAAA,CACxB,MAAMwsB,UAAAA,CAAa3kC,iBAAiB,CAACmY,OAAAA,CAAQ5qC,IAAI,CAAC,CAClDtS,MAAQ,CAAC,IAAI,EAAE0pE,UAAAA,CAAW,CAAC,EAAExsB,OAAAA,CAAQgmB,SAAS,CAAC,EAAEhmB,QAAQnS,KAAK,CAAG,CAAC,CAAC,EAAEmS,OAAAA,CAAQnS,KAAK,CAAC,CAAC,CAAC,CAAG,EAAA,CAAG;AAC9F,EAAC,CACC,CAAA,CACA,OAAO,CAAC,EAAE/qC,IAAAA,CAAK;AACjB,CACC,CACD,CAAA,CAEA,IAAIi8F,qBAAAA,CAAwC,IAAI/5F,GAAAA,CAAI,CACnD,aAAA,CACA,eAAA,CACA,WAAA,CACA,eAAA,CACA,kBACA,CAAA,CACD,IAAIg6F,mBAAAA,CAAsB,KAAA,CAIzB3zD,OAAAA,CAAQa,MAAM,CAAE,CACf,IAAI,CAAC5nC,GAAG,CAACoG,OAAO,CAAC,MAAC88C,EAAAA,CACjBtb,MAAAA,CAAOmxD,EAAE,CAAC4B,YAAY,CAACz3C,MAAAA,EACxB,CAAA,EACD,CAEA3b,WAAAA,CAAYK,MAAM,CAAE,CACnB,IAAI,CAAC5nC,GAAG,CAACoC,KAAK,GACf,CAAA,WAAA,EAAA,CAVApC,gBAAAA,CAAAA,IAAAA,CAAAA,KAAAA,CAAsB,IAAI8B,GAAAA,EAAAA,CAW3B,CAAA,CACA,IAAI84F,kBAAAA,CAAqB,IAAIzyD,WAAAA,CAC7B,IAAI0yD,oBAAAA,CAAuB,IAAI1yD,WAAAA,CAC/B,IAAI2yD,YAAc,KAAA,CAQjB/zD,OAAAA,CAAQmc,MAAM,CAAE,CACf,GAAI,IAAI,CAAC63C,SAAS,CAAE,CACnB73C,MAAAA,CAAOtb,MAAM,CAACmxD,EAAE,CAACiC,aAAa,CAAC,IAAI,CAACD,SAAS,CAC7C,CAAA,IAAI,CAACA,SAAS,CAAG,KAClB,CACD,CACAjzC,IAAAA,EAAO,CACN,IAAI,CAACga,QAAQ,CAAG,EAAE,CAClB,IAAI,CAAC6Q,QAAQ,CAAG,EAChB,CAAA,IAAI,CAAChe,UAAU,CAAG,EAClB,CAAA,IAAI,CAAComC,SAAS,CAAG,IACjB,CAAA,IAAI,CAACE,cAAc,CAAG,IACtB,CAAA,IAAI,CAACC,gBAAgB,CAAG,IACxB,CAAA,IAAI,CAACC,QAAQ,CAAG,IAChB,CAAA,IAAI,CAACC,QAAQ,CAAG,KACjB,CACA7zD,WAAAA,EAAc,CACb,IAAI,CAACugB,IAAI,GACV,CACA7N,cAAAA,CAAerS,MAAM,CAAEsb,MAAM,CAAE,CAC9B,IAAI,CAACm4C,OAAO,CAACzzD,MAAAA,CAAQsb,MAAAA,CAAAA,CACrB,IAAI,CAACo4C,IAAI,CAAC1zD,OAAQsb,MAAAA,EACnB,CACAm4C,OAAAA,CAAQzzD,MAAM,CAAEsb,MAAM,CAAE,CACvB,MAAMutB,UAAAA,CAAavtB,MAAAA,CAAOutB,UAAU,CACpC,IAAI8qB,OAAAA,CAAU9qB,UAAAA,CAAWjM,OAAO,CAChC,IAAIg3B,OAAAA,CAAU/qB,UAAAA,CAAW/L,OAAO,CAChC,GAAI+L,UAAAA,CAAW3L,iBAAiB,CAAE,CACjC,MAAM0L,SAAAA,CAAY6pB,wBAAAA,CAAyBl2B,GAAG,CAACv8B,MAAAA,CAAQ6oC,UAAAA,CAAYvtB,QACnEq4C,OAAAA,CAAU/qB,SAAAA,CAAUhM,OAAO,CAC3Bg3B,OAAAA,CAAUhrB,SAAAA,CAAU9L,QAAO,CAE5B,IAAI,CAACy2B,QAAQ,CAAGI,OAChB,CAAA,IAAI,CAACH,QAAQ,CAAGI,OAChB,CAAA,IAAI,CAACP,cAAc,CAAG,IAAI,CAACQ,oBAAoB,CAAC7zD,MAAAA,CAAQ2zD,OAAAA,CAAS,IAAA,CACjE,CAAA,IAAI,CAACL,gBAAgB,CAAG,IAAI,CAACO,oBAAoB,CAAC7zD,MAAAA,CAAQ4zD,QAAS,KAAA,EACpE,CACAF,IAAAA,CAAK1zD,MAAM,CAAEsb,MAAM,CAAE,CACpB,GAAI,IAAI,CAAC63C,SAAS,CAAE,CACnB,MACD,CACA,MAAMhC,EAAAA,CAAKnxD,MAAAA,CAAOmxD,EAAE,CACpB,GAAIA,EAAAA,CAAG2C,aAAa,EAAA,CAAI,CACvB,MACD,CAEA,MAAMX,SAAAA,CAAYhC,EAAAA,CAAG4C,aAAa,EAClC,CAAA,IAAI,CAACZ,SAAS,CAAGA,SAAAA,CACjBhC,GAAG6C,YAAY,CAACb,SAAAA,CAAW,IAAI,CAACE,cAAc,EAC9ClC,EAAAA,CAAG6C,YAAY,CAACb,SAAAA,CAAW,IAAI,CAACG,gBAAgB,CAAA,CAChD,MAAMzqB,UAAAA,CAAavtB,MAAAA,CAAOutB,UAAU,CACpC,MAAMmP,KAAAA,CAAQnP,UAAAA,CAAW9b,UAAU,CACnC,GAAI8b,UAAAA,CAAW6O,oBAAoB,CAAE,CACpC,IAAIuc,QAAAA,CAAWprB,UAAAA,CAAW2O,gBAAgB,CAC1C,GAAI,CAACyc,QAAAA,CAAU,CACdA,QAAAA,CAAW,EAAE,CACb,IAAK,MAAMC,IAAAA,IAAQlc,KAAAA,CAAO,CACzB,GAAIA,KAAAA,CAAM95E,cAAc,CAACg2F,IAAAA,CAAAA,CAAO,CAC/BD,QAAAA,CAASrhG,IAAI,CAAC,CAAC,IAAI,EAAEshG,IAAAA,CAAK,CAAC,EAC5B,CACD,CACD,CACA,IAAIC,UAAAA,CAAahD,EAAAA,CAAGiD,mBAAmB,CACvC,GAAIvrB,UAAAA,CAAW4O,oBAAoB,GAAKttD,2BAAAA,CAA6B,CACpEgqE,UAAAA,CAAahD,GAAGkD,iBACjB,CACAlD,EAAAA,CAAGmD,yBAAyB,CAACnB,UAAWc,QAAAA,CAAUE,UAAAA,EACnD,CAEA,IAAK,MAAMD,IAAAA,IAAQlc,KAAAA,CAAO,CACzB,GAAIA,KAAAA,CAAM95E,cAAc,CAACg2F,IAAAA,CAAAA,CAAO,CAC/B,MAAM1+C,QAAAA,CAAWwiC,KAAK,CAACkc,IAAAA,CAAK,CAC5B,MAAMK,GAAAA,CAAMv2D,kBAAkB,CAACwX,SAAS,CAExC27C,EAAAA,CAAGqD,kBAAkB,CAACrB,SAAAA,CAAWoB,GAAAA,CAAKL,IAAAA,EACvC,CACD,CACA/C,EAAAA,CAAGsD,WAAW,CAACtB,SAAAA,EAChB,CACAU,oBAAAA,CAAqB7zD,MAAM,CAAE54B,GAAG,CAAEstF,cAAc,CAAE,CACjD,MAAMvD,EAAAA,CAAKnxD,MAAAA,CAAOmxD,EAAE,CACpB,GAAIA,EAAAA,CAAG2C,aAAa,EAAA,CAAI,CACvB,OAAO,IACR,CACA,MAAMa,iBAAAA,CAAoBD,cAAAA,CAAiB1B,kBAAAA,CAAqBC,oBAAAA,CAChE,MAAM5S,WAAAA,CAAcsU,iBAAAA,CAAkBnmG,GAAG,CAACwxC,MAAAA,CAAQ,IAAA,CACjD,OAAO,IAAI8yD,mBACZ,CAAA,CAAA,CACA,IAAI8B,QAAAA,CAAWvU,WAAAA,CAAYjoF,GAAG,CAAC5J,GAAG,CAAC4Y,KACnC,GAAI,CAACwtF,QAAAA,CAAU,CACdA,QAAAA,CAAWzD,EAAAA,CAAG0D,YAAY,CAACH,cAAAA,CAAiBvD,EAAAA,CAAG2D,aAAa,CAAG3D,EAAAA,CAAG4D,eAAe,CAAA,CACjF5D,EAAAA,CAAG6D,YAAY,CAACJ,QAAAA,CAAUxtF,GAAAA,CAAAA,CAC1B+pF,GAAG8D,aAAa,CAACL,QAAAA,CAAAA,CACjBvU,WAAAA,CAAYjoF,GAAG,CAACK,GAAG,CAAC2O,GAAAA,CAAKwtF,QAAAA,EAC1B,CACA,OAAOA,QACR,CACAM,QAAAA,CAASl1D,MAAM,CAAEsb,MAAM,CAAE,CACxB,MAAM61C,GAAKnxD,MAAAA,CAAOmxD,EAAE,CACpB,GAAIA,EAAAA,CAAG2C,aAAa,GAAI,CACvB,OAAO,IACR,CACA,MAAMX,SAAAA,CAAY,IAAI,CAACA,SAAS,CAChC,MAAMtqB,UAAAA,CAAavtB,MAAAA,CAAOutB,UAAU,CAEpC,MAAMssB,UAAAA,CAAahE,GAAGiE,mBAAmB,CAACjC,SAAAA,CAAWhC,EAAAA,CAAGkE,WAAW,CAAA,CACnE,GAAI,CAACF,UAAAA,CAAY,CAChB,GAAI,CAAC,IAAI,CAACG,WAAW,CAACt1D,MAAAA,CAAQsb,MAAAA,CAAQ,IAAI,CAAC+3C,cAAc,CAAE,IAAI,CAACE,QAAQ,CAAE,QAAA,CAAA,CAAW,CACpF,OAAO,KACR,CACA,GAAI,CAAC,IAAI,CAAC+B,WAAW,CAACt1D,MAAAA,CAAQsb,MAAAA,CAAQ,IAAI,CAACg4C,gBAAgB,CAAE,IAAI,CAACE,QAAQ,CAAE,UAAA,CAAA,CAAa,CACxF,OAAO,KACR,CACA,MAAM+B,OAAAA,CAAU,CAAC,sCAAsC,EAAEpE,EAAAA,CAAGqE,iBAAiB,CAACrC,SAAAA,CAAAA,CAAW,CAAC,CAC1F70F,QAAQC,KAAK,CAACg3F,OAAAA,CAAAA,CACd,OAAO,KACR,CACA,MAAME,aAAAA,CAAgBtE,EAAAA,CAAGiE,mBAAmB,CAACjC,SAAAA,CAAWhC,EAAAA,CAAGuE,iBAAiB,CAAA,CAC5Ep6C,MAAAA,CAAOyR,UAAU,CAACvyD,KAAK,EAAA,CACvB,IAAK,IAAI1I,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAK2jG,aAAAA,CAAe3jG,EAAAA,EAAAA,CAAM,CAC1C,MAAMigC,IAAAA,CAAOo/D,EAAAA,CAAGwE,eAAe,CAACxC,SAAAA,CAAWrhG,EAAAA,CAAAA,CAC3C,MAAMiK,QAAAA,CAAWo1F,EAAAA,CAAGyE,iBAAiB,CAACzC,SAAAA,CAAWphE,IAAAA,CAAKn9B,IAAI,CAAA,CAC1D,GAAIi+F,qBAAAA,CAAsBh6F,GAAG,CAACk5B,IAAAA,CAAKn9B,IAAI,EAAG,CACzC,QACD,CACA,GAAIi0E,UAAAA,CAAW9b,UAAU,CAACh7B,IAAAA,CAAKn9B,IAAI,CAAC,GAAK,MAAK,CAAG,CAChD0J,OAAAA,CAAQC,KAAK,CAAC,CAAC,yBAAyB,EAAEwzB,IAAAA,CAAKn9B,IAAI,CAAC,4DAA4D,EAAE0mD,MAAAA,CAAOouB,KAAK,CAAC,CAAC,CAAC,CAAEpuB,MAAAA,CACnIA,CAAAA,MAAAA,CAAO2gB,MAAM,CAAG,KACjB,CAAA,KAAO,CACN3gB,MAAAA,CAAOyR,UAAU,CAACt0D,GAAG,CAACsD,QAAAA,CAAUg2B,IAAAA,CAAKn9B,IAAI,EAC1C,CACD,CACA,MAAMihG,aAAAA,CAAgB71D,MAAAA,CAAO81D,aAAa,CAC1C,MAAMC,YAAc5E,EAAAA,CAAGiE,mBAAmB,CAACjC,SAAAA,CAAWhC,EAAAA,CAAG6E,eAAe,EACxE,IAAK,IAAIlkG,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAKikG,WAAAA,CAAajkG,KAAM,CACxC,MAAMigC,IAAAA,CAAOo/D,EAAAA,CAAG8E,gBAAgB,CAAC9C,SAAAA,CAAWrhG,EAAAA,CAAAA,CAC5C,MAAMiK,QAAAA,CAAWo1F,EAAAA,CAAG+E,kBAAkB,CAAC/C,SAAAA,CAAWphE,KAAKn9B,IAAI,CAAA,CAC3D,GAAIi+F,qBAAAA,CAAsBh6F,GAAG,CAACk5B,KAAKn9B,IAAI,CAAA,CAAG,CACzC,QACD,CACA,GAAImH,WAAa,IAAA,CAAM,CACtB,QACD,CACA,MAAMo6F,WAAAA,CAAc,IAAI5D,gBAAAA,CAAiBvyD,MAAAA,CAAQjO,IAAAA,CAAKn9B,IAAI,CAAEorC,MAAAA,CAAOo2D,aAAa,CAACrkE,IAAAA,CAAK7oB,IAAI,CAAC,CAAEnN,QAAAA,CAAAA,CAC7F,GAAI85F,cAAch9F,GAAG,CAACk5B,IAAAA,CAAK7oB,IAAI,CAAA,CAAG,CACjC,IAAI,CAAC6hE,QAAQ,CAACn4E,IAAI,CAACujG,WAAAA,EACpB,CAAA,KAAO,CACN,IAAI,CAACj8B,QAAQ,CAACtnE,IAAI,CAACujG,aACpB,CACD,CACA,MAAME,SAAAA,CAAYlF,EAAAA,CAAGiE,mBAAmB,CAACjC,SAAAA,CAAWhC,EAAAA,CAAGmF,qBAAqB,CAAA,CAC5E,IAAK,IAAIxkG,GAAK,CAAA,CAAGA,EAAAA,CAAKukG,SAAAA,CAAWvkG,EAAAA,EAAAA,CAAM,CACtC,MAAMykG,UAAYpF,EAAAA,CAAGqF,yBAAyB,CAACrD,SAAAA,CAAWrhG,EAAAA,CAAAA,CAC1D,MAAMgoE,UAAYy8B,SAAAA,CAAUlkG,UAAU,CAAC,KAAA,CAAA,CAASkkG,SAAAA,CAAUxjG,SAAS,CAAC,CAAA,CAAA,CAAKwjG,SAAAA,CACzE,MAAMn3B,cAAAA,CAAiB9hC,cAAAA,CAAeziC,OAAO,CAACi/D,SAAAA,CAAAA,CAC9C,MAAM28B,YAAAA,CAAer3B,cAAAA,EAAkB,CAAA,CAAIA,cAAAA,CAAiBttE,EAAAA,CAC5Dq/F,EAAAA,CAAGuF,mBAAmB,CAACvD,SAAAA,CAAWrhG,EAAAA,CAAI2kG,YAAAA,EACvC,CACAn7C,OAAOytB,KAAK,CAAG,IAAA,CACf,OAAO,IACR,CACAusB,YAAYt1D,MAAM,CAAEsb,MAAM,CAAEs5C,QAAQ,CAAErsD,MAAM,CAAEigC,UAAU,CAAE,CACzD,MAAM2oB,EAAAA,CAAKnxD,MAAAA,CAAOmxD,EAAE,CACpB,GAAI,CAACA,EAAAA,CAAGwF,kBAAkB,CAAC/B,SAAUzD,EAAAA,CAAGyF,cAAc,CAAA,CAAG,CACxD,MAAMC,OAAAA,CAAU1F,GAAG2F,gBAAgB,CAAClC,QAAAA,CAAAA,CACpC,KAAM,CAACh+F,IAAAA,CAAM2H,MAAM,CAAG,IAAI,CAACw4F,aAAa,CAACxuD,MAAAA,CAAQsuD,OAAAA,CAAAA,CACjD,MAAMtB,OAAAA,CAAU,CAAC,kBAAkB,EAAE/sB,UAAAA,CAAW;;AAEnD,EAAEquB,OAAAA;AACF,EAAEjgG,KAAK,iBAAiB,EAAE,OAAK,CAAE,CAAC,CAC/B0H,OAAAA,CAAQC,KAAK,CAACg3F,SACd,OAAO,KACR,CACA,OAAO,IACR,CACAyB,QAAAA,CAASh3D,MAAM,CAAE,CAChB,KAAM,CAAEi3D,wBAAwB,CAAE,CAAGj3D,MAAAA,CACrC,GAAIi3D,wBAAAA,CAA0B,CAC7B,OAAOj3D,MAAAA,CAAOmxD,EAAE,CAACiE,mBAAmB,CAAC,IAAI,CAACjC,SAAS,CAAE8D,wBAAAA,CAAyBC,qBAAqB,CACpG,CACA,OAAO,IACR,CACAH,aAAAA,CAAc3vF,GAAG,CAAEyvF,OAAO,CAAE,CAC3B,MAAMt4F,KAAAA,CAAQ,GACd,IAAI3H,IAAAA,CAAO,EAAA,CACX,GAAIwQ,IAAK,CACR,MAAM2pE,KAAAA,CAAQ3pE,GAAAA,CAAI3U,KAAK,CAAC,IAAA,CAAA,CACxB,IAAIkpB,IAAAA,CAAO,EACX,IAAIC,EAAAA,CAAKm1D,MAAMh/E,MAAM,CACrB,GAAI8kG,OAAAA,EAAWA,OAAAA,CAAQxkG,UAAU,CAAC,UAAW,CAC5C,MAAMkB,KAAAA,CAAQsjG,OAAAA,CAAQtjG,KAAK,CAAC,8BAAA,CAAA,CAC5B,GAAIA,KAAAA,CAAO,CACVgL,KAAAA,CAAMg3F,OAAO,CAAGhiG,KAAK,CAAC,CAAA,CACtBgL,CAAAA,KAAAA,CAAMm9D,IAAI,CAAGh0D,QAAAA,CAASnU,KAAK,CAAC,EAAE,CAAE,EAAA,CAAA,CAChCooB,IAAAA,CAAOtqB,IAAAA,CAAK6T,GAAG,CAAC,CAAA,CAAG3G,MAAMm9D,IAAI,CAAG,GAChC9/C,EAAAA,CAAKvqB,IAAAA,CAAK4T,GAAG,CAAC8rE,MAAMh/E,MAAM,CAAEwM,KAAAA,CAAMm9D,IAAI,CAAG,CAAA,EAC1C,CACD,CACA,IAAK,IAAI5pE,EAAAA,CAAK6pB,IAAAA,CAAM7pB,EAAAA,CAAK8pB,EAAAA,CAAI9pB,KAAM,CAClC,MAAMqlG,UAAAA,CAAarlG,EAAAA,CAAK,IAAMyM,KAAAA,CAAMm9D,IAAI,CAAG,IAAA,CAAO,KAClD9kE,IAAAA,EAAQ,CAAC,EAAEugG,UAAAA,CAAW,EAAErlG,EAAAA,CAAK,CAAA,CAAE,EAAE,EAAEi/E,KAAK,CAACj/E,EAAAA,CAAG;AAChD,EACG,CACAyM,KAAAA,CAAMgqC,MAAM,CAAGnhC,IAChB,CACA,OAAO,CAACxQ,IAAAA,CAAM2H,KAAAA,CAAM,CAnNrB,WAAA,CAAY+8C,MAAM,CAAE,CADpB87C,gBAAAA,CAAAA,IAAAA,CAAAA,kBAAkB,CAAA,CAAA,CAEjB,IAAI,CAACl3C,IAAI,EAAA,CACT,IAAI,CAACuzC,OAAO,CAACn4C,MAAAA,CAAOtb,MAAM,CAAEsb,MAAAA,CAAAA,CAC5B,IAAI,CAACo4C,IAAI,CAACp4C,MAAAA,CAAOtb,MAAM,CAAEsb,QACzBA,MAAAA,CAAOtb,MAAM,CAACub,OAAO,CAAC3oD,IAAI,CAAC0oD,MAAAA,EAC5B,CAgND,CAAA,CAEA,IAAI+7C,kBAAAA,CAAqB,cAAcpG,YACtC9nD,MAAAA,CAAO0B,aAAa,CAAE,CACrB,MAAM7K,OAAS6K,aAAAA,CAAc7K,MAAM,CACnC,MAAMmxD,EAAAA,CAAKnxD,MAAAA,CAAOmxD,EAAE,CACpB,KAAK,CAAChoD,MAAAA,CAAOnJ,MAAAA,CAAQjW,cAAAA,CAAgBonE,GAAGmG,cAAc,CAAEzsD,aAAAA,CAAc6jC,YAAY,EACnF,CACD,EAEA,IAAI6oB,cAAAA,CAAiB,KAAA,CAEpB5rD,MAAAA,CAAOnB,SAAS,CAAE,CACjB,MAAMM,cAAAA,CAAiBN,SAAAA,CAAUM,cAAc,CAC/C,IAAI,CAACmH,OAAO,CAAClgD,MAAM,CAAG+4C,cAAAA,CAAe/4C,MAAM,CAC3C,IAAK,IAAID,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAKg5C,eAAe/4C,MAAM,CAAED,KAAM,CAClD,MAAM+4C,cAAgBC,cAAc,CAACh5C,EAAAA,CACrC,CAAA,IAAI,CAACmgD,OAAO,CAACngD,EAAAA,CAAG,CAAG+4C,aAAAA,CAAcmB,UAAU,CAAGnB,aAAAA,CAAczL,IAAI,CAAGyL,aAAAA,CAAcqB,UAAU,CAACC,UAAS,CAEvG,CACAhN,OAAAA,EAAU,CACT,IAAI,CAAC8S,OAAO,CAAClgD,MAAM,CAAG,EACvB,CAAA,WAAA,EAAA,CAXAkgD,sBAAAA,SAAAA,CAAU,EAAE,EAAA,CAYb,CAAA,CAEA,IAAIulD,oBAAAA,CAAuB,MAC1Br4D,OAAAA,EAAU,CACV,CACD,CAAA,CAEA,IAAIs4D,kBAAAA,CAAqB,cAAc1b,aAAAA,CAUtC58C,OAAAA,CAAQa,MAAM,CAAE,CACf,GAAI,IAAI,CAACkxD,QAAQ,CAAE,CAClBlxD,MAAAA,CAAOmxD,EAAE,CAACC,YAAY,CAAC,IAAI,CAACF,QAAQ,CACpC,CAAA,IAAI,CAACA,QAAQ,CAAG,KACjB,CACAlxD,MAAAA,CAAOgD,KAAK,CAAC2iB,EAAE,EAAI,IAAI,CAACnvD,KACzB,CACAmpC,WAAAA,EAAc,CACb,IAAI,CAACuxD,QAAQ,CAAG,KACjB,CACArtD,MAAAA,EAAS,CACR,MAAMstD,EAAAA,CAAK,IAAI,CAACnxD,MAAM,CAACmxD,EAAE,CACzB,GAAI,CAAC,IAAI,CAACD,QAAQ,CAAE,CACnB,IAAI,CAACA,QAAQ,CAAGC,EAAAA,CAAGzlC,YAAY,GAChC,CACAylC,EAAAA,CAAGO,UAAU,CAACP,EAAAA,CAAGmG,cAAc,CAAE,IAAI,CAACpG,QAAQ,CAAA,CAC9CC,EAAAA,CAAGQ,UAAU,CAACR,EAAAA,CAAGmG,cAAc,CAAE,IAAI,CAAC5wD,OAAO,CAAEyqD,EAAAA,CAAGK,WAAW,EAC9D,CAvBA,WAAA,CAAYxxD,MAAM,CAAExpC,IAAI,CAAE,CACzB,KAAK,CAACwpC,QAJPkxD,gBAAAA,CAAAA,IAAAA,CAAAA,UAAAA,CAAW,IAAA,CAAA,CACXxqD,gBAAAA,CAAAA,IAAAA,CAAAA,SAAAA,CAAAA,QACAlwC,gBAAAA,CAAAA,IAAAA,CAAAA,MAAAA,CAAAA,MAAAA,CAGC,CAAA,IAAI,CAACA,IAAI,CAAGA,IACZ,CAAA,IAAI,CAACkwC,OAAO,CAAG,IAAIv6B,UAAAA,CAAW3V,IAAAA,CAAO,CAAA,CACrCwpC,CAAAA,MAAAA,CAAOgD,KAAK,CAAC2iB,EAAE,EAAInvD,KACpB,CAmBD,CAAA,CAEA,IAAIkhG,mBAAAA,CAAsB,cAAcze,cAAAA,CAMvC95C,OAAAA,EAAU,CACT,IAAI,CAAC4iC,IAAI,CAACvjE,OAAO,CAAC,MAAC4N,EAAWA,MAAAA,CAAO+yB,OAAO,CAAC,IAAI,CAACa,MAAM,CAAA,CAAA,CACxD,IAAI,CAAC23D,IAAI,CAACn5F,OAAO,CAAC,OAACyzC,EAAYA,QAAQzzC,OAAO,CAAC,MAAC4N,EAAWA,MAAAA,CAAO+yB,OAAO,CAAC,IAAI,CAACa,MAAM,CAAA,CAAA,CACrF,CAAA,IAAI,CAAC+hC,IAAI,CAAG,IACZ,CAAA,IAAI,CAAC41B,IAAI,CAAG,KACb,CACAre,KAAAA,CAAMptC,UAAU,CAAE11C,IAAI,CAAE,CACvB,IAAI4V,MAAAA,CAAS,IAAI,CAACurF,IAAI,CAACnpG,GAAG,CAACgI,IAAAA,CAAAA,EAAOpD,GAAAA,EAAAA,CAClC,GAAI,CAACgZ,MAAAA,CAAQ,CACZA,OAAS,IAAIqrF,kBAAAA,CAAmB,IAAI,CAACz3D,MAAM,CAAExpC,MAC9C,CACA,IAAI,CAACurE,IAAI,CAACnvE,IAAI,CAACwZ,MAAAA,CACf8/B,CAAAA,UAAAA,CAAWC,SAAS,CAAG//B,MACvB8/B,CAAAA,UAAAA,CAAW1sC,MAAM,CAAG,CACpB0sC,CAAAA,WAAWxF,OAAO,CAAGt6B,MAAAA,CAAOs6B,QAAO,CAEpCkxD,YAAa,CACZ,MAAM71B,IAAAA,CAAO,IAAI,CAACA,IAAI,CACtB,IAAK,IAAIjwE,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAKiwE,IAAAA,CAAKhwE,MAAM,CAAED,EAAAA,EAAAA,CAAM,CACxC,MAAMsa,MAAAA,CAAS21D,IAAI,CAACjwE,EAAAA,CAAG,CACvB,IAAI+lG,IAAAA,CAAO,IAAI,CAACF,IAAI,CAACnpG,GAAG,CAAC4d,MAAAA,CAAO5V,IAAI,EACpC,GAAI,CAACqhG,IAAAA,CAAM,CACVA,IAAAA,CAAO,EAAE,CACT,IAAI,CAACF,IAAI,CAACl/F,GAAG,CAAC2T,OAAO5V,IAAI,CAAEqhG,IAAAA,EAC5B,CACAA,IAAAA,CAAKjlG,IAAI,CAACwZ,MAAAA,EACX,CACA21D,IAAAA,CAAKhwE,MAAM,CAAG,EACf,CACA4tC,WAAAA,EAAc,CACb,IAAI,CAACi4D,UAAU,EAAA,CACf,IAAI,CAACD,IAAI,CAACn5F,OAAO,CAAEyzC,UAClBA,OAAAA,CAAQzzC,OAAO,CAAE4N,MAAAA,EAAWA,MAAAA,CAAOuzB,WAAW,EAAA,EAC/C,CAAA,EACD,CArCA,WAAA,CAAYK,MAAM,CAAE,CACnB,KAAK,CAACA,MAAAA,CAAQ,CAAA,CAAG,CAAA,CAAA,CAHlB23D,sBAAAA,MAAAA,CAAuB,IAAIz9F,GAAAA,CAAAA,CAC3B6nE,gBAAAA,CAAAA,IAAAA,CAAAA,MAAAA,CAAO,EAAE,EAGT,CAoCD,CAAA,CAEA,IAAI+1B,iBAAAA,CAAoB,KAAA,CAQvBp/C,QAAAA,CAASgmC,QAAQ,CAAE,CAClB,GAAI,IAAI,CAACqZ,QAAQ,EAAI,IAAI,CAACA,QAAQ,CAAChmG,MAAM,GAAK2sF,SAAU,CACvD,MACD,CACA,IAAI,CAACqZ,QAAQ,CAAG,IAAI5rF,UAAAA,CAAWuyE,QAAAA,CAC/B,CAAA,IAAI,CAACsZ,cAAc,CAAG,IAAI7rF,WAAWuyE,QAAAA,CACrC,CAAA,IAAI,CAACuZ,gBAAgB,CAAG,IAAI9rF,UAAAA,CAAWuyE,QAAAA,EACxC,CACAv8E,GAAAA,CAAIrQ,EAAE,CAAE8vF,kBAAkB,CAAEC,aAAa,CAAEC,kBAAkB,CAAE,CAC9D,IAAI,CAACiW,QAAQ,CAACjmG,EAAAA,CAAG,CAAG8vF,kBACpB,CAAA,IAAI,CAACoW,cAAc,CAAClmG,EAAAA,CAAG,CAAGgwF,kBAAAA,CAAqB,IAAI,CAACoW,cAAc,CAClE,IAAI,CAACD,gBAAgB,CAACnmG,GAAG,CAAG+vF,cAC7B,CACAl2C,MAAAA,CAAOhK,KAAK,CAAE,CACb,IAAIsgD,eAAAA,CAAkB,EACtB,OAAOA,eACR,CAnBA,WAAA,CAAYiW,cAAc,CAAE,CAJ5BA,gBAAAA,CAAAA,IAAAA,CAAAA,gBAAAA,CAAAA,MAAAA,CAAAA,CACAH,gBAAAA,CAAAA,IAAAA,CAAAA,UAAAA,CAAW,IAAA,CAAA,CACXC,gBAAAA,CAAAA,IAAAA,CAAAA,gBAAAA,CAAiB,MACjBC,gBAAAA,CAAAA,IAAAA,CAAAA,kBAAAA,CAAmB,IAAA,CAElB,CAAA,IAAI,CAACC,cAAc,CAAGA,eACvB,CAkBD,CAAA,CAEA,SAASC,eAAAA,CAAgB3rB,KAAK,CAAEh2E,IAAI,CAAA,CACnC,MAAM4hG,IAAAA,CAAO5rB,KAAAA,CAAM70D,KAAK,CACxB,MAAM0gF,IAAAA,CAAO7rB,KAAAA,CAAM50D,MAAM,CACzB,GAAIwgF,IAAAA,CAAO5hG,IAAAA,EAAQ6hG,IAAAA,CAAO7hG,IAAAA,CAAM,CAC/B,MAAMyiB,OAASziB,IAAAA,CAAOnF,IAAAA,CAAK6T,GAAG,CAACkzF,IAAAA,CAAMC,MACrC,MAAMC,IAAAA,CAAOjnG,IAAAA,CAAKoQ,KAAK,CAAC22F,IAAAA,CAAOn/E,QAC/B,MAAMs/E,IAAAA,CAAOlnG,IAAAA,CAAKoQ,KAAK,CAAC42F,IAAAA,CAAOp/E,QAC/B,MAAMwiC,MAAAA,CAAS9+C,QAAAA,CAASC,aAAa,CAAC,QAAA,CACtC6+C,CAAAA,MAAAA,CAAO9jC,KAAK,CAAG2gF,IACf78C,CAAAA,MAAAA,CAAO7jC,MAAM,CAAG2gF,IAAAA,CAChB,MAAMC,OAAAA,CAAU/8C,MAAAA,CAAOoxB,UAAU,CAAC,IAAA,CAAA,CAClC2rB,OAAAA,CAAQC,SAAS,CAACjsB,KAAAA,CAAO,CAAA,CAAG,EAAG4rB,IAAAA,CAAMC,IAAAA,CAAM,CAAA,CAAG,CAAA,CAAGC,IAAAA,CAAMC,IAAAA,CAAAA,CACvD,OAAO98C,MACR,CACA,OAAO+wB,KACR,CACA,IAAIksB,YAAAA,CAAe,KAAA,CAWlBv5D,OAAAA,CAAQa,MAAM,CAAE,CACf,GAAI,IAAI,CAACqH,UAAU,CAAE,CACpB,IAAK,IAAIv1C,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAKkuC,MAAAA,CAAO24D,YAAY,CAAC5mG,MAAM,CAAED,EAAAA,EAAAA,CAAM,CACvD,MAAM8mG,WAAAA,CAAc54D,MAAAA,CAAO24D,YAAY,CAAC7mG,EAAAA,CAAG,CAC3C,IAAK,IAAI0xC,CAAAA,CAAI,EAAGA,CAAAA,CAAIo1D,WAAAA,CAAY7mG,MAAM,CAAEyxC,CAAAA,EAAAA,CAAK,CAC5C,GAAIo1D,WAAW,CAACp1D,CAAAA,CAAE,GAAK,IAAI,CAAC6D,UAAU,CAAE,CACvCuxD,WAAW,CAACp1D,CAAAA,CAAE,CAAG,KAClB,CACD,CACD,CACAxD,MAAAA,CAAOmxD,EAAE,CAAC0H,aAAa,CAAC,IAAI,CAACxxD,UAAU,CACvC,CAAA,IAAI,CAACA,UAAU,CAAG,KACnB,CACD,CACA1H,WAAAA,EAAc,CACb,IAAI,CAAC0H,UAAU,CAAG,KACnB,CACA1C,eAAAA,CAAgBC,IAAI,CAAE,CACrB,IAAI,CAACk0D,mBAAmB,EAAIl0D,KAC7B,CACAxmC,UAAAA,CAAW4hC,MAAM,CAAEgC,OAAO,CAAE,CAC3B,MAAMmvD,EAAAA,CAAKnxD,MAAAA,CAAOmxD,EAAE,CACpB,IAAI,CAAC9pD,UAAU,CAAG8pD,GAAG/4B,aAAa,EAClC,CAAA,IAAI,CAAC2gC,SAAS,CAAG/2D,OAAAA,CAAQiC,QAAQ,CAAGktD,EAAAA,CAAG6H,gBAAgB,CAAGh3D,QAAQ4D,OAAO,CAAGurD,EAAAA,CAAG8H,UAAU,CAAGj3D,OAAAA,CAAQsE,KAAK,CAAG6qD,EAAAA,CAAG+H,gBAAgB,CAAG/H,EAAAA,CAAGgI,UAAU,CAC/I,OAAQn3D,OAAAA,CAAQuD,OAAO,EACtB,KAAK5Y,cAAAA,CACJ,IAAI,CAACysE,SAAS,CAAGjI,EAAAA,CAAGpjC,KACpB,CAAA,IAAI,CAACsrC,iBAAiB,CAAGlI,EAAAA,CAAGpjC,KAAK,CACjC,IAAI,CAACurC,YAAY,CAAGnI,GAAGiB,aAAa,CACpC,MACD,KAAKxlE,cAAAA,CACJ,IAAI,CAACwsE,SAAS,CAAGjI,EAAAA,CAAGoI,SAAS,CAC7B,IAAI,CAACF,iBAAiB,CAAGlI,EAAAA,CAAGoI,SAC5B,CAAA,IAAI,CAACD,YAAY,CAAGnI,EAAAA,CAAGiB,aAAa,CACpC,MACD,KAAKvlE,eAAAA,CACJ,IAAI,CAACusE,SAAS,CAAGjI,EAAAA,CAAGqI,eAAe,CACnC,IAAI,CAACH,iBAAiB,CAAGlI,EAAAA,CAAGqI,eAC5B,CAAA,IAAI,CAACF,YAAY,CAAGnI,GAAGiB,aAAa,CACpC,MACD,KAAKriE,cAAAA,CACJ,IAAI,CAACqpE,SAAS,CAAGjI,GAAG3oF,GACpB,CAAA,IAAI,CAAC6wF,iBAAiB,CAAGlI,EAAAA,CAAGsI,EAAE,CAC9B,IAAI,CAACH,YAAY,CAAGnI,EAAAA,CAAGiB,aAAa,CACpC,MACD,KAAKpiE,gBACJ,IAAI,CAACopE,SAAS,CAAGjI,EAAAA,CAAGuI,EAAE,CACtB,IAAI,CAACL,iBAAiB,CAAGlI,EAAAA,CAAGwI,GAAG,CAC/B,IAAI,CAACL,YAAY,CAAGnI,GAAGiB,aAAa,CACpC,MACD,KAAKtlE,kBAAAA,CACJ,IAAI,CAACssE,SAAS,CAAGjI,EAAAA,CAAGyI,GACpB,CAAA,IAAI,CAACP,iBAAiB,CAAGlI,EAAAA,CAAG0I,MAAM,CAClC,IAAI,CAACP,YAAY,CAAGnI,EAAAA,CAAG2I,oBAAoB,CAC3C,MACD,KAAK/sE,oBAAAA,CACJ,IAAI,CAACqsE,SAAS,CAAGjI,EAAAA,CAAG4I,IACpB,CAAA,IAAI,CAACV,iBAAiB,CAAGlI,EAAAA,CAAG6I,OAAO,CACnC,IAAI,CAACV,YAAY,CAAGnI,EAAAA,CAAG8I,sBAAsB,CAC7C,MACD,KAAKjtE,iBAAAA,CACJ,IAAI,CAACosE,SAAS,CAAGjI,EAAAA,CAAG4I,IAAI,CACxB,IAAI,CAACV,iBAAiB,CAAGlI,EAAAA,CAAG+I,KAC5B,CAAA,IAAI,CAACZ,YAAY,CAAGnI,EAAAA,CAAGgJ,sBAAsB,CAC7C,WACIltE,gBAAAA,CACJ,IAAI,CAACmsE,SAAS,CAAGjI,EAAAA,CAAGyI,GAAG,CACvB,IAAI,CAACP,iBAAiB,CAAGlI,GAAGiJ,IAC5B,CAAA,IAAI,CAACd,YAAY,CAAGnI,EAAAA,CAAGiB,aAAa,CACpC,MACD,KAAKllE,iBAAAA,CACJ,IAAI,CAACksE,SAAS,CAAGjI,EAAAA,CAAG4I,IAAI,CACxB,IAAI,CAACV,iBAAiB,CAAGlI,EAAAA,CAAGkJ,KAAK,CACjC,IAAI,CAACf,YAAY,CAAGnI,GAAGiB,aAAa,CACpC,MACD,KAAK1jE,iBAAAA,CACL,KAAK6B,mBACJ,MACD,KAAKO,kBAAAA,CACJ,IAAI,CAACsoE,SAAS,CAAGjI,EAAAA,CAAGyI,GAAG,CACvB,IAAI,CAACP,iBAAiB,CAAGlI,EAAAA,CAAGmJ,OAC5B,CAAA,IAAI,CAAChB,YAAY,CAAGnI,EAAAA,CAAGoJ,wBAAwB,CAC/C,WACIxpE,gBAAAA,CACJ,IAAI,CAACqoE,SAAS,CAAGjI,GAAGuI,EACpB,CAAA,IAAI,CAACL,iBAAiB,CAAGlI,EAAAA,CAAGqJ,SAAS,CACrC,IAAI,CAAClB,YAAY,CAAGnI,EAAAA,CAAGsJ,IAAI,CAC3B,MACD,KAAKzpE,mBACJ,IAAI,CAACooE,SAAS,CAAGjI,EAAAA,CAAG4I,IAAI,CACxB,IAAI,CAACV,iBAAiB,CAAGlI,EAAAA,CAAGuJ,WAAW,CACvC,IAAI,CAACpB,YAAY,CAAGnI,GAAGsJ,IAAI,CAC3B,MACD,KAAKxpE,mBAAAA,CACJ,IAAI,CAACmoE,SAAS,CAAGjI,GAAG4I,IACpB,CAAA,IAAI,CAACV,iBAAiB,CAAGlI,EAAAA,CAAGwJ,QAAQ,CACpC,IAAI,CAACrB,YAAY,CAAGnI,EAAAA,CAAGyJ,2BAA2B,CAClD,MACD,KAAK1pE,oBAAAA,CACJ,IAAI,CAACkoE,SAAS,CAAGjI,EAAAA,CAAG0J,YACpB,CAAA,IAAI,CAACxB,iBAAiB,CAAGlI,EAAAA,CAAG2J,UAAU,CACtC,IAAI,CAACxB,YAAY,CAAGnI,EAAAA,CAAGyJ,2BAA2B,CAClD,MAED,KAAKztE,gBAAAA,CACJ,IAAI,CAACisE,SAAS,CAAGjI,GAAGyI,GACpB,CAAA,IAAI,CAACP,iBAAiB,CAAGr5D,MAAAA,CAAOwqD,wBAAwB,CAACuQ,4BAA4B,CACrF,MACD,KAAK3tE,gBAAAA,CACJ,IAAI,CAACgsE,SAAS,CAAGjI,GAAG4I,IACpB,CAAA,IAAI,CAACV,iBAAiB,CAAGr5D,MAAAA,CAAOwqD,wBAAwB,CAACwQ,6BAA6B,CACtF,WACI3tE,gBAAAA,CACJ,IAAI,CAAC+rE,SAAS,CAAGjI,EAAAA,CAAG4I,IAAI,CACxB,IAAI,CAACV,iBAAiB,CAAGr5D,OAAOwqD,wBAAwB,CAACyQ,6BAA6B,CACtF,MACD,KAAKjtE,iBACJ,IAAI,CAACorE,SAAS,CAAGjI,EAAAA,CAAGyI,GAAG,CACvB,IAAI,CAACP,iBAAiB,CAAGr5D,OAAOk7D,wBAAwB,CAACC,yBAAyB,CAClF,MACD,KAAKhtE,6BACJ,IAAI,CAACirE,SAAS,CAAGjI,EAAAA,CAAGyI,GAAG,CACvB,IAAI,CAACP,iBAAiB,CAAGr5D,MAAAA,CAAOo7D,yBAAyB,CAACC,+BAA+B,CACzF,MACD,KAAKjtE,6BAAAA,CACJ,IAAI,CAACgrE,SAAS,CAAGjI,EAAAA,CAAG4I,IACpB,CAAA,IAAI,CAACV,iBAAiB,CAAGr5D,MAAAA,CAAOo7D,yBAAyB,CAACE,gCAAgC,CAC1F,MACD,KAAKjtE,4BAAAA,CACJ,IAAI,CAAC+qE,SAAS,CAAGjI,EAAAA,CAAGyI,GACpB,CAAA,IAAI,CAACP,iBAAiB,CAAGr5D,MAAAA,CAAOo7D,yBAAyB,CAACG,+BAA+B,CACzF,MACD,KAAKjtE,6BAAAA,CACJ,IAAI,CAAC8qE,SAAS,CAAGjI,EAAAA,CAAG4I,IAAI,CACxB,IAAI,CAACV,iBAAiB,CAAGr5D,MAAAA,CAAOo7D,yBAAyB,CAACI,gCAAgC,CAC1F,MACD,KAAKvtE,oBAAAA,CACJ,IAAI,CAACmrE,SAAS,CAAGjI,EAAAA,CAAGyI,GACpB,CAAA,IAAI,CAACP,iBAAiB,CAAGr5D,OAAO0qD,uBAAuB,CAAC+Q,oBAAoB,CAC5E,MACD,KAAKvtE,qBAAAA,CACJ,IAAI,CAACkrE,SAAS,CAAGjI,EAAAA,CAAG4I,IACpB,CAAA,IAAI,CAACV,iBAAiB,CAAGr5D,MAAAA,CAAO0qD,uBAAuB,CAACgR,yBAAyB,CACjF,MACD,KAAKntE,oBAAAA,CACJ,IAAI,CAAC6qE,SAAS,CAAGjI,EAAAA,CAAG4I,IAAI,CACxB,IAAI,CAACV,iBAAiB,CAAGr5D,MAAAA,CAAO2qD,wBAAwB,CAACgR,4BAA4B,CACrF,MACD,KAAKntE,mBAAAA,CACJ,IAAI,CAAC4qE,SAAS,CAAGjI,GAAGyI,GACpB,CAAA,IAAI,CAACP,iBAAiB,CAAGr5D,MAAAA,CAAO47D,uBAAuB,CAACC,wBAAwB,CAChF,MACD,KAAKptE,oBAAAA,CACJ,IAAI,CAAC2qE,SAAS,CAAGjI,GAAG4I,IACpB,CAAA,IAAI,CAACV,iBAAiB,CAAGr5D,MAAAA,CAAO47D,uBAAuB,CAACE,4CAA4C,CACpG,WACItrE,gBAAAA,CACJ,IAAI,CAAC4oE,SAAS,CAAGjI,EAAAA,CAAGyI,GAAG,CACvB,IAAI,CAACP,iBAAiB,CAAGr5D,OAAO+7D,yBAAyB,CAACC,oCAAoC,CAC9F,MACD,KAAKvrE,kBACJ,IAAI,CAAC2oE,SAAS,CAAGjI,EAAAA,CAAGyI,GAAG,CACvB,IAAI,CAACP,iBAAiB,CAAGr5D,OAAO+7D,yBAAyB,CAACE,sCAAsC,CAChG,MACD,KAAKvrE,gBACJ,IAAI,CAAC0oE,SAAS,CAAGjI,EAAAA,CAAG4I,IAAI,CACxB,IAAI,CAACV,iBAAiB,CAAGr5D,MAAAA,CAAO+7D,yBAAyB,CAACG,8BAA8B,CACxF,MAED,KAAKjsE,qBAAAA,CACJ,IAAI,CAACmpE,SAAS,CAAGjI,EAAAA,CAAGgL,IACpB,CAAA,IAAI,CAAC9C,iBAAiB,CAAGr5D,MAAAA,CAAOo8D,6BAA6B,CAACC,6BAA6B,CAC3F,MACD,KAAKnsE,sBAAAA,CACJ,IAAI,CAACkpE,SAAS,CAAGjI,EAAAA,CAAGmL,UACpB,CAAA,IAAI,CAACjD,iBAAiB,CAAGr5D,MAAAA,CAAOo8D,6BAA6B,CAACG,mCAAmC,CACjG,MACD,KAAKpsE,sBAAAA,CACJ,IAAI,CAACipE,SAAS,CAAGjI,EAAAA,CAAGmL,UAAU,CAC9B,IAAI,CAACjD,iBAAiB,CAAGr5D,MAAAA,CAAOo8D,6BAA6B,CAACI,mCAAmC,CACjG,MACD,KAAKpsE,qBAAAA,CACJ,IAAI,CAACgpE,SAAS,CAAGjI,EAAAA,CAAGgL,IACpB,CAAA,IAAI,CAAC9C,iBAAiB,CAAGr5D,OAAO0qD,uBAAuB,CAAC+R,qBAAqB,CAC7E,MACD,KAAKpsE,sBAAAA,CACJ,IAAI,CAAC+oE,SAAS,CAAGjI,EAAAA,CAAGmL,UACpB,CAAA,IAAI,CAACjD,iBAAiB,CAAGr5D,MAAAA,CAAO0qD,uBAAuB,CAACgS,gCAAgC,CACxF,MACD,KAAKpsE,yBAAAA,CACJ,IAAI,CAAC8oE,SAAS,CAAGjI,EAAAA,CAAGmL,UAAU,CAC9B,IAAI,CAACjD,iBAAiB,CAAGr5D,MAAAA,CAAO2qD,wBAAwB,CAACgS,oCAAoC,CAC7F,MACD,KAAKhsE,qBAAAA,CACJ,IAAI,CAACyoE,SAAS,CAAGjI,GAAG4I,IACpB,CAAA,IAAI,CAACV,iBAAiB,CAAGr5D,MAAAA,CAAO+7D,yBAAyB,CAACa,oCAAoC,CAC9F,WAEI/sE,gBAAAA,CACJ,IAAI,CAACupE,SAAS,CAAGjI,EAAAA,CAAG3oF,GAAG,CACvB,IAAI,CAAC6wF,iBAAiB,CAAGlI,GAAG0L,IAC5B,CAAA,IAAI,CAACvD,YAAY,CAAGnI,EAAAA,CAAG2L,UAAU,CACjC,MACD,KAAKhtE,iBAAAA,CACJ,IAAI,CAACspE,SAAS,CAAGjI,EAAAA,CAAGuI,EACpB,CAAA,IAAI,CAACL,iBAAiB,CAAGlI,EAAAA,CAAG4L,KAAK,CACjC,IAAI,CAACzD,YAAY,CAAGnI,GAAG2L,UAAU,CACjC,MACD,KAAKxvE,kBAAAA,CACJ,IAAI,CAAC8rE,SAAS,CAAGjI,EAAAA,CAAGyI,GAAG,CACvB,IAAI,CAACP,iBAAiB,CAAGlI,EAAAA,CAAG6L,MAC5B,CAAA,IAAI,CAAC1D,YAAY,CAAGnI,EAAAA,CAAG2L,UAAU,CACjC,MACD,KAAKvvE,mBAAAA,CACJ,IAAI,CAAC6rE,SAAS,CAAGjI,EAAAA,CAAG4I,IAAI,CACxB,IAAI,CAACV,iBAAiB,CAAGlI,EAAAA,CAAG8L,OAC5B,CAAA,IAAI,CAAC3D,YAAY,CAAGnI,GAAG2L,UAAU,CACjC,MACD,KAAKtvE,kBAAAA,CACJ,IAAI,CAAC4rE,SAAS,CAAGjI,GAAGyI,GACpB,CAAA,IAAI,CAACP,iBAAiB,CAAGlI,EAAAA,CAAG+L,MAAM,CAClC,IAAI,CAAC5D,YAAY,CAAGnI,EAAAA,CAAGgM,KAAK,CAC5B,MACD,KAAK1vE,oBACJ,IAAI,CAAC2rE,SAAS,CAAGjI,EAAAA,CAAG4I,IAAI,CACxB,IAAI,CAACV,iBAAiB,CAAGlI,EAAAA,CAAGiM,OAAO,CACnC,IAAI,CAAC9D,YAAY,CAAGnI,GAAGgM,KAAK,CAC5B,MACD,KAAKzvE,gBAAAA,CACJ,IAAI,CAAC0rE,SAAS,CAAGjI,EAAAA,CAAG3oF,GACpB,CAAA,IAAI,CAAC6wF,iBAAiB,CAAGlI,EAAAA,CAAGkM,IAAI,CAChC,IAAI,CAAC/D,YAAY,CAAGnI,EAAAA,CAAGgM,KAAK,CAC5B,MACD,KAAKtsE,iBAAAA,CACJ,IAAI,CAACuoE,SAAS,CAAGjI,EAAAA,CAAGuI,EACpB,CAAA,IAAI,CAACL,iBAAiB,CAAGlI,EAAAA,CAAGmM,KAAK,CACjC,IAAI,CAAChE,YAAY,CAAGnI,EAAAA,CAAGgM,KAAK,CAC5B,MACD,KAAKxvE,iBAAAA,CACJ,IAAI,CAACyrE,SAAS,CAAGjI,EAAAA,CAAGoM,eAAe,CACnC,IAAI,CAAClE,iBAAiB,CAAGlI,EAAAA,CAAGqM,kBAC5B,CAAA,IAAI,CAAClE,YAAY,CAAGnI,EAAAA,CAAGgM,KAAK,CAC5B,WACIvsE,mBAAAA,CACJ,IAAI,CAACwoE,SAAS,CAAGjI,EAAAA,CAAGoM,eAAe,CACnC,IAAI,CAAClE,iBAAiB,CAAGlI,GAAGsM,iBAC5B,CAAA,IAAI,CAACnE,YAAY,CAAGnI,EAAAA,CAAGkB,cAAc,CACrC,MACD,KAAKzkE,wBAAAA,CACJ,IAAI,CAACwrE,SAAS,CAAGjI,EAAAA,CAAGuM,aAAa,CACjC,IAAI,CAACrE,iBAAiB,CAAGlI,EAAAA,CAAGwM,gBAAgB,CAC5C,IAAI,CAACrE,YAAY,CAAGnI,GAAGyM,iBAAiB,CACxC,MACD,KAAK/vE,mBAAAA,CACJ,IAAI,CAACurE,SAAS,CAAGjI,EAAAA,CAAGyI,GAAG,CACvB,IAAI,CAACP,iBAAiB,CAAGlI,EAAAA,CAAG0M,cAC5B,CAAA,IAAI,CAACvE,YAAY,CAAGnI,EAAAA,CAAG2M,4BAA4B,CACnD,MACD,KAAKhwE,iBAAAA,CACJ,IAAI,CAACsrE,SAAS,CAAGjI,EAAAA,CAAGyI,GAAG,CACvB,IAAI,CAACP,iBAAiB,CAAGlI,EAAAA,CAAG4M,KAAK,CACjC,IAAI,CAACzE,YAAY,CAAGnI,EAAAA,CAAGiB,aAAa,CACpC,MACD,KAAKrkE,kBAAAA,CACJ,IAAI,CAACqrE,SAAS,CAAGjI,GAAG4I,IACpB,CAAA,IAAI,CAACV,iBAAiB,CAAGlI,EAAAA,CAAG6M,YAAY,CACxC,IAAI,CAAC1E,YAAY,CAAGnI,EAAAA,CAAGiB,aAAa,CACpC,MAED,KAAKzjE,gBACJ,IAAI,CAACyqE,SAAS,CAAGjI,EAAAA,CAAG8M,WAAW,CAC/B,IAAI,CAAC5E,iBAAiB,CAAGlI,GAAG+M,GAC5B,CAAA,IAAI,CAAC5E,YAAY,CAAGnI,EAAAA,CAAGsJ,IAAI,CAC3B,MACD,KAAK7rE,eAAAA,CACJ,IAAI,CAACwqE,SAAS,CAAGjI,EAAAA,CAAG8M,WACpB,CAAA,IAAI,CAAC5E,iBAAiB,CAAGlI,EAAAA,CAAGgN,IAAI,CAChC,IAAI,CAAC7E,YAAY,CAAGnI,EAAAA,CAAGiB,aAAa,CACpC,MACD,KAAKvjE,gBAAAA,CACJ,IAAI,CAACuqE,SAAS,CAAGjI,EAAAA,CAAG8M,WACpB,CAAA,IAAI,CAAC5E,iBAAiB,CAAGlI,GAAGiN,IAC5B,CAAA,IAAI,CAAC9E,YAAY,CAAGnI,EAAAA,CAAGkN,KAAK,CAC5B,MACD,KAAKvvE,gBAAAA,CACJ,IAAI,CAACsqE,SAAS,CAAGjI,EAAAA,CAAG8M,WAAW,CAC/B,IAAI,CAAC5E,iBAAiB,CAAGlI,EAAAA,CAAGmN,KAC5B,CAAA,IAAI,CAAChF,YAAY,CAAGnI,EAAAA,CAAGkB,cAAc,CACrC,WACItjE,gBAAAA,CACJ,IAAI,CAACqqE,SAAS,CAAGjI,EAAAA,CAAG8M,WAAW,CAC/B,IAAI,CAAC5E,iBAAiB,CAAGlI,GAAGoN,IAC5B,CAAA,IAAI,CAACjF,YAAY,CAAGnI,EAAAA,CAAGqN,GAAG,CAC1B,MACD,KAAKxvE,iBACJ,IAAI,CAACoqE,SAAS,CAAGjI,EAAAA,CAAG8M,WAAW,CAC/B,IAAI,CAAC5E,iBAAiB,CAAGlI,EAAAA,CAAGsN,KAAK,CACjC,IAAI,CAACnF,YAAY,CAAGnI,GAAGmB,YAAY,CACnC,MAED,KAAKrjE,gBAAAA,CACJ,IAAI,CAACmqE,SAAS,CAAGjI,EAAAA,CAAGuN,UAAU,CAC9B,IAAI,CAACrF,iBAAiB,CAAGlI,EAAAA,CAAGwN,IAC5B,CAAA,IAAI,CAACrF,YAAY,CAAGnI,EAAAA,CAAGsJ,IAAI,CAC3B,MACD,KAAKvrE,gBAAAA,CACJ,IAAI,CAACkqE,SAAS,CAAGjI,EAAAA,CAAGuN,UACpB,CAAA,IAAI,CAACrF,iBAAiB,CAAGlI,EAAAA,CAAGyN,KAAK,CACjC,IAAI,CAACtF,YAAY,CAAGnI,EAAAA,CAAGiB,aAAa,CACpC,MACD,KAAKjjE,iBAAAA,CACJ,IAAI,CAACiqE,SAAS,CAAGjI,GAAGuN,UACpB,CAAA,IAAI,CAACrF,iBAAiB,CAAGlI,EAAAA,CAAG0N,KAAK,CACjC,IAAI,CAACvF,YAAY,CAAGnI,EAAAA,CAAGkN,KAAK,CAC5B,WACIjvE,iBAAAA,CACJ,IAAI,CAACgqE,SAAS,CAAGjI,EAAAA,CAAGuN,UAAU,CAC9B,IAAI,CAACrF,iBAAiB,CAAGlI,GAAG2N,MAC5B,CAAA,IAAI,CAACxF,YAAY,CAAGnI,EAAAA,CAAGkB,cAAc,CACrC,MACD,KAAKhjE,iBAAAA,CACJ,IAAI,CAAC+pE,SAAS,CAAGjI,EAAAA,CAAGuN,UACpB,CAAA,IAAI,CAACrF,iBAAiB,CAAGlI,EAAAA,CAAG4N,KAAK,CACjC,IAAI,CAACzF,YAAY,CAAGnI,EAAAA,CAAGqN,GAAG,CAC1B,WACIlvE,iBAAAA,CACJ,IAAI,CAAC8pE,SAAS,CAAGjI,EAAAA,CAAGuN,UAAU,CAC9B,IAAI,CAACrF,iBAAiB,CAAGlI,EAAAA,CAAG6N,MAC5B,CAAA,IAAI,CAAC1F,YAAY,CAAGnI,EAAAA,CAAGmB,YAAY,CACnC,MAED,KAAK/iE,kBAAAA,CACJ,IAAI,CAAC6pE,SAAS,CAAGjI,EAAAA,CAAG0J,YAAY,CAChC,IAAI,CAACxB,iBAAiB,CAAGlI,EAAAA,CAAG8N,MAC5B,CAAA,IAAI,CAAC3F,YAAY,CAAGnI,EAAAA,CAAGsJ,IAAI,CAC3B,WACIjrE,kBAAAA,CACJ,IAAI,CAAC4pE,SAAS,CAAGjI,GAAG0J,YACpB,CAAA,IAAI,CAACxB,iBAAiB,CAAGlI,EAAAA,CAAG+N,OAAO,CACnC,IAAI,CAAC5F,YAAY,CAAGnI,EAAAA,CAAGiB,aAAa,CACpC,MACD,KAAK3iE,oBACJ,IAAI,CAAC2pE,SAAS,CAAGjI,EAAAA,CAAG0J,YAAY,CAChC,IAAI,CAACxB,iBAAiB,CAAGlI,EAAAA,CAAGgO,OAAO,CACnC,IAAI,CAAC7F,YAAY,CAAGnI,GAAGkN,KAAK,CAC5B,MACD,KAAK3uE,mBAAAA,CACJ,IAAI,CAAC0pE,SAAS,CAAGjI,GAAG0J,YACpB,CAAA,IAAI,CAACxB,iBAAiB,CAAGlI,EAAAA,CAAGiO,QAAQ,CACpC,IAAI,CAAC9F,YAAY,CAAGnI,EAAAA,CAAGkB,cAAc,CACrC,MACD,KAAK1iE,mBAAAA,CACJ,IAAI,CAACypE,SAAS,CAAGjI,EAAAA,CAAG0J,YACpB,CAAA,IAAI,CAACxB,iBAAiB,CAAGlI,EAAAA,CAAGkO,OAAO,CACnC,IAAI,CAAC/F,YAAY,CAAGnI,EAAAA,CAAGqN,GAAG,CAC1B,MACD,KAAK5uE,mBAAAA,CACJ,IAAI,CAACwpE,SAAS,CAAGjI,GAAG0J,YACpB,CAAA,IAAI,CAACxB,iBAAiB,CAAGlI,EAAAA,CAAGmO,QAC5B,CAAA,IAAI,CAAChG,YAAY,CAAGnI,EAAAA,CAAGmB,YAAY,CACnC,KACF,CACA,IAAI,CAACiN,UAAU,CAAG,MACnB,CACA17D,OAAO7D,MAAM,CAAEgC,OAAO,CAAE,CACvB,MAAMmvD,GAAKnxD,MAAAA,CAAOmxD,EAAE,CACpB,GAAI,CAACnvD,OAAAA,CAAQ0B,YAAY,EAAI1B,OAAAA,CAAQ2B,mBAAmB,EAAI3B,OAAAA,CAAQgG,gBAAgB,CAAE,CACrF,MACD,CACA,IAAIlH,QAAAA,CAAW,CAAA,CACf,IAAIirC,SAAAA,CACJ,IAAIyzB,OAAAA,CACJ,MAAM1zB,iBAAAA,CAAoB9pC,OAAAA,CAAQyE,SAAS,CAC3C,GAAIzE,OAAAA,CAAQsE,KAAK,EAAI,CAAC,IAAI,CAACi5D,UAAU,CAAE,CACtCpO,EAAAA,CAAGsO,YAAY,CACdtO,EAAAA,CAAG+H,gBAAgB,CACnBptB,iBAAAA,CACA,IAAI,CAACutB,iBAAiB,CACtBr3D,OAAAA,CAAQmC,MAAM,CACdnC,OAAAA,CAAQoC,OAAO,CACfpC,OAAAA,CAAQ+E,YAAW,EAErB,CACA,MAAO/E,OAAAA,CAAQoB,OAAO,CAACtC,QAAAA,CAAS,EAAIA,QAAAA,GAAa,CAAA,CAAG,CACnD,GAAI,CAACkB,OAAAA,CAAQ0B,YAAY,EAAI5C,QAAAA,GAAa,CAAA,CAAG,CAC5CA,QAAAA,EAAAA,CACA,QACD,MAAO,GAAIA,QAAAA,GAAa,CAACkB,OAAAA,CAAQ2B,mBAAmB,EAAI,CAAC3B,OAAAA,CAAQmD,QAAQ,CAAD,CAAI,CAC3E,KACD,CACA4mC,SAAAA,CAAY/pC,QAAQoB,OAAO,CAACtC,QAAAA,CAAS,CACrC0+D,OAAAA,CAAU,CAAA,CAAInuG,KAAK2U,GAAG,CAAC,CAAA,CAAG86B,QAAAA,CAAAA,CAC1B,GAAIA,QAAAA,GAAa,GAAK,CAACkB,OAAAA,CAAQ8E,WAAW,EAAI,CAAC9E,OAAAA,CAAQwH,cAAc,EAAIxH,OAAAA,CAAQoB,OAAO,CAACrxC,MAAM,CAAG+5E,kBAAmB,CACpHqlB,EAAAA,CAAGuO,cAAc,CAAC,IAAI,CAAC3G,SAAS,CAChC/2D,CAAAA,QAAQgG,gBAAgB,CAAG,KAC5B,CACA,GAAIhG,OAAAA,CAAQiC,QAAQ,CAAE,CACrB,IAAIiE,IAAAA,CACJ,GAAIlI,MAAAA,CAAO2I,mBAAmB,CAACojC,SAAS,CAAC,CAAA,CAAE,CAAA,CAAG,CAC7C,IAAK7jC,IAAAA,CAAO,CAAA,CAAGA,KAAO,CAAA,CAAGA,IAAAA,EAAAA,CAAQ,CAChC,GAAI,CAAClG,OAAAA,CAAQ+F,cAAc,CAAC,CAAA,CAAE,CAACG,IAAAA,CAAK,CAAE,CACrC,QACD,CACA,IAAI9gC,GAAAA,CAAM2kE,SAAS,CAAC7jC,IAAAA,CAAK,CACzB,GAAIlI,MAAAA,CAAOwgB,wBAAwB,CAACp5C,GAAAA,CAAAA,CAAM,CACzC,GAAIA,GAAAA,CAAIuQ,KAAK,CAAGqoB,MAAAA,CAAO8jB,cAAc,EAAI18C,GAAAA,CAAIwQ,MAAM,CAAGooB,MAAAA,CAAO8jB,cAAc,CAAE,CAC5E18C,GAAAA,CAAM+wF,eAAAA,CAAgB/wF,GAAAA,CAAK44B,MAAAA,CAAO8jB,cAAc,CAAA,CAChD,GAAIhjB,QAAAA,GAAa,CAAA,CAAG,CACnBkB,OAAAA,CAAQmC,MAAM,CAAG/8B,IAAIuQ,KACrBqqB,CAAAA,OAAAA,CAAQoC,OAAO,CAAGh9B,IAAIwQ,OACvB,CACD,CACD,CACAooB,MAAAA,CAAO2/D,cAAc,CAAC,KAAA,CAAA,CACtB3/D,MAAAA,CAAO4/D,yBAAyB,CAAC59D,OAAAA,CAAQ4F,iBAAiB,CAAA,CAC1D,GAAI,IAAI,CAAC23D,UAAU,CAAE,CACpBpO,EAAAA,CAAG0O,aAAa,CACf1O,EAAAA,CAAG2O,2BAA2B,CAAG53D,IAAAA,CACjCpH,QAAAA,CACA,CAAA,CACA,CAAA,CACA,IAAI,CAACs4D,SAAS,CACd,IAAI,CAACE,YAAY,CACjBlyF,GAAAA,EAEF,MAAO,CACN+pF,EAAAA,CAAG4O,UAAU,CACZ5O,EAAAA,CAAG2O,2BAA2B,CAAG53D,IAAAA,CACjCpH,QAAAA,CACA,IAAI,CAACu4D,iBAAiB,CACtB,IAAI,CAACD,SAAS,CACd,IAAI,CAACE,YAAY,CACjBlyF,GAAAA,EAEF,CACD,CACD,CAAA,KAAO,CACNo4F,OAAAA,CAAU,EAAInuG,IAAAA,CAAK2U,GAAG,CAAC,CAAA,CAAG86B,QAAAA,CAAAA,CAC1B,IAAKoH,KAAO,CAAA,CAAGA,IAAAA,CAAO,EAAGA,IAAAA,EAAAA,CAAQ,CAChC,GAAI,CAAClG,OAAAA,CAAQ+F,cAAc,CAAC,CAAA,CAAE,CAACG,KAAK,CAAE,CACrC,QACD,CACA,MAAM83D,OAAAA,CAAUj0B,SAAS,CAAC7jC,IAAAA,CAAK,CAC/B,GAAIlG,OAAAA,CAAQ8E,WAAW,CAAE,CACxB,GAAI,IAAI,CAACy4D,UAAU,EAAIS,QAAS,CAC/B7O,EAAAA,CAAG8O,uBAAuB,CACzB9O,EAAAA,CAAG2O,2BAA2B,CAAG53D,IAAAA,CACjCpH,QAAAA,CACA,CAAA,CACA,CAAA,CACAzvC,IAAAA,CAAK6T,GAAG,CAAC88B,OAAAA,CAAQmC,MAAM,CAAGq7D,OAAAA,CAAS,CAAA,CAAA,CACnCnuG,IAAAA,CAAK6T,GAAG,CAAC88B,OAAAA,CAAQoC,OAAO,CAAGo7D,OAAAA,CAAS,GACpC,IAAI,CAACnG,iBAAiB,CACtB2G,OAAAA,EAEF,CAAA,KAAO,CACN7O,EAAAA,CAAG+O,oBAAoB,CACtB/O,EAAAA,CAAG2O,2BAA2B,CAAG53D,KACjCpH,QAAAA,CACA,IAAI,CAACu4D,iBAAiB,CACtBhoG,IAAAA,CAAK6T,GAAG,CAAC88B,OAAAA,CAAQmC,MAAM,CAAGq7D,OAAAA,CAAS,CAAA,CAAA,CACnCnuG,KAAK6T,GAAG,CAAC88B,OAAAA,CAAQoC,OAAO,CAAGo7D,OAAAA,CAAS,GACpC,CAAA,CACAQ,OAAAA,EAEF,CACD,CAAA,KAAO,CACNhgE,MAAAA,CAAO2/D,cAAc,CAAC,KAAA,CAAA,CACtB3/D,MAAAA,CAAO4/D,yBAAyB,CAAC59D,OAAAA,CAAQ4F,iBAAiB,CAAA,CAC1D5H,MAAAA,CAAOmgE,kBAAkB,CAAC,CAAA,CAAA,CAC1B,GAAI,IAAI,CAACZ,UAAU,EAAIS,OAAAA,CAAS,CAC/B7O,GAAG0O,aAAa,CACf1O,EAAAA,CAAG2O,2BAA2B,CAAG53D,IAAAA,CACjCpH,SACA,CAAA,CACA,CAAA,CACAzvC,IAAAA,CAAK6T,GAAG,CAAC88B,OAAAA,CAAQmC,MAAM,CAAGq7D,OAAAA,CAAS,CAAA,CAAA,CACnCnuG,IAAAA,CAAK6T,GAAG,CAAC88B,QAAQoC,OAAO,CAAGo7D,OAAAA,CAAS,CAAA,CAAA,CACpC,IAAI,CAACpG,SAAS,CACd,IAAI,CAACE,YAAY,CACjB0G,OAAAA,EAEF,MAAO,CACN7O,EAAAA,CAAG4O,UAAU,CACZ5O,EAAAA,CAAG2O,2BAA2B,CAAG53D,IAAAA,CACjCpH,QAAAA,CACA,IAAI,CAACu4D,iBAAiB,CACtBhoG,IAAAA,CAAK6T,GAAG,CAAC88B,OAAAA,CAAQmC,MAAM,CAAGq7D,QAAS,CAAA,CAAA,CACnCnuG,IAAAA,CAAK6T,GAAG,CAAC88B,OAAAA,CAAQoC,OAAO,CAAGo7D,OAAAA,CAAS,CAAA,CAAA,CACpC,CAAA,CACA,IAAI,CAACpG,SAAS,CACd,IAAI,CAACE,YAAY,CACjB0G,OAAAA,EAEF,CACD,CACD,CACD,CACD,CAAA,KAAO,GAAIh+D,OAAAA,CAAQ4D,OAAO,CAAE,CAC3B,GAAI5D,OAAAA,CAAQ8E,WAAW,CAAE,CACxBqqD,GAAGiP,oBAAoB,CACtBjP,EAAAA,CAAG8H,UAAU,CACbn4D,QAAAA,CACA,IAAI,CAACu4D,iBAAiB,CACtBhoG,IAAAA,CAAK6T,GAAG,CAAC88B,OAAAA,CAAQmC,MAAM,CAAGq7D,OAAAA,CAAS,CAAA,CAAA,CACnCnuG,IAAAA,CAAK6T,GAAG,CAAC88B,OAAAA,CAAQoC,OAAO,CAAGo7D,OAAAA,CAAS,CAAA,CAAA,CACpCnuG,KAAK6T,GAAG,CAAC88B,OAAAA,CAAQqC,MAAM,CAAGm7D,OAAAA,CAAS,GACnC,CAAA,CACAzzB,SAAAA,EAEF,CAAA,KAAO,CACN/rC,MAAAA,CAAO2/D,cAAc,CAAC,KAAA,CAAA,CACtB3/D,MAAAA,CAAO4/D,yBAAyB,CAAC59D,OAAAA,CAAQ4F,iBAAiB,EAC1D5H,MAAAA,CAAOmgE,kBAAkB,CAAC,CAAA,CAAA,CAC1BhP,EAAAA,CAAGkP,UAAU,CACZlP,EAAAA,CAAG8H,UAAU,CACbn4D,QAAAA,CACA,IAAI,CAACu4D,iBAAiB,CACtBhoG,IAAAA,CAAK6T,GAAG,CAAC88B,OAAAA,CAAQmC,MAAM,CAAGq7D,OAAAA,CAAS,CAAA,CAAA,CACnCnuG,IAAAA,CAAK6T,GAAG,CAAC88B,QAAQoC,OAAO,CAAGo7D,OAAAA,CAAS,CAAA,CAAA,CACpCnuG,IAAAA,CAAK6T,GAAG,CAAC88B,OAAAA,CAAQqC,MAAM,CAAGm7D,OAAAA,CAAS,CAAA,CAAA,CACnC,CAAA,CACA,IAAI,CAACpG,SAAS,CACd,IAAI,CAACE,YAAY,CACjBvtB,SAAAA,EAEF,CACD,CAAA,KAAO,GAAI/pC,OAAAA,CAAQsE,KAAK,CAAE,CACzB,GAAIx1C,KAAAA,CAAMC,OAAO,CAACg7E,SAAAA,CAAAA,EAAc/pC,QAAQ+E,YAAY,GAAKglC,SAAAA,CAAUh6E,MAAM,CAAE,CAC1E,GAAIiwC,OAAAA,CAAQ8E,WAAW,CAAE,CACxB,IAAK,IAAI3vC,KAAAA,CAAQ,CAAA,CAAGA,KAAAA,CAAQ6qC,OAAAA,CAAQ+E,YAAY,CAAE5vC,QAAS,CAC1Dg6F,EAAAA,CAAGmP,uBAAuB,CACzBnP,EAAAA,CAAG+H,gBAAgB,CACnBp4D,QAAAA,CACA,CAAA,CACA,CAAA,CACA3pC,KAAAA,CACA9F,IAAAA,CAAK6T,GAAG,CAAC7T,IAAAA,CAAKoQ,KAAK,CAACugC,OAAAA,CAAQmC,MAAM,CAAGq7D,SAAU,CAAA,CAAA,CAC/CnuG,IAAAA,CAAK6T,GAAG,CAAC7T,IAAAA,CAAKoQ,KAAK,CAACugC,OAAAA,CAAQoC,OAAO,CAAGo7D,OAAAA,CAAAA,CAAU,CAAA,CAAA,CAChD,CAAA,CACA,IAAI,CAACnG,iBAAiB,CACtBttB,SAAS,CAAC50E,KAAAA,CAAK,EAEjB,CACD,CAAA,KAAO,CACN6oC,MAAAA,CAAOmgE,kBAAkB,CAAC,CAAA,CAAA,CAC1B,IAAK,IAAIhpG,KAAAA,CAAQ,CAAA,CAAGA,KAAAA,CAAQ6qC,QAAQ+E,YAAY,CAAE5vC,KAAAA,EAAAA,CAAS,CAC1Dg6F,EAAAA,CAAGoP,aAAa,CACfpP,EAAAA,CAAG+H,gBAAgB,CACnBp4D,QAAAA,CACA,CAAA,CACA,CAAA,CACA3pC,MACA9F,IAAAA,CAAK6T,GAAG,CAAC7T,IAAAA,CAAKoQ,KAAK,CAACugC,QAAQmC,MAAM,CAAGq7D,OAAAA,CAAAA,CAAU,CAAA,CAAA,CAC/CnuG,IAAAA,CAAK6T,GAAG,CAAC7T,IAAAA,CAAKoQ,KAAK,CAACugC,OAAAA,CAAQoC,OAAO,CAAGo7D,SAAU,CAAA,CAAA,CAChD,CAAA,CACA,IAAI,CAACpG,SAAS,CACd,IAAI,CAACE,YAAY,CACjBvtB,SAAS,CAAC50E,MAAK,EAEjB,CACD,CACD,CACD,CAAA,KAAO,CACN,GAAI6oC,MAAAA,CAAO2I,mBAAmB,CAACojC,SAAAA,CAAAA,CAAY,CAC1C,GAAI/rC,OAAOwI,uBAAuB,CAACujC,SAAAA,CAAAA,EAAc/rC,MAAAA,CAAOyI,oBAAoB,CAAE,CAC7EzI,MAAAA,CAAO2/D,cAAc,CAAC39D,OAAAA,CAAQyF,MAAM,CAAA,CACpCzH,OAAO4/D,yBAAyB,CAAC59D,OAAAA,CAAQ4F,iBAAiB,CAAA,CAC1D,MAAMmB,KAAOgjC,SAAAA,CAAU/iC,qBAAqB,EAAA,CAC5C,MAAMx3B,CAAAA,CAAIngB,IAAAA,CAAKoQ,KAAK,CAACsnC,IAAAA,CAAKpxB,KAAK,CAAA,EAAKqqB,OAAAA,CAAQmC,MAAM,CAClD,MAAMrjB,EAAAA,CAAKzvB,KAAKoQ,KAAK,CAACsnC,KAAKnxB,MAAM,CAAA,EAAKoqB,OAAAA,CAAQoC,OAAO,CACrD+sD,EAAAA,CAAGqP,iBAAiB,CACnBrP,EAAAA,CAAGgI,UAAU,CACb,IAAI,CAACE,iBAAiB,CACtBttB,SAAAA,CAAAA,CAED,GAAIjrC,QAAAA,GAAa,CAAA,CAAG,CACnBkB,QAAQmC,MAAM,CAAG3yB,CACjBwwB,CAAAA,OAAAA,CAAQoC,OAAO,CAAGtjB,GACnB,CACD,CAAA,KAAO,CACN,GAAIkf,MAAAA,CAAOwgB,wBAAwB,CAACurB,SAAAA,CAAAA,CAAY,CAC/C,GAAIA,SAAAA,CAAUp0D,KAAK,CAAGqoB,MAAAA,CAAO+jB,cAAc,EAAIgoB,SAAAA,CAAUn0D,MAAM,CAAGooB,OAAO+jB,cAAc,CAAE,CACxFgoB,SAAAA,CAAYosB,eAAAA,CAAgBpsB,UAAW/rC,MAAAA,CAAO+jB,cAAc,CAAA,CAC5D,GAAIjjB,QAAAA,GAAa,CAAA,CAAG,CACnBkB,OAAAA,CAAQmC,MAAM,CAAG4nC,SAAAA,CAAUp0D,KAC3BqqB,CAAAA,OAAAA,CAAQoC,OAAO,CAAG2nC,SAAAA,CAAUn0D,OAC7B,CACD,CACD,CACA,MAAMpG,CAAAA,CAAIu6D,SAAAA,CAAUp0D,KAAK,EAAIo0D,SAAAA,CAAUljC,UAAU,CACjD,MAAM/nB,EAAAA,CAAKirD,SAAAA,CAAUn0D,MAAM,EAAIm0D,SAAAA,CAAUjjC,WAAW,CACpD9I,MAAAA,CAAO2/D,cAAc,CAAC39D,OAAAA,CAAQyF,MAAM,CAAA,CACpCzH,MAAAA,CAAO4/D,yBAAyB,CAAC59D,QAAQ4F,iBAAiB,CAAA,CAC1D,GAAI,IAAI,CAAC23D,UAAU,EAAIv9D,OAAAA,CAAQmC,MAAM,GAAK3yB,CAAAA,EAAKwwB,OAAAA,CAAQoC,OAAO,GAAKtjB,EAAAA,EAAM,CAACkf,MAAAA,CAAO0gB,sBAAsB,CAACqrB,SAAAA,CAAAA,CAAY,CACnHolB,EAAAA,CAAG0O,aAAa,CACf1O,EAAAA,CAAGgI,UAAU,CACbr4D,SACA,CAAA,CACA,CAAA,CACA,IAAI,CAACs4D,SAAS,CACd,IAAI,CAACE,YAAY,CACjBvtB,SAAAA,EAEF,CAAA,KAAO,CACNolB,GAAG4O,UAAU,CACZ5O,EAAAA,CAAGgI,UAAU,CACbr4D,QAAAA,CACA,IAAI,CAACu4D,iBAAiB,CACtB,IAAI,CAACD,SAAS,CACd,IAAI,CAACE,YAAY,CACjBvtB,SAAAA,CAAAA,CAED,GAAIjrC,QAAAA,GAAa,CAAA,CAAG,CACnBkB,OAAAA,CAAQmC,MAAM,CAAG3yB,CACjBwwB,CAAAA,OAAAA,CAAQoC,OAAO,CAAGtjB,GACnB,CACD,CACD,CACD,CAAA,KAAO,CACN0+E,OAAAA,CAAU,CAAA,CAAInuG,IAAAA,CAAK2U,GAAG,CAAC,CAAA,CAAG86B,QAAAA,CAAAA,CAC1B,GAAIkB,OAAAA,CAAQ8E,WAAW,CAAE,CACxB,GAAI,IAAI,CAACy4D,UAAU,EAAIxzB,UAAW,CACjColB,EAAAA,CAAG8O,uBAAuB,CACzB9O,EAAAA,CAAGgI,UAAU,CACbr4D,QAAAA,CACA,CAAA,CACA,CAAA,CACAzvC,IAAAA,CAAK6T,GAAG,CAAC7T,KAAKoQ,KAAK,CAACugC,QAAQmC,MAAM,CAAGq7D,SAAU,CAAA,CAAA,CAC/CnuG,IAAAA,CAAK6T,GAAG,CAAC7T,IAAAA,CAAKoQ,KAAK,CAACugC,OAAAA,CAAQoC,OAAO,CAAGo7D,OAAAA,CAAAA,CAAU,CAAA,CAAA,CAChD,IAAI,CAACnG,iBAAiB,CACtBttB,SAAAA,EAEF,CAAA,KAAO,CACNolB,EAAAA,CAAG+O,oBAAoB,CACtB/O,EAAAA,CAAGgI,UAAU,CACbr4D,QAAAA,CACA,IAAI,CAACu4D,iBAAiB,CACtBhoG,IAAAA,CAAK6T,GAAG,CAAC7T,IAAAA,CAAKoQ,KAAK,CAACugC,OAAAA,CAAQmC,MAAM,CAAGq7D,OAAAA,CAAAA,CAAU,CAAA,CAAA,CAC/CnuG,KAAK6T,GAAG,CAAC7T,IAAAA,CAAKoQ,KAAK,CAACugC,OAAAA,CAAQoC,OAAO,CAAGo7D,OAAAA,CAAAA,CAAU,GAChD,CAAA,CACAzzB,SAAAA,EAEF,CACD,CAAA,KAAO,CACN/rC,MAAAA,CAAO2/D,cAAc,CAAC,KAAA,CAAA,CACtB3/D,OAAO4/D,yBAAyB,CAAC59D,OAAAA,CAAQ4F,iBAAiB,CAAA,CAC1D5H,MAAAA,CAAOmgE,kBAAkB,CAAC,CAAA,CAAA,CAC1B,GAAI,IAAI,CAACZ,UAAU,EAAIxzB,SAAAA,CAAW,CACjColB,EAAAA,CAAG0O,aAAa,CACf1O,EAAAA,CAAGgI,UAAU,CACbr4D,QAAAA,CACA,CAAA,CACA,CAAA,CACAzvC,IAAAA,CAAK6T,GAAG,CAAC88B,OAAAA,CAAQmC,MAAM,CAAGq7D,OAAAA,CAAS,CAAA,CAAA,CACnCnuG,IAAAA,CAAK6T,GAAG,CAAC88B,OAAAA,CAAQoC,OAAO,CAAGo7D,OAAAA,CAAS,CAAA,CAAA,CACpC,IAAI,CAACpG,SAAS,CACd,IAAI,CAACE,YAAY,CACjBvtB,SAAAA,EAEF,CAAA,KAAO,CACNolB,EAAAA,CAAG4O,UAAU,CACZ5O,EAAAA,CAAGgI,UAAU,CACbr4D,QAAAA,CACA,IAAI,CAACu4D,iBAAiB,CACtBhoG,IAAAA,CAAK6T,GAAG,CAAC88B,OAAAA,CAAQmC,MAAM,CAAGq7D,OAAAA,CAAS,CAAA,CAAA,CACnCnuG,IAAAA,CAAK6T,GAAG,CAAC88B,OAAAA,CAAQoC,OAAO,CAAGo7D,OAAAA,CAAS,CAAA,CAAA,CACpC,CAAA,CACA,IAAI,CAACpG,SAAS,CACd,IAAI,CAACE,YAAY,CACjBvtB,SAAAA,EAEF,CACD,CACD,CACA,GAAIjrC,QAAAA,GAAa,CAAA,CAAG,CACnBkB,QAAQgG,gBAAgB,CAAG,MAC5B,CAAA,KAAO,CACNhG,QAAQgG,gBAAgB,CAAG,KAC5B,CACD,CACAlH,QAAAA,GACD,CACA,GAAIkB,OAAAA,CAAQ0B,YAAY,CAAE,CACzB,GAAI1B,QAAQiC,QAAQ,CAAE,CACrB,IAAK,IAAInyC,EAAAA,CAAK,EAAGA,EAAAA,CAAK,CAAA,CAAGA,EAAAA,EAAAA,CAAM,CAC9BkwC,OAAAA,CAAQ+F,cAAc,CAAC,CAAA,CAAE,CAACj2C,EAAAA,CAAG,CAAG,MACjC,CACD,MAAO,CACNkwC,OAAAA,CAAQ+F,cAAc,CAAC,CAAA,CAAE,CAAG,MAC7B,CACD,CACA,GAAI,CAAC/F,OAAAA,CAAQ8E,WAAW,EAAI,CAAC9E,OAAAA,CAAQwH,cAAc,EAAIxH,OAAAA,CAAQmD,QAAQ,EAAInD,OAAAA,CAAQ2B,mBAAmB,EAAI3B,OAAAA,CAAQoB,OAAO,CAACrxC,MAAM,GAAK,CAAA,CAAG,CACvIo/F,EAAAA,CAAGuO,cAAc,CAAC,IAAI,CAAC3G,SAAS,CAChC/2D,CAAAA,OAAAA,CAAQgG,gBAAgB,CAAG,KAC5B,CACA,GAAIhG,OAAAA,CAAQiB,QAAQ,CAAE,CACrBjB,OAAAA,CAAQe,sBAAsB,CAAC/C,MAAAA,CAAOgD,KAAK,CAAE,CAAChB,OAAAA,CAAQiB,QAAQ,EAC/D,CACAjB,OAAAA,CAAQiB,QAAQ,CAAGjB,OAAAA,CAAQwC,OAAO,CAClCxC,OAAAA,CAAQe,sBAAsB,CAAC/C,MAAAA,CAAOgD,KAAK,CAAEhB,OAAAA,CAAQiB,QAAQ,EAC7D,GAAIjB,OAAAA,CAAQkB,wBAAwB,CAAE,CACrClB,OAAAA,CAAQmB,mBAAmB,GAC5B,CACA,IAAI,CAACo8D,UAAU,CAAG,KACnB,CACAl2D,eAAAA,CAAgBrJ,MAAM,CAAEgC,OAAO,CAAE,CAChC,GAAIA,OAAAA,CAAQ0B,YAAY,EAAI1B,OAAAA,CAAQ2B,mBAAmB,CAAE,CACxD3D,MAAAA,CAAOmL,UAAU,CAACnJ,OAAAA,CAAS,CAAA,CAC3BA,CAAAA,OAAAA,CAAQ0B,YAAY,CAAG,KACvB1B,CAAAA,OAAAA,CAAQ2B,mBAAmB,CAAG,MAC/B,CACD,CACA1E,IAAAA,CAAK5wC,EAAE,CAAEof,EAAE,CAAEkK,KAAK,CAAEC,MAAM,CAAEtU,QAAQ,CAAE,CACrC,MAAM0+B,OAAAA,CAAU,IAAI,CAACA,OAAO,CAC5B,MAAMhC,MAAAA,CAASgC,OAAAA,CAAQhC,MAAM,CAC7B,OAAOA,MAAAA,CAAOygE,gBAAgB,CAACz+D,OAAAA,CAAS3zC,EAAAA,CAAIof,GAAIkK,KAAAA,CAAOC,MAAAA,CAAQtU,QAAAA,CAChE,CACA07B,KAAAA,CAAM3wC,EAAE,CAAEof,EAAE,CAAEkK,KAAK,CAAEC,MAAM,CAAEpM,KAAK,CAAE,CACnC,KAAM,CAAEw2B,OAAO,CAAE,CAAG,IAAI,CACxB,KAAM,CAAEhC,MAAM,CAAE,CAAGgC,OAAAA,CACnBhC,MAAAA,CAAOmL,UAAU,CAACnJ,OAAAA,CAAS,GAC3B,OAAOhC,MAAAA,CAAO0gE,iBAAiB,CAAC1+D,OAAAA,CAAS3zC,EAAAA,CAAIof,GAAIkK,KAAAA,CAAOC,MAAAA,CAAQpM,KAAAA,CACjE,CACA3a,IAAAA,CAAK03C,MAAM,CAAEjlC,QAAQ,CAAE,CACtB,OAAO,IAAI,CAAC0+B,OAAO,CAAChC,MAAM,CAACwuC,oBAAoB,CAACjmC,MAAAA,CAAQ,IAAI,CAACvG,OAAO,CAAE1+B,QAAAA,CACvE,CAztBA,WAAA,CAAY0+B,OAAO,CAAE,CAPrBqF,gBAAAA,CAAAA,IAAAA,CAAAA,YAAAA,CAAa,IAAA,CAAA,CACb0xD,gBAAAA,CAAAA,IAAAA,CAAAA,YAAAA,MAAAA,CAAAA,CACAK,gBAAAA,CAAAA,IAAAA,CAAAA,WAAAA,CAAAA,MAAAA,CAAAA,CACAC,sBAAAA,mBAAAA,CAAAA,QACAC,gBAAAA,CAAAA,IAAAA,CAAAA,cAAAA,CAAAA,MAAAA,CAAAA,CACAiG,gBAAAA,CAAAA,IAAAA,CAAAA,YAAAA,CAAAA,MAAAA,CAAAA,CACAzG,gBAAAA,CAAAA,IAAAA,CAAAA,sBAAsB,CAAA,CAErB,CAAA,IAAI,CAAC92D,OAAO,CAAGA,QAChB,CAwtBD,CAAA,CAEA,IAAI2+D,oBAAAA,CAAuB,IAAIpgE,WAAAA,CAC/B,IAAIqgE,eAAAA,CAAkB,KAAA,CAOrBzhE,OAAAA,CAAQgyD,EAAE,CAAE,CACX,GAAI,IAAI,CAAC0P,MAAM,CAAE,CAChB1P,EAAAA,CAAG2P,kBAAkB,CAAC,IAAI,CAACD,MAAM,CACjC,CAAA,IAAI,CAACA,MAAM,CAAG,KACf,CACA,GAAI,IAAI,CAACE,SAAS,CAAE,CACnB5P,EAAAA,CAAG2P,kBAAkB,CAAC,IAAI,CAACC,SAAS,CACpC,CAAA,IAAI,CAACA,SAAS,CAAG,KAClB,CACD,CAbA,YAAYF,MAAM,CAAEE,SAAS,CAAE,CAF/BF,gBAAAA,CAAAA,IAAAA,CAAAA,SAAAA,MAAAA,CAAAA,CACAE,gBAAAA,CAAAA,IAAAA,CAAAA,WAAAA,CAAAA,MAAAA,CAEC,CAAA,IAAI,CAACF,MAAM,CAAGA,MACd,CAAA,IAAI,CAACE,SAAS,CAAGA,UAClB,CAWD,CAAA,CACA,IAAIC,iBAAAA,CAAoB,KAAA,CAUvB7hE,OAAAA,CAAQa,MAAM,CAAE,CACf,MAAMmxD,EAAAA,CAAKnxD,MAAAA,CAAOmxD,EAAE,CACpB,IAAI,CAAC8P,cAAc,CAAG,KAAA,CACtB,GAAI,IAAI,CAAC34C,cAAc,CAAE,CACxB,GAAI,IAAI,CAACA,cAAc,GAAK,IAAI,CAAC44C,wBAAwB,CAAE,CAC1D/P,GAAGgQ,iBAAiB,CAAC,IAAI,CAAC74C,cAAc,EACzC,CACA,IAAI,CAACA,cAAc,CAAG,KACvB,CACA,GAAI,IAAI,CAAC84C,cAAc,CAAE,CACxBjQ,EAAAA,CAAG2P,kBAAkB,CAAC,IAAI,CAACM,cAAc,CACzC,CAAA,IAAI,CAACA,cAAc,CAAG,KACvB,CACA,GAAI,IAAI,CAACC,qBAAqB,CAAE,CAC/B,GAAI,IAAI,CAACA,qBAAqB,GAAK,IAAI,CAACH,wBAAwB,CAAE,CACjE/P,EAAAA,CAAGgQ,iBAAiB,CAAC,IAAI,CAACE,qBAAqB,EAChD,CACA,IAAI,CAACA,qBAAqB,CAAG,KAC9B,CACA,IAAI,CAACC,mBAAmB,CAAC9iG,OAAO,CAAC,MAAC4N,EAAAA,CACjC+kF,EAAAA,CAAG2P,kBAAkB,CAAC10F,MAAAA,EACvB,EACA,CAAA,IAAI,CAACk1F,mBAAmB,CAACvvG,MAAM,CAAG,CAClC,CAAA,IAAI,CAACwvG,oBAAoB,EAAE/iG,OAAAA,CAASgjG,WAAAA,EAAAA,CACnCA,WAAAA,CAAYriE,OAAO,CAACgyD,IACrB,CAAA,CACA,CAAA,IAAI,CAACoQ,oBAAoB,CAAG,KAC5B,GAAI,IAAI,CAACE,kBAAkB,CAAE,CAC5B,IAAI,CAACA,kBAAkB,CAAG,IAAA,CAC1B,GAAI,IAAI,CAACC,kBAAkB,CAAE,CAC5BhvC,2BAAAA,CAA4B1yB,MAAAA,CAAAA,CAAQuyB,OAAO,CAAC,IAAI,CAACmvC,kBAAkB,EACpE,CACD,CACA,IAAI,CAACR,wBAAwB,CAAG,OACjC,CACA,IAAI/uD,WAAAA,EAAc,CACjB,OAAO,IAAI,CAAC8uD,cAAc,CAE3B/gD,IAAAA,CAAKlgB,MAAM,CAAEtvC,OAAO,CAAE,CACrB,MAAMygG,EAAAA,CAAKnxD,MAAAA,CAAOmxD,EAClB,CAAA,IAAI,CAAC8P,cAAc,CAAG,IAAA,CACtB,MAAMhvD,QAAU,EAAE,CAClB,GAAI,IAAI,CAACivD,wBAAwB,GAAK,MAAK,CAAG,CAC7C,IAAI,CAAC54C,cAAc,CAAG,IAAI,CAAC44C,yBAC5B,CAAA,KAAO,CACN,IAAI,CAAC54C,cAAc,CAAG6oC,EAAAA,CAAGwQ,iBAAiB,EAAA,CAC1C3hE,OAAO4hE,cAAc,CAAC,IAAI,CAACt5C,cAAc,CAAA,CACzC,MAAMN,gBAAAA,CAAmBt3D,OAAAA,CAAQm2D,aAAa,EAAE90D,MAAAA,EAAU,CAAA,CAC1D,MAAM8vG,sBAAAA,CAAyB1Q,EAAAA,CAAG2Q,iBAAiB,CACnD,IAAK,IAAIhwG,GAAK,CAAA,CAAGA,EAAAA,CAAKk2D,gBAAAA,CAAkB,EAAEl2D,EAAAA,CAAI,CAC7C,MAAMg1D,WAAAA,CAAcp2D,OAAAA,CAAQu3D,cAAc,CAACn2D,EAAAA,CAAAA,CAC3C,GAAIg1D,YAAa,CAChB,GAAI,CAACA,WAAAA,CAAY1nB,IAAI,CAACiI,UAAU,CAAE,CACjCyf,WAAAA,CAAY3iB,MAAM,CAAG9yC,IAAAA,CAAK4T,GAAG,CAAC6hD,WAAAA,CAAYnvC,KAAK,CAAEqoB,MAAAA,CAAO+hE,mBAAmB,CAC3Ej7C,CAAAA,WAAAA,CAAY1iB,OAAO,CAAG/yC,IAAAA,CAAK4T,GAAG,CAAC6hD,WAAAA,CAAYlvC,MAAM,CAAEooB,MAAAA,CAAO+hE,mBAAmB,EAC7E/hE,MAAAA,CAAOmL,UAAU,CAAC2b,WAAAA,CAAa,CAAA,EAChC,CACAqqC,GAAG6Q,oBAAoB,CACtB7Q,EAAAA,CAAG8Q,WAAW,CACdJ,sBAAAA,CAAyB/vG,GACzBg1D,WAAAA,CAAY7iB,QAAQ,CAAGktD,EAAAA,CAAG2O,2BAA2B,CAAGpvG,QAAQ23D,KAAK,CAAG8oC,EAAAA,CAAGgI,UAAU,CACrFryC,WAAAA,CAAY1nB,IAAI,CAACiI,UAAU,CAC3B32C,OAAAA,CAAQowC,QAAO,CAAA,CAEhBmR,QAAQr/C,IAAI,CAACivG,sBAAAA,CAAyB/vG,EAAAA,EACvC,CACD,CACAq/F,GAAG+Q,WAAW,CAACjwD,SACf,MAAMkW,WAAAA,CAAcz3D,QAAQk2D,YAAY,CACxC,GAAIuB,WAAAA,EAAez3D,OAAAA,CAAQ2zC,MAAM,CAAE,CAClC,MAAM89D,eAAAA,CAAkBzxG,OAAAA,CAAQq3D,QAAQ,CAAGopC,GAAGiR,wBAAwB,CAAGjR,EAAAA,CAAGkR,gBAAgB,CAC5F,GAAIl6C,YAAa,CAChB,GAAI,CAACA,WAAAA,CAAY/oB,IAAI,CAACiI,UAAU,CAAE,CACjC8gB,WAAAA,CAAYhkB,MAAM,CAAG9yC,IAAAA,CAAK4T,GAAG,CAACkjD,WAAAA,CAAYxwC,KAAK,CAAEqoB,MAAAA,CAAO+hE,mBAAmB,CAC3E55C,CAAAA,WAAAA,CAAY/jB,OAAO,CAAG/yC,IAAAA,CAAK4T,GAAG,CAACkjD,WAAAA,CAAYvwC,MAAM,CAAEooB,MAAAA,CAAO+hE,mBAAmB,EAC7E/hE,MAAAA,CAAOmL,UAAU,CAACgd,WAAAA,CAAa,CAAA,EAChC,CACAgpC,GAAG6Q,oBAAoB,CACtB7Q,EAAAA,CAAG8Q,WAAW,CACdE,eAAAA,CACAh6C,YAAYlkB,QAAQ,CAAGktD,EAAAA,CAAG2O,2BAA2B,CAAGpvG,OAAAA,CAAQ23D,KAAK,CAAG8oC,EAAAA,CAAGgI,UAAU,CACrFzoG,OAAAA,CAAQk2D,YAAY,CAACxnB,IAAI,CAACiI,UAAU,CACpC32C,OAAAA,CAAQowC,QAAO,EAEjB,CAAA,KAAO,CACN,MAAMwhE,cAAAA,CAAiB5xG,OAAAA,CAAQ6zC,QAAQ,CAAG,CAAA,CAC1C,GAAI,CAAC+9D,cAAAA,CAAgB,CACpB,GAAI,CAAC,IAAI,CAAClB,cAAc,CAAE,CACzB,IAAI,CAACA,cAAc,CAAGjQ,EAAAA,CAAGoR,kBAAkB,GAC5C,CACA,MAAMC,cAAAA,CAAiB9xG,OAAAA,CAAQq3D,QAAQ,CAAGopC,EAAAA,CAAGwM,gBAAgB,CAAGxM,EAAAA,CAAGqM,kBAAkB,CACrFrM,EAAAA,CAAGsR,gBAAgB,CAACtR,EAAAA,CAAGuR,YAAY,CAAE,IAAI,CAACtB,cAAc,EACxDjQ,EAAAA,CAAGwR,mBAAmB,CAACxR,EAAAA,CAAGuR,YAAY,CAAEF,eAAgB9xG,OAAAA,CAAQinB,KAAK,CAAEjnB,OAAAA,CAAQknB,MAAM,CAAA,CACrFu5E,GAAGyR,uBAAuB,CAACzR,EAAAA,CAAG8Q,WAAW,CAAEE,eAAAA,CAAiBhR,GAAGuR,YAAY,CAAE,IAAI,CAACtB,cAAc,EAChGjQ,EAAAA,CAAGsR,gBAAgB,CAACtR,EAAAA,CAAGuR,YAAY,CAAE,MACtC,CACD,CACD,CACD,CACA,GAAIhyG,OAAAA,CAAQ6zC,QAAQ,CAAG,CAAA,CAAG,CACzB,IAAI,CAAC88D,qBAAqB,CAAG,IAAI,CAAC/4C,cAClC,CAAA,IAAI,CAACA,cAAc,CAAG6oC,EAAAA,CAAGwQ,iBAAiB,EAAA,CAC1C3hE,MAAAA,CAAO4hE,cAAc,CAAC,IAAI,CAACt5C,cAAc,CAAA,CACzC,MAAMN,iBAAmBt3D,OAAAA,CAAQm2D,aAAa,EAAE90D,MAAAA,EAAU,CAAA,CAC1D,GAAI,IAAI,CAACmvG,wBAAwB,GAAK,MAAK,CAAG,CAC7C,MAAM90F,MAAAA,CAAS+kF,EAAAA,CAAGoR,kBAAkB,EAAA,CACpC,IAAI,CAACjB,mBAAmB,CAAC1uG,IAAI,CAACwZ,MAAAA,CAAAA,CAC9B,MAAMo2F,eAAiBxiE,MAAAA,CAAOujB,gBAAgB,GAAKr2B,iBAAAA,CAAoBikE,EAAAA,CAAGkJ,KAAK,CAAGlJ,EAAAA,CAAGiJ,IAAI,CACzFjJ,EAAAA,CAAGsR,gBAAgB,CAACtR,GAAGuR,YAAY,CAAEt2F,MAAAA,CAAAA,CACrC+kF,EAAAA,CAAG0R,8BAA8B,CAAC1R,GAAGuR,YAAY,CAAEhyG,OAAAA,CAAQ6zC,QAAQ,CAAEi+D,cAAAA,CAAgB9xG,QAAQinB,KAAK,CAAEjnB,OAAAA,CAAQknB,MAAM,CAAA,CAClHu5E,EAAAA,CAAGyR,uBAAuB,CAACzR,EAAAA,CAAG8Q,WAAW,CAAE9Q,EAAAA,CAAG2Q,iBAAiB,CAAE3Q,EAAAA,CAAGuR,YAAY,CAAEt2F,MAAAA,EACnF,CAAA,KAAO,CACN,IAAK,IAAIta,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAKk2D,gBAAAA,CAAkB,EAAEl2D,EAAAA,CAAI,CAC7C,MAAMg1D,WAAAA,CAAcp2D,OAAAA,CAAQu3D,cAAc,CAACn2D,EAAAA,CAAAA,CAC3C,GAAIg1D,WAAAA,CAAa,CAChB,MAAM16C,MAAAA,CAAS+kF,GAAGoR,kBAAkB,EAAA,CACpC,IAAI,CAACjB,mBAAmB,CAAC1uG,IAAI,CAACwZ,MAAAA,CAAAA,CAC9B+kF,EAAAA,CAAGsR,gBAAgB,CAACtR,EAAAA,CAAGuR,YAAY,CAAEt2F,MAAAA,CAAAA,CACrC+kF,EAAAA,CAAG0R,8BAA8B,CAAC1R,EAAAA,CAAGuR,YAAY,CAAEhyG,OAAAA,CAAQ6zC,QAAQ,CAAEuiB,WAAAA,CAAY1nB,IAAI,CAACi6D,iBAAiB,CAAE3oG,OAAAA,CAAQinB,KAAK,CAAEjnB,QAAQknB,MAAM,CAAA,CACtIu5E,EAAAA,CAAGyR,uBAAuB,CAACzR,EAAAA,CAAG8Q,WAAW,CAAE9Q,EAAAA,CAAG2Q,iBAAiB,CAAGhwG,EAAAA,CAAIq/F,EAAAA,CAAGuR,YAAY,CAAEt2F,MAAAA,EACxF,CACD,CACD,CACA,GAAI1b,QAAQ2zC,MAAM,CAAE,CACnB,MAAMm+D,cAAAA,CAAiB9xG,OAAAA,CAAQq3D,QAAQ,CAAGopC,EAAAA,CAAGwM,gBAAgB,CAAGxM,EAAAA,CAAGqM,kBAAkB,CACrF,MAAM2E,eAAAA,CAAkBzxG,OAAAA,CAAQq3D,QAAQ,CAAGopC,EAAAA,CAAGiR,wBAAwB,CAAGjR,EAAAA,CAAGkR,gBAAgB,CAC5F,IAAIxoG,IACJ,MAAMsuD,WAAAA,CAAcz3D,OAAAA,CAAQk2D,YAAY,CACxC,GAAIuB,YAAa,CAChBtuD,GAAAA,CAAM,CAAC,EAAEsuD,WAAAA,CAAYlqB,EAAE,CAAC,CAAC,EAAEvtC,OAAAA,CAAQinB,KAAK,CAAC,CAAC,EAAEjnB,OAAAA,CAAQknB,MAAM,CAAC,CAAC,EAAElnB,OAAAA,CAAQ6zC,QAAQ,CAAC,CAAC,EAAEi+D,cAAAA,CAAe,CAAC,EAAEL,gBAAgB,CACpH,CAAA,IAAI,CAACV,kBAAkB,CAAG/uC,2BAAAA,CAA4B1yB,MAAAA,CAAAA,CAAQxxC,GAAG,CAACqL,GAAAA,EACnE,CACA,GAAI,CAAC,IAAI,CAAC4nG,kBAAkB,CAAE,CAC7B,IAAI,CAACA,kBAAkB,CAAGtQ,EAAAA,CAAGoR,kBAAkB,GAC/CpR,EAAAA,CAAGsR,gBAAgB,CAACtR,EAAAA,CAAGuR,YAAY,CAAE,IAAI,CAACjB,kBAAkB,CAAA,CAC5DtQ,EAAAA,CAAG0R,8BAA8B,CAAC1R,GAAGuR,YAAY,CAAEhyG,OAAAA,CAAQ6zC,QAAQ,CAAEi+D,cAAAA,CAAgB9xG,QAAQinB,KAAK,CAAEjnB,OAAAA,CAAQknB,MAAM,CAClH,CAAA,IAAI,CAAC6pF,kBAAkB,CAACtiE,OAAO,CAAG,UAAA,CACjCgyD,GAAG2P,kBAAkB,CAAC,IAAI,EAC3B,CAAA,CACA,GAAI34C,YAAa,CAChBuK,2BAAAA,CAA4B1yB,QAAQvnC,GAAG,CAACoB,IAAK,IAAI,CAAC4nG,kBAAkB,EACrE,CACD,CACA,IAAI,CAACC,kBAAkB,CAAG7nG,GAAAA,CAC1Bs3F,EAAAA,CAAGyR,uBAAuB,CAACzR,EAAAA,CAAG8Q,WAAW,CAAEE,eAAAA,CAAiBhR,EAAAA,CAAGuR,YAAY,CAAE,IAAI,CAACjB,kBAAkB,EACrG,CACA,GAAIz5C,iBAAmB,CAAA,CAAG,CACzB,IAAI,CAAC86C,0BAA0B,CAAC9iE,OAAQtvC,OAAAA,CAASs3D,gBAAAA,CAAAA,CACjDhoB,MAAAA,CAAO4hE,cAAc,CAAC,IAAI,CAACt5C,cAAc,CAAA,CACzC6oC,EAAAA,CAAG+Q,WAAW,CAACjwD,OAAAA,EAChB,CACD,CACD,CACA6wD,2BAA2B9iE,MAAM,CAAEtvC,OAAO,CAAEs3D,gBAAgB,CAAE,CAC7D,MAAMmpC,EAAAA,CAAKnxD,OAAOmxD,EAClB,CAAA,IAAI,CAACoQ,oBAAoB,CAAG,EAAE,CAC9B,IAAK,IAAIzvG,EAAAA,CAAK,CAAA,CAAGA,GAAKk2D,gBAAAA,CAAkB,EAAEl2D,EAAAA,CAAI,CAC7C,MAAMg1D,WAAAA,CAAcp2D,QAAQu3D,cAAc,CAACn2D,EAAAA,CAAAA,CAC3C,MAAMixG,cAAAA,CAAiB5R,EAAAA,CAAGwQ,iBAAiB,EAAA,CAC3C3hE,MAAAA,CAAO4hE,cAAc,CAACmB,cAAAA,CAAAA,CACtB,MAAM32F,OAAS,IAAI,CAACk1F,mBAAmB,CAACxvG,EAAAA,CAAG,CAC3Cq/F,GAAGsR,gBAAgB,CAACtR,GAAGuR,YAAY,CAAEt2F,QACrC+kF,EAAAA,CAAG0R,8BAA8B,CAAC1R,EAAAA,CAAGuR,YAAY,CAAEhyG,QAAQ6zC,QAAQ,CAAEuiB,WAAAA,CAAY1nB,IAAI,CAACi6D,iBAAiB,CAAE3oG,OAAAA,CAAQinB,KAAK,CAAEjnB,OAAAA,CAAQknB,MAAM,CAAA,CACtIu5E,GAAGyR,uBAAuB,CAACzR,EAAAA,CAAG8Q,WAAW,CAAE9Q,EAAAA,CAAG2Q,iBAAiB,CAAE3Q,EAAAA,CAAGuR,YAAY,CAAEt2F,MAAAA,CAAAA,CAClF+kF,EAAAA,CAAG+Q,WAAW,CAAC,CAAC/Q,EAAAA,CAAG2Q,iBAAiB,CAAC,CAAA,CACrC,MAAMkB,cAAAA,CAAiB7R,EAAAA,CAAGwQ,iBAAiB,EAAA,CAC3C3hE,MAAAA,CAAO4hE,cAAc,CAACoB,cAAAA,CAAAA,CACtB7R,EAAAA,CAAG6Q,oBAAoB,CACtB7Q,EAAAA,CAAG8Q,WAAW,CACd9Q,EAAAA,CAAG2Q,iBAAiB,CACpBh7C,WAAAA,CAAY7iB,QAAQ,CAAGktD,EAAAA,CAAG2O,2BAA2B,CAAGpvG,OAAAA,CAAQ23D,KAAK,CAAG8oC,GAAGgI,UAAU,CACrFryC,WAAAA,CAAY1nB,IAAI,CAACiI,UAAU,CAC3B,CAAA,CAED,CAAA,IAAI,CAACk6D,oBAAoB,CAACzvG,GAAG,CAAG,IAAI8uG,eAAAA,CAAgBmC,cAAAA,CAAgBC,cAAAA,EACrE,CACD,CACAC,SAAAA,CAAUjjE,MAAM,CAAEtvC,OAAO,CAAEwY,IAAAA,CAAO,EAAE,CAAE,CACrC,MAAMg6F,YAAAA,CAAexyG,OAAAA,CAAQm2D,aAAa,EAAEzuD,GAAAA,CAAK1J,GAAMA,CAAAA,EAAG2I,MAAAA,EAAU,EAAC,CAAA,CAAG1F,IAAAA,CAAK,GAAA,CAAA,EAAQ,EAAA,CACrF,MAAMw0F,SAAAA,CAAYz1F,QAAQ2zC,MAAM,CAAG3zC,OAAAA,CAAQk2D,YAAY,CAAG,CAAC,EAAE,EAAEl2D,OAAAA,CAAQk2D,YAAY,CAACvvD,MAAM,CAAC,CAAC,CAAG3G,OAAAA,CAAQq3D,QAAQ,CAAG,IAAA,CAAO,GAAA,CAAM,GAC/H,MAAMluD,GAAAA,CAAM,CAAC,EAAEqP,IAAAA,CAAK,CAAC,EAAEg6F,YAAAA,CAAa,CAAC,EAAE/c,SAAAA,CAAU,CAAC,EAAEz1F,QAAQ6zC,QAAQ,CAAC,CAAC,CACtE,MAAM4+D,SAAAA,CAAYxC,qBAAqBnyG,GAAG,CAACwxC,MAAAA,CAAQ,IAAA,CAClD,MAAMvnC,GAAAA,CAAsB,IAAIK,GAChCL,CAAAA,GAAAA,CAAIknC,WAAW,CAAG,IAAMlnC,IAAI+B,KAAK,EAAA,CACjC,OAAO/B,GACR,CAAA,CAAA,CACA,GAAI0qG,UAAUtqG,GAAG,CAACgB,GAAAA,CAAAA,CAAM,CACvB,MACD,CACA,MAAMs3F,EAAAA,CAAKnxD,MAAAA,CAAOmxD,EAAE,CACpB,MAAMiS,MAAAA,CAASjS,GAAGkS,sBAAsB,CAAClS,EAAAA,CAAG8Q,WAAW,CAAA,CAEvD,OAAQmB,MAAAA,EACP,KAAKjS,EAAAA,CAAGmS,iCAAiC,CAExC,MACD,KAAKnS,EAAAA,CAAGoS,yCAAyC,CAEhD,WACIpS,EAAAA,CAAGqS,iCAAiC,CAExC,MACD,KAAKrS,EAAAA,CAAGsS,uBAAuB,CAE9B,KACF,CACA,GAAIL,MAAAA,GAAWjS,GAAGuS,oBAAoB,CAAE,CACvCP,SAAAA,CAAUhhG,GAAG,CAACtI,KACf,CACD,CACA8lC,WAAAA,EAAc,CACb,IAAI,CAAC2oB,cAAc,CAAG,IACtB,CAAA,IAAI,CAAC84C,cAAc,CAAG,IACtB,CAAA,IAAI,CAACC,qBAAqB,CAAG,IAC7B,CAAA,IAAI,CAACC,mBAAmB,CAACvvG,MAAM,CAAG,CAClC,CAAA,IAAI,CAAC0vG,kBAAkB,CAAG,IAC1B,CAAA,IAAI,CAACC,kBAAkB,CAAG,MAC1B,CAAA,IAAI,CAACH,oBAAoB,CAAG,IAC5B,CAAA,IAAI,CAACL,wBAAwB,CAAG,MAChC,CAAA,IAAI,CAACD,cAAc,CAAG,MACvB,CACA0C,eAAAA,CAAgB3jE,MAAM,CAAE54B,GAAG,CAAEsJ,GAAG,CAAEhgB,OAAO,CAAE87C,IAAI,CAAE,CAChDxM,MAAAA,CAAOovD,UAAU,CAAC,CAAA,CAAG,CAAA,CAAG1+F,OAAAA,CAAQinB,KAAK,CAAEjnB,QAAQknB,MAAM,CAAA,CACrD,MAAMu5E,EAAAA,CAAKnxD,MAAAA,CAAOmxD,EAAE,CACpBA,EAAAA,CAAGyS,eAAe,CAACzS,EAAAA,CAAG0S,gBAAgB,CAAEz8F,GAAAA,CAAAA,CACxC+pF,EAAAA,CAAGyS,eAAe,CAACzS,EAAAA,CAAG2S,gBAAgB,CAAEpzF,GAAAA,CAAAA,CACxCygF,EAAAA,CAAG4S,eAAe,CACjB,CAAA,CACA,CAAA,CACArzG,QAAQinB,KAAK,CACbjnB,OAAAA,CAAQknB,MAAM,CACd,CAAA,CACA,EACAlnB,OAAAA,CAAQinB,KAAK,CACbjnB,OAAAA,CAAQknB,MAAM,CACd40B,KACA2kD,EAAAA,CAAG6S,OAAM,EAEX,CACA5jE,OAAAA,CAAQJ,MAAM,CAAEtvC,OAAO,CAAE62D,MAAM,CAAEvmB,KAAK,CAAE,CACvC,MAAMmwD,EAAAA,CAAKnxD,OAAOmxD,EAAE,CACpB,GAAI,IAAI,CAACoQ,oBAAoB,CAAE,CAC9B,GAAIh6C,OAAQ,CACX,IAAK,IAAIz1D,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAK,IAAI,CAACyvG,oBAAoB,CAACxvG,MAAM,CAAED,EAAAA,EAAAA,CAAM,CAC7D,MAAMmyG,MAAAA,CAAS,IAAI,CAAC1C,oBAAoB,CAACzvG,GAAG,CAC5C,IAAI,CAAC6xG,eAAe,CAAC3jE,MAAAA,CAAQikE,OAAOpD,MAAM,CAAEoD,MAAAA,CAAOlD,SAAS,CAAErwG,OAAAA,CAASygG,GAAG+S,gBAAgB,EAC3F,CACD,CACA,GAAIljE,KAAAA,CAAO,CACV,IAAI,CAAC2iE,eAAe,CAAC3jE,MAAAA,CAAQ,IAAI,CAACsoB,cAAc,CAAE,IAAI,CAAC+4C,qBAAqB,CAAE3wG,OAAAA,CAASygG,EAAAA,CAAGgT,gBAAgB,EAC3G,CACD,CAAA,KAAO,CACN,MAAMC,eAAAA,CAAkB,CAAC,CAACpkE,MAAAA,CAAOqkE,kBAAkB,EAAI,IAAI,CAAChD,qBAAqB,GAAKrhE,MAAAA,CAAOqkE,kBAAkB,CAC/G,MAAMC,WAAAA,CAAc/8C,MAAAA,EAAU68C,eAAAA,EAAmBzvG,QAAAA,CAASR,QAAQ,CAClE,GAAImwG,WAAAA,CAAa,CAChBtkE,MAAAA,CAAOukE,uCAAuC,CAC7C,IAAI,CAACj8C,cAAc,CACnB,IAAI,CAAC+4C,qBAAqB,CAC1B3wG,OAAAA,CAAQinB,KAAK,CACbjnB,OAAAA,CAAQknB,MAAK,EAEd2vC,MAAAA,CAAS,MACV,CACA,GAAIA,MAAAA,EAAUvmB,KAAAA,CAAO,CACpB,IAAI,CAAC2iE,eAAe,CACnB3jE,MAAAA,CACA,IAAI,CAACsoB,cAAc,CACnB,IAAI,CAAC+4C,qBAAqB,CAC1B3wG,QACA,CAAC62D,MAAAA,CAAS4pC,EAAAA,CAAG+S,gBAAgB,CAAG,CAAA,GAAMljE,KAAAA,CAAQmwD,EAAAA,CAAGgT,gBAAgB,CAAG,CAAA,CAAA,EAEtE,CACD,CACAhT,EAAAA,CAAGyS,eAAe,CAACzS,GAAG8Q,WAAW,CAAE,IAAI,CAAC35C,cAAc,EACvD,eA3RAA,gBAAAA,CAAAA,IAAAA,CAAAA,gBAAAA,CAAiB,MACjB84C,gBAAAA,CAAAA,IAAAA,CAAAA,gBAAAA,CAAiB,MACjBC,gBAAAA,CAAAA,IAAAA,CAAAA,uBAAAA,CAAwB,IAAA,CAAA,CACxBE,gBAAAA,CAAAA,IAAAA,CAAAA,sBAAAA,CAAuB,IAAA,CAAA,CACvBD,sBAAAA,qBAAAA,CAAsB,EAAE,CAAA,CACxBG,gBAAAA,CAAAA,IAAAA,CAAAA,oBAAAA,CAAqB,IAAA,CAAA,CACrBC,sBAAAA,oBAAAA,CAAAA,MAAAA,CAAAA,CACAR,gBAAAA,CAAAA,IAAAA,CAAAA,0BAAAA,CAAAA,QACAD,gBAAAA,CAAAA,IAAAA,CAAAA,gBAAAA,CAAiB,KAAA,EAAA,CAoRlB,CAAA,CAEA,IAAIuD,iBAAAA,CAAoB,MAOvBrlE,OAAAA,EAAU,CACT,MAAMgyD,EAAAA,CAAK,IAAI,CAAC7O,YAAY,CAACtiD,MAAM,CAACmxD,EAAE,CACtC,IAAI,CAACsT,aAAa,CAACjmG,OAAO,CAAC,IAACuzB,EAASo/D,GAAGC,YAAY,CAACr/D,KAAK2yE,GAAG,CAAA,CAAA,CAC7D,IAAI,CAACC,WAAW,CAACnmG,OAAO,CAAE3C,OACzB,GAAIA,IAAAA,CAAK+oG,IAAI,CAAEzT,EAAAA,CAAG0T,UAAU,CAAChpG,IAAAA,CAAK+oG,IAAI,CAAA,CACtCzT,EAAAA,CAAGC,YAAY,CAACv1F,KAAK6oG,GAAG,EACzB,CAAA,EACD,CACAviB,aAAAA,EAAgB,CACf,IAAI,CAACsiB,aAAa,CAAC1yG,MAAM,CAAG,CAC5B,CAAA,IAAI,CAAC4yG,WAAW,CAAC5yG,MAAM,CAAG,EAC3B,CACA45C,MAAAA,CAAO02C,WAAW,CAAE,CACnB,MAAM8O,GAAK,IAAI,CAAC7O,YAAY,CAACtiD,MAAM,CAACmxD,EAAE,CACtC,MAAM5O,OAAAA,CAAU,IAAI,CAACoiB,WAAW,CAChC,IAAK,IAAI7yG,EAAAA,CAAKywF,OAAAA,CAAQxwF,MAAM,CAAG,CAAA,CAAGD,EAAAA,EAAM,CAAA,CAAGA,EAAAA,EAAAA,CAAM,CAChD,MAAM+J,KAAO0mF,OAAO,CAACzwF,EAAAA,CAAG,CACxB,MAAMD,MAAAA,CAASs/F,GAAG2T,cAAc,CAACjpG,IAAAA,CAAK+oG,IAAI,CAAE,CAAA,CAAG,GAC/C,GAAI/yG,MAAAA,GAAWs/F,EAAAA,CAAG4T,mBAAmB,EAAIlzG,MAAAA,GAAWs/F,GAAG6T,gBAAgB,CAAE,CACxE7T,EAAAA,CAAG0T,UAAU,CAAChpG,KAAK+oG,IAAI,CAAA,CACvB,IAAI,CAACH,aAAa,CAAC7xG,IAAI,CAAC,CAAE8xG,GAAAA,CAAK7oG,IAAAA,CAAK6oG,GAAG,CAAEluG,IAAAA,CAAMqF,IAAAA,CAAKrF,IAAK,CAAA,CAAA,CACzD+rF,OAAAA,CAAQ7nF,MAAM,CAAC5I,EAAAA,CAAI,CAAA,EACpB,CACD,CACA,MAAM0wF,UAAY,IAAI,CAACiiB,aAAa,CACpC,IAAK,IAAI3yG,GAAK0wF,SAAAA,CAAUzwF,MAAM,CAAG,CAAA,CAAGD,EAAAA,EAAM,CAAA,CAAGA,KAAM,CAClD,GAAI0wF,SAAS,CAAC1wF,EAAAA,CAAG,CAAC0E,IAAI,CAAG6rF,WAAAA,CAAa,CACrC8O,EAAAA,CAAGC,YAAY,CAAC5O,SAAS,CAAC1wF,EAAAA,CAAG,CAAC4yG,GAAG,CAAA,CACjCliB,UAAU9nF,MAAM,CAAC5I,EAAAA,CAAI,CAAA,EACtB,CACD,CACD,CACA+xC,MAAAA,CAAOr4B,KAAK,CAAE9a,OAAO,CAAEgP,OAAO,CAAElJ,IAAI,CAAE,CACrC,GAAI,IAAI,CAACisF,eAAe,CAAE,CACzB,IAAI,CAACC,YAAY,CAACl3E,MAAO9a,OAAAA,CAASgP,OAAAA,CAASlJ,IAAAA,EAC5C,CAAA,KAAO,CACN,IAAI,CAACyuG,SAAS,CAACz5F,KAAAA,CAAO9a,OAAAA,CAASgP,OAAAA,CAASlJ,IAAAA,EACzC,CACD,CACAksF,YAAAA,CAAal3E,KAAK,CAAE9a,OAAO,CAAEgP,OAAO,CAAElJ,IAAI,CAAE,CAC3C,MAAMwpC,OAAS,IAAI,CAACsiD,YAAY,CAACtiD,MAAM,CACvC,MAAMmxD,EAAAA,CAAKnxD,MAAAA,CAAOmxD,EAAE,CACpB,MAAM/xD,IAAAA,CAAO1uC,QAAQ0uC,IAAI,CACzBY,MAAAA,CAAOmL,UAAU,CAACz6C,OAAAA,CAAS,GAC3BsvC,MAAAA,CAAOklE,aAAa,CAAC,CAAA,CAAA,CACrBllE,MAAAA,CAAOmlE,WAAW,CAACz0G,OAAAA,CAAAA,CACnBsvC,MAAAA,CAAO2/D,cAAc,CAAC,KAAA,CAAA,CACtB3/D,MAAAA,CAAO4/D,yBAAyB,CAAC,KAAA,CAAA,CACjC5/D,MAAAA,CAAOmgE,kBAAkB,CAAC30F,KAAAA,CAAMqmC,iBAAiB,CAAA,CACjD,IAAIzqC,GAAAA,CAAMoE,KAAAA,CACV,GAAI4zB,IAAAA,CAAKk6D,YAAY,GAAKnI,EAAAA,CAAGiB,aAAa,EAAI5mF,KAAAA,CAAMqmC,iBAAiB,GAAK,CAAA,CAAG,CAC5E,MAAM4G,QAAAA,CAAWjiD,IAAAA,CAAOgV,MAAMqmC,iBAAiB,CAC/CzqC,GAAAA,CAAM,IAAIxI,UAAAA,CAAW4M,KAAAA,CAAMY,MAAM,CAAEZ,KAAAA,CAAMimC,UAAU,CAAEgH,QAAAA,EACtD,CACA04C,GAAG4O,UAAU,CACZ5O,EAAAA,CAAGgI,UAAU,CACb,CAAA,CACA/5D,KAAKi6D,iBAAiB,CACtB3oG,OAAAA,CAAQinB,KAAK,CACbjnB,OAAAA,CAAQknB,MAAM,CACd,CAAA,CACAwnB,IAAAA,CAAKg6D,SAAS,CACdh6D,IAAAA,CAAKk6D,YAAY,CACjBlyF,GAAAA,CAEDg4B,CAAAA,IAAAA,CAAKmgE,UAAU,CAAG,KACnB,CACA0F,SAAAA,CAAUz5F,KAAK,CAAE9a,OAAO,CAAEgP,OAAO,CAAElJ,IAAI,CAAE,CACxC,MAAMwpC,OAAS,IAAI,CAACsiD,YAAY,CAACtiD,MAAM,CACvC,MAAMmxD,EAAAA,CAAKnxD,MAAAA,CAAOmxD,EAAE,CACpB,MAAMx5E,KAAAA,CAAQjnB,QAAQinB,KAAK,CAC3B,MAAM8gC,QAAAA,CAAWjiD,IAAAA,CAAOgV,KAAAA,CAAMqmC,iBAAiB,CAC/C,IAAI,CAAClG,MAAM,CAAC8M,QAAAA,CAAAA,CACZ,MAAM2sD,MAAAA,CAAS1lG,OAAAA,CAAUiY,KAAAA,CACzB,MAAMC,MAAAA,CAASphB,IAAAA,CAAOmhB,MACtB,MAAM0tF,OAAAA,CAAU,IAAI,CAACZ,aAAa,CAACrxG,GAAG,EAAA,EAAO,CAAA,IAAA,CAC5C,MAAMsxG,IAAMvT,EAAAA,CAAGzlC,YAAY,EAAA,CAC3B,OAAO,CAAEg5C,GAAAA,CAAKluG,KAAMiiD,QAAS,CAC9B,CAAA,GAAA,CACA04C,EAAAA,CAAGO,UAAU,CAACP,EAAAA,CAAGmU,mBAAmB,CAAED,OAAAA,CAAQX,GAAG,CAAA,CACjDvT,GAAGQ,UAAU,CAACR,EAAAA,CAAGmU,mBAAmB,CAAE7sD,QAAAA,CAAU04C,GAAGK,WAAW,CAAA,CAC9DL,EAAAA,CAAGS,aAAa,CAACT,EAAAA,CAAGmU,mBAAmB,CAAE,CAAA,CAAG,IAAI1mG,UAAAA,CAAW4M,KAAAA,CAAMY,MAAM,CAAEZ,KAAAA,CAAMimC,UAAU,CAAEgH,QAAAA,CAAAA,CAAAA,CAC3F04C,EAAAA,CAAGO,UAAU,CAACP,EAAAA,CAAGmU,mBAAmB,CAAE,IAAA,CAAA,CACtCtlE,MAAAA,CAAOmL,UAAU,CAACz6C,OAAAA,CAAS,CAAA,CAAA,CAC3BsvC,MAAAA,CAAOklE,aAAa,CAAC,CAAA,CAAA,CACrBllE,OAAOmlE,WAAW,CAACz0G,OAAAA,CAAAA,CACnBygG,EAAAA,CAAGO,UAAU,CAACP,GAAGmU,mBAAmB,CAAED,OAAAA,CAAQX,GAAG,CAAA,CACjD1kE,MAAAA,CAAO2/D,cAAc,CAAC,KAAA,CAAA,CACtB3/D,MAAAA,CAAO4/D,yBAAyB,CAAC,KAAA,CAAA,CACjC5/D,OAAOmgE,kBAAkB,CAAC30F,KAAAA,CAAMqmC,iBAAiB,CAAA,CACjDs/C,EAAAA,CAAGoU,WAAW,CAACpU,EAAAA,CAAGqU,iBAAiB,CAAE,CAAA,CAAA,CACrCrU,EAAAA,CAAGoU,WAAW,CAACpU,EAAAA,CAAGsU,gBAAgB,CAAE,CAAA,CAAA,CACpCtU,EAAAA,CAAGoU,WAAW,CAACpU,EAAAA,CAAGuU,kBAAkB,CAAE,CAAA,CAAA,CACtC,MAAMtmE,IAAAA,CAAO1uC,OAAAA,CAAQ0uC,IAAI,CACzB+xD,EAAAA,CAAG0O,aAAa,CAAC1O,EAAAA,CAAGgI,UAAU,CAAE,CAAA,CAAG,CAAA,CAAGiM,MAAAA,CAAQztF,MAAOC,MAAAA,CAAQwnB,IAAAA,CAAKg6D,SAAS,CAAEh6D,IAAAA,CAAKk6D,YAAY,CAAE,CAAA,CAAA,CAChGnI,EAAAA,CAAGO,UAAU,CAACP,EAAAA,CAAGmU,mBAAmB,CAAE,IAAA,CAAA,CACtC,MAAMV,IAAAA,CAAOzT,EAAAA,CAAGwU,SAAS,CAACxU,GAAGyU,0BAA0B,CAAE,CAAA,CAAA,CACzD,IAAI,CAACjB,WAAW,CAAC/xG,IAAI,CAAC,CAAE8xG,GAAAA,CAAKW,OAAAA,CAAQX,GAAG,CAAEluG,IAAAA,CAAMiiD,QAAAA,CAAUmsD,IAAK,CAAA,CAAA,CAC/DzT,EAAAA,CAAG0U,KAAK,GACT,CAvGA,WAAA,CAAYvjB,YAAY,CAAE,CAF1BmiB,sBAAAA,eAAAA,CAAgB,EAAE,CAAA,CAClBE,gBAAAA,CAAAA,IAAAA,CAAAA,aAAAA,CAAc,EAAE,CAEf,CAAA,IAAI,CAACriB,YAAY,CAAGA,YACpB,CAAA,IAAI,CAACG,eAAe,CAAGH,YAAAA,CAAaG,gBAAe,CAsGrD,CAAA,CAEA,IAAIqjB,aAAAA,CAAgB,KAAA,CAQnB3mE,OAAAA,CAAQa,MAAM,CAAE,CACf,IAAI,CAAC+lE,gBAAgB,CAAG,IACxB,CAAA,IAAI,CAACC,kBAAkB,CAAG,IAAA,CAC1B,IAAI,CAACC,yBAAyB,CAACjmE,MAAAA,EAChC,CACAimE,0BAA0BjmE,MAAM,CAAE,CACjC,GAAI,IAAI,CAACkmE,eAAe,CAAE,CACzB,MAAM/U,EAAAA,CAAKnxD,MAAAA,CAAOmxD,EAAE,CACpBA,EAAAA,CAAGgQ,iBAAiB,CAAC,IAAI,CAAC+E,eAAe,CACzC,CAAA,IAAI,CAACA,eAAe,CAAG,IAAA,CACvB/U,GAAGgQ,iBAAiB,CAAC,IAAI,CAACgF,aAAa,CACvC,CAAA,IAAI,CAACA,aAAa,CAAG,KACtB,CACD,CACA/iB,UAAAA,CAAWC,KAAK,CAAE+iB,eAAe,CAAE,CAClC,MAAMC,SAAAA,CAAYhjB,KAAAA,CAAM4B,OAAO,CAAC0B,WAAW,CAAC0f,SAC5C,CAAA,IAAI,CAAC9iB,QAAQ,CAACvjD,MAAM,CAACqkE,kBAAkB,CAAGgC,SAAAA,CAAYA,SAAAA,CAAU7E,WAAW,CAAG,KAC/E,CACAnd,QAAAA,EAAW,CACV,IAAI,CAACd,QAAQ,CAACvjD,MAAM,CAACqkE,kBAAkB,CAAG,KAC3C,CACA,IAAI/f,iBAAAA,EAAoB,CACvB,OAAO,IAAI,CAAC0hB,kBACb,CACA,IAAIzhB,eAAAA,EAAkB,CACrB,OAAO,IAAI,CAACwhB,gBACb,CACAvhB,kBAAAA,CAAmBnB,KAAK,CAAEtgE,GAAG,CAAE,CAC9B,MAAMsjF,UAAYhjB,KAAAA,CAAM4B,OAAO,CAAC0B,WAAW,CAAC0f,SAAS,CACrD,GAAI,CAACA,SAAAA,CAAW,CACftjF,GAAAA,CAAItqB,GAAG,CAAC,CAAA,CAAG,CAAA,CAAA,CACX,MACD,CACAsqB,GAAAA,CAAItqB,GAAG,CAAC4tG,SAAAA,CAAUC,gBAAgB,CAAED,SAAAA,CAAUE,iBAAiB,EAChE,CACAzhB,WAAAA,CAAYzB,KAAK,CAAE0B,MAAM,CAAE,CAC1B,MAAMshB,SAAAA,CAAYhjB,KAAAA,CAAM4B,OAAO,CAAC0B,WAAW,CAAC0f,SAAS,CACrD,GAAI,CAACA,SAAAA,CAAW,CACf,OAAO,CAAEx4F,CAAAA,CAAG,CAAA,CAAGC,EAAG,CAAA,CAAG6J,KAAAA,CAAO,EAAGC,MAAAA,CAAQ,CAAE,CAC1C,CACA,OAAOyuF,SAAAA,CAAUvhB,WAAW,CAACC,MAAAA,CAC9B,CACAC,kBAAAA,CAAmBC,OAAO,CAAE3hF,QAAQ,CAAE,CACrC,MAAM08B,MAAAA,CAAS,IAAI,CAACujD,QAAQ,CAACvjD,MAAM,CACnC,IAAI,CAACgmE,kBAAkB,CAAG,IAAIQ,YAAAA,CAAavhB,OAAAA,CAASjlD,MAAAA,CAAOmxD,EAAE,CAAE,CAC9D1rF,KAAAA,CAAO,IAAA,CACPu7B,KAAAA,CAAO,IAAA,CACPikB,OAAAA,CAAS,KACTugC,sBAAAA,CAAwBliF,QAAAA,CAASkiF,sBAAsB,CACvDpgC,SAAAA,CAAW,KACZ,GACA,GAAIvxD,MAAAA,CAAO4yG,cAAc,CAAE,CAC1B,GAAI,CACH,IAAI,CAACV,gBAAgB,CAAG,IAAIU,eAAexhB,OAAAA,CAASjlD,MAAAA,CAAOmxD,EAAE,EAC9D,CAAE,MAAOxgG,GAAI,CACZ,IAAI,CAAC4yF,QAAQ,CAACO,eAAe,GAAGnzF,EAAAA,EACjC,CACD,CACAs0F,OAAAA,CAAQS,iBAAiB,CAAC,CACzB2gB,SAAAA,CAAW,IAAI,CAACL,kBAAkB,CAClCpgB,SAAAA,CAAWtiF,SAASsiF,SAAS,CAC7BC,QAAAA,CAAUviF,QAAAA,CAASuiF,QACpB,GACD,CACAS,mBAAAA,EAAsB,CACrB,IAAI,CAACyf,gBAAgB,CAAG,KACzB,CACAjgB,uBAAuBC,QAAQ,CAAE/jD,OAAO,CAAE,CACzC,GAAI,CAAC,IAAI,CAAC+jE,gBAAgB,CAAE,CAC3B,MACD,CACA,MAAM/lE,MAAAA,CAAS,IAAI,CAACujD,QAAQ,CAACvjD,MAAM,CACnC,MAAMmxD,GAAKnxD,MAAAA,CAAOmxD,EAAE,CACpB,MAAM/pF,GAAAA,CAAM,IAAI,CAAC2+F,gBAAgB,CAAC/f,cAAc,CAACD,QAAAA,CAAAA,CACjD,GAAI,CAAC3+E,GAAAA,CAAK,CACT,MACD,CACA,GAAI,CAAC,IAAI,CAAC8+F,eAAe,CAAE,CAC1B,IAAI,CAACA,eAAe,CAAG/U,EAAAA,CAAGwQ,iBAAiB,EAC3C,CAAA,IAAI,CAACwE,aAAa,CAAGhV,EAAAA,CAAGwQ,iBAAiB,GAC1C,CACA,MAAMhqF,KAAAA,CAAQouE,QAAAA,CAASpuE,KAAK,CAC5B,MAAMC,OAASmuE,QAAAA,CAASnuE,MAAM,CAC9BooB,MAAAA,CAAO4hE,cAAc,CAAC,IAAI,CAACsE,eAAe,CAAA,CAC1C/U,EAAAA,CAAG6Q,oBAAoB,CAAC7Q,GAAG8Q,WAAW,CAAE9Q,EAAAA,CAAG2Q,iBAAiB,CAAE3Q,EAAAA,CAAGgI,UAAU,CAAE/xF,GAAAA,CAAK,CAAA,CAAA,CAClF44B,MAAAA,CAAO4hE,cAAc,CAAC,IAAI,CAACuE,aAAa,CAAA,CACxChV,EAAAA,CAAG6Q,oBAAoB,CAAC7Q,GAAG8Q,WAAW,CAAE9Q,GAAG2Q,iBAAiB,CAAE3Q,GAAGgI,UAAU,CAAEn3D,OAAAA,CAAQ5C,IAAI,CAACiI,UAAU,CAAE,CAAA,CAAA,CACtG8pD,EAAAA,CAAGyS,eAAe,CAACzS,EAAAA,CAAG0S,gBAAgB,CAAE,IAAI,CAACqC,eAAe,CAAA,CAC5D/U,EAAAA,CAAGyS,eAAe,CAACzS,EAAAA,CAAG2S,gBAAgB,CAAE,IAAI,CAACqC,aAAa,EAC1DhV,EAAAA,CAAG4S,eAAe,CAAC,CAAA,CAAGnsF,MAAAA,CAAQD,KAAAA,CAAO,EAAG,CAAA,CAAG,CAAA,CAAGA,KAAAA,CAAOC,MAAAA,CAAQu5E,EAAAA,CAAG+S,gBAAgB,CAAE/S,EAAAA,CAAG6S,OAAO,CAAA,CAC5FhkE,MAAAA,CAAO4hE,cAAc,CAAC5hE,OAAOqkE,kBAAkB,EAChD,CACAne,sBAAAA,CAAuBC,SAAS,CAAEnkD,OAAO,CAAE0kE,gBAAgB,CAAE,CAC5D,GAAI,CAACvgB,SAAAA,EAAWnkD,OAAAA,CAAS,CACxB,MACD,CACA,MAAMmvD,GAAK,IAAI,CAAC5N,QAAQ,CAACvjD,MAAM,CAACmxD,EAAE,CAClCnvD,OAAAA,CAAQ5C,IAAI,CAACiI,UAAU,CAAG8+C,SAAAA,CAAUnkD,OAAO,CAC3C,GAAImkD,SAAAA,CAAU3zD,WAAW,GAAK,eAAA,CAAiB,CAC9CwP,OAAAA,CAAQ5C,IAAI,CAAC25D,SAAS,CAAG5H,EAAAA,CAAG+H,iBAAgB,CAC7C,KAAO,CACNl3D,OAAAA,CAAQ5C,IAAI,CAAC25D,SAAS,CAAG5H,EAAAA,CAAGgI,WAAU,CAEvC,OAAQuN,gBAAAA,EACP,KAAKh5E,gBAAAA,CACJsU,OAAAA,CAAQ5C,IAAI,CAACi6D,iBAAiB,CAAGlI,EAAAA,CAAGkM,IACpCr7D,CAAAA,OAAAA,CAAQ5C,IAAI,CAACk6D,YAAY,CAAGnI,EAAAA,CAAGgM,KAAK,CACpCn7D,OAAAA,CAAQ5C,IAAI,CAACg6D,SAAS,CAAGjI,EAAAA,CAAG3oF,GAAG,CAC/B,MACD,KAAKmlB,iBAAAA,CACJqU,QAAQ5C,IAAI,CAACi6D,iBAAiB,CAAGlI,EAAAA,CAAGsM,iBAAiB,CACrDz7D,OAAAA,CAAQ5C,IAAI,CAACk6D,YAAY,CAAGnI,GAAGkB,cAC/BrwD,CAAAA,OAAAA,CAAQ5C,IAAI,CAACg6D,SAAS,CAAGjI,EAAAA,CAAGoM,eAAe,CAC3C,KACF,CACAv7D,OAAAA,CAAQ5C,IAAI,CAACmgE,UAAU,CAAG,KAC3B,CACAhZ,oBAAAA,EAAuB,CACtB,MAAMtB,OAAAA,CAAU,IAAI,CAAC1B,QAAQ,CAACkD,QAAQ,CACtC,GAAI,CAACxB,OAAAA,CAAS,CACb,MACD,CACA,MAAMyB,EAAAA,CAAKzB,OAAAA,CAAQ0B,WAAW,CAC9B,IAAI,CAACof,gBAAgB,CAAG,IACxB,CAAA,IAAI,CAACC,kBAAkB,CAAG,IAC1B,CAAA,IAAI,CAACE,eAAe,CAAG,IACvB,CAAA,IAAI,CAACC,aAAa,CAAG,IAAA,CACrBlhB,OAAAA,CAAQS,iBAAiB,CAAC,CACzB2gB,SAAAA,CAAW,IAAI,CAACL,kBAAkB,CAClCpgB,UAAWc,EAAAA,CAAGd,SAAS,CACvBC,QAAAA,CAAUa,EAAAA,CAAGb,QAAO,CACrB,EACD,CACAe,wBAAAA,EAA2B,CAC1B,MAAMJ,MAAAA,CAAS,IAAI,CAACjD,QAAQ,CAC5B,GAAI,CAACiD,MAAAA,CAAOC,QAAQ,CAAE,CACrB,MACD,CACA,MAAMzmD,MAAAA,CAASwmD,OAAOxmD,MAAM,CAC5B,MAAM6mD,YAAAA,CAAeL,MAAAA,CAAOK,YAAY,CACxCC,UAAAA,CAAW,IAAA,CACV,GAAI,CAACN,MAAAA,CAAOC,QAAQ,CAAE,CACrB,MACD,CACAzmD,MAAAA,CAAOmxD,EAAE,CAACwV,gBAAgB,EAAA,CAAG7oG,IAAI,CAAC,IAAA,CACjC,GAAI,CAAC0oF,MAAAA,CAAOC,QAAQ,CAAE,CACrB,MACD,CACA,MAAMC,EAAAA,CAAKF,MAAAA,CAAOC,QAAQ,CAACE,WAAW,CACtCH,OAAOxB,kBAAkB,CAACwB,MAAAA,CAAOC,QAAQ,CAAE,CAC1CjB,uBAAwBgB,MAAAA,CAAOO,uBAAuB,CACtDnB,SAAAA,CAAWc,EAAAA,CAAGd,SAAS,CACvBC,QAAAA,CAAUa,EAAAA,CAAGb,QAAQ,CACrBmB,cAAAA,CAAgBR,MAAAA,CAAO1C,eAAc,CACtC,EACD,CAAA,CAAA,CAAG8iB,KAAK,CAAEj2G,KACTk2F,YAAAA,CAAa/rF,IAAI,CAAC,OAAA,CAASnK,EAAAA,EAC5B,CAAA,EACD,EAAG,CAAA,EACJ,CAlKA,WAAA,CAAY4yF,QAAQ,CAAE,CAJtByiB,sBAAAA,oBAAAA,CAAqB,IAAA,CAAA,CACrBD,gBAAAA,CAAAA,IAAAA,CAAAA,kBAAAA,CAAmB,IAAA,CAAA,CACnBG,gBAAAA,CAAAA,IAAAA,CAAAA,kBAAkB,IAAA,CAAA,CAClBC,gBAAAA,CAAAA,IAAAA,CAAAA,eAAAA,CAAgB,IAAA,CAEf,CAAA,IAAI,CAAC5iB,QAAQ,CAAGA,SACjB,CAiKD,CAAA,CAEA,IAAIsjB,eAAiB,CACpB39F,IAAAA,CAAMuqB,mBAAAA,CACNinD,IAAAA,CAAM,CAAA,CACN/4C,KAAAA,CAAO,EACPi5C,OAAAA,CAAS,IACV,CAAA,CACA,IAAIksB,KAAAA,CAAQ;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CACD,IAAIC,KAAAA,CAAQ;AACZ;AACA;AACA;AACA;AACA;AACA,CAAC,CACD,IAAIC,eAAAA,CAAkB,MASrBC,UAAAA,EAAa,CACZ,GAAI,CAAC,IAAI,CAACC,OAAO,CAAE,CAClB,MAAMlnE,OAAS,IAAI,CAACymB,OAAO,CAC3B,IAAI,CAACygD,OAAO,CAAG,IAAIzuB,OAAOz4C,MAAAA,CAAQy1C,qBAAAA,CAAsBE,gBAAgB,CAAC31C,MAAAA,CAAQ,CAChFprC,IAAAA,CAAM,YAAA,CACNm4D,WAAY,CAAE4nB,eAAAA,CAAiB/gD,iBAAkB,CAAA,CACjDo2C,UAAAA,CAAY88B,MACZ78B,YAAAA,CAAc88B,KACf,CAAA,CAAA,CACA,CAAA,IAAI,CAACI,SAAS,CAAGnnE,MAAAA,CAAOzmC,KAAK,CAAC6mC,OAAO,CAAC,YACvC,CACA,OAAO,IAAI,CAAC8mE,OAAO,CAEpBE,cAAAA,CAAezvF,KAAK,CAAEC,MAAM,CAAE,CAC7B,MAAMooB,MAAAA,CAAS,IAAI,CAACymB,OAAO,CAC3B,GAAI,IAAI,CAAC4gD,WAAW,GAAK,IAAI,CAACA,WAAW,CAAC1vF,KAAK,GAAKA,OAAS,IAAI,CAAC0vF,WAAW,CAACzvF,MAAM,GAAKA,MAAK,EAAI,CACjG,IAAI,CAAC0vF,UAAU,CAACnoE,OAAO,EACvB,CAAA,IAAI,CAACmoE,UAAU,CAAG,IAAA,CAClB,IAAI,CAACD,WAAW,CAACloE,OAAO,EACxB,CAAA,IAAI,CAACkoE,WAAW,CAAG,KACpB,CACA,GAAI,CAAC,IAAI,CAACA,WAAW,CAAE,CACtB,IAAI,CAACA,WAAW,CAAG/kE,OAAAA,CAAQE,mBAAmB,CAACxC,MAAAA,CAAQ,gBAAiBroB,KAAAA,CAAOC,MAAAA,CAAQooB,OAAOujB,gBAAgB,CAC9G,CAAA,IAAI,CAAC+jD,UAAU,CAAG,IAAI9gD,aAAa,CAClCM,WAAAA,CAAa,IAAI,CAACugD,WAAW,CAC7BrmE,KAAAA,CAAO,KAAA,CACPikB,OAAAA,CAAS,KACV,GACD,CACA,GAAI,CAAC,IAAI,CAACqiD,UAAU,CAACloE,IAAI,CAAC+S,WAAW,CAAE,CACtC,IAAI,CAACm1D,UAAU,CAACloE,IAAI,CAAC8gB,IAAI,CAAClgB,MAAAA,CAAQ,IAAI,CAACsnE,UAAU,EAClD,CACD,CACAz2G,IAAAA,CAAK02G,WAAW,CAAEC,SAAS,CAAE7vF,KAAK,CAAEC,MAAM,CAAE,CAC3C,IAAI,CAACwvF,cAAc,CAACzvF,KAAAA,CAAOC,MAAAA,CAAAA,CAC3B,MAAMooB,OAAS,IAAI,CAACymB,OAAO,CAC3B,MAAM0qC,GAAKnxD,MAAAA,CAAOmxD,EAAE,CACpBA,EAAAA,CAAGyS,eAAe,CAACzS,EAAAA,CAAG0S,gBAAgB,CAAE0D,WAAAA,CAAAA,CACxCpW,EAAAA,CAAGyS,eAAe,CAACzS,EAAAA,CAAG2S,gBAAgB,CAAE,IAAI,CAACwD,UAAU,CAACloE,IAAI,CAACkpB,cAAc,CAAA,CAC3E6oC,EAAAA,CAAG4S,eAAe,CAAC,CAAA,CAAG,EAAGpsF,KAAAA,CAAOC,MAAAA,CAAQ,EAAG,CAAA,CAAGD,KAAAA,CAAOC,OAAQu5E,EAAAA,CAAG+S,gBAAgB,CAAE/S,EAAAA,CAAG6S,OAAO,CAAA,CAC5FhkE,MAAAA,CAAOuf,aAAa,CAACpR,UAAAA,CAAWkC,OAAO,CAAEQ,UAAAA,CAAWO,OAAO,CAAA,CAC3DpR,MAAAA,CAAO4hE,cAAc,CAAC4F,SAAAA,CAAAA,CACtBxnE,OAAOk7C,SAAS,CAAC,IAAI,CAAC+rB,UAAU,EAAA,CAAA,CAChCjnE,MAAAA,CAAO2f,iBAAiB,EAAA,CACxB3f,MAAAA,CAAOyf,eAAe,CAACzf,MAAAA,CAAO+Z,gBAAgB,CAAA,CAC9C,IAAI,CAACotD,SAAS,CAAC3zD,QAAQ,CAAC,IAAI,CAAC6zD,WAAW,CAAA,CACxC,KAAM,CAAE7qD,EAAE,CAAEC,EAAE,CAAEC,EAAE,CAAEC,EAAE,CAAE/jC,EAAE,CAAEC,EAAE,CAAE+jC,EAAE,CAAEC,EAAE,CAAE,CAAG7c,MAAAA,CAC3CA,OAAOtoB,WAAW,CAAC,EAAG,CAAA,CAAGC,KAAAA,CAAOC,MAAAA,CAAAA,CAChCooB,MAAAA,CAAOovD,UAAU,CAAC,CAAA,CAAG,EAAGz3E,KAAAA,CAAOC,MAAAA,CAAAA,CAC/BooB,OAAOmgB,IAAI,CAAC0mD,eAAgB7mE,MAAAA,CAAOga,eAAe,EAClDha,MAAAA,CAAOtoB,WAAW,CAAC8kC,EAAAA,CAAIC,EAAAA,CAAIC,GAAIC,EAAAA,CAAAA,CAC/B3c,MAAAA,CAAOovD,UAAU,CAACx2E,GAAIC,EAAAA,CAAI+jC,EAAAA,CAAIC,IAC9B7c,MAAAA,CAAO4hE,cAAc,CAAC2F,WAAAA,EACvB,CACApoE,SAAU,CACT,IAAI,CAAC+nE,OAAO,EAAE/nE,SACd,CAAA,IAAI,CAAC+nE,OAAO,CAAG,IACf,CAAA,IAAI,CAACI,UAAU,EAAEnoE,OAAAA,EACjB,CAAA,IAAI,CAACmoE,UAAU,CAAG,IAClB,CAAA,IAAI,CAACD,WAAW,EAAEloE,OAAAA,EAClB,CAAA,IAAI,CAACkoE,WAAW,CAAG,IACnB,CAAA,IAAI,CAACF,SAAS,CAAG,KAClB,CAjEA,WAAA,CAAYnnE,MAAM,CAAE,CALpBymB,sBAAAA,SAAAA,CAAAA,QACAygD,gBAAAA,CAAAA,IAAAA,CAAAA,SAAAA,CAAU,MACVG,gBAAAA,CAAAA,IAAAA,CAAAA,aAAAA,CAAc,IAAA,CAAA,CACdC,gBAAAA,CAAAA,IAAAA,CAAAA,aAAa,IAAA,CAAA,CACbH,gBAAAA,CAAAA,IAAAA,CAAAA,YAAY,IAAA,CAEX,CAAA,IAAI,CAAC1gD,OAAO,CAAGzmB,OAChB,CAgED,EAEA,IAAIynE,gBAAAA,CAAmB,MAGtBtoE,OAAAA,CAAQgyD,EAAE,CAAE,CACX,IAAI,CAACuW,OAAO,CAAClpG,OAAO,CAAC,KAACgE,EAAU2uF,EAAAA,CAAGwW,WAAW,CAACnlG,KAAAA,CAAAA,CAC/C,CAAA,IAAI,CAACklG,OAAO,CAAG,KAChB,eALA5iE,gBAAAA,CAAAA,IAAAA,CAAAA,eAAAA,CAAAA,MAAAA,CAAAA,CACA4iE,gBAAAA,CAAAA,IAAAA,CAAAA,SAAAA,CAAU,EAAE,GAKb,CAAA,CACA,IAAIE,iBAAmB,cAAcrqB,WAAAA,CAWpCp+C,SAAU,CACT,IAAI,CAAC0oE,WAAW,CAACrpG,OAAO,CAAEgE,OAAU,IAAI,CAACw9B,MAAM,CAACmxD,EAAE,CAACwW,WAAW,CAACnlG,KAAAA,CAAAA,CAAAA,CAC/D,IAAI,CAACslG,YAAY,CAACtpG,OAAO,CAAEgE,OAAU,IAAI,CAACw9B,MAAM,CAACmxD,EAAE,CAACwW,WAAW,CAACnlG,QAChE,IAAI,CAACulG,oBAAoB,CAACvpG,OAAO,CAAEwpG,kBAAqBA,gBAAAA,CAAiB7oE,OAAO,CAAC,IAAI,CAACa,MAAM,CAACmxD,EAAE,EAC/F,CAAA,IAAI,CAAC0W,WAAW,CAAG,IACnB,CAAA,IAAI,CAACC,YAAY,CAAG,IACpB,CAAA,IAAI,CAACC,oBAAoB,CAAG,KAC7B,CACApoE,aAAc,CACb,KAAK,CAACA,WAAAA,EACN,CAAA,IAAI,CAACkoE,WAAW,CAAG,EACnB,CAAA,IAAI,CAACC,YAAY,CAAG,EAAE,CACtB,IAAI,CAACC,oBAAoB,CAAG,GAAE,CAE/B11D,cAAAA,EAAiB,CAChB,IAAI,CAACl/C,GAAG,CAAG,IAAI,CAAC6sC,MAAM,CAACioE,sBACxB,CACAnkG,QAAAA,EAAW,CACV,OAAO,IAAI,CAAC+jG,WAAW,CAACz0G,GAAG,IAAM,IAAI,CAAC4sC,MAAM,CAACmxD,EAAE,CAAC+W,WAAW,EAC5D,CACArkF,KAAAA,CAAMjvB,IAAI,CAAE,CACX,GAAI,IAAI,CAACzB,GAAG,CAAE,CACb,MAAMirC,IAAAA,CAAO,IAAI,CAACqgD,OAAO,CAAC7pF,MAC1B,MAAM4N,KAAAA,CAAQ,IAAI,CAACsB,QAAQ,EAC3B,CAAA,IAAI,CAACgkG,YAAY,CAAC1pE,IAAAA,CAAK,CAAG57B,MAC1B,IAAI,CAACw9B,MAAM,CAACmxD,EAAE,CAACgX,UAAU,CAAC,IAAI,CAACh1G,GAAG,CAACi1G,gBAAgB,CAAE5lG,KAAAA,CAAAA,CACrD,OAAO47B,IACR,CACA,OAAO,MACR,CACApnC,IAAIonC,IAAI,CAAE,CACT,GAAIA,IAAAA,GAAS,MAAK,CAAG,CACpB,IAAI,CAAC4B,MAAM,CAACmxD,EAAE,CAACkX,QAAQ,CAAC,IAAI,CAACl1G,GAAG,CAACi1G,gBAAgB,EAClD,CACD,CACApmD,UAAAA,EAAa,CACZ,IAAI,CAAC47B,oBAAoB,EAAA,CACzB,GAAI,IAAI,CAAC/qB,QAAQ,CAAE,CAClB,IAAI,CAACotB,kBAAkB,CAAG,IAAI,CAACp8D,KAAK,CAAC,UAAA,EACtC,CACD,CACAq+B,QAAAA,EAAW,CACV,GAAI,IAAI,CAAC2Q,QAAQ,CAAE,CAClB,IAAI,CAAC77D,GAAG,CAAC,IAAI,CAACipF,kBAAkB,EACjC,CACD,CACAnC,SAAU,CACT,GAAI,IAAI,CAACjrB,QAAQ,CAAE,CAClB,MAAM1/D,IAAM,IAAI,CAACA,GAAG,CACpB,MAAMg+F,GAAK,IAAI,CAACnxD,MAAM,CAACmxD,EAAE,CACzB,MAAMrsD,cAAgB,IAAI,CAAC9E,MAAM,CAAC8E,aAAa,CAC/C,MAAMgjE,aAAe,IAAI,CAACA,YAAY,CACtC,GAAIA,aAAa/1G,MAAM,CAAG,CAAA,CAAG,CAC5B,IAAI,CAAC+1G,YAAY,CAAG,EAAE,CACtB,MAAME,gBAAAA,CAAmB,IAAIP,gBAC7BO,CAAAA,gBAAAA,CAAiBN,OAAO,CAAGI,YAC3BE,CAAAA,gBAAAA,CAAiBljE,aAAa,CAAGA,aAAAA,CACjC,IAAI,CAACijE,oBAAoB,CAACn1G,IAAI,CAACo1G,kBAChC,CACA,GAAI,IAAI,CAACD,oBAAoB,CAACh2G,MAAM,CAAG,EAAG,CACzC,MAAMu2G,oBAAsB,IAAI,CAACP,oBAAoB,CAAC,CAAA,CAAE,CACxD,MAAMQ,gBAAkBD,mBAAAA,CAAoBZ,OAAO,CACnD,MAAMc,SAAAA,CAAYD,eAAe,CAACA,eAAAA,CAAgBx2G,MAAM,CAAG,CAAA,CAAE,CAC7D,MAAMywF,SAAAA,CAAY2O,GAAGsX,iBAAiB,CAACD,UAAWrX,EAAAA,CAAGuX,sBAAsB,CAAA,CAC3E,MAAMC,SAAWxX,EAAAA,CAAGyX,YAAY,CAACz1G,GAAAA,CAAI01G,gBAAgB,EACrD,GAAIrmB,SAAAA,EAAa,CAACmmB,QAAAA,CAAU,CAC3B,IAAI,CAACZ,oBAAoB,CAACx7D,KAAK,GAC/B,MAAM6xC,OAAAA,CAAU,IAAI,CAACA,OAAO,CAC5BA,QAAQrsF,MAAM,CAAG,EACjB,IAAK,IAAID,GAAK,CAAA,CAAGA,EAAAA,CAAKy2G,gBAAgBx2G,MAAM,CAAED,KAAM,CACnD,MAAM0Q,MAAQ+lG,eAAe,CAACz2G,EAAAA,CAAG,CACjC,MAAMg3G,QAAAA,CAAW3X,EAAAA,CAAGsX,iBAAiB,CAACjmG,KAAAA,CAAO2uF,GAAG4X,YAAY,CAC5D3qB,CAAAA,OAAO,CAACtsF,GAAG,CAAGg3G,QAAAA,CAAW,KACzB,IAAI,CAACjB,WAAW,CAACj1G,IAAI,CAAC4P,KAAAA,EACvB,CACA,IAAI,CAAC27E,MAAM,CAACmqB,mBAAAA,CAAoBxjE,aAAa,CAAEs5C,OAAAA,EAChD,CACA,GAAIuqB,QAAAA,CAAU,CACb,IAAI,CAACZ,oBAAoB,CAACvpG,OAAO,CAAC,gBAACwpG,EAAAA,CAClC,IAAI,CAAC7pB,MAAM,CAAC6pB,gBAAAA,CAAiBljE,aAAa,CAAE,IAAA,CAAA,CAC5CkjE,iBAAiB7oE,OAAO,CAACgyD,EAAAA,EAC1B,CAAA,CACA,CAAA,IAAI,CAAC4W,oBAAoB,CAACh2G,MAAM,CAAG,EACpC,CACD,CACA,KAAK,CAAC+rF,OAAAA,CAAQh5C,aAAAA,EACf,CACD,CA5FA,WAAA,CAAY9E,MAAM,CAAE,CACnB,KAAK,EAAA,CANNA,gBAAAA,CAAAA,IAAAA,CAAAA,SAAAA,MAAAA,CAAAA,CACA6nE,sBAAAA,aAAAA,CAAc,EAAE,EAChBC,gBAAAA,CAAAA,IAAAA,CAAAA,cAAAA,CAAe,EAAE,CAAA,CACjBC,sBAAAA,sBAAAA,CAAuB,EAAE,EACzB3pB,gBAAAA,CAAAA,IAAAA,CAAAA,SAAAA,CAAU,EAAE,CAGX,CAAA,IAAI,CAACp+C,MAAM,CAAGA,MACd,CAAA,IAAI,CAAC7sC,GAAG,CAAG6sC,MAAAA,CAAOioE,sBAAqB,CA0FzC,EAEA,IAAIe,sBAAAA,CAAyB,IAAI76D,UAAAA,CACjC,IAAI86D,oBAAsB,CAAA,CAC1B,IAAIC,sBAAwB,IAAI79F,YAAAA,CAAa,GAC7C,IAAI89F,wBAAAA,CAA2B,IAAIh9F,UAAAA,CAAW,CAAA,CAAA,CAC9C,IAAIi9F,yBAAAA,CAA4B,IAAIn2E,WAAAA,CAAY,CAAA,CAAA,CAChD,IAAIo2E,aAAAA,CAAgB,CACnBnkD,MAAO,CAAA,CACPF,KAAAA,CAAO,CAAC,CAAA,CAAG,CAAA,CAAG,EAAG,CAAA,CAAE,CACnBhkB,MAAO,CAAA,CACPikB,OAAAA,CAAS,CACV,CAAA,CACA,IAAIqkD,sCAAwC,MAACjyG,EAAAA,CAC5C,OAAQA,MAAAA,EACP,KAAK04B,cAAAA,CACJ,OAAO,CACR,CAAA,KAAKC,eAAAA,CACJ,OAAO,CACR,CAAA,QACC,OAAO,CACT,CACD,EACA,IAAIu5E,qBAAAA,CAAwB,EAAE,CAC9B,IAAIC,0BAA4B,GAAA,CAChC,IAAIC,mBAAAA,CAAsB,cAAc/vD,eAgavCE,QAAAA,EAAW,CACV,KAAK,CAACA,QAAAA,EACN,CAAA,IAAI,CAACuB,WAAW,CAAG,IAAIysD,iBAAiB,IAAI,EAC7C,CACAzoE,OAAAA,EAAU,CACT,KAAK,CAACA,OAAAA,EAAAA,CACN,IAAK,MAAMtuC,QAAQ,CAAA,GAAI,IAAI,CAAC64G,eAAe,CAAC,CAAE,CAC7C74G,IAAAA,CAAK84G,OAAO,GACb,CACA,MAAMxY,EAAAA,CAAK,IAAI,CAACA,EAAE,CAClB,GAAI,IAAI,CAACyY,QAAQ,CAAE,CAClBzY,EAAAA,CAAG0Y,uBAAuB,CAAC,IAAI,CAACD,QAAQ,EACzC,CACA,IAAI,CAACE,2BAA2B,EAChC,CAAA,IAAI,CAACC,WAAW,EAAE5qE,OAAAA,EAClB,CAAA,IAAI,CAAC4qE,WAAW,CAAG,IAAA,CACnB,IAAI,CAACtuD,MAAM,CAACuuD,mBAAmB,CAAC,mBAAoB,IAAI,CAACC,mBAAmB,CAAE,KAAA,CAAA,CAC9E,IAAI,CAACxuD,MAAM,CAACuuD,mBAAmB,CAAC,sBAAA,CAAwB,IAAI,CAACE,uBAAuB,CAAE,MACtF,CAAA,IAAI,CAACD,mBAAmB,CAAG,IAC3B,CAAA,IAAI,CAACC,uBAAuB,CAAG,IAC/B,CAAA,IAAI,CAAC/Y,EAAE,CAAG,IAAA,CACV,KAAK,CAAC31C,WAAAA,GACP,CACA8wC,iBAAiB6d,WAAW,CAAE,CAC7B,IAAI,CAACjmD,eAAe,CAAG,IAAI,CAACiB,WAAW,CAACF,OAAO,CAC/C,IAAI,CAAC3B,UAAU,CAAG,IAAIkD,aAAa,CAClC5xD,IAAAA,CAAM,mBACNgrC,cAAAA,CAAgB,IAAI,CACpBoB,KAAAA,CAAO,IAAI,CAACmkB,WAAW,CAACnkB,KAAK,CAC7BikB,OAAAA,CAAS,IAAI,CAACf,eAAe,CAC7Btd,OAAAA,CAAS,IAAI,CAACA,OAAM,CACrB,CACA,CAAA,IAAI,CAAC0c,UAAU,CAAClkB,IAAI,CAAC8hE,wBAAwB,CAAGiJ,YACjD,CAEAC,sBAAAA,CAAuB5I,WAAW,CAAE,CACnC,MAAMrQ,GAAK,IAAI,CAACA,EAAE,CAClBA,GAAGyS,eAAe,CAACzS,GAAG8Q,WAAW,CAAET,aACnC,MAAM6I,SAAAA,CAAY,IAAI,CAAClZ,EAAE,CAACyX,YAAY,CAAC,IAAI,CAACzX,EAAE,CAACmZ,UAAU,CACzD,CAAA,IAAI,CAAC/mD,gBAAgB,CAAG8mD,UAAYn9E,iBAAAA,CAAoBD,iBACzD,CACAs9E,gBAAAA,EAAmB,CAClB,MAAMC,iBAAAA,CAAoB,IAAI,CAAC/uD,MAAM,CAAC9jC,KAAK,GAAK,IAAI,CAACgkC,cAAc,CAAC9tC,CAAC,EAAI,IAAI,CAAC4tC,MAAM,CAAC7jC,MAAM,GAAK,IAAI,CAAC+jC,cAAc,CAAC7tC,CAAC,CACrH,GAAI,IAAI,CAAC28F,0BAA0B,EAAID,kBAAmB,CACzD,GAAI,IAAI,CAACC,0BAA0B,CAAE,CACpC,IAAI,CAACL,sBAAsB,CAAC,IAAI,CAACM,mBAAmB,EACrD,CACA,IAAI,CAACD,0BAA0B,CAAG,KAAA,CAClC,IAAI,CAAC9uD,cAAc,CAACljD,GAAG,CAAC,IAAI,CAACgjD,MAAM,CAAC9jC,KAAK,CAAE,IAAI,CAAC8jC,MAAM,CAAC7jC,MAAM,CAAA,CAC7D,IAAI,CAAC0rC,UAAU,CAACnkB,OAAO,EAAA,CACvB,IAAI,CAACmtD,gBAAgB,CAAC,IAAI,CAACoe,mBAAmB,EAC/C,CACD,CAEAl2D,sBAAAA,CAAuBkL,YAAY,CAAEroD,MAAM,CAAE,CAC5C,OAAO,IAAIw6F,iBACZ,CAEA7+C,sBAAsBd,WAAW,CAAE,CAClC,OAAO,IAAI+/C,gBAAAA,CAAiB//C,WAAAA,CAC7B,CACA4mC,gBAAAA,CAAiBx9B,MAAM,CAAE,CACxB,OAAO,IAAI43C,WAAAA,CAAY53C,MAAAA,CACxB,CACAk/B,uBAAAA,CAAwB3vC,aAAa,CAAE,CACtC,OAAO,IAAIwsD,kBACZ,CACA/2D,0BAA0ByqB,eAAe,CAAE,CAC1C,OAAO,IAAIysC,oBACZ,CACAnrD,oBAAoB7B,SAAS,CAAE,CAC9B,OAAO,IAAI+sD,cACZ,CACAxc,YAAAA,CAAa5jF,KAAK,CAAEqzC,SAAS,CAAEC,OAAO,CAAE,CACvC,MAAM0mD,EAAAA,CAAK,IAAI,CAACA,EAAE,CAClB,MAAMl/C,QAAUzH,SAAAA,CAAUpL,IAAI,CAAC6S,OAAO,CACtC,IAAK,IAAIngD,EAAAA,CAAK,EAAGA,EAAAA,CAAKmgD,OAAAA,CAAQlgD,MAAM,CAAED,EAAAA,EAAAA,CAAM,CAC3Cq/F,EAAAA,CAAGwZ,cAAc,CAACxZ,EAAAA,CAAGmG,cAAc,CAAEngG,KAAAA,CAAO86C,OAAO,CAACngD,EAAAA,CAAG,CAACo/F,QAAQ,EACjE,CACD,CACAlE,qBAAAA,CAAsB1sC,YAAY,CAAE,CACnC,OAAO,IAAIw3C,iBAAAA,CAAkBx3C,aAAa43C,cAAc,CACzD,CACAp0D,iBAAAA,CAAkB9B,OAAO,CAAE,CAC1B,IAAI,CAACoJ,QAAQ,CAACjpC,GAAG,CAAC6/B,OAAAA,CAAAA,CAClB,OAAO,IAAI02D,YAAAA,CAAa12D,OAAAA,CACzB,CACAirD,kBAAAA,CAAmB1J,QAAQ,CAAE,CAC5B,OAAO,IAAIuiB,aAAAA,CAAcviB,SAC1B,CACAl8B,sBAAAA,CAAuBnL,YAAY,CAAE,CACpC,OAAO,IAAI8kD,iBACZ,CACA9T,sBAAAA,CAAuB5K,YAAY,CAAE,CACpC,OAAO,IAAIkiB,iBAAAA,CAAkBliB,YAAAA,CAC9B,CACAsoB,YAAAA,EAAe,CACd,MAAMzZ,EAAAA,CAAK,IAAI,CAACA,EAAE,CAClB,IAAI/lF,SAAAA,CAAY,QAChB,GAAI+lF,EAAAA,CAAG0Z,wBAAwB,CAAE,CAChC,MAAMC,+BAAAA,CAAkC3Z,EAAAA,CAAG0Z,wBAAwB,CAAC1Z,EAAAA,CAAG2D,aAAa,CAAE3D,EAAAA,CAAG4Z,UAAU,CAAA,CACnG,MAAMC,iCAAAA,CAAoC7Z,EAAAA,CAAG0Z,wBAAwB,CAAC1Z,EAAAA,CAAG2D,aAAa,CAAE3D,EAAAA,CAAG8Z,YAAY,CAAA,CACvG,MAAMC,kCAAoC/Z,EAAAA,CAAG0Z,wBAAwB,CAAC1Z,EAAAA,CAAG4D,eAAe,CAAE5D,EAAAA,CAAG4Z,UAAU,CAAA,CACvG,MAAMI,oCAAsCha,EAAAA,CAAG0Z,wBAAwB,CAAC1Z,EAAAA,CAAG4D,eAAe,CAAE5D,EAAAA,CAAG8Z,YAAY,CAAA,CAC3G,GAAIH,iCAAmCE,iCAAAA,EAAqCE,iCAAAA,EAAqCC,oCAAqC,CACrJ,MAAMC,eAAiBN,+BAAAA,CAAgC1/F,SAAS,CAAG,CAAA,EAAK8/F,kCAAkC9/F,SAAS,CAAG,EACtH,MAAMigG,gBAAAA,CAAmBL,kCAAkC5/F,SAAS,CAAG,GAAK+/F,mCAAAA,CAAoC//F,SAAS,CAAG,CAAA,CAC5H,GAAI,CAACggG,cAAAA,CAAgB,CACpB,GAAIC,gBAAAA,CAAkB,CACrBjgG,SAAAA,CAAY,UACb,MAAO,CACNA,SAAAA,CAAY,OACb,CACD,CACD,CACD,CACA,OAAOA,SACR,CACAlY,YAAAA,EAAe,CACd,IAAK,IAAIpB,GAAK,CAAA,CAAGA,EAAAA,CAAKlD,UAAUmD,MAAM,CAAED,EAAAA,EAAAA,CAAM,CAC7C,GAAI,IAAI,CAACw5G,mBAAmB,CAACzwG,OAAO,CAACjM,SAAS,CAACkD,GAAG,CAAA,GAAM,GAAI,CAC3D,OAAO,IAAI,CAACq/F,EAAE,CAACj+F,YAAY,CAACtE,SAAS,CAACkD,GAAG,CAC1C,CACD,CACA,OAAO,IACR,CACA,IAAIm2G,qBAAAA,EAAwB,CAC3B,GAAI,CAAC,IAAI,CAACsD,sBAAsB,CAAE,CACjC,IAAI,CAACA,sBAAsB,CAAG,IAAI,CAACr4G,YAAY,CAAC,kCAAmC,0BAAA,EACpF,CACA,OAAO,IAAI,CAACq4G,sBAAsB,CAEnCC,sBAAuB,CACtB,MAAMra,GAAK,IAAI,CAACA,EAAE,CAClB,IAAI,CAACma,mBAAmB,CAAGna,EAAAA,CAAGsa,sBAAsB,EAAA,EAAM,EAAE,CAC5D,IAAI,CAACF,sBAAsB,CAAG,IAC9B,CAAA,IAAI,CAAC9oD,wBAAwB,CAAG,IAChC,CAAA,IAAI,CAACipD,mBAAmB,CAAG,IAAI,CAACx4G,YAAY,CAAC,wBAAA,CAC7C,CAAA,IAAI,CAACknD,sBAAsB,CAAG,CAAC,CAAC,IAAI,CAACsxD,mBAAmB,CACxD,IAAI,CAACC,uBAAuB,CAAG,IAAI,CAACz4G,YAAY,CAAC,8BACjD,CAAA,IAAI,CAACwvD,0BAA0B,CAAG,CAAC,CAAC,IAAI,CAACipD,uBAAuB,EAAI,CAAC,CAAC,IAAI,CAACD,mBAC3E,CAAA,IAAI,CAACE,oBAAoB,CAAG,IAAI,CAAC14G,YAAY,CAAC,2BAAA,CAC9C,CAAA,IAAI,CAAC24G,qBAAqB,CAAG,IAAI,CAAC34G,YAAY,CAAC,0BAAA,CAC/C,CAAA,IAAI,CAACinD,sBAAsB,CAAG,CAAC,CAAC,IAAI,CAAC0xD,qBACrC,CAAA,IAAI,CAACC,aAAa,CAAG,IAAI,CAAC54G,YAAY,CAAC,kBACvC,CAAA,IAAI,CAACyvD,qBAAqB,CAAG,CAAC,CAAC,IAAI,CAACmpD,aAAa,CACjD,IAAI,CAACC,oBAAoB,CAAG,IAAI,CAAC74G,YAAY,CAAC,2BAAA,CAC9C,CAAA,IAAI,CAAConD,0BAA0B,CAAG,CAAC,CAAC,IAAI,CAACyxD,oBAAoB,CAC7D,IAAI,CAACC,qBAAqB,CAAG,IAAI,CAAC94G,YAAY,CAAC,2BAC/C,CAAA,IAAI,CAAC2xD,2BAA2B,CAAG,CAAC,CAAC,IAAI,CAACmnD,qBAAqB,CAC/D,IAAI,CAACC,2BAA2B,CAAG,IAAI,CAAC/4G,YAAY,CAAC,gCAAA,CAAkC,uCAAA,CACvF,CAAA,IAAI,CAAC+jG,wBAAwB,CAAG,IAAI,CAAC/jG,YAAY,CAAC,6BAAA,CAClD,CAAA,IAAI,CAACg5G,YAAY,CAAG,IAAI,CAACh5G,YAAY,CAAC,kBAAA,CACtC,CAAA,IAAI,CAACmnD,iBAAiB,CAAG,CAAC,CAAC,IAAI,CAAC6xD,YAAY,CAC5C,IAAI,CAAChR,wBAAwB,CAAG,IAAI,CAAChoG,YAAY,CAAC,gCAClD,CAAA,IAAI,CAACw3F,uBAAuB,CAAG,IAAI,CAACx3F,YAAY,CAAC,8BAAA,CACjD,CAAA,IAAI,CAACkoG,yBAAyB,CAAG,IAAI,CAACloG,YAAY,CAAC,iCAAkC,uCAAA,CACrF,CAAA,IAAI,CAACs3F,wBAAwB,CAAG,IAAI,CAACt3F,YAAY,CAAC,+BAAA,CAAiC,uCACnF,CAAA,IAAI,CAACkpG,6BAA6B,CAAG,IAAI,CAAClpG,YAAY,CAAC,oCAAA,CACvD,CAAA,IAAI,CAAC0oG,uBAAuB,CAAG,IAAI,CAAC1oG,YAAY,CAAC,+BACjD,CAAA,IAAI,CAACy3F,wBAAwB,CAAG,IAAI,CAACz3F,YAAY,CAAC,+BAAA,CAClD,CAAA,IAAI,CAAC6oG,yBAAyB,CAAG,IAAI,CAAC7oG,YAAY,CAAC,+BACnD,CAAA,IAAI,CAACu1C,oBAAoB,CAAG,OAAO0oD,EAAAA,CAAGqP,iBAAiB,GAAK,WAC7D,CACA2L,sBAAAA,EAAyB,CACxB,MAAMhb,EAAAA,CAAK,IAAI,CAACA,EAAE,CAClB,IAAIh+F,GAAAA,CACJ,MAAMQ,UAAY,OAAOD,SAAAA,GAAc,YAAcA,SAAAA,CAAUC,SAAS,CAAG,EAC3E,CAAA,IAAI,CAACikF,YAAY,CAAG,IAAI,CAACxsE,SAAS,CAAG,IAAI,CAACw/F,YAAY,EACtD,CAAA,IAAI,CAAC7mD,cAAc,CAAGotC,EAAAA,CAAGyX,YAAY,CAACzX,EAAAA,CAAGib,gBAAgB,CACzD,CAAA,IAAI,CAACtoD,cAAc,CAAGqtC,EAAAA,CAAGyX,YAAY,CAACzX,EAAAA,CAAGkb,yBAAyB,CAClE,CAAA,IAAI,CAACtK,mBAAmB,CAAG5Q,GAAGyX,YAAY,CAACzX,GAAGmb,qBAAqB,CACnE,CAAA,IAAI,CAAClkB,WAAW,CAAG+I,GAAGyX,YAAY,CAACzX,GAAGob,uBAAuB,CAC7D,CAAA,IAAI,CAACC,mBAAmB,CAAGrb,EAAAA,CAAGyX,YAAY,CAACzX,EAAAA,CAAGsb,gCAAgC,CAC9E,CAAA,IAAI,CAACC,iBAAiB,CAAGvb,EAAAA,CAAGyX,YAAY,CAACzX,EAAAA,CAAGwb,8BAA8B,CAC1E,CAAA,IAAI,CAACjkB,mBAAmB,CAAGyI,EAAAA,CAAGyX,YAAY,CAACzX,EAAAA,CAAGyb,0BAA0B,CACxE,CAAA,IAAI,CAACpkB,qBAAqB,CAAG2I,EAAAA,CAAGyX,YAAY,CAACzX,EAAAA,CAAG0b,4BAA4B,CAC5E,CAAA,IAAI,CAAC5oD,mBAAmB,CAAGktC,GAAGyX,YAAY,CAACzX,GAAG2b,qBAAqB,CACnE,CAAA,IAAI,CAAC9oD,aAAa,CAAGmtC,EAAAA,CAAGyX,YAAY,CAACzX,GAAG4b,mBAAmB,CAAA,CAC3D55G,IAAM,IAAI,CAACy4G,oBAAoB,CAC/B,IAAI,CAACoB,gBAAgB,CAAG75G,GAAAA,CAAMg+F,EAAAA,CAAGyX,YAAY,CAACz1G,GAAAA,CAAI85G,uBAAuB,CAAA,CAAI,EAC7E,CAAA,IAAI,CAACC,cAAc,CAAG/5G,IAAMg+F,EAAAA,CAAGyX,YAAY,CAACz1G,GAAAA,CAAIg6G,qBAAqB,EAAI,EAAA,CACzE,MAAMC,kBAAoB,aAAA,CAC1B,MAAMC,kBAAoB,iBAC1B,CAAA,IAAI,CAACzkB,oBAAoB,CAAG,EAAE,IAAI,CAACskB,cAAc,GAAK,KAAA,EAASv5G,UAAUJ,KAAK,CAAC85G,kBAAiB,CAAA,EAAM,CAAC,IAAI,CAACL,gBAAgB,CAACz5G,KAAK,CAAC65G,mBACnIj6G,GAAAA,CAAM,IAAI,CAAC84G,2BAA2B,CACtC,IAAI,CAACpoD,aAAa,CAAG1wD,IAAMg+F,EAAAA,CAAGyX,YAAY,CAACz1G,GAAAA,CAAIm6G,8BAA8B,CAAA,CAAI,CAAA,CACjF,MAAMC,kBAAAA,CAAqB,CAAC,IAAI,CAACC,yBAAyB,CAC1D,IAAI,CAAC9jE,UAAU,CAAG6jE,kBAAAA,CAAqBpc,EAAAA,CAAGyX,YAAY,CAACzX,EAAAA,CAAGsc,WAAW,CAAA,CAAI,CACzE,CAAA,IAAI,CAAC/jE,UAAU,CAAGr4C,IAAAA,CAAK4T,GAAG,CAAC,IAAI,CAACykC,UAAU,CAAE,CAAA,CAC5C,CAAA,IAAI,CAAC9C,OAAO,CAAG2mE,kBAAAA,EAAsB,IAAI,CAAC/pD,mBAAmB,CAAG,IAAI,CAAC9Z,UAAU,CAAG,CAClF,CAAA,IAAI,CAACi/C,kBAAkB,CAAG,CAACh0F,SAASU,OAAO,CAC3C,GAAI,IAAI,CAAC+yF,WAAW,EAAI,CAAA,CAAG,CAC1B,IAAI,CAACO,kBAAkB,CAAG,MAC3B,CACA,IAAI,CAAC1uC,eAAe,GACrB,CACA4B,qBAAAA,EAAwB,CACvB,KAAK,CAACA,qBAAAA,EAAAA,CACN,MAAMs1C,EAAAA,CAAK,IAAI,CAACA,EAAE,CAClBA,EAAAA,CAAGuc,OAAO,CAACvc,EAAAA,CAAGwc,KAAK,EACnBxc,EAAAA,CAAGyc,SAAS,CAACzc,EAAAA,CAAGnhF,GAAG,CAAEmhF,EAAAA,CAAGrhF,IAAI,CAAA,CAC5BqhF,EAAAA,CAAG7yC,aAAa,CAAC6yC,EAAAA,CAAG0c,QAAQ,CAAA,CAC5B1c,EAAAA,CAAG2c,SAAS,CAAC,IAAA,CAAM,KAAM,IAAA,CAAM,IAAA,CAAA,CAC/B3c,GAAGr0C,UAAU,CAAC,EAAG,CAAA,CAAG,CAAA,CAAG,CAAA,CAAA,CACvBq0C,EAAAA,CAAG4c,MAAM,CAAC5c,EAAAA,CAAG6c,SAAS,CACtB,CAAA,IAAI,CAACC,QAAQ,CAAG9c,EAAAA,CAAG7gF,IAAI,CACvB6gF,EAAAA,CAAG8c,QAAQ,CAAC9c,EAAAA,CAAG7gF,IAAI,EACnB6gF,EAAAA,CAAG4c,MAAM,CAAC5c,EAAAA,CAAG+c,UAAU,CAAA,CACvB/c,EAAAA,CAAGgd,SAAS,CAAChd,EAAAA,CAAGid,MAAM,CAAA,CACtBjd,EAAAA,CAAGkd,SAAS,CAAC,IAAA,CACb,CAAA,IAAI,CAACppD,OAAO,CAAG,KAAA,CACfksC,GAAGuc,OAAO,CAACvc,EAAAA,CAAGmd,YAAY,CAC1B,CAAA,IAAI,CAACC,gBAAgB,CAAG,IAAI,CAACC,eAAe,CAAGliF,WAC/C,CAAA,IAAI,CAACmiF,eAAe,CAAG,IAAI,CAACC,cAAc,CAAG,CAC7C,CAAA,IAAI,CAACC,gBAAgB,CAAG,IAAI,CAACC,eAAe,CAAG,GAAA,CAC/Czd,GAAG0d,WAAW,CAAC1d,GAAG2d,MAAM,CAAE,EAAG,GAAA,CAC7B,CAAA,IAAI,CAACC,gBAAgB,CAAG,IAAI,CAACC,eAAe,CAAGp5E,cAC/C,CAAA,IAAI,CAACq5E,iBAAiB,CAAG,IAAI,CAACC,gBAAgB,CAAGt5E,cACjD,CAAA,IAAI,CAACu5E,iBAAiB,CAAG,IAAI,CAACC,gBAAgB,CAAGx5E,cACjD,CAAA,IAAI,CAACy5E,qBAAqB,CAAG,GAC7B,CAAA,IAAI,CAACC,oBAAoB,CAAG,IAC5Bne,EAAAA,CAAGoe,SAAS,CAACpe,EAAAA,CAAGqe,IAAI,CAAEre,EAAAA,CAAGqe,IAAI,CAAEre,EAAAA,CAAGqe,IAAI,CAAA,CACtCre,EAAAA,CAAGse,WAAW,CAAC,GAAA,CACf,CAAA,IAAI,CAAClzD,eAAe,CAAG,KACvB,CAAA,IAAI,CAACmzD,MAAM,CAAG,IAAA,CACdve,GAAGuc,OAAO,CAACvc,EAAAA,CAAGwe,wBAAwB,EACtCxe,EAAAA,CAAGuc,OAAO,CAACvc,EAAAA,CAAGye,kBAAkB,CAChC,CAAA,IAAI,CAACC,gBAAgB,CAAG,MACxB1e,EAAAA,CAAGuc,OAAO,CAACvc,EAAAA,CAAG2e,mBAAmB,CACjC,CAAA,IAAI,CAAC37C,UAAU,CAAG,CAAA,CAClBg9B,EAAAA,CAAGh9B,UAAU,CAAC,CAAA,CACd,CAAA,IAAI,CAAC47C,UAAU,CAAG,IAAInpG,MAAM,CAAA,CAAG,CAAA,CAAG,EAAG,CAAA,CAAA,CACrCuqF,EAAAA,CAAG4e,UAAU,CAAC,CAAA,CAAG,CAAA,CAAG,CAAA,CAAG,EACvB,CAAA,IAAI,CAAC37C,YAAY,CAAG,EACpB+8B,EAAAA,CAAG/8B,YAAY,CAAC,CAAA,CAAA,CAChB+8B,EAAAA,CAAG6e,IAAI,CAAC7e,EAAAA,CAAG8e,+BAA+B,CAAE9e,EAAAA,CAAG+e,MAAM,CAAA,CACrD/e,EAAAA,CAAG4c,MAAM,CAAC5c,GAAGgf,YAAY,CACzB,CAAA,IAAI,CAACvX,WAAW,CAAG,CAAA,CACnBzH,EAAAA,CAAG+T,aAAa,CAAC/T,EAAAA,CAAGif,QAAQ,EAC5Bjf,EAAAA,CAAGoU,WAAW,CAACpU,EAAAA,CAAGkf,kCAAkC,CAAElf,EAAAA,CAAGmf,IAAI,CAC7D,CAAA,IAAI,CAACC,WAAW,CAAG,KAAA,CACnBpf,EAAAA,CAAGoU,WAAW,CAACpU,EAAAA,CAAGqf,mBAAmB,CAAE,KAAA,CACvC,CAAA,IAAI,CAACC,sBAAsB,CAAG,KAAA,CAC9Btf,EAAAA,CAAGoU,WAAW,CAACpU,EAAAA,CAAGuf,8BAA8B,CAAE,KAAA,CAClD,CAAA,IAAI,CAACC,eAAe,CAAG,CAAA,CACvBxf,EAAAA,CAAGoU,WAAW,CAACpU,EAAAA,CAAGyf,gBAAgB,CAAE,CAAA,EACrC,CACAC,gBAAAA,CAAiBlvE,KAAAA,CAAQ,EAAE,CAAE,CAC5B,IAAI,CAACg3D,YAAY,CAAG,EAAE,CACtB,IAAK,IAAI7mG,GAAK,CAAA,CAAGA,EAAAA,CAAK6vC,MAAO7vC,EAAAA,EAAAA,CAAM,CAClC,IAAI,CAAC6mG,YAAY,CAAC/lG,IAAI,CAAC,CAAC,IAAA,CAAM,KAAM,IAAA,CAAK,EAC1C,CACD,CACAkpD,uBAAAA,EAA0B,CACzB,KAAK,CAACA,yBACN,CAAA,IAAI,CAACg1D,OAAO,CAAmB,IAAI52G,GACnC,CAAA,IAAI,CAAC62G,QAAQ,CAAG,IAChB,CAAA,IAAI,CAACC,iBAAiB,CAAG,IACzB,CAAA,IAAI,CAACpH,QAAQ,CAAG,IAChB,CAAA,IAAI,CAACqH,wBAAwB,CAAG,IAChC,CAAA,IAAI,CAACrY,WAAW,CAAG,EACnB,IAAI,CAACiY,gBAAgB,CAAC,IAAI,CAACrE,mBAAmB,EAC/C,CACA7sE,WAAAA,EAAc,CACb,KAAK,CAACA,WAAAA,EAAAA,CACN,IAAK,MAAM9uC,IAAAA,IAAQ,IAAI,IAAI,CAAC64G,eAAe,CAAC,CAAE,CAC7C74G,IAAAA,CAAKgnD,IAAI,GACV,CACA,IAAK,MAAMyD,MAAAA,IAAU,IAAI,CAACC,OAAO,CAAE,CAClCD,MAAAA,CAAO3b,WAAW,GACnB,CACA,IAAI,CAACub,cAAc,CAACvb,WAAW,GAC/B,IAAI,CAAC7kC,IAAI,CAAC,YAAA,EACX,CACAu3C,cAAAA,EAAiB,CAChB,IAAI,CAACm5D,oBAAoB,EAAA,CACzB,IAAI,CAACW,sBAAsB,EAAA,CAC3B,KAAK,CAAC95D,cAAAA,EAAAA,CACN,IAAK,MAAMiJ,UAAU,IAAI,CAACC,OAAO,CAAE,CAClCD,OAAOjJ,cAAc,GACtB,CACA,IAAI,CAACv3C,IAAI,CAAC,gBAAA,EACX,CACA4c,WAAAA,CAAYrpB,EAAE,CAAEof,EAAE,CAAE+D,CAAC,CAAEsP,EAAE,CAAE,CAC1B,GAAI,IAAI,CAAC07B,EAAE,GAAKnuD,EAAAA,EAAM,IAAI,CAACouD,EAAE,GAAKhvC,EAAAA,EAAM,IAAI,CAACivC,EAAE,GAAKlrC,GAAK,IAAI,CAACmrC,EAAE,GAAK77B,GAAI,CACxE,IAAI,CAACqwE,EAAE,CAACjN,QAAQ,CAAC71F,EAAAA,CAAIof,GAAI+D,CAAAA,CAAGsP,EAAAA,CAC5B,CAAA,IAAI,CAAC07B,EAAE,CAAGnuD,EACV,CAAA,IAAI,CAACouD,EAAE,CAAGhvC,EACV,CAAA,IAAI,CAACivC,EAAE,CAAGlrC,CACV,CAAA,IAAI,CAACmrC,EAAE,CAAG77B,GACX,CACD,CACAsuE,WAAW/gG,EAAE,CAAEof,EAAE,CAAE+D,CAAC,CAAEsP,EAAE,CAAE,CACzB,GAAI,IAAI,CAAClI,EAAE,GAAKvqB,EAAAA,EAAM,IAAI,CAACwqB,EAAE,GAAKpL,IAAM,IAAI,CAACmvC,EAAE,GAAKprC,CAAAA,EAAK,IAAI,CAACqrC,EAAE,GAAK/7B,EAAAA,CAAI,CACxE,IAAI,CAACqwE,EAAE,CAAC+f,OAAO,CAAC7iH,EAAAA,CAAIof,EAAAA,CAAI+D,EAAGsP,EAAAA,CAC3B,CAAA,IAAI,CAAClI,EAAE,CAAGvqB,EACV,CAAA,IAAI,CAACwqB,EAAE,CAAGpL,EACV,CAAA,IAAI,CAACmvC,EAAE,CAAGprC,CACV,CAAA,IAAI,CAACqrC,EAAE,CAAG/7B,GACX,CACD,CACA8gF,cAAAA,CAAeuP,EAAE,CAAE,CAClB,GAAI,IAAI,CAACH,iBAAiB,GAAKG,GAAI,CAClC,MAAMhgB,GAAK,IAAI,CAACA,EAAE,CAClBA,EAAAA,CAAGyS,eAAe,CAACzS,GAAG8Q,WAAW,CAAEkP,GACnC,CAAA,IAAI,CAACH,iBAAiB,CAAGG,GAC1B,CACD,CACA5M,uCAAAA,CAAwCgD,WAAW,CAAEC,SAAS,CAAE7vF,KAAK,CAAEC,MAAM,CAAE,CAC9E,IAAI,CAACmyF,WAAW,GAAK,IAAI,CAACA,WAAW,CAAG,IAAI/C,eAAAA,CAAgB,IAAI,CAAA,CAAA,CAChE,IAAI,CAAC+C,WAAW,CAACl5G,IAAI,CAAC02G,WAAAA,CAAaC,UAAW7vF,KAAAA,CAAOC,MAAAA,EACtD,CACA6vC,gBAAAA,CAAiBlf,MAAM,CAAE0kC,IAAI,CAAE1lB,MAAM,CAAEvmB,KAAK,CAAE,CAC7C,MAAMmwD,EAAAA,CAAK,IAAI,CAACA,EAAE,CAClB,GAAI5oD,MAAAA,GAAW,IAAI,CAAC+a,UAAU,CAAE,CAC/B/a,MAAAA,CAAS,KACV,CACA,GAAIgf,MAAAA,CAAQ,CACX,GAAI,CAAC0lB,IAAAA,CAAM,CACV,GAAI,CAAC1kC,MAAAA,CAAOwe,YAAY,CAAE,CACzB,OAAO,KACR,CACD,CAAA,KAAO,GAAIxe,OAAQ,CAClB,GAAI,CAACA,MAAAA,CAAOwe,YAAY,EAAI,CAACkmB,IAAAA,CAAKlmB,YAAY,CAAE,CAC/C,OAAO,KACR,CACA,GAAIxe,MAAAA,CAAOwe,YAAY,CAACxhB,OAAO,GAAK0nC,IAAAA,CAAKlmB,YAAY,CAACxhB,OAAO,CAAE,CAC9D,OAAO,KACR,CACD,CACD,CACA,GAAIvE,KAAAA,EAASuH,OAAQ,CACpB,GAAI,CAACA,MAAAA,CAAOlE,MAAM,CAAE,CACnB,GAAI,CAACkE,MAAAA,CAAOqe,YAAY,EAAI,CAACqmB,IAAAA,CAAKrmB,YAAY,CAAE,CAC/C,OAAO,KACR,CACA,GAAIre,MAAAA,CAAOqe,YAAY,CAACrhB,OAAO,GAAK0nC,IAAAA,CAAKrmB,YAAY,CAACrhB,OAAO,CAAE,CAC9D,OAAO,KACR,CACD,CACD,CACA,MAAM6rE,MAAAA,CAAS,IAAI,CAACl1D,YACpB,CAAA,IAAI,CAACA,YAAY,CAAG+wB,KACpB,IAAI,CAACokC,WAAW,EAAA,CAChB,MAAMjqG,GAAAA,CAAMmhC,MAAAA,CAASA,OAAOnJ,IAAI,CAACkpB,cAAc,CAAG,IAAI,CAAChF,UAAU,EAAElkB,IAAAA,CAAKkpB,cAAAA,CACxE,MAAM53C,GAAAA,CAAMu8D,IAAAA,CAAOA,KAAK7tC,IAAI,CAACkpB,cAAc,CAAG,IAAI,CAAChF,UAAU,EAAElkB,KAAKkpB,cAAAA,CACpE6oC,EAAAA,CAAGyS,eAAe,CAACzS,EAAAA,CAAG0S,gBAAgB,CAAEz8F,GAAAA,CAAAA,CACxC+pF,EAAAA,CAAGyS,eAAe,CAACzS,EAAAA,CAAG2S,gBAAgB,CAAEpzF,GAAAA,CAAAA,CACxC,MAAMc,EAAI+2B,MAAAA,CAASA,MAAAA,CAAO5wB,KAAK,CAAGs1D,IAAAA,CAAOA,KAAKt1D,KAAK,CAAG,IAAI,CAACA,KAAK,CAChE,MAAMmJ,EAAAA,CAAKynB,MAAAA,CAASA,MAAAA,CAAO3wB,MAAM,CAAGq1D,IAAAA,CAAOA,KAAKr1D,MAAM,CAAG,IAAI,CAACA,MAAM,CACpEu5E,EAAAA,CAAG4S,eAAe,CACjB,CAAA,CACA,CAAA,CACAvyF,EACAsP,EAAAA,CACA,CAAA,CACA,EACAtP,CAAAA,CACAsP,EAAAA,CACA,CAACymC,OAAS4pC,EAAAA,CAAG+S,gBAAgB,CAAG,CAAA,GAAMljE,KAAAA,CAAQmwD,EAAAA,CAAGgT,gBAAgB,CAAG,CAAA,EACpEhT,EAAAA,CAAG6S,OAAM,CAEV,CAAA,IAAI,CAAC9nD,YAAY,CAAGk1D,MAAAA,CACpBjgB,EAAAA,CAAGyS,eAAe,CAACzS,EAAAA,CAAG8Q,WAAW,CAAEmP,MAAAA,CAASA,OAAOhyE,IAAI,CAACkpB,cAAc,CAAG,IAAA,CAAA,CACzE,OAAO,IACR,CACAkmB,qBAAqBjmC,MAAM,CAAE0kC,IAAI,CAAE3pE,QAAAA,CAAW,EAAE,CAAE,CACjD,MAAM6tF,GAAK,IAAI,CAACA,EAAE,CAClB,MAAMpjB,eAAiBzqE,QAAAA,CAASyqE,cAAc,EAAI,CAAA,CAClD,MAAMC,aAAe1qE,QAAAA,CAAS0qE,YAAY,EAAI,CAAA,CAC9C,MAAM9lC,IAAAA,CAAO5kC,QAAAA,CAAS4kC,IAAI,EAAI,CAAA,CAC9B,MAAMtvB,EAAAA,CAAKtV,QAAAA,CAAS2qE,OAAO,EAAI,CAAA,CAC/B,MAAMp1D,EAAAA,CAAKvV,QAAAA,CAAS4qE,OAAO,EAAI,CAAA,CAC/B,MAAMC,EAAAA,CAAK7qE,QAAAA,CAAS8qE,KAAK,EAAI,CAAA,CAC7B,MAAMC,EAAAA,CAAK/qE,SAASgrE,KAAK,EAAI,EAC7B,MAAM98D,CAAAA,CAAIlO,SAASqU,KAAK,EAAItmB,IAAAA,CAAK6T,GAAG,CAAC,CAAA,CAAGqjC,MAAAA,CAAO5wB,KAAK,EAAIo2D,cAAAA,CAAAA,CACxD,MAAMjtD,EAAAA,CAAKxd,QAAAA,CAASsU,MAAM,EAAIvmB,KAAK6T,GAAG,CAAC,EAAGqjC,MAAAA,CAAO3wB,MAAM,EAAIm2D,cAAAA,CAAAA,CAC3D,MAAMujC,mBAAqBhuG,QAAAA,CAASguG,kBAAkB,EAAI,IAAI9qD,YAAAA,CAAa,CAC1E5xD,IAAAA,CAAM,mBAAA,CACNkyD,YAAave,MAAAA,CACbvH,KAAAA,CAAO,KAAA,CACPkH,IAAAA,CACApH,SAAUitC,cACX,CAAA,CAAA,CACA,MAAMqjC,MAAAA,CAAS,IAAI,CAACl1D,YAAY,CAChC,IAAI,CAACsD,eAAe,CAAC8xD,kBAAAA,CAAAA,CACrB,IAAI,CAACrxD,gBAAgB,CAACqxD,oBACtB,IAAI,CAAC1P,cAAc,CAAC0P,mBAAmBlyE,IAAI,CAACkpB,cAAc,CAAA,CAC1D,IAAI,CAACnd,UAAU,CAAC8hC,KAAM,CAAA,CAAA,CACtB,MAAMskC,WAAatkC,IAAAA,CAAKxrC,OAAO,CAAG0vD,EAAAA,CAAG2O,2BAA2B,CAAG53D,IAAAA,CAAOipD,EAAAA,CAAGgI,UAAU,CACvFhI,GAAGqgB,iBAAiB,CAACD,WAAYvjC,YAAAA,CAAcG,EAAAA,CAAIE,GAAIz1D,EAAAA,CAAIC,EAAAA,CAAIrH,EAAGsP,EAAAA,CAAAA,CAClE,GAAI,CAACxd,QAAAA,CAASguG,kBAAkB,CAAE,CACjCA,kBAAAA,CAAmBnyE,OAAO,GAC3B,CACA,IAAI,CAACqgB,eAAe,CAAC4xD,MAAAA,CAAAA,CACrB,IAAI,CAACxP,cAAc,CAACwP,MAAAA,CAASA,MAAAA,CAAOhyE,IAAI,CAACkpB,cAAc,CAAG,IAAI,CAAChF,UAAU,EAAElkB,IAAAA,CAAKkpB,gBAChF,OAAO,IACR,CACAtG,UAAAA,EAAa,CACZ,KAAK,CAACA,aACN,GAAI,IAAI,CAAC0nD,eAAe,CAAClzG,IAAI,CAAG,CAAA,CAAG,CAClC,IAAK,MAAM3F,QAAQ,CAAA,GAAI,IAAI,CAAC64G,eAAe,CAAC,CAAE,CAC7C74G,KAAK0rE,GAAG,GACT,CACD,CACA,IAAI,CAACguC,gBAAgB,EAAA,CACrB,IAAI,CAACpvD,WAAW,CAAC6G,UAAU,GAC5B,CACAE,QAAAA,EAAW,CACV,KAAK,CAACA,QAAAA,EAAAA,CACN,IAAI,CAAC/G,WAAW,CAAC+G,QAAQ,GACzB,IAAI,CAAC/G,WAAW,CAAC2iC,OAAO,EAAA,CACxB,IAAI,CAAC5iC,cAAc,CAAC08C,UAAU,GAC/B,CACAj2C,gBAAgBC,UAAU,CAAE,CAC3B,MAAMoT,GAAKpT,UAAAA,CAAW1F,YAAY,EAAI,IAAI,CAACoH,UAAU,CACrD,IAAI,CAACpH,YAAY,CAAG8Y,EAAAA,CACpB,IAAI,CAACq8C,WAAW,EAAA,CAChB,KAAM,CAAE15F,KAAK,CAAEC,MAAM,CAAE,CAAGo9C,EAAAA,CAC1B,IAAI,CAACt9C,WAAW,CAAC,CAAA,CAAG,CAAA,CAAGC,MAAOC,MAAAA,CAAAA,CAC9B,IAAI,CAACw3E,UAAU,CAAC,EAAG,CAAA,CAAGz3E,KAAAA,CAAOC,QAC7B,MAAMq9C,eAAAA,CAAkBrT,UAAAA,CAAWqT,eAAe,CAClD,IAAIw8C,UAAAA,CAAa,EACjB,GAAIx8C,eAAAA,CAAgBd,UAAU,CAAE,CAC/Bs9C,YAAcpnF,eACdg/E,CAAAA,cAAcroE,KAAK,CAAGi0B,gBAAgBhB,gBACvC,CACA,GAAIgB,eAAAA,CAAgBb,YAAY,CAAE,CACjCq9C,UAAAA,EAAcnnF,iBACd++E,CAAAA,aAAAA,CAAcpkD,OAAO,CAAGgQ,eAAAA,CAAgBf,kBAAiB,CAE1D,MAAMlM,iBAAmBgN,EAAAA,CAAGnO,aAAa,EAAE90D,MAAAA,EAAU,CAAA,CACrD,MAAM0iE,QAAAA,CAAW7S,UAAAA,CAAW6S,QAAQ,CACpC,MAAMi9C,eAAAA,CAAkB1pD,gBAAAA,CAAmB,GAAKA,gBAAAA,GAAqB,CAAA,EAAKl2B,qBAAqBkjC,EAAAA,CAAGnO,aAAa,CAAC,CAAA,CAAE,CAACxvD,MAAM,CAAA,CACzH,GAAI,CAACq6G,eAAAA,EAAmBj9C,QAAAA,EAAUj6D,MAAO,CACxCi3G,UAAAA,EAAcrnF,eAAAA,CACd,KAAM,CAAEwpC,UAAU,CAAE,CAAGa,QAAAA,CACvB,MAAMlN,OAAS8hD,aAAAA,CAAcrkD,KAAK,CAClCuC,MAAM,CAAC,CAAA,CAAE,CAAGqM,WAAWxiE,CACvBm2D,CAAAA,MAAM,CAAC,CAAA,CAAE,CAAGqM,WAAWxuD,CACvBmiD,CAAAA,MAAM,CAAC,EAAE,CAAGqM,UAAAA,CAAWllE,CAAC,CACxB64D,MAAM,CAAC,CAAA,CAAE,CAAGqM,UAAAA,CAAWnlE,EAAC,CAEzB,GAAIgjH,UAAAA,GAAe,CAAA,CAAG,CACrBpI,aAAAA,CAAcnkD,KAAK,CAAGusD,UAAAA,CACtB,IAAI,CAACj3G,KAAK,CAAC6uG,aAAAA,EACZ,CACA,GAAIqI,eAAAA,CAAiB,CACpB,MAAMvgB,EAAAA,CAAK,IAAI,CAACA,EAAE,CAClB,KAAM,CAAEz8B,aAAa,CAAE,CAAG9S,WAC1B,IAAI+vD,eAAAA,CAAkB,MACtB,IAAK,IAAI7/G,GAAK,CAAA,CAAGA,EAAAA,CAAKk2D,iBAAkBl2D,EAAAA,EAAAA,CAAM,CAC7C,MAAM8/G,SAAAA,CAAYl9C,aAAa,CAAC5iE,EAAAA,CAAG,CACnC,GAAI8/G,SAAAA,EAAWp3G,MAAO,CACrB,GAAI,CAACm3G,eAAAA,CAAiB,CACrB,IAAI,CAAC1zD,aAAa,CAAC9P,UAAAA,CAAWkC,OAAO,EACrCshE,eAAAA,CAAkB,KACnB,CACA,KAAM,CAAE/9C,UAAU,CAAE,CAAGg+C,SAAAA,CACvB,MAAM1wE,WAAa/P,eAAAA,CAAgB3iC,GAAG,CAACwmE,EAAAA,CAAGnO,aAAa,CAAC/0D,EAAAA,CAAG,CAACuF,MAAM,CAAA,CAClE,MAAMw6G,gBAAkB3wE,UAAAA,EAAY1P,MAAAA,CAAS43E,0BAA4BloE,UAAAA,EAAYvP,KAAAA,CAAQw3E,yBAA2BD,qBACxH2I,CAAAA,eAAe,CAAC,EAAE,CAAGj+C,UAAAA,CAAWxiE,CAAC,CACjCygH,eAAe,CAAC,CAAA,CAAE,CAAGj+C,UAAAA,CAAWxuD,CAAC,CACjCysG,eAAe,CAAC,CAAA,CAAE,CAAGj+C,UAAAA,CAAWllE,CAAC,CACjCmjH,eAAe,CAAC,CAAA,CAAE,CAAGj+C,UAAAA,CAAWnlE,CAAC,CACjC,GAAIyyC,UAAAA,EAAY1P,OAAQ,CACvB2/D,EAAAA,CAAG2gB,cAAc,CAAC3gB,EAAAA,CAAG4gB,KAAK,CAAEjgH,EAAAA,CAAI+/G,iBACjC,CAAA,KAAO,GAAI3wE,UAAAA,EAAYvP,KAAAA,CAAO,CAC7Bw/D,EAAAA,CAAG6gB,aAAa,CAAC7gB,EAAAA,CAAG4gB,KAAK,CAAEjgH,EAAAA,CAAI+/G,eAAAA,EAChC,MAAO,CACN1gB,EAAAA,CAAG8gB,aAAa,CAAC9gB,EAAAA,CAAG4gB,KAAK,CAAEjgH,EAAAA,CAAI+/G,iBAChC,CACD,CACD,CACD,CACA,IAAI,CAACttD,gBAAgB,CAAG,KACzB,CACA1C,cAAcD,UAAU,CAAE,CACzB,IAAI,CAACkwC,iBAAiB,EAAA,CACtB,MAAMphG,QAAU,IAAI,CAACwrD,YAAY,CACjC,MAAM8L,gBAAAA,CAAmBpG,UAAAA,CAAW8S,aAAa,CAAC3iE,MAAM,CACxD,GAAIrB,OAAAA,CAAS,CACZ64G,qBAAAA,CAAsBx3G,MAAM,CAAG,CAAA,CAC/B,MAAMo/F,EAAAA,CAAK,IAAI,CAACA,EAAE,CAClB,IAAK,IAAIr/F,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAKk2D,iBAAkBl2D,EAAAA,EAAAA,CAAM,CAC7C,MAAM2iE,QAAAA,CAAW7S,UAAAA,CAAW8S,aAAa,CAAC5iE,EAAAA,CAAG,CAC7C,GAAI,EAAE2iE,QAAAA,CAASX,KAAK,EAAIW,QAAAA,CAASr0B,OAAO,CAAD,CAAI,CAC1CmpE,qBAAAA,CAAsB32G,IAAI,CAACu+F,EAAAA,CAAG2Q,iBAAiB,CAAGhwG,EAAAA,EACnD,CACD,CACA,GAAIpB,OAAAA,GAAY,IAAI,CAAC4yD,UAAU,CAAE,CAChC,GAAI,CAAC1B,UAAAA,CAAWqT,eAAe,CAACZ,UAAU,CAAE,CAC3Ck1C,qBAAAA,CAAsB32G,IAAI,CAACu+F,EAAAA,CAAGkR,gBAAgB,EAC/C,CACA,GAAI,CAACzgD,UAAAA,CAAWqT,eAAe,CAACV,YAAY,CAAE,CAC7Cg1C,qBAAAA,CAAsB32G,IAAI,CAACu+F,EAAAA,CAAG+gB,kBAAkB,EACjD,CACD,CACA,GAAI3I,sBAAsBx3G,MAAM,CAAG,EAAG,CACrC,GAAI6vD,WAAWgU,iBAAiB,CAAE,CACjCu7B,EAAAA,CAAGghB,qBAAqB,CAAChhB,EAAAA,CAAG2S,gBAAgB,CAAEyF,qBAAAA,EAC/C,CACD,CACA,GAAIvhD,gBAAAA,EAAoBpG,UAAAA,CAAW6S,QAAQ,EAAEr0B,OAAAA,CAAS,CACrD,GAAIwhB,UAAAA,CAAWhb,OAAO,CAAG,CAAA,EAAKl2C,OAAAA,CAAQ83D,WAAW,CAAE,CAClD93D,QAAQ0vC,OAAO,CAAC,KAAM,KAAA,EACvB,CACD,CACA,GAAI1vC,OAAAA,CAAQy3D,WAAW,EAAIvG,WAAWqT,eAAe,CAACX,YAAY,CAAE,CACnE,GAAI1S,UAAAA,CAAWhb,OAAO,CAAG,CAAA,EAAKl2C,OAAAA,CAAQ83D,WAAW,CAAE,CAClD93D,QAAQ0vC,OAAO,CAAC,MAAO,IAAA,EACxB,CACD,CACA,IAAK,IAAItuC,EAAAA,CAAK,CAAA,CAAGA,GAAKk2D,gBAAAA,CAAkBl2D,EAAAA,EAAAA,CAAM,CAC7C,MAAM2iE,QAAAA,CAAW7S,WAAW8S,aAAa,CAAC5iE,GAAG,CAC7C,GAAI2iE,SAASV,UAAU,CAAE,CACxB,MAAMjN,WAAAA,CAAcp2D,OAAAA,CAAQm2D,aAAa,CAAC/0D,EAAAA,CAAG,CAC7C,GAAIg1D,WAAAA,EAAeA,WAAAA,CAAY1nB,IAAI,CAACiI,UAAU,EAAIyf,WAAAA,CAAYtlB,OAAO,CAAE,CACtE,IAAI,CAAC0jE,aAAa,CAAC,IAAI,CAACsH,mBAAmB,CAAG,GAC9C,IAAI,CAACrH,WAAW,CAACr+C,WAAAA,CAAAA,CACjB,IAAI,CAACqqC,EAAE,CAACuO,cAAc,CAAC54C,YAAY1nB,IAAI,CAAC25D,SAAS,EAClD,CACD,CACD,CACD,CACA,IAAI,CAACx0C,gBAAgB,CAAG,MACzB,CACA,IAAI8/C,kBAAAA,CAAmB1qG,KAAK,CAAE,CAC7B,GAAI,IAAI,CAAC+wG,mBAAmB,GAAK/wG,KAAAA,CAAO,CACvC,IAAI,CAAC+wG,mBAAmB,CAAG/wG,KAC3B,CAAA,IAAI,CAAC8wG,0BAA0B,CAAG,KACnC,CACD,CACA,IAAIpG,kBAAAA,EAAqB,CACxB,OAAO,IAAI,CAACqG,mBAAmB,CAEhC2G,aAAc,CACb,IAAI,CAACN,QAAQ,CAAG,IAAA,CAChB,GAAI,IAAI,CAACqB,sCAAsC,CAAE,CAChD,IAAK,IAAIC,IAAAA,CAAO,CAAA,CAAGA,KAAO,IAAI,CAAC1Z,YAAY,CAAC5mG,MAAM,CAAE,EAAEsgH,IAAAA,CAAM,CAC3D,IAAK,IAAIj0E,IAAAA,CAAO,CAAA,CAAGA,KAAO,CAAA,CAAG,EAAEA,KAAM,CACpC,IAAI,CAACu6D,YAAY,CAAC0Z,KAAK,CAACj0E,IAAAA,CAAK,CAAG,KACjC,CACD,CACD,CACA,MAAM1tC,QAAU,IAAI,CAACwrD,YAAY,EAAI,IAAI,CAACoH,UAAU,CACpD,MAAMgvD,UAAAA,CAAa5hH,QAAQ0uC,IAAI,CAC/B,GAAI,CAACkzE,UAAAA,CAAWngE,WAAW,CAAE,CAC5B,IAAI,CAAC8N,gBAAgB,CAACvvD,OAAAA,EACvB,CACA,IAAI,CAACkxG,cAAc,CAAC0Q,UAAAA,CAAWhqD,cAAc,EAC9C,CACAiqD,WAAY,CACX,IAAI,CAACzgB,iBAAiB,EAAA,CACtB,MAAMphG,OAAAA,CAAU,IAAI,CAACwrD,YAAY,CACjC,GAAIxrD,OAAAA,EAAWA,OAAAA,GAAY,IAAI,CAAC4yD,UAAU,CAAE,CAC3C,GAAI5yD,OAAAA,CAAQ6zC,QAAQ,CAAG,CAAA,EAAK7zC,OAAAA,CAAQ83D,WAAW,CAAE,CAChD93D,OAAAA,CAAQ0vC,OAAO,GAChB,CACA,MAAM0mB,YAAcp2D,OAAAA,CAAQq2D,YAAY,CACxC,GAAID,aAAeA,WAAAA,CAAY1nB,IAAI,CAACiI,UAAU,EAAIyf,YAAYtlB,OAAO,CAAE,CACtE,IAAI,CAAC0jE,aAAa,CAAC,IAAI,CAACsH,mBAAmB,CAAG,GAC9C,IAAI,CAACrH,WAAW,CAACr+C,aACjB,IAAI,CAACqqC,EAAE,CAACuO,cAAc,CAAC54C,WAAAA,CAAY1nB,IAAI,CAAC25D,SAAS,EAClD,CACD,CACD,CACA4G,eAAen4D,KAAK,CAAE,CACrB,GAAI,IAAI,CAAC+oE,WAAW,GAAK/oE,KAAAA,CAAO,CAC/B,IAAI,CAAC+oE,WAAW,CAAG/oE,KAAAA,CACnB,MAAM2pD,GAAK,IAAI,CAACA,EAAE,CAClBA,EAAAA,CAAGoU,WAAW,CAACpU,EAAAA,CAAGqf,mBAAmB,CAAEhpE,KAAAA,EACxC,CACD,CACAo4D,0BAA0Bj4D,gBAAgB,CAAE,CAC3C,GAAI,IAAI,CAAC8oE,sBAAsB,GAAK9oE,iBAAkB,CACrD,IAAI,CAAC8oE,sBAAsB,CAAG9oE,iBAC9B,MAAMwpD,EAAAA,CAAK,IAAI,CAACA,EAAE,CAClBA,EAAAA,CAAGoU,WAAW,CAACpU,EAAAA,CAAGuf,8BAA8B,CAAE/oE,gBAAAA,EACnD,CACD,CACAw4D,kBAAAA,CAAmBtmC,SAAS,CAAE,CAC7B,GAAI,IAAI,CAAC82C,eAAe,GAAK92C,SAAAA,CAAW,CACvC,IAAI,CAAC82C,eAAe,CAAG92C,UACvB,IAAI,CAACs3B,EAAE,CAACoU,WAAW,CAAC,IAAI,CAACpU,EAAE,CAACyf,gBAAgB,CAAE/2C,SAAAA,EAC/C,CACD,CACAqrC,aAAAA,CAActM,WAAW,CAAE,CAC1B,GAAI,IAAI,CAACA,WAAW,GAAKA,WAAAA,CAAa,CACrC,IAAI,CAACzH,EAAE,CAAC+T,aAAa,CAAC,IAAI,CAAC/T,EAAE,CAACif,QAAQ,CAAGxX,WAAAA,CACzC,CAAA,IAAI,CAACA,WAAW,CAAGA,YACpB,CACD,CACAuM,WAAAA,CAAYnjE,OAAO,CAAE,CACpB,MAAM5C,IAAAA,CAAO4C,OAAAA,CAAQ5C,IAAI,CACzB,MAAMozE,aAAAA,CAAgBpzE,IAAAA,CAAK25D,SAAS,CACpC,MAAM0Z,cAAgBrzE,IAAAA,CAAKiI,UAAU,CACrC,MAAMuxD,YAAc,IAAI,CAACA,WAAW,CACpC,MAAMx6D,KAAO,IAAI,CAACs0E,YAAY,CAACF,aAAAA,CAAc,CAC7C,GAAI,IAAI,CAAC7Z,YAAY,CAACC,YAAY,CAACx6D,IAAAA,CAAK,GAAKq0E,aAAAA,CAAe,CAC3D,IAAI,CAACthB,EAAE,CAACgU,WAAW,CAACqN,aAAAA,CAAeC,aAAAA,CACnC,CAAA,IAAI,CAAC9Z,YAAY,CAACC,WAAAA,CAAY,CAACx6D,IAAAA,CAAK,CAAGq0E,cACxC,CACD,CACAE,iBAAAA,CAAkB3wE,OAAO,CAAE42D,WAAW,CAAE,CACvC,MAAMx5D,IAAAA,CAAO4C,QAAQ5C,IAAI,CACzB,MAAMozE,aAAAA,CAAgBpzE,IAAAA,CAAK25D,SAAS,CACpC,MAAM0Z,cAAgBrzE,IAAAA,CAAKiI,UAAU,CACrC,MAAMjJ,IAAAA,CAAO,IAAI,CAACs0E,YAAY,CAACF,aAAAA,CAAc,CAC7C,GAAI,IAAI,CAAC7Z,YAAY,CAACC,WAAAA,CAAY,CAACx6D,KAAK,GAAKq0E,aAAAA,CAAe,CAC3D,IAAI,CAACvN,aAAa,CAACtM,WAAAA,CAAAA,CACnB,IAAI,CAACzH,EAAE,CAACgU,WAAW,CAACqN,aAAAA,CAAeC,aAAAA,CACnC,CAAA,IAAI,CAAC9Z,YAAY,CAACC,WAAAA,CAAY,CAACx6D,IAAAA,CAAK,CAAGq0E,cACxC,CACD,CACAG,qBAAqB5wE,OAAO,CAAE,CAC7B,MAAMmvD,GAAK,IAAI,CAACA,EAAE,CAClB,MAAMjsC,MAAQljB,OAAAA,CAAQ5C,IAAI,CAAC05D,mBAAmB,CAC9C,MAAMpoG,OAAAA,CAAUsxC,OAAAA,CAAQ5C,IAAI,CAAC25D,SAAS,CACtC,GAAI7zC,KAAAA,CAAQxoB,sBAAAA,CAAwB,CACnC,IAAIklC,MAAAA,CAAS5/B,OAAAA,CAAQsD,UAAU,CAC/B,GAAI,CAACtD,OAAAA,CAAQmD,QAAQ,EAAInD,OAAAA,CAAQ8E,WAAW,EAAI9E,OAAAA,CAAQoB,OAAO,CAACrxC,MAAM,GAAK,EAAG,CAC7E,GAAI6vE,MAAAA,GAAWj2C,6BAAAA,EAAiCi2C,SAAWh2C,4BAAAA,CAA8B,CACxFg2C,OAASn2C,eACV,CAAA,KAAO,GAAIm2C,MAAAA,GAAW/1C,4BAAAA,EAAgC+1C,MAAAA,GAAW91C,2BAAAA,CAA6B,CAC7F81C,MAAAA,CAASl2C,cACV,CACD,CACAylE,EAAAA,CAAG0hB,aAAa,CAACniH,OAAAA,CAASygG,EAAAA,CAAG2hB,kBAAkB,CAAE,IAAI,CAACC,QAAQ,CAACnxC,MAAAA,CAAO,EACvE,CACA,GAAI1c,MAAQvoB,sBAAAA,CAAwB,CACnCw0D,GAAG0hB,aAAa,CAACniH,QAASygG,EAAAA,CAAG6hB,kBAAkB,CAAE,IAAI,CAACD,QAAQ,CAAC/wE,QAAQwD,UAAU,CAAC,EACnF,CACA,GAAI0f,MAAQtoB,qBAAAA,CAAuB,CAClCu0D,GAAG0hB,aAAa,CAACniH,QAASygG,EAAAA,CAAG8hB,cAAc,CAAE,IAAI,CAACC,SAAS,CAAClxE,OAAAA,CAAQyD,SAAS,CAAC,EAC/E,CACA,GAAIyf,MAAQroB,qBAAAA,CAAuB,CAClCs0D,GAAG0hB,aAAa,CAACniH,QAASygG,EAAAA,CAAGgiB,cAAc,CAAE,IAAI,CAACD,SAAS,CAAClxE,OAAAA,CAAQ0D,SAAS,CAAC,EAC/E,CACA,GAAIwf,MAAQpoB,qBAAAA,CAAuB,CAClCq0D,GAAG0hB,aAAa,CAACniH,QAASygG,EAAAA,CAAGiiB,cAAc,CAAE,IAAI,CAACF,SAAS,CAAClxE,OAAAA,CAAQ6D,SAAS,CAAC,EAC/E,CACA,GAAIqf,KAAAA,CAAQnoB,2BAAAA,CAA6B,CACxCo0D,GAAG0hB,aAAa,CAACniH,QAASygG,EAAAA,CAAGkiB,oBAAoB,CAAErxE,OAAAA,CAAQ+D,cAAc,CAAGorD,EAAAA,CAAGmiB,sBAAsB,CAAGniB,EAAAA,CAAGmf,IAAI,EAChH,CACA,GAAIprD,MAAQloB,wBAAAA,CAA0B,CACrCm0D,EAAAA,CAAG0hB,aAAa,CAACniH,OAAAA,CAASygG,EAAAA,CAAGoiB,oBAAoB,CAAE,IAAI,CAACC,YAAY,CAACxxE,QAAQiE,YAAY,CAAC,EAC3F,CACA,GAAIif,MAAQjoB,sBAAAA,CAAwB,CACnC,MAAM9pC,GAAAA,CAAM,IAAI,CAAC84G,2BAA2B,CAC5C,GAAI94G,GAAAA,CAAK,CACRg+F,EAAAA,CAAGsiB,aAAa,CAAC/iH,OAAAA,CAASyC,GAAAA,CAAIugH,0BAA0B,CAAE9uG,IAAAA,CAAKI,KAAK,CAAC3T,IAAAA,CAAK4U,KAAK,CAAC+7B,OAAAA,CAAQmE,WAAW,CAAA,CAAG,CAAA,CAAG,IAAI,CAAC0d,aAAa,CAAA,EAC5H,CACD,CACD,CACA1Y,UAAAA,CAAWnJ,OAAO,CAAE42D,WAAW,CAAE,CAChC,MAAMx5D,IAAAA,CAAO4C,OAAAA,CAAQ5C,IAAI,CACzB,GAAI,CAACA,IAAAA,CAAKiI,UAAU,CAAE,CACrBjI,KAAKhhC,UAAU,CAAC,IAAI,CAAE4jC,OAAAA,EACvB,CACA,GAAI5C,IAAAA,CAAK05D,mBAAmB,CAAG,CAAA,EAAK92D,QAAQ0B,YAAY,EAAI1B,QAAQ2B,mBAAmB,CAAE,CACxF,IAAI,CAACuhE,aAAa,CAACtM,aACnB,IAAI,CAACuM,WAAW,CAACnjE,OAAAA,CAAAA,CACjB,GAAI5C,IAAAA,CAAK05D,mBAAmB,CAAE,CAC7B,IAAI,CAAC8Z,oBAAoB,CAAC5wE,QAC1B5C,CAAAA,IAAAA,CAAK05D,mBAAmB,CAAG,EAC5B,CACA,GAAI92D,QAAQ0B,YAAY,EAAI1B,QAAQ2B,mBAAmB,CAAE,CACxDvE,IAAAA,CAAKyE,MAAM,CAAC,IAAI,CAAE7B,QAClBA,CAAAA,OAAAA,CAAQ0B,YAAY,CAAG,KACvB1B,CAAAA,OAAAA,CAAQ2B,mBAAmB,CAAG,MAC/B,CACD,CAAA,KAAO,CACN,IAAI,CAACgvE,iBAAiB,CAAC3wE,OAAAA,CAAS42D,WAAAA,EACjC,CACD,CACA+a,eAAAA,CAAgB53D,aAAa,CAAE,CAC9B,IAAIliD,GAAAA,CAAM,EAAA,CACV,IAAK,IAAI/H,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAKiqD,cAAchqD,MAAM,CAAED,KAAM,CACjD+H,GAAAA,EAAOkiD,aAAa,CAACjqD,EAAAA,CAAG,CAACmiD,WAC1B,CACA,OAAOp6C,GACR,CACA+5G,0BAAAA,CAA2B73D,aAAa,CAAE,CACzC,GAAIA,aAAAA,CAAchqD,MAAM,CAAG,CAAA,CAAG,CAC7B,MAAM8H,GAAAA,CAAM,IAAI,CAAC85G,eAAe,CAAC53D,eACjC,MAAMg2C,GAAAA,CAAM,IAAI,CAAC+e,OAAO,CAACtiH,GAAG,CAACqL,KAC7B,GAAIk4F,GAAAA,CAAK,CACR,IAAI,CAAC+e,OAAO,CAACr2G,MAAM,CAACZ,GAAAA,CAAAA,CACpB,IAAI,CAACs3F,EAAE,CAAC0iB,iBAAiB,CAAC9hB,KAC3B,CACD,CACD,CAEA+hB,iBAAAA,CAAkB/3D,aAAa,CAAE,CAChC,IAAIliD,GAAAA,CAAKk4F,GAAAA,CACT,MAAMgiB,QAAAA,CAAWh4D,aAAAA,CAAchqD,MAAM,CAAG,CAAA,CACxC,GAAIgiH,QAAAA,CAAU,CACbl6G,GAAAA,CAAM,IAAI,CAAC85G,eAAe,CAAC53D,eAC3Bg2C,GAAAA,CAAM,IAAI,CAAC+e,OAAO,CAACtiH,GAAG,CAACqL,KACxB,CACA,GAAI,CAACk4F,GAAAA,CAAK,CACT,MAAMZ,EAAAA,CAAK,IAAI,CAACA,EAAE,CAClBY,IAAMZ,EAAAA,CAAG2iB,iBAAiB,GAC1B3iB,EAAAA,CAAG6iB,eAAe,CAACjiB,GAAAA,CAAAA,CACnBZ,EAAAA,CAAGO,UAAU,CAACP,GAAGe,oBAAoB,CAAE,MAEvC,IAAK,IAAIpgG,GAAK,CAAA,CAAGA,EAAAA,CAAKiqD,cAAchqD,MAAM,CAAED,KAAM,CACjD,MAAM4tD,aAAe3D,aAAa,CAACjqD,EAAAA,CAAG,CACtCq/F,GAAGO,UAAU,CAACP,GAAGa,YAAY,CAAEtyC,aAAatgB,IAAI,CAAC8xD,QAAQ,CAAA,CACzD,MAAM77C,SAAWqK,YAAAA,CAAaroD,MAAM,CAACg+C,QAAQ,CAC7C,IAAK,IAAI7R,CAAAA,CAAI,CAAA,CAAGA,CAAAA,CAAI6R,SAAStjD,MAAM,CAAEyxC,IAAK,CACzC,MAAMzkC,EAAIs2C,QAAQ,CAAC7R,EAAE,CACrB,MAAM+wD,IAAMv2D,kBAAkB,CAACj/B,EAAEnK,IAAI,CAAC,CAItC,GAAImK,CAAAA,CAAEo3C,KAAK,CAAE,CACZg7C,EAAAA,CAAG8iB,oBAAoB,CAAC1f,GAAAA,CAAKx1F,EAAEk3C,aAAa,CAAE,IAAI,CAACi+D,MAAM,CAACn1G,CAAAA,CAAEi3C,QAAQ,CAAC,CAAEj3C,EAAEm3C,MAAM,CAAEn3C,EAAES,MAAM,EAC1F,MAAO,CACN2xF,EAAAA,CAAGgjB,mBAAmB,CAAC5f,GAAAA,CAAKx1F,EAAEk3C,aAAa,CAAE,IAAI,CAACi+D,MAAM,CAACn1G,CAAAA,CAAEi3C,QAAQ,CAAC,CAAEj3C,EAAE7M,SAAS,CAAE6M,EAAEm3C,MAAM,CAAEn3C,EAAES,MAAM,EACtG,CACA2xF,EAAAA,CAAGijB,uBAAuB,CAAC7f,GAAAA,CAAAA,CAC3B,GAAI70C,aAAaroD,MAAM,CAAC4/C,UAAU,CAAE,CACnCk6C,EAAAA,CAAGkjB,mBAAmB,CAAC9f,GAAAA,CAAK,CAAA,EAC7B,CACD,CACD,CACApD,GAAG6iB,eAAe,CAAC,IAAA,CAAA,CACnB7iB,EAAAA,CAAGO,UAAU,CAACP,EAAAA,CAAGa,YAAY,CAAE,IAAA,CAAA,CAC/B,GAAI+hB,QAAAA,CAAU,CACb,IAAI,CAACjD,OAAO,CAACr4G,GAAG,CAACoB,GAAAA,CAAKk4F,GAAAA,EACvB,CAGD,CACA,OAAOA,GACR,CACAD,iBAAAA,EAAoB,CACnB,GAAI,IAAI,CAACif,QAAQ,CAAE,CAClB,IAAI,CAACA,QAAQ,CAAG,IAAA,CAChB,IAAI,CAAC5f,EAAE,CAAC6iB,eAAe,CAAC,MACzB,CACD,CACAM,WAAWpiE,WAAW,CAAE,CACvB,MAAMi/C,EAAAA,CAAK,IAAI,CAACA,EAAE,CAClB,IAAIY,IACJ,GAAI,IAAI,CAACh2C,aAAa,CAAChqD,MAAM,GAAK,CAAA,CAAG,CACpC,MAAM2tD,YAAAA,CAAe,IAAI,CAAC3D,aAAa,CAAC,CAAA,CAAE,CAC1C,GAAI,CAAC2D,aAAatgB,IAAI,CAAC2yD,GAAG,CAAE,CAC3BryC,aAAatgB,IAAI,CAAC2yD,GAAG,CAAG,IAAI,CAAC+hB,iBAAiB,CAAC,IAAI,CAAC/3D,aAAa,EAClE,CACAg2C,GAAAA,CAAMryC,YAAAA,CAAatgB,IAAI,CAAC2yD,IACzB,MAAO,CACNA,GAAAA,CAAM,IAAI,CAAC+hB,iBAAiB,CAAC,IAAI,CAAC/3D,aAAa,EAChD,CACA,GAAI,IAAI,CAACg1D,QAAQ,GAAKhf,GAAAA,CAAK,CAC1B,IAAI,CAACgf,QAAQ,CAAGhf,IAChBZ,EAAAA,CAAG6iB,eAAe,CAACjiB,GAAAA,EACpB,CACA,MAAMb,QAAAA,CAAWh/C,WAAAA,CAAcA,YAAY9S,IAAI,CAAC8xD,QAAQ,CAAG,IAAA,CAC3DC,GAAGO,UAAU,CAACP,EAAAA,CAAGe,oBAAoB,CAAEhB,QAAAA,EACxC,CACAqjB,uBAAuBpsE,IAAI,CAAEiY,UAAU,CAAElO,WAAW,CAAEmO,YAAY,CAAEC,YAAY,CAAE,CACjF,MAAM6wC,EAAAA,CAAK,IAAI,CAACA,EAAE,CAClB,GAAI/wC,UAAAA,CAAWw6B,OAAO,CAAE,CACvB,MAAMvjF,MAAAA,CAAS66C,WAAAA,CAAY9S,IAAI,CAAC+yD,QAAQ,CACxC,KAAM,CAAE4F,QAAQ,CAAEC,cAAc,CAAEC,gBAAgB,CAAEt2D,KAAK,CAAE,CAAG2e,YAAAA,CAAalhB,IAAI,CAC/E,GAAIihB,aAAe,CAAA,CAAG,CACrB,IAAK,IAAIvuD,EAAAA,CAAK,EAAGA,EAAAA,CAAK6vC,KAAAA,CAAO7vC,KAAM,CAClCq/F,EAAAA,CAAGqjB,qBAAqB,CAACrsE,IAAAA,CAAM4vD,QAAQ,CAACjmG,EAAAA,CAAG,CAAEuF,MAAAA,CAAQ2gG,cAAc,CAAClmG,EAAAA,CAAG,CAAEmmG,gBAAgB,CAACnmG,GAAG,EAC9F,CACD,MAAO,CACN,IAAK,IAAIA,EAAAA,CAAK,CAAA,CAAGA,GAAK6vC,KAAAA,CAAO7vC,EAAAA,EAAAA,CAAM,CAClCq/F,EAAAA,CAAGsjB,YAAY,CAACtsE,IAAAA,CAAM4vD,QAAQ,CAACjmG,EAAAA,CAAG,CAAEuF,MAAAA,CAAQ2gG,cAAc,CAAClmG,EAAAA,CAAG,EAC/D,CACD,CACD,CAAA,KAAO,CACN,KAAM,CAAEimG,QAAQ,CAAEC,cAAc,CAAEC,gBAAgB,CAAEt2D,KAAK,CAAE,CAAG2e,YAAAA,CAAalhB,IAAI,CAC/E,GAAIihB,YAAAA,CAAe,EAAG,CACrB,IAAK,IAAIvuD,EAAAA,CAAK,CAAA,CAAGA,GAAK6vC,KAAAA,CAAO7vC,EAAAA,EAAAA,CAAM,CAClCq/F,EAAAA,CAAGujB,mBAAmB,CAACvsE,IAAAA,CAAM6vD,cAAc,CAAClmG,EAAAA,CAAG,CAAEimG,QAAQ,CAACjmG,GAAG,CAAEmmG,gBAAgB,CAACnmG,EAAAA,CAAG,EACpF,CACD,CAAA,KAAO,CACN,IAAK,IAAIA,EAAAA,CAAK,EAAGA,EAAAA,CAAK6vC,KAAAA,CAAO7vC,KAAM,CAClCq/F,EAAAA,CAAGwjB,UAAU,CAACxsE,KAAM6vD,cAAc,CAAClmG,GAAG,CAAEimG,QAAQ,CAACjmG,EAAAA,CAAG,EACrD,CACD,CACD,CACD,CACAquD,IAAAA,CAAKC,UAAU,CAAElO,WAAW,CAAEmO,YAAY,CAAEC,YAAY,CAAE7pD,KAAAA,CAAQ,IAAI,CAAE8pD,IAAAA,CAAO,IAAI,CAAE,CACpF,MAAMjF,MAAAA,CAAS,IAAI,CAACA,MAAM,CAC1B,GAAIA,MAAAA,CAAQ,CACX,IAAI,CAACs5D,cAAc,GACnB,GAAI,IAAI,CAAC54D,WAAW,CAAE,CACrB,MAAMm1C,GAAK,IAAI,CAACA,EAAE,CAClB,GAAI16F,KAAAA,CAAO,CACV,IAAI,CAAC69G,UAAU,CAACpiE,WAAAA,EACjB,CACA,IAAI0mD,WAAAA,CAAc,CAAA,CAClB,MAAM7tB,QAAAA,CAAWzvB,OAAOlc,IAAI,CAAC2rC,QAAQ,CACrC,IAAK,IAAIj5E,EAAAA,CAAK,CAAA,CAAG6X,IAAMohE,QAAAA,CAASh5E,MAAM,CAAED,EAAAA,CAAK6X,GAAAA,CAAK7X,KAAM,CACvD,MAAMqgC,QAAU44C,QAAQ,CAACj5E,EAAAA,CAAG,CAC5B,IAAI+iH,YAAAA,CAAe1iF,OAAAA,CAAQkM,OAAO,CAAC1kC,KAAK,CACxC,GAAI,CAACk7G,aAAc,CAClB,MAAMh2E,YAAc1M,OAAAA,CAAQkM,OAAO,CAACzpC,IAAI,CACxC,GAAIiqC,WAAAA,GAAgB,gBAAA,CAAkB,CACrCg2E,YAAAA,CAAe1qE,kBAAkB,IAAI,CAAE,SACxC,CACA,GAAItL,cAAgB,gBAAA,CAAkB,CACrCg2E,aAAe1qE,iBAAAA,CAAkB,IAAI,CAAE,MAAA,EACxC,CACA,GAAI,CAAC0qE,YAAAA,CAAc,CAClBA,YAAAA,CAAe1qE,iBAAAA,CAAkB,IAAI,CAAE,QACxC,CACD,CACA,GAAI0qE,YAAAA,YAAwBvyE,OAAAA,CAAS,CACpC,MAAMN,OAAAA,CAAU6yE,aAChB,IAAI,CAAC1pE,UAAU,CAACnJ,OAAAA,CAAS42D,aACzB,GAAIzmE,OAAAA,CAAQiM,IAAI,GAAKw6D,WAAAA,CAAa,CACjCzH,EAAAA,CAAG2jB,SAAS,CAAC3iF,OAAAA,CAAQqgE,UAAU,CAAEoG,WAAAA,CACjCzmE,CAAAA,OAAAA,CAAQiM,IAAI,CAAGw6D,YAChB,CACAA,cACD,CAAA,KAAO,CACNzmE,QAAQmU,KAAK,CAACv0C,MAAM,CAAG,CAAA,CACvB,MAAMgjH,WAAAA,CAAcF,aAAa9iH,MAAM,CACvC,IAAK,IAAIyxC,CAAAA,CAAI,EAAGA,CAAAA,CAAIuxE,WAAAA,CAAavxE,IAAK,CACrC,MAAMxB,QAAU6yE,YAAY,CAACrxE,EAAE,CAC/B,IAAI,CAAC2H,UAAU,CAACnJ,OAAAA,CAAS42D,WAAAA,CACzBzmE,CAAAA,OAAAA,CAAQmU,KAAK,CAAC9C,CAAAA,CAAE,CAAGo1D,WACnBA,CAAAA,WAAAA,GACD,CACAzH,EAAAA,CAAG6jB,UAAU,CAAC7iF,OAAAA,CAAQqgE,UAAU,CAAErgE,OAAAA,CAAQmU,KAAK,EAChD,CACD,CACA,MAAM4zB,QAAAA,CAAW5e,OAAOlc,IAAI,CAAC86B,QAAQ,CACrC,IAAK,IAAIpoE,EAAAA,CAAK,CAAA,CAAG6X,GAAAA,CAAMuwD,QAAAA,CAASnoE,MAAM,CAAED,EAAAA,CAAK6X,IAAK7X,EAAAA,EAAAA,CAAM,CACvD,MAAMgiD,OAAAA,CAAUomB,QAAQ,CAACpoE,EAAAA,CAAG,CAC5B,MAAMusC,OAAAA,CAAUyV,QAAQzV,OAAO,CAC/B,MAAM42E,cAAAA,CAAiBnhE,OAAAA,CAAQvjD,OAAO,CACtC,MAAM2kH,eAAiB72E,OAAAA,CAAQoV,aAAa,CAACljD,OAAO,CACpD,GAAI0kH,cAAAA,CAAe9hE,QAAQ,GAAK+hE,cAAAA,CAAe/hE,QAAQ,EAAI8hE,cAAAA,CAAezkH,QAAQ,GAAK0kH,cAAAA,CAAe1kH,QAAQ,CAAE,CAC/GykH,eAAe9hE,QAAQ,CAAG+hE,eAAe/hE,QACzC8hE,CAAAA,cAAAA,CAAezkH,QAAQ,CAAG0kH,cAAAA,CAAe1kH,QAAQ,CACjD,MAAMmJ,MAAQ0kC,OAAAA,CAAQ1kC,KAAK,CAC3B,GAAIA,KAAAA,GAAU,MAAQA,KAAAA,GAAU,OAAQ,CACvC,IAAI,CAACw7G,cAAc,CAACrhE,QAAQkC,QAAQ,CAAC,CAAClC,OAAAA,CAASn6C,KAAAA,EAChD,CAED,CACD,CACA,MAAMs3G,wBAAAA,CAA2B,IAAI,CAACA,wBAAwB,CAC9D,GAAIA,wBAAAA,CAA0B,CAC7B,IAAK,IAAIn/G,EAAAA,CAAK,EAAGA,EAAAA,CAAKm/G,wBAAAA,CAAyBl/G,MAAM,CAAED,EAAAA,EAAAA,CAAM,CAC5Dq/F,EAAAA,CAAGwZ,cAAc,CAACxZ,EAAAA,CAAGikB,yBAAyB,CAAEtjH,EAAAA,CAAIm/G,wBAAwB,CAACn/G,EAAAA,CAAG,CAACstC,IAAI,CAAC8xD,QAAQ,EAC/F,CACAC,GAAGkkB,sBAAsB,CAAClkB,GAAGmkB,MAAM,EACpC,CACA,MAAMntE,KAAO,IAAI,CAACotE,WAAW,CAACn1D,UAAAA,CAAWl3C,IAAI,CAAC,CAC9C,MAAMy4B,KAAAA,CAAQye,UAAAA,CAAWze,KAAK,CAC9B,GAAI2e,aAAc,CACjB,GAAI,IAAI,CAAC4rD,YAAY,CAAE,CACtB,MAAM9sE,IAAAA,CAAOkhB,YAAAA,CAAalhB,IAAI,CAC9B,GAAIghB,WAAWw6B,OAAO,CAAE,CACvB,MAAMvjF,MAAAA,CAAS66C,YAAY9S,IAAI,CAAC+yD,QAAQ,CACxC,GAAI9xC,aAAe,CAAA,CAAG,CACrB,IAAI,CAAC6rD,YAAY,CAACsJ,+BAA+B,CAACrtE,IAAAA,CAAM/I,IAAAA,CAAK24D,QAAQ,CAAE,CAAA,CAAG1gG,MAAAA,CAAQ+nC,IAAAA,CAAK44D,cAAc,CAAE,CAAA,CAAG54D,KAAK64D,gBAAgB,CAAE,EAAG33C,YAAAA,CAAa3e,KAAK,EACvJ,CAAA,KAAO,CACN,IAAI,CAACuqE,YAAY,CAACuJ,sBAAsB,CAACttE,IAAAA,CAAM/I,IAAAA,CAAK24D,QAAQ,CAAE,CAAA,CAAG1gG,OAAQ+nC,IAAAA,CAAK44D,cAAc,CAAE,CAAA,CAAG13C,YAAAA,CAAa3e,KAAK,EACpH,CACD,CAAA,KAAO,CACN,GAAI0e,YAAAA,CAAe,CAAA,CAAG,CACrB,IAAI,CAAC6rD,YAAY,CAACwJ,6BAA6B,CAACvtE,IAAAA,CAAM/I,IAAAA,CAAK44D,cAAc,CAAE,CAAA,CAAG54D,KAAK24D,QAAQ,CAAE,EAAG34D,IAAAA,CAAK64D,gBAAgB,CAAE,CAAA,CAAG33C,aAAa3e,KAAK,EAC7I,MAAO,CACN,IAAI,CAACuqE,YAAY,CAACyJ,oBAAoB,CAACxtE,IAAAA,CAAM/I,KAAK44D,cAAc,CAAE,EAAG54D,IAAAA,CAAK24D,QAAQ,CAAE,CAAA,CAAGz3C,YAAAA,CAAa3e,KAAK,EAC1G,CACD,CACD,CAAA,KAAO,CACN,IAAI,CAAC4yE,sBAAsB,CAACpsE,IAAAA,CAAMiY,UAAAA,CAAYlO,WAAAA,CAAamO,aAAcC,YAAAA,EAC1E,CACD,MAAO,CACN,GAAIF,WAAWw6B,OAAO,CAAE,CACvB,MAAMvjF,OAAS66C,WAAAA,CAAY9S,IAAI,CAAC+yD,QAAQ,CACxC,MAAMzyF,OAAAA,CAAU0gD,UAAAA,CAAWs6B,IAAI,CAAGxoC,WAAAA,CAAYe,aAAa,CAC3D,GAAIoN,aAAe,CAAA,CAAG,CACrB8wC,GAAGqjB,qBAAqB,CAACrsE,IAAAA,CAAMxG,KAAAA,CAAOtqC,OAAQqI,OAAAA,CAAS2gD,YAAAA,EACxD,MAAO,CACN8wC,EAAAA,CAAGsjB,YAAY,CAACtsE,IAAAA,CAAMxG,MAAOtqC,MAAAA,CAAQqI,OAAAA,EACtC,CACD,CAAA,KAAO,CACN,MAAMk2G,MAAAA,CAASx1D,UAAAA,CAAWs6B,IAAI,CAC9B,GAAIr6B,YAAAA,CAAe,CAAA,CAAG,CACrB8wC,EAAAA,CAAGujB,mBAAmB,CAACvsE,IAAAA,CAAMytE,MAAAA,CAAQj0E,MAAO0e,YAAAA,EAC7C,CAAA,KAAO,CACN8wC,EAAAA,CAAGwjB,UAAU,CAACxsE,IAAAA,CAAMytE,MAAAA,CAAQj0E,OAC7B,CACD,CACD,CACA,GAAIsvE,wBAAAA,CAA0B,CAC7B9f,EAAAA,CAAG0kB,oBAAoB,EAAA,CACvB,IAAK,IAAI/jH,EAAAA,CAAK,CAAA,CAAGA,GAAKm/G,wBAAAA,CAAyBl/G,MAAM,CAAED,EAAAA,EAAAA,CAAM,CAC5Dq/F,EAAAA,CAAGwZ,cAAc,CAACxZ,EAAAA,CAAGikB,yBAAyB,CAAEtjH,EAAAA,CAAI,IAAA,EACrD,CACD,CACA,IAAI,CAACo0D,kBAAkB,GACxB,CACD,CACA,GAAI3F,IAAAA,CAAM,CACT,IAAI,CAACZ,iBAAiB,GACvB,CACD,CACAnlD,MAAM8I,QAAQ,CAAE,CACf,MAAMw3E,cAAAA,CAAiB,IAAI,CAAC/1B,mBAAmB,CAC/CzhD,QAAAA,CAAWA,UAAYw3E,cAAAA,CACvB,MAAM51B,MAAQ5hD,QAAAA,CAAS4hD,KAAK,EAAI41B,cAAAA,CAAe51B,KAAK,CACpD,GAAIA,KAAAA,GAAU,EAAG,CAChB,MAAMisC,GAAK,IAAI,CAACA,EAAE,CAClB,GAAIjsC,KAAAA,CAAQ96B,eAAAA,CAAiB,CAC5B,MAAMm9B,MAAAA,CAASjkD,SAAS0hD,KAAK,EAAI81B,eAAe91B,KAAK,CACrD,MAAM5zD,CAAAA,CAAIm2D,MAAM,CAAC,CAAA,CAAE,CACnB,MAAMniD,CAAAA,CAAImiD,MAAM,CAAC,CAAA,CAAE,CACnB,MAAM74D,CAAAA,CAAI64D,MAAM,CAAC,CAAA,CAAE,CACnB,MAAM94D,CAAAA,CAAI84D,MAAM,CAAC,CAAA,CAAE,CACnB,MAAMp2D,EAAAA,CAAK,IAAI,CAAC4+G,UAAU,CAC1B,GAAI3+G,CAAAA,GAAMD,EAAAA,CAAGC,CAAC,EAAIgU,CAAAA,GAAMjU,EAAAA,CAAGiU,CAAC,EAAI1W,CAAAA,GAAMyC,GAAGzC,CAAC,EAAID,IAAM0C,EAAAA,CAAG1C,CAAC,CAAE,CACzD,IAAI,CAAC0iG,EAAE,CAAC4e,UAAU,CAAC3+G,CAAAA,CAAGgU,CAAAA,CAAG1W,CAAAA,CAAGD,GAC5B,IAAI,CAACshH,UAAU,CAACt3G,GAAG,CAACrH,CAAAA,CAAGgU,CAAAA,CAAG1W,EAAGD,CAAAA,EAC9B,CACA,IAAI,CAACwvD,aAAa,CAAC9P,UAAAA,CAAWkC,OAAO,EACtC,CACA,GAAI6U,KAAAA,CAAQ76B,eAAAA,CAAiB,CAC5B,MAAM2W,KAAAA,CAAQ19B,SAAS09B,KAAK,EAAI85C,eAAe95C,KAAK,CACpD,GAAIA,KAAAA,GAAU,IAAI,CAACmzB,UAAU,CAAE,CAC9B,IAAI,CAACg9B,EAAE,CAACh9B,UAAU,CAACnzB,KAAAA,CACnB,CAAA,IAAI,CAACmzB,UAAU,CAAGnzB,MACnB,CACA,IAAI,CAAC6d,aAAa,CAAChO,WAAWQ,UAAU,EACzC,CACA,GAAI6T,KAAAA,CAAQ56B,kBAAmB,CAC9B,MAAM26B,OAAAA,CAAU3hD,QAAAA,CAAS2hD,OAAO,EAAI61B,cAAAA,CAAe71B,OAAO,CAC1D,GAAIA,UAAY,IAAI,CAACmP,YAAY,CAAE,CAClC,IAAI,CAAC+8B,EAAE,CAAC/8B,YAAY,CAACnP,QACrB,CAAA,IAAI,CAACmP,YAAY,CAAGnP,QACrB,CACAksC,GAAGse,WAAW,CAAC,IACf,CAAA,IAAI,CAACJ,qBAAqB,CAAG,GAC7B,CAAA,IAAI,CAACC,oBAAoB,CAAG,IAC7B,CACAne,EAAAA,CAAG32F,KAAK,CAAC,IAAI,CAACs7G,WAAW,CAAC5wD,KAAAA,CAAM,EACjC,CACD,CACA0nB,MAAAA,EAAS,CACR,IAAI,CAACukB,EAAE,CAAC0U,KAAK,GACd,CACAkQ,UAAAA,CAAW1nH,EAAE,CAAEof,EAAE,CAAE+D,CAAC,CAAEsP,EAAE,CAAEupB,MAAM,CAAE,CACjC,MAAM8mD,EAAAA,CAAK,IAAI,CAACA,EAAE,CAClBA,GAAG4kB,UAAU,CAAC1nH,GAAIof,EAAAA,CAAI+D,CAAAA,CAAGsP,GAAIqwE,EAAAA,CAAG4I,IAAI,CAAE5I,EAAAA,CAAGiB,aAAa,CAAE/nD,MAAAA,EACzD,CACA2rE,eAAAA,CAAgB9wD,KAAK,CAAE+wD,WAAW,CAAE,CACnC,MAAM9kB,EAAAA,CAAK,IAAI,CAACA,EAAE,CAClB,MAAMyT,IAAAA,CAAOzT,GAAGwU,SAAS,CAACxU,EAAAA,CAAGyU,0BAA0B,CAAE,CAAA,CAAA,CACzD,IAAI,CAACh5B,MAAM,EAAA,CACX,OAAO,IAAIgd,OAAAA,CAAQ,CAACz0B,QAAAA,CAAUo7B,MAAAA,GAAAA,CAC7B,SAASv8F,IAAAA,EAAAA,CACR,MAAM0f,IAAMy9E,EAAAA,CAAG2T,cAAc,CAACF,IAAAA,CAAM1/C,KAAAA,CAAO,CAAA,CAAA,CAC3C,GAAIxxC,MAAQy9E,EAAAA,CAAG+kB,eAAe,CAAE,CAC/BpvB,UAAAA,CAAW9yF,KAAMiiH,WAAAA,EAClB,CAAA,KAAO,CACN9kB,EAAAA,CAAG0T,UAAU,CAACD,IAAAA,CAAAA,CACd,GAAIlxF,MAAQy9E,EAAAA,CAAGglB,WAAW,CAAE,CAC3B5lB,MAAAA,CAAO,IAAI1hG,KAAAA,CAAM,qCAClB,CAAA,KAAO,CACNsmE,WACD,CACD,CACD,CACAnhE,IAAAA,GACD,CAAA,CACD,CACA,MAAMoiH,gBAAgB/nH,EAAE,CAAEof,EAAE,CAAE+D,CAAC,CAAEsP,EAAE,CAAEupB,MAAM,CAAEgsE,UAAY,KAAK,CAAEC,SAAW,KAAK,CAAE,CACjF,MAAMnlB,EAAAA,CAAK,IAAI,CAACA,EAAE,CAClB,IAAI95F,MAAAA,CAAQk/G,UACZ,GAAIF,SAAAA,CAAW,CACdh/G,MAAAA,CAAS85F,EAAAA,CAAG4I,IAAI,CAChBwc,UAAYplB,EAAAA,CAAGiB,cAAa,CAC7B,KAAO,CACN,MAAMhzD,IAAAA,CAAO,IAAI,CAAC8c,YAAY,CAAC4K,WAAW,EAAE1nB,IAAAA,CAC5C/nC,OAAS+nC,IAAAA,EAAMg6D,SAAAA,EAAajI,GAAG4I,IAAI,CACnCwc,SAAAA,CAAYn3E,IAAAA,EAAMk6D,cAAgBnI,EAAAA,CAAGiB,cAAa,CAEnD,MAAMokB,IAAMrlB,EAAAA,CAAGzlC,YAAY,GAC3BylC,EAAAA,CAAGO,UAAU,CAACP,EAAAA,CAAGslB,iBAAiB,CAAED,GAAAA,CAAAA,CACpCrlB,EAAAA,CAAGQ,UAAU,CAACR,EAAAA,CAAGslB,iBAAiB,CAAEpsE,OAAO9qC,UAAU,CAAE4xF,GAAGulB,WAAW,CAAA,CACrEvlB,GAAG4kB,UAAU,CAAC1nH,GAAIof,EAAAA,CAAI+D,CAAAA,CAAGsP,GAAIzpB,MAAAA,CAAQk/G,SAAAA,CAAW,GAChDplB,EAAAA,CAAGO,UAAU,CAACP,EAAAA,CAAGslB,iBAAiB,CAAE,IAAA,CACpC,OAAM,IAAI,CAACT,eAAe,CAAC,CAAA,CAAG,IAC9B,MAAMW,OAAAA,CAAU,KACfxlB,EAAAA,CAAGO,UAAU,CAACP,EAAAA,CAAGslB,iBAAiB,CAAED,GAAAA,CAAAA,CACpCrlB,EAAAA,CAAGylB,gBAAgB,CAACzlB,EAAAA,CAAGslB,iBAAiB,CAAE,EAAGpsE,MAAAA,CAAAA,CAC7C8mD,EAAAA,CAAGO,UAAU,CAACP,EAAAA,CAAGslB,iBAAiB,CAAE,IAAA,CAAA,CACpCtlB,GAAGC,YAAY,CAAColB,KACjB,CAAA,CACA,GAAI,IAAI,CAACp7D,UAAU,CAAE,CACpB+1C,EAAAA,CAAGC,YAAY,CAAColB,KAChB,OAAOnsE,MACR,CACA,GAAI,IAAI,CAACqR,WAAW,CAAE,CACrBy1C,EAAAA,CAAGC,YAAY,CAAColB,GAAAA,CAChB,CAAA,MAAM,IAAI3nH,KAAAA,CAAM,+DAAA,CACjB,CACA,GAAI,CAACynH,QAAAA,CAAU,CACdK,UACA,OAAOtsE,MACR,CACA,MAAM,IAAIu/C,QAAQ,CAACz0B,QAAAA,CAAUo7B,MAAAA,GAAAA,CAC5B,MAAM1/F,KAAO,CACZgmH,KAAAA,CAAO,EACPC,OAAAA,CAAS,KAAA,CAET9/G,IAAK,MAAC+/G,EAAAA,CACL,GAAIlmH,IAAAA,CAAKimH,OAAO,CAAE,CACjB,MACD,CACAjmH,IAAAA,CAAKimH,OAAO,CAAG,IAAA,CACfE,aAAanmH,IAAAA,CAAKgmH,KAAK,EACvB,IAAI,CAACnN,eAAe,CAACjvG,MAAM,CAAC5J,IAAAA,CAAAA,CAC5BkmH,MAAAA,GACD,CAAA,CAGAx6C,GAAAA,CAAK,IAAM1rE,IAAAA,CAAKmG,GAAG,CAAC,IAAA,CACnB2/G,OAAAA,EAAAA,CACAxhD,WACD,CAAA,CAAA,CAIAw0C,OAAAA,CAAS,IAAM94G,IAAAA,CAAKmG,GAAG,CAACm+D,QAAAA,CAAAA,CAGxBtd,IAAAA,CAAM,IAAMhnD,IAAAA,CAAKmG,GAAG,CAAC,IAAA,CACpBu5F,MAAAA,CAAO,IAAI1hG,KAAAA,CAAM,kEAClB,CAAA,CACD,CACAgC,CAAAA,IAAAA,CAAKgmH,KAAK,CAAG/vB,UAAAA,CAAWj2F,IAAAA,CAAK0rE,GAAG,CAAEitC,yBAAAA,CAAAA,CAClC,IAAI,CAACE,eAAe,CAACvnG,GAAG,CAACtR,MAC1B,CAAA,CAAA,CACA,OAAOw5C,MACR,CACAo2D,iBAAiBz+D,OAAO,CAAE3zC,EAAE,CAAEof,EAAE,CAAEkK,KAAK,CAAEC,MAAM,CAAEtU,QAAQ,CAAE,CAC1D,MAAM4kC,IAAAA,CAAO5kC,QAAAA,CAAS4kC,IAAI,EAAI,CAAA,CAC9B,MAAMpH,QAAAA,CAAWx9B,SAASw9B,QAAQ,EAAI,EACtC,MAAMob,YAAAA,CAAe54C,SAAS44C,YAAY,EAAI,IAAIsK,YAAAA,CAAa,CAC9DM,YAAa9kB,OAAAA,CACbhB,KAAAA,CAAO,MACPkH,IAAAA,CACApH,QACD,GACA,MAAMm2E,YAAAA,CAAe3N,qCAAAA,CAAsCtnE,OAAAA,CAAQuD,OAAO,CAAA,CAC1E,MAAM2xE,kBAAoBD,YAAAA,CAAe,CAAA,CACzC,MAAMppC,SAAAA,CAAY76C,uBAAAA,CAAwBgP,QAAQuD,OAAO,CAAA,CACzD,MAAM4xE,UAAAA,CAAa7zG,QAAAA,CAASmN,IAAI,EAAI,IAAIo9D,UACvCntC,YAAAA,CAAaO,gBAAgB,CAACtpB,KAAAA,CAAOC,OAAQ,CAAA,CAAGoqB,OAAAA,CAAQuD,OAAO,CAAA,CAAIsoC,SAAAA,CAAUh8B,iBAAgB,CAAA,CAE9F,MAAM87B,WAAaupC,iBAAAA,CAAoB,IAAIt4G,WAAW+Y,KAAAA,CAAQC,MAAAA,CAAS,GAAKu/F,UAAAA,CAC5E,IAAI,CAAC33D,eAAe,CAACtD,YAAAA,CAAAA,CACrB,IAAI,CAAC+D,gBAAgB,CAAC/D,cACtB,IAAI,CAAC0lD,cAAc,CAAC1lD,YAAAA,CAAa9c,IAAI,CAACkpB,cAAc,CAAA,CACpD,GAAIhlD,SAASs1C,SAAS,CAAE,CACvB,IAAI,CAACu4C,EAAE,CAAC0U,KAAK,GACd,CACA,IAAIuR,QAAAA,CAAW,CAAC,CAAC9zG,QAAAA,CAAS44C,YAAY,CACtC,MAAMqW,OAAAA,CAAU,KACf,GAAI6kD,QAAAA,CAAU,CACb,MACD,CACAA,SAAW,IAAA,CACX,IAAI,CAACn+G,GAAG,CAAC,SAAA,CAAWs5D,OAAAA,CAAAA,CACpBrW,aAAa/c,OAAO,GACrB,EACA,GAAI,CAACi4E,SAAU,CACd,IAAI,CAAC/9G,EAAE,CAAC,UAAWk5D,OAAAA,EACpB,CACA,OAAO,IAAIq3B,OAAAA,CAAQ,CAACz0B,QAAAA,CAAUo7B,UAC7B,MAAM8mB,WAAAA,CAAc,IAAI,CAACjB,eAAe,CACvC/nH,EAAAA,CACAof,EAAAA,CACAkK,MACAC,MAAAA,CACA+1D,UAAAA,CACAupC,kBACA5zG,QAAAA,CAASgzG,QAAQ,EAAI,KAAA,CAAA,CAEtBe,WAAAA,CAAYv5G,IAAI,CAAE0N,KAAAA,EAAAA,CACjB+mD,OAAAA,EAAAA,CACA,GAAI,IAAI,CAACnX,UAAU,CAAE,CACpBm1C,OAAO,IAAI1hG,KAAAA,CAAM,yEACjB,MACD,CACA,GAAIqoH,iBAAAA,CAAmB,CACtB,MAAMI,UAAAA,CAAa3/F,KAAAA,CAAQC,OAC3B,IAAK,IAAI9lB,EAAAA,CAAK,CAAA,CAAGA,GAAKwlH,UAAAA,CAAYxlH,EAAAA,EAAAA,CAAM,CACvC,IAAK,IAAIX,GAAK,CAAA,CAAGA,EAAAA,CAAK8lH,aAAc9lH,EAAAA,EAAAA,CAAM,CACzCgmH,UAAU,CAACrlH,EAAAA,CAAKmlH,aAAe9lH,EAAAA,CAAG,CAAGqa,KAAK,CAAC1Z,EAAAA,CAAK,CAAA,CAAIX,EAAAA,EAAG,CAEzD,CACAgkE,SAASgiD,UAAAA,EACV,CAAA,KAAO,CACNhiD,QAAAA,CAAS3pD,KAAAA,EACV,CACD,CAAA,CAAA,CAAGo7F,KAAK,CAAC,KAACroG,EAAAA,CACTg0D,UACAg+B,MAAAA,CAAOhyF,KAAAA,EACR,GACD,CAAA,CACD,CACA,MAAMmiG,iBAAAA,CAAkB1+D,OAAO,CAAE3zC,EAAE,CAAEof,EAAE,CAAEkK,KAAK,CAAEC,MAAM,CAAEpM,KAAK,CAAE,CAC9D,MAAM2lF,EAAAA,CAAK,IAAI,CAACA,EAAE,CAClB,MAAM/xD,IAAAA,CAAO4C,OAAAA,CAAQ5C,IAAI,CACzB,MAAM/nC,MAAAA,CAAS+nC,MAAMg6D,SAAAA,EAAajI,EAAAA,CAAG4I,IAAI,CACzC,MAAMwc,SAAAA,CAAYn3E,IAAAA,EAAMk6D,cAAgBnI,EAAAA,CAAGiB,aAAa,CACxD,MAAMokB,GAAAA,CAAMrlB,GAAGzlC,YAAY,EAAA,CAC3BylC,EAAAA,CAAGO,UAAU,CAACP,EAAAA,CAAGmU,mBAAmB,CAAEkR,GAAAA,CAAAA,CACtCrlB,EAAAA,CAAGQ,UAAU,CAACR,EAAAA,CAAGmU,mBAAmB,CAAE95F,KAAAA,CAAO2lF,GAAGK,WAAW,CAAA,CAC3DL,GAAGgU,WAAW,CAAChU,GAAGgI,UAAU,CAAE/5D,IAAAA,CAAKiI,UAAU,EAC7C8pD,EAAAA,CAAG0O,aAAa,CAAC1O,EAAAA,CAAGgI,UAAU,CAAE,CAAA,CAAG9qG,EAAAA,CAAIof,GAAIkK,KAAAA,CAAOC,MAAAA,CAAQvgB,OAAQk/G,SAAAA,CAAW,CAAA,CAAA,CAC7EplB,GAAGO,UAAU,CAACP,GAAGmU,mBAAmB,CAAE,IAAA,CACtCtjE,CAAAA,QAAQ0B,YAAY,CAAG,KACvB1B,CAAAA,OAAAA,CAAQgG,gBAAgB,CAAG,KAC3B,OAAM,IAAI,CAACguE,eAAe,CAAC,CAAA,CAAG,IAC/B,CACAnnB,kBAAAA,CAAmB3gD,KAAK,CAAE,CACzB,GAAI,IAAI,CAACqO,eAAe,GAAKrO,MAAO,CACnC,IAAI,CAACqO,eAAe,CAAGrO,MACvB,GAAIA,KAAAA,CAAO,CACV,IAAI,CAACijD,EAAE,CAAC4c,MAAM,CAAC,IAAI,CAAC5c,EAAE,CAACwe,wBAAwB,EAChD,CAAA,KAAO,CACN,IAAI,CAACxe,EAAE,CAACuc,OAAO,CAAC,IAAI,CAACvc,EAAE,CAACwe,wBAAwB,EACjD,CACD,CACD,CACA4H,2BAAAA,CAA4BtlE,OAAO,CAAE,CACpC,MAAMk/C,EAAAA,CAAK,IAAI,CAACA,EAAE,CAClB,MAAMqmB,MAAAA,CAASvlE,OAAAA,EAASlgD,OAASkgD,OAAAA,CAAU,IAAA,CAC3C,MAAMwlE,SAAAA,CAAY,IAAI,CAACxG,wBAAwB,GAAK,IACpD,CAAA,IAAI,CAACA,wBAAwB,CAAGuG,MAAAA,CAChC,GAAIA,OAAQ,CACX,GAAI,CAACC,SAAAA,CAAW,CACf,IAAI,CAAC7N,QAAQ,GAAK,IAAI,CAACA,QAAQ,CAAGzY,GAAGumB,uBAAuB,EAAC,CAAA,CAC7DvmB,EAAAA,CAAGwmB,qBAAqB,CAACxmB,EAAAA,CAAGymB,kBAAkB,CAAE,IAAI,CAAChO,QAAQ,EAC9D,CACD,CAAA,KAAO,GAAI6N,SAAAA,CAAW,CACrBtmB,GAAGwmB,qBAAqB,CAACxmB,GAAGymB,kBAAkB,CAAE,IAAA,EACjD,CACD,CACAC,SAAAA,CAAUx+G,EAAE,CAAE,CACb,GAAI,IAAI,CAACq2G,MAAM,GAAKr2G,EAAAA,CAAI,CACvB,IAAI,CAACq2G,MAAM,CAAGr2G,EAAAA,CACd,GAAIA,GAAI,CACP,IAAI,CAAC83F,EAAE,CAACuc,OAAO,CAAC,IAAI,CAACvc,EAAE,CAACye,kBAAkB,EAC3C,MAAO,CACN,IAAI,CAACze,EAAE,CAAC4c,MAAM,CAAC,IAAI,CAAC5c,EAAE,CAACye,kBAAkB,EAC1C,CACD,CACD,CACAkI,eAAe/J,MAAM,CAAE,CACtB,GAAI,IAAI,CAAC9oD,OAAO,GAAK8oD,OAAQ,CAC5B,MAAM5c,GAAK,IAAI,CAACA,EAAE,CAClB,GAAI4c,MAAAA,CAAQ,CACX5c,GAAG4c,MAAM,CAAC5c,GAAGmd,YAAY,EAC1B,MAAO,CACNnd,EAAAA,CAAGuc,OAAO,CAACvc,EAAAA,CAAGmd,YAAY,EAC3B,CACA,IAAI,CAACrpD,OAAO,CAAG8oD,OAChB,CACD,CACAgK,cAAAA,CAAe17G,IAAI,CAAEs7C,GAAG,CAAEnL,IAAI,CAAE,CAC/B,GAAI,IAAI,CAAC+hE,gBAAgB,GAAKlyG,MAAQ,IAAI,CAACoyG,eAAe,GAAK92D,GAAAA,EAAO,IAAI,CAACg3D,gBAAgB,GAAKniE,IAAAA,EAAQ,IAAI,CAACgiE,eAAe,GAAKnyG,IAAAA,EAAQ,IAAI,CAACqyG,cAAc,GAAK/2D,KAAO,IAAI,CAACi3D,eAAe,GAAKpiE,IAAAA,CAAM,CACtM,IAAI,CAAC2kD,EAAE,CAAC0d,WAAW,CAAC,IAAI,CAAC2E,YAAY,CAACn3G,KAAK,CAAEs7C,GAAAA,CAAKnL,KAClD,CAAA,IAAI,CAAC+hE,gBAAgB,CAAG,IAAI,CAACC,eAAe,CAAGnyG,IAC/C,CAAA,IAAI,CAACoyG,eAAe,CAAG,IAAI,CAACC,cAAc,CAAG/2D,GAC7C,CAAA,IAAI,CAACg3D,gBAAgB,CAAG,IAAI,CAACC,eAAe,CAAGpiE,KAChD,CACD,CACAwrE,mBAAAA,CAAoB37G,IAAI,CAAEs7C,GAAG,CAAEnL,IAAI,CAAE,CACpC,GAAI,IAAI,CAAC+hE,gBAAgB,GAAKlyG,IAAAA,EAAQ,IAAI,CAACoyG,eAAe,GAAK92D,KAAO,IAAI,CAACg3D,gBAAgB,GAAKniE,IAAAA,CAAM,CACrG,MAAM2kD,EAAAA,CAAK,IAAI,CAACA,EAAE,CAClBA,EAAAA,CAAG8mB,mBAAmB,CAAC9mB,EAAAA,CAAG+mB,KAAK,CAAE,IAAI,CAAC1E,YAAY,CAACn3G,KAAK,CAAEs7C,GAAAA,CAAKnL,KAC/D,CAAA,IAAI,CAAC+hE,gBAAgB,CAAGlyG,IACxB,CAAA,IAAI,CAACoyG,eAAe,CAAG92D,GACvB,CAAA,IAAI,CAACg3D,gBAAgB,CAAGniE,KACzB,CACD,CACA2rE,kBAAAA,CAAmB97G,IAAI,CAAEs7C,GAAG,CAAEnL,IAAI,CAAE,CACnC,GAAI,IAAI,CAACgiE,eAAe,GAAKnyG,MAAQ,IAAI,CAACqyG,cAAc,GAAK/2D,GAAAA,EAAO,IAAI,CAACi3D,eAAe,GAAKpiE,IAAAA,CAAM,CAClG,MAAM2kD,EAAAA,CAAK,IAAI,CAACA,EAAE,CAClBA,EAAAA,CAAG8mB,mBAAmB,CAAC9mB,EAAAA,CAAG7gF,IAAI,CAAE,IAAI,CAACkjG,YAAY,CAACn3G,KAAK,CAAEs7C,GAAAA,CAAKnL,KAC9D,CAAA,IAAI,CAACgiE,eAAe,CAAGnyG,IACvB,CAAA,IAAI,CAACqyG,cAAc,CAAG/2D,GACtB,CAAA,IAAI,CAACi3D,eAAe,CAAGpiE,KACxB,CACD,CACA4rE,mBAAAA,CAAoBvgE,IAAI,CAAEE,KAAK,CAAEE,KAAK,CAAEI,SAAS,CAAE,CAClD,GAAI,IAAI,CAAC02D,gBAAgB,GAAKl3D,IAAAA,EAAQ,IAAI,CAACo3D,iBAAiB,GAAKl3D,KAAAA,EAAS,IAAI,CAACo3D,iBAAiB,GAAKl3D,OAAS,IAAI,CAAC+2D,eAAe,GAAKn3D,IAAAA,EAAQ,IAAI,CAACq3D,gBAAgB,GAAKn3D,KAAAA,EAAS,IAAI,CAACq3D,gBAAgB,GAAKn3D,KAAAA,CAAO,CAClN,IAAI,CAACk5C,EAAE,CAACoe,SAAS,CAAC,IAAI,CAAC8I,WAAW,CAACxgE,IAAAA,CAAK,CAAE,IAAI,CAACwgE,WAAW,CAACtgE,MAAM,CAAE,IAAI,CAACsgE,WAAW,CAACpgE,MAAM,CAC1F,CAAA,IAAI,CAAC82D,gBAAgB,CAAG,IAAI,CAACC,eAAe,CAAGn3D,IAC/C,CAAA,IAAI,CAACo3D,iBAAiB,CAAG,IAAI,CAACC,gBAAgB,CAAGn3D,KACjD,CAAA,IAAI,CAACo3D,iBAAiB,CAAG,IAAI,CAACC,gBAAgB,CAAGn3D,MAClD,CACA,GAAI,IAAI,CAACo3D,qBAAqB,GAAKh3D,SAAAA,EAAa,IAAI,CAACi3D,oBAAoB,GAAKj3D,UAAW,CACxF,IAAI,CAAC84C,EAAE,CAACse,WAAW,CAACp3D,SAAAA,CACpB,CAAA,IAAI,CAACg3D,qBAAqB,CAAGh3D,SAC7B,CAAA,IAAI,CAACi3D,oBAAoB,CAAGj3D,UAC7B,CACD,CACAigE,yBAAyBzgE,IAAI,CAAEE,KAAK,CAAEE,KAAK,CAAEI,SAAS,CAAE,CACvD,GAAI,IAAI,CAAC02D,gBAAgB,GAAKl3D,MAAQ,IAAI,CAACo3D,iBAAiB,GAAKl3D,OAAS,IAAI,CAACo3D,iBAAiB,GAAKl3D,KAAAA,CAAO,CAC3G,IAAI,CAACk5C,EAAE,CAAConB,iBAAiB,CAAC,IAAI,CAACpnB,EAAE,CAAC+mB,KAAK,CAAE,IAAI,CAACG,WAAW,CAACxgE,KAAK,CAAE,IAAI,CAACwgE,WAAW,CAACtgE,MAAM,CAAE,IAAI,CAACsgE,WAAW,CAACpgE,MAAM,CACjH,CAAA,IAAI,CAAC82D,gBAAgB,CAAGl3D,IACxB,CAAA,IAAI,CAACo3D,iBAAiB,CAAGl3D,KACzB,CAAA,IAAI,CAACo3D,iBAAiB,CAAGl3D,MAC1B,CACA,GAAI,IAAI,CAACo3D,qBAAqB,GAAKh3D,UAAW,CAC7C,IAAI,CAAC84C,EAAE,CAACqnB,mBAAmB,CAAC,IAAI,CAACrnB,EAAE,CAAC+mB,KAAK,CAAE7/D,UAC3C,CAAA,IAAI,CAACg3D,qBAAqB,CAAGh3D,UAC9B,CACD,CACAogE,uBAAAA,CAAwB5gE,IAAI,CAAEE,KAAK,CAAEE,KAAK,CAAEI,SAAS,CAAE,CACtD,GAAI,IAAI,CAAC22D,eAAe,GAAKn3D,IAAAA,EAAQ,IAAI,CAACq3D,gBAAgB,GAAKn3D,KAAAA,EAAS,IAAI,CAACq3D,gBAAgB,GAAKn3D,MAAO,CACxG,IAAI,CAACk5C,EAAE,CAAConB,iBAAiB,CAAC,IAAI,CAACpnB,EAAE,CAAC7gF,IAAI,CAAE,IAAI,CAAC+nG,WAAW,CAACxgE,IAAAA,CAAK,CAAE,IAAI,CAACwgE,WAAW,CAACtgE,KAAAA,CAAM,CAAE,IAAI,CAACsgE,WAAW,CAACpgE,KAAAA,CAAM,CAChH,CAAA,IAAI,CAAC+2D,eAAe,CAAGn3D,IACvB,CAAA,IAAI,CAACq3D,gBAAgB,CAAGn3D,KACxB,CAAA,IAAI,CAACq3D,gBAAgB,CAAGn3D,MACzB,CACA,GAAI,IAAI,CAACq3D,oBAAoB,GAAKj3D,SAAAA,CAAW,CAC5C,IAAI,CAAC84C,EAAE,CAACqnB,mBAAmB,CAAC,IAAI,CAACrnB,EAAE,CAAC7gF,IAAI,CAAE+nC,SAAAA,CAC1C,CAAA,IAAI,CAACi3D,oBAAoB,CAAGj3D,UAC7B,CACD,CACAqgE,eAAAA,CAAgBv8D,UAAU,CAAEw8D,SAAS,CAAE,CACtC,MAAMxnB,GAAK,IAAI,CAACA,EAAE,CAClB,KAAM,CAAE9iD,KAAK,CAAEa,OAAO,CAAEG,OAAO,CAAEF,cAAc,CAAEC,cAAc,CAAEE,cAAc,CAAEC,cAAc,CAAE,CAAG4M,UAAAA,CACpG,GAAI,CAACw8D,SAAAA,EAAaA,UAAUtqE,KAAK,GAAKA,MAAO,CAC5C,GAAIA,KAAAA,CAAO,CACV8iD,GAAG4c,MAAM,CAAC5c,GAAGwc,KAAK,EACnB,MAAO,CACNxc,EAAAA,CAAGuc,OAAO,CAACvc,EAAAA,CAAGwc,KAAK,EACpB,CACD,CACA,GAAI,CAACgL,WAAaA,SAAAA,CAAUzpE,OAAO,GAAKA,OAAAA,EAAWypE,UAAUtpE,OAAO,GAAKA,QAAS,CACjF,MAAMupE,gBAAkB,IAAI,CAACA,eAAe,CAC5CznB,GAAG0nB,qBAAqB,CAACD,eAAe,CAAC1pE,OAAAA,CAAQ,CAAE0pE,eAAe,CAACvpE,OAAAA,CAAQ,EAC5E,CACA,GAAI,CAACspE,WAAaA,SAAAA,CAAUxpE,cAAc,GAAKA,cAAAA,EAAkBwpE,SAAAA,CAAUvpE,cAAc,GAAKA,cAAAA,EAAkBupE,UAAUrpE,cAAc,GAAKA,gBAAkBqpE,SAAAA,CAAUppE,cAAc,GAAKA,cAAAA,CAAgB,CAC3M4hD,EAAAA,CAAG2nB,iBAAiB,CACnB,IAAI,CAACC,oBAAoB,CAAC5pE,cAAAA,CAAe,CACzC,IAAI,CAAC4pE,oBAAoB,CAAC3pE,cAAAA,CAAe,CACzC,IAAI,CAAC4pE,oBAAoB,CAAC1pE,cAAAA,CAAe,CACzC,IAAI,CAAC0pE,oBAAoB,CAACzpE,eAAc,EAE1C,CACA,GAAI,CAACopE,SAAAA,EAAaA,UAAUnpE,QAAQ,GAAK2M,WAAW3M,QAAQ,CAAE,CAC7D2hD,EAAAA,CAAG2c,SAAS,CAAC3xD,UAAAA,CAAWrN,QAAQ,CAAEqN,UAAAA,CAAWpN,UAAU,CAAEoN,UAAAA,CAAWnN,SAAS,CAAEmN,UAAAA,CAAWlN,UAAU,EACrG,CACD,CACAgqE,sBAAAA,CAAuB9hH,KAAK,CAAEglD,UAAU,CAAE,CACzC,MAAMg1C,EAAAA,CAAK,IAAI,CAACA,EAAE,CAClB,MAAMh+F,GAAAA,CAAM,IAAI,CAAC64G,qBAAqB,CACtC,KAAM,CAAE39D,KAAK,CAAEa,OAAO,CAAEG,OAAO,CAAEF,cAAc,CAAEC,cAAc,CAAEE,cAAc,CAAEC,cAAc,CAAE,CAAG4M,UAAAA,CACpG,GAAI9N,KAAAA,CAAO,CACVl7C,IAAI+lH,UAAU,CAAC/nB,GAAGwc,KAAK,CAAEx2G,OAC1B,CAAA,KAAO,CACNhE,IAAIgmH,WAAW,CAAChoB,GAAGwc,KAAK,CAAEx2G,OAC3B,CACA,MAAMyhH,gBAAkB,IAAI,CAACA,eAAe,CAC5CzlH,IAAIimH,yBAAyB,CAACjiH,MAAOyhH,eAAe,CAAC1pE,QAAQ,CAAE0pE,eAAe,CAACvpE,OAAAA,CAAQ,CAAA,CACvFl8C,IAAIkmH,qBAAqB,CACxBliH,MACA,IAAI,CAAC4hH,oBAAoB,CAAC5pE,cAAAA,CAAe,CACzC,IAAI,CAAC4pE,oBAAoB,CAAC3pE,eAAe,CACzC,IAAI,CAAC4pE,oBAAoB,CAAC1pE,cAAAA,CAAe,CACzC,IAAI,CAAC0pE,oBAAoB,CAACzpE,cAAAA,CAAc,CAAA,CAEzCp8C,IAAImmH,aAAa,CAACniH,KAAAA,CAAOglD,UAAAA,CAAWrN,QAAQ,CAAEqN,UAAAA,CAAWpN,UAAU,CAAEoN,UAAAA,CAAWnN,SAAS,CAAEmN,UAAAA,CAAWlN,UAAU,EACjH,CACAgP,cAAc9B,UAAU,CAAE,CACzB,MAAM6B,iBAAAA,CAAoB,IAAI,CAAC7B,UAAU,CACzC,GAAI,CAAC6B,iBAAAA,CAAkB/2C,MAAM,CAACk1C,UAAAA,CAAAA,CAAa,CAC1C,GAAI,CAACA,WAAW1M,sBAAsB,EAAIuO,kBAAkBvO,sBAAqB,GAAM,IAAI,CAACoV,2BAA2B,CAAE,CACxH1I,UAAAA,CAAWrM,aAAa,CAAC,CAAA,CAAGk5D,sBAAAA,CAAAA,CAC5B,IAAI,CAAC0P,eAAe,CAAC1P,sBAAAA,CAAAA,CACrB,MAAMuQ,eAAiBvQ,sBAAAA,CAAuBnvG,GAAG,CACjD,GAAIsiD,UAAAA,CAAW1M,sBAAsB,CAAE,CACtC,MAAM9N,KAAAA,CAAQtwC,IAAAA,CAAK4T,GAAG,CAACgkG,oBAAqB,IAAI,CAAChlD,mBAAmB,CAAA,CACpE,IAAK,IAAInyD,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAK6vC,KAAAA,CAAO7vC,KAAM,CAClCqqD,UAAAA,CAAWrM,aAAa,CAACh+C,EAAAA,CAAIk3G,wBAC7B,GAAIA,sBAAAA,CAAuBnvG,GAAG,GAAK0/G,eAAgB,CAClD,IAAI,CAACN,sBAAsB,CAACnnH,GAAIk3G,sBAAAA,EACjC,CACD,CACD,CACD,CAAA,KAAO,CACN,IAAI,CAAC0P,eAAe,CAACv8D,UAAAA,CAAY6B,mBAClC,CACAA,iBAAAA,CAAkBntD,IAAI,CAACsrD,YACxB,CACD,CACAiD,cAAchuD,CAAC,CAAEgU,CAAC,CAAE1W,CAAC,CAAED,CAAC,CAAE,CACzB,MAAM0C,EAAAA,CAAK,IAAI,CAAC2rD,UAAU,CAC1B,GAAI1rD,CAAAA,GAAMD,EAAAA,CAAGC,CAAC,EAAIgU,CAAAA,GAAMjU,EAAAA,CAAGiU,CAAC,EAAI1W,CAAAA,GAAMyC,GAAGzC,CAAC,EAAID,IAAM0C,EAAAA,CAAG1C,CAAC,CAAE,CACzD,IAAI,CAAC0iG,EAAE,CAACr0C,UAAU,CAAC1rD,CAAAA,CAAGgU,CAAAA,CAAG1W,CAAAA,CAAGD,GAC5B0C,EAAAA,CAAGsH,GAAG,CAACrH,CAAAA,CAAGgU,CAAAA,CAAG1W,EAAGD,CAAAA,EACjB,CACD,CACAwwD,eAAAA,CAAgBC,YAAY,CAAEC,WAAW,CAAE,CAC1C,GAAID,cAAgBC,WAAAA,CAAa,CAChC,IAAI,CAAC24D,cAAc,CAAC,IAAA,CAAA,CACpB,GAAI54D,YAAAA,GAAiBC,WAAAA,CAAa,CACjC,IAAI,CAAC44D,cAAc,CAAC74D,YAAAA,CAAa7iD,IAAI,CAAE6iD,YAAAA,CAAavH,GAAG,CAAEuH,YAAAA,CAAa/G,QAAQ,CAAA,CAC9E,IAAI,CAACigE,mBAAmB,CAACl5D,YAAAA,CAAarH,IAAI,CAAEqH,YAAAA,CAAanH,KAAK,CAAEmH,YAAAA,CAAajH,KAAK,CAAEiH,YAAAA,CAAa7G,SAAS,EAC3G,CAAA,KAAO,CACN6G,eAAiBA,YAAAA,CAAe3H,kBAAkBnH,OAAM,CAAA,CACxD,IAAI,CAAC4nE,mBAAmB,CAAC94D,aAAa7iD,IAAI,CAAE6iD,aAAavH,GAAG,CAAEuH,aAAa/G,QAAQ,CAAA,CACnF,IAAI,CAACmgE,wBAAwB,CAACp5D,YAAAA,CAAarH,IAAI,CAAEqH,YAAAA,CAAanH,KAAK,CAAEmH,YAAAA,CAAajH,KAAK,CAAEiH,YAAAA,CAAa7G,SAAS,CAC/G8G,CAAAA,cAAgBA,WAAAA,CAAc5H,kBAAkBnH,OAAM,EACtD,IAAI,CAAC+nE,kBAAkB,CAACh5D,WAAAA,CAAY9iD,IAAI,CAAE8iD,WAAAA,CAAYxH,GAAG,CAAEwH,YAAYhH,QAAQ,CAAA,CAC/E,IAAI,CAACsgE,uBAAuB,CAACt5D,WAAAA,CAAYtH,IAAI,CAAEsH,WAAAA,CAAYpH,KAAK,CAAEoH,WAAAA,CAAYlH,KAAK,CAAEkH,WAAAA,CAAY9G,SAAS,EAC3G,CACD,CAAA,KAAO,CACN,IAAI,CAACy/D,cAAc,CAAC,OACrB,CACD,CACAj5D,cAAczC,UAAU,CAAE,CACzB,MAAMo9D,iBAAAA,CAAoB,IAAI,CAACp9D,UAAU,CACzC,GAAI,CAACo9D,kBAAkBvyG,MAAM,CAACm1C,UAAAA,CAAAA,CAAa,CAC1C,MAAM+0C,EAAAA,CAAK,IAAI,CAACA,EAAE,CAClB,MAAMnyD,KAAAA,CAAQod,UAAAA,CAAWpd,KAAK,CAC9B,GAAIw6E,kBAAkBx6E,KAAK,GAAKA,MAAO,CACtCmyD,EAAAA,CAAGkd,SAAS,CAACrvE,KAAAA,EACd,CACA,GAAI,CAAE3iC,IAAI,CAAErI,IAAI,CAAE,CAAGooD,WACrB,GAAI,CAACpoD,IAAAA,EAAQgrC,KAAAA,CAAO,CACnBhrC,IAAAA,CAAO,IAAA,CACPqI,KAAOiwB,YACR,CACA,GAAIktF,iBAAAA,CAAkBn9G,IAAI,GAAKA,IAAAA,CAAM,CACpC80F,EAAAA,CAAGgd,SAAS,CAAC,IAAI,CAACqF,YAAY,CAACn3G,IAAAA,CAAK,EACrC,CACA,GAAIm9G,kBAAkBxlH,IAAI,GAAKA,KAAM,CACpC,GAAIA,KAAM,CACTm9F,EAAAA,CAAG4c,MAAM,CAAC5c,GAAG+c,UAAU,EACxB,MAAO,CACN/c,EAAAA,CAAGuc,OAAO,CAACvc,EAAAA,CAAG+c,UAAU,EACzB,CACD,CACA,KAAM,CAAEl9D,SAAS,CAAEE,cAAc,CAAE,CAAGkL,UAAAA,CACtC,GAAIpL,SAAAA,EAAaE,eAAgB,CAChC,GAAI,CAAC,IAAI,CAAC2+D,gBAAgB,CAAE,CAC3B,IAAI,CAACA,gBAAgB,CAAG,IAAA,CACxB,IAAI,CAAC1e,EAAE,CAAC4c,MAAM,CAAC,IAAI,CAAC5c,EAAE,CAAC2e,mBAAmB,EAC3C,CACA3e,EAAAA,CAAGsoB,aAAa,CAACvoE,cAAAA,CAAgBF,SAAAA,EAClC,MAAO,CACN,GAAI,IAAI,CAAC6+D,gBAAgB,CAAE,CAC1B,IAAI,CAACA,gBAAgB,CAAG,KAAA,CACxB,IAAI,CAAC1e,EAAE,CAACuc,OAAO,CAAC,IAAI,CAACvc,EAAE,CAAC2e,mBAAmB,EAC5C,CACD,CACA0J,iBAAAA,CAAkB3oH,IAAI,CAACurD,UAAAA,EACxB,CACD,CACAiD,WAAAA,CAAYhD,QAAQ,CAAE,CACrB,GAAI,IAAI,CAACA,QAAQ,GAAKA,QAAAA,CAAU,CAC/B,GAAIA,QAAAA,GAAalxB,cAAe,CAC/B,IAAI,CAACgmE,EAAE,CAACuc,OAAO,CAAC,IAAI,CAACvc,EAAE,CAAC6c,SAAS,EAClC,MAAO,CACN,GAAI,IAAI,CAAC3xD,QAAQ,GAAKlxB,aAAAA,CAAe,CACpC,IAAI,CAACgmE,EAAE,CAAC4c,MAAM,CAAC,IAAI,CAAC5c,EAAE,CAAC6c,SAAS,EACjC,CACA,MAAM7lE,KAAO,IAAI,CAACuxE,MAAM,CAACr9D,QAAAA,CAAS,CAClC,GAAI,IAAI,CAAC4xD,QAAQ,GAAK9lE,IAAAA,CAAM,CAC3B,IAAI,CAACgpD,EAAE,CAAC8c,QAAQ,CAAC9lE,IAAAA,CACjB,CAAA,IAAI,CAAC8lE,QAAQ,CAAG9lE,KACjB,CACD,CACA,IAAI,CAACkU,QAAQ,CAAGA,SACjB,CACD,CACAiD,YAAAA,CAAahD,SAAS,CAAE,CACvB,GAAI,IAAI,CAACA,SAAS,GAAKA,UAAW,CACjC,MAAMnU,KAAO,IAAI,CAACwxE,WAAW,CAACr9D,SAAAA,CAAU,CACxC,IAAI,CAAC60C,EAAE,CAAC70C,SAAS,CAACnU,IAAAA,CAClB,CAAA,IAAI,CAACmU,SAAS,CAAGA,UAClB,CACD,CACA4+B,SAAAA,CAAU5/B,MAAM,CAAEmzC,YAAAA,CAAe,KAAK,CAAE,CACvC,GAAInzC,MAAAA,GAAW,IAAI,CAACA,MAAM,CAAE,CAC3B,IAAI,CAACA,MAAM,CAAGA,MACd,CAAA,IAAI,CAACW,kBAAkB,CAAGwyC,YAC1B,CAAA,IAAI,CAACzyC,WAAW,CAAG,OACpB,CACD,CACA44D,cAAAA,EAAiB,CAChB,KAAM,CAAEt5D,MAAM,CAAE,CAAG,IAAI,CACvB,KAAM,CAAElc,IAAI,CAAE,CAAGkc,MAAAA,CACjB,GAAI,IAAI,CAACU,WAAW,GAAK,MAAK,CAAG,CAChC,GAAIV,MAAAA,CAAO2gB,MAAM,CAAE,CAClB,IAAI,CAACjgB,WAAW,CAAG,MACpB,MAAO,GAAI,CAACV,OAAOytB,KAAK,CAAE,CACzB,GAAI,IAAI,CAAC9sB,kBAAkB,CAAE,CAC5B,GAAI7c,IAAAA,CAAK43D,QAAQ,CAAC,IAAI,EAAG,CACxB,GAAI,CAAC53D,IAAAA,CAAK81D,QAAQ,CAAC,IAAI,CAAE55C,MAAAA,CAAAA,CAAS,CACjCA,OAAO2gB,MAAM,CAAG,IAChB,CAAA,IAAI,CAACjgB,WAAW,CAAG,MACpB,CACD,CAAA,KAAO,CACN,IAAI,CAACA,WAAW,CAAG,MACpB,CACD,CAAA,KAAO,CACN,GAAI,CAAC5c,KAAK81D,QAAQ,CAAC,IAAI,CAAE55C,QAAS,CACjCA,MAAAA,CAAO2gB,MAAM,CAAG,IAChB,CAAA,IAAI,CAACjgB,WAAW,CAAG,MACpB,CACD,CACD,CACD,CACA,GAAI,IAAI,CAACA,WAAW,GAAK,MAAK,CAAG,CAChC,IAAI,CAACm1C,EAAE,CAACyoB,UAAU,CAACx6E,IAAAA,CAAK+zD,SAAS,CACjC,CAAA,IAAI,CAACn3C,WAAW,CAAG,KACpB,CACD,CACA8tD,2BAAAA,EAA8B,CAC7B,MAAM3Y,EAAAA,CAAK,IAAI,CAACA,EAAE,CAClB,IAAI,CAAC2f,OAAO,CAACtyG,OAAO,CAAC,CAAC3C,IAAAA,CAAMhC,IAAKggH,MAAAA,GAAAA,CAChC1oB,EAAAA,CAAG0iB,iBAAiB,CAACh4G,IAAAA,EACtB,GACA,IAAI,CAACi1G,OAAO,CAACt2G,KAAK,GACnB,CACA,IAAI8mD,WAAWA,UAAU,CAAE,CAC1B,GAAIA,UAAAA,CAAY,CACf,MAAM7F,OAAS,IAAI,CAAC01C,EAAE,CAAC11C,MAAM,CAC7BA,MAAAA,CAAOq+D,iBAAiB,GACzB,CAAA,KAAO,CACNn9G,QAAAA,CAASo9G,cAAc,GACxB,CACD,CACA,IAAIz4D,UAAAA,EAAa,CAChB,OAAO,CAAC,CAAC3kD,QAAAA,CAASq9G,iBAAiB,CAn0DpC,WAAA,CAAYv+D,MAAM,CAAEn4C,QAAAA,CAAW,EAAE,CAAE,CAClC,KAAK,CAACm4C,OAAQn4C,QAAAA,CAAAA,CANf6tF,gBAAAA,CAAAA,IAAAA,CAAAA,KAAAA,MAAAA,CAAAA,CACAuZ,gBAAAA,CAAAA,IAAAA,CAAAA,qBAAAA,CAAsB,MACtBD,gBAAAA,CAAAA,IAAAA,CAAAA,4BAAAA,CAA6B,OAC7BV,gBAAAA,CAAAA,IAAAA,CAAAA,aAAAA,CAAc,MACdL,gBAAAA,CAAAA,IAAAA,CAAAA,iBAAAA,CAAkC,IAAI5wG,GAAAA,CAAAA,CAGrCwK,QAAAA,CAAW,IAAI,CAAC6hD,WAAW,CAC3B,IAAI,CAAC0rD,gBAAgB,EACrB,CAAA,IAAI,CAACn1D,WAAW,CAAG,KACnB,CAAA,IAAI,CAACuuD,mBAAmB,CAAIgQ,QAC3BA,KAAAA,CAAMC,cAAc,GACpB,IAAI,CAACv6E,WAAW,GACjB,CACA,CAAA,IAAI,CAACuqE,uBAAuB,CAAG,KAC9B,IAAI,CAAC73D,cAAc,GACpB,CAAA,CACA,MAAM8nE,GAAAA,CAAM,OAAOzmH,SAAAA,GAAc,WAAA,EAAeA,UAAUC,SAC1D,CAAA,IAAI,CAAC65G,yBAAyB,CAAG2M,GAAAA,EAAOA,GAAAA,CAAIjlH,QAAQ,CAAC,aAAA,CAAA,GAAmBilH,IAAIjlH,QAAQ,CAAC,iBAAmBilH,GAAAA,CAAIjlH,QAAQ,CAAC,SAAA,CAAS,CAAA,CAC9H,GAAI,IAAI,CAACs4G,yBAAyB,CAAE,CACnClqG,SAAS8hD,SAAS,CAAG,MACtB,CACA,GAAIzwD,QAAAA,CAASV,WAAW,GAAK,SAAA,CAAW,CACvC,MAAMmmH,GAAAA,CAAM,OAAO1mH,YAAc,WAAA,CAAcA,SAAAA,CAAUC,SAAS,CAAG,EAAA,CACrE,MAAMJ,KAAAA,CAAQ6mH,GAAAA,CAAI7mH,KAAK,CAAC,wBAAA,CAAA,CACxB,MAAM8mH,cAAAA,CAAiB9mH,MAAQA,KAAK,CAAC,EAAE,CAAG,IAAA,CAC1C,GAAI8mH,cAAAA,CAAgB,CACnB,MAAMC,QAAAA,CAAW/pC,UAAAA,CAAW8pC,gBAC5B,MAAME,gBAAAA,CAAmB5lH,SAASC,IAAI,GAAK,YAAc0lH,QAAAA,EAAY,GAAA,EAAOA,QAAAA,GAAa,GAAE,CAAA,EAAM3lH,QAAAA,CAASC,IAAI,GAAK,SAAA,EAAa0lH,UAAY,GAAA,CAC5I,GAAIC,iBAAkB,CACrBj3G,QAAAA,CAAS8hD,SAAS,CAAG,MACtB,CACD,CACD,CACA,IAAI,CAAC5B,mBAAmB,CAAGlgD,QAAAA,CAAS8hD,SAAS,EAAI,KACjD9hD,CAAAA,QAAAA,CAAS8hD,SAAS,CAAG,KAAA,CACrB,MAAM+rC,GAAK7tF,QAAAA,CAAS6tF,EAAE,EAAI11C,MAAAA,CAAOoxB,UAAU,CAAC,QAAA,CAAUvpE,QAAAA,CAAAA,CACtD,GAAI,CAAC6tF,EAAAA,CAAI,CACR,MAAM,IAAItiG,KAAAA,CAAM,qBAAA,CACjB,CACA,IAAI,CAACsiG,EAAE,CAAGA,EACV,CAAA,IAAI,CAACl0C,QAAQ,CAAG,IAChB,CAAA,IAAI,CAACyE,WAAW,CAAG1lB,iBAAAA,CACnB,IAAI,CAACouE,sBAAsB,CAAC,IAAA,CAAA,CAC5B,MAAMoQ,QAAAA,CAAW7lH,QAAAA,CAASV,WAAW,GAAK,QAAA,CAC1C,MAAMwmH,QAAAA,CAAW9lH,QAAAA,CAASV,WAAW,GAAK,QAAA,CAC1C,MAAMymH,KAAAA,CAAQ/lH,QAAAA,CAASI,OAAO,EAAIrB,SAAAA,CAAUinH,UAAU,CAAC9/G,OAAO,CAAC,KAAA,CAAA,GAAW,EAC1E,CAAA,IAAI,CAACu3G,sCAAsC,CAAGqI,QAC9C,CAAA,IAAI,CAACG,uCAAuC,CAAGF,KAAAA,EAASF,UAAY,CAACl3G,QAAAA,CAASmC,KAAK,CACnFg2C,OAAOkwC,gBAAgB,CAAC,mBAAoB,IAAI,CAACse,mBAAmB,CAAE,KAAA,CAAA,CACtExuD,OAAOkwC,gBAAgB,CAAC,uBAAwB,IAAI,CAACue,uBAAuB,CAAE,KAAA,CAAA,CAC9E,IAAI,CAACsB,oBAAoB,EAAA,CACzB,IAAI,CAACW,sBAAsB,EAAA,CAC3B,IAAI,CAACtwD,qBAAqB,GAC1B,IAAI,CAACC,uBAAuB,EAAA,CAC5B,IAAI,CAACwwC,gBAAgB,CAAC,KACtB,CAAA,IAAI,CAACpxC,cAAc,CAAG,IAAIw8C,mBAAAA,CAAoB,IAAI,CAClD,CAAA,IAAI,CAAC7O,mBAAmB,CAAG,CAAC4xB,QAAAA,EAAY,OAAOp3E,WAAAA,GAAgB,WAC/D,CAAA,IAAI,CAACyyD,aAAa,CAAmB,IAAIh9F,IAAI,CAC5Cq4F,EAAAA,CAAG0pB,UAAU,CACb1pB,GAAG2pB,YAAY,CACf3pB,GAAG4pB,uBAAuB,CAC1B5pB,GAAG6pB,cAAc,CACjB7pB,GAAG8pB,iBAAiB,CACpB9pB,GAAG+pB,mBAAmB,CACtB/pB,GAAGgqB,UAAU,CACbhqB,GAAGiqB,cAAc,CACjBjqB,EAAAA,CAAGkqB,uBAAuB,CAC1BlqB,EAAAA,CAAGmqB,gBAAgB,CACnBnqB,EAAAA,CAAGoqB,oBAAoB,CACvBpqB,EAAAA,CAAGqqB,6BAA4B,CAC/B,CACD,CAAA,IAAI,CAACtI,SAAS,CAAG,CAChB/hB,EAAAA,CAAGsqB,MAAM,CACTtqB,EAAAA,CAAGuqB,aAAa,CAChBvqB,GAAGwqB,eAAc,CACjB,CACD,IAAI,CAAC/C,eAAe,CAAG,CACtBznB,EAAAA,CAAG0c,QAAQ,CACX1c,EAAAA,CAAGyqB,aAAa,CAChBzqB,EAAAA,CAAG0qB,qBAAqB,CACxB1qB,EAAAA,CAAG2qB,GAAG,CACN3qB,EAAAA,CAAG4qB,GAAE,CAEN,CAAA,IAAI,CAAChD,oBAAoB,CAAG,CAC3B5nB,GAAGrhF,IAAI,CACPqhF,GAAGnhF,GAAG,CACNmhF,GAAG6qB,SAAS,CACZ7qB,GAAG8qB,mBAAmB,CACtB9qB,EAAAA,CAAG+qB,SAAS,CACZ/qB,EAAAA,CAAGgrB,mBAAmB,CACtBhrB,EAAAA,CAAGirB,SAAS,CACZjrB,EAAAA,CAAGkrB,kBAAkB,CACrBlrB,EAAAA,CAAGmrB,mBAAmB,CACtBnrB,EAAAA,CAAGorB,SAAS,CACZprB,EAAAA,CAAGqrB,mBAAmB,CACtBrrB,EAAAA,CAAGsrB,cAAc,CACjBtrB,GAAGurB,wBAAwB,CAC3B,IAAI,CAAC3Q,oBAAoB,EAAE4Q,gBAAAA,CAC3B,IAAI,CAAC5Q,oBAAoB,EAAE6Q,2BAC3B,IAAI,CAAC7Q,oBAAoB,EAAE8Q,gBAAAA,CAC3B,IAAI,CAAC9Q,oBAAoB,EAAE+Q,0BAAAA,CAC3B,CACD,IAAI,CAAC9D,oBAAoB,CAAG,CAC3B7nB,EAAAA,CAAGrhF,IAAI,CACPqhF,EAAAA,CAAGnhF,GAAG,CACNmhF,EAAAA,CAAG6qB,SAAS,CACZ7qB,EAAAA,CAAG8qB,mBAAmB,CACtB9qB,EAAAA,CAAG+qB,SAAS,CACZ/qB,EAAAA,CAAGgrB,mBAAmB,CACtBhrB,EAAAA,CAAGirB,SAAS,CACZjrB,EAAAA,CAAGkrB,kBAAkB,CACrBlrB,EAAAA,CAAGmrB,mBAAmB,CACtBnrB,EAAAA,CAAGorB,SAAS,CACZprB,EAAAA,CAAGqrB,mBAAmB,CACtBrrB,EAAAA,CAAG4rB,cAAc,CACjB5rB,EAAAA,CAAG6rB,wBAAwB,CAC3B,IAAI,CAACjR,oBAAoB,EAAE4Q,gBAAAA,CAC3B,IAAI,CAAC5Q,oBAAoB,EAAE6Q,2BAC3B,IAAI,CAAC7Q,oBAAoB,EAAE8Q,gBAAAA,CAC3B,IAAI,CAAC9Q,oBAAoB,EAAE+Q,0BAAAA,CAE5B,CAAA,IAAI,CAACtJ,YAAY,CAAG,CACnBriB,EAAAA,CAAG8rB,KAAK,CACR9rB,EAAAA,CAAG+rB,IAAI,CACP/rB,EAAAA,CAAGgsB,KAAK,CACRhsB,EAAAA,CAAGid,MAAM,CACTjd,EAAAA,CAAGisB,OAAO,CACVjsB,EAAAA,CAAGksB,QAAQ,CACXlsB,EAAAA,CAAGmsB,MAAM,CACTnsB,EAAAA,CAAG2d,MAAK,CAET,CAAA,IAAI,CAACuJ,WAAW,CAAG,CAClBlnB,GAAGqe,IAAI,CACPre,GAAGrhF,IAAI,CACPqhF,GAAGosB,OAAO,CACVpsB,EAAAA,CAAGqsB,IAAI,CACPrsB,EAAAA,CAAGssB,SAAS,CACZtsB,EAAAA,CAAGusB,IAAI,CACPvsB,EAAAA,CAAGwsB,SAAS,CACZxsB,EAAAA,CAAGysB,MAAK,CACR,CACD,IAAI,CAAC9H,WAAW,CAAG,CAClB,CAAA,CACA3kB,EAAAA,CAAG+S,gBAAgB,CACnB/S,EAAAA,CAAGgT,gBAAgB,CACnBhT,EAAAA,CAAG+S,gBAAgB,CAAG/S,EAAAA,CAAGgT,gBAAgB,CACzChT,EAAAA,CAAG0sB,kBAAkB,CACrB1sB,EAAAA,CAAG0sB,kBAAkB,CAAG1sB,EAAAA,CAAG+S,gBAAgB,CAC3C/S,EAAAA,CAAG0sB,kBAAkB,CAAG1sB,GAAGgT,gBAAgB,CAC3ChT,GAAG0sB,kBAAkB,CAAG1sB,GAAG+S,gBAAgB,CAAG/S,GAAGgT,gBAAe,CAChE,CACD,IAAI,CAACuV,MAAM,CAAG,CACb,CAAA,CACAvoB,EAAAA,CAAG7gF,IAAI,CACP6gF,GAAG+mB,KAAK,CACR/mB,GAAG2sB,cAAa,CAChB,CACD,IAAI,CAACnE,WAAW,CAAG,CAClBxoB,EAAAA,CAAG4sB,GAAG,CACN5sB,EAAAA,CAAG6sB,EAAC,CACJ,CACD,IAAI,CAACjL,QAAQ,CAAG,CACf5hB,GAAG6S,OAAO,CACV7S,GAAG8sB,MAAM,CACT9sB,GAAG+sB,sBAAsB,CACzB/sB,GAAGgtB,qBAAqB,CACxBhtB,GAAGitB,qBAAqB,CACxBjtB,GAAGktB,oBAAmB,CACtB,CACD,IAAI,CAAC9I,WAAW,CAAG,CAClBpkB,EAAAA,CAAGmkB,MAAM,CACTnkB,EAAAA,CAAGmtB,KAAK,CACRntB,GAAGotB,SAAS,CACZptB,GAAGqtB,UAAU,CACbrtB,GAAGstB,SAAS,CACZttB,EAAAA,CAAGutB,cAAc,CACjBvtB,EAAAA,CAAGwtB,YAAW,CACd,CACD,IAAI,CAACzK,MAAM,CAAG,CACb/iB,EAAAA,CAAGsJ,IAAI,CACPtJ,EAAAA,CAAGiB,aAAa,CAChBjB,EAAAA,CAAGkN,KAAK,CACRlN,EAAAA,CAAGkB,cAAc,CACjBlB,GAAGqN,GAAG,CACNrN,GAAGmB,YAAY,CACfnB,GAAGgM,KAAK,CACRhM,GAAG2L,UAAS,CACZ,CACD,IAAI,CAAC1G,aAAa,CAAG,EACrB,CAAA,IAAI,CAACA,aAAa,CAACjF,EAAAA,CAAGytB,IAAI,CAAC,CAAGnmF,gBAC9B,CAAA,IAAI,CAAC29D,aAAa,CAACjF,GAAGqN,GAAG,CAAC,CAAG9lE,eAC7B,CAAA,IAAI,CAAC09D,aAAa,CAACjF,EAAAA,CAAGgM,KAAK,CAAC,CAAGxkE,iBAC/B,CAAA,IAAI,CAACy9D,aAAa,CAACjF,EAAAA,CAAG0tB,UAAU,CAAC,CAAGjmF,gBACpC,CAAA,IAAI,CAACw9D,aAAa,CAACjF,EAAAA,CAAG2tB,UAAU,CAAC,CAAGjmF,gBACpC,CAAA,IAAI,CAACu9D,aAAa,CAACjF,EAAAA,CAAG4tB,UAAU,CAAC,CAAGjmF,gBACpC,CAAA,IAAI,CAACs9D,aAAa,CAACjF,EAAAA,CAAG6tB,QAAQ,CAAC,CAAGjmF,iBAClC,CAAA,IAAI,CAACq9D,aAAa,CAACjF,EAAAA,CAAG8tB,QAAQ,CAAC,CAAGjmF,iBAClC,CAAA,IAAI,CAACo9D,aAAa,CAACjF,EAAAA,CAAG+tB,QAAQ,CAAC,CAAGjmF,iBAClC,CAAA,IAAI,CAACm9D,aAAa,CAACjF,EAAAA,CAAGguB,SAAS,CAAC,CAAGjmF,iBACnC,CAAA,IAAI,CAACk9D,aAAa,CAACjF,EAAAA,CAAGiuB,SAAS,CAAC,CAAGjmF,iBACnC,CAAA,IAAI,CAACi9D,aAAa,CAACjF,EAAAA,CAAGkuB,SAAS,CAAC,CAAGjmF,iBACnC,CAAA,IAAI,CAACg9D,aAAa,CAACjF,EAAAA,CAAGmuB,UAAU,CAAC,CAAGjmF,gBACpC,CAAA,IAAI,CAAC+8D,aAAa,CAACjF,GAAGouB,UAAU,CAAC,CAAGjmF,gBACpC,CAAA,IAAI,CAAC88D,aAAa,CAACjF,EAAAA,CAAGquB,UAAU,CAAC,CAAGjmF,gBACpC,CAAA,IAAI,CAAC68D,aAAa,CAACjF,GAAG0pB,UAAU,CAAC,CAAGrhF,qBACpC,CAAA,IAAI,CAAC48D,aAAa,CAACjF,EAAAA,CAAG2pB,YAAY,CAAC,CAAGrhF,uBACtC,CAAA,IAAI,CAAC28D,aAAa,CAACjF,GAAGmB,YAAY,CAAC,CAAGn4D,gBACtC,CAAA,IAAI,CAACi8D,aAAa,CAACjF,EAAAA,CAAGsuB,iBAAiB,CAAC,CAAGrlF,iBAC3C,CAAA,IAAI,CAACg8D,aAAa,CAACjF,GAAGuuB,iBAAiB,CAAC,CAAGrlF,iBAC3C,CAAA,IAAI,CAAC+7D,aAAa,CAACjF,EAAAA,CAAGwuB,iBAAiB,CAAC,CAAGrlF,iBAC3C,CAAA,IAAI,CAAC87D,aAAa,CAACjF,GAAG8pB,iBAAiB,CAAC,CAAGthF,4BAC3C,CAAA,IAAI,CAACy8D,aAAa,CAACjF,EAAAA,CAAG+pB,mBAAmB,CAAC,CAAGthF,8BAC7C,CAAA,IAAI,CAACw8D,aAAa,CAACjF,EAAAA,CAAGmqB,gBAAgB,CAAC,CAAGphF,2BAC1C,CAAA,IAAI,CAACk8D,aAAa,CAACjF,EAAAA,CAAGgqB,UAAU,CAAC,CAAGthF,qBACpC,CAAA,IAAI,CAACu8D,aAAa,CAACjF,EAAAA,CAAG6pB,cAAc,CAAC,CAAG7/E,sBACxC,CAAA,IAAI,CAACi7D,aAAa,CAACjF,EAAAA,CAAG4pB,uBAAuB,CAAC,CAAG3/E,sBACjD,CAAA,IAAI,CAACg7D,aAAa,CAACjF,EAAAA,CAAGyuB,gBAAgB,CAAC,CAAGvkF,wBAC1C,CAAA,IAAI,CAAC+6D,aAAa,CAACjF,EAAAA,CAAG4pB,uBAAuB,CAAC,CAAGz/E,wBACjD,CAAA,IAAI,CAAC86D,aAAa,CAACjF,GAAGiqB,cAAc,CAAC,CAAG7/E,sBACxC,CAAA,IAAI,CAAC66D,aAAa,CAACjF,EAAAA,CAAGkqB,uBAAuB,CAAC,CAAG7/E,sBACjD,CAAA,IAAI,CAAC46D,aAAa,CAACjF,GAAGoqB,oBAAoB,CAAC,CAAG9/E,4BAC9C,CAAA,IAAI,CAAC26D,aAAa,CAACjF,EAAAA,CAAGqqB,6BAA6B,CAAC,CAAG9/E,4BACvD,CAAA,IAAI,CAACg3E,YAAY,CAAG,EACpB,CAAA,IAAI,CAACA,YAAY,CAACvhB,EAAAA,CAAGgI,UAAU,CAAC,CAAG,CACnC,CAAA,IAAI,CAACuZ,YAAY,CAACvhB,GAAG6H,gBAAgB,CAAC,CAAG,CACzC,CAAA,IAAI,CAAC0Z,YAAY,CAACvhB,EAAAA,CAAG8H,UAAU,CAAC,CAAG,CAAA,CACnC,IAAI4mB,MAAAA,CAAQC,OAAQC,MAAAA,CAAQC,MAAAA,CAC5B,IAAIC,YACJ,CAAA,IAAI,CAAC9K,cAAc,CAAG,EACtB,CAAA,IAAI,CAACA,cAAc,CAAC18E,gBAAAA,CAAiB,CAAG,SAASqb,OAAO,CAAEn6C,KAAK,EAC9D,GAAIm6C,OAAAA,CAAQn6C,KAAK,GAAKA,KAAAA,CAAO,CAC5Bw3F,EAAAA,CAAG2jB,SAAS,CAAChhE,OAAAA,CAAQ0+C,UAAU,CAAE74F,KAAAA,CACjCm6C,CAAAA,OAAAA,CAAQn6C,KAAK,CAAGA,MACjB,CACD,CACA,CAAA,IAAI,CAACw7G,cAAc,CAACz8E,eAAAA,CAAgB,CAAG,IAAI,CAACy8E,cAAc,CAAC18E,gBAAAA,CAC3D,CAAA,IAAI,CAAC08E,cAAc,CAACx8E,iBAAAA,CAAkB,CAAG,SAASmb,OAAO,CAAEn6C,KAAK,EAC/D,GAAIm6C,OAAAA,CAAQn6C,KAAK,GAAKA,KAAAA,CAAO,CAC5Bw3F,EAAAA,CAAG+uB,SAAS,CAACpsE,OAAAA,CAAQ0+C,UAAU,CAAE74F,KAAAA,CACjCm6C,CAAAA,QAAQn6C,KAAK,CAAGA,MACjB,CACD,CACA,CAAA,IAAI,CAACw7G,cAAc,CAACv8E,iBAAiB,CAAG,SAASkb,OAAO,CAAEn6C,KAAK,EAC9DsmH,YAAAA,CAAensE,OAAAA,CAAQn6C,KAAK,CAC5BkmH,MAAAA,CAASlmH,KAAK,CAAC,CAAA,CAAE,CACjBmmH,MAAAA,CAASnmH,KAAK,CAAC,CAAA,CAAE,CACjB,GAAIsmH,YAAY,CAAC,CAAA,CAAE,GAAKJ,QAAUI,YAAY,CAAC,EAAE,GAAKH,MAAAA,CAAQ,CAC7D3uB,EAAAA,CAAGgvB,UAAU,CAACrsE,OAAAA,CAAQ0+C,UAAU,CAAE74F,KAAAA,CAClCsmH,CAAAA,YAAY,CAAC,EAAE,CAAGJ,MAClBI,CAAAA,YAAY,CAAC,EAAE,CAAGH,OACnB,CACD,CACA,CAAA,IAAI,CAAC3K,cAAc,CAACt8E,gBAAAA,CAAiB,CAAG,SAASib,OAAO,CAAEn6C,KAAK,CAAA,CAC9DsmH,aAAensE,OAAAA,CAAQn6C,KAAK,CAC5BkmH,MAAAA,CAASlmH,KAAK,CAAC,CAAA,CAAE,CACjBmmH,OAASnmH,KAAK,CAAC,EAAE,CACjBomH,MAAAA,CAASpmH,KAAK,CAAC,CAAA,CAAE,CACjB,GAAIsmH,YAAY,CAAC,CAAA,CAAE,GAAKJ,MAAAA,EAAUI,YAAY,CAAC,CAAA,CAAE,GAAKH,QAAUG,YAAY,CAAC,EAAE,GAAKF,MAAAA,CAAQ,CAC3F5uB,EAAAA,CAAGivB,UAAU,CAACtsE,OAAAA,CAAQ0+C,UAAU,CAAE74F,KAAAA,CAClCsmH,CAAAA,YAAY,CAAC,EAAE,CAAGJ,MAClBI,CAAAA,YAAY,CAAC,EAAE,CAAGH,MAClBG,CAAAA,YAAY,CAAC,CAAA,CAAE,CAAGF,OACnB,CACD,CACA,CAAA,IAAI,CAAC5K,cAAc,CAACr8E,iBAAiB,CAAG,SAASgb,OAAO,CAAEn6C,KAAK,EAC9DsmH,YAAAA,CAAensE,OAAAA,CAAQn6C,KAAK,CAC5BkmH,MAAAA,CAASlmH,KAAK,CAAC,CAAA,CAAE,CACjBmmH,MAAAA,CAASnmH,KAAK,CAAC,CAAA,CAAE,CACjBomH,MAAAA,CAASpmH,KAAK,CAAC,CAAA,CAAE,CACjBqmH,OAASrmH,KAAK,CAAC,EAAE,CACjB,GAAIsmH,YAAY,CAAC,CAAA,CAAE,GAAKJ,MAAAA,EAAUI,YAAY,CAAC,CAAA,CAAE,GAAKH,QAAUG,YAAY,CAAC,CAAA,CAAE,GAAKF,QAAUE,YAAY,CAAC,EAAE,GAAKD,MAAAA,CAAQ,CACzH7uB,EAAAA,CAAGkvB,UAAU,CAACvsE,OAAAA,CAAQ0+C,UAAU,CAAE74F,KAAAA,CAClCsmH,CAAAA,YAAY,CAAC,CAAA,CAAE,CAAGJ,MAClBI,CAAAA,YAAY,CAAC,EAAE,CAAGH,MAClBG,CAAAA,YAAY,CAAC,EAAE,CAAGF,MAClBE,CAAAA,YAAY,CAAC,CAAA,CAAE,CAAGD,OACnB,CACD,CACA,CAAA,IAAI,CAAC7K,cAAc,CAACp8E,kBAAkB,CAAG,SAAS+a,OAAO,CAAEn6C,KAAK,EAC/DsmH,YAAAA,CAAensE,OAAAA,CAAQn6C,KAAK,CAC5BkmH,MAAAA,CAASlmH,KAAK,CAAC,CAAA,CAAE,CACjBmmH,MAAAA,CAASnmH,KAAK,CAAC,CAAA,CAAE,CACjB,GAAIsmH,YAAY,CAAC,CAAA,CAAE,GAAKJ,QAAUI,YAAY,CAAC,EAAE,GAAKH,MAAAA,CAAQ,CAC7D3uB,EAAAA,CAAGmvB,UAAU,CAACxsE,OAAAA,CAAQ0+C,UAAU,CAAE74F,KAAAA,CAClCsmH,CAAAA,YAAY,CAAC,CAAA,CAAE,CAAGJ,MAClBI,CAAAA,YAAY,CAAC,EAAE,CAAGH,OACnB,CACD,CACA,CAAA,IAAI,CAAC3K,cAAc,CAACj8E,iBAAAA,CAAkB,CAAG,IAAI,CAACi8E,cAAc,CAACp8E,iBAAAA,CAC7D,CAAA,IAAI,CAACo8E,cAAc,CAACn8E,kBAAkB,CAAG,SAAS8a,OAAO,CAAEn6C,KAAK,CAAA,CAC/DsmH,YAAAA,CAAensE,QAAQn6C,KAAK,CAC5BkmH,OAASlmH,KAAK,CAAC,EAAE,CACjBmmH,MAAAA,CAASnmH,KAAK,CAAC,EAAE,CACjBomH,MAAAA,CAASpmH,KAAK,CAAC,CAAA,CAAE,CACjB,GAAIsmH,YAAY,CAAC,CAAA,CAAE,GAAKJ,QAAUI,YAAY,CAAC,EAAE,GAAKH,MAAAA,EAAUG,YAAY,CAAC,CAAA,CAAE,GAAKF,MAAAA,CAAQ,CAC3F5uB,EAAAA,CAAGovB,UAAU,CAACzsE,OAAAA,CAAQ0+C,UAAU,CAAE74F,KAAAA,CAClCsmH,CAAAA,YAAY,CAAC,CAAA,CAAE,CAAGJ,MAClBI,CAAAA,YAAY,CAAC,CAAA,CAAE,CAAGH,MAClBG,CAAAA,YAAY,CAAC,EAAE,CAAGF,OACnB,CACD,CACA,CAAA,IAAI,CAAC5K,cAAc,CAACh8E,iBAAAA,CAAkB,CAAG,IAAI,CAACg8E,cAAc,CAACn8E,iBAAAA,CAC7D,CAAA,IAAI,CAACm8E,cAAc,CAACl8E,kBAAkB,CAAG,SAAS6a,OAAO,CAAEn6C,KAAK,EAC/DsmH,YAAAA,CAAensE,OAAAA,CAAQn6C,KAAK,CAC5BkmH,MAAAA,CAASlmH,KAAK,CAAC,CAAA,CAAE,CACjBmmH,MAAAA,CAASnmH,KAAK,CAAC,CAAA,CAAE,CACjBomH,MAAAA,CAASpmH,KAAK,CAAC,CAAA,CAAE,CACjBqmH,OAASrmH,KAAK,CAAC,EAAE,CACjB,GAAIsmH,YAAY,CAAC,CAAA,CAAE,GAAKJ,MAAAA,EAAUI,YAAY,CAAC,CAAA,CAAE,GAAKH,QAAUG,YAAY,CAAC,CAAA,CAAE,GAAKF,QAAUE,YAAY,CAAC,EAAE,GAAKD,MAAAA,CAAQ,CACzH7uB,EAAAA,CAAGqvB,UAAU,CAAC1sE,OAAAA,CAAQ0+C,UAAU,CAAE74F,KAAAA,CAClCsmH,CAAAA,YAAY,CAAC,CAAA,CAAE,CAAGJ,MAClBI,CAAAA,YAAY,CAAC,EAAE,CAAGH,MAClBG,CAAAA,YAAY,CAAC,EAAE,CAAGF,MAClBE,CAAAA,YAAY,CAAC,EAAE,CAAGD,OACnB,CACD,CACA,CAAA,IAAI,CAAC7K,cAAc,CAAC/7E,iBAAAA,CAAkB,CAAG,IAAI,CAAC+7E,cAAc,CAACl8E,iBAAAA,CAAkB,CAC/E,IAAI,CAACk8E,cAAc,CAAC97E,gBAAAA,CAAiB,CAAG,SAASya,OAAO,CAAEn6C,KAAK,CAAA,CAC9Dw3F,EAAAA,CAAGsvB,gBAAgB,CAAC3sE,QAAQ0+C,UAAU,CAAE,MAAO74F,KAAAA,EAChD,CACA,CAAA,IAAI,CAACw7G,cAAc,CAAC77E,gBAAAA,CAAiB,CAAG,SAASwa,OAAO,CAAEn6C,KAAK,CAAA,CAC9Dw3F,GAAGuvB,gBAAgB,CAAC5sE,OAAAA,CAAQ0+C,UAAU,CAAE,KAAA,CAAO74F,KAAAA,EAChD,CACA,CAAA,IAAI,CAACw7G,cAAc,CAAC57E,iBAAiB,CAAG,SAASua,OAAO,CAAEn6C,KAAK,EAC9Dw3F,EAAAA,CAAGwvB,gBAAgB,CAAC7sE,OAAAA,CAAQ0+C,UAAU,CAAE,KAAA,CAAO74F,OAChD,CACA,CAAA,IAAI,CAACw7G,cAAc,CAACz7E,sBAAAA,CAAuB,CAAG,SAASoa,OAAO,CAAEn6C,KAAK,CAAA,CACpEw3F,EAAAA,CAAGyvB,UAAU,CAAC9sE,OAAAA,CAAQ0+C,UAAU,CAAE74F,KAAAA,EACnC,CACA,CAAA,IAAI,CAACw7G,cAAc,CAACr7E,qBAAAA,CAAsB,CAAG,SAASga,OAAO,CAAEn6C,KAAK,CAAA,CACnEw3F,EAAAA,CAAGgvB,UAAU,CAACrsE,OAAAA,CAAQ0+C,UAAU,CAAE74F,KAAAA,EACnC,CACA,CAAA,IAAI,CAACw7G,cAAc,CAACp7E,qBAAAA,CAAsB,CAAG,SAAS+Z,OAAO,CAAEn6C,KAAK,CAAA,CACnEw3F,EAAAA,CAAGivB,UAAU,CAACtsE,OAAAA,CAAQ0+C,UAAU,CAAE74F,KAAAA,EACnC,CACA,CAAA,IAAI,CAACw7G,cAAc,CAACn7E,qBAAAA,CAAsB,CAAG,SAAS8Z,OAAO,CAAEn6C,KAAK,CAAA,CACnEw3F,EAAAA,CAAGkvB,UAAU,CAACvsE,OAAAA,CAAQ0+C,UAAU,CAAE74F,KAAAA,EACnC,CACA,CAAA,IAAI,CAACw7G,cAAc,CAACh7E,iBAAiB,CAAG,SAAS2Z,OAAO,CAAEn6C,KAAK,CAAA,CAC9D,GAAIm6C,QAAQn6C,KAAK,GAAKA,MAAO,CAC5Bw3F,EAAAA,CAAG0vB,UAAU,CAAC/sE,OAAAA,CAAQ0+C,UAAU,CAAE74F,KAAAA,CAClCm6C,CAAAA,OAAAA,CAAQn6C,KAAK,CAAGA,MACjB,CACD,CACA,CAAA,IAAI,CAACw7G,cAAc,CAAC/6E,iBAAAA,CAAkB,CAAG,SAAS0Z,OAAO,CAAEn6C,KAAK,CAAA,CAC/DsmH,aAAensE,OAAAA,CAAQn6C,KAAK,CAC5BkmH,MAAAA,CAASlmH,KAAK,CAAC,CAAA,CAAE,CACjBmmH,MAAAA,CAASnmH,KAAK,CAAC,CAAA,CAAE,CACjB,GAAIsmH,YAAY,CAAC,EAAE,GAAKJ,MAAAA,EAAUI,YAAY,CAAC,CAAA,CAAE,GAAKH,MAAAA,CAAQ,CAC7D3uB,GAAG2vB,WAAW,CAAChtE,QAAQ0+C,UAAU,CAAE74F,KAAAA,CACnCsmH,CAAAA,YAAY,CAAC,CAAA,CAAE,CAAGJ,MAClBI,CAAAA,YAAY,CAAC,CAAA,CAAE,CAAGH,OACnB,CACD,CACA,CAAA,IAAI,CAAC3K,cAAc,CAAC96E,kBAAkB,CAAG,SAASyZ,OAAO,CAAEn6C,KAAK,CAAA,CAC/DsmH,YAAAA,CAAensE,QAAQn6C,KAAK,CAC5BkmH,OAASlmH,KAAK,CAAC,EAAE,CACjBmmH,MAAAA,CAASnmH,KAAK,CAAC,CAAA,CAAE,CACjBomH,MAAAA,CAASpmH,KAAK,CAAC,CAAA,CAAE,CACjB,GAAIsmH,YAAY,CAAC,CAAA,CAAE,GAAKJ,QAAUI,YAAY,CAAC,EAAE,GAAKH,MAAAA,EAAUG,YAAY,CAAC,CAAA,CAAE,GAAKF,MAAAA,CAAQ,CAC3F5uB,GAAG4vB,WAAW,CAACjtE,QAAQ0+C,UAAU,CAAE74F,KAAAA,CACnCsmH,CAAAA,YAAY,CAAC,CAAA,CAAE,CAAGJ,MAClBI,CAAAA,YAAY,CAAC,CAAA,CAAE,CAAGH,MAClBG,CAAAA,YAAY,CAAC,CAAA,CAAE,CAAGF,OACnB,CACD,CACA,CAAA,IAAI,CAAC5K,cAAc,CAAC76E,iBAAAA,CAAkB,CAAG,SAASwZ,OAAO,CAAEn6C,KAAK,CAAA,CAC/DsmH,YAAAA,CAAensE,QAAQn6C,KAAK,CAC5BkmH,OAASlmH,KAAK,CAAC,EAAE,CACjBmmH,MAAAA,CAASnmH,KAAK,CAAC,CAAA,CAAE,CACjBomH,MAAAA,CAASpmH,KAAK,CAAC,CAAA,CAAE,CACjBqmH,MAAAA,CAASrmH,KAAK,CAAC,CAAA,CAAE,CACjB,GAAIsmH,YAAY,CAAC,EAAE,GAAKJ,MAAAA,EAAUI,YAAY,CAAC,CAAA,CAAE,GAAKH,MAAAA,EAAUG,YAAY,CAAC,CAAA,CAAE,GAAKF,MAAAA,EAAUE,YAAY,CAAC,CAAA,CAAE,GAAKD,OAAQ,CACzH7uB,EAAAA,CAAG6vB,WAAW,CAACltE,QAAQ0+C,UAAU,CAAE74F,MACnCsmH,CAAAA,YAAY,CAAC,CAAA,CAAE,CAAGJ,MAClBI,CAAAA,YAAY,CAAC,CAAA,CAAE,CAAGH,MAClBG,CAAAA,YAAY,CAAC,CAAA,CAAE,CAAGF,MAClBE,CAAAA,YAAY,CAAC,CAAA,CAAE,CAAGD,OACnB,CACD,CACA,CAAA,IAAI,CAAC7K,cAAc,CAAC56E,oBAAAA,CAAqB,CAAG,SAASuZ,OAAO,CAAEn6C,KAAK,CAAA,CAClEw3F,EAAAA,CAAG6jB,UAAU,CAAClhE,OAAAA,CAAQ0+C,UAAU,CAAE74F,KAAAA,EACnC,CACA,CAAA,IAAI,CAACw7G,cAAc,CAAC36E,qBAAAA,CAAsB,CAAG,SAASsZ,OAAO,CAAEn6C,KAAK,CAAA,CACnEw3F,EAAAA,CAAG8vB,WAAW,CAACntE,OAAAA,CAAQ0+C,UAAU,CAAE74F,KAAAA,EACpC,CACA,CAAA,IAAI,CAACw7G,cAAc,CAAC16E,sBAAsB,CAAG,IAAI,CAAC06E,cAAc,CAAC56E,oBAAAA,CACjE,CAAA,IAAI,CAAC46E,cAAc,CAACz6E,sBAAAA,CAAuB,CAAG,SAASoZ,OAAO,CAAEn6C,KAAK,CAAA,CACpEw3F,GAAGmvB,UAAU,CAACxsE,QAAQ0+C,UAAU,CAAE74F,KAAAA,EACnC,CACA,CAAA,IAAI,CAACw7G,cAAc,CAACx6E,sBAAAA,CAAuB,CAAG,SAASmZ,OAAO,CAAEn6C,KAAK,CAAA,CACpEw3F,GAAG2vB,WAAW,CAAChtE,QAAQ0+C,UAAU,CAAE74F,OACpC,CACA,CAAA,IAAI,CAACw7G,cAAc,CAACv6E,sBAAAA,CAAuB,CAAG,IAAI,CAACu6E,cAAc,CAACz6E,sBAAAA,CAAuB,CACzF,IAAI,CAACy6E,cAAc,CAACt6E,uBAAuB,CAAG,SAASiZ,OAAO,CAAEn6C,KAAK,CAAA,CACpEw3F,EAAAA,CAAGovB,UAAU,CAACzsE,OAAAA,CAAQ0+C,UAAU,CAAE74F,KAAAA,EACnC,CACA,CAAA,IAAI,CAACw7G,cAAc,CAACr6E,uBAAuB,CAAG,SAASgZ,OAAO,CAAEn6C,KAAK,EACpEw3F,EAAAA,CAAG4vB,WAAW,CAACjtE,OAAAA,CAAQ0+C,UAAU,CAAE74F,KAAAA,EACpC,CACA,CAAA,IAAI,CAACw7G,cAAc,CAACp6E,sBAAAA,CAAuB,CAAG,IAAI,CAACo6E,cAAc,CAACt6E,sBAAAA,CAClE,CAAA,IAAI,CAACs6E,cAAc,CAACn6E,uBAAuB,CAAG,SAAS8Y,OAAO,CAAEn6C,KAAK,EACpEw3F,EAAAA,CAAGqvB,UAAU,CAAC1sE,OAAAA,CAAQ0+C,UAAU,CAAE74F,KAAAA,EACnC,CACA,CAAA,IAAI,CAACw7G,cAAc,CAACl6E,sBAAAA,CAAuB,CAAG,SAAS6Y,OAAO,CAAEn6C,KAAK,EACpEw3F,EAAAA,CAAG6vB,WAAW,CAACltE,OAAAA,CAAQ0+C,UAAU,CAAE74F,KAAAA,EACpC,CACA,CAAA,IAAI,CAACw7G,cAAc,CAACj6E,sBAAAA,CAAuB,CAAG,IAAI,CAACi6E,cAAc,CAACn6E,uBAAuB,CACzF,IAAI,CAACm6E,cAAc,CAACl7E,qBAAAA,CAAsB,CAAG,SAAS6Z,OAAO,CAAEn6C,KAAK,CAAA,CACnEw3F,EAAAA,CAAGwvB,gBAAgB,CAAC7sE,OAAAA,CAAQ0+C,UAAU,CAAE,KAAA,CAAO74F,KAAAA,EAChD,CACA,CAAA,IAAI,CAACunH,iBAAiB,CAAG,IAAI,CAAC3nH,KAAK,CAAC6mC,OAAO,CAAC,QAAA,CAAA,CAC5C,IAAI,CAACwZ,QAAQ,GACd,CA46CD,CAAA,CAEA,IAAIunE,eAAAA,CAAkB,KAAA,CACrBh4E,MAAAA,CAAO+I,WAAW,CAAE,CACpB,CACD,EAEA,IAAIkvE,gBAAAA,CAAmB,MACtBjiF,OAAAA,CAAQa,MAAM,CAAE,CAChB,CACAkgB,KAAKlgB,MAAM,CAAEkc,YAAY,CAAE,CAC3B,CACAvc,WAAAA,EAAc,CACd,CACAS,OAAAA,CAAQJ,MAAM,CAAEtvC,OAAO,CAAE62D,MAAM,CAAEvmB,KAAK,CAAE,CACxC,CACD,CAAA,CAEA,IAAIqgF,WAAa,KAAA,CAChBliF,OAAAA,CAAQmc,MAAM,CAAE,CAChB,CACA3b,WAAAA,EAAc,CACd,CACA0S,cAAAA,CAAerS,MAAM,CAAEsb,MAAM,CAAE,CAC/B,CACD,EAEA,IAAIgmE,WAAAA,CAAc,MACjBniF,OAAAA,CAAQa,MAAM,CAAE,CAChB,CACA2E,gBAAgBC,IAAI,CAAE,CACtB,CACAjF,WAAAA,EAAc,CACd,CACA9uC,KAAK03C,MAAM,CAAEjlC,QAAQ,CAAE,CACtB,OAAO,IACR,CACD,CAAA,CAEA,IAAIi+G,iBAAmB,KAAA,CACtBpiF,OAAAA,CAAQa,MAAM,CAAE,CAChB,CACAmJ,MAAAA,CAAOuW,YAAY,CAAE,CACrB,CACD,CAAA,CAEA,IAAI8hE,iBAAmB,KAAA,CACtBr/G,GAAAA,CAAIrQ,EAAE,CAAE8vF,kBAAkB,CAAEC,aAAa,CAAEC,kBAAkB,CAAE,CAC/D,CACD,CAAA,CAEA,IAAI2/B,kBAAoB,KAAA,CACvBtiF,OAAAA,CAAQa,MAAM,CAAE,CAChB,CACAL,WAAAA,EAAc,CACd,CACAwJ,MAAAA,CAAO0B,aAAa,CAAE,CACtB,CACD,CAAA,CAEA,IAAI62E,cAAgB,KAAA,CACnB/1E,MAAAA,CAAOnB,SAAS,CAAE,CAClB,CACArL,OAAAA,EAAU,CACV,CACD,CAAA,CAEA,IAAIwiF,mBAAAA,CAAsB,KAAA,CACzBxiF,SAAU,CACV,CACD,EAEA,IAAIyiF,kBAAAA,CAAqB,cAAc3oC,cAAAA,CAMtCK,KAAAA,CAAMptC,UAAU,CAAE11C,IAAI,CAAE,CACvB01C,UAAAA,CAAWC,SAAS,CAAG,IAAI,CAAC//B,MAAM,CAClC8/B,UAAAA,CAAW1sC,MAAM,CAAG,CACpB0sC,CAAAA,UAAAA,CAAWxF,OAAO,CAAG,IAAIv6B,UAAAA,CAAW3V,KAAO,CAAA,EAC5C,CARA,YAAYwpC,MAAM,CAAE,CACnB,KAAK,CAACA,MAAAA,CAAQ,CAAA,CAAG,GAFlB5zB,gBAAAA,CAAAA,IAAAA,CAAAA,QAAAA,CAAAA,MAAAA,CAGC,CAAA,IAAI,CAACA,MAAM,CAAG,IAAI2vE,aAAAA,CAAc/7C,QACjC,CAMD,CAAA,CAEA,IAAI6hF,kBAAAA,CAAqB,cAAcnoE,eAiBtCva,OAAAA,EAAU,CACT,KAAK,CAACA,UACP,CACA+oD,cAAAA,EAAiB,CAChB,IAAI,CAAC45B,qBAAqB,CAAG,IAC7B,CAAA,IAAI,CAAC12G,SAAS,CAAG,OACjB,CAAA,IAAI,CAACwsE,YAAY,CAAG,OACpB,CAAA,IAAI,CAACluC,UAAU,CAAG,CAClB,CAAA,IAAI,CAAC0+C,WAAW,CAAG,EACnB,CAAA,IAAI,CAACrkC,cAAc,CAAG,IACtB,CAAA,IAAI,CAACD,cAAc,CAAG,IACtB,CAAA,IAAI,CAACE,aAAa,CAAG,IACrB,CAAA,IAAI,CAACC,mBAAmB,CAAG,CAC3B,CAAA,IAAI,CAAC1C,aAAa,CAAG,CACrB,CAAA,IAAI,CAACsC,aAAa,CAAG,EACrB,CAAA,IAAI,CAACW,sBAAsB,CAAG,KAC9B,CAAA,IAAI,CAACmkC,kBAAkB,CAAG,IAC1B,CAAA,IAAI,CAACC,oBAAoB,CAAG,KAC5B,CAAA,IAAI,CAACxuC,sBAAsB,CAAG,IAC9B,CAAA,IAAI,CAACsI,0BAA0B,CAAG,IAClC,CAAA,IAAI,CAACmmC,mBAAmB,CAAG,MAC5B,CACAjvC,UAAW,CACV,KAAK,CAACA,QAAAA,GACP,CACAoI,UAAAA,EAAa,CACZ,KAAK,CAACA,UAAAA,GACP,CACAE,QAAAA,EAAW,CACV,KAAK,CAACA,QAAAA,GACP,CACAmvD,WAAAA,EAAc,CACd,CACAkB,SAAAA,EAAY,CACZ,CACAwD,UAAAA,CAAW1nH,EAAE,CAAEof,EAAE,CAAE+D,CAAC,CAAEsP,EAAE,CAAEupB,MAAM,CAAE,CAClC,CACAmK,uBAAuBkL,YAAY,CAAEroD,MAAM,CAAE,CAC5C,OAAO,IAAIkqH,gBAAAA,CAAiB7hE,aAAcroD,MAAAA,CAC3C,CACA27C,sBAAsBd,WAAW,CAAE,CAClC,OAAO,IAAIivE,eAAAA,CAAgBjvE,WAAAA,CAC5B,CACA4mC,gBAAAA,CAAiBx9B,MAAM,CAAE,CACxB,OAAO,IAAI+lE,UAAAA,CAAW/lE,MAAAA,CACvB,CACAk/B,uBAAAA,CAAwB3vC,aAAa,CAAE,CACtC,OAAO,IAAI42E,iBACZ,CACAp1E,mBAAAA,CAAoB7B,SAAS,CAAE,CAC9B,OAAO,IAAIk3E,aACZ,CACAphF,0BAA0ByqB,eAAe,CAAE,CAC1C,OAAO,IAAI42D,mBACZ,CACA5mC,YAAAA,CAAa5jF,KAAK,CAAEqzC,SAAS,CAAEC,OAAO,CAAE,CACxC,CACA3G,kBAAkB9B,OAAO,CAAE,CAC1B,OAAO,IAAIs/E,YAAYt/E,OAAAA,CACxB,CACAqlB,uBAAuBnL,YAAY,CAAE,CACpC,OAAO,IAAIklE,iBAAiBllE,YAAAA,CAC7B,CACA8wC,sBAAsB1sC,YAAY,CAAE,CACnC,OAAO,IAAIkhE,gBACZ,CACAt0B,uBAAuB5K,YAAY,CAAE,CACpC,OAAO,IACR,CACAniC,IAAAA,CAAKC,UAAU,CAAElO,WAAW,CAAEmO,YAAY,CAAEC,YAAY,CAAE7pD,KAAAA,CAAQ,IAAI,CAAE8pD,KAAO,IAAI,CAAE,CACrF,CACA26B,SAAAA,CAAU5/B,MAAM,CAAEmzC,YAAAA,CAAe,KAAK,CAAE,CACxC,CACAxwC,aAAAA,CAAc9B,UAAU,CAAE,CAC1B,CACA0C,cAAczC,UAAU,CAAE,CAC1B,CACA6C,gBAAgBC,YAAY,CAAEC,WAAW,CAAE,CAC3C,CACAC,aAAAA,CAAchuD,CAAC,CAAEgU,CAAC,CAAE1W,CAAC,CAAED,CAAC,CAAE,CAC1B,CACA4wD,YAAYhD,QAAQ,CAAE,CACtB,CACAiD,aAAahD,SAAS,CAAE,CACxB,CACAuyC,kBAAAA,CAAmB3gD,KAAK,CAAE,CAC1B,CACA4N,uBAAAA,EAA0B,CACzB,KAAK,CAACA,uBAAAA,GACP,CACAthD,KAAAA,CAAM8I,QAAQ,CAAE,CAChB,CACAoU,WAAAA,CAAYrpB,EAAE,CAAEof,EAAE,CAAE+D,CAAC,CAAEsP,EAAE,CAAE,CAC3B,CACAsuE,UAAAA,CAAW/gG,EAAE,CAAEof,EAAE,CAAE+D,CAAC,CAAEsP,EAAE,CAAE,CAC1B,CACA2mC,gBAAAA,CAAiBlf,MAAM,CAAE0kC,IAAI,CAAE1lB,MAAM,CAAEvmB,KAAK,CAAE,CAC7C,OAAO,IACR,CAlHA,WAAA,CAAYya,MAAM,CAAEn4C,QAAAA,CAAW,EAAE,CAAE,CAClC,KAAK,CAACm4C,MAAAA,CAAQn4C,QAAAA,CAAAA,CACdA,SAAW,IAAI,CAAC6hD,WAAW,CAC3B,IAAI,CAAC1B,MAAM,CAAG,IACd,CAAA,IAAI,CAAC/B,WAAW,CAAGvlB,eACnB,CAAA,IAAI,CAACyK,OAAO,CAAG,CACf,CAAA,IAAI,CAAC0c,UAAU,CAAG,IAAIkD,aAAa,CAClC5xD,IAAAA,CAAM,cACNgrC,cAAAA,CAAgB,IAAI,CACpBoB,KAAAA,CAAO,IAAI,CAACmkB,WAAW,CAACnkB,KAAK,CAC7BikB,OAAAA,CAAS,IAAI,CAACf,eAAe,CAC7Btd,OAAAA,CAAS,IAAI,CAACA,OAAM,CACrB,CAAA,CACA,IAAI,CAACshD,cAAc,EACnB,CAAA,IAAI,CAAChtC,cAAc,CAAG,IAAI0mE,kBAAAA,CAAmB,IAAI,EAClD,CAoGD,EAEA,SAASG,oBAAAA,CAAqBtmE,MAAM,CAAEn4C,QAAAA,CAAW,EAAE,CAAA,CAClD,MAAM0+G,WAAAA,CAAc1+G,QAAAA,CAAS0+G,WAAW,EAAI,EAAE,CAC9C,GAAI,CAACA,YAAY9sH,QAAQ,CAAC8mC,iBAAAA,CAAAA,CAAoB,CAC7CgmF,YAAYpvH,IAAI,CAACopC,mBAClB,CACA,GAAI,CAACgmF,WAAAA,CAAY9sH,QAAQ,CAACinC,eAAAA,CAAAA,CAAkB,CAC3C6lF,YAAYpvH,IAAI,CAACupC,iBAClB,CACA,MAAM8lF,kBAAoB,EAAE,CAC5B,IAAK,IAAInwH,GAAK,CAAA,CAAGA,EAAAA,CAAKkwH,YAAYjwH,MAAM,CAAED,KAAM,CAC/C,MAAM2vD,WAAaugE,WAAW,CAAClwH,GAAG,CAClC,GAAI,CAAC2vD,UAAAA,GAAexlB,mBAAqBwlB,UAAAA,GAAevlB,sBAAqB,GAAMroC,MAAAA,EAAQH,WAAWsiF,GAAAA,CAAK,CAC1G,MAAMkU,YAAAA,CAAezoC,UAAAA,GAAevlB,uBAAyB,MAAA,CAAS,OACtE+lF,iBAAAA,CAAkBrvH,IAAI,CAAC,IAAA,CACtB,MAAMotC,OAAS,IAAIqnD,oBAAAA,CAAqB5rC,OAAQ,CAAE,GAAGn4C,QAAQ,CAAE4mF,YAAa,CAAA,CAAA,CAC5E,OAAOlqD,OAAOgpD,UAAU,CAAC1lF,SAAS2lF,UAAU,CAAE3lF,SAAS4lF,QAAQ,CAChE,GACD,CACA,GAAIznC,aAAezlB,iBAAAA,CAAmB,CACrCimF,kBAAkBrvH,IAAI,CAAC,IAAA,CACtB,OAAO,IAAI62G,mBAAAA,CAAoBhuD,MAAAA,CAAQn4C,SACxC,CAAA,EACD,CACA,GAAIm+C,UAAAA,GAAetlB,eAAAA,CAAiB,CACnC8lF,iBAAAA,CAAkBrvH,IAAI,CAAC,IAAA,CACtB,OAAO,IAAIivH,kBAAAA,CAAmBpmE,MAAAA,CAAQn4C,SACvC,CAAA,EACD,CACD,CACA,OAAO,IAAIsmF,OAAAA,CAAQ,CAACz0B,SAAUo7B,MAAAA,GAAAA,CAC7B,IAAI2xB,QAAU,CAAA,CACd,MAAMC,KAAO,IAAA,CACZ,GAAID,SAAWD,iBAAAA,CAAkBlwH,MAAM,CAAE,CACxCw+F,MAAAA,CAAO,IAAI1hG,KAAAA,CAAM,oCAAA,CAAA,EAClB,CAAA,KAAO,CACN+6F,QAAQxpD,OAAO,CAAC6hF,iBAAiB,CAACC,OAAAA,EAAAA,CAAU,IAAIpkH,IAAI,CAAC,MAACkiC,EAAAA,CACrD,GAAIA,MAAAA,CAAQ,CACXm1B,SAASn1B,MAAAA,EACV,CAAA,KAAO,CACNmiF,IAAAA,GACD,CACD,CAAA,CAAA,CAAGvb,KAAK,CAAC,IAAClpG,EAAAA,CACTY,QAAQ8jH,GAAG,CAAC1kH,MACZykH,IAAAA,GACD,CAAA,EACD,CACD,CAAA,CACAA,IAAAA,GACD,EACD,CAEA,IAAIE,iBAAmB,KAAA,CAAA,WAAA,EAAA,CACtB1oH,gBAAAA,CAAAA,IAAAA,CAAAA,QAAAA,MAAAA,CAAAA,CACA0kC,gBAAAA,CAAAA,IAAAA,CAAAA,SAAAA,CAAU,OACX,CAAA,CACA,IAAIikF,QAAU,KAAA,CAkBbC,YAAAA,CAAa3tH,IAAI,CAAE+E,KAAK,CAAE,CACzB,IAAI6oH,MAAQ,IAAI,CAACC,UAAU,CAACj0H,GAAG,CAACoG,IAAAA,CAAAA,CAChC,GAAI,CAAC4tH,KAAAA,CAAO,CACXA,KAAAA,CAAQ,IAAIH,gBACZG,CAAAA,KAAAA,CAAMnkF,OAAO,CAAG,IAAI,CAAC2B,MAAM,CAACzmC,KAAK,CAAC6mC,OAAO,CAACxrC,IAAAA,CAAAA,CAC1C,IAAI,CAAC6tH,UAAU,CAAChqH,GAAG,CAAC7D,KAAM4tH,KAAAA,EAC3B,CACAA,MAAM7oH,KAAK,CAAGA,MACf,CACAivG,YAAAA,CAAah0G,IAAI,CAAE,CAClB,OAAO,IAAI,CAAC6tH,UAAU,CAACj0H,GAAG,CAACoG,IAAAA,CAAAA,EAAO+E,KACnC,CACA+oH,eAAAA,CAAgB9tH,IAAI,CAAE,CACrB,IAAI,CAAC6tH,UAAU,CAAChoH,MAAM,CAAC7F,MACxB,CACAuqC,OAAAA,EAAU,CACT,IAAI,CAACC,IAAI,EAAED,OAAAA,EACX,CAAA,IAAI,CAACC,IAAI,CAAG,KACb,CACAowD,eAAAA,EAAkB,CACjB,IAAK,KAAM,EAAGgzB,KAAAA,CAAM,GAAI,IAAI,CAACC,UAAU,CAAE,CACxCD,KAAAA,CAAMnkF,OAAO,CAACmV,QAAQ,CAACgvE,KAAAA,CAAM7oH,KAAK,EACnC,CACD,CACAgpH,aAAAA,CAAct0H,EAAE,CAAEof,EAAE,CAAEkB,EAAE,CAAE,CACzB,IAAI,CAAC8gF,MAAM,CAAGphG,EACd,CAAA,IAAI,CAACqhG,MAAM,CAAGjiF,EACd,CAAA,IAAI,CAACkiF,MAAM,CAAGhhF,EACd,CAAA,IAAI,CAACuyE,iBAAiB,CAAG,EACzB,CAAA,IAAI,CAACC,cAAc,CAAG,KACvB,CACAyhC,sBAAsBv0B,SAAS,CAAEjiF,MAAAA,CAAS,IAAI,CAAE,CAC/C,IAAI,CAAC80E,iBAAiB,CAAGmN,SACzB,CAAA,IAAI,CAAClN,cAAc,CAAG/0E,MACtB,CAAA,IAAI,CAACg1E,kBAAkB,CAAG,IAAI,CAACphD,MAAM,CAAC8E,cAAa,CAEpD,OAAO+9E,iBAAiBlhF,KAAK,CAAE9vC,MAAM,CAAEixH,YAAAA,CAAe,KAAK,CAAE,CAC5D,GAAInhF,KAAAA,EAASmhF,YAAAA,CAAc,CAC1B,OAAOjxH,MAAAA,CAAO4G,GAAG,CAACkpC,KAAAA,CAAO,CAAA,CAC1B,CACA,MAAMl0B,EAAAA,CAAKpc,IAAAA,CAAKmV,IAAI,CAACm7B,KAAAA,CAAQmhF,cAC7B,OAAOjxH,MAAAA,CAAO4G,GAAG,CAACpH,IAAAA,CAAKmV,IAAI,CAACm7B,KAAAA,CAAQl0B,IAAKA,EAAAA,CAC1C,CAlDA,YAAYmyB,cAAc,CAAE0b,MAAM,CAAE1mD,KAAO,SAAS,CAAE,CATtD0mD,gBAAAA,CAAAA,IAAAA,CAAAA,QAAAA,CAAS,MACT1mD,gBAAAA,CAAAA,IAAAA,CAAAA,MAAAA,CAAAA,MAAAA,CAAAA,CACA6tH,gBAAAA,CAAAA,IAAAA,CAAAA,aAA6B,IAAIvoH,GAAAA,CAAAA,CACjCu1F,sBAAAA,QAAAA,CAAS,CAAA,CAAA,CACTC,sBAAAA,QAAAA,CAAAA,MAAAA,CAAAA,CACAC,gBAAAA,CAAAA,IAAAA,CAAAA,SAAAA,MAAAA,CAAAA,CACAzO,sBAAAA,mBAAAA,CAAoB,IACpBC,gBAAAA,CAAAA,IAAAA,CAAAA,gBAAAA,CAAiB,MACjBC,gBAAAA,CAAAA,IAAAA,CAAAA,oBAAAA,CAAqB,EAEpB,CAAA,IAAI,CAACphD,MAAM,CAAGJ,cACd,CAAA,IAAI,CAAC0b,MAAM,CAAGA,MACd,CAAA,IAAI,CAAC1mD,IAAI,CAAGA,IAAAA,CACZ,GAAIgrC,eAAeukB,eAAe,CAAE,CACnC,IAAI,CAAC/kB,IAAI,CAAGQ,cAAAA,CAAeutD,iBAAiB,CAAC,IAAI,EAClD,CACD,CA4CD,CAAA,CAEA,IAAI41B,aAAe,KAAA,CAIlB,IAAIrkC,UAAW,CACd,OAAO,IAAI,CAACskC,SAAS,CAItB,IAAIrhF,OAAQ,CACX,OAAO,IAAI,CAACshF,MAAM,CASnB9jF,SAAU,CACT,IAAI,CAACC,IAAI,EAAED,WACX,CAAA,IAAI,CAACC,IAAI,CAAG,KACb,CACAsZ,SAASgmC,QAAQ,CAAE,CAClB,IAAI,CAACskC,SAAS,CAAGtkC,QACjB,CAAA,IAAI,CAACt/C,IAAI,CAACsZ,QAAQ,GAAGgmC,QAAAA,EACtB,CACAv8E,GAAAA,CAAIrQ,EAAE,CAAE8vF,kBAAkB,CAAEC,aAAa,CAAEC,kBAAkB,CAAEnH,UAAAA,CAAa,CAAC,CAAEoH,aAAAA,CAAgB,CAAC,CAAE,CACjG,IAAI,CAAC3iD,IAAI,CAACj9B,GAAG,CAACrQ,GAAI8vF,kBAAAA,CAAoBC,aAAAA,CAAeC,mBAAoBnH,UAAAA,CAAYoH,aAAAA,EACtF,CACAp2C,MAAAA,CAAOhK,KAAK,CAAE,CACb,IAAI,CAACshF,MAAM,CAAGthF,KACd,CAAA,IAAI,CAACuhF,cAAc,CAAG,IAAI,CAAC9jF,IAAI,CAACuM,MAAM,GAAGhK,KAAAA,CAAAA,EAAU,EACpD,CAnBA,WAAA,CAAY3B,MAAM,CAAEk4D,cAAAA,CAAiB,CAAC,CAAE,CAbxCl4D,sBAAAA,QAAAA,CAAAA,QACAk4D,gBAAAA,CAAAA,IAAAA,CAAAA,gBAAAA,CAAAA,MAAAA,CAAAA,CACA8qB,gBAAAA,CAAAA,IAAAA,CAAAA,WAAAA,CAAY,CAAA,CAAA,CAIZ5jF,sBAAAA,MAAAA,CAAO,IAAA,CAAA,CACP6jF,sBAAAA,QAAAA,CAAS,CAAA,CAAA,CAIT50B,sBAAAA,WAAAA,CAAY,CAAA,CAAA,CACZ60B,gBAAAA,CAAAA,IAAAA,CAAAA,gBAAAA,CAAiB,EAEhB,CAAA,IAAI,CAACljF,MAAM,CAAGA,MACd,CAAA,IAAI,CAACk4D,cAAc,CAAGA,cACtB,CAAA,IAAI,CAAC94D,IAAI,CAAGY,OAAOgtD,qBAAqB,CAAC,IAAI,EAC9C,CAgBD,CAAA,CAEA,IAAIm2B,kBAAoB,KAAA,CA4BvBC,mBAAAA,CAAoBC,WAAW,CAAEvwE,KAAK,CAAE,CACvC,GAAIA,QAAU7oB,iBAAAA,EAAqBo5F,WAAAA,CAAYvwE,KAAK,GAAKA,KAAAA,CAAO,CAC/D,MAAMq+C,EAAAA,CAAK,IAAI,CAACnxD,MAAM,CAACmxD,EAAE,CACzBA,EAAAA,CAAGO,UAAU,CAACP,EAAAA,CAAGa,YAAY,CAAEqxB,WAAAA,CAAYjkF,IAAI,CAAC8xD,QAAQ,CAAA,CACxDC,GAAGQ,UAAU,CAACR,GAAGa,YAAY,CAAEqxB,WAAAA,CAAY38E,OAAO,CAAEyqD,EAAAA,CAAGM,YAAY,EACpE,CACA,OAAO,IAAIz9C,YAAAA,CAAaqvE,WAAAA,CAAYrjF,MAAM,CAAEqjF,YAAYhsH,MAAM,CAAEgsH,YAAY9uE,WAAW,CAAE,CACxFzB,KAAAA,CACAriC,IAAAA,CAAM4yG,WAAAA,CAAY38E,OAAM,CACzB,CACD,CACA,OAAOmuD,YAAAA,CAAaj1D,cAAc,CAAEoqC,UAAU,CAAEp1E,IAAI,CAAE4iF,gBAAgB,CAAEC,oBAAAA,CAAuBvtD,8BAA8B,CAAE,CAC9H,OAAO,IAAIuuD,MAAAA,CAAO74C,cAAAA,CAAgB61C,qBAAAA,CAAsBE,gBAAgB,CAAC/1C,cAAAA,CAAgB,CACxFhrC,KACAo1E,UAAAA,CACAwN,gBAAAA,CACAC,qBACAC,oBAAAA,CAAsB,IAAA,CACtBzN,aAAc,6CACf,CAAA,CAAA,CACD,CACA9qC,OAAAA,EAAU,CACT,IAAI,CAACmkF,mBAAmB,CAAC9kH,OAAO,CAAC,MAAC4N,EAAWA,OAAO+yB,OAAO,EAAA,EAC5D,CACAokF,OAAAA,CAAQjoE,MAAM,CAAEkoE,IAAAA,CAAO,IAAI,CAAE,CAC5B,MAAMxjF,OAAS,IAAI,CAACA,MAAM,CAC1B,MAAMyjF,MAAQzjF,MAAAA,CAAOggB,eAAe,EAAA,CACpChgB,MAAAA,CAAOwf,eAAe,CAAC,IAAA,CAAA,CACvBxf,OAAOqxE,WAAW,EAAA,CAClB,IAAI,CAACqS,aAAa,CAACllH,OAAO,CAAC,MAAC4N,EAAW4zB,MAAAA,CAAOyf,eAAe,CAACrzC,MAAAA,CAAAA,CAAAA,CAC9D4zB,OAAO63E,SAAS,CAAC,KAAA,CAAA,CACjB73E,MAAAA,CAAOu3E,2BAA2B,CAAC,IAAI,CAACoM,cAAc,CAAA,CACtD3jF,OAAOk7C,SAAS,CAAC5/B,QACjBtb,MAAAA,CAAOmgB,IAAI,CAAC,CACXj3C,IAAAA,CAAMmqB,iBACNqnD,IAAAA,CAAM,CAAA,CACNC,WAAY,CAAA,CACZh5C,KAAAA,CAAO,IAAI,CAAC+hF,aAAa,CAAC,CAAA,CAAE,CAACnvE,WAAW,CACxCqmC,QAAS,KACV,CAAA,CAAA,CACA56C,OAAOu3E,2BAA2B,CAAC,MACnCv3E,MAAAA,CAAO63E,SAAS,CAAC,IAAA,CAAA,CACjB73E,MAAAA,CAAOuyE,SAAS,EAAA,CAChBvyE,MAAAA,CAAOwf,eAAe,CAACikE,OACvB,GAAID,IAAAA,CAAM,CACT,IAAI,CAACI,UAAU,CAACplH,OAAO,CAAC,CAAC,CAAEqlH,KAAK,CAAE9rH,MAAM,CAAE,GAAA,CACzC,IAAI8K,IAAMghH,KAAAA,CAAMzkF,IAAI,CAAC8xD,QAAQ,CAC7B2yB,KAAAA,CAAMzkF,IAAI,CAAC8xD,QAAQ,CAAGn5F,MAAAA,CAAOqnC,IAAI,CAAC8xD,QAAQ,CAC1Cn5F,MAAAA,CAAOqnC,IAAI,CAAC8xD,QAAQ,CAAGruF,GAAAA,CACvBA,GAAAA,CAAMghH,KAAAA,CAAMzkF,IAAI,CAAC2yD,GACjB8xB,CAAAA,KAAAA,CAAMzkF,IAAI,CAAC2yD,GAAG,CAAGh6F,OAAOqnC,IAAI,CAAC2yD,GAAG,CAChCh6F,OAAOqnC,IAAI,CAAC2yD,GAAG,CAAGlvF,IACnB,CAAA,CAAA,CACAm9B,MAAAA,CAAO4zE,0BAA0B,CAAC,IAAI,CAAC8P,aAAa,EACrD,CACD,CACA,IAAIL,aAAc,CACjB,OAAO,IAAI,CAACK,aAAa,CAAC,CAAA,CAC3B,CACA,IAAII,YAAAA,EAAe,CAClB,OAAO,IAAI,CAACH,cAAc,CAAC,CAAA,CAC5B,CACA,IAAII,YAAAA,EAAe,CAClB,OAAO,IAAI,CAACL,aACb,CACA,IAAIM,aAAAA,EAAgB,CACnB,OAAO,IAAI,CAACL,cAAc,CA7F3B,WAAA,CAAYN,WAAW,CAAES,YAAY,CAAEhxE,KAAAA,CAAQ7oB,iBAAiB,CAAE,CACjE,MAAMg6F,YAAcnzH,KAAAA,CAAMC,OAAO,CAACsyH,WAAAA,CAAAA,CAAeA,WAAAA,CAAc,KAC/D,GAAI,CAACY,WAAAA,EAAeH,YAAAA,GAAiB,MAAK,EAAK,EAAEA,YAAAA,YAAwB9vE,YAAW,EAAI,CACvFlB,KAAAA,CAAQgxE,aACRA,YAAAA,CAAe,OAChB,CACA,MAAMv6D,QAAU06D,WAAAA,EAAe,CAAC,CAAEJ,KAAAA,CAAOR,WAAAA,CAAatrH,MAAAA,CAAQ+rH,YAAa,EAAE,CAC7E,IAAI,CAAC9jF,MAAM,CAAG,CAACupB,OAAO,CAAC,CAAA,CAAE,CAACs6D,KAAK,EAAIt6D,OAAO,CAAC,CAAA,CAAE,CAACxxD,MAAK,EAAGioC,MAAM,CAC5D,IAAI,CAAC0jF,aAAa,CAAGn6D,QAAQqY,MAAM,CAAC,KAACzS,EAAUA,KAAAA,CAAM00D,KAAK,CAAA,CAAEzrH,GAAG,CAAC,KAAC+2D,EAAUA,MAAM00D,KAAK,CACtF,CAAA,IAAI,CAACF,cAAc,CAAG,EAAE,CACxB,IAAI,CAACC,UAAU,CAAG,EAAE,CACpB,IAAI,CAACN,mBAAmB,CAAG,EAAE,CAC7B/5D,OAAAA,CAAQ/qD,OAAO,CAAC,KAAC2wD,EAAAA,CAChB,MAAM00D,MAAQ10D,KAAAA,CAAM00D,KAAK,CACzB,IAAI9rH,MAAAA,CAASo3D,MAAMp3D,MAAM,CACzB,GAAI8rH,KAAAA,EAAS9rH,MAAAA,GAAW,MAAK,EAAK,CAACksH,YAAa,CAC/ClsH,MAAAA,CAAS,IAAI,CAACqrH,mBAAmB,CAACS,KAAAA,CAAO/wE,OACzC,IAAI,CAACwwE,mBAAmB,CAAC1wH,IAAI,CAACmF,MAAAA,EAC/B,CACA,GAAIA,MAAAA,CAAQ,CACX,IAAI,CAAC4rH,cAAc,CAAC/wH,IAAI,CAACmF,MAAAA,CAAAA,CACzB,GAAI8rH,MAAO,CACV,IAAI,CAACD,UAAU,CAAChxH,IAAI,CAAC,CAAEixH,MAAO9rH,MAAO,CAAA,EACtC,CACD,CACD,CAAA,EACD,CAqED,CAAA,CAEA,SAASmsH,KAAKz1H,CAAC,CAAA,CACd,IAAI,CAAC63C,KAAK,CAAC,IAAI,CAACnvC,KAAK,CAAC,CAAG1I,EAC1B,CACA,SAAS01H,IAAAA,CAAK11H,CAAC,CAAEC,CAAC,CAAA,CACjB,IAAI,CAAC43C,KAAK,CAAC,IAAI,CAACnvC,KAAK,CAAC,CAAG1I,CACzB,CAAA,IAAI,CAAC63C,KAAK,CAAC,IAAI,CAACnvC,KAAK,CAAG,CAAA,CAAE,CAAGzI,EAC9B,CACA,SAAS01H,IAAAA,CAAK31H,CAAC,CAAEC,CAAC,CAAEyC,EAAE,CAAA,CACrB,IAAI,CAACm1C,KAAK,CAAC,IAAI,CAACnvC,KAAK,CAAC,CAAG1I,CACzB,CAAA,IAAI,CAAC63C,KAAK,CAAC,IAAI,CAACnvC,KAAK,CAAG,CAAA,CAAE,CAAGzI,CAC7B,CAAA,IAAI,CAAC43C,KAAK,CAAC,IAAI,CAACnvC,KAAK,CAAG,CAAA,CAAE,CAAGhG,GAC9B,CACA,SAASkzH,IAAAA,CAAK51H,CAAC,CAAEC,CAAC,CAAEyC,EAAE,CAAE4Y,CAAC,CAAA,CACxB,IAAI,CAACu8B,KAAK,CAAC,IAAI,CAACnvC,KAAK,CAAC,CAAG1I,CACzB,CAAA,IAAI,CAAC63C,KAAK,CAAC,IAAI,CAACnvC,KAAK,CAAG,CAAA,CAAE,CAAGzI,CAC7B,CAAA,IAAI,CAAC43C,KAAK,CAAC,IAAI,CAACnvC,KAAK,CAAG,CAAA,CAAE,CAAGhG,EAC7B,CAAA,IAAI,CAACm1C,KAAK,CAAC,IAAI,CAACnvC,KAAK,CAAG,CAAA,CAAE,CAAG4S,EAC9B,CACA,SAASu6G,SAAAA,CAAUntH,KAAK,CAAEotH,UAAU,CAAEC,UAAU,CAAA,CAC/C,IAAI,CAACl+E,KAAK,CAACnvC,KAAAA,CAAM,CAAGotH,UAAU,CAACC,UAAAA,EAAW,CAE3C,SAASC,SAAAA,CAAUttH,KAAK,CAAEotH,UAAU,CAAEC,UAAU,CAAA,CAC/C,IAAI,CAACl+E,KAAK,CAACnvC,MAAM,CAAGotH,UAAU,CAACC,UAAAA,CAC/B,CAAA,IAAI,CAACl+E,KAAK,CAACnvC,KAAAA,CAAQ,CAAA,CAAE,CAAGotH,UAAU,CAACC,UAAAA,CAAa,GAAE,CAEnD,SAASE,SAAAA,CAAUvtH,KAAK,CAAEotH,UAAU,CAAEC,UAAU,CAAA,CAC/C,IAAI,CAACl+E,KAAK,CAACnvC,KAAAA,CAAM,CAAGotH,UAAU,CAACC,WAAW,CAC1C,IAAI,CAACl+E,KAAK,CAACnvC,KAAAA,CAAQ,CAAA,CAAE,CAAGotH,UAAU,CAACC,WAAa,CAAA,CAChD,CAAA,IAAI,CAACl+E,KAAK,CAACnvC,KAAAA,CAAQ,CAAA,CAAE,CAAGotH,UAAU,CAACC,UAAAA,CAAa,GAAE,CAEnD,SAASG,SAAAA,CAAUxtH,KAAK,CAAEotH,UAAU,CAAEC,UAAU,CAAA,CAC/C,IAAI,CAACl+E,KAAK,CAACnvC,MAAM,CAAGotH,UAAU,CAACC,UAAAA,CAAW,CAC1C,IAAI,CAACl+E,KAAK,CAACnvC,MAAQ,CAAA,CAAE,CAAGotH,UAAU,CAACC,UAAAA,CAAa,EAAE,CAClD,IAAI,CAACl+E,KAAK,CAACnvC,KAAAA,CAAQ,CAAA,CAAE,CAAGotH,UAAU,CAACC,UAAAA,CAAa,CAAA,CAAE,CAClD,IAAI,CAACl+E,KAAK,CAACnvC,KAAAA,CAAQ,CAAA,CAAE,CAAGotH,UAAU,CAACC,WAAa,CAAA,EACjD,CACA,SAASI,SAAAA,CAAUllH,OAAO,CAAEmlH,WAAW,CAAEC,WAAW,EACnDD,WAAW,CAACC,YAAY,CAAG,IAAI,CAACx+E,KAAK,CAAC5mC,SAAQ,CAE/C,SAASqlH,SAAAA,CAAUrlH,OAAO,CAAEmlH,WAAW,CAAEC,WAAW,CAAA,CACnDD,WAAW,CAACC,WAAAA,CAAY,CAAG,IAAI,CAACx+E,KAAK,CAAC5mC,OAAAA,CAAQ,CAC9CmlH,WAAW,CAACC,WAAAA,CAAc,CAAA,CAAE,CAAG,IAAI,CAACx+E,KAAK,CAAC5mC,OAAAA,CAAU,CAAA,EACrD,CACA,SAASslH,SAAAA,CAAUtlH,OAAO,CAAEmlH,WAAW,CAAEC,WAAW,CAAA,CACnDD,WAAW,CAACC,WAAAA,CAAY,CAAG,IAAI,CAACx+E,KAAK,CAAC5mC,OAAAA,CAAQ,CAC9CmlH,WAAW,CAACC,WAAAA,CAAc,EAAE,CAAG,IAAI,CAACx+E,KAAK,CAAC5mC,QAAU,CAAA,CACpDmlH,CAAAA,WAAW,CAACC,YAAc,CAAA,CAAE,CAAG,IAAI,CAACx+E,KAAK,CAAC5mC,OAAAA,CAAU,CAAA,EAAE,CAEvD,SAASulH,SAAAA,CAAUvlH,OAAO,CAAEmlH,WAAW,CAAEC,WAAW,CAAA,CACnDD,WAAW,CAACC,WAAAA,CAAY,CAAG,IAAI,CAACx+E,KAAK,CAAC5mC,OAAAA,CACtCmlH,CAAAA,WAAW,CAACC,WAAAA,CAAc,CAAA,CAAE,CAAG,IAAI,CAACx+E,KAAK,CAAC5mC,OAAAA,CAAU,EAAE,CACtDmlH,WAAW,CAACC,WAAAA,CAAc,EAAE,CAAG,IAAI,CAACx+E,KAAK,CAAC5mC,QAAU,CAAA,CACpDmlH,CAAAA,WAAW,CAACC,WAAAA,CAAc,CAAA,CAAE,CAAG,IAAI,CAACx+E,KAAK,CAAC5mC,OAAAA,CAAU,GAAE,CAEvD,IAAIwlH,sBAAAA,CAAyB,KAAA,CAiC5B12H,IAAIkR,OAAO,CAAE,CACZ,OAAO,IAAI,CAAC4mC,KAAK,CAAC,IAAI,CAACnvC,KAAK,CAAGuI,OAAAA,CAAQ,CAExCjH,GAAAA,CAAIhK,CAAC,CAAEC,CAAC,CAAEyC,EAAE,CAAE4Y,CAAC,CAAE,CACjB,CACAo7G,UAAAA,CAAWzlH,OAAO,CAAEmlH,WAAW,CAAEC,WAAW,CAAE,CAC9C,CACAM,aAAajuH,KAAK,CAAEotH,UAAU,CAAEC,UAAU,CAAE,CAC5C,CAxCA,YAAYp4G,MAAM,CAAEi5G,aAAa,CAAExrE,YAAY,CAAE,CAChD,IAAI,CAAC1iD,KAAK,CAAG,CACb,CAAA,IAAI,CAAC8+C,aAAa,CAAGovE,aAAAA,CAAcpvE,aAAa,CAChD,GAAI4D,YAAAA,CAAa7C,WAAW,CAAE,CAC7B,IAAI,CAAC1Q,KAAK,CAAG,IAAI7I,eAAe,CAAC4nF,aAAAA,CAAcrvE,QAAQ,CAAC,CAAC5pC,OAAQi5G,aAAAA,CAAc7lH,MAAM,EACtF,CAAA,KAAO,CACN,IAAI,CAAC8mC,KAAK,CAAG,IAAI7I,eAAe,CAAC4nF,aAAAA,CAAcrvE,QAAQ,CAAC,CAAC5pC,OAAQi5G,aAAAA,CAAc7lH,MAAM,CAAEq6C,YAAAA,CAAalD,WAAW,CAAG0uE,aAAAA,CAAcpvE,aAAa,EAC9I,CACA,IAAI,CAACC,MAAM,CAAGmvE,cAAcnvE,MAAM,CAAG,IAAI,CAAC5P,KAAK,CAAC,WAAW,CAACuL,iBAAiB,CAC7E,OAAQwzE,aAAAA,CAAcpvE,aAAa,EAClC,KAAK,CAAA,CACJ,IAAI,CAACx9C,GAAG,CAAGyrH,IACX,CAAA,IAAI,CAACiB,UAAU,CAAGP,SAClB,CAAA,IAAI,CAACQ,YAAY,CAAGd,SAAAA,CACpB,MACD,KAAK,CAAA,CACJ,IAAI,CAAC7rH,GAAG,CAAG0rH,IACX,CAAA,IAAI,CAACgB,UAAU,CAAGJ,SAClB,CAAA,IAAI,CAACK,YAAY,CAAGX,SAAAA,CACpB,MACD,KAAK,CAAA,CACJ,IAAI,CAAChsH,GAAG,CAAG2rH,IACX,CAAA,IAAI,CAACe,UAAU,CAAGH,SAClB,CAAA,IAAI,CAACI,YAAY,CAAGV,SAAAA,CACpB,MACD,KAAK,CAAA,CACJ,IAAI,CAACjsH,GAAG,CAAG4rH,IACX,CAAA,IAAI,CAACc,UAAU,CAAGF,SAClB,CAAA,IAAI,CAACG,YAAY,CAAGT,SAAAA,CACpB,KACF,CACD,CAUD,CAAA,CACA,IAAIW,eAAiB,KAAA,CAcpBnD,IAAAA,CAAKxgF,MAAQ,CAAC,CAAE,CACf,IAAI7vC,EAAAA,CAAK,EACT,MAAMyzH,SAAAA,CAAY,IAAI,CAACA,SAAS,CAChC,MAAMC,YAAAA,CAAe,IAAI,CAACD,SAAS,CAACxzH,MAAM,CAC1C,MAAOD,EAAAA,CAAK0zH,aAAc,CACzB,MAAMC,SAAWF,SAAS,CAACzzH,KAAK,CAChC2zH,SAAStuH,KAAK,EAAIwqC,MAAQ8jF,QAAAA,CAASvvE,OAAM,CAE3C,CACAl/C,GAAAA,EAAM,CACL,IAAI,CAAC0oD,YAAY,CAACvW,MAAM,GACzB,CACAuJ,SAAAA,CAAU8C,QAAQ,CAAEhqC,KAAK,CAAE+oC,WAAW,CAAE,CACvC,MAAM8C,OAAAA,CAAU,IAAI,CAACA,OAAO,CAAC7B,QAAAA,CAAS,CACtC,GAAI6B,OAAAA,CAAS,CACZ,GAAI9C,WAAAA,CAAc,IAAI,CAACmL,YAAY,CAACnL,WAAW,CAAE,CAChDA,YAAc,IAAI,CAACmL,YAAY,CAACnL,YAAW,CAE5C,MAAM0B,aAAAA,CAAgBoB,OAAAA,CAAQpB,aAAa,CAC3C,GAAI,IAAI,CAACyJ,YAAY,CAACpN,SAAS,EAAA,CAAG0E,WAAW,CAAE,CAC9C,IAAI7/C,KAAAA,CAAQ,CAAA,CACZ,IAAK,IAAIrF,EAAAA,CAAK,EAAGA,EAAAA,CAAKyiD,WAAAA,CAAaziD,EAAAA,EAAAA,CAAM,CACxCulD,QAAQ+tE,YAAY,CAACjuH,MAAOqU,KAAAA,CAAO1Z,EAAAA,CAAKmkD,eACxC9+C,KAAAA,EAASkgD,OAAAA,CAAQnB,OAAM,CAEzB,MAAO,CACN,GAAI1qC,MAAMzZ,MAAM,CAAGwiD,YAAc0B,aAAAA,CAAe,CAC/C,MAAMyvE,SAAAA,CAAYnxE,YAAc0B,aAAAA,CAChC,GAAI5N,YAAYqJ,MAAM,CAAClmC,OAAQ,CAC9BA,KAAAA,CAAQA,MAAMonC,QAAQ,CAAC,EAAG8yE,SAAAA,CAAAA,CAC1BruE,OAAAA,CAAQ/Q,KAAK,CAAC7tC,GAAG,CAAC+S,KAAAA,EACnB,CAAA,KAAO,CACN,IAAK,IAAI1Z,EAAAA,CAAK,CAAA,CAAGA,GAAK4zH,SAAAA,CAAW5zH,EAAAA,EAAAA,CAAM,CACtCulD,OAAAA,CAAQ/Q,KAAK,CAACx0C,EAAAA,CAAG,CAAG0Z,KAAK,CAAC1Z,IAAG,CAE/B,CACD,CAAA,KAAO,CACNulD,OAAAA,CAAQ/Q,KAAK,CAAC7tC,GAAG,CAAC+S,OACnB,CACD,CACD,CACD,CACAqnC,QAAAA,CAAS2C,QAAQ,CAAEhqC,KAAK,CAAE,CACzB,MAAM6rC,QAAU,IAAI,CAACA,OAAO,CAAC7B,QAAAA,CAAS,CACtC,IAAI7T,MAAQ,CAAA,CACZ,GAAI0V,QAAS,CACZ1V,KAAAA,CAAQ,IAAI,CAAC+d,YAAY,CAACnL,WAAW,CACrC,IAAIziD,EAAAA,CACJ,MAAMmkD,cAAgBoB,OAAAA,CAAQpB,aAAa,CAC3C,MAAMyvE,SAAAA,CAAY/jF,KAAAA,CAAQsU,aAAAA,CAC1B,GAAI,IAAI,CAACyJ,YAAY,CAACpN,SAAS,GAAG0E,WAAW,CAAE,CAC9C,GAAIlmD,KAAAA,CAAMC,OAAO,CAACya,KAAAA,CAAAA,CAAQ,CACzBA,KAAAA,CAAMzZ,MAAM,CAAG,EAChB,CACAslD,OAAAA,CAAQlgD,KAAK,CAAG,CAAA,CAChB,IAAIuI,QAAU,CAAA,CACd,IAAK5N,GAAK,CAAA,CAAGA,EAAAA,CAAK6vC,KAAAA,CAAO7vC,EAAAA,EAAAA,CAAM,CAC9BulD,OAAAA,CAAQ8tE,UAAU,CAACzlH,OAAAA,CAAS8L,KAAAA,CAAO1Z,GAAKmkD,aAAAA,CAAAA,CACxCv2C,OAAAA,EAAW23C,OAAAA,CAAQnB,OAAM,CAE3B,CAAA,KAAO,CACN,GAAI7N,WAAAA,CAAYqJ,MAAM,CAAClmC,KAAAA,CAAAA,CAAQ,CAC9BA,KAAAA,CAAM/S,GAAG,CAAC+S,KAAAA,CAAMzZ,MAAM,EAAI2zH,SAAAA,CAAYruE,OAAAA,CAAQ/Q,KAAK,CAAG+Q,OAAAA,CAAQ/Q,KAAK,CAACsM,QAAQ,CAAC,CAAA,CAAGpnC,MAAMzZ,MAAM,CAAA,EAC7F,MAAO,CACNyZ,KAAAA,CAAMzZ,MAAM,CAAG,CAAA,CACf,IAAKD,EAAAA,CAAK,CAAA,CAAGA,GAAK4zH,SAAAA,CAAW5zH,EAAAA,EAAAA,CAAM,CAClC0Z,KAAK,CAAC1Z,EAAAA,CAAG,CAAGulD,QAAQ/Q,KAAK,CAACx0C,IAAG,CAE/B,CACD,CACD,CACA,OAAO6vC,KACR,CArFA,YAAY+d,YAAY,CAAE,CACzB,IAAI,CAACA,YAAY,CAAGA,YACpB,CAAA,IAAI,CAACimE,gBAAgB,CAAGjmE,aAAapN,SAAS,EAAA,CAAG97C,IAAI,CACrD,IAAI,CAAC4V,MAAM,CAAG,IAAI,CAACszC,YAAY,CAACzX,IAAI,EACpC,CAAA,IAAI,CAACs9E,SAAS,CAAG,EAAE,CACnB,IAAI,CAACluE,OAAO,CAAG,EAAC,CAChB,MAAMwC,aAAe,IAAI,CAAC6F,YAAY,CAACpN,SAAS,GAChD,IAAK,IAAIxgD,EAAAA,CAAK,CAAA,CAAGA,GAAK+nD,YAAAA,CAAaxE,QAAQ,CAACtjD,MAAM,CAAED,KAAM,CACzD,MAAMuzH,cAAgBxrE,YAAAA,CAAaxE,QAAQ,CAACvjD,EAAAA,CAC5C,CAAA,IAAI,CAACyzH,SAAS,CAACzzH,EAAAA,CAAG,CAAG,IAAIozH,uBAAuB,IAAI,CAAC94G,MAAM,CAAEi5G,aAAAA,CAAexrE,aAC5E,CAAA,IAAI,CAACxC,OAAO,CAACguE,cAAczwH,IAAI,CAAC,CAAG,IAAI,CAAC2wH,SAAS,CAACzzH,EAAAA,EAAG,CAEvD,CA0ED,CAAA,CAEA,IAAI8zH,aAAe,OAAA,CACnB,IAAIC,gBAAkB,UAAA,CACtB,IAAIC,eAAiB,SAAA,CACrB,IAAIC,aAAe,QAAA,CACnB,IAAIC,aAAe,QAAA,CACnB,IAAIC,aAAe,OAAA,CACnB,IAAIC,YAAAA,CAAe,OAAA,CACnB,IAAIC,YAAAA,CAAe,OAAA,CACnB,IAAIC,YAAAA,CAAe,OAAA,CACnB,IAAIC,QAAAA,CAAW,KAAA,CACf,IAAIC,aAAAA,CAAgB,CAAA,CACpB,IAAIC,OAAAA,CAAU,CAAA,CACd,IAAIC,UAAAA,CAAa,EAAA,CACjB,IAAIC,SAAAA,CAAY,EAAA,CAChB,IAAIC,SAAAA,CAAY,GAChB,IAAIC,WAAAA,CAAc,GAClB,IAAIC,OAAAA,CAAU,GACd,IAAIC,SAAAA,CAAY,GAChB,IAAIC,aAAAA,CAAgB,GACpB,IAAIC,UAAAA,CAAa,GACjB,IAAIC,SAAAA,CAAY,GAChB,IAAIC,WAAAA,CAAc,EAAA,CAClB,IAAIC,cAAgB,EAAA,CACpB,IAAIC,QAAU,EAAA,CACd,IAAIC,SAAW,EAAA,CACf,IAAIC,SAAW,EAAA,CACf,IAAIC,OAAS,EAAA,CACb,IAAIC,UAAY,EAAA,CAChB,IAAIC,SAAW,EAAA,CACf,IAAIC,gBAAAA,CAAmB,EAAA,CACvB,IAAIC,UAAAA,CAAa,EAAA,CACjB,IAAIC,UAAAA,CAAa,EAAA,CACjB,IAAIC,KAAAA,CAAQ,EAAA,CACZ,IAAIC,KAAAA,CAAQ,GACZ,IAAIC,KAAAA,CAAQ,GACZ,IAAIC,KAAAA,CAAQ,GACZ,IAAIC,KAAAA,CAAQ,EAAA,CACZ,IAAIC,MAAQ,EAAA,CACZ,IAAIC,MAAQ,EAAA,CACZ,IAAIC,MAAQ,EAAA,CACZ,IAAIC,MAAQ,EAAA,CACZ,IAAIC,MAAQ,EAAA,CACZ,IAAIC,cAAgB,EAAA,CACpB,IAAIC,UAAY,EAAA,CAChB,IAAIC,KAAAA,CAAQ,EAAA,CACZ,IAAIC,KAAAA,CAAQ,EAAA,CACZ,IAAIC,KAAAA,CAAQ,EAAA,CACZ,IAAIC,KAAAA,CAAQ,EAAA,CACZ,IAAIC,KAAAA,CAAQ,EAAA,CACZ,IAAIC,KAAAA,CAAQ,EAAA,CACZ,IAAIC,KAAAA,CAAQ,EAAA,CACZ,IAAIC,KAAAA,CAAQ,EAAA,CACZ,IAAIC,KAAAA,CAAQ,GACZ,IAAIC,KAAAA,CAAQ,GACZ,IAAIC,KAAAA,CAAQ,GACZ,IAAIC,KAAAA,CAAQ,GACZ,IAAIC,KAAAA,CAAQ,GACZ,IAAIC,KAAAA,CAAQ,GACZ,IAAIC,KAAAA,CAAQ,GACZ,IAAIC,KAAAA,CAAQ,EAAA,CACZ,IAAIC,MAAQ,EAAA,CACZ,IAAIC,MAAQ,EAAA,CACZ,IAAIC,MAAQ,EAAA,CACZ,IAAIC,MAAQ,EAAA,CACZ,IAAIC,MAAQ,EAAA,CACZ,IAAIC,MAAQ,EAAA,CACZ,IAAIC,MAAQ,EAAA,CACZ,IAAIC,KAAAA,CAAQ,EAAA,CACZ,IAAIC,KAAAA,CAAQ,EAAA,CACZ,IAAIC,KAAAA,CAAQ,EAAA,CACZ,IAAIC,WAAAA,CAAc,EAAA,CAClB,IAAIC,gBAAAA,CAAmB,EAAA,CACvB,IAAIC,YAAAA,CAAe,EAAA,CACnB,IAAIC,YAAAA,CAAe,EAAA,CACnB,IAAIC,YAAAA,CAAe,EAAA,CACnB,IAAIC,YAAAA,CAAe,GACnB,IAAIC,YAAAA,CAAe,IACnB,IAAIC,YAAAA,CAAe,IACnB,IAAIC,YAAAA,CAAe,IACnB,IAAIC,YAAAA,CAAe,IACnB,IAAIC,YAAAA,CAAe,IACnB,IAAIC,YAAAA,CAAe,IACnB,IAAIC,YAAAA,CAAe,GAAA,CACnB,IAAIC,QAAU,GAAA,CACd,IAAIC,cAAgB,GAAA,CACpB,IAAIC,aAAe,GAAA,CACnB,IAAIC,YAAc,GAAA,CAClB,IAAIC,WAAa,GAAA,CACjB,IAAIC,OAAS,GAAA,CACb,IAAIC,OAAS,GAAA,CACb,IAAIC,MAAAA,CAAS,GAAA,CACb,IAAIC,MAAAA,CAAS,GAAA,CACb,IAAIC,MAAAA,CAAS,GAAA,CACb,IAAIC,MAAAA,CAAS,GAAA,CACb,IAAIC,MAAAA,CAAS,IACb,IAAIC,MAAAA,CAAS,IACb,IAAIC,MAAAA,CAAS,IACb,IAAIC,OAAAA,CAAU,GAAA,CACd,IAAIC,QAAU,GAAA,CACd,IAAIC,QAAU,GAAA,CACd,IAAIC,UAAY,GAAA,CAChB,IAAIC,WAAa,GAAA,CACjB,IAAIC,UAAY,GAAA,CAChB,IAAIC,iBAAmB,GAAA,CACvB,IAAIC,eAAiB,GAAA,CACrB,IAAIC,iBAAAA,CAAoB,GAAA,CACxB,IAAIC,QAAAA,CAAW,GAAA,CACf,IAAIC,gBAAAA,CAAmB,GACvB,IAAIC,gBAAAA,CAAmB,EACvB,IAAIC,kBAAAA,CAAqB,EACzB,IAAIC,iBAAAA,CAAoB,EACxB,IAAIC,KAAAA,CAAQ,EACZ,IAAIC,KAAAA,CAAQ,CAAA,CACZ,IAAIC,MAAQ,CAAA,CACZ,IAAIC,MAAQ,CAAA,CACZ,IAAIC,WAAa,CAAA,CACjB,IAAIC,WAAa,CAAA,CACjB,IAAIC,WAAa,CAAA,CACjB,IAAIC,WAAa,CAAA,CACjB,IAAIC,iBAAmB,CAAA,CACvB,IAAIC,gBAAAA,CAAmB,CAAA,CACvB,IAAIC,gBAAAA,CAAmB,CAAA,CACvB,IAAIC,gBAAAA,CAAmB,CAAA,CACvB,IAAIC,UAAAA,CAAa,CAAA,CACjB,IAAIC,SAAAA,CAAY,CAAA,CAChB,IAAIC,kBAAAA,CAAqB,EAAA,CACzB,IAAIC,kBAAAA,CAAqB,EAAA,CACzB,IAAIC,MAAAA,CAAS,EAAA,CACb,IAAIC,QAAAA,CAAW,GACf,IAAIC,QAAAA,CAAW,GACf,IAAIC,SAAAA,CAAY,GAChB,IAAIC,UAAAA,CAAa,GACjB,IAAIC,aAAAA,CAAgB,EACpB,IAAIC,aAAAA,CAAgB,EACpB,IAAIC,aAAAA,CAAgB,EACpB,IAAIC,aAAAA,CAAgB,CAAA,CACpB,IAAIC,iBAAmB,CAAA,CACvB,IAAIC,iBAAmB,CAAA,CACvB,IAAIC,cAAgB,CAAA,CACpB,IAAIC,cAAgB,CAAA,CACpB,IAAIC,sBAAwB,CAAA,CAC5B,IAAIC,cAAgB,CAAA,CACpB,IAAIC,cAAgB,CAAA,CACpB,IAAIC,kBAAAA,CAAqB,CAAA,CACzB,IAAIC,OAAAA,CAAU,CAAA,CACd,IAAIC,OAAAA,CAAU,CAAA,CAEd,IAAIC,aAAAA,CAAgB,KAAA,CAInB,YAAYC,QAAQ,CAAE9U,KAAK,CAAE,CAH7BpgH,sBAAAA,KAAAA,CAAM,IAAA,CAAA,CACNw9C,sBAAAA,SAAAA,CAAU,IAAA,CAAA,CACV4iE,gBAAAA,CAAAA,IAAAA,CAAAA,OAAAA,CAAQ,MAEP,GAAIA,KAAAA,CAAO,CACV,IAAI,CAACpgH,GAAG,CAAGogH,KAAAA,CAAM+U,OACjB,CAAA,IAAI,CAAC33E,OAAO,CAAG4iE,KAAAA,CAAMgV,MAAM,CAC3B,IAAI,CAAChV,KAAK,CAAGA,MACd,CACD,CACD,CAAA,CAEA,IAAIiV,cAAAA,CAAiB,IAAIJ,cACzB,SAASK,iBAAAA,CAAkBlV,KAAK,CAAA,CAC/BiV,cAAAA,CAAer1H,GAAG,CAAGogH,KAAAA,CAAM+U,OAAO,CAClCE,cAAAA,CAAe73E,OAAO,CAAG4iE,KAAAA,CAAMgV,MAAM,CACrCC,cAAAA,CAAejV,KAAK,CAAGA,KAAAA,CACvB,OAAOiV,cACR,CACA,SAASE,SAAAA,CAAU93H,EAAE,EACpB,GAAI,OAAOA,KAAO,QAAA,CAAU,CAC3B,OAAOA,EAAAA,CAAGipF,WAAW,EAAA,CAAG7pF,UAAU,CAAC,CAAA,CACpC,CACA,OAAOY,EACR,CACA,IAAI+3H,uBAAAA,CAA0B,CAC7B,IAAK,KAAA,CACL,IAAA,CAAM,QACN,IAAA,CAAM,OAAA,CACN,KAAM,SAAA,CACN,IAAA,CAAM,KAAA,CACN,IAAA,CAAM,SACN,IAAA,CAAM,MAAA,CACN,KAAM,IAAA,CACN,IAAA,CAAM,QACN,IAAA,CAAM,MAAA,CACN,IAAA,CAAM,QAAA,CACN,KAAM,KACP,CAAA,CACA,IAAIC,QAAAA,EAAAA,OAAAA,CAAW,cAAcv1H,aA0B5Bw1H,MAAAA,CAAOl4E,OAAO,CAAE,CACf,GAAI,IAAI,CAACm4E,QAAQ,CAAE,CAClB,IAAI,CAACC,MAAM,GACZ,CACA,IAAI,CAACD,QAAQ,CAAGn4E,QAChB,IAAI,CAACm4E,QAAQ,CAAC7jC,gBAAgB,CAAC,SAAA,CAAW,IAAI,CAAC+jC,eAAe,CAAE,KAAA,CAAA,CAChE,IAAI,CAACF,QAAQ,CAAC7jC,gBAAgB,CAAC,UAAA,CAAY,IAAI,CAACgkC,gBAAgB,CAAE,KAAA,CAAA,CAClE,IAAI,CAACH,QAAQ,CAAC7jC,gBAAgB,CAAC,QAAS,IAAI,CAACikC,aAAa,CAAE,KAAA,CAAA,CAC5DjzH,SAASgvF,gBAAgB,CAAC,mBAAoB,IAAI,CAACkkC,wBAAwB,CAAE,KAAA,CAAA,CAC7Eh8H,OAAO83F,gBAAgB,CAAC,OAAQ,IAAI,CAACmkC,kBAAkB,CAAE,OAC1D,CACAL,MAAAA,EAAS,CACR,GAAI,CAAC,IAAI,CAACD,QAAQ,CAAE,CACnB,MACD,CACA,IAAI,CAACA,QAAQ,CAACxlB,mBAAmB,CAAC,SAAA,CAAW,IAAI,CAAC0lB,eAAe,CAAA,CACjE,IAAI,CAACF,QAAQ,CAACxlB,mBAAmB,CAAC,UAAA,CAAY,IAAI,CAAC2lB,gBAAgB,EACnE,IAAI,CAACH,QAAQ,CAACxlB,mBAAmB,CAAC,OAAA,CAAS,IAAI,CAAC4lB,aAAa,CAC7D,CAAA,IAAI,CAACJ,QAAQ,CAAG,KAChB7yH,QAAAA,CAASqtG,mBAAmB,CAAC,kBAAA,CAAoB,IAAI,CAAC6lB,wBAAwB,CAAE,OAChFh8H,MAAAA,CAAOm2G,mBAAmB,CAAC,MAAA,CAAQ,IAAI,CAAC8lB,kBAAkB,CAAE,KAAA,EAC7D,CACAC,gBAAgBf,OAAO,CAAE,CACxBA,OAAAA,CAAUI,SAAAA,CAAUJ,SACpB,MAAMgB,IAAAA,CAAOX,uBAAuB,CAACL,OAAAA,CAAQx9H,QAAQ,EAAA,CAAG,CACxD,GAAIw+H,IAAAA,CAAM,CACT,OAAOA,IACR,CACA,IAAIvoH,GAAAA,CAAMunH,QAAQx9H,QAAQ,CAAC,IAAI+uF,WAAW,EAAA,CAC1C,MAAMxuF,MAAAA,CAAS0V,GAAAA,CAAI1V,MAAM,CACzB,IAAK,IAAI4vC,KAAAA,CAAQ,CAAA,CAAGA,MAAQ,CAAA,CAAI5vC,MAAAA,CAAQ4vC,KAAAA,EAAAA,CAAS,CAChDl6B,IAAM,CAAC,CAAC,EAAEA,GAAAA,CAAI,EAAC,CAEhB,OAAO,CAAC,EAAE,EAAEA,IAAI,CACjB,CACAwoH,cAAAA,CAAehW,KAAK,CAAE,CACrB,MAAMrjH,IAAAA,CAAOqjH,KAAAA,CAAM+U,OAAO,EAAI/U,KAAAA,CAAMiW,QAAQ,CAC5C,GAAIt5H,OAAS,MAAK,CAAG,OACrB,MAAMo5H,IAAAA,CAAO,IAAI,CAACD,eAAe,CAACn5H,IAAAA,CAClC,CAAA,IAAI,CAACu5H,OAAO,CAACH,IAAAA,CAAK,CAAG,IAAA,CACrB,IAAI,CAACl1H,IAAI,CAAC,UAAWq0H,iBAAAA,CAAkBlV,KAAAA,CAAAA,CAAAA,CACvC,GAAI,IAAI,CAACC,cAAc,CAAE,CACxBD,MAAMC,cAAc,GACrB,CACA,GAAI,IAAI,CAACkW,eAAe,CAAE,CACzBnW,KAAAA,CAAMmW,eAAe,GACtB,CACD,CACAC,YAAAA,CAAapW,KAAK,CAAE,CACnB,MAAMrjH,IAAAA,CAAOqjH,KAAAA,CAAM+U,OAAO,EAAI/U,KAAAA,CAAMiW,QAAQ,CAC5C,GAAIt5H,IAAAA,GAAS,OAAQ,OACrB,MAAMo5H,KAAO,IAAI,CAACD,eAAe,CAACn5H,IAAAA,CAClC,QAAO,IAAI,CAACu5H,OAAO,CAACH,IAAAA,CAAK,CACzB,IAAI,CAACl1H,IAAI,CAAC,OAAA,CAASq0H,iBAAAA,CAAkBlV,KAAAA,CAAAA,CAAAA,CACrC,GAAI,IAAI,CAACC,cAAc,CAAE,CACxBD,MAAMC,cAAc,GACrB,CACA,GAAI,IAAI,CAACkW,eAAe,CAAE,CACzBnW,KAAAA,CAAMmW,eAAe,GACtB,CACD,CACAE,eAAAA,CAAgBrW,KAAK,CAAE,CACtB,IAAI,CAACn/G,IAAI,CAAC,WAAYq0H,iBAAAA,CAAkBlV,KAAAA,CAAAA,CAAAA,CACxC,GAAI,IAAI,CAACC,cAAc,CAAE,CACxBD,MAAMC,cAAc,GACrB,CACA,GAAI,IAAI,CAACkW,eAAe,CAAE,CACzBnW,KAAAA,CAAMmW,eAAe,GACtB,CACD,CACAG,uBAAAA,EAA0B,CACzB,GAAI5zH,QAAAA,CAAS6zH,eAAe,GAAK,QAAA,CAAU,CAC1C,IAAI,CAACC,iBAAiB,GACvB,CACD,CACAA,iBAAAA,EAAoB,CACnB,IAAI,CAACN,OAAO,CAAG,EACf,CAAA,IAAI,CAACO,QAAQ,CAAG,GACjB,CACA/kF,MAAAA,EAAS,CACR,IAAK,MAAM/6C,QAAQ,IAAI,CAAC8/H,QAAQ,CAAE,CACjC,OAAO,IAAI,CAACA,QAAQ,CAAC9/H,MAAK,CAE3B,IAAK,MAAMA,IAAAA,IAAQ,IAAI,CAACu/H,OAAO,CAAE,CAChC,GAAI,IAAI,CAACA,OAAO,CAACjyH,cAAc,CAACtN,IAAAA,CAAAA,CAAO,CACtC,IAAI,CAAC8/H,QAAQ,CAAC9/H,IAAAA,CAAK,CAAG,IAAI,CAACu/H,OAAO,CAACv/H,IAAAA,EACpC,CACD,CACD,CACA+/H,UAAU92H,GAAG,CAAE,CACd,MAAMm1H,QAAUI,SAAAA,CAAUv1H,GAAAA,CAAAA,CAC1B,MAAMm2H,IAAAA,CAAO,IAAI,CAACD,eAAe,CAACf,OAAAA,CAAAA,CAClC,OAAO,CAAC,CAAC,IAAI,CAACmB,OAAO,CAACH,KAAK,CAE5BY,UAAAA,CAAW/2H,GAAG,CAAE,CACf,MAAMm1H,QAAUI,SAAAA,CAAUv1H,GAAAA,CAAAA,CAC1B,MAAMm2H,IAAAA,CAAO,IAAI,CAACD,eAAe,CAACf,SAClC,OAAO,CAAC,CAAC,IAAI,CAACmB,OAAO,CAACH,IAAAA,CAAK,EAAI,CAAC,CAAC,CAAC,IAAI,CAACU,QAAQ,CAACV,KAAK,CAEtDa,YAAYh3H,GAAG,CAAE,CAChB,MAAMm1H,OAAAA,CAAUI,UAAUv1H,GAAAA,CAAAA,CAC1B,MAAMm2H,KAAO,IAAI,CAACD,eAAe,CAACf,SAClC,OAAO,CAAC,CAAC,CAAC,IAAI,CAACmB,OAAO,CAACH,KAAK,EAAI,CAAC,CAAC,IAAI,CAACU,QAAQ,CAACV,IAAAA,CAAK,CAnHtD,WAAA,CAAY34E,OAAO,CAAE/zC,SAAW,EAAE,CAAE,CACnC,KAAK,GAXNksH,gBAAAA,CAAAA,IAAAA,CAAAA,UAAAA,CAAW,MACXW,gBAAAA,CAAAA,IAAAA,CAAAA,SAAAA,CAAU,EAAC,CAAA,CACXO,gBAAAA,CAAAA,IAAAA,CAAAA,WAAW,EAAC,CAAA,CACZhB,sBAAAA,iBAAAA,CAAAA,MAAAA,CAAAA,CACAE,gBAAAA,CAAAA,IAAAA,CAAAA,gBAAAA,MAAAA,CAAAA,CACAD,sBAAAA,kBAAAA,CAAAA,QACAE,gBAAAA,CAAAA,IAAAA,CAAAA,0BAAAA,CAAAA,MAAAA,CAAAA,CACAC,gBAAAA,CAAAA,IAAAA,CAAAA,qBAAAA,MAAAA,CAAAA,CACA5V,sBAAAA,gBAAAA,CAAAA,QACAkW,gBAAAA,CAAAA,IAAAA,CAAAA,iBAAAA,CAAAA,MAAAA,CAGC,CAAA,IAAI,CAACV,eAAe,CAAG,IAAI,CAACO,cAAc,CAAChuH,IAAI,CAAC,IAAI,CACpD,CAAA,IAAI,CAAC2tH,aAAa,CAAG,IAAI,CAACS,YAAY,CAACpuH,IAAI,CAAC,IAAI,CAChD,CAAA,IAAI,CAAC0tH,gBAAgB,CAAG,IAAI,CAACW,eAAe,CAACruH,IAAI,CAAC,IAAI,CACtD,CAAA,IAAI,CAAC4tH,wBAAwB,CAAG,IAAI,CAACU,uBAAuB,CAACtuH,IAAI,CAAC,IAAI,CACtE,CAAA,IAAI,CAAC6tH,kBAAkB,CAAG,IAAI,CAACW,iBAAiB,CAACxuH,IAAI,CAAC,IAAI,CAAA,CAC1D,GAAIo1C,OAAAA,CAAS,CACZ,IAAI,CAACk4E,MAAM,CAACl4E,OAAAA,EACb,CACA,IAAI,CAAC6iE,cAAc,CAAG52G,QAAAA,CAAS42G,cAAc,EAAI,KACjD,CAAA,IAAI,CAACkW,eAAe,CAAG9sH,QAAAA,CAAS8sH,eAAe,EAAI,MACpD,CAyGD,CAAA,CAjIC,gBAAA,CAAA,OAAA,CAAOU,gBAAgB,SAAA,CAAA,CACvB,gBAAA,CAAA,OAAA,CAAOC,cAAc,OAAA,CAAA,CAAA,OAAA,CAAA,CAkItB,SAASC,uBACR,OAAO,CAAC,EAAEr0H,QAAAA,CAASs0H,kBAAkB,EAAIt0H,QAAAA,CAASu0H,qBAAqB,EAAIv0H,QAAAA,CAASw0H,wBAAuB,CAC5G,CACA,IAAIC,WAAa,MAAMC,WAAAA,CA6DtB,IAAIC,KAAAA,EAAQ,CACX,OAAO,IAAI,CAACC,UAAU,CAAG,EAC1B,CAjDA,WAAA,CAAYC,KAAK,CAAEvX,KAAK,CAAE,CAb1BpsG,sBAAAA,GAAAA,CAAI,CAAA,CAAA,CACJC,sBAAAA,GAAAA,CAAI,CAAA,CAAA,CACJqgE,sBAAAA,IAAAA,CAAK,CAAA,CAAA,CACLE,gBAAAA,CAAAA,IAAAA,CAAAA,IAAAA,CAAK,GACLojD,gBAAAA,CAAAA,IAAAA,CAAAA,QAAAA,CAASlF,kBACTmF,gBAAAA,CAAAA,IAAAA,CAAAA,SAAAA,CAAAA,MAAAA,CAAAA,CACAH,gBAAAA,CAAAA,IAAAA,CAAAA,YAAAA,CAAa,CAAA,CAAA,CACbl6E,sBAAAA,SAAAA,CAAAA,QACAs6E,gBAAAA,CAAAA,IAAAA,CAAAA,SAAAA,CAAU,OACVC,gBAAAA,CAAAA,IAAAA,CAAAA,QAAAA,CAAS,OACTC,gBAAAA,CAAAA,IAAAA,CAAAA,UAAAA,CAAW,OACXC,gBAAAA,CAAAA,IAAAA,CAAAA,SAAAA,CAAU,OACV7X,gBAAAA,CAAAA,IAAAA,CAAAA,OAAAA,CAAAA,MAAAA,CAAAA,CAEC,IAAI8X,MAAAA,CAAS,CACZlkH,EAAG,CAAA,CACHC,CAAAA,CAAG,CACJ,CAAA,CACA,GAAImsG,MAAO,CACV,GAAIA,iBAAiBoX,WAAAA,CAAa,CACjC,MAAMxiI,KAAAA,CAAM,qBAAA,CACb,CACAkjI,MAAAA,CAASP,KAAAA,CAAMQ,gBAAgB,CAAC/X,KAAAA,EACjC,CAAA,KAAO,CACNA,MAAQ,GACT,CACA,GAAI8X,MAAAA,CAAQ,CACX,IAAI,CAAClkH,CAAC,CAAGkkH,MAAAA,CAAOlkH,CAAC,CACjB,IAAI,CAACC,CAAC,CAAGikH,MAAAA,CAAOjkH,EAAC,CAClB,KAAO,GAAIkjH,oBAAAA,EAAAA,CAAwB,CAClC,IAAI,CAACnjH,CAAC,CAAG,CACT,CAAA,IAAI,CAACC,CAAC,CAAG,EACV,MAAO,CACN,MACD,CACA,GAAImsG,KAAAA,CAAM/wG,IAAI,GAAK,QAAS,CAC3B,GAAI+wG,MAAMgY,MAAM,CAAG,EAAG,CACrB,IAAI,CAACV,UAAU,CAAG,EACnB,CAAA,KAAO,GAAItX,MAAMgY,MAAM,CAAG,EAAG,CAC5B,IAAI,CAACV,UAAU,CAAG,GACnB,CACD,CACA,GAAIP,uBAAwB,CAC3B,IAAI,CAAC7iD,EAAE,CAAG8rC,MAAMiY,SAAS,EAAIjY,MAAMkY,eAAe,EAAIlY,MAAMmY,YAAY,EAAI,CAC5E,CAAA,IAAI,CAAC/jD,EAAE,CAAG4rC,KAAAA,CAAMoY,SAAS,EAAIpY,KAAAA,CAAMqY,eAAe,EAAIrY,KAAAA,CAAMsY,YAAY,EAAI,EAC7E,CAAA,KAAO,CACN,IAAI,CAACpkD,EAAE,CAAG,IAAI,CAACtgE,CAAC,CAAG2jH,KAAAA,CAAMgB,MAAM,CAC/B,IAAI,CAACnkD,EAAE,CAAG,IAAI,CAACvgE,CAAC,CAAG0jH,KAAAA,CAAMiB,OAAM,CAEhC,GAAIxY,MAAM/wG,IAAI,GAAK,WAAA,EAAe+wG,KAAAA,CAAM/wG,IAAI,GAAK,SAAA,CAAW,CAC3D,IAAI,CAACuoH,MAAM,CAAGxX,KAAAA,CAAMwX,OAAM,CAE3B,IAAI,CAACC,OAAO,CAAGF,KAAAA,CAAMkB,QAAQ,CAAC//H,KAAK,CAAC,CAAA,CACpC,CAAA,IAAI,CAAC0kD,OAAO,CAAG4iE,KAAAA,CAAMgV,MAAM,CAC3B,IAAI,CAAC0C,OAAO,CAAG1X,MAAM0X,OAAO,EAAI,KAChC,CAAA,IAAI,CAACC,MAAM,CAAG3X,KAAAA,CAAM2X,MAAM,EAAI,KAC9B,CAAA,IAAI,CAACC,QAAQ,CAAG5X,KAAAA,CAAM4X,QAAQ,EAAI,KAClC,CAAA,IAAI,CAACC,OAAO,CAAG7X,KAAAA,CAAM6X,OAAO,EAAI,KAChC,CAAA,IAAI,CAAC7X,KAAK,CAAGA,MACd,CAID,CAAA,CAEA,IAAI0Y,eAAQ,cAAc54H,YAAAA,CA2BzB,OAAO64H,eAAAA,EAAkB,CACxB,OAAO5B,oBAAAA,EACR,CACAzB,MAAAA,CAAOl4E,OAAO,CAAE,CACf,IAAI,CAACw7E,OAAO,CAAGx7E,OAAAA,CACf,GAAI,IAAI,CAACy7E,SAAS,CAAE,OACpB,IAAI,CAACA,SAAS,CAAG,IAAA,CACjB,MAAMxvH,SAAW,CAAEyvH,OAAAA,CAAS,KAAM,CAAA,CAClCl/H,MAAAA,CAAO83F,gBAAgB,CAAC,UAAW,IAAI,CAACqnC,UAAU,CAAE1vH,QAAAA,CAAAA,CACpDzP,OAAO83F,gBAAgB,CAAC,YAAa,IAAI,CAACsnC,YAAY,CAAE3vH,QAAAA,CAAAA,CACxDzP,OAAO83F,gBAAgB,CAAC,YAAa,IAAI,CAACunC,YAAY,CAAE5vH,UACxDzP,MAAAA,CAAO83F,gBAAgB,CAAC,OAAA,CAAS,IAAI,CAACwnC,aAAa,CAAE7vH,UACtD,CACAmsH,MAAAA,EAAS,CACR,GAAI,CAAC,IAAI,CAACqD,SAAS,CAAE,OACrB,IAAI,CAACA,SAAS,CAAG,KACjB,CAAA,IAAI,CAACD,OAAO,CAAG,IAAA,CACf,MAAMvvH,QAAAA,CAAW,CAAEyvH,QAAS,KAAM,CAAA,CAClCl/H,OAAOm2G,mBAAmB,CAAC,UAAW,IAAI,CAACgpB,UAAU,CAAE1vH,UACvDzP,MAAAA,CAAOm2G,mBAAmB,CAAC,WAAA,CAAa,IAAI,CAACipB,YAAY,CAAE3vH,UAC3DzP,MAAAA,CAAOm2G,mBAAmB,CAAC,WAAA,CAAa,IAAI,CAACkpB,YAAY,CAAE5vH,UAC3DzP,MAAAA,CAAOm2G,mBAAmB,CAAC,OAAA,CAAS,IAAI,CAACmpB,aAAa,CAAE7vH,QAAAA,EACzD,CACA8vH,oBAAqB,CACpB,GAAI,CAAC,IAAI,CAACP,OAAO,CAAE,OACnB,IAAI,CAACA,OAAO,CAAClnC,gBAAgB,CAAC,aAAA,CAAe,IAAI,CAAC0nC,mBAAmB,EACtE,CACAC,iBAAAA,EAAoB,CACnB,GAAI,CAAC,IAAI,CAACT,OAAO,CAAE,OACnB,IAAI,CAACA,OAAO,CAAC7oB,mBAAmB,CAAC,aAAA,CAAe,IAAI,CAACqpB,mBAAmB,EACzE,CACAE,iBAAAA,CAAkB/rE,OAAO,CAAEjpD,KAAK,CAAE,CACjC,GAAI,CAAC5B,QAAAA,CAASK,IAAI,CAACw2H,kBAAkB,CAAE,CACtC,GAAIj1H,MAAO,CACVA,KAAAA,GACD,CACA,MACD,CACA,MAAMjH,EAAAA,CAAK,KACVkwD,OAAAA,EAAAA,CACA7qD,QAAAA,CAASqtG,mBAAmB,CAAC,mBAAA,CAAqB1yG,IACnD,CAAA,CACA,MAAMyH,EAAI,IAAA,CACTR,KAAAA,EAAAA,CACA5B,SAASqtG,mBAAmB,CAAC,mBAAoBjrG,CAAAA,EAClD,CAAA,CACA,GAAIyoD,OAAAA,CAAS,CACZ7qD,QAAAA,CAASgvF,gBAAgB,CAAC,mBAAA,CAAqBr0F,EAAAA,CAAI,OACpD,CACA,GAAIiH,MAAO,CACV5B,QAAAA,CAASgvF,gBAAgB,CAAC,kBAAA,CAAoB5sF,EAAG,KAAA,EAClD,CACApC,SAASK,IAAI,CAACw2H,kBAAkB,GACjC,CACAC,kBAAAA,CAAmBjsE,OAAO,CAAE,CAC3B,GAAI,CAAC7qD,QAAAA,CAAS+2H,eAAe,CAAE,CAC9B,MACD,CACA,MAAMp8H,EAAAA,CAAK,KACVkwD,OAAAA,EAAAA,CACA7qD,QAAAA,CAASqtG,mBAAmB,CAAC,mBAAA,CAAqB1yG,EAAAA,EACnD,CAAA,CACA,GAAIkwD,OAAAA,CAAS,CACZ7qD,SAASgvF,gBAAgB,CAAC,oBAAqBr0F,EAAAA,CAAI,KAAA,EACpD,CACAqF,QAAAA,CAAS+2H,eAAe,GACzB,CACA/nF,MAAAA,EAAS,CACR,IAAI,CAACgoF,YAAY,CAAC,CAAA,CAAE,CAAG,IAAI,CAACjB,QAAQ,CAAC,EAAE,CACvC,IAAI,CAACiB,YAAY,CAAC,CAAA,CAAE,CAAG,IAAI,CAACjB,QAAQ,CAAC,CAAA,CACrC,CAAA,IAAI,CAACiB,YAAY,CAAC,EAAE,CAAG,IAAI,CAACjB,QAAQ,CAAC,GAAE,CAExC/B,UAAUc,MAAM,CAAE,CACjB,OAAO,IAAI,CAACiB,QAAQ,CAACjB,OAAO,CAE7Bb,UAAAA,CAAWa,MAAM,CAAE,CAClB,OAAO,IAAI,CAACiB,QAAQ,CAACjB,MAAAA,CAAO,EAAI,CAAC,IAAI,CAACkC,YAAY,CAAClC,MAAAA,CAAO,CAE3DZ,WAAAA,CAAYY,MAAM,CAAE,CACnB,OAAO,CAAC,IAAI,CAACiB,QAAQ,CAACjB,MAAAA,CAAO,EAAI,IAAI,CAACkC,YAAY,CAAClC,MAAAA,CAAO,CAE3DmC,SAAAA,CAAU3Z,KAAK,CAAE,CAChB,IAAI,CAACyY,QAAQ,CAACzY,KAAAA,CAAMwX,MAAM,CAAC,CAAG,MAC9B,MAAM1yH,CAAAA,CAAI,IAAIqyH,UAAAA,CAAW,IAAI,CAAEnX,KAAAA,CAAAA,CAC/B,GAAI,CAACl7G,CAAAA,CAAEk7G,KAAK,CAAE,OACd,IAAI,CAACn/G,IAAI,CAAC,SAAA,CAAWiE,CAAAA,EACtB,CACA80H,WAAAA,CAAY5Z,KAAK,CAAE,CAClB,IAAI,CAACyY,QAAQ,CAACzY,MAAMwX,MAAM,CAAC,CAAG,IAAA,CAC9B,MAAM1yH,EAAI,IAAIqyH,UAAAA,CAAW,IAAI,CAAEnX,KAAAA,CAAAA,CAC/B,GAAI,CAACl7G,EAAEk7G,KAAK,CAAE,OACd,IAAI,CAACn/G,IAAI,CAAC,WAAA,CAAaiE,GACxB,CACA+0H,WAAAA,CAAY7Z,KAAK,CAAE,CAClB,MAAMl7G,CAAAA,CAAI,IAAIqyH,WAAW,IAAI,CAAEnX,KAAAA,CAAAA,CAC/B,GAAI,CAACl7G,CAAAA,CAAEk7G,KAAK,CAAE,OACd,IAAI,CAACn/G,IAAI,CAAC,WAAA,CAAaiE,CAAAA,CACvB,CAAA,IAAI,CAACyzH,MAAM,CAAGzzH,CAAAA,CAAE8O,CAAC,CACjB,IAAI,CAAC4kH,MAAM,CAAG1zH,CAAAA,CAAE+O,EAAC,CAElBimH,aAAa9Z,KAAK,CAAE,CACnB,MAAMl7G,CAAAA,CAAI,IAAIqyH,UAAAA,CAAW,IAAI,CAAEnX,KAAAA,CAAAA,CAC/B,GAAI,CAACl7G,CAAAA,CAAEk7G,KAAK,CAAE,OACd,IAAI,CAACn/G,IAAI,CAAC,YAAA,CAAciE,CAAAA,EACzB,CACAizH,gBAAAA,CAAiB/X,KAAK,CAAE,CACvB,MAAMlxE,KAAO,IAAI,CAAC8pF,OAAO,CAAC7pF,qBAAqB,GAC/C,MAAM9nC,IAAAA,CAAO7P,IAAAA,CAAKoQ,KAAK,CAACsnC,IAAAA,CAAK7nC,IAAI,EACjC,MAAMwV,GAAAA,CAAMrlB,KAAKoQ,KAAK,CAACsnC,KAAKryB,GAAG,CAAA,CAC/B,GAAIujG,KAAAA,CAAM+Z,OAAO,CAAG9yH,IAAAA,EAAQ+4G,KAAAA,CAAM+Z,OAAO,EAAI9yH,IAAAA,CAAO,IAAI,CAAC2xH,OAAO,CAACoB,WAAW,EAAIha,KAAAA,CAAMia,OAAO,CAAGx9G,GAAAA,EAAOujG,KAAAA,CAAMia,OAAO,EAAIx9G,IAAM,IAAI,CAACm8G,OAAO,CAACsB,YAAY,CAAE,CACxJ,OAAO,IACR,CACA,OAAO,CACNtmH,CAAAA,CAAGosG,MAAM+Z,OAAO,CAAG9yH,KACnB4M,CAAAA,CAAGmsG,KAAAA,CAAMia,OAAO,CAAGx9G,GACpB,CACD,CA/HA,WAAA,CAAY2gC,OAAO,CAAE,CACpB,KAAK,EAAA,CAZNm7E,gBAAAA,CAAAA,IAAAA,CAAAA,QAAAA,CAAS,CAAA,CAAA,CACTC,sBAAAA,QAAAA,CAAS,CAAA,CAAA,CACTC,sBAAAA,UAAAA,CAAW,CAAC,MAAO,KAAA,CAAO,KAAA,CAAM,EAChCiB,gBAAAA,CAAAA,IAAAA,CAAAA,cAAAA,CAAe,CAAC,KAAA,CAAO,KAAA,CAAO,MAAM,CAAA,CACpCd,gBAAAA,CAAAA,IAAAA,CAAAA,UAAU,IAAA,CAAA,CACVC,gBAAAA,CAAAA,IAAAA,CAAAA,WAAAA,CAAY,KAAA,CAAA,CACZE,sBAAAA,YAAAA,CAAAA,QACAC,gBAAAA,CAAAA,IAAAA,CAAAA,cAAAA,CAAAA,MAAAA,CAAAA,CACAC,gBAAAA,CAAAA,IAAAA,CAAAA,eAAAA,MAAAA,CAAAA,CACAC,sBAAAA,eAAAA,CAAAA,QACAE,gBAAAA,CAAAA,IAAAA,CAAAA,qBAAAA,CAAAA,MAAAA,CAGC,CAAA,IAAI,CAACL,UAAU,CAAG,IAAI,CAACY,SAAS,CAAC3xH,IAAI,CAAC,IAAI,CAC1C,CAAA,IAAI,CAACgxH,YAAY,CAAG,IAAI,CAACY,WAAW,CAAC5xH,IAAI,CAAC,IAAI,CAC9C,CAAA,IAAI,CAACixH,YAAY,CAAG,IAAI,CAACY,WAAW,CAAC7xH,IAAI,CAAC,IAAI,CAC9C,CAAA,IAAI,CAACkxH,aAAa,CAAG,IAAI,CAACY,YAAY,CAAC9xH,IAAI,CAAC,IAAI,CAChD,CAAA,IAAI,CAACoxH,mBAAmB,CAAIpZ,QAC3BA,KAAAA,CAAMC,cAAc,GACrB,CAAA,CACA,IAAI,CAACqV,MAAM,CAACl4E,SACb,CAsHD,CAAA,CA/IC,gBAAA,CAAA,OAAA,CAAO+8E,iBAAAA,CAAkB,aACzB,gBAAA,CAAA,OAAA,CAAOC,iBAAAA,CAAkB,aACzB,gBAAA,CAAA,OAAA,CAAOC,eAAAA,CAAgB,WACvB,gBAAA,CAAA,OAAA,CAAOC,kBAAAA,CAAmB,uBA8I3B,IAAIC,UAAAA,CAAa,MAgBhBjF,MAAAA,CAAOl4E,OAAO,CAAE,CACf,IAAI,CAACm4E,QAAQ,CAAGn4E,OAAAA,CAChB,GAAI,IAAI,CAACo9E,SAAS,CAAE,CACnB,IAAI,CAACA,SAAS,CAAClF,MAAM,CAACl4E,SACvB,CACA,GAAI,IAAI,CAACq9E,MAAM,CAAE,CAChB,IAAI,CAACA,MAAM,CAACnF,MAAM,CAACl4E,SACpB,CACD,CACAo4E,QAAS,CACR,GAAI,IAAI,CAACgF,SAAS,CAAE,CACnB,IAAI,CAACA,SAAS,CAAChF,MAAM,GACtB,CACA,GAAI,IAAI,CAACiF,MAAM,CAAE,CAChB,IAAI,CAACA,MAAM,CAACjF,MAAM,GACnB,CACA,IAAI,CAACD,QAAQ,CAAG,KACjB,CACA4D,kBAAAA,EAAqB,CACpB,GAAI,CAAC,IAAI,CAACsB,MAAM,CAAE,CACjB,IAAI,CAACC,YAAY,GAClB,CACA,IAAI,CAACD,MAAM,CAACtB,kBAAkB,GAC/B,CACAE,mBAAoB,CACnB,GAAI,CAAC,IAAI,CAACoB,MAAM,CAAE,CACjB,IAAI,CAACC,YAAY,GAClB,CACA,IAAI,CAACD,MAAM,CAACpB,iBAAiB,GAC9B,CACA3nF,MAAAA,CAAOipF,EAAE,CAAE,CACV,GAAI,IAAI,CAACH,SAAS,CAAE,CACnB,IAAI,CAACA,SAAS,CAAC9oF,MAAM,GACtB,CACA,GAAI,IAAI,CAAC+oF,MAAM,CAAE,CAChB,IAAI,CAACA,MAAM,CAAC/oF,MAAM,GACnB,CACA,GAAI,IAAI,CAACkpF,SAAS,CAAE,CACnB,IAAI,CAACA,SAAS,CAAClpF,MAAM,GACtB,CACA,IAAI,CAACmpF,WAAW,CAAG,GACnB,IAAK,MAAMj7H,OAAO,IAAI,CAACk7H,KAAK,CAAE,CAC7B,IAAI,CAACD,WAAW,CAACj7H,GAAAA,CAAI,CAAG,GACzB,CACD,CACAm7H,YAAAA,CAAaC,WAAW,CAAEC,MAAM,CAAE,CACjC,IAAI,CAACC,QAAQ,CAACF,WAAAA,CAAY,CAAG,IAAI,CAACE,QAAQ,CAACF,WAAAA,CAAY,EAAI,EAAE,CAC7D,IAAI,CAACE,QAAQ,CAACF,WAAAA,CAAY,CAACriI,IAAI,CAACsiI,MAAAA,EACjC,CACAE,YAAAA,CAAaF,MAAM,CAAExrH,IAAI,CAAE,CAC1B,GAAI,CAAC,IAAI,CAAC+qH,SAAS,CAAE,CACpB,IAAI,CAACY,eAAe,GACrB,CACA,GAAI,IAAI,CAACF,QAAQ,CAACD,MAAAA,CAAO,CAAE,CAC1B,MAAM,IAAIrmI,KAAAA,CAAM,CAAC,QAAQ,EAAEqmI,MAAAA,CAAO,mBAAmB,CAAC,CACvD,CACA,GAAIxrH,IAAAA,GAAS,MAAK,CAAG,CACpB,MAAM,IAAI7a,KAAAA,CAAM,iBACjB,CACA,GAAI,CAAC6a,IAAAA,CAAK3X,MAAM,CAAE,CACjB2X,KAAO,CAACA,IAAAA,EAAK,CAEd,IAAI,CAACsrH,YAAY,CAACE,OAAQ,CACzBhsH,IAAAA,CAAM28G,gBACNn8G,IACD,CAAA,EACD,CACA4rH,aAAAA,CAAcJ,MAAM,CAAEzD,MAAM,CAAE,CAC7B,GAAI,CAAC,IAAI,CAACiD,MAAM,CAAE,CACjB,IAAI,CAACC,YAAY,GAClB,CACA,GAAIlD,SAAW,MAAK,CAAG,CACtB,MAAM,IAAI5iI,KAAAA,CAAM,gBAAA,CACjB,CACA,IAAI,CAACmmI,YAAY,CAACE,MAAAA,CAAQ,CACzBhsH,IAAAA,CAAM08G,YAAAA,CACN6L,MACD,CAAA,EACD,CACA8D,kBAAkBL,MAAM,CAAEM,GAAG,CAAE/D,MAAM,CAAE,CACtC,GAAIA,MAAAA,GAAW,OAAQ,CACtB,MAAM,IAAI5iI,KAAAA,CAAM,gBAAA,CACjB,CACA,IAAI,CAACmmI,YAAY,CAACE,MAAAA,CAAQ,CACzBhsH,IAAAA,CAAM48G,cAAAA,CACN2L,OACA+D,GACD,CAAA,EACD,CACAC,YAAAA,CAAanyH,QAAQ,CAAE,CACtB,MAAM1O,IAAAA,CAAO0O,QAAAA,CAAS1O,IAAI,CAC1B,GAAI,CAAC,IAAI,CAACmgI,KAAK,CAACngI,IAAAA,CAAK,CAAE,CACtB,IAAI,CAACmgI,KAAK,CAACngI,KAAK,CAAG,GAAE,CAEtB,MAAM9C,EAAAA,CAAK,IAAI,CAACijI,KAAK,CAACngI,KAAK,CAAChC,IAAI,CAACgC,IAAAA,CAAAA,CACjC0O,SAAWA,QAAAA,EAAY,EACvBA,CAAAA,QAAAA,CAASkyH,GAAG,CAAGlyH,QAAAA,CAASkyH,GAAG,EAAI7I,MAC/B,MAAM1qH,IAAAA,CAAO,SAASyzH,UAAU,CAAEntF,MAAM,CAAE5uC,KAAK,CAAEE,GAAG,CAAA,CACnD,OAAQ0uC,MAAAA,EACP,KAAK,SACJmtF,UAAAA,CAAWhB,MAAM,CAACr7H,EAAE,CAAC,WAAA,CAAc0F,IAClC22H,UAAAA,CAAWZ,WAAW,CAAClgI,IAAAA,CAAK,CAAC9C,GAAG,CAAGiN,CAAAA,CAAEovE,EAAE,CAAG,GAC3C,GACA,MACD,KAAK,SACJunD,UAAAA,CAAWhB,MAAM,CAACr7H,EAAE,CAAC,WAAA,CAAc0F,IAClC22H,UAAAA,CAAWZ,WAAW,CAAClgI,IAAAA,CAAK,CAAC9C,GAAG,CAAGiN,CAAAA,CAAEsvE,EAAE,CAAG,GAC3C,GACA,MACD,KAAK,MACJqnD,UAAAA,CAAWX,KAAK,CAACngI,IAAAA,CAAK,CAAChC,IAAI,CAAC,KAC3B,OAAO8iI,UAAAA,CAAWjB,SAAS,CAAC9D,SAAS,CAAC92H,GAAAA,CAAAA,CAAOF,KAAAA,CAAQ,CACtD,CAAA,CAAA,CACA,WACI,OAAA,CACJ+7H,UAAAA,CAAWX,KAAK,CAACngI,IAAAA,CAAK,CAAChC,IAAI,CAAC,IAAA,CAC3B,OAAO8iI,WAAWb,SAAS,CAACc,OAAO,CAACryH,QAAAA,CAASkyH,GAAG,CAAEtH,aAAAA,CACnD,GACA,MACD,KAAK,QACJwH,UAAAA,CAAWX,KAAK,CAACngI,IAAAA,CAAK,CAAChC,IAAI,CAAC,IAAA,CAC3B,OAAO8iI,UAAAA,CAAWb,SAAS,CAACc,OAAO,CAACryH,QAAAA,CAASkyH,GAAG,CAAErH,aAAAA,CACnD,CAAA,CAAA,CACA,MACD,KAAK,OAAA,CACJuH,WAAWX,KAAK,CAACngI,KAAK,CAAChC,IAAI,CAAC,IAAA,CAC3B,OAAO8iI,UAAAA,CAAWb,SAAS,CAACc,OAAO,CAACryH,SAASkyH,GAAG,CAAExH,cACnD,CAAA,CAAA,CACA,WACI,OAAA,CACJ0H,UAAAA,CAAWX,KAAK,CAACngI,IAAAA,CAAK,CAAChC,IAAI,CAAC,KAC3B,OAAO8iI,UAAAA,CAAWb,SAAS,CAACc,OAAO,CAACryH,QAAAA,CAASkyH,GAAG,CAAEvH,aAAAA,CACnD,GACA,MACD,QACC,MAAM,IAAIp/H,MAAM,cAAA,CAClB,CACD,EACAoT,IAAAA,CAAK,IAAI,CAAEqB,QAAAA,CAASsyH,QAAQ,CAAE,CAAA,CAAGtyH,SAASuyH,WAAW,CAAA,CACrD,GAAIvyH,QAAAA,CAASwyH,WAAW,EAAIxyH,QAAAA,CAASyyH,QAAQ,GAAKzyH,QAAAA,CAASsyH,QAAQ,CAAE,CACpE3zH,IAAAA,CAAK,IAAI,CAAEqB,QAAAA,CAASyyH,QAAQ,CAAE,EAAC,CAAGzyH,QAAAA,CAASwyH,WAAW,EACvD,CACD,CACAnF,SAAAA,CAAUqF,UAAU,CAAE,CACrB,GAAI,CAAC,IAAI,CAACb,QAAQ,CAACa,UAAAA,CAAW,CAAE,CAC/B,OAAO,KACR,CACA,MAAMjkI,MAAAA,CAAS,IAAI,CAACojI,QAAQ,CAACa,WAAW,CAACjkI,MAAM,CAC/C,IAAK,IAAIoF,MAAQ,CAAA,CAAGA,KAAAA,CAAQpF,OAAQ,EAAEoF,KAAAA,CAAO,CAC5C,MAAM+9H,MAAAA,CAAS,IAAI,CAACC,QAAQ,CAACa,UAAAA,CAAW,CAAC7+H,KAAAA,CAAM,CAC/C,OAAQ+9H,MAAAA,CAAOhsH,IAAI,EAClB,KAAK28G,eAAAA,CACJ,GAAI,IAAI,CAAC4O,SAAS,CAAE,CACnB,MAAM9qH,GAAAA,CAAMurH,MAAAA,CAAOxrH,IAAI,CAAC3X,MAAM,CAC9B,IAAK,IAAID,EAAAA,CAAK,CAAA,CAAGA,GAAK6X,GAAAA,CAAK7X,EAAAA,EAAAA,CAAM,CAChC,GAAI,IAAI,CAAC2iI,SAAS,CAAC9D,SAAS,CAACuE,MAAAA,CAAOxrH,IAAI,CAAC5X,EAAAA,CAAG,EAAG,CAC9C,OAAO,IACR,CACD,CACD,CACA,WACI8zH,YAAAA,CACJ,GAAI,IAAI,CAAC8O,MAAM,EAAI,IAAI,CAACA,MAAM,CAAC/D,SAAS,CAACuE,MAAAA,CAAOzD,MAAM,EAAG,CACxD,OAAO,IACR,CACA,MACD,KAAK3L,cAAAA,CACJ,GAAI,IAAI,CAAC+O,SAAS,EAAI,IAAI,CAACA,SAAS,CAAClE,SAAS,CAACuE,MAAAA,CAAOM,GAAG,CAAEN,MAAAA,CAAOzD,MAAM,CAAA,CAAG,CAC1E,OAAO,IACR,CACA,KACF,CACD,CACA,OAAO,KACR,CACAb,UAAAA,CAAWoF,UAAU,CAAE,CACtB,GAAI,CAAC,IAAI,CAACb,QAAQ,CAACa,WAAW,CAAE,CAC/B,OAAO,KACR,CACA,MAAMjkI,MAAAA,CAAS,IAAI,CAACojI,QAAQ,CAACa,UAAAA,CAAW,CAACjkI,MAAM,CAC/C,IAAK,IAAIoF,KAAAA,CAAQ,CAAA,CAAGA,MAAQpF,MAAAA,CAAQ,EAAEoF,MAAO,CAC5C,MAAM+9H,MAAAA,CAAS,IAAI,CAACC,QAAQ,CAACa,WAAW,CAAC7+H,KAAAA,CAAM,CAC/C,OAAQ+9H,MAAAA,CAAOhsH,IAAI,EAClB,KAAK28G,gBACJ,GAAI,IAAI,CAAC4O,SAAS,CAAE,CACnB,MAAM9qH,GAAAA,CAAMurH,MAAAA,CAAOxrH,IAAI,CAAC3X,MAAM,CAC9B,IAAK,IAAID,EAAAA,CAAK,EAAGA,EAAAA,CAAK6X,GAAAA,CAAK7X,KAAM,CAChC,GAAI,IAAI,CAAC2iI,SAAS,CAAC7D,UAAU,CAACsE,OAAOxrH,IAAI,CAAC5X,EAAAA,CAAG,CAAA,CAAG,CAC/C,OAAO,IACR,CACD,CACD,CACA,MACD,KAAK8zH,YAAAA,CACJ,GAAI,IAAI,CAAC8O,MAAM,EAAI,IAAI,CAACA,MAAM,CAAC9D,UAAU,CAACsE,MAAAA,CAAOzD,MAAM,CAAA,CAAG,CACzD,OAAO,IACR,CACA,MACD,KAAK3L,eACJ,GAAI,IAAI,CAAC+O,SAAS,EAAI,IAAI,CAACA,SAAS,CAACjE,UAAU,CAACsE,OAAOM,GAAG,CAAEN,MAAAA,CAAOzD,MAAM,EAAG,CAC3E,OAAO,IACR,CACA,KACF,CACD,CACA,OAAO,KACR,CACAkE,OAAAA,CAAQ/gI,IAAI,CAAE,CACb,IAAI+E,KAAAA,CAAQ,CAAA,CACZ,GAAI,IAAI,CAACo7H,KAAK,CAACngI,KAAK,CAAE,CACrB,MAAM+U,GAAAA,CAAM,IAAI,CAACorH,KAAK,CAACngI,KAAK,CAAC7C,MAAM,CACnC,IAAK,IAAID,GAAK,CAAA,CAAGA,EAAAA,CAAK6X,IAAK7X,EAAAA,EAAAA,CAAM,CAChC,GAAI,OAAO,IAAI,CAACijI,KAAK,CAACngI,IAAAA,CAAK,CAAC9C,GAAG,GAAK,UAAA,CAAY,CAC/C,MAAMP,GAAK,IAAI,CAACwjI,KAAK,CAACngI,IAAAA,CAAK,CAAC9C,EAAAA,CAAG,EAAA,CAC/B,GAAIT,IAAAA,CAAK6Z,GAAG,CAAC3Z,EAAAA,CAAAA,CAAMF,KAAK6Z,GAAG,CAACvR,OAAQ,CACnCA,KAAAA,CAAQpI,GACT,CACD,CAAA,KAAO,GAAI,IAAI,CAACujI,WAAW,CAAClgI,IAAAA,CAAK,CAAE,CAClC,GAAIvD,IAAAA,CAAK6Z,GAAG,CAAC,IAAI,CAAC4pH,WAAW,CAAClgI,IAAAA,CAAK,CAAC9C,EAAAA,CAAG,CAAA,CAAIT,KAAK6Z,GAAG,CAACvR,OAAQ,CAC3DA,KAAAA,CAAQ,IAAI,CAACm7H,WAAW,CAAClgI,IAAAA,CAAK,CAAC9C,EAAAA,EAChC,CACD,CACD,CACD,CACA,OAAO6H,KACR,CACAg7H,YAAAA,EAAe,CACd,IAAI,CAACD,MAAM,CAAG,IAAI/B,KAAAA,CAClB,GAAI,CAAC,IAAI,CAACnD,QAAQ,CAAE,CACnB,MAAM,IAAI3gI,KAAAA,CAAM,2CAAA,CACjB,CACA,IAAI,CAAC6lI,MAAM,CAACnF,MAAM,CAAC,IAAI,CAACC,QAAQ,EACjC,CACA6F,iBAAkB,CACjB,IAAI,CAACZ,SAAS,CAAG,IAAInF,QAAAA,CACrB,GAAI,CAAC,IAAI,CAACE,QAAQ,CAAE,CACnB,MAAM,IAAI3gI,MAAM,2CAAA,CACjB,CACA,IAAI,CAAC4lI,SAAS,CAAClF,MAAM,CAAC,IAAI,CAACC,QAAQ,EACpC,CAvPA,YAAYn4E,OAAO,CAAE/zC,SAAW,EAAE,CAAE,CAPpCmxH,gBAAAA,CAAAA,IAAAA,CAAAA,YAAAA,MAAAA,CAAAA,CACAC,sBAAAA,QAAAA,CAAAA,QACAG,gBAAAA,CAAAA,IAAAA,CAAAA,WAAAA,CAAAA,MAAAA,CAAAA,CACArF,gBAAAA,CAAAA,IAAAA,CAAAA,UAAAA,CAAW,IAAA,CAAA,CACX2F,sBAAAA,UAAAA,CAAW,IACXJ,gBAAAA,CAAAA,IAAAA,CAAAA,OAAAA,CAAQ,EAAC,CAAA,CACTD,gBAAAA,CAAAA,IAAAA,CAAAA,cAAc,EAAC,CAEd,CAAA,IAAI,CAACL,SAAS,CAAGnxH,QAAAA,CAASyrH,QAAQ,EAAI,IACtC,CAAA,IAAI,CAAC2F,MAAM,CAAGpxH,SAASkuH,KAAK,EAAI,IAChC,CAAA,IAAI,CAACqD,SAAS,CAAGvxH,QAAAA,CAAShP,QAAQ,EAAI,IAAA,CACtC,GAAI+iD,QAAS,CACZ,IAAI,CAACk4E,MAAM,CAACl4E,OAAAA,EACb,CACD,CAiPD,CAAA,CAEA,IAAI4+E,WAAahuH,MAAAA,CAAOC,MAAM,CAAC,EAAE,CAAA,CACjC,IAAI3T,WAAAA,CAAc,UAAA,CACjB,OAAO0hI,UACR,CAAA,CACA,GAAI,OAAOviI,SAAAA,GAAc,WAAA,CAAa,CACrCa,YAAc,CAACb,UAAUa,WAAW,EAAIb,UAAUc,iBAAiB,EAAID,WAAU,EAAG0N,IAAI,CAACvO,SAAAA,EAC1F,CACA,IAAIwiI,YAAAA,CAAe,CAClBxE,QAAS,CACR3E,UAAAA,CACAC,UAAAA,CACAC,UAAAA,CACAC,WACAC,gBAAAA,CACAC,gBAAAA,CACAC,iBACAC,gBAAAA,CACAC,UAAAA,CACAC,UACAC,kBAAAA,CACAC,kBAAAA,CACAC,OACAC,QAAAA,CACAC,QAAAA,CACAC,UACAC,UAAAA,CACAU,aAAAA,CACAC,cACAF,qBAAAA,CACAG,kBAAAA,CACAC,QACAC,OACD,CAAA,CACAsH,IAAAA,CAAM,CACLnI,cACAC,aAAAA,CACAC,aAAAA,CACAC,cACAC,gBAAAA,CACAC,gBAAAA,CACAC,cACAC,aACD,CACD,CAAA,CACA,IAAI6H,KAAO,CACVhmF,OAAAA,CAAS,CACRshF,OAAAA,CAAS,CAER,aACA,YAAA,CACA,YAAA,CACA,YAAA,CAEA,kBAAA,CACA,mBACA,kBAAA,CACA,kBAAA,CAEA,aACA,WAAA,CACA,oBAAA,CACA,qBAEA,QAAA,CACA,UAAA,CACA,WACA,WAAA,CAEA,YAAA,CACA,CACDyE,IAAAA,CAAM,CAEL,gBACA,eAAA,CACA,eAAA,CACA,gBACD,CACD,CACAE,YAAAA,CAAc,CACb3E,QAAS,CAER,YAAA,CACA,aACA,YAAA,CACA,YAAA,CAEA,mBACA,kBAAA,CACA,kBAAA,CACA,mBAEA,YAAA,CACA,WAAA,CACA,qBACA,oBAAA,CAEA,YAAA,CACA,CACDyE,IAAAA,CAAM,CAEL,gBACA,eAAA,CACA,eAAA,CACA,eAAA,CACA,CACDG,mBAAoB,CACnB3I,MAAAA,CAAQ,CAAEt2G,IAAAA,CAAM,CAAA,CAAGpS,IAAK,CAAA,CAAGC,GAAAA,CAAK,CAAE,CAAA,CAClC0oH,QAAAA,CAAU,CAAEv2G,IAAAA,CAAM,CAAA,CAAGpS,IAAK,EAAC,CAAGC,IAAK,CAAE,CAAA,CACrC2oH,QAAAA,CAAU,CAAEx2G,KAAM,CAAA,CAAGpS,GAAAA,CAAK,EAAC,CAAGC,GAAAA,CAAK,CAAE,CAAA,CACrC4oH,SAAAA,CAAW,CAAEz2G,IAAAA,CAAM,EAAGpS,GAAAA,CAAK,CAAA,CAAGC,IAAK,CAAE,CACtC,CACD,CAAA,CACAqxH,GAAAA,CAAK,CACJ7E,OAAAA,CAAS,CAER,YAAA,CACA,YAAA,CACA,aACA,YAAA,CAEA,kBAAA,CACA,mBACA,kBAAA,CACA,kBAAA,CAEA,aACA,WAAA,CACA,oBAAA,CACA,qBAEA,QAAA,CACA,UAAA,CACA,WACA,WAAA,CACA,YAAA,CACA,CACDyE,IAAAA,CAAM,CAEL,eAAA,CACA,eAAA,CACA,gBACA,eAAA,CACA,CACDK,QAAS,UACV,CAAA,CACAC,WAAY,CACX/E,OAAAA,CAAS,CAER,eAAA,CACA,eAAA,CAEA,wBACA,oBAAA,CAEA,SAAA,CACA,UACA,CACDyE,IAAAA,CAAM,CAEL,kBAAA,CACA,kBAAA,CACA,eAAA,CACA,eAAA,CACA,CACDK,OAAAA,CAAS,aACV,CACD,CAAA,CACA,IAAIE,cAAgB,CACnB,eAAA,CAAiB,KAClB,CAAA,CACA,IAAIC,YAAc,EAAC,CACnB,SAASC,MAAAA,CAAOpB,GAAG,EAClB,MAAMqB,MAAAA,CAASF,WAAW,CAACnB,IAAIv3F,EAAE,CAAC,CAClC,GAAI44F,MAAAA,CAAQ,CACX,OAAOA,MACR,CACA,IAAK,MAAMjgI,QAAQ8/H,aAAAA,CAAe,CACjC,GAAIlB,GAAAA,CAAIv3F,EAAE,CAACpjC,OAAO,CAACjE,IAAAA,CAAAA,GAAU,GAAI,CAChC,MAAMkgI,QAAUJ,aAAa,CAAC9/H,KAAK,CACnC,GAAI,CAAC4+H,GAAAA,CAAIgB,OAAO,CAAE,CACjB,MAAMO,IAAMX,IAAI,CAAC,CAAC,IAAI,EAAEU,OAAAA,CAAQ,CAAC,CAAC,CAClC,GAAIC,IAAK,CACR,OAAOA,GACR,CACD,CACA,OAAOX,IAAI,CAACU,QAAQ,CAEtB,CACA,GAAItB,GAAAA,CAAIgB,OAAO,GAAK,aAAA,CAAe,CAClC,OAAOJ,KAAKK,UACb,CACA,MAAMO,UAAAA,CAAaZ,KAAKhmF,OAAO,CAC/B,MAAMh4C,GAAAA,CAAMo9H,GAAAA,CAAI9D,OAAO,CAAC3/H,MAAM,CAAGilI,UAAAA,CAAWtF,OAAO,CAAC3/H,MAAM,CAAGqkI,IAAAA,CAAKC,YAAY,CAAGW,UACjF5+H,CAAAA,IAAIo+H,OAAO,CAAGhB,IAAIgB,OAAO,CACzB,OAAOp+H,GACR,CACA,IAAI6+H,QAAAA,CAAW,IACf,SAASC,KAAAA,CAAMC,EAAE,CAAA,CAChB,OAAO,IAAIvtC,OAAAA,CAAQ,QAACz0B,EAAAA,CACnB2xB,UAAAA,CAAW3xB,SAAUgiE,EAAAA,EACtB,CAAA,CACD,CACA,IAAIC,aAAAA,CAAgB,MA6BnBzrF,MAAAA,CAAO8lF,MAAM,CAAE,CACd,KAAM,CAAE93H,KAAK,CAAE09H,OAAO,CAAE,CAAG5F,MAAAA,CAC3B,MAAM6F,QAAU7F,MAAAA,CAAO6F,OAAO,EAAI39H,KAAAA,CAAQ,CAC1C,CAAA,IAAI,CAACi3H,UAAU,CAAG,CAAC,IAAI,CAACyG,OAAO,EAAIA,OACnC,CAAA,IAAI,CAACxG,WAAW,CAAG,IAAI,CAACwG,OAAO,EAAI,CAACA,OACpC,CAAA,IAAI,CAACE,UAAU,CAAG,CAAC,IAAI,CAACD,OAAO,EAAIA,OACnC,CAAA,IAAI,CAAC39H,KAAK,CAAGA,KACb,CAAA,IAAI,CAAC09H,OAAO,CAAGA,OACf,CAAA,IAAI,CAACC,OAAO,CAAGA,QAChB,CA/BA,YAAY91H,OAAO,CAAEg2H,QAAQ,CAAE,CAN/B79H,sBAAAA,OAAAA,CAAQ,CAAA,CAAA,CACR09H,gBAAAA,CAAAA,IAAAA,CAAAA,SAAAA,CAAU,OACVC,gBAAAA,CAAAA,IAAAA,CAAAA,SAAAA,CAAU,OACV1G,gBAAAA,CAAAA,IAAAA,CAAAA,YAAAA,CAAa,OACbC,gBAAAA,CAAAA,IAAAA,CAAAA,aAAAA,CAAc,OACd0G,gBAAAA,CAAAA,IAAAA,CAAAA,YAAAA,CAAa,OAEZ,GAAI,OAAO/1H,UAAY,QAAA,CAAU,CAChC,IAAI,CAAC7H,KAAK,CAAG6H,OACb,CAAA,IAAI,CAAC61H,OAAO,CAAG71H,OAAAA,GAAY,CAC3B,CAAA,IAAI,CAAC81H,OAAO,CAAG91H,QAAU,EAC1B,CAAA,KAAO,CACN,IAAI,CAAC7H,KAAK,CAAG6H,OAAAA,CAAQ7H,KACrB,CAAA,IAAI,CAAC09H,OAAO,CAAG71H,OAAAA,CAAQ61H,OAAO,CAC9B,IAAI,CAACC,OAAO,CAAG91H,OAAAA,CAAQ81H,OAAO,EAAI91H,OAAAA,CAAQ7H,KAAK,CAAG,EACnD,CACA,GAAI69H,QAAAA,CAAU,CACb,GAAI,OAAOA,WAAa,QAAA,CAAU,CACjC,IAAI,CAAC5G,UAAU,CAAG4G,QAAAA,GAAa,GAAK,IAAI,CAACH,OAAO,CAChD,IAAI,CAACxG,WAAW,CAAG2G,QAAAA,GAAa,GAAK,CAAC,IAAI,CAACH,OAC3C,CAAA,IAAI,CAACE,UAAU,CAAGC,QAAAA,GAAa,GAAK,IAAI,CAACF,QAAO,CACjD,KAAO,CACN,IAAI,CAAC1G,UAAU,CAAG,CAAC4G,QAAAA,CAASH,OAAO,EAAI,IAAI,CAACA,OAAO,CACnD,IAAI,CAACxG,WAAW,CAAG2G,QAAAA,CAASH,OAAO,EAAI,CAAC,IAAI,CAACA,OAC7C,CAAA,IAAI,CAACE,UAAU,CAAG,EAAEC,QAAAA,CAASF,OAAO,EAAIE,QAAAA,CAAS79H,KAAK,CAAG,CAAA,GAAM,IAAI,CAAC29H,QAAO,CAE7E,CACD,CAWD,CAAA,CACA,IAAIG,WAAAA,CAAcxvH,OAAOC,MAAM,CAAC,IAAIkvH,aAAAA,CAAc,CAAA,CAAA,CAAA,CAClD,IAAIM,OAAAA,CAAU,KAAA,CA0Bb,IAAIC,SAAAA,EAAY,CACf,OAAO,IAAI,CAACnC,GAAG,CAACmC,SAAS,CAE1BC,eAAAA,EAAkB,CACjB,KAAM,CAAEzB,IAAI,CAAEzE,OAAO,CAAE,CAAG,IAAI,CAACmG,gBAAgB,CAC/C,MAAMC,WAAAA,CAAc5B,aAAaC,IAAI,CACrC,MAAM4B,cAAAA,CAAiB7B,YAAAA,CAAaxE,OAAO,CAC3CyE,IAAAA,CAAKpkI,MAAM,CAAG,CACd2/H,CAAAA,QAAQ3/H,MAAM,CAAG,EACjB,MAAMimI,OAAAA,CAAU,IAAI,CAAC5/H,GAAG,CAAC+9H,IAAI,CAC7B,GAAI6B,OAAAA,CAAS,CACZ,IAAI,CAAC5/H,GAAG,CAAC+9H,IAAI,CAAC33H,OAAO,CAAC,CAAC6Y,IAAAA,CAAMvlB,EAAAA,GAAAA,CAC5BqkI,IAAI,CAAC2B,WAAW,CAACzgH,IAAAA,CAAK,CAAC,CAAG,IAAM,IAAI,CAACm+G,GAAG,CAACW,IAAI,CAACrkI,EAAAA,CAAG,EAAI,EACtD,GACD,CACA,IAAK,IAAIA,EAAAA,CAAK,CAAA,CAAGgf,EAAIqlH,IAAAA,CAAKpkI,MAAM,CAAED,EAAAA,CAAKgf,EAAGhf,EAAAA,EAAAA,CAAM,CAC/C,GAAI,CAACqkI,IAAI,CAACrkI,EAAAA,CAAG,CAAE,CACdqkI,IAAI,CAACrkI,EAAAA,CAAG,CAAG,IAAM,EAClB,CACD,CACA,MAAMmmI,UAAAA,CAAa,IAAI,CAAC7/H,GAAG,CAACs5H,OAAO,CACnC,GAAIuG,UAAAA,CAAY,CACfA,WAAWz5H,OAAO,CAAC,CAACizH,MAAAA,CAAQ3/H,MAC3B4/H,OAAO,CAACqG,cAAc,CAACtG,MAAAA,CAAO,CAAC,CAAG,IAAM,IAAI,CAACiB,QAAQ,CAAC5gI,EAAAA,CAAG,EAAI2lI,YAC9D,CAAA,EACD,CACA,MAAMS,qBAAAA,CAAwB,IAAI,CAAC9/H,GAAG,CAACk+H,kBAAkB,CACzD,GAAI4B,qBAAAA,CAAuB,CAC1BjwH,OAAOshD,OAAO,CAAC2uE,uBAAuB15H,OAAO,CAAC,MAACizH,EAAAA,CAC9C,KAAM,CAAEp6G,IAAI,CAAEnS,GAAG,CAAED,GAAG,CAAE,CAAGwsH,MAAM,CAAC,CAAA,CAAE,CACpCC,OAAO,CAACqG,cAAc,CAACtG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAG,IAAM,IAAI2F,cAC9C/lI,IAAAA,CAAK6Z,GAAG,CAACtG,IAAAA,CAAKI,KAAK,CAAC,IAAI,CAAC+vH,KAAK,CAAC19G,KAAK,EAAI,CAAA,CAAGpS,IAAKC,GAAAA,CAAAA,CAAAA,CAChD7T,IAAAA,CAAK6Z,GAAG,CAACtG,IAAAA,CAAKI,KAAK,CAAC,IAAI,CAACmzH,aAAa,CAAC9gH,IAAAA,CAAK,EAAI,EAAGpS,GAAAA,CAAKC,GAAAA,CAAAA,CAAAA,EAE1D,GACD,CACA,IAAK,IAAIpT,EAAAA,CAAK,CAAA,CAAGgf,EAAI4gH,OAAAA,CAAQ3/H,MAAM,CAAED,EAAAA,CAAKgf,CAAAA,CAAGhf,KAAM,CAClD,GAAI,CAAC4/H,OAAO,CAAC5/H,EAAAA,CAAG,CAAE,CACjB4/H,OAAO,CAAC5/H,GAAG,CAAG,IAAM2lI,YACrB,CACD,CACD,CACA9rF,MAAAA,CAAOysF,OAAO,CAAE,CACf,IAAI,CAAC5C,GAAG,CAAG4C,QACX,MAAMC,YAAAA,CAAe,IAAI,CAACF,aAAa,CACvC,MAAMhC,KAAO,IAAI,CAACpB,KAAK,CACvBsD,YAAAA,CAAatmI,MAAM,CAAG,CAAA,CACtBsmI,YAAAA,CAAazlI,IAAI,CAAA,GAAIujI,IAAAA,CACrBA,CAAAA,IAAAA,CAAKpkI,MAAM,CAAG,CAAA,CACdokI,KAAKvjI,IAAI,CAAA,GAAIwlI,QAAQjC,IAAI,CAAA,CACzB,MAAMzE,OAAAA,CAAU,IAAI,CAACgB,QAAQ,CAC7B,IAAK,IAAI5gI,EAAAA,CAAK,EAAGgf,CAAAA,CAAI4gH,OAAAA,CAAQ3/H,MAAM,CAAED,EAAAA,CAAKgf,CAAAA,CAAGhf,EAAAA,EAAAA,CAAM,CAClD4/H,OAAO,CAAC5/H,GAAG,CAAC65C,MAAM,CAACysF,OAAAA,CAAQ1G,OAAO,CAAC5/H,EAAAA,CAAG,EACvC,CACA,OAAO,IAAI,CAEZwmI,SAAAA,CAAUlgI,GAAG,CAAE,CACdA,GAAAA,CAAIo+H,OAAO,CAAG,QACdG,CAAAA,WAAW,CAAC,IAAI,CAAC14F,EAAE,CAAC,CAAG7lC,GACvB,CAAA,IAAI,CAACA,GAAG,CAAGA,GACX,CAAA,IAAI,CAACo+H,OAAO,CAAG,QAAA,CACf,IAAI,CAACoB,eAAe,GACrB,CACAW,QAAAA,EAAW,CACV,GAAI5B,WAAW,CAAC,IAAI,CAAC14F,EAAE,CAAC,CAAE,CACzB,OAAO04F,WAAW,CAAC,IAAI,CAAC14F,EAAE,CAAC,CAC3B,MAAM7lC,GAAAA,CAAMw+H,OAAO,IAAI,CAACpB,GAAG,CAC3B,CAAA,IAAI,CAACp9H,GAAG,CAAGA,GACX,CAAA,IAAI,CAACo+H,OAAO,CAAGp+H,GAAAA,CAAIo+H,OAAO,CAC1B,IAAI,CAACoB,eAAe,GACrB,CACD,CACA,IAAIzB,MAAO,CACV,OAAO,IAAI,CAAC0B,gBAAgB,CAAC1B,IAAI,CAAC/9H,GAAG,CAAE3J,GAAMA,CAAAA,EAAAA,CAC9C,CACA,IAAIijI,OAAAA,EAAU,CACb,OAAO,IAAI,CAACmG,gBAAgB,CAACnG,OAAO,CAACt5H,GAAG,CAAC,CAAC1J,EAAMA,IACjD,CACA,MAAM8pI,MAAMC,SAAS,CAAE3vB,QAAQ,CAAExlG,QAAQ,CAAE,CAC1C,MAAMo1H,SAAAA,CAAY,IAAI,CAAClD,GAAG,CAACmD,iBAAiB,CAAG,CAAC,IAAI,CAACnD,GAAG,CAACmD,iBAAiB,CAAC,CAAG,IAAI,CAACnD,GAAG,CAACoD,eAAe,EAAI3C,WAC1G,GAAIyC,SAAAA,CAAU3mI,MAAM,CAAE,CACrB,MAAM8mI,UAAAA,CAAav1H,QAAAA,EAAUu1H,YAAc,CAAA,CAC3C,MAAMC,gBAAkBx1H,QAAAA,EAAUw1H,eAAAA,EAAmBL,UACrD,MAAMM,aAAAA,CAAgBz1H,UAAUy1H,aAAAA,EAAiBN,SAAAA,CACjD,MAAMz4C,OAAAA,CAAU,MAAM4J,OAAAA,CAAQn9C,GAAG,CAChCisF,SAAAA,CAAUtgI,GAAG,CAAC,MAAO4gI,QAAAA,EAAAA,CACpB,GAAI,CAACA,QAAAA,CAAU,CACd,OAAO,IACR,CACA,GAAIA,QAAAA,CAASC,UAAU,CAAE,CACxB,OAAOD,QAAAA,CAASC,UAAU,CAACD,QAAAA,CAAS9vH,IAAI,CAAE,CACzC4/F,SACA+vB,UAAAA,CACAC,eAAAA,CACAC,aACD,CAAA,CACD,CAAA,KAAO,GAAIC,QAAAA,CAASR,KAAK,CAAE,CAC1B,MAAMtB,MAAM2B,UAAAA,CAAAA,CACZ,OAAOG,QAAAA,CAASR,KAAK,CAACC,SAAAA,CAAW3vB,QAAAA,CAClC,CACA,OAAO,KACR,IAED,OAAO9oB,OAAAA,CAAQlP,IAAI,CAAE1/E,GAAMA,CAAAA,GAAM,IAAA,EAAQA,IAAM,UAAA,CAChD,CACA,OAAO,KACR,CACA8nI,SAAAA,CAAU/hI,KAAK,CAAE,CAChB,MAAMs6H,OAAS,IAAI,CAACoG,gBAAgB,CAACnG,OAAO,CAACv6H,KAAAA,CAAM,CACnD,OAAOs6H,MAAAA,CAASA,MAAAA,EAAAA,CAAWgG,WAC5B,CACA9G,SAAAA,CAAUc,MAAM,CAAE,CACjB,OAAO,IAAI,CAACyH,SAAS,CAACzH,QAAQ4F,OAC/B,CACAzG,UAAAA,CAAWa,MAAM,CAAE,CAClB,OAAO,IAAI,CAACyH,SAAS,CAACzH,MAAAA,CAAAA,CAAQb,UAAU,CAEzCC,WAAAA,CAAYY,MAAM,CAAE,CACnB,OAAO,IAAI,CAACyH,SAAS,CAACzH,QAAQZ,WAC/B,CACAsI,SAAAA,CAAU1H,MAAM,CAAE,CACjB,OAAO,IAAI,CAACyH,SAAS,CAACzH,MAAAA,CAAAA,CAAQ6F,OAAO,CAEtCC,WAAW9F,MAAM,CAAE,CAClB,OAAO,IAAI,CAACyH,SAAS,CAACzH,MAAAA,CAAAA,CAAQ8F,UAAU,CAEzC7jF,QAAAA,CAAS+9E,MAAM,CAAE,CAChB,OAAO,IAAI,CAACyH,SAAS,CAACzH,QAAQ93H,KAC/B,CACAg8H,OAAAA,CAAQt+G,IAAI,CAAE,CACb,MAAM5oB,EAAI,IAAI,CAAC0nI,IAAI,CAAC9+G,IAAAA,CAAK,CACzB,OAAO5oB,CAAAA,EAAK4C,KAAK6Z,GAAG,CAACzc,CAAAA,CAAAA,CAAKwoI,QAAAA,CAAWxoI,EAAI,CAC1C,CAhJA,YAAY2pI,OAAO,CAAEhgI,GAAG,CAAE,CAb1By/H,sBAAAA,kBAAAA,CAAmB,CAClBnG,QAAS,EAAE,CACXyE,KAAM,EACP,GACAl4F,gBAAAA,CAAAA,IAAAA,CAAAA,IAAAA,CAAAA,MAAAA,CAAAA,CACA9mC,sBAAAA,OAAAA,CAAAA,QACAu7H,gBAAAA,CAAAA,IAAAA,CAAAA,UAAAA,CAAAA,MAAAA,CAAAA,CACAqC,gBAAAA,CAAAA,IAAAA,CAAAA,QAAAA,MAAAA,CAAAA,CACAoD,sBAAAA,eAAAA,CAAAA,QACA3B,gBAAAA,CAAAA,IAAAA,CAAAA,SAAAA,CAAAA,MAAAA,CAAAA,CACAp+H,gBAAAA,CAAAA,IAAAA,CAAAA,KAAAA,CAAAA,QACAghI,gBAAAA,CAAAA,IAAAA,CAAAA,MAAAA,CAAAA,MAAAA,CAAAA,CACA5D,gBAAAA,CAAAA,IAAAA,CAAAA,MAAAA,MAAAA,CAEC,CAAA,IAAI,CAACv3F,EAAE,CAAGm6F,OAAAA,CAAQn6F,EAAE,CACpB,IAAI,CAAC9mC,KAAK,CAAGihI,OAAAA,CAAQjhI,KAAK,CAC1B,IAAI,CAACu7H,QAAQ,CAAG0F,OAAAA,CAAQ1G,OAAO,CAACt5H,GAAG,CAAC,CAAC1J,EAAM,IAAI0oI,cAAc1oI,CAAAA,CAAAA,CAC7D,CAAA,IAAI,CAACqmI,KAAK,CAAG,CAAA,GAAIqD,QAAQjC,IAAI,CAAC,CAC9B,IAAI,CAACgC,aAAa,CAAG,IAAIC,OAAAA,CAAQjC,IAAI,CAAC,CACtC,IAAI,CAACK,OAAO,CAAGp+H,GAAAA,CAAIo+H,OAAO,CAC1B,IAAI,CAACp+H,GAAG,CAAGA,GACX,CAAA,IAAI,CAACghI,IAAI,CAAGhB,OAAAA,CAAQgB,IAAI,EAAI,MAC5B,CAAA,IAAI,CAAC5D,GAAG,CAAG4C,OAAAA,CACX,IAAI,CAACR,eAAe,GACrB,CAsID,CAAA,CACA,IAAIyB,QAAAA,EAAAA,OAAAA,CAAW,cAAct/H,aAgB5B,IAAIk9H,QAAAA,CAASt9H,KAAK,CAAE,CACnBs9H,QAAAA,CAAWt9H,MACZ,CACA,IAAIs9H,QAAAA,EAAW,CACd,OAAOA,QACR,CACAqC,mBAAAA,CAAoBrf,KAAK,CAAE,CAC1B,MAAMub,GAAAA,CAAM,IAAIkC,QAAQzd,KAAAA,CAAMme,OAAO,CAAE,IAAI,CAACxB,MAAM,CAAC3c,KAAAA,CAAMme,OAAO,CAAA,CAAA,CAChE,MAAM52H,QAAU,IAAI,CAACA,OAAO,CAC5B,IAAI+3H,QAAAA,CAAW/3H,OAAAA,CAAQg4H,SAAS,CAAEC,IAAOA,EAAAA,CAAGtiI,KAAK,GAAKq+H,GAAAA,CAAIr+H,KAAK,EAC/D,MAAOoiI,QAAAA,GAAa,EAAC,CAAG,CACvB/3H,QAAQ9G,MAAM,CAAC6+H,QAAAA,CAAU,CAAA,CAAA,CACzBA,SAAW/3H,OAAAA,CAAQg4H,SAAS,CAAC,EAACC,EAAOA,GAAGtiI,KAAK,GAAKq+H,IAAIr+H,KAAK,EAC5D,CACAqK,OAAAA,CAAQ5O,IAAI,CAAC4iI,GAAAA,CAAAA,CACb,IAAI,CAAC16H,IAAI,CAAC,kBAAA,CAAoB06H,GAAAA,EAC/B,CACAkE,sBAAAA,CAAuBzf,KAAK,CAAE,CAC7B,MAAMz4G,QAAU,IAAI,CAACA,OAAO,CAC5B,MAAM+3H,QAAAA,CAAW/3H,OAAAA,CAAQg4H,SAAS,CAAEC,IAAOA,EAAAA,CAAGtiI,KAAK,GAAK8iH,KAAAA,CAAMme,OAAO,CAACjhI,KAAK,EAC3E,GAAIoiI,QAAAA,GAAa,EAAC,CAAG,CACpB,IAAI,CAACz+H,IAAI,CAAC,qBAAA,CAAuB0G,OAAO,CAAC+3H,QAAAA,CAAS,CAAA,CAClD/3H,QAAQ9G,MAAM,CAAC6+H,QAAAA,CAAU,CAAA,EAC1B,CACD,CACA5tF,MAAAA,EAAS,CACR,IAAI,CAACguF,IAAI,GACV,CACAA,KAAKC,IAAAA,CAAO,EAAE,CAAE,CACf,GAAIA,KAAK7nI,MAAM,CAAG,EAAG,CACpB6nI,IAAAA,CAAK7nI,MAAM,CAAG,EACf,CACA,MAAM8nI,WAAatlI,WAAAA,EAAAA,CACnB,IAAK,IAAIzC,EAAAA,CAAK,CAAA,CAAG6X,IAAMkwH,UAAAA,CAAW9nI,MAAM,CAAED,EAAAA,CAAK6X,GAAAA,CAAK7X,KAAM,CACzD,GAAI+nI,UAAU,CAAC/nI,EAAAA,CAAG,CAAE,CACnB,MAAM0jI,GAAAA,CAAM,IAAI,CAACsE,WAAW,CAACD,UAAU,CAAC/nI,EAAAA,CAAG,CAACqF,KAAK,EACjD,GAAIq+H,GAAAA,CAAK,CACRoE,IAAAA,CAAKhnI,IAAI,CAAC4iI,GAAAA,CAAI7pF,MAAM,CAACkuF,UAAU,CAAC/nI,EAAAA,CAAG,CAAA,EACpC,MAAO,CACN,MAAMioI,KAAO,IAAIrC,OAAAA,CAAQmC,UAAU,CAAC/nI,EAAAA,CAAG,CAAE,IAAI,CAAC8kI,MAAM,CAACiD,UAAU,CAAC/nI,EAAAA,CAAG,CAAA,CAAA,CACnE,IAAI,CAAC0P,OAAO,CAAC5O,IAAI,CAACmnI,IAAAA,CAAAA,CAClBH,IAAAA,CAAKhnI,IAAI,CAACmnI,IAAAA,EACX,CACD,CACD,CACA,OAAOH,IACR,CACAz6F,SAAU,CACTtrC,MAAAA,CAAOm2G,mBAAmB,CAAC,kBAAA,CAAoB,IAAI,CAACgwB,0BAA0B,CAAE,KAAA,CAAA,CAChFnmI,OAAOm2G,mBAAmB,CAAC,sBAAuB,IAAI,CAACiwB,6BAA6B,CAAE,KAAA,EACvF,CACArD,MAAAA,CAAOpB,GAAG,CAAE,CACX,OAAOoB,OAAOpB,GAAAA,CACf,CACA7E,SAAAA,CAAUuJ,UAAU,CAAEzI,MAAM,CAAE,CAC7B,OAAO,IAAI,CAACjwH,OAAO,CAAC04H,WAAW,EAAEvJ,SAAAA,CAAUc,SAAW,KACvD,CACAb,WAAWsJ,UAAU,CAAEzI,MAAM,CAAE,CAC9B,OAAO,IAAI,CAACjwH,OAAO,CAAC04H,WAAW,EAAEtJ,UAAAA,CAAWa,SAAW,KACxD,CACAZ,YAAYqJ,UAAU,CAAEzI,MAAM,CAAE,CAC/B,OAAO,IAAI,CAACjwH,OAAO,CAAC04H,UAAAA,CAAW,EAAErJ,WAAAA,CAAYY,SAAW,KACzD,CACAkE,QAAQuE,UAAU,CAAE7iH,IAAI,CAAE,CACzB,OAAO,IAAI,CAAC7V,OAAO,CAAC04H,UAAAA,CAAW,EAAEvE,OAAAA,CAAQt+G,IAAAA,CAAAA,EAAS,CACnD,CACAmhH,KAAAA,CAAM0B,UAAU,CAAEzB,SAAS,CAAE3vB,QAAQ,CAAExlG,QAAQ,CAAE,CAChD,MAAMkyH,GAAAA,CAAM,IAAI,CAACh0H,OAAO,CAAC04H,UAAAA,CAAW,CACpC,OAAO1E,GAAAA,CAAMA,GAAAA,CAAIgD,KAAK,CAACC,SAAAA,CAAW3vB,QAAAA,CAAUxlG,QAAAA,CAAAA,CAAYsmF,QAAQxpD,OAAO,CAAC,MACzE,CACA+5F,QAAAA,CAAS1B,SAAS,CAAE3vB,QAAQ,CAAExlG,QAAQ,CAAE,CACvC,OAAOsmF,QAAQn9C,GAAG,CACjB,IAAI,CAACjrC,OAAO,CAACpJ,GAAG,CAAC,GAACo9H,EAAQA,IAAIgD,KAAK,CAACC,UAAW3vB,QAAAA,CAAUxlG,QAAAA,CAAAA,CAAAA,CAE3D,CACA82H,QAAAA,CAASpK,IAAI,CAAE,CACd,OAAO,IAAI,CAACxuH,OAAO,CAAConD,IAAI,CAAC,EAAC6wE,EAAOA,IAAMA,EAAAA,CAAGx7F,EAAE,GAAK+xF,IAAAA,CAAAA,EAAS,IAC3D,CACA8J,WAAAA,CAAY3iI,KAAK,CAAE,CAClB,OAAO,IAAI,CAACqK,OAAO,CAAConD,IAAI,CAAC,EAAC6wE,EAAOA,EAAAA,EAAMA,EAAAA,CAAGtiI,KAAK,GAAKA,KAAAA,CAAAA,EAAU,IAC/D,CAzFA,WAAA,EAAc,CACb,KAAK,EAAA,CALNkjI,gBAAAA,CAAAA,IAAAA,CAAAA,oBAAAA,MAAAA,CAAAA,CACA74H,sBAAAA,SAAAA,CAAU,EAAE,EACZw4H,gBAAAA,CAAAA,IAAAA,CAAAA,4BAAAA,CAAAA,MAAAA,CAAAA,CACAC,gBAAAA,CAAAA,IAAAA,CAAAA,+BAAAA,CAAAA,OAGC,CAAA,IAAI,CAACI,iBAAiB,CAAG1lI,SAASL,QAClC,CAAA,IAAI,CAAC0lI,0BAA0B,CAAG,IAAI,CAACV,mBAAmB,CAACr3H,IAAI,CAAC,IAAI,CACpE,CAAA,IAAI,CAACg4H,6BAA6B,CAAG,IAAI,CAACP,sBAAsB,CAACz3H,IAAI,CAAC,IAAI,CAAA,CAC1EpO,OAAO83F,gBAAgB,CAAC,mBAAoB,IAAI,CAACquC,0BAA0B,CAAE,KAAA,CAAA,CAC7EnmI,MAAAA,CAAO83F,gBAAgB,CAAC,qBAAA,CAAuB,IAAI,CAACsuC,6BAA6B,CAAE,OACnF,IAAI,CAACN,IAAI,GACV,CAkFD,EAhGC,gBAAA,CAAA,OAAA,CAAOW,wBAAAA,CAAyB,oBAChC,gBAAA,CAAA,OAAA,CAAOC,2BAAAA,CAA4B,gCAiGpC,SAASC,oBAAAA,CAAqBC,MAAM,CAAA,CACnC,IAAIC,YAAAA,CAAe,CAAA,CACnB,IAAIC,YAAAA,CAAe,CAAA,CACnB,IAAIjqI,OAAAA,CAAU+pI,MAAAA,CAAOxL,MAAM,CAC3B,MAAO,EAAEv+H,OAAAA,YAAmBmwD,WAAU,CAAA,EAAMnwD,OAAAA,CAAS,CACpDA,OAAAA,CAAUA,OAAAA,CAAQkqI,WACnB,CACA,MAAOlqI,OAAAA,CAAS,CACfgqI,YAAAA,EAAgBhqI,OAAAA,CAAQmqI,UAAU,CAAGnqI,OAAAA,CAAQoqI,UAAU,CACvDH,cAAgBjqI,OAAAA,CAAQqqI,SAAS,CAAGrqI,OAAAA,CAAQsqI,SAAS,CACrDtqI,OAAAA,CAAUA,OAAAA,CAAQuqI,aACnB,CACA,OAAO,CACNptH,EAAG4sH,MAAAA,CAAOS,KAAK,CAAGR,YAAAA,CAClB5sH,CAAAA,CAAG2sH,OAAOU,KAAK,CAAGR,YACnB,CACD,CACA,IAAIS,KAAAA,CAAQ,KAAA,CAMX,YAAYX,MAAM,CAAE,CALpBx8F,gBAAAA,CAAAA,IAAAA,CAAAA,KAAAA,MAAAA,CAAAA,CACApwB,sBAAAA,GAAAA,CAAAA,QACAC,gBAAAA,CAAAA,IAAAA,CAAAA,GAAAA,CAAAA,MAAAA,CAAAA,CACAmhH,gBAAAA,CAAAA,IAAAA,CAAAA,SAAAA,MAAAA,CAAAA,CACA56H,sBAAAA,OAAAA,CAAAA,QAEC,MAAM09H,MAAAA,CAASyI,oBAAAA,CAAqBC,MAAAA,CACpC,CAAA,IAAI,CAACx8F,EAAE,CAAGw8F,MAAAA,CAAOppD,UAAU,CAC3B,IAAI,CAACxjE,CAAC,CAAGkkH,MAAAA,CAAOlkH,CAAC,CACjB,IAAI,CAACC,CAAC,CAAGikH,MAAAA,CAAOjkH,CAAC,CACjB,IAAI,CAACmhH,MAAM,CAAGwL,OAAOxL,MACrB,CAAA,IAAI,CAAC56H,KAAK,CAAGomI,OACd,CACD,CAAA,CACA,IAAIY,WAAa,KAAA,CAWhBC,YAAAA,CAAatL,IAAI,CAAE7zH,IAAI,CAAE,CACxB,OAAOA,IAAAA,CAAKysD,IAAI,CAAC,MAAC6xE,EAAWA,OAAOx8F,EAAE,GAAK+xF,OAAS,IACrD,CARA,YAAYhwF,MAAM,CAAEi6E,KAAK,CAAE,CAJ3B5iE,gBAAAA,CAAAA,IAAAA,CAAAA,SAAAA,CAAAA,MAAAA,CAAAA,CACA4iE,gBAAAA,CAAAA,IAAAA,CAAAA,QAAAA,MAAAA,CAAAA,CACAshB,sBAAAA,SAAAA,CAAU,EAAE,EACZC,gBAAAA,CAAAA,IAAAA,CAAAA,gBAAAA,CAAiB,EAAE,CAElB,CAAA,IAAI,CAACnkF,OAAO,CAAG4iE,KAAAA,CAAMgV,MAAM,CAC3B,IAAI,CAAChV,KAAK,CAAGA,KACb,CAAA,IAAI,CAACshB,OAAO,CAAGzqI,KAAAA,CAAM6qB,IAAI,CAACs+F,KAAAA,CAAMshB,OAAO,EAAEnjI,GAAG,CAAC,MAACqiI,EAAW,IAAIW,KAAAA,CAAMX,MAAAA,CAAAA,CACnE,CAAA,IAAI,CAACe,cAAc,CAAG1qI,KAAAA,CAAM6qB,IAAI,CAACs+F,KAAAA,CAAMuhB,cAAc,CAAA,CAAEpjI,GAAG,CAAEqiI,QAAW,IAAIW,KAAAA,CAAMX,SAClF,CAID,CAAA,CAEA,IAAIgB,WAAAA,EAAAA,OAAAA,CAAc,cAAc1hI,YAAAA,CAkB/Bw1H,MAAAA,CAAOl4E,OAAO,CAAE,CACf,GAAI,IAAI,CAACm4E,QAAQ,CAAE,CAClB,IAAI,CAACC,MAAM,GACZ,CACA,IAAI,CAACD,QAAQ,CAAGn4E,OAAAA,CAChB,IAAI,CAACm4E,QAAQ,CAAC7jC,gBAAgB,CAAC,YAAA,CAAc,IAAI,CAAC+vC,aAAa,CAAE,KAAA,CAAA,CACjE,IAAI,CAAClM,QAAQ,CAAC7jC,gBAAgB,CAAC,UAAA,CAAY,IAAI,CAACgwC,WAAW,CAAE,KAAA,CAAA,CAC7D,IAAI,CAACnM,QAAQ,CAAC7jC,gBAAgB,CAAC,YAAa,IAAI,CAACunC,YAAY,CAAE,KAAA,CAAA,CAC/D,IAAI,CAAC1D,QAAQ,CAAC7jC,gBAAgB,CAAC,cAAe,IAAI,CAACiwC,cAAc,CAAE,OACpE,CACAnM,MAAAA,EAAS,CACR,GAAI,IAAI,CAACD,QAAQ,CAAE,CAClB,IAAI,CAACA,QAAQ,CAACxlB,mBAAmB,CAAC,YAAA,CAAc,IAAI,CAAC0xB,aAAa,CAAE,KAAA,CAAA,CACpE,IAAI,CAAClM,QAAQ,CAACxlB,mBAAmB,CAAC,UAAA,CAAY,IAAI,CAAC2xB,WAAW,CAAE,KAAA,CAAA,CAChE,IAAI,CAACnM,QAAQ,CAACxlB,mBAAmB,CAAC,WAAA,CAAa,IAAI,CAACkpB,YAAY,CAAE,KAAA,CAAA,CAClE,IAAI,CAAC1D,QAAQ,CAACxlB,mBAAmB,CAAC,cAAe,IAAI,CAAC4xB,cAAc,CAAE,KAAA,EACvE,CACA,IAAI,CAACpM,QAAQ,CAAG,KACjB,CACAqM,iBAAAA,CAAkB98H,CAAC,CAAE,CACpB,IAAI,CAACjE,IAAI,CAAC,YAAA,CAAc,IAAIugI,WAAW,IAAI,CAAEt8H,IAC9C,CACA+8H,eAAAA,CAAgB/8H,CAAC,CAAE,CAClB,IAAI,CAACjE,IAAI,CAAC,UAAA,CAAY,IAAIugI,UAAAA,CAAW,IAAI,CAAEt8H,CAAAA,CAAAA,EAC5C,CACAg9H,iBAAiBh9H,CAAC,CAAE,CACnBA,CAAAA,CAAEm7G,cAAc,EAAA,CAChB,IAAI,CAACp/G,IAAI,CAAC,YAAa,IAAIugI,UAAAA,CAAW,IAAI,CAAEt8H,CAAAA,CAAAA,EAC7C,CACAi9H,kBAAAA,CAAmBj9H,CAAC,CAAE,CACrB,IAAI,CAACjE,IAAI,CAAC,aAAA,CAAe,IAAIugI,WAAW,IAAI,CAAEt8H,IAC/C,CAvCA,WAAA,CAAYs4C,OAAO,CAAE,CACpB,KAAK,EAAA,CANNm4E,gBAAAA,CAAAA,IAAAA,CAAAA,UAAAA,CAAW,IAAA,CAAA,CACXkM,sBAAAA,eAAAA,CAAAA,QACAC,gBAAAA,CAAAA,IAAAA,CAAAA,aAAAA,CAAAA,MAAAA,CAAAA,CACAzI,gBAAAA,CAAAA,IAAAA,CAAAA,eAAAA,MAAAA,CAAAA,CACA0I,sBAAAA,gBAAAA,CAAAA,OAGC,CAAA,IAAI,CAACF,aAAa,CAAG,IAAI,CAACG,iBAAiB,CAAC55H,IAAI,CAAC,IAAI,CACrD,CAAA,IAAI,CAAC05H,WAAW,CAAG,IAAI,CAACG,eAAe,CAAC75H,IAAI,CAAC,IAAI,CACjD,CAAA,IAAI,CAACixH,YAAY,CAAG,IAAI,CAAC6I,gBAAgB,CAAC95H,IAAI,CAAC,IAAI,CACnD,CAAA,IAAI,CAAC25H,cAAc,CAAG,IAAI,CAACI,kBAAkB,CAAC/5H,IAAI,CAAC,IAAI,CAAA,CACvD,IAAI,CAACstH,MAAM,CAACl4E,SACb,CAiCD,CAAA,CAjDC,yBAAO4kF,kBAAAA,CAAmB,YAAA,CAAA,CAC1B,yBAAOC,gBAAAA,CAAiB,UAAA,CAAA,CACxB,yBAAOC,iBAAAA,CAAkB,WAAA,CAAA,CACzB,yBAAOC,mBAAAA,CAAoB,aAAA,CAAA,CAAA,OAAA,EAgD5B,IAAIC,IAAAA,EAAAA,MAAAA,CAAO,MAAMC,KAAAA,CA8ChB,IAAIC,sBAAsB5iI,KAAK,CAAE,CAChC,IAAI,CAAC6iI,sBAAsB,CAAG7iI,KAAAA,CAC9B,IAAI,CAAC8iI,KAAK,GACX,CACA,IAAIF,uBAAwB,CAC3B,OAAO,IAAI,CAACC,sBAAsB,CAEnChuI,IAAIkO,GAAG,CAAE4G,QAAQ,CAAEhK,QAAQ,CAAE,CAC5B,GAAI,OAAOgK,QAAAA,GAAa,UAAA,CAAY,CACnChK,QAAAA,CAAWgK,QAAAA,CACXA,SAAW,GACZ,CACA,MAAMzR,MAAAA,CAAS,IAAI,CAACisF,OAAO,CAAC,KAAA,CAAOphF,IAAK4G,QAAAA,CAAUhK,QAAAA,CAAAA,CAClD,KAAM,CAAEojI,QAAQ,CAAE,CAAGp5H,SACrB,GAAIo5H,QAAAA,CAAU,CACb,MAAMvjI,OAAAA,CAAU,KAAC8gH,EAAAA,CAChB,GAAIA,KAAAA,CAAM0iB,gBAAgB,CAAE,CAC3BD,QAAAA,CAAS5hI,IAAI,CAAC,UAAA,CAAYm/G,MAAM2iB,MAAM,CAAE3iB,MAAM9iE,KAAK,EACpD,CACD,CAAA,CACA,MAAM0lF,WAAa,KAAC5iB,EAAAA,CACnB9gH,QAAQ8gH,KAAAA,CAAAA,CACRpoH,MAAAA,CAAOm4G,mBAAmB,CAAC,YAAa7wG,OAAAA,CAAAA,CACxCtH,MAAAA,CAAOm4G,mBAAmB,CAAC,UAAA,CAAY7wG,SACvCtH,MAAAA,CAAOm4G,mBAAmB,CAAC,SAAA,CAAW6yB,UAAAA,EACvC,EACAhrI,MAAAA,CAAO85F,gBAAgB,CAAC,WAAA,CAAaxyF,OAAAA,CAAAA,CACrCtH,OAAO85F,gBAAgB,CAAC,UAAA,CAAYxyF,OAAAA,CAAAA,CACpCtH,OAAO85F,gBAAgB,CAAC,UAAWkxC,UAAAA,EACpC,CACA,OAAOhrI,MACR,CACAirI,KAAKpgI,GAAG,CAAE8O,KAAK,CAAElI,QAAQ,CAAEhK,QAAQ,CAAE,CACpC,GAAI,OAAOgK,QAAAA,GAAa,UAAA,CAAY,CACnChK,QAAAA,CAAWgK,QAAAA,CACXA,SAAW,GACZ,CACAA,QAAAA,CAASy5H,QAAQ,CAAGvxH,KAAAA,CACpB,OAAO,IAAI,CAACsyE,OAAO,CAAC,MAAA,CAAQphF,GAAAA,CAAK4G,SAAUhK,QAAAA,CAC5C,CACA0jI,GAAAA,CAAItgI,GAAG,CAAE8O,KAAK,CAAElI,QAAQ,CAAEhK,QAAQ,CAAE,CACnC,GAAI,OAAOgK,QAAAA,GAAa,UAAA,CAAY,CACnChK,QAAAA,CAAWgK,QAAAA,CACXA,SAAW,GACZ,CACAA,QAAAA,CAASy5H,QAAQ,CAAGvxH,KAAAA,CACpB,OAAO,IAAI,CAACsyE,OAAO,CAAC,KAAA,CAAOphF,IAAK4G,QAAAA,CAAUhK,QAAAA,CAC3C,CACA2jI,GAAAA,CAAIvgI,GAAG,CAAE4G,QAAQ,CAAEhK,QAAQ,CAAE,CAC5B,GAAI,OAAOgK,QAAAA,GAAa,UAAA,CAAY,CACnChK,SAAWgK,QAAAA,CACXA,QAAAA,CAAW,GACZ,CACA,OAAO,IAAI,CAACw6E,OAAO,CAAC,QAAA,CAAUphF,IAAK4G,QAAAA,CAAUhK,QAAAA,CAC9C,CACAwkF,OAAAA,CAAQo/C,MAAM,CAAExgI,GAAG,CAAE4G,QAAQ,CAAEhK,QAAQ,CAAE,CACxC,IAAIiL,GAAAA,CAAK/B,KAAAA,CAAOu6H,SAChB,IAAII,OAAAA,CAAU,KAAA,CACd,GAAI,OAAO75H,QAAAA,GAAa,UAAA,CAAY,CACnChK,QAAAA,CAAWgK,QAAAA,CACXA,SAAW,GACZ,CACA,GAAIA,SAAS85H,KAAK,CAAE,CACnB95H,QAAAA,CAAW2E,MAAAA,CAAOo1H,MAAM,CAAC,CACxBC,QAAS,CAAA,CACTC,UAAAA,CAAY,CACb,CAAA,CAAGj6H,QAAAA,EACJ,CACAA,QAAAA,CAAShK,QAAQ,CAAGA,QAAAA,CACpB,GAAIgK,QAAAA,CAASk6H,KAAK,EAAI,IAAA,CAAM,CAC3Bl6H,SAASk6H,KAAK,CAAG,KAClB,CACA,GAAIl6H,SAASm6H,OAAO,EAAI,KAAM,CAC7Bn6H,QAAAA,CAASm6H,OAAO,CAAG,GACpB,CACA,GAAIn6H,QAAAA,CAASy5H,QAAQ,EAAI,IAAA,CAAM,CAC9B,GAAIz5H,QAAAA,CAASy5H,QAAQ,YAAYW,QAAAA,CAAU,CAC1CX,SAAWz5H,QAAAA,CAASy5H,SAAQ,CAC7B,KAAO,GAAIz5H,SAASy5H,QAAQ,YAAYY,SAAU,CACjDZ,QAAAA,CAAWz5H,QAAAA,CAASy5H,SAAQ,CAC7B,KAAO,GAAIz5H,SAASy5H,QAAQ,YAAY90H,OAAQ,CAC/C,IAAI21H,YAAct6H,QAAAA,CAASm6H,OAAO,CAAC,cAAA,CAAe,CAClD,GAAIG,WAAAA,GAAgB,OAAQ,CAC3Bt6H,QAAAA,CAASm6H,OAAO,CAAC,eAAe,CAAGnB,KAAAA,CAAMuB,WAAW,CAACC,eAAe,CACpEF,WAAAA,CAAct6H,QAAAA,CAASm6H,OAAO,CAAC,cAAA,EAAe,CAE/C,OAAQG,aACP,KAAKtB,KAAAA,CAAMuB,WAAW,CAACC,eAAe,CAAE,CACvCf,SAAW,EAAA,CACX,IAAIgB,WAAa,IAAA,CACjB,IAAK,MAAMlkI,GAAAA,IAAOyJ,QAAAA,CAASy5H,QAAQ,CAAE,CACpC,GAAIz5H,QAAAA,CAASy5H,QAAQ,CAAC7+H,cAAc,CAACrE,KAAM,CAC1C,GAAIkkI,UAAAA,CAAY,CACfA,WAAa,MACd,CAAA,KAAO,CACNhB,QAAAA,EAAY,IACb,CACA,MAAMiB,UAAAA,CAAa15H,mBAAmBzK,GAAAA,CAAAA,CACtC,MAAMokI,aAAe35H,kBAAAA,CAAmBhB,QAAAA,CAASy5H,QAAQ,CAACljI,GAAAA,CAAI,EAC9DkjI,QAAAA,EAAY,CAAC,EAAEiB,UAAAA,CAAW,CAAC,EAAEC,YAAAA,CAAa,EAAC,CAE7C,CACA,KACD,CACA,QACA,KAAK3B,MAAMuB,WAAW,CAACK,IAAI,CAC1B,GAAIN,aAAe,IAAA,CAAM,CACxBt6H,QAAAA,CAASm6H,OAAO,CAAC,cAAA,CAAe,CAAGnB,MAAMuB,WAAW,CAACK,KAAI,CAE1DnB,SAAWmB,IAAAA,CAAKC,SAAS,CAAC76H,QAAAA,CAASy5H,QAAQ,EAC3C,KACF,CACD,MAAO,CACNA,QAAAA,CAAWz5H,QAAAA,CAASy5H,SAAQ,CAE9B,CACA,GAAIz5H,QAAAA,CAAS8mC,KAAK,GAAK,KAAA,CAAO,CAC7B,MAAMg0F,SAAAA,CAAYl7H,GAAAA,EAAAA,CAClBqB,IAAM,IAAIV,GAAAA,CAAInH,KACd,GAAI,CAAC6H,IAAI/B,KAAK,CAAE,CACf+B,GAAAA,CAAI/B,KAAK,CAAG,CAAC,GAAG,EAAE47H,SAAAA,CAAU,EAAC,CAC9B,KAAO,CACN75H,GAAAA,CAAI/B,KAAK,CAAG,CAAC,EAAE+B,IAAI/B,KAAK,CAAC,IAAI,EAAE47H,SAAAA,CAAU,EAC1C,CACA1hI,GAAAA,CAAM6H,GAAAA,CAAI/S,QAAQ,GACnB,CACA,GAAI8R,QAAAA,CAASd,KAAK,CAAE,CACnB+B,IAAM,IAAIV,GAAAA,CAAInH,KACd8F,KAAAA,CAAQ/R,MAAAA,CAAO8T,IAAIT,QAAQ,EAAA,CAAIR,QAAAA,CAASd,KAAK,EAC7C+B,GAAAA,CAAIJ,QAAQ,CAAC3B,KAAAA,CAAAA,CACb9F,GAAAA,CAAM6H,IAAI/S,QAAQ,GACnB,CACA,MAAM6sI,GAAAA,CAAM,IAAIC,cAAAA,CAChBD,GAAAA,CAAIE,IAAI,CAACrB,MAAAA,CAAQxgI,IAAK4G,QAAAA,CAASk6H,KAAK,CACpCa,CAAAA,IAAIG,eAAe,CAAGl7H,SAASk7H,eAAe,GAAK,MAAK,CAAIl7H,QAAAA,CAASk7H,eAAe,CAAG,IAAI,CAACA,eAC5FH,CAAAA,GAAAA,CAAII,YAAY,CAAGn7H,QAAAA,CAASm7H,YAAY,EAAI,IAAI,CAACC,kBAAkB,CAAChiI,KACpE,IAAK,MAAMiiI,WAAWr7H,QAAAA,CAASm6H,OAAO,CAAE,CACvC,GAAIn6H,SAASm6H,OAAO,CAACv/H,cAAc,CAACygI,OAAAA,CAAAA,CAAU,CAC7CN,GAAAA,CAAIO,gBAAgB,CAACD,OAAAA,CAASr7H,SAASm6H,OAAO,CAACkB,QAAQ,EACxD,CACD,CACAN,GAAAA,CAAIQ,kBAAkB,CAAG,IAAA,CACxB,IAAI,CAACC,mBAAmB,CAAC5B,MAAAA,CAAQxgI,GAAAA,CAAK4G,SAAU+6H,GAAAA,EACjD,CACAA,CAAAA,GAAAA,CAAIthI,OAAO,CAAG,IAAA,CACb,IAAI,CAACgiI,QAAQ,CAAC7B,MAAAA,CAAQxgI,GAAAA,CAAK4G,SAAU+6H,GAAAA,CAAAA,CACrClB,OAAAA,CAAU,KACX,CAAA,CACA,MAAM6B,KAAO,IAAA,CACZ,GAAI,CACHX,GAAAA,CAAIW,IAAI,CAACjC,QAAAA,EACV,CAAE,MAAOh+H,CAAAA,CAAG,CACX,IAAI,CAACkgI,YAAY,CAACZ,GAAAA,CAAAA,CAClB,GAAI,CAAClB,OAAAA,EAAW,OAAO75H,QAAAA,CAAS/E,KAAK,GAAK,UAAA,CAAY,CACrD+E,SAAS/E,KAAK,CAAC8/H,GAAAA,CAAIj7B,MAAM,CAAEi7B,GAAAA,CAAKt/H,CAAAA,EACjC,CACD,CACD,CAAA,CACA,IAAI,CAACmgI,QAAQ,CAACb,GAAAA,CAAK/6H,QAAAA,CAAU07H,MAC7B,OAAOX,GACR,CACAK,kBAAAA,CAAmBhiI,GAAG,CAAE,CACvB,MAAM6H,GAAAA,CAAM,IAAIV,IAAInH,GAAAA,CAAAA,CACpB,MAAMvJ,IAAM1B,IAAAA,CAAKyB,YAAY,CAACqR,GAAAA,CAAI9S,IAAI,EAAE0tI,WAAW,EAAA,CACnD,GAAI7C,KAAAA,CAAM8C,gBAAgB,CAACvkI,OAAO,CAAC1H,MAAQ,CAAA,CAAG,CAC7C,OAAOmpI,KAAAA,CAAM+C,YAAY,CAACrtC,YAAY,CACvC,KAAO,GAAI7+F,MAAQ,OAAA,CAAS,CAC3B,OAAOmpI,KAAAA,CAAM+C,YAAY,CAACnB,IAC3B,MAAO,GAAI/qI,GAAAA,GAAQ,OAAQ,CAC1B,OAAOmpI,KAAAA,CAAM+C,YAAY,CAACC,QAC3B,CACA,OAAOhD,KAAAA,CAAM+C,YAAY,CAACE,IAAI,CAE/BC,oBAAAA,CAAqB5B,WAAW,CAAE,CACjC,MAAM6B,QAAAA,CAAW,CAChBnD,MAAMuB,WAAW,CAAC6B,KAAK,CACvBpD,MAAMuB,WAAW,CAAC8B,GAAG,CACrBrD,KAAAA,CAAMuB,WAAW,CAAC+B,GAAG,CACrBtD,KAAAA,CAAMuB,WAAW,CAACgC,GAAG,CACrBvD,MAAMuB,WAAW,CAACiC,GAAG,CACrBxD,KAAAA,CAAMuB,WAAW,CAACkC,GAAG,CACrBzD,KAAAA,CAAMuB,WAAW,CAACmC,GAAG,CACrB1D,KAAAA,CAAMuB,WAAW,CAACoC,IAAI,CACtB3D,KAAAA,CAAMuB,WAAW,CAACqC,GAAE,CACpB,CACD,GAAIT,QAAAA,CAAS5kI,OAAO,CAAC+iI,cAAgB,CAAA,CAAG,CACvC,OAAO,IACR,CACA,OAAO,KACR,CACAuC,sBAAsB1B,YAAY,CAAE,CACnC,OAAOA,YAAAA,GAAiBnC,MAAM+C,YAAY,CAACrtC,YAAY,EAAIysC,YAAAA,GAAiBnC,KAAAA,CAAM+C,YAAY,CAACe,IAAI,EAAI3B,eAAiBnC,KAAAA,CAAM+C,YAAY,CAACnB,IAC5I,CACAY,mBAAAA,CAAoB5B,MAAM,CAAExgI,GAAG,CAAE4G,QAAQ,CAAE+6H,GAAG,CAAE,CAC/C,GAAIA,GAAAA,CAAIgC,UAAU,GAAK,CAAA,CAAG,CACzB,OAAQhC,GAAAA,CAAIj7B,MAAM,EACjB,KAAK,CAAA,CAAG,CACP,GAAIi7B,GAAAA,CAAIiC,WAAW,EAAIjC,GAAAA,CAAIiC,WAAW,CAACjuI,UAAU,CAAC,UAAA,CAAA,CAAa,CAC9D,IAAI,CAACkuI,UAAU,CAACrD,MAAAA,CAAQxgI,IAAK4G,QAAAA,CAAU+6H,GAAAA,EACxC,MAAO,CACN,IAAI,CAACU,QAAQ,CAAC7B,OAAQxgI,GAAAA,CAAK4G,QAAAA,CAAU+6H,KACtC,CACA,KACD,CACA,KAAK,GAAA,CACL,KAAK,GAAA,CACL,KAAK,GAAA,CACL,KAAK,IAAK,CACT,IAAI,CAACkC,UAAU,CAACrD,OAAQxgI,GAAAA,CAAK4G,QAAAA,CAAU+6H,KACvC,KACD,CACA,QAAS,CACR,IAAI,CAACU,QAAQ,CAAC7B,MAAAA,CAAQxgI,GAAAA,CAAK4G,SAAU+6H,GAAAA,CAAAA,CACrC,KACD,CACD,CACD,CACD,CACAkC,UAAAA,CAAWrD,MAAM,CAAExgI,GAAG,CAAE4G,QAAQ,CAAE+6H,GAAG,CAAE,CACtC,IAAI,CAACY,YAAY,CAACZ,GAAAA,CAAAA,CAClB,IAAImC,SACJ,IAAI5C,WAAAA,CACJ,MAAMe,OAAAA,CAAUN,GAAAA,CAAIoC,iBAAiB,CAAC,cAAA,CAAA,CACtC,GAAI9B,OAAAA,CAAS,CACZ,MAAMnsI,KAAAA,CAAQmsI,OAAAA,CAAQlsI,KAAK,CAAC,GAAA,CAAA,CAC5BmrI,YAAcprI,KAAK,CAAC,CAAA,CAAE,CAACopE,IAAI,GAC5B,CACA,GAAI,CACH,GAAI,IAAI,CAAC4jE,oBAAoB,CAAC5B,WAAAA,CAAAA,EAAgB,IAAI,CAACuC,qBAAqB,CAAC9B,GAAAA,CAAII,YAAY,EAAG,CAC3F+B,QAAAA,CAAWnC,GAAAA,CAAImC,SAAQ,CACxB,KAAO,GAAI5C,cAAgBtB,KAAAA,CAAMuB,WAAW,CAACK,IAAI,EAAIxhI,IAAIjK,KAAK,CAAC,IAAI,CAAC,CAAA,CAAE,CAACF,QAAQ,CAAC,SAAU,CACzFiuI,QAAAA,CAAWtC,IAAAA,CAAKwC,KAAK,CAACrC,GAAAA,CAAIsC,YAAY,EACvC,CAAA,KAAO,GAAItC,IAAII,YAAY,GAAKnC,MAAM+C,YAAY,CAACC,QAAQ,EAAI1B,WAAAA,GAAgBtB,MAAMuB,WAAW,CAAC+C,GAAG,CAAE,CACrGJ,QAAAA,CAAWnC,GAAAA,CAAIwC,YAAW,CAC3B,KAAO,CACNL,QAAAA,CAAWnC,GAAAA,CAAIsC,aAAY,CAE5Br9H,SAAShK,QAAQ,CAAC,KAAMknI,QAAAA,EACzB,CAAE,MAAO9iI,IAAAA,CAAM,CACd4F,SAAShK,QAAQ,CAACoE,IAAAA,EACnB,CACD,CACAqhI,QAAAA,CAAS7B,MAAM,CAAExgI,GAAG,CAAE4G,QAAQ,CAAE+6H,GAAG,CAAE,CACpC,IAAI,CAACY,YAAY,CAACZ,KAClB,GAAI/6H,QAAAA,CAASw9H,QAAQ,CAAE,CACtB,MACD,CACA,GAAIx9H,QAAAA,CAAS85H,KAAK,EAAI95H,QAAAA,CAASg6H,OAAO,CAAGh6H,QAAAA,CAASi6H,UAAU,CAAE,CAC7Dj6H,QAAAA,CAASg6H,OAAO,EAChBh6H,CAAAA,SAASw9H,QAAQ,CAAG,KACpB,MAAMC,UAAAA,CAAan8H,IAAAA,CAAKI,KAAK,CAAC3T,IAAAA,CAAK2U,GAAG,CAAC,CAAA,CAAG1C,QAAAA,CAASg6H,OAAO,CAAA,CAAIhB,KAAAA,CAAMyE,UAAU,CAAE,CAAA,CAAGz9H,SAAS09H,aAAa,EAAI,KAC7G1iI,OAAAA,CAAQ8jH,GAAG,CAAC,CAAC,EAAE8a,MAAAA,CAAO,EAAE,EAAExgI,GAAAA,CAAI,SAAS,EAAE2hI,GAAAA,CAAIj7B,MAAM,CAAC,cAAc,EAAE29B,WAAW,GAAG,CAAC,EACnFj6C,UAAAA,CAAW,IAAA,CACVxjF,SAASw9H,QAAQ,CAAG,MACpB,IAAI,CAAChjD,OAAO,CAACo/C,OAAQxgI,GAAAA,CAAK4G,QAAAA,CAAUA,SAAShK,QAAQ,EACtD,EAAGynI,UAAAA,EACJ,CAAA,KAAO,CACNz9H,QAAAA,CAAShK,QAAQ,CAAC+kI,GAAAA,CAAIj7B,MAAM,GAAK,CAAA,CAAI,gBAAkBi7B,GAAAA,CAAIj7B,MAAM,CAAE,IAAA,EACpE,CACD,CACA87B,QAAAA,CAASb,GAAG,CAAE/6H,QAAQ,CAAE07H,IAAI,CAAE,CAC7B,MAAMiC,KAAAA,CAAQ,IAAI,CAACzE,sBAAsB,CACzC,MAAM0E,SAAAA,CAAYD,MAAQ,CAAA,EAAKnlH,MAAAA,CAAOjS,QAAQ,CAACo3H,QAAU39H,QAAAA,CAASk6H,KAAK,GAAK,KAAA,CAC5E,GAAI,CAAC0D,SAAAA,EAAa,IAAI,CAACC,eAAe,CAAGF,MAAO,CAC/C,GAAIC,UAAW,CACd,IAAI,CAACC,eAAe,EACpB9C,CAAAA,GAAAA,CAAI+C,SAAS,CAAG,KACjB,CACApC,IAAAA,GACD,CAAA,KAAO,CACN,IAAI,CAACqC,UAAU,CAACzuI,IAAI,CAAC,CAAEyrI,GAAAA,CAAKW,IAAK,CAAA,EAClC,CACD,CACAC,YAAAA,CAAaZ,GAAG,CAAE,CACjB,GAAIA,GAAAA,CAAI+C,SAAS,CAAE,CAClB/C,GAAAA,CAAI+C,SAAS,CAAG,KAChB,CAAA,IAAI,CAACD,eAAe,EAAA,CACpB,IAAI,CAAC1E,KAAK,GACX,CACD,CACAA,KAAAA,EAAQ,CACP,MAAMwE,KAAAA,CAAQ,IAAI,CAACzE,sBAAsB,CACzC,MAAM0E,SAAAA,CAAYD,KAAAA,CAAQ,GAAKnlH,MAAAA,CAAOjS,QAAQ,CAACo3H,KAAAA,CAAAA,CAC/C,GAAI,CAACC,SAAAA,CAAW,CACf,MAAO,IAAI,CAACI,cAAc,CAAG,IAAI,CAACD,UAAU,CAACtvI,MAAM,CAAE,CACpD,IAAI,CAACsvI,UAAU,CAAC,IAAI,CAACC,cAAc,EAAA,CAAG,CAACtC,IAAI,GAC5C,CACD,CAAA,KAAO,CACN,MAAO,IAAI,CAACsC,cAAc,CAAG,IAAI,CAACD,UAAU,CAACtvI,MAAM,EAAI,IAAI,CAACovI,eAAe,CAAGF,KAAAA,CAAO,CACpF,KAAM,CAAE5C,GAAG,CAAEW,IAAI,CAAE,CAAG,IAAI,CAACqC,UAAU,CAAC,IAAI,CAACC,cAAc,GAAG,CAC5D,IAAI,CAACH,eAAe,EACpB9C,CAAAA,IAAI+C,SAAS,CAAG,KAChBpC,IAAAA,GACD,CACD,CACA,GAAI,IAAI,CAACsC,cAAc,GAAK,IAAI,CAACD,UAAU,CAACtvI,MAAM,CAAE,CACnD,IAAI,CAACsvI,UAAU,CAACtvI,MAAM,CAAG,CACzB,CAAA,IAAI,CAACuvI,cAAc,CAAG,EACvB,CAAA,KAAO,GAAI,IAAI,CAACA,cAAc,CAAG,GAAA,CAAK,CACrC,IAAI,CAACD,UAAU,CAAG,IAAI,CAACA,UAAU,CAAC1uI,KAAK,CAAC,IAAI,CAAC2uI,cAAc,CAC3D,CAAA,IAAI,CAACA,cAAc,CAAG,EACvB,CACD,CAAA,WAAA,EAAA,CAnTA9C,gBAAAA,CAAAA,IAAAA,CAAAA,kBAAkB,KAAA,CAAA,CAClBhC,gBAAAA,CAAAA,IAAAA,CAAAA,yBAAyB,GAAA,CAAA,CACzB2E,gBAAAA,CAAAA,IAAAA,CAAAA,kBAAkB,CAAA,CAAA,CAClBE,gBAAAA,CAAAA,IAAAA,CAAAA,aAAa,EAAE,CAAA,CACfC,gBAAAA,CAAAA,IAAAA,CAAAA,gBAAAA,CAAiB,IAgTlB,CAAA,CA5VC,gBAAA,CAAA,MAAA,CAAOzD,cAAc,CACpB0D,GAAAA,CAAK,YACL7B,KAAAA,CAAO,aAAA,CACPC,IAAK,0BAAA,CACLC,GAAAA,CAAK,YACL9B,eAAAA,CAAiB,mCAAA,CACjB0D,IAAK,WAAA,CACL3B,GAAAA,CAAK,oBACL4B,IAAAA,CAAM,YAAA,CACNvD,IAAAA,CAAM,kBAAA,CACN4B,IAAK,YAAA,CACLC,GAAAA,CAAK,YACLC,GAAAA,CAAK,WAAA,CACLC,KAAM,0BAAA,CACNyB,GAAAA,CAAK,YACLnC,IAAAA,CAAM,YAAA,CACNW,IAAK,aAAA,CACLU,GAAAA,CAAK,iBACN,CAAA,CAAA,CACA,gBAAA,CAAA,MAAA,CAAOvB,eAAe,CACrBE,IAAAA,CAAM,MAAA,CACNvtC,YAAAA,CAAc,cACdouC,IAAAA,CAAM,MAAA,CACNd,SAAU,UAAA,CACVpB,IAAAA,CAAM,MACP,CAAA,CAAA,CACA,gBAAA,CAAA,MAAA,CAAOkB,mBAAmB,CACzB,QAAA,CACA,OACA,MAAA,CACA,MAAA,CACA,OACA,MAAA,CACA,MAAA,CACA,OACA,QAAA,CACA,MAAA,CACA,OAAA,CACA,CAAA,CACD,wBAAO2B,YAAAA,CAAa,GAAA,CAAA,CAAA,MAAA,CAAA,CAsTrB,IAAIY,IAAAA,CAAO,IAAItF,KAEf,IAAIuF,eAAAA,CAAkB,SACtB,IAAIC,gBAAAA,CAAmB,UACvB,IAAIC,oBAAAA,CAAuB,cAE3B,IAAIC,QAAAA,CAAW,MAOdC,WAAAA,EAAc,CACb,OAAO,IAAI,CAACC,QACb,CACAC,WAAAA,CAAY5rH,SAAS,CAAE,CACtB,IAAI,CAAC2rH,QAAQ,CAACpxI,IAAI,CAACylB,WACnB,MAAM6rH,QAAAA,CAAW,IAAI,CAACA,QAAQ,CAC9B,GAAIA,SAAU,CACb,GAAI,cAAeA,QAAAA,CAAU,CAC5BA,SAASC,SAAS,CAACzoI,KAAK,CAAG2c,SAAAA,CAAUzI,CAAC,CACtCs0H,SAASE,SAAS,CAAC1oI,KAAK,CAAG2c,SAAAA,CAAUxI,CACrCq0H,CAAAA,QAAAA,CAASG,SAAS,CAAC3oI,KAAK,CAAG2c,UAAUvI,EACtC,MAAO,GAAIo0H,QAAAA,CAASD,WAAW,CAAE,CAChCC,SAASD,WAAW,CAAC5rH,UAAUzI,CAAC,CAAEyI,SAAAA,CAAUxI,CAAC,CAAEwI,SAAAA,CAAUvI,CAAC,EAC3D,CACD,CACD,CACAw0H,cAAAA,CAAeC,WAAW,CAAE,CAC3B,IAAI,CAACA,WAAW,CAAC3xI,IAAI,CAAC2xI,WAAAA,CAAAA,CACtB,MAAML,QAAAA,CAAW,IAAI,CAACA,QAAQ,CAC9B,GAAIA,QAAAA,CAAU,CACb,MAAM31H,CAAAA,CAAIg2H,YAAY/xH,IAAI,CAC1B,GAAI,UAAA,GAAc0xH,QAAAA,CAAU,CAC3BA,QAAAA,CAASM,QAAQ,CAAC9oI,KAAK,CAAG,CAAC6S,CAAC,CAAC,CAAA,CAC7B21H,CAAAA,QAAAA,CAASO,QAAQ,CAAC/oI,KAAK,CAAG,CAAC6S,CAAC,CAAC,EAAE,CAC/B21H,SAASQ,QAAQ,CAAChpI,KAAK,CAAG,CAAC6S,CAAC,CAAC,EAAA,CAAG,CAChC21H,SAASS,GAAG,CAACjpI,KAAK,CAAG6S,CAAC,CAAC,CAAA,CACvB21H,CAAAA,QAAAA,CAASU,GAAG,CAAClpI,KAAK,CAAG6S,CAAC,CAAC,CAAA,CAAE,CACzB21H,QAAAA,CAASW,GAAG,CAACnpI,KAAK,CAAG6S,CAAC,CAAC,CAAA,EACxB,MAAO,GAAI21H,QAAAA,CAASI,cAAc,CAAE,CACnCJ,SAASI,cAAc,CAAC,CAAC/1H,CAAC,CAAC,EAAE,CAAE,CAACA,CAAC,CAAC,EAAE,CAAE,CAACA,CAAC,CAAC,EAAA,CAAG,CAAEA,CAAC,CAAC,CAAA,CAAE,CAAEA,CAAC,CAAC,CAAA,CAAE,CAAEA,CAAC,CAAC,EAAE,EAC/D,CACD,CACD,CACAu2H,gBAAiB,CAChB,OAAO,IAAI,CAACP,WAAW,CAExB,IAAIL,UAAW,CACd,MAAM3pC,QAAU,IAAI,CAACwqC,QAAQ,CAACxqC,OAAO,CACrC,OAAOA,OAAAA,CAAUA,OAAAA,CAAQ2pC,QAAQ,CAAG,IACrC,CA1CA,YAAYc,OAAO,CAAE,CAHrBD,gBAAAA,CAAAA,IAAAA,CAAAA,UAAAA,CAAAA,MAAAA,CAAAA,CACAf,gBAAAA,CAAAA,IAAAA,CAAAA,WAAW,IAAIt0H,IAAAA,CAAAA,CACf60H,sBAAAA,aAAAA,CAAc,IAAIluH,KAEjB,CAAA,IAAI,CAAC0uH,QAAQ,CAAGC,QACjB,CAyCD,EAEA,IAAIC,qBAAAA,CAAwB,UAC5B,IAAIC,iBAAAA,CAAoB,CACvB,OAAA,CACA,YAAA,CACA,YACA,CACD,IAAIC,aAAe,cAAcrpI,YAAAA,CAWhC,IAAIktC,MAAAA,CAAOA,MAAM,CAAE,CAClBA,OAASriC,IAAAA,CAAKI,KAAK,CAACiiC,MAAAA,CAAQ,CAAA,CAAG,EAC/B,CAAA,IAAI,CAACrB,OAAO,CAAGqB,OACf,IAAI,CAACnsC,IAAI,CAAC,cAAA,CAAgBmsC,QAC3B,CACA,IAAIA,MAAAA,EAAS,CACZ,OAAO,IAAI,CAACrB,OAAO,CAEpB,IAAIy9F,SAAAA,EAAY,CACf,OAAO,IAAI,CAACC,cAAc,CAE3B,IAAI9qC,OAAAA,EAAU,CACb,GAAI,CAAC,IAAI,CAAC+qC,QAAQ,CAAE,CACnB,MAAMC,iBAAmB,OAAOC,YAAAA,GAAiB,aAAeA,YAAAA,EAAgB,OAAOC,qBAAuB,WAAA,EAAeA,kBAAAA,CAC7H,GAAI,CAACF,gBAAAA,CAAkB,CACtB,OAAO,IACR,CACA,IAAI,CAACD,QAAQ,CAAG,IAAIC,gBAAAA,CACpB,GAAI,IAAI,CAACD,QAAQ,CAACr1F,KAAK,GAAKg1F,sBAAuB,CAClD,IAAI,CAACS,wBAAwB,GAC9B,CACD,CACA,OAAO,IAAI,CAACJ,QAAQ,CAErBK,SAAU,CACT,GAAI,CAAC,IAAI,CAACN,cAAc,CAAE,CACzB,IAAI,CAACA,cAAc,CAAG,IAAA,CACtB,GAAI,IAAI,CAACC,QAAQ,EAAI,IAAI,CAACA,QAAQ,CAACr1F,KAAK,GAAKg1F,sBAAuB,CACnE,IAAI,CAACW,QAAQ,GACd,CACD,CACD,CACAC,QAAS,CACR,GAAI,IAAI,CAACR,cAAc,CAAE,CACxB,IAAI,CAACA,cAAc,CAAG,KAAA,CACtB,GAAI,IAAI,CAACC,QAAQ,EAAI,IAAI,CAACA,QAAQ,CAACr1F,KAAK,GAAKg1F,qBAAAA,CAAuB,CACnE,IAAI,CAACa,OAAO,GACb,CACD,CACD,CACA5kG,OAAAA,EAAU,CACT,IAAI,CAACrkC,IAAI,CAAC,SAAA,CAAA,CACV,MAAM09F,OAAAA,CAAU,IAAI,CAAC+qC,QAAQ,CAC7B,GAAI/qC,OAAAA,CAAS,CACZ,IAAI,CAACwrC,sBAAsB,GAC3BxrC,OAAAA,CAAQj1D,KAAK,EACb,CAAA,IAAI,CAACggG,QAAQ,CAAG,KACjB,CACD,CAEAQ,OAAAA,EAAU,CACT,MAAMvrC,OAAAA,CAAU,IAAI,CAAC+qC,QAAQ,CAC7B,GAAI,CAAC/qC,QAAS,OACdA,OAAAA,CAAQsrC,MAAM,EAAA,CAAGhmI,IAAI,CAAC,IAAA,CACrB,MAAMyqC,MAAAA,CAASiwD,OAAAA,CAAQyrC,kBAAkB,EACzC17F,CAAAA,OAAOn8B,MAAM,CAAGosF,QAAQ9sC,YAAY,CAAC,EAAG,CAAA,CAAG8sC,OAAAA,CAAQ0rC,UAAU,CAAA,CAC7D37F,MAAAA,CAAO47F,OAAO,CAAC3rC,QAAQzrB,WAAW,CAAA,CAClCxkC,OAAO1kB,KAAK,CAAC,EACb0kB,CAAAA,MAAAA,CAAO67F,OAAO,CAAInqB,QACjB1xE,MAAAA,CAAO87F,UAAU,CAAC,CAAA,CAAA,CAClB,IAAI,CAACvpI,IAAI,CAAC,QAAA,EACX,EACD,EAAG,CAACiE,EAAAA,CACJ,GAAG6nG,KAAK,CAAC,CAAC7nG,EAAAA,CACV,CAAA,EACD,CAEA8kI,QAAAA,EAAW,CACV,MAAMrrC,OAAAA,CAAU,IAAI,CAAC+qC,QAAQ,CAC7B,GAAI,CAAC/qC,OAAAA,CAAS,OACdA,OAAAA,CAAQorC,OAAO,EAAA,CAAG9lI,IAAI,CAAC,IAAA,CACtB,IAAI,CAAChD,IAAI,CAAC,SAAA,EACX,CAAA,CAAG,CAACiE,EAAAA,CACJ,CAAA,CAAA,CAAG6nG,KAAK,CAAE7nG,IACV,CAAA,EACD,CACAulI,cAAAA,EAAiB,CAChB,IAAI,CAACN,sBAAsB,GAC3B,GAAI,CAAC,IAAI,CAACV,cAAc,EAAI,IAAI,CAACC,QAAQ,EAAI,IAAI,CAACA,QAAQ,CAACr1F,KAAK,GAAKg1F,qBAAAA,CAAuB,CAC3F,IAAI,CAACa,OAAO,GACb,CACD,CACAJ,wBAAAA,EAA2B,CAC1BR,iBAAAA,CAAkB3kI,OAAO,CAAC,SAAC+lI,EAAAA,CAC1B1wI,OAAO83F,gBAAgB,CAAC44C,UAAW,IAAI,CAACC,kBAAkB,CAAE,KAAA,EAC7D,CAAA,EACD,CACAR,wBAAyB,CACxBb,iBAAAA,CAAkB3kI,OAAO,CAAE+lI,YAC1B1wI,MAAAA,CAAOm2G,mBAAmB,CAACu6B,SAAAA,CAAW,IAAI,CAACC,kBAAkB,CAAE,OAChE,CAAA,EACD,CAhGA,aAAc,CACb,KAAK,EAAA,CANNjB,gBAAAA,CAAAA,IAAAA,CAAAA,WAAW,IAAA,CAAA,CACXiB,gBAAAA,CAAAA,IAAAA,CAAAA,qBAAAA,MAAAA,CAAAA,CACAlB,sBAAAA,gBAAAA,CAAiB,KAAA,CAAA,CACjBnB,sBAAAA,UAAAA,CAAAA,QACAv8F,gBAAAA,CAAAA,IAAAA,CAAAA,SAAAA,CAAU,EAGT,CAAA,IAAI,CAAC4+F,kBAAkB,CAAG,IAAI,CAACF,cAAc,CAACriI,IAAI,CAAC,IAAI,CACvD,CAAA,IAAI,CAACkgI,QAAQ,CAAG,IAAIJ,SAAS,IAAI,EAClC,CA6FD,CAAA,CAEA,IAAI0C,MAAQ,KAAA,CAKX,IAAI37B,QAAAA,EAAW,CACd,OAAO,IAAI,CAAC18F,MAAM,EAAI,IAAI,CAACA,MAAM,CAAC08F,QAAQ,EAAI,CAC/C,CALA,WAAA,CAAY18F,MAAM,CAAE,CADpBA,gBAAAA,CAAAA,IAAAA,CAAAA,SAAAA,MAAAA,CAEC,CAAA,IAAI,CAACA,MAAM,CAAGA,OACf,CAID,CAAA,CAEA,IAAIs4H,aAAAA,CAAgB,CAAA,CACpB,IAAIC,YAAAA,CAAe,CAAA,CACnB,IAAIC,aAAAA,CAAgB,CAAA,CACpB,IAAIC,gBAAAA,CAAmB,GAAA,CACvB,SAASC,OAAAA,CAAQj8H,IAAI,CAAEigG,QAAQ,EAC9B,OAAOjgG,IAAAA,CAAOigG,UAAY,CAC3B,CACA,IAAIi8B,aAAAA,EAAAA,OAAAA,CAAgB,cAAchrI,YAAAA,CA6CjC,IAAIirI,YAAYrrI,KAAK,CAAE,CACtBA,KAAAA,CAAQmiB,MAAAA,CAAOniB,QAAU,CAAA,CACzB,GAAIA,KAAAA,CAAQ,CAAA,CAAG,OACf,MAAMmvG,QAAAA,CAAW,IAAI,CAACA,QAAQ,CAC9B,MAAMk8B,WAAAA,CAAcl8B,SAAWg8B,OAAAA,CAAQnrI,KAAAA,CAAOmvG,UAAYnvG,KAAAA,CAC1D,GAAI,IAAI,CAACsrI,MAAM,GAAKP,aAAAA,CAAe,CAClC,MAAMd,OAAAA,CAAU,IAAI,CAACsB,sBAAsB,CAC3C,IAAI,CAACA,sBAAsB,CAAG,KAC9B,IAAI,CAACC,IAAI,EACT,CAAA,IAAI,CAACC,YAAY,CAAGJ,WAAAA,CACpB,IAAI,CAACK,IAAI,EACT,CAAA,IAAI,CAACH,sBAAsB,CAAGtB,QAC/B,CAAA,KAAO,CACN,IAAI,CAACwB,YAAY,CAAGJ,WACpB,CAAA,IAAI,CAACM,YAAY,CAAGN,YACrB,CACD,CACA,IAAIA,aAAc,CACjB,GAAI,IAAI,CAACI,YAAY,GAAK,IAAA,CAAM,CAC/B,OAAO,IAAI,CAACA,YAAY,CAEzB,GAAI,IAAI,CAACH,MAAM,GAAKN,YAAAA,CAAc,CACjC,OAAO,IAAI,CAACW,YAAY,CAEzB,GAAI,IAAI,CAACL,MAAM,GAAKL,aAAAA,EAAiB,CAAC,IAAI,CAACr8F,MAAM,CAAE,CAClD,OAAO,CACR,CACA,IAAI,CAACg9F,kBAAkB,GACvB,OAAO,IAAI,CAACD,YACb,CACA,IAAIx8B,QAAAA,CAASnvG,KAAK,CAAE,CACnB,IAAI,CAAC6rI,SAAS,CAAGn0I,IAAAA,CAAK6T,GAAG,CAAC,CAAA,CAAG4W,MAAAA,CAAOniB,KAAAA,CAAAA,EAAU,CAAA,CAAA,CAC9C,MAAM8rI,SAAAA,CAAY,IAAI,CAACR,MAAM,GAAKP,cAClC,IAAI,CAACS,IAAI,EAAA,CACT,GAAIM,UAAW,CACd,IAAI,CAACJ,IAAI,GACV,CACD,CACA,IAAIv8B,QAAAA,EAAW,CACd,GAAI,CAAC,IAAI,CAAC48B,MAAM,CAAE,CACjB,OAAO,CACR,CACA,GAAI,IAAI,CAACF,SAAS,CAAE,CACnB,MAAMG,cAAgB,IAAI,CAACD,MAAM,CAAC58B,QAAQ,CAC1C,MAAM88B,UAAYd,OAAAA,CAAQ,IAAI,CAACe,UAAU,CAAEF,eAC3C,OAAOt0I,IAAAA,CAAK4T,GAAG,CAAC,IAAI,CAACugI,SAAS,CAAEG,cAAgBC,SAAAA,CACjD,CACA,OAAO,IAAI,CAACF,MAAM,CAAC58B,QAAQ,CAE5B,IAAIg9B,QAAAA,EAAW,CACd,OAAO,IAAI,CAACb,MAAM,GAAKN,YACxB,CACA,IAAIc,SAAAA,EAAY,CACf,OAAO,IAAI,CAACR,MAAM,GAAKP,aACxB,CACA,IAAIqB,SAAAA,EAAY,CACf,OAAO,IAAI,CAACd,MAAM,GAAKL,aACxB,CACA,IAAIoB,WAAAA,EAAc,CACjB,OAAO,IAAI,CAACC,UACb,CACA,IAAIC,KAAKvsI,KAAK,CAAE,CACf,MAAMusI,IAAAA,CAAO,CAAC,CAACvsI,KAAAA,CACf,MAAMwsI,UAAAA,CAAa,IAAI,CAACC,KACxB,CAAA,IAAI,CAACA,KAAK,CAAGF,IAAAA,CACb,GAAI,IAAI,CAAC39F,MAAM,CAAE,CAChB,IAAI,CAACA,MAAM,CAAC29F,IAAI,CAAGA,IAAAA,CACnB,GAAIC,aAAeD,IAAAA,EAAQ,IAAI,CAACV,SAAS,EAAI,IAAI,CAACP,MAAM,GAAKP,aAAAA,CAAe,CAC3E,IAAI,CAAC2B,iBAAiB,GACvB,CACD,CACD,CACA,IAAIH,MAAO,CACV,OAAO,IAAI,CAACE,KAAK,CAElB,IAAIE,MAAMA,KAAK,CAAE,CAChB,GAAI,IAAI,CAACtD,QAAQ,CAACxqC,OAAO,CAAE,CAC1B,IAAI,CAAC+tC,cAAc,CAAG,IAAI,CAACvB,WAC3B,CAAA,IAAI,CAACwB,UAAU,CAAG,IAAI,CAACxD,QAAQ,CAACxqC,OAAO,CAACwsC,WAAW,CACnD,GAAI,IAAI,CAACz8F,MAAM,CAAE,CAChB,IAAI,CAACk+F,mBAAmB,GACzB,CACD,CACA,IAAI,CAACC,MAAM,CAAGr1I,IAAAA,CAAK6T,GAAG,CAAC4W,MAAAA,CAAOwqH,QAAU,CAAA,CAAG,GAAA,CAAA,CAC3C,GAAI,IAAI,CAAC/9F,MAAM,CAAE,CAChB,IAAI,CAACA,MAAM,CAACo+F,YAAY,CAAChtI,KAAK,CAAG,IAAI,CAAC+sI,MAAM,CAC5C,GAAI,IAAI,CAACE,kBAAkB,CAAE,CAC5B,IAAI,CAACP,iBAAiB,GACvB,CACD,CACD,CACA,IAAIC,OAAQ,CACX,OAAO,IAAI,CAACI,MAAM,CAEnB,IAAIG,KAAAA,CAAMltI,KAAK,CAAE,CAChB,IAAI,CAAC+rI,MAAM,CAAG/rI,MACd,GAAI,IAAI,CAACsrI,MAAM,GAAKL,cAAe,CAClC,IAAI,CAACO,IAAI,GACV,CAAA,KAAO,CACN,IAAI,CAAC2B,aAAa,GACnB,CACD,CACA,IAAID,KAAAA,EAAQ,CACX,OAAO,IAAI,CAACnB,MAAM,CAEnB,IAAIE,SAAAA,CAAUjsI,KAAK,CAAE,CACpB,IAAI,CAACksI,UAAU,CAAGx0I,IAAAA,CAAK6T,GAAG,CAAC,CAAA,CAAG4W,MAAAA,CAAOniB,QAAU,CAAA,CAAA,CAC/C,MAAM8rI,UAAY,IAAI,CAACR,MAAM,GAAKP,aAAAA,CAClC,IAAI,CAACS,IAAI,GACT,GAAIM,SAAAA,CAAW,CACd,IAAI,CAACJ,IAAI,GACV,CACD,CACA,IAAIO,WAAY,CACf,OAAO,IAAI,CAACC,UAAU,CAEvB,IAAI5+F,OAAOA,MAAM,CAAE,CAClBA,MAAAA,CAASriC,IAAAA,CAAKI,KAAK,CAACiiC,OAAQ,CAAA,CAAG,CAAA,CAC/B,CAAA,IAAI,CAACrB,OAAO,CAAGqB,MAAAA,CACf,GAAI,IAAI,CAAC8/F,IAAI,CAAE,CACd,IAAI,CAACA,IAAI,CAACA,IAAI,CAACptI,KAAK,CAAGstC,OAAS,IAAI,CAAC+7F,QAAQ,CAAC/7F,OAAM,CAEtD,CACA,IAAIA,MAAAA,EAAS,CACZ,OAAO,IAAI,CAACrB,OACb,CACAohG,OAAAA,EAAU,CACT,IAAI,CAAClsI,IAAI,CAAC,MAAA,CAAA,CACV,GAAI,IAAI,CAACmsI,eAAe,CAAE,CACzB,IAAI,CAACA,eAAe,CAAC,IAAI,EAC1B,CACD,CACAC,QAAAA,EAAW,CACV,IAAI,CAACpsI,IAAI,CAAC,SACV,GAAI,IAAI,CAACqsI,gBAAgB,CAAE,CAC1B,IAAI,CAACA,gBAAgB,CAAC,IAAI,EAC3B,CACD,CACAC,WAAY,CACX,IAAI,CAACtsI,IAAI,CAAC,QAAA,CAAA,CACV,GAAI,IAAI,CAACusI,iBAAiB,CAAE,CAC3B,IAAI,CAACA,iBAAiB,CAAC,IAAI,EAC5B,CACD,CACAC,OAAAA,EAAU,CACT,IAAI,CAACxsI,IAAI,CAAC,MAAA,CAAA,CACV,GAAI,IAAI,CAACysI,eAAe,CAAE,CACzB,IAAI,CAACA,eAAe,CAAC,IAAI,EAC1B,CACD,CACAC,QAAAA,EAAW,CACV,GAAI,IAAI,CAACC,gBAAgB,CAAG,EAAG,CAC9B,IAAI,CAACA,gBAAgB,GACrB,MACD,CACA,IAAI,CAAC3sI,IAAI,CAAC,KAAA,CAAA,CACV,GAAI,IAAI,CAAC4sI,cAAc,CAAE,CACxB,IAAI,CAACA,cAAc,CAAC,IAAI,EACzB,CACA,IAAI,CAACvC,IAAI,GACV,CACAwC,wBAAyB,CACxB,IAAI,CAAC1gG,MAAM,CAAG,IAAI,CAACrB,QAAO,CAE3BgiG,iBAAAA,EAAoB,CACnB,GAAI,IAAI,CAAC3C,MAAM,GAAKP,aAAAA,EAAiB,CAAC,IAAI,CAACuB,UAAU,CAAE,CACtD,IAAI,CAACA,UAAU,CAAG,KAClB,IAAI,CAAC4B,KAAK,GACX,CACD,CACAC,gBAAAA,EAAmB,CAClB,GAAI,IAAI,CAAC7B,UAAU,CAAE,CACpB,IAAI,CAACA,UAAU,CAAG,KAAA,CAClB,IAAI,CAACnC,MAAM,GACZ,CACD,CACAiE,gBAAAA,EAAmB,CAClB,IAAI,CAAChB,IAAI,CAAG,IAAI,CAAC/D,QAAQ,CAACxqC,OAAO,CAACwvC,UAAU,EAC5C,CAAA,IAAI,CAACC,UAAU,CAAG,IAAI,CAAClB,IAAI,CAC3B,IAAI,CAACmB,cAAc,CAAG,IAAI,CAACnB,IAAI,CAC/B,IAAI,CAACmB,cAAc,CAAC/D,OAAO,CAAC,IAAI,CAACnB,QAAQ,CAACxqC,OAAO,CAACzrB,WAAW,EAC9D,CACAs4D,IAAAA,EAAO,CACN,GAAI,CAAC,IAAI,CAACrC,QAAQ,CAACxqC,OAAO,CAAE,CAC3B,OAAO,KACR,CACA,GAAI,IAAI,CAACysC,MAAM,GAAKL,aAAAA,CAAe,CAClC,IAAI,CAACO,IAAI,GACV,CACA,IAAI,CAACF,MAAM,CAAGP,aACd,CAAA,IAAI,CAACyD,eAAe,CAAG,KAAA,CACvB,GAAI,IAAI,CAACC,yBAAyB,CAAE,CACnC,OAAO,KACR,CACA,GAAI,IAAI,CAACpF,QAAQ,CAACK,SAAS,CAAE,CAC5B,IAAI,CAACL,QAAQ,CAACvpI,IAAI,CAAC,QAAA,CAAU,IAAI,CAAC4uI,mBAAmB,CAAE,IAAI,CAC3D,CAAA,IAAI,CAACD,yBAAyB,CAAG,IAAA,CACjC,OAAO,KACR,CACA,IAAI,CAACC,mBAAmB,EAAA,CACxB,OAAO,IACR,CACAA,mBAAAA,EAAsB,CACrB,IAAI,CAACD,yBAAyB,CAAG,KAAA,CACjC,GAAI,IAAI,CAACnD,MAAM,GAAKP,aAAAA,CAAe,CAClC,MACD,CACA,GAAI,CAAC,IAAI,CAACn8F,MAAM,CAAE,CACjB,IAAI,CAACu+F,aAAa,GACnB,CACA,MAAMwB,aAAAA,CAAgBxD,QAAQ,IAAI,CAACM,YAAY,CAAE,IAAI,CAACt8B,QAAQ,CAAA,CAC9D,MAAMppG,OAAAA,CAAUolI,QAAQ,IAAI,CAACe,UAAU,CAAGyC,aAAAA,CAAe,IAAI,CAAC5C,MAAM,CAAC58B,QAAQ,CAC7E,CAAA,IAAI,CAACs8B,YAAY,CAAG,KACpB,IAAI,CAACmD,YAAY,CAAC7oI,QAAS4oI,aAAAA,CAC3B,CAAA,IAAI,CAAC9B,UAAU,CAAG,IAAI,CAACxD,QAAQ,CAACxqC,OAAO,CAACwsC,WACxC,CAAA,IAAI,CAACM,YAAY,CAAG,CACpB,CAAA,IAAI,CAACiB,cAAc,CAAG+B,aACtB,CAAA,IAAI,CAACrhG,MAAM,CAAG,IAAI,CAACrB,OAAO,CAC1B,IAAI,CAACsgG,IAAI,CAAG,IAAI,CAACE,KAAK,CACtB,IAAI,CAACE,KAAK,CAAG,IAAI,CAACI,MAAM,CACxB,IAAI,CAAC1D,QAAQ,CAAC3pI,EAAE,CAAC,cAAA,CAAgB,IAAI,CAACsuI,sBAAsB,CAAE,IAAI,CAAA,CAClE,IAAI,CAAC3E,QAAQ,CAAC3pI,EAAE,CAAC,SAAA,CAAW,IAAI,CAACuuI,iBAAiB,CAAE,IAAI,CAAA,CACxD,IAAI,CAAC5E,QAAQ,CAAC3pI,EAAE,CAAC,QAAA,CAAU,IAAI,CAACyuI,gBAAgB,CAAE,IAAI,EACtD,IAAI,CAAC9E,QAAQ,CAAC3pI,EAAE,CAAC,SAAA,CAAW,IAAI,CAACmvI,iBAAiB,CAAE,IAAI,CAAA,CACxD,GAAI,CAAC,IAAI,CAACtD,sBAAsB,CAAE,CACjC,IAAI,CAAC8B,OAAO,GACb,CACD,CACAuB,YAAAA,CAAa7oI,OAAO,CAAE4oI,aAAa,CAAE,CACpC,GAAI,IAAI,CAAC9C,SAAS,EAAI,CAAC,IAAI,CAACY,KAAK,CAAE,CAClC,IAAI,CAAC79F,MAAM,CAAC1kB,KAAK,CAAC,CAAA,CAAGnkB,OAAAA,CAAS,IAAI,CAACopG,QAAQ,CAAGw/B,aAAAA,EAC/C,CAAA,KAAO,CACN,IAAI,CAAC//F,MAAM,CAAC1kB,KAAK,CAAC,CAAA,CAAGnkB,OAAAA,EACtB,CACA,IAAI,CAAC+oI,aAAa,CAAG/oI,OACrB,CAAA,IAAI,CAACgpI,eAAe,CAAG,IAAI,CAAC1F,QAAQ,CAACxqC,OAAO,CAACwsC,WAC7C,CAAA,IAAI,CAAC2D,cAAc,CAAG,IAAI,CAACvC,KAAK,CAChC,IAAI,CAACQ,kBAAkB,CAAG,MAC3B,CACAH,mBAAAA,EAAsB,CACrB,MAAMl+F,MAAAA,CAAS,IAAI,CAACA,MAAM,CAC1B,MAAMiwD,OAAAA,CAAU,IAAI,CAACwqC,QAAQ,CAACxqC,OAAO,CACrC,IAAIliF,SAAAA,CAAY,IAAI,CAACmyH,aAAa,CAAG,CAACjwC,QAAQwsC,WAAW,CAAG,IAAI,CAAC0D,eAAe,EAAI,IAAI,CAAChC,MAAM,CAC/F,MAAMkC,MAAAA,CAASrgG,OAAOsgG,OAAO,CAAGtgG,OAAOugG,SAAS,CAChD,GAAI,IAAI,CAACH,cAAc,EAAIC,MAAAA,CAAS,GAAKtyH,SAAAA,CAAYiyB,MAAAA,CAAOsgG,OAAO,CAAE,CACpEvyH,SAAAA,CAAYiyB,MAAAA,CAAOugG,SAAS,CAAIxyH,CAAAA,SAAAA,CAAYiyB,MAAAA,CAAOugG,SAAS,EAAIF,OACjE,CACA,IAAI,CAACH,aAAa,CAAGnyH,SACrB,CAAA,IAAI,CAACoyH,eAAe,CAAGlwC,OAAAA,CAAQwsC,WAAW,CAC1C,IAAI,CAAC2D,cAAc,CAAGpgG,MAAAA,CAAO29F,IAAI,CACjC,OAAO5vH,SACR,CACA+vH,iBAAAA,EAAoB,CACnB,MAAM99F,MAAAA,CAAS,IAAI,CAACA,MAAM,CAC1B,MAAMiwD,OAAAA,CAAU,IAAI,CAACwqC,QAAQ,CAACxqC,OAAO,CACrC,MAAMliF,SAAAA,CAAY,IAAI,CAACmwH,mBAAmB,EAAA,CAC1C,GAAI,IAAI,CAACL,KAAK,CAAE,CACf,GAAI,IAAI,CAACQ,kBAAkB,CAAE,CAC5Br+F,MAAAA,CAAO48F,IAAI,CAAC3sC,OAAAA,CAAQwsC,WAAW,CAAGH,gBAAAA,CAClC,CAAA,IAAI,CAAC+B,kBAAkB,CAAG,MAC3B,CACA,MACD,CACA,MAAMgC,OAASrgG,MAAAA,CAAOsgG,OAAO,CAAGtgG,MAAAA,CAAOugG,SAAS,CAChD,GAAIF,QAAU,CAAA,CAAG,CAChB,MACD,CACArgG,MAAAA,CAAO48F,IAAI,CAAC3sC,QAAQwsC,WAAW,CAAG3zI,KAAK6T,GAAG,CAAC,EAAGqjC,MAAAA,CAAOsgG,OAAO,CAAGvyH,SAAAA,CAAAA,CAAa,IAAI,CAACowH,MAAM,CACvF,CAAA,IAAI,CAACE,kBAAkB,CAAG,KAC3B,CACAiB,KAAAA,EAAQ,CACP,IAAI,CAACM,eAAe,CAAG,KAAA,CACvB,GAAI,IAAI,CAAClD,MAAM,GAAKP,cAAe,CAClC,OAAO,KACR,CACA,IAAI,CAACO,MAAM,CAAGN,aACd,GAAI,IAAI,CAACyD,yBAAyB,CAAE,CACnC,OAAO,IACR,CACA,IAAI,CAAC7C,kBAAkB,EACvB,CAAA,IAAI,CAACkC,gBAAgB,EAAA,CACrB,IAAI,CAACl/F,MAAM,CAAC48F,IAAI,CAAC,CAAA,CACjB,CAAA,IAAI,CAAC58F,MAAM,CAAG,IACd,CAAA,IAAI,CAAC68F,YAAY,CAAG,KACpB,GAAI,CAAC,IAAI,CAACF,sBAAsB,CAAE,CACjC,IAAI,CAACgC,QAAQ,GACd,CACA,OAAO,IACR,CACApD,MAAAA,EAAS,CACR,GAAI,IAAI,CAACmB,MAAM,GAAKN,aAAc,CACjC,OAAO,KACR,CACA,IAAI2D,cAAgB,IAAI,CAACtD,WAAW,CACpC,IAAI,CAACC,MAAM,CAAGP,aAAAA,CACd,GAAI,IAAI,CAAC0D,yBAAyB,CAAE,CACnC,OAAO,IACR,CACA,GAAI,CAAC,IAAI,CAAC7/F,MAAM,CAAE,CACjB,IAAI,CAACu+F,aAAa,GACnB,CACA,GAAI,IAAI,CAAC1B,YAAY,GAAK,IAAA,CAAM,CAC/BkD,aAAAA,CAAgBxD,QAAQ,IAAI,CAACM,YAAY,CAAE,IAAI,CAACt8B,QAAQ,CACxD,CAAA,IAAI,CAACs8B,YAAY,CAAG,KACrB,CACA,MAAM1lI,OAAAA,CAAUolI,QAAQ,IAAI,CAACe,UAAU,CAAGyC,cAAe,IAAI,CAAC5C,MAAM,CAAC58B,QAAQ,EAC7E,IAAI,CAACy/B,YAAY,CAAC7oI,QAAS4oI,aAAAA,CAC3B,CAAA,IAAI,CAAC9B,UAAU,CAAG,IAAI,CAACxD,QAAQ,CAACxqC,OAAO,CAACwsC,WAAW,CACnD,IAAI,CAACuB,cAAc,CAAG+B,aACtB,CAAA,IAAI,CAACrhG,MAAM,CAAG,IAAI,CAACrB,OAAO,CAC1B,IAAI,CAACsgG,IAAI,CAAG,IAAI,CAACE,KAAK,CACtB,IAAI,CAACE,KAAK,CAAG,IAAI,CAACI,MAAM,CACxB,IAAI,CAACyB,eAAe,CAAG,KAAA,CACvB,GAAI,CAAC,IAAI,CAACjD,sBAAsB,CAAE,CACjC,IAAI,CAACkC,SAAS,GACf,CACA,OAAO,IACR,CACAjC,MAAO,CACN,IAAI,CAACgD,eAAe,CAAG,MACvB,GAAI,IAAI,CAAClD,MAAM,GAAKL,aAAAA,CAAe,CAClC,OAAO,KACR,CACA,MAAMmE,UAAAA,CAAa,IAAI,CAAC9D,MAAM,GAAKP,aACnC,CAAA,IAAI,CAACO,MAAM,CAAGL,cACd,GAAI,IAAI,CAACwD,yBAAyB,CAAE,CACnC,OAAO,IACR,CACA,IAAI,CAACpF,QAAQ,CAAC/pI,GAAG,CAAC,cAAA,CAAgB,IAAI,CAAC0uI,sBAAsB,CAAE,IAAI,CAAA,CACnE,IAAI,CAAC3E,QAAQ,CAAC/pI,GAAG,CAAC,SAAA,CAAW,IAAI,CAAC2uI,iBAAiB,CAAE,IAAI,CAAA,CACzD,IAAI,CAAC5E,QAAQ,CAAC/pI,GAAG,CAAC,QAAA,CAAU,IAAI,CAAC6uI,gBAAgB,CAAE,IAAI,CAAA,CACvD,IAAI,CAAC9E,QAAQ,CAAC/pI,GAAG,CAAC,SAAA,CAAW,IAAI,CAACuvI,iBAAiB,CAAE,IAAI,CACzD,CAAA,IAAI,CAAChC,UAAU,CAAG,CAClB,CAAA,IAAI,CAAClB,YAAY,CAAG,CACpB,CAAA,IAAI,CAACiB,cAAc,CAAG,CACtB,CAAA,IAAI,CAACnB,YAAY,CAAG,IACpB,CAAA,IAAI,CAACqC,gBAAgB,EAAA,CACrB,GAAIsB,UAAAA,EAAc,IAAI,CAACxgG,MAAM,CAAE,CAC9B,IAAI,CAACA,MAAM,CAAC48F,IAAI,CAAC,CAAA,EAClB,CACA,IAAI,CAAC58F,MAAM,CAAG,IAAA,CACd,GAAI,CAAC,IAAI,CAAC28F,sBAAsB,CAAE,CACjC,IAAI,CAACoC,OAAO,GACb,CACA,OAAO,IACR,CACA0B,gBAAAA,CAAiBC,SAAS,CAAEC,QAAQ,CAAE,CACrC,GAAI,CAACD,UAAW,CACf3qI,OAAAA,CAAQC,KAAK,CAAC,0CAAA,CAAA,CACd,MACD,CACA,GAAI,CAAC,IAAI,CAAC2pI,cAAc,CAAE,CACzB,MACD,CACA,GAAI,CAACgB,QAAAA,CAAU,CACdA,QAAAA,CAAWD,UACZ,CACA,MAAME,QAAAA,CAAW,IAAI,CAACnG,QAAQ,CAACxqC,OAAO,CAACzrB,WAAW,CAClD,GAAI,IAAI,CAACq8D,UAAU,GAAKH,SAAAA,CAAW,CAClC,GAAI,IAAI,CAACG,UAAU,CAAE,CACpB,IAAI,CAAClB,cAAc,CAAC7D,UAAU,CAAC,IAAI,CAAC+E,UAAU,EAC/C,MAAO,CACN,IAAI,CAAClB,cAAc,CAAC7D,UAAU,CAAC8E,QAAAA,EAChC,CACA,IAAI,CAACC,UAAU,CAAGH,SAAAA,CAClB,IAAI,CAACf,cAAc,CAAC/D,OAAO,CAAC8E,SAAAA,EAC7B,CACA,GAAI,IAAI,CAACI,SAAS,GAAKH,QAAAA,CAAU,CAChC,GAAI,IAAI,CAACG,SAAS,CAAE,CACnB,IAAI,CAACA,SAAS,CAAChF,UAAU,CAAC8E,QAAAA,EAC3B,CACA,IAAI,CAACE,SAAS,CAAGH,QAAAA,CACjB,IAAI,CAACG,SAAS,CAAClF,OAAO,CAACgF,UACxB,CACD,CACAG,oBAAqB,CACpB,GAAI,CAAC,IAAI,CAACpB,cAAc,CAAE,CACzB,MACD,CACA,MAAMiB,QAAAA,CAAW,IAAI,CAACnG,QAAQ,CAACxqC,OAAO,CAACzrB,WAAW,CAClD,GAAI,IAAI,CAACq8D,UAAU,CAAE,CACpB,IAAI,CAAClB,cAAc,CAAC7D,UAAU,CAAC,IAAI,CAAC+E,UAAU,CAC9C,CAAA,IAAI,CAACA,UAAU,CAAG,KACnB,CACA,GAAI,IAAI,CAACC,SAAS,CAAE,CACnB,IAAI,CAACA,SAAS,CAAChF,UAAU,CAAC8E,SAC1B,CAAA,IAAI,CAACE,SAAS,CAAG,KAClB,CACA,IAAI,CAACnB,cAAc,CAAC/D,OAAO,CAACgF,QAAAA,EAC7B,CACAI,gBAAAA,EAAmB,CAClB,OAAO,CAAC,IAAI,CAACH,UAAU,CAAE,IAAI,CAACC,SAAS,CACxC,CACAvC,aAAAA,EAAgB,CACf,GAAI,CAAC,IAAI,CAACpB,MAAM,CAAE,CACjB,OAAO,IACR,CACA,MAAMltC,QAAU,IAAI,CAACwqC,QAAQ,CAACxqC,OAAO,CACrC,GAAI,CAACA,OAAAA,CAAS,CACb,OAAO,IACR,CACA,GAAI,IAAI,CAACktC,MAAM,CAACt5H,MAAM,CAAE,CACvB,IAAI,CAACm8B,MAAM,CAAGiwD,OAAAA,CAAQyrC,kBAAkB,EACxC,CAAA,IAAI,CAAC17F,MAAM,CAACn8B,MAAM,CAAG,IAAI,CAACs5H,MAAM,CAACt5H,MAAM,CACvC,IAAI,CAACm8B,MAAM,CAAC47F,OAAO,CAAC,IAAI,CAAC8D,UAAU,CACnC,CAAA,IAAI,CAAC1/F,MAAM,CAAC67F,OAAO,CAAG,IAAI,CAACoF,aAC3B,CAAA,IAAI,CAACjhG,MAAM,CAACugG,SAAS,CAAGhE,OAAAA,CAAQ,IAAI,CAACe,UAAU,CAAE,IAAI,CAACt9F,MAAM,CAACn8B,MAAM,CAAC08F,QAAQ,CAAA,CAC5E,GAAI,IAAI,CAAC08B,SAAS,CAAE,CACnB,IAAI,CAACj9F,MAAM,CAACsgG,OAAO,CAAGx3I,IAAAA,CAAK4T,GAAG,CAAC,IAAI,CAACsjC,MAAM,CAACugG,SAAS,CAAG,IAAI,CAACtD,SAAS,CAAE,IAAI,CAACj9F,MAAM,CAACn8B,MAAM,CAAC08F,QAAQ,EACnG,CACD,CACA,OAAO,IAAI,CAACvgE,MAAM,CAEnBg9F,kBAAAA,EAAqB,CACpB,IAAI,CAACD,YAAY,CAAGR,OAAAA,CAAQ,CAAC,IAAI,CAAC9B,QAAQ,CAACxqC,OAAO,CAACwsC,WAAW,CAAG,IAAI,CAACwB,UAAS,EAAK,IAAI,CAACE,MAAM,CAAG,IAAI,CAACH,cAAc,CAAE,IAAI,CAACz9B,QAAQ,EACrI,CACA0/B,mBAAoB,CACnB,GAAI,IAAI,CAACjgG,MAAM,EAAI,IAAI,CAAC08F,MAAM,GAAKP,aAAAA,CAAe,CACjD,IAAI,CAACn8F,MAAM,CAAC48F,IAAI,CAAC,CAAA,CACjB,CAAA,IAAI,CAAC58F,MAAM,CAAG,KACf,CACD,CA3cA,WAAA,CAAY06F,OAAO,CAAE4D,KAAK,CAAEvjI,QAAQ,CAAE,CACrC,KAAK,EAAA,CAFNilC,sBAAAA,QAAAA,CAAS,IAAA,CAGR,CAAA,IAAI,CAACy6F,QAAQ,CAAGC,OAChB,CAAA,IAAI,CAACr9F,OAAO,CAAGtiC,SAAS2jC,MAAM,GAAK,MAAK,CAAIriC,IAAAA,CAAKI,KAAK,CAAC8W,MAAAA,CAAOxY,SAAS2jC,MAAM,CAAA,EAAK,EAAG,CAAA,CAAG,CAAA,CAAA,CAAK,CAC7F,CAAA,IAAI,CAACy/F,MAAM,CAAGpjI,QAAAA,CAASgjI,KAAK,GAAK,MAAK,CAAIj1I,KAAK6T,GAAG,CAAC,IAAM4W,MAAAA,CAAOxY,QAAAA,CAASgjI,KAAK,CAAA,EAAK,CAAA,CAAA,CAAK,CACxF,CAAA,IAAI,CAACF,KAAK,CAAG,CAAC,EAAE9iI,QAAAA,CAAS4iI,IAAI,GAAK,MAAK,CAAI5iI,SAAS4iI,IAAI,CAAG,KAAI,CAC/D,CAAA,IAAI,CAACR,MAAM,CAAGmB,KACd,CAAA,IAAI,CAAC5B,MAAM,CAAGL,aACd,CAAA,IAAI,CAACqB,UAAU,CAAG,KAClB,CAAA,IAAI,CAACwB,gBAAgB,CAAG,CACxB,CAAA,IAAI,CAACvC,sBAAsB,CAAG,KAC9B,CAAA,IAAI,CAACiD,eAAe,CAAG,IACvB,CAAA,IAAI,CAACtC,UAAU,CAAGx0I,IAAAA,CAAK6T,GAAG,CAAC,CAAA,CAAG4W,MAAAA,CAAOxY,SAASsiI,SAAS,CAAA,EAAK,EAC5D,CAAA,IAAI,CAACJ,SAAS,CAAGn0I,IAAAA,CAAK6T,GAAG,CAAC,CAAA,CAAG4W,MAAAA,CAAOxY,SAASwlG,QAAQ,CAAA,EAAK,EAC1D,CAAA,IAAI,CAACs8B,YAAY,CAAG,IACpB,CAAA,IAAI,CAAC6B,eAAe,CAAG3jI,QAAAA,CAASmmI,MAAM,CACtC,IAAI,CAACtC,gBAAgB,CAAG7jI,SAASomI,OACjC,CAAA,IAAI,CAACrC,iBAAiB,CAAG/jI,QAAAA,CAASqmI,QAAQ,CAC1C,IAAI,CAACpC,eAAe,CAAGjkI,QAAAA,CAASsmI,MAAM,CACtC,IAAI,CAAClC,cAAc,CAAGpkI,QAAAA,CAASumI,KAAK,CACpC,IAAI,CAACrD,UAAU,CAAG,CAClB,CAAA,IAAI,CAAClB,YAAY,CAAG,CACpB,CAAA,IAAI,CAACiB,cAAc,CAAG,CACtB,CAAA,IAAI,CAACkC,aAAa,CAAG,CACrB,CAAA,IAAI,CAACC,eAAe,CAAG,CACvB,CAAA,IAAI,CAACC,cAAc,CAAG,KACtB,CAAA,IAAI,CAAC/B,kBAAkB,CAAG,KAC1B,CAAA,IAAI,CAACqB,UAAU,CAAG,IAClB,CAAA,IAAI,CAACC,cAAc,CAAG,IACtB,CAAA,IAAI,CAACkB,UAAU,CAAG,IAClB,CAAA,IAAI,CAACC,SAAS,CAAG,IACjB,CAAA,IAAI,CAACjB,yBAAyB,CAAG,MACjC,GAAI,CAAC,IAAI,CAACpF,QAAQ,CAACxqC,OAAO,CAAE,CAC3B,MACD,CACA,IAAI,CAACuvC,gBAAgB,EACrB,CAAA,IAAI,CAACyB,aAAa,CAAG,IAAI,CAAChC,QAAQ,CAACvlI,IAAI,CAAC,IAAI,EAC7C,CAuaD,CAAA,CAldC,gBAAA,CAAA,OAAA,CAAO6nI,YAAAA,CAAa,QACpB,gBAAA,CAAA,OAAA,CAAOC,aAAAA,CAAc,SACrB,gBAAA,CAAA,OAAA,CAAOC,cAAAA,CAAe,UACtB,gBAAA,CAAA,OAAA,CAAOC,YAAAA,CAAa,QACpB,gBAAA,CAAA,OAAA,CAAOC,WAAAA,CAAY,gBAgdpB,IAAIC,YAAAA,CAAe,IACnB,IAAIC,eAAAA,CAAkB,cAAcrF,aAAAA,CAgBnCgD,gBAAAA,EAAmB,CAClB,IAAI,CAAChB,IAAI,CAAG,IAAI,CAAC/D,QAAQ,CAACxqC,OAAO,CAACwvC,UAAU,EAC5C,CAAA,IAAI,CAACqC,MAAM,CAAG,IAAI,CAACrH,QAAQ,CAACxqC,OAAO,CAAC8xC,YAAY,GAChD,IAAI,CAACD,MAAM,CAAClG,OAAO,CAAC,IAAI,CAAC4C,IAAI,CAC7B,CAAA,IAAI,CAACkB,UAAU,CAAG,IAAI,CAACoC,MAAM,CAC7B,IAAI,CAACnC,cAAc,CAAG,IAAI,CAACnB,IAAI,CAC/B,IAAI,CAACmB,cAAc,CAAC/D,OAAO,CAAC,IAAI,CAACnB,QAAQ,CAACxqC,OAAO,CAACzrB,WAAW,EAC9D,CACA,IAAIk1D,QAAAA,CAAStoI,KAAK,CAAE,CACnB,IAAI,CAAC4wI,SAAS,CAAC15I,IAAI,CAAC8I,OACpB,MAAM0wI,MAAAA,CAAS,IAAI,CAACA,MAAM,CAC1B,GAAI,CAACA,OAAQ,CACZ,MACD,CACA,GAAI,cAAeA,MAAAA,CAAQ,CAC1BA,OAAOjI,SAAS,CAACzoI,KAAK,CAAGA,KAAAA,CAAMkU,CAAC,CAChCw8H,OAAOhI,SAAS,CAAC1oI,KAAK,CAAGA,KAAAA,CAAMmU,CAAC,CAChCu8H,MAAAA,CAAO/H,SAAS,CAAC3oI,KAAK,CAAGA,MAAMoU,EAChC,MAAO,GAAIs8H,MAAAA,CAAOnI,WAAW,CAAE,CAC9BmI,OAAOnI,WAAW,CAACvoI,MAAMkU,CAAC,CAAElU,MAAMmU,CAAC,CAAEnU,KAAAA,CAAMoU,CAAC,EAC7C,CACD,CACA,IAAIk0H,QAAAA,EAAW,CACd,OAAO,IAAI,CAACsI,SACb,CACA,IAAIC,QAAAA,CAASA,QAAQ,CAAE,CACtB,IAAI,CAACC,SAAS,CAAC55I,IAAI,CAAC25I,QAAAA,EACrB,CACA,IAAIA,QAAAA,EAAW,CACd,OAAO,IAAI,CAACC,SAAS,CAEtB,IAAIC,WAAAA,CAAY/wI,KAAK,CAAE,CACtB,GAAI,IAAI,CAAC0wI,MAAM,CAAE,CAChB,IAAI,CAACA,MAAM,CAACK,WAAW,CAAG/wI,MAC3B,CACD,CACA,IAAI+wI,WAAAA,EAAc,CACjB,OAAO,IAAI,CAACL,MAAM,CAAG,IAAI,CAACA,MAAM,CAACK,WAAW,CAAG,CAChD,CACA,IAAIC,YAAYhxI,KAAK,CAAE,CACtB,GAAI,IAAI,CAAC0wI,MAAM,CAAE,CAChB,IAAI,CAACA,MAAM,CAACM,WAAW,CAAGhxI,MAC3B,CACD,CACA,IAAIgxI,aAAc,CACjB,OAAO,IAAI,CAACN,MAAM,CAAG,IAAI,CAACA,MAAM,CAACM,WAAW,CAAG,CAChD,CACA,IAAIC,aAAAA,CAAcjxI,KAAK,CAAE,CACxB,GAAI,IAAI,CAAC0wI,MAAM,CAAE,CAChB,IAAI,CAACA,MAAM,CAACQ,aAAa,CAAGlxI,MAC7B,CACD,CACA,IAAIixI,aAAAA,EAAgB,CACnB,OAAO,IAAI,CAACP,MAAM,CAAG,IAAI,CAACA,MAAM,CAACQ,aAAa,CAAG,CAClD,CACA,IAAIC,aAAAA,CAAcnxI,KAAK,CAAE,CACxB,GAAI,IAAI,CAAC0wI,MAAM,CAAE,CAChB,IAAI,CAACA,MAAM,CAACS,aAAa,CAAGnxI,MAC7B,CACD,CACA,IAAImxI,aAAAA,EAAgB,CACnB,OAAO,IAAI,CAACT,MAAM,CAAG,IAAI,CAACA,MAAM,CAACS,aAAa,CAAGlJ,eAClD,CA3EA,WAAA,CAAYqB,OAAO,CAAE4D,KAAK,CAAEvjI,QAAAA,CAAW,EAAE,CAAE,CAC1C,KAAK,CAAC2/H,OAAAA,CAAS4D,KAAAA,CAAOvjI,QAAAA,CAAAA,CAHvBinI,sBAAAA,WAAAA,CAAY,IAAI58H,MAChB88H,gBAAAA,CAAAA,IAAAA,CAAAA,WAAAA,CAAY,IAAI98H,IAAAA,CAAAA,CAGf,GAAI,CAACs1H,OAAAA,CAAQzqC,OAAO,CAAE,CACrB,MACD,CACA,GAAIl1F,SAAS2+H,QAAQ,CAAE,CACtB,IAAI,CAACA,QAAQ,CAAG3+H,QAAAA,CAAS2+H,SAAQ,CAElC,IAAI,CAACyI,WAAW,CAAGpnI,QAAAA,CAASonI,WAAW,GAAK,OAAS5uH,MAAAA,CAAOxY,QAAAA,CAASonI,WAAW,CAAA,CAAIP,YACpF,CAAA,IAAI,CAACQ,WAAW,CAAGrnI,QAAAA,CAASqnI,WAAW,GAAK,OAAS7uH,MAAAA,CAAOxY,QAAAA,CAASqnI,WAAW,CAAA,CAAI,CACpF,CAAA,IAAI,CAACC,aAAa,CAAGtnI,SAASsnI,aAAa,GAAK,MAAK,CAAI9uH,MAAAA,CAAOxY,SAASsnI,aAAa,CAAA,CAAI,CAC1F,CAAA,IAAI,CAACE,aAAa,CAAGxnI,QAAAA,CAASwnI,aAAa,GAAK,MAAK,CAAIxnI,SAASwnI,aAAa,CAAGlJ,gBACnF,CAgED,CAAA,CAEA,IAAImJ,iBAAAA,CAAoB,CAAA,CACxB,IAAIC,cAAAA,CAAiB,CAAA,KACjBC,YAAAA,CAAe,MACfC,UAAAA,CAAa,EACjB,IAAIC,mBAAAA,CAAsB,EAC1B,IAAIC,oBAAAA,CAAuB,EAC3B,IAAIC,mBAAAA,CAAsB,EAC1B,IAAIC,sBAAAA,CAAyB,EAC7B,IAAIC,YAAAA,CAAe,EACnB,IAAIC,SAAAA,CAAY,EAChB,IAAIC,SAAAA,CAAY,GAChB,IAAIC,UAAAA,CAAa,CAChB,CAACX,mBAAoB,aAAA,CACrB,CAACC,cAAAA,EAAiB,WAClB,CAACC,YAAAA,EAAe,QAAA,CAChB,CAACC,YAAa,MAAA,CACd,CAACC,mBAAAA,EAAsB,gBACvB,CAACC,oBAAAA,EAAuB,gBAAA,CACxB,CAACC,mBAAAA,EAAsB,gBACvB,CAACC,sBAAAA,EAAyB,kBAAA,CAC1B,CAACC,cAAe,QAAA,CAChB,CAACC,SAAAA,EAAY,MACb,CAACC,SAAAA,EAAY,KACd,CAAA,CACA,IAAIE,QAAAA,CAAW,OACf,IAAIC,UAAAA,CAAa,SACjB,IAAIC,OAAAA,CAAU,MACd,IAAIC,QAAAA,CAAW,MAAA,CACf,IAAIC,aAAe,CAAA,CACnB,IAAIC,gBAAkB,CAAA,CACtB,IAAIC,aAAe,CAClB,CAACF,YAAAA,EAAe,OAChB,CAACC,eAAAA,EAAkB,SACpB,CAAA,CACA,IAAIE,SAAAA,CAAY,CAAA,CAChB,IAAIC,WAAAA,CAAc,CAAA,CAClB,IAAIC,WAAAA,CAAc,EAAA,CAClB,IAAIC,aAAAA,CAAgB,CAAA,CACpB,IAAIC,aAAAA,CAAgB,CAAA,CACpB,IAAIC,cAAAA,CAAiB,EACrB,IAAIC,iBAAAA,CAAoB,EACxB,IAAIC,UAAAA,CAAa,EACjB,IAAIC,qBAAAA,CAAwB,EAC5B,IAAIC,cAAAA,CAAiB,EACrB,IAAIC,eAAAA,CAAkBD,eACtB,IAAIE,cAAAA,CAAiB,EACrB,IAAIC,eAAAA,CAAkB,CAAA,CACtB,IAAIC,eAAiB,CACpB,CAACL,uBAAwB,aAAA,CACzB,CAACC,cAAAA,EAAiB,OAClB,CAACE,cAAAA,EAAiB,MACnB,CAAA,CACA,IAAIG,mBAAAA,CAAsB,GAAA,CAC1B,IAAIC,mBAAAA,CAAsB,CAAA,CAC1B,IAAIC,eAAAA,CAAkB,EACtB,IAAIC,eAAAA,CAAkB,EACtB,IAAIC,iBAAAA,CAAoB,EACxB,IAAIC,eAAAA,CAAkB,CACrB,CAACJ,mBAAAA,EAAsB,UAAA,CACvB,CAACC,iBAAkB,MAAA,CACnB,CAACC,eAAAA,EAAkB,MAAA,CACnB,CAACC,mBAAoB,QACtB,EACA,IAAIE,mBAAAA,CAAsB,EAC1B,IAAIC,2BAAAA,CAA8B,EAClC,IAAIC,iBAAAA,CAAoB,CACvB,CAACF,mBAAAA,EAAsB,QAAA,CACvB,CAACC,6BAA8B,gBAChC,CAAA,CACA,IAAIE,gBAAkB,CAAA,CACtB,IAAIC,YAAc,CAAA,CAClB,IAAIC,eAAiB,CAAA,CACrB,IAAIC,aAAe,CAAA,CACnB,IAAIC,eAAiB,CAAA,CACrB,IAAIC,aAAe,CAAA,CACnB,IAAIC,gBAAkB,CAAA,CACtB,IAAIC,WAAAA,CAAc,CAAA,CAClB,IAAIC,eAAAA,CAAkB,CAAA,CACtB,IAAIC,WAAAA,CAAc,CAAA,CAClB,IAAIC,eAAAA,CAAkB,CAAA,CACtB,IAAIC,eAAAA,CAAkB,CAAA,CACtB,IAAIC,eAAAA,CAAkB,CAAA,CACtB,IAAIC,eAAAA,CAAkB,CAAA,CACtB,IAAIC,cAAAA,CAAiC,IAAIr0I,GAAAA,CAAI,CAC5C,CAAC+zI,eAAAA,CAAiB,CAAEr5I,KAAM,UAAA,CAAY45I,IAAAA,CAAM,OAAQn3I,MAAAA,CAAQs2B,iBAAAA,CAAmB8gH,GAAAA,CAAK,IAAK,EAAE,CAC3F,CAAChB,gBAAiB,CAAE74I,IAAAA,CAAM,WAAY45I,IAAAA,CAAM,MAAA,CAAQn3I,MAAAA,CAAQs2B,iBAAAA,CAAmB8gH,IAAK,IAAK,CAAA,CAAE,CAC3F,CAACV,eAAAA,CAAiB,CAAEn5I,IAAAA,CAAM,UAAA,CAAY45I,KAAM,MAAA,CAAQn3I,MAAAA,CAAQs2B,kBAAmB8gH,GAAAA,CAAK,IAAK,EAAE,CAC3F,CAACL,gBAAiB,CAAEx5I,IAAAA,CAAM,UAAA,CAAY45I,IAAAA,CAAM,OAAQn3I,MAAAA,CAAQu5B,mBAAAA,CAAqB69G,IAAK,IAAK,CAAA,CAAE,CAC7F,CAACJ,eAAAA,CAAiB,CAAEz5I,IAAAA,CAAM,UAAA,CAAY45I,KAAM,MAAA,CAAQn3I,MAAAA,CAAQu5B,oBAAqB69G,GAAAA,CAAK,IAAK,EAAE,CAC7F,CAACH,eAAAA,CAAiB,CAAE15I,KAAM,UAAA,CAAY45I,IAAAA,CAAM,OAAQn3I,MAAAA,CAAQu5B,mBAAAA,CAAqB69G,IAAK,IAAK,CAAA,CAAE,CAC7F,CAACd,cAAAA,CAAgB,CAAE/4I,IAAAA,CAAM,SAAA,CAAW45I,KAAM,KAAA,CAAOn3I,MAAAA,CAAQk2B,oBAAqBmhH,GAAAA,CAAK,IAAK,CAAA,CAAE,CAC1F,CAACb,cAAAA,CAAgB,CAAEj5I,KAAM,SAAA,CAAW45I,IAAAA,CAAM,MAAOn3I,MAAAA,CAAQo2B,mBAAAA,CAAqBihH,IAAK,IAAK,CAAA,CAAE,CAC1F,CAACP,eAAAA,CAAiB,CAAEv5I,IAAAA,CAAM,UAAA,CAAY45I,KAAM,MAAA,CAAQn3I,MAAAA,CAAQq2B,gBAAAA,CAAkBihH,IAAAA,CAAM,IAAK,CAAA,CAAC,CAC1F,EACD,IAAIC,gBAAAA,CAAmB,EACvB,IAAIC,gBAAAA,CAAmB,EACvB,IAAIC,gBAAAA,CAAmB,EACvB,IAAIC,gBAAAA,CAAmB,EACvB,IAAIC,kBAAAA,CAAqB,IACzB,IAAIC,QAAAA,CAAW,CAAA,CACf,IAAIC,cAAgB,CAAA,CACpB,IAAIC,kBAAoB,CAAA,CACxB,IAAIC,sBAAwB,CAAA,CAC5B,IAAIC,yBAA2B,CAAA,CAC/B,IAAIC,yBAA2B,CAAA,CAC/B,IAAIC,iBAAmB,CAAA,CACvB,IAAIC,iBAAmB,CAAA,CACvB,IAAIC,gBAAAA,CAAmB,CAAA,CACvB,IAAIC,mBAAAA,CAAsB,CAAA,CAC1B,IAAIC,0BAAAA,CAA6B,CAAA,CACjC,IAAIC,yBAAAA,CAA4B,CAAA,CAChC,IAAIC,2BAAAA,CAA8B,CAAA,KAC9BC,sBAAAA,CAAyB,EAC7B,IAAIC,uBAAAA,CAA0B,CAAA,CAC9B,IAAIC,iBAAAA,CAAoB,CAAA,CACxB,IAAIC,qBAAAA,CAAwB,EAC5B,IAAIC,kBAAAA,CAAqB,EACzB,IAAIC,aAAAA,CAAgB,EACpB,IAAIC,YAAAA,CAAe,CAAA,CACnB,IAAIC,sBAAwB,CAC3B,CAACF,eAAgB,MAAA,CACjB,CAACC,YAAAA,EAAe,KACjB,CAAA,CACA,IAAIE,cAAAA,CAAiB,KAAA,CACrB,IAAIC,cAAAA,CAAiB,KAAA,CACrB,IAAIC,iBAAAA,CAAoB,QAAA,CACxB,IAAIC,kBAAAA,CAAqB,SAAA,CACzB,IAAIC,cAAAA,CAAiB,KAAA,CACrB,IAAIC,cAAAA,CAAiB,KAAA,CACrB,IAAIC,UAAAA,CAAa,CAAA,CACjB,IAAIC,UAAAA,CAAa,EACjB,IAAIC,UAAAA,CAAa,CAChB,CAACF,UAAAA,EAAa,MAAA,CACd,CAACC,YAAa,MACf,EACA,IAAIE,cAAAA,CAAiB,EACrB,IAAIC,cAAAA,CAAiB,EACrB,IAAIC,YAAAA,CAAe,CAAA,CACnB,IAAIC,aAAe,CAAA,CACnB,IAAIC,cAAgB,CAAA,CACpB,IAAIC,gBAAkB,CAAA,CACtB,IAAIC,aAAe,CAAA,CACnB,IAAIC,aAAe,CAClB,QAAA,CACA,SACA,MAAA,CACA,MAAA,CACA,QACA,SAAA,CACA,MAAA,CACA,CACD,IAAIC,aAAe,CAAA,CACnB,IAAIC,WAAa,CAAA,CACjB,IAAIC,uBAAyB,CAAA,CAC7B,IAAIC,sBAAAA,CAAyB,CAC5B,CAACH,YAAAA,EAAe,OAChB,CAACC,UAAAA,EAAa,IAAA,CACd,CAACC,sBAAAA,EAAyB,gBAC3B,CAAA,CACA,IAAIE,mBAAqB,MAAA,CACzB,IAAIC,uBAAyB,UAAA,CAC7B,IAAIC,yBAA2B,YAAA,CAC/B,IAAIC,sBAAwB,SAAA,CAC5B,IAAIC,wBAA0B,WAAA,CAC9B,IAAIC,mBAAqB,CACxB,CAACL,kBAAAA,EAAqB,OACtB,CAACC,sBAAAA,EAAyB,UAAA,CAC1B,CAACC,0BAA2B,YAAA,CAC5B,CAACC,qBAAAA,EAAwB,UACzB,CAACC,uBAAAA,EAA0B,WAC5B,CAAA,CACA,IAAIE,oBAAAA,CAAuB,WAAA,CAC3B,IAAIC,qBAAAA,CAAwB,WAC5B,IAAIC,mBAAAA,CAAsB,WAC1B,IAAIC,eAAAA,CAAkB,CACrB,CAACH,oBAAAA,EAAuB,WAAA,CACxB,CAACC,uBAAwB,YAAA,CACzB,CAACC,mBAAAA,EAAsB,UACxB,CAAA,CACA,IAAIE,kBAAAA,CAAqB,CAAA,CACzB,IAAIC,cAAAA,CAAiB,CAAA,CACrB,IAAIC,aAAAA,CAAgB,CAAA,CACpB,IAAIC,aAAAA,CAAgB,CAAA,CACpB,IAAIC,gBAAAA,CAAmB,GACvB,IAAIC,oBAAAA,CAAuB,GAC3B,IAAIC,YAAAA,CAAe,GACnB,IAAIC,eAAAA,CAAkB,GAAA,CACtB,IAAIC,sBAAwB,GAAA,CAC5B,IAAIC,mBAAqB,GAAA,CACzB,IAAIC,yBAA2B,IAAA,CAC/B,IAAIC,uBAAyB,IAAA,CAC7B,IAAIC,oBAAsB,IAAA,CAC1B,IAAIC,kCAAoC,IAAA,CACxC,IAAIC,gBAAkB,KAAA,CACtB,IAAIC,iBAAAA,CAAoB,CAAA,CACxB,IAAIC,sBAAAA,CAAyB,CAAA,CAC7B,IAAIC,qBAAAA,CAAwB,CAAA,CAC5B,IAAIC,mBAAAA,CAAsB,CAAA,CAC1B,IAAIC,uBAAAA,CAA0B,CAAA,CAC9B,IAAIC,SAAAA,CAAY,CAAA,CAChB,IAAIC,cAAAA,CAAiB,CAAA,CACrB,IAAIC,cAAAA,CAAiB,CAAA,CACrB,IAAIC,aAAAA,CAAgB,EACpB,IAAIC,WAAAA,CAAc,EAClB,IAAIC,iBAAAA,CAAoB,EACxB,IAAIC,kBAAAA,CAAqB,UACzB,IAAIC,iBAAAA,CAAoB,eACxB,IAAIC,sBAAAA,CAAyB,qBAC7B,IAAIC,kBAAAA,CAAqB,gBACzB,IAAIC,sBAAAA,CAAyB,mBAAA,CAC7B,IAAIC,iBAAmB,aAAA,CACvB,IAAIC,qBAAuB,iBAAA,CAC3B,IAAIC,cAAgB,UAAA,CACpB,IAAIC,oBAAsB,gBAAA,CAC1B,IAAIC,oBAAsB,gBAAA,CAC1B,IAAIC,eAAiB,WAAA,CACrB,IAAIC,yBAA2B,CAAA,CAC/B,IAAIC,wBAAAA,CAA2B,CAAA,CAC/B,IAAIC,uBAAAA,CAA0B,CAAA,CAC9B,IAAIC,qBAAAA,CAAwB,CAC3B,CAACH,wBAAAA,EAA2B,SAC5B,CAACC,wBAAAA,EAA2B,QAAA,CAC5B,CAACC,yBAA0B,OAC5B,EACA,IAAIE,UAAAA,CAAa,CAAA,CACjB,IAAIC,cAAgB,CAAA,CACpB,IAAIC,YAAc,CAAA,CAClB,IAAIC,UAAY,CAAA,CAChB,IAAIC,WAAa,CAAA,CACjB,IAAIC,cAAgB,CAAA,CACpB,IAAIC,gBAAkB,CAAA,CACtB,IAAIC,sBAAwB,CAAA,CAC5B,IAAIC,mBAAAA,CAAsB,CAAA,CAC1B,IAAIC,mBAAAA,CAAsB,CAAA,CAC1B,IAAIC,eAAAA,CAAkB,CAAA,CACtB,IAAIC,WAAAA,CAAc,CAAA,CAClB,IAAIC,aAAAA,CAAgB,CAAA,CACpB,IAAIC,sBAAAA,CAAyB,CAAA,CAC7B,IAAIC,oBAAAA,CAAuB,CAAA,CAC3B,IAAIC,gBAAAA,CAAmB,UAAA,CACvB,IAAIC,WAAAA,CAAc,MAClB,IAAIC,YAAAA,CAAe,OACnB,IAAIC,WAAAA,CAAc,OAClB,IAAIC,aAAAA,CAAgB,QAAA,CACpB,IAAIC,cAAgB,QAAA,CACpB,IAAIC,cAAgB,QAAA,CACpB,IAAIC,eAAiB,SAAA,CACrB,IAAIC,gBAAAA,CAAmB,WAAA,CACvB,IAAIC,eAAAA,CAAkB,UAAA,CACtB,IAAIC,eAAAA,CAAkB,QAAA,CACtB,IAAIC,kBAAAA,CAAqB,WAAA,CACzB,IAAIC,aAAAA,CAAgB,CACnB,CAACF,eAAAA,EAAkB,SACnB,CAACC,kBAAAA,EAAqB,WACvB,CAAA,CACA,IAAIE,WAAAA,CAAc,CACjB,CAACV,WAAAA,EAAc,MAAA,CACf,CAACC,eAAgB,QAAA,CACjB,CAACC,aAAAA,EAAgB,SACjB,CAACC,aAAAA,EAAgB,QAAA,CACjB,CAACC,gBAAiB,SAAA,CAClB,CAACC,gBAAAA,EAAmB,WAAA,CACpB,CAACC,iBAAkB,UACpB,EACA,IAAIK,eAAAA,CAAkB,YACtB,IAAIC,gBAAAA,CAAmB,aACvB,IAAIC,qBAAAA,CAAwB,kBAC5B,IAAIC,sBAAAA,CAAyB,mBAC7B,IAAIC,aAAAA,CAAgB,SAAA,CACpB,IAAIC,eAAiB,UAAA,CACrB,IAAIC,eAAiB,UAAA,CACrB,IAAIC,eAAiB,CAAA,CACrB,IAAIC,cAAgB,CAAA,CACpB,IAAIC,kBAAoB,gBAAA,CACxB,IAAIC,uBAAyB,CAAA,CAC7B,IAAIC,uBAAyB,CAAA,CAC7B,IAAIC,wBAAAA,CAA2B,CAAA,CAC/B,IAAIC,sBAAAA,CAAyB,CAAA,CAC7B,IAAIC,sBAAAA,CAAyB,CAAA,CAC7B,IAAIC,gBAAAA,CAAmB,OAAA,CACvB,IAAIC,kBAAAA,CAAqB,SAAA,CACzB,IAAIC,oBAAAA,CAAuB,CAAA,CAC3B,IAAIC,+BAAAA,CAAkC,CAAA,CACtC,IAAIC,+BAAAA,CAAkC,CAAA,CACtC,IAAIC,uBAAAA,CAA0B,EAC9B,IAAIC,oBAAAA,CAAuB,QAC3B,IAAIC,uBAAAA,CAA0B,WAC9B,IAAIC,iBAAAA,CAAoB,EACxB,IAAIC,gBAAAA,CAAmB,EACvB,IAAIC,sBAAAA,CAAyB,EAC7B,IAAIC,oBAAAA,CAAuB,EAC3B,IAAIC,kBAAAA,CAAqB,CAAA,CACzB,IAAIC,wBAA0B,CAAA,CAC9B,IAAIC,gBAAkB,CAAA,CACtB,IAAIC,oBAAsB,CAAA,CAC1B,IAAIC,oBAAsB,CAAA,CAC1B,IAAIC,mBAAqB,OAAA,CACzB,IAAIC,yBAA2B,CAC9B,CAACD,oBAAqB,gBACvB,CAAA,CAEA,IAAIE,uBAAyB,KAAA,CAQ5B95E,UAAAA,CAAWnqE,IAAI,CAAE,CAChB,IAAK,IAAI9C,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAK,IAAI,CAACqtE,cAAc,CAACptE,MAAM,CAAED,KAAM,CACvD,MAAMmtE,aAAAA,CAAgB,IAAI,CAACE,cAAc,CAACrtE,GAAG,CAC7C,GAAImtE,eAAezwE,GAAAA,CAAIoG,IAAAA,CAAAA,CAAO,CAC7B,OAAO,IACR,CACD,CACA,OAAO,KACR,CACAsqE,UAAAA,CAAWtqE,IAAI,CAAE,CAChB,IAAK,IAAI9C,GAAK,CAAA,CAAGA,EAAAA,CAAK,IAAI,CAACw7D,gBAAgB,CAACv7D,MAAM,CAAED,KAAM,CACzD,MAAMgnJ,YAAc,IAAI,CAACxrF,gBAAgB,CAACx7D,EAAAA,CAAG,CAC7C,GAAIgnJ,WAAAA,EAAaz5G,UAAAA,CAAWzqC,IAAAA,CAAAA,CAAO,CAClC,OAAO,IACR,CACD,CACA,OAAO,KACR,CACAqrE,gBAAAA,CAAiBzqB,QAAQ,CAAE,CAC1B,OAAO,IAAI,CAACqE,YAAY,EAAExE,QAAAA,CAASuT,KAAK,OAACvR,EAAYA,OAAAA,CAAQziD,IAAI,GAAK4gD,QAAAA,CACvE,CACAujG,YAAY/4G,MAAM,CAAE,CACnB,IAAInmC,GAAAA,CAAMqkI,KAAKC,SAAS,CAAC,IAAI,CAACh/D,cAAc,EAAI++D,IAAAA,CAAKC,SAAS,CAAC,IAAI,CAAC7wE,gBAAgB,CAAA,CACpF,GAAIttB,MAAAA,CAAOuG,QAAQ,CAAE,CACpB1sC,GAAAA,EAAO,IAAI,CAACggD,YAAY,EAAErD,2BAC3B,CACA,OAAO38C,GACR,CA/BA,YAAYm/I,iBAAiB,CAAEn/F,YAAY,CAAE,CAH7CslB,gBAAAA,CAAAA,IAAAA,CAAAA,gBAAAA,CAAiB,EAAE,CAAA,CACnB7R,gBAAAA,CAAAA,IAAAA,CAAAA,mBAAmB,EAAE,CAAA,CACrBzT,sBAAAA,cAAAA,CAAAA,OAEC,CAAA,IAAI,CAACslB,cAAc,CAAChiC,eAAe,CAAG67G,iBACtC,CAAA,IAAI,CAACn/F,YAAY,CAAGA,aACrB,CA6BD,CAAA,CAEA,IAAIo/F,yBAAAA,CAA4B,IAAI14G,YACpC,SAAS24G,iBAAAA,CAAkBl5G,MAAM,CAAA,CAChC,MAAMm5G,QAAUF,yBAAAA,CAA0BzqJ,GAAG,CAACwxC,MAAAA,CAAAA,CAC9C,OAAOm5G,OACR,CACA,SAASC,iBAAAA,CAAkBp5G,MAAM,CAAEm5G,OAAO,CAAA,CACzCF,0BAA0BzqJ,GAAG,CAACwxC,OAAQ,IAAA,CACrC,OAAOm5G,OACR,CAAA,EACD,CAEA,IAAIE,eAAAA,CAAkB,MACrB,OAAOC,WAAAA,CAAYrpE,OAAO,CAAE,CAC3B,MAAMspE,WAAAA,CAAczoJ,MAAM6qB,IAAI,CAACs0D,SAASluE,IAAI,CAAC,CAACtT,CAAAA,CAAGC,CAAAA,GAAMD,CAAC,CAAC,CAAA,CAAE,CAAGC,CAAC,CAAC,EAAE,CAAG,CAAA,CAAI,EAAC,CAAA,CAC1E,OAAOgmD,QAAAA,CAASwpF,IAAAA,CAAKC,SAAS,CAACob,WAAAA,CAAAA,CAChC,CACD,CAAA,CAEA,IAAIC,sBAAwB,IAAIj5G,WAAAA,CAChC,IAAIk5G,cAAAA,CAAiB,KAAA,CAUpBC,oBAAqB,CACpB,IAAIp7E,QACJ,GAAI,IAAI,CAACq7E,QAAQ,CAAE,CAClBr7E,OAAAA,CAAU,SACV,GAAI,IAAI,CAACs7E,SAAS,GAAK,MAAK,CAAG,CAC9B,MAAMC,UAAAA,CAAatL,cAAAA,CAAe//I,GAAG,CAAC,IAAI,CAACsrJ,UAAU,CAAA,CACrD,MAAMC,gBAAAA,CAAmB,IAAI,CAACH,SAAS,GAAKlN,qBAAAA,EAAyB,CAACmN,WAAWnL,GAAG,EAAI,IAAI,CAACkL,SAAS,GAAK/M,cAAAA,CAC3G,GAAIkN,gBAAAA,CAAkB,IAAI,CAAC9pE,OAAO,CAACx3E,GAAG,CAAC,mBAAA,CAAqB,EAAA,CAAA,CAC5D,IAAI,CAACw3E,OAAO,CAACx3E,GAAG,CAAC,YAAA,CAAc,CAAC,EAAEs0I,cAAc,CAAC,IAAI,CAAC6M,SAAS,CAAC,CAAC,CAAC,CAAA,CAClE,IAAI,CAAC3pE,OAAO,CAACx3E,GAAG,CAAC,cAAe,CAAC,EAAEohJ,WAAWjlJ,IAAI,CAAC,CAAC,EACrD,CACD,MAAO,GAAI,IAAI,CAAColJ,SAAS,CAAE,CAC1B17E,OAAAA,CAAU,UACX,MAAO,GAAI,IAAI,CAACnnE,KAAK,GAAK08I,WAAAA,CAAa,CACtCv1E,QAAU,OACX,CAAA,KAAO,GAAI,IAAI,CAACnnE,KAAK,GAAK28I,iBAAAA,CAAmB,CAC5Cx1E,OAAAA,CAAU,MAAA,CACV,IAAI,CAAC2R,OAAO,CAACx3E,GAAG,CAAC,iBAAA,CAAmB,EAAA,EACrC,CACA,GAAI6lE,OAAAA,CAAS,CACZ,IAAI,CAAC2R,OAAO,CAACx3E,GAAG,CAAC,CAAC,EAAE6lE,OAAAA,CAAQ,KAAK,CAAC,CAAE,EAAA,EACrC,CACA,IAAI,CAAC2R,OAAO,CAACx3E,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC7D,IAAI,CAAC2rF,WAAW,GAAG,KAAK,CAAC,CAAE,EAAA,EACrD,CA7BA,YAAY3rF,IAAI,CAAEuC,KAAK,CAAEmM,QAAAA,CAAW,EAAE,CAAE,CAHxCnM,gBAAAA,CAAAA,IAAAA,CAAAA,QAAAA,MAAAA,CAAAA,CACAvC,sBAAAA,MAAAA,CAAAA,QACAq7E,gBAAAA,CAAAA,IAAAA,CAAAA,SAAAA,CAA0B,IAAI/1E,GAAAA,CAE7B,CAAA,IAAI,CAACtF,IAAI,CAAGA,IACZ,CAAA,IAAI,CAACuC,KAAK,CAAGA,KAAAA,CACb8Q,OAAOo1H,MAAM,CAAC,IAAI,CAAE/5H,QAAAA,CAAAA,CACpB,IAAI,CAACo2I,kBAAkB,GACxB,CAyBD,CAAA,CACA,IAAIO,UAAAA,CAAa,MAAMC,YActB,OAAO1rJ,GAAAA,CAAIwxC,MAAM,CAAE,CAClB,OAAOw5G,qBAAAA,CAAsBhrJ,GAAG,CAACwxC,MAAAA,CAAQ,KACxC,OAAO,IAAIk6G,WACZ,CAAA,CACD,CACAxhG,SAAS9jD,IAAI,CAAE0O,QAAQ,CAAE,CACxB,IAAIyuB,IAAAA,CAAO,IAAI,CAACooH,WAAW,CAAC3rJ,GAAG,CAACoG,MAChC,GAAIm9B,IAAAA,GAAS,MAAK,CAAG,CACpBA,KAAO,IAAI0nH,cAAAA,CAAe7kJ,KAAM,IAAI,CAAC24F,SAAS,CAAEjqF,QAAAA,CAAAA,CAChD,IAAI,CAAC62I,WAAW,CAAC1hJ,GAAG,CAACs5B,IAAAA,CAAKn9B,IAAI,CAAEm9B,IAAAA,CAChC,CAAA,IAAI,CAACqoH,aAAa,CAACroH,IAAAA,CAAK56B,KAAK,CAAC,CAAG46B,IACjC,CAAA,IAAI,CAACw7D,SAAS,GACf,CACA,OAAOx7D,IACR,CACAsoH,UAAAA,CAAWljJ,KAAK,CAAE,CACjB,MAAM46B,KAAO,IAAI,CAACqoH,aAAa,CAACjjJ,KAAAA,CAAM,CACtC,OAAO46B,IACR,CACAuoH,SAAAA,CAAU1lJ,IAAI,CAAE,CACf,OAAO,IAAI,CAACulJ,WAAW,CAAC3rJ,GAAG,CAACoG,IAAAA,CAC7B,CA/BA,aAAc,CAHdulJ,gBAAAA,CAAAA,IAAAA,CAAAA,aAAAA,CAA8B,IAAIjgJ,KAClCkgJ,gBAAAA,CAAAA,IAAAA,CAAAA,eAAAA,CAAgB,EAAE,CAAA,CAClB7sD,gBAAAA,CAAAA,IAAAA,CAAAA,YAAY,CAAA,CAAA,CAEX,MAAMprF,GAAAA,CAAM,CAACvN,KAAMuC,KAAAA,CAAOmM,QAAAA,GAAAA,CACZ,IAAI,CAACo1C,QAAQ,CAAC9jD,KAAM0O,QAAAA,EAClC,CAAA,CACAnB,IAAI,SAAA,CAAWuxI,cAAAA,CAAgB,CAAEsG,SAAAA,CAAW,IAAK,GACjD73I,GAAAA,CAAI,SAAWwxI,CAAAA,CACfxxI,GAAAA,CAAI,QAAUyxI,CAAAA,CACdzxI,GAAAA,CAAI,MAAQ0xI,CAAAA,CACZ1xI,GAAAA,CAAI,YAAc2xI,EACnB,CAuBD,EAEA,IAAIyG,cAAAA,CAAiB,cAAcrgJ,GAAAA,CAQlCzB,GAAAA,CAAI7D,IAAI,CAAEgC,IAAI,CAAE,CACf,GAAI,CAAC,IAAI,CAACiC,GAAG,CAACjE,OAAS,IAAI,CAACpG,GAAG,CAACoG,IAAAA,CAAAA,GAAUgC,KAAM,CAC/C,IAAI,CAAC4jJ,SAAS,GACf,CACA,OAAO,KAAK,CAAC/hJ,GAAAA,CAAI7D,IAAAA,CAAMgC,IAAAA,CACxB,CACAuL,IAAIkwD,MAAM,CAAEooF,SAAW,IAAI,CAAE,CAC5B,IAAK,KAAM,CAAC5gJ,GAAAA,CAAKF,KAAAA,CAAM,GAAIsO,MAAAA,CAAOshD,OAAO,CAAC8I,MAAAA,CAAAA,CAAS,CAClD,GAAIooF,QAAAA,EAAY,CAAC,IAAI,CAAC5hJ,GAAG,CAACgB,GAAAA,CAAAA,CAAM,CAC/B,IAAI,CAACpB,GAAG,CAACoB,GAAAA,CAAKF,OACf,CACD,CACA,OAAO,IACR,CACAc,MAAAA,CAAO7F,IAAI,CAAE,CACZ,MAAM8lJ,OAAAA,CAAU,IAAI,CAAC7hJ,GAAG,CAACjE,MACzB,MAAM/C,MAAAA,CAAS,KAAK,CAAC4I,MAAAA,CAAO7F,MAC5B,GAAI8lJ,OAAAA,EAAW7oJ,OAAQ,CACtB,IAAI,CAAC2oJ,SAAS,GACf,CACA,OAAO3oJ,MACR,CACA2I,KAAAA,EAAQ,CACP,GAAI,IAAI,CAAChE,IAAI,CAAG,EAAG,CAClB,IAAI,CAACgkJ,SAAS,GACf,CACA,KAAK,CAAChgJ,QACP,CACAggJ,SAAAA,EAAY,CACX,IAAI,CAAC9iG,MAAM,CAAG,IACd,CAAA,IAAI,CAACnJ,SAAS,CAAG,KAClB,CACAosG,OAAAA,EAAU,CACT,OAAO,IAAI,CAACjjG,MAAM,CAEnBkjG,UAAAA,EAAa,CACZ,IAAI,CAACljG,MAAM,CAAG,MACf,CACA,IAAI79C,KAAM,CACT,GAAI,IAAI,CAAC00C,SAAS,CAAE,CACnB,IAAI,CAACA,SAAS,CAAG,KACjB,CAAA,IAAI,CAAC2B,IAAI,CAAGp/C,KAAAA,CAAM6qB,IAAI,CAAC,IAAI,CAAC4tC,OAAO,EAAA,CAAA,CAAIxnD,IAAI,CAAC,CAAC,CAACtT,EAAE,CAAE,CAACC,EAAE,GAAKD,CAAAA,CAAIC,EAAI,EAAC,CAAID,EAAIC,CAAAA,CAAI,CAAA,CAAI,CAAA,CAAA,CAAG0J,GAAG,CAAC,CAAC,CAACyiJ,EAAGtpJ,EAAAA,CAAG,GAAK,CAAC,EAAEspJ,CAAAA,CAAE,CAAC,EAAEnmG,QAAAA,CAASnjD,IAAI,CAAC,CAAA,CAAEI,IAAI,CAAC,GAAA,EACrI,CACA,OAAO,IAAI,CAACu+C,IAAI,CAEjBr/C,IAAAA,CAAK03C,MAAM,CAAE,CACZ,IAAK,MAAM1uC,GAAAA,IAAO,IAAI,CAAC6P,IAAI,GAAI,CAC9B,GAAI,CAAC6+B,MAAAA,CAAO1vC,GAAG,CAACgB,GAAAA,CAAAA,CAAM,CACrB,IAAI,CAACY,MAAM,CAACZ,GAAAA,EACb,CACD,CACA,IAAK,KAAM,CAACA,GAAAA,CAAKF,MAAM,GAAI4uC,MAAAA,CAAQ,CAClC,IAAI,CAAC9vC,GAAG,CAACoB,GAAAA,CAAKF,OACf,CACA,OAAO,IACR,CA3DA,WAAA,CAAYmhJ,WAAW,CAAE,CACxB,KAAK,GAJNC,gBAAAA,CAAAA,IAAAA,CAAAA,cAAAA,CAAAA,MAAAA,CAAAA,CACAxsG,gBAAAA,CAAAA,IAAAA,CAAAA,YAAY,KAAA,CAAA,CACZ2B,gBAAAA,CAAAA,IAAAA,CAAAA,OAAO,EAAA,CAGN,CAAA,IAAI,CAAC6qG,YAAY,CAAGD,YACrB,CAyDD,CAAA,CAEA,IAAIE,aAAe,IAAIz6G,WAAAA,CACvB,IAAI06G,YAAAA,EAAAA,cAAAA,CAAe,MAAMC,cAIxB,OAAO1sJ,GAAAA,CAAIwxC,MAAM,CAAEoqC,cAAAA,CAAiBryC,mBAAmB,CAAE,CACxD,MAAMqS,KAAAA,CAAQ4wG,YAAAA,CAAaxsJ,GAAG,CAACwxC,OAAQ,IAAA,CACtC,OAAO,IAAIk7G,aACZ,CAAA,CAAA,CACA,OAAO9wE,cAAAA,GAAmBryC,mBAAAA,CAAsBqS,KAAAA,CAAM+wG,IAAI,CAAG/wG,KAAAA,CAAMy/B,IAAI,CAExE,OAAOuxE,mBAAmBxmJ,IAAI,CAAE0O,QAAQ,CAAE,CAC1C,CAEA,IAAI+3I,SAAU,CACb,OAAO,IAAI,CAACF,IAAI,CAAC3kJ,IAAI,GAAK,GAAK,IAAI,CAACqzE,IAAI,CAACrzE,IAAI,CAAG,CACjD,CACA,IAAIqD,GAAAA,EAAM,CACT,OAAO,CAAC,KAAK,EAAE,IAAI,CAACshJ,IAAI,CAACthJ,GAAG,CAAC,MAAM,EAAE,IAAI,CAACgwE,IAAI,CAAChwE,GAAG,CAAC,KAAK,EAAE,IAAI,CAACtJ,OAAO,CAAC,CAAC,CAEzEoqJ,OAAAA,EAAU,CACT,OAAO,IAAI,CAACQ,IAAI,CAACR,OAAO,EAAA,EAAM,IAAI,CAAC9wE,IAAI,CAAC8wE,OAAO,EAChD,CACAC,UAAAA,EAAa,CACZ,IAAI,CAACO,IAAI,CAACP,UAAU,EAAA,CACpB,IAAI,CAAC/wE,IAAI,CAAC+wE,UAAU,GACrB,CACA/pJ,IAAAA,CAAK03C,MAAM,CAAE,CACZ,IAAI,CAACh4C,OAAO,CAAGg4C,MAAAA,CAAOh4C,OAAO,CAC7B,IAAI,CAAC4qJ,IAAI,CAACtqJ,IAAI,CAAC03C,MAAAA,CAAO4yG,IAAI,CAAA,CAC1B,IAAI,CAACtxE,IAAI,CAACh5E,IAAI,CAAC03C,MAAAA,CAAOshC,IAAI,CAAA,CAC1B,OAAO,IACR,eA7BAsxE,gBAAAA,CAAAA,IAAAA,CAAAA,MAAAA,CAAO,IAAIZ,cAAAA,CAAeW,aAAAA,CAAcH,YAAY,CAAA,CAAA,CACpDlxE,gBAAAA,CAAAA,IAAAA,CAAAA,OAAO,IAAI0wE,cAAAA,CAAeW,cAAcH,YAAY,CAAA,CAAA,CASpDxqJ,sBAAAA,SAAAA,CAAU,EAAA,EAAA,CAoBX,EA/BC,gBAAA,CAAA,cAAA,CAAOwqJ,cAAAA,CAA+B,IAAI7gJ,GAAAA,CAAAA,CAAAA,cAAAA,CAAAA,CAiC3C,IAAIohJ,QAAAA,CAAW,KAAA,CACd,OAAOC,KAAAA,CAAM,GAAGC,IAAI,CAAE,CACrB,MAAM3pJ,MAAAA,CAAS,IAAIqI,IAAIshJ,IAAI,CAAC,EAAE,EAAI,EAAE,EACpC,IAAK,IAAI1pJ,EAAAA,CAAK,CAAA,CAAGA,GAAK0pJ,IAAAA,CAAKzpJ,MAAM,CAAED,EAAAA,EAAAA,CAAM,CACxC,MAAMsG,GAAAA,CAAMojJ,IAAI,CAAC1pJ,EAAAA,CAAG,CACpB,GAAIsG,GAAAA,CAAK,CACR,IAAK,KAAM,CAACyB,GAAAA,CAAKF,KAAAA,CAAM,GAAIvB,GAAAA,CAAK,CAC/BvG,MAAAA,CAAO4G,GAAG,CAACoB,GAAAA,CAAKF,KAAAA,EACjB,CACD,CACD,CACA,OAAO9H,MACR,CACD,EAEA,IAAI4pJ,0BAAAA,CAA6B,cAAcpC,eAAAA,CAM9CN,WAAAA,CAAYz1I,QAAQ,CAAE,CACrB,OAAO,IAAI,CAACzJ,GACb,CACA6hJ,sBAAAA,CAAuB17G,MAAM,CAAE18B,QAAQ,CAAE,CACxC,OAAO,IAAI,CAACk5D,gBACb,CAVA,WAAA,CAAY3iE,GAAG,CAAE2iE,gBAAgB,CAAE,CAClC,KAAK,EACL,CAAA,IAAI,CAAC3iE,GAAG,CAAGA,GACX,CAAA,IAAI,CAAC2iE,gBAAgB,CAAGA,iBACzB,CAOD,CAAA,CACA,IAAIm/E,WAAAA,CAAc,MAAMC,aACvB,OAAO/mD,YAAAA,CAAa70D,MAAM,CAAE18B,QAAQ,CAAE,CACrC,MAAMu4I,cAAAA,CAAiB3C,iBAAAA,CAAkBl5G,QACzC,IAAIsb,MAAAA,CAASugG,eAAeC,eAAe,CAACx4I,SAASy4I,UAAU,CAAA,CAC/D,GAAI,CAACzgG,MAAAA,CAAQ,CACZ,MAAMuuB,IAAAA,CAAO7pC,MAAAA,CAAOuG,QAAQ,GAAK,CAAC,CAACjjC,QAAAA,CAAS04I,UAAU,EAAI,CAAC,CAAC14I,SAAS24I,WAAU,IAAO,CAAC,CAAC34I,QAAAA,CAAS44I,YAAY,EAAI,CAAC,CAAC54I,QAAAA,CAAS64I,aAAa,CAAD,CACxI,MAAMC,UAAYnB,YAAAA,CAAazsJ,GAAG,CAACwxC,MAAAA,CAAQ6pC,IAAAA,CAAO7xC,oBAAsBD,mBAAAA,CAAAA,CACxE,MAAMiyC,WAAa1mE,QAAAA,CAAS24I,WAAW,CAAGG,SAAAA,CAAU5tJ,GAAG,CAAC8U,QAAAA,CAAS24I,WAAW,CAAA,CAAIpyE,IAAAA,CAAOvmE,SAAS04I,UAAU,CAAG14I,SAAS+4I,UAAU,CAChI,MAAMpyE,YAAAA,CAAe3mE,QAAAA,CAAS64I,aAAa,CAAGC,SAAAA,CAAU5tJ,GAAG,CAAC8U,QAAAA,CAAS64I,aAAa,CAAA,CAAItyE,IAAAA,CAAOvmE,SAAS44I,YAAY,CAAG54I,QAAAA,CAASg5I,YAAY,CAC1I,MAAM/kE,gBAAAA,CAAmB+jE,SAASC,KAAK,CAACa,UAAW94I,QAAAA,CAASi0E,gBAAgB,CAAA,CAC5E,MAAMF,eAAiBikE,QAAAA,CAASC,KAAK,CAACa,SAAAA,CAAW94I,QAAAA,CAAS+zE,cAAc,CAAA,CACxE/7B,MAAAA,CAAS,IAAIm9B,MAAAA,CAAOz4C,OAAQy1C,qBAAAA,CAAsBE,gBAAgB,CAAC31C,MAAAA,CAAQ,CAC1EprC,KAAM0O,QAAAA,CAASy4I,UAAU,CACzB3xE,cAAAA,CAAgBP,IAAAA,CAAO7xC,oBAAsBD,mBAAAA,CAC7Cg1B,UAAAA,CAAYzpD,SAASypD,UAAU,CAC/Bid,WACAC,YAAAA,CACAyN,oBAAAA,CAAsBp0E,QAAAA,CAASo0E,oBAAoB,CACnDL,cAAAA,CACAR,aAAAA,CAAevzE,SAASuzE,aAAa,CACrCU,iBACAR,eAAAA,CAAiBzzE,QAAAA,CAASyzE,eAAe,CACzCjB,mBAAAA,CAAqBxyE,SAASwyE,mBAAmB,CACjDzQ,sBAAuB/hE,QAAAA,CAAS+hE,qBAAoB,CACrD,CAAA,CAAA,CACAw2E,cAAAA,CAAeU,eAAe,CAACj5I,SAASy4I,UAAU,CAAEzgG,QACrD,CACA,OAAOA,MACR,CACA,OAAOkhG,eAAeC,QAAQ,CAAEr4I,MAAM,CAAE,CACvC,MAAM6rE,OAAAA,CAAU,IAAI/1E,IAAIuiJ,QAAAA,CAASxsE,OAAO,CAAA,CACxC7rE,MAAAA,CAAOs4I,kBAAkB,CAACzsE,OAAO,CAACzxE,OAAO,CAAC,CAAC7E,KAAAA,CAAOE,GAAAA,GAAQo2E,QAAQx3E,GAAG,CAACoB,IAAKF,KAAAA,CAAAA,CAAAA,CAC3E,MAAMgjJ,eAAiB1C,UAAAA,CAAWzrJ,GAAG,CAAC4V,MAAAA,CAAO47B,MAAM,CAAA,CAAEq6G,UAAU,CAACj2I,MAAAA,CAAOw4I,IAAI,EAC3ED,cAAAA,CAAe1sE,OAAO,CAACzxE,OAAO,CAAC,CAAC7E,KAAAA,CAAOE,GAAAA,GAAQo2E,QAAQx3E,GAAG,CAACoB,IAAKF,KAAAA,CAAAA,CAAAA,CAChE,OAAOs2E,OACR,CACA,OAAO4sE,aAAAA,CAAcvhG,MAAM,CAAE4hB,iBAAiB,CAAE,CAC/C,MAAMV,gBAAAA,CAAmBlhB,OAAOutB,UAAU,CAC1C,MAAMj0E,IAAAA,CAAO4nE,gBAAAA,CAAiB5nE,IAAI,EAAI,QAAA,CACtC,MAAMiF,GAAAA,CAAM,CAAC,EAAEjF,IAAAA,CAAK,IAAI,EAAE0mD,MAAAA,CAAOrd,EAAE,CAAC,CAAC,CACrC,MAAM6+G,iBAAAA,CAAoB,IAAIrB,0BAAAA,CAA2B5hJ,GAAAA,CAAK2iE,kBAC9D,MAAMugF,iBAAAA,CAAoB,SAC1B,MAAM5D,OAAAA,CAAUD,kBAAkB59F,MAAAA,CAAOtb,MAAM,EAC/Cm5G,OAAAA,CAAQ6D,QAAQ,CAACD,iBAAAA,CAAmBD,mBACpC,MAAMG,OAAAA,CAAU9D,QAAQ+D,UAAU,CAACH,kBAAmB,EAAC,CAAG7/E,iBAAAA,CAAAA,CAC1Di8E,OAAAA,CAAQgE,UAAU,CAACJ,iBAAAA,CAAAA,CACnB,OAAOE,OACR,CACA,OAAOG,sBAAAA,CAAuBV,kBAAkB,CAAE,CACjD,KAAM,CAAEW,mBAAmB,CAAEC,mBAAmB,CAAEC,uBAAuB,CAAE,CAAGb,mBAC9E,GAAI,CAACW,oBAAqB,CACzB,OAAO,EACR,CACA,GAAIC,oBAAqB,CACxB,OAAO,eACR,CACA,OAAOC,uBAAAA,CAA0B,mBAAA,CAAsB,SACxD,CACA,OAAOC,2BAA2Bd,kBAAkB,CAAEzsE,OAAO,CAAE,CAC9D,GAAIysE,kBAAAA,CAAmBW,mBAAmB,CAAE,CAC3CptE,OAAAA,CAAQx3E,GAAG,CAAC,uBAAA,CAAyB,EAAA,CAAA,CACrC,GAAIikJ,mBAAmBY,mBAAmB,CAAE,CAC3CrtE,OAAAA,CAAQx3E,GAAG,CAAC,uBAAA,CAAyB,EAAA,EACtC,CACA,GAAIikJ,kBAAAA,CAAmBa,uBAAuB,CAAE,CAC/CttE,QAAQx3E,GAAG,CAAC,4BAA6B,EAAA,EAC1C,CACD,CACA,OAAOmjJ,aAAawB,sBAAsB,CAACV,mBAC5C,CACD,CAAA,CACA,SAAS7nD,YAAAA,CAAa70D,MAAM,CAAEy9G,MAAM,CAAEC,MAAM,CAAEhmE,oBAAAA,CAAuB,KAAK,CAAEimE,uBAAAA,CAA0B,EAAE,CAAA,CACxG,CACA,SAASC,qBAAqB59G,MAAM,CAAE83C,MAAM,CAAE+lE,MAAM,CAAE9B,UAAU,CAAEhvF,UAAU,CAAE2qB,oBAAAA,CAAuB,KAAK,CAAEimE,uBAAAA,CAA0B,EAAE,CAAA,CACvI,GAAI,OAAOjmE,oBAAAA,GAAyB,SAAA,CAAW,CAC9CimE,wBAAwBjmE,oBAAoB,CAAGA,qBAChD,CAAA,KAAO,GAAI,OAAOA,oBAAAA,GAAyB,QAAA,CAAU,CACpDimE,uBAAAA,CAA0B,CACzB,GAAGA,uBAAuB,CAC1B,GAAGjmE,oBACJ,EACD,CACA,MAAMmkE,cAAAA,CAAiB3C,iBAAAA,CAAkBl5G,QACzC,IAAIsb,MAAAA,CAASugG,eAAeC,eAAe,CAACC,YAC5C,GAAI,CAACzgG,OAAQ,CACZA,MAAAA,CAAS,IAAIm9B,MAAAA,CAAOz4C,MAAAA,CAAQy1C,sBAAsBE,gBAAgB,CAAC31C,OAAQ,CAC1E,GAAG29G,uBAAuB,CAC1B/oJ,KAAMmnJ,UAAAA,CACN/xE,UAAAA,CAAY8N,OACZ7N,YAAAA,CAAc4zE,MAAAA,CACd9wF,UACD,CAAA,CAAA,CAAA,CACA8uF,cAAAA,CAAeU,eAAe,CAACR,WAAYzgG,MAAAA,EAC5C,CACA,OAAOA,MACR,CAEA,IAAIwiG,eAAAA,CAAkB,CACrB50I,IAAAA,CAAMuqB,mBAAAA,CACNinD,KAAM,CAAA,CACN/4C,KAAAA,CAAO,EACPi5C,OAAAA,CAAS,IACV,EACA,IAAImjE,aAAAA,CAAgB,IAAI5pI,IAAAA,CACxB,IAAI6pI,aAAe,IAAI7pI,IAAAA,CACvB,IAAI8pI,iBAAAA,CAAoB,IAAI1zG,iBAC5B,IAAI2zG,UAAAA,CAAa,KAAA,CAiBhB/+G,OAAAA,EAAU,CACT,IAAI,CAAC0L,aAAa,EAAE1L,OAAAA,EACpB,CAAA,IAAI,CAAC0L,aAAa,CAAG,IACrB,CAAA,IAAI,CAACL,SAAS,EAAErL,OAAAA,EAChB,CAAA,IAAI,CAACqL,SAAS,CAAG,KAClB,CACA4oB,MAAAA,CAAO8wB,QAAQ,CAAEgtB,OAAO,CAAE7wD,YAAY,CAAE,CACvC,MAAMrgB,MAAAA,CAAS,IAAI,CAACsb,MAAM,CAACtb,MAAM,CACjC,GAAIkkD,QAAAA,CAAU,CACb65D,aAAAA,CAActlJ,GAAG,CAACunC,MAAAA,CAAOwc,EAAE,CAAExc,MAAAA,CAAOyc,EAAE,CAAEzc,MAAAA,CAAO0c,EAAE,CAAE1c,MAAAA,CAAO2c,EAAE,CAAA,CAC5DqhG,YAAAA,CAAavlJ,GAAG,CAACunC,MAAAA,CAAOpnB,EAAE,CAAEonB,MAAAA,CAAOnnB,EAAE,CAAEmnB,OAAO4c,EAAE,CAAE5c,OAAO6c,EAAE,CAAA,CAC3Dq0D,QAAUA,OAAAA,EAAWhtB,QAAAA,CACrBlkD,OAAOtoB,WAAW,CAACwsE,SAASr2E,CAAC,CAAEq2E,SAASp2E,CAAC,CAAEo2E,SAASn2E,CAAC,CAAEm2E,QAAAA,CAAS1yE,CAAC,EACjEwuB,MAAAA,CAAOovD,UAAU,CAAC8hB,OAAAA,CAAQrjG,CAAC,CAAEqjG,OAAAA,CAAQpjG,CAAC,CAAEojG,OAAAA,CAAQnjG,CAAC,CAAEmjG,OAAAA,CAAQ1/F,CAAC,EAC7D,CACAwuB,MAAAA,CAAOyf,eAAe,CAACzf,MAAAA,CAAO+Z,gBAAgB,CAAA,CAC9C,MAAMuB,MAAAA,CAAS,IAAI,CAACA,MAAM,CAC1Btb,OAAOk7C,SAAS,CAAC5/B,QACjB,GAAItb,MAAAA,CAAOwkB,sBAAsB,CAAE,CAClCxkB,OAAO+6C,YAAY,CAAC59C,eAAgB6C,MAAAA,CAAOg7C,cAAc,CAAA,CACzD,MAAMxwC,UAAY,IAAI,CAACA,SAAS,CAChCA,SAAAA,CAAUmB,MAAM,EAAA,CAChB3L,MAAAA,CAAO+6C,YAAY,CAAC39C,eAAgBoN,SAAAA,CAAAA,CACpC,MAAMK,cAAgB,IAAI,CAACA,aAAa,CACxC,GAAIA,aAAAA,CAAe,CAClBA,cAAcc,MAAM,CAACsyG,mBACrBj+G,MAAAA,CAAO+6C,YAAY,CAAC19C,iBAAAA,CAAmB4gH,iBAAAA,CAAkBzzG,SAAS,CAAEyzG,iBAAAA,CAAkBxzG,OAAO,EAC9F,CAAA,KAAO,CACNzK,MAAAA,CAAO+6C,YAAY,CAAC19C,iBAAAA,CAAmB2C,MAAAA,CAAOg7C,cAAc,EAC7D,CACD,CACAh7C,MAAAA,CAAOmgB,IAAI,CAAC29F,eAAAA,CAAiB99G,OAAOga,eAAe,CAAEqG,cACrD,GAAI6jC,QAAAA,CAAU,CACblkD,MAAAA,CAAOtoB,WAAW,CAACqmI,aAAAA,CAAclwI,CAAC,CAAEkwI,aAAAA,CAAcjwI,CAAC,CAAEiwI,aAAAA,CAAchwI,CAAC,CAAEgwI,aAAAA,CAAcvsI,CAAC,CAAA,CACrFwuB,MAAAA,CAAOovD,UAAU,CAAC4uD,YAAAA,CAAanwI,CAAC,CAAEmwI,YAAAA,CAAalwI,CAAC,CAAEkwI,YAAAA,CAAajwI,CAAC,CAAEiwI,YAAAA,CAAaxsI,CAAC,EACjF,CACD,CAlDA,WAAA,CAAY8pC,MAAM,CAAE,CAFpBzQ,sBAAAA,eAAAA,CAAAA,QACAL,gBAAAA,CAAAA,IAAAA,CAAAA,WAAAA,CAAAA,MAAAA,CAAAA,CAEC,MAAMxK,OAASsb,MAAAA,CAAOtb,MAAM,CAC5B,IAAI,CAACsb,MAAM,CAAGA,MAAAA,CACd,GAAItb,OAAOwkB,sBAAsB,CAAE,CAClC,MAAM0Y,iBAAAA,CAAoB,IAAI27E,sBAC9B,CAAA,IAAI,CAACv9F,MAAM,CAAGqgG,WAAAA,CAAYkB,aAAa,CAACvhG,MAAAA,CAAQ4hB,iBAAAA,CAAAA,CAChD,MAAMuJ,QAAAA,CAAW,IAAI,CAACnrB,MAAM,CAAC4iB,uBAAuB,CACpD,GAAIuI,QAAAA,CAAU,CACb,IAAI,CAAC57B,aAAa,CAAG,IAAImvC,aAAAA,CAAch6C,OAAQymC,QAAAA,CAAU,KAAA,EAC1D,CACA,MAAM1b,eAAAA,CAAkB,IAAI,CAACzP,MAAM,CAAC6iB,mBAAmB,CACvD,IAAI,CAAC3zB,SAAS,CAAG,IAAIE,SAAAA,CAAU1K,MAAAA,CAAQ+qB,iBACxC,CACD,CAsCD,EAEA,IAAIozF,cAAAA,CAAiB,cAAc3pF,UAAAA,CAOlCtB,OAAAA,EAAU,CACT,KAAM,CAAElzB,MAAM,CAAE,CAAG,IAAI,CACvBA,OAAOuf,aAAa,CAACvf,OAAOmc,UAAU,CAAA,CACtC,IAAI,CAACiiG,IAAI,CAAChrF,MAAM,CAAC,IAAI,CAACrqB,IAAI,CAAE,IAAI,CAACs1G,WAAW,EAC7C,CAVA,WAAA,CAAYr+G,MAAM,CAAEo+G,IAAI,CAAEr1G,IAAI,CAAEs1G,WAAW,CAAE,CAC5C,KAAK,CAACr+G,MAAAA,CACN,CAAA,IAAI,CAACo+G,IAAI,CAAGA,IACZ,CAAA,IAAI,CAACr1G,IAAI,CAAGA,IACZ,CAAA,IAAI,CAACs1G,WAAW,CAAGA,YACpB,CAMD,CAAA,CAEA,IAAIC,SAAAA,CAAY,IAAInqI,KACpB,SAASoqI,kBAAAA,CAAmBv+G,MAAM,CAAEtvC,OAAO,CAAE4qD,MAAM,CAAEvS,IAAI,CAAEs1G,WAAW,CAAA,CAErE,MAAMD,KAAO,IAAIF,UAAAA,CAAW5iG,QAC5B,GAAI,CAACvS,KAAM,CACVA,IAAAA,CAAOu1G,SACPv1G,CAAAA,KAAKl7B,CAAC,CAAG,CACTk7B,CAAAA,IAAAA,CAAKj7B,CAAC,CAAG,CACTi7B,CAAAA,IAAAA,CAAKh7B,CAAC,CAAGrd,OAAAA,CAAUA,OAAAA,CAAQinB,KAAK,CAAGqoB,MAAAA,CAAOroB,KAAK,CAC/CoxB,IAAAA,CAAKv3B,CAAC,CAAG9gB,OAAAA,CAAUA,OAAAA,CAAQknB,MAAM,CAAGooB,MAAAA,CAAOpoB,OAAM,CAElD,MAAMgqC,UAAAA,CAAa,IAAIu8F,eAAen+G,MAAAA,CAAQo+G,IAAAA,CAAMr1G,KAAMs1G,WAAAA,CAAAA,CAC1Dz8F,UAAAA,CAAW1B,IAAI,CAACxvD,OAAAA,CAChBkxD,CAAAA,UAAAA,CAAW6S,QAAQ,CAACj6D,KAAK,CAAG,KAC5BonD,CAAAA,WAAWqT,eAAe,CAACd,UAAU,CAAG,KAAA,CACxC,GAAIn0B,MAAAA,CAAOuG,QAAQ,EAAI71C,OAAAA,GAAY,IAAA,EAAQsvC,OAAO4G,OAAO,CAAG,CAAA,CAAG,CAC9Dgb,WAAW6S,QAAQ,CAACX,KAAK,CAAG,KAC7B,CACAlS,UAAAA,CAAWwR,MAAM,GACjBgrF,IAAAA,CAAKj/G,OAAO,GACb,CAEA,IAAIq/G,MAAQ,KAAA,CAWXr/G,OAAAA,CAAQs/G,KAAK,CAAE94D,MAAM,CAAE,CACtB,GAAI,IAAI,CAAC+4D,YAAY,CAAE,CACtB,IAAI,CAACC,gBAAgB,CAACF,KAAAA,CAAO94D,QAC7B,IAAI,CAAC+4D,YAAY,CAACv/G,OAAO,EACzB,CAAA,IAAI,CAACu/G,YAAY,CAAG,KACrB,CACD,CACAE,WAAAA,CAAYH,KAAK,CAAE94D,MAAM,CAAE,CAC1B,IAAK,IAAI7zF,GAAK,CAAA,CAAGA,EAAAA,CAAK6zF,OAAO5zF,MAAM,CAAED,KAAM,CAC1C,MAAM4yF,KAAAA,CAAQ+5D,KAAAA,CAAM94D,MAAM,CAACk5D,YAAY,CAACl5D,MAAM,CAAC7zF,GAAG,CAAA,CAClD,GAAI4yF,MAAO,CACVA,KAAAA,CAAMo6D,gBAAgB,CAAC,CAAC,IAAI,CAACJ,YAAY,CAAC,EAC3C,CACD,CACD,CACAC,iBAAiBF,KAAK,CAAE94D,MAAM,CAAE,CAC/B,IAAK,IAAI7zF,EAAAA,CAAK,EAAGA,EAAAA,CAAK6zF,MAAAA,CAAO5zF,MAAM,CAAED,EAAAA,EAAAA,CAAM,CAC1C,MAAM4yF,KAAAA,CAAQ+5D,MAAM94D,MAAM,CAACk5D,YAAY,CAACl5D,MAAM,CAAC7zF,EAAAA,CAAG,EAClD,GAAI4yF,KAAAA,CAAO,CACVA,KAAAA,CAAMq6D,mBAAmB,CAAC,CAAC,IAAI,CAACL,YAAY,CAAC,EAC9C,CACD,CACD,CAEAM,iBAAAA,EAAoB,CACnB,IAAI,CAACl4H,KAAK,CAACj2B,IAAI,CAAC,IAAI,CAACouJ,iBAAiB,CAAC,CAAA,CAAE,CAACC,IAAI,CAAA,CAC9C,IAAK,IAAIptJ,EAAAA,CAAK,EAAGA,EAAAA,CAAK,IAAI,CAACmtJ,iBAAiB,CAACltJ,MAAM,CAAED,KAAM,CAC1D,IAAI,CAACg1B,KAAK,CAAC3kB,GAAG,CAAC,IAAI,CAAC88I,iBAAiB,CAACntJ,GAAG,CAACotJ,IAAI,EAC/C,CACA,IAAI,CAACR,YAAY,CAACQ,IAAI,CAAG,IAAI,CAACp4H,KAAK,CACnC,IAAI,CAAC43H,YAAY,CAACS,QAAQ,CAAG,EAC9B,CACA,IAAIC,KAAAA,EAAQ,CACX,OAAO,MACR,CAvCA,WAAA,CAAYC,aAAa,CAAEC,OAAO,CAAEC,YAAY,CAAE,CALlDz4H,gBAAAA,CAAAA,IAAAA,CAAAA,QAAQ,IAAI7J,WAAAA,CAAAA,CACZgiI,gBAAAA,CAAAA,IAAAA,CAAAA,mBAAAA,CAAAA,MAAAA,CAAAA,CACAP,gBAAAA,CAAAA,IAAAA,CAAAA,eAAe,IAAA,CAAA,CACfY,gBAAAA,CAAAA,IAAAA,CAAAA,UAAAA,MAAAA,CAAAA,CACAC,gBAAAA,CAAAA,IAAAA,CAAAA,cAAAA,CAAAA,MAAAA,CAEC,CAAA,IAAI,CAACN,iBAAiB,CAAGI,aACzB,CAAA,IAAI,CAACC,OAAO,CAAGA,OACf,CAAA,IAAI,CAACC,YAAY,CAAGA,aACrB,CAoCD,CAAA,CAEA,IAAIC,oBAAa,KAAA,CAchB,WAAA,CAAYxvB,IAAI,CAAEp7H,IAAI,CAAE0qJ,OAAO,CAAEG,WAAW,CAAE95D,MAAAA,CAAS,CAAC0mD,aAAAA,CAAc,CAAE,CAbxEqT,gBAAAA,CAAAA,IAAAA,CAAAA,KAAAA,CAAM,OACNC,gBAAAA,CAAAA,IAAAA,CAAAA,SAAAA,CAAU,KAAA,CAAA,CACVC,gBAAAA,CAAAA,IAAAA,CAAAA,OAAO,CACNR,KAAAA,CAAO,EAAE,CACT/nG,OAAAA,CAAS,EAAE,CACXwoG,MAAAA,CAAQ,EAAE,CACVzsF,MAAAA,CAAQ,EAAC,CACV,CAAA,CACAn1B,sBAAAA,IAAAA,CAAAA,QACArpC,gBAAAA,CAAAA,IAAAA,CAAAA,MAAAA,CAAAA,MAAAA,CAAAA,CACA0qJ,sBAAAA,SAAAA,CAAAA,QACAG,gBAAAA,CAAAA,IAAAA,CAAAA,aAAAA,CAAAA,MAAAA,CAAAA,CACA95D,gBAAAA,CAAAA,IAAAA,CAAAA,SAAAA,MAAAA,CAEC,CAAA,IAAI,CAAC1nD,EAAE,CAAG+xF,IACV,CAAA,IAAI,CAACp7H,IAAI,CAAGA,IACZ,CAAA,IAAI,CAAC0qJ,OAAO,CAAGA,OACf,CAAA,IAAI,CAACG,WAAW,CAAGA,WACnB,CAAA,IAAI,CAAC95D,MAAM,CAAGA,OACf,CAKD,CAAA,CAJC,gBAAA,CAAA,OAAA,CAAOm6D,OAAAA,CAAQ,SACf,gBAAA,CAAA,OAAA,CAAOC,SAAAA,CAAU,WACjB,gBAAA,CAAA,OAAA,CAAOC,QAAAA,CAAS,UAChB,gBAAA,CAAA,OAAA,CAAOC,QAAAA,CAAS,mBAGjB,IAAIC,UAAAA,CAAa,IAAI5rI,IAAAA,CACrB,IAAI6rI,aAAe,KAAA,CAWlB,IAAIC,SAASA,QAAQ,CAAE,CACtB,IAAI,CAACC,SAAS,CAAGD,SAClB,CACA,IAAIA,UAAW,CACd,OAAO,IAAI,CAACC,SAAS,CAEtBngG,IAAAA,CAAKlgB,MAAM,CAAEsgH,QAAQ,CAAE,CACtB,MAAMC,SAAAA,CAAYD,QAAAA,CAAW,EAC7B,IAAI3oI,KAAAA,CAAQtmB,KAAKmV,IAAI,CAACnV,KAAKud,IAAI,CAAC2xI,SAAAA,CAAAA,CAAAA,CAChC5oI,KAAAA,CAAQ/S,KAAK0B,OAAO,CAACqR,MAAO,CAAA,CAAA,CAC5B,MAAMC,OAASvmB,IAAAA,CAAKmV,IAAI,CAAC+5I,SAAAA,CAAY5oI,MACrC,CAAA,IAAI,CAAC6oI,WAAW,CAAG,IAAIl+G,OAAAA,CAAQtC,MAAAA,CAAQ,CACtCroB,KAAAA,CACAC,MAAAA,CACAvgB,OAAQo2B,mBAAAA,CACR+T,OAAAA,CAAS,MACTkB,SAAAA,CAAWjX,cAAAA,CACXkX,UAAWlX,cAAAA,CACX72B,IAAAA,CAAM,MACP,CAAA,CACA,CAAA,IAAI,CAAC6rJ,aAAa,CAAG,IAAI,CAACD,WAAW,CAACv4G,IAAI,CAAC,CAAEE,KAAM9R,gBAAiB,CAAA,CAAA,CACpE,IAAI,CAACmqH,WAAW,CAACr3G,MAAM,GACxB,CACAhK,OAAAA,EAAU,CACT,GAAI,IAAI,CAACqhH,WAAW,CAAE,CACrB,IAAI,CAACA,WAAW,CAACrhH,OAAO,EACxB,CAAA,IAAI,CAACqhH,WAAW,CAAG,KACpB,CACD,CACApgH,OAAAA,CAAQggH,QAAQ,CAAEM,MAAM,CAAE,CACzB,IAAI,CAACN,QAAQ,CAAGA,QAAAA,CAChB,MAAMO,IAAAA,CAAO,IAAI,CAACA,IAAI,CACtB,MAAMC,KAAAA,CAAQ,EAAE,CAChB,IAAK,IAAIp9G,CAAAA,CAAI,CAAA,CAAGA,EAAIm9G,IAAAA,CAAKE,SAAS,CAAC9uJ,MAAM,CAAEyxC,IAAK,CAC/C,MAAMs9G,SAAWH,IAAAA,CAAKE,SAAS,CAACr9G,CAAAA,CAAE,CAClC,IAAIu9G,IAAAA,CAAOX,QAAAA,CAASY,UAAU,CAACF,QAAAA,CAAAA,CAC/B,GAAI,CAACC,KAAM,CACVA,IAAAA,CAAOL,OACR,CACAE,KAAAA,CAAMhuJ,IAAI,CAACmuJ,IAAAA,EACZ,CACA,IAAI,CAACH,KAAK,CAAGA,MACd,CACAK,QAAAA,CAASN,IAAI,CAAE,CACd,IAAI,CAACA,IAAI,CAAGA,IACZ,CAAA,IAAI,CAACC,KAAK,CAAG,EAAE,CACf,MAAMN,QAAAA,CAAWK,IAAAA,CAAKO,eAAe,CAACnvJ,MAAM,CAC5C,IAAI,CAACmuD,IAAI,CAACygG,IAAAA,CAAK3gH,MAAM,CAAEsgH,SACvB,CAAA,IAAI,CAACa,QAAQ,CAAG,EAAE,CAClB,IAAK,IAAIrvJ,EAAAA,CAAK,EAAGA,EAAAA,CAAKwuJ,QAAAA,CAAUxuJ,KAAM,CACrC,IAAI,CAACqvJ,QAAQ,CAACrvJ,EAAAA,CAAG,CAAG,IAAIwiB,KACzB,CACD,CACA8sI,WAAAA,CAAYphH,MAAM,CAAE,CACnB,IAAI,CAACwgH,WAAW,CAAC38G,MAAM,GACxB,CACAw9G,gBAAgBC,QAAQ,CAAEC,eAAe,CAAE,CAC1C,GAAI,IAAI,CAACC,gBAAgB,GAAKD,gBAAiB,CAC9C,IAAI,CAACC,gBAAgB,CAAGD,gBACxBrB,UAAAA,CAAWrvJ,IAAI,CAACywJ,QAAAA,CAASG,iBAAiB,IAAI1pI,MAAM,EAAA,CACpD,IAAK,IAAIjmB,EAAAA,CAAK,IAAI,CAAC8uJ,KAAK,CAAC7uJ,MAAM,CAAG,CAAA,CAAGD,EAAAA,EAAM,EAAGA,EAAAA,EAAAA,CAAM,CACnD,IAAI,CAACqvJ,QAAQ,CAACrvJ,EAAAA,CAAG,CAACokB,UAAU,CAACgqI,UAAAA,CAAY,IAAI,CAACU,KAAK,CAAC9uJ,EAAAA,CAAG,CAAC2vJ,iBAAiB,EAAA,CAAA,CACzE,IAAI,CAACN,QAAQ,CAACrvJ,EAAAA,CAAG,CAACokB,UAAU,CAAC,IAAI,CAACirI,QAAQ,CAACrvJ,GAAG,CAAE,IAAI,CAAC6uJ,IAAI,CAACO,eAAe,CAACpvJ,GAAG,EAC9E,CACD,CACD,CACA4vJ,cAAAA,CAAeJ,QAAQ,CAAEC,eAAe,CAAE,CACzC,GAAI,IAAI,CAACI,iBAAiB,CAAE,CAC3B,IAAI,CAACN,eAAe,CAACC,QAAAA,CAAUC,eAAAA,EAChC,CACD,CACAK,mBAAAA,CAAoBN,QAAQ,CAAEC,eAAe,CAAE,CAC9C,IAAI,CAACF,eAAe,CAACC,SAAUC,eAAAA,CAAAA,CAC/B,MAAMM,GAAK,IAAI,CAACpB,aAAa,CAC7B,MAAM9+G,KAAAA,CAAQ,IAAI,CAACi/G,KAAK,CAAC7uJ,MAAM,CAC/B,IAAK,IAAID,EAAAA,CAAK,CAAA,CAAGA,GAAK6vC,KAAAA,CAAO7vC,EAAAA,EAAAA,CAAM,CAClC,MAAMgwJ,EAAAA,CAAK,IAAI,CAACX,QAAQ,CAACrvJ,EAAAA,CAAG,CAAC2e,IAAI,CACjC,MAAMiqE,IAAAA,CAAO5oF,EAAAA,CAAK,EAClB+vJ,CAAAA,EAAE,CAACnnE,IAAAA,CAAK,CAAGonE,EAAE,CAAC,EAAE,CAChBD,EAAE,CAACnnE,IAAAA,CAAO,EAAE,CAAGonE,EAAE,CAAC,CAAA,CAAE,CACpBD,EAAE,CAACnnE,IAAAA,CAAO,CAAA,CAAE,CAAGonE,EAAE,CAAC,EAAE,CACpBD,EAAE,CAACnnE,IAAAA,CAAO,EAAE,CAAGonE,EAAE,CAAC,EAAA,CAClBD,CAAAA,EAAE,CAACnnE,IAAAA,CAAO,CAAA,CAAE,CAAGonE,EAAE,CAAC,EAAE,CACpBD,EAAE,CAACnnE,IAAAA,CAAO,EAAE,CAAGonE,EAAE,CAAC,CAAA,CAClBD,CAAAA,EAAE,CAACnnE,IAAAA,CAAO,CAAA,CAAE,CAAGonE,EAAE,CAAC,EAAE,CACpBD,EAAE,CAACnnE,IAAAA,CAAO,EAAE,CAAGonE,EAAE,CAAC,EAAA,CAClBD,CAAAA,EAAE,CAACnnE,KAAO,CAAA,CAAE,CAAGonE,EAAE,CAAC,EAAE,CACpBD,EAAE,CAACnnE,IAAAA,CAAO,EAAE,CAAGonE,EAAE,CAAC,CAAA,CAClBD,CAAAA,EAAE,CAACnnE,KAAO,EAAA,CAAG,CAAGonE,EAAE,CAAC,EAAA,CAAG,CACtBD,EAAE,CAACnnE,IAAAA,CAAO,GAAG,CAAGonE,EAAE,CAAC,EAAA,EACpB,CACA,IAAI,CAACV,WAAW,CAAC,IAAI,CAACT,IAAI,CAAC3gH,MAAM,EAClC,CArGA,WAAA,CAAY2gH,IAAI,CAAE,CADlBC,gBAAAA,CAAAA,IAAAA,CAAAA,QAAAA,MAAAA,CAEC,CAAA,IAAI,CAAClpG,MAAM,CAAG,IACd,CAAA,IAAI,CAAC2oG,SAAS,CAAG,IACjB,CAAA,IAAI,CAACmB,gBAAgB,CAAG,EACxB,CAAA,IAAI,CAACG,iBAAiB,CAAG,IAAA,CACzB,GAAIhB,KAAM,CACT,IAAI,CAACM,QAAQ,CAACN,MACf,CACD,CA8FD,EAEA,IAAIoB,iBAAAA,CAAoB,cAAc5B,YAAAA,CASrCuB,eAAeJ,QAAQ,CAAEC,eAAe,CAAE,CAC1C,CACAK,mBAAAA,CAAoBN,QAAQ,CAAEC,eAAe,CAAE,CAC9C,MAAMM,GAAK,IAAI,CAACpB,aAAa,CAC7B,MAAM9+G,KAAAA,CAAQ,IAAI,CAACi/G,KAAK,CAAC7uJ,MAAM,CAC/B,IAAK,IAAID,EAAAA,CAAK,CAAA,CAAGA,GAAK6vC,KAAAA,CAAO7vC,EAAAA,EAAAA,CAAM,CAClC,MAAMgwJ,EAAAA,CAAK,IAAI,CAAClB,KAAK,CAAC9uJ,EAAAA,CAAG,CAAC2vJ,iBAAiB,EAAA,CAAGhxI,IAAI,CAClD,MAAMiqE,KAAO5oF,EAAAA,CAAK,EAClB+vJ,CAAAA,EAAE,CAACnnE,KAAK,CAAGonE,EAAE,CAAC,CAAA,CACdD,CAAAA,EAAE,CAACnnE,KAAO,CAAA,CAAE,CAAGonE,EAAE,CAAC,EAAE,CACpBD,EAAE,CAACnnE,IAAAA,CAAO,EAAE,CAAGonE,EAAE,CAAC,CAAA,CAClBD,CAAAA,EAAE,CAACnnE,KAAO,CAAA,CAAE,CAAGonE,EAAE,CAAC,EAAA,CAAG,CACrBD,EAAE,CAACnnE,IAAAA,CAAO,EAAE,CAAGonE,EAAE,CAAC,CAAA,CAClBD,CAAAA,EAAE,CAACnnE,IAAAA,CAAO,CAAA,CAAE,CAAGonE,EAAE,CAAC,EAAE,CACpBD,EAAE,CAACnnE,KAAO,CAAA,CAAE,CAAGonE,EAAE,CAAC,CAAA,CAAE,CACpBD,EAAE,CAACnnE,IAAAA,CAAO,CAAA,CAAE,CAAGonE,EAAE,CAAC,GAAG,CACrBD,EAAE,CAACnnE,IAAAA,CAAO,CAAA,CAAE,CAAGonE,EAAE,CAAC,CAAA,CAAE,CACpBD,EAAE,CAACnnE,IAAAA,CAAO,CAAA,CAAE,CAAGonE,EAAE,CAAC,EAAE,CACpBD,EAAE,CAACnnE,IAAAA,CAAO,GAAG,CAAGonE,EAAE,CAAC,EAAA,CAAG,CACtBD,EAAE,CAACnnE,IAAAA,CAAO,EAAA,CAAG,CAAGonE,EAAE,CAAC,IAAG,CAEvB,IAAI,CAACV,WAAW,CAAC,IAAI,CAACphH,MAAM,EAC7B,CA9BA,WAAA,CAAYA,MAAM,CAAEgiH,KAAK,CAAEV,QAAQ,CAAE,CACpC,KAAK,EAAA,CACL,MAAMhB,QAAAA,CAAW0B,KAAAA,CAAMjwJ,MAAM,CAC7B,IAAI,CAACmuD,IAAI,CAAClgB,OAAQsgH,QAAAA,CAClB,CAAA,IAAI,CAACtgH,MAAM,CAAGA,MACd,CAAA,IAAI,CAACshH,QAAQ,CAAGA,QAChB,CAAA,IAAI,CAACV,KAAK,CAAGoB,MACd,CAwBD,CAAA,CAEA,IAAIC,IAAM,CAAA,CACV,IAAIC,gBAAAA,CAAmB,CAACxxI,IAAKtJ,GAAAA,CAAK+6I,SAAAA,GAAAA,CACjC,GAAI95G,WAAAA,CAAYqJ,MAAM,CAACtqC,GAAAA,CAAAA,CAAM,CAC5BsJ,IAAIjY,GAAG,CAAC0pJ,YAAc/6I,GAAAA,CAAIrV,MAAM,CAAGqV,GAAAA,CAAMA,GAAAA,CAAIwrC,QAAQ,CAAC,CAAA,CAAGuvG,SAAAA,CAAAA,EAC1D,CAAA,KAAO,CACN,IAAK,IAAIrwJ,GAAK,CAAA,CAAGA,EAAAA,CAAKqwJ,UAAWrwJ,EAAAA,EAAAA,CAAM,CACtC4e,GAAG,CAAC5e,EAAAA,CAAG,CAAGsV,GAAG,CAACtV,IAAG,CAEnB,CACD,CAAA,CACA,IAAIswJ,YAAAA,EAAAA,OAAAA,CAAe,KAAA,CAIlBC,cAAe,CACd,IAAI,CAACC,QAAQ,CAAG,KAChB,CAAA,IAAI,CAACC,aAAa,CAAGz4H,aACrB,CAAA,IAAI,CAAC04H,YAAY,CAAG14H,aACpB,CAAA,IAAI,CAAC24H,WAAW,CAAG,CACnB,CAAA,IAAI,CAACC,UAAU,CAAG,CAClB,CAAA,IAAI,CAAC/rG,WAAW,CAAG,CACnB,CAAA,IAAI,CAACgsG,UAAU,CAAG,CAClB,CAAA,IAAI,CAACC,oBAAoB,CAAG,KAC5B,CAAA,IAAI,CAACC,kBAAkB,CAAG,KAC1B,CAAA,IAAI,CAACC,sBAAsB,CAAG,EAC9B,CAAA,IAAI,CAACnwG,OAAO,CAAG,KAChB,CAEAowG,mBAAmBphH,KAAK,CAAE6T,QAAQ,CAAE,CACnC,GAAI,CAAC,IAAI,CAACmB,WAAW,CAAE,CACtB,IAAI,CAACA,WAAW,CAAGhV,MACpB,CAED,CAtBA,WAAA,EAAc,CACb,IAAI,CAAC0gH,YAAY,GAClB,CA0BD,EAJC,gBAAA,CAAA,OAAA,CAAOW,6BAAAA,CAA8B,CAAA,CAAA,CACrC,gBAAA,CAAA,OAAA,CAAOC,4BAA4B,CAAA,CAAA,CACnC,gBAAA,CAAA,OAAA,CAAOC,wBAAwB,CAAA,CAAA,CAC/B,gBAAA,CAAA,OAAA,CAAOC,4BAA4B,CAAA,CAAA,CAAA,OAAA,CAAA,CAEpC,IAAIC,oBAAAA,CAAuB,KAAA,CAC1B,YAAY53I,KAAK,CAAE63I,cAAc,CAAErtG,QAAQ,CAAEstG,iBAAiB,CAAEntG,KAAK,CAAE,CACtE,IAAI,CAAC1lC,IAAI,CAAGjF,KACZ,CAAA,IAAI,CAAC63I,cAAc,CAAGA,cACtB,CAAA,IAAI,CAACrtG,QAAQ,CAAGA,QAChB,CAAA,IAAI,CAACstG,iBAAiB,CAAGA,iBACzB,CAAA,IAAI,CAACntG,KAAK,CAAGA,MACd,CACD,CAAA,CACA,IAAIotG,IAAAA,CAAO,MAAMC,cAAc1xF,gBAAAA,CAwB9B,OAAO2xF,aAAa7jH,cAAc,CAAE8jH,QAAQ,CAAEpgJ,QAAAA,CAAW,EAAE,CAAE,CAC5D,MAAMqgJ,IAAAA,CAAO,IAAIH,KAAAA,CAAM5jH,cAAAA,CAAgBt8B,UACvC,KAAM,CAAEw2C,SAAS,CAAE8pG,OAAO,CAAEC,QAAQ,CAAEC,MAAM,CAAEC,GAAG,CAAEC,IAAI,CAAEC,YAAY,CAAEC,YAAY,CAAEvxG,OAAO,CAAE,CAAG+wG,QAAAA,CACjG,GAAI5pG,SAAAA,CAAW,CACd6pG,IAAAA,CAAKQ,YAAY,CAACrqG,SAAAA,EACnB,CACA,GAAI8pG,OAAAA,CAAS,CACZD,KAAKS,UAAU,CAACR,SACjB,CACA,GAAIC,SAAU,CACbF,IAAAA,CAAKU,eAAe,CAACvwH,gBAAAA,CAAkB+vH,SAAU,CAAA,EAClD,CACA,GAAIC,MAAAA,CAAQ,CACXH,IAAAA,CAAKW,WAAW,CAACR,MAAAA,EAClB,CACA,GAAIC,GAAAA,CAAK,CACRJ,KAAKY,MAAM,CAAC,EAAGR,GAAAA,EAChB,CACA,GAAIC,IAAAA,CAAM,CACTL,KAAKY,MAAM,CAAC,CAAA,CAAGP,IAAAA,EAChB,CACA,GAAIC,YAAAA,CAAc,CACjBN,IAAAA,CAAKU,eAAe,CAACrwH,qBAAAA,CAAuBiwH,YAAAA,CAAc,EAAGA,YAAAA,CAAalyJ,MAAM,CAAG,CAAA,CAAGmmC,UAAAA,EACvF,CACA,GAAIgsH,YAAAA,CAAc,CACjBP,IAAAA,CAAKU,eAAe,CAACtwH,oBAAAA,CAAsBmwH,aAAc,CAAA,EAC1D,CACA,GAAIvxG,OAAAA,CAAS,CACZgxG,KAAKa,UAAU,CAAC7xG,OAAAA,EACjB,CACAgxG,KAAKh4G,MAAM,EAAA,CACX,OAAOg4G,IACR,CACA,IAAIc,KAAAA,CAAMA,KAAK,CAAE,CAChB,GAAIA,KAAAA,GAAU,IAAI,CAACC,MAAM,CAAE,CAC1B,GAAI,IAAI,CAACA,MAAM,CAAE,CAChB,IAAI,CAACA,MAAM,CAACzyF,WAAW,GACxB,CACA,IAAI,CAACyyF,MAAM,CAAGD,KAAAA,CACd,GAAIA,MAAO,CACVA,KAAAA,CAAM1yF,WAAW,GAClB,CACD,CACD,CACA,IAAI0yF,OAAQ,CACX,OAAO,IAAI,CAACC,MAAM,CAEnB,IAAIxF,IAAAA,CAAKj+H,KAAK,CAAE,CACf,IAAI,CAAC6F,KAAK,CAAG7F,KACb,CAAA,IAAI,CAACk+H,QAAQ,GACd,CACA,IAAID,IAAAA,EAAO,CACV,OAAO,IAAI,CAACp4H,KACb,CACAqY,OAAAA,EAAU,CACT,MAAMslH,KAAAA,CAAQ,IAAI,CAACA,KAAK,CACxB,GAAIA,KAAAA,CAAO,CACV,IAAI,CAACA,KAAK,CAAG,IAAA,CACb,GAAIA,KAAAA,CAAMvyF,QAAQ,CAAG,CAAA,CAAG,CACvBuyF,KAAAA,CAAMtlH,OAAO,GACd,CACD,CACA,GAAI,IAAI,CAACugB,YAAY,CAAE,CACtB,IAAI,CAACA,YAAY,CAACvgB,OAAO,EACzB,CAAA,IAAI,CAACugB,YAAY,CAAG,KACrB,CACA,IAAK,IAAIlc,CAAAA,CAAI,CAAA,CAAGA,EAAI,IAAI,CAAC0O,WAAW,CAACngD,MAAM,CAAEyxC,CAAAA,EAAAA,CAAK,CACjD,IAAI,CAACmhH,mBAAmB,CAACnhH,CAAAA,EAC1B,CACA,IAAI,CAAC0O,WAAW,CAACngD,MAAM,CAAG,CAC1B,CAAA,IAAI,CAAC6yJ,aAAa,CAAG,KACtB,CACAD,oBAAoBxtJ,KAAK,CAAE,CAC1B,GAAI,IAAI,CAAC+6C,WAAW,CAAC/6C,MAAM,CAAE,CAC5B,IAAI,CAAC+6C,WAAW,CAAC/6C,KAAAA,CAAM,CAACgoC,OAAO,EAC/B,CAAA,IAAI,CAAC+S,WAAW,CAAC/6C,MAAM,CAAG,KAC3B,CACD,CAGA0tJ,cAAAA,CAAeC,YAAY,CAAE,CAC5B,IAAI,CAACC,QAAQ,CAAG,EAAE,CAClB,IAAI,CAACC,QAAQ,CAAG,EAAE,CAClB,IAAI32J,GAAIof,EAAAA,CAAIkB,EAAAA,CACZ,IAAI2Q,KAAAA,CAAOC,KAAAA,CACX,MAAM0lI,OAAAA,CAAU,EAAE,CAClB,MAAMC,QAAU,EAAE,CAClB,MAAMF,QAAAA,CAAW,IAAI,CAACA,QAAQ,CAC9B,MAAM1E,QAAAA,CAAW,IAAI,CAACK,IAAI,CAACE,SAAS,CAAC9uJ,MAAM,CAC3C,IAAIozJ,SAAAA,CAAWC,SAAAA,CAAWC,SAAAA,CAC1B,IAAK,IAAIvzJ,EAAAA,CAAK,EAAGA,EAAAA,CAAKwuJ,QAAAA,CAAUxuJ,KAAM,CACrCmzJ,OAAO,CAACnzJ,EAAAA,CAAG,CAAG,IAAI6b,IAAAA,CAAKmO,MAAAA,CAAOiE,SAAS,CAAEjE,MAAAA,CAAOiE,SAAS,CAAEjE,MAAAA,CAAOiE,SAAS,CAC3EmlI,CAAAA,OAAO,CAACpzJ,GAAG,CAAG,IAAI6b,KAAK,CAACmO,MAAAA,CAAOiE,SAAS,CAAE,CAACjE,MAAAA,CAAOiE,SAAS,CAAE,CAACjE,MAAAA,CAAOiE,SAAS,EAC/E,CACA,MAAMulI,QAAAA,CAAW,IAAIhgC,cAAAA,CAAe,IAAI,CAAC5lE,YAAY,CAAA,CACrD,MAAM6lG,UAAAA,CAAaD,QAAAA,CAASjuG,OAAO,CAACzjB,iBAAAA,CAAkB,CACtD,MAAM4xH,cAAAA,CAAiBF,SAASjuG,OAAO,CAACtjB,qBAAqB,CAC7D,MAAM0xH,cAAAA,CAAiBH,QAAAA,CAASjuG,OAAO,CAACrjB,qBAAAA,CAAsB,CAC9D,MAAMhS,QAAAA,CAAW,IAAI,CAAC09B,YAAY,CAACnL,WAAW,CAC9C,IAAK,IAAI/Q,CAAAA,CAAI,EAAGA,CAAAA,CAAIxhB,QAAAA,CAAUwhB,IAAK,CAClC,IAAK,IAAIq3G,CAAAA,CAAI,EAAGA,CAAAA,CAAI,CAAA,CAAGA,IAAK,CAC3B,MAAM6K,WAAaF,cAAAA,CAAel/G,KAAK,CAACk/G,cAAAA,CAAeruJ,KAAK,CAAG0jJ,CAAAA,CAAE,CACjE,GAAI6K,UAAAA,CAAa,CAAA,CAAG,CACnB,MAAMC,SAAAA,CAAYF,cAAAA,CAAen/G,KAAK,CAACm/G,cAAAA,CAAetuJ,KAAK,CAAG0jJ,CAAAA,CAC9DmK,CAAAA,QAAQ,CAACW,SAAAA,CAAU,CAAG,KACtBt3J,EAAAA,CAAKk3J,UAAAA,CAAWj/G,KAAK,CAACi/G,UAAAA,CAAWpuJ,KAAK,CAAC,CACvCsW,EAAAA,CAAK83I,UAAAA,CAAWj/G,KAAK,CAACi/G,UAAAA,CAAWpuJ,KAAK,CAAG,CAAA,CAAE,CAC3CwX,EAAAA,CAAK42I,UAAAA,CAAWj/G,KAAK,CAACi/G,UAAAA,CAAWpuJ,KAAK,CAAG,CAAA,CAAE,CAC3CmoB,KAAAA,CAAQ4lI,OAAO,CAACS,SAAAA,CAAU,CAC1BpmI,KAAAA,CAAQ0lI,OAAO,CAACU,SAAAA,CAAU,CAC1B,GAAIpmI,KAAAA,CAAM1R,CAAC,CAAGxf,EAAAA,CAAIkxB,KAAAA,CAAM1R,CAAC,CAAGxf,EAAAA,CAC5B,GAAIkxB,KAAAA,CAAMzR,CAAC,CAAGL,EAAAA,CAAI8R,KAAAA,CAAMzR,CAAC,CAAGL,EAAAA,CAC5B,GAAI8R,KAAAA,CAAMxR,CAAC,CAAGY,EAAAA,CAAI4Q,MAAMxR,CAAC,CAAGY,GAC5B,GAAI2Q,KAAAA,CAAMzR,CAAC,CAAGxf,EAAAA,CAAIixB,MAAMzR,CAAC,CAAGxf,GAC5B,GAAIixB,KAAAA,CAAMxR,CAAC,CAAGL,EAAAA,CAAI6R,KAAAA,CAAMxR,CAAC,CAAGL,EAAAA,CAC5B,GAAI6R,MAAMvR,CAAC,CAAGY,GAAI2Q,KAAAA,CAAMvR,CAAC,CAAGY,EAAAA,CAC5B,GAAIm2I,aAAc,CACjB,IAAIc,UAAYT,SAAAA,CAAY92J,EAAAA,CAC5B,IAAIw3J,SAAAA,CAAYT,SAAAA,CAAY33I,EAAAA,CAC5B,IAAIq4I,UAAYT,SAAAA,CAAY12I,EAAAA,CAC5B,IAAK,IAAImC,CAAAA,CAAI,EAAGA,CAAAA,CAAIg0I,YAAAA,CAAa/yJ,MAAM,CAAE+e,CAAAA,EAAAA,CAAK,CAC7C,MAAMpgB,OAAAA,CAAUo0J,YAAY,CAACh0I,CAAAA,CAAE,CAC/B,MAAMq9D,EAAAA,CAAKz9E,OAAAA,CAAQq1J,cAAc,CAACviH,CAAAA,CAAI,CAAA,CAAE,CACxC,MAAM6qC,EAAAA,CAAK39E,QAAQq1J,cAAc,CAACviH,EAAI,CAAA,CAAI,CAAA,CAAE,CAC5C,MAAMwiH,EAAAA,CAAKt1J,QAAQq1J,cAAc,CAACviH,EAAI,CAAA,CAAI,CAAA,CAAE,CAC5C,GAAI2qC,GAAK,CAAA,CAAG,CACXy3E,WAAaz3E,GACd,CAAA,KAAO,CACNg3E,SAAAA,EAAah3E,GACd,CACA,GAAIE,EAAAA,CAAK,EAAG,CACXw3E,SAAAA,EAAax3E,GACd,CAAA,KAAO,CACN+2E,WAAa/2E,GACd,CACA,GAAI23E,EAAAA,CAAK,EAAG,CACXF,SAAAA,EAAaE,GACd,CAAA,KAAO,CACNX,WAAaW,GACd,CACD,CACA,GAAIzmI,MAAM1R,CAAC,CAAG+3I,UAAWrmI,KAAAA,CAAM1R,CAAC,CAAG+3I,SAAAA,CACnC,GAAIrmI,KAAAA,CAAMzR,CAAC,CAAG+3I,SAAAA,CAAWtmI,KAAAA,CAAMzR,CAAC,CAAG+3I,SAAAA,CACnC,GAAItmI,KAAAA,CAAMxR,CAAC,CAAG+3I,SAAAA,CAAWvmI,KAAAA,CAAMxR,CAAC,CAAG+3I,SAAAA,CACnC,GAAIxmI,KAAAA,CAAMzR,CAAC,CAAGs3I,SAAAA,CAAW7lI,KAAAA,CAAMzR,CAAC,CAAGs3I,UACnC,GAAI7lI,KAAAA,CAAMxR,CAAC,CAAGs3I,SAAAA,CAAW9lI,MAAMxR,CAAC,CAAGs3I,UACnC,GAAI9lI,KAAAA,CAAMvR,CAAC,CAAGs3I,SAAAA,CAAW/lI,MAAMvR,CAAC,CAAGs3I,UACpC,CACD,CACD,CACAC,QAAAA,CAASnjC,IAAI,GACd,CACA,MAAM8jC,eAAAA,CAAkB,IAAI,CAACvmG,YAAY,CAACpN,SAAS,EAAA,CAAG+C,QAAQ,CAACuT,IAAI,CAAC,CAAC7pD,EAAMA,CAAAA,CAAEnK,IAAI,GAAKg/B,iBAAAA,CAAAA,CACtF,GAAIqyH,eAAAA,EAAmBA,gBAAgB/zJ,SAAS,CAAE,CACjD,MAAMmK,IAAAA,CAAO,CAAC,IAAA,CACb,OAAQ4pJ,eAAAA,CAAgBjwG,QAAQ,EAC/B,KAAK/d,SAAAA,CACJ,OAAO,EAACiuH,EAAO70J,KAAK6T,GAAG,CAACghJ,EAAAA,CAAK,GAAA,CAAK,EAAC,CACpC,CAAA,KAAKhuH,WACJ,OAAQguH,IAAOA,EAAAA,CAAK,GACrB,MAAK/tH,UAAAA,CACJ,OAAO,EAAC+tH,EAAO70J,IAAAA,CAAK6T,GAAG,CAACghJ,EAAAA,CAAK,MAAO,EAAC,CACtC,CAAA,KAAK9tH,WAAAA,CACJ,OAAO,EAAC8tH,EAAOA,GAAK,KACrB,CAAA,QACC,OAAO,EAACA,EAAOA,EACjB,CACD,CAAA,IACA,IAAK,IAAIp0J,GAAK,CAAA,CAAGA,EAAAA,CAAKwuJ,SAAUxuJ,EAAAA,EAAAA,CAAM,CACrC,GAAIkzJ,QAAQ,CAAClzJ,EAAAA,CAAG,CAAE,CACjB,MAAMmT,GAAAA,CAAMggJ,OAAO,CAACnzJ,EAAAA,CAAG,CACvB,MAAMoT,GAAAA,CAAMggJ,OAAO,CAACpzJ,EAAAA,CAAG,CACvBmT,GAAAA,CAAIxM,GAAG,CAAC4D,IAAAA,CAAK4I,GAAAA,CAAI4I,CAAC,CAAA,CAAGxR,KAAK4I,GAAAA,CAAI6I,CAAC,EAAGzR,IAAAA,CAAK4I,GAAAA,CAAI8I,CAAC,CAAA,CAAA,CAC5C7I,GAAAA,CAAIzM,GAAG,CAAC4D,KAAK6I,GAAAA,CAAI2I,CAAC,EAAGxR,IAAAA,CAAK6I,GAAAA,CAAI4I,CAAC,CAAA,CAAGzR,IAAAA,CAAK6I,GAAAA,CAAI6I,CAAC,GAC7C,CACD,CACD,CACA,IAAK,IAAIjc,GAAK,CAAA,CAAGA,EAAAA,CAAKwuJ,SAAUxuJ,EAAAA,EAAAA,CAAM,CACrC,MAAMmvB,KAAAA,CAAQ,IAAIhE,YAClBgE,KAAAA,CAAMP,SAAS,CAACukI,OAAO,CAACnzJ,EAAAA,CAAG,CAAEozJ,OAAO,CAACpzJ,EAAAA,CAAG,EACxC,IAAI,CAACizJ,QAAQ,CAACnyJ,IAAI,CAACquB,KAAAA,EACpB,CACD,CAEAklI,iBAAAA,EAAoB,CACnB,GAAI,CAAC,IAAI,CAACvB,aAAa,CAAE,CACxB,IAAI,CAACA,aAAa,CAAG,IAAIxC,YAAAA,CACzB,GAAI,IAAI,CAAC1iG,YAAY,CAAE,CACtB,IAAI,CAACklG,aAAa,CAACjuG,WAAW,CAAG,IAAI,CAAC+I,YAAY,CAACnL,WACnD,CAAA,IAAI,CAACqwG,aAAa,CAACnC,WAAW,CAAG,IAAI,CAAC/iG,YAAY,CAACnL,YAAW,CAE/D,GAAI,IAAI,CAACrC,WAAW,CAACngD,MAAM,CAAG,CAAA,EAAK,IAAI,CAACmgD,WAAW,CAAC,EAAE,CAAE,CACvD,IAAI,CAAC0yG,aAAa,CAACjC,UAAU,CAAG,IAAI,CAACzwG,WAAW,CAAC,CAAA,CAAE,CAACM,UAAU,CAC9D,IAAI,CAACoyG,aAAa,CAAClC,UAAU,CAAG,IAAI,CAACxwG,WAAW,CAAC,CAAA,CAAE,CAACM,WACrD,CACD,CACD,CACAh4C,MAAM4rJ,eAAe,CAAEC,cAAc,CAAE5D,WAAAA,CAAc,CAAC,CAAEC,WAAa,CAAC,CAAE,CACvE,IAAI,CAACyD,iBAAiB,EAAA,CACtB,IAAI,CAACvB,aAAa,CAACvC,YAAY,EAC/B,CAAA,IAAI,CAACuC,aAAa,CAACtC,QAAQ,CAAG,IAC9B,CAAA,IAAI,CAACsC,aAAa,CAACnC,WAAW,CAAGA,WACjC,CAAA,IAAI,CAACmC,aAAa,CAAClC,UAAU,CAAGA,UAChC,CAAA,IAAI,CAACkC,aAAa,CAACrC,aAAa,CAAG6D,gBAAkBr8H,cAAAA,CAAiBD,aACtE,CAAA,IAAI,CAAC86H,aAAa,CAACpC,YAAY,CAAG6D,cAAAA,CAAiBt8H,cAAAA,CAAiBD,cACrE,CACAu6H,eAAAA,CAAgB7uG,QAAQ,CAAEhqC,KAAK,CAAE63I,cAAc,CAAE9uG,WAAW,CAAEyB,SAAWzd,YAAY,CAAE+qH,kBAAoB,KAAK,CAAEntG,MAAQ,KAAK,CAAE,CAChI,IAAI,CAACgwG,iBAAiB,EAAA,CACtB,MAAMxvG,YAAcpC,WAAAA,EAAe/oC,KAAAA,CAAMzZ,MAAM,CAAGsxJ,cAAAA,CAClD,IAAI,CAACuB,aAAa,CAAC7B,kBAAkB,CAACpsG,WAAAA,CAAanB,QAAAA,CACnD,CAAA,IAAI,CAACovG,aAAa,CAAChC,oBAAoB,CAAG,IAC1C,CAAA,IAAI,CAACgC,aAAa,CAAC9B,sBAAsB,CAACttG,QAAAA,CAAS,CAAG,IAAI4tG,oBAAAA,CACzD53I,KAAAA,CACA63I,eACArtG,QAAAA,CACAstG,iBAAAA,CACAntG,OAEF,CACAmwG,eAAAA,CAAgB9wG,QAAQ,CAAEhqC,KAAK,CAAE,CAChC,IAAIm2B,KAAAA,CAAQ,CAAA,CACZ,IAAI4kH,IAAAA,CAAO,KAAA,CACX,GAAI,IAAI,CAAC3B,aAAa,CAAE,CACvB,MAAM4B,MAAAA,CAAS,IAAI,CAAC5B,aAAa,CAAC9B,sBAAsB,CAACttG,SAAS,CAClE,GAAIgxG,OAAQ,CACXD,IAAAA,CAAO,KACP5kH,KAAAA,CAAQ,IAAI,CAACijH,aAAa,CAACjuG,WAAW,CACtC,MAAM+uE,SAAAA,CAAY/jF,KAAAA,CAAQ6kH,OAAOnD,cAAc,CAC/C,GAAIh7G,WAAAA,CAAYqJ,MAAM,CAAClmC,KAAAA,CAAAA,CAAQ,CAC9B02I,iBAAiB12I,KAAAA,CAAOg7I,MAAAA,CAAO/1I,IAAI,CAAEpf,IAAAA,CAAK4T,GAAG,CAACuG,MAAMzZ,MAAM,CAAE2zH,YAC7D,CAAA,KAAO,CACNl6G,MAAMzZ,MAAM,CAAG,EACf,IAAK,IAAID,GAAK,CAAA,CAAGA,EAAAA,CAAK4zH,UAAW5zH,EAAAA,EAAAA,CAAM,CACtC0Z,KAAK,CAAC1Z,EAAAA,CAAG,CAAG00J,MAAAA,CAAO/1I,IAAI,CAAC3e,EAAAA,EAAG,CAE7B,CACD,CACD,CACA,GAAI,CAACy0J,IAAAA,CAAM,CACV,GAAI,IAAI,CAAC7mG,YAAY,CAAE,CACtB,MAAM4lG,QAAAA,CAAW,IAAIhgC,cAAAA,CAAe,IAAI,CAAC5lE,YAAY,EACrD/d,KAAAA,CAAQ2jH,QAAAA,CAASzyG,QAAQ,CAAC2C,QAAAA,CAAUhqC,OACrC,CACD,CACA,OAAOm2B,KACR,CACAwiH,aAAarqG,SAAS,CAAEupG,eAAiBjB,YAAAA,CAAaY,2BAA2B,CAAEzuG,WAAW,CAAE,CAC/F,IAAI,CAAC8vG,eAAe,CAACzwH,kBAAmBkmB,SAAAA,CAAWupG,cAAAA,CAAgB9uG,YAAahc,YAAAA,CAAc,KAAA,EAC/F,CACA6rH,UAAAA,CAAWR,OAAO,CAAEP,cAAAA,CAAiBjB,YAAAA,CAAaa,yBAAyB,CAAE1uG,WAAW,CAAE,CACzF,IAAI,CAAC8vG,eAAe,CAACxwH,eAAAA,CAAiB+vH,OAAAA,CAASP,eAAgB9uG,WAAAA,CAAahc,YAAAA,CAAc,OAC3F,CACAgsH,MAAAA,CAAO7rJ,OAAO,CAAEqrJ,GAAG,CAAEV,cAAAA,CAAiBjB,YAAAA,CAAac,qBAAqB,CAAE3uG,WAAW,CAAE,CACtF,IAAI,CAAC8vG,eAAe,CAACnwH,iBAAAA,CAAoBx7B,OAAAA,CAASqrJ,IAAKV,cAAAA,CAAgB9uG,WAAAA,CAAahc,aAAc,KAAA,EACnG,CACAkuH,UAAU3C,MAAM,CAAET,eAAiBjB,YAAAA,CAAae,yBAAyB,CAAE5uG,WAAW,CAAE,CACvF,IAAI,CAAC8vG,eAAe,CAACpwH,eAAgB6vH,MAAAA,CAAQT,cAAAA,CAAgB9uG,YAAahc,YAAAA,CAAc,KAAA,EACzF,CACA+rH,WAAAA,CAAYR,MAAM,CAAEvvG,WAAW,CAAE,CAChC,IAAI,CAAC8vG,eAAe,CAACpwH,cAAAA,CAAgB6vH,MAAAA,CAAQ1B,YAAAA,CAAae,yBAAyB,CAAE5uG,WAAAA,CAAarc,WAAY,IAAA,EAC/G,CACAssH,WAAW7xG,OAAO,CAAEH,UAAU,CAAE,CAC/B,IAAI,CAAC2zG,iBAAiB,EACtB,CAAA,IAAI,CAACvB,aAAa,CAAC/B,kBAAkB,CAAG,IACxC,CAAA,IAAI,CAAC+B,aAAa,CAACjyG,OAAO,CAAGA,OAC7B,CAAA,IAAI,CAACiyG,aAAa,CAACjC,UAAU,CAAGnwG,UAAAA,EAAcG,OAAAA,CAAQ5gD,OAAM,CAE7D20J,YAAAA,CAAa5sG,SAAS,CAAE,CACvB,OAAO,IAAI,CAACwsG,eAAe,CAAC1yH,iBAAAA,CAAmBkmB,SAAAA,CAChD,CACA6sG,UAAAA,CAAW/C,OAAO,CAAE,CACnB,OAAO,IAAI,CAAC0C,eAAe,CAACzyH,eAAAA,CAAiB+vH,OAAAA,CAC9C,CACAgD,OAAOluJ,OAAO,CAAEqrJ,GAAG,CAAE,CACpB,OAAO,IAAI,CAACuC,eAAe,CAACpyH,iBAAAA,CAAoBx7B,QAASqrJ,GAAAA,CAC1D,CACA8C,UAAU/C,MAAM,CAAE,CACjB,OAAO,IAAI,CAACwC,eAAe,CAACryH,cAAAA,CAAgB6vH,MAAAA,CAC7C,CACAgD,UAAAA,CAAWn0G,OAAO,CAAE,CACnB,IAAIhR,MAAQ,CAAA,CACZ,GAAI,IAAI,CAACijH,aAAa,EAAI,IAAI,CAACA,aAAa,CAACjyG,OAAO,CAAE,CACrD,MAAMo0G,aAAAA,CAAgB,IAAI,CAACnC,aAAa,CAACjyG,OAAO,CAChDhR,KAAAA,CAAQ,IAAI,CAACijH,aAAa,CAACjC,UAAU,CACrC,GAAIt6G,WAAAA,CAAYqJ,MAAM,CAACiB,OAAAA,CAAAA,CAAU,CAChCuvG,gBAAAA,CAAiBvvG,OAAAA,CAASo0G,cAAe11J,IAAAA,CAAK4T,GAAG,CAAC0tC,OAAAA,CAAQ5gD,MAAM,CAAE4vC,KAAAA,CAAAA,EACnE,CAAA,KAAO,CACNgR,OAAAA,CAAQ5gD,MAAM,CAAG,CAAA,CACjB,IAAK,IAAID,EAAAA,CAAK,CAAA,CAAGA,GAAK6vC,KAAAA,CAAO7vC,EAAAA,EAAAA,CAAM,CAClC6gD,OAAO,CAAC7gD,EAAAA,CAAG,CAAGi1J,aAAa,CAACj1J,EAAAA,EAAG,CAEjC,CACD,MAAO,CACN,GAAI,IAAI,CAACogD,WAAW,CAACngD,MAAM,CAAG,GAAK,IAAI,CAACmgD,WAAW,CAAC,EAAE,CAAE,CACvD,MAAMA,WAAAA,CAAc,IAAI,CAACA,WAAW,CAAC,EAAE,CACvCvQ,KAAAA,CAAQuQ,YAAYW,QAAQ,CAACF,SAC9B,CACD,CACA,OAAOhR,KACR,CACAgK,MAAAA,CAAOkjB,aAAAA,CAAgBp7B,mBAAmB,CAAEurH,iBAAAA,CAAoB,IAAI,CAAE,CACrE,GAAI,IAAI,CAAC4F,aAAa,CAAE,CACvB,GAAI5F,iBAAAA,CAAmB,CACtB,MAAMwH,MAAAA,CAAS,IAAI,CAAC5B,aAAa,CAAC9B,sBAAsB,CAAClvH,kBAAkB,CAC3E,GAAI4yH,OAAQ,CACX,GAAIA,OAAOnD,cAAc,GAAK,CAAA,CAAG,CAChC,IAAI,CAACv8H,KAAK,CAACtE,OAAO,CAACgkI,OAAO/1I,IAAI,CAAE,IAAI,CAACm0I,aAAa,CAACjuG,WAAW,CAC9D,CAAA,IAAI,CAACwoG,QAAQ,GACd,CACD,CACD,CACA,IAAI6H,SAAAA,CAAY,IAAI,CAACpC,aAAa,CAACtC,QAAQ,CAC3C,GAAI,IAAI,CAACsC,aAAa,CAACjuG,WAAW,CAAG,IAAI,CAACiuG,aAAa,CAACnC,WAAW,CAAE,CACpEuE,SAAAA,CAAY,IACZ,CAAA,IAAI,CAACpC,aAAa,CAACnC,WAAW,CAAG,IAAI,CAACmC,aAAa,CAACjuG,YACrD,CACA,GAAIqwG,SAAAA,CAAW,CACd,GAAI,IAAI,CAACtnG,YAAY,CAAE,CACtB,IAAI,CAACA,YAAY,CAACvgB,OAAO,EACzB,CAAA,IAAI,CAACugB,YAAY,CAAG,KACrB,CACD,CACA,IAAIunG,SAAAA,CAAY,IAAI,CAACrC,aAAa,CAACtC,QAAQ,CAC3C,GAAI,IAAI,CAACsC,aAAa,CAACjC,UAAU,CAAG,IAAI,CAACiC,aAAa,CAAClC,UAAU,CAAE,CAClEuE,UAAY,IACZ,CAAA,IAAI,CAACrC,aAAa,CAAClC,UAAU,CAAG,IAAI,CAACkC,aAAa,CAACjC,WACpD,CACA,GAAIsE,SAAAA,CAAW,CACd,GAAI,IAAI,CAAC/0G,WAAW,CAACngD,MAAM,CAAG,GAAK,IAAI,CAACmgD,WAAW,CAAC,CAAA,CAAE,CAAE,CACvD,IAAI,CAACA,WAAW,CAAC,EAAE,CAAC/S,OAAO,EAC3B,CAAA,IAAI,CAAC+S,WAAW,CAAC,CAAA,CAAE,CAAG,KACvB,CACD,CACA,GAAI,IAAI,CAAC0yG,aAAa,CAAChC,oBAAoB,CAAE,CAC5C,IAAI,CAACsE,mBAAmB,GACzB,CACA,GAAI,IAAI,CAACtC,aAAa,CAAC/B,kBAAkB,CAAE,CAC1C,IAAI,CAACsE,kBAAkB,GACxB,CACA,IAAI,CAACr2F,SAAS,CAAC,CAAA,CAAE,CAAC5nD,IAAI,CAAG2lD,aAAAA,CACzB,GAAI,IAAI,CAAC3c,WAAW,CAACngD,MAAM,CAAG,GAAK,IAAI,CAACmgD,WAAW,CAAC,CAAA,CAAE,CAAE,CACvD,GAAI,IAAI,CAAC0yG,aAAa,CAAC/B,kBAAkB,CAAE,CAC1C,IAAI,CAAC/xF,SAAS,CAAC,EAAE,CAACnvB,KAAK,CAAG,IAAI,CAACijH,aAAa,CAACjC,UAAU,CACvD,IAAI,CAAC7xF,SAAS,CAAC,EAAE,CAAC8pB,OAAO,CAAG,KAC7B,CACD,CAAA,KAAO,CACN,GAAI,IAAI,CAACgqE,aAAa,CAAChC,oBAAoB,CAAE,CAC5C,IAAI,CAAC9xF,SAAS,CAAC,EAAE,CAACnvB,KAAK,CAAG,IAAI,CAACijH,aAAa,CAACjuG,WAAW,CACxD,IAAI,CAACma,SAAS,CAAC,CAAA,CAAE,CAAC8pB,OAAO,CAAG,MAC7B,CACD,CACA,IAAI,CAACgqE,aAAa,CAACjuG,WAAW,CAAG,CACjC,CAAA,IAAI,CAACiuG,aAAa,CAACjC,UAAU,CAAG,CAChC,CAAA,IAAI,CAACiC,aAAa,CAAChC,oBAAoB,CAAG,KAC1C,CAAA,IAAI,CAACgC,aAAa,CAAC/B,kBAAkB,CAAG,KACxC,CAAA,IAAI,CAAC+B,aAAa,CAACtC,QAAQ,CAAG,KAAA,CAC9B,IAAI,CAAC8E,kBAAkB,GACxB,CACD,CAEAC,kBAAAA,CAAmB1wG,WAAW,CAAE,CAC/B,MAAM2wG,UAAAA,CAAa,EAAE,CACrB,IAAK,MAAM9xG,QAAAA,IAAY,IAAI,CAACovG,aAAa,CAAC9B,sBAAsB,CAAE,CACjE,MAAM0D,MAAAA,CAAS,IAAI,CAAC5B,aAAa,CAAC9B,sBAAsB,CAACttG,QAAAA,CAAS,CAClE8xG,UAAAA,CAAW10J,IAAI,CAAC,CACf4iD,SACAC,UAAAA,CAAY+wG,MAAAA,CAAOnD,cAAc,CACjCn6I,IAAAA,CAAMs9I,OAAOxwG,QAAQ,CACrB9jD,SAAAA,CAAWs0J,MAAAA,CAAOlD,iBAAiB,CACnCntG,KAAAA,CAAOqwG,OAAOrwG,KACf,GACD,CACA,OAAO,IAAIhB,YAAAA,CAAa,IAAI,CAACnV,MAAM,CAAEsnH,UAAAA,CAAY3wG,WAAAA,CAClD,CAEAuwG,mBAAAA,EAAsB,CACrB,GAAI,CAAC,IAAI,CAACxnG,YAAY,CAAE,CACvB,MAAM6nG,mBAAAA,CAAsB,IAAI,CAAC3C,aAAa,CAACnC,WAAW,CAC1D,MAAMprJ,MAAAA,CAAS,IAAI,CAACgwJ,kBAAkB,CAACE,mBAAAA,CACvC,CAAA,IAAI,CAAC7nG,YAAY,CAAG,IAAI1L,YAAAA,CAAa,IAAI,CAAChU,MAAM,CAAE3oC,MAAAA,CAAQkwJ,mBAAAA,CAAqB,CAC9Ez0G,KAAAA,CAAO,IAAI,CAAC8xG,aAAa,CAACrC,aAAa,CACvC77G,QAAS,IAAI,CAAC8gH,cAAa,CAC5B,EACD,CACA,MAAMlC,QAAAA,CAAW,IAAIhgC,cAAAA,CAAe,IAAI,CAAC5lE,YAAY,CAAA,CACrD,MAAMnL,WAAAA,CAAc,IAAI,CAACqwG,aAAa,CAACjuG,WAAW,CAClD,IAAK,MAAMnB,QAAAA,IAAY,IAAI,CAACovG,aAAa,CAAC9B,sBAAsB,CAAE,CACjE,MAAM0D,MAAAA,CAAS,IAAI,CAAC5B,aAAa,CAAC9B,sBAAsB,CAACttG,QAAAA,CAAS,CAClE8vG,SAAS5yG,SAAS,CAAC8C,SAAUgxG,MAAAA,CAAO/1I,IAAI,CAAE8jC,WAAAA,CAC1C,CAAA,OAAO,IAAI,CAACqwG,aAAa,CAAC9B,sBAAsB,CAACttG,UAAS,CAE3D8vG,QAAAA,CAAStuJ,GAAG,GACb,CAEAmwJ,kBAAAA,EAAqB,CACpB,GAAI,IAAI,CAACj1G,WAAW,CAACngD,MAAM,EAAI,CAAA,EAAK,CAAC,IAAI,CAACmgD,WAAW,CAAC,CAAA,CAAE,CAAE,CACzD,MAAMuwG,WAAAA,CAAc,IAAI,CAACmC,aAAa,CAACnC,WAAW,CAClD,MAAMgF,aAAehF,WAAAA,CAAc,KAAA,EAASA,cAAgB,CAAA,CAAIh2H,kBAAAA,CAAqBD,mBACrF,MAAMlpB,QAAAA,CAAW,IAAI,CAACokJ,aAAa,CAAG,CAAEhhH,OAAAA,CAAS,IAAK,CAAA,CAAI,MAC1D,CAAA,IAAI,CAACwL,WAAW,CAAC,CAAA,CAAE,CAAG,IAAIF,WAAAA,CAAY,IAAI,CAAChS,MAAM,CAAEynH,YAAAA,CAAc,IAAI,CAAC7C,aAAa,CAAClC,UAAU,CAAE,IAAI,CAACkC,aAAa,CAACpC,YAAY,CAAE,MAAK,CAAGl/I,QAAAA,EAC1I,CACA,MAAMqkJ,UAAAA,CAAa,IAAI,CAAC/C,aAAa,CAACjyG,OAAO,CAC7C,GAAIg1G,UAAAA,CAAY,CACf,MAAMz1G,WAAAA,CAAc,IAAI,CAACA,WAAW,CAAC,CAAA,CAAE,CACvCA,YAAYQ,SAAS,CAACi1G,WAAY,IAAI,CAAC/C,aAAa,CAACjC,UAAU,CAC/D,CAAA,IAAI,CAACiC,aAAa,CAACjyG,OAAO,CAAG,KAC9B,CACD,CAEAi1G,mBAAmBC,WAAW,CAAE,CAC/B,GAAIA,WAAAA,GAAgB5X,sBAAuB,CAC1C,IAAI,CAAC6X,iBAAiB,GACvB,MAAO,GAAID,WAAAA,GAAgB3X,mBAAoB,CAC9C,IAAI,CAACp/E,SAAS,CAACo/E,kBAAAA,CAAmB,CAAG,CACpChnI,IAAAA,CAAMmqB,gBAAAA,CACNqnD,KAAM,CAAA,CACNC,UAAAA,CAAY,EACZh5C,KAAAA,CAAO,IAAI,CAAC+d,YAAY,CAAG,IAAI,CAACA,YAAY,CAACnL,WAAW,CAAG,CAAA,CAC3DqmC,OAAAA,CAAS,KACV,EACD,CACD,CAEAwsE,kBAAAA,EAAqB,CACpB,GAAI,IAAI,CAACt2F,SAAS,CAACo/E,kBAAAA,CAAmB,CAAE,CACvC,IAAI,CAAC0X,kBAAkB,CAAC1X,oBACzB,CACA,GAAI,IAAI,CAACp/E,SAAS,CAACm/E,qBAAAA,CAAsB,CAAE,CAC1C,IAAI,CAAC2X,kBAAkB,CAAC3X,uBACzB,CACD,CACA6X,mBAAoB,CACnB,IAAI,CAACnD,mBAAmB,CAAC1U,uBACzB,MAAM17F,WAAAA,CAAc,IAAI,CAACmL,YAAY,CAACnL,WAAW,CACjD,IAAIw8B,KAAAA,CACJ,IAAI15E,MAAAA,CACJ,GAAI,IAAI,CAAC66C,WAAW,CAACngD,MAAM,CAAG,GAAK,IAAI,CAACmgD,WAAW,CAAC,CAAA,CAAE,CAAE,CACvD,MAAMzH,OAAAA,CAAU,CAAC,CAAC,CAAA,CAAG,CAAA,CAAE,CAAE,CAAC,CAAA,CAAG,CAAA,CAAE,CAAE,CAAC,CAAA,CAAG,CAAA,CAAE,CAAC,CACxC,MAAMiwC,KAAO,IAAI,CAAC5pB,SAAS,CAACk/E,kBAAkB,CAACt1D,IAAI,CACnD,MAAM/4C,KAAAA,CAAQ,IAAI,CAACmvB,SAAS,CAACk/E,iBAAAA,CAAkB,CAACruG,KAAK,CACrD,MAAMg5C,WAAa,IAAI,CAAC7pB,SAAS,CAACk/E,iBAAAA,CAAkB,CAACr1D,UAAU,EAAI,CAAA,CACnE,MAAMzoC,YAAc,IAAI,CAACA,WAAW,CAAC89F,iBAAAA,CAAkB,CACvD,MAAM+X,gBAAAA,CAAmBlqH,sBAAsB,CAACqU,WAAAA,CAAY76C,MAAM,CAAC,CACnE,MAAMswJ,UAAAA,CAAa,IAAII,gBAAAA,CAAiB71G,WAAAA,CAAYxL,OAAO,CAAA,CAC3D,MAAMshH,WAAa,IAAID,gBAAAA,CAAiBpmH,MAAQ,CAAA,CAAA,CAChD,MAAMsmH,KAAuB,IAAInvJ,GAAAA,CACjC,IAAI6Q,GAAAA,CAAM,CAAA,CACV,IAAK,IAAI65B,CAAAA,CAAIk3C,KAAMl3C,CAAAA,CAAIk3C,IAAAA,CAAO/4C,KAAAA,CAAO6B,CAAAA,EAAK,EAAG,CAC5C,IAAK,IAAIq3G,CAAAA,CAAI,CAAA,CAAGA,EAAI,CAAA,CAAGA,CAAAA,EAAAA,CAAK,CAC3B,MAAMqN,EAAAA,CAAKP,UAAU,CAACnkH,CAAAA,CAAIiH,OAAO,CAACowG,CAAAA,CAAE,CAAC,CAAA,CAAE,CAAC,CAAGlgE,UAAAA,CAC3C,MAAM7oF,EAAAA,CAAK61J,UAAU,CAACnkH,CAAAA,CAAIiH,OAAO,CAACowG,CAAAA,CAAE,CAAC,EAAE,CAAC,CAAGlgE,WAC3C,MAAM/lC,IAAAA,CAAOszG,GAAKp2J,EAAAA,CAAKA,EAAAA,CAAKyiD,YAAc2zG,EAAAA,CAAKA,EAAAA,CAAK3zG,WAAAA,CAAcziD,EAAAA,CAClE,GAAI,CAACm2J,IAAAA,CAAKpvJ,GAAG,CAAC+7C,IAAAA,CAAAA,CAAO,CACpBqzG,IAAAA,CAAK9lJ,GAAG,CAACyyC,IAAAA,CACTozG,CAAAA,UAAU,CAACr+I,GAAAA,EAAAA,CAAM,CAAGu+I,EACpBF,CAAAA,UAAU,CAACr+I,GAAAA,EAAAA,CAAM,CAAG7X,GACrB,CACD,CACD,CACAm2J,KAAKztJ,KAAK,EAAA,CACVnD,OAAS66C,WAAAA,CAAY76C,MAAM,CAC3B05E,KAAAA,CAAQi3E,UAAAA,CAAWr1J,KAAK,CAAC,CAAA,CAAGgX,KAC7B,CAAA,KAAO,CACN,MAAMw+I,eAAAA,CAAkB5zG,WAAAA,CAAcA,WAAAA,CAAc,CAAA,CACpD,MAAM5S,KAAAA,CAAQwmH,eAAAA,CAAkB,EAAI,CAAA,CACpC9wJ,MAAAA,CAASsqC,MAAQ,KAAA,CAAQlV,kBAAAA,CAAqBD,kBAAAA,CAC9CukD,KAAAA,CAAQpvC,MAAQ,KAAA,CAAQ,IAAI1O,YAAY0O,KAAAA,CAAAA,CAAS,IAAIxO,YAAYwO,KAAAA,CAAAA,CACjE,IAAIzlC,GAAAA,CAAM,CAAA,CACV,IAAK,IAAIpK,EAAAA,CAAK,EAAGA,EAAAA,CAAKq2J,eAAAA,CAAiBr2J,IAAM,CAAA,CAAG,CAC/Ci/E,KAAK,CAAC70E,GAAAA,EAAAA,CAAM,CAAGpK,EACfi/E,CAAAA,KAAK,CAAC70E,GAAAA,EAAAA,CAAM,CAAGpK,EAAAA,CAAK,CACpBi/E,CAAAA,KAAK,CAAC70E,GAAAA,EAAAA,CAAM,CAAGpK,GAAK,CACpBi/E,CAAAA,KAAK,CAAC70E,GAAAA,EAAAA,CAAM,CAAGpK,EAAAA,CAAK,CACpBi/E,CAAAA,KAAK,CAAC70E,MAAM,CAAGpK,EAAAA,CAAK,CACpBi/E,CAAAA,KAAK,CAAC70E,GAAAA,EAAAA,CAAM,CAAGpK,GAChB,CACD,CACA,MAAMs2J,UAAAA,CAAa,IAAIp2G,WAAAA,CAAY,IAAI,CAAC0N,YAAY,CAAC1f,MAAM,CAAE3oC,MAAAA,CAAQ05E,MAAMh/E,MAAM,CAAE+3B,cAAeinD,KAAAA,CAAM3kE,MAAM,CAC9G,CAAA,IAAI,CAAC0kD,SAAS,CAACm/E,qBAAAA,CAAsB,CAAG,CACvC/mI,IAAAA,CAAMoqB,eAAAA,CACNonD,IAAAA,CAAM,CAAA,CACNC,WAAY,CAAA,CACZh5C,KAAAA,CAAOovC,MAAMh/E,MAAM,CACnB6oF,QAAS,IACV,CACA,CAAA,IAAI,CAAC1oC,WAAW,CAAC+9F,sBAAsB,CAAGmY,WAC3C,CA7eA,WAAA,CAAYxoH,cAAc,CAAEt8B,QAAQ,CAAE,CACrC,KAAK,EAAA,CAjBN4uC,sBAAAA,aAAAA,CAAc,CAAC,KAAK,CAAA,CACpBwN,gBAAAA,CAAAA,IAAAA,CAAAA,cAAAA,CAAe,IAAA,CAAA,CACfoR,sBAAAA,WAAAA,CAAY,CAAC,CACZ5nD,IAAAA,CAAM,CAAA,CACNwxE,KAAM,CAAA,CACNC,UAAAA,CAAY,EACZh5C,KAAAA,CAAO,CACR,EAAE,CAAA,CACFg/G,gBAAAA,CAAAA,IAAAA,CAAAA,OAAO,IAAA,CAAA,CACPoE,gBAAAA,CAAAA,IAAAA,CAAAA,WAAW,IAAA,CAAA,CACX5F,gBAAAA,CAAAA,IAAAA,CAAAA,UAAAA,CAAW,CAAA,CAAA,CACXr4H,sBAAAA,OAAAA,CAAQ,IAAI7J,aACZ2nI,gBAAAA,CAAAA,IAAAA,CAAAA,eAAAA,CAAgB,MAChBF,gBAAAA,CAAAA,IAAAA,CAAAA,QAAAA,CAAS,MACTgD,gBAAAA,CAAAA,IAAAA,CAAAA,eAAAA,CAAgB,OAChBF,gBAAAA,CAAAA,IAAAA,CAAAA,gBAAAA,CAAiB,MAGhB,CAAA,IAAI,CAACvpH,EAAE,CAAGgkH,GAAAA,EACV,CAAA,IAAI,CAACjiH,MAAM,CAAGJ,cACd,CAAA,IAAI,CAAC8nH,aAAa,CAAGpkJ,QAAAA,EAAU+kJ,cAAgB,KAC/C,CAAA,IAAI,CAACb,cAAc,CAAGlkJ,QAAAA,EAAUglJ,aAAAA,EAAiB,MAClD,CAweD,EAEA,IAAIC,2BAAAA,CAA8B,IAAIj0I,IAAAA,CACtC,IAAIk0I,mBAAqB,IAAI76I,IAAAA,CAC7B,IAAI86I,kBAAAA,CAAqB,IAAI5uI,KAC7B,IAAI6uI,mBAAAA,CAAsB,IAAI7uI,IAAAA,CAC9B,IAAI8uI,qBAAuB,IAAIh7I,IAAAA,CAC/B,IAAIi7I,6BAAAA,CAAgC,IAAIj7I,IAAAA,CACxC,IAAIk7I,SAAW,IAAIv0I,IAAAA,CACnB,IAAIw0I,OAAAA,CAAU,IAAIjvI,KAClB,IAAIooH,QAAAA,CAAW,IAAIt0H,IAAAA,CACnB,IAAIo7I,aAAe,IAAIz0I,IAAAA,CACvB,IAAI00I,QAAAA,CAAW,IAAInvI,IAAAA,CACnB,IAAIovI,aAAe,IAAIpvI,IAAAA,CACvB,IAAIqvI,MAAAA,CAAS,IAAI50I,KACjB,IAAI26G,MAAAA,CAAS,IAAIthH,IAAAA,CACjB,IAAIw7I,GAAK,IAAIx7I,IAAAA,CACb,SAASy7I,UAAAA,CAAWl1D,IAAI,CAAEv6F,KAAK,CAAA,CAC9B,GAAIu6F,IAAAA,YAAgBm1D,SAAU,CAC7B,OAAOn1D,IACR,CACA,OAAO,IAACo1D,EAAAA,CACP,IAAIj7J,GAAKi7J,IAAI,CAACp1D,KAAK,CACnB,GAAI7lG,cAAcg7J,QAAAA,CAAU,CAC3Bh7J,GAAKA,EAAAA,GACN,CACA,OAAOA,EAAAA,GAAOsL,KACf,CACD,CACA,SAAS4vJ,QAAAA,CAASD,IAAI,CAAEt1J,IAAI,CAAA,CAC3B,GAAIA,IAAAA,CAAKs1J,IAAAA,CAAAA,CAAO,CACf,OAAOA,IACR,CACA,MAAME,QAAAA,CAAWF,KAAKG,SAAS,CAC/B,MAAM9/I,GAAAA,CAAM6/I,SAASz3J,MAAM,CAC3B,IAAK,IAAID,EAAAA,CAAK,EAAGA,EAAAA,CAAK6X,GAAAA,CAAK,EAAE7X,EAAAA,CAAI,CAChC,MAAMD,MAAAA,CAAS03J,QAAAA,CAASC,QAAQ,CAAC13J,EAAAA,CAAG,CAAEkC,IAAAA,CAAAA,CACtC,GAAInC,MAAAA,CAAQ,CACX,OAAOA,MACR,CACD,CACA,OAAO,IACR,CACA,IAAI63J,SAAAA,CAAY,cAAc3vJ,YAAAA,CAoC7B,IAAI4vJ,OAAQ,CACX,GAAI,CAAC,IAAI,CAAC3gJ,MAAM,CAAE,CACjB,IAAI,CAACA,MAAM,CAAG,IAAI2E,KACnB,CACA,OAAO,IAAI,CAAC8zI,iBAAiB,EAAA,CAAG9wI,IAAI,CAAC,IAAI,CAAC3H,MAAM,CAAA,CAAE9W,SAAS,EAC5D,CACA,IAAIi3J,EAAAA,EAAK,CACR,GAAI,CAAC,IAAI,CAACS,GAAG,CAAE,CACd,IAAI,CAACA,GAAG,CAAG,IAAIj8I,KAChB,CACA,OAAO,IAAI,CAAC8zI,iBAAiB,GAAG7wI,IAAI,CAAC,IAAI,CAACg5I,GAAG,CAAA,CAAE13J,SAAS,EACzD,CACA,IAAI23J,SAAU,CACb,GAAI,CAAC,IAAI,CAACC,QAAQ,CAAE,CACnB,IAAI,CAACA,QAAQ,CAAG,IAAIn8I,KACrB,CACA,OAAO,IAAI,CAAC8zI,iBAAiB,GAAG5wI,IAAI,CAAC,IAAI,CAACi5I,QAAQ,EAAE53J,SAAS,EAAA,CAAGoV,SAAS,CAAC,GAC3E,CACA,IAAIyiJ,cAAe,CAClB,MAAMC,SAAAA,CAAY,IAAI,CAACC,aAAa,CACpC,GAAI,IAAI,CAACC,YAAY,CAAE,CACtBF,UAAU73I,UAAU,CAAC,IAAI,CAACsvI,iBAAiB,IAAIxwI,SAAS,EACxD,CAAA,IAAI,CAACi5I,YAAY,CAAG,MACrB,CACA,OAAOF,SACR,CACA,IAAIrxJ,QAAQA,OAAO,CAAE,CACpB,GAAI,IAAI,CAACk6D,QAAQ,GAAKl6D,QAAS,CAC9B,IAAI,CAACk6D,QAAQ,CAAGl6D,OAAAA,CAChB,GAAIA,SAAW,IAAI,CAAC4J,OAAO,EAAE5J,OAAAA,EAAW,CAACA,OAAAA,CAAS,CACjD,IAAI,CAACwxJ,4BAA4B,CAAC,IAAI,CAAExxJ,SACzC,CACD,CACD,CACA,IAAIA,OAAAA,EAAU,CACb,OAAO,IAAI,CAACk6D,QAAQ,EAAI,IAAI,CAACu3F,mBAAmB,CAEjD,IAAItnJ,MAAAA,EAAS,CACZ,OAAO,IAAI,CAACP,OAAO,CAEpB,IAAI9Q,IAAAA,EAAO,CACV,IAAI63J,IAAAA,CAAO,IAAI,CAAC/mJ,OAAO,CACvB,GAAI,CAAC+mJ,KAAM,CACV,OAAO,EACR,CACA,IAAIz3J,MAAAA,CAAS,IAAI,CAAC+C,IAAI,CACtB,MAAO00J,IAAAA,EAAQA,IAAAA,CAAK/mJ,OAAO,CAAE,CAC5B1Q,MAAAA,CAAS,CAAC,EAAEy3J,IAAAA,CAAK10J,IAAI,CAAC,CAAC,EAAE/C,OAAO,CAAC,CACjCy3J,KAAOA,IAAAA,CAAK/mJ,QAAO,CAEpB,OAAO1Q,MACR,CACA,IAAIw4J,IAAAA,EAAO,CACV,IAAIx4J,MAAAA,CAAS,IAAI,CACjB,MAAOA,MAAAA,CAAO0Q,OAAO,CAAE,CACtB1Q,OAASA,MAAAA,CAAO0Q,QAAO,CAExB,OAAO1Q,MACR,CACA,IAAI23J,UAAW,CACd,OAAO,IAAI,CAACC,SAAS,CAGtBa,aAAc,CACb,OAAO,IAAI,CAACd,QAAQ,CAErBe,OAAAA,EAAU,CACT,OAAO,IAAI,CAAC31J,IACb,CACA41J,OAAAA,EAAU,CACT,OAAO,IAAI,CAAC/4J,IACb,CACAg5J,OAAAA,EAAU,CACT,OAAO,IAAI,CAACJ,IAAI,CAEjBK,WAAY,CACX,OAAO,IAAI,CAAC5nJ,MAAM,CAEnB6nJ,OAAAA,CAAQ/1J,IAAI,CAAE,CACb,IAAI,CAACA,IAAI,CAAGA,KACb,CAEA,IAAIg2J,UAAAA,EAAa,CAChB,OAAO,IAAI,CAACC,WACb,CACAV,4BAAAA,CAA6Bb,IAAI,CAAE3wJ,OAAO,CAAE,CAC3C2wJ,IAAAA,CAAKwB,wBAAwB,CAACnyJ,OAAAA,CAAAA,CAC9B,MAAMxH,EAAAA,CAAKm4J,IAAAA,CAAKG,SAAS,CACzB,IAAK,IAAI33J,EAAAA,CAAK,CAAA,CAAG6X,IAAMxY,EAAAA,CAAGY,MAAM,CAAED,EAAAA,CAAK6X,GAAAA,CAAK7X,KAAM,CACjD,GAAIX,EAAE,CAACW,GAAG,CAAC+gE,QAAQ,CAAE,CACpB,IAAI,CAACs3F,4BAA4B,CAACh5J,EAAE,CAACW,EAAAA,CAAG,CAAE6G,OAAAA,EAC3C,CACD,CACD,CACAmyJ,wBAAAA,CAAyBnyJ,OAAO,CAAE,CACjC,IAAI,CAACyxJ,mBAAmB,CAAGzxJ,OAAAA,CAC3B,GAAIA,OAAAA,EAAW,CAAC,IAAI,CAACoyJ,OAAO,CAAE,CAC7B,IAAI,CAACC,qBAAqB,GAC3B,CACD,CACAC,eAAenkJ,KAAK,CAAE,CACrBA,KAAAA,CAAMlS,IAAI,CAAG,IAAI,CAACA,IAAI,CACtB,MAAMyN,IAAAA,CAAO,IAAI,CAACA,IAAI,CAACrG,KAAK,CAC5B8K,KAAAA,CAAMzE,IAAI,CAAC7H,KAAK,GAChB,IAAK,IAAI1I,EAAAA,CAAK,CAAA,CAAGA,GAAKuQ,IAAAA,CAAKtQ,MAAM,CAAED,EAAAA,EAAAA,CAAM,CACxCgV,MAAMzE,IAAI,CAACF,GAAG,CAACE,IAAI,CAACvQ,EAAAA,CAAG,EACxB,CACAgV,KAAAA,CAAMokJ,aAAa,CAACr6J,IAAI,CAAC,IAAI,CAACq6J,aAAa,CAAA,CAC3CpkJ,KAAAA,CAAMqkJ,aAAa,CAACt6J,IAAI,CAAC,IAAI,CAACs6J,aAAa,CAAA,CAC3CrkJ,KAAAA,CAAMskJ,UAAU,CAACv6J,IAAI,CAAC,IAAI,CAACu6J,UAAU,CAAA,CACrCtkJ,KAAAA,CAAMukJ,gBAAgB,CAACx6J,IAAI,CAAC,IAAI,CAACw6J,gBAAgB,CAAA,CACjDvkJ,MAAMm7H,QAAQ,CAACpxI,IAAI,CAAC,IAAI,CAACoxI,QAAQ,EACjCn7H,KAAAA,CAAMkiJ,QAAQ,CAACn4J,IAAI,CAAC,IAAI,CAACm4J,QAAQ,CAAA,CACjCliJ,KAAAA,CAAMwkJ,WAAW,CAACz6J,IAAI,CAAC,IAAI,CAACy6J,WAAW,CAAA,CACvCxkJ,KAAAA,CAAMykJ,cAAc,CAAC16J,IAAI,CAAC,IAAI,CAAC06J,cAAc,CAC7CzkJ,CAAAA,KAAAA,CAAM0kJ,WAAW,CAAG,IAAI,CAACA,WAAW,CACpC1kJ,KAAAA,CAAM6f,cAAc,CAAC91B,IAAI,CAAC,IAAI,CAAC81B,cAAc,CAC7C7f,CAAAA,MAAM2kJ,WAAW,CAAG,IAAI,CAACA,WAAW,CACpC3kJ,MAAMojJ,YAAY,CAAG,IAAI,CAACA,YAAY,CACtCpjJ,KAAAA,CAAMq4I,QAAQ,CAAG,IAAI,CAACA,QAAQ,CAAG,CACjCr4I,CAAAA,KAAAA,CAAM+rD,QAAQ,CAAG,IAAI,CAACA,QAAQ,CAC9B/rD,KAAAA,CAAM4kJ,iBAAiB,CAAG,IAAI,CAACA,iBAC/B5kJ,CAAAA,KAAAA,CAAMsjJ,mBAAmB,CAAG,MAC7B,CACAtjJ,KAAAA,EAAQ,CACP,MAAMA,KAAAA,CAAQ,IAAI,IAAI,CAAC,WAAW,CAClC,IAAI,CAACmkJ,cAAc,CAACnkJ,OACpB,OAAOA,KACR,CACAjW,IAAAA,CAAK03C,MAAM,CAAE,CACZA,MAAAA,CAAO0iH,cAAc,CAAC,IAAI,EAC1B,OAAO,IAAI,CAEZ9rH,SAAU,CACT,IAAI,CAACljC,MAAM,EAAA,CACX,MAAMutJ,QAAAA,CAAW,IAAI,CAACC,SAAS,CAC/B,MAAOD,QAAAA,CAASz3J,MAAM,CAAE,CACvB,MAAM45J,MAAQnC,QAAAA,CAASp2J,GAAG,EAC1Bu4J,CAAAA,MAAMppJ,OAAO,CAAG,KAChBopJ,KAAAA,CAAMxsH,OAAO,GACd,CACA,IAAI,CAACrkC,IAAI,CAAC,UAAW,IAAI,CAAA,CACzB,IAAI,CAAC7B,GAAG,GACT,CACA2vD,IAAAA,CAAKsrC,IAAI,CAAEv6F,KAAK,CAAE,CACjB,MAAMqmF,OAAAA,CAAU,EAAE,CAClB,MAAMhsF,IAAAA,CAAOo1J,WAAWl1D,IAAAA,CAAMv6F,KAAAA,CAAAA,CAC9B,IAAI,CAAC6E,OAAO,CAAC,IAAC8qJ,EAAAA,CACb,GAAIt1J,IAAAA,CAAKs1J,IAAAA,CAAAA,CAAO,CACftpE,OAAAA,CAAQptF,IAAI,CAAC02J,IAAAA,EACd,CACD,CAAA,CAAA,CACA,OAAOtpE,OACR,CACA4rE,OAAAA,CAAQ13D,IAAI,CAAEv6F,KAAK,CAAE,CACpB,MAAM3F,KAAOo1J,UAAAA,CAAWl1D,IAAAA,CAAMv6F,OAC9B,OAAO4vJ,QAAAA,CAAS,IAAI,CAAEv1J,KACvB,CACA63J,SAAAA,CAAU,GAAGrpJ,KAAK,CAAE,CACnB,MAAMw9E,OAAAA,CAAU,EAAE,CAClB,MAAM8rE,UAAY,CAACxC,IAAAA,CAAMyC,aACxB,GAAIA,SAAAA,EAAazC,KAAKjnJ,IAAI,CAACxJ,GAAG,CAAA,GAAI2J,OAAQ,CACzCw9E,OAAAA,CAAQptF,IAAI,CAAC02J,IAAAA,EACd,CACA,IAAK,IAAIx3J,GAAK,CAAA,CAAGA,EAAAA,CAAKw3J,KAAKG,SAAS,CAAC13J,MAAM,CAAED,EAAAA,EAAAA,CAAM,CAClDg6J,SAAAA,CAAUxC,IAAAA,CAAKG,SAAS,CAAC33J,GAAG,CAAE,IAAA,EAC/B,CACD,CAAA,CACAg6J,SAAAA,CAAU,IAAI,CAAE,KAAA,CAAA,CAChB,OAAO9rE,OACR,CACAghE,UAAAA,CAAWpsJ,IAAI,CAAE,CAChB,OAAO,IAAI,CAACg3J,OAAO,CAAC,MAAA,CAAQh3J,KAC7B,CACAo3J,UAAAA,CAAWC,KAAK,CAAE,CACjB,MAAMz5J,KAAAA,CAAQ1B,KAAAA,CAAMC,OAAO,CAACk7J,KAAAA,CAAAA,CAASA,MAAQA,KAAAA,CAAMx5J,KAAK,CAAC,GAAA,CAAA,CACzD,IAAIZ,OAAS,IAAI,CACjB,IAAK,IAAIC,GAAK,CAAA,CAAGo6J,IAAAA,CAAO15J,MAAMT,MAAM,CAAED,GAAKo6J,IAAAA,CAAM,EAAEp6J,GAAI,CACtDD,MAAAA,CAASA,OAAO23J,QAAQ,CAAC5gG,IAAI,CAAEz3D,IAAOA,EAAAA,CAAGyD,IAAI,GAAKpC,KAAK,CAACV,EAAAA,CAAG,CAAA,CAC3D,GAAI,CAACD,MAAAA,CAAQ,CACZ,OAAO,IACR,CACD,CACA,OAAOA,MACR,CACA2M,OAAAA,CAAQlF,QAAQ,CAAE6yJ,OAAO,CAAE,CAC1B7yJ,QAAAA,CAASkC,IAAI,CAAC2wJ,QAAS,IAAI,CAAA,CAC3B,MAAM3C,QAAAA,CAAW,IAAI,CAACC,SAAS,CAC/B,MAAM9/I,GAAAA,CAAM6/I,QAAAA,CAASz3J,MAAM,CAC3B,IAAK,IAAID,EAAAA,CAAK,CAAA,CAAGA,GAAK6X,GAAAA,CAAK,EAAE7X,EAAAA,CAAI,CAChC03J,QAAQ,CAAC13J,EAAAA,CAAG,CAAC0M,OAAO,CAAClF,SAAU6yJ,OAAAA,EAChC,CACD,CACAC,cAAAA,CAAe9C,IAAI,CAAE,CACpB,IAAIxmJ,OAAS,IAAI,CAACP,OAAO,CACzB,MAAOO,MAAAA,CAAQ,CACd,GAAIA,MAAAA,GAAWwmJ,IAAAA,CAAM,CACpB,OAAO,IACR,CACAxmJ,MAAAA,CAASA,MAAAA,CAAOP,QAAO,CAExB,OAAO,KACR,CACA8pJ,aAAa/C,IAAI,CAAE,CAClB,OAAOA,IAAAA,CAAK8C,cAAc,CAAC,IAAI,CAChC,CACA3yI,gBAAiB,CAChB,IAAI,CAACgoI,iBAAiB,EAAA,CAAGhoI,cAAc,CAAC,IAAI,CAAC6xI,WAAW,CAAA,CACxD,OAAO,IAAI,CAACA,WAAW,CAExBgB,mBAAAA,EAAsB,CACrB,IAAI,CAACnB,aAAa,CAAC1xI,cAAc,CAAC,IAAI,CAAC4xI,gBAAgB,CAAA,CACvD,OAAO,IAAI,CAACA,gBAAgB,CAE7BkB,gBAAAA,EAAmB,CAClB,OAAO,IAAI,CAACrB,aAAa,CAE1BsB,gBAAAA,EAAmB,CAClB,OAAO,IAAI,CAACrB,aACb,CACAsB,aAAAA,EAAgB,CACf,OAAO,IAAI,CAACrB,UAAU,CAEvBsB,mBAAoB,CACnB,GAAI,IAAI,CAAClB,WAAW,CAAE,CACrB,IAAI,CAACD,cAAc,CAAC5yI,MAAM,CAAC,IAAI,CAACuyI,aAAa,CAAE,IAAI,CAACC,aAAa,CAAE,IAAI,CAACC,UAAU,CAClF,CAAA,IAAI,CAACI,WAAW,CAAG,MACpB,CACA,OAAO,IAAI,CAACD,cAAc,CAE3BvpB,WAAAA,EAAc,CACb,IAAI,CAACyf,iBAAiB,EAAA,CAAG1oI,cAAc,CAAC,IAAI,CAACkpH,QAAQ,CAAA,CACrD,OAAO,IAAI,CAACA,QAAQ,CAErB0qB,aAAc,CACb,IAAI,CAAC3D,QAAQ,CAAC93I,WAAW,CAAC,IAAI,CAACuwI,iBAAiB,EAAA,CAAA,CAChD,OAAO,IAAI,CAACuH,QACb,CACAhwI,QAAAA,EAAW,CACV,GAAI,CAAC,IAAI,CAAC4zI,MAAM,CAAE,CACjB,IAAI,CAACA,MAAM,CAAG,IAAIj/I,KACnB,CACA,OAAO,IAAI,CAAC8zI,iBAAiB,EAAA,CAAGzoI,QAAQ,CAAC,IAAI,CAAC4zI,MAAM,CACrD,CACAnL,mBAAoB,CACnB,GAAI,CAAC,IAAI,CAAC+J,WAAW,EAAI,CAAC,IAAI,CAACC,WAAW,CAAE,CAC3C,OAAO,IAAI,CAAC9kI,cAAc,CAE3B,GAAI,IAAI,CAACpkB,OAAO,CAAE,CACjB,IAAI,CAACA,OAAO,CAACk/I,iBAAiB,GAC/B,CACA,IAAI,CAACoL,KAAK,EAAA,CACV,OAAO,IAAI,CAAClmI,cAAc,CAE3B,IAAImmI,cAAAA,EAAiB,CACpB,GAAI,IAAI,CAACC,eAAe,GAAK,EAAG,CAC/B,IAAI,CAACA,eAAe,CAAG,IAAI,CAACtL,iBAAiB,EAAA,CAAGvoI,UAAS,CAE1D,OAAO,IAAI,CAAC6zI,eAAe,CAE5B9wJ,MAAAA,EAAS,CACR,IAAI,CAACsG,OAAO,EAAEyqJ,WAAAA,CAAY,IAAI,EAC/B,CACAC,SAASnqJ,MAAM,CAAE3L,KAAK,CAAE,CACvB,IAAI,CAAC8E,MAAM,EAAA,CACX,GAAI6G,OAAQ,CACX,GAAI3L,OAAS,CAAA,CAAG,CACf2L,OAAOoqJ,WAAW,CAAC,IAAI,CAAE/1J,KAAAA,EAC1B,MAAO,CACN2L,MAAAA,CAAOqqJ,QAAQ,CAAC,IAAI,EACrB,CACD,CACD,CACAC,mBAAAA,CAAoB/+J,EAAE,CAAEof,EAAE,CAAEkB,EAAE,CAAE,CAC/B,IAAI,CAACw8I,aAAa,CAAChyI,kBAAkB,CAAC9qB,EAAAA,CAAIof,EAAAA,CAAIkB,EAAAA,CAAAA,CAC9C,GAAI,CAAC,IAAI,CAAC68I,WAAW,CAAE,CACtB,IAAI,CAAC6B,aAAa,GACnB,CACD,CACAC,gBAAAA,CAAiBj/J,EAAE,CAAEof,EAAE,CAAEkB,EAAE,CAAE,CAC5B,GAAItgB,EAAAA,YAAcsf,KAAM,CACvB,IAAI,CAACu9I,aAAa,CAACr6J,IAAI,CAACxC,EAAAA,EACzB,MAAO,CACN,IAAI,CAAC68J,aAAa,CAACzyJ,GAAG,CAACpK,EAAAA,CAAIof,GAAIkB,EAAAA,EAChC,CACA,GAAI,CAAC,IAAI,CAAC68I,WAAW,CAAE,CACtB,IAAI,CAAC6B,aAAa,GACnB,CACD,CACAE,gBAAAA,CAAiBl/J,EAAE,CAAEof,EAAE,CAAEkB,EAAE,CAAE6C,CAAC,CAAE,CAC/B,GAAInjB,EAAAA,YAAcwrB,KAAM,CACvB,IAAI,CAACsxI,aAAa,CAACt6J,IAAI,CAACxC,EAAAA,EACzB,MAAO,CACN,IAAI,CAAC88J,aAAa,CAAC1yJ,GAAG,CAACpK,EAAAA,CAAIof,GAAIkB,EAAAA,CAAI6C,CAAAA,EACpC,CACA,GAAI,CAAC,IAAI,CAACg6I,WAAW,CAAE,CACtB,IAAI,CAAC6B,aAAa,GACnB,CACD,CACAG,aAAAA,CAAcn/J,EAAE,CAAEof,EAAE,CAAEkB,EAAE,CAAE,CACzB,GAAItgB,EAAAA,YAAcsf,KAAM,CACvB,IAAI,CAACy9I,UAAU,CAACv6J,IAAI,CAACxC,EAAAA,EACtB,MAAO,CACN,IAAI,CAAC+8J,UAAU,CAAC3yJ,GAAG,CAACpK,EAAAA,CAAIof,GAAIkB,EAAAA,EAC7B,CACA,GAAI,CAAC,IAAI,CAAC68I,WAAW,CAAE,CACtB,IAAI,CAAC6B,aAAa,GACnB,CACD,CACAA,aAAAA,EAAgB,CACf,GAAI,CAAC,IAAI,CAAC7B,WAAW,CAAE,CACtB,IAAI,CAACA,WAAW,CAAG,IAAA,CACnB,GAAI,CAAC,IAAI,CAACC,WAAW,CAAE,CACtB,IAAI,CAACgC,aAAa,GACnB,CACD,CACD,CACAzC,qBAAAA,EAAwB,CACvB,IAAIllI,CAAAA,CAAI,IAAI,CAACvjB,OAAO,CACpB,MAAOujB,CAAAA,CAAG,CACTA,CAAAA,CAAEilI,OAAO,CAAG,KAAA,CACZjlI,CAAAA,CAAIA,EAAEvjB,QACP,CACD,CACAkrJ,aAAAA,EAAgB,CACf,GAAI,CAAC,IAAI,CAAChC,WAAW,CAAE,CACtB,IAAI,CAACT,qBAAqB,GAC3B,CACA,IAAI,CAAC0C,qBAAqB,GAC3B,CACAA,qBAAAA,EAAwB,CACvB,GAAI,CAAC,IAAI,CAACjC,WAAW,CAAE,CACtB,IAAI,CAACV,OAAO,CAAG,KACf,CAAA,IAAI,CAACU,WAAW,CAAG,KACnB,IAAK,IAAI35J,GAAK,CAAA,CAAGA,EAAAA,CAAK,IAAI,CAAC23J,SAAS,CAAC13J,MAAM,CAAED,KAAM,CAClD,GAAI,CAAC,IAAI,CAAC23J,SAAS,CAAC33J,GAAG,CAAC25J,WAAW,CAAE,CACpC,IAAI,CAAChC,SAAS,CAAC33J,GAAG,CAAC47J,qBAAqB,GACzC,CACD,CACD,CACA,IAAI,CAACxD,YAAY,CAAG,IACpB,CAAA,IAAI,CAAC6C,eAAe,CAAG,CACvB,CAAA,IAAI,CAAC5N,QAAQ,GACd,CACAjd,WAAAA,CAAY7zI,EAAE,CAAEof,EAAE,CAAEkB,EAAE,CAAE,CACvB,GAAItgB,cAAcsf,IAAAA,CAAM,CACvBs0H,SAASpxI,IAAI,CAACxC,IACf,CAAA,KAAO,CACN4zI,SAASxpI,GAAG,CAACpK,GAAIof,EAAAA,CAAIkB,EAAAA,EACtB,CACA,GAAI,IAAI,CAACpM,OAAO,GAAK,IAAA,CAAM,CAC1B,IAAI,CAAC2oJ,aAAa,CAACr6J,IAAI,CAACoxI,UACzB,CAAA,KAAO,CACN8mB,aAAal4J,IAAI,CAAC,IAAI,CAAC0R,OAAO,CAACk/I,iBAAiB,EAAA,CAAA,CAAI1pI,MAAM,EAAA,CAC1DgxI,YAAAA,CAAa5yI,cAAc,CAAC8rH,SAAU,IAAI,CAACipB,aAAa,EACzD,CACA,GAAI,CAAC,IAAI,CAACM,WAAW,CAAE,CACtB,IAAI,CAAC6B,aAAa,GACnB,CACD,CACAM,WAAAA,CAAYt/J,EAAE,CAAEof,EAAE,CAAEkB,EAAE,CAAE6C,CAAC,CAAE,CAC1B,GAAInjB,EAAAA,YAAcwrB,IAAAA,CAAM,CACvBmvI,QAAAA,CAASn4J,IAAI,CAACxC,EAAAA,EACf,CAAA,KAAO,CACN26J,QAAAA,CAASvwJ,GAAG,CAACpK,EAAAA,CAAIof,EAAAA,CAAIkB,EAAAA,CAAI6C,CAAAA,EAC1B,CACA,GAAI,IAAI,CAACjP,OAAO,GAAK,KAAM,CAC1B,IAAI,CAAC4oJ,aAAa,CAACt6J,IAAI,CAACm4J,QAAAA,EACzB,MAAO,CACN,MAAM4E,UAAY,IAAI,CAACrrJ,OAAO,CAACoqJ,WAAW,EAAA,CAC1C1D,YAAAA,CAAap4J,IAAI,CAAC+8J,SAAAA,CAAAA,CAAW71I,MAAM,EAAA,CACnC,IAAI,CAACozI,aAAa,CAACt6J,IAAI,CAACo4J,YAAAA,CAAAA,CAAc75I,GAAG,CAAC45I,QAAAA,EAC3C,CACA,GAAI,CAAC,IAAI,CAACwC,WAAW,CAAE,CACtB,IAAI,CAAC6B,aAAa,GACnB,CACD,CACAQ,uBAAuBv3I,SAAS,CAAEw3I,SAAS,CAAE,CAC5C,GAAI,IAAI,CAACvrJ,OAAO,GAAK,IAAA,CAAM,CAC1B,IAAI,CAAC2oJ,aAAa,CAACr6J,IAAI,CAACylB,SAAAA,CAAAA,CACxB,IAAI,CAAC60I,aAAa,CAACt6J,IAAI,CAACi9J,SAAAA,EACzB,CAAA,KAAO,CACN,MAAMC,SAAAA,CAAY,IAAI,CAACxrJ,OAAO,CAACk/I,iBAAiB,GAChDsH,YAAAA,CAAal4J,IAAI,CAACk9J,SAAAA,CAAAA,CAAWh2I,MAAM,GACnCgxI,YAAAA,CAAa5yI,cAAc,CAACG,SAAAA,CAAW,IAAI,CAAC40I,aAAa,CAAA,CACzD,IAAI,CAACC,aAAa,CAACj6I,WAAW,CAAC63I,YAAAA,CAAAA,CAAc35I,GAAG,CAAC0+I,SAAAA,EAClD,CACA,GAAI,CAAC,IAAI,CAACtC,WAAW,CAAE,CACtB,IAAI,CAAC6B,aAAa,GACnB,CACD,CACAW,cAAAA,CAAe3/J,EAAE,CAAEof,EAAE,CAAEkB,EAAE,CAAE,CAC1B,IAAI,CAACw8I,aAAa,CAAChyI,kBAAkB,CAAC9qB,EAAAA,CAAIof,EAAAA,CAAIkB,IAC9C,GAAI,IAAI,CAACpM,OAAO,GAAK,KAAM,CAC1B,MAAMqrJ,UAAY,IAAI,CAACrrJ,OAAO,CAACoqJ,WAAW,EAAA,CAC1C1D,YAAAA,CAAap4J,IAAI,CAAC+8J,SAAAA,CAAAA,CAAW71I,MAAM,EAAA,CACnC,IAAI,CAACozI,aAAa,CAAC97I,IAAI,CAAC45I,YAAAA,CAAc,IAAI,CAACkC,aAAa,EACzD,CACA,GAAI,CAAC,IAAI,CAACK,WAAW,CAAE,CACtB,IAAI,CAAC6B,aAAa,GACnB,CACD,CACAF,QAAAA,CAAS7D,IAAI,CAAE,CACd,IAAI,CAAC2E,mBAAmB,CAAC3E,MACzB,IAAI,CAACG,SAAS,CAAC72J,IAAI,CAAC02J,IAAAA,CAAAA,CACpB,IAAI,CAAC4E,cAAc,CAAC5E,IAAAA,EACrB,CACA6E,yBAAyB7E,IAAI,CAAE,CAC9B,MAAM8E,IAAAA,CAAO9E,KAAKtnB,WAAW,EAAA,CAC7B,MAAMqsB,IAAAA,CAAO/E,IAAAA,CAAKqD,WAAW,EAAA,CAC7B,IAAI,CAACsB,mBAAmB,CAAC3E,IAAAA,CAAAA,CACzBA,IAAAA,CAAKpnB,WAAW,CAAC2mB,QAAAA,CAASh4J,IAAI,CAAC,IAAI,CAAC81B,cAAc,CAAA,CAAE5O,MAAM,EAAA,CAAG5B,cAAc,CAACi4I,IAAAA,CAAAA,CAAAA,CAC5E9E,IAAAA,CAAKqE,WAAW,CAAC7E,QAAQj4J,IAAI,CAAC,IAAI,CAAC87J,WAAW,IAAI50I,MAAM,EAAA,CAAG3I,GAAG,CAACi/I,OAC/D,IAAI,CAAC5E,SAAS,CAAC72J,IAAI,CAAC02J,IAAAA,CAAAA,CACpB,IAAI,CAAC4E,cAAc,CAAC5E,IAAAA,EACrB,CACA4D,YAAY5D,IAAI,CAAEnyJ,KAAK,CAAE,CACxB,IAAI,CAAC82J,mBAAmB,CAAC3E,IAAAA,CAAAA,CACzB,IAAI,CAACG,SAAS,CAAC/uJ,MAAM,CAACvD,KAAAA,CAAO,CAAA,CAAGmyJ,IAAAA,CAAAA,CAChC,IAAI,CAAC4E,cAAc,CAAC5E,IAAAA,EACrB,CACA2E,oBAAoB3E,IAAI,CAAE,CACzBA,IAAAA,CAAKrtJ,MAAM,GACZ,CACAqyJ,gBAAAA,CAAiB15J,IAAI,CAAE25J,aAAa,CAAEzrJ,MAAM,CAAE,CAC7C,IAAI,CAAChI,IAAI,CAAClG,KAAMkO,MAAAA,CAAAA,CAChB,IAAK,IAAIhR,EAAAA,CAAK,CAAA,CAAGA,GAAK,IAAI,CAAC23J,SAAS,CAAC13J,MAAM,CAAED,EAAAA,EAAAA,CAAM,CAClD,IAAI,CAAC23J,SAAS,CAAC33J,EAAAA,CAAG,CAACw8J,gBAAgB,CAACC,cAAeA,aAAAA,CAAezrJ,MAAAA,EACnE,CACD,CACAorJ,cAAAA,CAAe5E,IAAI,CAAE,CACpBA,KAAK/mJ,OAAO,CAAG,IAAI,CACnB,MAAMisJ,mBAAqBlF,IAAAA,CAAKz2F,QAAQ,EAAI,IAAI,CAACl6D,OAAO,CACxD,GAAI2wJ,IAAAA,CAAKc,mBAAmB,GAAKoE,kBAAAA,CAAoB,CACpDlF,KAAKc,mBAAmB,CAAGoE,mBAC3BlF,IAAAA,CAAKa,4BAA4B,CAACb,IAAAA,CAAMkF,kBAAAA,EACzC,CACAlF,IAAAA,CAAKmF,iBAAiB,EAAA,CACtBnF,IAAAA,CAAKmE,aAAa,EAAA,CAClB,GAAI,IAAI,CAAC1C,OAAO,CAAE,CACjBzB,IAAAA,CAAK0B,qBAAqB,GAC3B,CACA1B,KAAKgF,gBAAgB,CAAC,SAAU,iBAAA,CAAmB,IAAI,EACvD,GAAI,IAAI,CAACxzJ,IAAI,CAAE,IAAI,CAACA,IAAI,CAAC,aAAA,CAAewuJ,MACzC,CACAmF,iBAAAA,EAAoB,CACnB,IAAI,CAAC5D,WAAW,CAAG,IAAI,CAACtoJ,OAAO,CAAG,IAAI,CAACA,OAAO,CAACsoJ,WAAW,CAAG,CAAA,CAAI,CAAA,CACjE,IAAK,IAAI/4J,EAAAA,CAAK,EAAG6X,GAAAA,CAAM,IAAI,CAAC8/I,SAAS,CAAC13J,MAAM,CAAED,GAAK6X,GAAAA,CAAK7X,EAAAA,EAAAA,CAAM,CAC7D,IAAI,CAAC23J,SAAS,CAAC33J,GAAG,CAAC28J,iBAAiB,GACrC,CACD,CACAzB,YAAYrB,KAAK,CAAE,CAClB,MAAMx0J,KAAAA,CAAQ,IAAI,CAACsyJ,SAAS,CAAC5uJ,OAAO,CAAC8wJ,OACrC,GAAIx0J,KAAAA,GAAU,EAAC,CAAG,CACjB,MACD,CACA,IAAI,CAACsyJ,SAAS,CAAC/uJ,MAAM,CAACvD,MAAO,CAAA,CAC7Bw0J,CAAAA,MAAMppJ,OAAO,CAAG,KAChBopJ,KAAAA,CAAM2C,gBAAgB,CAAC,QAAA,CAAU,iBAAA,CAAmB,IAAI,CAAA,CACxD,IAAI,CAACxzJ,IAAI,CAAC,aAAA,CAAe6wJ,KAAAA,EAC1B,CACAkB,KAAAA,EAAQ,CACP,GAAI,IAAI,CAACrB,WAAW,CAAE,CACrB,IAAI,CAACD,cAAc,CAAC5yI,MAAM,CAAC,IAAI,CAACuyI,aAAa,CAAE,IAAI,CAACC,aAAa,CAAE,IAAI,CAACC,UAAU,CAClF,CAAA,IAAI,CAACI,WAAW,CAAG,MACpB,CACA,GAAI,IAAI,CAACC,WAAW,CAAE,CACrB,GAAI,IAAI,CAAClpJ,OAAO,GAAK,IAAA,CAAM,CAC1B,IAAI,CAACokB,cAAc,CAAC91B,IAAI,CAAC,IAAI,CAAC06J,cAAc,EAC7C,CAAA,KAAO,CACN,GAAI,IAAI,CAACG,iBAAiB,CAAE,CAC3B,IAAIgD,iBACJ,MAAM5rJ,MAAAA,CAAS,IAAI,CAACP,OAAO,CAC3B,IAAI0W,MAAAA,CAAS,IAAI,CAACmyI,UAAU,CAC5B,IAAIuD,oBAAAA,CAAuB7rJ,OAC3B,GAAI6rJ,oBAAAA,CAAsB,CACzB,MAAOA,sBAAwBA,oBAAAA,CAAqBjD,iBAAiB,CAAE,CACtEiD,oBAAAA,CAAuBA,qBAAqBpsJ,QAC7C,CACA,GAAIosJ,oBAAAA,CAAsB,CACzBA,oBAAAA,CAAuBA,oBAAAA,CAAqBpsJ,OAAO,CACnD,GAAIosJ,qBAAsB,CACzBD,gBAAAA,CAAmBC,oBAAAA,CAAqBhoI,cAAc,CAAC3N,QAAQ,EAAA,CAC/D2vI,qBAAqBt5I,IAAI,CAACq/I,iBAAkB,IAAI,CAACtD,UAAU,CAAA,CAC3DnyI,OAAS0vI,qBACV,CACD,CACD,CACAD,mBAAAA,CAAoBx3I,WAAW,CAACpO,MAAAA,CAAO6jB,cAAc,CAAA,CACrD8hI,mBAAmBp5I,IAAI,CAACq5I,oBAAqB,IAAI,CAACyC,aAAa,CAAA,CAC/D,IAAIyD,QAAU9rJ,MAAAA,CAAO6jB,cAAc,CACnC,GAAI7jB,MAAAA,CAAO4oJ,iBAAiB,CAAE,CAC7B9C,8BAA8Bv5I,IAAI,CAACq/I,gBAAAA,CAAkB5rJ,MAAAA,CAAO2pJ,aAAa,EAAA,CAAA,CACzElE,2BAAAA,CAA4B5vI,MAAM,CACjC7V,MAAAA,CAAO6jB,cAAc,CAAC5N,cAAc,CAACyvI,kBAAAA,CAAAA,CACrCE,mBAAAA,CACAE,+BAEDgG,OAAAA,CAAUrG,4BACX,CACAqG,OAAAA,CAAQz4I,cAAc,CAAC,IAAI,CAAC+0I,aAAa,CAAE1C,oBAC3C,IAAI,CAAC7hI,cAAc,CAAChO,MAAM,CAAC6vI,kBAAAA,CAAoBC,kBAAAA,CAAoBxvI,QACpE,CAAA,KAAO,CACN,IAAI,CAAC0N,cAAc,CAACzQ,UAAU,CAAC,IAAI,CAAC3T,OAAO,CAACokB,cAAc,CAAE,IAAI,CAAC4kI,cAAc,EAChF,CACD,CACA,IAAI,CAACE,WAAW,CAAG,MACpB,CACD,CACAoD,aAAAA,EAAgB,CACf,GAAI,CAAC,IAAI,CAACh8F,QAAQ,CAAE,CACnB,MACD,CACA,GAAI,IAAI,CAACk4F,OAAO,CAAE,CACjB,MACD,CACA,IAAI,CAACA,OAAO,CAAG,IAAA,CACf,GAAI,IAAI,CAACS,WAAW,EAAI,IAAI,CAACC,WAAW,CAAE,CACzC,IAAI,CAACoB,KAAK,GACX,CACA,MAAMrD,QAAAA,CAAW,IAAI,CAACC,SAAS,CAC/B,IAAK,IAAI33J,GAAK,CAAA,CAAG6X,GAAAA,CAAM6/I,SAASz3J,MAAM,CAAED,EAAAA,CAAK6X,GAAAA,CAAK7X,KAAM,CACvD03J,QAAQ,CAAC13J,EAAAA,CAAG,CAAC+8J,aAAa,GAC3B,CACD,CACAC,MAAAA,CAAOzgK,EAAE,CAAEof,EAAE,CAAEkB,EAAE,CAAEogJ,EAAAA,CAAK,CAAC,CAAEC,EAAAA,CAAK,CAAC,CAAEC,GAAK,CAAC,CAAE,CAC1C,GAAI5gK,EAAAA,YAAcsf,KAAM,CACvBshH,MAAAA,CAAOp+H,IAAI,CAACxC,IACZ,GAAIof,EAAAA,YAAcE,KAAM,CACvBw7I,EAAAA,CAAGt4J,IAAI,CAAC4c,EAAAA,EACT,CAAA,KAAO,CACN07I,GAAGt4J,IAAI,CAAC8c,KAAKsC,EAAE,EAChB,CACD,CAAA,KAAO,GAAItB,KAAO,MAAK,CAAG,CACzB,MACD,CAAA,KAAO,CACNsgH,MAAAA,CAAOx2H,GAAG,CAACpK,EAAAA,CAAIof,EAAAA,CAAIkB,EAAAA,CAAAA,CACnBw6I,EAAAA,CAAG1wJ,GAAG,CAACs2J,EAAAA,CAAIC,GAAIC,EAAAA,EAChB,CACA/F,OAAO7yI,SAAS,CAAC,IAAI,CAAC2rH,WAAW,GAAI/S,MAAAA,CAAQk6B,EAAAA,CAAAA,CAC7CH,SAAS93I,WAAW,CAACg4I,QACrB,IAAI,CAACyE,WAAW,CAAC3E,UAClB,CACAkG,SAAAA,CAAU7gK,EAAE,CAAEof,EAAE,CAAEkB,EAAE,CAAE,CACrB,GAAItgB,EAAAA,YAAcsf,KAAM,CACvBs0H,QAAAA,CAASpxI,IAAI,CAACxC,EAAAA,EACf,MAAO,CACN4zI,QAAAA,CAASxpI,GAAG,CAACpK,GAAIof,EAAAA,CAAIkB,EAAAA,EACtB,CACAszH,QAAAA,CAAS9/H,GAAG,CAAC,IAAI,CAAC6/H,WAAW,EAAA,CAAA,CAC7B,IAAI,CAACE,WAAW,CAACD,UAClB,CACAktB,cAAAA,CAAe9gK,EAAE,CAAEof,EAAE,CAAEkB,EAAE,CAAE,CAC1B,GAAItgB,cAAcsf,IAAAA,CAAM,CACvBs0H,SAASpxI,IAAI,CAACxC,IACf,CAAA,KAAO,CACN4zI,SAASxpI,GAAG,CAACpK,GAAIof,EAAAA,CAAIkB,EAAAA,EACtB,CACA,IAAI,CAACw8I,aAAa,CAAC33I,eAAe,CAACyuH,QAAAA,CAAUA,UAC7C,IAAI,CAACipB,aAAa,CAAC/oJ,GAAG,CAAC8/H,QAAAA,CAAAA,CACvB,GAAI,CAAC,IAAI,CAACupB,WAAW,CAAE,CACtB,IAAI,CAAC6B,aAAa,GACnB,CACD,CACAv5I,MAAAA,CAAOzlB,EAAE,CAAEof,EAAE,CAAEkB,EAAE,CAAE,CAClBq6I,SAAS7vI,kBAAkB,CAAC9qB,GAAIof,EAAAA,CAAIkB,EAAAA,CAAAA,CACpC,GAAI,IAAI,CAACpM,OAAO,GAAK,IAAA,CAAM,CAC1B,IAAI,CAAC4oJ,aAAa,CAAC97I,IAAI,CAAC25I,QAAAA,CAAU,IAAI,CAACmC,aAAa,EACrD,CAAA,KAAO,CACN,MAAMiE,GAAAA,CAAM,IAAI,CAACzC,WAAW,GAC5B,MAAMiB,SAAAA,CAAY,IAAI,CAACrrJ,OAAO,CAACoqJ,WAAW,GAC1C1D,YAAAA,CAAap4J,IAAI,CAAC+8J,SAAAA,CAAAA,CAAW71I,MAAM,GACnCixI,QAAAA,CAAS35I,IAAI,CAAC45I,YAAAA,CAAcD,QAAAA,CAAAA,CAC5B,IAAI,CAACmC,aAAa,CAAC97I,IAAI,CAAC25I,QAAAA,CAAUoG,GAAAA,EACnC,CACA,GAAI,CAAC,IAAI,CAAC5D,WAAW,CAAE,CACtB,IAAI,CAAC6B,aAAa,GACnB,CACD,CACAgC,WAAAA,CAAYhhK,EAAE,CAAEof,EAAE,CAAEkB,EAAE,CAAE,CACvBq6I,QAAAA,CAAS7vI,kBAAkB,CAAC9qB,EAAAA,CAAIof,GAAIkB,EAAAA,CAAAA,CACpC,IAAI,CAACw8I,aAAa,CAAC/7I,GAAG,CAAC45I,QAAAA,CAAAA,CACvB,GAAI,CAAC,IAAI,CAACwC,WAAW,CAAE,CACtB,IAAI,CAAC6B,aAAa,GACnB,CACD,CA7kBA,WAAA,CAAYz4J,KAAO,UAAU,CAAE,CAC9B,KAAK,EAAA,CAhCNA,gBAAAA,CAAAA,IAAAA,CAAAA,MAAAA,CAAAA,MAAAA,CAAAA,CACAyN,gBAAAA,CAAAA,IAAAA,CAAAA,OAAO,IAAIH,IAAAA,CAAK,IAAI,CAAA,CAAA,CAEpBgpJ,gBAAAA,CAAAA,IAAAA,CAAAA,eAAAA,CAAgB,IAAIv9I,MACpBw9I,gBAAAA,CAAAA,IAAAA,CAAAA,eAAAA,CAAgB,IAAItxI,IAAAA,CAAAA,CACpBuxI,gBAAAA,CAAAA,IAAAA,CAAAA,aAAa,IAAIz9I,IAAAA,CAAK,EAAG,CAAA,CAAG,CAAA,CAAA,CAAA,CAC5B09I,sBAAAA,kBAAAA,CAAmB,IAAI19I,MAGvBs0H,gBAAAA,CAAAA,IAAAA,CAAAA,UAAAA,CAAW,IAAIt0H,IAAAA,CAAAA,CACfq7I,gBAAAA,CAAAA,IAAAA,CAAAA,UAAAA,CAAW,IAAInvI,MACfyxI,gBAAAA,CAAAA,IAAAA,CAAAA,aAAAA,CAAc,IAAI39I,IAAAA,CAAAA,CAClBi/I,gBAAAA,CAAAA,IAAAA,CAAAA,SAAS,IAAA,CAAA,CACTrB,gBAAAA,CAAAA,IAAAA,CAAAA,iBAAiB,IAAIj3I,IAAAA,CAAAA,CACrBk3I,sBAAAA,aAAAA,CAAc,KAAA,CAAA,CACdrM,sBAAAA,UAAAA,CAAW,CAAA,CAAA,CACX4L,sBAAAA,SAAAA,CAAU,KAAA,CAAA,CACVpkI,gBAAAA,CAAAA,IAAAA,CAAAA,gBAAAA,CAAiB,IAAIrS,IAAAA,CAAAA,CACrBm3I,gBAAAA,CAAAA,IAAAA,CAAAA,cAAc,KAAA,CAAA,CACdsB,gBAAAA,CAAAA,IAAAA,CAAAA,kBAAkB,CAAA,CAAA,CAClB9C,gBAAAA,CAAAA,IAAAA,CAAAA,gBAAgB,IAAI15I,IAAAA,CAAAA,CACpB25I,sBAAAA,cAAAA,CAAe,IAAA,CAAA,CACflhJ,sBAAAA,QAAAA,CAAS,IAAA,CAAA,CACT4gJ,sBAAAA,KAAAA,CAAM,IAAA,CAAA,CACNE,gBAAAA,CAAAA,IAAAA,CAAAA,UAAAA,CAAW,MACXvnJ,gBAAAA,CAAAA,IAAAA,CAAAA,SAAAA,CAAU,MACVknJ,gBAAAA,CAAAA,IAAAA,CAAAA,WAAAA,CAAY,EAAE,CAAA,CACdoB,gBAAAA,CAAAA,IAAAA,CAAAA,aAAAA,CAAc,CAAA,CAAA,CACdh4F,sBAAAA,UAAAA,CAAW,IAAA,CAAA,CACXu3F,sBAAAA,qBAAAA,CAAsB,KAAA,CAAA,CACtBsB,sBAAAA,mBAAAA,CAAoB,KAAA,CAGnB,CAAA,IAAI,CAAC92J,IAAI,CAAGA,KACb,CA2kBD,CAAA,CAEA,IAAI06J,0BAAAA,CAA6B,IAAI/uH,YACrC,SAASgvH,kBAAAA,CAAmBvvH,MAAM,CAAA,CACjC,MAAMy8G,SAAW6S,0BAAAA,CAA2B9gK,GAAG,CAACwxC,MAAAA,CAAAA,CAChD,OAAOy8G,QACR,CACA,SAAS+S,kBAAAA,CAAmBxvH,MAAM,CAAEy8G,QAAQ,CAAA,CAC3C6S,2BAA2B9gK,GAAG,CAACwxC,OAAQ,IAAA,CACtC,OAAOy8G,QACR,CAAA,EACD,CAEA,IAAIgT,eAAAA,CAAkB,KAAA,CAErBtwH,SAAU,CACT,IAAI,CAACiL,KAAK,CAAC5rC,OAAO,CAAC,CAAC0zD,QAAAA,CAAUG,MAAAA,GAAAA,CAC7BA,OAAOlzB,OAAO,GACf,GACA,IAAI,CAACiL,KAAK,CAAC5vC,KAAK,GACjB,CACAk1J,MAAAA,CAAOr9F,MAAM,CAAE,CACd,MAAMH,QAAAA,CAAW,CAAC,IAAI,CAAC9nB,KAAK,CAAC57C,GAAG,CAAC6jE,MAAAA,CAAAA,EAAW,CAAA,EAAK,CAAA,CACjD,IAAI,CAACjoB,KAAK,CAAC3xC,GAAG,CAAC45D,OAAQH,QAAAA,EACxB,CACAy9F,MAAAA,CAAOt9F,MAAM,CAAE,CACd,GAAIA,OAAQ,CACX,IAAIH,SAAW,IAAI,CAAC9nB,KAAK,CAAC57C,GAAG,CAAC6jE,MAAAA,CAAAA,CAC9B,GAAIH,SAAU,CACbA,QAAAA,EAAAA,CACA,GAAIA,QAAAA,GAAa,CAAA,CAAG,CACnB,IAAI,CAAC9nB,KAAK,CAAC3vC,MAAM,CAAC43D,MAAAA,CAAAA,CAClBA,OAAOlzB,OAAO,GACf,MAAO,CACN,IAAI,CAACiL,KAAK,CAAC3xC,GAAG,CAAC45D,MAAAA,CAAQH,UACxB,CACD,CACD,CACD,CAAA,WAAA,EAAA,CAxBA9nB,sBAAAA,OAAAA,CAAwB,IAAIlwC,MAyB7B,CAAA,CAEA,IAAI01J,uBAAgB,KAAA,CAGnB,OAAOF,OAAO1tH,OAAO,CAAE,CACtB,IAAI,CAACoI,KAAK,CAACslH,MAAM,CAAC1tH,OAAAA,EACnB,CAEA,OAAO2tH,MAAAA,CAAO3tH,OAAO,CAAE,CACtB,IAAI,CAACoI,KAAK,CAACulH,MAAM,CAAC3tH,OAAAA,EACnB,CACA,OAAO7C,OAAAA,EAAU,CAChB,IAAI,CAACiL,KAAK,CAACjL,OAAO,GACnB,CACD,CAAA,CAZC,yBAAOiL,OAAAA,CAAQ,IAAIqlH,0BAcpB,IAAII,UAAAA,CAAa,MAEhBrhK,GAAAA,EAAM,CACL,OAAO,IAAI,CAACshK,QAAQ,EACrB,CAAA,WAAA,EAAA,CAHAA,sBAAAA,UAAAA,CAAW,CAAA,EAAA,CAIZ,EAEA,IAAIC,QAAAA,CAAW,IAAIF,UAAAA,CAEnB,IAAIG,QAAAA,CAAW,IAAI/yI,YACnB,IAAIgzI,aAAAA,CAAgB,IAAIhzI,WAAAA,CACxB,IAAIizI,SAA2B,IAAIp3J,GAAAA,CACnC,IAAIm2D,YAAAA,CAAe,IAAIh8B,YAAY,CAAA,CAAA,CACnC,IAAIk9H,eAAiB,KAAA,CAMpBhxH,OAAAA,EAAU,CACT,GAAI,IAAI,CAACixH,oBAAoB,CAAE,CAC9B,IAAI,CAAC1wG,YAAY,EAAEvgB,UACpB,CACA,IAAI,CAACugB,YAAY,CAAG,KACrB,CARA,WAAA,CAAY2wG,UAAU,CAAE,CAFxB3wG,gBAAAA,CAAAA,IAAAA,CAAAA,cAAAA,CAAe,MACf0wG,gBAAAA,CAAAA,IAAAA,CAAAA,sBAAAA,CAAuB,MAEtB,CAAA,IAAI,CAACzuH,KAAK,CAAG0uH,WACd,CAOD,CAAA,CACA,IAAIC,cAAAA,CAAiB,KAAA,CAKpBh2E,aAAat6C,MAAM,CAAE,CACpB,GAAI,CAAC,IAAI,CAACwK,SAAS,CAAE,CACpB,MAAM8Q,MAAAA,CAAS,IAAI,CAACA,MAAM,CAC1B,MAAMyP,eAAAA,CAAkBzP,MAAAA,CAAO6iB,mBAAmB,CAClD,IAAI,CAAC3zB,SAAS,CAAG,IAAIE,SAAAA,CAAU1K,MAAAA,CAAQ+qB,eAAAA,EACxC,CACA,OAAO,IAAI,CAACvgB,SACb,CACA+lH,gBAAAA,CAAiBvwH,MAAM,CAAE,CACxB,GAAI,CAAC,IAAI,CAAC6K,aAAa,CAAE,CACxB,MAAMyQ,MAAAA,CAAS,IAAI,CAACA,MAAM,CAC1B,MAAMmrB,QAAAA,CAAWnrB,OAAO4iB,uBACxB,CAAA,IAAI,CAACrzB,aAAa,CAAG,IAAImvC,cAAch6C,MAAAA,CAAQymC,QAAAA,CAAU,OAC1D,CACA,OAAO,IAAI,CAAC57B,aAAa,CAE1B1L,SAAU,CACT,IAAI,CAACqL,SAAS,EAAErL,SAChB,CAAA,IAAI,CAACqL,SAAS,CAAG,IACjB,CAAA,IAAI,CAACK,aAAa,EAAE1L,OAAAA,EACpB,CAAA,IAAI,CAAC0L,aAAa,CAAG,KACtB,eAzBAyQ,gBAAAA,CAAAA,IAAAA,CAAAA,QAAAA,CAAAA,MAAAA,CAAAA,CACA9Q,gBAAAA,CAAAA,IAAAA,CAAAA,YAAY,IAAA,CAAA,CACZK,gBAAAA,CAAAA,IAAAA,CAAAA,gBAAgB,IAAA,CAAA,CAChB6jB,gBAAAA,CAAAA,IAAAA,CAAAA,SAAAA,MAAAA,EAAAA,CAuBD,EACA,IAAI8hG,YAAAA,EAAAA,cAAAA,CAAe,MAAMC,aAAAA,CAwDxB,IAAIC,UAAAA,CAAWC,MAAM,CAAE,CACtB,IAAI,CAACC,WAAW,CAAGv/J,KAAKoQ,KAAK,CAACkvJ,QAAU,GAAA,CACxC,IAAI,CAAC5/G,SAAS,GACf,CACA,IAAI2/G,UAAAA,EAAa,CAChB,OAAO,IAAI,CAACE,WAAW,CAExB,IAAI/I,YAAYA,WAAW,CAAE,CAC5B,IAAI,CAACgJ,YAAY,CAAGhJ,WAAAA,CACpB,IAAI,CAAClE,IAAI,CAACiE,kBAAkB,CAACC,WAAAA,EAC9B,CACA,IAAIA,WAAAA,EAAc,CACjB,OAAO,IAAI,CAACgJ,YAAY,CAEzB,IAAIlN,IAAAA,CAAKA,IAAI,CAAE,CACd,GAAIA,OAAS,IAAI,CAACmN,KAAK,CAAE,CACxB,MACD,CACA,GAAI,IAAI,CAACA,KAAK,CAAE,CACf,IAAI,CAACA,KAAK,CAAC7+F,WAAW,GACvB,CACA,IAAI,CAAC6+F,KAAK,CAAGnN,IAAAA,CACb,GAAIA,IAAAA,CAAM,CACTA,IAAAA,CAAK5xF,WAAW,GACjB,CACD,CACA,IAAI4xF,IAAAA,EAAO,CACV,OAAO,IAAI,CAACmN,KAAK,CAElB,IAAI5R,IAAAA,CAAKj+H,KAAK,CAAE,CACf,IAAI,CAAC6F,KAAK,CAAG7F,MACd,CACA,IAAIi+H,IAAAA,EAAO,CACV,GAAI,CAAC,IAAI,CAAC6R,WAAW,CAAE,CACtB,OAAO,IAAI,CAACjqI,KACb,CACA,GAAI,IAAI,CAACkqI,eAAe,CAAE,CACzB,OAAO,IAAI,CAACA,eAAe,CAAC,IAAI,CAAClqI,KAAK,CACvC,CACA,IAAImqI,SAAAA,CAAY,IAAI,CAACC,WAAW,CAChC,IAAIC,YAAAA,CAAe,CAAC,CAACF,SAAAA,CACrB,GAAI,CAACA,UAAW,CACfA,SAAAA,CAAYjB,SACZ,GAAI,IAAI,CAACoB,YAAY,CAAE,CACtB,GAAI,CAAC,IAAI,CAACzN,IAAI,CAACoB,QAAQ,CAAE,CACxB,MAAMD,YAAAA,CAAe,IAAI,CAACuM,cAAc,CAAG,IAAI,CAACA,cAAc,CAAC5M,KAAK,CAAC6M,QAAQ,CAAG,IAAA,CAChF,IAAI,CAAC3N,IAAI,CAACkB,cAAc,CAACC,YAAAA,EAC1B,CACA,MAAME,QAAAA,CAAW,IAAI,CAACrB,IAAI,CAACqB,QAAQ,CACnC,IAAIvuJ,KAAAA,CAAQ,KACZ,IAAK,IAAI3E,GAAK,CAAA,CAAGA,EAAAA,CAAK,IAAI,CAAC6xJ,IAAI,CAACoB,QAAQ,CAAChzJ,MAAM,CAAED,EAAAA,EAAAA,CAAM,CACtD,GAAIkzJ,QAAQ,CAAClzJ,EAAAA,CAAG,CAAE,CACjBm+J,aAAAA,CAAcjvI,sBAAsB,CAAC,IAAI,CAAC2iI,IAAI,CAACoB,QAAQ,CAACjzJ,GAAG,CAAE,IAAI,CAACs/J,YAAY,CAACjQ,QAAQ,CAACrvJ,GAAG,CAAA,CAC3F,GAAI2E,MAAO,CACVA,KAAAA,CAAQ,MACRw6J,SAAAA,CAAU7zI,MAAM,CAACvsB,IAAI,CAACo/J,cAAc7yI,MAAM,CAAA,CAC1C6zI,UAAUxzI,WAAW,CAAC5sB,IAAI,CAACo/J,aAAAA,CAAcxyI,WAAW,EACrD,MAAO,CACNwzI,SAAAA,CAAU9uJ,GAAG,CAAC8tJ,aAAAA,EACf,CACD,CACD,CACAkB,aAAe,KAChB,CAAA,KAAO,GAAI,IAAI,CAAC7H,IAAI,CAACnK,QAAQ,GAAK,IAAI,CAACA,QAAQ,EAAI,IAAI,CAACwE,IAAI,CAACxE,QAAQ,GAAK,IAAI,CAACoS,YAAY,CAAE,CAC5F,GAAI,IAAI,CAAC5N,IAAI,CAAE,CACdsN,SAAAA,CAAU7zI,MAAM,CAACvsB,IAAI,CAAC,IAAI,CAAC8yJ,IAAI,CAACzE,IAAI,CAAC9hI,MAAM,EAC3C6zI,SAAAA,CAAUxzI,WAAW,CAAC5sB,IAAI,CAAC,IAAI,CAAC8yJ,IAAI,CAACzE,IAAI,CAACzhI,WAAW,EACtD,CAAA,KAAO,CACNwzI,UAAU7zI,MAAM,CAAC3kB,GAAG,CAAC,CAAA,CAAG,EAAG,CAAA,CAAA,CAC3Bw4J,SAAAA,CAAUxzI,WAAW,CAAChlB,GAAG,CAAC,CAAA,CAAG,CAAA,CAAG,GACjC,CACA,GAAI,IAAI,CAACkrJ,IAAI,EAAI,IAAI,CAACA,IAAI,CAACc,KAAK,CAAE,CACjC,MAAM+M,SAAAA,CAAY,IAAI,CAAC7N,IAAI,CAACc,KAAK,CAACvF,IAAI,CACtC+R,SAAAA,CAAUhuI,OAAO,CAACuuI,SAAAA,CAAUnyI,MAAM,EAAA,CAAImyI,SAAAA,CAAUryI,MAAM,EAAA,EACvD,CACAgyI,aAAe,IACf,CAAA,IAAI,CAAChS,QAAQ,CAAG,IAAI,CAACmK,IAAI,CAACnK,QAAQ,CAClC,IAAI,CAACoS,YAAY,CAAG,IAAI,CAAC5N,IAAI,CAACxE,SAAQ,CAExC,CACA,GAAIgS,YAAAA,CAAc,CACjB,IAAI,CAACrqI,KAAK,CAAC9F,sBAAsB,CAACiwI,UAAW,IAAI,CAAC3H,IAAI,CAAC7H,iBAAiB,EAAA,EACzE,CACA,OAAO,IAAI,CAAC36H,KAAK,CAElB2qI,cAAe,CACd,IAAI,CAACC,YAAY,CAAClzJ,OAAO,CAAEmzJ,iBAC1BA,cAAAA,CAAexyH,OAAO,GACvB,CAAA,CAAA,CACA,IAAI,CAACuyH,YAAY,CAACl3J,KAAK,GACxB,CACAo3J,iBAAAA,CAAkBC,UAAU,CAAEC,SAAS,CAAErT,KAAK,CAAE/B,kBAAkB,CAAE1D,iBAAiB,CAAE+Y,YAAY,CAAE,CACpG,MAAMC,UAAAA,CAAa,IAAI,CAACC,WAAW,CACnChjG,YAAY,CAAC,CAAA,CAAE,CAAG4iG,UAClB5iG,CAAAA,YAAY,CAAC,CAAA,CAAE,CAAG6iG,SAClB7iG,CAAAA,YAAY,CAAC,CAAA,CAAE,CAAG+iG,UAClB/iG,CAAAA,YAAY,CAAC,CAAA,CAAE,CAAGytF,kBAAAA,CAAmB9nG,IAAI,CACzC,MAAMA,IAAAA,CAAOC,YAAYoa,YAAAA,CAAAA,CACzB,IAAI0iG,cAAAA,CAAiB,IAAI,CAACD,YAAY,CAACljK,GAAG,CAAComD,IAAAA,CAAAA,CAC3C,GAAI,CAAC+8G,cAAAA,CAAgB,CACpB,MAAMO,KAAO,IAAI,CAACC,SAAS,CAC3BR,cAAAA,CAAiB,IAAIrB,cACrBqB,CAAAA,eAAer2G,MAAM,CAAG42G,KAAKE,QAAQ,CAAC5jK,GAAG,CAAComD,IAAAA,CAC1C+8G,CAAAA,cAAAA,CAAejjG,MAAM,CAAG,IAAIz7B,YAAYg8B,YAAAA,CAAAA,CACxC,GAAI,CAAC0iG,cAAAA,CAAer2G,MAAM,CAAE,CAC3B,MAAMA,OAAS42G,IAAAA,CAAKG,gBAAgB,CAAC,CACpCryH,MAAAA,CAAQ,IAAI,CAAC2jH,IAAI,CAAC3jH,MAAM,CACxBy+G,KAAAA,CACA6T,OAAAA,CAASN,WACTtV,kBAAAA,CACAE,IAAAA,CAAMiV,WACNE,YAAAA,CACA/Y,iBAAAA,CACAn/F,aAAc,IAAI,CAAC8pG,IAAI,CAACjkG,YAAY,EAAEroD,MACvC,CAAA,CAAA,CACA66J,KAAKE,QAAQ,CAAC35J,GAAG,CAACm8C,IAAAA,CAAM0G,MAAAA,CACxBq2G,CAAAA,eAAer2G,MAAM,CAAGA,OACzB,CACA,IAAI,CAACo2G,YAAY,CAACj5J,GAAG,CAACm8C,IAAAA,CAAM+8G,gBAC7B,CACA,OAAOA,cACR,CACA,IAAIlV,SAASA,QAAQ,CAAE,CACtB,IAAI,CAACgV,YAAY,EAAA,CACjB,MAAMc,OAAAA,CAAU,IAAI,CAACJ,SAAS,CAC9B,GAAII,OAAAA,CAAS,CACZA,QAAQC,qBAAqB,CAAC,IAAI,EACnC,CACA,IAAI,CAACL,SAAS,CAAG1V,QAAAA,CACjB,GAAIA,QAAAA,CAAU,CACbA,SAASgW,kBAAkB,CAAC,IAAI,CAChC,CAAA,IAAI,CAACC,WAAW,CAAGjW,QAAAA,CAASiW,WAAW,CACvC,IAAI,CAAC3hH,SAAS,GACf,CACD,CACA,IAAI0rG,UAAW,CACd,OAAO,IAAI,CAAC0V,SAAS,CAEtBQ,iBAAAA,CAAkBX,UAAU,CAAE,CAC7B,GAAIA,UAAAA,GAAe,IAAI,CAACC,WAAW,CAAE,CACpC,IAAI,CAACA,WAAW,CAAGD,WACnB,IAAI,CAACP,YAAY,GAClB,CACD,CACA,IAAImB,qBAAAA,CAAsBA,qBAAqB,CAAE,CAChD,IAAI,CAACC,sBAAsB,CAAGD,sBAC/B,CACA,IAAIA,qBAAAA,EAAwB,CAC3B,OAAO,IAAI,CAACC,sBAAsB,CAEnC,IAAIC,cAAchtJ,GAAG,CAAE,CACtB,GAAI,IAAI,CAACitJ,cAAc,GAAKjtJ,IAAK,CAChC,IAAI,CAACitJ,cAAc,CAAGjtJ,GAAAA,CACtB,IAAI,CAAC6sJ,iBAAiB,CAAC7sJ,IAAM,IAAI,CAACmsJ,WAAW,CAAG,CAAC5f,mBAAqB,IAAI,CAAC4f,WAAW,CAAG5f,kBAAAA,EAC1F,CACD,CACA,IAAIygB,eAAgB,CACnB,OAAO,IAAI,CAACC,cAAc,CAE3B,IAAIC,QAAAA,CAASltJ,GAAG,CAAE,CACjB,IAAI,CAAC6sJ,iBAAiB,CAAC7sJ,IAAM,IAAI,CAACmsJ,WAAW,CAAG9e,eAAAA,CAAkB,IAAI,CAAC8e,WAAW,CAAG,CAAC9e,iBACvF,CACA,IAAI6f,UAAW,CACd,OAAO,CAAC,IAAI,CAACf,WAAW,CAAG9e,eAAc,IAAO,CACjD,CACA,IAAIie,YAAAA,CAAatrJ,GAAG,CAAE,CACrB,IAAI,CAACmtJ,aAAa,CAAGntJ,GAAAA,CACrB,IAAI,CAAC6sJ,iBAAiB,CAAC7sJ,GAAAA,CAAM,IAAI,CAACmsJ,WAAW,CAAG3f,eAAiB,IAAI,CAAC2f,WAAW,CAAG,CAAC3f,gBACrF,IAAI,CAAC4gB,gBAAgB,GACtB,CACA,IAAI9B,YAAAA,EAAe,CAClB,OAAO,IAAI,CAAC6B,aACb,CACA,IAAIE,aAAAA,CAAcrtJ,GAAG,CAAE,CACtB,IAAI,CAACurJ,cAAc,EAAElyH,OAAAA,EACrB,CAAA,IAAI,CAACkyH,cAAc,CAAGvrJ,GAAAA,CACtB,IAAIksJ,UAAAA,CAAa,IAAI,CAACC,WAAW,CACjCD,WAAalsJ,GAAAA,EAAOA,GAAAA,CAAI2+I,KAAK,CAAC2O,cAAc,CAAGpB,UAAAA,CAAajf,wBAAAA,CAA2Bif,WAAa,CAACjf,wBAAAA,CACrGif,UAAAA,CAAalsJ,GAAAA,EAAOA,IAAI2+I,KAAK,CAAC4O,YAAY,CAAGrB,UAAAA,CAAahf,uBAAyBgf,UAAAA,CAAa,CAAChf,sBAAAA,CACjGgf,UAAAA,CAAalsJ,KAAOA,GAAAA,CAAI2+I,KAAK,CAAC6O,eAAe,CAAGtB,WAAa9e,iCAAAA,CAAoC8e,UAAAA,CAAa,CAAC9e,iCAAAA,CAC/G,IAAI,CAACyf,iBAAiB,CAACX,UAAAA,EACxB,CACA,IAAImB,aAAAA,EAAgB,CACnB,OAAO,IAAI,CAAC9B,cAAc,CAE3B,IAAIkC,WAAAA,CAAYztJ,GAAG,CAAE,CACpB,GAAI,IAAI,CAAC0tJ,YAAY,GAAK1tJ,GAAAA,CAAK,CAC9B,IAAI,CAAC0tJ,YAAY,CAAG1tJ,GAAAA,CACpB,IAAI,CAAC6sJ,iBAAiB,CAAC7sJ,GAAAA,CAAM,IAAI,CAACmsJ,WAAW,CAAGpf,sBAAwB,IAAI,CAACof,WAAW,CAAG,CAACpf,qBAAAA,EAC7F,CACD,CACA,IAAI0gB,WAAAA,EAAc,CACjB,OAAO,IAAI,CAACC,YACb,CACA,IAAI35J,GAAAA,CAAIiM,GAAG,CAAE,CACZ,IAAI,CAAC2tJ,eAAe,CAAG3tJ,IACxB,CACA,IAAIjM,GAAAA,EAAM,CACT,OAAO,IAAI,CAAC45J,eACb,CACA,IAAIjnH,KAAK1mC,GAAG,CAAE,CACb,MAAM4tJ,OAAAA,CAAU,IAAI,CAACzB,WAAW,CAAG,KAAA,CACnC,IAAI,CAACU,iBAAiB,CAACe,OAAAA,CAAU5tJ,GAAAA,EAAO,IACzC,CACA,IAAI0mC,MAAO,CACV,OAAO,IAAI,CAACylH,WAAW,EAAI,EAC5B,CACA,IAAI0B,eAAAA,CAAgBh6J,KAAK,CAAE,CAC1B,GAAI,IAAI,CAACi6J,cAAc,CAAE,CACxB,IAAI,CAACA,cAAc,CAACjyH,KAAK,CAAGhoC,MAC7B,CACD,CACA,IAAIg6J,eAAAA,EAAkB,CACrB,OAAO,IAAI,CAACC,cAAc,CAAG,IAAI,CAACA,cAAc,CAACjyH,KAAK,CAAG,CAC1D,CACAxC,OAAAA,EAAU,CACT,MAAMwkH,IAAAA,CAAO,IAAI,CAACA,IAAI,CACtB,GAAIA,IAAAA,CAAM,CACT,IAAI,CAACA,IAAI,CAAG,KACZ,GAAIA,IAAAA,CAAKzxF,QAAQ,CAAG,CAAA,CAAG,CACtByxF,IAAAA,CAAKxkH,OAAO,GACb,CACD,CACA,IAAI,CAAC00H,mBAAmB,CAACpD,aAAAA,CAAcqD,kBAAkB,CAAC,CAAA,CAAE,CAAE,IAAA,CAAA,CAC9D,IAAI,CAACD,mBAAmB,CAACpD,aAAAA,CAAcqD,kBAAkB,CAAC,CAAA,CAAE,CAAE,KAC9D,CAAA,IAAI,CAACb,aAAa,EAAE9zH,SACpB,CAAA,IAAI,CAAC8zH,aAAa,CAAG,IACrB,CAAA,IAAI,CAACE,aAAa,EAAEh0H,OAAAA,EACpB,CAAA,IAAI,CAACg0H,aAAa,CAAG,IAAA,CACrB,IAAI,CAAC1B,YAAY,EACjB,CAAA,IAAI,CAAChV,QAAQ,CAAG,IAChB,CAAA,IAAI,CAACmX,cAAc,EAAEz0H,UACrB,IAAI,CAAC40H,mBAAmB,GACzB,CACAA,qBAAsB,CACrB,GAAI,IAAI,CAACzzG,YAAY,CAAE,CACtB,IAAK,MAAM0zG,GAAAA,IAAO,IAAI,CAAC1zG,YAAY,CAAC/lD,MAAM,EAAA,CAAI,CAC7Cy5J,GAAAA,EAAK70H,OAAAA,GACN,CACA,IAAI,CAACmhB,YAAY,CAAG,KACrB,CACD,CAGA,OAAO2zG,4BAA4B5U,aAAa,CAAEwI,WAAW,CAAE,CAC9D,GAAIxI,aAAAA,CAAe,CAClB,IAAK,IAAIvtJ,GAAK,CAAA,CAAGA,EAAAA,CAAKutJ,cAActtJ,MAAM,CAAED,KAAM,CACjDutJ,aAAa,CAACvtJ,EAAAA,CAAG,CAAC++J,YAAY,CAAGhJ,WAAAA,CACjC,MAAMlE,IAAAA,CAAOtE,aAAa,CAACvtJ,EAAAA,CAAG,CAAC6xJ,IAAI,CACnC,GAAI,CAACuM,QAAAA,CAASr3J,GAAG,CAAC8qJ,IAAAA,CAAAA,CAAO,CACxBuM,QAAAA,CAAS/tJ,GAAG,CAACwhJ,IAAAA,CAAAA,CACbA,IAAAA,CAAKiE,kBAAkB,CAACC,WAAAA,EACzB,CACD,CACAqI,QAAAA,CAAS11J,KAAK,GACf,CACD,CACA05J,UAAAA,CAAWC,MAAM,CAAE,CAClB,GAAI,IAAI,CAACC,OAAO,CAAE,CACjB,GAAI,IAAI,CAACC,aAAa,CAAE,CACvB,OAAO,IAAI,CAACA,aAAa,CAACF,OAC3B,CACA,OAAOA,OAAOG,OAAO,CAACnuI,YAAY,CAAC,IAAI,CAAC+4H,IAAI,CAC7C,CACA,OAAO,KACR,CACAnuG,SAAAA,EAAY,CACX,KAAM,CAAE0rG,QAAQ,CAAE,CAAG,IACrB,CAAA,IAAI,CAACgX,eAAe,CAAG,IAAI,CAAC7C,WAAW,EAAI,IAAMnU,QAAAA,CAASlgG,eAAe,EAAIkgG,QAAAA,CAAS8X,SAAS,CAAG,OAAA,CAAU,CAAA,CAAA,CAAK9X,SAASx+G,EAAE,CAAG,QAChI,CACAu2H,aAAAA,CAAc90G,YAAY,CAAE+0G,IAAAA,CAAO,KAAK,CAAE,CACzC,GAAI/0G,YAAAA,CAAc,CACjB,GAAIA,YAAAA,GAAiB,IAAA,CAAM,CAC1B,IAAI,CAACk0G,cAAc,CAAG,IAAIzD,cAAAA,CAAe,CAAA,EAC1C,MAAO,CACN,IAAI,CAACyD,cAAc,CAAG,IAAIzD,cAAAA,CAAezwG,YAAAA,CAAanL,WAAW,CACjE,CAAA,IAAI,CAACq/G,cAAc,CAACl0G,YAAY,CAAGA,YACnCA,CAAAA,aAAaroD,MAAM,CAAC4/C,UAAU,CAAG,KAClC,CACA,IAAI,CAACw9G,IAAI,CAAGA,KACb,MAAO,CACN,IAAI,CAACb,cAAc,CAAG,IACtB,CAAA,IAAI,CAACa,IAAI,CAAG,KACb,CACA,IAAI,CAAC9B,iBAAiB,CAACjzG,YAAAA,YAAwB1L,YAAAA,CAAe,IAAI,CAACi+G,WAAW,CAAGvf,oBAAAA,CAAuB,IAAI,CAACuf,WAAW,CAAG,CAACvf,oBAAAA,EAC7H,CACAgiB,WAAAA,CAAYP,MAAM,CAAE/1H,IAAI,CAAEuD,MAAQ,CAAC,CAAE,CACpC,MAAM9nC,GAAAA,CAAMs6J,QAAQA,MAAAA,EAAU,IAAA,CAC9B,GAAI/1H,IAAAA,GAAS,GAAI,CAChB,IAAI,CAACu2H,sBAAsB,CAAC96J,GAAAA,EAC7B,CAAA,KAAO,CACN,IAAI,CAACymD,YAAY,GAAK,IAAI,CAACA,YAAY,CAAmB,IAAIpmD,GAAI,EAClE,MAAM85J,GAAAA,CAAM,IAAI,CAAC1zG,YAAY,CAAC9xD,GAAG,CAACqL,GAAAA,CAAAA,EAAQ,IAAIkpH,aAAa,IAAI,CAAC4gC,IAAI,CAAC3jH,MAAM,CAC3Eg0H,CAAAA,GAAAA,CAAI3lE,SAAS,CAAGjwD,KAChB41H,GAAAA,CAAIroH,MAAM,CAAChK,KAAAA,CAAAA,CACX,IAAI,CAAC2e,YAAY,CAAC7nD,GAAG,CAACoB,IAAKm6J,GAAAA,CAAAA,CAC3B,MAAMh0H,OAAS,IAAI,CAAC2jH,IAAI,CAAC3jH,MAAM,CAC/BA,MAAAA,CAAOmiB,WAAW,CAAChgD,GAAG,CAAC,IAAI,CAACm+C,YAAY,EACzC,CACD,CACAs0G,YAAAA,CAAaT,MAAM,CAAEz1E,QAAAA,CAAW,CAAC,CAAE,CAClC,MAAM7kF,IAAMs6J,MAAAA,EAAQA,MAAAA,EAAU,KAC9B,IAAIH,GAAAA,CACJ,GAAIt1E,QAAAA,GAAa,CAAA,CAAG,CACnB,IAAI,CAACi2E,sBAAsB,CAAC96J,GAAAA,EAC7B,CAAA,KAAO,CACN,IAAI,CAACymD,YAAY,GAAK,IAAI,CAACA,YAAY,CAAmB,IAAIpmD,GAAI,CAAA,CAClE85J,IAAM,IAAI,CAAC1zG,YAAY,CAAC9xD,GAAG,CAACqL,GAAAA,CAAAA,CAC5B,GAAI,CAACm6J,GAAAA,CAAK,CACT,MAAM9hH,WAAAA,CAAc,IAAI,CAACyxG,IAAI,CAACzxG,WAAW,GAAG,CAAA,CAAE,CAC9C,MAAM2iH,WAAAA,CAAc3iH,WAAAA,EAAa76C,OACjC,MAAM6gG,cAAAA,CAAiB28D,cAAgB,MAAK,CAAInoI,mBAAmB,CAACmoI,YAAY,CAAG,CAAA,CACnFb,IAAM,IAAIjxC,YAAAA,CAAa,IAAI,CAAC4gC,IAAI,CAAC3jH,MAAM,CAAEk4D,gBACzC,IAAI,CAAC53C,YAAY,CAAC7nD,GAAG,CAACoB,GAAAA,CAAKm6J,GAAAA,EAC5B,CACAA,GAAAA,CAAIt7G,QAAQ,CAACgmC,QAAAA,EACd,CACA,OAAOs1E,GACR,CACAW,sBAAAA,CAAuB96J,GAAG,CAAE,CAC3B,MAAMi7J,KAAO,IAAI,CAACx0G,YAAY,CAC9B,GAAIw0G,KAAM,CACT,MAAMd,GAAAA,CAAMc,IAAAA,CAAKtmK,GAAG,CAACqL,GAAAA,CAAAA,CACrBm6J,KAAK70H,OAAAA,EAAAA,CACL21H,IAAAA,CAAKr6J,MAAM,CAACZ,GAAAA,CAAAA,CACZ,GAAIi7J,IAAAA,CAAKt+J,IAAI,GAAK,CAAA,CAAG,CACpB,IAAI,CAACu9J,mBAAmB,GACzB,CACD,CACD,CACAgB,eAAAA,CAAgBZ,MAAM,CAAE,CACvB,MAAMW,IAAAA,CAAO,IAAI,CAACx0G,YAAY,CAC9B,GAAI,CAACw0G,KAAM,OAAO,OAClB,OAAOA,IAAAA,CAAKtmK,GAAG,CAAC2lK,MAAAA,CAAAA,EAAWW,IAAAA,CAAKtmK,GAAG,CAAC,IAAA,CACrC,CACAwmK,qBAAsB,CACrB,MAAMC,KAAO,IAAI,CAACtR,IAAI,EAAE7yF,SAAS,CAAC,IAAI,CAAC+2F,WAAW,CAAC,CACnD,MAAMr8I,KAAAA,CAAQ,IAAI,CAAC0pJ,YAAY,GAAK,IAAI,CAACA,YAAY,CAAG,IAAI/oJ,UAAAA,CAAW,CAAA,CAAC,CACxEX,CAAAA,KAAK,CAAC,CAAA,CAAE,CAAGypJ,KAAKtzH,KAChBn2B,CAAAA,KAAK,CAAC,CAAA,CAAE,CAAGypJ,KAAKv6E,IAChBlvE,CAAAA,KAAK,CAAC,EAAE,CAAGypJ,IAAAA,CAAKt6E,UAAU,CAC1B,OAAOnvE,KACR,CACA2pJ,cAAAA,CAAen1H,MAAM,CAAE,CACtB,GAAI,CAAC,IAAI,CAACy8G,QAAQ,CAAE,CACnB,IAAI,CAACA,QAAQ,CAAG8S,mBAAmBvvH,MAAAA,EACpC,CACD,CAEAo1H,eAAAA,EAAkB,CACjB,IAAI,CAAC3yC,UAAU,CAAG,GACnB,CACA4yC,aAAAA,EAAgB,CACf,OAAO,IAAI,CAAC5yC,UAAU,CAEvB7Z,YAAAA,CAAah0G,IAAI,CAAE,CAClB,OAAO,IAAI,CAAC6tH,UAAU,CAAC7tH,IAAAA,CAAK,CAE7B2tH,YAAAA,CAAa3tH,IAAI,CAAE4W,KAAK,CAAE,CACzB,MAAMg3G,KAAAA,CAAQ,IAAI,CAACC,UAAU,CAAC7tH,KAAK,CACnC,GAAI4tH,MAAO,CACVA,KAAAA,CAAM/xG,IAAI,CAAGjF,MACd,MAAO,CACN,IAAI,CAACi3G,UAAU,CAAC7tH,IAAAA,CAAK,CAAG,CACvBypC,OAAAA,CAAS,IAAA,CACT5tB,KAAMjF,KACP,EACD,CACD,CACAqoJ,mBAAAA,CAAoBj/J,IAAI,CAAEotC,OAAO,CAAE,CAClC,MAAMszH,IAAM,IAAI,CAAC1sD,YAAY,CAACh0G,IAAAA,CAAAA,CAC9B,GAAI0gK,GAAAA,GAAQtzH,QAAS,CACpB,MACD,CACA,GAAIszH,GAAAA,CAAK,CACR1F,aAAAA,CAAcD,MAAM,CAAC2F,GAAAA,CAAI7kJ,IAAI,EAC9B,CACA,GAAIuxB,OAAAA,CAAS,CACZ4tH,cAAcF,MAAM,CAAC1tH,OAAAA,CAAAA,CACrB,IAAI,CAACugF,YAAY,CAAC3tH,KAAMotC,OAAAA,EACzB,CAAA,KAAO,CACN,IAAI,CAAC0gF,eAAe,CAAC9tH,IAAAA,EACtB,CACD,CACA8tH,eAAAA,CAAgB9tH,IAAI,CAAE,CACrB,GAAI,IAAI,CAAC6tH,UAAU,CAAC7tH,KAAK,CAAE,CAC1B,OAAO,IAAI,CAAC6tH,UAAU,CAAC7tH,IAAAA,EAAK,CAE9B,CACA2gK,cAAcv1H,MAAM,CAAE,CACrB,MAAMyiF,UAAAA,CAAa,IAAI,CAACA,UAAU,CAClC,IAAK,MAAM+yC,SAAAA,IAAa/yC,UAAAA,CAAY,CACnC,MAAMgzC,SAAAA,CAAYhzC,UAAU,CAAC+yC,SAAAA,CAAU,CACvC,GAAI,CAACC,UAAUp3H,OAAO,CAAE,CACvBo3H,SAAAA,CAAUp3H,OAAO,CAAG2B,MAAAA,CAAOzmC,KAAK,CAAC6mC,OAAO,CAACo1H,SAAAA,EAC1C,CACAC,UAAUp3H,OAAO,CAACmV,QAAQ,CAACiiH,SAAAA,CAAUhlJ,IAAI,EAC1C,CACD,CACAilJ,cAAAA,CAAe/7J,KAAK,CAAE,CACrB,GAAIA,MAAO,CACV,IAAI,CAAC6yC,IAAI,CAAG,CAAC,IAAI,CAACA,IAAI,CAAGgnG,uBAAsB,EAAK,GACrD,CAAA,KAAO,CACN,IAAI,CAACqgB,mBAAmB,CAACpD,aAAAA,CAAcqD,kBAAkB,CAAC,EAAE,CAAE,IAAA,CAAA,CAC9D,IAAI,CAACD,mBAAmB,CAACpD,aAAAA,CAAcqD,kBAAkB,CAAC,CAAA,CAAE,CAAE,KAC9D,CAAA,IAAI,CAAC7B,WAAW,EAAI,KACpB,CAAA,IAAI,CAACzlH,IAAI,CAAG,CAAC,IAAI,CAACA,IAAI,CAAG+mG,mBAAkB,EAAK,GACjD,CACD,CACAoiB,aAAAA,CAAc10I,KAAK,CAAE,CACpB,GAAIA,MAAO,CACV,GAAI,IAAI,CAACiwI,WAAW,CAAE,CACrB,IAAI,CAACA,WAAW,CAACrgK,IAAI,CAACowB,OACvB,CAAA,KAAO,CACN,IAAI,CAACiwI,WAAW,CAAGjwI,KAAAA,CAAMna,KAAK,GAC/B,CACD,MAAO,CACN,IAAI,CAACoqJ,WAAW,CAAG,IACnB,CAAA,IAAI,CAAC/R,QAAQ,CAAG,GACjB,CACA,IAAI,CAAC+T,gBAAgB,GACtB,CACAA,kBAAmB,CAClB,GAAI,IAAI,CAACD,aAAa,CAAE,CACvB,IAAI,CAACA,aAAa,CAACtR,iBAAiB,CAAG,CAAC,IAAI,CAACuP,YAAW,CAE1D,CAxbA,WAAA,CAAYvN,IAAI,CAAElH,QAAQ,CAAE6M,KAAO,IAAI,CAAE,CAzCzCsM,gBAAAA,CAAAA,IAAAA,CAAAA,YAAAA,CAAa,OACbC,gBAAAA,CAAAA,IAAAA,CAAAA,mBAAAA,CAAoB7mB,oBACpBylB,gBAAAA,CAAAA,IAAAA,CAAAA,MAAAA,CAAO,MACPqB,gBAAAA,CAAAA,IAAAA,CAAAA,WAAAA,CAAY,CAAA,CAAA,CACZlF,gBAAAA,CAAAA,IAAAA,CAAAA,cAAc,GAAA,CAAA,CACdtH,gBAAAA,CAAAA,IAAAA,CAAAA,OAAAA,MAAAA,CAAAA,CACA8K,sBAAAA,SAAAA,CAAU,IAAA,CAAA,CACV2B,sBAAAA,gBAAAA,CAAiB,UAAA,CAAA,CACjBC,sBAAAA,kBAAAA,CAAmB,KAAA,CAAA,CACnBC,sBAAAA,iBAAAA,CAAkB,CAAA,CAAA,CAClBC,sBAAAA,gBAAAA,CAAiB,IAAA,CAAA,CACjBj4H,gBAAAA,CAAAA,IAAAA,CAAAA,IAAAA,CAAK8xH,SAASvhK,GAAG,EAAA,CAAA,CACjB6lK,sBAAAA,eAAAA,CAAgB,IAAA,CAAA,CAChBT,sBAAAA,gBAAAA,CAAiB,IAAA,CAAA,CACjBuC,sBAAAA,cAAAA,CAAe,IAAA,CAAA,CACf71G,sBAAAA,cAAAA,CAAe,IAAA,CAAA,CACf40G,sBAAAA,cAAAA,CAAe,IAAA,CAAA,CACfzyC,sBAAAA,YAAAA,CAAa,EAAC,CAAA,CACd2zC,gBAAAA,CAAAA,IAAAA,CAAAA,OAAO,IAAA,CAAA,CACPl3G,gBAAAA,CAAAA,IAAAA,CAAAA,eAAe,IAAA,CAAA,CACfC,gBAAAA,CAAAA,IAAAA,CAAAA,cAAc,IAAA,CAAA,CACduzG,gBAAAA,CAAAA,IAAAA,CAAAA,cAAc,KAAA,CAAA,CACd5rI,gBAAAA,CAAAA,IAAAA,CAAAA,QAAQ,IAAI7J,WAAAA,CAAAA,CACZkiI,sBAAAA,UAAAA,CAAW,IACXoS,gBAAAA,CAAAA,IAAAA,CAAAA,cAAAA,CAAe,EAAC,CAAA,CAChBL,sBAAAA,aAAAA,CAAc,IAAA,CAAA,CACdH,sBAAAA,aAAAA,CAAc,IAAA,CAAA,CACdC,sBAAAA,iBAAAA,CAAkB,IAAA,CAAA,CAClBqF,sBAAAA,gBAAAA,CAAiB,CAAA,CAAA,CACjB5C,sBAAAA,iBAAAA,CAAkB,CAAA,CAAA,CAClB6C,sBAAAA,iBAAAA,CAAkB,CAAA,CAAA,CAClBrzE,sBAAAA,QAAAA,CAASmpD,WAAAA,CAAAA,CACT+lB,gBAAAA,CAAAA,IAAAA,CAAAA,WAAAA,CAAY,MACZc,gBAAAA,CAAAA,IAAAA,CAAAA,eAAAA,CAAgB,MAChB5B,gBAAAA,CAAAA,IAAAA,CAAAA,gBAAAA,CAAiB,MACjB0B,gBAAAA,CAAAA,IAAAA,CAAAA,gBAAAA,CAAiB,IAAA,CAAA,CACjBlC,gBAAAA,CAAAA,IAAAA,CAAAA,eAAe7gB,iBAAAA,CAAAA,CACfwjB,gBAAAA,CAAAA,IAAAA,CAAAA,eAAe,KAAA,CAAA,CACf9B,gBAAAA,CAAAA,IAAAA,CAAAA,eAA+B,IAAIx3J,GAAAA,CAAAA,CACnC+3J,gBAAAA,CAAAA,IAAAA,CAAAA,aAAAA,CAAc1e,qBAAuB,EAAA,CAAA,CACrCsf,gBAAAA,CAAAA,IAAAA,CAAAA,yBAAyB,IAAA,CAExB,CAAA,IAAI,CAACvJ,IAAI,CAAGA,IACZ,CAAA,IAAI,CAACwH,KAAK,CAAGnN,IAAAA,CACbA,IAAAA,CAAK5xF,WAAW,EAChB,CAAA,IAAI,CAAC0qF,QAAQ,CAAGA,QAAAA,CAChB,GAAIkH,IAAAA,CAAKjkG,YAAY,CAAE,CACtB,MAAMroD,OAASssJ,IAAAA,CAAKjkG,YAAY,CAACroD,MACjC,CAAA,IAAI,CAAC46J,WAAW,EAAI56J,MAAAA,CAAOu/C,MAAM,CAAG27F,cAAgB,CACpD,CAAA,IAAI,CAAC0f,WAAW,EAAI56J,MAAAA,CAAOw/C,MAAM,CAAG27F,aAAAA,CAAgB,CACpD,CAAA,IAAI,CAACyf,WAAW,EAAI56J,MAAAA,CAAOy/C,QAAQ,CAAG27F,gBAAAA,CAAmB,CACzD,CAAA,IAAI,CAACwf,WAAW,EAAI56J,MAAAA,CAAO0/C,WAAW,CAAG+7F,kBAAAA,CAAqB,EAC/D,CACA,IAAI,CAAC/hG,SAAS,GACf,CA4aD,EAxLC,gBAAA,CAAA,cAAA,CAAO+iH,oBAAAA,CAAqB,CAAC,kBAAA,CAAoB,qBAAA,CAAsB,CAAA,CAAA,cAAA,CAAA,CA0LxE,IAAIyC,eAAiB,CAAC,CAAA,CAAG,EAAG,CAAA,CAAG,CAAA,CAAG,EAAG,CAAA,CAAE,CACvC,IAAIC,gBAAAA,CAAmB,CAAC,EAAG,CAAA,CAAG,CAAA,CAAG,EAAG,CAAA,CAAG,CAAA,CAAE,CACzC,IAAIC,IAAAA,CAAO,IAAIlmJ,IAAAA,CACf,SAASmmJ,eAAAA,CAAgBjoK,CAAC,CAAEC,CAAC,CAAA,CAC5B,GAAID,CAAAA,EAAK,CAACC,EAAG,OAAO,KAAA,CACpB,GAAI,CAACD,CAAAA,EAAKC,EAAG,OAAO,KAAA,CACpBD,EAAIA,CAAAA,CAAEgiB,IAAI,CACV/hB,CAAAA,CAAIA,EAAE+hB,IAAI,CACV,GAAIhiB,CAAAA,GAAMC,CAAAA,CAAG,OAAO,IAAA,CACpB,GAAID,aAAa4c,YAAAA,EAAgB3c,CAAAA,YAAa2c,aAAc,CAC3D,GAAI5c,EAAEsD,MAAM,GAAKrD,EAAEqD,MAAM,CAAE,OAAO,KAAA,CAClC,IAAK,IAAID,EAAAA,CAAK,EAAGA,EAAAA,CAAKrD,CAAAA,CAAEsD,MAAM,CAAED,EAAAA,EAAAA,CAAM,CACrC,GAAIrD,CAAC,CAACqD,EAAAA,CAAG,GAAKpD,CAAC,CAACoD,GAAG,CAAE,OAAO,KAC7B,CACA,OAAO,IACR,CACA,OAAO,KACR,CACA,SAAS6kK,cAAAA,CAAeC,OAAO,CAAEC,OAAO,CAAA,CACvC,IAAK,MAAMr0C,KAAAA,IAASo0C,QAAS,CAC5B,GAAIA,QAAQ14J,cAAc,CAACskH,KAAAA,CAAAA,EAAU,CAACk0C,gBAAgBE,OAAO,CAACp0C,MAAM,CAAEq0C,OAAO,CAACr0C,KAAAA,CAAM,CAAA,CAAG,CACtF,OAAO,KACR,CACD,CACA,IAAK,MAAMA,KAAAA,IAASq0C,OAAAA,CAAS,CAC5B,GAAIA,OAAAA,CAAQ34J,cAAc,CAACskH,QAAU,CAACk0C,eAAAA,CAAgBG,OAAO,CAACr0C,KAAAA,CAAM,CAAEo0C,OAAO,CAACp0C,MAAM,CAAA,CAAG,CACtF,OAAO,KACR,CACD,CACA,OAAO,IACR,CACA,SAASs0C,YAAAA,CAAaC,EAAE,CAAA,CACvB,OAAOA,EAAAA,CAAGzN,IAAI,CAAC3iI,cAAc,CAACzN,SAAS,CAExC,IAAI89I,YAAAA,CAAe,MAWlB73H,OAAAA,EAAU,CACT,IAAI,CAACa,MAAM,CAAG,IACd,CAAA,IAAI,CAACshH,QAAQ,CAAG,IAChB,CAAA,IAAI,CAAC7C,KAAK,CAAG,IACb,CAAA,IAAI,CAACwY,YAAY,CAAG,EACpB,CAAA,IAAI,CAACC,UAAU,CAAG,EAClB,CAAA,IAAI,CAACC,YAAY,CAAG,GAAE,CAEvBC,QAAAA,CAASxiK,IAAI,CAAE0qJ,OAAO,CAAEG,WAAW,CAAEzvB,IAAI,CAAErqC,MAAM,CAAE,CAClD,GAAIqqC,IAAAA,GAAS,OAAQ,CACpBA,IAAAA,CAAO,IAAI,CAACqnC,kBAAkB,CAC9B,IAAI,CAACA,kBAAkB,GACxB,CACA,GAAI,IAAI,CAACJ,YAAY,CAACjnC,KAAK,CAAE,CAC5B,OAAO,MACR,CACA,MAAMsnC,MAAQ,IAAI9X,UAAAA,CAAWxvB,KAAMp7H,IAAAA,CAAM0qJ,OAAAA,CAASG,WAAAA,CAAa95D,MAAAA,CAC/D,CAAA,IAAI,CAACsxE,YAAY,CAACjnC,IAAAA,CAAK,CAAGsnC,KAAAA,CAC1B,OAAOA,KACR,CACAC,YAAYvnC,IAAI,CAAE,CACjB,GAAI,CAAC,IAAI,CAACinC,YAAY,CAACjnC,IAAAA,CAAK,CAAE,CAC7B,MACD,CACA,MAAMwnC,YAAAA,CAAe,EAAE,CACvB,IAAK,IAAI1lK,EAAAA,CAAK,CAAA,CAAGA,GAAK,IAAI,CAAColK,UAAU,CAACnlK,MAAM,CAAED,EAAAA,EAAAA,CAAM,CACnD,GAAI,IAAI,CAAColK,UAAU,CAACplK,EAAAA,CAAG,CAACytJ,YAAY,GAAKvvB,KAAM,CAC9C,IAAI,CAACynC,YAAY,CAAC,IAAI,CAACP,UAAU,CAACplK,EAAAA,CAAG,EACtC,CAAA,KAAO,CACN0lK,aAAa5kK,IAAI,CAAC,IAAI,CAACskK,UAAU,CAACplK,EAAAA,CAAG,EACtC,CACD,CACA,IAAI,CAAColK,UAAU,CAAGM,YAAAA,CAClB,IAAI,CAACE,2BAA2B,CAAC,IAAI,CAACpW,QAAQ,CAAEtxB,IAAAA,CAChD,CAAA,OAAO,IAAI,CAACinC,YAAY,CAACjnC,IAAAA,EAC1B,CACA2nC,cAAAA,CAAe3nC,IAAI,CAAE,CACpB,GAAI,IAAI,CAACmnC,YAAY,CAACt8J,OAAO,CAACm1H,IAAAA,CAAAA,CAAQ,CAAA,CAAG,CACxC,IAAI,CAACmnC,YAAY,CAACvkK,IAAI,CAACo9H,IAAAA,EACxB,CACD,CACA4nC,cAAAA,CAAehjK,IAAI,CAAE,CACpB,MAAMijK,MAAAA,CAAS,IAAI,CAACZ,YAAY,CAChC,IAAK,MAAMK,KAAAA,IAASO,OAAQ,CAC3B,GAAI,CAACA,MAAAA,CAAO35J,cAAc,CAACo5J,KAAAA,CAAAA,CAAQ,SACnC,GAAIO,MAAM,CAACP,KAAAA,CAAM,CAAC1iK,IAAI,GAAKA,IAAAA,CAAM,CAChC,OAAOijK,MAAM,CAACP,KAAAA,CACf,CACD,CACA,OAAO,IACR,CACAQ,YAAAA,CAAa9nC,IAAI,CAAE,CAClB,OAAO,IAAI,CAACinC,YAAY,CAACjnC,KAAK,EAAI,IACnC,CACA+nC,UAAAA,CAAWxY,YAAY,CAAE,CACxB,MAAMv/D,OAAAA,CAAU,EAAE,CAClB,MAAMr2E,GAAAA,CAAM,IAAI,CAACutJ,UAAU,CAACnlK,MAAM,CAClC,IAAK,IAAID,GAAK,CAAA,CAAGA,EAAAA,CAAK6X,IAAK7X,EAAAA,EAAAA,CAAM,CAChC,MAAMkmK,KAAAA,CAAQ,IAAI,CAACd,UAAU,CAACplK,GAAG,CACjC,GAAIkmK,MAAMzY,YAAY,GAAKA,aAAc,CACxCv/D,OAAAA,CAAQptF,IAAI,CAAColK,OACd,CACD,CACA,OAAOh4E,OACR,CAEA03E,4BAA4BpO,IAAI,CAAEt5B,IAAI,CAAE,CACvC,GAAI,CAACs5B,IAAAA,CAAK3wJ,OAAO,CAAE,OACnB,GAAI2wJ,IAAAA,CAAKlK,KAAK,EAAIkK,IAAAA,CAAKlK,KAAK,CAACG,YAAY,GAAKvvB,IAAAA,CAAM,CACnDs5B,KAAKlK,KAAK,CAACG,YAAY,CAAG,GAC3B,CACA,GAAI+J,KAAKl2F,MAAM,EAAIk2F,KAAKl2F,MAAM,CAACmsF,YAAY,GAAKvvB,KAAM,CACrDs5B,IAAAA,CAAKl2F,MAAM,CAACmsF,YAAY,CAAG,GAC5B,CACA,GAAI+J,IAAAA,CAAKjyG,OAAO,EAAIiyG,IAAAA,CAAKjyG,OAAO,CAACkoG,YAAY,GAAKvvB,IAAAA,CAAM,CACvDs5B,IAAAA,CAAKjyG,OAAO,CAACkoG,YAAY,CAAG,GAC7B,CACA,GAAI+J,IAAAA,CAAKzJ,MAAM,EAAIyJ,IAAAA,CAAKzJ,MAAM,CAACN,YAAY,GAAKvvB,KAAM,CACrDs5B,IAAAA,CAAKzJ,MAAM,CAACN,YAAY,CAAG,GAC5B,CACA,IAAK,IAAIztJ,EAAAA,CAAK,CAAA,CAAGA,GAAKw3J,IAAAA,CAAKG,SAAS,CAAC13J,MAAM,CAAED,KAAM,CAClD,IAAI,CAAC4lK,2BAA2B,CAACpO,KAAKG,SAAS,CAAC33J,EAAAA,CAAG,CAAEk+H,MACtD,CACD,CACApuH,OAAOsH,IAAI,CAAE+uJ,OAAO,CAAE3O,IAAI,CAAE,CAC3B,MAAMgO,MAAQ,IAAI,CAACL,YAAY,CAACgB,OAAAA,CAAQ,CACxC,GAAIX,KAAAA,CAAO,CACV,GAAIA,MAAM1X,IAAI,CAAC12I,KAAK,CAACrO,OAAO,CAACyuJ,IAAAA,CAAAA,CAAQ,CAAA,CAAG,CACvCgO,KAAAA,CAAM1X,IAAI,CAAC12I,IAAAA,CAAK,CAACtW,IAAI,CAAC02J,MACtB,IAAI,CAACqO,cAAc,CAACM,SACrB,CACD,CACD,CACAh8J,MAAAA,CAAOiN,IAAI,CAAE+uJ,OAAO,CAAE3O,IAAI,CAAE,CAC3B,MAAMgO,KAAAA,CAAQ,IAAI,CAACL,YAAY,CAACgB,QAAQ,CACxC,GAAIX,KAAAA,CAAO,CACV,MAAMp7J,GAAAA,CAAMo7J,KAAAA,CAAM1X,IAAI,CAAC12I,IAAAA,CAAK,CAACrO,OAAO,CAACyuJ,MACrC,GAAIptJ,GAAAA,EAAO,EAAG,CACbo7J,KAAAA,CAAM1X,IAAI,CAAC12I,IAAAA,CAAK,CAACxO,MAAM,CAACwB,GAAAA,CAAK,CAAA,CAAA,CAC7B,IAAI,CAACy7J,cAAc,CAACM,OAAAA,EACrB,CACD,CACD,CACAC,yBAAAA,CAA0B7Y,aAAa,CAAE8Y,QAAQ,CAAE,CAClD,IAAIC,eAAiB,KAAA,CAErB,IAAK,IAAItmK,EAAAA,CAAK,EAAGA,EAAAA,CAAKutJ,aAAAA,CAActtJ,MAAM,CAAED,EAAAA,EAAAA,CAAM,CACjD,GAAIutJ,aAAa,CAACvtJ,EAAAA,CAAG,CAACs/J,YAAY,EAAI/R,aAAa,CAACvtJ,EAAAA,CAAG,CAACqhK,aAAa,CAAE,CACtEiF,cAAAA,CAAiB,KAClB,CAGD,CACA,GAAIA,cAAAA,CAAgB,CAGnB,OAAO,IACR,CACA,OAAO/Y,aACR,CACAgZ,cAAAA,CAAe/O,IAAI,CAAE1xJ,GAAG,CAAE0/J,KAAK,CAAEgB,kBAAkB,CAAE,CACpD,GAAIhP,IAAAA,CAAKl2F,MAAM,CAAE,CAChB,MAAMmlG,MAAQ,IAAI,CAACL,yBAAyB,CAAC5O,IAAAA,CAAKl2F,MAAM,CAACisF,aAAa,CAAEiK,IAAAA,CAAK10J,IAAI,CAAA,CACjF,GAAI2jK,MAAO,CACV3gK,GAAAA,CAAM0gK,kBAAkB,CAAChP,IAAAA,CAAKl2F,MAAM,CAACmsF,YAAY,CAAC,CAAG3nJ,GAAAA,CAAI+lE,MAAM,CAAC46F,KAAAA,CAAAA,CAChEjP,KAAKl2F,MAAM,CAACurF,gBAAgB,GAC7B,CACD,CACA,OAAO/mJ,GACR,CACA4gK,aAAAA,CAAclP,IAAI,CAAE1xJ,GAAG,CAAE0/J,KAAK,CAAEgB,kBAAkB,CAAE,CACnD,GAAIhP,IAAAA,CAAKlK,KAAK,EAAIkK,IAAAA,CAAKlK,KAAK,CAACA,KAAK,CAAE,CACnC,MAAMmZ,KAAAA,CAAQ,IAAI,CAACL,yBAAyB,CAAC5O,KAAKlK,KAAK,CAACC,aAAa,CAAEiK,IAAAA,CAAK10J,IAAI,CAAA,CAChF,GAAI2jK,MAAO,CACV3gK,GAAAA,CAAM0gK,kBAAkB,CAAChP,KAAKlK,KAAK,CAACG,YAAY,CAAC,CAAG3nJ,IAAI+lE,MAAM,CAAC46F,OAC/DjP,IAAAA,CAAKlK,KAAK,CAACqZ,qBAAqB,GACjC,CACD,CACA,OAAO7gK,GACR,CACA8gK,eAAAA,CAAgBpP,IAAI,CAAE1xJ,GAAG,CAAE0/J,KAAK,CAAE,CACjC,GAAI,CAAChO,IAAAA,CAAKjyG,OAAO,CAAE,OACnB,IAAIkhH,MAAQ,KAAA,CACZ,GAAIjP,KAAKjyG,OAAO,CAACshH,KAAK,EAAIrP,IAAAA,CAAKjyG,OAAO,CAACshH,KAAK,CAACC,MAAM,CAACvZ,aAAa,CAACttJ,MAAM,CAAG,CAAA,CAAG,CAC7E6F,GAAAA,CAAIhF,IAAI,CAAC02J,IAAAA,CAAKjyG,OAAO,CAACshH,KAAK,CAACC,MAAM,CAACvZ,aAAa,CAAC,EAAE,CAAA,CACnDiK,IAAAA,CAAKjyG,OAAO,CAACohH,qBAAqB,CAACnP,IAAAA,CAAKjyG,OAAO,CAACshH,KAAK,CAACC,MAAM,CAAA,CAC5DL,KAAAA,CAAQ,KACT,CAAA,KAAO,GAAIjP,KAAKjyG,OAAO,CAACwhH,MAAM,CAAE,CAC/BjhK,GAAAA,CAAIhF,IAAI,CAAC02J,IAAAA,CAAKjyG,OAAO,CAACwhH,MAAM,CAACC,WAAW,CAACpa,YAAY,EACrD4K,IAAAA,CAAKjyG,OAAO,CAACohH,qBAAqB,CAACnP,KAAKjyG,OAAO,CAACwhH,MAAM,CAACC,WAAW,CAAC1Z,KAAK,EACxE,GAAIkK,IAAAA,CAAKjyG,OAAO,CAACwhH,MAAM,CAACC,WAAW,CAACC,kBAAkB,CAAE,CACvDnhK,IAAIhF,IAAI,CAAC02J,KAAKjyG,OAAO,CAACwhH,MAAM,CAACC,WAAW,CAACC,kBAAkB,EAC3D,GAAI,CAACzP,KAAKjyG,OAAO,CAACwhH,MAAM,CAACC,WAAW,CAACC,kBAAkB,CAAC75G,YAAY,EAAI,CAACoqG,IAAAA,CAAKjyG,OAAO,CAACwhH,MAAM,CAACC,WAAW,CAACC,kBAAkB,CAAC55G,WAAW,CAAE,CACxImqG,IAAAA,CAAKjyG,OAAO,CAAC2hH,YAAY,GACzB1P,IAAAA,CAAKjyG,OAAO,CAAC4hH,YAAY,GAC1B,CACD,CACAV,KAAAA,CAAQ,KACT,CACA,GAAIA,KAAAA,CAAO,CACVjB,MAAM5X,GAAG,CAAG,KACb,CACD,CAKAwZ,+BAA+BZ,kBAAkB,CAAEa,QAAQ,CAAE,CAC5D,IAAK,IAAI/zJ,CAAAA,CAAI,EAAGA,CAAAA,CAAI+zJ,QAAAA,CAASpnK,MAAM,CAAEqT,IAAK,CACzC,MAAM4qH,KAAOmpC,QAAQ,CAAC/zJ,EAAE,CACxB,MAAMkyJ,MAAQ,IAAI,CAACL,YAAY,CAACjnC,IAAAA,CAAK,CACrC,GAAI,CAACsnC,MAAO,SACZ,IAAI1/J,GAAAA,CAAM0gK,kBAAkB,CAACtoC,IAAAA,CAAK,CAClC,GAAI,CAACp4H,GAAAA,CAAKA,IAAM0gK,kBAAkB,CAACtoC,KAAK,CAAG,EAAE,CAC7C,IAAK,IAAIxjH,EAAI,CAAA,CAAGA,CAAAA,CAAI8qJ,MAAM1X,IAAI,CAACR,KAAK,CAACrtJ,MAAM,CAAEya,CAAAA,EAAAA,CAAK,CACjD5U,GAAAA,CAAM,IAAI,CAAC4gK,aAAa,CAAClB,MAAM1X,IAAI,CAACR,KAAK,CAAC5yI,CAAAA,CAAE,CAAE5U,GAAAA,CAAK0/J,KAAAA,CAAOgB,oBAC3D,CACA,IAAK,IAAIlnK,CAAAA,CAAI,EAAGA,CAAAA,CAAIkmK,KAAAA,CAAM1X,IAAI,CAACxsF,MAAM,CAACrhE,MAAM,CAAEX,IAAK,CAClDwG,GAAAA,CAAM,IAAI,CAACygK,cAAc,CAACf,KAAAA,CAAM1X,IAAI,CAACxsF,MAAM,CAAChiE,CAAAA,CAAE,CAAEwG,IAAK0/J,KAAAA,CAAOgB,kBAAAA,EAC7D,CACA,IAAK,IAAIv5J,EAAI,CAAA,CAAGA,CAAAA,CAAIu4J,MAAM1X,IAAI,CAACvoG,OAAO,CAACtlD,MAAM,CAAEgN,CAAAA,EAAAA,CAAK,CACnD,IAAI,CAAC25J,eAAe,CAACpB,KAAAA,CAAM1X,IAAI,CAACvoG,OAAO,CAACt4C,CAAAA,CAAE,CAAEnH,IAAK0/J,KAAAA,EAClD,CACA,IAAK,IAAIhgK,GAAK,CAAA,CAAGA,EAAAA,CAAKggK,MAAM1X,IAAI,CAACC,MAAM,CAAC9tJ,MAAM,CAAEuF,EAAAA,EAAAA,CAAM,CACrD,MAAMgyJ,IAAAA,CAAOgO,MAAM1X,IAAI,CAACC,MAAM,CAACvoJ,EAAAA,CAAG,CAClC,GAAIgyJ,IAAAA,CAAKzJ,MAAM,EAAIyJ,IAAAA,CAAKzJ,MAAM,CAACuZ,aAAa,GAAK9B,KAAAA,CAAMhY,OAAO,EAAIgK,KAAKzJ,MAAM,CAACA,MAAM,CAACwZ,WAAW,GAAK3kB,wBAAuB,CAAA,CAAI,CAC/H98I,GAAAA,CAAIhF,IAAI,CAAC02J,IAAAA,CAAKzJ,MAAM,CAACuZ,aAAa,CAAA,CAClC9P,KAAKzJ,MAAM,CAAClB,gBAAgB,EAC5B2Y,CAAAA,KAAAA,CAAM3X,OAAO,CAAG,KACjB,CACD,CACD,CACD,CACApzE,SAAS4sF,QAAQ,CAAE,CAClB,MAAMb,kBAAAA,CAAqB,EAAC,CAC5B,GAAI,CAACa,QAAAA,CAAU,CACdA,QAAAA,CAAWlxJ,MAAAA,CAAOyB,IAAI,CAAC,IAAI,CAACutJ,YAAY,EACzC,CACA,MAAMO,YAAAA,CAAe,EAAE,CACvB,IAAK,IAAI1lK,EAAAA,CAAK,CAAA,CAAGA,GAAK,IAAI,CAAColK,UAAU,CAACnlK,MAAM,CAAED,EAAAA,EAAAA,CAAM,CACnD,GAAIqnK,QAAAA,CAASt+J,OAAO,CAAC,IAAI,CAACq8J,UAAU,CAACplK,GAAG,CAACytJ,YAAY,EAAI,CAAA,CAAG,CAC3DiY,aAAa5kK,IAAI,CAAC,IAAI,CAACskK,UAAU,CAACplK,EAAAA,CAAG,EACrC,QACD,CACA,IAAI,CAAC2lK,YAAY,CAAC,IAAI,CAACP,UAAU,CAACplK,EAAAA,CAAG,EACtC,CACA,IAAI,CAAColK,UAAU,CAAGM,aAClB,IAAI,CAAC0B,8BAA8B,CAACZ,mBAAoBa,QAAAA,CAAAA,CACxD,GAAIA,WAAa,IAAI,CAAChC,YAAY,CAAE,CACnC,IAAI,CAACA,YAAY,CAACplK,MAAM,CAAG,EAC5B,CAAA,KAAO,CACN,MAAMunK,cAAAA,CAAiB,EAAE,CACzB,IAAK,IAAIxnK,EAAAA,CAAK,CAAA,CAAGA,GAAK,IAAI,CAACqlK,YAAY,CAACplK,MAAM,CAAED,EAAAA,EAAAA,CAAM,CACrD,GAAIqnK,QAAAA,CAASt+J,OAAO,CAAC,IAAI,CAACs8J,YAAY,CAACrlK,EAAAA,CAAG,CAAA,CAAI,EAAGwnK,cAAAA,CAAe1mK,IAAI,CAAC,IAAI,CAACukK,YAAY,CAACrlK,EAAAA,CAAG,EAC3F,CACA,IAAI,CAACqlK,YAAY,CAAGmC,eACrB,CACA,IAAIhC,MAAOiC,KAAAA,CAAOC,SAAAA,CAAWxB,KAAAA,CAC7B,IAAK,MAAMC,OAAAA,IAAWK,kBAAAA,CAAoB,CACzC,GAAI,CAACA,mBAAmBp6J,cAAc,CAAC+5J,SAAU,SACjDX,KAAAA,CAAQgB,kBAAkB,CAACL,OAAAA,CAAQ,CACnCuB,SAAAA,CAAY,IAAI,CAACvC,YAAY,CAACgB,OAAAA,CAAQ,CACtC,GAAI,CAACuB,SAAAA,CAAW,CACf,QACD,CACAD,MAAQ,IAAI,CAACE,OAAO,CAACnC,KAAAA,CAAOkC,UAAUla,OAAO,CAAEka,UAAU/Z,WAAW,CAAE+Z,UAAU9Z,GAAG,EAAI8Z,SAAAA,CAAU7Z,OAAO,EACxG,IAAK,IAAI7tJ,GAAK,CAAA,CAAGA,EAAAA,CAAKynK,MAAMxnK,MAAM,CAAED,KAAM,CACzCkmK,KAAAA,CAAQ,IAAI,CAAC/mK,MAAM,CAACsoK,KAAK,CAACznK,GAAG,CAAE0nK,SAAAA,CAAUla,OAAO,CAAE53I,SAASuwJ,OAAAA,CAAS,EAAA,CAAA,CAAA,CACpE,GAAID,KAAAA,CAAO,CACVA,MAAMpZ,WAAW,CAAC,IAAI,CAACH,KAAK,CAAE+a,SAAAA,CAAU7zE,MAAM,EAC/C,CACD,CACD,CACD,CACA8zE,OAAAA,CAAQpa,aAAa,CAAEC,OAAO,CAAEG,WAAAA,CAAc3jI,OAAO49I,iBAAiB,CAAEC,WAAW,CAAE,CACpF,GAAIta,aAAAA,CAActtJ,MAAM,GAAK,CAAA,CAAG,OAAO,EAAE,CACzC,MAAM6nK,gBAAkBna,WAAAA,CAAc,EAAA,CACtC,MAAMoa,gBAAAA,CAAmB,KACzB,MAAMC,cAAAA,CAAiB,WACvB,MAAM74I,KAAAA,CAAQ,IAAIhE,WAAAA,CAClB,MAAM88I,SAAW,IAAI98I,WAAAA,CACrB,IAAI+8I,mBAAAA,CAAsB,IAAA,CAC1B,IAAIC,EAAAA,CACJ,MAAMV,MAAQ,EAAE,CAChB,IAAI/1H,CAAAA,CAAI,EACR,GAAIm2H,WAAAA,CAAa,CAChBta,aAAAA,CAAct9I,IAAI,CAAC,CAACtT,CAAAA,CAAGC,CAAAA,GAAAA,CACtB,OAAOD,EAAEqnK,SAAS,CAAGpnK,EAAEonK,SACxB,GACD,CACA,IAAIoE,kBAAAA,CAAqB7a,aAAAA,CACzB,IAAI8a,kBAAAA,CACJ,MAAMC,SAAWT,WAAAA,CAAc,SAAS5C,EAAE,CAAA,CACzC,GAAIiD,oBAAqB,CACxBA,mBAAAA,CAAoB73J,GAAG,CAAC40J,EAAAA,CAAG7X,IAAI,EAChC,CAAA,KAAO,CACN8a,mBAAAA,CAAsBjD,EAAAA,CAAG7X,IAAI,CAACp4I,KAAK,GACpC,CACAqzJ,mBAAmBvnK,IAAI,CAACmkK,IACzB,CAAA,CAAI,SAASA,EAAE,CAAA,CACdoD,kBAAAA,CAAmBvnK,IAAI,CAACmkK,EAAAA,EACzB,EACA,MAAOmD,kBAAAA,CAAmBnoK,MAAM,CAAG,CAAA,CAAG,CACrCwnK,KAAK,CAAC/1H,CAAAA,CAAE,CAAG,CAAC02H,kBAAkB,CAAC,EAAE,CAAC,CAClCC,mBAAqB,EAAE,CACvB,MAAM1d,QAAAA,CAAWyd,kBAAkB,CAAC,CAAA,CAAE,CAACzd,QAAQ,CAC/C,MAAM/3D,KAAAA,CAAQw1E,kBAAkB,CAAC,CAAA,CAAE,CAACx1E,KAAK,CACzC,MAAM21E,KAAOH,kBAAkB,CAAC,CAAA,CAAE,CAACjI,WAAW,CAC9C,MAAM7tJ,OAAS81J,kBAAkB,CAAC,EAAE,CAACz3C,UAAU,CAC/C,MAAMx9D,QAAUi1G,kBAAkB,CAAC,EAAE,CAACh7G,YAAY,CAClD,IAAIo7G,SAAAA,CAAYJ,kBAAkB,CAAC,CAAA,CAAE,CAACvW,IAAI,CAACjkG,YAAY,CAACpL,cAAc,GACtE,MAAMwhH,SAAAA,CAAYoE,kBAAkB,CAAC,EAAE,CAACpE,SAAS,CACjD70I,KAAAA,CAAMpwB,IAAI,CAACqpK,kBAAkB,CAAC,EAAE,CAAChb,IAAI,EACrC,MAAMhmI,SAAAA,CAAY49I,aAAaoD,kBAAkB,CAAC,EAAE,CAAA,CACpD,MAAMK,wBAAAA,CAA2BL,kBAAkB,CAAC,CAAA,CAAE,CAACvW,IAAI,CAACjkG,YAAY,CAACroD,MAAM,CAACk/C,YAAY,CAC5F,MAAMqkC,QAAUs/E,kBAAkB,CAAC,EAAE,CAACvW,IAAI,CAAC7yF,SAAS,CAAC,CAAA,CAAE,CAAC8pB,OAAO,CAC/D,MAAMg7E,WAAasE,kBAAkB,CAAC,EAAE,CAACtE,UAAU,CACnD,MAAMC,kBAAoBqE,kBAAkB,CAAC,EAAE,CAACrE,iBAAiB,CACjEmE,mBAAAA,CAAsB,IAAA,CACtB,IAAK,IAAIloK,GAAK,CAAA,CAAGA,EAAAA,CAAKooK,mBAAmBnoK,MAAM,CAAED,KAAM,CACtD,MAAMilK,GAAKmD,kBAAkB,CAACpoK,GAAG,CACjC,GAAIwtJ,SAAWia,KAAK,CAAC/1H,EAAE,CAACzxC,MAAM,EAAI8nK,gBAAAA,CAAkB,CACnDM,kBAAAA,CAAqBA,kBAAAA,CAAmBx8F,MAAM,CAACu8F,kBAAAA,CAAmBvnK,KAAK,CAACb,EAAAA,CAAAA,CAAAA,CACxE,KACD,CACA,GAAI2qJ,WAAasa,EAAAA,CAAGta,QAAQ,EAAI/3D,KAAAA,GAAUqyE,EAAAA,CAAGryE,KAAK,EAAI61E,wBAAAA,GAA6BxD,EAAAA,CAAGpT,IAAI,CAACjkG,YAAY,CAACroD,MAAM,CAACk/C,YAAY,EAAIqkC,OAAAA,GAAYm8E,EAAAA,CAAGpT,IAAI,CAAC7yF,SAAS,CAAC,CAAA,CAAE,CAAC8pB,OAAO,EAAIy/E,IAAAA,GAAStD,GAAG9E,WAAW,EAAIqI,SAAAA,CAAYvD,EAAAA,CAAGpT,IAAI,CAACjkG,YAAY,CAACpL,cAAc,EAAA,CAAKwlH,eAAgB,CACzQM,QAAAA,CAASrD,IACT,QACD,CACAgD,SAASlpK,IAAI,CAACowB,OACd84I,QAAAA,CAAS53J,GAAG,CAAC40J,EAAAA,CAAG7X,IAAI,CAAA,CACpB,GAAI6a,SAASt8I,WAAW,CAAC5P,CAAC,CAAG+rJ,eAAAA,EAAmBG,SAASt8I,WAAW,CAAC3P,CAAC,CAAG8rJ,eAAAA,EAAmBG,SAASt8I,WAAW,CAAC1P,CAAC,CAAG6rJ,eAAAA,CAAiB,CACrIQ,QAAAA,CAASrD,EAAAA,CAAAA,CACT,QACD,CACA,GAAI9xG,OAAAA,CAAS,CACZ,GAAI,EAAEg1G,GAAKlD,EAAAA,CAAG73G,YAAY,CAAD,EAAM+F,OAAAA,CAAQ5oD,IAAI,GAAK49J,EAAAA,CAAG59J,IAAI,EAAI4oD,OAAAA,CAAQhN,KAAK,GAAKgiH,EAAAA,CAAGhiH,KAAK,CAAE,CACtFmiH,QAAAA,CAASrD,EAAAA,CAAAA,CACT,QACD,CACD,CACA,GAAI79I,SAAAA,GAAc49I,YAAAA,CAAaC,IAAK,CACnCqD,QAAAA,CAASrD,IACT,QACD,CACA,GAAInB,UAAAA,GAAemB,EAAAA,CAAGnB,UAAU,EAAIC,iBAAAA,GAAsBkB,EAAAA,CAAGlB,iBAAiB,CAAE,CAC/EuE,QAAAA,CAASrD,IACT,QACD,CACA,GAAI,CAACJ,cAAAA,CAAevyJ,MAAAA,CAAQ2yJ,EAAAA,CAAGt0C,UAAU,CAAA,CAAG,CAC3C23C,SAASrD,EAAAA,CAAAA,CACT,QACD,CACA,GAAI4C,WAAAA,EAAeK,mBAAAA,EAAuBA,mBAAAA,CAAoB/6I,UAAU,CAAC83I,EAAAA,CAAG7X,IAAI,CAAA,EAAK6X,EAAAA,CAAGjB,SAAS,GAAKA,SAAAA,CAAW,CAChHsE,QAAAA,CAASrD,EAAAA,CAAAA,CACT,QACD,CACA91I,KAAAA,CAAM9e,GAAG,CAAC40J,EAAAA,CAAG7X,IAAI,CAAA,CACjBob,SAAAA,EAAavD,EAAAA,CAAGpT,IAAI,CAACjkG,YAAY,CAACpL,cAAc,EAAA,CAChDilH,KAAK,CAAC/1H,CAAAA,CAAE,CAAC5wC,IAAI,CAACmkK,EAAAA,EACf,CACAvzH,CAAAA,EAAAA,CACA02H,kBAAAA,CAAqBC,mBACtB,CACA,OAAOZ,KACR,CACAiB,sBAAAA,CAAuBnb,aAAa,CAAEC,OAAO,CAAE,CAC9C,IAAImb,OAAAA,CAAU,IAAA,CACd,IAAIC,aAAAA,CAAgB,CAAA,CACpB,IAAIC,eAAAA,CAAkB,CAAA,CACtB,IAAIle,QAAAA,CAAW,IAAA,CACf,IAAK,IAAI3qJ,EAAAA,CAAK,EAAGA,EAAAA,CAAKutJ,aAAAA,CAActtJ,MAAM,CAAED,KAAM,CACjD,GAAIutJ,aAAa,CAACvtJ,EAAAA,CAAG,CAACsiK,OAAO,CAAE,CAC9B,MAAMzQ,IAAAA,CAAOtE,aAAa,CAACvtJ,EAAAA,CAAG,CAAC6xJ,IAAI,CACnC,MAAM3hI,QAAAA,CAAW2hI,IAAAA,CAAKjkG,YAAY,CAACnL,WAAW,CAC9CmmH,aAAAA,EAAiB14I,SACjB,GAAI2hI,IAAAA,CAAK7yF,SAAS,CAAC,CAAA,CAAE,CAAC8pB,OAAO,CAAE,CAC9B+/E,eAAAA,EAAmBhX,IAAAA,CAAK7yF,SAAS,CAAC,CAAA,CAAE,CAACnvB,MACtC,CAAA,KAAO,CACN,MAAMktB,aAAAA,CAAgB80F,IAAAA,CAAK7yF,SAAS,CAAC,CAAA,CAAE,CAAC5nD,IAAI,CAC5C,GAAI2lD,aAAAA,GAAkBl7B,gBAAAA,EAAoBk7B,gBAAkBn7B,kBAAAA,CAAoB,CAC/E,GAAIiwH,IAAAA,CAAK7yF,SAAS,CAAC,CAAA,CAAE,CAACnvB,KAAK,GAAK,EAAG,CAClCg5H,eAAAA,EAAmB,EACpB,CACD,CACD,CACA,GAAI,CAACF,QAAS,CACbhe,QAAAA,CAAW4C,aAAa,CAACvtJ,EAAAA,CAAG,CAAC2qJ,QAAQ,CACrCge,QAAU,EAAC,CACX,MAAMG,KAAAA,CAAQjX,KAAKjkG,YAAY,CAACroD,MAAM,CAACg+C,QAAQ,CAC/C,IAAK,IAAI7R,CAAAA,CAAI,CAAA,CAAGA,EAAIo3H,KAAAA,CAAM7oK,MAAM,CAAEyxC,CAAAA,EAAAA,CAAK,CACtC,MAAMgS,QAAAA,CAAWolH,KAAK,CAACp3H,CAAAA,CAAE,CAAC5uC,IAC1B6lK,CAAAA,OAAO,CAACjlH,SAAS,CAAG,CACnBS,cAAe2kH,KAAK,CAACp3H,EAAE,CAACyS,aAAa,CACrCD,QAAAA,CAAU4kH,KAAK,CAACp3H,CAAAA,CAAE,CAACwS,QAAQ,CAC3B9jD,UAAW0oK,KAAK,CAACp3H,EAAE,CAACtxC,SAAS,CAC7ByvC,KAAAA,CAAO,CACR,EACD,CACA,GAAI29G,QAAS,CACZmb,OAAO,CAACzmI,qBAAAA,CAAsB,CAAG,CAChCiiB,aAAAA,CAAe,CAAA,CACfD,QAAAA,CAAUzd,YAAAA,CACVrmC,UAAW,KAAA,CACXyvC,KAAAA,CAAO,CACR,EACD,CACD,CACD,CACD,CACA,OAAO,CACN84H,OAAAA,CACAC,cACAC,eAAAA,CACAle,QACD,CACD,CACAxrJ,MAAAA,CAAOouJ,aAAa,CAAEC,OAAO,CAAEC,YAAY,CAAE,CAC5C,GAAI,CAAC,IAAI,CAACsb,KAAK,CAAE,CAChB,IAAI,CAACC,aAAa,CAAG,EACrB,CAAA,IAAI,CAACD,KAAK,CAAG,KACd,CACA,IAAIrU,OAAS,IAAA,CACb,IAAIhxG,SACJ,IAAImuG,IAAAA,CAAM3hI,SACV,IAAIg2I,KAAAA,CAAQ,KACZ,MAAM+C,SAAAA,CAAY,IAAI,CAACP,sBAAsB,CAACnb,aAAAA,CAAeC,OAAAA,CAAAA,CAC7D,GAAIyb,SAAAA,CAAUN,OAAO,CAAE,CACtB,MAAMA,OAAAA,CAAUM,SAAAA,CAAUN,OAAO,CACjC,IAAIhe,SAAWse,SAAAA,CAAUte,QAAQ,CACjC,MAAMie,aAAAA,CAAgBK,UAAUL,aAAa,CAC7C,MAAMC,eAAAA,CAAkBI,SAAAA,CAAUJ,eAAe,CACjD3C,KAAAA,CAAQ,IAAIxZ,KAAAA,CAAMa,cAAeC,OAAAA,CAASC,YAAAA,CAAAA,CAC1C,IAAI,CAAC2X,UAAU,CAACtkK,IAAI,CAAColK,OACrB,IAAIgD,SAAAA,CAAWC,gBAAiBzoH,UAAAA,CAAY0oH,SAAAA,CAC5C,IAAIC,cAAAA,CAAiB,CAAA,CACrB,IAAIC,WAAAA,CAAc,CAAA,CAClB,IAAIC,SAAAA,CACJ,MAAMC,cAAAA,CAAiBZ,aAAAA,EAAiB,MAAQvnI,WAAAA,CAAcF,WAAAA,CAC9D,MAAM0f,OAAAA,CAAU,IAAI2oH,cAAAA,CAAeX,eAAAA,CAAAA,CACnC,IAAKnlH,QAAAA,IAAYilH,OAAAA,CAAS,CACzBjU,MAAAA,CAASiU,OAAO,CAACjlH,QAAAA,CACjBgxG,CAAAA,MAAAA,CAAO+U,aAAa,CAAG99H,eAAe,CAAC+oH,MAAAA,CAAOxwG,QAAQ,CAAC,CACvDwwG,OAAOgV,eAAe,CAAG99H,uBAAuB,CAAC8oH,MAAAA,CAAOxwG,QAAQ,CAChEwwG,CAAAA,MAAAA,CAAOp6I,MAAM,CAAG,IAAIo6I,OAAO+U,aAAa,CAACb,cAAgBlU,MAAAA,CAAOvwG,aAAa,EAC9E,CACA,IAAK,IAAInkD,EAAAA,CAAK,CAAA,CAAGA,GAAKutJ,aAAAA,CAActtJ,MAAM,CAAED,EAAAA,EAAAA,CAAM,CACjD,GAAI,CAACutJ,aAAa,CAACvtJ,EAAAA,CAAG,CAACsiK,OAAO,CAAE,CAC/B,QACD,CACAzQ,KAAOtE,aAAa,CAACvtJ,GAAG,CAAC6xJ,IAAI,CAC7B3hI,QAAAA,CAAW2hI,IAAAA,CAAKjkG,YAAY,CAACnL,WAAW,CACxC,GAAI,CAAC+qG,OAAAA,CAAS,CACb+b,UAAYhc,aAAa,CAACvtJ,GAAG,CAACw3J,IAAI,CAAC7H,iBAAiB,GACrD,CACA,IAAKjsG,QAAAA,IAAYilH,QAAS,CACzB,GAAIjlH,WAAaxhB,qBAAAA,CAAuB,CACvCwyH,OAASiU,OAAO,CAACjlH,QAAAA,CAAS,CAC1B,MAAM5C,QAAAA,CAAW,IAAI4zG,OAAO+U,aAAa,CAAC/U,OAAOp6I,MAAM,CAACA,MAAM,CAAEo6I,MAAAA,CAAOgV,eAAe,CAAGhV,MAAAA,CAAO7kH,KAAK,CAAA,CACrG,MAAM85H,gBAAkB9X,IAAAA,CAAK2C,eAAe,CAAC9wG,QAAAA,CAAU5C,UAAY4zG,MAAAA,CAAOvwG,aAAa,CACvFuwG,MAAAA,CAAO7kH,KAAK,EAAI85H,eAAAA,CAChB,GAAI,CAACnc,OAAAA,EAAWkH,OAAOvwG,aAAa,EAAI,EAAG,CAC1C,GAAIT,WAAa5hB,iBAAAA,CAAmB,CACnC,MAAMpnB,CAAAA,CAAI6uJ,UAAU5qJ,IAAI,CACxB,MAAMjG,EAAAA,CAAKgC,CAAC,CAAC,CAAA,CAAE,CACf,MAAM/B,GAAAA,CAAM+B,CAAC,CAAC,CAAA,CAAE,CAChB,MAAMiP,GAAAA,CAAMjP,CAAC,CAAC,CAAA,CAAE,CAChB,MAAMkvJ,EAAAA,CAAKlvJ,CAAC,CAAC,CAAA,CAAE,CACf,MAAMmvJ,EAAAA,CAAKnvJ,CAAC,CAAC,CAAA,CAAE,CACf,MAAMovJ,GAAKpvJ,CAAC,CAAC,EAAE,CACf,MAAMqvJ,GAAKrvJ,CAAC,CAAC,CAAA,CAAE,CACf,MAAMsvJ,EAAAA,CAAKtvJ,CAAC,CAAC,CAAA,CAAE,CACf,MAAM6O,GAAAA,CAAM7O,CAAC,CAAC,EAAA,CAAG,CACjB,MAAMuvJ,IAAAA,CAAOvvJ,CAAC,CAAC,EAAA,CAAG,CAClB,MAAMgZ,GAAAA,CAAMhZ,CAAC,CAAC,EAAA,CAAG,CACjB,MAAMwvJ,GAAAA,CAAMxvJ,CAAC,CAAC,EAAA,CAAG,CACjB,IAAIne,EAAAA,CAAIof,GAAIkB,EAAAA,CACZ,IAAK,IAAI60B,CAAAA,CAAI,CAAA,CAAGA,EAAIi4H,eAAAA,CAAiBj4H,CAAAA,EAAKgjH,OAAOvwG,aAAa,CAAE,CAC/D5nD,EAAAA,CAAKukD,QAAQ,CAACpP,CAAAA,CAAE,CAChB/1B,EAAAA,CAAKmlC,QAAQ,CAACpP,CAAAA,CAAI,CAAA,CAAE,CACpB70B,EAAAA,CAAKikC,QAAQ,CAACpP,CAAAA,CAAI,CAAA,CAAE,CACpBoP,QAAQ,CAACpP,CAAAA,CAAE,CAAGn1C,EAAAA,CAAKmc,EAAAA,CAAKiD,GAAKiuJ,EAAAA,CAAK/sJ,EAAAA,CAAKktJ,GAAKE,IAC5CnpH,CAAAA,QAAQ,CAACpP,CAAAA,CAAI,EAAE,CAAGn1C,EAAAA,CAAKoc,IAAMgD,EAAAA,CAAKkuJ,EAAAA,CAAKhtJ,GAAKmtJ,EAAAA,CAAKt2I,GACjDotB,CAAAA,QAAQ,CAACpP,CAAAA,CAAI,CAAA,CAAE,CAAGn1C,EAAAA,CAAKotB,GAAAA,CAAMhO,GAAKmuJ,EAAAA,CAAKjtJ,EAAAA,CAAK0M,IAAM2gJ,IACnD,CACD,MAAO,GAAIxmH,QAAAA,GAAa3hB,iBAAmB2hB,QAAAA,GAAa1hB,gBAAAA,CAAkB,CACzE2iI,IAAAA,CAAKtkJ,UAAU,CAACkpJ,SAAAA,CAAAA,CAAWpqJ,SAAS,EAAA,CACpC,KAAM,CAACzG,EAAAA,CAAIC,GAAAA,CAAKgR,IAAKwgJ,EAAAA,CAAIP,EAAAA,CAAIC,GAAIC,EAAAA,CAAIM,EAAAA,CAAIL,GAAG,CAAGpF,IAAAA,CAAKhmJ,IAAI,CACxD,IAAIpiB,GAAIof,EAAAA,CAAIkB,EAAAA,CACZ,IAAK,IAAI60B,CAAAA,CAAI,CAAA,CAAGA,CAAAA,CAAIi4H,gBAAiBj4H,CAAAA,EAAKgjH,MAAAA,CAAOvwG,aAAa,CAAE,CAC/D5nD,GAAKukD,QAAQ,CAACpP,EAAE,CAChB/1B,EAAAA,CAAKmlC,QAAQ,CAACpP,CAAAA,CAAI,EAAE,CACpB70B,EAAAA,CAAKikC,QAAQ,CAACpP,CAAAA,CAAI,CAAA,CAClBoP,CAAAA,QAAQ,CAACpP,EAAE,CAAGn1C,EAAAA,CAAKmc,GAAKiD,EAAAA,CAAKwuJ,EAAAA,CAAKttJ,EAAAA,CAAKitJ,EACvChpH,CAAAA,QAAQ,CAACpP,EAAI,CAAA,CAAE,CAAGn1C,GAAKoc,GAAAA,CAAMgD,EAAAA,CAAKiuJ,EAAAA,CAAK/sJ,EAAAA,CAAKutJ,EAC5CtpH,CAAAA,QAAQ,CAACpP,CAAAA,CAAI,CAAA,CAAE,CAAGn1C,EAAAA,CAAKotB,GAAAA,CAAMhO,GAAKkuJ,EAAAA,CAAKhtJ,EAAAA,CAAKktJ,GAC7C,CACD,CACD,CACD,CACD,CACA,GAAIvc,OAAAA,CAAS,CACZkH,MAAAA,CAASiU,OAAO,CAACzmI,qBAAAA,CAAsB,CACvC,IAAK,IAAIwP,CAAAA,CAAI,EAAGA,CAAAA,CAAIxhB,QAAAA,CAAUwhB,IAAK,CAClCgjH,MAAAA,CAAOp6I,MAAM,CAACo6I,MAAAA,CAAO7kH,KAAK,EAAA,CAAG,CAAG7vC,GACjC,CACD,CACA,GAAI6xJ,IAAAA,CAAK7yF,SAAS,CAAC,CAAA,CAAE,CAAC8pB,OAAO,CAAE,CAC9BogF,SAAAA,CAAYrX,IAAAA,CAAK7yF,SAAS,CAAC,CAAA,CAAE,CAAC4pB,IAAI,CAClCugF,gBAAkBtX,IAAAA,CAAK7yF,SAAS,CAAC,CAAA,CAAE,CAAC6pB,UAAU,EAAI,EAClDnoC,UAAAA,CAAamxG,IAAAA,CAAK7yF,SAAS,CAAC,CAAA,CAAE,CAACnvB,KAAK,CACpC,MAAMw6H,SAAAA,CAAYxY,IAAAA,CAAKzxG,WAAW,CAAC,CAAA,CAAE,CAACI,SAAS,EAAA,CAC/C4oH,UAAY,IAAIr9H,sBAAsB,CAACs+H,SAAAA,CAAU,CAACxY,IAAAA,CAAKzxG,WAAW,CAAC,CAAA,CAAE,CAACxL,OAAO,EAC9E,CAAA,KAAO,CACNu0H,eAAAA,CAAkB,CAAA,CAClB,MAAMpsG,aAAAA,CAAgB80F,IAAAA,CAAK7yF,SAAS,CAAC,CAAA,CAAE,CAAC5nD,IAAI,CAC5C,GAAI2lD,aAAAA,GAAkBl7B,kBAAoBk7B,aAAAA,GAAkBn7B,kBAAAA,CAAoB,CAC/E,GAAIiwH,IAAAA,CAAK7yF,SAAS,CAAC,CAAA,CAAE,CAACnvB,KAAK,GAAK,EAAG,CAClCq5H,SAAAA,CAAY,EACZxoH,UAAAA,CAAa,CAAA,CACb0oH,UAAYrsG,aAAAA,GAAkBl7B,gBAAAA,CAAmB4iI,cAAAA,CAAiBC,iBACnE,MAAO,CACNhkH,UAAAA,CAAa,EACb,QACD,CACD,CACD,CACA,IAAK,IAAIhP,CAAAA,CAAI,CAAA,CAAGA,EAAIgP,UAAAA,CAAYhP,CAAAA,EAAAA,CAAK,CACpCmP,OAAO,CAACnP,EAAI43H,WAAAA,CAAY,CAAGF,SAAS,CAACF,UAAYx3H,CAAAA,CAAE,CAAGy3H,gBAAkBE,eACzE,CACAC,aAAe5oH,UAAAA,CACf2oH,cAAAA,EAAkBn5I,SACnB,CACA2hI,KAAO,IAAIJ,IAAAA,CAAK,IAAI,CAACvjH,MAAM,EAC3B,IAAKwV,QAAAA,IAAYilH,OAAAA,CAAS,CACzBjU,OAASiU,OAAO,CAACjlH,SAAS,CAC1BmuG,IAAAA,CAAKU,eAAe,CAAC7uG,QAAAA,CAAUgxG,OAAOp6I,MAAM,CAAEo6I,OAAOvwG,aAAa,CAAE,MAAK,CAAGuwG,MAAAA,CAAOxwG,QAAQ,CAAEwwG,MAAAA,CAAOt0J,SAAS,EAC9G,CACA,GAAIygD,OAAAA,CAAQ5gD,MAAM,CAAG,CAAA,CAAG,CACvB4xJ,IAAAA,CAAKa,UAAU,CAAC7xG,OAAAA,EACjB,CACAgxG,KAAKh4G,MAAM,CAAClY,oBAAqB,KAAA,CAAA,CACjC,GAAI6rH,QAAS,CACZ7C,QAAAA,CAAWA,QAAAA,CAAS31I,KAAK,GACzB21I,QAAAA,CAAS9wG,MAAM,GAChB,CACA,MAAM+yG,aAAe,IAAI8R,YAAAA,CAAa7M,KAAMlH,QAAAA,CAAU,IAAI,CAAC6E,QAAQ,CACnE5C,CAAAA,YAAAA,CAAakX,UAAU,CAAGoC,KAAAA,CAAM/Y,iBAAiB,CAAC,CAAA,CAAE,CAAC2W,UACrDlX,CAAAA,YAAAA,CAAaj8B,UAAU,CAAGu1C,KAAAA,CAAM/Y,iBAAiB,CAAC,CAAA,CAAE,CAACx8B,UAAU,CAC/Di8B,aAAah6D,KAAK,CAAGszE,MAAM/Y,iBAAiB,CAAC,CAAA,CAAE,CAACv6D,KAAK,CACrDg6D,aAAauT,WAAW,CAAG+F,MAAM/Y,iBAAiB,CAAC,EAAE,CAACgT,WAAW,CACjEvT,YAAAA,CAAasU,QAAQ,CAAG,IACxBtU,CAAAA,YAAAA,CAAa+V,IAAI,CAAGuD,KAAAA,CAAM/Y,iBAAiB,CAAC,CAAA,CAAE,CAACwV,IAAI,CACnD,MAAM2H,UAAAA,CAAa,IAAI,CAACnF,YAAY,CAAC1X,aAAa,CAClD,GAAI6c,YAAcA,UAAAA,CAAW1c,GAAG,CAAE,CACjChB,YAAAA,CAAa+V,IAAI,CAAG,MACrB,CACA,GAAInV,QAAS,CACZ,MAAM0C,MAAQ,EAAE,CAChB,IAAK,IAAIlwJ,EAAAA,CAAK,EAAGA,EAAAA,CAAKkmK,KAAAA,CAAM/Y,iBAAiB,CAACltJ,MAAM,CAAED,EAAAA,EAAAA,CAAM,CAC3DkwJ,KAAAA,CAAMpvJ,IAAI,CAAColK,KAAAA,CAAM/Y,iBAAiB,CAACntJ,EAAAA,CAAG,CAACw3J,IAAI,EAC5C,CACA5K,YAAAA,CAAa0S,YAAY,CAAG,IAAIrP,iBAAAA,CAAkB,IAAI,CAAC/hH,MAAM,CAAEgiH,KAAAA,CAAO,IAAI,CAACV,QAAQ,EACpF,CACA5C,YAAAA,CAAaqS,WAAW,CAAG,KAC3BrS,CAAAA,YAAAA,CAAaoX,SAAS,CAAGkC,KAAAA,CAAM/Y,iBAAiB,CAAC,CAAA,CAAE,CAAC6W,SAAS,CAC7DpX,aAAax/F,YAAY,CAAG84G,KAAAA,CAAM/Y,iBAAiB,CAAC,CAAA,CAAE,CAAC//F,YAAY,CACnEw/F,aAAav/F,WAAW,CAAG64G,MAAM/Y,iBAAiB,CAAC,EAAE,CAAC9/F,WAAW,CACjEu/F,YAAAA,CAAauX,eAAe,CAAGa,YAAAA,CAAakB,KAAAA,CAAM/Y,iBAAiB,CAAC,CAAA,CAAE,CACtEP,CAAAA,YAAAA,CAAakX,UAAU,CAAGoC,KAAAA,CAAM/Y,iBAAiB,CAAC,CAAA,CAAE,CAAC2W,UAAU,CAC/DlX,aAAamX,iBAAiB,CAAGmC,MAAM/Y,iBAAiB,CAAC,CAAA,CAAE,CAAC4W,iBAAiB,CAC7EmC,MAAMtZ,YAAY,CAAGA,aACrBsZ,KAAAA,CAAMhZ,iBAAiB,GACxB,CACA,OAAOgZ,KACR,CACAqE,WAAY,CACX,GAAI,IAAI,CAAClF,YAAY,CAACplK,MAAM,CAAG,CAAA,CAAG,CACjC,IAAI,CAACw6E,QAAQ,CAAC,IAAI,CAAC4qF,YAAY,EAChC,CACA,IAAK,IAAIrlK,EAAAA,CAAK,EAAGA,EAAAA,CAAK,IAAI,CAAColK,UAAU,CAACnlK,MAAM,CAAED,KAAM,CACnD,GAAI,CAAC,IAAI,CAAColK,UAAU,CAACplK,EAAAA,CAAG,CAACwtJ,OAAO,CAAE,SAClC,IAAI,CAAC4X,UAAU,CAACplK,EAAAA,CAAG,CAACktJ,iBAAiB,GACtC,CACD,CACAl4I,MAAMkxJ,KAAK,CAAEsE,mBAAmB,CAAE,CAClC,CACA7E,YAAAA,CAAaO,KAAK,CAAE,CACnBA,KAAAA,CAAM74H,OAAO,CAAC,IAAI,CAACs/G,KAAK,CAAE,IAAI,CAACwY,YAAY,CAACe,KAAAA,CAAMzY,YAAY,CAAC,CAAC55D,MAAM,EACvE,CA/iBA,YAAY3lD,MAAM,CAAEqqH,IAAI,CAAE5L,KAAK,CAAE,CAChC,IAAI,CAACz+G,MAAM,CAAGA,MACd,CAAA,IAAI,CAACshH,QAAQ,CAAG+I,IAChB,CAAA,IAAI,CAAC5L,KAAK,CAAGA,KACb,CAAA,IAAI,CAACoc,KAAK,CAAG,KACb,CAAA,IAAI,CAAC5D,YAAY,CAAG,EACpB,CAAA,IAAI,CAACI,kBAAkB,CAAG,CAC1B,CAAA,IAAI,CAACH,UAAU,CAAG,EAClB,CAAA,IAAI,CAACC,YAAY,CAAG,GAAE,CAwiBxB,CAAA,CAEA,IAAIoF,iBAAAA,CAAoB,iBACxB,IAAIC,kBAAAA,CAAqB,cAAc7pG,SAAAA,CAGtCxzB,OAAAA,EAAU,CACT,KAAK,CAACA,UACN,IAAI,CAACs9H,mBAAmB,CAAC,IAAI,CAACC,iBAAiB,EAChD,CACAC,gBAAAA,CAAiBC,QAAQ,CAAEl8E,aAAa,CAAEm8E,YAAY,CAAE,CACvD,MAAMC,YAAAA,CAAeF,UAAU91G,WAAAA,CAAYzvD,MAAAA,CAC3C,GAAIylK,YAAAA,GAAiBD,YAAAA,CAAc,CAClC,OAAO,IACR,CACA,MAAMllJ,KAAAA,CAAQ+oE,eAAe/oE,KAAAA,EAAS,IAAI,CAACqoB,MAAM,CAACroB,KAAK,CACvD,MAAMC,MAAAA,CAAS8oE,aAAAA,EAAe9oE,QAAU,IAAI,CAACooB,MAAM,CAACpoB,MAAM,CAC1D,OAAO,CAACglJ,UAAYjlJ,KAAAA,GAAUilJ,QAAAA,CAASjlJ,KAAK,EAAIC,MAAAA,GAAWglJ,QAAAA,CAAShlJ,MAAM,CAE3EmlJ,oBAAAA,CAAqB7gH,YAAY,CAAEo1D,kBAAkB,CAAEtxE,MAAM,CAAE3oC,MAAM,CAAE,CACtE,MAAM2qC,OAAAA,CAAU,IAAIM,QAAQtC,MAAAA,CAAQ,CACnCprC,KAAM2nK,iBAAAA,CACNllK,MAAAA,CACAsgB,KAAAA,CAAO25F,kBAAAA,CAAqBA,mBAAmBxqD,WAAW,CAACnvC,KAAK,CAAGqoB,MAAAA,CAAOroB,KAAK,CAC/EC,MAAAA,CAAQ05F,mBAAqBA,kBAAAA,CAAmBxqD,WAAW,CAAClvC,MAAM,CAAGooB,OAAOpoB,MAAM,CAClF4pB,QAAS,IAAA,CACTkB,SAAAA,CAAW5W,2BAAAA,CACX6W,SAAAA,CAAWjX,cACXkX,QAAAA,CAAU/a,qBAAAA,CACVgb,SAAUhb,qBACX,CAAA,CAAA,CACA,GAAIq0B,YAAAA,CAAc,CACjBA,YAAAA,CAAawK,mBAAmB,EAChCxK,CAAAA,YAAAA,CAAa6K,YAAY,CAAG/kB,OAC5Bka,CAAAA,YAAAA,CAAa2K,aAAa,CAAG,CAAC7kB,QAAQ,CACtCka,YAAAA,CAAaiL,kBAAkB,GAChC,CAAA,KAAO,CACNjL,YAAAA,CAAe,IAAIsK,aAAa,CAC/B5xD,IAAAA,CAAM,cACNkyD,WAAAA,CAAa9kB,OAAAA,CACbhB,MAAO,KAAA,CACPikB,OAAAA,CAAS,MACTuD,WAAAA,CAAa,KACd,CAAA,EACD,CACA,OAAOtM,YACR,CACAugH,oBAAoBznG,EAAE,CAAE,CACvB,GAAIA,EAAAA,CAAI,CACPA,EAAAA,CAAGrO,qBAAqB,GACxBqO,EAAAA,CAAG71B,OAAO,GACX,CACD,CACA6zB,aAAc,CACb,MAAMhzB,MAAAA,CAAS,IAAI,CAACA,MAAM,CAC1B,MAAMg9H,QAAAA,CAAW,IAAI,CAACz0H,MAAM,CAC5B,MAAMs0H,YAAAA,CAAeG,QAAAA,EAAUl2G,YAAYzvD,MAAAA,EAAU,IAAI,CAAC2oC,MAAM,CAACujB,gBAAgB,CACjF,GAAI,IAAI,CAACo5G,gBAAgB,CAAC,IAAI,CAACD,iBAAiB,CAAEM,UAAUl2G,WAAAA,CAAa+1G,YAAAA,CAAAA,CAAe,CACvF,IAAI,CAACJ,mBAAmB,CAAC,IAAI,CAACC,iBAAiB,CAC/C,CAAA,IAAI,CAACA,iBAAiB,CAAG,IAAI,CAACK,oBAAoB,CAAC,IAAI,CAACL,iBAAiB,CAAEM,QAAAA,CAAUh9H,OAAQ68H,YAAAA,EAC9F,CACA,MAAM/1G,WAAAA,CAAc,IAAI,CAAC41G,iBAAiB,CAAC51G,WAAW,CACtD9mB,MAAAA,CAAOzmC,KAAK,CAAC6mC,OAAO,CAACm8H,iBAAAA,CAAAA,CAAmB/oH,QAAQ,CAACsT,WAAAA,EAClD,CACAoM,OAAAA,EAAU,CACT,MAAMlzB,MAAAA,CAAS,IAAI,CAACA,MAAM,CAC1B,MAAMg9H,QAAAA,CAAW,IAAI,CAACz0H,MAAM,CAC5B,MAAMue,WAAAA,CAAc,IAAI,CAAC41G,iBAAiB,CAAC51G,WAAW,CACtD,GAAI9mB,MAAAA,CAAOuG,QAAQ,CAAE,CACpBvG,MAAAA,CAAOynB,gBAAgB,CAACu1G,QAAAA,CAAU,IAAI,CAACN,iBAAiB,CAAE,IAAA,CAAM,KAAA,CAAA,CAChE18H,MAAAA,CAAOssC,cAAc,CAACC,QAAQ,CAAC,IAAI,CAACmwF,iBAAiB,CAAC51G,WAAW,CAAC1nB,IAAI,EACvE,MAAO,CACNY,MAAAA,CAAOynB,gBAAgB,CAACu1G,QAAAA,CAAU,IAAI,CAACN,iBAAiB,CAAE,IAAA,CAAM,OAChE18H,MAAAA,CAAOklE,aAAa,CAACllE,MAAAA,CAAOwsE,mBAAmB,CAAG,CAAA,CAAA,CAClDxsE,MAAAA,CAAOmlE,WAAW,CAACr+C,WAAAA,CAAAA,CACnB9mB,OAAOmxD,EAAE,CAACuO,cAAc,CAAC54C,WAAAA,CAAY1nB,IAAI,CAAC25D,SAAS,EACpD,CACD,sBA1EwB,KAAA,CAAA,GAAA,IAAA,CAAA,CACxB2jE,gBAAAA,CAAAA,IAAAA,CAAAA,oBAAoB,IAAA,CAAA,CACpBn0H,gBAAAA,CAAAA,IAAAA,CAAAA,SAAS,IAAA,EAAA,CAyEV,CAAA,CAEA,IAAI00H,iBAAAA,CAAoB,gBAAA,CACxB,IAAIC,kBAAAA,CAAqB,cAAcvqG,UAOtCxzB,OAAAA,EAAU,CACT,KAAK,CAACA,OAAAA,EAAAA,CACN,IAAI,CAACs9H,mBAAmB,CAAC,IAAI,CAACU,iBAAiB,EAChD,CACAR,gBAAAA,CAAiBC,QAAQ,CAAEl8E,aAAa,CAAE,CACzC,MAAM/oE,KAAAA,CAAQ+oE,eAAe/oE,KAAAA,EAAS,IAAI,CAACqoB,MAAM,CAACroB,KAAK,CACvD,MAAMC,MAAAA,CAAS8oE,aAAAA,EAAe9oE,QAAU,IAAI,CAACooB,MAAM,CAACpoB,MAAM,CAC1D,OAAO,CAACglJ,UAAYjlJ,KAAAA,GAAUilJ,QAAAA,CAASjlJ,KAAK,EAAIC,MAAAA,GAAWglJ,SAAShlJ,MACrE,CACAmlJ,oBAAAA,CAAqB7gH,YAAY,CAAEo1D,kBAAkB,CAAEtxE,MAAM,CAAE3oC,MAAM,CAAE+lK,OAAO,CAAE,CAC/E,MAAMp7H,QAAUM,OAAAA,CAAQE,mBAAmB,CAC1CxC,MAAAA,CACAi9H,iBAAAA,CACA3rD,mBAAqBA,kBAAAA,CAAmBxqD,WAAW,CAACnvC,KAAK,CAAGqoB,MAAAA,CAAOroB,KAAK,CACxE25F,kBAAAA,CAAqBA,kBAAAA,CAAmBxqD,WAAW,CAAClvC,MAAM,CAAGooB,MAAAA,CAAOpoB,MAAM,CAC1EvgB,MAAAA,CAAAA,CAED,GAAI6kD,aAAc,CACjBA,YAAAA,CAAawK,mBAAmB,EAAA,CAChC,GAAI02G,OAAAA,CAAS,CACZlhH,aAAa0K,YAAY,CAAG5kB,QAC7B,CAAA,KAAO,CACNka,aAAa6K,YAAY,CAAG/kB,OAC5Bka,CAAAA,YAAAA,CAAa2K,aAAa,CAAG,CAAC7kB,SAAQ,CAEvCka,aAAaiL,kBAAkB,GAChC,CAAA,KAAO,CACNjL,aAAe,IAAIsK,YAAAA,CAAa,CAC/B5xD,IAAAA,CAAM,aAAA,CACNkyD,YAAas2G,OAAAA,CAAU,IAAA,CAAOp7H,OAAAA,CAC9BmmB,WAAAA,CAAai1G,QAAUp7H,OAAAA,CAAU,IAAA,CACjChB,MAAO,CAACo8H,OAAAA,CACRn4G,QAASjlB,MAAAA,CAAOkkB,eAAe,CAC/BsE,WAAAA,CAAa,KACd,CAAA,EACD,CACA,OAAOtM,YACR,CACAugH,oBAAoBznG,EAAE,CAAE,CACvB,GAAIA,EAAAA,CAAI,CACPA,EAAAA,CAAGrO,qBAAqB,GACxBqO,EAAAA,CAAG71B,OAAO,GACX,CACD,CACA8zB,MAAAA,EAAS,CACR,MAAMkhG,MAAAA,CAAS,IAAI,CAACA,MAAM,CAC1B,MAAMn0H,MAAAA,CAAS,IAAI,CAACA,MAAM,CAC1B,MAAMq9H,aAAAA,CAAgBlJ,MAAAA,EAAQj4G,cAAgBlc,MAAAA,CAAOsjB,UAAU,CAC/D,IAAIg6G,cAAAA,CAAiB,IAAA,CACrB,IAAIjmK,OAASgmK,aAAAA,CAAcp4G,OAAO,CAAGr3B,wBAAAA,CAA2BD,iBAAAA,CAChE,GAAIqS,MAAAA,CAAOuG,QAAQ,CAAE,CACpB,MAAMg3H,WAAaF,aAAAA,CAAcz2H,OAAO,CACxC,GAAI22H,UAAAA,CAAa,EAAG,CACnBlmK,MAAAA,CAASq2B,gBAAAA,CACT4vI,cAAAA,CAAiB,MAClB,CACD,CACA,MAAM58E,aAAAA,CAAgByzE,MAAAA,CAAOj4G,YAAY,EAAEiM,WAAAA,EAAegsG,MAAAA,CAAOj4G,YAAY,EAAE4K,WAAAA,CAC/E,GAAI,IAAI,CAAC61G,gBAAgB,CAAC,IAAI,CAACQ,iBAAiB,CAAEz8E,eAAgB,CACjE,IAAI,CAAC+7E,mBAAmB,CAAC,IAAI,CAACU,iBAAiB,CAC/C,CAAA,IAAI,CAACA,iBAAiB,CAAG,IAAI,CAACJ,oBAAoB,CAAC,IAAI,CAACI,iBAAiB,CAAEhJ,OAAOj4G,YAAY,CAAElc,OAAQ3oC,MAAAA,CAAQimK,cAAAA,EACjH,CACA,MAAMx2G,WAAAA,CAAcw2G,eAAiB,IAAI,CAACH,iBAAiB,CAACh1G,WAAW,CAAG,IAAI,CAACg1G,iBAAiB,CAACr2G,WAAW,CAC5G9mB,MAAAA,CAAOzmC,KAAK,CAAC6mC,OAAO,CAAC68H,iBAAAA,CAAAA,CAAmBzpH,QAAQ,CAACsT,WAAAA,CAAAA,CACjDqtG,MAAAA,CAAOqJ,oBAAoB,CAAC12G,WAAAA,CAAa9mB,OAAO8E,aAAa,EAC9D,CACAouB,OAAAA,EAAU,CACT,MAAMlzB,MAAAA,CAAS,IAAI,CAACA,MAAM,CAC1B,GAAIA,MAAAA,CAAOid,QAAQ,EAAIjd,MAAAA,CAAOkc,YAAY,CAACtV,OAAO,CAAG,CAAA,CAAG,CACvD,MAAMx/B,GAAAA,CAAM44B,OAAOkc,YAAY,CAAC9c,IAAI,CAACkpB,cAAc,CACnD,MAAM2kB,KAAO,IAAI,CAACkwF,iBAAiB,CACnCn9H,OAAOkc,YAAY,CAAG+wB,KACtBjtC,MAAAA,CAAOqxE,WAAW,GAClB,IAAI,CAAC8rD,iBAAiB,CAAC/9H,IAAI,CAACukE,eAAe,CAAC3jE,MAAAA,CAAQ54B,GAAAA,CAAK6lE,KAAK7tC,IAAI,CAACkpB,cAAc,CAAE,IAAI,CAAC60G,iBAAiB,CAAEn9H,OAAOmxD,EAAE,CAACgT,gBAAgB,EACtI,CAAA,KAAO,CACNnkE,MAAAA,CAAOynB,gBAAgB,CAACznB,MAAAA,CAAOkc,YAAY,CAAE,IAAI,CAACihH,iBAAiB,CAAE,MAAO,IAAA,EAC7E,CACD,CAjFA,WAAA,CAAYn9H,MAAM,CAAEm0H,MAAM,CAAE,CAC3B,KAAK,CAACn0H,QAHPm9H,gBAAAA,CAAAA,IAAAA,CAAAA,mBAAAA,CAAoB,MACpBhJ,gBAAAA,CAAAA,IAAAA,CAAAA,QAAAA,CAAS,IAAA,CAGR,CAAA,IAAI,CAACA,MAAM,CAAGA,OACf,CA+ED,EAEA,IAAIsJ,kBAAAA,CAAqB,MAaxB,IAAI7oH,IAAAA,EAAO,CACV,GAAI,IAAI,CAAC8oH,KAAK,GAAK,MAAK,CAAG,CAC1B,MAAM7jK,GAAAA,CAAM,CAAC,EAAE,IAAI,CAAC8jK,eAAe,CAAC,CAAC,EAAE,IAAI,CAACxxE,WAAW,CAAC,CAAC,EAAE,IAAI,CAACyxE,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAACC,GAAG,CAAC,CAAC,EAAE,IAAI,CAACC,WAAW,CAAC,CAAC,EAAE,IAAI,CAACzgB,mBAAmB,CAAC,CAAC,EAAE,IAAI,CAACC,mBAAmB,CAAC,CAAC,EAAE,IAAI,CAACC,uBAAuB,CAAC,CAAC,EAAE,IAAI,CAACwgB,cAAc,CAACpsK,IAAI,CAAC,GAAA,CAAA,CAAK,CAAC,CAC3O,IAAI,CAAC+rK,KAAK,CAAGhpH,SAAS76C,GAAAA,EACvB,CACA,OAAO,IAAI,CAAC6jK,KACb,CACA,IAAIztF,OAAAA,EAAU,CACb,MAAMA,OAAAA,CAAU,IAAI,CAAC+tF,QAAQ,CAC7B,GAAI,IAAI,CAACC,aAAa,CAAE,CACvB,IAAI,CAACA,aAAa,CAAG,KAAA,CACrBhuF,OAAAA,CAAQz1E,KAAK,EAAA,CACb,GAAI,IAAI,CAAC0jK,oBAAoB,CAAE,CAC9BjuF,OAAAA,CAAQx3E,GAAG,CAAC,uBAAA,CAAyB,IACrC,GAAI,IAAI,CAAC0lK,oBAAoB,CAAEluF,OAAAA,CAAQx3E,GAAG,CAAC,uBAAA,CAAyB,EAAA,CAAA,CACpE,GAAI,IAAI,CAAC2lK,wBAAwB,CAAEnuF,OAAAA,CAAQx3E,GAAG,CAAC,2BAAA,CAA6B,IAC7E,CACA,IAAI,CAACslK,cAAc,CAACv/J,OAAO,CAAC,CAAC5J,IAAAA,CAAMuC,KAAAA,GAAAA,CAClC,MAAMknK,SAAAA,CAAYzpK,IAAAA,CAAK2rF,WAAW,EAAA,CAClCtQ,OAAAA,CAAQx3E,GAAG,CAAC,CAAC,cAAc,EAAE4lK,SAAAA,CAAU,CAAC,CAAE,EAAA,CAAA,CAC1CpuF,QAAQx3E,GAAG,CAAC,CAAC,eAAe,EAAE4lK,SAAAA,CAAU,MAAM,CAAC,CAAEhmK,MAAAA,CAAOlB,MAAQ,CAAA,CAAA,EACjE,CAAA,CAAA,CACA,GAAI,IAAI,CAACmnK,iBAAiB,GAAKztB,UAAAA,CAAY5gE,QAAQx3E,GAAG,CAAC,uBAAwB,EAAA,CAAA,CAC/Ew3E,OAAAA,CAAQx3E,GAAG,CAAC,KAAA,CAAO,IAAI,CAAC8lK,IAAI,CAACh+E,WAAW,IACxCtQ,OAAAA,CAAQx3E,GAAG,CAAC,SAAA,CAAW64I,YAAY,CAAC,IAAI,CAACktB,YAAY,CAAC,CAAA,CACtDvuF,QAAQx3E,GAAG,CAAC,QAASq4I,UAAU,CAAC,IAAI,CAACwtB,iBAAiB,CAAC,EACxD,CACA,OAAOruF,OACR,CACAuqE,SAAAA,EAAY,CACX,IAAI,CAACkjB,KAAK,CAAG,MACb,CAAA,IAAI,CAACO,aAAa,CAAG,KACtB,CACA,IAAIJ,IAAI30J,IAAI,CAAE,CACb,GAAI,IAAI,CAACq1J,IAAI,GAAKr1J,KAAM,CACvB,IAAI,CAACq1J,IAAI,CAAGr1J,KACZ,IAAI,CAACsxI,SAAS,GACf,CACD,CACA,IAAIqjB,KAAM,CACT,OAAO,IAAI,CAACU,IAAI,CAEjB,IAAIT,WAAAA,CAAYnkK,KAAK,CAAE,CACtB,GAAI,IAAI,CAAC8kK,YAAY,GAAK9kK,KAAAA,CAAO,CAChC,IAAI,CAAC8kK,YAAY,CAAG9kK,KAAAA,CACpB,IAAI,CAAC6gJ,SAAS,GACf,CACD,CACA,IAAIsjB,WAAAA,EAAc,CACjB,OAAO,IAAI,CAACW,YAAY,CAEzB,IAAId,eAAAA,CAAgBhkK,KAAK,CAAE,CAC1B,IAAI,CAAC+kK,wBAAwB,CAAG,IAAA,CAChC,GAAI,IAAI,CAACC,gBAAgB,GAAKhlK,KAAAA,CAAO,CACpC,IAAI,CAACglK,gBAAgB,CAAGhlK,KAAAA,CACxB,IAAI,CAAC6gJ,SAAS,GACf,CACD,CACA,IAAImjB,eAAAA,EAAkB,CACrB,OAAO,IAAI,CAACgB,gBAAgB,CAE7B,IAAIxyE,WAAAA,CAAYxyF,KAAK,CAAE,CACtB,GAAI,IAAI,CAAC6kK,YAAY,GAAK7kK,KAAAA,CAAO,CAChC,IAAI,CAAC6kK,YAAY,CAAG7kK,KAAAA,CACpB,IAAI,CAAC6gJ,SAAS,GACf,CACD,CACA,IAAIruD,WAAAA,EAAc,CACjB,OAAO,IAAI,CAACqyE,YAAY,CAEzB,IAAIZ,gBAAAA,CAAiBjkK,KAAK,CAAE,CAC3B,GAAI,IAAI,CAACilK,iBAAiB,GAAKjlK,KAAAA,CAAO,CACrC,IAAI,CAACilK,iBAAiB,CAAGjlK,KAAAA,CACzB,IAAI,CAAC6gJ,SAAS,GACf,CACD,CACA,IAAIojB,gBAAAA,EAAmB,CACtB,OAAO,IAAI,CAACgB,iBACb,CACA,IAAIvhB,mBAAAA,CAAoB1jJ,KAAK,CAAE,CAC9B,GAAI,IAAI,CAACukK,oBAAoB,GAAKvkK,KAAAA,CAAO,CACxC,IAAI,CAACukK,oBAAoB,CAAGvkK,KAAAA,CAC5B,IAAI,CAAC6gJ,SAAS,GACf,CACD,CACA,IAAI6C,mBAAAA,EAAsB,CACzB,OAAO,IAAI,CAAC6gB,oBACb,CACA,IAAI5gB,mBAAAA,CAAoB3jJ,KAAK,CAAE,CAC9B,GAAI,IAAI,CAACwkK,oBAAoB,GAAKxkK,MAAO,CACxC,IAAI,CAACwkK,oBAAoB,CAAGxkK,MAC5B,IAAI,CAAC6gJ,SAAS,GACf,CACD,CACA,IAAI8C,qBAAsB,CACzB,OAAO,IAAI,CAAC6gB,oBAAoB,CAEjC,IAAI5gB,uBAAAA,CAAwB5jJ,KAAK,CAAE,CAClC,GAAI,IAAI,CAACykK,wBAAwB,GAAKzkK,KAAAA,CAAO,CAC5C,IAAI,CAACykK,wBAAwB,CAAGzkK,KAAAA,CAChC,IAAI,CAAC6gJ,SAAS,GACf,CACD,CACA,IAAI+C,uBAAAA,EAA0B,CAC7B,OAAO,IAAI,CAAC6gB,wBAAwB,CAErC,IAAIS,aAAAA,CAAcllK,KAAK,CAAE,CACxB,MAAMmiC,MAAQniC,KAAAA,EAAS,EAAE,CACzB,GAAI,CAAC2sC,KAAAA,CAAMr/B,MAAM,CAAC,IAAI,CAAC82J,cAAc,CAAEjiI,KAAAA,CAAAA,CAAQ,CAC9C,IAAI,CAACiiI,cAAc,CAAGjiI,KAAAA,CAAMnpC,KAAK,EAAA,CACjC,IAAI,CAAC6nJ,SAAS,GACf,CACD,CACA,IAAIqkB,aAAAA,EAAgB,CACnB,OAAO,IAAI,CAACd,cAAc,CAE3B,IAAIO,iBAAAA,EAAoB,CACvB,MAAMQ,WAAAA,CAAc,IAAI,CAACH,gBAAgB,GAAK9tB,UAAAA,EAAc,CAAC,IAAI,CAAC+tB,iBAAiB,CACnF,OAAOE,YAAcjuB,UAAAA,CAAaD,UACnC,eAnIA+tB,gBAAAA,CAAAA,IAAAA,CAAAA,kBAAAA,CAAmB9tB,YACnB2tB,gBAAAA,CAAAA,IAAAA,CAAAA,cAAAA,CAAeztB,gBACf6tB,gBAAAA,CAAAA,IAAAA,CAAAA,mBAAAA,CAAoB,OACpBH,gBAAAA,CAAAA,IAAAA,CAAAA,cAAAA,CAAe,OACfF,gBAAAA,CAAAA,IAAAA,CAAAA,MAAAA,CAAO5yB,UACPuyB,gBAAAA,CAAAA,IAAAA,CAAAA,sBAAAA,CAAuB,KAAA,CAAA,CACvBC,gBAAAA,CAAAA,IAAAA,CAAAA,uBAAuB,KAAA,CAAA,CACvBC,gBAAAA,CAAAA,IAAAA,CAAAA,2BAA2B,KAAA,CAAA,CAC3BL,gBAAAA,CAAAA,IAAAA,CAAAA,iBAAiB,EAAE,CAAA,CACnBL,sBAAAA,OAAAA,CAAAA,QACAM,gBAAAA,CAAAA,IAAAA,CAAAA,UAAAA,CAA2B,IAAI9jK,GAAAA,CAAAA,CAC/B+jK,gBAAAA,CAAAA,IAAAA,CAAAA,gBAAgB,IAAA,EAAA,CAyHjB,CAAA,CAEA,IAAIc,YAAAA,CAAe,IAAIpxJ,IAAAA,CACvB,IAAIqxJ,WAAa,IAAIrxJ,IAAAA,CACrB,IAAIsxJ,MAAAA,CAAS,IAAItxJ,KACjB,IAAIuxJ,eAAAA,CAAkB,IAAI5qJ,IAAAA,CAC1B,IAAI6qJ,eAAiB,IAAI7qJ,IAAAA,CACzB,IAAI8qJ,cAAAA,CAAiB,IAAIr6I,OAAAA,CACzB,IAAIs6I,mBAAqB,IAAI/qJ,IAAAA,CAC7B,IAAIgrJ,eAAAA,CAAkB,IAAIhrJ,KAC1B,IAAIirJ,mBAAAA,CAAsB,IAAIjrJ,IAAAA,CAC9B,IAAIkrJ,cAAAA,CAAiB,CAAC,IAAI7xJ,IAAAA,CAAQ,IAAIA,KAAQ,IAAIA,IAAAA,CAAQ,IAAIA,IAAAA,CAAQ,IAAIA,IAAAA,CAAQ,IAAIA,KAAQ,IAAIA,IAAAA,CAAQ,IAAIA,IAAAA,CAAO,CACrH,IAAI8xJ,MAAAA,EAAAA,QAAAA,CAAS,MAAMC,QAqBlB,OAAOC,8BAAAA,CAA+Bh2H,UAAU,CAAE5mB,GAAG,CAAEykB,KAAK,CAAEo4H,qBAAqB,CAAE,CACpF,GAAI,CAACp4H,OAAS,CAACo4H,qBAAAA,CAAuB,CACrC78I,GAAAA,CAAIlyB,IAAI,CAAC84C,UAAAA,CAAAA,CACT,OAAO5mB,GACR,CACA,GAAIykB,OAASo4H,qBAAAA,CAAuB,CACnC,MAAMC,OAAAA,CAAUH,OAAAA,CAAQI,6BAA6B,CACrDD,QAAQxwJ,IAAI,CAACqwJ,QAAQK,sBAAsB,CAAEp2H,YAC7C5mB,GAAAA,CAAI1T,IAAI,CAACqwJ,OAAAA,CAAQM,uBAAuB,CAAEH,OAAAA,CAAAA,CAC1C,OAAO98I,GACR,CACA,GAAIykB,MAAO,CACVzkB,GAAAA,CAAI1T,IAAI,CAACqwJ,QAAQK,sBAAsB,CAAEp2H,YACzC,OAAO5mB,GACR,CACAA,GAAAA,CAAI1T,IAAI,CAACqwJ,OAAAA,CAAQM,uBAAuB,CAAEr2H,UAAAA,CAAAA,CAC1C,OAAO5mB,GACR,CAmEAoc,OAAAA,EAAU,CACT,IAAI,CAAC8gI,mBAAmB,EAAE9gI,SAC1B,CAAA,IAAI,CAAC8gI,mBAAmB,CAAG,IAC3B,CAAA,IAAI,CAACC,mBAAmB,EAAE/gI,SAC1B,CAAA,IAAI,CAAC+gI,mBAAmB,CAAG,IAC3B,CAAA,IAAI,CAACC,WAAW,CAACpuK,MAAM,CAAG,CAC1B,CAAA,IAAI,CAAC0hE,YAAY,CAAC1hE,MAAM,CAAG,CAC3B,CAAA,IAAI,CAACquK,aAAa,CAAG,KACtB,CACA5C,oBAAAA,CAAqBx7H,OAAO,CAAE8C,aAAa,CAAE,CAC5C,IAAI,CAACs7H,aAAa,CAAGp+H,OACrB,CAAA,IAAI,CAACq+H,oBAAoB,CAAGv7H,cAC7B,CACAw7H,oBAAAA,CAAqBC,YAAY,CAAEC,OAAO,CAAEC,OAAO,CAAE37H,aAAa,CAAE,CACnE,GAAI,IAAI,CAAC47H,sBAAsB,GAAK57H,cAAe,CAClD,IAAI,CAAC47H,sBAAsB,CAAG57H,aAAAA,CAC9B,IAAI,CAAC67H,iBAAiB,CAAC9vK,IAAI,CAAC,IAAI,CAAC+vK,gBAAgB,EAAIL,YAAAA,CACrD,CAAA,IAAI,CAACK,gBAAgB,GAAK,IAAI,CAACA,gBAAgB,CAAG,IAAItsJ,IAAK,CAAA,CAC3D,IAAI,CAACssJ,gBAAgB,CAAC/vK,IAAI,CAAC0vK,YAAAA,CAAAA,CAC3B,IAAI,CAACM,gBAAgB,CAAC9oJ,MAAM,CAACwoJ,YAAAA,CAC7B,CAAA,IAAI,CAACO,QAAQ,CAAC,CAAA,CAAE,CAAG,IAAI,CAACA,QAAQ,CAAC,CAAA,CAAE,CACnC,IAAI,CAACA,QAAQ,CAAC,CAAA,CAAE,CAAG,IAAI,CAACA,QAAQ,CAAC,CAAA,CACjC,CAAA,IAAI,CAACA,QAAQ,CAAC,CAAA,CAAE,CAAGN,OACnB,CAAA,IAAI,CAACM,QAAQ,CAAC,CAAA,CAAE,CAAGL,QACpB,CACD,CACA,IAAI7qG,iBAAAA,EAAoB,CACvB,MAAM7sB,IAAAA,CAAO,IAAI,CAACg4H,iBAAiB,CAAG,IAAI,CAAC1iB,WAAW,CAAG,IAAI,CAAC2iB,KAAK,CACnE,OAAOj4H,IAAAA,CAAKl7B,CAAC,GAAK,CAAA,EAAKk7B,KAAKj7B,CAAC,GAAK,GAAKi7B,IAAAA,CAAKh7B,CAAC,GAAK,CAAA,EAAKg7B,IAAAA,CAAKv3B,CAAC,GAAK,CACnE,CACA,IAAIyvJ,WAAAA,CAAYC,QAAQ,CAAE,CACzB,GAAI,IAAI,CAACC,YAAY,GAAKD,SAAU,CACnC,IAAI,CAACC,YAAY,CAAGD,QACpB,CAAA,IAAI,CAACE,aAAa,CAAG,KACtB,CACD,CACA,IAAIH,WAAAA,EAAc,CACjB,GAAI,IAAI,CAACI,QAAQ,CAAE,OAAO,IAAI,CAACC,aAAa,CAACL,WAAW,CACxD,GAAI,IAAI,CAACM,gBAAgB,GAAK9rB,YAAa,CAC1C,MAAMyrB,SAAW,IAAI,CAACM,oBAAoB,EAAA,CAC1C,GAAI,IAAI,CAACL,YAAY,GAAKD,QAAAA,CAAU,CACnC,IAAI,CAACC,YAAY,CAAGD,QACpB,CAAA,IAAI,CAACE,aAAa,CAAG,KACtB,CACD,CACA,OAAO,IAAI,CAACD,YACb,CACA,IAAIM,eAAAA,CAAgBP,QAAQ,CAAE,CAC7B,GAAI,IAAI,CAACK,gBAAgB,GAAKL,QAAAA,CAAU,CACvC,IAAI,CAACK,gBAAgB,CAAGL,QACxB,CAAA,IAAI,CAACE,aAAa,CAAG,KACtB,CACD,CACA,IAAIK,eAAAA,EAAkB,CACrB,OAAO,IAAI,CAACF,gBAAgB,CAE7B,IAAIG,mBAAAA,CAAoBR,QAAQ,CAAE,CACjC,IAAI,CAACS,oBAAoB,CAAGT,QAC5B,CAAA,IAAI,CAACE,aAAa,CAAG,KACtB,CACA,IAAIM,mBAAAA,EAAsB,CACzB,OAAO,IAAI,CAACC,oBAAoB,CAEjC,IAAIC,kBAAAA,CAAmBV,QAAQ,CAAE,CAChC,IAAI,CAACW,mBAAmB,CAAGX,SAC5B,CACA,IAAIU,kBAAAA,EAAqB,CACxB,OAAO,IAAI,CAACC,mBAAmB,CAEhC,IAAI9xD,UAAAA,CAAWmxD,QAAQ,CAAE,CACxB,IAAI,CAACY,WAAW,CAACjxK,IAAI,CAACqwK,UACvB,CACA,IAAInxD,YAAa,CAChB,OAAO,IAAI,CAAC+xD,WAAW,CAExB,IAAIC,iBAAiBb,QAAQ,CAAE,CAC9B,IAAI,CAACc,iBAAiB,CAAGd,SAC1B,CACA,IAAIa,kBAAmB,CACtB,OAAO,IAAI,CAACC,iBAAiB,CAE9B,IAAI7tG,WAAW+sG,QAAQ,CAAE,CACxB,IAAI,CAACe,WAAW,CAAGf,SACpB,CACA,IAAI/sG,YAAa,CAChB,OAAO,IAAI,CAAC8tG,WAAW,CAExB,IAAIC,iBAAiBhB,QAAQ,CAAE,CAC9B,IAAI,CAACiB,iBAAiB,CAAGjB,SAC1B,CACA,IAAIgB,gBAAAA,EAAmB,CACtB,OAAO,IAAI,CAACC,iBAAiB,CAE9B,IAAI/tG,aAAa8sG,QAAQ,CAAE,CAC1B,IAAI,CAACkB,aAAa,CAAGlB,SACtB,CACA,IAAI9sG,cAAe,CAClB,OAAO,IAAI,CAACguG,aAAa,CAE1B,IAAIC,kBAAAA,CAAmBnB,QAAQ,CAAE,CAChC,IAAI,CAACoB,mBAAmB,CAAGpB,SAC5B,CACA,IAAImB,oBAAqB,CACxB,OAAO,IAAI,CAACC,mBAAmB,CAEhC,IAAIC,SAAAA,CAAUrB,QAAQ,CAAE,CACvB,IAAI,CAACsB,UAAU,CAAGtB,SACnB,CACA,IAAIqB,WAAY,CACf,OAAO,IAAI,CAACC,UAAU,CAEvB,IAAIC,OAAAA,CAAQvB,QAAQ,CAAE,CACrB,GAAI,IAAI,CAACwB,QAAQ,GAAKxB,QAAAA,CAAU,CAC/B,IAAI,CAACwB,QAAQ,CAAGxB,QAChB,CAAA,IAAI,CAACE,aAAa,CAAG,KACtB,CACD,CACA,IAAIqB,SAAU,CACb,OAAO,IAAI,CAACpB,QAAQ,CAAG,IAAI,CAACC,aAAa,CAACmB,OAAO,CAAG,IAAI,CAACC,QAAQ,CAElE,IAAIC,SAAAA,CAAUzB,QAAQ,CAAE,CACvB,IAAI,CAAC0B,UAAU,CAAG1B,SACnB,CACA,IAAIyB,SAAAA,EAAY,CACf,OAAO,IAAI,CAACC,UAAU,CAEvB,IAAIluJ,GAAAA,CAAIwsJ,QAAQ,CAAE,CACjB,GAAI,IAAI,CAAC2B,IAAI,GAAK3B,QAAAA,CAAU,CAC3B,IAAI,CAAC2B,IAAI,CAAG3B,QACZ,CAAA,IAAI,CAACE,aAAa,CAAG,KACtB,CACD,CACA,IAAI1sJ,KAAM,CACT,OAAO,IAAI,CAAC2sJ,QAAQ,CAAG,IAAI,CAACC,aAAa,CAAC5sJ,GAAG,CAAG,IAAI,CAACmuJ,IACtD,CACA,IAAIC,cAAAA,CAAe5B,QAAQ,CAAE,CAC5B,IAAI,CAAC6B,eAAe,CAAG7B,SACxB,CACA,IAAI4B,cAAAA,EAAiB,CACpB,OAAO,IAAI,CAACC,eACb,CACA,IAAIC,cAAc9B,QAAQ,CAAE,CAC3B,GAAI,IAAI,CAAC+B,cAAc,GAAK/B,QAAAA,CAAU,CACrC,IAAI,CAAC+B,cAAc,CAAG/B,QACtB,CAAA,IAAI,CAACE,aAAa,CAAG,KACtB,CACD,CACA,IAAI4B,aAAAA,EAAgB,CACnB,OAAO,IAAI,CAAC3B,QAAQ,CAAG,IAAI,CAACC,aAAa,CAAC0B,aAAa,CAAG,IAAI,CAACC,cAAc,CAE9E,IAAIt9E,MAAAA,CAAOu7E,QAAQ,CAAE,CACpB,IAAI,CAACgC,OAAO,CAAGhC,SAASvuK,KAAK,CAAC,CAAA,CAC9B,CAAA,IAAI,CAACwwK,UAAU,CAAG,IAAIrqK,GAAAA,CAAI,IAAI,CAACoqK,OAAO,EACvC,CACA,IAAIv9E,QAAS,CACZ,OAAO,IAAI,CAACu9E,OAAO,CAEpB,IAAIE,SAAAA,EAAY,CACf,OAAO,IAAI,CAACD,UAAU,CAEvB,IAAIE,QAAAA,CAASnC,QAAQ,CAAE,CACtB,GAAI,IAAI,CAACoC,SAAS,GAAKpC,QAAAA,CAAU,CAChC,IAAI,CAACoC,SAAS,CAAGpC,QACjB,CAAA,IAAI,CAACE,aAAa,CAAG,KACtB,CACD,CACA,IAAIiC,UAAW,CACd,OAAO,IAAI,CAAChC,QAAQ,CAAG,IAAI,CAACC,aAAa,CAAC+B,QAAQ,CAAG,IAAI,CAACC,SAC3D,CACA,IAAIha,IAAAA,CAAK4X,QAAQ,CAAE,CAClB,IAAI,CAACqC,KAAK,CAAGrC,SACd,CACA,IAAI5X,IAAAA,EAAO,CACV,OAAO,IAAI,CAACia,KACb,CACA,IAAIC,WAAAA,CAAYtC,QAAQ,CAAE,CACzB,GAAI,IAAI,CAACuC,YAAY,GAAKvC,QAAAA,CAAU,CACnC,IAAI,CAACuC,YAAY,CAAGvC,QACpB,CAAA,IAAI,CAACE,aAAa,CAAG,KACtB,CACD,CACA,IAAIoC,WAAAA,EAAc,CACjB,OAAO,IAAI,CAACC,YACb,CACA,IAAI95H,UAAAA,CAAWu3H,QAAQ,CAAE,CACxB,GAAI,IAAI,CAACwC,WAAW,GAAKxC,SAAU,CAClC,IAAI,CAACwC,WAAW,CAAGxC,QACnB,CAAA,IAAI,CAACE,aAAa,CAAG,KACtB,CACD,CACA,IAAIz3H,UAAAA,EAAa,CAChB,OAAO,IAAI,CAAC+5H,WACb,CACA,IAAIC,gBAAAA,EAAmB,CACtB,IAAI,CAACC,yBAAyB,EAAA,CAC9B,OAAO,IAAI,CAACC,QAAQ,CAErB,IAAIC,iBAAiB5C,QAAQ,CAAE,CAC9B,IAAI,CAAC6C,iBAAiB,CAAClzK,IAAI,CAACqwK,QAAAA,CAC5B,CAAA,IAAI,CAACE,aAAa,CAAG,KACtB,CACA,IAAI0C,gBAAAA,EAAmB,CACtB,OAAO,IAAI,CAACC,iBACb,CACA,IAAIh7H,IAAAA,CAAKm4H,QAAQ,CAAE,CAClB,IAAI,CAACF,KAAK,CAACnwK,IAAI,CAACqwK,QAAAA,CAChB,CAAA,IAAI,CAACE,aAAa,CAAG,KACtB,CACA,IAAIr4H,IAAAA,EAAO,CACV,OAAO,IAAI,CAACi4H,KACb,CACA,IAAI9kH,YAAAA,CAAaglH,QAAQ,CAAE,CAC1B,IAAI,CAAC8C,aAAa,CAAG9C,QACrB,CAAA,IAAI,CAACE,aAAa,CAAG,KACtB,CACA,IAAIllH,YAAAA,EAAe,CAClB,OAAO,IAAI,CAAC8nH,aACb,CACA,IAAI3lB,WAAAA,CAAY6iB,QAAQ,CAAE,CACzB,IAAI,CAAC+C,YAAY,CAACpzK,IAAI,CAACqwK,UACxB,CACA,IAAI7iB,aAAc,CACjB,OAAO,IAAI,CAAC4lB,YAAY,CAEzB,IAAIC,UAAAA,EAAa,CAChB,GAAI,IAAI,CAACC,aAAa,CAAE,CACvB,MAAMC,GAAAA,CAAM,IAAI,CAACb,KAAK,CAAC9hB,iBAAiB,EAAA,CACxC,IAAI,CAAC4iB,QAAQ,CAACxzK,IAAI,CAACuzK,KAAKrsJ,MAAM,EAC9B,CAAA,IAAI,CAACosJ,aAAa,CAAG,MACtB,CACA,OAAO,IAAI,CAACE,QAAQ,CAErB,IAAIC,QAAAA,CAASpD,QAAQ,CAAE,CACtB,IAAI,CAACqD,SAAS,CAAGrD,SAClB,CACA,IAAIoD,UAAW,CACd,OAAO,IAAI,CAACC,SAAS,CAEtB,IAAIC,YAAYtD,QAAQ,CAAE,CACzB,IAAI,CAACuD,YAAY,CAAGvD,SACrB,CACA,IAAIsD,aAAc,CACjB,OAAO,IAAI,CAACC,YAAY,CAEzB,IAAIC,QAAQxD,QAAQ,CAAE,CACrB,IAAI,CAACyD,QAAQ,CAAGzD,SACjB,CACA,IAAIwD,SAAU,CACb,OAAO,IAAI,CAACC,QAAQ,CAErB,IAAIC,QAAQjrK,KAAK,CAAE,CAClB,GAAIA,KAAAA,GAAU,QAAU,IAAI,CAACkrK,QAAQ,GAAK,IAAG,CAAA,CAAI,CAChD,IAAI,CAACzD,aAAa,CAAG,KACtB,CACA,IAAI,CAACyD,QAAQ,CAAGlrK,MACjB,CACA,IAAIirK,OAAAA,EAAU,CACb,OAAO,IAAI,CAACC,QAAQ,CAErB,IAAIxD,UAAW,CACd,OAAO,IAAI,CAACwD,QAAQ,GAAK,IAC1B,CACAC,aAAapgF,KAAK,CAAE,CACnB,MAAMjuF,KAAAA,CAAQ,IAAI,CAACsuK,WAAW,CAACvuK,IAAI,GAAK,CAAA,CACxC,IAAI,CAACuuK,WAAW,CAAC5iK,GAAG,CAACuiF,KAAAA,CAAAA,CACrB,OAAOjuF,KACR,CACA,IAAIuuK,UAAAA,EAAa,CAChB,OAAO,IAAI,CAACD,WAAW,CAExBE,eAAAA,EAAkB,CACjB,IAAI,CAACF,WAAW,CAACvqK,KAAK,GACvB,CACAgnK,oBAAAA,CAAqBxsG,EAAE,CAAE,CACxB,MAAMtkE,QAAUskE,EAAAA,EAAM,IAAI,CAACgvG,aAAa,CACxC,MAAMrsJ,KAAAA,CAAQjnB,OAAAA,CAAUA,OAAAA,CAAQinB,KAAK,CAAG,IAAI,CAACqoB,MAAM,CAACroB,KAAK,CACzD,MAAMC,MAAAA,CAASlnB,OAAAA,CAAUA,OAAAA,CAAQknB,MAAM,CAAG,IAAI,CAACooB,MAAM,CAACpoB,MAAM,CAC5D,OAAOD,KAAAA,CAAQ,IAAI,CAACqpJ,KAAK,CAACjzJ,CAAC,EAAI6J,OAAS,IAAI,CAACopJ,KAAK,CAACxvJ,CAAC,CACrD,CACA1K,OAAQ,CACP,OAAO,IAAI44J,OAAAA,CAAQ,IAAI,CAAC1/H,MAAM,EAAEnvC,IAAI,CAAC,IAAI,CAC1C,CACAA,KAAKmpB,KAAK,CAAE,CACX,IAAI,CAACmnJ,YAAY,CAAGnnJ,KAAAA,CAAMmnJ,YAAY,CACtC,IAAI,CAACuB,QAAQ,CAAG1oJ,KAAAA,CAAM0oJ,QAAQ,CAC9B,IAAI,CAACG,IAAI,CAAG7oJ,KAAAA,CAAM6oJ,IAAI,CACtB,IAAI,CAACI,cAAc,CAAGjpJ,MAAMipJ,cAC5B,CAAA,IAAI,CAACK,SAAS,CAAGtpJ,MAAMspJ,SACvB,CAAA,IAAI,CAAChC,aAAa,CAACL,WAAW,CAAGjnJ,KAAAA,CAAMsnJ,aAAa,CAACL,WAAW,CAChE,IAAI,CAACK,aAAa,CAACmB,OAAO,CAAGzoJ,MAAMsnJ,aAAa,CAACmB,OAAO,CACxD,IAAI,CAACnB,aAAa,CAAC5sJ,GAAG,CAAGsF,MAAMsnJ,aAAa,CAAC5sJ,GAAG,CAChD,IAAI,CAAC4sJ,aAAa,CAAC0B,aAAa,CAAGhpJ,KAAAA,CAAMsnJ,aAAa,CAAC0B,aACvD,CAAA,IAAI,CAAC1B,aAAa,CAAC+B,QAAQ,CAAGrpJ,KAAAA,CAAMsnJ,aAAa,CAAC+B,QAClD,CAAA,IAAI,CAAC5B,eAAe,CAAGznJ,MAAMynJ,eAC7B,CAAA,IAAI,CAACC,mBAAmB,CAAG1nJ,KAAAA,CAAM0nJ,mBAAmB,CACpD,IAAI,CAACE,kBAAkB,CAAG5nJ,KAAAA,CAAM4nJ,kBAAkB,CAClD,IAAI,CAAC7xD,UAAU,CAAG/1F,KAAAA,CAAM+1F,UAAU,CAClC,IAAI,CAACgyD,gBAAgB,CAAG/nJ,KAAAA,CAAM+nJ,gBAAgB,CAC9C,IAAI,CAAC5tG,UAAU,CAAGn6C,MAAMm6C,UACxB,CAAA,IAAI,CAAC+tG,gBAAgB,CAAGloJ,MAAMkoJ,gBAC9B,CAAA,IAAI,CAAC9tG,YAAY,CAAGp6C,KAAAA,CAAMo6C,YAAY,CACtC,IAAI,CAACiuG,kBAAkB,CAAGroJ,KAAAA,CAAMqoJ,kBAAkB,CAClD,IAAI,CAACE,SAAS,CAAGvoJ,KAAAA,CAAMuoJ,SAAS,CAChC,IAAI,CAACI,SAAS,CAAG3oJ,MAAM2oJ,SACvB,CAAA,IAAI,CAACG,cAAc,CAAG9oJ,KAAAA,CAAM8oJ,cAC5B,CAAA,IAAI,CAACn9E,MAAM,CAAG3rE,KAAAA,CAAM2rE,MAAM,CAC1B,IAAI,CAAC69E,WAAW,CAAGxpJ,KAAAA,CAAMwpJ,WAAW,CACpC,IAAI,CAAC75H,UAAU,CAAG3vB,KAAAA,CAAM2vB,UAAU,CAClC,IAAI,CAACm6H,gBAAgB,CAAG9pJ,MAAM8pJ,gBAC9B,CAAA,IAAI,CAAC/6H,IAAI,CAAG/uB,KAAAA,CAAM+uB,IAAI,CACtB,IAAI,CAACmT,YAAY,CAAGliC,KAAAA,CAAMkiC,YAAY,CACtC,IAAI,CAACmiG,WAAW,CAAGrkI,KAAAA,CAAMqkI,WAAW,CACpC,IAAI,CAACimB,QAAQ,CAAGtqJ,MAAMsqJ,QACtB,CAAA,IAAI,CAACI,OAAO,CAAG1qJ,MAAM0qJ,OACrB,CAAA,IAAI,CAACF,WAAW,CAAGxqJ,KAAAA,CAAMwqJ,WAAW,CACpC,IAAI,CAAC7nB,cAAc,CAAG3iI,KAAAA,CAAM2iI,cAAc,CAC1C,IAAI,CAACuoB,MAAM,CAAGlrJ,KAAAA,CAAMkrJ,MAAM,CAC1B,IAAI,CAAC9D,aAAa,CAAG,KACrB,OAAO,IAAI,CAEZ+D,0BAAAA,CAA2BnlI,MAAM,CAAE+tE,MAAM,CAAE,CAC1C,GAAIA,MAAAA,CAAQ,CACX,GAAI,CAAC,IAAI,CAACkyD,mBAAmB,CAAE,CAC9B,IAAI,CAACA,mBAAmB,CAAG,IAAIzD,kBAAAA,CAAmBx8H,MAAAA,EACnD,CACD,CAAA,KAAO,CACN,IAAI,CAACigI,mBAAmB,EAAE9gI,OAAAA,EAC1B,CAAA,IAAI,CAAC8gI,mBAAmB,CAAG,KAC5B,CACD,CACAmF,0BAAAA,CAA2BplI,MAAM,CAAEqlI,QAAQ,CAAEt3D,MAAM,CAAE,CACpD,GAAIA,MAAAA,CAAQ,CACX,GAAI,CAAC,IAAI,CAACmyD,mBAAmB,CAAE,CAC9B,IAAI,CAACA,mBAAmB,CAAG,IAAIhD,kBAAAA,CAAmBl9H,OAAQ,IAAI,EAC/D,CACD,CAAA,KAAO,CACN,IAAI,CAACkgI,mBAAmB,EAAE/gI,OAAAA,EAC1B,CAAA,IAAI,CAAC+gI,mBAAmB,CAAG,KAC5B,CACD,CACAoF,kBAAAA,EAAqB,CACpB,GAAI,IAAI,CAAClE,aAAa,EAAI,IAAI,CAAC+C,aAAa,EAAI,IAAI,CAACoB,iBAAiB,CAAE,CACvE,IAAI,CAACC,YAAY,CAACn2J,IAAI,CAAC,IAAI,CAACs0J,gBAAgB,CAAE,IAAI,CAACO,UAAU,CAC7D,CAAA,IAAI,CAACqB,iBAAiB,CAAG,MAC1B,CACD,CACAE,oBAAAA,EAAuB,CACtB,MAAM/hF,MAAQ,IAAI,CAACkhF,OAAO,CAC1B,GAAI,CAAClhF,KAAAA,CAAO,CACX,MACD,CACA,MAAMgiF,qBAAuB,IAAI,CAACnC,KAAK,EAAEzgK,MAAAA,EAAQ2+I,qBAAuB,IAAA,CACxE,IAAK,IAAI3vJ,EAAAA,CAAK,EAAGA,EAAAA,CAAK4xF,KAAAA,CAAM3xF,MAAM,CAAED,EAAAA,EAAAA,CAAM,CACzC4xF,KAAK,CAAC5xF,GAAG,CAAC6zK,gBAAgB,CAACD,oBAAAA,EAC5B,CACD,CACAE,eAAAA,EAAkB,CACjB,MAAMliF,KAAAA,CAAQ,IAAI,CAACkhF,OAAO,CAC1B,GAAI,CAAClhF,OAAO3xF,MAAAA,CAAQ,CACnB,OAAO,KACR,CACAotK,eAAe9vJ,IAAI,CAACq0E,KAAK,CAAC,CAAA,CAAE,CAACmiF,OAAO,CAAEniF,KAAK,CAAC,CAAA,CAAE,CAACoiF,UAAU,EACzD,IAAI,CAACxR,OAAO,CAACpjJ,WAAW,CAACiuJ,cAAAA,CAAAA,CACzB,IAAK,IAAI5tK,EAAAA,CAAK,EAAGA,EAAAA,CAAKmyF,KAAAA,CAAM3xF,MAAM,CAAER,EAAAA,EAAAA,CAAM,CACzC4tK,cAAAA,CAAe9vJ,IAAI,CAACq0E,KAAK,CAACnyF,EAAAA,CAAG,CAACs0K,OAAO,CAAEniF,KAAK,CAACnyF,EAAAA,CAAG,CAACu0K,UAAU,CAAA,CAC3D1G,cAAAA,CAAeluJ,WAAW,CAACiuJ,cAAAA,CAAAA,CAC3B,IAAI,CAAC7K,OAAO,CAACnyJ,GAAG,CAACi9J,cAAAA,EAClB,CACA,OAAO,IACR,CACA2G,eAAgB,CACf,GAAI,IAAI,CAACH,eAAe,GAAI,CAC3B,MACD,CACA,MAAMC,OAAAA,CAAU,IAAI,CAAClC,gBAAgB,CACrC,GAAI,IAAI,CAACjC,mBAAmB,CAAE,CAC7B,IAAI,CAACA,mBAAmB,CAACmE,QAAS7wB,WAAAA,EACnC,CACA,GAAI,IAAI,CAAC4sB,kBAAkB,CAAE,CAC5B,IAAI,CAACA,kBAAkB,CAACvC,kBAAAA,CAAoBrqB,WAAAA,EAC7C,CAAA,KAAO,CACN,MAAMgxB,GAAAA,CAAM,IAAI,CAACzC,KAAK,CAACvhC,WAAW,EAAA,CAClC,MAAMotB,IAAM,IAAI,CAACmU,KAAK,CAAC5W,WAAW,GAClC0S,kBAAAA,CAAmB1mJ,MAAM,CAACqtJ,GAAAA,CAAK5W,GAAAA,CAAKzhJ,IAAAA,CAAKqC,GAAG,EAC7C,CACAsvJ,eAAAA,CAAgBzuK,IAAI,CAACwuK,kBAAAA,CAAAA,CAAoBtnJ,MAAM,EAAA,CAC/CwnJ,mBAAAA,CAAoBlwJ,IAAI,CAACw2J,OAAAA,CAASvG,iBAClC,IAAI,CAAChL,OAAO,CAACpjJ,WAAW,CAACquJ,mBAAAA,EAC1B,CACA0G,aAAAA,CAAcC,UAAU,CAAEC,EAAE,CAAEluK,EAAE,CAAEmuK,WAAAA,CAAc,IAAIz4J,IAAM,CAAE,CAC3D,IAAI,CAAC23J,kBAAkB,EAAA,CACvB,IAAI,CAACE,YAAY,CAACrvJ,cAAc,CAAC+vJ,UAAAA,CAAYE,WAAAA,CAAAA,CAC7C,MAAMC,IAAM,IAAI,CAACb,YAAY,CAAC/0J,IAAI,CAClC,MAAMe,CAAAA,CAAI00J,WAAWr4J,CAAC,CAAGw4J,GAAG,CAAC,CAAA,CAAE,CAAGH,UAAAA,CAAWp4J,CAAC,CAAGu4J,GAAG,CAAC,CAAA,CAAE,CAAGH,WAAWn4J,CAAC,CAAGs4J,GAAG,CAAC,EAAA,CAAG,CAAG,CAAA,CAAIA,GAAG,CAAC,EAAA,CAAG,CAC9FD,WAAAA,CAAYv4J,CAAC,CAAIu4J,CAAAA,WAAAA,CAAYv4J,CAAC,CAAG2D,CAAAA,CAAI,CAAA,EAAK,EAC1C40J,CAAAA,WAAAA,CAAYt4J,CAAC,CAAG,CAAC,EAAIs4J,WAAAA,CAAYt4J,CAAC,CAAG0D,CAAAA,EAAK,GAC1C,KAAM,CAAE3D,EAAGU,EAAE,CAAET,CAAAA,CAAGU,EAAE,CAAET,CAAAA,CAAGmO,EAAE,CAAE1K,CAAAA,CAAG80J,EAAE,CAAE,CAAG,IAAI,CAACtF,KAC5CoF,CAAAA,WAAAA,CAAYv4J,CAAC,CAAGu4J,WAAAA,CAAYv4J,CAAC,CAAGqO,EAAAA,CAAKiqJ,EAAAA,CAAK53J,EAAAA,CAAK43J,EAC/CC,CAAAA,WAAAA,CAAYt4J,CAAC,CAAGs4J,WAAAA,CAAYt4J,CAAC,CAAGw4J,EAAAA,CAAKruK,EAAAA,CAAK,CAAC,CAAA,CAAIuW,GAAK83J,EAAC,EAAKruK,GAC1D,OAAOmuK,WACR,CACAG,aAAAA,CAAcl4K,EAAE,CAAEof,EAAE,CAAEkB,EAAE,CAAEw3J,EAAE,CAAEluK,EAAE,CAAEiuK,UAAAA,CAAa,IAAIv4J,IAAM,CAAE,CAC1D,KAAM,CAAEE,EAAGU,EAAE,CAAET,EAAGU,EAAE,CAAET,CAAAA,CAAGmO,EAAE,CAAE1K,CAAAA,CAAG80J,EAAE,CAAE,CAAG,IAAI,CAACtF,KAAK,CACjD,MAAMwF,KAAAA,CAAQ,IAAI,CAAC/D,OAAO,CAAG,IAAI,CAACY,QAAQ,CAC1CtE,YAAAA,CAAatmK,GAAG,CACdpK,CAAAA,EAAAA,CAAKkgB,EAAAA,CAAK43J,EAAC,GAAMjqJ,GAAKiqJ,EAAC,CAAA,CACxB,EAAI,CAAC14J,GAAK,CAAC,EAAIe,EAAAA,CAAK83J,EAAC,EAAKruK,EAAC,GAAMquK,EAAAA,CAAKruK,EAAC,CAAA,CACvC0W,EAAAA,CAAK63J,OAENzH,YAAAA,CAAaz3J,SAAS,CAAC,CAAA,CAAA,CACvBy3J,YAAAA,CAAapvJ,GAAG,CAAChC,IAAAA,CAAKqC,GAAG,CAAA,CACzB,GAAI,IAAI,CAAC0zJ,WAAW,GAAK5zB,sBAAAA,CAAwB,CAChDx7H,IAAAA,CAAKE,uBAAuB,CAACwqJ,UAAAA,CAAY,IAAI,CAACtqJ,GAAG,CAAE,IAAI,CAACusJ,WAAW,CAAE,IAAI,CAACoC,QAAQ,CAAE,IAAI,CAACL,aAAa,EACtG,MAAMtjK,OAAAA,CAAU,IAAI,CAAC2hK,QAAQ,CAAGztJ,IAAAA,CAAK9D,IAAI,CAAG,IAAI,CAACi0J,iBACjD/E,CAAAA,UAAAA,CAAWnxJ,CAAC,EAAIkxJ,YAAAA,CAAalxJ,CAAC,CAAGnO,OAAAA,CAAQmO,CAAC,CAC1CmxJ,UAAAA,CAAWlxJ,CAAC,EAAIixJ,aAAajxJ,CAAC,CAAGpO,QAAQoO,CAAC,CAC1C,MAAM24J,OAAAA,CAAU,IAAI,CAAClD,KAAK,CAAC9hB,iBAAiB,EAC5Cud,CAAAA,WAAWjxJ,CAAC,CAAG,CAAC,IAAI,CAACs1J,QAAQ,CAC7BoD,QAAQtwJ,cAAc,CAAC6oJ,WAAYC,MAAAA,CAAAA,CACnC,MAAMyH,UAAY,IAAI,CAACnD,KAAK,CAACvhC,WAAW,GACxCkkC,UAAAA,CAAWt2J,IAAI,CAACqvJ,MAAAA,CAAQyH,SAAAA,CAAAA,CACxBR,WAAWh0K,SAAS,EAAA,CACpBg0K,UAAAA,CAAW5+J,SAAS,CAACqH,EAAAA,CAAAA,CACrBu3J,UAAAA,CAAW/jK,GAAG,CAACukK,SAAAA,EAChB,MAAO,CACN,IAAI,CAACpB,kBAAkB,EAAA,CACvBpG,gBAAgBruK,IAAI,CAAC,IAAI,CAAC20K,YAAY,EAAEztJ,MAAM,EAAA,CAC9CmnJ,eAAAA,CAAgB/oJ,cAAc,CAAC4oJ,YAAAA,CAAcmH,UAAAA,EAC9C,CACA,OAAOA,UACR,CACAtC,yBAAAA,EAA4B,CAC3B,MAAMjvJ,MAAAA,CAAS,IAAI,CAACssJ,WAAW,CAC/B,GAAI,IAAI,CAACG,aAAa,CAAE,CACvB,MAAM1hK,OAAAA,CAAU,IAAI,CAACqkK,iBAAiB,CACtC,GAAI,IAAI,CAACL,WAAW,GAAK5zB,uBAAwB,CAChD,IAAI,CAAC+zB,QAAQ,CAAC7sJ,cAAc,CAAC,IAAI,CAACtC,GAAG,CAAEC,MAAAA,CAAQ,IAAI,CAAC0uJ,QAAQ,CAAE,IAAI,CAACZ,OAAO,CAAE,IAAI,CAACO,aAAa,CAC9F,CAAA,IAAI,CAACa,QAAQ,CAACpzJ,IAAI,CAAC,EAAE,CAAG/Q,OAAAA,CAAQmO,CAChC,CAAA,IAAI,CAACg2J,QAAQ,CAACpzJ,IAAI,CAAC,CAAA,CAAE,CAAG/Q,OAAAA,CAAQoO,CAAC,CACjC,IAAI,CAAC64J,cAAc,CAAC91K,IAAI,CAAC,IAAI,CAACgzK,QAAQ,EACvC,MAAO,CACN,MAAMp2J,GAAK,IAAI,CAACg2J,YAAY,CAC5B,MAAMp1K,GAAKof,EAAAA,CAAKkH,MAAAA,CAChB,IAAI,CAACkvJ,QAAQ,CAAC5sJ,QAAQ,CAAC,CAAC5oB,EAAAA,CAAIA,EAAAA,CAAI,CAACof,EAAAA,CAAIA,GAAI,IAAI,CAAC41J,QAAQ,CAAE,IAAI,CAACZ,OAAO,CACpE,CAAA,IAAI,CAACoB,QAAQ,CAACpzJ,IAAI,CAAC,EAAA,CAAG,CAAG,CAAC/Q,OAAAA,CAAQmO,CAAC,CACnC,IAAI,CAACg2J,QAAQ,CAACpzJ,IAAI,CAAC,GAAG,CAAG,CAAC/Q,QAAQoO,CAAC,CACnC,IAAI,CAAC64J,cAAc,CAAC3vJ,cAAc,CAAC,IAAI,CAACtC,GAAG,CAAEC,MAAAA,CAAQ,IAAI,CAAC0uJ,QAAQ,CAAE,IAAI,CAACZ,OAAO,CAChF,CAAA,IAAI,CAACkE,cAAc,CAACl2J,IAAI,CAAC,EAAE,CAAG/Q,OAAAA,CAAQmO,CAAC,CACvC,IAAI,CAAC84J,cAAc,CAACl2J,IAAI,CAAC,CAAA,CAAE,CAAG/Q,QAAQoO,EACvC,CACA,IAAI,CAACszJ,aAAa,CAAG,MACtB,CACD,CACAwF,yBAAAA,EAA4B,CAC3B,IAAI,CAAChD,yBAAyB,EAAA,CAC9B,OAAO,IAAI,CAAC+C,cAAc,CAE3BE,aAAc,CACb,MAAMC,MAAQz1K,IAAAA,CAAK6U,IAAI,CAAC,IAAI,CAACq+J,SAAS,CAAG,IAAI,CAACA,SAAS,CAAG,IAAI,CAACI,QAAQ,CAAG,GAAA,CAAM,IAAI,CAACF,YAAY,EACjG,OAAO,CAAA,EAAKpzK,IAAAA,CAAK2U,GAAG,CAAC,CAAA,CAAG8gK,KAAAA,CAAAA,CAAS,GAAE,CACpC,CAGAC,cAAcrkJ,MAAM,CAAE,CACrB,GAAI,IAAI,CAACghJ,WAAW,GAAK5zB,sBAAAA,CAAwB,CAChD,MAAMphI,QAAAA,CAAW,IAAI,CAAC60J,KAAK,CAACvhC,WAAW,EAAA,CAAGtzH,QAAQ,CAACgU,MAAAA,CAAOtF,MAAM,CAAA,CAChE,GAAI1O,QAAAA,CAAWgU,MAAAA,CAAOxV,MAAM,CAAE,CAC7B,OAAO,CACR,CACA,MAAM85J,SAAAA,CAAY31K,IAAAA,CAAKsoB,IAAI,CAAC+I,MAAAA,CAAOxV,MAAM,CAAGwB,QAAAA,CAAAA,CAC5C,MAAMu4J,gBAAAA,CAAmB51K,IAAAA,CAAKyjB,GAAG,CAACkyJ,SAAAA,CAAAA,CAClC,MAAME,gBAAAA,CAAmB71K,KAAKyjB,GAAG,CAAC,IAAI,CAACJ,GAAG,CAAG,CAAA,CAAI9P,IAAAA,CAAKC,UAAU,CAAA,CAChE,OAAOxT,KAAK4T,GAAG,CAACgiK,iBAAmBC,gBAAAA,CAAkB,CAAA,CACtD,CACA,OAAOtiK,IAAAA,CAAKI,KAAK,CAAC0d,OAAOxV,MAAM,CAAG,IAAI,CAACu2J,YAAY,CAAE,CAAA,CAAG,CAAA,CACzD,CACA0D,iBAAAA,CAAkBjwJ,IAAAA,CAAO,IAAI,CAACmsJ,QAAQ,CAAElsJ,GAAAA,CAAM,IAAI,CAACsrJ,OAAO,CAAE,CAC3D,MAAM/tJ,IAAM,IAAI,CAACA,GAAG,CAAG9P,IAAAA,CAAKC,UAAU,CACtC,MAAMnF,QAAU,IAAI,CAAC2hK,QAAQ,CAAGztJ,IAAAA,CAAK9D,IAAI,CAAG,IAAI,CAACi0J,iBAAiB,CAClE,IAAI11K,EAAAA,CAAIof,GACR,GAAI,IAAI,CAACk8B,UAAU,GAAKmmG,uBAAwB,CAC/C,GAAI,IAAI,CAACkzB,aAAa,CAAE,CACvB30K,EAAAA,CAAK6oB,KAAO7lB,IAAAA,CAAKyjB,GAAG,CAACJ,GAAAA,CAAM,CAAA,CAAA,CAC3BjH,EAAAA,CAAKpf,EAAAA,CAAK,IAAI,CAAC4yK,YAAW,CAC3B,KAAO,CACNxzJ,GAAKyJ,IAAAA,CAAO7lB,IAAAA,CAAKyjB,GAAG,CAACJ,GAAAA,CAAM,GAC3BrmB,EAAAA,CAAKof,EAAAA,CAAK,IAAI,CAACwzJ,YAAW,CAE5B,CAAA,KAAO,CACNxzJ,EAAAA,CAAK,IAAI,CAACg2J,YAAY,CACtBp1K,EAAAA,CAAKof,EAAAA,CAAK,IAAI,CAACwzJ,YAAW,CAE3B,IAAIlmJ,GAAKrb,OAAAA,CAAQmO,CAAC,CAAGxf,EAAAA,CACrB,IAAI2sB,GAAKtb,OAAAA,CAAQoO,CAAC,CAAGL,EAAAA,CACrB,MAAM25J,MAAAA,CAAS5H,cACf4H,CAAAA,MAAM,CAAC,EAAE,CAACv5J,CAAC,CAAGkN,EAAAA,CAAK1sB,EACnB+4K,CAAAA,MAAM,CAAC,CAAA,CAAE,CAACt5J,CAAC,CAAGkN,EAAAA,CAAKvN,EACnB25J,CAAAA,MAAM,CAAC,CAAA,CAAE,CAACr5J,CAAC,CAAG,CAACmJ,IACfkwJ,CAAAA,MAAM,CAAC,CAAA,CAAE,CAACv5J,CAAC,CAAGkN,GAAK1sB,EACnB+4K,CAAAA,MAAM,CAAC,CAAA,CAAE,CAACt5J,CAAC,CAAGkN,EAAAA,CAAKvN,EACnB25J,CAAAA,MAAM,CAAC,EAAE,CAACr5J,CAAC,CAAG,CAACmJ,IACfkwJ,CAAAA,MAAM,CAAC,EAAE,CAACv5J,CAAC,CAAGkN,EAAAA,CAAK1sB,EACnB+4K,CAAAA,MAAM,CAAC,CAAA,CAAE,CAACt5J,CAAC,CAAGkN,EAAAA,CAAKvN,EACnB25J,CAAAA,MAAM,CAAC,CAAA,CAAE,CAACr5J,CAAC,CAAG,CAACmJ,IACfkwJ,CAAAA,MAAM,CAAC,CAAA,CAAE,CAACv5J,CAAC,CAAGkN,GAAK1sB,EACnB+4K,CAAAA,MAAM,CAAC,CAAA,CAAE,CAACt5J,CAAC,CAAGkN,EAAAA,CAAKvN,EACnB25J,CAAAA,MAAM,CAAC,EAAE,CAACr5J,CAAC,CAAG,CAACmJ,IAAAA,CACf,GAAI,IAAI,CAACwsJ,WAAW,GAAK5zB,uBAAwB,CAChD,GAAI,IAAI,CAACkzB,aAAa,CAAE,CACvB30K,EAAAA,CAAK8oB,IAAM9lB,IAAAA,CAAKyjB,GAAG,CAACJ,GAAAA,CAAM,CAAA,CAAA,CAC1BjH,GAAKpf,EAAAA,CAAK,IAAI,CAAC4yK,YAAW,CAC3B,KAAO,CACNxzJ,GAAK0J,GAAAA,CAAM9lB,IAAAA,CAAKyjB,GAAG,CAACJ,GAAAA,CAAM,GAC1BrmB,EAAAA,CAAKof,EAAAA,CAAK,IAAI,CAACwzJ,YAAW,CAE3BlmJ,EAAAA,CAAKrb,QAAQmO,CAAC,CAAGxf,EAAAA,CACjB2sB,EAAAA,CAAKtb,QAAQoO,CAAC,CAAGL,GAClB,CACA25J,MAAM,CAAC,CAAA,CAAE,CAACv5J,CAAC,CAAGkN,EAAAA,CAAK1sB,EACnB+4K,CAAAA,MAAM,CAAC,CAAA,CAAE,CAACt5J,CAAC,CAAGkN,EAAAA,CAAKvN,EACnB25J,CAAAA,MAAM,CAAC,CAAA,CAAE,CAACr5J,CAAC,CAAG,CAACoJ,GACfiwJ,CAAAA,MAAM,CAAC,EAAE,CAACv5J,CAAC,CAAGkN,EAAAA,CAAK1sB,EACnB+4K,CAAAA,MAAM,CAAC,CAAA,CAAE,CAACt5J,CAAC,CAAGkN,EAAAA,CAAKvN,EACnB25J,CAAAA,MAAM,CAAC,CAAA,CAAE,CAACr5J,CAAC,CAAG,CAACoJ,GACfiwJ,CAAAA,MAAM,CAAC,CAAA,CAAE,CAACv5J,CAAC,CAAGkN,EAAAA,CAAK1sB,EACnB+4K,CAAAA,MAAM,CAAC,CAAA,CAAE,CAACt5J,CAAC,CAAGkN,GAAKvN,EACnB25J,CAAAA,MAAM,CAAC,CAAA,CAAE,CAACr5J,CAAC,CAAG,CAACoJ,GACfiwJ,CAAAA,MAAM,CAAC,CAAA,CAAE,CAACv5J,CAAC,CAAGkN,EAAAA,CAAK1sB,EACnB+4K,CAAAA,MAAM,CAAC,EAAE,CAACt5J,CAAC,CAAGkN,EAAAA,CAAKvN,EACnB25J,CAAAA,MAAM,CAAC,EAAE,CAACr5J,CAAC,CAAG,CAACoJ,GAAAA,CACf,OAAOiwJ,MACR,CACAC,eAAAA,CAAgBC,UAAU,CAAE,CAC3Br/J,MAAAA,CAAOo1H,MAAM,CAAC,IAAI,CAACikC,aAAa,CAAEgG,WAClC,CAAA,IAAI,CAAClG,aAAa,CAAG,KACtB,CACAmG,gBAAAA,CAAiBxvK,MAAM,CAAE,CACxB,MAAM2vB,CAAAA,CAAI,IAAI,CAACg7I,QAAQ,CACvB3qK,MAAM,CAAC,CAAA,CAAE,CAAG,EAAI2vB,CAChB3vB,CAAAA,MAAM,CAAC,CAAA,CAAE,CAAG2vB,CACZ3vB,CAAAA,MAAM,CAAC,EAAE,CAAG,IAAI,CAACurK,SACjBvrK,CAAAA,MAAM,CAAC,EAAE,CAAG,IAAI,CAAC2rK,WAAW,GAAK3zB,wBAA0B,CAAA,CAAI,CAAA,CAC/D,OAAOh4I,MACR,CAtlBA,WAAA,CAAY6nC,cAAc,CAAE,CAX5B+8G,gBAAAA,CAAAA,IAAAA,CAAAA,iBAAiB,IAAA,CAAA,CACjBsjB,gBAAAA,CAAAA,IAAAA,CAAAA,sBAAsB,IAAA,CAAA,CACtBC,gBAAAA,CAAAA,IAAAA,CAAAA,sBAAsB,IAAA,CAAA,CACtBsH,gBAAAA,CAAAA,IAAAA,CAAAA,YAAY,IAAA,CAAA,CACZC,gBAAAA,CAAAA,IAAAA,CAAAA,eAAe,IAAIhK,kBAAAA,CAAAA,CACnB0C,sBAAAA,aAAAA,CAAc,EAAE,CAAA,CAChB1sG,gBAAAA,CAAAA,IAAAA,CAAAA,eAAe,EAAE,CAAA,CACjB2sG,sBAAAA,eAAAA,CAAgB,IAAA,CAAA,CAChBC,sBAAAA,sBAAAA,CAAuB,EAAC,CAAA,CACxB6E,gBAAAA,CAAAA,IAAAA,CAAAA,SAAS,CAAA,CAAA,CACTllI,gBAAAA,CAAAA,IAAAA,CAAAA,SAAAA,MAAAA,CAEC,CAAA,IAAI,CAACA,MAAM,CAAGJ,cACd,CAAA,IAAI,CAACuhI,YAAY,CAAG,GAAK,CACzB,CAAA,IAAI,CAACI,gBAAgB,CAAG9rB,WACxB,CAAA,IAAI,CAACksB,oBAAoB,CAAG,IAC5B,CAAA,IAAI,CAACE,mBAAmB,CAAG,IAC3B,CAAA,IAAI,CAACC,WAAW,CAAG,IAAIl7J,MAAM,GAAA,CAAM,GAAA,CAAM,IAAM,CAAA,CAC/C,CAAA,IAAI,CAACo7J,iBAAiB,CAAG,IACzB,CAAA,IAAI,CAACC,WAAW,CAAG,CACnB,CAAA,IAAI,CAACE,iBAAiB,CAAG,IACzB,CAAA,IAAI,CAACC,aAAa,CAAG,CACrB,CAAA,IAAI,CAACE,mBAAmB,CAAG,IAC3B,CAAA,IAAI,CAACE,UAAU,CAAG,IAClB,CAAA,IAAI,CAACE,QAAQ,CAAG,GAChB,CAAA,IAAI,CAACE,UAAU,CAAG,KAClB,CAAA,IAAI,CAACC,IAAI,CAAG,EACZ,CAAA,IAAI,CAACE,eAAe,CAAG,IACvB,CAAA,IAAI,CAACE,cAAc,CAAG,KACtB,CAAA,IAAI,CAACC,OAAO,CAAG,CAAC72B,aAAAA,CAAeC,cAAeC,cAAAA,CAAgBE,UAAAA,CAAYD,iBAAAA,CAC1E,CAAA,IAAI,CAAC22B,UAAU,CAAG,IAAIrqK,IAAI,IAAI,CAACoqK,OAAO,CACtC,CAAA,IAAI,CAACI,SAAS,CAAG,EACjB,CAAA,IAAI,CAACC,KAAK,CAAG,IACb,CAAA,IAAI,CAACE,YAAY,CAAG,EACpB,CAAA,IAAI,CAACC,WAAW,CAAG5zB,sBACnB,CAAA,IAAI,CAACi0B,iBAAiB,CAAG,IAAInwJ,IAC7B,CAAA,IAAI,CAACotJ,KAAK,CAAG,IAAI7sJ,IAAAA,CAAK,EAAG,CAAA,CAAG,CAAA,CAAG,EAC/B,CAAA,IAAI,CAAC6vJ,aAAa,CAAG,IACrB,CAAA,IAAI,CAACC,YAAY,CAAG,IAAI9vJ,IAAAA,CAAK,CAAA,CAAG,CAAA,CAAG,EAAG,CAAA,CACtC,CAAA,IAAI,CAAC4sJ,iBAAiB,CAAG,KACzB,CAAA,IAAI,CAACwD,SAAS,CAAG,EACjB,CAAA,IAAI,CAACI,QAAQ,CAAG,CAAA,CAAI,GACpB,CAAA,IAAI,CAACF,YAAY,CAAG,GACpB,CAAA,IAAI,CAACZ,QAAQ,CAAG,IAAIvvJ,IACpB,CAAA,IAAI,CAAC8sJ,aAAa,CAAG,IACrB,CAAA,IAAI,CAACuF,cAAc,CAAG,IAAIryJ,IAC1B,CAAA,IAAI,CAAC+vJ,QAAQ,CAAG,IAAI/vJ,IACpB,CAAA,IAAI,CAAC6vJ,aAAa,CAAG,IACrB,CAAA,IAAI,CAACqB,YAAY,CAAG,IAAIlxJ,IACxB,CAAA,IAAI,CAACixJ,iBAAiB,CAAG,IACzB,CAAA,IAAI,CAAC7E,sBAAsB,CAAG,CAC9B,CAAA,IAAI,CAACG,gBAAgB,CAAG,IAAIvsJ,IAC5B,CAAA,IAAI,CAACssJ,gBAAgB,CAAG,IACxB,CAAA,IAAI,CAACD,iBAAiB,CAAG,IAAIrsJ,IAC7B,CAAA,IAAI,CAACwsJ,QAAQ,CAAG,CAAC,CAAA,CAAG,CAAA,CAAG,EAAG,CAAA,CAC1B,CAAA,IAAI,CAACxM,OAAO,CAAG,IAAIvvI,OACnB,CAAA,IAAI,CAACggJ,WAAW,CAAmB,IAAIjsK,GACvC,CAAA,IAAI,CAAC+rK,QAAQ,CAAG,IAChB,CAAA,IAAI,CAACvD,aAAa,CAAG,CACpB0B,aAAAA,CAAe,IAAI,CAACC,cAAc,CAClCvuJ,IAAK,IAAI,CAACmuJ,IAAI,CACd5B,WAAAA,CAAa,IAAI,CAACE,YAAY,CAC9BsB,OAAAA,CAAS,IAAI,CAACC,QAAQ,CACtBW,SAAU,IAAI,CAACC,SAChB,EACD,CAiiBD,CAAA,CAxoBC,0BAAOvD,wBAAAA,CAAyB,IAAIzrJ,OAAOmD,QAAQ,CAAC,CAAA,CAAG,GAAI,CAAA,CAAA,CAAA,CAC3D,gBAAA,CAAA,QAAA,CAAOuoJ,0BAA0B,IAAI1rJ,IAAAA,EAAAA,CAAO7b,GAAG,CAAC,CAC/C,CAAA,CACA,CAAA,CACA,EACA,CAAA,CACA,CAAA,CACA,EACA,CAAA,CACA,CAAA,CACA,EACA,CAAA,CACA,EAAA,CACA,EACA,CAAA,CACA,CAAA,CACA,GACA,CAAA,CACA,CAAA,CAAA,CACD,0BAAOqnK,+BAAAA,CAAgC,IAAIxrJ,gBAunB5C,IAAIozJ,UAAAA,CAAa,cAAc3tK,YAAAA,CAU9B,IAAImqF,QAAAA,EAAW,CACd,OAAO,IAAI,CAACyjF,SAAS,CAEtB,IAAI9B,OAAAA,EAAU,CACb,OAAO,IAAI,CAAChC,QAAQ,CAErB,IAAI+D,cAAAA,EAAiB,CACpB,OAAO,IAAI,CAACC,eACb,CACA,IAAI/B,UAAAA,EAAa,CAChB,OAAO,IAAI,CAACgC,WACb,CACA,IAAIC,aAAAA,EAAgB,CACnB,OAAO,IAAI,CAACC,cACb,CACA,IAAIC,UAAW,CACd,OAAO,IAAI,CAACC,SAAS,CAEtB,IAAIC,cAAe,CAClB,OAAO,IAAI,CAACC,aAAa,CAE1BC,OAAAA,CAAQxC,OAAO,CAAEyC,WAAW,CAAEC,QAAQ,CAAE,CACvC,IAAI,CAAC1E,QAAQ,CAACprK,GAAG,CAACotK,OAAAA,CAAAA,CAClB,IAAI,CAAC2C,WAAW,CAAC/vK,GAAG,CAAC6vK,aACrB,GAAIC,QAAAA,CAAU,CACb,IAAI,CAAClE,QAAQ,CAAC5rK,GAAG,CAAC8vK,QAAAA,EACnB,MAAO,CACN,IAAI,CAAClE,QAAQ,CAACxzK,IAAI,CAAC,IAAI,CAAC23K,WAAW,CAAA,CAAEzwJ,MAAM,GAC5C,CACD,CACAL,WAAAA,CAAYrpB,EAAE,CAAEof,EAAE,CAAEkK,KAAK,CAAEC,MAAM,CAAE,CAClC,IAAI,CAAC+vJ,SAAS,CAAClvK,GAAG,CAACpK,GAAIof,EAAAA,CAAIkK,KAAAA,CAAOC,QACnC,CACA+tJ,gBAAAA,CAAiBD,oBAAoB,CAAE,CACtC,GAAIA,oBAAAA,CAAsB,CACzB,IAAI,CAACsC,cAAc,CAAC34J,IAAI,CAACq2J,oBAAAA,CAAsB,IAAI,CAAC8C,WAAW,EAC/D,IAAI,CAACV,WAAW,CAACj3K,IAAI,CAAC,IAAI,CAACm3K,cAAc,CAAA,CAAEjwJ,MAAM,GAClD,CAAA,KAAO,CACN,IAAI,CAACiwJ,cAAc,CAACn3K,IAAI,CAAC,IAAI,CAAC23K,WAAW,CAAA,CACzC,IAAI,CAACV,WAAW,CAACj3K,IAAI,CAAC,IAAI,CAACwzK,QAAQ,EACpC,CACA,IAAI,CAAC6D,SAAS,CAACh3J,WAAW,CAAC,IAAI,CAAC42J,WAAW,CAAA,CAC3C,IAAI,CAACD,eAAe,CAACx4J,IAAI,CAAC,IAAI,CAACw0J,QAAQ,CAAE,IAAI,CAACiE,WAAW,CACzD,CAAA,IAAI,CAACM,aAAa,CAAC,CAAA,CAAE,CAAG,IAAI,CAACJ,cAAc,CAACv3J,IAAI,CAAC,EAAA,CACjD,CAAA,IAAI,CAAC23J,aAAa,CAAC,EAAE,CAAG,IAAI,CAACJ,cAAc,CAACv3J,IAAI,CAAC,EAAA,CAAG,CACpD,IAAI,CAAC23J,aAAa,CAAC,EAAE,CAAG,IAAI,CAACJ,cAAc,CAACv3J,IAAI,CAAC,IAAG,CACrD,WAAA,CAAA,GAAA,IAAA,CAAA,CAxDgB,eAChB23J,gBAAAA,CAAAA,IAAAA,CAAAA,eAAAA,CAAgB,IAAI/8J,YAAAA,CAAa,CAAA,CAAA,CAAA,CACjCs8J,sBAAAA,WAAAA,CAAY,IAAIxzJ,MAChB0vJ,gBAAAA,CAAAA,IAAAA,CAAAA,UAAAA,CAAW,IAAIvvJ,IAAAA,CAAAA,CACfuzJ,gBAAAA,CAAAA,IAAAA,CAAAA,kBAAkB,IAAIvzJ,IAAAA,CAAAA,CACtB+vJ,gBAAAA,CAAAA,IAAAA,CAAAA,UAAAA,CAAW,IAAI/vJ,IAAAA,CAAAA,CACfwzJ,gBAAAA,CAAAA,IAAAA,CAAAA,cAAc,IAAIxzJ,IAAAA,CAAAA,CAClB4zJ,sBAAAA,WAAAA,CAAY,IAAI33J,MAChBi4J,gBAAAA,CAAAA,IAAAA,CAAAA,aAAAA,CAAc,IAAIl0J,IAAAA,CAAAA,CAClB0zJ,gBAAAA,CAAAA,IAAAA,CAAAA,iBAAiB,IAAI1zJ,IAAAA,EAAAA,CAgDtB,EAEA,IAAI+vJ,QAAAA,CAAW,IAAI/vJ,IAAAA,CACnB,IAAIkxJ,YAAAA,CAAe,IAAIlxJ,KACvB,IAAIm0J,eAAAA,CAAkB,IAAIn0J,IAAAA,CAC1B,IAAIo0J,2BAAc,MAAMC,YAAAA,CAUvB,OAAO13K,MAAAA,CAAO+uC,MAAM,CAAEprC,IAAI,CAAEglJ,SAAS,CAAE1xG,IAAI,CAAE,CAC5C,MAAMisH,MAAAA,CAAS,IAAIsL,OAAOz/H,MAAAA,CAC1Bm0H,CAAAA,OAAO7K,IAAI,CAAG,IAAII,SAAAA,CAAU90J,KAC5Bu/J,CAAAA,MAAAA,CAAO8M,WAAW,CAAG,CACrB9M,CAAAA,MAAAA,CAAOsN,eAAe,CAAG/rB,aACzBye,CAAAA,MAAAA,CAAO4M,iBAAiB,CAAG,IAAA,CAC3B,OAAQnnB,WACP,KAAKjN,cAAAA,CACJwnB,OAAO7K,IAAI,CAACqE,WAAW,CAACgb,YAAAA,CAAaC,mBAAmB,CAAC1gI,IAAAA,CAAK,CAC9DisH,CAAAA,MAAAA,CAAOz/I,GAAG,CAAG,EACby/I,CAAAA,MAAAA,CAAOxqH,UAAU,CAAGmmG,sBAAAA,CACpB,MACD,KAAKjD,cAAAA,CACJsnB,OAAOxqH,UAAU,CAAGmmG,uBACpB,MACD,KAAKpD,sBACJynB,MAAAA,CAAOxqH,UAAU,CAAGomG,uBAAAA,CACpB,KACF,CACA,OAAOokB,MACR,CAIA,OAAO0U,qBAAqBC,KAAK,CAAE,CAClC,IAAIC,YAAAA,CAAeJ,aAAaK,iBAAiB,CACjD,GAAI,CAACD,YAAAA,CAAc,CAClBA,YAAAA,CAAeJ,YAAAA,CAAa13K,MAAM,CAAC63K,KAAAA,CAAM9oI,MAAM,CAAE,mBAAoB6sG,cAAAA,CACrE87B,CAAAA,aAAaK,iBAAiB,CAAGD,aAClC,CACAA,YAAAA,CAAar0J,GAAG,CAAGo0J,KAAAA,CAAMG,eAAe,CAAG,CAAA,CAC3C,MAAMC,UAAAA,CAAaH,YAAAA,CAAaxF,KAAK,CACrC2F,UAAAA,CAAWhnC,WAAW,CAAC4mC,MAAMvF,KAAK,CAACvhC,WAAW,EAAA,CAAA,CAC9CknC,UAAAA,CAAWvb,WAAW,CAACmb,KAAAA,CAAMvF,KAAK,CAAC5W,WAAW,IAC9Cuc,UAAAA,CAAW7Z,WAAW,CAAC,GAAC,CAAI,EAAG,CAAA,CAAA,CAC/BgV,QAAAA,CAAS1rJ,MAAM,CAACuwJ,WAAWlnC,WAAW,EAAA,CAAIknC,WAAWvc,WAAW,EAAA,CAAIh/I,KAAKqC,GAAG,CAAA,CAAE+H,MAAM,EAAA,CACpFytJ,YAAAA,CAAan2J,IAAI,CAAC05J,YAAAA,CAAapF,gBAAgB,CAAEU,QAAAA,CAAAA,CACjD,MAAM8E,YAAAA,CAAeL,KAAAA,CAAMK,YAAY,CACvC,MAAMC,YAAAA,CAAeN,KAAAA,CAAMO,aAAa,CACxCZ,eAAAA,CAAgB/wJ,WAAW,CAAC0xJ,YAAAA,CAAav7J,CAAC,CAAEu7J,YAAAA,CAAat7J,CAAC,CAAEs7J,YAAAA,CAAar7J,CAAC,CAAEq7J,YAAAA,CAAa53J,CAAC,CAAA,CAC1F23J,YAAAA,CAAa95J,IAAI,CAACo5J,gBAAiBjD,YAAAA,CAAAA,CACnC,OAAO2D,YACR,CACD,CAAA,CAnDC,+BAAOP,qBAAAA,CAAsB,CAC5B,IAAI/uJ,IAAAA,EAAAA,CAAOV,kBAAkB,CAAC,CAAA,CAAG,GAAI,GAAA,CAAA,CACrC,IAAIU,OAAOV,kBAAkB,CAAC,CAAA,CAAG,IAAK,GAAA,CAAA,CACtC,IAAIU,OAAOV,kBAAkB,CAAC,GAAI,CAAA,CAAG,CAAA,CAAA,CACrC,IAAIU,IAAAA,EAAAA,CAAOV,kBAAkB,CAAC,GAAC,CAAI,EAAG,CAAA,CAAA,CACtC,IAAIU,OAAOV,kBAAkB,CAAC,CAAA,CAAG,GAAA,CAAK,KACtC,IAAIU,IAAAA,EAAAA,CAAOV,kBAAkB,CAAC,CAAA,CAAG,EAAG,GAAA,CAAA,CACpC,CAAA,CAsBD,+BAAO6vJ,mBAAAA,CAAoB,IAAA,CAAA,CAAA,aAAA,CAAA,CAwB5B,IAAIM,QAAAA,CAAW,IAAI37J,KACnB,IAAI47J,kBAAAA,CAAqB,IAAIl+J,YAAAA,CAAa,CAAA,CAAA,CAC1C,IAAIm+J,iBAAAA,CAAoB,IAAI77J,IAAAA,CAAK,KAAM,CAAA,CAAG,CAAA,CAAA,CAC1C,IAAI87J,kBAAAA,CAAqB,IAAI97J,KAAK,CAAA,CAAG,CAAA,CAAG,IACxC,IAAI+7J,iBAAAA,CAAoB,CACvBC,cAAAA,CAAgB,CAAA,CAEhBC,gBAAiB,CAAA,CAEjBC,iBAAAA,CAAmB,CAAA,CAEnBC,UAAAA,CAAY,EAEZC,cAAAA,CAAgB,CAAA,CAEhBC,WAAY,CAAA,CAEZC,UAAAA,CAAY,EAEZC,UAAAA,CAAY,CAAA,CAEZC,gBAAiB,CAAA,CAEjBC,gBAAAA,CAAkB,EAGlBC,KAAAA,CAAO,CACR,EACA,IAAIC,KAAAA,CAAQ,CACX,qBAAA,CAAuB,CAAC,EAAEr9B,mBAAAA,CAAoB,CAAC,CAAC,CAChD,kBAAmB,CAAC,EAAEC,gBAAgB,CAAC,CAAC,CACxC,iBAAA,CAAmB,CAAC,EAAEC,eAAAA,CAAgB,CAAC,CAAC,CACxC,mBAAA,CAAqB,CAAC,EAAEC,iBAAAA,CAAkB,CAAC,CAAC,CAC5C,qBAAA,CAAuB,CAAC,EAAEJ,mBAAAA,CAAoB,EAAE,CAAA,CACjD,CACA,IAAI0M,kBAAAA,CAAqB,CAACrnF,OAAQk4G,MAAAA,GAAAA,CACjC,OAAOtiK,OAAOyB,IAAI,CAAC2oD,QAAQj6D,GAAG,CAAC,GAACyB,EAAQ,CAAC,SAAS,EAAE0wK,OAAO,EAAE1wK,GAAAA,CAAI,EAAE,EAAEw4D,MAAM,CAACx4D,GAAAA,CAAI,CAAC,CAAC,CAAA,CAAElI,IAAI,CAAC,IAAA,CAC1F,CAAA,CACA,IAAI64K,kBAAAA,CAAqB;;AAEzB,EAAE,EAAE9wB,mBAAmBgwB,iBAAAA,CAAmB,kBAAA,CAAA;AAC1C,EAAE,EAAEhwB,mBAAmB4wB,KAAAA,CAAO,EAAA,CAAA;AAC9B,CAAC,CACD,IAAIG,YAAAA,CAAe,MAkBlB,IAAIC,SAAAA,CAAU/wK,KAAK,CAAE,CACpB,GAAI,IAAI,CAACgxK,UAAU,GAAKhxK,MAAO,CAC9B,IAAI,CAACgxK,UAAU,CAAGhxK,KAAAA,CAClB,MAAMixK,oBAAsBlB,iBAAAA,CAAkBW,KAAK,CACnD,IAAI,CAACQ,WAAW,CAAG,IAAIx/J,YAAAA,CAAa,EAAIu/J,mBAAAA,CAAsBjxK,KAAAA,CAC9D,CAAA,IAAI,CAACmxK,UAAU,CAAG,IAAI73I,WAAAA,CAAY,IAAI,CAAC43I,WAAW,CAACz+J,MAAM,CACzD,CAAA,IAAI,CAAC2+J,aAAa,EAAE5rI,OAAAA,EACpB,CAAA,IAAI,CAAC4rI,aAAa,CAAG,IAAI,CAAC3yG,aAAa,CAAC,IAAI,CAACp4B,MAAM,CAAE4qI,mBAAAA,CAAqBjxK,MAAO8zB,mBAAAA,CAAqB,eAAA,EACvG,CACD,CACA,IAAIi9I,SAAAA,EAAY,CACf,OAAO,IAAI,CAACC,UAAU,CAEvBxrI,SAAU,CACT,IAAI,CAAC4rI,aAAa,EAAE5rI,OAAAA,EACpB,CAAA,IAAI,CAAC4rI,aAAa,CAAG,KACtB,CACA3yG,aAAAA,CAAcp4B,MAAM,CAAEroB,KAAK,CAAEC,MAAM,CAAEvgB,MAAM,CAAEzC,IAAI,CAAE,CAClD,MAAM8vC,IAAM,IAAIpC,OAAAA,CAAQtC,OAAQ,CAC/BprC,IAAAA,CACA+iB,MACAC,MAAAA,CACA4pB,OAAAA,CAAS,KAAA,CACTnqC,MAAAA,CACAurC,SAAU/a,qBAAAA,CACVgb,QAAAA,CAAUhb,sBACV3e,IAAAA,CAAMqtB,mBAAAA,CACNoM,UAAWlX,cAAAA,CACXiX,SAAAA,CAAWjX,cAAAA,CACXya,UAAAA,CAAY,CACb,CAAA,CAAA,CACA,OAAOxB,GACR,CACAsmI,SAAAA,CAAU/lK,GAAG,CAAEgmK,MAAM,CAAE,CACtB,IAAI,CAACC,SAAS,CAACr6K,IAAI,CAACoU,KACpB,IAAI,CAACkmK,WAAW,CAACt6K,IAAI,CAACo6K,MAAAA,EACvB,CACAG,cAAAA,EAAiB,CAChB,IAAI,CAACL,aAAa,CAAC9iI,IAAI,EAAA,CAAGxvC,GAAG,CAAC,IAAI,CAACoyK,WAAW,CAAA,CAC9C,IAAI,CAACE,aAAa,CAAC5hI,MAAM,GAC1B,CACAkiI,cAAAA,EAAiB,CAChB,IAAI,CAACC,gBAAgB,CAAC93H,QAAQ,CAAC,IAAI,CAACu3H,aAAa,EAClD,CACAQ,gBAAAA,CAAiBzrJ,SAAS,CAAE0rJ,IAAI,CAAE,CACjC,MAAMtZ,KAAOsZ,IAAAA,CAAKjI,KAAK,CAAC9hB,iBAAiB,EAAA,CACzCyQ,KAAKthJ,IAAI,CAACkP,SAAAA,CAAAA,CAAWxY,SAAS,CAAC,EAAC,CAAA,CAChCwY,UAAU5tB,SAAS,GACpB,CAEAu5K,iBAAAA,CAAkB3C,KAAK,CAAE,CACxB,MAAM5W,IAAAA,CAAO4W,KAAAA,CAAMvF,KAAK,CAAC9hB,iBAAiB,GAC1CyQ,IAAAA,CAAK1+I,eAAe,CAACg2J,iBAAAA,CAAmBF,SACxCC,CAAAA,kBAAkB,CAAC,CAAA,CAAE,CAAGD,SAASz7J,CACjC07J,CAAAA,kBAAkB,CAAC,CAAA,CAAE,CAAGD,SAASx7J,CACjCy7J,CAAAA,kBAAkB,CAAC,CAAA,CAAE,CAAGD,SAASv7J,CAAC,CAClCmkJ,KAAK1+I,eAAe,CAACi2J,mBAAoBH,QAAAA,CACzCC,CAAAA,kBAAkB,CAAC,EAAE,CAAGD,QAAAA,CAASz7J,CAAC,CAClC07J,kBAAkB,CAAC,CAAA,CAAE,CAAGD,QAAAA,CAASx7J,CAAC,CAClCy7J,kBAAkB,CAAC,CAAA,CAAE,CAAGD,QAAAA,CAASv7J,CAAC,CAClC,OAAOw7J,kBACR,CAEAmC,YAAAA,CAAa5C,KAAK,CAAE6C,UAAU,CAAE,CAC/B,MAAMC,MAAAA,CAAS9C,KAAAA,CAAMn9J,KAAK,GAAKkhI,cAAAA,CAC/B,MAAMg/B,gBAAAA,CAAmB/C,KAAAA,CAAMgD,sBAAsB,CACrD,MAAMC,QAAAA,CAAW,IAAI,CAACC,cAAc,EAAI,CAAC,CAAClD,KAAAA,CAAMmD,OAAO,EAAIJ,gBAAAA,CAC3D,MAAMK,MAAAA,CAAS,IAAI,CAACC,iBAAiB,EAAIrD,KAAAA,CAAMsD,KAAK,GAAKn/B,mBAAAA,CACzD,MAAMo/B,WAAAA,CAAc,IAAI,CAACC,cAAc,EAAIxD,MAAMuD,WAAW,EAAIR,iBAChE,MAAM7F,GAAAA,CAAM8C,MAAMvF,KAAK,CAACvhC,WAAW,EAAA,CACnC,IAAIuqC,sBAAwB,IAAA,CAC5B,IAAIlD,cAAgB,IAAA,CACpB,GAAIuC,MAAAA,CAAQ,CACX,GAAIS,WAAAA,CAAa,CAChB,MAAMG,eAAAA,CAAkB1D,KAAAA,CAAM2D,aAAa,CAAC,IAAA,CAAM,CAAA,CAAA,CAClDF,qBAAAA,CAAwBC,gBAAgBE,aACzC,MAAO,GAAIX,QAAAA,CAAU,CACpBQ,qBAAAA,CAAwB7D,WAAAA,CAAYG,oBAAoB,CAACC,OAC1D,CACD,CAAA,KAAO,CACN,GAAIuD,WAAAA,EAAeN,SAAU,CAC5B1C,aAAAA,CAAgBP,KAAAA,CAAMO,cAAa,CAErC,CACA,MAAMsD,SAAAA,CAAY,IAAI,CAAC9B,WAAW,CAClC,MAAM+B,QAAAA,CAAW,IAAI,CAAC9B,UAAU,CAChC,MAAM+B,cAAAA,CAAiBlB,WAAa,IAAI,CAACZ,aAAa,CAACpzJ,KAAK,CAAG,CAC/Dg1J,CAAAA,SAAS,CAACE,eAAiB,CAAA,CAAInD,iBAAAA,CAAkBC,cAAc,CAAG,EAAE,CAAG3D,GAAAA,CAAIn4J,CAAC,CAC5E8+J,SAAS,CAACE,cAAAA,CAAiB,CAAA,CAAInD,iBAAAA,CAAkBC,cAAc,CAAG,CAAA,CAAE,CAAG3D,GAAAA,CAAIl4J,CAAC,CAC5E6+J,SAAS,CAACE,cAAAA,CAAiB,EAAInD,iBAAAA,CAAkBC,cAAc,CAAG,CAAA,CAAE,CAAG3D,IAAIj4J,CAC3E4+J,CAAAA,SAAS,CAACE,cAAAA,CAAiB,CAAA,CAAInD,kBAAkBC,cAAc,CAAG,EAAE,CAAGb,KAAAA,CAAMgE,cAAc,CAC3F,MAAMC,aAAAA,CAAgBjE,KAAAA,CAAMiE,aAAa,CACzCH,QAAQ,CAACC,cAAAA,CAAiB,CAAA,CAAInD,iBAAAA,CAAkBG,iBAAiB,CAAG,CAAA,CAAE,CAAGkD,aAAa,CAAC,EAAE,CACzFH,QAAQ,CAACC,eAAiB,CAAA,CAAInD,iBAAAA,CAAkBG,iBAAiB,CAAG,CAAA,CAAE,CAAGkD,aAAa,CAAC,CAAA,CACvFH,CAAAA,QAAQ,CAACC,eAAiB,CAAA,CAAInD,iBAAAA,CAAkBG,iBAAiB,CAAG,CAAA,CAAE,CAAGkD,aAAa,CAAC,CAAA,CAAE,CACzF,GAAIjE,KAAAA,CAAMuD,WAAW,CAAE,CACtB,MAAMG,gBAAkB1D,KAAAA,CAAM2D,aAAa,CAAC,IAAA,CAAM,CAAA,CAAA,CAClD,MAAMO,MAAAA,CAASlE,KAAAA,CAAMmE,qBAAqB,CAACT,eAAAA,CAAAA,CAC3C,MAAMU,QAAAA,CAAW7gK,aAAaC,UAAU,CAAC0gK,OAAOG,IAAI,CAAA,CACpD,MAAMC,cAAAA,CAAiB/gK,YAAAA,CAAaC,UAAU,CAAC0gK,OAAOK,UAAU,CAChET,CAAAA,QAAQ,CAACC,eAAiB,CAAA,CAAInD,iBAAAA,CAAkBG,iBAAiB,CAAG,EAAE,CAAGqD,QAAAA,CAAWE,gBAAkB,GACvG,CACA,GAAIxB,MAAAA,CAAQ,CACX,IAAI,CAACL,gBAAgB,CAACjC,QAAAA,CAAUR,MAChC6D,CAAAA,SAAS,CAACE,cAAAA,CAAiB,CAAA,CAAInD,iBAAAA,CAAkBE,eAAe,CAAG,CAAA,CAAE,CAAGN,SAASz7J,CACjF8+J,CAAAA,SAAS,CAACE,cAAAA,CAAiB,CAAA,CAAInD,kBAAkBE,eAAe,CAAG,EAAE,CAAGN,QAAAA,CAASx7J,CAAC,CAClF6+J,SAAS,CAACE,eAAiB,CAAA,CAAInD,iBAAAA,CAAkBE,eAAe,CAAG,CAAA,CAAE,CAAGN,QAAAA,CAASv7J,EAAC,CAEnF6+J,QAAQ,CAACC,cAAAA,CAAiB,EAAInD,iBAAAA,CAAkBE,eAAe,CAAG,CAAA,CAAE,CAAGd,KAAAA,CAAMwE,iBAAiB,CAACjB,WAAAA,CAAaN,QAAAA,CAAAA,CAC5G,GAAIQ,qBAAAA,CAAuB,CAC1B,MAAMgB,OAAAA,CAAUhB,qBAAAA,CAAsB97J,IAAI,CAC1C,IAAK,IAAIjE,CAAAA,CAAI,EAAGA,CAAAA,CAAI,EAAA,CAAIA,IAAK,CAC5BmgK,SAAS,CAACE,cAAAA,CAAiB,EAAInD,iBAAAA,CAAkBI,UAAU,CAAGt9J,CAAAA,CAAE,CAAG+gK,OAAO,CAAC/gK,CAAAA,EAAE,CAE/E,CACA,GAAI68J,aAAAA,CAAe,CAClBsD,SAAS,CAACE,eAAiB,CAAA,CAAInD,iBAAAA,CAAkBK,cAAc,CAAG,EAAE,CAAGV,aAAAA,CAAcx7J,CAAC,CACtF8+J,SAAS,CAACE,cAAAA,CAAiB,CAAA,CAAInD,iBAAAA,CAAkBK,cAAc,CAAG,CAAA,CAAE,CAAGV,aAAAA,CAAcv7J,CAAC,CACtF6+J,SAAS,CAACE,cAAAA,CAAiB,EAAInD,iBAAAA,CAAkBK,cAAc,CAAG,CAAA,CAAE,CAAGV,cAAct7J,CAAC,CAAG,EAC1F,CACA,GAAIm+J,OAAQ,CACX,MAAMsB,UAAY,IAAI,CAAC/B,iBAAiB,CAAC3C,KAAAA,CACzC6D,CAAAA,SAAS,CAACE,cAAAA,CAAiB,CAAA,CAAInD,kBAAkBS,eAAe,CAAG,EAAE,CAAGqD,SAAS,CAAC,CAAA,CAAE,CACpFb,SAAS,CAACE,cAAAA,CAAiB,CAAA,CAAInD,kBAAkBS,eAAe,CAAG,CAAA,CAAE,CAAGqD,SAAS,CAAC,CAAA,CAAE,CACpFb,SAAS,CAACE,cAAAA,CAAiB,CAAA,CAAInD,iBAAAA,CAAkBS,eAAe,CAAG,CAAA,CAAE,CAAGqD,SAAS,CAAC,CAAA,CAAE,CACpFb,SAAS,CAACE,cAAAA,CAAiB,EAAInD,iBAAAA,CAAkBU,gBAAgB,CAAG,CAAA,CAAE,CAAGoD,SAAS,CAAC,CAAA,CAAE,CACrFb,SAAS,CAACE,cAAAA,CAAiB,EAAInD,iBAAAA,CAAkBU,gBAAgB,CAAG,CAAA,CAAE,CAAGoD,SAAS,CAAC,EAAE,CACrFb,SAAS,CAACE,cAAAA,CAAiB,EAAInD,iBAAAA,CAAkBU,gBAAgB,CAAG,CAAA,CAAE,CAAGoD,SAAS,CAAC,GAAE,CAEvF,CA/IA,WAAA,CAAYxtI,MAAM,CAAE,CAHpBmsI,sBAAAA,mBAAAA,CAAoB,KAAA,CAAA,CACpBpB,sBAAAA,eAAAA,CAAgB,IAAA,CAAA,CAChBJ,sBAAAA,YAAAA,CAAa,CAAA,CAEZ,CAAA,IAAI,CAAC3qI,MAAM,CAAGA,OACdi7G,YAAAA,CAAazsJ,GAAG,CAACwxC,MAAAA,CAAQjI,mBAAAA,CAAAA,CAAqBt/B,GAAG,CAAC,uBAAwB+xK,kBAAAA,CAAAA,CAC1EvvB,YAAAA,CAAazsJ,GAAG,CAACwxC,MAAAA,CAAQhI,qBAAqBv/B,GAAG,CAAC,sBAAA,CAAwB+xK,kBAAAA,CAC1E,CAAA,IAAI,CAACwB,cAAc,CAAG,KACtB,CAAA,IAAI,CAACM,cAAc,CAAG,KACtB,CAAA,IAAI,CAACH,iBAAiB,CAAG,KACzB,CAAA,IAAI,CAACb,gBAAgB,CAAG,IAAI,CAACtrI,MAAM,CAACzmC,KAAK,CAAC6mC,OAAO,CAAC,eAAA,CAClD,CAAA,IAAI,CAACsqI,SAAS,CAAG,GACjB,CAAA,IAAI,CAAC+C,gBAAgB,CAAG,CACxB,CAAA,IAAI,CAACC,iBAAiB,CAAG,CACzB,CAAA,IAAI,CAACxC,SAAS,CAAG,IAAIv9J,IACrB,CAAA,IAAI,CAACw9J,WAAW,CAAG,IAAIx9J,KACxB,CAmID,CAAA,CAEA,IAAIggK,QAAU,IAAI/5J,IAAAA,CAClB,IAAIg6J,SAAAA,CAAY,IAAIjgK,KACpB,IAAIkgK,QAAAA,CAAW,IAAIlgK,IAAAA,CACnB,IAAImgK,QAAAA,CAAW,IAAIngK,KACnB,IAAIogK,OAAAA,CAAU,IAAI9wJ,WAAAA,CAClB,IAAI+wJ,YAAAA,CAAe,KAAA,CAClB,aAAc,CACb,IAAI,CAAClF,KAAK,CAAG,IACb,CAAA,IAAI,CAAC7jK,GAAG,CAAG,IAAI0I,IACf,CAAA,IAAI,CAACzI,GAAG,CAAG,IAAIyI,KAChB,CACD,EACA,IAAIsgK,aAAAA,CAAgB,MAkBnB,IAAIC,UAAAA,EAAa,CAChB,OAAO,IAAI,CAACC,WAAW,CAExB,IAAIC,kBAAkBzsI,KAAK,CAAE,CAC5B,GAAIA,KAAAA,GAAU,IAAI,CAAC0sI,kBAAkB,CAAE,CACtC,IAAI,CAACA,kBAAkB,CAAG1sI,KAC1B,CAAA,IAAI,CAAC2sI,WAAW,CAAG,KACpB,CACD,CACA,IAAIF,mBAAoB,CACvB,OAAO,IAAI,CAACC,kBAAkB,CAI/B,IAAI3D,SAAAA,CAAU/oI,KAAK,CAAE,CACpB,GAAIA,KAAAA,GAAU,IAAI,CAAC+oI,SAAS,CAAE,CAC7B,IAAI,CAAC6D,YAAY,CAAC7D,SAAS,CAAG/oI,KAAAA,CAAQ,CACtC,CAAA,IAAI,CAAC2sI,WAAW,CAAG,KACpB,CACD,CACA,IAAI5D,SAAAA,EAAY,CACf,OAAO,IAAI,CAAC6D,YAAY,CAAC7D,SAAS,CAAG,CACtC,CACA,IAAI8D,MAAM70K,KAAK,CAAE,CAChBi0K,SAAAA,CAAU/8K,IAAI,CAAC8I,KAAAA,CAAAA,CAAO8H,KAAK,EAAA,CAC3B,GAAI,CAAC,IAAI,CAACgtK,MAAM,CAACxnK,MAAM,CAAC2mK,SAAAA,CAAAA,CAAY,CACnC,IAAI,CAACa,MAAM,CAAC59K,IAAI,CAAC+8K,WACjB,IAAI,CAACc,WAAW,CAAC79K,IAAI,CAAC+8K,SAAAA,CAAAA,CAAWj+J,GAAG,CAAChC,IAAAA,CAAKqC,GAAG,CAC7C,CAAA,IAAI,CAACs+J,WAAW,CAAG,KACpB,CACD,CACA,IAAIE,OAAQ,CACX,OAAO,IAAI,CAACC,MAAM,CAEnBtvI,SAAU,CACT,IAAI,CAACovI,YAAY,CAACpvI,OAAO,EAAA,CACzB,IAAI,CAACwvI,qBAAqB,GAC3B,CACAA,qBAAAA,EAAwB,CACvB,GAAI,IAAI,CAACC,cAAc,CAAE,CACxB,IAAI,CAACA,cAAc,CAACzvI,OAAO,EAC3B,CAAA,IAAI,CAACyvI,cAAc,CAAG,KACvB,CACD,CACAC,gBAAAA,CAAiB7uI,MAAM,CAAE,CACxB,IAAI,CAAC8uI,qBAAqB,CAAG9uI,MAAAA,CAAOzmC,KAAK,CAAC6mC,OAAO,CAAC,oBAAA,CAClD,CAAA,IAAI,CAAC2uI,kBAAkB,CAAG/uI,MAAAA,CAAOzmC,KAAK,CAAC6mC,OAAO,CAAC,iBAAA,CAC/C,CAAA,IAAI,CAAC4uI,sBAAsB,CAAGhvI,MAAAA,CAAOzmC,KAAK,CAAC6mC,OAAO,CAAC,qBAAA,CACnD,CAAA,IAAI,CAAC6uI,mBAAmB,CAAGjvI,MAAAA,CAAOzmC,KAAK,CAAC6mC,OAAO,CAAC,kBAAA,CAChD,CAAA,IAAI,CAAC8uI,qBAAqB,CAAG,IAAI7jK,aAAa,CAAA,CAC9C,CAAA,IAAI,CAAC8jK,qBAAqB,CAAGnvI,MAAAA,CAAOzmC,KAAK,CAAC6mC,OAAO,CAAC,oBAAA,CAClD,CAAA,IAAI,CAACgvI,uBAAuB,CAAG,IAAI/jK,YAAAA,CAAa,CAAA,CAChD,CAAA,IAAI,CAACgkK,gCAAgC,CAAGrvI,MAAAA,CAAOzmC,KAAK,CAAC6mC,OAAO,CAAC,+BAAA,CAC7D,CAAA,IAAI,CAACkvI,kCAAkC,CAAG,IAAIjkK,YAAAA,CAAa,EAC3D,CAAA,IAAI,CAACkkK,kBAAkB,CAAGvvI,MAAAA,CAAOzmC,KAAK,CAAC6mC,OAAO,CAAC,kBAC/C,CAAA,IAAI,CAACovI,oBAAoB,CAAG,IAAIrjK,UAAAA,CAAW,CAAA,CAC3C,CAAA,IAAI,CAACsjK,kBAAkB,CAAGzvI,MAAAA,CAAOzmC,KAAK,CAAC6mC,OAAO,CAAC,iBAAA,CAC/C,CAAA,IAAI,CAACsvI,oBAAoB,CAAG,IAAIvjK,UAAAA,CAAW,CAAA,CAC3C,CAAA,IAAI,CAACwjK,sBAAsB,CAAG3vI,MAAAA,CAAOzmC,KAAK,CAAC6mC,OAAO,CAAC,qBAAA,EACpD,CAEAwvI,YAAAA,CAAaC,cAAc,CAAE,CAC5B,GAAIA,eAAgB,CACnB,IAAI,CAACrB,KAAK,CAAGqB,cAAAA,CAAerB,KAAK,CACjC,IAAI,CAACJ,iBAAiB,CAAGyB,cAAAA,CAAeC,gBAAgB,CACxD,IAAI,CAACpF,SAAS,CAAGmF,eAAenF,SAChC,CAAA,IAAI,CAAC6D,YAAY,CAACvC,cAAc,CAAG6D,cAAAA,CAAe7D,cAAc,CAChE,IAAI,CAACuC,YAAY,CAACjC,cAAc,CAAGuD,cAAAA,CAAevD,cAAc,CAChE,IAAI,CAACiC,YAAY,CAACpC,iBAAiB,CAAG0D,eAAe1D,kBACtD,CACD,CACA4D,WAAAA,EAAc,CACb,GAAI,IAAI,CAACzB,WAAW,CAAE,CACrB,IAAI,CAACA,WAAW,CAAG,KAAA,CACnB,MAAMvzJ,GAAK,IAAI,CAAC0zJ,MAAM,CAAC5gK,CAAC,CACxB,MAAMmN,EAAAA,CAAK,IAAI,CAACyzJ,MAAM,CAAC3gK,CAAC,CACxB,MAAMmN,EAAAA,CAAK,IAAI,CAACwzJ,MAAM,CAAC1gK,CAAC,CACxB,MAAMiiK,QAAAA,CAAWj1J,GAAKC,EAAAA,CAAKC,EAAAA,CAC3B,MAAMg1J,WAAAA,CAAc,IAAI,CAAC7B,iBAAiB,CAAG4B,QAAAA,CAC7C,KAAM,CAAEniK,CAAAA,CAAG8J,KAAK,CAAE7J,CAAAA,CAAG8J,MAAM,CAAE,CAAG8oB,aAAagB,eAAe,CAACuuI,YAAatC,OAAAA,CAAS,IAAI,CAACS,iBAAiB,CACzG,CAAA,IAAI,CAACsB,oBAAoB,CAAC,EAAE,CAAG30J,EAC/B,CAAA,IAAI,CAAC20J,oBAAoB,CAAC,CAAA,CAAE,CAAG10J,EAC/B,CAAA,IAAI,CAAC00J,oBAAoB,CAAC,CAAA,CAAE,CAAGz0J,EAC/B,CAAA,IAAI,CAACu0J,oBAAoB,CAAC,CAAA,CAAE,CAAG,IAAI,CAACpB,iBAAiB,CACrD,IAAI,CAACoB,oBAAoB,CAAC,CAAA,CAAE,CAAGz0J,GAAKE,EAAAA,CAAK,IAAI,CAACmzJ,iBAAiB,CAC/D,IAAI,CAACoB,oBAAoB,CAAC,EAAE,CAAGz0J,EAAAA,CAAK,IAAI,CAACqzJ,iBAAiB,CAC1D,MAAM8B,cAAgB,IAAI,CAACxF,SAAS,CAAG,GACvC,CAAA,IAAI,CAACyF,QAAQ,CAAGD,cAAgB,IAAI/8I,WAAAA,CAAY88I,aAAe,IAAIG,iBAAAA,CAAkBH,WAAAA,CACrF,CAAA,IAAI,CAACt/F,MAAM,CAAG,IAAIxkE,UAAAA,CAAW6jK,UAC7B,IAAI,CAACrB,qBAAqB,EAC1B,CAAA,IAAI,CAACC,cAAc,CAAG,IAAI,CAACL,YAAY,CAACn2G,aAAa,CACpD,IAAI,CAACp4B,MAAM,CACXroB,KAAAA,CACAC,MAAAA,CACAs4J,cAAgBphJ,gBAAAA,CAAmBF,eAAAA,CACnC,gBAAA,EAEF,CACD,CACAw8I,cAAAA,EAAiB,CAChB,IAAI,CAACwD,cAAc,CAAC3mI,IAAI,EAAA,CAAGxvC,GAAG,CAAC,IAAI,CAAC03K,QAAQ,EAC5C,IAAI,CAACvB,cAAc,CAACzlI,MAAM,EAAA,CAC1B,IAAI,CAAColI,YAAY,CAACnD,cAAc,GACjC,CACAC,gBAAiB,CAChB,IAAI,CAACyD,qBAAqB,CAACt7H,QAAQ,CAAC,IAAI,CAAC26H,WAAW,CAACp8K,MAAM,CAAA,CAC3D,IAAI,CAACw8K,YAAY,CAAClD,cAAc,GAChC,IAAI,CAAC2D,sBAAsB,CAACx7H,QAAQ,CAAC,IAAI,CAACo7H,cAAc,CAAA,CACxD,IAAI,CAACG,kBAAkB,CAACv7H,QAAQ,CAAC,IAAI,CAAC46H,iBAAiB,CAAA,CACvD,MAAMjD,YAAc,IAAI,CAACA,WAAW,CACpC,IAAI,CAACmE,kCAAkC,CAAC,CAAA,CAAE,CAAG,IAAI,CAACb,MAAM,CAAC5gK,CAAC,CAAGs9J,WAAAA,CAAYt9J,CAAC,CAC1E,IAAI,CAACyhK,kCAAkC,CAAC,EAAE,CAAG,IAAI,CAACb,MAAM,CAAC3gK,CAAC,CAAGq9J,YAAYr9J,CACzE,CAAA,IAAI,CAACwhK,kCAAkC,CAAC,EAAE,CAAG,IAAI,CAACb,MAAM,CAAC1gK,CAAC,CAAGo9J,WAAAA,CAAYp9J,CAAC,CAC1E,IAAI,CAACshK,gCAAgC,CAAC77H,QAAQ,CAAC,IAAI,CAAC87H,kCAAkC,CACtF,CAAA,IAAI,CAACJ,qBAAqB,CAAC,CAAA,CAAE,CAAG,IAAI,CAAChE,SAAS,CAACr9J,CAAC,CAChD,IAAI,CAACqhK,qBAAqB,CAAC,EAAE,CAAG,IAAI,CAAChE,SAAS,CAACp9J,CAC/C,CAAA,IAAI,CAACohK,qBAAqB,CAAC,CAAA,CAAE,CAAG,IAAI,CAAChE,SAAS,CAACn9J,CAAC,CAChD,IAAI,CAACqhK,uBAAuB,CAAC,CAAA,CAAE,CAAGjE,WAAAA,CAAYt9J,CAAC,CAC/C,IAAI,CAACuhK,uBAAuB,CAAC,CAAA,CAAE,CAAGjE,YAAYr9J,CAC9C,CAAA,IAAI,CAACshK,uBAAuB,CAAC,CAAA,CAAE,CAAGjE,WAAAA,CAAYp9J,CAAC,CAC/C,IAAI,CAACkhK,mBAAmB,CAACz7H,QAAQ,CAAC,IAAI,CAAC07H,qBAAqB,EAC5D,IAAI,CAACC,qBAAqB,CAAC37H,QAAQ,CAAC,IAAI,CAAC47H,uBAAuB,CAAA,CAChE,IAAI,CAACG,kBAAkB,CAAC/7H,QAAQ,CAAC,IAAI,CAACg8H,oBAAoB,CAAA,CAC1D,IAAI,CAACC,kBAAkB,CAACj8H,QAAQ,CAAC,IAAI,CAACk8H,oBAAoB,CAAA,CAC1D,IAAI,CAACC,sBAAsB,CAACn8H,QAAQ,CAAC,IAAI,CAACo7H,cAAc,CAACj3J,KAAK,EAC/D,CAEA04J,mBAAAA,CAAoBC,cAAc,CAAErrK,GAAG,CAAEC,GAAG,CAAE,CAC7CD,GAAAA,CAAIpU,IAAI,CAACy/K,cAAAA,CAAerrK,GAAG,CAAA,CAC3BA,GAAAA,CAAI0K,GAAG,CAAC,IAAI,CAACu7J,SAAS,CAAA,CACtBjmK,GAAAA,CAAI4J,GAAG,CAAC,IAAI,CAACs8J,WAAW,CAAA,CACxBlmK,GAAAA,CAAIoK,IAAI,CAACpK,GAAAA,CAAK,IAAI,CAACupK,KAAK,CAAA,CACxBvpK,GAAAA,CAAIxD,KAAK,EAAA,CACTyD,GAAAA,CAAIrU,IAAI,CAACy/K,cAAAA,CAAeprK,GAAG,CAAA,CAC3BA,IAAIyK,GAAG,CAAC,IAAI,CAACu7J,SAAS,EACtBhmK,GAAAA,CAAI2J,GAAG,CAAC,IAAI,CAACs8J,WAAW,CAAA,CACxBjmK,IAAImK,IAAI,CAACnK,IAAK,IAAI,CAACspK,KAAK,CAAA,CACxBtpK,IAAIsB,IAAI,EAAA,CACRvB,IAAIC,GAAG,CAACyI,KAAKmC,IAAI,CAAA,CACjB5K,GAAAA,CAAID,GAAG,CAAC,IAAI,CAACypK,WAAW,EACzB,CACA6B,cAAcC,OAAO,CAAE,CACtB,MAAM9F,UAAY,IAAI,CAAC6D,YAAY,CAAC7D,SAAS,CAC7C,MAAMwD,UAAAA,CAAa,IAAI,CAACC,WAAW,CACnC,IAAIxC,WAAa,CAAA,CACjB6E,OAAAA,CAAQhyK,OAAO,CAAEsqK,KAAAA,EAAAA,CAChB,MAAM2H,aAAe,CAAC,EAAE3H,KAAAA,CAAMt8H,IAAI,EAAI+mG,mBAAAA,CAAsBC,uBAAsB,CAAC,EACnF,MAAMk9B,kBAAAA,CAAqB5H,MAAM5/J,IAAI,GAAK2jI,gBAAkBi8B,KAAAA,CAAMG,eAAe,GAAK,CAAA,CACtF,GAAIH,KAAAA,CAAMnwK,OAAO,EAAImwK,KAAAA,CAAM5/J,IAAI,GAAKwjI,qBAAAA,EAAyBo8B,KAAAA,CAAM9S,gBAAgB,EAAI8S,MAAMrwC,SAAS,CAAG,GAAKg4C,YAAAA,EAAgB,CAACC,mBAAoB,CAClJ,GAAI/E,UAAAA,CAAajB,SAAAA,CAAW,CAC3B,IAAI4F,cAAAA,CACJ,GAAI3E,UAAAA,CAAauC,UAAAA,CAAWn8K,MAAM,CAAE,CACnCu+K,cAAAA,CAAiBpC,UAAU,CAACvC,UAAAA,EAC7B,MAAO,CACN2E,cAAAA,CAAiB,IAAItC,YAAAA,CACrBE,UAAAA,CAAWt7K,IAAI,CAAC09K,cAAAA,EACjB,CACAA,cAAAA,CAAexH,KAAK,CAAGA,KAAAA,CACvBA,KAAAA,CAAM6H,cAAc,CAAC5C,OAAAA,CAAAA,CACrBuC,cAAAA,CAAerrK,GAAG,CAACpU,IAAI,CAACk9K,QAAQ1uJ,MAAM,EAAA,CAAA,CACtCixJ,eAAeprK,GAAG,CAACrU,IAAI,CAACk9K,QAAQ5uJ,MAAM,EAAA,CACtCwsJ,CAAAA,UAAAA,GACD,CAED,CACD,CAAA,CACAuC,CAAAA,WAAWn8K,MAAM,CAAG45K,WACrB,CAEAiF,cAAAA,EAAiB,CAChB,MAAM1C,UAAAA,CAAa,IAAI,CAACC,WAAW,CACnC,MAAMlpK,IAAM,IAAI,CAACimK,SAAS,CAC1B,MAAMhmK,GAAAA,CAAM,IAAI,CAAC2rK,SAAS,CAC1B,GAAI3C,UAAAA,CAAWn8K,MAAM,CAAG,CAAA,CAAG,CAC1BkT,GAAAA,CAAIpU,IAAI,CAACq9K,UAAU,CAAC,EAAE,CAACjpK,GAAG,EAC1BC,GAAAA,CAAIrU,IAAI,CAACq9K,UAAU,CAAC,CAAA,CAAE,CAAChpK,GAAG,CAAA,CAC1B,IAAK,IAAIpT,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAKo8K,UAAAA,CAAWn8K,MAAM,CAAED,EAAAA,EAAAA,CAAM,CAC9CmT,GAAAA,CAAIA,GAAG,CAACipK,UAAU,CAACp8K,EAAAA,CAAG,CAACmT,GAAG,CAAA,CAC1BC,GAAAA,CAAIA,GAAG,CAACgpK,UAAU,CAACp8K,EAAAA,CAAG,CAACoT,GAAG,EAC3B,CACD,CAAA,KAAO,CACND,IAAIxM,GAAG,CAAC,EAAG,CAAA,CAAG,CAAA,CAAA,CACdyM,GAAAA,CAAIzM,GAAG,CAAC,CAAA,CAAG,CAAA,CAAG,GACf,CACA,IAAI,CAAC0yK,WAAW,CAACv7J,IAAI,CAAC1K,IAAKD,GAAAA,CAAAA,CAC3B,IAAI,CAACspK,YAAY,CAACvD,SAAS,CAAC/lK,GAAAA,CAAK,IAAI,CAACkmK,WAAW,EAClD,CACA2F,eAAejB,cAAc,CAAE,CAC9B,IAAI,CAACl/F,MAAM,CAACogG,IAAI,CAAC,CAAA,CAAA,CACjB,IAAI,CAACZ,QAAQ,CAACY,IAAI,CAAC,CAAA,CACnB,CAAA,IAAI,CAACxC,YAAY,CAACpC,iBAAiB,CAAG0D,eAAiBA,cAAAA,CAAe1D,iBAAiB,CAAG,KAAA,CAC1F,MAAM6E,KAAO,IAAI,CAACvC,MAAM,CAAC5gK,CAAC,CAC1B,MAAMojK,IAAAA,CAAO,IAAI,CAACxC,MAAM,CAAC1gK,CAAC,CAC1B,MAAM4iE,MAAAA,CAAS,IAAI,CAACA,MAAM,CAC1B,MAAMswD,MAAQ,IAAI,CAACotC,kBAAkB,CACrC,MAAM8B,SAAW,IAAI,CAACA,QAAQ,CAC9B,MAAMe,kBAAAA,CAAqB,IAAI,CAAC9C,iBAAiB,CAEjD,MAAMF,UAAAA,CAAa,IAAI,CAACC,WAAW,CACnC,IAAK,IAAIr8K,GAAK,CAAA,CAAGA,EAAAA,CAAKo8K,UAAAA,CAAWn8K,MAAM,CAAED,EAAAA,EAAAA,CAAM,CAC9C,MAAMw+K,cAAAA,CAAiBpC,UAAU,CAACp8K,EAAAA,CAAG,CACrC,MAAMg3K,KAAAA,CAAQwH,eAAexH,KAAK,CAClC,IAAI,CAACyF,YAAY,CAAC7C,YAAY,CAAC5C,KAAAA,CAAOh3K,EAAAA,CAAAA,CACtC,IAAI,CAACu+K,mBAAmB,CAACC,cAAAA,CAAgBzC,QAAAA,CAAUC,UACnD,MAAMqD,MAAAA,CAAStD,QAAAA,CAAShgK,CAAC,CACzB,MAAMujK,IAAAA,CAAOtD,SAASjgK,CAAC,CACvB,MAAMwjK,MAAAA,CAASxD,QAAAA,CAAS//J,CAAC,CACzB,MAAMwjK,IAAAA,CAAOxD,QAAAA,CAAShgK,CAAC,CACvB,MAAMyjK,OAAS1D,QAAAA,CAAS9/J,CAAC,CACzB,MAAMyjK,KAAO1D,QAAAA,CAAS//J,CAAC,CACvB,IAAK,IAAI1f,GAAK8iL,MAAAA,CAAQ9iL,EAAAA,EAAM+iL,IAAAA,CAAM/iL,EAAAA,EAAAA,CAAM,CACvC,IAAK,IAAIsgB,GAAK4iK,MAAAA,CAAQ5iK,EAAAA,EAAM6iK,KAAM7iK,EAAAA,EAAAA,CAAM,CACvC,IAAK,IAAIlB,GAAK4jK,MAAAA,CAAQ5jK,EAAAA,EAAM6jK,KAAM7jK,EAAAA,EAAAA,CAAM,CACvC,MAAMgkK,YAAAA,CAAepjL,EAAAA,CAAK2iL,IAAAA,EAAQriK,GAAKlB,EAAAA,CAAKwjK,IAAG,EAC/C,MAAMtvI,KAAAA,CAAQgvC,MAAM,CAAC8gG,YAAAA,CAAa,CAClC,GAAI9vI,MAAQs/F,KAAAA,CAAO,CAClBkvC,QAAQ,CAACe,kBAAAA,CAAqBO,aAAe9vI,KAAAA,CAAM,CAAG7vC,EACtD6+E,CAAAA,MAAM,CAAC8gG,YAAAA,CAAa,CAAG9vI,KAAAA,CAAQ,EAChC,CAGD,CACD,CACD,CACD,CACD,CAEAgK,MAAAA,CAAO6kI,OAAO,CAAEX,cAAAA,CAAiB,IAAI,CAAE,CACtC,IAAI,CAACD,YAAY,CAACC,cAAAA,CAAAA,CAClB,IAAI,CAACE,WAAW,EAAA,CAChB,IAAI,CAACQ,aAAa,CAACC,OAAAA,CAAAA,CACnB,IAAI,CAACI,cAAc,GACnB,IAAI,CAACE,cAAc,CAACjB,gBACpB,IAAI,CAACzE,cAAc,GACpB,CAEAsG,UAAW,CACV,IAAI,CAACrG,cAAc,GACpB,CA9PA,WAAA,CAAYrrI,MAAM,CAAE,CADpB4uI,sBAAAA,gBAAAA,CAAAA,MAAAA,CAEC,CAAA,IAAI,CAAC5uI,MAAM,CAAGA,MACd,CAAA,IAAI,CAACprC,IAAI,CAAG,UACZ,CAAA,IAAI,CAAC+8K,WAAW,CAAG,CACnB,CAAA,IAAI,CAACzG,SAAS,CAAG,IAAIv9J,IACrB,CAAA,IAAI,CAACkjK,SAAS,CAAG,IAAIljK,IACrB,CAAA,IAAI,CAACw9J,WAAW,CAAG,IAAIx9J,IACvB,CAAA,IAAI,CAAC8gK,MAAM,CAAG,IAAI9gK,KAAK,CAAA,CAAG,CAAA,CAAG,EAC7B,CAAA,IAAI,CAAC+gK,WAAW,CAAG,IAAI/gK,IACvB,CAAA,IAAI,CAAC6gK,KAAK,CAAG,IAAI,CAACC,MAClB,CAAA,IAAI,CAACL,iBAAiB,CAAG,CACzB,CAAA,IAAI,CAACD,WAAW,CAAG,EAAE,CACrB,IAAI,CAACA,WAAW,CAACv7K,IAAI,CAAC,IAAIo7K,YAAAA,CAC1B,CAAA,IAAI,CAACO,YAAY,CAAG,IAAI9D,aAAazqI,MAAAA,CAAAA,CACrC,IAAI,CAAC6uI,gBAAgB,CAAC7uI,MAAAA,EACvB,CAgPD,EAEA,IAAI4xI,YAAAA,CAAe,kBACnB,IAAItgL,MAAAA,CAAS,CACZugL,WAAAA,CAAYvkK,MAAM,CAAA,CACjB,MAAMlc,EAAIC,IAAAA,CAAKud,IAAI,CAACvd,IAAAA,CAAKC,MAAM,IAC/B,MAAMwgL,KAAAA,CAAQzgL,KAAKC,MAAM,EAAA,CAAK,EAAID,IAAAA,CAAKyT,EAAE,CACzCwI,MAAAA,CAAOO,CAAC,CAAGzc,CAAAA,CAAIC,IAAAA,CAAKmc,GAAG,CAACskK,KAAAA,CACxBxkK,CAAAA,OAAOQ,CAAC,CAAG1c,EAAIC,IAAAA,CAAKqc,GAAG,CAACokK,KAAAA,EACzB,EACAC,wBAAAA,CAAyBzkK,MAAM,CAAEnW,KAAK,CAAE2V,SAAS,CAAA,CAChD,MAAMglK,KAAAA,CAAQ36K,KAAAA,CAAQy6K,aACtB,MAAMxgL,CAAAA,CAAIC,KAAKud,IAAI,CAACzX,MAAQ2V,SAAAA,CAC5BQ,CAAAA,MAAAA,CAAOO,CAAC,CAAGzc,CAAAA,CAAIC,IAAAA,CAAKmc,GAAG,CAACskK,KAAAA,CACxBxkK,CAAAA,MAAAA,CAAOQ,CAAC,CAAG1c,CAAAA,CAAIC,KAAKqc,GAAG,CAACokK,OACzB,CAAA,CACAE,wBAAAA,CAAyB1kK,MAAM,CAAEnW,KAAK,CAAE2V,SAAS,CAAE+W,KAAAA,CAAQ,CAAC,CAAE7sB,GAAAA,CAAM,CAAC,EACpE6sB,KAAAA,CAAQ,CAAA,CAAI,CAAA,CAAIA,KAAAA,CAChB7sB,IAAM,CAAA,CAAI,CAAA,CAAIA,IACd,MAAMyW,EAAAA,CAAK7I,KAAKY,IAAI,CAACqe,KAAAA,CAAO7sB,GAAAA,CAAKG,MAAQ2V,SAAAA,CAAAA,CACzC,MAAMI,OAAS7b,IAAAA,CAAKud,IAAI,CAAC,CAAA,CAAInB,EAAAA,CAAKA,EAAAA,CAAAA,CAClC,MAAMqkK,MAAQF,YAAAA,CAAez6K,KAC7BmW,CAAAA,MAAAA,CAAOO,CAAC,CAAGxc,IAAAA,CAAKmc,GAAG,CAACskK,KAAAA,CAAAA,CAAS5kK,MAC7BI,CAAAA,MAAAA,CAAOQ,CAAC,CAAGL,EACXH,CAAAA,MAAAA,CAAOS,CAAC,CAAG1c,IAAAA,CAAKqc,GAAG,CAACokK,KAAAA,CAAAA,CAAS5kK,OAC9B,CAAA,CACA+kK,cAAAA,CAAengL,EAAE,CAAA,CAChB,IAAIya,IAAAA,CAAQza,CAAAA,EAAAA,EAAM,EAAA,CAAKA,KAAO,EAAC,IAAO,EACtCya,IAAAA,CAAQ,CAACA,CAAAA,IAAAA,CAAO,UAAS,GAAM,CAAA,CAAKA,CAAAA,IAAAA,CAAO,UAAS,IAAO,CAAA,IAAO,CAAA,CAClEA,IAAAA,CAAO,CAAEA,CAAAA,IAAAA,CAAO,UAAQ,GAAM,CAAA,CAAI,CAACA,IAAAA,CAAO,UAAS,IAAO,CAAA,IAAO,CAAA,CACjEA,IAAAA,CAAO,CAAEA,CAAAA,IAAAA,CAAO,SAAQ,GAAM,CAAA,CAAKA,CAAAA,IAAAA,CAAO,UAAS,IAAO,CAAA,IAAO,CAAA,CACjEA,IAAAA,CAAO,CAAEA,CAAAA,IAAAA,CAAO,QAAO,GAAM,CAAA,CAAI,CAACA,IAAAA,CAAO,UAAS,IAAO,CAAA,IAAO,CAAA,CAChE,OAAOA,IAAAA,CAAO,qBACf,CACD,CAAA,CAEA,IAAI2lK,YAAc,CACjB,QAAA,CAAU,eACV,MAAA,CAAQ,aAAA,CACR,MAAA,CAAQ,YAAA,CACR,OAAQ,YAAA,CACR,MAAA,CAAQ,aACR,IAAA,CAAM,gBAAA,CACN,MAAO,iBACR,CAAA,CACA,IAAIC,WAAAA,CAAc,CACjB,QAAA,CAAU,cAAA,CACV,OAAQ,aAAA,CACR,MAAA,CAAQ,aACR,MAAA,CAAQ,YAAA,CACR,MAAA,CAAQ,YACT,EACA,IAAIC,UAAAA,CAAa,MAEhB,OAAOC,UAAAA,CAAWvqI,QAAQ,CAAE,CAC3B,OAAOoqI,WAAW,CAACpqI,QAAAA,CAAS,EAAI,aACjC,CACA,OAAOwqI,WAAWxqI,QAAQ,CAAE,CAC3B,OAAOqqI,WAAW,CAACrqI,QAAAA,CAAS,EAAI,aACjC,CACD,CAAA,CAEA,IAAIyqI,iBAAAA,CAAqB5oI,UAAAA,EAAAA,CACxB,OAAQA,YACP,KAAK/R,sBAAAA,CACJ,OAAO,SACR,CAAA,KAAKE,6BACJ,OAAO,YACR,CAAA,QACC,OAAO,UACT,CACD,CAAA,CACA,IAAI06I,kBAAAA,CAAqB,CAAC74K,MAAOm7C,MAAAA,CAAQp1C,OAAAA,GAAAA,CACxC,GAAI/F,KAAAA,EAAS,EAAG,CACfm7C,MAAM,CAACp1C,OAAAA,CAAU,CAAA,CAAE,CAAG,CACtBo1C,CAAAA,MAAM,CAACp1C,QAAU,CAAA,CAAE,CAAG,CACtBo1C,CAAAA,MAAM,CAACp1C,OAAAA,CAAU,CAAA,CAAE,CAAG,CACtBo1C,CAAAA,MAAM,CAACp1C,QAAU,CAAA,CAAE,CAAG,EACvB,CAAA,KAAO,GAAI/F,KAAAA,EAAS,CAAA,CAAG,CACtBm7C,MAAM,CAACp1C,QAAU,CAAA,CAAE,CAAG,GACtBo1C,CAAAA,MAAM,CAACp1C,OAAAA,CAAU,EAAE,CAAG,CACtBo1C,CAAAA,MAAM,CAACp1C,QAAU,CAAA,CAAE,CAAG,CACtBo1C,CAAAA,MAAM,CAACp1C,OAAAA,CAAU,CAAA,CAAE,CAAG,EACvB,CAAA,KAAO,CACN,IAAI+yK,IAAAA,CAAO,CAAA,CAAI94K,KAAAA,CAAQ,EACvB,IAAI+4K,IAAAA,CAAO,IAAM/4K,KAAAA,CAAQ,CAAA,CACzB,IAAIg5K,IAAAA,CAAO,KAAA,CAAQh5K,KAAAA,CAAQ,CAAA,CAC3B,MAAMi5K,IAAAA,CAAO,QAAA,CAAWj5K,MAAQ,CAAA,CAChC84K,IAAAA,EAAQC,KAAO,GAAA,CACfA,IAAAA,EAAQC,IAAAA,CAAO,GAAA,CACfA,MAAQC,IAAAA,CAAO,GACf99H,CAAAA,MAAM,CAACp1C,QAAU,CAAA,CAAE,CAAGrO,IAAAA,CAAK4T,GAAG,CAAC,GAAA,CAAK5T,IAAAA,CAAKoQ,KAAK,CAACgxK,IAAAA,CAAO,KACtD39H,CAAAA,MAAM,CAACp1C,OAAAA,CAAU,EAAE,CAAGrO,IAAAA,CAAK4T,GAAG,CAAC,GAAA,CAAK5T,KAAKoQ,KAAK,CAACixK,IAAAA,CAAO,GAAA,CAAA,CACtD59H,CAAAA,MAAM,CAACp1C,QAAU,CAAA,CAAE,CAAGrO,KAAK4T,GAAG,CAAC,GAAA,CAAK5T,IAAAA,CAAKoQ,KAAK,CAACkxK,IAAAA,CAAO,KACtD79H,CAAAA,MAAM,CAACp1C,OAAAA,CAAU,CAAA,CAAE,CAAGrO,IAAAA,CAAK4T,GAAG,CAAC,GAAA,CAAK5T,KAAKoQ,KAAK,CAACmxK,KAAO,GAAA,CAAA,EACvD,CACD,CAAA,CACA,IAAIC,YAAc,OAACjsI,EAAAA,CAClB,MAAM22H,UAAAA,CAAa32H,OAAAA,CAAQ70C,MAAM,CACjC,MAAMyf,CAAAA,CAAIngB,IAAAA,CAAK4T,GAAG,CAACs4J,UAAAA,CAAY,KAC/B,MAAMz8I,EAAAA,CAAKzvB,KAAKmV,IAAI,CAAC+2J,UAAAA,CAAa/rJ,CAAAA,CAAAA,CAClC,MAAMhG,KAAAA,CAAQ,IAAI5M,WAAW4S,CAAAA,CAAIsP,EAAAA,CAAK,GACtC,IAAI7nB,GAAAA,CAAM,CAAA,CACV,IAAK,IAAInH,EAAAA,CAAK,CAAA,CAAGA,GAAKyrK,UAAAA,CAAYzrK,EAAAA,EAAM,EAAG,CAC1C0gL,kBAAAA,CAAmB5rI,OAAO,CAAC90C,GAAK,CAAA,CAAE,CAAG,GAAM,EAAA,CAAK0Z,KAAAA,CAAOvS,IAAM,CAAA,CAAA,CAC7Du5K,kBAAAA,CAAmB5rI,OAAO,CAAC90C,GAAK,CAAA,CAAE,CAAG,GAAM,EAAA,CAAK0Z,KAAAA,CAAOvS,IAAM,CAAA,CAAA,CAC7Du5K,kBAAAA,CAAmB5rI,OAAO,CAAC90C,GAAK,CAAA,CAAE,CAAG,GAAM,EAAA,CAAK0Z,KAAAA,CAAOvS,IAAM,CAAA,CAAA,CAC7Du5K,kBAAAA,CAAmB5rI,OAAO,CAAC90C,EAAAA,CAAK,EAAE,CAAG,CAAA,CAAG0Z,MAAOvS,GAAAA,CAAM,EAAA,CAAA,CACrDA,KAAO,GACR,CACA,OAAO,CACN0e,MAAOnG,CAAAA,CACPoG,MAAAA,CAAQkJ,GACRrQ,IAAAA,CAAMjF,KACP,CACD,CAAA,CACA,IAAIsnK,qBAAAA,CAAwB,CAACC,OAAQ1kL,EAAAA,CAAIof,EAAAA,CAAIulK,iBAC5C,MAAMC,GAAAA,CAAMxlK,GAAK,CAAA,CAAIpc,IAAAA,CAAKyT,EAAE,CAC5B,MAAMouK,QAAAA,CAAW7hL,IAAAA,CAAK2U,GAAG,CAAC,CAAA,CAAI3X,GAAI,CAAA,EAAK2kL,aAAAA,CAAgB,CAAA,GACvD,MAAMG,QAAAA,CAAW9hL,KAAKud,IAAI,CAAC,EAAIskK,QAAAA,CAAWA,QAAAA,CAAAA,CAC1CH,MAAAA,CAAOt6K,GAAG,CAACpH,IAAAA,CAAKmc,GAAG,CAACylK,GAAAA,CAAAA,CAAOE,QAAAA,CAAU9hL,KAAKqc,GAAG,CAACulK,GAAAA,CAAAA,CAAOE,QAAAA,CAAUD,UAAUhhL,SAAS,GACnF,EACA,IAAIkhL,uBAAAA,CAA0B,CAACL,MAAAA,CAAQ1kL,EAAAA,CAAIof,EAAAA,GAAAA,CAC1C,MAAMwlK,IAAMxlK,EAAAA,CAAK,CAAA,CAAIpc,KAAKyT,EAAE,CAC5B,MAAMouK,QAAAA,CAAW7hL,IAAAA,CAAKud,IAAI,CAAC,EAAIvgB,EAAAA,CAAAA,CAC/B,MAAM8kL,SAAW9hL,IAAAA,CAAKud,IAAI,CAACvgB,EAAAA,CAAAA,CAC3B0kL,MAAAA,CAAOt6K,GAAG,CAACpH,KAAKmc,GAAG,CAACylK,KAAOE,QAAAA,CAAU9hL,IAAAA,CAAKqc,GAAG,CAACulK,GAAAA,CAAAA,CAAOE,QAAAA,CAAUD,QAAAA,CAAAA,CAAUhhL,SAAS,GACnF,CAAA,CACA,IAAImhL,mBAAAA,CAAsB,CAACN,OAAQ1kL,EAAAA,CAAIof,EAAAA,CAAIhf,CAAAA,GAAAA,CAC1C,MAAMwkL,IAAMxlK,EAAAA,CAAK,CAAA,CAAIpc,KAAKyT,EAAE,CAC5B,MAAMouK,QAAAA,CAAW7hL,IAAAA,CAAKud,IAAI,CAAC,CAAC,CAAA,CAAIvgB,EAAC,GAAM,EAAI,CAACI,CAAAA,CAAIA,CAAAA,CAAI,CAAA,EAAKJ,EAAC,GAC1D,MAAM8kL,QAAAA,CAAW9hL,KAAKud,IAAI,CAAC,CAAA,CAAIskK,QAAAA,CAAWA,UAC1CH,MAAAA,CAAOt6K,GAAG,CAACpH,IAAAA,CAAKmc,GAAG,CAACylK,GAAAA,CAAAA,CAAOE,QAAAA,CAAU9hL,IAAAA,CAAKqc,GAAG,CAACulK,GAAAA,CAAAA,CAAOE,QAAAA,CAAUD,UAAUhhL,SAAS,GACnF,EACA,IAAIohL,KAAAA,CAAQ,CAACC,GAAAA,CAAKC,eAAAA,GAAAA,CACjB,MAAM/kL,CAAAA,CAAI8kL,GAAAA,CAAMC,gBAChB,MAAM34B,CAAAA,CAAI24B,iBAAmB,CAAA,CAAID,GAAAA,CAAMA,GAAAA,CAAM9kL,EAAIA,CAAAA,CAAAA,CACjD,OAAOosJ,CAAAA,CAAIA,CAAAA,EAAK,CAAA,CAAIxpJ,IAAAA,CAAKyT,EAAC,CAC3B,CAAA,CACA,IAAI2uK,qBAAuB,CAAClW,UAAAA,CAAYyV,iBACvC,MAAMU,CAAAA,CAAI,IAAI/lK,IAAAA,CACd,MAAM9b,MAAAA,CAAS,EAAE,CACjB,IAAK,IAAIC,GAAK,CAAA,CAAGA,EAAAA,CAAKyrK,UAAAA,CAAY,EAAEzrK,GAAI,CACvCghL,qBAAAA,CAAsBY,EAAG5hL,EAAAA,CAAKyrK,UAAAA,CAAYjsK,OAAO2gL,cAAc,CAACngL,EAAAA,CAAAA,CAAKkhL,aAAAA,CAAAA,CACrEnhL,OAAOe,IAAI,CAAC8gL,EAAE7lK,CAAC,CAAE6lK,EAAE5lK,CAAC,CAAE4lK,CAAAA,CAAE3lK,CAAC,CAAE,CAAA,EAC5B,CACA,OAAOlc,MACR,CAAA,CACA,IAAI8hL,sBAAAA,CAAyB,CAACpW,UAAAA,CAAYqW,iBAAAA,GAAAA,CACzC,MAAMC,eAAAA,CAAkBD,iBAAAA,CAAoBrW,WAC5C,MAAMmW,CAAAA,CAAI,IAAI/lK,IAAAA,CACd,MAAM9b,MAAAA,CAAS,EAAE,CACjB,IAAK,IAAIC,GAAK,CAAA,CAAGA,EAAAA,CAAKyrK,WAAY,EAAEzrK,EAAAA,CAAI,CACvCshL,uBAAAA,CAAwBM,EAAG5hL,EAAAA,CAAKyrK,UAAAA,CAAYjsK,OAAO2gL,cAAc,CAACngL,KAClE,MAAMgiL,GAAAA,CAAMJ,CAAAA,CAAE3lK,CAAC,CAAG1c,IAAAA,CAAKyT,EAAE,CACzB,MAAMg8B,QAAAA,CAAW,GAAMzvC,IAAAA,CAAK6U,IAAI,CAAC2tK,eAAAA,CAAkBC,KACnDjiL,MAAAA,CAAOe,IAAI,CAAC8gL,CAAAA,CAAE7lK,CAAC,CAAE6lK,CAAAA,CAAE5lK,CAAC,CAAE4lK,CAAAA,CAAE3lK,CAAC,CAAE+yB,QAAAA,EAC5B,CACA,OAAOjvC,MACR,EACA,IAAIkiL,kBAAAA,CAAqB,CACxB,IAAA,CAAM,CACL,GAAA,CAAK,EAAA,CACL,IAAK,EAAA,CACL,IAAA,CAAM,GACN,KAAA,CAAO,EAAA,CACP,KAAA,CAAO,EACR,EACA,IAAA,CAAM,CACL,IAAK,EAAA,CACL,GAAA,CAAK,GACL,IAAA,CAAM,EAAA,CACN,KAAA,CAAO,EAAA,CACP,MAAO,EACR,CAAA,CACA,MAAO,CACN,GAAA,CAAK,IACL,GAAA,CAAK,GAAA,CACL,KAAM,GAAA,CACN,KAAA,CAAO,IACP,KAAA,CAAO,GACR,EACA,MAAA,CAAQ,CACP,IAAK,IAAA,CACL,GAAA,CAAK,IAAA,CACL,IAAA,CAAM,KACN,KAAA,CAAO,IAAA,CACP,MAAO,IACR,CACD,EACA,IAAIC,qBAAAA,CAAwB,CAACzW,UAAAA,CAAYyV,iBACxC,MAAMiB,KAAAA,CAAQF,kBAAkB,CAACxW,UAAAA,CAAW,CAC5C,OAAO0W,KAAAA,EAASA,KAAK,CAACjB,cAAc,EAAIzV,UACzC,EACA,IAAI2W,kBAAAA,CAAqB,CAAC3W,UAAAA,CAAYyV,aAAAA,CAAeY,iBAAAA,GAAAA,CACpD,MAAMC,gBAAkBD,iBAAAA,CAAoBrW,UAAAA,CAC5C,MAAM4W,SAAAA,CAAY,CAAA,CAAI9iL,KAAK6U,IAAI,CAAC8sK,aAAAA,CAAAA,CAAiB,EAAA,CACjD,MAAMvkL,CAAAA,CAAI0lL,SAAAA,CAAYA,UACtB,MAAMT,CAAAA,CAAI,IAAI/lK,IAAAA,CACd,MAAMymK,CAAAA,CAAI,IAAIzmK,KACd,MAAM0mK,CAAAA,CAAI,IAAI1mK,IAAAA,CAAK,CAAA,CAAG,EAAG,CAAA,CAAA,CACzB,MAAM9b,MAAAA,CAAS,EAAE,CACjB,MAAMyiL,eAAAA,CAAkBN,sBAAsBzW,UAAAA,CAAYyV,aAAAA,CAAAA,CAC1D,IAAK,IAAIlhL,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAKwiL,gBAAiB,EAAExiL,EAAAA,CAAI,CAC5CuhL,mBAAAA,CAAoBK,CAAAA,CAAG5hL,GAAKwiL,eAAAA,CAAiBhjL,MAAAA,CAAO2gL,cAAc,CAACngL,IAAKrD,CAAAA,CAAAA,CACxE,MAAM8kL,IAAMG,CAAAA,CAAE3lK,CAAC,CACfqmK,CAAAA,CAAE37K,GAAG,CAACi7K,CAAAA,CAAE7lK,CAAC,CAAE6lK,CAAAA,CAAE5lK,CAAC,CAAE4lK,CAAAA,CAAE3lK,CAAC,CAAA,CAAEzG,SAAS,CAAC,CAAA,CAAIisK,KAAK5jK,GAAG,CAAC0kK,GAC5C,GAAID,CAAAA,CAAErmK,CAAC,CAAG,CAAA,CAAG,CACZ,MAAM+lK,IAAMR,KAAAA,CAAMjiL,IAAAA,CAAK4T,GAAG,CAAC,CAAA,CAAGsuK,KAAM9kL,CAAAA,CAAAA,CAAK,CAAA,CAAI,IAAA,CAC7C,MAAMqyC,SAAW,EAAA,CAAMzvC,IAAAA,CAAK6U,IAAI,CAAC2tK,eAAAA,CAAkBC,KACnDjiL,MAAAA,CAAOe,IAAI,CAACwhL,CAAAA,CAAEvmK,CAAC,CAAEumK,CAAAA,CAAEtmK,CAAC,CAAEsmK,CAAAA,CAAErmK,CAAC,CAAE+yB,QAAAA,EAC5B,CACD,CACA,MAAOjvC,MAAAA,CAAOE,MAAM,CAAGwrK,UAAAA,CAAa,CAAA,CAAG,CACtC1rK,MAAAA,CAAOe,IAAI,CAAC,CAAA,CAAG,CAAA,CAAG,EAAG,CAAA,EACtB,CACA,OAAOf,MACR,CAAA,CACA,IAAI0iL,gBAAAA,CAAmB,CAACv0I,MAAAA,CAAQprC,IAAAA,CAAMgyC,WACrC,MAAM4tI,aAAAA,CAAgB3B,YAAYjsI,OAAAA,CAAAA,CAClC,OAAO,IAAItE,OAAAA,CAAQtC,MAAAA,CAAQ,CAC1BprC,IAAAA,CACA+iB,MAAO68J,aAAAA,CAAc78J,KAAK,CAC1BC,MAAAA,CAAQ48J,aAAAA,CAAc58J,MAAM,CAC5B4pB,OAAAA,CAAS,KAAA,CACTkB,SAAAA,CAAWjX,eACXkX,SAAAA,CAAWlX,cAAAA,CACXgX,OAAQ,CAAC+xI,aAAAA,CAAc/jK,IAAI,CAC5B,CAAA,CACD,CAAA,CACA,IAAIgkK,WAAAA,CAAc,KAAA,CAKjBt1I,SAAU,CACT,GAAI,IAAI,CAACu1I,cAAc,CAAE,CACxB,IAAI,CAACt8K,GAAG,CAACoG,OAAO,CAAC,CAAC7E,KAAAA,CAAOE,GAAAA,GAAAA,CACxBF,KAAAA,CAAMwlC,OAAO,GACd,CAAA,EACD,CACD,CACA3wC,GAAAA,CAAIqL,GAAG,CAAE86K,QAAQ,CAAE,CAClB,GAAI,CAAC,IAAI,CAACv8K,GAAG,CAACS,GAAG,CAACgB,GAAAA,CAAAA,CAAM,CACvB,MAAMhI,MAAAA,CAAS8iL,WACf,IAAI,CAACv8K,GAAG,CAACK,GAAG,CAACoB,GAAAA,CAAKhI,MAAAA,CAAAA,CAClB,OAAOA,MACR,CACA,OAAO,IAAI,CAACuG,GAAG,CAAC5J,GAAG,CAACqL,GAAAA,CACrB,CAlBA,WAAA,CAAY66K,eAAiB,IAAI,CAAE,CAGnCt8K,gBAAAA,CAAAA,IAAAA,CAAAA,KAAAA,CAAsB,IAAI8B,GAAAA,CAFzB,CAAA,IAAI,CAACw6K,cAAc,CAAGA,eACvB,CAiBD,CAAA,CACA,IAAIE,aAAe,IAAIH,WAAAA,CAAY,KAAA,CAAA,CACnC,IAAII,aAAe,IAAIt0I,WAAAA,CACvB,IAAIu0I,gBAAAA,CAAmB,CAAC90I,OAAQnmC,GAAAA,CAAKk7K,aAAAA,GAAAA,CACpC,MAAM3qI,KAAAA,CAAQyqI,aAAarmL,GAAG,CAACwxC,OAAQ,IAAA,CACtC,OAAO,IAAIy0I,WACZ,CAAA,CAAA,CACA,OAAOrqI,KAAAA,CAAM57C,GAAG,CAACqL,GAAAA,CAAK,KACrB,OAAO06K,gBAAAA,CAAiBv0I,OAAQnmC,GAAAA,CAAK+6K,YAAAA,CAAapmL,GAAG,CAACqL,IAAKk7K,aAAAA,CAAAA,CAC5D,CAAA,CACD,EACA,IAAIC,yBAAAA,CAA4B,CAACh1I,MAAAA,CAAQu9H,UAAAA,CAAYqW,qBACpD,MAAM/5K,GAAAA,CAAM,CAAC,gBAAgB,EAAE0jK,WAAW,CAAC,EAAEqW,kBAAkB,CAAC,CAChE,OAAOkB,gBAAAA,CAAiB90I,OAAQnmC,GAAAA,CAAK,IAAA,CACpC,OAAO85K,sBAAAA,CAAuBpW,UAAAA,CAAYqW,kBAC3C,CAAA,CACD,CAAA,CACA,IAAIqB,uBAAAA,CAA0B,CAACj1I,MAAAA,CAAQu9H,UAAAA,CAAYyV,iBAClD,MAAMn5K,GAAAA,CAAM,CAAC,cAAc,EAAE0jK,UAAAA,CAAW,CAAC,EAAEyV,aAAAA,CAAc,CAAC,CAC1D,OAAO8B,gBAAAA,CAAiB90I,OAAQnmC,GAAAA,CAAK,IAAA,CACpC,OAAO45K,oBAAAA,CAAqBlW,WAAYyV,aAAAA,CACzC,CAAA,CACD,EACA,IAAIkC,qBAAAA,CAAwB,CAACl1I,MAAAA,CAAQu9H,UAAAA,CAAYyV,aAAAA,CAAeY,iBAAAA,GAAAA,CAC/D,MAAM/5K,GAAAA,CAAM,CAAC,YAAY,EAAE0jK,UAAAA,CAAW,CAAC,EAAEyV,aAAAA,CAAc,CAAC,EAAEY,kBAAkB,CAAC,CAC7E,OAAOkB,gBAAAA,CAAiB90I,MAAAA,CAAQnmC,IAAK,IAAA,CACpC,OAAOq6K,kBAAAA,CAAmB3W,UAAAA,CAAYyV,cAAeY,iBAAAA,CACtD,CAAA,CACD,EACA,SAASuB,gBAAAA,CAAiB5sI,MAAM,CAAE73C,OAAO,CAAE4S,QAAAA,CAAW,EAAE,CAAA,CACvD,MAAM8xK,UAAAA,CAAa9xK,QAAAA,CAAS8xK,UAAU,EAAI,CAAA,CAC1C,MAAMC,UAAAA,CAAa,CAAC/xK,QAAAA,CAASylC,IAAI,EAAEh7B,CAAAA,EAAKrd,QAAQinB,KAAI,EAAKy9J,UAAAA,CAAa,EACtE,MAAME,WAAAA,CAAc,CAAChyK,QAAAA,CAASylC,IAAI,EAAEv3B,CAAAA,EAAK9gB,OAAAA,CAAQknB,MAAM,EAAIw9J,UAAAA,CAAa,EACxE,GAAIC,UAAAA,CAAa,GAAKC,WAAAA,CAAc,CAAA,CAAG,CACtC,OAAO,KACR,CACA,MAAMC,UAAY,CACjB,MAAA,CAAQ,YACR,SAAA,CAAW,4BAAA,CACX,OAAA,CAAS,4BAAA,CACT,MAAO,kBACR,CAAA,CACA,MAAMvC,aAAAA,CAAgB1vK,QAAAA,CAASpF,cAAc,CAAC,eAAA,CAAA,CAAmBoF,QAAAA,CAAS0vK,aAAa,CAAG,CAAA,CAC1F,MAAM9qI,KAAO5kC,QAAAA,CAASpF,cAAc,CAAC,MAAA,CAAA,CAAUoF,QAAAA,CAAS4kC,IAAI,CAAG,KAC/D,MAAMstI,YAAAA,CAAelyK,SAASpF,cAAc,CAAC,gBAAkBoF,QAAAA,CAASkyK,YAAY,CAAGxC,aAAAA,GAAkB,CAAA,CAAI,OAAS,OAAA,CACtH,MAAMyC,YAAcF,SAAS,CAACC,aAAa,EAAI,WAAA,CAC/C,MAAME,gBAAAA,CAAmBD,YAAYpjL,UAAU,CAAC,oBAChD,MAAMggL,UAAAA,CAAaD,WAAWC,UAAU,CAAC9pI,MAAAA,CAAOT,QAAQ,EACxD,MAAMwqI,UAAAA,CAAaF,WAAWE,UAAU,CAAC5hL,QAAQo3C,QAAQ,CAAA,CACzD,MAAM6tI,UAAAA,CAAa,CAAC,MAAM,EAAEpD,kBAAkBhqI,MAAAA,CAAOoB,UAAU,EAAE,CAAC,CAClE,MAAMisI,UAAAA,CAAa,CAAC,YAAY,EAAErD,kBAAkB7hL,OAAAA,CAAQi5C,UAAU,EAAE,CAAC,CACzE,MAAM4zH,UAAAA,CAAaj6J,SAASpF,cAAc,CAAC,cAAgBoF,QAAAA,CAASi6J,UAAU,CAAG,IAAA,CACjF,MAAMsY,SAAAA,CAAY,CAAC,gBAAgB,EAAEJ,WAAAA,CAAY,CAAC,EAAEpD,UAAAA,CAAW,CAAC,EAAEC,UAAAA,CAAW,CAAC,EAAEqD,WAAW,CAAC,EAAEC,WAAW,CAAC,EAAErY,WAAW,CAAC,CACxH,MAAMv9H,MAAAA,CAASuI,OAAOvI,MAAM,CAC5B,IAAIsb,MAAAA,CAAS49F,iBAAAA,CAAkBl5G,QAAQ87G,eAAe,CAAC+5B,SAAAA,CAAAA,CACvD,GAAI,CAACv6H,MAAAA,CAAQ,CACZ,MAAM20B,OAAAA,CAA0B,IAAI/1E,IACpC,GAAIw7K,gBAAAA,CAAkBzlG,OAAAA,CAAQx3E,GAAG,CAAC,iBAAA,CAAmB,EAAA,CAAA,CACrD,GAAI8vC,MAAAA,CAAO9G,OAAO,CAAEwuC,OAAAA,CAAQx3E,GAAG,CAAC,gBAAA,CAAkB,IAClDw3E,OAAAA,CAAQx3E,GAAG,CAAC,gBAAA,CAAkBg9K,WAAAA,CAAAA,CAC9BxlG,QAAQx3E,GAAG,CAAC,eAAA,CAAiB45K,UAAAA,CAAAA,CAC7BpiG,QAAQx3E,GAAG,CAAC,gBAAiB65K,UAAAA,CAAAA,CAC7BriG,OAAAA,CAAQx3E,GAAG,CAAC,eAAA,CAAiBk9K,UAAAA,CAAAA,CAC7B1lG,OAAAA,CAAQx3E,GAAG,CAAC,eAAA,CAAiBm9K,YAC7B3lG,OAAAA,CAAQx3E,GAAG,CAAC,eAAA,CAAiB8kK,UAAAA,CAAAA,CAC7BttF,OAAAA,CAAQx3E,GAAG,CAAC,oBAAA,CAAsBpH,IAAAA,CAAK4U,KAAK,CAAC5U,IAAAA,CAAKud,IAAI,CAAC2uJ,UAAAA,CAAAA,CAAAA,CAAa11J,OAAO,CAAC,IAC5EyzC,MAAAA,CAASqgG,WAAAA,CAAY9mD,YAAY,CAAC70D,MAAAA,CAAQ,CACzC+7G,UAAAA,CAAY85B,SAAAA,CACZ9oH,WAAY,CAAE4nB,eAAAA,CAAiB/gD,iBAAkB,CAAA,CACjDqoH,WAAAA,CAAa,cACbE,aAAAA,CAAe,aAAA,CACfplE,gBAAiB9G,OAClB,CAAA,EACD,CACAjwC,MAAAA,CAAOie,aAAa,CAAC9P,UAAAA,CAAWkC,OAAO,CAAA,CACvC,MAAMylI,eAAiB91I,MAAAA,CAAOzmC,KAAK,CAAC6mC,OAAO,CAACmI,MAAAA,CAAO9G,OAAO,CAAG,YAAA,CAAe,WAAA,CAAA,CAC5Eq0I,eAAetiI,QAAQ,CAACjL,MAAAA,CAAAA,CACxB,MAAMwtI,eAAiB/1I,MAAAA,CAAOzmC,KAAK,CAAC6mC,OAAO,CAAC,UAC5C,MAAM41I,UAAAA,CAAah2I,MAAAA,CAAOzmC,KAAK,CAAC6mC,OAAO,CAAC,SACxC,GAAIg1I,UAAAA,CAAa,EAAG,CACnBY,UAAAA,CAAWxiI,QAAQ,CAAC,CACnB,CAAC6hI,WAAaD,UAAAA,CAAa,CAAA,EAAKC,UAAAA,CAC/BC,CAAAA,WAAAA,CAAcF,WAAa,CAAA,EAAKE,YACjC,CAACF,UAAAA,CAAaC,WACd,CAACD,UAAAA,CAAaE,WAAAA,CACd,EACF,MAAO,CACNU,UAAAA,CAAWxiI,QAAQ,CAAC,CAAC,EAAG,CAAA,CAAG,CAAA,CAAG,EAAE,EACjC,CACA,MAAMpvC,MAAAA,CAAS,CACd,EACA1T,OAAAA,CAAQinB,KAAK,CAAGjnB,OAAAA,CAAQknB,MAAM,EAAIlnB,QAAQ+wC,OAAO,CAAG,EAAI,CAAA,CAAA,CACxD8G,OAAO5wB,KAAK,CAAG4wB,MAAAA,CAAO3wB,MAAM,EAAI2wB,MAAAA,CAAO9G,OAAO,CAAG,CAAA,CAAI,CAAA,CAAA,CACrD,CACD,GAAIi0I,gBAAAA,CAAkB,CACrB,MAAM9B,iBAAAA,CAAoBrrI,OAAO5wB,KAAK,CAAG4wB,OAAO3wB,MAAM,EAAI2wB,MAAAA,CAAO9G,OAAO,CAAG,CAAA,CAAI,CAAA,CAAA,CAC/E,MAAMw0I,WAAaT,YAAAA,GAAiB,KAAA,CAAQN,qBAAAA,CAAsBl1I,MAAAA,CAAQu9H,WAAYyV,aAAAA,CAAeY,iBAAAA,CAAAA,CAAqB4B,eAAiB,SAAA,CAAYR,yBAAAA,CAA0Bh1I,OAAQu9H,UAAAA,CAAYqW,iBAAAA,CAAAA,CAAqBqB,uBAAAA,CAAwBj1I,MAAAA,CAAQu9H,WAAYyV,aAAAA,CAAAA,CACtQhzI,MAAAA,CAAOzmC,KAAK,CAAC6mC,OAAO,CAAC,YAAA,CAAA,CAAcoT,QAAQ,CAACyiI,UAAAA,CAAAA,CAC5Cj2I,OAAOzmC,KAAK,CAAC6mC,OAAO,CAAC,uBAAA,CAAA,CAAyBoT,QAAQ,CAAC,CAAC,EAAIyiI,UAAAA,CAAWt+J,KAAK,CAAE,CAAA,CAAIs+J,UAAAA,CAAWr+J,MAAM,CAAC,EACrG,CACA,IAAK,IAAI8P,CAAAA,CAAI,CAAA,CAAGA,GAAKh3B,OAAAA,CAAQ+wC,OAAO,CAAG,CAAA,CAAI,CAAA,CAAA,CAAI/Z,CAAAA,EAAAA,CAAK,CACnD,GAAIwgB,OAAS,IAAA,EAAQxgB,CAAAA,GAAMwgB,KAAM,CAChC,MAAMgU,aAAe,IAAIsK,YAAAA,CAAa,CACrCM,WAAAA,CAAap2D,QACbw3C,IAAAA,CAAMxgB,CAAAA,CACNsZ,MAAO,KAAA,CACPrhB,MAAAA,CAAQmL,0BACT,CAAA,CACA1mB,CAAAA,MAAM,CAAC,EAAE,CAAGsjB,CAAAA,CACZquJ,eAAeviI,QAAQ,CAACpvC,QACxBm6I,kBAAAA,CAAmBv+G,MAAAA,CAAQkc,YAAAA,CAAcZ,MAAAA,CAAQh4C,UAAUylC,IAAAA,CAAAA,CAC3DmT,YAAAA,CAAa/c,OAAO,GACrB,CACD,CACA,OAAO,IACR,CAEA,IAAI+2I,WAAa,CAACv+J,KAAAA,CAAOC,OAAS,CAAC,GAAA,CAClC,OAAO,CAAA,CAAIvmB,IAAAA,CAAKoQ,KAAK,CAACpQ,KAAK6U,IAAI,CAAC7U,KAAK6T,GAAG,CAACyS,MAAOC,MAAAA,CAAAA,CAAAA,CACjD,CAAA,CACA,IAAIu+J,eAAAA,CAAkB,MAACn2I,EAAAA,CACtB,OAAOA,OAAO0iB,0BACf,EACA,IAAI0zH,eAAAA,CAAkB,MAACp2I,EAAAA,CACtB,OAAOA,MAAAA,CAAOoa,sBAAsB,CACrC,CACA,IAAIi8H,0BAA4B,MAACr2I,EAAAA,CAChC,OAAOm2I,eAAAA,CAAgBn2I,QAAUzS,mBAAAA,CAAsB6oJ,eAAAA,CAAgBp2I,QAAUvS,mBAAAA,CAAsBP,iBACxG,EACA,IAAIopJ,mBAAAA,CAAsB,MAACt2I,EAAAA,CAC1B,OAAO9S,iBACR,CAAA,CACA,IAAIqpJ,aAAAA,CAAgB,CAACv2I,OAAQxpC,IAAAA,CAAMa,MAAAA,CAAQmqC,OAAAA,GAAAA,CAC1C,OAAO,IAAIc,OAAAA,CAAQtC,MAAAA,CAAQ,CAC1BprC,IAAAA,CAAM,CAAC,SAAS,EAAE4B,IAAAA,CAAK,CAAC,CACxBirC,QAAS,IAAA,CACT9pB,KAAAA,CAAOnhB,KACPohB,MAAAA,CAAQphB,IAAAA,CACRa,OACA6R,IAAAA,CAAqCwtB,iBACrCkM,QAAAA,CAAU/a,qBAAAA,CACVgb,SAAUhb,qBAAAA,CACV2Z,OAAAA,CAAS,KACV,CAAA,CACD,CAAA,CACA,IAAIg1I,WAAAA,CAAc,KAAA,CACjB,OAAOC,qBAAAA,CAAsBluI,MAAM,CAAE/xC,IAAI,CAAE,CAC1C,MAAMwpC,MAAAA,CAASuI,OAAOvI,MAAM,CAC5B,MAAMnuC,MAAAA,CAAS0kL,aAAAA,CAAcv2I,OAAQxpC,IAAAA,GAAS+xC,MAAAA,CAAO9G,OAAO,CAAG8G,MAAAA,CAAO5wB,KAAK,CAAG4wB,MAAAA,CAAO5wB,KAAK,CAAG,CAAA,CAAA,CAAIuV,iBAAmB,CAAA,CACpHioJ,iBAAiB5sI,MAAAA,CAAQ12C,MAAAA,CAAQ,CAChC0rK,UAAAA,CAAY,IACb,GACA,OAAO1rK,MACR,CACA,OAAO6kL,uBAAuBnuI,MAAM,CAAEjlC,QAAQ,CAAE,CAC/C,MAAM08B,MAAAA,CAASuI,MAAAA,CAAOvI,MAAM,CAC5B,MAAM3oC,MAAAA,CAASg/K,yBAAAA,CAA0Br2I,QACzC,MAAMnuC,MAAAA,CAASyR,UAAU2rH,MAAAA,EAAU,IAAI3sF,OAAAA,CAAQtC,MAAAA,CAAQ,CACtDprC,IAAAA,CAAM,iBAAA,CACN6sC,QAAS,IAAA,CACT9pB,KAAAA,CAAOrU,UAAU9M,IAAAA,EAAQ,GAAA,CACzBohB,MAAAA,CAAQtU,QAAAA,EAAU9M,MAAQ,GAAA,CAC1Ba,MAAAA,CACA6R,KAAM7R,MAAAA,GAAW61B,iBAAAA,CAAoBwJ,iBAAmBH,mBAAAA,CACxDqM,QAAAA,CAAU/a,qBAAAA,CACVgb,QAAAA,CAAUhb,sBACV2Z,OAAAA,CAAS,IACV,GACA2zI,gBAAAA,CAAiB5sI,MAAAA,CAAQ12C,OAAQ,CAChC0rK,UAAAA,CAAYh1H,MAAAA,CAAO/G,OAAO,CAAG,CAAA,CAAI,IAClC,GACA,OAAO3vC,MACR,CACA,OAAO8kL,aAAAA,CAAcpuI,MAAM,CAAEjlC,QAAQ,CAAE,CACtC,MAAM08B,MAAAA,CAASuI,MAAAA,CAAOvI,MAAM,CAC5B,MAAM3oC,MAAAA,CAASi/K,mBAAAA,GACf,MAAMzkL,MAAAA,CAASyR,UAAU2rH,MAAAA,EAAU,IAAI3sF,QAAQtC,MAAAA,CAAQ,CACtDprC,IAAAA,CAAM,UAAA,CACN+iB,MAAOrU,QAAAA,EAAU9M,IAAAA,EAAQ,IACzBohB,MAAAA,CAAQtU,QAAAA,EAAU9M,MAAQ,GAAA,CAC1Ba,MAAAA,CACA6R,IAAAA,CAAqCwtB,gBAAmBH,CACxDoT,WAAY9R,0BAAAA,CACZ+K,QAAAA,CAAU/a,sBACVgb,QAAAA,CAAUhb,qBAAAA,CACV2Z,OAAAA,CAAS,KACV,GACA,MAAMlqC,EAAAA,CAAKzF,OAAO8lB,KAAK,CAAG,IAC1B,MAAMoxB,IAAAA,CAAO,IAAI50B,IAAAA,CAAK,EAAG,CAAA,CAAG,GAAA,CAAM7c,GAAI,GAAA,CAAMA,EAAAA,CAAAA,CAC5C,MAAMmrC,MAAAA,CAASyzI,UAAAA,CAAW,GAAA,CAAA,CAAOA,UAAAA,CAAW,GAC5C,IAAK,IAAIpkL,GAAK,CAAA,CAAGA,EAAAA,CAAK2wC,OAAQ,EAAE3wC,EAAAA,CAAI,CACnCqjL,gBAAAA,CAAiB5sI,MAAAA,CAAQ12C,OAAQ,CAChC0rK,UAAAA,CAAY,EACZx0H,IAAAA,CACAqsI,UAAAA,CAAY99K,EACb,CAAA,CACAyxC,CAAAA,IAAAA,CAAKl7B,CAAC,EAAIk7B,IAAAA,CAAKv3B,CAAC,CAChBu3B,IAAAA,CAAKj7B,CAAC,EAAIi7B,IAAAA,CAAKv3B,CACfu3B,CAAAA,IAAAA,CAAKh7B,CAAC,CAAG1c,IAAAA,CAAK6T,GAAG,CAAC,CAAA,CAAG7T,IAAAA,CAAKoQ,KAAK,CAACsnC,KAAKh7B,CAAC,CAAG,IACzCg7B,CAAAA,IAAAA,CAAKv3B,CAAC,CAAGngB,IAAAA,CAAK6T,GAAG,CAAC,EAAG7T,IAAAA,CAAKoQ,KAAK,CAACsnC,IAAAA,CAAKv3B,CAAC,CAAG,EAAA,CAAA,EAC1C,CACAu3B,IAAAA,CAAKtwC,GAAG,CAAC,CAAA,CAAG,GAAA,CAAMnB,GAAI,GAAA,CAAMA,EAAAA,CAAI,IAAMA,EAAAA,CAAAA,CACtC,IAAK,IAAIxF,EAAAA,CAAK,EAAGA,EAAAA,CAAK,CAAA,CAAG,EAAEA,EAAAA,CAAI,CAC9BqjL,iBAAiB5sI,MAAAA,CAAQ12C,MAAAA,CAAQ,CAChC0rK,UAAAA,CAAYj6J,UAAUszK,oBAAAA,EAAwB,IAAA,CAC9CpB,aAAclyK,QAAAA,EAAUkyK,YAAAA,EAAgB,MACxCxC,aAAAA,CAAe3hL,IAAAA,CAAK6T,GAAG,CAAC,EAAG,IAAA,EAAQpT,EAAAA,CAAK,GACxCi3C,IAAAA,CACAqsI,UAAAA,CAAY99K,EACb,CAAA,CACAyxC,CAAAA,IAAAA,CAAKj7B,CAAC,EAAIi7B,IAAAA,CAAKv3B,CAAC,CAChBu3B,IAAAA,CAAKh7B,CAAC,CAAG1c,IAAAA,CAAK6T,GAAG,CAAC,EAAG7T,IAAAA,CAAKoQ,KAAK,CAACsnC,IAAAA,CAAKh7B,CAAC,CAAG,EAAA,CAAA,CACzCg7B,CAAAA,IAAAA,CAAKv3B,CAAC,CAAGngB,IAAAA,CAAK6T,GAAG,CAAC,CAAA,CAAG7T,IAAAA,CAAKoQ,KAAK,CAACsnC,IAAAA,CAAKv3B,CAAC,CAAG,KAC1C,CACAu3B,IAAAA,CAAKtwC,GAAG,CAAC,GAAA,CAAMnB,GAAI,CAAC,GAAA,CAAM,GAAE,EAAKA,EAAAA,CAAI,EAAA,CAAKA,GAAI,EAAA,CAAKA,EAAAA,CAAAA,CACnD69K,iBAAiB5sI,MAAAA,CAAQ12C,MAAAA,CAAQ,CAChC0rK,UAAAA,CAAYj6J,UAAUuzK,iBAAAA,EAAqB,IAAA,CAC3CrB,aAAc,SAAA,CACdzsI,IAAAA,CACAqsI,WAAY99K,EACb,CAAA,CAAA,CACA,OAAOzF,MACR,CACA,OAAOilL,wBAAAA,CAAyBC,OAAO,CAAEzzK,QAAQ,CAAE,CAClD,MAAM08B,OAAS+2I,OAAO,CAAC,EAAE,CAAC/2I,MAAM,CAChC,MAAM3oC,MAAAA,CAAS0/K,OAAO,CAAC,CAAA,CAAE,CAAC1/K,MAAM,CAChC,MAAM6R,IAAAA,CAAO6tK,OAAO,CAAC,CAAA,CAAE,CAAC7tK,IAAI,CAC5B,MAAMrX,MAAAA,CAASyR,UAAU2rH,MAAAA,EAAU,IAAI3sF,QAAQtC,MAAAA,CAAQ,CACtDprC,KAAM,qBAAA,CACN+iB,KAAAA,CAAOrU,QAAAA,EAAU9M,IAAAA,EAAQ,IACzBohB,MAAAA,CAAQtU,QAAAA,EAAU9M,MAAQ,GAAA,CAC1Ba,MAAAA,CACA6R,KACAygC,UAAAA,CAAY9R,0BAAAA,CACZ+K,QAAAA,CAAU/a,qBAAAA,CACVgb,SAAUhb,qBAAAA,CACV2Z,OAAAA,CAAS,KACV,CAAA,CAAA,CACA,MAAMlqC,GAAKzF,MAAAA,CAAO8lB,KAAK,CAAG,GAAA,CAC1B,MAAMoxB,IAAAA,CAAO,IAAI50B,KAAK,CAAA,CAAG,CAAA,CAAG,IAAM7c,EAAAA,CAAI,GAAA,CAAMA,EAAAA,CAAAA,CAC5C,MAAMmrC,OAASyzI,UAAAA,CAAW,GAAA,CAAA,CAC1B,IAAK,IAAIpkL,EAAAA,CAAK,EAAGA,EAAAA,CAAK2wC,MAAAA,CAAQ,EAAE3wC,EAAAA,CAAI,CACnCqjL,gBAAAA,CAAiB4B,OAAO,CAAC,CAAA,CAAE,CAAEllL,OAAQ,CACpC0rK,UAAAA,CAAY,CAAA,CACZx0H,IAAAA,CACAqsI,WAAY99K,EACb,CAAA,CACAyxC,CAAAA,IAAAA,CAAKl7B,CAAC,EAAIk7B,IAAAA,CAAKv3B,CAAC,CAChBu3B,KAAKj7B,CAAC,EAAIi7B,KAAKv3B,CACfu3B,CAAAA,IAAAA,CAAKh7B,CAAC,CAAG1c,IAAAA,CAAK6T,GAAG,CAAC,CAAA,CAAG7T,KAAKoQ,KAAK,CAACsnC,KAAKh7B,CAAC,CAAG,EAAA,CAAA,CACzCg7B,CAAAA,KAAKv3B,CAAC,CAAGngB,KAAK6T,GAAG,CAAC,EAAG7T,IAAAA,CAAKoQ,KAAK,CAACsnC,IAAAA,CAAKv3B,CAAC,CAAG,EAAA,CAAA,EAC1C,CACAu3B,IAAAA,CAAKtwC,GAAG,CAAC,CAAA,CAAG,GAAA,CAAMnB,EAAAA,CAAI,GAAA,CAAMA,GAAI,GAAA,CAAMA,EAAAA,CAAAA,CACtC,IAAK,IAAIxF,EAAAA,CAAK,EAAGA,EAAAA,CAAKilL,OAAAA,CAAQhlL,MAAM,CAAE,EAAED,EAAAA,CAAI,CAC3CqjL,iBAAiB4B,OAAO,CAACjlL,GAAG,CAAED,MAAAA,CAAQ,CACrC0rK,UAAAA,CAAY,EACZx0H,IAAAA,CACAqsI,UAAAA,CAAY99K,EACb,CAAA,CACAyxC,CAAAA,KAAKj7B,CAAC,EAAIi7B,KAAKv3B,CACfu3B,CAAAA,IAAAA,CAAKh7B,CAAC,CAAG1c,IAAAA,CAAK6T,GAAG,CAAC,CAAA,CAAG7T,IAAAA,CAAKoQ,KAAK,CAACsnC,KAAKh7B,CAAC,CAAG,IACzCg7B,CAAAA,IAAAA,CAAKv3B,CAAC,CAAGngB,IAAAA,CAAK6T,GAAG,CAAC,EAAG7T,IAAAA,CAAKoQ,KAAK,CAACsnC,IAAAA,CAAKv3B,CAAC,CAAG,EAAA,CAAA,EAC1C,CACAu3B,IAAAA,CAAKtwC,GAAG,CAAC,GAAA,CAAMnB,EAAAA,CAAI,CAAC,GAAA,CAAM,GAAE,EAAKA,EAAAA,CAAI,EAAA,CAAKA,EAAAA,CAAI,GAAKA,EAAAA,CAAAA,CACnD,GAAIgM,UAAU0zK,aAAAA,CAAe,CAC5B7B,iBAAiB4B,OAAO,CAAC,CAAA,CAAE,CAAEllL,OAAQ,CACpC0rK,UAAAA,CAAY,EACZx0H,IAAAA,CACAqsI,UAAAA,CAAY99K,EACb,CAAA,EACD,CAAA,KAAO,CACN69K,gBAAAA,CAAiB4B,OAAO,CAAC,CAAA,CAAE,CAAEllL,MAAAA,CAAQ,CACpC0rK,WAAYj6J,QAAAA,EAAUi6J,UAAAA,EAAc,IAAA,CACpCiY,YAAAA,CAAc,UACdzsI,IAAAA,CACAqsI,UAAAA,CAAY99K,EACb,CAAA,EACD,CACA,OAAOzF,MACR,CACD,CAAA,CAEA,IAAIolL,kBAAoB,CACvBriG,aAAAA,CAAe/gD,gBACfghD,cAAAA,CAAgB/gD,gBAAAA,CAChBghD,iBAAkB3gD,kBAAAA,CAClB4gD,gBAAAA,CAAkB3gD,kBAAAA,CAClBkhD,YAAAA,CAAcrhD,eACduhD,kBAAAA,CAAoBzhD,oBAAAA,CACpBwhD,mBAAoBvhD,qBACrB,CAAA,CACA,IAAIkjJ,SAAAA,CAAY,KAAA,CAmDfC,UAAAA,CAAWC,SAAS,CAAExiL,IAAI,CAAE+E,MAAQ,EAAE,CAAE,CACvC,GAAIy9K,SAAAA,CAAW,CACd,IAAI,CAACC,QAAQ,CAAC5+K,GAAG,CAAC7D,IAAAA,CAAM+E,OACzB,CACD,CACA29K,eAAAA,CAAgBF,SAAS,CAAExiL,IAAI,CAAE+E,MAAQ,EAAE,CAAE,CAC5C,GAAIy9K,SAAAA,CAAW,CACd,IAAI,CAACG,QAAQ,CAAC9+K,GAAG,CAAC7D,IAAAA,CAAM+E,OACxB,IAAI,CAAC09K,QAAQ,CAAC5+K,GAAG,CAAC7D,IAAAA,CAAM+E,OACzB,CACD,CACA69K,qBAAqBC,KAAK,CAAEC,eAAe,CAAEC,aAAa,CAAE,CAC3D,KAAM,CAAE7iH,OAAAA,CAASxxD,QAAQ,CAAEi0K,QAAQ,CAAExqH,UAAU,CAAE,CAAG,IAAI,CACxD,MAAMsQ,QAAAA,CAA2B,IAAInjE,IACrCmjE,QAAAA,CAAS5kE,GAAG,CAAC,YAAA,CAAc,QAC3B,GAAI6K,QAAAA,CAASs0K,cAAc,GAAKjjC,wBAAAA,EAA4BrxI,SAASs0K,cAAc,GAAKhjC,uBAAAA,CAAyB,CAChH2iC,SAAS9+K,GAAG,CAAC,aAAc,IAAA,EAC5B,CACA,GAAI,IAAI,CAACq8D,OAAO,CAAC+iH,WAAW,CAAE,CAC7BN,SAAS9+K,GAAG,CAAC,eAAgB,IAAA,CAAA,CAC7B4kE,QAAAA,CAAS5kE,GAAG,CAAC,eAAgB,OAAA,EAC9B,CACA,GAAI,IAAI,CAACq/K,WAAW,CAAEP,QAAAA,CAAS9+K,GAAG,CAAC,UAAW,IAAA,CAAA,CAC9C,GAAI,IAAI,CAACq8D,OAAO,CAACijH,aAAa,CAAE,CAC/B,MAAMC,eAAiB/8B,YAAAA,CAAazsJ,GAAG,CAAC,IAAI,CAACwxC,MAAM,CAAE,IAAI,CAACoqC,cAAc,EACxE,GAAI,IAAI,CAAC6tG,MAAM,CAACzpL,GAAG,CAAC,uBAAA,CAAA,GAA6BwpL,cAAAA,CAAexpL,GAAG,CAAC,uBAAA,CAAA,CAA0B,CAC7Fu+D,WAAWmrH,cAAc,CAAG5iJ,eAC5By3B,CAAAA,UAAAA,CAAWorH,cAAc,CAAG5iJ,eAC5Bw3B,CAAAA,UAAAA,CAAWqrH,cAAc,CAAG3iJ,eAC5Bs3B,CAAAA,UAAAA,CAAWsrH,cAAc,CAAG3iJ,gBAC7B,CACD,CACA,GAAI,IAAI,CAACoiJ,WAAW,CAAE,CACrB/qH,UAAAA,CAAW6nB,aAAa,CAAG/gD,gBAC3BwpC,QAAAA,CAAS5kE,GAAG,CAAC,UAAA,CAAY,MAAA,CAAA,CACzB,GAAI6K,QAAAA,CAASyzC,WAAW,GAAKzzC,SAASg1K,UAAU,EAAIh1K,SAASi1K,UAAU,EAAIj1K,SAASk1K,mBAAmB,EAAIl1K,QAAAA,CAASm1K,iBAAiB,CAAD,CAAI,CACvIlB,SAAS9+K,GAAG,CAAC,WAAY,IAAA,CACzBs0D,CAAAA,UAAAA,CAAW8nB,cAAc,CAAG/gD,gBAAAA,CAC5BupC,QAAAA,CAAS5kE,GAAG,CAAC,WAAA,CAAa,QAC1B4kE,QAAAA,CAAS5kE,GAAG,CAAC,YAAA,CAAc,QAC5B,CAAA,KAAO,GAAI6K,SAASm1K,iBAAiB,CAAE,CACtClB,QAAAA,CAAS9+K,GAAG,CAAC,cAAA,CAAgB,IAAA,CAAA,CAC7B4kE,SAAS5kE,GAAG,CAAC,kBAAmB,MAAA,EACjC,CACD,CACA,MAAMigL,SAAAA,CAAY,CAAA,CAClB,IAAK,IAAI5mL,EAAAA,CAAK,CAAA,CAAGA,GAAK4mL,SAAAA,CAAW5mL,EAAAA,EAAAA,CAAM,CACtC,GAAI2lL,KAAK,CAAC3lL,EAAAA,CAAG,CAAE,CACdylL,QAAAA,CAAS9+K,GAAG,CAAC,CAAC,EAAE,EAAE3G,EAAAA,CAAG,CAAC,CAAE,KACxBi7D,CAAAA,UAAU,CAAC,CAAC,eAAe,EAAEj7D,EAAAA,CAAG,CAAC,CAAC,CAAG,CAAC,QAAQ,EAAEA,GAAG,EACpD,CACA,GAAI4lL,eAAe,CAAC5lL,EAAAA,CAAG,CAAE,CACxBylL,QAAAA,CAAS9+K,GAAG,CAAC,CAAC,EAAE,EAAE3G,EAAAA,CAAG,WAAW,CAAC,CAAE,IAAA,CAAA,CACnCurE,QAAAA,CAAS5kE,GAAG,CAAC,CAAC,GAAG,EAAE3G,EAAAA,CAAG,CAAC,CAAE,QAC1B,CACD,CACA,IAAI6mL,aAAAA,CAAgB,CAAA,CACpB,MAAMC,aAAAA,CAAgC,IAAI9/K,GAAAA,CAC1C6+K,aAAAA,CAAcn5K,OAAO,CAAEq6K,eACtB,KAAM,CAAE56I,GAAI+xF,IAAI,CAAE8oD,EAAE,CAAElkL,IAAI,CAAE,CAAGikL,aAC/B,MAAME,OAAAA,CAAU/oD,KAAO8oD,EAAAA,CAAK,GAAA,CAC5B,GAAI,CAACF,cAAc//K,GAAG,CAACkgL,SAAU,CAChCH,aAAAA,CAAcz2K,GAAG,CAAC42K,OAAAA,CAAAA,CAClB17G,QAAAA,CAAS5kE,GAAG,CAAC,CAAC,GAAG,EAAEqgL,EAAAA,CAAG,CAAC,EAAE9oD,IAAAA,CAAK,CAAC,CAAE,MAAA,CAAA,CACjC,MAAMgpD,OAAAA,CAAU,CAAC,QAAQ,EAAEpkL,IAAAA,CAAK,YAAY,CAAC,CAC7C2iL,QAAAA,CAAS9+K,GAAG,CAAC,CAAC,gBAAgB,EAAEkgL,aAAAA,CAAc,CAAC,CAAC,CAAEK,OAAAA,CAAAA,CAClDzB,QAAAA,CAAS9+K,GAAG,CAAC,CAAC,cAAc,EAAEkgL,aAAAA,CAAc,CAAC,CAAC,CAAEG,EAAAA,CAAAA,CAChDvB,QAAAA,CAAS9+K,GAAG,CAAC,CAAC,cAAc,EAAEkgL,aAAAA,CAAc,CAAC,CAAC,CAAE3oD,IAAAA,CAChD2oD,CAAAA,aAAAA,GACD,CACD,GACApB,QAAAA,CAAS9+K,GAAG,CAAC,qBAAA,CAAuBkgL,aAAAA,CAAAA,CACpC,GAAIr1K,QAAAA,CAAS21K,YAAY,CAAE,CAC1BlsH,WAAWuoB,YAAY,CAAGrhD,eAC1BsjJ,QAAAA,CAAS9+K,GAAG,CAAC,cAAA,CAAgB,IAAA,CAAA,CAC7B4kE,QAAAA,CAAS5kE,GAAG,CAAC,cAAA,CAAgB,MAAA,CAAA,CAC7B,GAAI6K,QAAAA,CAAS41K,mBAAmB,CAAE,CACjC3B,QAAAA,CAAS9+K,GAAG,CAAC,yBAA0B,EAAA,EACxC,CACD,CACA,GAAI6K,QAAAA,CAAS61K,OAAO,EAAI71K,QAAAA,CAAS81K,iBAAiB,CAAE,CACnDrsH,UAAAA,CAAWssH,wBAAwB,CAAGlkJ,cACtC43B,CAAAA,WAAWusH,uBAAuB,CAAGlkJ,cAAAA,CACrCmiJ,QAAAA,CAAS9+K,GAAG,CAAC,MAAA,CAAQ,MACtB,CACA,GAAI6K,SAASi2K,gBAAgB,EAAIj2K,QAAAA,CAASk2K,cAAc,CAAE,CACzD,IAAI,CAAClC,eAAe,CAAC,KAAM,UAAA,CAAY,IAAA,CAAA,CACvC,IAAI,CAACA,eAAe,CAACh0K,QAAAA,CAASm2K,uBAAuB,CAAE,cAAA,CAAgB,MACvE,IAAI,CAACnC,eAAe,CAACh0K,QAAAA,CAASi2K,gBAAgB,CAAE,mBAAA,CAAqB,MACrE,IAAI,CAACjC,eAAe,CAACh0K,QAAAA,CAASk2K,cAAc,CAAE,kBAAmB,IAAA,CACjEzsH,CAAAA,WAAW2sH,eAAe,CAAGhkJ,gBAC9B,CACA,GAAIpyB,QAAAA,CAASq9I,IAAI,CAAE,CAClB5zF,UAAAA,CAAWwoB,kBAAkB,CAAGvhD,qBAAAA,CAChC,GAAI1wB,QAAAA,CAAS00J,KAAK,CAAE,CACnB,IAAI,CAACsf,eAAe,CAAC,IAAA,CAAM,OAAA,CAAS,MACrC,CAAA,KAAO,CACNvqH,UAAAA,CAAWyoB,kBAAkB,CAAGzhD,oBAAAA,CAChC,IAAI,CAACujJ,eAAe,CAAC,KAAM,MAAA,CAAQ,IAAA,EACpC,CACD,CACA,IAAI,CAACA,eAAe,CAACh0K,QAAAA,CAASy0K,aAAa,CAAE,YAAA,CAAc,IAAA,CAAA,CAC3D,IAAI,CAACT,eAAe,CAACh0K,QAAAA,CAASiwJ,WAAW,CAAE,aAAA,CAAe,MAC1D,GAAIjwJ,QAAAA,CAASq2K,SAAS,CAAEpC,SAAS9+K,GAAG,CAAC,YAAa,IAAA,CAAA,CAClD4kE,QAAAA,CAAS7+D,OAAO,CAAC,CAAC0K,KAAMtU,IAAAA,GAAAA,CACvB,IAAI,CAACglL,YAAY,EAAI,CAAC,gBAAgB,EAAEhlL,KAAK2rF,WAAW,EAAA;AAC3D,CACG,CAAA,IAAI,CAACq5F,YAAY,EAAI,IAAI,CAACxvG,cAAc,GAAKpyC,oBAAsB,CAAC,QAAQ,EAAEpjC,IAAAA,CAAK,EAAE,EAAEmpC,0BAAAA,CAA2BvvC,GAAG,CAAC0a,IAAAA,CAAAA,CAAM;AAC/H,CAAC,CAAG,CAAC,QAAQ,EAAEA,IAAAA,CAAK,CAAC,EAAEtU,IAAAA,CAAK;AAC5B,EAAC,CACC,CAAA,CACA,IAAI,CAACM,QAAQ,CAACuD,GAAG,CAAC,YAAA,CAAc,IAAI,CAACmhL,YAAY,CAAA,CACjD,IAAI,CAAC1kL,QAAQ,CAACuD,GAAG,CAAC,YAAA,CAAc,IAAI,CAACmhL,YAAY,CACjD,CAAA,IAAI,CAACh9G,OAAO,CAAG;AACjB;AACA,IAAI,EACH,CACAi9G,qBAAAA,CAAsBC,aAAa,CAAEC,wBAAwB,CAAE,CAC9D,MAAM1C,QAAAA,CAAW,IAAI,CAACA,QAAQ,CAC9B,MAAM/zK,QAAAA,CAAW,IAAI,CAACwxD,OAAO,CAC7B,IAAI,CAACuiH,QAAQ,CAAC5+K,GAAG,CAAC,aAAA,CAAe6K,SAAS02K,MAAM,CAACjoL,MAAM,CAAA,CACvD,GAAI+nL,aAAAA,CAAezC,QAAAA,CAAS5+K,GAAG,CAAC,aAAA,CAAe,IAAA,CAAA,CAC/C,GAAIshL,wBAAAA,EAA4B,IAAI,CAACE,QAAQ,CAAE,CAC9C5C,SAAS5+K,GAAG,CAAC,sBAAA,CAAwB,IAAA,CAAA,CACrC,GAAI6K,QAAAA,CAAS42K,+BAA+B,CAAE7C,QAAAA,CAAS5+K,GAAG,CAAC,iBAAA,CAAmB,IAAA,CAAA,CAC9E,GAAI6K,QAAAA,CAAS62K,kCAAkC,CAAE9C,QAAAA,CAAS5+K,GAAG,CAAC,oBAAA,CAAsB,IAAA,CAAA,CACpF,GAAI6K,SAAS82K,gBAAgB,CAAE/C,QAAAA,CAAS5+K,GAAG,CAAC,6BAAA,CAA+B,IAAA,CAAA,CAC3E,GAAI6K,SAAS+2K,+BAA+B,EAAI,CAAC/2K,QAAAA,CAASg3K,QAAQ,CAAE,CACnE,MAAMC,mBAAAA,CAAsBhsC,eAAe//I,GAAG,CAAC8U,QAAAA,CAASk3K,2BAA2B,CAAA,CACnFnD,QAAAA,CAAS5+K,GAAG,CAAC,kBAAmB,IAAA,CAAA,CAChC4+K,QAAAA,CAAS5+K,GAAG,CAAC,CAAC,YAAY,EAAE8hL,mBAAAA,CAAoB/rC,IAAI,CAAC,CAAC,CAAE,IAAA,CAAA,CACxD6oC,QAAAA,CAAS5+K,GAAG,CAAC,CAAC,oBAAoB,EAAE8hL,mBAAAA,CAAoB/rC,IAAI,CAAC,CAAC,CAAE,IAAA,EACjE,CACD,CACA,IAAK,IAAI18I,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAKwR,QAAAA,CAAS02K,MAAM,CAACjoL,MAAM,CAAED,EAAAA,EAAAA,CAAM,CACnD,MAAMg3K,KAAAA,CAAQxlK,QAAAA,CAAS02K,MAAM,CAACloL,EAAAA,CAAG,CACjC,MAAM8nJ,SAAAA,CAAYkvB,MAAMn9J,KAAK,CAC7B,GAAIouK,wBAAAA,EAA4BngC,SAAAA,GAAclN,qBAAAA,CAAuB,CACpE,QACD,CACA,MAAM+tC,UAAAA,CAAaX,aAAAA,EAAiBhR,KAAAA,CAAM4R,MAAM,CAAG5R,KAAAA,CAAM4R,MAAM,CAAGztC,oBAClE,MAAM6M,UAAAA,CAAagvB,KAAAA,CAAM6R,WAAW,CACpC,MAAM/kB,UAAAA,CAAakT,KAAAA,CAAMuD,WAAW,EAAI,CAAC/oK,QAAAA,CAASg3K,QAAQ,CAC1D,MAAMzgC,UAAAA,CAAatL,cAAAA,CAAe//I,GAAG,CAACsrJ,UAAAA,CAAAA,CACtCu9B,QAAAA,CAAS5+K,GAAG,CAAC,CAAC,KAAK,EAAE3G,EAAAA,CAAG,CAAC,CAAE,IAAA,CAAA,CAC3BulL,QAAAA,CAAS5+K,GAAG,CAAC,CAAC,KAAK,EAAE3G,EAAAA,CAAG,IAAI,CAAC,CAAE,CAAC,EAAEi7I,cAAc,CAAC6M,SAAAA,CAAU,CAAC,CAAC,EAC7Dy9B,QAAAA,CAAS5+K,GAAG,CAAC,CAAC,KAAK,EAAE3G,EAAAA,CAAG,UAAU,CAAC,CAAE,CAAC,EAAE+nJ,UAAAA,CAAWjlJ,IAAI,CAAC,CAAC,CAAA,CACzDyiL,QAAAA,CAAS5+K,GAAG,CAAC,CAAC,KAAK,EAAE3G,GAAG,KAAK,CAAC,CAAE,CAAC,EAAEu7I,eAAe,CAACotC,UAAAA,CAAW,CAAC,CAAC,CAAA,CAChEpD,QAAAA,CAAS5+K,GAAG,CAAC,CAAC,KAAK,EAAE3G,EAAAA,CAAG,OAAO,CAAC,CAAE,CAAC,EAAE07I,iBAAiB,CAACs7B,KAAAA,CAAM8R,YAAY,CAAC,CAAC,CAAC,CAAA,CAC5E,GAAI9R,MAAM+R,iBAAiB,CAAExD,QAAAA,CAAS5+K,GAAG,CAAC,CAAC,KAAK,EAAE3G,EAAAA,CAAG,kBAAkB,CAAC,CAAE,IAAA,CAAA,CAC1E,GAAIg3K,MAAMmD,OAAO,CAAE,CAClB,GAAIryB,YAAc/M,cAAAA,EAAkB,CAACi8B,KAAAA,CAAMmD,OAAO,CAAChoI,QAAQ,EAAI21G,SAAAA,GAAcjN,cAAAA,EAAkBm8B,MAAMmD,OAAO,CAAChoI,QAAQ,CAAE,CACtHozI,QAAAA,CAAS5+K,GAAG,CAAC,CAAC,KAAK,EAAE3G,EAAAA,CAAG,MAAM,CAAC,CAAE,IAAA,CAAA,CACjCulL,QAAAA,CAAS5+K,GAAG,CAAC,CAAC,MAAM,EAAE3G,EAAAA,CAAG,eAAe,CAAC,CAAEg3K,KAAAA,CAAMgS,cAAc,CAAA,CAC/D,GAAIlhC,SAAAA,GAAc/M,cAAAA,CAAgB,CACjC,GAAIi8B,KAAAA,CAAMiS,gBAAgB,CAAE1D,SAAS5+K,GAAG,CAAC,CAAC,KAAK,EAAE3G,EAAAA,CAAG,gBAAgB,CAAC,CAAE,IAAA,CAAA,CACvE,GAAIg3K,KAAAA,CAAMkS,cAAc,CAAE3D,QAAAA,CAAS5+K,GAAG,CAAC,CAAC,KAAK,EAAE3G,EAAAA,CAAG,cAAc,CAAC,CAAE,IAAA,EACpE,CACD,CACD,CACA,GAAI8jK,UAAAA,CAAY,CACfyhB,QAAAA,CAAS5+K,GAAG,CAAC,CAAC,KAAK,EAAE3G,GAAG,UAAU,CAAC,CAAE,IAAA,CAAA,CACrC,GAAI+nJ,UAAAA,CAAWpL,GAAG,CAAE4oC,SAAS5+K,GAAG,CAAC,CAAC,KAAK,EAAE3G,EAAAA,CAAG,UAAU,CAAC,CAAE,MACzD,GAAIg3K,KAAAA,CAAMmS,iBAAiB,EAAI,CAACnS,KAAAA,CAAMoS,MAAM,CAAE7D,SAAS5+K,GAAG,CAAC,CAAC,KAAK,EAAE3G,EAAAA,CAAG,4BAA4B,CAAC,CAAE,MACrG,GAAI8nJ,SAAAA,GAAclN,qBAAAA,CAAuB,CACxC2qC,QAAAA,CAAS5+K,GAAG,CAAC,CAAC,KAAK,EAAE3G,EAAAA,CAAG,oBAAoB,CAAC,CAAE,IAAA,CAAA,CAC/C,GAAIg3K,KAAAA,CAAMqS,YAAY,CAAG,CAAA,CAAG9D,QAAAA,CAAS5+K,GAAG,CAAC,CAAC,KAAK,EAAE3G,EAAAA,CAAG,qBAAqB,CAAC,CAAE,IAAA,CAAA,CAC5E,GAAIg3K,KAAAA,CAAMsS,WAAW,CAAG,CAAA,CAAG/D,QAAAA,CAAS5+K,GAAG,CAAC,CAAC,KAAK,EAAE3G,EAAAA,CAAG,gBAAgB,CAAC,CAAE,IAAA,EACvE,CACA,GAAI+nJ,UAAAA,CAAWpL,GAAG,EAAIoL,WAAWlL,IAAI,EAAI,IAAI,CAAC3uG,MAAM,CAACuG,QAAQ,CAAE8wI,QAAAA,CAAS5+K,GAAG,CAAC,CAAC,KAAK,EAAE3G,EAAAA,CAAG,6BAA6B,CAAC,CAAE,MACvH,GAAI8nJ,SAAAA,GAAcjN,cAAAA,CAAgB0qC,QAAAA,CAAS5+K,GAAG,CAAC,CAAC,KAAK,EAAE3G,EAAAA,CAAG,oBAAoB,CAAC,CAAE,MAClF,CACA,GAAI8jK,UAAAA,CAAY,CACfyhB,SAAS5+K,GAAG,CAAC,CAAC,YAAY,EAAEohJ,UAAAA,CAAWrL,IAAI,CAAC,CAAC,CAAE,IAAA,CAAA,CAC/C,GAAIoL,SAAAA,GAAclN,qBAAAA,CAAuB2qC,SAAS5+K,GAAG,CAAC,oBAAA,CAAsB,IAAA,EAC7E,CACD,CACD,CACA4iL,kBAAAA,CAAmBC,UAAU,CAAE,CAC9B,KAAM,CAAExmH,OAAAA,CAASxxD,QAAQ,CAAE,CAAG,IAAI,CAClC,MAAMi4K,mBAAAA,CAAsBj4K,QAAAA,CAASy2K,wBAAwB,EAAIz2K,QAAAA,CAAS62K,kCAAkC,CAC5G,MAAML,cAAgByB,mBAAAA,EAAuBj4K,QAAAA,CAAS02K,MAAM,CAAClpG,IAAI,CAAC,KAACg4F,EAAAA,CAClE,OAAOA,KAAAA,CAAM4R,MAAM,EAAI5R,KAAAA,CAAM4R,MAAM,GAAKztC,mBACzC,CAAA,CAAA,CACA,MAAMuuC,WAAa,CAACl4K,QAAAA,CAASm4K,eAAe,EAAIn4K,QAAAA,CAASo4K,sBAAsB,CAC/E,MAAMC,OAAS,IAAI,CAAC7D,WAAW,GAAKx0K,QAAAA,CAASi1K,UAAU,EAAIj1K,QAAAA,CAASk1K,mBAAmB,EAAIl1K,QAAAA,CAASg1K,UAAU,EAAIh1K,SAASm1K,iBAAgB,CAAA,CAC3I,GAAIn1K,SAASs4K,WAAW,CAAE,CACzB,IAAI,CAACzE,UAAU,CAAC,IAAA,CAAM,cAAA,CAAA,CACtB,IAAI,CAACA,UAAU,CAAC,IAAI,CAAC0E,WAAW,CAAE,iBAAA,CAAA,CAClC,IAAI,CAAC1E,UAAU,CAAC7zK,QAAAA,CAASw4K,YAAY,CAAE,eAAA,CAAA,CACvC,IAAI,CAAC3E,UAAU,CAAC7zK,QAAAA,CAASy4K,YAAY,CAAG,CAAA,CAAG,sBAAA,CAAA,CAC3C,IAAI,CAAC5E,UAAU,CAAC7zK,QAAAA,CAAS04K,QAAQ,CAAE,aACnC,IAAI,CAAC7E,UAAU,CAAC7zK,SAAS24K,cAAc,CAAE,iBAAA,EAC1C,CACA,IAAI,CAAC9E,UAAU,CAAC,IAAI,CAAC8C,QAAQ,EAAI32K,QAAAA,CAASs4K,WAAW,EAAI,IAAI,CAACC,WAAW,CAAE,4BAAA,CAAA,CAC3E,IAAI,CAAC1E,UAAU,CAAC,IAAI,CAAC+E,eAAe,CAAE,iBAAA,CAAA,CACtC,IAAI,CAAC/E,UAAU,CAAC,IAAI,CAACgF,eAAe,CAAE,mBACtC,IAAI,CAAChF,UAAU,CAAC,IAAI,CAACiF,eAAe,CAAE,kBACtC,IAAI,CAACjF,UAAU,CAAC,IAAI,CAACW,WAAW,CAAE,kBAAA,CAAA,CAClC,IAAI,CAACX,UAAU,CAAC,IAAI,CAAC8C,QAAQ,CAAE,cAAA,CAAA,CAC/B,IAAI,CAAC9C,UAAU,CAAC7zK,QAAAA,CAAS+4K,YAAY,CAAE,eAAA,CAAA,CACvC,IAAI,CAAClF,UAAU,CAAC7zK,QAAAA,CAASm1K,iBAAiB,CAAE,kBAAA,CAAA,CAC5C,IAAI,CAACtB,UAAU,CAAC7zK,QAAAA,CAASg5K,aAAa,CAAE,gBAAA,CAAA,CACxC,IAAI,CAACnF,UAAU,CAAC7zK,QAAAA,CAASi5K,oBAAoB,CAAE,wBAAA,CAAA,CAC/C,IAAI,CAACpF,UAAU,CAAC7zK,QAAAA,CAASk5K,kBAAkB,CAAE,oBAC7C,IAAI,CAACrF,UAAU,CAAC7zK,SAASm5K,oBAAoB,CAAE,4BAAA,CAAA,CAC/C,IAAI,CAACtF,UAAU,CAAC7zK,QAAAA,CAASo5K,eAAe,CAAE,sBAAA,CAAA,CAC1C,IAAI,CAACvF,UAAU,CAAC7zK,QAAAA,CAASq5K,gBAAgB,CAAE,0BAC3C,IAAI,CAACxF,UAAU,CAAC7zK,SAASm4K,eAAe,CAAE,cAAA,CAAA,CAC1C,IAAI,CAACtE,UAAU,CAAC7zK,QAAAA,CAASs5K,kBAAkB,CAAE,kBAAA,CAAA,CAC7C,IAAI,CAACzF,UAAU,CAAC7zK,QAAAA,CAASu5K,eAAe,CAAG,EAAG,sBAAA,CAAA,CAC9C,IAAI,CAAC1F,UAAU,CAAC7zK,QAAAA,CAAS+2K,+BAA+B,CAAE,yBAC1D,IAAI,CAAClD,UAAU,CAAC7zK,SAAS62K,kCAAkC,CAAE,2BAAA,CAAA,CAC7D,IAAI,CAAChD,UAAU,CAACwE,MAAAA,CAAQ,SAAA,CAAA,CACxB,IAAI,CAACxE,UAAU,CAACqE,UAAAA,CAAY,mBAC5B,IAAI,CAACrE,UAAU,CAAC7zK,SAASyzC,WAAW,CAAE,cAAA,CAAA,CACtC,IAAI,CAACogI,UAAU,CAAC7zK,QAAAA,CAASi1K,UAAU,CAAE,iBAAA,CAAA,CACrC,IAAI,CAACpB,UAAU,CAAC7zK,QAAAA,CAASk1K,mBAAmB,CAAE,6BAC9C,IAAI,CAACrB,UAAU,CAAC7zK,SAASw5K,aAAa,CAAE,gBAAA,CAAA,CACxC,IAAI,CAAC3F,UAAU,CAAC7zK,QAAAA,CAASy5K,oBAAoB,CAAE,wBAAA,CAAA,CAC/C,IAAI,CAAC5F,UAAU,CAAC7zK,QAAAA,CAAS05K,UAAU,CAAE,kBACrC,IAAI,CAAC7F,UAAU,CAAC7zK,QAAAA,CAASg1K,UAAU,CAAE,aAAA,CAAA,CACrC,IAAI,CAACnB,UAAU,CAAC7zK,QAAAA,CAAS25K,oBAAoB,CAAE,4BAAA,CAAA,CAC/C,IAAI,CAAC9F,UAAU,CAAC7zK,QAAAA,CAASi5C,eAAe,CAAE,yBAC1C,IAAI,CAAC46H,UAAU,CAAC7zK,SAASixJ,SAAS,CAAE,gBAAA,CAAA,CACpC,IAAI,CAAC4iB,UAAU,CAAC7zK,QAAAA,CAAS61K,OAAO,CAAE,UAAA,CAAA,CAClC,IAAI,CAAChC,UAAU,CAAC7zK,QAAAA,CAAS45K,IAAI,CAAE,YAC/B,IAAI,CAAC/F,UAAU,CAAC7zK,SAAS65K,KAAK,CAAE,QAAA,CAAA,CAChC,IAAI,CAAChG,UAAU,CAAC7zK,QAAAA,CAAS85K,aAAa,CAAE,oBAAA,CAAA,CACxC,IAAI,CAACjG,UAAU,CAAC7zK,QAAAA,CAAS81K,iBAAiB,CAAE,2BAC5C,IAAI,CAACjC,UAAU,CAAC7zK,SAAS+5K,iBAAiB,CAAE,iBAAA,CAAA,CAC5C,IAAI,CAAClG,UAAU,CAAC7zK,QAAAA,CAASg6K,aAAa,CAAE,oBAAA,CAAA,CACxC,IAAI,CAACnG,UAAU,CAAC,IAAA,CAAM,mBAAA,CAAqBlrC,YAAY,CAAC3oI,QAAAA,CAASy4K,YAAY,CAAC,CAAA,CAC9E,IAAI,CAAC5E,UAAU,CAAC,KAAM,qBAAA,CAAuBtiC,qBAAqB,CAACvxI,QAAAA,CAASs0K,cAAc,CAAC,CAAA,CAC3F,IAAI,CAACT,UAAU,CAAC,IAAA,CAAM,gBAAA,CAAkBzrC,UAAU,CAACpoI,QAAAA,CAASi6K,SAAS,CAAC,EACtE,IAAI,CAACpG,UAAU,CAAC,KAAM,wBAAA,CAA0B9mC,qBAAqB,CAAC/sI,QAAAA,CAASk6K,iBAAiB,CAAC,CAAA,CACjG,IAAI,CAACrG,UAAU,CAAC,IAAA,CAAM,sBAAA,CAAwBzlC,sBAAsB,CAACpuI,QAAAA,CAASm6K,eAAe,CAAC,EAC9F,IAAI,CAACtG,UAAU,CAAC,KAAM,uBAAA,CAAyBnlC,kBAAkB,CAAC1uI,QAAAA,CAASo6K,gBAAgB,CAAC,CAAA,CAC5F,IAAI,CAACvG,UAAU,CAAC,IAAA,CAAM,oBAAA,CAAsB/kC,eAAe,CAAC9uI,QAAAA,CAASq6K,aAAa,CAAC,EACnF,IAAI,CAACxG,UAAU,CAAC,KAAM,cAAA,CAAgBmE,UAAAA,EAAc,EAAA,CAAA,CACpD,IAAI,CAACnE,UAAU,CAAC,IAAA,CAAM,oBAAA,CAAsB/E,WAAWC,UAAU,CAAC/uK,QAAAA,CAASs6K,kBAAkB,GAC7F,IAAI,CAACzG,UAAU,CAAC,IAAA,CAAM,2BAAA,CAA6B/E,UAAAA,CAAWC,UAAU,CAAC/uK,QAAAA,CAASu6K,yBAAyB,CAAA,CAAA,CAC3G,IAAI,CAAC1G,UAAU,CAAC,IAAA,CAAM,iBAAA,CAAmB/E,WAAWC,UAAU,CAAC/uK,QAAAA,CAASw6K,eAAe,CAAA,CAAA,CACvF,IAAI,CAACjE,qBAAqB,CAACC,aAAAA,CAAex2K,QAAAA,CAASy2K,wBAAwB,EAC5E,CACAgE,kBAAAA,EAAqB,CACpB,KAAM,CAAEjpH,QAASxxD,QAAQ,CAAE,CAAG,IAAI,CAClC,IAAI,CAAC6zK,UAAU,CAAC7zK,QAAAA,CAASixJ,SAAS,CAAE,gBAAA,CAAA,CACpC,IAAI,CAAC4iB,UAAU,CAAC,IAAA,CAAM,qBAAsBzgC,WAAW,CAACpzI,QAAAA,CAAS06K,mBAAmB,CAAC,EACtF,CACAC,iBAAAA,EAAoB,CACnB,KAAM,CAAEnpH,OAAAA,CAASxxD,QAAQ,CAAE,CAAG,IAAI,CAClC,IAAI,CAAC6zK,UAAU,CAAC7zK,QAAAA,CAASixJ,SAAS,CAAE,gBAAA,EACrC,CACA2pB,sBAAAA,CAAuBC,YAAY,CAAEC,YAAY,CAAE9C,UAAU,CAAE,CAC9D,MAAMh4K,QAAAA,CAAW,IAAI,CAACwxD,OAAO,CAC7B,IAAI,CAAC5/D,QAAQ,CAACuD,GAAG,CAAC,gBAAA,CAAkB0lL,cAAgB,EAAA,CAAA,CACpD,IAAI,CAACjpL,QAAQ,CAACuD,GAAG,CAAC,gBAAA,CAAkB2lL,YAAAA,EAAgB,IACpD,GAAI96K,QAAAA,CAASs5I,IAAI,GAAK/I,WAAAA,CAAa,CACnC,KAAO,GAAIvwI,SAASs5I,IAAI,GAAKjJ,cAAAA,CAAgB,CAC5C,IAAI,CAACoqC,kBAAkB,GACxB,CAAA,KAAO,GAAI,IAAI,CAACM,UAAU,CAAE,CAC3B,IAAI,CAACJ,iBAAiB,GACvB,MAAO,CACN,IAAI,CAAC5C,kBAAkB,CAACC,UAAAA,EACzB,CACA,IAAI,CAACx+G,OAAO,CAAG;AACjB;AACA,IAAI,EAAC,CAtTJ,WAAA,CAAY98B,MAAM,CAAE18B,QAAQ,CAAEg7K,SAAAA,CAAY,IAAI,CAAE,CARhD1E,sBAAAA,cAAAA,CAAe,EAAA,CAAA,CACf55I,gBAAAA,CAAAA,IAAAA,CAAAA,QAAAA,CAAAA,MAAAA,CAAAA,CACA80B,sBAAAA,SAAAA,CAAAA,MAAAA,CAAAA,CACAsV,gBAAAA,CAAAA,IAAAA,CAAAA,gBAAAA,CAAAA,QACAmtG,gBAAAA,CAAAA,IAAAA,CAAAA,UAAAA,CAA2B,IAAIr9K,GAAAA,CAAAA,CAC/Bm9K,gBAAAA,CAAAA,IAAAA,CAAAA,UAAAA,CAA2B,IAAIn9K,GAAAA,CAAAA,CAC/BhF,gBAAAA,CAAAA,IAAAA,CAAAA,UAAAA,CAA2B,IAAIgF,GAAAA,CAAAA,CAC/B+9K,gBAAAA,CAAAA,IAAAA,CAAAA,SAAS,IAAA,CAER,CAAA,IAAI,CAACj4I,MAAM,CAAGA,MACd,CAAA,IAAI,CAAC80B,OAAO,CAAGxxD,QAAAA,CACf,MAAMi7K,UAAAA,CAAaj7K,QAAAA,CAASk7K,YAC5B,CAAA,IAAI,CAACp0G,cAAc,CAAGpqC,MAAAA,CAAOuG,QAAQ,EAAI+3I,SAAAA,GAAc,CAACC,UAAAA,EAAcA,UAAAA,CAAWljC,OAAO,CAAD,CAAKrjH,oBAAsBD,mBAAAA,CAClH,GAAIiI,MAAAA,CAAOuG,QAAQ,EAAI,IAAI,CAAC6jC,cAAc,GAAKryC,mBAAAA,CAAqB,CACnE,GAAI,CAACiI,OAAOgxD,cAAc,CAAE,CAE7B,CACA,IAAI,CAACjkC,UAAU,CAAG,CACjB4nB,eAAAA,CAAiB/gD,iBAClB,CAAA,CACA,GAAItwB,QAAAA,CAASm7K,cAAc,CAAE,CAC5B,IAAK,KAAM,CAACjpI,QAAAA,CAAU5gD,IAAAA,CAAK,GAAIqT,MAAAA,CAAOshD,OAAO,CAACjmD,SAASm7K,cAAc,CAAA,CAAG,CACvE,IAAI,CAAC1xH,UAAU,CAACn4D,IAAAA,CAAK,CAAG4gD,SACzB,CACD,CACA,MAAMkpI,aAAezjC,YAAAA,CAAazsJ,GAAG,CAACwxC,MAAAA,CAAQ,IAAI,CAACoqC,cAAc,CACjE,CAAA,IAAI,CAAC6tG,MAAM,CAAG,IAAI/9K,GAAAA,CAAIwkL,YAAAA,CAAAA,CACtB,GAAIH,UAAAA,CAAY,CACf,MAAMI,aAAe,IAAI,CAACv0G,cAAc,GAAKryC,mBAAAA,CAAsBwmJ,UAAAA,CAAWpjC,IAAI,CAAGojC,UAAAA,CAAW10G,IAAI,CACpG80G,YAAAA,CAAangL,OAAO,CAAC,CAACogL,KAAAA,CAAOC,SAAAA,GAAAA,CAC5B,IAAK,MAAMpwL,CAAAA,IAAKwoL,kBAAmB,CAClC,GAAIA,iBAAAA,CAAkB/4K,cAAc,CAACzP,CAAAA,CAAAA,EAAMmwL,MAAM/jL,OAAO,CAACpM,CAAAA,CAAAA,EAAM,CAAA,CAAG,CACjE,IAAI,CAACs+D,UAAU,CAACt+D,CAAAA,CAAE,CAAGwoL,iBAAiB,CAACxoL,GAAE,CAE3C,CACA,IAAI,CAACwpL,MAAM,CAACx/K,GAAG,CAAComL,SAAAA,CAAWD,KAAAA,EAC5B,CAAA,EACD,CACA,IAAI,CAACjiC,cAAc,CAAG1C,UAAAA,CAAWzrJ,GAAG,CAAC,IAAI,CAACwxC,MAAM,CAAA,CAAEq6G,UAAU,CAAC/2I,QAAAA,CAASs5I,IAAI,CAC1E,CAAA,IAAI,CAACyhC,UAAU,CAAG,IAAI,CAAC1hC,cAAc,CAAChD,QAAQ,CAC9C,IAAI,CAACsgC,QAAQ,CAAG32K,QAAAA,CAAS02K,MAAM,CAACjoL,MAAM,CAAG,CAAA,EAAKuR,QAAAA,CAASs5K,kBAAkB,EAAIt5K,QAAAA,CAASy2K,wBAAwB,CAC9G,IAAI,CAAC8B,WAAW,CAAGv4K,SAASo6K,gBAAgB,GAAK/rC,kBACjD,CAAA,IAAI,CAACmmC,WAAW,CAAG,IAAI,CAACmC,QAAQ,EAAI,IAAI,CAAC4B,WAAW,EAAIv4K,QAAAA,CAASw5K,aAAa,EAAIx5K,QAAAA,CAASs4K,WAAW,EAAIt4K,QAAAA,CAASw7K,SAAS,EAAIx7K,QAAAA,CAASg1K,UAAU,EAAIh1K,QAAAA,CAASm1K,iBAAiB,EAAIn1K,QAAAA,CAASy2K,wBAAwB,EAAI,CAAC,IAAI,CAACsE,UAAU,EAAI/6K,QAAAA,CAASk1K,mBAAmB,CAC1Q,IAAI,CAACV,WAAW,CAAG,IAAI,CAACA,WAAW,EAAI,CAAC,IAAI,CAACuG,UAAU,CACvD,IAAI,CAACnC,eAAe,CAAG54K,QAAAA,CAASy5K,oBAAoB,CACpD,IAAI,CAACZ,eAAe,CAAG74K,SAASy5K,oBAChC,CAAA,IAAI,CAACX,eAAe,CAAG94K,QAAAA,CAASy5K,oBAAoB,CACpD,IAAI,CAACngH,OAAO,CAAG,IACf,CAAA,IAAI,CAACE,OAAO,CAAG,KAChB,CA+QD,CAAA,CAEA,IAAIiiH,gBAAAA,CAAmB,KAAA,CAAA,WAAA,EAAA,CACtBhoI,sBAAAA,aAAAA,CAAc,KAAA,CAAA,CACdynI,gBAAAA,CAAAA,IAAAA,CAAAA,cAAAA,CAAe,IAAA,CAAA,CAEf5hC,gBAAAA,CAAAA,IAAAA,CAAAA,OAAO,CAAA,CAAA,CACP2X,gBAAAA,CAAAA,IAAAA,CAAAA,WAAAA,CAAY,KAAA,CAAA,CACZgpB,gBAAAA,CAAAA,IAAAA,CAAAA,WAAAA,CAAYryC,YACZwxC,gBAAAA,CAAAA,IAAAA,CAAAA,iBAAAA,CAAkB,KAAA,CAAA,CAClBnpB,gBAAAA,CAAAA,IAAAA,CAAAA,aAAAA,CAAc,KAAA,CAAA,CACd5S,sBAAAA,MAAAA,CAAO,KAAA,CAAA,CACPqX,gBAAAA,CAAAA,IAAAA,CAAAA,OAAAA,CAAQ,KAAA,CAAA,CACR+f,gBAAAA,CAAAA,IAAAA,CAAAA,gBAAgB,KAAA,CAAA,CAChBwB,gBAAAA,CAAAA,IAAAA,CAAAA,kBAAAA,CAAmB,KAAA,CAAA,CACnBC,gBAAAA,CAAAA,IAAAA,CAAAA,gBAAAA,CAAiB,OACjBC,gBAAAA,CAAAA,IAAAA,CAAAA,yBAAAA,CAA0B,KAAA,CAAA,CAC1B7B,gBAAAA,CAAAA,IAAAA,CAAAA,gBAAAA,CAAiB,CAAA,CAAA,CACjBmC,sBAAAA,0BAAAA,CAA2B,IAAA,CAAA,CAC3BG,gBAAAA,CAAAA,IAAAA,CAAAA,iCAAAA,CAAkC,KAAA,CAAA,CAClCG,gBAAAA,CAAAA,IAAAA,CAAAA,kCAAkC,KAAA,CAAA,CAClCG,gBAAAA,CAAAA,IAAAA,CAAAA,6BAAAA,CAA8B,CAAA,CAAA,CAC9BL,gBAAAA,CAAAA,IAAAA,CAAAA,oCAAAA,CAAqC,OACrClB,gBAAAA,CAAAA,IAAAA,CAAAA,cAAAA,CAAe,KAAA,CAAA,CACfC,gBAAAA,CAAAA,IAAAA,CAAAA,qBAAAA,CAAsB,KAAA,CAAA,CACtBuC,sBAAAA,iBAAAA,CAAkB,KAAA,CAAA,CAClBmB,gBAAAA,CAAAA,IAAAA,CAAAA,oBAAAA,CAAqB,KAAA,CAAA,CACrBtE,gBAAAA,CAAAA,IAAAA,CAAAA,aAAa,KAAA,CAAA,CACbC,gBAAAA,CAAAA,IAAAA,CAAAA,YAAAA,CAAa,KAAA,CAAA,CACbC,gBAAAA,CAAAA,IAAAA,CAAAA,qBAAAA,CAAsB,OACtB2E,gBAAAA,CAAAA,IAAAA,CAAAA,OAAAA,CAAQ,KAAA,CAAA,CACRE,gBAAAA,CAAAA,IAAAA,CAAAA,mBAAAA,CAAoB,KAAA,CAAA,CACpB1D,gBAAAA,CAAAA,IAAAA,CAAAA,WAAAA,CAAY,KAAA,CAAA,CACZmF,gBAAAA,CAAAA,IAAAA,CAAAA,WAAAA,CAAY,KAAA,CAAA,CACZ5B,gBAAAA,CAAAA,IAAAA,CAAAA,MAAAA,CAAO,OACPP,gBAAAA,CAAAA,IAAAA,CAAAA,kBAAAA,CAAmB,KAAA,CAAA,CACnBS,gBAAAA,CAAAA,IAAAA,CAAAA,eAAAA,CAAgB,KAAA,CAAA,CAChBK,sBAAAA,iBAAAA,CAAkB,CAAA,CAAA,CAClBhB,gBAAAA,CAAAA,IAAAA,CAAAA,sBAAAA,CAAuB,KAAA,CAAA,CACvBtD,gBAAAA,CAAAA,IAAAA,CAAAA,UAAU,KAAA,CAAA,CACVC,gBAAAA,CAAAA,IAAAA,CAAAA,mBAAAA,CAAoB,KAAA,CAAA,CACpB78H,gBAAAA,CAAAA,IAAAA,CAAAA,iBAAAA,CAAkB,OAClB0gI,gBAAAA,CAAAA,IAAAA,CAAAA,sBAAAA,CAAuB,KAAA,CAAA,CACvB+B,gBAAAA,CAAAA,IAAAA,CAAAA,eAAAA,CAAgBhpC,WAAAA,CAAAA,CAChBgoC,sBAAAA,qBAAAA,CAAsBhoC,WAAAA,CAAAA,CACtBwnC,gBAAAA,CAAAA,IAAAA,CAAAA,mBAAAA,CAAoB,CAAA,CAAA,CACpB5B,gBAAAA,CAAAA,IAAAA,CAAAA,cAAc,KAAA,CAAA,CACdW,gBAAAA,CAAAA,IAAAA,CAAAA,sBAAAA,CAAuB,KAAA,CAAA,CACvB9D,gBAAAA,CAAAA,IAAAA,CAAAA,mBAAAA,CAAoB,OACpBsD,gBAAAA,CAAAA,IAAAA,CAAAA,cAAAA,CAAe,CAAA,CAAA,CACfe,gBAAAA,CAAAA,IAAAA,CAAAA,eAAAA,CAAgB,KAAA,CAAA,CAChBhB,sBAAAA,cAAAA,CAAe,KAAA,CAAA,CACfE,gBAAAA,CAAAA,IAAAA,CAAAA,UAAAA,CAAW,KAAA,CAAA,CACXC,gBAAAA,CAAAA,IAAAA,CAAAA,iBAAiB,KAAA,CAAA,CACjBI,gBAAAA,CAAAA,IAAAA,CAAAA,cAAAA,CAAe,KAAA,CAAA,CACfU,gBAAAA,CAAAA,IAAAA,CAAAA,sBAAAA,CAAuB,OACvBC,gBAAAA,CAAAA,IAAAA,CAAAA,YAAAA,CAAa,KAAA,CAAA,CACbnf,gBAAAA,CAAAA,IAAAA,CAAAA,KAAAA,CAAMlyB,QAAAA,CAAAA,CACNtkI,sBAAAA,OAAAA,CAAQupI,UAAAA,CAAAA,CACRquC,gBAAAA,CAAAA,IAAAA,CAAAA,SAAAA,CAAU,EAAC,CAAA,CACXvB,sBAAAA,kBAAAA,CAAmB/rC,kBAAAA,CAAAA,CACnBisC,gBAAAA,CAAAA,IAAAA,CAAAA,oBAAAA,CAAqB,IAAA,CAAA,CACrBC,gBAAAA,CAAAA,IAAAA,CAAAA,4BAA4B,IAAA,CAAA,CAC5BF,gBAAAA,CAAAA,IAAAA,CAAAA,eAAAA,CAAgB,UAAA,CAAA,CAChBG,gBAAAA,CAAAA,IAAAA,CAAAA,iBAAAA,CAAkB,MAGlBjB,gBAAAA,CAAAA,IAAAA,CAAAA,iBAAAA,CAAkB,CAAA,CAAA,CAClBL,gBAAAA,CAAAA,IAAAA,CAAAA,oBAAAA,CAAqB,KAAA,CAAA,CACrBd,sBAAAA,wBAAAA,CAAyB,KAAA,CAAA,CACzB1B,gBAAAA,CAAAA,IAAAA,CAAAA,QAAAA,CAAS,EAAE,CAAA,CACXM,sBAAAA,UAAAA,CAAW,KAAA,CAAA,CACXF,gBAAAA,CAAAA,IAAAA,CAAAA,kBAAAA,CAAmB,CAAA,CAAA,CACnBqE,gBAAAA,CAAAA,IAAAA,CAAAA,iBAAiB,EAAC,CAAA,CAClB5G,gBAAAA,CAAAA,IAAAA,CAAAA,aAAAA,CAAc,KAAA,CAAA,CACdyF,gBAAAA,CAAAA,IAAAA,CAAAA,gBAAgB,KAAA,EAAA,CACjB,CAAA,CAEA,IAAI4B,uBAAAA,CAA0B,KAAA,CAkB7B,IAAItiC,MAAO,CACV,OAAO,IAAI,CAACuiC,UAAU,CAACviC,IAAI,CAC5B,WAAA,EAAA,CAnBA3sE,gBAAAA,CAAAA,IAAAA,CAAAA,SAAAA,CAA0B,IAAI/1E,GAAAA,CAAAA,CAC9BmrE,sBAAAA,uBAAAA,CAAwB,KAAA,CAAA,CACxB+5G,gBAAAA,CAAAA,IAAAA,CAAAA,UAAAA,CAAW,KAAA,CAAA,CACXC,gBAAAA,CAAAA,IAAAA,CAAAA,gBAAgB,KAAA,CAAA,CAChBC,gBAAAA,CAAAA,IAAAA,CAAAA,WAAAA,CAAY,KAAA,CAAA,CACZC,gBAAAA,CAAAA,IAAAA,CAAAA,kBAAAA,CAAmB,UACnBC,gBAAAA,CAAAA,IAAAA,CAAAA,kBAAAA,CAAmB,QAAA,CAAA,CACnBC,gBAAAA,CAAAA,IAAAA,CAAAA,kBAAAA,CAAmB,KAAA,CAAA,CACnBC,sBAAAA,cAAAA,CAAe,KAAA,CAAA,CACfC,gBAAAA,CAAAA,IAAAA,CAAAA,0BAAAA,CAA2B,KAAA,CAAA,CAC3BC,gBAAAA,CAAAA,IAAAA,CAAAA,wBAAwB,KAAA,CAAA,CACxBC,gBAAAA,CAAAA,IAAAA,CAAAA,aAAAA,CAAc,KAAA,CAAA,CACdC,gBAAAA,CAAAA,IAAAA,CAAAA,kBAAAA,CAAmB,OACnBC,gBAAAA,CAAAA,IAAAA,CAAAA,sBAAAA,CAAuB,KAAA,CAAA,CACvBC,gBAAAA,CAAAA,IAAAA,CAAAA,OAAAA,CAAQ,KAAA,CAAA,CACRb,sBAAAA,YAAAA,CAAa,IAAIJ,gBAAAA,EAAAA,CAKlB,CAAA,CACA,SAASkB,uBAAAA,CAAwBrrL,IAAI,CAAEurE,OAAO,CAAA,CAC7C,GAAIvrE,IAAAA,GAAS,MAAA,CAAQ,CACpBqT,MAAAA,CAAOi4K,cAAc,CAAChB,uBAAAA,CAAwBiB,SAAS,CAAEvrL,KAAM,CAC9DpG,GAAAA,CAAK,UAAA,CACJ,OAAO,IAAI,CAAC2wL,UAAU,CAACh/G,OAAAA,EAAWvrE,IAAAA,CACnC,CAAA,CACA6D,GAAAA,CAAK,SAASkB,KAAK,CAAA,CAClB,IAAI,CAACwlL,UAAU,CAACh/G,SAAWvrE,IAAAA,CAAK,CAAG+E,MACpC,CACD,CAAA,EACD,CACD,CACAsmL,uBAAAA,CAAwB,YAAA,CAAc,eAAA,CAAA,CACtC,IAAIG,WAAAA,CAAc,IAAIrB,iBACtB,IAAIsB,mBAAAA,CAAsBp4K,MAAAA,CAAOq4K,mBAAmB,CAACF,WAAAA,CAAAA,CACrD,IAAK,MAAMG,SAAAA,IAAaF,mBAAAA,CAAqB,CAC5CJ,uBAAAA,CAAwBI,mBAAmB,CAACE,SAAAA,CAAU,EACvD,CAEA,IAAIC,eAAAA,CAAkB,CAErBznC,YAAYz1I,QAAQ,CAAA,CACnB,OAAO,CAAC,GAAG,EAAE2E,OAAOyB,IAAI,CAACpG,QAAAA,CAAAA,CAAUvB,IAAI,EAAA,CAAG3J,GAAG,CAAC,GAACyB,EAAAA,CAC9C,GAAIA,GAAAA,GAAQ,cAAA,CAAgB,CAC3B,OAAOyJ,QAAAA,CAASk7K,YAAY,EAAE3kL,GAAAA,EAAO,EACtC,CAAA,KAAO,GAAIA,GAAAA,GAAQ,QAAA,CAAU,CAC5B,OAAO2mL,eAAAA,CAAgBC,iBAAiB,CAACn9K,QAAAA,CAC1C,CACA,OAAOzJ,GAAAA,CAAMyJ,QAAQ,CAACzJ,IAAI,CAC3B,CAAA,CAAGlI,IAAI,CAAC,IAAA,CAAA,CAAM,CAAC,CAChB,CACA8uL,iBAAAA,CAAkBn9K,QAAQ,CAAA,CACzB,OAAO,CAAC,OAAO,EAAEA,QAAAA,CAAS02K,MAAM,CAAC5hL,GAAG,CAAC,KAAC0wK,EAAAA,CACrC,OAAO,CAACxlK,QAAAA,CAASy2K,wBAAwB,EAAIjR,MAAMn9J,KAAK,GAAK+gI,qBAAAA,CAAwB,CAAC,EAAEo8B,KAAAA,CAAMjvK,GAAG,CAAC,CAAC,CAAC,CAAG,EACxG,CAAA,CAAA,CAAGlI,IAAI,CAAC,EAAA,CAAA,CAAI,CACb,CACD,CAAA,CAEA,IAAI+uL,SAAAA,CAA4B,IAAIxmL,GAAAA,CACpC,IAAIymL,mBAAAA,CAAuBr9K,WAC1B,OAAO2E,MAAAA,CAAOyB,IAAI,CAACpG,QAAAA,CAAAA,CAAUs+D,MAAM,CAAC,GAAC/nE,EAAQA,GAAAA,GAAQ,YAAA,CAAA,CAAckI,IAAI,EACxE,EACA,IAAI6+K,uBAAAA,CAA0B,cAAcvnC,eAAAA,CAI3CN,WAAAA,CAAYz1I,QAAQ,CAAE,CACrB,IAAIu9K,KAAAA,CACJ,GAAIv9K,QAAAA,GAAa,IAAI,CAACw9K,iBAAiB,CAAE,CACxC,GAAI,CAAC,IAAI,CAACC,QAAQ,CAAE,IAAI,CAACA,QAAQ,CAAGJ,oBAAoBr9K,QAAAA,CAAAA,CACxDu9K,KAAAA,CAAQ,IAAI,CAACE,SACd,MAAO,GAAIz9K,QAAAA,GAAa,IAAI,CAAC09K,cAAc,CAAE,CAC5C,GAAI,CAAC,IAAI,CAACH,KAAK,CAAE,IAAI,CAACA,KAAK,CAAGF,mBAAAA,CAAoBr9K,QAAAA,CAAAA,CAClDu9K,KAAAA,CAAQ,IAAI,CAACA,MAAK,CACnB,KAAO,CACNA,KAAAA,CAAQF,oBAAoBr9K,QAAAA,EAC7B,CACA,MAAMg2I,WAAAA,CAAcD,eAAAA,CAAgBC,WAAW,CAACh2I,QAAAA,CAAS2sE,OAAO,CAAA,CAChE,MAAMp2E,GAAAA,CAAM,CAAC;AACf,EAAEy/I,WAAAA;AACF,EAAEunC,MAAMzoL,GAAG,CAAC,IAACxH,EAASA,KAAO0S,QAAQ,CAAC1S,IAAAA,CAAK,CAAA,CAAEe,IAAI,CAAC,IAAA,CAAA,CAAM,EAAE6uL,eAAAA,CAAgBznC,WAAW,CAACz1I,QAAAA,CAAS67K,UAAU,CAAA,CAAE,CAAC,CAC1G,OAAOtlL,GACR,CACAonL,sBAAAA,CAAuBC,iBAAiB,CAAEC,UAAU,CAAE79K,QAAQ,CAAE89K,mBAAAA,CAAsB,IAAI,CAAE,CAC3F,MAAMC,YAAc/9K,QAAQ,CAAC49K,iBAAAA,CAAkB,CAC/C,MAAMI,SAAAA,CAAYh+K,QAAQ,CAAC69K,UAAAA,CAAW,CACtC,MAAMI,UAAAA,CAAaj+K,QAAAA,CAAS67K,UAAU,CAACviC,IAAI,GAAKlJ,eAChD,IAAIviE,UAAAA,CACJ,GAAIowG,UAAAA,EAAcj+K,QAAAA,CAAS67K,UAAU,CAACvH,cAAc,GAAKjjC,wBAAAA,CAA0B,CAClFxjE,UAAAA,CAAa,eACd,CAAA,KAAO,GAAIowG,UAAAA,EAAcj+K,QAAAA,CAAS67K,UAAU,CAACvH,cAAc,GAAKhjC,uBAAAA,CAAyB,CACxFzjE,WAAa,eACd,CAAA,KAAO,CACN,GAAIkwG,cAAgB,CAAA,CAAG,CACtBlwG,UAAAA,CAAa,CAAC,GAAG,EAAEmwG,SAAAA,CAAU,EAC9B,MAAO,CACNnwG,UAAAA,CAAa,CAAC,GAAG,EAAEmwG,UAAU,CAAC,EAAED,WAAAA,CAAY,EAAC,CAE9C,GAAIE,UAAAA,EAAcH,mBAAAA,EAAuB99K,SAASk+K,SAAS,EAAIN,iBAAAA,GAAsB,oBAAA,CAAsB,CAC1G/vG,UAAAA,EAAc,eACf,CACD,CACA,OAAOA,UACR,CACAswG,iBAAAA,CAAkB7qL,IAAI,CAAE8qL,QAAQ,CAAE7C,SAAS,CAAE5G,MAAM,CAAE,CACrD,CACA0J,cAAAA,CAAetK,QAAQ,CAAEqK,QAAQ,CAAE7C,SAAS,CAAEv7K,QAAQ,CAAE20K,MAAM,CAAEzhD,OAAO,CAAE1uF,SAAW,IAAI,CAAE,CACzF,MAAM85I,YAAc,CAAC,EAAEF,QAAAA,CAAS,GAAG,CAAC,CACpC,MAAMG,aAAeH,QAAAA,CAASnhG,WAAW,GACzC,MAAM4gG,UAAAA,CAAa,CAAC,EAAES,YAAY,EAAE,CAAC,CACrC,MAAME,mBAAqB,CAAC,EAAEF,WAAAA,CAAY,UAAU,CAAC,CACrD,MAAMV,kBAAoB,CAAC,EAAEU,YAAY,SAAS,CAAC,CACnD,MAAMG,gBAAkB,CAAC,EAAEH,WAAAA,CAAY,OAAO,CAAC,CAC/C,MAAMI,0BAAAA,CAA6B,CAAC,EAAEN,QAAAA,CAAS,kBAAkB,CAAC,CAClE,MAAMO,aAAe,CAAC,EAAEP,QAAAA,CAAS,IAAI,CAAC,CACtC,MAAMQ,mBAAAA,CAAsB,CAAC,EAAER,QAAAA,CAAS,WAAW,CAAC,CACpD,MAAMS,kBAAAA,CAAqB,CAAC,EAAET,QAAAA,CAAS,IAAI,CAAC,CAC5C,MAAMU,UAAAA,CAAa,CAAC,EAAEV,QAAAA,CAAS,MAAM,CAAC,CACtC,MAAMW,UAAAA,CAAa/+K,QAAQ,CAAC2+K,YAAAA,CAAa,CACzC,MAAMK,iBAAAA,CAAoBh/K,QAAQ,CAAC4+K,mBAAAA,CAAoB,CACvD,MAAMK,aAAAA,CAAgBj/K,QAAQ,CAACs+K,YAAY,CAC3C,MAAMY,iBAAAA,CAAoBl/K,QAAQ,CAACw+K,kBAAAA,CAAmB,CACtD,MAAMW,gBAAAA,CAAmBn/K,QAAQ,CAAC6+K,kBAAAA,CAAmB,CACrD,MAAMO,SAAAA,CAAYzK,OAAOzpL,GAAG,CAACqwL,SAAAA,CAAAA,CAC7B,GAAI0D,cAAe,CAClBlL,QAAAA,CAAS5+K,GAAG,CAAC,CAAC,IAAI,EAAEopL,YAAAA,CAAa,QAAQ,CAAC,CAAE,EAAA,CAAA,CAC5C,MAAM/I,EAAAA,CAAK,IAAI,CAACmI,sBAAsB,CAACC,iBAAAA,CAAmBC,UAAAA,CAAY79K,UACtE+zK,QAAAA,CAAS5+K,GAAG,CAAC,CAAC,KAAK,EAAEopL,YAAAA,CAAa,YAAY,CAAC,CAAE/I,EAAAA,CAAAA,CACjDzB,QAAAA,CAAS5+K,GAAG,CAAC,CAAC,KAAK,EAAEopL,YAAAA,CAAa,iBAAiB,CAAC,CAAEv+K,QAAQ,CAACy+K,gBAAgB,CAAA,CAC/E,MAAMY,UAAY,CAAC,KAAK,EAAEd,YAAAA,CAAa,cAAc,CAAC,CACtD,GAAIa,SAAAA,CAAUxtL,QAAQ,CAACytL,SAAAA,CAAAA,CAAY,CAClC,IAAI9jJ,WAAAA,CAAc,CAAC,QAAQ,EAAE+iJ,WAAAA,CAAY,CAAC,CAC1C,MAAMgB,KAAAA,CAAQpsD,OAAO,CAACgsD,kBAAkB,CACxC,GAAII,MAAO,CACV/jJ,WAAAA,CAAc+jJ,MACf,CAAA,KAAO,CACNpsD,OAAO,CAACgsD,kBAAkB,CAAG3jJ,WAAAA,CAC7Bw4I,QAAAA,CAAS5+K,GAAG,CAAC,CAAC,IAAI,EAAEopL,YAAAA,CAAa,iBAAiB,CAAC,CAAE,IACtD,CACAxK,QAAAA,CAAS5+K,GAAG,CAACkqL,SAAAA,CAAW9jJ,WAAAA,EACzB,CACA,GAAIiJ,QAAAA,CAAU,CACb,MAAM+6I,aAAAA,CAAgBv/K,QAAQ,CAACy+K,eAAAA,CAAgB,GAAK,KAAA,CAAQ,cAAgB3P,UAAAA,CAAWC,UAAU,CAACvqI,QAAAA,CAAAA,CAClGuvI,QAAAA,CAAS5+K,GAAG,CAAC,CAAC,KAAK,EAAEopL,aAAa,gBAAgB,CAAC,CAAEgB,aAAAA,EACtD,CACD,CACA,GAAIP,iBAAAA,CAAmB,CACtBjL,SAAS5+K,GAAG,CAAC,CAAC,IAAI,EAAEopL,aAAa,OAAO,CAAC,CAAE,EAAA,CAAA,CAC3CxK,SAAS5+K,GAAG,CAAC,CAAC,KAAK,EAAEopL,YAAAA,CAAa,gBAAgB,CAAC,CAAEv+K,QAAQ,CAAC0+K,0BAAAA,CAA2B,EAC1F,CACA,GAAIS,iBAAkB,CACrBpL,QAAAA,CAAS5+K,GAAG,CAAC,CAAC,KAAK,EAAEopL,YAAAA,CAAa,YAAY,CAAC,CAAEY,gBAAAA,EAClD,CACA,GAAIJ,WAAY,CACfhL,QAAAA,CAAS5+K,GAAG,CAAC,CAAC,IAAI,EAAEopL,YAAAA,CAAa,SAAS,CAAC,CAAE,EAAA,EAC9C,CACA,GAAI,CAAC,CAACv+K,QAAQ,CAAC8+K,UAAAA,CAAW,CAAE,CAC3B/K,QAAAA,CAAS5+K,GAAG,CAAC,CAAC,IAAI,EAAEopL,YAAAA,CAAa,OAAO,CAAC,CAAE,IAC5C,CACD,CACAiB,gBAAgBh9J,CAAC,CAAEi9J,IAAI,CAAEC,UAAU,CAAE,CACpC,MAAMC,YAAAA,CAAeD,UAAAA,CAAWx0L,GAAG,CAACs3B,CAAAA,CAAAA,CACpC,GAAIm9J,YAAAA,CAAe,CAAA,CAAG,CACrB,GAAIA,aAAeF,IAAAA,CAAKhxL,MAAM,CAAE,CAC/B,OAAOgxL,IAAAA,CAAKhwL,SAAS,CAAC,CAAA,CAAGkwL,aAC1B,CAAA,KAAO,GAAIA,aAAeF,IAAAA,CAAKhxL,MAAM,CAAE,CACtC,IAAI4iD,GAAAA,CAAMouI,IAAAA,CACV,MAAMG,GAAAA,CAAMvuI,GAAAA,CAAIrhD,MAAM,CAACqhD,IAAI5iD,MAAM,CAAG,CAAA,CAAA,CACpC,MAAMoxL,OAASF,YAAAA,CAAetuI,GAAAA,CAAI5iD,MAAM,CACxC,IAAK,IAAID,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAKqxL,MAAAA,CAAQrxL,KAAM6iD,GAAAA,EAAOuuI,GAAAA,CAC3C,OAAOvuI,GACR,CACA,OAAOouI,IACR,CACD,CACAK,mBAAmBC,SAAS,CAAE//K,QAAQ,CAAE,CACvC,MAAMm0K,KAAAA,CAAQ,EAAE,CAChB,MAAMC,gBAAkB,EAAE,CAC1B,MAAMC,aAAAA,CAAgB,EAAE,CACxB,MAAMe,SAAAA,CAAY,CAAA,CAClB,IAAK,MAAM5yJ,CAAAA,IAAK46J,UAAUh3K,IAAI,EAAA,CAAI,CACjC,MAAM45K,OAAAA,CAAU,CAAC,EAAEx9J,EAAE,GAAG,CAAC,CACzB,GAAIxiB,QAAQ,CAAC,CAAC,EAAEwiB,CAAAA,CAAE,WAAW,CAAC,CAAC,CAAE,CAChC,MAAMy9J,iBAAmB,CAAC,EAAEz9J,CAAAA,CAAE,kBAAkB,CAAC,CACjDxiB,QAAQ,CAACigL,iBAAiB,CAAG,IAAI,CAACT,eAAe,CAACh9J,CAAAA,CAAGxiB,QAAQ,CAACigL,gBAAAA,CAAiB,CAAE7C,WAClF,CACA,GAAIp9K,QAAQ,CAACggL,QAAQ,CAAE,CACtB,MAAME,WAAAA,CAAc,CAAC,EAAEF,OAAAA,CAAQ,OAAO,CAAC,CACvC,MAAMG,aAAAA,CAAgB,CAAC,EAAEH,OAAAA,CAAQ,SAAS,CAAC,CAC3C,MAAMI,MAAAA,CAAS,CAAC,EAAEJ,OAAAA,CAAQ,EAAE,CAC5BhgL,CAAAA,QAAQ,CAACogL,MAAAA,CAAO,CAAGryL,KAAK4T,GAAG,CAAC3B,QAAQ,CAACogL,MAAAA,CAAO,CAAEhL,SAAAA,CAAY,CAAA,CAC1Dp1K,CAAAA,QAAQ,CAACkgL,WAAAA,CAAY,CAAG,IAAI,CAACV,eAAe,CAACh9J,CAAAA,CAAGxiB,QAAQ,CAACkgL,YAAY,CAAE9C,SAAAA,CAAAA,CACvE,MAAMiD,KAAAA,CAAQrgL,QAAQ,CAACogL,MAAAA,CACvBjM,CAAAA,KAAK,CAACkM,KAAAA,CAAM,CAAG,IACfjM,CAAAA,eAAe,CAACiM,KAAAA,CAAM,CAAGjM,eAAe,CAACiM,KAAAA,CAAM,EAAIrgL,QAAQ,CAACggL,OAAAA,CAAQ,EAAI,CAAChgL,QAAQ,CAACmgL,aAAAA,CAAc,CAChG,GAAIngL,QAAQ,CAACmgL,aAAAA,CAAc,CAAE,CAC5B9L,aAAAA,CAAc/kL,IAAI,CAAC,CAClBgC,IAAAA,CAAMkxB,CAAAA,CACNmY,GAAI36B,QAAQ,CAACmgL,cAAc,CAC3B3K,EAAAA,CAAIx1K,QAAQ,CAACogL,OAAM,CACpB,EACD,CACD,CACD,CACA,GAAIpgL,QAAAA,CAAS87K,QAAQ,CAAE,CACtB3H,KAAK,CAAC,EAAE,CAAG,IACXC,CAAAA,eAAe,CAAC,CAAA,CAAE,CAAGA,eAAe,CAAC,CAAA,CAAE,GAAK,OAASA,eAAe,CAAC,CAAA,CAAE,CAAG,KAC3E,CACA2L,SAAAA,CAAU7L,oBAAoB,CAACC,KAAAA,CAAOC,gBAAiBC,aAAAA,EACxD,CACAiM,sBAAAA,CAAuBtgL,QAAQ,CAAE+zK,QAAQ,CAAE16B,cAAc,CAAE,CAC1D,MAAMw6B,UAAAA,CAAa,CAACC,SAAAA,CAAWxiL,KAAM+E,KAAAA,CAAQ,EAAE,IAC9C,GAAIy9K,SAAAA,CAAW,CACdC,QAAAA,CAAS5+K,GAAG,CAAC7D,IAAAA,CAAM+E,OACpB,CACD,CAAA,CACAw9K,UAAAA,CAAW7zK,QAAAA,CAASugL,QAAQ,CAAE,cAAA,CAAgB,EAAA,CAAA,CAC9C1M,UAAAA,CAAW7zK,SAASwgL,gBAAgB,CAAE,yBAA0B,EAAA,CAAA,CAChE3M,UAAAA,CAAW7zK,SAASygL,WAAW,EAAIzgL,QAAAA,CAAS67K,UAAU,CAACvD,WAAW,CAAE,mBAAoB,EAAA,CAAA,CACxFzE,UAAAA,CAAW7zK,SAASk+K,SAAS,CAAE,gBAAA,CAAkB,EAAA,CAAA,CACjDrK,WAAW,IAAA,CAAM,cAAA,CAAgB1gC,aAAa,CAACnzI,QAAAA,CAAS0gL,YAAY,EAAIztC,eAAAA,CAAgB,CAAA,CACxF4gC,UAAAA,CAAW7zK,SAAS2gL,kBAAkB,CAAE,0BAAA,CAA4B,EAAA,CAAA,CACpE9M,WAAW7zK,QAAAA,CAAS4gL,gBAAgB,CAAE,oBAAA,CAAsB,IAC5D/M,UAAAA,CAAW7zK,QAAAA,CAAS4gL,gBAAgB,GAAK5gL,SAAS67K,UAAU,CAACvD,WAAW,EAAIt4K,SAAS67K,UAAU,CAACrC,aAAY,EAAI,uBAAA,CAAyB,EAAA,CAAA,CACzI3F,UAAAA,CAAW7zK,QAAAA,CAAS6gL,KAAK,EAAI7gL,QAAAA,CAAS8gL,aAAa,EAAI9gL,QAAAA,CAAS08K,KAAK,CAAE,QAAA,CAAU,EAAA,CAAA,CACjF7I,UAAAA,CAAW,KAAM,oBAAA,CAAsBzgC,WAAW,CAACiG,cAAAA,CAAe3C,SAAS,CAAG12I,QAAAA,CAAS67K,UAAU,CAACH,aAAa,CAAG17K,QAAAA,CAAS67K,UAAU,CAACnB,mBAAmB,CAAC,EAC3J,CACAtiC,sBAAAA,CAAuB17G,MAAM,CAAE18B,QAAQ,CAAE,CACxC,MAAMq5I,eAAiB1C,UAAAA,CAAWzrJ,GAAG,CAACwxC,MAAAA,CAAAA,CAAQq6G,UAAU,CAAC/2I,QAAAA,CAAS67K,UAAU,CAACviC,IAAI,EACjF,MAAMynC,aAAAA,CAAgB1nC,cAAAA,CAAe3C,SAAS,CAC9C,MAAMqpC,SAAAA,CAAY,IAAInM,SAAAA,CAAUl3I,OAAQ18B,QAAAA,CAAS67K,UAAU,CAAA,CAC3D,IAAI,CAACiE,kBAAkB,CAACC,UAAW//K,QAAAA,CAAAA,CACnC,MAAMghL,eAAiB,EACvBhhL,CAAAA,QAAAA,CAAS67K,UAAU,CAACpD,YAAY,CAAGz4K,QAAAA,CAAS67K,UAAU,CAACpD,YAAY,GAAK,CAAA,CAAI/vC,gBAAkB1oI,QAAAA,CAAS67K,UAAU,CAACpD,YAAY,CAC9H,MAAM1E,QAAAA,CAAWgM,SAAAA,CAAUhM,QAAQ,CACnC,IAAI,CAACuM,sBAAsB,CAACtgL,QAAAA,CAAU+zK,SAAU16B,cAAAA,CAAAA,CAChD,IAAI2+B,UAAAA,CAAa,EAAA,CACjB,GAAI+I,aAAAA,CAAe,CAClB,GAAI/gL,QAAAA,CAASk+K,SAAS,CAAE,CACvB,IAAI,CAACG,cAAc,CAACtK,QAAAA,CAAU,QAAA,CAAU,aAAc/zK,QAAAA,CAAU+/K,SAAAA,CAAUpL,MAAM,CAAEqM,cAAAA,EACnF,CACA,GAAIhhL,SAAS67K,UAAU,CAAC5B,SAAS,GAAKryC,UAAAA,EAAc5nI,SAAS67K,UAAU,CAAC5qB,SAAS,EAAIjxJ,SAAS67K,UAAU,CAAC5iI,eAAe,EAAIj5C,SAAS67K,UAAU,CAACH,aAAa,GAAKhpC,YAAa,CAC9K,IAAI,CAAC2rC,cAAc,CAACtK,SAAU,SAAA,CAAW,WAAA,CAAa/zK,QAAAA,CAAU+/K,SAAAA,CAAUpL,MAAM,CAAEqM,cAAAA,EACnF,CACA,GAAIjB,UAAUvL,WAAW,CAAE,CAC1B,GAAIx0K,SAASihL,SAAS,EAAIjhL,SAASkhL,kBAAkB,EAAIlhL,SAASk+K,SAAS,CAAE,CAC5E,GAAI,CAACl+K,QAAAA,CAAS67K,UAAU,CAACpoI,WAAW,CAAE,CACrC,MAAM0tI,QAAAA,CAAWnhL,QAAAA,CAASihL,SAAS,CAAG,WAAA,CAAcjhL,SAASkhL,kBAAkB,CAAG,qBAAuB,WAAA,CACzGlJ,UAAAA,CAAa,IAAI,CAAC2F,sBAAsB,CAAC,CAAC,EAAEwD,QAAAA,CAAS,SAAS,CAAC,CAAE,CAAC,EAAEA,SAAS,EAAE,CAAC,CAAEnhL,QAAAA,CAAU,KAAA,EAC7F,CACD,CACA,IAAI,CAACq+K,cAAc,CAACtK,QAAAA,CAAU,cAAA,CAAgB,aAAA,CAAe/zK,QAAAA,CAAU+/K,UAAUpL,MAAM,CAAEqM,cAAAA,CAAgBhhL,QAAAA,CAASq8K,wBAAwB,CAAG,IAAA,CAAO,OACpJ,IAAI,CAACgC,cAAc,CAACtK,QAAAA,CAAU,QAAA,CAAU,aAAA,CAAe/zK,SAAU+/K,SAAAA,CAAUpL,MAAM,CAAEqM,cAAAA,CAAgBhhL,SAASo8K,YAAY,CAAG,IAAA,CAAO,KAAA,EACnI,CACA,GAAIp8K,QAAAA,CAASohL,aAAa,CAAE,CAC3B,IAAI,CAAC/C,cAAc,CAACtK,QAAAA,CAAU,gBAAiB,WAAA,CAAa/zK,QAAAA,CAAU+/K,SAAAA,CAAUpL,MAAM,CAAEqM,cAAAA,CAAgBhhL,QAAAA,CAASqhL,qBAAqB,EACvI,CACA,IAAI,CAAChD,cAAc,CAACtK,QAAAA,CAAU,UAAW,WAAA,CAAa/zK,QAAAA,CAAU+/K,SAAAA,CAAUpL,MAAM,CAAEqM,cAAAA,CAAgBhhL,QAAAA,CAASshL,eAAe,CAAA,CAC1H,GAAIthL,SAAS67K,UAAU,CAACrC,aAAa,CAAE,CACtC,IAAI,CAAC6E,cAAc,CAACtK,QAAAA,CAAU,aAAc,gBAAA,CAAkB/zK,QAAAA,CAAU+/K,SAAAA,CAAUpL,MAAM,CAAEqM,cAAAA,CAAAA,CAC1F,IAAI,CAAC3C,cAAc,CAACtK,QAAAA,CAAU,WAAA,CAAa,aAAA,CAAe/zK,QAAAA,CAAU+/K,UAAUpL,MAAM,CAAEqM,gBACtF,GAAI,CAAChhL,SAAS67K,UAAU,CAAC9C,YAAY,CAAE,CACtC,IAAI,CAACsF,cAAc,CAACtK,SAAU,KAAA,CAAO,OAAA,CAAS/zK,QAAAA,CAAU+/K,SAAAA,CAAUpL,MAAM,CAAEqM,cAAAA,EAC3E,CACD,CACA,GAAIhhL,SAAS67K,UAAU,CAAClD,cAAc,CAAE,CACvC,IAAI,CAAC0F,cAAc,CAACtK,SAAU,aAAA,CAAe,eAAA,CAAiB/zK,QAAAA,CAAU+/K,SAAAA,CAAUpL,MAAM,CAAEqM,cAAAA,CAAAA,CAC1F,IAAI,CAAC3C,cAAc,CAACtK,QAAAA,CAAU,sBAAA,CAAwB,wBAAA,CAA0B/zK,QAAAA,CAAU+/K,UAAUpL,MAAM,CAAEqM,cAAAA,EAC7G,CACA,GAAIjB,SAAAA,CAAUpJ,QAAQ,EAAI32K,QAAAA,CAAS67K,UAAU,CAACvD,WAAW,EAAIyH,SAAAA,CAAUxH,WAAW,EAAIv4K,QAAAA,CAAS67K,UAAU,CAACrC,aAAa,CAAE,CACxH,GAAIx5K,QAAAA,CAAS67K,UAAU,CAACnD,QAAQ,CAAE,CACjC,IAAI,CAAC2F,cAAc,CAACtK,SAAU,OAAA,CAAS,SAAA,CAAW/zK,SAAU+/K,SAAAA,CAAUpL,MAAM,CAAEqM,cAAAA,CAAgBhhL,SAASuhL,aAAa,CAAA,CACpH,IAAI,CAAClD,cAAc,CAACtK,QAAAA,CAAU,YAAA,CAAc,cAAA,CAAgB/zK,SAAU+/K,SAAAA,CAAUpL,MAAM,CAAEqM,cAAAA,EACzF,CACA,GAAIhhL,QAAAA,CAAS67K,UAAU,CAAC9C,YAAY,CAAE,CACrC,IAAI,CAACsF,cAAc,CAACtK,QAAAA,CAAU,WAAA,CAAa,aAAA,CAAe/zK,QAAAA,CAAU+/K,UAAUpL,MAAM,CAAEqM,gBACtF,IAAI,CAAC3C,cAAc,CAACtK,QAAAA,CAAU,KAAA,CAAO,OAAA,CAAS/zK,SAAU+/K,SAAAA,CAAUpL,MAAM,CAAEqM,cAAAA,EAC3E,CACA,GAAIhhL,QAAAA,CAAS67K,UAAU,CAAC5C,oBAAoB,CAAE,CAC7C,IAAI,CAACoF,cAAc,CAACtK,SAAU,mBAAA,CAAqB,qBAAA,CAAuB/zK,QAAAA,CAAU+/K,SAAAA,CAAUpL,MAAM,CAAEqM,cAAAA,EACvG,CACA,GAAIhhL,SAAS4gL,gBAAgB,CAAE,CAC9B,IAAI,CAACvC,cAAc,CAACtK,SAAU,UAAA,CAAY,YAAA,CAAc/zK,SAAU+/K,SAAAA,CAAUpL,MAAM,CAAEqM,cAAAA,CAAgBhhL,SAASwhL,gBAAgB,EAC9H,CACA,IAAI,CAACnD,cAAc,CAACtK,QAAAA,CAAU,OAAA,CAAS,UAAW/zK,QAAAA,CAAU+/K,SAAAA,CAAUpL,MAAM,CAAEqM,cAAAA,EAC/E,CACA,GAAIhhL,QAAAA,CAASyhL,QAAQ,CAAE,CACtB,IAAI,CAACpD,cAAc,CAACtK,SAAU,UAAA,CAAY,MAAA,CAAQ/zK,QAAAA,CAAU+/K,SAAAA,CAAUpL,MAAM,CAAEqM,cAAAA,EAC/E,CACA,GAAIhhL,QAAAA,CAAS6gL,KAAK,EAAI7gL,QAAAA,CAAS8gL,aAAa,EAAI9gL,SAAS08K,KAAK,CAAE,CAC/D,IAAI,CAAC2B,cAAc,CAACtK,QAAAA,CAAU,IAAA,CAAM,OAAQ/zK,QAAAA,CAAU+/K,SAAAA,CAAUpL,MAAM,CAAEqM,cAAAA,EACzE,CACA,IAAI,CAAC3C,cAAc,CAACtK,SAAU,UAAA,CAAY,YAAA,CAAc/zK,QAAAA,CAAU+/K,SAAAA,CAAUpL,MAAM,CAAEqM,cAAAA,CAAgBhhL,QAAAA,CAASi8K,gBAAgB,EAC7H,GAAIj8K,QAAAA,CAAS67K,UAAU,CAACrD,YAAY,CAAE,CACrC,IAAI,CAAC6F,cAAc,CAACtK,QAAAA,CAAU,WAAA,CAAa,aAAA,CAAe/zK,QAAAA,CAAU+/K,UAAUpL,MAAM,CAAEqM,cAAAA,CAAAA,CACtF,IAAI,CAAC3C,cAAc,CAACtK,SAAU,gBAAA,CAAkB,kBAAA,CAAoB/zK,SAAU+/K,SAAAA,CAAUpL,MAAM,CAAEqM,cAAAA,CAAAA,CAChG,IAAI,CAAC3C,cAAc,CAACtK,QAAAA,CAAU,kBAAmB,mBAAA,CAAqB/zK,QAAAA,CAAU+/K,SAAAA,CAAUpL,MAAM,CAAEqM,cAAAA,CAAgBhhL,QAAAA,CAASs8K,qBAAqB,CAAG,IAAA,CAAO,OAC3J,CACA,GAAIt8K,QAAAA,CAAS67K,UAAU,CAAC1G,iBAAiB,CAAE,CAC1C,IAAI,CAACkJ,cAAc,CAACtK,QAAAA,CAAU,YAAA,CAAc,cAAA,CAAgB/zK,SAAU+/K,SAAAA,CAAUpL,MAAM,CAAEqM,cAAAA,EACzF,CACA,GAAIhhL,QAAAA,CAASugL,QAAQ,EAAIvgL,QAAAA,CAASwgL,gBAAgB,CAAE,CACnD,IAAI,CAACnC,cAAc,CAACtK,QAAAA,CAAU,OAAA,CAAS,YAAA,CAAc/zK,SAAU+/K,SAAAA,CAAUpL,MAAM,CAAEqM,cAAAA,CAAgBhhL,QAAAA,CAASk8K,gBAAgB,EAC3H,CACD,CAAA,KAAO,CACN,MAAMxB,mBAAAA,CAAsB16K,QAAAA,CAAS67K,UAAU,CAACnB,mBAAmB,CACnE,GAAI16K,QAAAA,CAAS67K,UAAU,CAAC5qB,SAAS,EAAIypB,oBAAqB,CACzD,IAAI,CAAC2D,cAAc,CAACtK,QAAAA,CAAU,SAAA,CAAW,YAAa/zK,QAAAA,CAAU+/K,SAAAA,CAAUpL,MAAM,CAAEqM,gBACnF,CACD,CACAjB,SAAAA,CAAUnF,sBAAsB,CAACmF,SAAAA,CAAUpL,MAAM,CAACzpL,GAAG,CAAC,oBAAqB60L,SAAAA,CAAUpL,MAAM,CAACzpL,GAAG,CAAC,eAAA,CAAA,CAAkB8sL,UAAAA,CAAAA,CAClH,MAAMpmL,QAAAA,CAAWomJ,SAASC,KAAK,CAAC8nC,SAAAA,CAAUpL,MAAM,CAAEoL,SAAAA,CAAUnuL,QAAQ,EACpE,MAAMqiL,QAAAA,CAAW8L,UAAU9L,QAAQ,CACnCj0K,QAAAA,CAAS2sE,OAAO,CAACzxE,OAAO,CAAC,CAAC7E,KAAAA,CAAOE,MAAQ09K,QAAAA,CAAS9+K,GAAG,CAACoB,GAAAA,CAAKF,QAC3D2J,QAAAA,CAAS2sE,OAAO,CAACzxE,OAAO,CAAC,CAAC7E,KAAAA,CAAOE,GAAAA,GAAQw9K,QAAAA,CAAS5+K,GAAG,CAACoB,GAAAA,CAAKF,KAAAA,CAAAA,CAAAA,CAC3D,MAAMkvE,UAAAA,CAAa4M,sBAAsBE,gBAAgB,CAAC31C,MAAAA,CAAQ,CACjEprC,KAAM,gBAAA,CACNm4D,UAAAA,CAAYs2H,UAAUt2H,UAAU,CAChCqd,eAAgBi5G,SAAAA,CAAUj5G,cAAc,CACxCJ,UAAAA,CAAYq5G,UAAUzmH,OAAO,CAC7BqN,YAAAA,CAAco5G,SAAAA,CAAUvmH,OAAO,CAC/Bua,cAAAA,CAAgBniF,QAAAA,CAChBqiF,gBAAAA,CAAkBriF,SAClB6hF,eAAAA,CAAiBsgG,QAAAA,CACjBxgG,cAAe0gG,QAAAA,CACflyG,qBAAAA,CAAuB/hE,SAAS+hE,qBACjC,CAAA,CAAA,CACA,GAAIg+G,UAAU1mC,cAAc,CAAC3C,SAAS,CAAE,CACvCnxE,WAAWm8G,GAAG,CAAGrvJ,mBAClB,CACA,OAAOkzC,UACR,CAAA,WAAA,CAAA,GAAA,IAAA,CAAA,CA7Q6B,eAE7Bm4G,gBAAAA,CAAAA,IAAAA,CAAAA,gBAAAA,CAAiB,IAAI9B,uBAAAA,CAAAA,CACrB4B,gBAAAA,CAAAA,IAAAA,CAAAA,mBAAAA,CAAoB,IAAI5B,0BA2QzB,CAAA,CACA,IAAI+F,QAAAA,CAAW,IAAIrE,wBAEnB,IAAIsE,UAAAA,CAAa,EACjBA,CAAAA,UAAU,CAACn6C,kBAAkB,CAAG,CAAE3jI,IAAK4gB,aAAAA,CAAetX,GAAAA,CAAKsX,aAAAA,CAAeymB,EAAAA,CAAIvlB,8BAA+B,CAC7Gg8J,CAAAA,UAAU,CAACh6C,WAAW,CAAG,CAAE9jI,GAAAA,CAAK4gB,aAAAA,CAAetX,IAAKqX,cAAAA,CAAgB0mB,EAAAA,CAAIzlB,iBAAkB,CAC1Fk8J,CAAAA,UAAU,CAACj6C,YAAAA,CAAa,CAAG,CAAE7jI,IAAKihB,mBAAAA,CAAqB3X,GAAAA,CAAK6X,6BAAAA,CAA+BkmB,EAAAA,CAAIzlB,kBAAmBm8J,QAAAA,CAAUn9J,aAAc,CAC1Ik9J,CAAAA,UAAU,CAAC/5C,mBAAAA,CAAoB,CAAG,CAAE/jI,GAAAA,CAAK4gB,cAAetX,GAAAA,CAAK6X,6BAAAA,CAA+BkmB,EAAAA,CAAIzlB,iBAAkB,CAClHk8J,CAAAA,UAAU,CAACl6C,cAAAA,CAAe,CAAG,CAAE5jI,GAAAA,CAAK4gB,aAAAA,CAAetX,GAAAA,CAAKsX,cAAeymB,EAAAA,CAAIzlB,iBAAkB,CAC7Fk8J,CAAAA,UAAU,CAAC75C,mBAAAA,CAAoB,CAAG,CAAEjkI,GAAAA,CAAKihB,oBAAqB3X,GAAAA,CAAKsX,aAAAA,CAAeymB,EAAAA,CAAIzlB,iBAAkB,CACxGk8J,CAAAA,UAAU,CAAC55C,sBAAAA,CAAuB,CAAG,CAAElkI,GAAAA,CAAK+gB,oBAAqBzX,GAAAA,CAAKuX,mBAAAA,CAAqBwmB,GAAIzlB,iBAAkB,CACjHk8J,CAAAA,UAAU,CAAC35C,YAAAA,CAAa,CAAG,CAAEnkI,GAAAA,CAAKghB,8BAA+B1X,GAAAA,CAAKsX,aAAAA,CAAeymB,EAAAA,CAAIzlB,iBAAkB,CAC3Gk8J,CAAAA,UAAU,CAAC95C,oBAAAA,CAAqB,CAAG,CAAEhkI,GAAAA,CAAK+gB,mBAAAA,CAAqBzX,GAAAA,CAAKqX,cAAAA,CAAgB0mB,GAAIzlB,iBAAkB,CAC1Gk8J,CAAAA,UAAU,CAAC15C,SAAAA,CAAU,CAAG,CAAEpkI,GAAAA,CAAK4gB,cAAetX,GAAAA,CAAKsX,aAAAA,CAAeymB,GAAItlB,iBAAkB,CACxF+7J,CAAAA,UAAU,CAACz5C,SAAAA,CAAU,CAAG,CAAErkI,GAAAA,CAAK4gB,aAAAA,CAAetX,IAAKsX,aAAAA,CAAeymB,EAAAA,CAAIrlB,iBAAkB,CAAA,CACxF,IAAIg8J,IAAAA,CAAO,CAAA,CACX,IAAIC,QAAAA,CAAW,MAAMC,UA2BpB,IAAIC,WAAAA,CAAY5rL,KAAK,CAAE,CACtB,IAAI,CAAC6rL,SAAS,CAAC,cAAA,CAAgB7rL,KAAAA,EAChC,CACA,IAAI4rL,WAAAA,EAAc,CACjB,OAAO,IAAI,CAACt1G,OAAO,CAACp3E,GAAG,CAAC,cAAA,CACzB,CACA,IAAI4sL,eAAAA,EAAkB,CACrB,OAAO,IAAI,CAACC,aAAa,EAAI,IAC9B,CACA,IAAIlH,YAAAA,EAAe,CAClB,GAAI,CAAC,IAAI,CAACkH,aAAa,CAAE,CACxB,IAAI,CAACA,aAAa,CAAG,IAAIzqC,aAC1B,CACA,OAAO,IAAI,CAACyqC,aAAa,CAE1BC,eAAAA,CAAgBv7G,cAAAA,CAAiBryC,mBAAmB,CAAE,CACrD,MAAMkgJ,MAAAA,CAAS,IAAI,CAACuG,YAAY,CAChC,OAAOp0G,cAAAA,GAAmBryC,oBAAsBkgJ,MAAAA,CAAO98B,IAAI,CAAG88B,MAAAA,CAAOpuG,IAAI,CAE1E,IAAI+7G,mBAAAA,CAAoBjsL,KAAK,CAAE,CAC9B,IAAI,CAAC6kL,YAAY,CAACjuL,OAAO,CAAGoJ,MAC7B,CACA,IAAIisL,mBAAAA,EAAsB,CACzB,OAAO,IAAI,CAACpH,YAAY,CAACjuL,OAC1B,CACA,IAAI0nL,MAAAA,CAAOt+K,KAAK,CAAE,CACjB,IAAI,CAACksL,UAAU,CAAGlsL,MACnB,CACA,IAAIs+K,MAAAA,EAAS,CACZhwK,MAAAA,CAAOo1H,MAAM,CAAC,IAAI,CAACwoD,UAAU,CAAE59K,MAAAA,CAAO69K,WAAW,CAAC,IAAI,CAACtH,YAAY,CAACrjC,IAAI,CAAA,CAAA,CACxE,OAAO,IAAI,CAAC0qC,UAAU,CAEvB,IAAI70I,SAAAA,CAAUr3C,KAAK,CAAE,CACpB,IAAI,CAACosL,WAAW,CAAC/0I,SAAS,CAAGr3C,MAC9B,CACA,IAAIq3C,SAAAA,EAAY,CACf,OAAO,IAAI,CAAC+0I,WAAW,CAAC/0I,SAAS,CAElC,IAAIg1I,cAAAA,CAAersL,KAAK,CAAE,CACzB,IAAI,CAACosL,WAAW,CAAC70I,cAAc,CAAGv3C,MACnC,CACA,IAAIqsL,gBAAiB,CACpB,OAAO,IAAI,CAACD,WAAW,CAAC70I,cAAc,CAMvC,IAAI+0I,aAAAA,EAAgB,CACnB,OAAO,IAAI,CAACC,cAAc,CAE3B,IAAIn7I,KAAAA,EAAQ,CACX,OAAO,MACR,CACA,IAAI+D,QAAAA,CAASn1C,KAAK,CAAE,CACnB,IAAI,CAACwsL,WAAW,CAACr3I,QAAQ,CAAGn1C,MAC7B,CACA,IAAIm1C,QAAAA,EAAW,CACd,OAAO,IAAI,CAACq3I,WAAW,CAACr3I,QAAQ,CAEjC,IAAIC,UAAAA,CAAWp1C,KAAK,CAAE,CACrB,IAAI,CAACwsL,WAAW,CAACp3I,UAAU,CAAGp1C,MAC/B,CACA,IAAIo1C,UAAAA,EAAa,CAChB,OAAO,IAAI,CAACo3I,WAAW,CAACp3I,UACzB,CACA,IAAIC,SAAAA,CAAUr1C,KAAK,CAAE,CACpB,IAAI,CAACwsL,WAAW,CAACn3I,SAAS,CAAGr1C,MAC9B,CACA,IAAIq1C,SAAAA,EAAY,CACf,OAAO,IAAI,CAACm3I,WAAW,CAACn3I,SACzB,CACA,IAAIC,UAAAA,CAAWt1C,KAAK,CAAE,CACrB,IAAI,CAACwsL,WAAW,CAACl3I,UAAU,CAAGt1C,MAC/B,CACA,IAAIs1C,UAAAA,EAAa,CAChB,OAAO,IAAI,CAACk3I,WAAW,CAACl3I,UACzB,CAEA,IAAIyjH,WAAAA,EAAc,CACjB,OAAO,IAAI,CAACyzB,WAAW,CAAC93I,KAAK,CAE9B,IAAI+3I,kBAAAA,CAAmBzsL,KAAK,CAAE,CAC7B,IAAI,CAAC0sL,mBAAmB,CAAG1sL,MAC5B,CACA,IAAIysL,kBAAAA,EAAqB,CACxB,OAAO,IAAI,CAACC,mBAAmB,EAAI,CAAC,IAAI,CAAC3zB,WAAW,CAErD4zB,qBAAsB,CACrB,IAAK,MAAM5nC,YAAAA,IAAgB,IAAI,CAACW,aAAa,CAAE,CAC9CX,YAAAA,CAAagU,WAAW,CAAG,IAAI,CAACA,YAAW,CAE7C,CACA,IAAIv2G,UAAAA,CAAWxiD,KAAK,CAAE,CACrB,MAAM4sL,aAAAA,CAAgB,IAAI,CAACJ,WAAW,CAACh2I,sBAAsB,CAC7D,IAAI,CAACg2I,WAAW,CAACt1L,IAAI,CAAC8I,KAAAA,CAAAA,CACtB,IAAI,CAAC2sL,mBAAmB,GACxB,GAAIC,aAAAA,GAAkB,IAAI,CAACJ,WAAW,CAACh2I,sBAAsB,CAAE,CAC9D,IAAI,CAACq2I,aAAa,GACnB,CACD,CACA,IAAIrqI,UAAAA,EAAa,CAChB,OAAO,IAAI,CAACgqI,WACb,CACA,IAAI5I,SAAAA,CAAUr0K,IAAI,CAAE,CACnB,MAAMq9K,aAAAA,CAAgB,IAAI,CAACJ,WAAW,CAACh2I,sBAAsB,CAC7D,MAAMs2I,SAAAA,CAAYvB,UAAU,CAACh8K,KAAK,CAClC,IAAI,CAACi9K,WAAW,CAAC33I,aAAa,CAACi4I,SAAAA,CAAUh4I,EAAE,CAAEg4I,UAAUr/K,GAAG,CAAEq/K,SAAAA,CAAU/1K,GAAG,EACzE,IAAI,CAACy1K,WAAW,CAACv3I,aAAa,CAAC63I,SAAAA,CAAUp3I,OAAO,EAAIo3I,SAAAA,CAAUh4I,EAAE,CAAEg4I,SAAAA,CAAUtB,QAAQ,EAAIsB,UAAUr/K,GAAG,CAAEq/K,SAAAA,CAAUC,QAAQ,EAAID,SAAAA,CAAU/1K,GAAG,CAAA,CAC1I,MAAM29B,MAAQnlC,IAAAA,GAASgiI,UAAAA,CACvB,GAAI,IAAI,CAACi7C,WAAW,CAAC93I,KAAK,GAAKA,KAAAA,CAAO,CACrC,IAAI,CAAC83I,WAAW,CAAC93I,KAAK,CAAGA,KAAAA,CACzB,IAAI,CAACi4I,mBAAmB,GACzB,CACA,IAAI,CAACK,uBAAuB,GAC5B,GAAIJ,aAAAA,GAAkB,IAAI,CAACJ,WAAW,CAACh2I,sBAAsB,CAAE,CAC9D,IAAI,CAACq2I,aAAa,GACnB,CACD,CACA,IAAIjJ,SAAAA,EAAY,CACf,GAAI,CAAC,IAAI,CAAC7qB,WAAW,CAAE,CACtB,OAAOxnB,UACR,CACA,KAAM,CAAEh8F,OAAO,CAAEC,cAAc,CAAEC,cAAc,CAAEC,OAAO,CAAEC,cAAc,CAAEC,cAAc,CAAE,CAAG,IAAI,CAAC42I,WAAW,CAC7G,IAAK,IAAIr0L,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAKozL,WAAWnzL,MAAM,CAAED,EAAAA,EAAAA,CAAM,CAC9C,MAAM20L,SAAAA,CAAYvB,UAAU,CAACpzL,EAAAA,CAAG,CAChC,GAAI20L,SAAAA,CAAUr/K,GAAG,GAAK+nC,cAAAA,EAAkBs3I,UAAU/1K,GAAG,GAAK0+B,cAAAA,EAAkBq3I,SAAAA,CAAUh4I,EAAE,GAAKS,OAAAA,EAAWu3I,SAAAA,CAAUr/K,GAAG,GAAKkoC,cAAAA,EAAkBm3I,SAAAA,CAAU/1K,GAAG,GAAK6+B,cAAAA,EAAkBk3I,UAAUh4I,EAAE,GAAKY,OAAAA,CAAS,CACzM,OAAOv9C,EACR,CACD,CACA,OAAOm5I,YACR,CACA,IAAI7uF,UAAAA,CAAWziD,KAAK,CAAE,CACrB,IAAI,CAACosL,WAAW,CAACl1L,IAAI,CAAC8I,KAAAA,EACvB,CACA,IAAIyiD,YAAa,CAChB,OAAO,IAAI,CAAC2pI,WAAW,CAExB,IAAIa,SAAAA,CAAUjtL,KAAK,CAAE,CACpB,IAAI,CAACosL,WAAW,CAAC/xL,IAAI,CAAG2F,MACzB,CACA,IAAIitL,SAAAA,EAAY,CACf,OAAO,IAAI,CAACb,WAAW,CAAC/xL,IACzB,CACA,IAAIm6G,SAAAA,CAAUx0G,KAAK,CAAE,CACpB,IAAI,CAACosL,WAAW,CAAC1pL,IAAI,CAAG1C,MACzB,CACA,IAAIw0G,SAAAA,EAAY,CACf,OAAO,IAAI,CAAC43E,WAAW,CAAC1pL,IACzB,CACA,IAAIwqL,UAAAA,CAAWltL,KAAK,CAAE,CACrB,IAAI,CAACosL,WAAW,CAAC/mJ,KAAK,CAAGrlC,MAC1B,CACA,IAAIktL,UAAAA,EAAa,CAChB,OAAO,IAAI,CAACd,WAAW,CAAC/mJ,KAAK,CAE9BnuC,KAAK03C,MAAM,CAAE,CACZ,IAAI,CAAC3zC,IAAI,CAAG2zC,MAAAA,CAAO3zC,IAAI,CACvB,IAAI,CAAC2/J,SAAS,CAAGhsH,MAAAA,CAAOgsH,SAAS,CACjC,IAAI,CAACh4G,eAAe,CAAGhU,MAAAA,CAAOgU,eAAe,CAC7C,IAAI,CAAC4pI,WAAW,CAACt1L,IAAI,CAAC03C,MAAAA,CAAO49I,WAAW,CAAA,CACxC,IAAI,CAACJ,WAAW,CAACl1L,IAAI,CAAC03C,OAAOw9I,WAAW,CACxC,CAAA,IAAI,CAACM,mBAAmB,CAAG99I,MAAAA,CAAO89I,mBAAmB,CACrD,IAAI,CAAC5xB,IAAI,CAAGlsH,MAAAA,CAAOksH,IAAI,CACvB,IAAI,CAACn4G,SAAS,CAAG/T,MAAAA,CAAO+T,SAAS,CACjC,IAAI,CAAC4C,YAAY,CAAG3W,MAAAA,CAAO2W,YAAY,EAAEp4C,KAAAA,EAAAA,CACzC,GAAIyhC,MAAAA,CAAO4W,WAAW,CAAE,CACvB,IAAI,CAACA,WAAW,CAAG5W,MAAAA,CAAO2W,YAAY,GAAK3W,MAAAA,CAAO4W,WAAW,CAAG,IAAI,CAACD,YAAY,CAAG3W,MAAAA,CAAO4W,WAAW,CAACr4C,KAAK,GAC7G,CACA,IAAI,CAACsuJ,eAAe,EAAA,CACpB,IAAK,MAAMxgK,IAAAA,IAAQ2zC,OAAOk6E,UAAU,CAAE,CACrC,GAAIl6E,OAAOk6E,UAAU,CAACvkH,cAAc,CAACtJ,MAAO,CAC3C,IAAI,CAACkyL,mBAAmB,CAAClyL,KAAM2zC,MAAAA,CAAOk6E,UAAU,CAAC7tH,IAAAA,CAAK,CAAC6b,IAAI,EAC5D,CACD,CACA,IAAI,CAACw/D,OAAO,CAACz1E,KAAK,GAClB+tC,MAAAA,CAAO0nC,OAAO,CAACzxE,OAAO,CAAC,CAAC7E,KAAAA,CAAOE,GAAAA,GAAQ,IAAI,CAACo2E,OAAO,CAACx3E,GAAG,CAACoB,GAAAA,CAAKF,KAAAA,CAAAA,CAC7D,CAAA,IAAI,CAACotL,WAAW,CAAG,IACnB,CAAA,IAAI,CAACrB,aAAa,CAAGn9I,OAAOk9I,eAAe,CAAG,IAAIxqC,YAAAA,CAAiB,IACnE,CAAA,IAAI,CAACyqC,aAAa,EAAE70L,IAAAA,CAAK03C,MAAAA,CAAOm9I,aAAa,CAAA,CAC7C,OAAO,IACR,CACA5+K,KAAAA,EAAQ,CACP,MAAMA,KAAAA,CAAQ,IAAI,IAAI,CAAC,WAAW,CAClC,OAAOA,KAAAA,CAAMjW,IAAI,CAAC,IAAI,CACvB,CACA81L,uBAAAA,EAA0B,CACzB,IAAK,MAAMjoC,gBAAgB,IAAI,CAACW,aAAa,CAAE,CAC9CX,YAAAA,CAAa3tG,SAAS,GACvB,CACD,CACAi2I,qBAAAA,EAAwB,CACvB,GAAI,IAAI,CAACC,YAAY,CAAE,CACtB,IAAI,CAACT,aAAa,EAClB,CAAA,IAAI,CAACS,YAAY,CAAG,MACrB,CACD,CACA5b,cAAAA,CAAerrI,MAAM,CAAEy+G,KAAK,CAAE,CAC7B,IAAI,CAACuoC,qBAAqB,GAC3B,CACAE,iBAAiBlnJ,MAAM,CAAEy+G,KAAK,CAAE,CAC/B,MAAMnkC,QAAAA,CAAW,IAAI,CAAC4rE,cAAc,CACpC,GAAI,IAAI,CAACiB,gBAAgB,GAAK7sE,QAAAA,CAAU,CACvC,IAAI,CAAC+wD,cAAc,CAACrrI,MAAAA,CAAQy+G,MAC5B,CAAA,IAAI,CAAC0oC,gBAAgB,CAAG7sE,SACzB,CACD,CACA+3C,gBAAAA,CAAiBjuJ,MAAM,CAAE,CACzB,CACAunC,MAAAA,EAAS,CACR,GAAI1jC,MAAAA,CAAOyB,IAAI,CAAC,IAAI,CAACm8K,UAAU,CAAA,CAAE9zL,MAAM,CAAG,EAAG,CAC5C,IAAK,KAAM,CAAC8H,IAAKF,KAAAA,CAAM,GAAIsO,MAAAA,CAAOshD,OAAO,CAAC,IAAI,CAACs8H,UAAU,CAAA,CAAG,CAC3D,IAAI,CAACrH,YAAY,CAACrjC,IAAI,CAAC1iJ,GAAG,CAACoB,IAAKF,KAAAA,CAChC,CAAA,OAAO,IAAI,CAACksL,UAAU,CAAChsL,GAAAA,EAAI,CAE7B,CACA,GAAI,IAAI,CAACokK,aAAa,EAAI,IAAI,CAACynB,aAAa,EAAE/qC,OAAAA,EAAAA,CAAW,CACxD,IAAI,CAACsjB,aAAa,CAAG,KACrB,CAAA,IAAI,CAACynB,aAAa,EAAE9qC,YACpB,CAAA,IAAI,CAACqsC,YAAY,CAAG,KACrB,CACA,IAAI,CAACD,qBAAqB,EAC1B,CAAA,IAAI,CAACd,cAAc,GACpB,CAEA9wB,iBAAkB,CACjB,IAAI,CAAC3yC,UAAU,CAAG,GACnB,CACA4yC,aAAAA,EAAgB,CACf,OAAO,IAAI,CAAC5yC,UACb,CACA+jE,aAAAA,EAAgB,CACf,IAAI,CAACp0B,QAAQ,CAAC53J,KAAK,GACnB,IAAK,MAAMkkJ,gBAAgB,IAAI,CAACW,aAAa,CAAE,CAC9CX,YAAAA,CAAa+S,YAAY,GAC1B,CACD,CACA7oD,YAAAA,CAAah0G,IAAI,CAAE,CAClB,OAAO,IAAI,CAAC6tH,UAAU,CAAC7tH,IAAAA,CAAK,CAE7BkyL,mBAAAA,CAAoBlyL,IAAI,CAAE4W,KAAK,CAAE,CAChC,MAAMg3G,KAAAA,CAAQ,IAAI,CAACC,UAAU,CAAC7tH,IAAAA,CAAK,CACnC,GAAI4tH,KAAAA,CAAO,CACVA,KAAAA,CAAM/xG,IAAI,CAAGjF,MACd,CAAA,KAAO,CACN,IAAI,CAACi3G,UAAU,CAAC7tH,IAAAA,CAAK,CAAG,CACvBypC,OAAAA,CAAS,IAAA,CACT5tB,IAAAA,CAAMjF,KACP,EACD,CACD,CACA+2G,aAAa3tH,IAAI,CAAE4W,KAAK,CAAE,CACzB,GAAIA,KAAAA,GAAU,MAAK,EAAK,OAAO5W,IAAAA,GAAS,QAAA,CAAU,CACjD,MAAMwyL,aAAAA,CAAgBxyL,IAAAA,CACtB,GAAIwyL,cAAcr1L,MAAM,CAAE,CACzB,IAAK,IAAID,GAAK,CAAA,CAAGA,EAAAA,CAAKs1L,aAAAA,CAAcr1L,MAAM,CAAED,EAAAA,EAAAA,CAAM,CACjD,IAAI,CAACywH,YAAY,CAAC6kE,aAAa,CAACt1L,EAAAA,CAAG,EACpC,CACA,MACD,CACA8C,KAAOwyL,aAAAA,CAAcxyL,IAAI,CACzB4W,KAAAA,CAAQ47K,aAAAA,CAAcztL,MACvB,CACA,IAAI,CAACmtL,mBAAmB,CAAClyL,KAAM4W,KAAAA,EAChC,CACAk3G,eAAAA,CAAgB9tH,IAAI,CAAE,CACrB,GAAI,IAAI,CAAC6tH,UAAU,CAAC7tH,IAAAA,CAAK,CAAE,CAC1B,OAAO,IAAI,CAAC6tH,UAAU,CAAC7tH,IAAAA,EAAK,CAE9B,CAGA2gK,aAAAA,CAAcv1H,MAAM,CAAElE,KAAK,CAAE,CAC5B,MAAM2mF,UAAAA,CAAa,IAAI,CAACA,UAAU,CAClC,GAAI3mF,QAAU,MAAK,CAAGA,KAAAA,CAAQ2mF,UAAAA,CAC9B,IAAK,MAAM+yC,SAAAA,IAAa15H,KAAAA,CAAO,CAC9B,MAAM25H,SAAAA,CAAYhzC,UAAU,CAAC+yC,SAAAA,CAAU,CACvC,GAAIC,SAAAA,CAAW,CACd,GAAI,CAACA,UAAUp3H,OAAO,CAAE,CACvBo3H,SAAAA,CAAUp3H,OAAO,CAAG2B,MAAAA,CAAOzmC,KAAK,CAAC6mC,OAAO,CAACo1H,SAAAA,EAC1C,CACAC,SAAAA,CAAUp3H,OAAO,CAACmV,QAAQ,CAACiiH,SAAAA,CAAUhlJ,IAAI,EAC1C,CACD,CACD,CACA+0K,SAAAA,CAAU5wL,IAAI,CAAE+E,KAAK,CAAE,CACtB,IAAI0tL,QAAAA,CAAW,KAAA,CACf,KAAM,CAAEp3G,OAAO,CAAE,CAAG,IAAI,CACxB,GAAIt2E,QAAU,MAAK,EAAKA,KAAAA,GAAU,KAAA,CAAO,CACxC0tL,QAAAA,CAAW,CAACp3G,OAAAA,CAAQp3E,GAAG,CAACjE,IAAAA,CAAAA,EAASq7E,OAAAA,CAAQzhF,GAAG,CAACoG,IAAAA,CAAAA,GAAU+E,MACvDs2E,OAAAA,CAAQx3E,GAAG,CAAC7D,IAAAA,CAAM+E,OACnB,CAAA,KAAO,CACN0tL,QAAAA,CAAWp3G,OAAAA,CAAQp3E,GAAG,CAACjE,IAAAA,CAAAA,CACvBq7E,OAAAA,CAAQx1E,MAAM,CAAC7F,IAAAA,EAChB,CACA,IAAI,CAACqpK,aAAa,GAAK,IAAI,CAACA,aAAa,CAAGopB,QAAO,CAAA,CACnD,GAAIA,QAAAA,CAAU,CACb,IAAI,CAACN,WAAW,CAAG,KACpB,CACD,CACA,IAAIO,YAAa,CAChB,GAAI,IAAI,CAACP,WAAW,GAAK,IAAA,CAAM,CAC9B,IAAI,CAACA,WAAW,CAAGj2L,MAAM6qB,IAAI,CAAC,IAAI,CAACs0D,OAAO,CAAA,CAAEluE,IAAI,CAAC,CAAC,CAACtT,EAAE,CAAE,CAACC,CAAAA,CAAE,GAAKD,EAAIC,CAAAA,CAAI,EAAC,CAAID,CAAAA,CAAIC,EAAI,CAAA,CAAI,CAAA,CAAA,CAAG0J,GAAG,CAAC,CAAC,CAACyiJ,CAAAA,CAAGtpJ,GAAG,GAAK,CAAC,EAAEspJ,CAAAA,CAAE,CAAC,EAAEtpJ,EAAAA,CAAG,CAAC,CAAA,CAAEI,IAAI,CAAC,GAAA,EAChI,CACA,OAAO,IAAI,CAACo1L,WAAW,CAExBQ,SAAAA,CAAU3yL,IAAI,CAAE,CACf,OAAO,IAAI,CAACq7E,OAAO,CAACp3E,GAAG,CAACjE,IAAAA,CACzB,CACAuqC,OAAAA,EAAU,CACT,IAAI,CAACizH,QAAQ,CAAC53J,KAAK,EAAA,CACnB,IAAK,MAAMkkJ,YAAAA,IAAgB,IAAI,CAACW,aAAa,CAAE,CAC9CX,YAAAA,CAAa+S,YAAY,EACzB/S,CAAAA,YAAAA,CAAayT,SAAS,CAAG,IAAA,CACzB,GAAIzT,YAAAA,CAAaiF,IAAI,CAAE,CACtB,MAAM6jC,gBAAkBj4B,kBAAAA,CAAmB7Q,YAAAA,CAAaiF,IAAI,CAAC3jH,MAAM,CAAA,CACnE,GAAI,IAAI,GAAKwnJ,eAAAA,CAAiB,CAC7B9oC,YAAAA,CAAajC,QAAQ,CAAG+qC,gBACzB,CACD,CAED,CACA,IAAI,CAACnoC,aAAa,CAAC7kJ,KAAK,GACzB,CACAi4J,kBAAAA,CAAmB/T,YAAY,CAAE,CAChC,IAAI,CAACW,aAAa,CAACl9I,GAAG,CAACu8I,YAAAA,EACxB,CACA8T,qBAAAA,CAAsB9T,YAAY,CAAE,CACnC,IAAI,CAACW,aAAa,CAAC5kJ,MAAM,CAACikJ,cAC3B,CACA,IAAIpjG,OAAO3hD,KAAK,CAAE,CAClB,CACA,IAAI2hD,MAAAA,EAAS,CACZ,OAAO,IACR,CACA,IAAIjN,KAAAA,CAAM10C,KAAK,CAAE,CAChB,IAAI,CAACwiD,UAAU,CAAC9N,KAAK,CAAG10C,MACzB,CACA,IAAI00C,KAAAA,EAAQ,CACX,OAAO,IAAI,CAAC8N,UAAU,CAAC9N,KAAK,CAvV7B,aAAc,CAtBdgxG,gBAAAA,CAAAA,IAAAA,CAAAA,eAAAA,CAAgC,IAAIvmJ,KACpClE,gBAAAA,CAAAA,IAAAA,CAAAA,MAAAA,CAAO,UAAA,CAAA,CACP6yL,gBAAAA,CAAAA,IAAAA,CAAAA,SAAS,EAAA,CAAA,CACTxpJ,gBAAAA,CAAAA,IAAAA,CAAAA,IAAAA,CAAKmnJ,IAAAA,EAAAA,CAAAA,CACLhzB,sBAAAA,UAAAA,CAA2B,IAAIl4J,KAC/B+1E,gBAAAA,CAAAA,IAAAA,CAAAA,SAAAA,CAA0B,IAAI/1E,GAAAA,CAAAA,CAC9B+jK,gBAAAA,CAAAA,IAAAA,CAAAA,eAAAA,CAAgB,KAAA,CAAA,CAChB8oB,sBAAAA,aAAAA,CAAc,IAAA,CAAA,CACdtkE,gBAAAA,CAAAA,IAAAA,CAAAA,YAAAA,CAAa,EAAC,CAAA,CACd8xC,gBAAAA,CAAAA,IAAAA,CAAAA,WAAAA,CAAY,CAAA,CAAA,CACZh4G,sBAAAA,iBAAAA,CAAkB,KAAA,CAAA,CAClB4pI,sBAAAA,aAAAA,CAAc,IAAIh4I,YAClBk4I,gBAAAA,CAAAA,IAAAA,CAAAA,qBAAAA,CAAAA,MAAAA,CAAAA,CACAN,sBAAAA,aAAAA,CAAc,IAAIl1I,UAAAA,CAAAA,CAClB4jH,gBAAAA,CAAAA,IAAAA,CAAAA,OAAOrpI,aAAAA,CAAAA,CACPkxB,gBAAAA,CAAAA,IAAAA,CAAAA,WAAAA,CAAY/wB,aAAAA,CAAAA,CACZ2zB,sBAAAA,cAAAA,CAAe,IAAA,CAAA,CACfC,sBAAAA,aAAAA,CAAc,IAAA,CAAA,CACdumI,sBAAAA,eAAAA,CAAgB,IAAA,CAAA,CAEhBG,gBAAAA,CAAAA,IAAAA,CAAAA,YAAAA,CAAa,EAAC,CAAA,CACdoB,gBAAAA,CAAAA,IAAAA,CAAAA,cAAAA,CAAe,IAAA,CAAA,CAiDfS,sBAAAA,gBAAAA,CAAiB,CAAA,CAAA,CACjBC,gBAAAA,CAAAA,IAAAA,CAAAA,QAAAA,CAAS,MACTzB,gBAAAA,CAAAA,IAAAA,CAAAA,gBAAAA,CAAiB,GACjBiB,gBAAAA,CAAAA,IAAAA,CAAAA,kBAAAA,CAAmB,EAAC,CAAA,CAhDpB,CAsVD,CAAA,CAEA,IAAIS,mBAAqB,CAACn5L,CAAAA,CAAGC,CAAAA,GAAAA,CAC5B,MAAM0jB,GAAK3jB,CAAC,CAAC,EAAE,CAACkL,KAAK,CACrB,MAAM0Y,EAAAA,CAAK5jB,CAAC,CAAC,EAAE,CAACkL,KAAK,CACrB,MAAMmc,GAAKpnB,CAAC,CAAC,CAAA,CAAE,CAACiL,KAAK,CACrB,MAAMoc,GAAKrnB,CAAC,CAAC,EAAE,CAACiL,KAAK,CACrB,OAAOyY,EAAE,CAAC,CAAA,CAAE,GAAK0D,EAAE,CAAC,EAAE,EAAI1D,EAAE,CAAC,CAAA,CAAE,GAAK0D,EAAE,CAAC,EAAE,EAAI1D,EAAE,CAAC,CAAA,CAAE,GAAK0D,EAAE,CAAC,EAAE,EAAIzD,EAAE,CAAC,CAAA,CAAE,GAAK0D,EAAE,CAAC,CAAA,CAAE,EAAI1D,EAAE,CAAC,CAAA,CAAE,GAAK0D,EAAE,CAAC,EAAE,EAAI1D,EAAE,CAAC,CAAA,CAAE,GAAK0D,EAAE,CAAC,CAAA,CACpH,EACA,IAAI8xK,6BAAAA,CAAgC,KAAA,CAKnCpoL,KAAAA,EAAQ,CACP,IAAI,CAACqoL,IAAI,CAACttL,KAAK,GACf,IAAI,CAACutL,OAAO,CAACvtL,KAAK,EAClB,CAAA,IAAI,CAACk9C,MAAM,CAAG,IACd,CAAA,IAAI,CAACswI,QAAQ,CAAG,MACjB,CACAxtC,SAAAA,EAAY,CACX,IAAI,CAAC9iG,MAAM,CAAG,KACf,CACAuwI,WAAAA,EAAc,CACb,IAAI,CAACvwI,MAAM,CAAG,IACd,CAAA,IAAI,CAACswI,QAAQ,CAAG,KACjB,CACAr8I,OAAO8wG,QAAQ,CAAE,CAChB,GAAI,CAAC,IAAI,CAAC/kG,MAAM,EAAI,CAAC,IAAI,CAACswI,QAAQ,CAAE,CACnC,OAAO,KACR,CACA,IAAI,CAACtwI,MAAM,CAAG,KAAA,CACd,IAAIwwI,iBAAAA,CAAoB,MACxB,IAAK,MAAMpiK,CAAAA,IAAK46J,SAAAA,CAAUh3K,IAAI,EAAA,CAAI,CACjC,MAAM8tG,MAAAA,CAASilC,QAAQ,CAAC,CAAC,CAAC,EAAE32H,CAAAA,CAAE,GAAG,CAAC,CAAC,CAAG,CAAA,CAAI,EAC1C,MAAMgzJ,EAAAA,CAAKr8B,QAAQ,CAAC,CAAC,CAAC,EAAE32H,CAAAA,CAAE,KAAK,CAAC,CAAC,CACjC,MAAMqiK,MAAAA,CAAS1rC,QAAQ,CAAC,CAAC,CAAC,EAAE32H,CAAAA,CAAE,SAAS,CAAC,CAAC,CACzC,MAAMpmB,OAAAA,CAAU+8I,QAAQ,CAAC,CAAC,CAAC,EAAE32H,EAAE,SAAS,CAAC,CAAC,CAC1C,MAAMgoI,UAAYrR,QAAQ,CAAC,CAAC,CAAC,EAAE32H,CAAAA,CAAE,WAAW,CAAC,CAAC,CAC9C,IAAIooB,KAAAA,CAAQ,IAAI,CAAC65I,OAAO,CAACv5L,GAAG,CAACs3B,CAAAA,CAAAA,CAC7B,GAAI,CAACooB,KAAAA,CAAO,CACXA,KAAAA,CAAQ,IAAIk6I,aAAa,CAAA,CACzBl6I,CAAAA,KAAK,CAAC,EAAE,CAAG,EAAC,CACZ,IAAI,CAAC65I,OAAO,CAACtvL,GAAG,CAACqtB,CAAAA,CAAGooB,OACrB,CACA,GAAIA,KAAK,CAAC,EAAE,GAAKspE,MAAAA,EAAUA,MAAAA,GAAWtpE,KAAK,CAAC,CAAA,CAAE,GAAK4qI,EAAAA,EAAM5qI,KAAK,CAAC,CAAA,CAAE,GAAKi6I,MAAAA,CAAOt6K,CAAC,EAAIqgC,KAAK,CAAC,CAAA,CAAE,GAAKi6I,OAAOr6K,CAAC,EAAIogC,KAAK,CAAC,EAAE,GAAKxuC,OAAAA,CAAQmO,CAAC,EAAIqgC,KAAK,CAAC,CAAA,CAAE,GAAKxuC,OAAAA,CAAQoO,CAAC,EAAIogC,KAAK,CAAC,CAAA,CAAE,GAAK4/G,SAAQ,CAAA,CAAI,CACvL5/G,KAAK,CAAC,EAAE,CAAGspE,MACXtpE,CAAAA,KAAK,CAAC,CAAA,CAAE,CAAG4qI,EACX5qI,CAAAA,KAAK,CAAC,CAAA,CAAE,CAAGi6I,MAAAA,CAAOt6K,CAAC,CACnBqgC,KAAK,CAAC,CAAA,CAAE,CAAGi6I,MAAAA,CAAOr6K,CAAC,CACnBogC,KAAK,CAAC,CAAA,CAAE,CAAGxuC,OAAAA,CAAQmO,CAAC,CACpBqgC,KAAK,CAAC,CAAA,CAAE,CAAGxuC,OAAAA,CAAQoO,CAAC,CACpBogC,KAAK,CAAC,CAAA,CAAE,CAAG4/G,SAAAA,CACXo6B,kBAAoB,KACrB,CACD,CACA,GAAI,CAACA,kBAAmB,CACvB,OAAO,KACR,CACA,OAAO,IAAI,CAACG,UAAU,CAAC5rC,QAAAA,CACxB,CACA4rC,UAAAA,CAAW5rC,QAAQ,CAAE,CACpB,MAAM6rC,UAAAA,CAAa,EAAE,CACrB,MAAMC,WAAAA,CAAc,IAAI,CAACT,IAAI,CAC7B,MAAMU,KAAuB,IAAItuL,GAAAA,CACjC,IAAIuuL,oBAAAA,CAAuB,MAC3B,IAAIC,KAAAA,CAAQ,CAAA,CACZ,IAAK,MAAM5iK,CAAAA,IAAK46J,SAAAA,CAAUh3K,IAAI,EAAA,CAAI,CACjC,IAAIsmH,IAAAA,CAAO,CAAA,CACX,GAAIysB,QAAQ,CAAC,CAAC,CAAC,EAAE32H,CAAAA,CAAE,GAAG,CAAC,CAAC,CAAE,CACzB,MAAMu1I,SAAAA,CAAY5e,QAAAA,CAASksC,UAAU,CAAC,CAAC,EAAE7iK,CAAAA,CAAE,YAAY,CAAC,CAAA,CACxD,GAAIu1I,SAAAA,CAAW,CACd,MAAMyd,EAAAA,CAAKr8B,QAAQ,CAAC,CAAC,CAAC,EAAE32H,EAAE,KAAK,CAAC,CAAC,CACjC,MAAM+xI,OAASywB,UAAU,CAACxP,EAAAA,CAAG,GAAKwP,UAAU,CAACxP,EAAAA,CAAG,CAAG,EAAE,CAAD,CACpD,IAAIxhB,KAAAA,CACJ,IAAK,IAAIxlK,EAAAA,CAAK,EAAGA,EAAAA,CAAK+lK,MAAAA,CAAO9lK,MAAM,CAAED,EAAAA,EAAAA,CAAM,CAC1C,GAAI81L,mBAAmB/vB,MAAM,CAAC/lK,EAAAA,CAAG,CAACupK,SAAS,CAAEA,SAAAA,CAAAA,CAAY,CACxD/D,KAAAA,CAAQO,MAAM,CAAC/lK,EAAAA,CAAG,CAClB,KACD,CACD,CACA,GAAIwlK,KAAAA,CAAO,CACVtnC,IAAAA,CAAOsnC,MAAMr5H,GACd,CAAA,KAAO,CACN+xF,KAAO04D,KAAAA,CACP7wB,MAAAA,CAAOjlK,IAAI,CAAC,CAAEqrC,EAAAA,CAAI+xF,IAAAA,CAAMqrC,SAAU,CAAA,EACnC,CACD,CACD,CACAmtB,IAAAA,CAAK/vL,GAAG,CAACqtB,EAAGkqG,IAAAA,CACZy4D,CAAAA,oBAAAA,GAAyBA,qBAAuB,CAACF,WAAAA,CAAY/5L,GAAG,CAACs3B,CAAAA,CAAAA,EAAM,CAAA,IAAOkqG,IAAG,CACjF04D,CAAAA,KAAAA,GACD,CACA,IAAI,CAACZ,IAAI,CAAGU,IAAAA,CACZ,OAAOC,oBACR,CACAG,MAAMh0L,IAAI,CAAE,CACX,OAAO,IAAI,CAACkzL,IAAI,CAACt5L,GAAG,CAACoG,OAAS,CAC/B,CAAA,WAAA,EAAA,CAxFA8iD,gBAAAA,CAAAA,IAAAA,CAAAA,QAAAA,CAAS,MACTswI,gBAAAA,CAAAA,IAAAA,CAAAA,UAAAA,CAAW,KAAA,CAAA,CACXF,gBAAAA,CAAAA,IAAAA,CAAAA,OAAuB,IAAI5tL,GAAAA,CAAAA,CAC3B6tL,gBAAAA,CAAAA,IAAAA,CAAAA,SAAAA,CAA0B,IAAI7tL,GAAAA,EAAAA,CAsF/B,CAAA,CAEA,IAAI2uL,yBAAAA,CAA4B,MAAMC,2BACrC,OAAOn9I,MAAAA,CAAOwzI,UAAU,CAAE1iC,QAAQ,CAAEgC,KAAK,CAAEsqC,YAAY,CAAEz2B,OAAO,CAAE1V,IAAI,CAAEmV,YAAY,CAAE,CACrF+2B,2BAA2BE,mBAAmB,CAAC7J,WAAY1iC,QAAAA,CAAUgC,KAAAA,CAAO6T,OAAAA,CAAS1V,IAAAA,CAAMmsC,cAC3FD,0BAAAA,CAA2BG,qBAAqB,CAAC9J,UAAAA,CAAY1iC,UAC7DqsC,0BAAAA,CAA2BI,gBAAgB,CAAC/J,UAAAA,CAAY1iC,SAAUgC,KAAAA,CAAOsqC,YAAAA,CAAAA,CACzED,2BAA2BK,qBAAqB,CAAChK,WAAY1iC,QAAAA,CAAUgC,KAAAA,CAAO6T,OAAAA,CAASP,YAAAA,EACxF,CACA,OAAOi3B,mBAAAA,CAAoB7J,UAAU,CAAE1iC,QAAQ,CAAEgC,KAAK,CAAE6T,OAAO,CAAE1V,IAAI,CAAEmsC,YAAY,CAAE,CACpF5J,WAAWX,YAAY,CAAG/hC,QAAAA,CAAS+hC,YAAY,CAC/CW,UAAAA,CAAWviC,IAAI,CAAGA,IAClBuiC,CAAAA,UAAAA,CAAWtH,WAAW,CAAGj7B,OAASjJ,cAAAA,EAAkB,CAAC,CAACo1C,YAAAA,EAAclqB,aAAAA,CAAc3pK,SAASyjJ,kBAAAA,CAC3FwmC,CAAAA,UAAAA,CAAW5qB,SAAS,CAAG9X,QAAAA,CAAS8X,SAAS,CAAG,CAC5C4qB,CAAAA,UAAAA,CAAW5B,SAAS,CAAG9gC,QAAAA,CAAS8gC,SAAS,CACzC4B,WAAW5rB,WAAW,CAAGjB,SAAW,CAACA,OAAAA,CAAUzf,qBAAoB,IAAO,CAC1EssC,CAAAA,UAAAA,CAAWx+B,IAAI,CAAG2R,OAAAA,EAAYA,CAAAA,OAAAA,CAAUhgB,cAAa,IAAO,CAC5D6sC,CAAAA,UAAAA,CAAWpH,aAAa,CAAGzlB,OAAAA,EAAYA,CAAAA,OAAAA,CAAU5f,oBAAmB,IAAO,CAC3EysC,CAAAA,UAAAA,CAAW5F,gBAAgB,CAAGjnB,OAAAA,EAAYA,CAAAA,OAAAA,CAAUvf,wBAAuB,IAAO,CAClFosC,CAAAA,UAAAA,CAAW3F,cAAc,CAAGlnB,OAAAA,EAAYA,CAAAA,OAAAA,CAAUtf,sBAAqB,IAAO,CAC9EmsC,CAAAA,UAAAA,CAAW1F,uBAAuB,CAAGnnB,OAAAA,EAAW,CAACA,QAAUpf,iCAAgC,IAAO,CAClGisC,CAAAA,UAAAA,CAAWpoI,WAAW,CAAGu7G,OAAAA,EAAW,CAACA,QAAUxf,kBAAiB,IAAO,CACvEqsC,CAAAA,WAAWvH,cAAc,CAAGn7B,QAAAA,CAASm7B,cAAc,EAAIljC,wBAAAA,CACvD,GAAI+H,SAAS2sC,WAAW,EAAI3qC,MAAMs7B,wBAAwB,CAAE,CAC3DoF,UAAAA,CAAWpF,wBAAwB,CAAG,IACtCoF,CAAAA,UAAAA,CAAWjF,+BAA+B,CAAGz7B,KAAAA,CAAMw7B,QAAQ,CAACjO,cAAc,CAC1EmT,WAAW9E,+BAA+B,CAAG57B,MAAMw7B,QAAQ,CAAC3N,cAC5D6S,CAAAA,UAAAA,CAAW3E,2BAA2B,CAAG/7B,KAAAA,CAAMw7B,QAAQ,CAACngC,UAAU,CAClEqlC,WAAWhF,kCAAkC,CAAG17B,MAAMw7B,QAAQ,CAAC9N,kBAAiB,CACjF,KAAO,CACNgT,UAAAA,CAAWpF,wBAAwB,CAAG,KACtCoF,CAAAA,UAAAA,CAAWjF,+BAA+B,CAAG,KAC7CiF,CAAAA,UAAAA,CAAW9E,+BAA+B,CAAG,KAC7C8E,CAAAA,UAAAA,CAAWhF,kCAAkC,CAAG,MACjD,CACD,CACA,OAAO8O,sBAAsB9J,UAAU,CAAE1iC,QAAQ,CAAE,CAClD0iC,UAAAA,CAAWzC,eAAe,CAAG,KAC7ByC,CAAAA,UAAAA,CAAWxF,SAAS,CAAGl9B,QAAAA,CAASk9B,SAAS,CACzCwF,UAAAA,CAAWL,SAAS,CAAGriC,SAASqiC,SAChCK,CAAAA,UAAAA,CAAWxC,gBAAgB,CAAGlgC,QAAAA,CAASkgC,gBACvCwC,CAAAA,UAAAA,CAAW/B,aAAa,CAAG3gC,QAAAA,CAAS2gC,aAAa,CACjD+B,UAAAA,CAAW1B,eAAe,CAAGhhC,SAASghC,eACtC0B,CAAAA,UAAAA,CAAW1C,oBAAoB,CAAGhgC,QAAAA,CAAS4sC,wBAAwB,GAAK,CACxElK,CAAAA,UAAAA,CAAWhG,OAAO,CAAG,KACrBgG,CAAAA,WAAW/F,iBAAiB,CAAG,KAC/B+F,CAAAA,WAAW5iI,eAAe,CAAGkgG,QAAAA,CAASlgG,eAAe,CACrD4iI,UAAAA,CAAWlC,oBAAoB,CAAGxgC,SAASwgC,oBAC3CkC,CAAAA,UAAAA,CAAWH,aAAa,CAAGviC,QAAAA,CAASuiC,aAAa,CACjDG,WAAW3B,iBAAiB,CAAGrtC,aAC/BgvC,CAAAA,WAAWvD,WAAW,CAAGn/B,QAAAA,CAAS6sC,WAAW,CAC7CnK,UAAAA,CAAW5C,oBAAoB,CAAG9/B,QAAAA,CAAS8sC,oBAAoB,CAC/DpK,UAAAA,CAAW1G,iBAAiB,CAAGh8B,QAAAA,CAAS+sC,WAAW,CACnDrK,WAAW7C,aAAa,CAAG,KAC3B6C,CAAAA,WAAWpD,YAAY,CAAGt/B,SAASs/B,YACnCoD,CAAAA,UAAAA,CAAWrC,aAAa,CAAGrgC,QAAAA,CAASgtC,aAAa,CACjDtK,UAAAA,CAAWrD,YAAY,CAAGr/B,QAAAA,CAASitC,YAAY,CAC/CvK,WAAWnD,QAAQ,CAAGv/B,SAASktC,QAC/BxK,CAAAA,UAAAA,CAAWlD,cAAc,CAAGx/B,QAAAA,CAASmtC,eAAe,CACpDzK,UAAAA,CAAW9C,YAAY,CAAG5/B,QAAAA,CAASotC,YAAY,CAC/C1K,WAAWpC,oBAAoB,CAAGtgC,SAASqtC,iBAC3C3K,CAAAA,UAAAA,CAAWnC,UAAU,CAAGvgC,QAAAA,CAASugC,UAAU,CAAG,CAC9CmC,CAAAA,UAAAA,CAAWlG,YAAY,CAAG,KAC1BkG,CAAAA,UAAAA,CAAW1D,eAAe,CAAGh/B,QAAAA,CAASstC,WAAW,CACjD5K,WAAWvC,kBAAkB,CAAGngC,QAAAA,CAASsnC,WAAW,CACpD5E,UAAAA,CAAW7G,UAAU,CAAG77B,SAASutC,UACjC7K,CAAAA,UAAAA,CAAW5G,UAAU,CAAG97B,QAAAA,CAASwtC,UAAU,CAC3C9K,WAAW3G,mBAAmB,CAAG/7B,QAAAA,CAASytC,mBAAmB,CAC7D/K,UAAAA,CAAWhC,KAAK,CAAG1gC,QAAAA,CAAS0tC,KAAK,CACjChL,UAAAA,CAAW9B,iBAAiB,CAAG5gC,QAAAA,CAAS2tC,cAAa,CAEtD,OAAOlB,iBAAiB/J,UAAU,CAAE1iC,QAAQ,CAAEgC,KAAK,CAAEsqC,YAAY,CAAE,CAClE5J,WAAWthB,GAAG,CAAGphB,QAAAA,CAAS4tC,MAAM,CAAGtB,YAAAA,CAAalrB,GAAG,CAAGlyB,QACtDwzC,CAAAA,WAAW93K,KAAK,CAAG0hL,YAAAA,CAAazqB,iBAAiB,CACjD6gB,UAAAA,CAAWF,OAAO,CAAGxiC,SAAS6tC,UAAU,CAAGvB,YAAAA,CAAa58F,WAAW,CAAGklD,YAAAA,CACtE,GAAIoL,SAAS8tC,SAAS,EAAI9rC,MAAM+rC,QAAQ,EAAI/rC,KAAAA,CAAMgsC,MAAM,CAAE,CACzDtL,UAAAA,CAAWzB,gBAAgB,CAAG7rC,wBAC9BstC,CAAAA,UAAAA,CAAWvB,kBAAkB,CAAGn/B,MAAM+rC,QAAQ,CAAC1iJ,QAAQ,CACvDq3I,WAAWtB,yBAAyB,CAAGp/B,KAAAA,CAAMgsC,MAAM,CAAC3iJ,SACrD,CAAA,KAAO,GAAI20G,SAAS8tC,SAAS,EAAI9rC,KAAAA,CAAM+rC,QAAQ,CAAE,CAChDrL,UAAAA,CAAWzB,gBAAgB,CAAG9rC,sBAC9ButC,CAAAA,UAAAA,CAAWvB,kBAAkB,CAAGn/B,KAAAA,CAAM+rC,QAAQ,CAAC1iJ,SAAQ,CACxD,KAAO,GAAI20G,QAAAA,CAAS8tC,SAAS,EAAI9rC,KAAAA,CAAMgsC,MAAM,CAAE,CAC9CtL,WAAWzB,gBAAgB,CAAG5rC,qBAC9BqtC,CAAAA,UAAAA,CAAWvB,kBAAkB,CAAGn/B,MAAMgsC,MAAM,CAAC3iJ,SAC9C,MAAO,CACNq3I,UAAAA,CAAWzB,gBAAgB,CAAG/rC,kBAC9BwtC,CAAAA,UAAAA,CAAWvB,kBAAkB,CAAG,KACjC,CACA,GAAInhC,QAAAA,CAASqiC,SAAS,CAAE,CACvBK,UAAAA,CAAWxB,aAAa,CAAG1rC,oBAC3BktC,CAAAA,UAAAA,CAAWrB,eAAe,CAAG,KAC9B,MAAO,GAAIqB,UAAAA,CAAWzB,gBAAgB,GAAK/rC,kBAAAA,EAAsB8M,MAAM+rC,QAAQ,CAAE,CAChFrL,UAAAA,CAAWxB,aAAa,CAAGzrC,qBAC3BitC,CAAAA,UAAAA,CAAWrB,eAAe,CAAGr/B,KAAAA,CAAM+rC,QAAQ,CAAC1iJ,SAAQ,CACrD,KAAO,CACNq3I,WAAWxB,aAAa,CAAGxrC,mBAC3BgtC,CAAAA,UAAAA,CAAWrB,eAAe,CAAG,KAC9B,CACA,MAAM4M,SAAAA,CAAYvL,UAAAA,CAAWzB,gBAAgB,GAAK/rC,kBAClDwtC,CAAAA,UAAAA,CAAWtC,eAAe,CAAG6N,SAC7BvL,CAAAA,UAAAA,CAAW3C,kBAAkB,CAAGkO,SAAAA,EAAajsC,KAAAA,CAAMksC,6BACpD,CACA,OAAOxB,qBAAAA,CAAsBhK,UAAU,CAAE1iC,QAAQ,CAAEgC,KAAK,CAAE6T,OAAO,CAAEP,YAAY,CAAE,CAChFotB,UAAAA,CAAWzD,sBAAsB,CAAG,KAAA,CACpC,GAAIj/B,QAAAA,CAAS2sC,WAAW,CAAE,CACzB,MAAMwB,cAAAA,CAAiB,EAAE,CACzB,MAAMp+I,IAAAA,CAAO8lH,OAAAA,CAAUA,OAAAA,EAAW,GAAK/e,mBACvC4rC,CAAAA,WAAW/E,gBAAgB,CAAG,CAAC,EAAE5tI,IAAAA,CAAO+mG,mBAAkB,CAC1D4rC,CAAAA,UAAAA,CAAWzD,sBAAsB,CAAG,MACpC,GAAI3pB,YAAAA,CAAc,CACjB+2B,0BAAAA,CAA2BvY,aAAa,CAAC7jC,qBAAAA,CAAuBqlB,YAAY,CAACrlB,qBAAAA,CAAsB,CAAEk+C,cAAAA,CAAgBp+I,IAAAA,CAAAA,CACrH,GAAI,CAACiyG,MAAMs7B,wBAAwB,CAAE,CACpC+O,0BAAAA,CAA2BvY,aAAa,CAAC5jC,cAAAA,CAAgBolB,YAAY,CAACplB,eAAe,CAAEi+C,cAAAA,CAAgBp+I,MACvGs8I,0BAAAA,CAA2BvY,aAAa,CAAC1jC,cAAAA,CAAgBklB,YAAY,CAACllB,cAAAA,CAAe,CAAE+9C,cAAAA,CAAgBp+I,IAAAA,EACxG,CACD,CACA2yI,WAAWnF,MAAM,CAAG4Q,eACrB,CAAA,KAAO,CACNzL,UAAAA,CAAWnF,MAAM,CAAG,GACrB,CACA,GAAImF,UAAAA,CAAWnF,MAAM,CAACjoL,MAAM,GAAK,CAAA,EAAK,CAAC0sJ,KAAAA,CAAMs7B,wBAAwB,EAAKznB,CAAAA,OAAAA,CAAUjgB,kBAAiB,IAAO,CAAA,CAAG,CAC9G8sC,UAAAA,CAAW7E,QAAQ,CAAG,KACvB,CACD,CACA,OAAO/J,cAAcsa,KAAK,CAAEra,OAAO,CAAEoa,cAAc,CAAEp+I,IAAI,CAAE,CAC1D,IAAK,IAAI16C,EAAAA,CAAK,CAAA,CAAGA,GAAK0+K,OAAAA,CAAQz+K,MAAM,CAAED,EAAAA,EAAAA,CAAM,CAC3C,MAAMg3K,KAAAA,CAAQ0H,OAAO,CAAC1+K,EAAAA,CAAG,CACzB,GAAIg3K,MAAMnwK,OAAO,CAAE,CAClB,GAAImwK,MAAMt8H,IAAI,CAAGA,KAAM,CACtBo+I,cAAAA,CAAeh4L,IAAI,CAACk2K,KAAAA,EACrB,CACD,CACD,CACD,CACD,CAAA,CAEA,IAAIgiB,QAAAA,CAAW,MAACvjI,EAAAA,CACf,OAAOA,MAAAA,CAAOn2D,CAAC,GAAK,CAAA,EAAKm2D,MAAAA,CAAOniD,CAAC,GAAK,CAAA,EAAKmiD,OAAO74D,CAAC,GAAK,CACzD,CAAA,CACA,IAAIq8L,8BAAAA,CAAiC,KAAA,CAEpCC,YAAAA,CAAa1nL,QAAQ,CAAEm7I,KAAK,CAAEwsC,MAAM,CAAE34B,OAAO,CAAE1V,IAAI,CAAEmV,YAAY,CAAE,CAClE,IAAI,CAACm5B,oBAAoB,CAAC5nL,SAAUm7I,KAAAA,CAAOwsC,MAAAA,CAAQ34B,OAAAA,CAAS1V,IAAAA,CAAAA,CAC5D,IAAI,CAACuuC,iBAAiB,CAAC7nL,QAAAA,CAAU2nL,OAAQruC,IAAAA,CAAAA,CACzC,IAAI,CAACwuC,gBAAgB,CAAC9nL,SAAU2nL,MAAAA,CAAQ34B,OAAAA,CAAS,IAAA,EAClD,CACA+4B,UAAU/nL,QAAQ,CAAEm7I,KAAK,CAAE/B,kBAAkB,CAAEuuC,MAAM,CAAE34B,OAAO,CAAE1V,IAAI,CAAEmV,YAAY,CAAE,CACnF,IAAI,CAACm5B,oBAAoB,CAAC5nL,QAAAA,CAAUm7I,MAAOwsC,MAAAA,CAAQ34B,OAAAA,CAAS1V,IAAAA,CAAMF,kBAAAA,CAAAA,CAClE,IAAI,CAAC4uC,iBAAiB,CAAChoL,QAAAA,CAAU2nL,OAAQxsC,KAAAA,CAAO/B,kBAAAA,CAAAA,CAChD,IAAI,CAAC6uC,sBAAsB,CAACjoL,QAAAA,CAAU2nL,MAAAA,CAAQxsC,KAAAA,CAC9Cn7I,CAAAA,SAAS67K,UAAU,CAACpoI,WAAW,CAAGu7G,SAAW,CAACA,OAAAA,CAAUxf,kBAAiB,IAAO,CAAA,CAChF,IAAI,CAAC04C,mBAAmB,CAACloL,SAAUm7I,KAAAA,CAAOwsC,MAAAA,CAAQ34B,OAAAA,CAASP,YAAAA,CAAAA,CAC3D,IAAI,CAACq5B,gBAAgB,CAAC9nL,QAAAA,CAAU2nL,MAAAA,CAAQ34B,QAAS,KAAA,CAAO5V,kBAAAA,EACzD,CACAwuC,oBAAAA,CAAqB5nL,QAAQ,CAAEm7I,KAAK,CAAEwsC,MAAM,CAAE34B,OAAO,CAAE1V,IAAI,CAAEF,kBAAkB,CAAE,CAChFp5I,QAAAA,CAAS87K,QAAQ,CAAG6L,OAAO7L,QAC3B97K,CAAAA,QAAAA,CAAS67K,UAAU,CAACtH,WAAW,CAAGj7B,IAAAA,GAASjJ,cAAAA,EAAkB,CAAC,CAAC+I,kBAAAA,EAAoBmiB,aAAAA,CAAc3pK,QAAAA,CAASyjJ,oBAC1G,GAAIsyC,MAAAA,CAAOxM,cAAc,CAAE,CAC1Bn7K,QAAAA,CAAS67K,UAAU,CAACV,cAAc,CAAGx2K,MAAAA,CAAO69K,WAAW,CAACmF,MAAAA,CAAOxM,cAAc,CAACl1H,OAAO,EAAA,EACtF,CACAjmD,QAAAA,CAAS67K,UAAU,CAACX,YAAY,CAAGyM,MAAAA,CAAOzM,YAAY,CACtDl7K,QAAAA,CAAS67K,UAAU,CAACviC,IAAI,CAAGA,IAC3Bt5I,CAAAA,QAAAA,CAAS67K,UAAU,CAAC5qB,SAAS,CAAG02B,MAAAA,CAAO12B,SAAS,CAAG,CACnDjxJ,CAAAA,QAAAA,CAAS67K,UAAU,CAAC5B,SAAS,CAAG0N,MAAAA,CAAO1N,SAAS,CAChDj6K,SAAS67K,UAAU,CAAC5rB,WAAW,CAAGjB,OAAAA,EAAW,CAACA,QAAUzf,qBAAoB,IAAO,CACnFvvI,CAAAA,SAAS67K,UAAU,CAACx+B,IAAI,CAAG2R,SAAW,CAACA,QAAUhgB,cAAa,IAAO,CACrEhvI,CAAAA,QAAAA,CAAS67K,UAAU,CAACnnB,KAAK,CAAG1F,OAAAA,EAAW,CAACA,QAAUnf,eAAc,IAAO,CACvE7vI,CAAAA,SAAS67K,UAAU,CAACpH,aAAa,CAAGzlB,OAAAA,EAAW,CAACA,OAAAA,CAAU5f,oBAAmB,IAAO,CACpFpvI,CAAAA,QAAAA,CAAS67K,UAAU,CAAC5F,gBAAgB,CAAGjnB,OAAAA,EAAW,CAACA,QAAUvf,wBAAuB,IAAO,CAC3FzvI,CAAAA,QAAAA,CAAS67K,UAAU,CAAC3F,cAAc,CAAGlnB,OAAAA,EAAW,CAACA,OAAAA,CAAUtf,sBAAqB,IAAO,CACvF1vI,CAAAA,QAAAA,CAAS67K,UAAU,CAAC1F,uBAAuB,CAAGnnB,OAAAA,EAAYA,CAAAA,OAAAA,CAAUpf,iCAAgC,IAAO,CAC3G5vI,CAAAA,QAAAA,CAAS67K,UAAU,CAACvH,cAAc,CAAGqT,MAAAA,CAAOrT,cAAc,EAAI,CAAA,CAC9D,GAAIn5B,KAAAA,CAAMs7B,wBAAwB,EAAIkR,MAAAA,CAAO7B,WAAW,CAAE,CACzD9lL,QAAAA,CAAS67K,UAAU,CAACpF,wBAAwB,CAAG,IAC/Cz2K,CAAAA,QAAAA,CAAS67K,UAAU,CAACjF,+BAA+B,CAAGz7B,KAAAA,CAAMw7B,QAAQ,CAACjO,cAAc,CACnF1oK,QAAAA,CAAS67K,UAAU,CAAC9E,+BAA+B,CAAG57B,KAAAA,CAAMw7B,QAAQ,CAAC3N,cAAc,CACnFhpK,QAAAA,CAAS67K,UAAU,CAAC3E,2BAA2B,CAAG/7B,KAAAA,CAAMw7B,QAAQ,CAACngC,UAAU,CAC3Ex2I,SAAS67K,UAAU,CAAChF,kCAAkC,CAAG17B,KAAAA,CAAMw7B,QAAQ,CAAC9N,kBAAiB,CAC1F,KAAO,CACN7oK,QAAAA,CAAS67K,UAAU,CAACpF,wBAAwB,CAAG,KAC/Cz2K,CAAAA,QAAAA,CAAS67K,UAAU,CAACjF,+BAA+B,CAAG,KACtD52K,CAAAA,QAAAA,CAAS67K,UAAU,CAAC9E,+BAA+B,CAAG,KACtD/2K,CAAAA,QAAAA,CAAS67K,UAAU,CAAChF,kCAAkC,CAAG,MAC1D,CACD,CACAiR,gBAAAA,CAAiB9nL,QAAQ,CAAE2nL,MAAM,CAAE34B,OAAO,CAAEm5B,cAAc,CAAE/uC,kBAAkB,CAAE,CAC/E,IAAI9lG,MAAAA,CAAS,MACb,IAAIC,MAAAA,CAAS,KAAA,CACb,IAAI60I,UAAY,KAAA,CAChB,GAAIp5B,QAAS,CACZ17G,MAAAA,CAAS,CAAC07G,OAAAA,CAAU/f,aAAY,IAAO,EACvC17F,MAAAA,CAAUy7G,CAAAA,OAAAA,CAAU9f,aAAY,IAAO,CAAA,CACvCk5C,SAAAA,CAAap5B,CAAAA,OAAAA,CAAU7f,gBAAe,IAAO,EAC9C,CACAnvI,SAAS67K,UAAU,CAAClG,YAAY,CAAG,MACnC,MAAM0S,gBAAAA,CAAmB,EAAC,CAC1B,IAAK,MAAM7lK,CAAAA,IAAK46J,SAAAA,CAAUh3K,IAAI,EAAA,CAAI,CACjC,IAAI,CAACkiL,iBAAiB,CAACtoL,QAAAA,CAAU2nL,OAAQnlK,CAAAA,CAAG8wB,MAAAA,CAAQC,MAAAA,CAAQ60I,SAAAA,CAAWD,eAAgBE,gBAAAA,EACxF,CACAroL,QAAAA,CAAS67K,UAAU,CAACjC,IAAI,CAAGxgC,kBAAAA,EAAoBohB,WAC/Cx6J,CAAAA,QAAAA,CAAS08K,KAAK,CAAG18K,QAAAA,CAAS67K,UAAU,CAACjC,IACrC55K,CAAAA,QAAAA,CAAS67K,UAAU,CAAC1D,eAAe,CAAGn4K,QAAAA,CAASugL,QAAQ,CACvDvgL,QAAAA,CAAS67K,UAAU,CAACvC,kBAAkB,CAAGt5K,SAASygL,WAClDzgL,CAAAA,QAAAA,CAAS67K,UAAU,CAAC7G,UAAU,CAAGh1K,QAAAA,CAASk+K,SAAS,CACnDl+K,SAAS0gL,YAAY,CAAG1gL,QAAAA,CAASk+K,SAAS,CAAGyJ,MAAAA,CAAOjH,YAAY,CAAGztC,eACnEjzI,CAAAA,SAAS2gL,kBAAkB,CAAG3gL,QAAAA,CAAS0gL,YAAY,GAAKxtC,kBAAAA,EAAsBy0C,MAAAA,CAAOY,qBAAqB,CAAG,CAC7GvoL,CAAAA,QAAAA,CAAS67K,UAAU,CAAC5G,UAAU,CAAGj1K,QAAAA,CAASihL,SAAS,CACnDjhL,SAAS67K,UAAU,CAAC3G,mBAAmB,CAAGl1K,SAASkhL,kBACnDlhL,CAAAA,QAAAA,CAAS67K,UAAU,CAAChC,KAAK,CAAG75K,QAAAA,CAAS6gL,KAAK,EAAI7gL,QAAAA,CAAS8gL,aAAa,EAAI9gL,QAAAA,CAAS67K,UAAU,CAACjC,IAAI,CAChG55K,SAAS67K,UAAU,CAAC9B,iBAAiB,CAAG/5K,SAASwoL,WAClD,CACAF,iBAAAA,CAAkBtoL,QAAQ,CAAE2nL,MAAM,CAAEnlK,CAAC,CAAE8wB,MAAM,CAAEC,MAAM,CAAE60I,SAAS,CAAED,cAAc,CAAEE,gBAAgB,CAAE,CACnG,MAAMI,SAAAA,CAAYjmK,CAAAA,GAAM,SAAA,CACxB,GAAI,CAAC2lK,cAAAA,EAAkBM,UAAW,CACjC,MAAMC,MAAQ,CAAC,EAAElmK,CAAAA,CAAE,GAAG,CAAC,CACvB,MAAMmmK,MAAQ,CAAC,EAAEnmK,EAAE,WAAW,CAAC,CAC/B,MAAMomK,OAAS,CAAC,EAAEpmK,EAAE,kBAAkB,CAAC,CACvC,MAAMqmK,KAAAA,CAAQ,CAAC,EAAEH,MAAM,OAAO,CAAC,CAC/B,MAAMI,MAAQ,CAAC,EAAEJ,KAAAA,CAAM,SAAS,CAAC,CACjC,MAAMK,MAAQ,CAAC,EAAEL,MAAM,EAAE,CAAC,CAC1B,MAAMM,MAAQ,CAAC,EAAEN,KAAAA,CAAM,UAAU,CAAC,CAClC,GAAIlmK,CAAAA,GAAM,OAAA,CAAS,CAClBxiB,QAAQ,CAAC0oL,MAAM,CAAG,KAClB1oL,CAAAA,QAAQ,CAACgpL,KAAAA,CAAM,CAAG,MAClBhpL,CAAAA,QAAQ,CAAC6oL,MAAM,CAAG,EAClB7oL,CAAAA,QAAQ,CAAC8oL,KAAAA,CAAM,CAAG,CAClB9oL,CAAAA,QAAQ,CAAC+oL,KAAAA,CAAM,CAAG,EACnB,CACA/oL,QAAQ,CAAC2oL,KAAAA,CAAM,CAAG,KAClB3oL,CAAAA,QAAQ,CAAC4oL,MAAAA,CAAO,CAAG,GACnB,GAAIH,SAAAA,EAAad,OAAO1N,SAAS,GAAKryC,YAAc+/C,MAAAA,CAAO12B,SAAS,GAAK,CAAA,EAAK,CAAC02B,MAAAA,CAAO1uI,eAAe,EAAI0uI,MAAAA,CAAOjM,aAAa,GAAKhpC,WAAAA,CAAa,CAC9I,MACD,CACA,GAAIlwH,CAAAA,GAAM,UAAYmlK,MAAM,CAACgB,MAAM,CAAE,CACpC,GAAIP,SAAAA,CAAW,CACdpoL,QAAQ,CAAC2oL,KAAAA,CAAM,CAAGhB,MAAM,CAACgB,KAAAA,CAAM,CAC/B3oL,QAAQ,CAAC4oL,MAAAA,CAAO,CAAGjB,MAAM,CAACiB,OAAO,CACjC5oL,QAAAA,CAAS67K,UAAU,CAAClG,YAAY,CAAG,KACpC,CACD,CACA,GAAIgS,MAAM,CAACe,KAAAA,CAAM,CAAE,CAClB,IAAIO,MAAQ,IAAA,CACZ,GAAItB,MAAM,CAACoB,KAAAA,CAAM,GAAK,CAAA,EAAK,CAACz1I,MAAAA,CAAQ21I,KAAAA,CAAQ,MAC5C,GAAItB,MAAM,CAACoB,KAAAA,CAAM,GAAK,CAAA,EAAK,CAACx1I,OAAQ01I,KAAAA,CAAQ,KAAA,CAC5C,GAAIA,KAAAA,CAAO,CACV,MAAM7D,KAAAA,CAAQuC,MAAM,CAACe,KAAAA,CAAM,CAAC/tJ,EAAE,CAC9B,IAAIozC,UAAAA,CAAas6G,gBAAgB,CAACjD,KAAAA,CAAM,CACxC,GAAIr3G,aAAe,MAAK,CAAG,CAC1Bs6G,gBAAgB,CAACjD,MAAM,CAAG5iK,CAAAA,CAC1BurD,UAAAA,CAAavrD,EACd,CACAxiB,QAAQ,CAAC0oL,KAAAA,CAAM,CAAG,CAAC,CAACf,MAAM,CAACe,KAAAA,CAAM,CACjC1oL,QAAQ,CAACgpL,KAAAA,CAAM,CAAGj7G,UAClB/tE,CAAAA,QAAQ,CAAC8oL,KAAAA,CAAM,CAAGnB,MAAAA,CAAOuB,kBAAkB,CAAC1mK,CAAAA,CAC5CxiB,CAAAA,QAAQ,CAAC6oL,KAAAA,CAAM,CAAGlB,MAAM,CAACkB,KAAAA,CAAM,CAC/B7oL,QAAQ,CAAC+oL,KAAAA,CAAM,CAAGpB,MAAM,CAACoB,OAAM,CAEjC,CACD,CACD,CACAlB,iBAAAA,CAAkB7nL,QAAQ,CAAE2nL,MAAM,CAAEruC,IAAI,CAAE,CACzC,MAAM6vC,SAAAA,CAAY7vC,OAASjJ,cAC3BrwI,CAAAA,QAAAA,CAAS67K,UAAU,CAACnB,mBAAmB,CAAGyO,SAAAA,CAAYxB,MAAAA,CAAOjM,aAAa,CAAGiM,MAAAA,CAAOjN,mBACpF16K,CAAAA,QAAAA,CAAS67K,UAAU,CAACnF,MAAM,CAAG,GAAE,CAEhCuR,sBAAAA,CAAuBjoL,QAAQ,CAAE2nL,MAAM,CAAExsC,KAAK,CAAE,CAC/C,MAAMm9B,WAAAA,CAAc,CAAC,EAAEqP,MAAAA,CAAO5O,YAAY,EAAI4O,MAAAA,CAAOyB,WAAW,EAAIzB,MAAAA,CAAO0B,SAAS,EAAI1B,MAAAA,CAAO2B,OAAO,EAAI9B,QAAAA,CAASG,MAAAA,CAAO4B,QAAQ,GAAK5B,MAAAA,CAAO6B,iBAAiB,CAAG,CAAA,EAAK7B,OAAO5O,YAAY,EAAI4O,OAAOxS,iBAAiB,EAAIwS,OAAO8B,SAAS,CAAG,CAAA,CAAA,CAC7O,MAAM7I,gBAAAA,CAAmB,CAAC+G,OAAO5O,YAAY,EAAI4O,OAAO+B,yBAAyB,CACjF,MAAMC,qBAAAA,CAAwBrR,aAAeqP,MAAAA,CAAO+B,yBAAyB,GAAK/B,MAAAA,CAAOgC,qBAAqB,EAAIhC,MAAAA,CAAO6B,iBAAiB,GAAK,CAAA,CAAA,CAC/I,MAAMI,iBAAAA,CAAqBlrJ,SAAYA,OAAAA,CAAUA,OAAAA,CAAQ3qC,MAAM,GAAKg2B,kBAAoB2U,OAAAA,CAAQ94B,IAAI,GAAKytB,uBAAAA,CAA0B,KAAA,CACnI,MAAMw2J,QAAAA,CAAW,CAAC1+L,CAAAA,CAAGC,CAAAA,GAAM2C,KAAK6Z,GAAG,CAACzc,CAAAA,CAAIC,CAAAA,CAAAA,CAAK,IAC7C4U,CAAAA,QAAAA,CAAS2pL,qBAAqB,CAAGA,qBACjC3pL,CAAAA,QAAAA,CAAS+7K,aAAa,CAAG4L,MAAAA,CAAO5O,YAAY,EAAI4O,MAAAA,CAAOmC,SAAS,CAAG,CACnE9pL,CAAAA,QAAAA,CAASg8K,SAAS,CAAG,IACrBh8K,CAAAA,QAAAA,CAASshL,eAAe,CAAGqG,OAAOa,UAAU,EAAEhkJ,QAC9CxkC,CAAAA,QAAAA,CAASqhL,qBAAqB,CAAGsG,MAAAA,CAAOoC,gBAAgB,EAAEvlJ,QAC1DxkC,CAAAA,QAAAA,CAASi8K,gBAAgB,CAAG0L,OAAOqC,WAAW,EAAExlJ,QAChDxkC,CAAAA,SAASk8K,gBAAgB,CAAGyL,OAAOpH,QAAQ,EAAE/7I,QAC7CxkC,CAAAA,QAAAA,CAASo8K,YAAY,CAAGwN,kBAAkBjC,MAAAA,CAAO1G,SAAS,CAC1DjhL,CAAAA,SAASiqL,cAAc,CAAG,CAACJ,QAAAA,CAASlC,OAAOuC,UAAU,CAAE,EACvDlqL,CAAAA,QAAAA,CAASmqL,mBAAmB,CAAG,CAACN,QAAAA,CAASlC,MAAAA,CAAOyC,eAAe,CAAE,CAAA,CAAI,GAAA,CACrEpqL,CAAAA,SAASqqL,aAAa,CAAG1C,MAAAA,CAAOlO,oBAAoB,EAAIkO,MAAAA,CAAO2C,SAAS,GAAK,CAC7EtqL,CAAAA,SAASwhL,gBAAgB,CAAGmG,MAAAA,CAAOyB,WAAW,EAAE5kJ,QAChDxkC,CAAAA,QAAAA,CAASuhL,aAAa,CAAGoG,MAAAA,CAAO4C,QAAQ,EAAE/lJ,QAC1CxkC,CAAAA,QAAAA,CAASwqL,OAAO,CAAG7C,MAAAA,CAAO8C,OAAO,CACjCzqL,QAAAA,CAASyhL,QAAQ,CAAG,CAAC,CAACkG,MAAAA,CAAO+C,WAAW,CACxC1qL,SAASohL,aAAa,CAAG,CAAC,CAACuG,OAAOoC,gBAClC/pL,CAAAA,QAAAA,CAAS2qL,YAAY,CAAG,CAAC,CAAChD,MAAAA,CAAO1G,SAAS,CAC1CjhL,QAAAA,CAASq8K,wBAAwB,CAAGuN,kBAAkBjC,MAAAA,CAAOiD,eAAe,CAC5E5qL,CAAAA,SAAS6qL,iBAAiB,CAAGlD,OAAOkD,iBACpC7qL,CAAAA,QAAAA,CAAS8qL,YAAY,CAAGnD,MAAAA,CAAOmD,YAAY,CAC3C9qL,QAAAA,CAAS+qL,cAAc,CAAG,CAAC,CAACpD,MAAAA,CAAOoD,cAAc,CACjD/qL,QAAAA,CAASs8K,qBAAqB,CAAGsN,iBAAAA,CAAkBjC,OAAOzG,kBAAkB,CAC5ElhL,CAAAA,QAAAA,CAASgrL,OAAO,CAAG,CAACnB,QAAAA,CAASlC,MAAAA,CAAOyC,eAAe,CAAE,CAAA,CAAI,GAAA,CACzDpqL,CAAAA,SAASirL,eAAe,CAAGtD,OAAOuD,WAAW,GAAK,CAClDlrL,CAAAA,QAAAA,CAASu8K,WAAW,CAAGoL,OAAOpL,WAC9Bv8K,CAAAA,QAAAA,CAASw8K,gBAAgB,CAAGmL,MAAAA,CAAOnL,gBACnCx8K,CAAAA,QAAAA,CAASy8K,oBAAoB,CAAGkL,MAAAA,CAAOlL,oBAAoB,CAC3Dz8K,QAAAA,CAAS4gL,gBAAgB,CAAGA,gBAC5B5gL,CAAAA,QAAAA,CAAS67K,UAAU,CAACzC,eAAe,CAAG,KACtCp5K,CAAAA,QAAAA,CAAS67K,UAAU,CAACxF,SAAS,CAAGsR,MAAAA,CAAOtR,SAAS,CAChDr2K,QAAAA,CAAS67K,UAAU,CAACL,SAAS,CAAG,CAAC,CAACmM,MAAAA,CAAOnM,SAAS,CAClDx7K,QAAAA,CAAS67K,UAAU,CAACxC,gBAAgB,CAAGsO,OAAOtO,gBAC9Cr5K,CAAAA,QAAAA,CAAS67K,UAAU,CAAC1B,eAAe,CAAGwN,MAAAA,CAAOxN,eAAe,CAC5Dn6K,SAAS67K,UAAU,CAAC1C,oBAAoB,CAAGwO,OAAO5B,wBAAwB,GAAK,CAC/E/lL,CAAAA,QAAAA,CAAS67K,UAAU,CAAChG,OAAO,CAAG,CAAC,CAAC8R,MAAAA,CAAOwD,OAAO,CAC9CnrL,QAAAA,CAAS67K,UAAU,CAAC/F,iBAAiB,CAAG,CAAC,CAAC6R,MAAAA,CAAO7R,iBAAiB,CAClE91K,QAAAA,CAAS67K,UAAU,CAAC5iI,eAAe,CAAG0uI,MAAAA,CAAO1uI,eAAe,CAC5Dj5C,QAAAA,CAAS67K,UAAU,CAAClC,oBAAoB,CAAGgO,MAAAA,CAAOhO,oBAAoB,CACtE35K,QAAAA,CAAS67K,UAAU,CAACH,aAAa,CAAGiM,MAAAA,CAAOjM,aAAa,CACxD17K,SAAS67K,UAAU,CAAC3B,iBAAiB,CAAGyN,OAAOzN,iBAC/Cl6K,CAAAA,QAAAA,CAAS67K,UAAU,CAAC/B,aAAa,CAAG6N,MAAAA,CAAO7N,aAAa,CACxD95K,QAAAA,CAAS67K,UAAU,CAACvD,WAAW,CAAGA,WAClCt4K,CAAAA,QAAAA,CAAS67K,UAAU,CAAC5C,oBAAoB,CAAI0Q,CAAAA,qBAAAA,EAAyB,CAAC,CAAChC,MAAAA,CAAOyD,oBAAoB,GAAKzD,MAAAA,CAAO+B,yBAC9G1pL,CAAAA,QAAAA,CAAS67K,UAAU,CAAC1G,iBAAiB,CAAGwS,MAAAA,CAAOxS,iBAAiB,CAChEn1K,SAAS67K,UAAU,CAAC7C,aAAa,CAAG2O,MAAAA,CAAOxS,iBAAiB,GAAKwS,MAAAA,CAAO0D,mBAAmB,CAAG,CAAA,EAAK,CAAC,CAAC1D,MAAAA,CAAO2D,aAAa,CACzHtrL,CAAAA,QAAAA,CAAS67K,UAAU,CAACpD,YAAY,CAAGkP,MAAAA,CAAOlP,YAAY,CACtDz4K,QAAAA,CAAS67K,UAAU,CAACrC,aAAa,CAAImO,CAAAA,MAAAA,CAAOuC,UAAU,EAAI,CAAC,CAACvC,MAAAA,CAAO4D,aAAa,IAAM5D,MAAAA,CAAOlO,oBAAoB,EAAIz5K,QAAAA,CAAS67K,UAAU,CAACzB,gBAAgB,GAAK/rC,kBAAiB,CAC/KruI,CAAAA,QAAAA,CAAS67K,UAAU,CAACrD,YAAY,CAAG,CAAC,CAACmP,MAAAA,CAAO8B,SAAS,CACrDzpL,QAAAA,CAAS67K,UAAU,CAACnD,QAAQ,CAAGiP,MAAAA,CAAOjP,QAAQ,CAC9C14K,SAAS67K,UAAU,CAAClD,cAAc,CAAGgP,MAAAA,CAAOhP,cAAc,EAAIgP,OAAOuD,WAAW,GAAK,CACrFlrL,CAAAA,QAAAA,CAAS67K,UAAU,CAAC9C,YAAY,CAAG4O,MAAAA,CAAO5O,YAAY,CACtD/4K,QAAAA,CAAS67K,UAAU,CAACpC,oBAAoB,CAAGkO,MAAAA,CAAOlO,oBAAoB,CACtEz5K,QAAAA,CAAS67K,UAAU,CAACnC,UAAU,CAAGiO,MAAAA,CAAOjO,UAAU,CAAG,CACrD15K,CAAAA,QAAAA,CAAS67K,UAAU,CAAC7B,aAAa,CAAG2N,MAAAA,CAAO3N,aAAa,CACxDh6K,SAAS67K,UAAU,CAACjG,mBAAmB,CAAG+R,MAAAA,CAAOxL,iBAAgB,CAElE6L,iBAAAA,CAAkBhoL,QAAQ,CAAE2nL,MAAM,CAAExsC,KAAK,CAAE/B,kBAAkB,CAAE,CAC9Dp5I,QAAAA,CAAS67K,UAAU,CAACthB,GAAG,CAAGotB,OAAOZ,MAAM,CAAG3tC,mBAAmBmhB,GAAG,CAAGlyB,QACnEroI,CAAAA,SAAS67K,UAAU,CAAC93K,KAAK,CAAGq1I,mBAAmB4hB,iBAC/Ch7J,CAAAA,QAAAA,CAAS67K,UAAU,CAACF,OAAO,CAAGgM,MAAAA,CAAOX,UAAU,CAAG5tC,kBAAAA,CAAmBvwD,WAAW,CAAGklD,YAAAA,CACnF,IAAIy9C,aAAAA,CAAgB,KAAA,CACpB,GAAI7D,MAAAA,CAAOT,QAAQ,EAAIS,MAAAA,CAAO2B,OAAO,CAAE,CACtCtpL,QAAAA,CAAS67K,UAAU,CAACzB,gBAAgB,CAAG7rC,wBACvCvuI,CAAAA,QAAAA,CAAS67K,UAAU,CAACvB,kBAAkB,CAAGqN,MAAAA,CAAOT,QAAQ,CAAC1iJ,QAAQ,CACjExkC,QAAAA,CAAS67K,UAAU,CAACtB,yBAAyB,CAAGoN,OAAO2B,OAAO,CAAC9kJ,SAAQ,CACxE,KAAO,GAAImjJ,MAAAA,CAAOT,QAAQ,CAAE,CAC3BlnL,QAAAA,CAAS67K,UAAU,CAACzB,gBAAgB,CAAG9rC,sBACvCtuI,CAAAA,SAAS67K,UAAU,CAACvB,kBAAkB,CAAGqN,MAAAA,CAAOT,QAAQ,CAAC1iJ,SAAQ,CAClE,KAAO,GAAImjJ,MAAAA,CAAO2B,OAAO,CAAE,CAC1BtpL,QAAAA,CAAS67K,UAAU,CAACzB,gBAAgB,CAAG5rC,qBACvCxuI,CAAAA,QAAAA,CAAS67K,UAAU,CAACvB,kBAAkB,CAAGqN,OAAO2B,OAAO,CAAC9kJ,SACzD,MAAO,GAAImjJ,MAAAA,CAAO0B,SAAS,CAAE,CAC5BrpL,QAAAA,CAAS67K,UAAU,CAACzB,gBAAgB,CAAG3rC,uBACvCzuI,CAAAA,SAAS67K,UAAU,CAACvB,kBAAkB,CAAGqN,MAAAA,CAAO0B,SAAS,CAAC7kJ,SAAQ,CACnE,KAAO,GAAImjJ,MAAAA,CAAOV,SAAS,EAAI9rC,KAAAA,CAAM+rC,QAAQ,EAAI/rC,MAAMgsC,MAAM,CAAE,CAC9DnnL,QAAAA,CAAS67K,UAAU,CAACzB,gBAAgB,CAAG7rC,wBACvCvuI,CAAAA,SAAS67K,UAAU,CAACvB,kBAAkB,CAAGn/B,MAAM+rC,QAAQ,CAAC1iJ,QACxDxkC,CAAAA,QAAAA,CAAS67K,UAAU,CAACtB,yBAAyB,CAAGp/B,MAAMgsC,MAAM,CAAC3iJ,QAAQ,CACrEgnJ,cAAgB,KACjB,CAAA,KAAO,GAAI7D,MAAAA,CAAOV,SAAS,EAAI9rC,KAAAA,CAAM+rC,QAAQ,CAAE,CAC9ClnL,QAAAA,CAAS67K,UAAU,CAACzB,gBAAgB,CAAG9rC,sBACvCtuI,CAAAA,QAAAA,CAAS67K,UAAU,CAACvB,kBAAkB,CAAGn/B,KAAAA,CAAM+rC,QAAQ,CAAC1iJ,QAAQ,CAChEgnJ,aAAAA,CAAgB,KACjB,CAAA,KAAO,GAAI7D,MAAAA,CAAOV,SAAS,EAAI9rC,KAAAA,CAAMgsC,MAAM,CAAE,CAC5CnnL,QAAAA,CAAS67K,UAAU,CAACzB,gBAAgB,CAAG5rC,qBACvCxuI,CAAAA,QAAAA,CAAS67K,UAAU,CAACvB,kBAAkB,CAAGn/B,KAAAA,CAAMgsC,MAAM,CAAC3iJ,QAAQ,CAC9DgnJ,aAAAA,CAAgB,KACjB,MAAO,CACNxrL,QAAAA,CAAS67K,UAAU,CAACzB,gBAAgB,CAAG/rC,kBACvCruI,CAAAA,QAAAA,CAAS67K,UAAU,CAACvB,kBAAkB,CAAG,KAC1C,CACA,GAAIqN,MAAAA,CAAOnM,SAAS,CAAE,CACrBx7K,SAAS67K,UAAU,CAACxB,aAAa,CAAG1rC,oBACpC3uI,CAAAA,QAAAA,CAAS67K,UAAU,CAACrB,eAAe,CAAG,KACvC,CAAA,KAAO,CACN,MAAM0M,SAAWS,MAAAA,CAAOT,QAAQ,GAAKS,MAAAA,CAAOV,SAAS,EAAI9rC,KAAAA,CAAM+rC,QAAQ,CAAG/rC,MAAM+rC,QAAQ,CAAG,IAAG,CAAA,CAC9F,GAAIA,QAAAA,EAAY,CAACS,MAAAA,CAAO0B,SAAS,CAAE,CAClCrpL,QAAAA,CAAS67K,UAAU,CAACxB,aAAa,CAAGzrC,qBACpC5uI,CAAAA,QAAAA,CAAS67K,UAAU,CAACrB,eAAe,CAAG0M,QAAAA,CAAS1iJ,SAAQ,CACxD,KAAO,CACNxkC,QAAAA,CAAS67K,UAAU,CAACxB,aAAa,CAAGxrC,mBACpC7uI,CAAAA,QAAAA,CAAS67K,UAAU,CAACrB,eAAe,CAAG,KACvC,CACD,CACAx6K,QAAAA,CAAS67K,UAAU,CAACtC,eAAe,CAAGiS,aACtCxrL,CAAAA,QAAAA,CAAS67K,UAAU,CAAC3C,kBAAkB,CAAGsS,aAAAA,EAAiBrwC,KAAAA,CAAMksC,6BAA4B,CAE7Fa,mBAAAA,CAAoBloL,QAAQ,CAAEm7I,KAAK,CAAEwsC,MAAM,CAAE34B,OAAO,CAAEP,YAAY,CAAE,CACnEzuJ,SAASugL,QAAQ,CAAG,KACpBvgL,CAAAA,QAAAA,CAASyrL,eAAe,CAAG,EAC3BzrL,CAAAA,QAAAA,CAAS0rL,UAAU,CAAG,CACtB1rL,CAAAA,QAAAA,CAAS2rL,iBAAiB,CAAG,CAC7B3rL,CAAAA,QAAAA,CAAS67K,UAAU,CAACzD,sBAAsB,CAAG,KAC7Cp4K,CAAAA,SAASygL,WAAW,CAAG,KAAA,CACvB,GAAIzxB,QAAS,CACZhvJ,QAAAA,CAAS67K,UAAU,CAAC7E,QAAQ,CAAIhoB,CAAAA,OAAAA,CAAUjgB,kBAAiB,IAAO,CAAA,CAClE,GAAI,CAACigB,QAAU3f,YAAW,IAAO,CAAA,CAAG,CACnCrvI,SAASk8K,gBAAgB,CAAG/gC,KAAAA,CAAMywC,mBAAmB,GAAKhiK,iBAAAA,CAAoB,MAAA,CAAS,QACvF5pB,CAAAA,SAASugL,QAAQ,CAAG,IACpBvgL,CAAAA,QAAAA,CAASyrL,eAAe,CAAG,KAC3BzrL,CAAAA,QAAAA,CAAS0rL,UAAU,CAAG,CACtB1rL,CAAAA,QAAAA,CAAS2rL,iBAAiB,CAAG,CAC7B3rL,CAAAA,QAAAA,CAAS67K,UAAU,CAACzD,sBAAsB,CAAG,CAACuP,MAAAA,CAAOpH,QAAQ,CAC7D,GAAKvxB,CAAAA,OAAAA,CAAU1f,eAAc,IAAO,CAAA,CAAG,CACtCtvI,QAAAA,CAASygL,WAAW,CAAG,KACxB,CACA,GAAI,CAACzxB,OAAAA,CAAUrf,mBAAkB,IAAO,CAAA,CAAG,CAC1C3vI,QAAAA,CAAS67K,UAAU,CAACzD,sBAAsB,CAAG,MAC9C,CACD,CACD,CACA,GAAIuP,MAAAA,CAAO7B,WAAW,CAAE,CACvB,MAAMwB,cAAAA,CAAiB,EAAE,CACzB,MAAMp+I,IAAAA,CAAO8lH,QAAUA,OAAAA,EAAW,EAAA,CAAK/e,mBACvCjwI,CAAAA,SAAS67K,UAAU,CAAC/E,gBAAgB,CAAG,CAAC,EAAE5tI,IAAAA,CAAO+mG,mBAAkB,EACnE,GAAIwe,YAAAA,CAAc,CACjB82B,yBAAAA,CAA0BtY,aAAa,CAAC7jC,qBAAAA,CAAuBqlB,YAAY,CAACrlB,qBAAAA,CAAsB,CAAEk+C,cAAAA,CAAgBp+I,IAAAA,CAAAA,CACpH,GAAI,CAACiyG,MAAMs7B,wBAAwB,CAAE,CACpC8O,yBAAAA,CAA0BtY,aAAa,CAAC5jC,cAAAA,CAAgBolB,YAAY,CAACplB,cAAAA,CAAe,CAAEi+C,cAAAA,CAAgBp+I,IAAAA,CAAAA,CACtGq8I,yBAAAA,CAA0BtY,aAAa,CAAC1jC,cAAAA,CAAgBklB,YAAY,CAACllB,cAAAA,CAAe,CAAE+9C,cAAAA,CAAgBp+I,IAAAA,EACvG,CACD,CACAlpC,SAAS67K,UAAU,CAACnF,MAAM,CAAG4Q,eAC9B,MAAO,CACNtnL,QAAAA,CAAS67K,UAAU,CAACnF,MAAM,CAAG,GAAE,CAEhC,GAAI12K,QAAAA,CAAS67K,UAAU,CAACnF,MAAM,CAACjoL,MAAM,GAAK,GAAK,CAAC0sJ,KAAAA,CAAMs7B,wBAAwB,CAAE,CAC/Ez2K,QAAAA,CAAS67K,UAAU,CAAC7E,QAAQ,CAAG,KAChC,CACD,CACD,CAAA,CAEA,SAAS6U,iBAAAA,CAAkBv6L,IAAI,CAAE8D,OAAAA,CAAU,IAAI,CAAE02L,WAAAA,CAAc,IAAI,EAClE,MAAMv9L,MAAAA,CAAS,EACfA,CAAAA,MAAM,CAAC,CAAC,EAAE+C,IAAAA,CAAK,GAAG,CAAC,CAAC,CAAG,SACvB/C,CAAAA,MAAM,CAAC,CAAC,EAAE+C,IAAAA,CAAK,SAAS,CAAC,CAAC,CAAG,MAC7B/C,CAAAA,MAAM,CAAC,CAAC,EAAE+C,KAAK,SAAS,CAAC,CAAC,CAAG,MAC7B/C,CAAAA,MAAM,CAAC,CAAC,EAAE+C,KAAK,WAAW,CAAC,CAAC,CAAG,QAC/B/C,CAAAA,MAAM,CAAC,CAAC,EAAE+C,IAAAA,CAAK,KAAK,CAAC,CAAC,CAAG,QAAA,CACzB,GAAI8D,QAAS,CACZ7G,MAAM,CAAC,CAAC,EAAE+C,IAAAA,CAAK,UAAU,CAAC,CAAC,CAAG,QAAA,CAC9B,GAAIw6L,YAAa,CAChBv9L,MAAM,CAAC,CAAC,EAAE+C,IAAAA,CAAK,WAAW,CAAC,CAAC,CAAG,SAC/B/C,CAAAA,MAAM,CAAC,CAAC,EAAE+C,IAAAA,CAAK,kBAAkB,CAAC,CAAC,CAAG,SACvC,CACD,CACA,OAAO/C,MACR,CACA,IAAIw9L,+BAAiC,CACpCz6L,IAAAA,CAAM,SACNqjL,MAAAA,CAAQ,QAAA,CACRqX,aAAAA,CAAe,QAAA,CACfC,QAAS,SAAA,CAETC,OAAAA,CAAS,KAAA,CACT,GAAGL,kBAAkB,IAAA,CAAK,CAC1B,GAAGA,iBAAAA,CAAkB,WAAY,IAAA,CAAM,KAAA,CAAM,CAC7Cf,YAAAA,CAAc,QAAA,CACdqB,YAAa,QAAA,CACbC,OAAAA,CAAS,KAAA,CACT,GAAGP,kBAAkB,SAAA,CAAU,CAC/B,GAAGA,iBAAAA,CAAkB,gBAAiB,IAAA,CAAM,KAAA,CAAM,CAClDhB,iBAAAA,CAAmB,SACnB1O,gBAAAA,CAAkB,SAAA,CAClBoN,SAAU,KAAA,CACV,GAAGsC,kBAAkB,UAAA,CAAW,CAChC1R,eAAAA,CAAiB,sBAAA,CACjBqP,kBAAmB,QAAA,CACnBG,qBAAAA,CAAuB,SAAA,CACvB,GAAGkC,kBAAkB,mBAAA,CAAoB,CACzC9S,YAAAA,CAAc,SAAA,CACd+Q,UAAW,QAAA,CACX3U,iBAAAA,CAAmB,UACnB4G,aAAAA,CAAe,SAAA,CACf,GAAG8P,iBAAAA,CAAkB,WAAA,CAAY,CACjCnC,yBAAAA,CAA2B,UAC3B2B,mBAAAA,CAAqB,QAAA,CACrBgB,mBAAoB,QAAA,CACpB,GAAGR,kBAAkB,YAAA,CAAa,CAClCS,SAAAA,CAAW,QAAA,CACXC,MAAO,QAAA,CACPhQ,WAAAA,CAAa,UACb,GAAGsP,iBAAAA,CAAkB,QAAQ,CAC7BpC,SAAAA,CAAW,QAAA,CACX,GAAGoC,kBAAkB,WAAA,CAAY,CACjCd,cAAAA,CAAgB,QAAA,CAChBtO,qBAAsB,SAAA,CACtB,GAAGoP,iBAAAA,CAAkB,gBAAA,CAAiB,CACtCW,kBAAAA,CAAoB,QAAA,CACpB,GAAGX,iBAAAA,CAAkB,iBAAA,CAAmB,MAAM,CAC9CnT,QAAAA,CAAU,SAAA,CACV+T,KAAAA,CAAO,MACP,GAAGZ,iBAAAA,CAAkB,OAAA,CAAQ,CAC7Ba,WAAY,QAAA,CACZlQ,gBAAAA,CAAkB,SAAA,CAClB,GAAGqP,kBAAkB,YAAA,CAAa,CAClCpT,aAAc,QAAA,CACdkU,QAAAA,CAAU,MACV,GAAGd,iBAAAA,CAAkB,UAAA,CAAW,CAChCe,kBAAmB,QAAA,CACnB,GAAGf,iBAAAA,CAAkB,QAAA,CAAU,MAAM,CACrCgB,SAAAA,CAAW,QAAA,CAEX,GAAGhB,kBAAkB,cAAA,CAAgB,KAAA,CAAM,CAC3CiB,wBAAAA,CAA0B,QAAA,CAC1B,GAAGjB,iBAAAA,CAAkB,QAAA,CAAU,IAAA,CAAM,KAAA,CAAM,CAC3CkB,eAAAA,CAAiB,QAAA,CACjBC,aAAAA,CAAe,QAAA,CACftM,aAAc,QAAA,CACduM,eAAAA,CAAiB,QAAA,CACjB1E,qBAAAA,CAAuB,SACvBtvI,eAAAA,CAAiB,SAAA,CACjBg4G,UAAW,QAAA,CACXi8B,SAAAA,CAAW,SACXC,WAAAA,CAAa,QAAA,CACbC,OAAAA,CAAS,QAAA,CACT,GAAGvB,iBAAAA,CAAkB,SAAA,CAAU,CAC/BlS,oBAAAA,CAAsB,UACtB+B,aAAAA,CAAe,QAAA,CACfhB,mBAAAA,CAAqB,QAAA,CACrB2S,aAAc,QAAA,CACdnD,UAAAA,CAAY,SACZD,cAAAA,CAAgB,SAAA,CAChB,GAAG4B,iBAAAA,CAAkB,YAAA,CAAa,CAClCzB,eAAAA,CAAiB,SACjB1Q,UAAAA,CAAY,QAAA,CACZ4Q,SAAAA,CAAW,QAAA,CACXD,cAAe,SAAA,CACf,GAAGwB,iBAAAA,CAAkB,WAAA,CAAY,CACjCyB,WAAAA,CAAa,KAAA,CACbC,oBAAqB,QAAA,CACrB9T,oBAAAA,CAAsB,UACtB4P,SAAAA,CAAW,SAAA,CACXC,OAAAA,CAAS,SAAA,CACTpP,kBAAmB,QAAA,CACnBsT,oBAAAA,CAAsB,aAAA,CACtB7U,cAAAA,CAAgB,UAChBuS,WAAAA,CAAa,QAAA,CACbD,eAAAA,CAAiB,SAAA,CACjB,GAAGY,iBAAAA,CAAkB,aAAA,CAAc,CACnC4B,wBAAAA,CAA0B,SAAA,CAC1BC,wBAAyB,QAAA,CACzBC,uBAAAA,CAAyB,QAAA,CACzBC,0BAAAA,CAA4B,SAC5B,GAAG/B,iBAAAA,CAAkB,uBAAuB,CAC5C,GAAGA,kBAAkB,OAAA,CAAQ,CAC7BvI,SAAAA,CAAW,SAAA,CACXz4E,UAAW,gBAAA,CACX04E,UAAAA,CAAY,UACZ71I,SAAAA,CAAW,QAAA,CACXg1I,eAAgB,QAAA,CAChBvxB,IAAAA,CAAM,WAAA,CACN8oB,SAAAA,CAAW,iBACX8M,MAAAA,CAAQ,SAAA,CACRjB,WAAAA,CAAa,SAAA,CACbmB,UAAW,SAAA,CACXD,UAAAA,CAAY,SAAA,CACZE,QAAAA,CAAU,UACV7N,gBAAAA,CAAkB,SAAA,CAClB4I,YAAa,SAAA,CACbjI,aAAAA,CAAe,SAchB,CAAA,CACA,IAAI6T,iCAAAA,CAAoC,EAAE,CAC1C,IAAK,MAAMt3L,GAAAA,IAAOw1L,8BAAAA,CAAgC,CACjD,MAAMnmL,IAAAA,CAAOmmL,8BAA8B,CAACx1L,IAAI,CAChD,GAAIqP,OAAS,SAAA,CAAW,CACvBioL,kCAAkCv+L,IAAI,CAACiH,GAAAA,EACxC,CACD,CACA,IAAIu3L,iCAAAA,CAAoC,EAAE,CAC1C,IAAK,MAAMv3L,GAAAA,IAAOw1L,8BAAAA,CAAgC,CACjD,MAAMnmL,IAAAA,CAAOmmL,8BAA8B,CAACx1L,GAAAA,CAAI,CAChD,GAAIqP,IAAAA,GAAS,SAAA,CAAW,CACvBkoL,iCAAAA,CAAkCx+L,IAAI,CAACiH,GAAAA,EACxC,CACD,CACA,IAAIw3L,iCAAAA,CAAoC,CACvCC,gBAAAA,CAAkB,SAAA,CAClBC,eAAgB,SAAA,CAChBC,qBAAAA,CAAuB,UACvBC,eAAAA,CAAiB,SAAA,CACjBC,uBAAwB,SAAA,CACxBC,mBAAAA,CAAqB,SAAA,CACrBC,uBAAAA,CAAyB,UACzBC,qBAAAA,CAAuB,SAAA,CACvBC,iBAAAA,CAAmB,SAAA,CACnBC,gBAAiB,SAAA,CACjBC,sBAAAA,CAAwB,SAAA,CACxBC,WAAAA,CAAa,UACbC,YAAAA,CAAc,SAAA,CACdC,YAAa,SAAA,CACbC,YAAAA,CAAc,UACdC,SAAAA,CAAW,SAAA,CACXC,cAAAA,CAAgB,SAAA,CAChBC,SAAU,SAAA,CACVC,eAAAA,CAAiB,SAAA,CACjBC,cAAAA,CAAgB,UAChBvsJ,UAAAA,CAAY,SACb,CAAA,CAEA,IAAIwsJ,OAAS,EAAC,CACd,IAAIC,SAAAA,CAAY,GAChB,IAAIC,OAAAA,CAA0B,IAAI95L,GAAAA,CAClC,IAAI+5L,UAAAA,CAAa,IAAIjsL,KAAAA,CACrB,IAAIksL,QAAU,MAACvrI,EAAAA,CACd,OAAOA,MAAAA,CAAOn2D,CAAC,GAAK,CAAA,EAAKm2D,OAAOniD,CAAC,GAAK,GAAKmiD,MAAAA,CAAO74D,CAAC,GAAK,CACzD,EACA,IAAIqkM,gBAAAA,EAAAA,OAAAA,CAAmB,cAAc1N,QAAAA,CAgBpC5lL,KAAAA,EAAQ,CACPwI,MAAAA,CAAOyB,IAAI,CAACgpL,MAAAA,CAAAA,CAAQl0L,OAAO,CAAE5J,OAC5B,IAAI,CAAC,CAAC,CAAC,EAAEA,IAAAA,CAAK,CAAC,CAAC,CAAG89L,MAAM,CAAC99L,IAAAA,CAAK,CAAC+E,KAAK,GACtC,CAAA,CACA,CAAA,IAAI,CAACq5L,aAAa,CAAG,EAAC,CACtB,IAAI,CAACC,cAAc,CAACxzL,KAAK,GAC1B,CACA5O,IAAAA,CAAK03C,MAAM,CAAE,CACZ,KAAK,CAAC13C,IAAAA,CAAK03C,MAAAA,CAAAA,CACXtgC,OAAOyB,IAAI,CAACgpL,QAAQl0L,OAAO,CAAC,IAAC5J,EAAAA,CAC5B,IAAI,CAACA,IAAAA,CAAK,CAAG89L,MAAM,CAAC99L,IAAAA,CAAK,CAACs+L,eAAe,CAAG3qJ,MAAM,CAAC,CAAC,CAAC,EAAE3zC,IAAAA,CAAK,CAAC,CAAC,CAAG2zC,MAAM,CAAC3zC,IAAAA,EAAK,CAC9E,CACA,CAAA,IAAI,CAACu+L,YAAY,CAAG5qJ,OAAO4qJ,YAC3B,CAAA,IAAI,CAAC1U,cAAc,CAAG,IAAIvkL,GAAAA,CAAIquC,MAAAA,CAAOk2I,cAAc,CAAA,CACnD,OAAO,IACR,CACA9yI,MAAAA,EAAS,CACR,GAAI,IAAI,CAACsnJ,cAAc,CAACtnJ,MAAM,CAAC,IAAI,CAAA,CAAG,CACrC,IAAI,CAACs7I,YAAY,CAAG,KACrB,CACA,MAAMmM,eAAAA,CAAkBN,QAAQ,IAAI,CAACO,SAAS,CAAA,CAC9C,GAAI,IAAI,CAACC,gBAAgB,GAAKF,gBAAiB,CAC9C,IAAI,CAACE,gBAAgB,CAAGF,eACxB,CAAA,IAAI,CAACnM,YAAY,CAAG,KACrB,CACA,KAAK,CAACt7I,SACP,CACA6gJ,kBAAAA,CAAmB53L,IAAI,CAAE,CACxB,OAAO,IAAI,CAACq+L,cAAc,CAACrK,KAAK,CAACh0L,IAAAA,CAClC,CACAiI,YAAAA,CAAajI,IAAI,CAAE4gD,QAAQ,CAAE,CAC5B,IAAI,CAACipI,cAAc,CAAChmL,GAAG,CAAC+8C,SAAU5gD,IAAAA,EACnC,CACA2+L,cAAc3+L,IAAI,CAAE+E,KAAK,CAAE,CAC1Bi5L,OAAAA,CAAQzwL,GAAG,CAACvN,IAAAA,CAAAA,CACZ,IAAI,CAAC2tH,YAAY,CAAC3tH,IAAAA,CAAM+E,KAAAA,EACzB,CACA65L,cAAAA,CAAe/wE,UAAU,CAAE,CAC1BA,WAAWjkH,OAAO,CAAC,EAACjN,EAAAA,CACnB,IAAI,CAACgiM,aAAa,CAAChiM,EAAAA,CAAGqD,IAAI,CAAErD,EAAAA,CAAGoI,KAAK,EACrC,CAAA,EACD,CACA85L,kBAAAA,CAAmBC,UAAU,CAAE,CAC9B,MAAMC,UAAAA,CAAa,IAAI,CAACD,UAAAA,CAAW,CACnCC,UAAAA,CAAWn1L,OAAO,CAAC,KAACgkH,EAAAA,CACnB,GAAI,CAACowE,QAAQ/5L,GAAG,CAAC2pH,KAAAA,CAAAA,CAAQ,CACxB,OAAO,IAAI,CAACC,UAAU,CAACD,KAAAA,EAAM,CAE/B,CAAA,CACA,CAAA,IAAI,CAACkxE,UAAAA,CAAW,CAAGd,OAAAA,CACnBA,OAAAA,CAAUe,WACVf,OAAAA,CAAQp4L,KAAK,GACd,CACAo5L,WAAW9tK,CAAC,CAAE,CACb,MAAMkmK,KAAAA,CAAQ,CAAC,EAAElmK,CAAAA,CAAE,GAAG,CAAC,CACvB,MAAM1tB,GAAAA,CAAM,IAAI,CAAC4zL,MAAM,CACvB,GAAI5zL,GAAAA,CAAK,CACR,IAAI,CAACm7L,aAAa,CAAC,CAAC,QAAQ,EAAEvH,KAAAA,CAAM,CAAC,CAAE5zL,GAAAA,CAAAA,CACvC,MAAMg0L,KAAAA,CAAQ,CAAC,EAAEJ,KAAAA,CAAM,SAAS,CAAC,CACjC,MAAMl4I,OAAAA,CAAU,IAAI,CAAC60I,UAAU,CAACyD,KAAAA,CAAAA,CAChC,GAAIt4I,QAAS,CACZ,IAAI,CAAC0/I,cAAc,CAAC1/I,OAAAA,EACrB,CACD,CACD,CAEA+/I,cAAcj/L,IAAI,CAAEk/L,SAAS,CAAE,CAC9B,IAAIhgJ,OAAAA,CAAU,IAAI,CAACk/I,aAAa,CAACp+L,IAAAA,CAAK,CACtC,GAAI,CAACk/C,QAAS,CACbA,OAAAA,CAAUggJ,WACV,CAAA,IAAI,CAACd,aAAa,CAACp+L,IAAAA,CAAK,CAAGk/C,QAC5B,CACA,OAAOA,OACR,CACA60I,UAAAA,CAAW/zL,IAAI,CAAEorC,MAAM,CAAEy+G,KAAK,CAAE,CAC/B,OAAOk0C,SAAS,CAAC/9L,KAAK,CAAC,IAAI,CAAEorC,MAAAA,CAAQy+G,MACtC,CACA4sB,cAAAA,CAAerrI,MAAM,CAAEy+G,KAAK,CAAE,CAC7B,GAAI,IAAI,CAACw0C,cAAc,CAACtnJ,MAAM,CAAC,IAAI,EAAG,CACrC,IAAI,CAACs7I,YAAY,CAAG,KACrB,CACA,MAAM0B,UAAAA,CAAc/zL,OACnB,OAAO,IAAI,CAAC+zL,UAAU,CAAC/zL,IAAAA,CAAMorC,MAAAA,CAAQy+G,KAAAA,CACtC,CAAA,CACA,IAAI,CAAC80C,aAAa,CAAC,kBAAA,CAAoB5K,WAAW,SAAA,CAAA,CAAA,CAClD,IAAI,CAAC4K,aAAa,CAAC,mBAAoB5K,UAAAA,CAAW,SAAA,CAAA,CAAA,CAClD,IAAI,CAAC4K,aAAa,CAAC,mBAAA,CAAqB5K,UAAAA,CAAW,UAAA,CAAA,CAAA,CACnD,IAAI,CAAC4K,aAAa,CAAC,sBAAA,CAAwB,IAAI,CAAC9D,WAAW,EAC3D,GAAI,IAAI,CAACpT,YAAY,CAAE,CACtB,GAAI,CAAC,IAAI,CAAC0X,YAAY,EAAI,IAAI,CAAC3G,SAAS,CAAG,CAAA,CAAG,CAC7C,IAAI,CAACmG,aAAa,CAAC,oBAAA,CAAsB,IAAI,CAACnG,SAAS,EACxD,CACA,GAAI,CAAC,IAAI,CAACsB,oBAAoB,EAAI,IAAI,CAACzB,qBAAqB,EAAI,IAAI,CAACH,iBAAiB,GAAK,CAAA,CAAG,CAC7F,IAAI,CAACyG,aAAa,CAAC,4BAAA,CAA8B,IAAI,CAACzG,iBAAiB,EACxE,CACA,IAAI,CAACyG,aAAa,CAAC,gBAAA,CAAkB5K,WAAW,OAAA,CAAA,CAAA,CAChD,IAAI,CAAC4K,aAAa,CAAC,sBAAuB,IAAI,CAACvD,UAAU,CAAA,CACzD,IAAI,CAACuD,aAAa,CAAC,0BAAA,CAA4B,IAAI,CAAC7F,eAAe,EACpE,CACA,GAAI,IAAI,CAACjV,iBAAiB,CAAE,CAC3B,IAAI,CAAC8a,aAAa,CAAC,8BAAA,CAAgC,IAAI,CAAC5E,mBAAmB,CAAA,CAC3E,IAAI,CAAC4E,aAAa,CAAC,6BAAA,CAA+B,CAACliM,IAAAA,CAAKmc,GAAG,CAAC,IAAI,CAACmiL,kBAAkB,CAAG/qL,KAAKC,UAAU,CAAA,CAAGxT,IAAAA,CAAKqc,GAAG,CAAC,IAAI,CAACiiL,kBAAkB,CAAG/qL,KAAKC,UAAU,CAAA,CAAE,EAC7J,CACA,GAAI,IAAI,CAACkoL,SAAS,CAAG,CAAA,CAAG,CACvB,IAAI,CAACwG,aAAa,CAAC,qBAAsB,IAAI,CAACxG,SAAS,CAAA,CACvD,IAAI,CAACwG,aAAa,CAAC,yBAAA,CAA2B,IAAI,CAAClF,cAAc,EACjE,IAAI,CAACkF,aAAa,CAAC,6BAAA,CAA+B,IAAI,CAACzD,kBAAkB,EAC1E,CACA,IAAI,CAACyD,aAAa,CAAC,gBAAA,CAAkB,IAAI,CAAC1D,KAAK,CAAA,CAC/C,IAAI,CAAC0D,aAAa,CAAC,oBAAqB5K,UAAAA,CAAW,UAAA,CAAA,CAAA,CACnD,IAAI,CAAC4K,aAAa,CAAC,4BAAA,CAA8B,IAAI,CAACrD,iBAAiB,CAAA,CACvE,GAAI,IAAI,CAAC1C,UAAU,CAAG,CAAA,CAAG,CACxB,IAAI,CAAC+F,aAAa,CAAC,qBAAA,CAAuB,IAAI,CAAC/F,UAAU,EAC1D,CACA,GAAI,CAAC,IAAI,CAACnR,YAAY,GAAK,IAAI,CAACmR,UAAU,CAAG,CAAA,EAAK,IAAI,CAACqB,aAAY,CAAA,CAAI,CACtE,IAAI,CAAC0E,aAAa,CAAC,0BAAA,CAA4B,IAAI,CAAC7F,eAAe,EACpE,CACA,GAAI,IAAI,CAAC1Q,UAAU,CAAG,CAAA,CAAG,CACxB,IAAI,CAACuW,aAAa,CAAC,sBAAuB,IAAI,CAACvW,UAAU,EAC1D,CACA,GAAI,IAAI,CAACD,oBAAoB,CAAE,CAC9B,IAAI,CAACwW,aAAa,CAAC,oBAAA,CAAsB,IAAI,CAAC3F,SAAS,CAAA,CACvD,IAAI,CAAC2F,aAAa,CAAC,sBAAA,CAAwB5K,UAAAA,CAAW,gBACtD,IAAI,CAAC4K,aAAa,CAAC,kCAAmC,IAAI,CAAC1C,mBAAmB,GAAK,CAAA,CAAI,EAAI,CAAA,CAAI,IAAI,CAACA,mBAAmB,EACxH,CACA,GAAI,IAAI,CAAC5U,cAAc,CAAE,CACxB,IAAI,CAACsX,aAAa,CAAC,sBAAA,CAAwB,IAAI,CAAC/E,WAAW,EAC3D,IAAI,CAAC+E,aAAa,CAAC,sCAAuC,IAAI,CAACrC,0BAA0B,CAAA,CACzF,IAAI,CAACqC,aAAa,CAAC,kCAAA,CAAoC,IAAI,CAACvC,uBAAuB,EACnF,IAAI,CAACuC,aAAa,CAAC,kCAAA,CAAoC,IAAI,CAACtC,uBAAuB,EACpF,CACA,IAAI,CAACsC,aAAa,CAAC,kBAAA,CAAoB,IAAI,CAAC7C,OAAO,CAAA,CACnD,MAAMsD,YAAc,IAAI,CAACC,QAAQ,CAAG,CAAA,CAAI,IAAI,CAACxD,WAAW,CAAG,IAAI,CAACwD,QAAQ,CAAG,CAAA,CAC3E,IAAI,CAACV,aAAa,CAAC,2BAAA,CAA6BS,WAAAA,CAAAA,CAChD,GAAI,IAAI,CAAC/W,oBAAoB,GAAK,KAAA,CAAO,CACxC,IAAI,CAACsW,aAAa,CAAC,oBAAA,CAAsB,IAAI,CAAC/C,SAAS,EACxD,CACA,GAAI,IAAI,CAAC/S,eAAe,CAAE,CACzB,IAAI,CAAC8V,aAAa,CAAC,mCAAA,CAAqC,IAAI,CAAClK,wBAAwB,EACtF,CACA,GAAI,IAAI,CAAC7L,iBAAiB,GAAKptC,YAAAA,CAAc,CAC5C,IAAI,CAACmjD,aAAa,CAAC5K,UAAAA,CAAW,yBAC/B,CACA,IAAK,MAAM7iK,CAAAA,IAAK46J,UAAUh3K,IAAI,EAAA,CAAI,CACjC,IAAI,CAACkqL,UAAU,CAAC9tK,CAAAA,EACjB,CACA,GAAI,IAAI,CAACg5J,SAAS,CAAE,CACnB,IAAI,CAACyU,aAAa,CAAC,cAAA,CAAgB,IAAI,CAACzU,SAAS,EAClD,CACA,GAAI,IAAI,CAACyF,SAAS,CAAE,CACnB,IAAI,CAACgP,aAAa,CAAC,oBAAA,CAAsB,IAAI,CAACpD,SAAS,EACxD,CACA,GAAI,IAAI,CAAC5L,SAAS,EAAI,IAAI,CAAC2J,eAAe,CAAE,CAC3C,IAAI,CAACqF,aAAa,CAAC,oCAAqC,IAAI,CAACnD,wBAAwB,EACtF,CACA,GAAI,IAAI,CAAC5O,SAAS,CAAE,CACnB,IAAI,CAAC+R,aAAa,CAAC,0BAAA,CAA4B5K,UAAAA,CAAW,oBAC1D,IAAI,CAAC4K,aAAa,CAAC,wBAAA,CAA0B,IAAI,CAACjD,aAAa,CAAA,CAC/D,GAAI,IAAI,CAACtM,YAAY,GAAKxtC,kBAAAA,CAAoB,CAC7C,IAAI,CAAC+8C,aAAa,CAAC,2BAA4B,IAAI,CAAChD,eAAe,CAAA,CACnE,GAAI,IAAI,CAAC1E,qBAAqB,CAAG,CAAA,CAAG,CACnC,IAAI,CAAC0H,aAAa,CAAC,iCAAkC,IAAI,CAAC1H,qBAAqB,EAChF,CACD,CACD,CACA,GAAI,IAAI,CAACrB,QAAQ,EAAI,IAAI,CAACoC,OAAO,CAAE,CAClC,IAAI,CAAC2G,aAAa,CAAC,kBAAA,CAAoB,IAAI,CAAC/I,QAAQ,EACpD,IAAI,CAAC+I,aAAa,CAAC,iBAAA,CAAmB,IAAI,CAAC3G,OAAO,EACnD,CAAA,KAAO,GAAI,IAAI,CAACpC,QAAQ,CAAE,CACzB,IAAI,CAAC+I,aAAa,CAAC,mBAAoB,IAAI,CAAC/I,QAAQ,EACrD,CAAA,KAAO,GAAI,IAAI,CAACoC,OAAO,CAAE,CACxB,IAAI,CAAC2G,aAAa,CAAC,iBAAA,CAAmB,IAAI,CAAC3G,OAAO,EACnD,CAAA,KAAO,GAAI,IAAI,CAACD,SAAS,CAAE,CAC1B,IAAI,CAAC4G,aAAa,CAAC,mBAAA,CAAqB,IAAI,CAAC5G,SAAS,EACvD,CACA,IAAI,CAAC4G,aAAa,CAAC,uBAAA,CAAyB,IAAI,CAAC5C,YAAY,EAC7D,IAAI,CAAC8C,kBAAkB,CAAC,eAAA,CAAA,CACxB,KAAK,CAACpoB,eAAerrI,MAAAA,CAAQy+G,KAAAA,EAC9B,CACAy1C,iBAAAA,CAAkBl0J,MAAM,CAAEy+G,KAAK,CAAE,CAChC,MAAM01C,mBAAAA,CAAsB,IAAI,CAAC3J,QAAQ,EAAI,IAAI,CAACoC,OAAO,EAAI,IAAI,CAACD,SAAS,CAC3E,GAAI,CAACwH,qBAAuB,IAAI,CAAC5J,SAAS,CAAE,CAC3C,GAAI9rC,KAAAA,CAAM+rC,QAAQ,EAAI/rC,KAAAA,CAAMgsC,MAAM,CAAE,CACnC,IAAI,CAAC8I,aAAa,CAAC,kBAAA,CAAoB90C,KAAAA,CAAM+rC,QAAQ,EACrD,IAAI,CAAC+I,aAAa,CAAC,kBAAmB90C,KAAAA,CAAMgsC,MAAM,EACnD,CAAA,KAAO,GAAIhsC,MAAM+rC,QAAQ,CAAE,CAC1B,IAAI,CAAC+I,aAAa,CAAC,kBAAA,CAAoB90C,KAAAA,CAAM+rC,QAAQ,EACtD,CAAA,KAAO,GAAI/rC,KAAAA,CAAMgsC,MAAM,CAAE,CACxB,IAAI,CAAC8I,aAAa,CAAC,iBAAA,CAAmB90C,KAAAA,CAAMgsC,MAAM,EACnD,CACD,CACA,IAAI,CAACgJ,kBAAkB,CAAC,uBAAA,EACzB,CACAphC,gBAAAA,CAAiBjuJ,MAAM,CAAE,CACxB,KAAM,CAAE47B,MAAM,CAAEy+G,KAAK,CAAE7B,IAAI,CAAE0V,OAAO,CAAEP,YAAY,CAAErV,kBAAkB,CAAE,CAAGt4I,MAAAA,CAC3E,IAAI,CAAC8vL,iBAAiB,CAACl0J,MAAAA,CAAQy+G,KAAAA,CAAAA,CAC/B,MAAM9B,cAAAA,CAAiB1C,UAAAA,CAAWzrJ,GAAG,CAACwxC,MAAAA,CAAAA,CAAQq6G,UAAU,CAACuC,MACzD,MAAM6uC,cAAAA,CAAiB7uC,OAAS/I,WAAAA,EAAe+I,IAAAA,GAASjJ,gBAAkBgJ,cAAAA,CAAehD,QAAQ,CACjG,IAAIr2I,SAAWmoL,cAAAA,CAAiBxG,QAAAA,CAASnE,iBAAiB,CAAGmE,QAAAA,CAASjE,cAAc,CACpF19K,QAAAA,CAAS2sE,OAAO,CAAG0rE,WAAAA,CAAYa,cAAc,CAAC,IAAI,CAAEp4I,MAAAA,CAAAA,CACpD,GAAIqnL,cAAAA,CAAgB,CACnB,IAAI,CAAC2I,gBAAgB,CAACpJ,YAAY,CAAC1nL,SAAUm7I,KAAAA,CAAO,IAAI,CAAE6T,OAAAA,CAAS1V,KAAMmV,YAAAA,EAC1E,CAAA,KAAO,CACN,IAAI,CAACqiC,gBAAgB,CAAC/I,SAAS,CAAC/nL,SAAUm7I,KAAAA,CAAO/B,kBAAAA,CAAoB,IAAI,CAAE4V,OAAAA,CAAS1V,KAAMmV,YAAAA,EAC3F,CACA,MAAM1sF,qBAAAA,CAAwBs3E,eAAe3C,SAAS,EAAI,IAAI,CAAC79F,UAAU,CAAChM,sBAAsB,CAChG7sC,SAAS+hE,qBAAqB,CAAGA,sBACjC,GAAI,CAAC,IAAI,CAACglH,MAAM,CAAE/mL,QAAAA,CAAS2sE,OAAO,CAACx3E,GAAG,CAAC,KAAA,CAAO,QAC9C6K,QAAAA,CAAS2sE,OAAO,CAACx3E,GAAG,CAAC,SAAA,CAAW64I,YAAY,CAAChuI,QAAAA,CAAS67K,UAAU,CAACF,OAAO,CAAC,CAAA,CACzE,GAAI,IAAI,CAACoV,cAAc,CAAE,CACxB/wL,SAAW,IAAI,CAAC+wL,cAAc,CAAC/wL,UAChC,CACAA,QAAAA,CAAS+hE,qBAAqB,CAAGA,qBAAAA,CACjC,MAAMnI,iBAAAA,CAAoB,IAAI27E,sBAAAA,CAAuBz0I,MAAAA,CAAO40I,iBAAiB,CAAE50I,MAAAA,CAAOy1C,YAAY,CAAA,CAClG,MAAMs/F,OAAAA,CAAUD,iBAAAA,CAAkBl5G,MAAAA,CAAAA,CAClCm5G,OAAAA,CAAQ6D,QAAQ,CAAC,UAAA,CAAYioC,UAC7B,MAAM3pI,MAAAA,CAAS69F,QAAQ+D,UAAU,CAAC,UAAA,CAAY55I,QAAAA,CAAU45D,kBAAmB,IAAI,CAACuqH,MAAM,CAAA,CACtF,OAAOnsI,MACR,CACAnc,OAAAA,EAAU,CACT,IAAK,MAAMm1J,KAAAA,IAAS,IAAI,CAACC,gBAAgB,CAAE,CAC1C,IAAI,CAACA,gBAAgB,CAACD,KAAAA,CAAM,CAACE,OAAO,GACrC,CACA,IAAI,CAACD,gBAAgB,CAAG,IAAA,CACxB,KAAK,CAACp1J,OAAAA,GACP,CACA,IAAIywJ,SAAAA,CAAUj2L,KAAK,CAAE,CACpBsO,MAAAA,CAAOo1H,MAAM,CAAC,IAAI,CAAE,CAAEwyD,KAAAA,CAAOl2L,MAAQ,GAAK,CAAA,EAC3C,CACA,IAAIi2L,WAAY,CACf,OAAO,IAAI,CAACC,KAAK,CAAG,GACrB,CACA,IAAI2C,eAAAA,CAAgB74L,KAAK,CAAE,CAC1BsO,MAAAA,CAAOo1H,MAAM,CAAC,IAAI,CAAE,CAAEitD,UAAAA,CAAY3wL,KAAM,CAAA,EACzC,CACA,IAAI64L,eAAAA,EAAkB,CACrB,OAAO,IAAI,CAAClI,UACb,CACA,IAAIpkJ,UAAAA,CAAWvsC,KAAK,CAAE,CACrBsO,MAAAA,CAAOo1H,MAAM,CAAC,IAAI,CAAE,CACnBsxD,mBAAAA,CAAqBt9L,KAAK6Z,GAAG,CAACvR,OAC9Bg2L,kBAAAA,CAAoBh2L,KAAAA,EAAS,CAAA,CAAI,CAAA,CAAI,EACtC,CAAA,EACD,CACA,IAAIusC,UAAAA,EAAa,CAChB,MAAMuuJ,IAAAA,CAAOpjM,IAAAA,CAAKojM,IAAI,CAACpjM,IAAAA,CAAKmc,GAAG,CAAC,IAAI,CAACmiL,kBAAkB,CAAG/qL,IAAAA,CAAKC,UAAU,CAAG,IAC5E,OAAO,IAAI,CAAC8pL,mBAAmB,CAAG8F,IACnC,CAhQA,WAAA,EAAc,CACb,KAAK,EAAA,CALNhW,gBAAAA,CAAAA,IAAAA,CAAAA,iBAAiC,IAAIvkL,GAAAA,CAAAA,CACrCo5L,sBAAAA,kBAAAA,CAAAA,MAAAA,CAAAA,CACAL,gBAAAA,CAAAA,IAAAA,CAAAA,iBAAiB,IAAIpL,6BAAAA,CAAAA,CACrBwM,gBAAAA,CAAAA,IAAAA,CAAAA,gBAAAA,CAAAA,MAAAA,CAGC,CAAA,IAAI,CAACE,gBAAgB,CAAG,EACxB,CAAA,IAAI,CAACG,aAAa,CAAmB,IAAI57L,GACzC,CAAA,IAAI,CAAC67L,qBAAqB,CAAmB,IAAI77L,GACjD,CAAA,IAAI,CAACs7L,gBAAgB,CAAG,IAAIrJ,+BAC5B,IAAI,CAACtrL,KAAK,EACV,CAAA,IAAI,CAAC6zL,gBAAgB,CAAGR,OAAAA,CAAQ,IAAI,CAACO,SAAS,EAC/C,CAyPD,CAAA,CAvQC,gBAAA,CAAA,OAAA,CAAOuB,oBAAAA,CAAqBzD,mCAC5B,gBAAA,CAAA,OAAA,CAAO0D,oBAAAA,CAAqBzD,4CAuQ7B,IAAI0D,aAAAA,CAAgB,CAAClgM,IAAAA,CAAMmgM,cAAAA,GAAAA,CAC1BpC,SAAS,CAAC/9L,KAAK,CAAGmgM,eACnB,CAAA,CACA,IAAIC,mBAAqB,CAACpgM,IAAAA,CAAMqgM,eAAAA,CAAiBC,UAAAA,CAAYC,WAAYjC,eAAAA,CAAkB,KAAK,IAC/FjrL,MAAAA,CAAOi4K,cAAc,CAAC6S,gBAAAA,CAAiB5S,SAAS,CAAEvrL,IAAAA,CAAM,CACvDpG,GAAAA,CAAK2mM,UAAAA,EAAc,UAAA,CAClB,OAAO,IAAI,CAAC,CAAC,CAAC,EAAEvgM,KAAK,CAAC,CAAC,CACxB,CACA6D,GAAAA,CAAKy8L,UACN,CAAA,CACAxC,CAAAA,MAAM,CAAC99L,KAAK,CAAG,CACd+E,KAAAA,CAAOs7L,eAAAA,CACP/B,eACD,EACD,CAAA,CACA,IAAIkC,eAAAA,CAAkB,IAACxkM,EAAAA,CACtB,MAAMykM,aAAe,CAAC,CAAC,EAAEzkM,IAAAA,CAAKgE,IAAI,CAAC,CAAC,CACpC,MAAM0gM,eAAAA,CAAkB1kM,IAAAA,CAAK0kM,eAAe,GAAK,IAAM,IAAG,CAAA,CAC1D,MAAMC,KAAAA,CAAQ3kM,IAAAA,CAAK2kM,KAAK,CACxB,MAAMC,MAAQ5kM,IAAAA,CAAK4kM,KAAK,CACxB,MAAMN,WAAa,SAASv7L,KAAK,CAAA,CAChC,MAAM87L,SAAW,IAAI,CAACJ,YAAAA,CAAa,CACnC,GAAII,QAAAA,GAAa97L,KAAAA,CAAO,CACvB,IAAI,CAACstL,YAAY,CAAG,IAAI,CAACA,YAAY,EAAIqO,eAAAA,CAAgBG,QAAAA,CAAU97L,KAAAA,CACnE,CAAA,IAAI,CAAC07L,YAAAA,CAAa,CAAG17L,KAAAA,CACrB67L,OAAOh6L,IAAAA,CAAK,IAAI,EACjB,CACD,CAAA,CACA,MAAM25L,UAAAA,CAAavkM,IAAAA,CAAKukM,UAAU,EAAII,OAAS,UAAA,CAC9CA,KAAAA,CAAM/5L,IAAI,CAAC,IAAI,CAAA,CACf,OAAO,IAAI,CAAC65L,aAAa,CAC1B,CACAL,mBAAmBpkM,IAAAA,CAAKgE,IAAI,CAAE,IAAMhE,IAAAA,CAAK8kM,YAAY,CAAER,WAAYC,UAAAA,CAAY,CAAC,CAACI,KAAAA,EAClF,CAAA,CACA,IAAII,aAAAA,CAAiB/kM,IAAAA,EAAAA,CACpB,MAAMykM,aAAe,CAAC,CAAC,EAAEzkM,IAAAA,CAAKgE,IAAI,CAAC,CAAC,CACpC,MAAM0gM,eAAAA,CAAkB1kM,KAAK0kM,eAAe,GAAK,IAAM,IAAG,CAAA,CAC1D,MAAMC,KAAAA,CAAQ3kM,IAAAA,CAAK2kM,KAAK,CACxB,MAAMC,MAAQ5kM,IAAAA,CAAK4kM,KAAK,CACxB,MAAMN,UAAAA,CAAa,SAASv7L,KAAK,EAChC,MAAM87L,QAAAA,CAAW,IAAI,CAACJ,aAAa,CACnC,GAAI,CAACI,QAAAA,CAASxuL,MAAM,CAACtN,KAAAA,CAAAA,CAAQ,CAC5B,IAAI,CAACstL,YAAY,CAAG,IAAI,CAACA,YAAY,EAAIqO,eAAAA,CAAgBG,QAAAA,CAAU97L,KAAAA,CACnE,CAAA,IAAI,CAAC07L,YAAAA,CAAa,CAAGI,QAAAA,CAAS5kM,IAAI,CAAC8I,KAAAA,CAAAA,CACnC67L,OAAOh6L,IAAAA,CAAK,IAAI,EACjB,CACD,CAAA,CACA,MAAM25L,UAAAA,CAAavkM,KAAKukM,UAAU,EAAII,KAAAA,EAAS,UAAA,CAC9CA,MAAM/5L,IAAI,CAAC,IAAI,CAAA,CACf,OAAO,IAAI,CAAC65L,aAAa,CAC1B,CACAL,mBAAmBpkM,IAAAA,CAAKgE,IAAI,CAAE,IAAMhE,KAAK8kM,YAAY,CAAC5uL,KAAK,EAAA,CAAIouL,WAAYC,UAAAA,CAAY,CAAC,CAACI,KAAAA,EAC1F,EACA,IAAIK,UAAAA,CAAa,IAAChlM,EAAAA,CACjB,OAAOA,KAAK8kM,YAAY,EAAI9kM,IAAAA,CAAK8kM,YAAY,CAAC5uL,KAAK,CAAG6uL,aAAAA,CAAc/kM,IAAAA,CAAAA,CAAQwkM,gBAAgBxkM,IAAAA,CAC7F,CAAA,CACA,IAAIilM,sBAAAA,CAAyB,WAC5B,IAAI,CAAC5C,cAAc,CAACz4C,SAAS,GAC9B,CAAA,CACA,IAAIs7C,wBAAAA,CAA2B,UAAA,CAC9B,IAAI,CAAC7C,cAAc,CAAChL,WAAW,GAChC,CAAA,CACA,SAAS8N,YAAAA,CAAanhM,IAAI,CAAE8D,OAAAA,CAAU,KAAK,CAAE02L,WAAAA,CAAc,IAAI,CAAEtW,EAAAA,CAAK,CAAC,CAAA,CACtE4H,SAAAA,CAAUjoL,GAAG,CAAC7D,IAAAA,CAAM8D,QAAQ3G,MAAM,EAAI,EAAC,CAAA,CACvC6jM,UAAAA,CAAW,CACVhhM,IAAAA,CAAM,CAAC,EAAEA,IAAAA,CAAK,GAAG,CAAC,CAClB8gM,aAAc,IAAA,CACdJ,eAAAA,CAAiB,CAACG,QAAAA,CAAUv0B,YAC3B,OAAO,CAAC,CAACu0B,QAAAA,GAAa,CAAC,CAACv0B,QAAAA,EAAYu0B,QAAAA,GAAaA,SAASvsL,IAAI,GAAKg4J,SAASh4J,IAAI,EAAIusL,SAASp+L,MAAM,GAAK6pK,QAAAA,CAAS7pK,MAAM,CACxH,CAAA,CACAm+L,KAAAA,CAAOK,sBACR,GACAD,UAAAA,CAAW,CACVhhM,IAAAA,CAAM,CAAC,EAAEA,IAAAA,CAAK,SAAS,CAAC,CACxB8gM,YAAAA,CAAc,IAAI9hL,IAAAA,CAAK,CAAA,CAAG,CAAA,CAAA,CAC1B0hL,eAAAA,CAAiB,IAAM,KAAA,CACvBE,KAAAA,CAAOK,sBAAAA,CACPN,KAAAA,CAAOO,wBACR,CAAA,CAAA,CACAF,UAAAA,CAAW,CACVhhM,IAAAA,CAAM,CAAC,EAAEA,IAAAA,CAAK,SAAS,CAAC,CACxB8gM,aAAc,IAAI9hL,IAAAA,CAAK,CAAA,CAAG,CAAA,CAAA,CAC1B0hL,gBAAiB,IAAM,KAAA,CACvBE,KAAAA,CAAOK,sBAAAA,CACPN,MAAOO,wBACR,CAAA,CAAA,CACAF,UAAAA,CAAW,CACVhhM,KAAM,CAAC,EAAEA,KAAK,WAAW,CAAC,CAC1B8gM,YAAAA,CAAc,CAAA,CACdJ,eAAAA,CAAiB,IAAM,MACvBE,KAAAA,CAAOK,sBACR,CAAA,CAAA,CACAD,UAAAA,CAAW,CACVhhM,IAAAA,CAAM,CAAC,EAAEA,IAAAA,CAAK,KAAK,CAAC,CACpB8gM,aAAc5c,EAAAA,CACd0c,KAAAA,CAAOK,sBACR,CAAA,CAAA,CACA,GAAIn9L,OAAAA,CAAS,CACZk9L,WAAW,CACVhhM,IAAAA,CAAM,CAAC,EAAEA,KAAK,UAAU,CAAC,CACzB8gM,YAAAA,CAAch9L,OACf,CAAA,CAAA,CACA,GAAI02L,YAAa,CAChBwG,UAAAA,CAAW,CACVhhM,IAAAA,CAAM,CAAC,EAAEA,IAAAA,CAAK,WAAW,CAAC,CAC1B8gM,YAAAA,CAAc,KACf,GACAE,UAAAA,CAAW,CACVhhM,IAAAA,CAAM,CAAC,EAAEA,IAAAA,CAAK,kBAAkB,CAAC,CACjC8gM,YAAAA,CAAch9L,OACf,CAAA,EACD,CACD,CACA,MAAMs9L,UAAY,CAAC,EAAEphM,KAAK,SAAS,CAAC,CACpC,MAAMqhM,SAAAA,CAAY,CAAC,EAAErhM,KAAK,SAAS,CAAC,CACpC,MAAMshM,WAAAA,CAAc,CAAC,EAAEthM,IAAAA,CAAK,WAAW,CAAC,CACxC,MAAMikL,YAAAA,CAAe,CAAC,EAAEjkL,KAAK,YAAY,CAAC,CAC1CkgM,aAAAA,CAAcjc,aAAc,CAACp8B,QAAAA,CAAUz8G,OAAQy+G,KAAAA,GAAAA,CAC9C,MAAM0pC,OAAS1rC,QAAQ,CAAC,CAAC,CAAC,EAAEu5C,SAAAA,CAAU,CAAC,CAAC,CACxC,MAAMt2L,OAAAA,CAAU+8I,QAAQ,CAAC,CAAC,CAAC,EAAEw5C,SAAAA,CAAU,CAAC,CAAC,CACzC,MAAMnoC,SAAAA,CAAYrR,QAAQ,CAAC,CAAC,CAAC,EAAEy5C,WAAAA,CAAY,CAAC,CAAC,CAC7C,GAAI/N,MAAAA,CAAOt6K,CAAC,GAAK,GAAKs6K,MAAAA,CAAOr6K,CAAC,GAAK,CAAA,EAAKpO,OAAAA,CAAQmO,CAAC,GAAK,CAAA,EAAKnO,OAAAA,CAAQoO,CAAC,GAAK,CAAA,EAAKggJ,SAAAA,GAAc,CAAA,CAAG,CAC9F,OAAO,IACR,CACA,MAAMh6G,OAAAA,CAAU2oG,SAASo3C,aAAa,CAAChb,aAAc,IAAA,CACpD,OAAO,CAAC,CACPjkL,IAAAA,CAAM,CAAC,QAAQ,EAAEikL,YAAAA,CAAa,CAAC,CAAC,CAChCl/K,MAAO,IAAI0R,YAAAA,CAAa,CAAA,CACzB,CAAA,CAAG,CACFzW,IAAAA,CAAM,CAAC,QAAQ,EAAEikL,YAAAA,CAAa,CAAC,CAAC,CAChCl/K,KAAAA,CAAO,IAAI0R,aAAa,CAAA,CACzB,CAAA,CAAE,CACH,CAAA,CACA,MAAM8qL,EAAAA,CAAK9kM,IAAAA,CAAKmc,GAAG,CAACsgJ,UAAYlpJ,IAAAA,CAAKC,UAAU,EAC/C,MAAMuxL,EAAAA,CAAK/kM,KAAKqc,GAAG,CAACogJ,SAAAA,CAAYlpJ,IAAAA,CAAKC,UAAU,CAAA,CAC/C,MAAMwxL,QAAAA,CAAWviJ,OAAO,CAAC,CAAA,CAAE,CAACn6C,KAC5B08L,CAAAA,QAAQ,CAAC,EAAE,CAAGF,EAAAA,CAAKhO,OAAOt6K,CAC1BwoL,CAAAA,QAAQ,CAAC,CAAA,CAAE,CAAG,CAACD,EAAAA,CAAKjO,MAAAA,CAAOr6K,CAAC,CAC5BuoL,QAAQ,CAAC,EAAE,CAAG32L,OAAAA,CAAQmO,CAAC,CACvB,MAAMyoL,SAAWxiJ,OAAO,CAAC,CAAA,CAAE,CAACn6C,KAAK,CACjC28L,QAAQ,CAAC,EAAE,CAAGF,EAAAA,CAAKjO,MAAAA,CAAOt6K,CAAC,CAC3ByoL,QAAQ,CAAC,CAAA,CAAE,CAAGH,GAAKhO,MAAAA,CAAOr6K,CAAC,CAC3BwoL,QAAQ,CAAC,CAAA,CAAE,CAAG,CAAA,CAAInO,OAAOr6K,CAAC,CAAGpO,OAAAA,CAAQoO,CAAC,CACtC,OAAOgmC,OACR,GACD,CACA,SAASyiJ,aAAa3hM,IAAI,CAAE8gM,YAAY,CAAA,CACvCE,WAAW,CACVhhM,IAAAA,CACA8gM,YAAAA,CACAJ,eAAAA,CAAiB,IAAM,KACxB,CAAA,CAAA,CACAR,aAAAA,CAAclgM,IAAAA,CAAM,CAAC6nJ,QAAAA,CAAUz8G,MAAAA,CAAQy+G,SACtC,MAAM3qG,OAAAA,CAAU2oG,SAASo3C,aAAa,CAACj/L,IAAAA,CAAM,IAAM,IAAIyW,YAAAA,CAAa,CAAA,CAAA,CAAA,CACpE,MAAMk8C,MAAAA,CAASk1F,QAAQ,CAAC,CAAC,CAAC,EAAE7nJ,KAAK,CAAC,CAAC,CACnCi+L,UAAAA,CAAW1rL,MAAM,CAACogD,MAAAA,CAClBzT,CAAAA,OAAO,CAAC,EAAE,CAAG++I,UAAAA,CAAWzhM,CACxB0iD,CAAAA,OAAO,CAAC,CAAA,CAAE,CAAG++I,WAAWztL,CACxB0uC,CAAAA,OAAO,CAAC,EAAE,CAAG++I,UAAAA,CAAWnkM,CAAC,CACzB,OAAOolD,OACR,CAAA,EACD,CACA,SAAS0iJ,aAAa5hM,IAAI,CAAE8gM,YAAY,CAAEX,cAAc,CAAA,CACvDa,UAAAA,CAAW,CACVhhM,IAAAA,CACA8gM,YAAAA,CACAJ,gBAAiB,CAACG,QAAAA,CAAUv0B,QAAAA,GAAAA,CAC3B,OAAO,CAACu0B,QAAAA,GAAa,CAAA,EAAKA,QAAAA,GAAa,CAAA,KAAQv0B,QAAAA,GAAa,CAAA,EAAKA,WAAa,CAAA,CAC/E,CACD,CAAA,CAAA,CACA4zB,aAAAA,CAAclgM,KAAMmgM,cAAAA,EACrB,CACA,SAAS0B,aAAAA,CAAc7hM,IAAI,CAAEmgM,cAAc,EAC1Ca,UAAAA,CAAW,CACVhhM,KACA8gM,YAAAA,CAAc,IAAA,CACdJ,eAAAA,CAAiB,CAACG,SAAUv0B,QAAAA,GAAAA,CAC3B,OAAO,CAAC,CAACu0B,QAAAA,GAAa,CAAC,CAACv0B,QACzB,CACD,CAAA,CAAA,CACA4zB,cAAclgM,IAAAA,CAAMmgM,cAAAA,EACrB,CACA,SAAS2B,YAAY9hM,IAAI,CAAE8gM,YAAY,CAAA,CACtCE,WAAW,CACVhhM,IAAAA,CACA8gM,YACD,CAAA,EACD,CACA,SAASiB,oBAAAA,EAAAA,CACRJ,YAAAA,CAAa,SAAA,CAAW,IAAI3vL,MAAM,CAAA,CAAG,CAAA,CAAG,CAAA,CAAA,CAAA,CACxC2vL,YAAAA,CAAa,UAAW,IAAI3vL,KAAAA,CAAM,CAAA,CAAG,CAAA,CAAG,IACxC2vL,YAAAA,CAAa,UAAA,CAAY,IAAI3vL,KAAAA,CAAM,CAAA,CAAG,EAAG,CAAA,CAAA,CAAA,CACzC2vL,YAAAA,CAAa,UAAA,CAAY,IAAI3vL,MAAM,CAAA,CAAG,CAAA,CAAG,CAAA,CAAA,CAAA,CACzC2vL,YAAAA,CAAa,QAAS,IAAI3vL,KAAAA,CAAM,CAAA,CAAG,CAAA,CAAG,IACtC2vL,YAAAA,CAAa,aAAA,CAAe,IAAI3vL,KAAAA,CAAM,CAAA,CAAG,EAAG,CAAA,CAAA,CAAA,CAC5C4vL,YAAAA,CAAa,mBAAA,CAAqB,CAAA,CAAA,CAClCA,aAAa,mBAAA,CAAqB,CAAA,CAAA,CAClCA,YAAAA,CAAa,YAAA,CAAc,GAC3BA,YAAAA,CAAa,OAAA,CAAS,GAAA,CAAA,CACtBA,YAAAA,CAAa,cAAe,CAAA,CAAA,CAC5BA,YAAAA,CAAa,kBAAmB,CAAA,CAAG,CAAC/5C,SAAUz8G,MAAAA,CAAQy+G,KAAAA,GAAAA,CACrD,OAAOhC,QAAAA,CAAS4zC,eAAe,CAAG,EACnC,CAAA,CAAA,CACAuF,UAAAA,CAAW,CACVhhM,IAAAA,CAAM,eAAA,CACN8gM,YAAAA,CAAc,EAAA,CACdJ,gBAAiB,IAAM,KACxB,GACAkB,YAAAA,CAAa,iBAAA,CAAmB,IAChCxB,kBAAAA,CAAmB,uBAAA,CAAyB,IAAM,CAAA,CAAG,SAASr7L,KAAK,CAAA,CAClE,GAAI,IAAI,CAACi9L,sBAAsB,GAAKj9L,KAAAA,CAAO,CAC1C,GAAI,IAAI,CAACi9L,sBAAsB,GAAK,CAAA,IAAOj9L,KAAAA,GAAU,CAAA,CAAA,CAAI,CACxD,IAAI,CAACstL,YAAY,CAAG,KACrB,CACA,IAAI,CAAC2P,sBAAsB,CAAGj9L,MAC/B,CACD,CAAA,CAAA,CACA68L,aAAa,SAAA,CAAW,CAAA,CAAA,CACxBA,aAAa,WAAA,CAAa,CAAA,CAAA,CAC1BZ,UAAAA,CAAW,CACVhhM,KAAM,aAAA,CACN8gM,YAAAA,CAAc,KACdJ,eAAAA,CAAiB,IAAM,MACvBH,UAAAA,CAAY,UAAA,CACX,OAAO,IAAI,CAAChC,YAAY,EAAI,IAAI,CAACc,QAAQ,CAE3C,CAAA,CAAA,CACAuC,YAAAA,CAAa,WAAA,CAAa,GAC1BA,YAAAA,CAAa,WAAA,CAAa,CAAA,CAAA,CAC1BA,YAAAA,CAAa,2BAA4B,CAAA,CAAA,CACzCA,YAAAA,CAAa,cAAA,CAAgB,CAAA,CAAA,CAC7BA,aAAa,0BAAA,CAA4B,CAAA,CAAA,CACzCA,aAAa,YAAA,CAAc,CAAA,CAAA,CAC3BA,aAAa,iBAAA,CAAmB,CAAA,CAAI,GAAA,CAAK,CAAC/5C,SAAUz8G,MAAAA,CAAQy+G,KAAAA,GAAAA,CAC3D,OAAOptJ,IAAAA,CAAK6T,GAAG,CAAC,IAAA,CAAMu3I,QAAAA,CAASixC,eAAe,CAC/C,CAAA,CAAA,CACA8I,YAAAA,CAAa,aAAc,CAAA,CAAA,CAC3BA,YAAAA,CAAa,YAAa,CAAA,CAAA,CAC1BA,YAAAA,CAAa,qBAAA,CAAuB,CAAA,CAAA,CACpCA,aAAa,WAAA,CAAa,CAAA,CAAA,CAC1BA,YAAAA,CAAa,qBAAA,CAAuB,GACpCA,YAAAA,CAAa,oBAAA,CAAsB,CAAA,CAAA,CACnCA,YAAAA,CAAa,YAAa,CAAA,CAAA,CAC1BA,YAAAA,CAAa,iBAAkB,CAAA,CAAA,CAC/BA,YAAAA,CAAa,qBAAsB,CAAA,CAAA,CACnCA,YAAAA,CAAa,SAAA,CAAW,CAAA,CAAG,MAC3BA,YAAAA,CAAa,aAAA,CAAe,CAAA,CAAA,CAC5BA,YAAAA,CAAa,6BAA8B,CAAA,CAAI,GAAA,CAAA,CAC/CA,YAAAA,CAAa,yBAAA,CAA2B,GACxCA,YAAAA,CAAa,yBAAA,CAA2B,GACxCC,aAAAA,CAAc,WAAA,CAAA,CACdA,cAAc,sBAAA,CAAwB,CAACh6C,QAAAA,CAAUz8G,MAAAA,CAAQy+G,SACxD,MAAM3qG,OAAAA,CAAU2oG,QAAAA,CAASo3C,aAAa,CAAC,sBAAA,CAAwB,IAAA,CAC9D,OAAO,CAAC,CACPj/L,IAAAA,CAAM,WAAA,CACN+E,MAAO,IAAI0R,YAAAA,CAAa,EACzB,CAAA,CAAG,CACFzW,IAAAA,CAAM,WAAA,CACN+E,MAAO,IAAI0R,YAAAA,CAAa,CAAA,CACzB,CAAA,CAAE,CACH,CAAA,CACA,MAAMwrL,OAAAA,CAAUp6C,QAAAA,CAASq0C,oBAAoB,CAACzxK,MAAM,GACpD,MAAMy3K,UAAAA,CAAahjJ,OAAO,CAAC,CAAA,CAAE,CAACn6C,KAAK,CACnCm9L,UAAU,CAAC,CAAA,CAAE,CAAGD,OAAAA,CAAQhpL,CAAC,CACzBipL,UAAU,CAAC,CAAA,CAAE,CAAGD,OAAAA,CAAQ/oL,CAAC,CACzBgpL,UAAU,CAAC,CAAA,CAAE,CAAGD,OAAAA,CAAQ9oL,CAAC,CACzB,MAAMgpL,OAAAA,CAAUt6C,SAASq0C,oBAAoB,CAAC3xK,MAAM,EAAA,CACpD,MAAM63K,UAAAA,CAAaljJ,OAAO,CAAC,CAAA,CAAE,CAACn6C,KAAK,CACnCq9L,UAAU,CAAC,EAAE,CAAGD,OAAAA,CAAQlpL,CACxBmpL,CAAAA,UAAU,CAAC,CAAA,CAAE,CAAGD,QAAQjpL,CACxBkpL,CAAAA,UAAU,CAAC,EAAE,CAAGD,OAAAA,CAAQhpL,CAAC,CACzB,OAAO+lC,OACR,CAAA,CAAA,CACA4iJ,WAAAA,CAAY,uBAAA,CAAyB,OACrCA,WAAAA,CAAY,cAAA,CAAgB,KAAA,CAAA,CAC5BA,WAAAA,CAAY,4BAA6B,KAAA,CAAA,CACzCA,WAAAA,CAAY,WAAY,KAAA,CAAA,CACxBA,WAAAA,CAAY,oBAAqB,KAAA,CAAA,CACjCA,WAAAA,CAAY,eAAA,CAAiB,KAAA,CAAA,CAC7BA,YAAY,sBAAA,CAAwB,IAAA,CAAA,CACpCA,WAAAA,CAAY,iBAAA,CAAmBllD,YAC/BklD,WAAAA,CAAY,cAAA,CAAgB1qD,eAAAA,CAAAA,CAC5B0qD,WAAAA,CAAY,uBAAwB,KAAA,CAAA,CACpCA,WAAAA,CAAY,oBAAqBvmD,aAAAA,CAAAA,CACjCumD,WAAAA,CAAY,SAAU,IAAA,CAAA,CACtBA,WAAAA,CAAY,aAAA,CAAe,IAAA,CAAA,CAC3BA,YAAY,YAAA,CAAc,IAAA,CAAA,CAC1BA,WAAAA,CAAY,WAAA,CAAa,MACzBA,WAAAA,CAAY,UAAA,CAAY,KAAA,CAAA,CACxBA,WAAAA,CAAY,YAAa,KAAA,CAAA,CACzBA,WAAAA,CAAY,mBAAoB,KAAA,CAAA,CAChCA,WAAAA,CAAY,iBAAkB,MAAK,CAAA,CACnCA,WAAAA,CAAY,mBAAA,CAAqB,OACjCA,WAAAA,CAAY,gBAAA,CAAkB,KAAA,CAAA,CAC9BA,WAAAA,CAAY,cAAe,KAAA,CAAA,CAC3BA,WAAAA,CAAY,kBAAA,CAAoB,KAAA,CAAA,CAChCA,YAAY,sBAAA,CAAwB,KAAA,CAAA,CACpCA,YAAY,cAAA,CAAgBngD,eAAAA,CAAAA,CAC5BmgD,YAAY,eAAA,CAAiB1gD,WAAAA,CAAAA,CAC7B0gD,WAAAA,CAAY,qBAAA,CAAuB1gD,aACnC0gD,WAAAA,CAAY,eAAA,CAAiB,KAAA,CAAA,CAC7BA,WAAAA,CAAY,mBAAoB,KAAA,CAAA,CAChCX,YAAAA,CAAa,SAAA,CAAA,CACbA,YAAAA,CAAa,YACbA,YAAAA,CAAa,UAAA,CAAA,CACbA,aAAa,WAAA,CAAa,GAAA,CAAA,CAC1BA,aAAa,mBAAA,CAAqB,GAAA,CAAA,CAClCA,YAAAA,CAAa,QAAA,CAAU,IACvBA,YAAAA,CAAa,WAAA,CAAa,GAAA,CAAA,CAC1BA,YAAAA,CAAa,QAAS,GAAA,CAAA,CACtBA,YAAAA,CAAa,SAAA,CAAW,GAAA,CAAA,CACxBA,aAAa,YAAA,CAAc,GAAA,CAAA,CAC3BA,aAAa,QAAA,CAAU,GAAA,CAAK,OAC5BA,YAAAA,CAAa,IAAA,CAAM,GAAA,CAAA,CACnBA,YAAAA,CAAa,QAAS,KAAA,CAAO,IAAA,CAAM,GACnCA,YAAAA,CAAa,MAAA,CAAQ,IACrBA,YAAAA,CAAa,eAAA,CAAiB,KAAA,CAAO,KAAA,CAAA,CACrCA,aAAa,cAAA,CAAgB,EAAA,CAAA,CAC7BA,aAAa,UAAA,CAAY,GAAA,CAAK,OAC9BA,YAAAA,CAAa,WAAA,CAAa,GAAA,CAAA,CAC1BA,YAAAA,CAAa,iBAAkB,GAAA,CAAA,CAC/BA,YAAAA,CAAa,iBAAA,CAAmB,EAAA,CAAA,CAChCA,aAAa,OAAA,CAAS,KAAA,CAAA,CACtBA,YAAAA,CAAa,YAAA,CAAc,KAC3BA,YAAAA,CAAa,aAAA,CAAe,KAC5BA,YAAAA,CAAa,sBAAA,CAAwB,KACrCA,YAAAA,CAAa,YAAA,CAAc,EAAA,CAAA,CAC3BW,WAAAA,CAAY,oBAAqBpmD,cAAAA,CAAAA,CACjComD,WAAAA,CAAY,cAAA,CAAgBpmD,cAAAA,CAAAA,CAC5BmmD,cAAc,SAAA,CAAA,CACdA,aAAAA,CAAc,WAAA,CAAA,CACdA,aAAAA,CAAc,YACd,MAAMtB,UAAAA,CAAa,WAClB,OAAO,IAAI,CAAC8B,oBACb,CAAA,CACA,MAAM/B,WAAa,SAASv7L,KAAK,CAAA,CAChC,MAAMu9L,SAAW,IAAI,CAACD,oBAAoB,CAC1Ct9L,MAAQA,KAAAA,EAAS,EAAE,CACnB,IAAIyI,OAAAA,CAAU,MACd,IAAI+0L,QAAAA,CAAW,IAAA,CACf,IAAK,IAAIrlM,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAK,CAAA,CAAG,EAAEA,EAAAA,CAAI,CAC9B,MAAMP,EAAAA,CAAKoI,KAAK,CAAC7H,EAAAA,CAAG,EAAI,IAAA,CACxB,GAAIolM,QAAQ,CAACplM,EAAAA,CAAG,GAAKP,EAAAA,CAAI,CACxB2lM,QAAQ,CAACplM,EAAAA,CAAG,CAAGP,GACf6Q,OAAAA,CAAU,KACX,CACA+0L,QAAAA,CAAWA,UAAY,CAAC,CAACD,QAAQ,CAACplM,EAAAA,EAAG,CAEtC,GAAIsQ,OAAAA,CAAS,CACZ,GAAI+0L,QAAAA,CAAU,CACb,IAAI,CAAC3M,QAAQ,CAAGhU,WAAAA,CAAYM,wBAAwB,CAACogB,SAAU,CAC9DjoE,MAAAA,CAAQ,IAAI,CAACu7D,QAAO,CACrB,EACD,CAAA,KAAO,CACN,GAAI,IAAI,CAACA,QAAQ,CAAE,CAClB,IAAI,CAACA,QAAQ,CAACrrJ,OAAO,EACrB,CAAA,IAAI,CAACqrJ,QAAQ,CAAG,KACjB,CACD,CACA,IAAI,CAACvD,YAAY,CAAG,KACrB,CACD,CAAA,CACA,MAAMmQ,MAAQ,CAAC,IAAA,CAAM,IAAA,CAAM,IAAA,CAAM,KAAM,IAAA,CAAM,IAAA,CAAK,CAClDpC,kBAAAA,CAAmB,qBAAA,CAAuB,IAAMoC,KAAAA,CAAMzkM,KAAK,EAAA,CAAIuiM,UAAAA,CAAYC,YAC5E,CACAwB,oBAAAA,EAAAA,CACA,SAASU,sBAAAA,CAAuBl3H,OAAO,CAAEm3H,OAAO,CAAA,CAC/CrvL,MAAAA,CAAOi4K,cAAc,CAAC6S,gBAAAA,CAAiB5S,SAAS,CAAEmX,OAAAA,CAAS,CAC1D9oM,GAAAA,CAAK,UAAA,CACJ,OAAO,IAAI,CAAC2xE,OAAAA,CACb,CAAA,CACA1nE,GAAAA,CAAK,SAASkB,KAAK,CAAA,CAClB,IAAI,CAACwmE,QAAQ,CAAGxmE,MACjB,CACD,CAAA,EACD,CACA,SAAS49L,kBAAAA,CAAmB3iM,IAAI,CAAA,CAC/BqT,MAAAA,CAAOi4K,cAAc,CAAC6S,gBAAAA,CAAiB5S,SAAS,CAAEvrL,KAAM,CACvDpG,GAAAA,CAAK,UAAA,CACJ,OAAO,IACR,CAAA,CACAiK,GAAAA,CAAK,SAASkB,KAAK,CAAA,CACnB,CACD,CAAA,EACD,CACA49L,kBAAAA,CAAmB,WAAA,CAAA,CACnBA,mBAAmB,aAAA,CAAA,CACnBA,kBAAAA,CAAmB,cAAA,CAAA,CACnBA,kBAAAA,CAAmB,eACnBA,kBAAAA,CAAmB,cAAA,CAAA,CACnBF,sBAAAA,CAAuB,eAAA,CAAiB,oBACxCA,sBAAAA,CAAuB,oBAAA,CAAsB,yBAC7CA,sBAAAA,CAAuB,qBAAA,CAAuB,0BAC9CA,sBAAAA,CAAuB,qBAAA,CAAuB,wBAAA,CAAA,CAC9CA,sBAAAA,CAAuB,uBAAwB,yBAAA,CAAA,CAC/CA,sBAAAA,CAAuB,kBAAA,CAAoB,qBAAA,CAAA,CAC3CA,uBAAuB,oBAAA,CAAsB,uBAAA,CAAA,CAC7CA,sBAAAA,CAAuB,kBAAA,CAAoB,uBAC3CA,sBAAAA,CAAuB,YAAA,CAAc,mBACrCA,sBAAAA,CAAuB,gBAAA,CAAkB,uBAEzC,IAAIG,YAAAA,CAAe,01KAAA,CACnB,IAAI/mL,KAAO,IAAA,CACX,IAAIgnL,QAAAA,CAAW,IAAA,CACd,GAAI,CAAChnL,IAAAA,CAAM,CACV,MAAMinL,aAAeC,IAAAA,CAAKH,YAAAA,CAAAA,CAC1B/mL,KAAO7R,UAAAA,CAAW+c,IAAI,CAAC+7K,YAAAA,CAAex/L,IAAAA,EAASA,IAAAA,CAAKxB,UAAU,CAAC,CAAA,CAAA,EAChE,CACD,CAAA,CACA,IAAIkhM,aAAAA,CAAgB,IAAA,CACnBH,QAAAA,EAAAA,CACA,OAAOhnL,IACR,CAAA,CACA,IAAIonL,UAAY,KAAA,CAMfC,KAAAA,EAAQ,CACP,IAAI,CAACC,IAAI,CAAG,CAAC,IAAI,CAACA,IAAI,CAAG,CAAA,EAAKtnL,IAAAA,CAAK1e,OACpC,CACA4H,KAAAA,EAAQ,CACP,IAAI,CAACm+L,KAAK,GACV,OAAOrnL,IAAI,CAAC,IAAI,CAACsnL,IAAI,CAAC,CAAG,GAC1B,CACAC,IAAAA,CAAK/qH,IAAAA,CAAO,IAAI94D,IAAM,CAAE,CACvB,IAAI,CAAC2jL,KAAK,EAAA,CACV,OAAO7qH,IAAAA,CAAKx0E,GAAG,CAACgY,IAAI,CAAC,IAAI,CAACsnL,IAAI,CAAC,CAAEtnL,IAAI,CAAC,IAAI,CAACsnL,IAAI,CAAG,CAAA,CAAE,CAAEtnL,IAAI,CAAC,IAAI,CAACsnL,IAAI,CAAG,CAAA,CAAE,CAAEtnL,IAAI,CAAC,IAAI,CAACsnL,IAAI,CAAG,CAAA,CAAE,CAAA,CAAEzwL,SAAS,CAAC,CAAA,CAAI,GAAA,CAC/G,CAdA,WAAA,CAAYywL,IAAAA,CAAO,CAAC,CAAE,CADtBA,gBAAAA,CAAAA,IAAAA,CAAAA,MAAAA,CAAO,EAEN,CAAA,IAAI,CAACA,IAAI,CAAGA,IAAAA,CAAO,CAAA,CACnBN,QAAAA,GACD,CAYD,EAEA,IAAIQ,YAAAA,CAAe,CAClB,IAAItqL,IAAAA,CAAK,EAAC,CAAG,CAAA,CAAG,CAAA,CAAA,CAChB,IAAIA,KAAK,CAAA,CAAG,CAAA,CAAG,CAAA,CAAA,CACf,IAAIA,KAAK,CAAA,CAAG,EAAC,CAAG,CAAA,CAAA,CAChB,IAAIA,IAAAA,CAAK,CAAA,CAAG,EAAG,CAAA,CAAA,CACf,IAAIA,KAAK,CAAA,CAAG,CAAA,CAAG,EAAC,CAAA,CAChB,IAAIA,IAAAA,CAAK,CAAA,CAAG,CAAA,CAAG,CAAA,CAAA,CACf,CACD,IAAIuqL,SAAAA,CAAY,KAAA,CAEfvsJ,MAAAA,CAAOwsJ,YAAY,CAAE3nB,OAAO,CAAE,CAC7B,MAAM1sB,OAAS,IAAI,CAACA,MAAM,CAC1B,KAAM,CAAE1yJ,CAAC,CAAEgU,CAAC,CAAE1W,CAAC,CAAE,CAAGypM,YAAAA,CACpB,IAAK,IAAI30J,CAAAA,CAAI,EAAGA,CAAAA,CAAI,CAAA,CAAGA,IAAK,CAC3BsgH,MAAM,CAACtgH,CAAAA,CAAI,EAAE,CAAGpyC,CAChB0yJ,CAAAA,MAAM,CAACtgH,EAAI,CAAA,CAAI,CAAA,CAAE,CAAGp+B,CACpB0+I,CAAAA,MAAM,CAACtgH,EAAI,CAAA,CAAI,CAAA,CAAE,CAAG90C,EACrB,CACA,IAAK,IAAI80C,EAAI,CAAA,CAAGA,CAAAA,CAAIgtI,OAAAA,CAAQz+K,MAAM,CAAEyxC,CAAAA,EAAAA,CAAK,CACxC,MAAMslI,KAAAA,CAAQ0H,OAAO,CAAChtI,CAAAA,CAAE,CACxB,GAAIslI,KAAAA,CAAMn9J,KAAK,GAAK+gI,qBAAAA,CAAuB,CAC1C,IAAK,IAAIv7I,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAK,CAAA,CAAGA,KAAM,CAC9B,MAAMinM,MAAAA,CAAS/mM,IAAAA,CAAK6T,GAAG,CAAC+yL,YAAY,CAAC9mM,EAAAA,CAAG,CAAC6d,GAAG,CAAC85J,KAAAA,CAAMuvB,UAAU,CAAA,CAAG,GAAKvvB,KAAAA,CAAMwvB,UAAU,CACrF,MAAMC,WAAazvB,KAAAA,CAAM0vB,MAAM,CAC/B10C,MAAM,CAAC3yJ,EAAAA,CAAK,EAAE,EAAIonM,UAAAA,CAAWnnM,CAAC,CAAGgnM,MACjCt0C,CAAAA,MAAM,CAAC3yJ,EAAAA,CAAK,CAAA,CAAI,CAAA,CAAE,EAAIonM,WAAWnzL,CAAC,CAAGgzL,MACrCt0C,CAAAA,MAAM,CAAC3yJ,EAAAA,CAAK,EAAI,CAAA,CAAE,EAAIonM,WAAW7pM,CAAC,CAAG0pM,OACtC,CACD,CACD,CACD,CAAA,WAAA,EAAA,CArBAt0C,gBAAAA,CAAAA,IAAAA,CAAAA,QAAAA,CAAS,IAAIz4I,YAAAA,CAAa,CAAA,CAAI,CAAA,CAAA,EAAA,CAsB/B,CAAA,CAEA,IAAI+sD,aAAAA,CAAgB,CAACp4B,OAAQy4J,UAAAA,CAAYjiM,IAAAA,CAAMgV,SAC9C,MAAMw2B,OAAAA,CAAU,IAAIM,OAAAA,CAAQtC,OAAQ,CACnCprC,IAAAA,CAAM,CAAC,EAAE6jM,WAAW,EAAEjiM,IAAAA,CAAK,CAAC,CAC5BmhB,MAAOnhB,IAAAA,CACPohB,MAAAA,CAAQphB,KACRa,MAAAA,CAAQ61B,iBAAAA,CACR0V,SAAUhb,cAAAA,CACVib,QAAAA,CAAUjb,cAAAA,CACV1e,IAAAA,CAAMqtB,oBACNoM,SAAAA,CAAWlX,cAAAA,CACXiX,SAAAA,CAAWjX,cAAAA,CACXya,WAAY,CAAA,CACZ1E,OAAAA,CAAS,KACV,CAAA,CAAA,CACAQ,QAAQiG,IAAI,EAAA,CAAGxvC,GAAG,CAAC+S,KAAAA,CAAAA,CACnBw2B,QAAQmH,MAAM,EAAA,CACd,OAAOnH,OACR,EACA,IAAI02J,oBAAAA,CAAuB,IAAIn4J,WAAAA,CAC/B,IAAIo4J,oBAAsB,MAAC34J,EAAAA,CAC1B,OAAO04J,oBAAAA,CAAqBlqM,GAAG,CAACwxC,MAAAA,CAAQ,KACvC,MAAMx0B,KAAAA,CAAQosL,gBACd,MAAMphM,IAAAA,CAAOnF,IAAAA,CAAKud,IAAI,CAACpD,KAAAA,CAAMzZ,MAAM,CAAG,CAAA,CAAA,CACtC,OAAOqmE,aAAAA,CAAcp4B,MAAAA,CAAQ,WAAA,CAAaxpC,IAAAA,CAAMgV,MACjD,CAAA,CACD,CAAA,CAEA,IAAIotL,SAAAA,CAAY,MAAMC,WAMrB15J,OAAAA,EAAU,CACT,GAAI,IAAI,CAAC6C,OAAO,CAAE,CACjB,IAAI,CAACA,OAAO,CAAC7C,OAAO,EACpB,CAAA,IAAI,CAAC6C,OAAO,CAAG,KAChB,CACA,MAAM4Z,OAAAA,CAAU,IAAI,CAACk9I,aAAa,CAClC,IAAK,IAAIhnM,EAAAA,CAAK,EAAGA,EAAAA,CAAK8pD,OAAAA,CAAQ7pD,MAAM,CAAED,KAAM,CAC3C8pD,OAAO,CAAC9pD,EAAAA,CAAG,CAACqtC,OAAO,GACpB,CACA,IAAI,CAAC25J,aAAa,CAAC/mM,MAAM,CAAG,EAC7B,CACA,OAAOd,MAAAA,CAAO+uC,MAAM,CAAE8oI,KAAK,CAAE,CAC5B,IAAIiwB,SAAAA,CAAY,IAAA,CAChB,GAAIjwB,KAAAA,CAAMn9J,KAAK,GAAKghI,cAAAA,CAAgB,CACnCosD,SAAAA,CAAY,IAAI,CAACxiB,aAAa,CAACv2I,MAAAA,CAAQ8oI,KAAAA,CAAMkwB,iBAAiB,CAAElwB,MAAM6R,WAAW,EAClF,MAAO,CACNoe,SAAAA,CAAY,IAAI,CAACE,WAAW,CAACj5J,MAAAA,CAAQ8oI,MAAMkwB,iBAAiB,CAAElwB,KAAAA,CAAM6R,WAAW,EAChF,CACA,OAAOoe,SACR,CAEA,OAAOG,WAAAA,CAAYl5J,MAAM,CAAEm5J,UAAU,CAAEr/C,UAAU,CAAE,CAClD,MAAMi/C,SAAAA,CAAY,IAAI,CAACE,WAAW,CAACj5J,MAAAA,CAAQm5J,WAAYr/C,UAAAA,CAAAA,CACvD,MAAMl+F,OAAAA,CAAUm9I,SAAAA,CAAUD,aAAa,CACvC,MAAM9jI,GAAKpZ,OAAO,CAAC,EAAE,CACrB,IAAK,IAAI9pD,EAAAA,CAAK,EAAGA,EAAAA,CAAK,CAAA,CAAGA,KAAM,CAC9B8pD,OAAAA,CAAQhpD,IAAI,CAACoiE,EAAAA,EACd,CACA,OAAO+jI,SACR,CACA,OAAOE,YAAYj5J,MAAM,CAAExpC,IAAI,CAAEsjJ,UAAU,CAAE,CAC5C,MAAMD,UAAAA,CAAatL,cAAAA,CAAe//I,GAAG,CAACsrJ,YACtC,IAAIziJ,MAAAA,CAASwiJ,UAAAA,CAAWxiJ,MAAM,CAC9B,GAAIA,MAAAA,GAAWq2B,kBAAoB,CAACsS,MAAAA,CAAOoa,sBAAsB,EAAIpa,MAAAA,CAAO0iB,0BAA0B,CAAE,CACvGrrD,MAAAA,CAASw4B,iBACV,CACA,MAAMupK,WAAajoK,eAAAA,CAAgB3iC,GAAG,CAAC6I,MAAAA,CAAAA,EAASzC,KAChD,IAAIgtE,MAAAA,CAASl2C,cACb,GAAIouH,UAAAA,GAAejM,eAAgB,CAClCjsE,MAAAA,CAAS5hC,MAAAA,CAAOma,sBAAsB,CAAGzuB,aAAAA,CAAgBD,eAC1D,CACA,GAAIquH,aAAe3L,eAAAA,CAAiB,CACnCvsE,MAAAA,CAASn2C,eACV,CACA,MAAMuW,OAAAA,CAAU,IAAIM,OAAAA,CAAQtC,MAAAA,CAAQ,CACnC3oC,MAAAA,CACAsgB,KAAAA,CAAOnhB,IAAAA,CACPohB,MAAAA,CAAQphB,KACRgrC,OAAAA,CAAS,KAAA,CACTkB,SAAAA,CAAWk/B,MAAAA,CACXj/B,UAAWi/B,MAAAA,CACXh/B,QAAAA,CAAU/a,qBAAAA,CACVgb,QAAAA,CAAUhb,sBACVjzB,IAAAA,CAAM,CAAC,YAAY,EAAEwkM,UAAAA,CAAW,CAAA,CACjC,CAAA,CACA,IAAI1oM,OAAAA,CAAU,KACd,GAAImpJ,UAAAA,EAAYpL,GAAAA,CAAK,CACpBzsG,QAAQ8D,aAAa,CAAG,IACxB9D,CAAAA,QAAQgE,WAAW,CAAGha,UACtBt7B,OAAAA,CAAU,IAAI81D,aAAa,CAC1B2B,WAAAA,CAAanmB,OAAAA,CACbriB,MAAAA,CAAQmL,0BACT,CAAA,EACD,CAAA,KAAO,CACNp6B,OAAAA,CAAU,IAAI81D,YAAAA,CAAa,CAC1BM,WAAAA,CAAa9kB,OAAAA,CACbhB,MAAO,IAAA,CACPrhB,MAAAA,CAAQmL,0BACT,CAAA,EACD,CACA,OAAO,IAAI+tK,UAAAA,CAAW72J,OAAAA,CAAS,CAACtxC,QAAQ,CACzC,CACA,OAAO6lL,aAAAA,CAAcv2I,MAAM,CAAExpC,IAAI,CAAEsjJ,UAAU,CAAE,CAC9C,MAAMD,WAAatL,cAAAA,CAAe//I,GAAG,CAACsrJ,UAAAA,CAAAA,CACtC,MAAMs/C,UAAAA,CAAajoK,eAAAA,CAAgB3iC,GAAG,CAACqrJ,UAAAA,CAAWxiJ,MAAM,CAAA,EAAGzC,IAAAA,CAC3D,MAAMykM,MAAAA,CAASv/C,UAAAA,GAAe3L,eAAAA,CAC9B,MAAMvsE,OAASy3H,MAAAA,CAAS5tK,cAAAA,CAAiBC,cACzC,MAAM+V,OAAAA,CAAU,IAAIa,OAAAA,CAAQtC,MAAAA,CAAQ,CACnC3oC,MAAAA,CAAQwiJ,YAAYxiJ,MAAAA,CACpBsgB,KAAAA,CAAOnhB,IAAAA,CACPohB,MAAAA,CAAQphB,KACRirC,OAAAA,CAAS,IAAA,CACTD,OAAAA,CAAS,KAAA,CACTkB,UAAWk/B,MAAAA,CACXj/B,SAAAA,CAAWi/B,OACXh/B,QAAAA,CAAU/a,qBAAAA,CACVgb,SAAUhb,qBAAAA,CACVjzB,IAAAA,CAAM,CAAC,cAAc,EAAEwkM,UAAAA,CAAW,CAAA,CACnC,CAAA,CACA,GAAI,CAACC,MAAAA,CAAQ,CACZ53J,OAAAA,CAAQqE,aAAa,CAAG,IACxBrE,CAAAA,OAAAA,CAAQuE,WAAW,CAAGha,UACvB,CACA,MAAM4vB,OAAAA,CAAU,EAAE,CAClB,IAAK,IAAI9pD,EAAAA,CAAK,EAAGA,EAAAA,CAAK,CAAA,CAAGA,EAAAA,EAAAA,CAAM,CAC9B,GAAIunM,MAAAA,CAAQ,CACXz9I,QAAQhpD,IAAI,CAAC,IAAI4zD,YAAAA,CAAa,CAC7BM,WAAAA,CAAarlB,OAAAA,CACbyG,KAAMp2C,EAAAA,CACNkvC,KAAAA,CAAO,IACR,CAAA,CAAA,EACD,MAAO,CACN4a,OAAAA,CAAQhpD,IAAI,CAAC,IAAI4zD,YAAAA,CAAa,CAC7B2B,YAAa1mB,OAAAA,CACbyG,IAAAA,CAAMp2C,EACP,CAAA,CAAA,EACD,CACD,CACA,OAAO,IAAI+mM,UAAAA,CAAWp3J,OAAAA,CAASma,OAAAA,CAChC,CAlHA,YAAY5Z,OAAO,CAAE4Z,OAAO,CAAE,CAC7B,IAAI,CAAC5Z,OAAO,CAAGA,OACf,CAAA,IAAI,CAACs3J,MAAM,CAAG,KACd,CAAA,IAAI,CAACR,aAAa,CAAGl9I,QACtB,CA+GD,CAAA,CAEA,IAAI29I,WAAa,EAAE,CACnB,IAAIC,WAAAA,CAAc,EAAE,CACpB,IAAI7xB,SAAAA,CAAY,IAAIxzJ,IAAAA,CACpB,IAAIslL,QAAAA,CAAW,IAAItlL,IAAAA,CACnB,IAAIulL,KAAO,KAAA,CACV,WAAA,CAAY3wJ,IAAI,CAAE,CACjB,IAAI,CAACvyC,IAAI,CAAGnF,IAAAA,CAAKoQ,KAAK,CAACsnC,IAAAA,CAAKv3B,CAAC,CAAG,KAChC,CAAA,IAAI,CAACuwD,IAAI,CAAG,KACZ,CAAA,IAAI,CAAC43H,OAAO,CAAG,EACf,CAAA,IAAI,CAAC5wJ,IAAI,CAAGA,KACb,CACD,CAAA,CACA,IAAI6wJ,iBAAAA,CAAoB,KAAA,CA6BvBz6J,OAAAA,EAAU,CACT,IAAI,CAAC06J,kBAAkB,EAAA,CACvB,IAAI,CAACC,kBAAkB,GACxB,CACAD,kBAAAA,EAAqB,CACpB,IAAI,CAACE,WAAW,EAAE56J,OAAAA,EAClB,CAAA,IAAI,CAAC46J,WAAW,CAAG,KACpB,CACAD,kBAAAA,EAAqB,CACpB,IAAI,CAACE,WAAW,EAAE76J,SAClB,CAAA,IAAI,CAAC66J,WAAW,CAAG,IACnB,CAAA,IAAI,CAACC,kBAAkB,EAAE96J,OAAAA,EACzB,CAAA,IAAI,CAAC86J,kBAAkB,CAAG,KAC3B,CACAC,mBAAAA,CAAoBf,UAAU,CAAEr/C,UAAAA,CAAarM,eAAe,CAAE,CAC7D,MAAM0sD,cAAAA,CAAiB,IAAI,CAACJ,WAAW,EAAE/3J,OAAAA,CAAQ3qC,OACjD,MAAM+iM,cAAAA,CAAiB7rD,cAAAA,CAAe//I,GAAG,CAACsrJ,UAAAA,CAAAA,CAAYziJ,MAAM,CAC5D,GAAI,CAAC,IAAI,CAAC0iM,WAAW,EAAI,IAAI,CAACA,WAAW,CAAC/3J,OAAO,CAACrqB,KAAK,GAAKwhL,UAAAA,EAAcgB,cAAAA,GAAmBC,cAAAA,CAAgB,CAC5G,IAAI,CAAC7pM,OAAO,EAAA,CACZ,IAAI,CAACspM,kBAAkB,EACvB,CAAA,IAAI,CAACE,WAAW,CAAGnB,SAAAA,CAAUM,WAAW,CAAC,IAAI,CAACl5J,MAAM,CAAEm5J,WAAYr/C,UAAAA,CAClE,CAAA,IAAI,CAACigD,WAAW,CAACT,MAAM,CAAG,IAAA,CAC1B,MAAMe,cAAgB,CAAA,CAAI,IAAI,CAACC,qBAAqB,CACpD,IAAI,CAACC,UAAU,CAAC9hM,GAAG,CAAC4hM,aAAAA,CAAeA,cAAe,EAAC,CAAIA,cAAe,EAAC,CAAIA,aAAAA,EAC5E,CACD,CACAG,mBAAAA,CAAoBrB,UAAU,CAAE,CAC/B,GAAI,IAAI,CAACa,WAAW,CAACriL,KAAK,GAAKwhL,UAAAA,CAAY,CAC1C,IAAI,CAACc,kBAAkB,CAAC/1J,MAAM,CAACi1J,UAAAA,CAAYA,UAAAA,CAC3C,CAAA,IAAI,CAAC5oM,OAAO,GACb,CACD,CACAkqM,gBAAAA,EAAmB,CAClB,IAAI,CAACC,qBAAqB,CAAG,IAAI,CAAC16J,MAAM,CAACzmC,KAAK,CAAC6mC,OAAO,CAAC,qBACvD,CAAA,IAAI,CAACu6J,oBAAoB,CAAG,IAAI,CAAC36J,MAAM,CAACzmC,KAAK,CAAC6mC,OAAO,CAAC,mBAAA,CACtD,CAAA,IAAI,CAACw6J,kBAAkB,CAAG,IAAIvvL,aAAa,CAAA,CAC3C,CAAA,IAAI,CAACwvL,qBAAqB,CAAG,IAAI,CAAC76J,MAAM,CAACzmC,KAAK,CAAC6mC,OAAO,CAAC,oBAAA,EACxD,CACAirI,cAAAA,EAAiB,CAChB,MAAMr2G,EAAAA,CAAK,IAAI,CAAC+kI,WAAW,CAACjB,aAAa,CAAC,CAAA,CAAE,CAC5C,MAAMgC,YAAAA,CAAe9lI,GAAG7M,WAAW,CACnC,IAAI,CAACuyI,qBAAqB,CAAClnJ,QAAQ,CAACsnJ,YAAAA,CACpC,CAAA,IAAI,CAACF,kBAAkB,CAAC,CAAA,CAAE,CAAG,IAAI,CAACN,qBAClC,CAAA,IAAI,CAACM,kBAAkB,CAAC,CAAA,CAAE,CAAG,IAAI,CAACG,gBAAgB,CAClD,IAAI,CAACJ,oBAAoB,CAACnnJ,QAAQ,CAAC,IAAI,CAAConJ,kBAAkB,CAAA,CAC1D,IAAI,CAACC,qBAAqB,CAACrnJ,QAAQ,CAAC,IAAI,CAACwmJ,WAAW,EACrD,CACAgB,UAAUC,SAAS,CAAEprB,cAAc,CAAE,CACpC,IAAIqrB,UAAAA,CAAarrB,cAAAA,CAAeqrB,UAAU,CAC1C,GAAI,CAACA,WAAY,CAChB,MAAMC,SAAW9pM,IAAAA,CAAKmV,IAAI,CAACnV,IAAAA,CAAKud,IAAI,CAACqsL,SAAAA,CAAAA,CAAAA,CACrCC,WAAa1B,WACb0B,CAAAA,UAAU,CAAC,CAAA,CAAE,CAAGC,QAChBD,CAAAA,UAAAA,CAAWnpM,MAAM,CAAG,EACrB,CACA,MAAMqpM,WAAAA,CAAc,CAAC3sM,CAAAA,CAAGC,CAAAA,GAAMD,EAAEsD,MAAM,GAAKrD,CAAAA,CAAEqD,MAAM,EAAItD,CAAAA,CAAE4sM,KAAK,CAAC,CAAC9pM,GAAIO,EAAAA,GAAOP,EAAAA,GAAO7C,CAAC,CAACoD,EAAAA,CAAG,EACvF,GAAI,CAACspM,WAAAA,CAAYF,UAAAA,CAAY,IAAI,CAACA,UAAU,CAAA,CAAG,CAC9C,IAAI,CAAC3qM,OAAO,EACZ,CAAA,IAAI,CAAC+qM,KAAK,CAACvpM,MAAM,CAAG,CACpB,CAAA,IAAI,CAACmpM,UAAU,CAACnpM,MAAM,CAAG,CAAA,CACzB,IAAI,CAACmpM,UAAU,CAACtoM,IAAI,CAAA,GAAIsoM,YACxB,MAAMK,UAAAA,CAAa,IAAI,CAACL,UAAU,CAAC,CAAA,CAAE,CACrC,GAAIK,UAAAA,CAAa,EAAG,CACnB,MAAMC,OAAAA,CAAU,CAAA,CAAID,WACpB,IAAK,IAAIzpM,EAAAA,CAAK,CAAA,CAAGA,GAAKypM,UAAAA,CAAYzpM,EAAAA,EAAAA,CAAM,CACvC,IAAK,IAAI0xC,EAAI,CAAA,CAAGA,CAAAA,CAAI+3J,UAAAA,CAAY/3J,CAAAA,EAAAA,CAAK,CACpC,MAAMuF,IAAAA,CAAO,IAAI50B,IAAAA,CAAKriB,GAAK0pM,OAAAA,CAASh4J,CAAAA,CAAIg4J,OAAAA,CAASA,OAAAA,CAASA,SAC1D,MAAMC,cAAAA,CAAiB,IAAI,CAACP,UAAU,CAAC,CAAA,CAAIppM,EAAAA,CAAKypM,UAAAA,CAAa/3J,CAAAA,CAAE,CAC/D,GAAIi4J,cAAAA,CAAiB,CAAA,CAAG,CACvB,IAAK,IAAIptM,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAKotM,eAAgBptM,EAAAA,EAAAA,CAAM,CAC3C,IAAK,IAAIof,EAAAA,CAAK,EAAGA,EAAAA,CAAKguL,cAAAA,CAAgBhuL,EAAAA,EAAAA,CAAM,CAC3C,MAAMiuL,WAAAA,CAAcF,OAAAA,CAAUC,cAAAA,CAC9B,MAAME,SAAW,IAAIxnL,IAAAA,CAAK40B,IAAAA,CAAKl7B,CAAC,CAAGxf,EAAAA,CAAKqtM,WAAAA,CAAa3yJ,KAAKj7B,CAAC,CAAGL,GAAKiuL,WAAAA,CAAaA,WAAAA,CAAaA,WAAAA,CAAAA,CAC7F,IAAI,CAACJ,KAAK,CAAC1oM,IAAI,CAAC,IAAI8mM,KAAKiC,QAAAA,CAAAA,EAC1B,CACD,CACD,CAAA,KAAO,CACN,IAAI,CAACL,KAAK,CAAC1oM,IAAI,CAAC,IAAI8mM,IAAAA,CAAK3wJ,IAAAA,CAAAA,EAC1B,CACD,CACD,CACD,CAAA,KAAO,CACN,IAAI,CAACuyJ,KAAK,CAAC1oM,IAAI,CAAC,IAAI8mM,IAAAA,CAAK,IAAIvlL,KAAK,CAAA,CAAG,CAAA,CAAG,EAAG,CAAA,CAAA,CAAA,EAC5C,CACA,IAAI,CAACmnL,KAAK,CAACv5L,IAAI,CAAC,CAACtT,EAAGC,CAAAA,GAAAA,CACnB,OAAOA,CAAAA,CAAE8H,IAAI,CAAG/H,CAAAA,CAAE+H,IAAI,CACvB,EACD,CACD,CACA+5K,aAAAA,CAAcqrB,WAAW,CAAE/rB,cAAc,CAAE,CAC1C,MAAM7D,cAAAA,CAAiB6D,cAAAA,CAAe7D,cAAc,CACpD,MAAMM,cAAAA,CAAiBuD,cAAAA,CAAevD,cAAc,CACpD,IAAIuvB,iBAAmB,KAAA,CACvB,IAAIC,iBAAmB,KAAA,CACvB,MAAMtrB,OAAAA,CAAU+oB,UAChB/oB,CAAAA,OAAAA,CAAQz+K,MAAM,CAAG,CAAA,CACjB,MAAMgqM,aAAAA,CAAiB5/L,IAAAA,EAAAA,CACtB,IAAK,IAAIrK,EAAAA,CAAK,CAAA,CAAGA,GAAKqK,IAAAA,CAAKpK,MAAM,CAAED,EAAAA,EAAAA,CAAM,CACxC,MAAMg3K,KAAAA,CAAQ3sK,IAAI,CAACrK,EAAAA,CAAG,CACtB,GAAIg3K,MAAM9S,gBAAgB,CAAE,CAC3B,MAAMgmC,YAAc1vB,cAAAA,EAAkBxD,KAAAA,CAAMuD,WAAW,CACvD,MAAM4vB,YAAcjwB,cAAAA,EAAkB,CAAC,CAAClD,KAAAA,CAAMozB,MAAM,CACpDL,gBAAAA,GAAqBA,iBAAmBG,WAAU,CAClDF,CAAAA,gBAAAA,GAAqBA,gBAAAA,CAAmBG,WAAU,EAClD,GAAID,WAAAA,EAAeC,YAAa,CAC/BzrB,OAAAA,CAAQ59K,IAAI,CAACk2K,OACd,CACD,CACD,CACD,CAAA,CACA,GAAIkD,cAAAA,EAAkBM,cAAAA,CAAgB,CACrCyvB,aAAAA,CAAcH,aACf,CACAprB,OAAAA,CAAQzuK,IAAI,CAAC,CAACtT,EAAGC,CAAAA,GAAAA,CAChB,OAAOA,CAAAA,CAAEytM,aAAa,CAAG1tM,CAAAA,CAAE0tM,aAAa,CACzC,CAAA,CACA,GAAIN,iBAAkB,CACrB,IAAI,CAAC3B,mBAAmB,CAAC,IAAI,CAACI,qBAAqB,CAAEzqB,cAAAA,CAAe/1B,UAAU,EAC/E,CACA,GAAIgiD,gBAAAA,CAAkB,CACrB,IAAI,CAACtB,mBAAmB,CAAC,IAAI,CAAC4B,qBAAqB,EACpD,CACA,GAAIP,gBAAAA,EAAoBC,gBAAAA,CAAkB,CACzC,IAAI,CAACd,SAAS,CAACxqB,OAAAA,CAAQz+K,MAAM,CAAE89K,gBAChC,CACA,OAAOW,OACR,CAEA6rB,UAAUvzB,KAAK,CAAE//H,IAAI,CAAE,CACtB+/H,KAAAA,CAAMO,aAAa,CAACx4K,IAAI,CAACk4C,MACzB,MAAMuzJ,SAAAA,CAAYxzB,KAAAA,CAAMyzB,cAAc,CACtC,IAAK,IAAIr0J,IAAAA,CAAO,CAAA,CAAGA,KAAOo0J,SAAAA,CAAWp0J,IAAAA,EAAAA,CAAQ,CAC5C,GAAI4gI,MAAMuD,WAAW,EAAIvD,MAAMmD,OAAO,CAAE,CACvCtE,SAAAA,CAAU92K,IAAI,CAACk4C,IAAAA,CAAAA,CACf0wJ,SAAS5oM,IAAI,CAACk4C,IAAAA,CAAAA,CACd,GAAI+/H,MAAMn9J,KAAK,GAAKkhI,cAAAA,CAAgB,CACnC86B,UAAUxlK,GAAG,CAAC,IAAI,CAACo4L,UAAU,EAC9B,CACA,GAAIzxB,KAAAA,CAAMn9J,KAAK,GAAKghI,cAAAA,CAAgB,CACnC,MAAM6vD,SAAAA,CAAY70B,UAAU55J,CAAC,CAAG,CAAA,CAChC,MAAMrO,QAAU,IAAI,CAAC+8L,gBAAgB,CAACv0J,IAAAA,CAAK,CAC3Cy/H,SAAAA,CAAU95J,CAAC,EAAI2uL,UAAY98L,OAAAA,CAAQmO,CAAC,CACpC85J,UAAU75J,CAAC,EAAI0uL,SAAAA,CAAY98L,OAAAA,CAAQoO,CAAC,CACpC65J,UAAU55J,CAAC,CAAGyuL,SACd70B,CAAAA,SAAAA,CAAUn2J,CAAC,CAAGgrL,UACd/C,QAAAA,CAAS5oM,IAAI,CAAC82K,SAAAA,EACf,CACA,GAAImB,KAAAA,CAAMuD,WAAW,CAAE,CACtB,MAAMG,eAAAA,CAAkB1D,MAAM2D,aAAa,CAAC,KAAMvkI,IAAAA,CAAAA,CAClDskI,eAAAA,CAAgBkwB,cAAc,CAAC7rM,IAAI,CAAC82K,SAAAA,CAAAA,CACpC6E,gBAAgBmwB,aAAa,CAAC9rM,IAAI,CAAC4oM,QAAAA,EACpC,CACD,CACD,CACD,CAEAmD,UAAAA,CAAW9zB,KAAK,CAAEz6E,SAAS,CAAEwuG,cAAc,CAAE,CAC5C/zB,KAAAA,CAAMgD,sBAAsB,CAAG,IAAA,CAC/B,MAAM1tI,IAAAA,CAAO,IAAI,CAACk9J,KAAK,CAACjtG,SAAAA,CAAU,CAClCjwD,IAAAA,CAAKu7J,OAAO,CAAG7wB,KAAAA,CAAM7qI,EAAE,CACvBG,IAAAA,CAAK2jC,IAAI,CAAG,IAAA,CACZ,GAAI86H,cAAAA,CAAgB,CACnB/zB,MAAMg0B,gBAAgB,CAAG,IACzBh0B,CAAAA,MAAMi0B,YAAY,CAAG,IAAI,CAACxsM,OAAO,CACjCu4K,KAAAA,CAAMk0B,cAAc,CAAG3uG,UACxB,CACD,CAEA1iD,MAAAA,CAAOiwJ,WAAW,CAAE/rB,cAAc,CAAE,CACnC,IAAI,CAACyqB,qBAAqB,CAAGzqB,eAAeyqB,qBAC5C,CAAA,IAAI,CAAC8B,qBAAqB,CAAGvsB,eAAeusB,qBAAqB,CACjE,MAAM5rB,OAAAA,CAAU,IAAI,CAACD,aAAa,CAACqrB,WAAAA,CAAa/rB,gBAChD,GAAIW,OAAAA,CAAQz+K,MAAM,CAAG,CAAA,CAAG,CACvB,MAAMupM,KAAAA,CAAQ,IAAI,CAACA,KAAK,CACxB,IAAK,IAAIxpM,EAAAA,CAAK,EAAGA,EAAAA,CAAKwpM,KAAAA,CAAMvpM,MAAM,CAAED,KAAM,CACzCwpM,KAAK,CAACxpM,EAAAA,CAAG,CAACiwE,IAAI,CAAG,MAClB,CACA,MAAMk7H,YAAc5rM,IAAAA,CAAK4T,GAAG,CAACurK,OAAAA,CAAQz+K,MAAM,CAAEupM,KAAAA,CAAMvpM,MAAM,CAAA,CACzD,IAAK,IAAID,EAAAA,CAAK,EAAGA,EAAAA,CAAKmrM,WAAAA,CAAanrM,KAAM,CACxC,MAAMg3K,KAAAA,CAAQ0H,OAAO,CAAC1+K,EAAAA,CAAG,CACzB,GAAIg3K,KAAAA,CAAMuD,WAAW,CAAE,CACtBvD,KAAAA,CAAMo0B,UAAU,CAAG,IAAI,CAACnD,YAAW,CAEpC,MAAMoD,YAAAA,CAAe7B,KAAK,CAACxyB,KAAAA,CAAMk0B,cAAc,CAAC,CAChD,GAAIl0B,KAAAA,CAAMi0B,YAAY,GAAK,IAAI,CAACxsM,OAAO,EAAIu4K,MAAM7qI,EAAE,GAAKk/J,cAAcxD,OAAAA,CAAS,CAC9E,MAAMyD,aAAAA,CAAgB9B,KAAK,CAACxyB,KAAAA,CAAMk0B,cAAc,CAAC,CACjD,GAAII,aAAAA,CAAc5mM,IAAI,GAAK8kM,KAAK,CAACxpM,EAAAA,CAAG,CAAC0E,IAAI,EAAI,CAAC4mM,aAAAA,CAAcr7H,IAAI,CAAE,CACjE,IAAI,CAAC66H,UAAU,CAAC9zB,KAAAA,CAAOA,KAAAA,CAAMk0B,cAAc,CAAE,OAC9C,CACD,CACD,CACA,IAAIK,UAAY,CAAA,CAChB,IAAK,IAAIvrM,EAAAA,CAAK,CAAA,CAAGA,GAAKmrM,WAAAA,CAAanrM,EAAAA,EAAAA,CAAM,CACxC,MAAOurM,UAAY/B,KAAAA,CAAMvpM,MAAM,EAAIupM,KAAK,CAAC+B,SAAAA,CAAU,CAACt7H,IAAI,CAAE,CACzDs7H,SAAAA,GACD,CACA,MAAMv0B,KAAAA,CAAQ0H,OAAO,CAAC1+K,EAAAA,CAAG,CACzB,GAAI,CAACg3K,MAAMgD,sBAAsB,CAAE,CAClC,IAAI,CAAC8wB,UAAU,CAAC9zB,KAAAA,CAAOu0B,SAAAA,CAAW,MACnC,CACA,MAAMj/J,KAAOk9J,KAAK,CAACxyB,MAAMk0B,cAAc,CAAC,CACxC,IAAI,CAACX,SAAS,CAACvzB,KAAAA,CAAO1qI,IAAAA,CAAK2K,IAAI,EAChC,CACD,CACA,IAAI,CAACsiI,cAAc,GACpB,CAzOA,WAAA,CAAYrrI,MAAM,CAAE,CACnB,IAAI,CAACA,MAAM,CAAGA,MACd,CAAA,IAAI,CAACzvC,OAAO,CAAG,CACf,CAAA,IAAI,CAAC+pM,qBAAqB,CAAG,IAC7B,CAAA,IAAI,CAACP,WAAW,CAAG,IACnB,CAAA,IAAI,CAACgB,gBAAgB,CAAG,CACxB,CAAA,IAAI,CAACqB,qBAAqB,CAAG,CAC7B,CAAA,IAAI,CAACpC,WAAW,CAAG13J,QAAQE,mBAAmB,CAAC,IAAI,CAACxC,MAAM,CAAE,aAAA,CAAe,IAAI,CAACo8J,qBAAqB,CAAE,IAAI,CAACA,qBAAqB,CAAEruK,mBACnI,CAAA,IAAI,CAACksK,kBAAkB,CAAG,IAAIzzI,YAAAA,CAAa,CAC1CM,WAAAA,CAAa,IAAI,CAACkzI,WAAW,CAC7Bh5J,KAAAA,CAAO,KAAA,CACPrhB,OAAQmL,0BACT,CAAA,CACA,CAAA,IAAI,CAACwwK,KAAK,CAAG,EAAE,CACf,IAAI,CAACJ,UAAU,CAAG,EAAE,CACpB,IAAI,CAACuB,gBAAgB,CAAG,CACvB,IAAI7oL,IAAAA,CAAK,CAAA,CAAG,GACZ,IAAIA,IAAAA,CAAK,EAAG,CAAA,CAAA,CACZ,IAAIA,KAAK,CAAA,CAAG,CAAA,CAAA,CACZ,IAAIA,IAAAA,CAAK,EAAG,CAAA,CAAA,CACZ,IAAIA,IAAAA,CAAK,CAAA,CAAG,GACZ,IAAIA,IAAAA,CAAK,CAAA,CAAG,CAAA,CAAA,CACZ,CACD,IAAI,CAAC2mL,UAAU,CAAG,IAAIpmL,IAAAA,CACtB,IAAI,CAAC+lL,mBAAmB,CAAC,CAAA,CAAA,CACzB,IAAI,CAACM,mBAAmB,CAAC,CAAA,CAAA,CACzB,IAAI,CAACC,gBAAgB,GACtB,CA+MD,CAAA,CAEA,IAAI6C,cAAAA,CAAiB,KAAA,CAIpBn+J,SAAU,CACT,IAAI,CAAC3kC,KAAK,EACV,CAAA,IAAI,CAAC4vC,KAAK,CAAG,KACd,CAEA5vC,KAAAA,EAAQ,CACP,IAAI,CAAC4vC,KAAK,CAAC5rC,OAAO,CAAC,UAAC++L,EAAAA,CACnBA,UAAAA,CAAW/+L,OAAO,CAAC,SAACu6L,EAAAA,CACnBA,SAAAA,CAAU55J,OAAO,GAClB,GACD,CAAA,CAAA,CACA,IAAI,CAACiL,KAAK,CAAC5vC,KAAK,GACjB,CAEAoyD,MAAAA,CAAOk8G,KAAK,CAAE,CACb,MAAM00B,SAAAA,CAAY10B,KAAAA,CAAMn9J,KAAK,GAAKghI,cAAAA,CAClC,MAAMmN,UAAAA,CAAagvB,MAAM6R,WAAW,CACpC,MAAMwe,UAAAA,CAAarwB,MAAMkwB,iBAAiB,CAC1C,OAAO,CAAC,EAAEwE,UAAU,CAAC,EAAE1jD,UAAAA,CAAW,CAAC,EAAEq/C,UAAAA,CAAW,CAAC,CAGlD3qM,GAAAA,CAAIwxC,MAAM,CAAE8oI,KAAK,CAAE,CAClB,MAAMjvK,GAAAA,CAAM,IAAI,CAAC+yD,MAAM,CAACk8G,OACxB,MAAMy0B,UAAAA,CAAa,IAAI,CAACnzJ,KAAK,CAAC57C,GAAG,CAACqL,GAAAA,CAAAA,CAClC,GAAI0jM,UAAAA,EAAcA,UAAAA,CAAWxrM,MAAM,CAAE,CACpC,OAAOwrM,UAAAA,CAAWnqM,GAAG,EACtB,CACA,MAAM2lM,SAAAA,CAAYH,SAAAA,CAAU3nM,MAAM,CAAC+uC,OAAQ8oI,KAAAA,CAC3CiwB,CAAAA,SAAAA,CAAUO,MAAM,CAAG,IAAA,CACnB,OAAOP,SACR,CAEA52L,IAAI2mK,KAAK,CAAEiwB,SAAS,CAAE,CACrB,MAAMl/L,GAAAA,CAAM,IAAI,CAAC+yD,MAAM,CAACk8G,KAAAA,CAAAA,CACxB,MAAMy0B,UAAAA,CAAa,IAAI,CAACnzJ,KAAK,CAAC57C,GAAG,CAACqL,KAClC,GAAI0jM,UAAAA,CAAY,CACfA,UAAAA,CAAW3qM,IAAI,CAACmmM,SAAAA,EACjB,CAAA,KAAO,CACN,IAAI,CAAC3uJ,KAAK,CAAC3xC,GAAG,CAACoB,IAAK,CAACk/L,SAAAA,CAAU,EAChC,CACD,CA3CA,WAAA,EAAc,CACb,IAAI,CAAC3uJ,KAAK,CAAmB,IAAIlwC,IAClC,CA0CD,CAAA,CAEA,IAAIujM,iCAAAA,CAAoC,cAAcjpI,UAAAA,CAWrDtB,OAAAA,EAAU,CACT,IAAI,CAACwqI,cAAc,CAACC,UAAU,CAAC,IAAI,CAAC70B,KAAK,CAAE,KAAM,IAAI,CAAC5gI,IAAI,CAAE,OAC7D,CACAirB,KAAAA,EAAQ,CACP,GAAI,IAAI,CAACyqI,QAAQ,CAAE,CAClB,IAAI,CAACF,cAAc,CAACG,SAAS,CAAC,IAAI,CAAC/0B,KAAK,CAAE,IAAI,CAACg1B,YAAY,EAC5D,CACD,CAjBA,YAAY99J,MAAM,CAAE09J,cAAc,CAAE50B,KAAK,CAAE5gI,IAAI,CAAE01J,QAAQ,CAAE,CAC1D,KAAK,CAAC59J,MAAAA,CACN,CAAA,IAAI,CAACwzB,gBAAgB,CAAG,KACxB,CAAA,IAAI,CAACkqI,cAAc,CAAGA,cACtB,CAAA,IAAI,CAAC50B,KAAK,CAAGA,KACb,CAAA,IAAI,CAAC5gI,IAAI,CAAGA,IACZ,CAAA,IAAI,CAAC01J,QAAQ,CAAGA,QAChB,CAAA,IAAI,CAACE,YAAY,CAAGJ,cAAAA,CAAeK,WAAW,CAACj1B,KAAAA,CAAO,KAAM5gI,IAAAA,CAAAA,CAC5Dw1J,cAAAA,CAAeM,eAAe,CAAC,IAAI,CAAE,IAAI,CAACF,YAAY,CAAE,IAAA,EACzD,CASD,CAAA,CAEA,IAAIG,oBAAsB,KAAA,CAgBzBC,gBAAAA,CAAiBp1B,KAAK,CAAE,CACvB,GAAI,CAAC,IAAI,CAACzD,QAAQ,CAAC5mB,KAAK,CAACs7B,wBAAwB,EAAI,CAACjR,KAAAA,CAAMo0B,UAAU,CAAE,CACvEp0B,MAAMo0B,UAAU,CAAGtE,UAAU3nM,MAAM,CAAC,IAAI,CAAC+uC,MAAM,CAAE8oI,KAAAA,EAClD,CACD,CAEArU,IAAAA,CAAKqU,KAAK,CAAEq1B,IAAI,CAAEC,OAAAA,CAAU,IAAI,CAAE,CACjC,MAAMC,WAAAA,CAAc,IAAI,CAACh5B,QAAQ,CAAC5mB,KAAK,CAACs7B,wBACxCjR,CAAAA,KAAAA,CAAM9S,gBAAgB,CAAG,IAAA,CACzB,IAAI,CAACkoC,gBAAgB,CAACp1B,KAAAA,CAAAA,CACtB,MAAM5/J,IAAAA,CAAO4/J,KAAAA,CAAMn9J,KAAK,CACxB,MAAM2wL,UAAYpzL,IAAAA,GAAS2jI,cAAAA,CAAiB,CAAA,CAAI,CAAA,CAChD,IAAK,IAAI3kG,IAAAA,CAAO,CAAA,CAAGA,IAAAA,CAAOo0J,UAAWp0J,IAAAA,EAAAA,CAAQ,CAC5C,MAAMskI,eAAAA,CAAkB1D,MAAM2D,aAAa,CAAC,KAAMvkI,IAAAA,CAAAA,CAClD,MAAMo2J,UAAY9xB,eAAAA,CAAgBsxB,YAAY,CAC9CQ,UAAUj7B,QAAQ,CAAGyF,KAAAA,CAAMgE,cAAc,CAAG,GAC5CwxB,CAAAA,SAAAA,CAAU77B,OAAO,CAAGqG,KAAAA,CAAMgE,cAAc,CACxC,MAAMyxB,aAAAA,CAAgBD,UAAU/6B,KAAK,CACrC,MAAMi7B,SAAAA,CAAY11B,MAAMvF,KAAK,CAC7Bg7B,cAAcr8D,WAAW,CAACs8D,UAAUx8D,WAAW,EAAA,CAAA,CAC/C,GAAI94H,IAAAA,GAAS2jI,eAAgB,CAC5ByxD,SAAAA,CAAU5pL,GAAG,CAAGo0J,KAAAA,CAAMG,eAAe,CAAG,CAAA,CACxCs1B,aAAAA,CAAc5wC,WAAW,CAAC6wC,SAAAA,CAAU7xC,WAAW,EAAA,CAAA,CAC/C4xC,aAAAA,CAAclvC,WAAW,CAAC,GAAC,CAAI,CAAA,CAAG,GACnC,CAAA,KAAO,GAAInmJ,OAASyjI,cAAAA,CAAgB,CACnC,GAAI0xD,WAAAA,CAAa,CAChB,MAAMI,QAAAA,CAAW,IAAI,CAACf,cAAc,CAACgB,iBAAiB,CAACpE,qBAAqB,CAAGxxB,KAAAA,CAAMO,aAAa,CAACt7J,CAAC,CAAG,EACvG,MAAM4wL,SAAAA,CAAY,EAAIF,QAAAA,CACtB,MAAMG,UAAAA,CAAaD,SAAAA,CAAY,IAAI,CAACjB,cAAc,CAACgB,iBAAiB,CAAC3D,gBACrEuD,CAAAA,SAAAA,CAAU5pL,GAAG,CAAGrjB,IAAAA,CAAKwtM,IAAI,CAAC,CAAA,CAAID,YAAch6L,IAAAA,CAAKG,UAAU,CAAG,EAC/D,MAAO,CACNu5L,SAAAA,CAAU5pL,GAAG,CAAG,GACjB,CACD,CACA4pL,SAAAA,CAAUv4B,aAAa,GACvB,GAAI78J,IAAAA,GAAS2jI,eAAgB,CAC5B,IAAI,CAAC6wD,cAAc,CAACoB,iBAAiB,CAACX,KAAMr1B,KAAAA,CAAO0D,eAAAA,CAAgBuyB,cAAc,CAAET,UAAWF,OAAAA,EAC/F,CACD,CACA,GAAIl1L,OAASyjI,cAAAA,CAAgB,CAC5B,IAAI,CAAC+wD,cAAc,CAACsB,qBAAqB,CAACb,IAAAA,CAAMr1B,KAAAA,CAAOs1B,SACxD,CACD,CACAa,aAAAA,CAAcC,YAAY,CAAE1uB,OAAO,CAAE,CACpC0uB,YAAAA,CAAantM,MAAM,CAAG,CAAA,CACtB,IAAI+rM,YAAAA,CACJ,IAAK,IAAIhsM,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAK0+K,OAAAA,CAAQz+K,MAAM,CAAED,EAAAA,EAAAA,CAAM,CAC3C,MAAMg3K,MAAQ0H,OAAO,CAAC1+K,EAAAA,CAAG,CACzB,GAAI,IAAI,CAAC4rM,cAAc,CAACyB,oBAAoB,CAACr2B,KAAAA,CAAAA,EAAUA,KAAAA,CAAMgD,sBAAsB,CAAE,CACpFozB,YAAAA,CAAatsM,IAAI,CAACk2K,KAAAA,CAAAA,CAClB,IAAK,IAAI5gI,IAAAA,CAAO,CAAA,CAAGA,IAAAA,CAAO4gI,KAAAA,CAAMyzB,cAAc,CAAEr0J,IAAAA,EAAAA,CAAQ,CACvD41J,YAAAA,CAAe,IAAI,CAACJ,cAAc,CAACK,WAAW,CAACj1B,MAAO,IAAA,CAAM5gI,IAAAA,EAC7D,CACD,CACD,CACA,OAAO41J,YACR,CACAsB,6BAAAA,CAA8BC,UAAU,CAAEzD,WAAW,CAAE,CACtD,IAAK,IAAI9pM,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAK8pM,WAAAA,CAAY7pM,MAAM,CAAED,EAAAA,EAAAA,CAAM,CAC/C,MAAMg3K,MAAQ8yB,WAAW,CAAC9pM,EAAAA,CAAG,CAC7B,GAAI,IAAI,CAAC4rM,cAAc,CAACyB,oBAAoB,CAACr2B,KAAAA,CAAAA,CAAQ,CACpD,MAAM80B,QAAAA,CAAW90B,MAAMn9J,KAAK,GAAKkhI,cAAAA,CACjC,MAAMyvD,UAAYxzB,KAAAA,CAAMyzB,cAAc,CACtC,IAAK,IAAIr0J,IAAAA,CAAO,CAAA,CAAGA,KAAOo0J,SAAAA,CAAWp0J,IAAAA,EAAAA,CAAQ,CAC5C,MAAM0Z,UAAAA,CAAa,IAAI67I,iCAAAA,CAAkC,IAAI,CAACz9J,MAAM,CAAE,IAAI,CAAC09J,cAAc,CAAE50B,KAAAA,CAAO5gI,IAAAA,CAAM01J,UACxGyB,UAAAA,CAAWC,aAAa,CAAC19I,UAAAA,EAC1B,CACD,CACD,CACD,CA/EA,WAAA,CAAYyjH,QAAQ,CAAEq4B,cAAc,CAAE,CAJtCwB,gBAAAA,CAAAA,IAAAA,CAAAA,eAAe,EAAE,CAAA,CACjB75B,gBAAAA,CAAAA,IAAAA,CAAAA,UAAAA,CAAAA,MAAAA,CAAAA,CACAq4B,gBAAAA,CAAAA,IAAAA,CAAAA,iBAAAA,MAAAA,CAAAA,CACA19J,sBAAAA,QAAAA,CAAAA,MAAAA,CAEC,CAAA,IAAI,CAACqlI,QAAQ,CAAGA,QAChB,CAAA,IAAI,CAACq4B,cAAc,CAAGA,cACtB,CAAA,IAAI,CAAC19J,MAAM,CAAGqlI,SAASrlI,OACxB,CA4ED,CAAA,CAEA,IAAIu/J,2BAAAA,CAA8B,cAAc/qI,UAAAA,CAQ/CtB,OAAAA,EAAU,CACT,KAAM,CAAE41G,KAAK,CAAE3U,MAAM,CAAEupC,cAAc,CAAE8B,oBAAoB,CAAE,CAAG,IAAI,CACpE,MAAMlD,SAAAA,CAAYxzB,MAAMyzB,cAAc,CACtC,MAAMkD,qBAAAA,CAAwB32B,KAAAA,CAAM22B,qBAAqB,CACzD,IAAK,IAAIv3J,IAAAA,CAAO,EAAGA,IAAAA,CAAOo0J,SAAAA,CAAWp0J,OAAQ,CAC5C,GAAIu3J,wBAAwBv3J,IAAAA,CAAK,GAAKkrG,iBAAAA,CAAmB,CACxDsqD,cAAAA,CAAeC,UAAU,CAAC70B,KAAAA,CAAO3U,OAAQjsH,IAAAA,CAAM,CAACs3J,oBAAAA,EACjD,CACA,GAAIC,qBAAAA,GAAwBv3J,KAAK,GAAKmrG,sBAAAA,CAAwB,CAC7DosD,qBAAqB,CAACv3J,IAAAA,CAAK,CAAGkrG,kBAC/B,CACD,CACD,CACAjgF,KAAAA,EAAQ,CACP,IAAI,CAACuqI,cAAc,CAACG,SAAS,CAAC,IAAI,CAAC/0B,KAAK,CAAE,IAAI,CAAC3U,MAAM,EACtD,CAtBA,YAAYn0H,MAAM,CAAE09J,cAAc,CAAE50B,KAAK,CAAE3U,MAAM,CAAEqrC,oBAAoB,CAAE,CACxE,KAAK,CAACx/J,MAAAA,CACN,CAAA,IAAI,CAAC09J,cAAc,CAAGA,cACtB,CAAA,IAAI,CAAC50B,KAAK,CAAGA,KACb,CAAA,IAAI,CAAC3U,MAAM,CAAGA,MACd,CAAA,IAAI,CAACqrC,oBAAoB,CAAGA,qBAC7B,CAiBD,CAAA,CAEA,IAAIE,gBAAkB,IAAIziL,WAAAA,CAC1B,IAAI0iL,aAAAA,CAAgB,CAAC,IAAI1iL,WAAAA,CAAe,IAAIA,WAAAA,CAAe,IAAIA,WAAAA,CAAe,IAAIA,YAAc,CAChG,IAAI2iL,kBAAoB,CAAC,KAAA,CAAO,KAAA,CAAO,KAAA,CAAO,MAAM,CACpD,IAAIC,aAAAA,CAAgB,CAAC,EAAG,CAAA,CAAG,CAAA,CAAG,CAAA,CAAE,CAChC,IAAIziL,MAAAA,CAAS,IAAIzP,KACjB,IAAImyL,aAAAA,CAAgB,IAAIxrL,IAAAA,CACxB,IAAIyrL,UAAAA,CAAa,CAChB,IAAIpyL,IAAAA,CACJ,IAAIA,IAAAA,CACJ,IAAIA,KACJ,IAAIA,IAAAA,CACJ,IAAIA,IAAAA,CACJ,IAAIA,IAAAA,CACJ,IAAIA,KACJ,IAAIA,IAAAA,CACJ,CACD,IAAIqyL,WAAAA,CAAc,CAAE/6L,GAAAA,CAAK,EAAGC,GAAAA,CAAK,CAAE,EACnC,SAAS+6L,aAAAA,CAAcC,gBAAgB,CAAEC,OAAO,CAAEC,OAAO,EACxDL,UAAU,CAAC,EAAE,CAAClyL,CAAC,CAAGkyL,UAAU,CAAC,CAAA,CAAE,CAAClyL,CAAC,CAAGkyL,UAAU,CAAC,CAAA,CAAE,CAAClyL,CAAC,CAAGkyL,UAAU,CAAC,EAAE,CAAClyL,CAAC,CAAGsyL,OAAAA,CAAQtyL,CAAC,CACjFkyL,UAAU,CAAC,CAAA,CAAE,CAACjyL,CAAC,CAAGiyL,UAAU,CAAC,EAAE,CAACjyL,CAAC,CAAGiyL,UAAU,CAAC,CAAA,CAAE,CAACjyL,CAAC,CAAGiyL,UAAU,CAAC,CAAA,CAAE,CAACjyL,CAAC,CAAGqyL,QAAQryL,CAChFiyL,CAAAA,UAAU,CAAC,CAAA,CAAE,CAAChyL,CAAC,CAAGgyL,UAAU,CAAC,CAAA,CAAE,CAAChyL,CAAC,CAAGgyL,UAAU,CAAC,CAAA,CAAE,CAAChyL,CAAC,CAAGgyL,UAAU,CAAC,CAAA,CAAE,CAAChyL,CAAC,CAAGoyL,OAAAA,CAAQpyL,CAChFgyL,CAAAA,UAAU,CAAC,EAAE,CAAClyL,CAAC,CAAGkyL,UAAU,CAAC,CAAA,CAAE,CAAClyL,CAAC,CAAGkyL,UAAU,CAAC,CAAA,CAAE,CAAClyL,CAAC,CAAGkyL,UAAU,CAAC,EAAE,CAAClyL,CAAC,CAAGuyL,OAAAA,CAAQvyL,CAAC,CACjFkyL,UAAU,CAAC,CAAA,CAAE,CAACjyL,CAAC,CAAGiyL,UAAU,CAAC,EAAE,CAACjyL,CAAC,CAAGiyL,UAAU,CAAC,CAAA,CAAE,CAACjyL,CAAC,CAAGiyL,UAAU,CAAC,CAAA,CAAE,CAACjyL,CAAC,CAAGsyL,QAAQtyL,CAChFiyL,CAAAA,UAAU,CAAC,CAAA,CAAE,CAAChyL,CAAC,CAAGgyL,UAAU,CAAC,CAAA,CAAE,CAAChyL,CAAC,CAAGgyL,UAAU,CAAC,CAAA,CAAE,CAAChyL,CAAC,CAAGgyL,UAAU,CAAC,EAAE,CAAChyL,CAAC,CAAGqyL,OAAAA,CAAQryL,CAAC,CACjF,IAAIoU,KAAO,WAAA,CACX,IAAIG,KAAO,WAAC,CACZ,IAAK,IAAIxwB,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAK,EAAG,EAAEA,EAAAA,CAAI,CAC9BouM,gBAAAA,CAAiB/pL,cAAc,CAAC4pL,UAAU,CAACjuM,EAAAA,CAAG,CAAEiuM,UAAU,CAACjuM,GAAG,CAAA,CAC9D,MAAM6c,GAAKoxL,UAAU,CAACjuM,EAAAA,CAAG,CAACic,CAAC,CAC3B,GAAIY,EAAAA,CAAKwT,IAAAA,CAAMA,KAAOxT,EAAAA,CACtB,GAAIA,EAAAA,CAAK2T,IAAAA,CAAMA,KAAO3T,GACvB,CACAqxL,YAAY/6L,GAAG,CAAGkd,IAClB69K,CAAAA,WAAAA,CAAY96L,GAAG,CAAGod,KAClB,OAAO09K,WACR,CACA,IAAIK,0BAA4B,KAAA,CAa/BnC,gBAAAA,CAAiBp1B,KAAK,CAAE,CACvBA,KAAAA,CAAM9S,gBAAgB,CAAG,IAAA,CACzB,GAAI,CAAC8S,KAAAA,CAAMo0B,UAAU,CAAE,CACtBp0B,MAAMo0B,UAAU,CAAGtE,SAAAA,CAAU3nM,MAAM,CAAC,IAAI,CAAC+uC,MAAM,CAAE8oI,OAClD,CACD,CAEArU,KAAKqU,KAAK,CAAEq1B,IAAI,CAAEhqC,MAAM,CAAEiqC,OAAAA,CAAU,IAAI,CAAE,CACzC,MAAMkC,QAAAA,CAAWnsC,OAAOmP,SAAS,CACjC,IAAI,CAACi9B,sBAAsB,CAACz3B,KAAAA,CAAOw3B,SAAUjvM,IAAAA,CAAK4T,GAAG,CAACkvJ,MAAAA,CAAOuO,QAAQ,CAAEoG,KAAAA,CAAM03B,cAAc,CAAA,CAAA,CAC3F,MAAMf,qBAAAA,CAAwB32B,KAAAA,CAAM22B,qBAAqB,CACzD,IAAIgB,iBAAAA,CAAoB,CAAA,CACxB,IAAK,IAAIC,OAAAA,CAAU,EAAGA,OAAAA,CAAU53B,KAAAA,CAAMsS,WAAW,CAAEslB,OAAAA,EAAAA,CAAW,CAC7D,GAAIjB,wBAAwBiB,OAAAA,CAAQ,GAAKttD,iBAAAA,CAAmB,CAC3D,KACD,CACA,MAAMo5B,eAAAA,CAAkB1D,MAAM2D,aAAa,CAACtY,OAAQusC,OAAAA,CAAAA,CACpD,MAAMpC,UAAY9xB,eAAAA,CAAgBsxB,YAAY,CAC9CQ,UAAUpiJ,YAAY,CAAG4sH,MAAMo0B,UAAU,CAACpE,aAAa,CAAC,CAAA,CAAE,CAC1DtsB,eAAAA,CAAgBkwB,cAAc,CAAC7rM,IAAI,CAACi4K,KAAAA,CAAM63B,QAAQ,CAACD,OAAAA,CAAQ,CAAA,CAC3Dl0B,eAAAA,CAAgBmwB,aAAa,CAAC9rM,IAAI,CAACi4K,KAAAA,CAAM63B,QAAQ,CAACD,OAAAA,CAAQ,CAAA,CAC1D,MAAMnC,aAAAA,CAAgBD,UAAU/6B,KAAK,CACrC,MAAMi7B,SAAAA,CAAY11B,KAAAA,CAAMvF,KAAK,CAC7Bg7B,aAAAA,CAAcr8D,WAAW,CAACs8D,UAAUx8D,WAAW,EAAA,CAAA,CAC/Cu8D,aAAAA,CAAc5wC,WAAW,CAAC6wC,SAAAA,CAAU7xC,WAAW,EAAA,CAAA,CAC/C4xC,aAAAA,CAAclvC,WAAW,CAAC,IAAK,CAAA,CAAG,CAAA,CAAA,CAClC,MAAMuxC,eAAAA,CAAkBF,OAAAA,GAAY,CAAA,CAAIJ,QAAAA,CAAWx3B,MAAM+3B,uBAAuB,CAACH,OAAAA,CAAU,CAAA,CAAE,CAC7F,MAAMI,cAAAA,CAAiBh4B,KAAAA,CAAM+3B,uBAAuB,CAACH,OAAAA,CAAQ,CAC7D,MAAMK,aAAAA,CAAgB5sC,MAAAA,CAAOgT,iBAAiB,CAACy5B,eAAAA,CAAiBE,cAAAA,CAAAA,CAChE1jL,MAAAA,CAAO3kB,GAAG,CAAC,CAAA,CAAG,CAAA,CAAG,CAAA,CAAA,CACjB,MAAMuoM,cAAAA,CAAiB7sC,MAAAA,CAAO7K,IAAI,CAAC7H,iBAAiB,EAAA,CACpD,IAAK,IAAI3vJ,EAAAA,CAAK,CAAA,CAAGA,GAAK,CAAA,CAAGA,EAAAA,EAAAA,CAAM,CAC9BkvM,cAAAA,CAAe7qL,cAAc,CAAC4qL,aAAa,CAACjvM,EAAAA,CAAG,CAAEivM,aAAa,CAACjvM,EAAAA,CAAG,CAAA,CAClEsrB,OAAOjb,GAAG,CAAC4+L,aAAa,CAACjvM,EAAAA,CAAG,EAC7B,CACAsrB,MAAAA,CAAO9V,SAAS,CAAC,EAAI,CAAA,CAAA,CACrB,IAAI4F,MAAAA,CAAS,CAAA,CACb,IAAK,IAAIpb,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAK,EAAGA,EAAAA,EAAAA,CAAM,CAC9B,MAAMmvM,IAAAA,CAAOF,aAAa,CAACjvM,EAAAA,CAAG,CAAC6d,GAAG,CAACyN,QAAQrrB,MAAM,EAAA,CACjD,GAAIkvM,IAAAA,CAAO/zL,OAAQ,CAClBA,MAAAA,CAAS+zL,KACV,CACD,CACA,MAAM9/L,MAAAA,CAASo9L,cAAc50C,KAAK,CAClC,MAAMpzI,GAAAA,CAAMgoL,aAAAA,CAAcp1C,EAAE,CAC5B,MAAM+3C,QAAAA,CAAW3C,aAAAA,CAAc10C,OAAO,CACtC,MAAMs3C,UAAY,GAAA,CAAOr4B,KAAAA,CAAMkwB,iBAAiB,CAAG9rL,OACnD,MAAM7e,EAAAA,CAAKgD,KAAKmV,IAAI,CAAC4W,OAAOpO,GAAG,CAACuH,GAAAA,CAAAA,CAAO4qL,SAAAA,CAAAA,CAAaA,UACpD,MAAM1zL,EAAAA,CAAKpc,IAAAA,CAAKmV,IAAI,CAAC4W,MAAAA,CAAOpO,GAAG,CAAC7N,MAAAA,CAAAA,CAAUggM,WAAaA,SAAAA,CACvD,MAAMC,SAAW7qL,GAAAA,CAAIjP,SAAS,CAACjZ,EAAAA,CAAAA,CAC/B,MAAMgzM,WAAAA,CAAclgM,MAAAA,CAAOmG,SAAS,CAACmG,EAAAA,CAAAA,CACrC,MAAMuB,GAAAA,CAAMoO,OAAOpO,GAAG,CAACkyL,QAAAA,CAAAA,CACvB,MAAMI,UAAYJ,QAAAA,CAAS55L,SAAS,CAAC0H,GAAAA,CAAAA,CACrCoO,MAAAA,CAAOpP,IAAI,CAACozL,QAAAA,CAAUC,WAAAA,CAAAA,CAAal/L,GAAG,CAACm/L,SAAAA,CAAAA,CACvC/C,aAAAA,CAAcr8D,WAAW,CAAC9kH,QAC1BmhL,aAAAA,CAAcpvC,cAAc,CAAC,CAAA,CAAG,EAAG,GAAA,CACnCmvC,CAAAA,UAAUj7B,QAAQ,CAAG,GACrBi7B,CAAAA,SAAAA,CAAU77B,OAAO,CAAG,GACpB67B,CAAAA,SAAAA,CAAU96B,WAAW,CAAGt2J,OACxBoxL,SAAAA,CAAUv4B,aAAa,EAAA,CACvB,IAAI,CAAC23B,cAAc,CAACoB,iBAAiB,CAACX,IAAAA,CAAMr1B,MAAO0D,eAAAA,CAAgBuyB,cAAc,CAAET,SAAAA,CAAWF,SAC9F,MAAMmD,WAAAA,CAAc,CAAA,EAAKb,OAAAA,CACzB,MAAM3B,cAAAA,CAAiBvyB,eAAAA,CAAgBuyB,cAAc,CACrD,MAAMyC,qBAAAA,CAAwBzC,cAAAA,CAAehtM,MAAM,CACnD,IAAI0vM,kBAAoB,CAAA,CACxB,MAAMC,WAAAA,CAAc/B,aAAa,CAACe,OAAAA,CAAQ,CAC1C,IAAK,IAAI5uM,GAAK,CAAA,CAAGA,EAAAA,CAAK0vM,qBAAAA,CAAuB1vM,EAAAA,EAAAA,CAAM,CAClD,MAAM4sJ,YAAAA,CAAeqgD,cAAc,CAACjtM,EAAAA,CAAG,CACvC,GAAI4sJ,YAAAA,CAAamX,iBAAiB,CAAG0rC,YAAa,CACjDxC,cAAc,CAAC0C,iBAAAA,EAAAA,CAAoB,CAAG/iD,YAAAA,CACtC,GAAI+iD,iBAAAA,GAAsB,CAAA,CAAG,CAC5BC,WAAAA,CAAY7wM,IAAI,CAAC6tJ,YAAAA,CAAaQ,IAAI,EACnC,CAAA,KAAO,CACNwiD,WAAAA,CAAYv/L,GAAG,CAACu8I,YAAAA,CAAaQ,IAAI,EAClC,CACD,CACD,CACA,GAAIsiD,qBAAAA,GAA0BC,iBAAAA,CAAmB,CAChD1C,eAAehtM,MAAM,CAAG0vM,kBACzB,CACA7B,iBAAiB,CAACc,OAAAA,CAAQ,CAAGe,iBAAAA,CAAoB,CACjD5B,CAAAA,aAAa,CAACa,OAAAA,CAAQ,CAAGxzL,MACzBuzL,CAAAA,iBAAAA,GACD,CACA,IAAIkB,SAAW,KAAA,CACf,GAAI74B,MAAM84B,OAAO,CAAE,CAClB,IAAK,IAAIlB,OAAAA,CAAU,CAAA,CAAGA,QAAUD,iBAAAA,CAAmBC,OAAAA,EAAAA,CAAW,CAC7D,GAAI,CAACd,iBAAiB,CAACc,OAAAA,CAAQ,CAAE,SACjC,GAAI,CAACiB,SAAU,CACdjC,eAAAA,CAAgB7uM,IAAI,CAAC8uM,aAAa,CAACe,OAAAA,CAAQ,EAC3CiB,QAAAA,CAAW,KACZ,CAAA,KAAO,CACNjC,gBAAgBv9L,GAAG,CAACw9L,aAAa,CAACe,QAAQ,EAC3C,CACD,CACD,CACA,IAAK,IAAIA,OAAAA,CAAU,CAAA,CAAGA,OAAAA,CAAUD,iBAAAA,CAAmBC,UAAW,CAC7D,IAAImB,UAAAA,CACJ,GAAIF,SAAU,CACbE,UAAAA,CAAanC,gBACd,CAAA,KAAO,GAAIE,iBAAiB,CAACc,QAAQ,CAAE,CACtCmB,WAAalC,aAAa,CAACe,OAAAA,EAC5B,MAAO,CACN,QACD,CACA,MAAMl0B,gBAAkB1D,KAAAA,CAAM2D,aAAa,CAACtY,MAAAA,CAAQusC,SACpD,MAAMpC,SAAAA,CAAY9xB,gBAAgBsxB,YAAY,CAC9C,MAAMS,aAAAA,CAAgBD,SAAAA,CAAU/6B,KAAK,CACrCu8B,cAAcjvM,IAAI,CAAC0tM,aAAAA,CAAc98C,iBAAiB,IAAI1pI,MAAM,EAAA,CAC5D,MAAM+pL,UAAAA,CAAa7B,cAAcH,aAAAA,CAAe+B,UAAAA,CAAWxiL,MAAM,EAAA,CAAIwiL,UAAAA,CAAW1iL,MAAM,EAAA,CAAA,CACtFo/K,aAAAA,CAAcpvC,cAAc,CAAC,EAAG,CAAA,CAAG2yC,UAAAA,CAAW58L,GAAG,CAAG,GACpDo5L,CAAAA,SAAAA,CAAU77B,OAAO,CAAGq/B,WAAW58L,GAAG,CAAG48L,WAAW78L,GAAG,CAAG,EACtDunK,CAAAA,eAAAA,CAAgBu1B,sBAAsB,CAAGlC,aAAa,CAACa,OAAAA,EAAQ,CAEjE,CAEAH,uBAAuBz3B,KAAK,CAAEw3B,QAAQ,CAAE0B,OAAO,CAAE,CAChDl5B,MAAM+3B,uBAAuB,CAAC9vB,IAAI,CAACixB,OAAAA,CAAAA,CACnC,IAAK,IAAIlwM,GAAK,CAAA,CAAGA,EAAAA,CAAKg3K,KAAAA,CAAMsS,WAAW,CAAEtpL,EAAAA,EAAAA,CAAM,CAC9C,MAAMmwM,QAAAA,CAAWnwM,GAAKg3K,KAAAA,CAAMsS,WAAW,CACvC,MAAM8mB,UAAAA,CAAa5B,SAAW,CAAC0B,OAAAA,CAAU1B,QAAO,EAAK2B,QAAAA,CACrD,MAAME,OAAAA,CAAU7B,QAAAA,CAAW,CAAC0B,OAAAA,CAAU1B,QAAO,GAAM2B,SACnD,MAAMhB,IAAAA,CAAOr8L,KAAKY,IAAI,CAAC08L,WAAYC,OAAAA,CAASr5B,KAAAA,CAAMs5B,mBAAmB,CACrEt5B,CAAAA,KAAAA,CAAM+3B,uBAAuB,CAAC/uM,EAAAA,CAAK,EAAE,CAAGmvM,KACzC,CACD,CACAoB,mBAAmBv5B,KAAK,CAAE3U,MAAM,CAAE,CACjC,IAAIvyG,UAAAA,CAAa,IAAA,CACjB,GAAI,IAAI,CAAC87I,cAAc,CAACyB,oBAAoB,CAACr2B,OAAQ,CACpD,MAAMwzB,SAAAA,CAAYxzB,KAAAA,CAAMyzB,cAAc,CACtC,MAAMkD,sBAAwB32B,KAAAA,CAAM22B,qBAAqB,CACzD,IAAID,oBAAAA,CAAuB,IAAA,CAC3B,IAAI1B,aACJ,IAAK,IAAI51J,IAAAA,CAAO,CAAA,CAAGA,KAAOo0J,SAAAA,CAAWp0J,IAAAA,EAAAA,CAAQ,CAC5C,GAAIu3J,wBAAwBv3J,IAAAA,CAAK,GAAKkrG,iBAAAA,CAAmB,CACxDosD,qBAAuB,MACxB,CACA1B,YAAAA,CAAe,IAAI,CAACJ,cAAc,CAACK,WAAW,CAACj1B,MAAO3U,MAAAA,CAAQjsH,IAAAA,EAC/D,CACA0Z,UAAAA,CAAa,IAAI29I,2BAAAA,CAA4B,IAAI,CAACv/J,MAAM,CAAE,IAAI,CAAC09J,cAAc,CAAE50B,KAAAA,CAAO3U,OAAQqrC,oBAAAA,CAAAA,CAC9F,IAAI,CAAC9B,cAAc,CAACM,eAAe,CAACp8I,UAAAA,CAAYk8I,YAAAA,CAAc0B,sBAC/D,CACA,OAAO59I,UACR,CAxJA,WAAA,CAAYyjH,QAAQ,CAAEq4B,cAAc,CAAE,CAHtCr4B,sBAAAA,UAAAA,CAAAA,QACAq4B,gBAAAA,CAAAA,IAAAA,CAAAA,gBAAAA,CAAAA,MAAAA,CAAAA,CACA19J,gBAAAA,CAAAA,IAAAA,CAAAA,QAAAA,CAAAA,OAEC,CAAA,IAAI,CAACqlI,QAAQ,CAAGA,QAChB,CAAA,IAAI,CAACq4B,cAAc,CAAGA,cACtB,CAAA,IAAI,CAAC19J,MAAM,CAAGqlI,QAAAA,CAASrlI,OACxB,CAqJD,CAAA,CAEA,IAAIsiK,QAA0B,IAAIxpM,GAAAA,CAClC,IAAIypM,UAAAA,CAAa,EAAE,CACnB,IAAIC,aAAe,EAAE,CACrB,IAAIC,cAAAA,CAAiB,IAAInuL,IAAAA,CACzB,IAAIouL,iBAAAA,CAAoB,IAAIpuL,KAC5B,IAAIquL,WAAAA,CAAc,IAAIt3L,YAAAA,CAAa,CAAA,CAAA,CACnC,IAAIu3L,eAAAA,CAAkB,IAAIzuL,IAAAA,CAAK,CAAA,CAAG,EAAG,CAAA,CAAG,CAAA,CAAA,CACxC,IAAI0uL,cAAAA,CAAiB,IAAIvuL,IAAAA,CACzB,SAASwuL,KAAAA,CAAMz0M,EAAE,CAAE00M,KAAK,CAAA,CACvB,OAAO1xM,IAAAA,CAAK2xM,GAAG,CAAC,EAAE30M,EAAAA,CAAKA,EAAC,GAAM,CAAA,CAAI00M,KAAAA,CAAQA,KAAI,EAC/C,CACA,SAASE,YAAAA,CAAaC,UAAU,EAC/B,MAAMH,KAAAA,CAAQ,CAACG,UAAAA,CAAa,CAAA,GAAM,CAAA,CAAI,CAAA,EACtC,MAAMC,SAAAA,CAAY,CAACD,WAAa,CAAA,EAAK,EAAA,CACrC,MAAM3oM,OAAS,IAAIzJ,KAAAA,CAAMoyM,YACzB,IAAI3kH,GAAAA,CAAM,EACV,IAAK,IAAIzsF,EAAAA,CAAK,CAAA,CAAGA,GAAKoxM,UAAAA,CAAY,EAAEpxM,EAAAA,CAAI,CACvCyI,MAAM,CAACzI,EAAAA,CAAG,CAAGgxM,KAAAA,CAAMhxM,GAAKqxM,SAAAA,CAAWJ,KAAAA,CAAAA,CACnCxkH,KAAOhkF,MAAM,CAACzI,IAAG,CAElB,IAAK,IAAIA,GAAK,CAAA,CAAGA,EAAAA,CAAKoxM,UAAAA,CAAY,EAAEpxM,GAAI,CACvCyI,MAAM,CAACzI,EAAAA,CAAG,EAAIysF,IACf,CACA,OAAOhkF,MACR,CACA,IAAI6oM,cAAAA,CAAiB,KAAA,CAoBpB,OAAOC,kBAAAA,CAAmBrjK,MAAM,CAAE85G,UAAU,CAAE5wI,IAAI,CAAEg/B,IAAI,CAAE,CACzD,MAAMo2J,SAAAA,CAAY51B,YAAYz3K,MAAM,CAAC+uC,OAAQo3G,iBAAAA,CAAmBluI,IAAAA,CAAMg/B,MACtE,MAAM2xG,UAAAA,CAAatL,cAAAA,CAAe//I,GAAG,CAACsrJ,UAAAA,CAAAA,CACtC,MAAMwpD,KAAAA,CAAQzpD,UAAAA,EAAYnL,KAAO,KAAA,CACjC,MAAM60D,KAAAA,CAAQ1pD,UAAAA,EAAYpL,KAAO,KAAA,CACjC,GAAI60D,MAAO,CACVhF,SAAAA,CAAUvuF,UAAU,CAAG,IAAInpG,KAAAA,CAAM,CAAA,CAAG,EAAG,CAAA,CAAG,CAAA,EAC3C,CAAA,KAAO,CACN03L,UAAUvuF,UAAU,CAAG,IAAInpG,KAAAA,CAAM,EAAG,CAAA,CAAG,CAAA,CAAG,GAC3C,CACA03L,SAAAA,CAAUp8B,gBAAgB,CAAG,IAC7Bo8B,CAAAA,SAAAA,CAAUj8B,kBAAkB,CAAG,KAC/Bi8B,CAAAA,SAAAA,CAAUv8B,gBAAgB,CAAG,CAACwhC,KAAAA,CAC9B,OAAOjF,SACR,CACAkF,0BAAAA,CAA2BnkD,aAAa,CAAE+U,OAAO,CAAED,MAAM,CAAE,CAC1D,MAAM9zG,aAAeg/F,aAAAA,CAActtJ,MAAM,CACzC,IAAK,IAAID,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAKuuD,YAAAA,CAAcvuD,KAAM,CACzC,MAAM4sJ,aAAeW,aAAa,CAACvtJ,GAAG,CACtC,GAAI4sJ,YAAAA,CAAakX,UAAU,CAAE,CAC5B,GAAI,CAAClX,YAAAA,CAAa+V,IAAI,EAAI/V,YAAAA,CAAawV,UAAU,CAACC,QAAS,CAC1DzV,YAAAA,CAAasX,gBAAgB,CAAG,IAAA,CAChC5B,QAAQxhK,IAAI,CAAC8rJ,YAAAA,EACd,CACD,CACD,CACD,CACAogD,iBAAAA,CAAkBX,IAAI,CAAEr1B,KAAK,CAAE1U,OAAO,CAAED,MAAM,CAAEiqC,OAAO,CAAE,CACxD,IAAI,CAAC/4B,QAAQ,CAAC5mB,KAAK,EAAE3jJ,KAAKi8I,aAAAA,CAAe,IAAA,CACzCqd,CAAAA,OAAAA,CAAQriK,MAAM,CAAG,CAAA,CACjB,MAAM0xM,WAAAA,CAAc,IAAI,CAACC,mBAAmB,CAACvF,IAAAA,CAAMr1B,KAAAA,CAAOs1B,SAC1D,IAAK,IAAItsM,EAAAA,CAAK,CAAA,CAAGA,GAAK2xM,WAAAA,CAAY1xM,MAAM,CAAED,EAAAA,EAAAA,CAAM,CAC/C,IAAI,CAAC0xM,0BAA0B,CAACC,WAAW,CAAC3xM,EAAAA,CAAG,CAAEsiK,QAASD,MAAAA,EAC3D,CACAC,QAAQryJ,IAAI,CAAC,IAAI,CAAC4hM,iBAAiB,CACnC,CAAA,IAAI,CAACt+B,QAAQ,CAAC5mB,KAAK,EAAE3jJ,IAAAA,CAAKk8I,eAAgB,IAAA,EAC3C,CACA0sD,oBAAoBvF,IAAI,CAAEr1B,KAAK,CAAEs1B,OAAO,CAAE,CACzC,MAAM7kC,KAAAA,CAAQ,IAAI,CAACqqC,YAAY,CAC/BrqC,KAAAA,CAAMxnK,MAAM,CAAG,EACf,GAAIqsM,OAAAA,CAAS,CACZ7kC,KAAAA,CAAM3mK,IAAI,CAACwrM,OAAAA,EACZ,CAAA,KAAO,CACN,MAAMz4G,OAASw4G,IAAAA,CAAK0F,SAAS,CAC7B,MAAMl6L,IAAMg8E,MAAAA,CAAO5zF,MAAM,CACzB,IAAK,IAAID,EAAAA,CAAK,CAAA,CAAGA,GAAK6X,GAAAA,CAAK7X,EAAAA,EAAAA,CAAM,CAChC,MAAM4yF,KAAAA,CAAQiB,MAAM,CAAC7zF,GAAG,CACxB,GAAI4yF,KAAAA,CAAMo/G,UAAU,CAACjrM,GAAG,CAACiwK,KAAAA,CAAAA,CAAQ,CAChC,GAAI,CAACw5B,OAAAA,CAAQzpM,GAAG,CAAC6rF,KAAAA,CAAAA,CAAQ,CACxB49G,OAAAA,CAAQngM,GAAG,CAACuiF,KAAAA,CAAAA,CACZ60E,MAAM3mK,IAAI,CAAC8xF,KAAAA,CAAMq/G,aAAa,EAC/B,CACD,CACD,CACAzB,OAAAA,CAAQ9nM,KAAK,GACd,CACA,OAAO++J,KACR,CACAylC,sBAAsBb,IAAI,CAAEr1B,KAAK,CAAEs1B,OAAO,CAAE,CAC3C,IAAI,CAAC/4B,QAAQ,CAAC5mB,KAAK,EAAE3jJ,IAAAA,CAAKi8I,cAAe,IAAA,CAAA,CACzC,IAAK,IAAI7uG,IAAAA,CAAO,CAAA,CAAGA,KAAO,CAAA,CAAGA,IAAAA,EAAAA,CAAQ,CACpC,MAAMskI,gBAAkB1D,KAAAA,CAAM2D,aAAa,CAAC,IAAA,CAAMvkI,MAClD,MAAMksH,OAAAA,CAAUoY,eAAAA,CAAgBuyB,cAAc,CAC9C3qC,OAAAA,CAAQriK,MAAM,CAAG,CACjBwwM,CAAAA,UAAU,CAACr6J,IAAAA,CAAK,CAAGksH,OACnBouC,CAAAA,YAAY,CAACt6J,IAAAA,CAAK,CAAGskI,gBAAgBsxB,aACtC,CACA,MAAMkG,SAAWl7B,KAAAA,CAAMvF,KAAK,CAACvhC,WAAW,EAAA,CACxC,MAAMiiE,MAAAA,CAASD,QAAAA,CAASn2L,CAAC,CACzB,MAAMq2L,MAAAA,CAASF,QAAAA,CAASl2L,CAAC,CACzB,MAAMq2L,MAAAA,CAASH,QAAAA,CAASj2L,CAAC,CACzB,MAAMuwL,SAAAA,CAAYkE,YAAY,CAAC,CAAA,CAAE,CACjC,MAAMtrL,IAAAA,CAAOonL,SAAAA,CAAUj7B,QAAQ,CAC/B,MAAMlsJ,GAAAA,CAAMmnL,SAAAA,CAAU77B,OAAO,CAC7B,MAAM2hC,KAAAA,CAAQ/yM,IAAAA,CAAKyjB,GAAG,CAACwpL,UAAU5pL,GAAG,CAAG,GAAM9P,IAAAA,CAAKC,UAAU,EAC5D,MAAMw/L,MAAAA,CAASltL,GAAAA,CAAMitL,KAAAA,CACrB,MAAMX,WAAAA,CAAc,IAAI,CAACC,mBAAmB,CAACvF,IAAAA,CAAMr1B,KAAAA,CAAOs1B,OAAAA,CAAAA,CAC1D,IAAK,IAAIkG,SAAAA,CAAY,CAAA,CAAGA,UAAYb,WAAAA,CAAY1xM,MAAM,CAAEuyM,SAAAA,EAAAA,CAAa,CACpE,MAAMjlD,aAAAA,CAAgBokD,WAAW,CAACa,SAAAA,CAAU,CAC5C,MAAMjkJ,aAAeg/F,aAAAA,CAActtJ,MAAM,CACzC,IAAK,IAAID,EAAAA,CAAK,CAAA,CAAGA,GAAKuuD,YAAAA,CAAcvuD,EAAAA,EAAAA,CAAM,CACzC,MAAM4sJ,YAAAA,CAAeW,aAAa,CAACvtJ,GAAG,CACtC,GAAI,CAAC4sJ,YAAAA,CAAakX,UAAU,CAAE,CAC7B,QACD,CACA,GAAI,CAAClX,YAAAA,CAAa+V,IAAI,EAAI/V,YAAAA,CAAa2V,aAAa,CAAE,CACrD,IAAK,IAAInsH,KAAO,CAAA,CAAGA,IAAAA,CAAO,CAAA,CAAGA,IAAAA,EAAAA,CAAQ,CACpC,GAAI,CAACw2G,YAAAA,CAAa+V,IAAI,EAAI/V,YAAAA,CAAawV,UAAU,CAACsuC,YAAY,CAACt6J,KAAK,CAAA,CAAG,CACtEw2G,YAAAA,CAAasX,gBAAgB,CAAG,IAAA,CAChCusC,UAAU,CAACr6J,IAAAA,CAAK,CAACt1C,IAAI,CAAC8rJ,YAAAA,EACvB,CACD,CACA,QACD,CACA,GAAI,CAACA,YAAAA,CAAa0V,OAAO,CAAE,CAC1B,QACD,CACA,MAAMhxI,OAAAA,CAAUs7H,YAAAA,CAAaQ,IAAI,CAAC9hI,MAAM,CACxC,MAAMK,WAAAA,CAAcihI,YAAAA,CAAa53H,KAAK,CAACrJ,WAAW,CAClD,MAAM9sB,EAAAA,CAAK8sB,WAAAA,CAAY5P,CAAC,CACxB,MAAMuL,EAAAA,CAAKqE,WAAAA,CAAY3P,CAAC,CACxB,MAAMuL,EAAAA,CAAKoE,WAAAA,CAAY1P,CAAC,CACxB,MAAM1f,EAAAA,CAAK+0B,OAAAA,CAAQvV,CAAC,CAAGo2L,MAAAA,CACvB,MAAMx2L,EAAAA,CAAK2V,OAAAA,CAAQtV,CAAC,CAAGo2L,MAAAA,CACvB,MAAMv1L,EAAAA,CAAKyU,QAAQrV,CAAC,CAAGo2L,MAAAA,CACvB,GAAI91M,GAAKg2M,MAAAA,CAAS1zM,EAAAA,EAAMtC,EAAAA,CAAK,CAACg2M,OAAS1zM,EAAAA,EAAM8c,EAAAA,CAAK42L,OAASjrL,EAAAA,EAAM3L,EAAAA,CAAK,CAAC42L,MAAAA,CAASjrL,EAAAA,EAAMzK,EAAAA,CAAK01L,MAAAA,CAAShrL,IAAM1K,EAAAA,CAAK,CAAC01L,MAAAA,CAAShrL,EAAAA,CAAI,CAC5H,QACD,CACA,MAAMkrL,MAAAA,CAASH,MAAQ/1M,EAAAA,CACvB,MAAMm2M,OAASJ,KAAAA,CAAQ32L,EAAAA,CACvB,MAAMg3L,MAAAA,CAASL,KAAAA,CAAQz1L,EAAAA,CACvB,MAAM+1L,MAAQ,EAAEN,KAAAA,CAAQzzM,EAAAA,CAAKyoB,EAAC,CAAA,CAC9B,MAAMurL,KAAAA,CAAQ,EAAEP,KAAAA,CAAQzzM,EAAAA,CAAK0oB,EAAC,CAAA,CAC9B,MAAMurL,MAAQ,EAAER,KAAAA,CAAQhrL,EAAAA,CAAKzoB,EAAC,CAAA,CAC9B,MAAMk0M,KAAAA,CAAQ,EAAET,KAAAA,CAAQhrL,EAAAA,CAAKC,EAAC,CAAA,CAC9B,MAAMyrL,KAAAA,CAAQ,EAAEV,KAAAA,CAAQ/qL,EAAAA,CAAK1oB,EAAC,CAAA,CAC9B,MAAMo0M,KAAAA,CAAQ,EAAEX,KAAAA,CAAQ/qL,EAAAA,CAAKD,EAAC,CAAA,CAC9B,IAAIg7I,OAAAA,CAAU,KAAA,CACd,GAAI/lK,EAAAA,CAAKsC,GAAKumB,IAAAA,EAAQ7oB,EAAAA,CAAKsC,GAAKwmB,GAAAA,EAAOotL,MAAAA,CAAS92L,GAAKi3L,KAAAA,EAASH,MAAAA,CAAS92L,EAAAA,CAAKi3L,KAAAA,EAASH,OAAS51L,EAAAA,CAAKg2L,KAAAA,EAASJ,MAAAA,CAAS51L,EAAAA,CAAKg2L,MAAO,CAChIpC,UAAU,CAAC,CAAA,CAAE,CAAC3vM,IAAI,CAAC8rJ,cACnB0V,OAAAA,CAAU,KACX,CACA,GAAI,CAAC/lK,EAAAA,CAAKsC,EAAAA,CAAKumB,MAAQ,CAAC7oB,EAAAA,CAAKsC,GAAKwmB,GAAAA,EAAO,CAACotL,OAAS92L,EAAAA,CAAKi3L,KAAAA,EAAS,CAACH,MAAAA,CAAS92L,GAAKi3L,KAAAA,EAAS,CAACH,OAAS51L,EAAAA,CAAKg2L,KAAAA,EAAS,CAACJ,MAAAA,CAAS51L,EAAAA,CAAKg2L,KAAAA,CAAO,CACtIpC,UAAU,CAAC,CAAA,CAAE,CAAC3vM,IAAI,CAAC8rJ,YAAAA,CAAAA,CACnB0V,OAAAA,CAAU,KACX,CACA,GAAI3mJ,EAAAA,CAAK2L,EAAAA,CAAKlC,MAAQzJ,EAAAA,CAAK2L,EAAAA,CAAKjC,KAAOqtL,MAAAA,CAASn2M,EAAAA,CAAKu2M,KAAAA,EAASJ,MAAAA,CAASn2M,GAAKu2M,KAAAA,EAASJ,MAAAA,CAAS71L,EAAAA,CAAKk2L,KAAAA,EAASL,OAAS71L,EAAAA,CAAKk2L,KAAAA,CAAO,CAChItC,UAAU,CAAC,CAAA,CAAE,CAAC3vM,IAAI,CAAC8rJ,YAAAA,CAAAA,CACnB0V,QAAU,KACX,CACA,GAAI,CAAC3mJ,GAAK2L,EAAAA,CAAKlC,IAAAA,EAAQ,CAACzJ,EAAAA,CAAK2L,GAAKjC,GAAAA,EAAO,CAACqtL,MAAAA,CAASn2M,EAAAA,CAAKu2M,OAAS,CAACJ,MAAAA,CAASn2M,GAAKu2M,KAAAA,EAAS,CAACJ,OAAS71L,EAAAA,CAAKk2L,KAAAA,EAAS,CAACL,MAAAA,CAAS71L,GAAKk2L,KAAAA,CAAO,CACtItC,UAAU,CAAC,EAAE,CAAC3vM,IAAI,CAAC8rJ,YAAAA,CAAAA,CACnB0V,QAAU,KACX,CACA,GAAIzlJ,EAAAA,CAAK0K,EAAAA,CAAKnC,MAAQvI,EAAAA,CAAK0K,EAAAA,CAAKlC,GAAAA,EAAOstL,MAAAA,CAASp2M,GAAKy2M,KAAAA,EAASL,MAAAA,CAASp2M,EAAAA,CAAKy2M,KAAAA,EAASL,OAASh3L,EAAAA,CAAKs3L,KAAAA,EAASN,MAAAA,CAASh3L,EAAAA,CAAKs3L,MAAO,CAChIxC,UAAU,CAAC,CAAA,CAAE,CAAC3vM,IAAI,CAAC8rJ,YAAAA,CAAAA,CACnB0V,OAAAA,CAAU,KACX,CACA,GAAI,CAACzlJ,EAAAA,CAAK0K,EAAAA,CAAKnC,MAAQ,CAACvI,EAAAA,CAAK0K,EAAAA,CAAKlC,GAAAA,EAAO,CAACstL,MAAAA,CAASp2M,EAAAA,CAAKy2M,OAAS,CAACL,MAAAA,CAASp2M,GAAKy2M,KAAAA,EAAS,CAACL,MAAAA,CAASh3L,EAAAA,CAAKs3L,OAAS,CAACN,MAAAA,CAASh3L,EAAAA,CAAKs3L,KAAAA,CAAO,CACtIxC,UAAU,CAAC,CAAA,CAAE,CAAC3vM,IAAI,CAAC8rJ,YAAAA,CAAAA,CACnB0V,QAAU,KACX,CACA,GAAIA,OAAAA,CAAS,CACZ1V,YAAAA,CAAasX,gBAAgB,CAAG,KACjC,CACD,CACD,CACA,IAAK,IAAI9tH,IAAAA,CAAO,CAAA,CAAGA,IAAAA,CAAO,CAAA,CAAGA,OAAQ,CACpCq6J,UAAU,CAACr6J,IAAAA,CAAK,CAACnmC,IAAI,CAAC,IAAI,CAAC4hM,iBAAiB,CAC5CpB,CAAAA,UAAU,CAACr6J,IAAAA,CAAK,CAAG,IACnBs6J,CAAAA,YAAY,CAACt6J,KAAK,CAAG,KACtB,CACA,IAAI,CAACm9H,QAAQ,CAAC5mB,KAAK,EAAE3jJ,IAAAA,CAAKk8I,eAAgB,IAAA,EAC3C,CACA2sD,iBAAAA,CAAkBqB,SAAS,CAAEC,SAAS,CAAE,CACvC,MAAMC,KAAOF,SAAAA,CAAU3uC,cAAc,CACrC,MAAM8uC,IAAAA,CAAOF,UAAU5uC,cAAc,CACrC,GAAI6uC,IAAAA,GAASC,KAAM,CAClB,OAAOF,SAAAA,CAAUthD,IAAI,CAAC1lH,EAAE,CAAG+mK,SAAAA,CAAUrhD,IAAI,CAAC1lH,EAC3C,CACA,OAAOknK,IAAAA,CAAOD,IACf,CACAE,gBAAAA,CAAiBplK,MAAM,CAAE8oI,KAAK,CAAE,CAC/B,MAAMu1B,WAAAA,CAAc,IAAI,CAACh5B,QAAQ,CAAC5mB,KAAK,CAACs7B,wBAAwB,CAChE,MAAMsrB,gBAAAA,CAAmBhH,WAAAA,CAAcv1B,MAAMw8B,MAAM,CAElDx8B,KAAAA,CAAMw8B,MAAM,EAAIx8B,KAAAA,CAAMn9J,KAAK,GAAKghI,cAAAA,CAEjC3sG,OAAOie,aAAa,CAAConJ,gBAAAA,CAAmB,IAAI,CAACE,iBAAiB,CAAG,IAAI,CAACC,eAAe,EACrFxlK,MAAAA,CAAO6e,aAAa,CAACiqH,KAAAA,CAAM28B,gBAAgB,CAAA,CAC3CzlK,MAAAA,CAAOif,eAAe,CAAC,KAAM,IAAA,EAC9B,CACAymJ,gBAAAA,CAAiB58B,KAAK,CAAEw1B,SAAS,CAAE9xB,eAAe,CAAEtkI,IAAI,CAAE,CACzD,MAAMq2J,aAAAA,CAAgBD,SAAAA,CAAU/6B,KAAK,CACrC,GAAIuF,KAAAA,CAAMn9J,KAAK,GAAK+gI,qBAAAA,CAAuB,CAC1C,IAAI,CAAC24B,QAAQ,CAACsgC,eAAe,CAACpH,aAAAA,CAAcv8D,WAAW,IACvD,IAAI,CAAC4jE,sBAAsB,CAACpyJ,QAAQ,CAACs1H,KAAAA,CAAMgE,cAAc,EAC1D,CACA21B,eAAe9pL,MAAM,CAAC4lL,aAAAA,CAAcv8D,WAAW,GAAIu8D,aAAAA,CAAc5xC,WAAW,GAAIh/I,IAAAA,CAAKqC,GAAG,EAAE+H,MAAM,EAAA,CAChG2qL,iBAAAA,CAAkBrzL,IAAI,CAACivL,SAAAA,CAAU36B,gBAAgB,CAAE8+B,cAAAA,CAAAA,CACnD,MAAMr5B,YAAAA,CAAeoD,eAAAA,CAAgBkwB,cACrC4B,CAAAA,SAAAA,CAAUv1J,IAAI,CAAGqgI,YACjBk1B,CAAAA,UAAUjgD,WAAW,CAAGmuB,eAAAA,CAAgBmwB,aAAa,CACrDkG,cAAAA,CAAenrL,WAAW,CAAC0xJ,YAAAA,CAAav7J,CAAC,CAAEu7J,YAAAA,CAAat7J,CAAC,CAAEs7J,aAAar7J,CAAC,CAAEq7J,aAAa53J,CAAC,CAAA,CACzFg7J,gBAAgBE,YAAY,CAACr9J,IAAI,CAACwzL,eAAgBH,iBAAAA,CAAAA,CAClD,GAAI55B,KAAAA,CAAMn9J,KAAK,GAAK+gI,qBAAAA,CAAuB,CAC1Co8B,KAAAA,CAAM+8B,oBAAoB,CAACptM,GAAG,CAAC+zK,gBAAgBE,YAAY,CAACj8J,IAAI,CAAEy3B,IAAAA,CAAO,EAAA,EAC1E,CACD,CACA49J,aAAAA,CAAch9B,KAAK,CAAE,CACpB,MAAMlvB,SAAAA,CAAYkvB,KAAAA,CAAMn9J,KAAK,CAC7B,MAAMmuI,UAAAA,CAAagvB,KAAAA,CAAM6R,WAAW,CACpC,IAAIorB,eAAiB,IAAI,CAACC,eAAe,CAACpsD,UAAU,GAAGE,UAAAA,CAAW,CAClE,GAAI,CAACisD,cAAAA,CAAgB,CACpB,MAAME,eAAiB,CAAC,WAAW,EAAErsD,SAAAA,CAAU,CAAC,EAAEE,UAAAA,CAAW,CAAC,CAC9DisD,cAAAA,CAAiB9rD,WAAWzrJ,GAAG,CAAC,IAAI,CAACwxC,MAAM,CAAA,CAAE0Y,QAAQ,CAACutJ,cAAAA,CAAgB,CACrEtsD,QAAAA,CAAU,IAAA,CACVC,UACAE,UACD,CAAA,CAAA,CACA,GAAI,CAAC,IAAI,CAACksD,eAAe,CAACpsD,SAAAA,CAAU,CAAE,CACrC,IAAI,CAACosD,eAAe,CAACpsD,SAAAA,CAAU,CAAG,GAAE,CAErC,IAAI,CAACosD,eAAe,CAACpsD,SAAAA,CAAU,CAACE,UAAAA,CAAW,CAAGisD,eAC/C,CACA,OAAOA,eAAe5uM,KACvB,CACA+uM,aAAAA,CAAcnH,cAAc,CAAEj2B,KAAK,CAAE3U,MAAM,CAAE,CAC5C,MAAMn0H,MAAAA,CAAS,IAAI,CAACA,MAAM,CAC1B,MAAMqlI,SAAW,IAAI,CAACA,QAAQ,CAC9B,MAAM5mB,KAAAA,CAAQ4mB,QAAAA,CAAS5mB,KAAK,CAC5B,MAAM4/B,UAAAA,CAAa,IAAI,CAACynB,aAAa,CAACh9B,OACtC,MAAMpsB,kBAAAA,CAAqByX,MAAAA,CAAOsT,YAAY,CAC9C,MAAM0+B,UAAAA,CAAahyC,MAAAA,CAAOj4G,YAAY,CAAC1U,KAAK,CAAG,EAAC,CAAI,EACpD,MAAM7F,KAAAA,CAAQo9J,eAAehtM,MAAM,CACnC,IAAK,IAAID,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAK6vC,MAAO7vC,EAAAA,EAAAA,CAAM,CAClC,MAAM4sJ,YAAAA,CAAeqgD,cAAc,CAACjtM,EAAAA,CAAG,CACvC,MAAM6xJ,KAAOjF,YAAAA,CAAaiF,IAAI,CAC9B,MAAMiQ,cAAAA,CAAiBlV,aAAakV,cAAc,CAClD,GAAIA,cAAAA,EAAkBA,eAAejyH,KAAK,EAAI,CAAA,EAAK,CAAC+8G,aAAaqW,eAAe,CAACZ,MAAAA,CAAAA,CAAS,CACzF,QACD,CACAzV,YAAAA,CAAayW,cAAc,CAACn1H,MAAAA,CAAAA,CAC5B,MAAMy8G,QAAAA,CAAWiC,YAAAA,CAAajC,QAAQ,CACtC4oB,SAAS+gC,gBAAgB,CAACpmK,MAAAA,CAAQy8G,QAAAA,CAAAA,CAClC4oB,SAASghC,WAAW,CAACrmK,MAAAA,CAAQ0+G,YAAAA,CAAAA,CAC7BjC,SAASyqC,gBAAgB,CAAClnJ,OAAQy+G,KAAAA,CAAAA,CAClC4mB,QAAAA,CAASihC,yBAAyB,CAAC,IAAA,CAAMH,UAAAA,CAAYznD,YAAAA,CAAAA,CACrDjC,SAAS8Y,aAAa,CAACv1H,MAAAA,CAAAA,CACvB0+G,YAAAA,CAAa6W,aAAa,CAACv1H,MAAAA,CAAAA,CAC3B,MAAM2xH,cAAAA,CAAiBjT,aAAakT,iBAAiB,CAACysB,WAAY,CAAA,CAAG5/B,KAAAA,CAAO/B,mBAAoB,IAAI,CAAC1D,iBAAiB,CAAA,CACtH,MAAMutD,YAAAA,CAAe50C,cAAAA,CAAer2G,MAAM,CAC1C,GAAIirJ,YAAAA,CAAatqI,MAAM,CAAE,SACzByiF,YAAAA,CAAa2X,cAAc,CAAGkwC,YAAAA,CAAatoK,EAAE,CAC7C+B,MAAAA,CAAOk7C,SAAS,CAACqrH,YAAAA,CAAAA,CACjBlhC,SAASmhC,gBAAgB,CAACxmK,OAAQ2jH,IAAAA,CAAAA,CAClC0hB,QAAAA,CAASohC,WAAW,CAACzmK,MAAAA,CAAQ0+G,YAAAA,CAAayU,aAAa,EACvD,GAAIS,cAAAA,CAAgB,CACnB5zH,MAAAA,CAAOyf,eAAe,CAACm0G,cAAAA,CAAel0G,YAAY,EACnD,CACA2lH,SAASqhC,uBAAuB,CAAChoD,YAAAA,CAAAA,CACjC2mB,QAAAA,CAASshC,uBAAuB,CAACh1C,cAAAA,CAAAA,CACjC,MAAMi1C,KAAAA,CAAQloD,aAAamJ,WAAW,CACtC,MAAMsO,YAAAA,CAAezX,YAAAA,CAAaqW,eAAe,CAACZ,MAAAA,CAAAA,CAClDn0H,MAAAA,CAAOmgB,IAAI,CAACwjG,IAAAA,CAAK7yF,SAAS,CAAC81I,KAAAA,CAAM,CAAEjjD,IAAAA,CAAKzxG,WAAW,CAAC00J,KAAAA,CAAM,CAAEhzC,cAAAA,EAAgBjyH,KAAAA,CAAOw0H,aACnFkP,CAAAA,QAAAA,CAASwhC,gBAAgB,EAAA,CACzB,GAAIjzC,cAAAA,CAAgB,CACnByR,SAASyhC,mBAAmB,GAC7B,CACD,CACD,CAKA3H,oBAAAA,CAAqBr2B,KAAK,CAAE,CAC3B,OAAOA,KAAAA,CAAMnwK,OAAO,EAAImwK,KAAAA,CAAMuD,WAAW,EAAIvD,KAAAA,CAAMi+B,gBAAgB,GAAK3zD,iBAAAA,EAAqB01B,MAAM9S,gBACpG,CACAgxC,kBAAAA,CAAmBl+B,KAAK,CAAE3U,MAAM,CAAEjsH,IAAI,CAAE,CACvC,OAAO4gI,MAAM2D,aAAa,CAAC3D,MAAMn9J,KAAK,GAAK+gI,qBAAAA,CAAwBynB,MAAAA,CAAS,KAAMjsH,IAAAA,CACnF,CACA81J,eAAAA,CAAgBp8I,UAAU,CAAEk8I,YAAY,CAAEmJ,iBAAiB,CAAE,CAC5D,MAAMjyI,EAAAA,CAAK8oI,aAAa5hJ,YAAY,CACpC0F,WAAW1B,IAAI,CAAC8U,EAAAA,CAChBpT,CAAAA,WAAWqT,eAAe,CAAChB,eAAe,CAAG,CAC7CrS,CAAAA,UAAAA,CAAWqT,eAAe,CAACd,UAAU,CAAG8yI,iBAAAA,CACxC,GAAIjyI,EAAAA,CAAG7M,WAAW,CAAE,CACnBvG,UAAAA,CAAWqT,eAAe,CAACZ,UAAU,CAAG,KACzC,CAAA,KAAO,CACNzS,WAAW6S,QAAQ,CAACb,UAAU,CAAC/iE,IAAI,CAACitM,YAAAA,CAAa/tF,UAAU,CAC3DnuD,CAAAA,WAAW6S,QAAQ,CAACj6D,KAAK,CAAGysM,iBAC5BrlJ,CAAAA,UAAAA,CAAWqT,eAAe,CAACZ,UAAU,CAAG,MACzC,CACAzS,UAAAA,CAAW4R,gBAAgB,CAAG,MAC/B,CAEAuqI,YAAYj1B,KAAK,CAAE3U,MAAM,CAAEjsH,IAAI,CAAE,CAChC,MAAMh/B,IAAAA,CAAO4/J,KAAAA,CAAMn9J,KAAK,CACxB,MAAM6gK,eAAAA,CAAkB,IAAI,CAACw6B,kBAAkB,CAACl+B,KAAAA,CAAO3U,MAAAA,CAAQjsH,MAC/D,MAAMo2J,SAAAA,CAAY9xB,gBAAgBsxB,YAAY,CAC9C,MAAMoJ,iBAAAA,CAAoBh+L,OAASwjI,qBAAAA,CAAwB,CAAA,CAAIxkG,IAC/Do2J,CAAAA,UAAUpiJ,YAAY,CAAG4sH,KAAAA,CAAMo0B,UAAU,CAACpE,aAAa,CAACoO,kBAAkB,CAC1E,OAAO5I,SACR,CACAX,UAAAA,CAAW70B,KAAK,CAAE3U,MAAM,CAAEjsH,IAAI,CAAE1tC,KAAK,CAAE,CACtC,MAAMwlC,MAAAA,CAAS,IAAI,CAACA,MAAM,CAC1B,MAAMwsI,eAAAA,CAAkB,IAAI,CAACw6B,kBAAkB,CAACl+B,KAAAA,CAAO3U,MAAAA,CAAQjsH,MAC/D,MAAMo2J,SAAAA,CAAY9xB,eAAAA,CAAgBsxB,YAAY,CAC9C,IAAI,CAAC4H,gBAAgB,CAAC58B,MAAOw1B,SAAAA,CAAW9xB,eAAAA,CAAiBtkI,MACzD,MAAM8sB,EAAAA,CAAKspI,UAAUpiJ,YAAY,CACjC,MAAMmpH,QAAAA,CAAW,IAAI,CAACA,QAAQ,CAC9BA,QAAAA,CAAS8hC,iBAAiB,CAAC7I,SAAAA,CAAWtpI,EAAAA,CAAAA,CACtCqwG,QAAAA,CAAS+hC,uBAAuB,CAAC,IAAI,CAACpuD,iBAAiB,CAAE,MACzDqsB,QAAAA,CAASgiC,aAAa,CAAC/I,SAAAA,CAAWtpI,IAClC,GAAIx6D,KAAAA,CAAO,CACV6qK,QAAAA,CAAS7qK,KAAK,CAAC8jM,SAAAA,EAChB,CACA,IAAI,CAAC8G,gBAAgB,CAACplK,OAAQ8oI,KAAAA,CAAAA,CAC9B,IAAI,CAACo9B,aAAa,CAAC15B,eAAAA,CAAgBuyB,cAAc,CAAEj2B,KAAAA,CAAOw1B,SAAAA,EAC3D,CACAT,SAAAA,CAAU/0B,KAAK,CAAE3U,MAAM,CAAE,CACxB,GAAI2U,KAAAA,CAAMoS,MAAM,EAAIpS,KAAAA,CAAMw+B,YAAY,CAAG,CAAA,CAAG,CAC3C,MAAMjJ,WAAAA,CAAc,IAAI,CAACh5B,QAAQ,CAAC5mB,KAAK,CAACs7B,wBAAwB,CAChE,GAAI,CAACskB,WAAAA,EAAev1B,MAAMn9J,KAAK,GAAK+gI,sBAAuB,CAC1D,IAAI,CAAC66D,YAAY,CAACz+B,KAAAA,CAAO3U,MAAAA,EAC1B,CACD,CACD,CACAqzC,gBAAAA,CAAiBC,QAAQ,CAAE7I,UAAU,CAAE,CACtC,MAAMx0J,MAAQ,IAAI,CAACs9J,aAAa,CAChC,IAAIC,WAAav9J,KAAK,CAACq9J,QAAAA,CAAS,CAAC7I,WAAW,CAC5C,GAAI,CAAC+I,UAAAA,CAAY,CAChB,IAAI,CAACC,cAAc,CAAChJ,WAAW,CAAGqE,YAAAA,CAAarE,YAC/C,MAAM3uH,OAAAA,CAA0B,IAAI/1E,GAAAA,CACpC+1E,OAAAA,CAAQx3E,GAAG,CAAC,YAAammM,UAAAA,CAAAA,CACzB,GAAI6I,QAAAA,GAAa,CAAA,CAAGx3H,QAAQx3E,GAAG,CAAC,OAAA,CAAS,EAAA,CAAA,CACzCkvM,WAAahsD,WAAAA,CAAY9mD,YAAY,CAAC,IAAI,CAAC70D,MAAM,CAAE,CAClD+7G,UAAAA,CAAY,CAAC,OAAO,EAAE0rD,QAAAA,CAAS,EAAE7I,UAAAA,CAAW,CAAC,CAC7C7xI,UAAAA,CAAY,CAAE4nB,eAAAA,CAAiB/gD,iBAAkB,CAAA,CACjDqoH,WAAAA,CAAa,mBACbE,aAAAA,CAAe,WAAA,CACfplE,gBAAiB9G,OAClB,CAAA,CACA7lC,CAAAA,KAAK,CAACq9J,QAAAA,CAAS,CAAC7I,UAAAA,CAAW,CAAG+I,WAC/B,CACA,OAAOA,UACR,CACAJ,aAAaz+B,KAAK,CAAE3U,MAAM,CAAE,CAC3B,MAAMn0H,MAAAA,CAAS,IAAI,CAACA,MAAM,CAC1BA,MAAAA,CAAOie,aAAa,CAAC9P,UAAAA,CAAWkC,OAAO,CAAA,CACvC,MAAMm8H,eAAAA,CAAkB1D,KAAAA,CAAM2D,aAAa,CAAC3D,KAAAA,CAAMn9J,KAAK,GAAK+gI,qBAAAA,CAAwBynB,OAAS,IAAA,CAAM,CAAA,CAAA,CACnG,MAAMmqC,SAAAA,CAAY9xB,gBAAgBsxB,YAAY,CAC9C,MAAM+J,aAAAA,CAAgBvJ,UAAUpiJ,YAAY,CAC5C,MAAM4rJ,aAAAA,CAAgB,IAAI,CAACziC,QAAQ,CAAC0iC,cAAc,CAACv5M,GAAG,CAACwxC,MAAAA,CAAQ8oI,KAAAA,CAAAA,CAC/D,MAAMk/B,OAASF,aAAAA,CAAchP,aAAa,CAAC,CAAA,CAAE,CAC7C,MAAM2O,QAAAA,CAAW3+B,KAAAA,CAAMm/B,WAAW,CAClC,MAAMrJ,UAAAA,CAAa91B,KAAAA,CAAMw+B,YAAY,CACrC,MAAMK,WAAa,IAAI,CAACH,gBAAgB,CAACC,SAAU7I,UAAAA,CACnDgE,CAAAA,eAAAA,CAAgB70L,CAAC,CAAG+6J,KAAAA,CAAMkwB,iBAAiB,CAAG,CAC9C4J,CAAAA,eAAAA,CAAgBpxL,CAAC,CAAGoxL,eAAAA,CAAgB70L,CAAC,CACrC,IAAI,CAACm6L,QAAQ,CAAC10J,QAAQ,CAACq0J,aAAAA,CAAc/gJ,WAAW,CAChD67I,CAAAA,WAAW,CAAC,CAAA,CAAE,CAAG,EAAI75B,KAAAA,CAAMkwB,iBAAiB,CAC5C2J,WAAW,CAAC,CAAA,CAAE,CAAG,CAAA,CACjB,IAAI,CAACwF,aAAa,CAAC30J,QAAQ,CAACmvJ,aAC5B,GAAI8E,QAAAA,GAAav4D,aAAAA,CAAe,IAAI,CAACk5D,QAAQ,CAAC50J,QAAQ,CAAC,IAAI,CAACo0J,cAAc,CAAChJ,UAAAA,CAAW,CAAA,CACtFrgD,mBAAmBv+G,MAAAA,CAAQgoK,MAAAA,CAAQL,UAAAA,CAAY,IAAA,CAAM/E,iBACrD,IAAI,CAACsF,QAAQ,CAAC10J,QAAQ,CAACw0J,MAAAA,CAAOlhJ,WAAW,CACzC67I,CAAAA,WAAW,CAAC,CAAA,CAAE,CAAGA,WAAW,CAAC,CAAA,CAC7BA,CAAAA,WAAW,CAAC,CAAA,CAAE,CAAG,CAAA,CACjB,IAAI,CAACwF,aAAa,CAAC30J,QAAQ,CAACmvJ,WAAAA,CAAAA,CAC5BpkD,mBAAmBv+G,MAAAA,CAAQ6nK,aAAAA,CAAeF,UAAAA,CAAY,IAAA,CAAM/E,iBAC5D,IAAI,CAACv9B,QAAQ,CAAC0iC,cAAc,CAAC5lM,GAAG,CAAC2mK,KAAAA,CAAOg/B,eACzC,CACAO,qBAAAA,EAAwB,CACvB,GAAI,CAAC,IAAI,CAACrvD,iBAAiB,CAAE,CAC5B,IAAI,CAACA,iBAAiB,CAAG,IAAI/+E,oBAAoB,IAAI,CAACj6B,MAAM,CAAE,CAC7D,IAAI05B,aAAAA,CAAc,wBAAyBngC,gBAAAA,CAAAA,CAC3C,EACF,CACD,CACAy5B,WAAAA,EAAc,CACb,IAAI,CAACq1I,qBAAqB,GAC3B,CA3XA,WAAA,CAAYhjC,QAAQ,CAAEq5B,iBAAiB,CAAE,CAFzCsH,gBAAAA,CAAAA,IAAAA,CAAAA,kBAAkB,EAAE,CAAA,CACpBpC,sBAAAA,cAAAA,CAAe,EAAE,CAEhB,CAAA,IAAI,CAAC5jK,MAAM,CAAGqlI,QAAAA,CAASrlI,MAAM,CAC7B,IAAI,CAACqlI,QAAQ,CAAGA,QAChB,CAAA,IAAI,CAACq5B,iBAAiB,CAAGA,iBAAAA,CACzB,MAAMnlM,KAAAA,CAAQ,IAAI,CAACymC,MAAM,CAACzmC,KAC1B,CAAA,IAAI,CAAC2uM,QAAQ,CAAG3uM,KAAAA,CAAM6mC,OAAO,CAAC,QAAA,CAC9B,CAAA,IAAI,CAAC+nK,aAAa,CAAG5uM,KAAAA,CAAM6mC,OAAO,CAAC,aAAA,CACnC,CAAA,IAAI,CAACgoK,QAAQ,CAAG7uM,MAAM6mC,OAAO,CAAC,WAAA,CAC9B,CAAA,IAAI,CAACsnK,aAAa,CAAG,CAAC,GAAI,EAAC,CAAE,CAC7B,IAAI,CAACE,cAAc,CAAG,EACtB,CAAA,IAAI,CAAChC,sBAAsB,CAAGrsM,KAAAA,CAAM6mC,OAAO,CAAC,cAAA,CAC5C,CAAA,IAAI,CAAC44G,iBAAiB,CAAG,IACzB,CAAA,IAAI,CAACwsD,eAAe,CAAG,IAAIr3J,UAC3B,CAAA,IAAI,CAACo3J,iBAAiB,CAAG,IAAIp3J,WAC7B,IAAI,CAACo3J,iBAAiB,CAAC12J,aAAa,CAAC,KAAA,CAAO,MAAO,KAAA,CAAO,KAAA,EAC3D,CA6WD,CAAA,CAEA,IAAIy5J,kBAAAA,CAAqB,cAAc31I,SAAAA,CAMtCw6F,QAAAA,CAASvQ,IAAI,CAAE,CACd,IAAI,CAAC4M,QAAQ,CAAC52J,IAAI,CAACgqJ,IAAAA,EACpB,CACAxpF,QAAS,CACR,GAAI,CAAC,IAAI,CAACz6D,OAAO,CAAE,OACnB,MAAMqnC,OAAS,IAAI,CAACA,MAAM,CAC1B,MAAMuoK,KAAOvoK,MAAAA,CAAO4jD,WAAW,CAC/B,MAAM4kH,SAAWD,IAAAA,EAAMx2M,MAAAA,EAAU,EACjC,MAAMy3J,QAAAA,CAAW,IAAI,CAACA,QAAQ,CAC9B,MAAMi/C,WAAaj/C,QAAAA,CAASz3J,MAAM,CAClC,GAAIy2M,QAAAA,GAAa,EAAG,CACnB,IAAK,IAAIr3M,EAAAA,CAAK,EAAGA,EAAAA,CAAKs3M,UAAAA,CAAYt3M,EAAAA,EAAAA,CAAM,CACvCq4J,QAAQ,CAACr4J,EAAAA,CAAG,CAACiiE,MAAM,GACpB,CACA,MACD,CACA,MAAMs1I,cAAAA,CAAiB1oK,OAAOsjB,UAAU,EAAElkB,IAAAA,CAC1C,MAAMupK,oBAAsB3oK,MAAAA,CAAOm3B,cAAc,CACjD,MAAMyxI,kBAAoBF,cAAAA,EAAgBhyI,oBAAAA,EAAwB,IAAA,CAClE,MAAMmyI,gBAAkBH,cAAAA,EAAgBj5I,gBAAAA,GAAmB,CAAA,CAAE,EAAEp4D,QAAU,IAAA,CACzE,IAAK,IAAI9F,EAAAA,CAAK,EAAGA,EAAAA,CAAKi3M,QAAAA,CAAUj3M,EAAAA,EAAAA,CAAM,CACrC,MAAMoe,GAAAA,CAAM44L,IAAI,CAACh3M,EAAAA,CAAG,CACpByuC,MAAAA,CAAOgoD,kBAAkB,CAAGz2F,EAC5ByuC,CAAAA,MAAAA,CAAOm3B,cAAc,CAAGxnD,GAAAA,CAAIo0E,YAAY,CACxC/jD,MAAAA,CAAOi3B,4BAA4B,CAAGtnD,GAAAA,CAAIq0E,cAAc,CACxD0kH,cAAAA,EAAgB9xI,qBAAqBjnD,GAAAA,CAAIo0E,YAAY,CAAEp0E,GAAAA,CAAImnD,UAAU,EACrE,IAAK,IAAI3lE,EAAAA,CAAK,CAAA,CAAGA,GAAKs3M,UAAAA,CAAYt3M,EAAAA,EAAAA,CAAM,CACvCq4J,QAAQ,CAACr4J,EAAAA,CAAG,CAACiiE,MAAM,GACpB,CACD,CACApzB,MAAAA,CAAOgoD,kBAAkB,CAAG,EAC5BhoD,CAAAA,MAAAA,CAAOi3B,4BAA4B,CAAG,IACtCj3B,CAAAA,MAAAA,CAAOm3B,cAAc,CAAGwxI,qBAAuB,IAAA,CAC/C,GAAID,cAAAA,EAAkBE,iBAAAA,EAAqBC,iBAAmBH,cAAAA,CAAehyI,oBAAoB,GAAKkyI,iBAAAA,CAAmB,CACxHF,eAAe9xI,kBAAkB,CAACgyI,iBAAAA,CAAmBC,eAAAA,EACtD,CACD,CAxCA,WAAA,CAAYjpK,cAAc,CAAE,CAC3B,KAAK,CAACA,cAAAA,CAAAA,CAFP4pH,gBAAAA,CAAAA,IAAAA,CAAAA,WAAW,EAAE,CAGZ,CAAA,IAAI,CAAC50J,IAAI,CAAG,qBACb,CAsCD,CAAA,CAEA,IAAIk0M,gBAAAA,CAAmB,EAAE,CACzB,IAAIC,sBAAAA,CAAyB,MAO5B5pK,OAAAA,EAAU,CACT,GAAI,IAAI,CAAC6pK,MAAM,CAAE,CAChB,IAAI,CAACA,MAAM,CAAC7pK,OAAO,EACnB,CAAA,IAAI,CAAC6pK,MAAM,CAAG,KACf,CACA,IAAI,CAACC,UAAU,CAACzqM,OAAO,CAAE0qM,UACxBA,OAAAA,CAAQ/pK,OAAO,GAChB,CAAA,CACA,CAAA,IAAI,CAAC8pK,UAAU,CAACl3M,MAAM,CAAG,CAAA,CACzB,IAAI,CAACo3M,SAAS,CAAC3uM,KAAK,GACrB,CACA,IAAImnC,OAAQ,CACX,OAAO,IAAI,CAACsnK,UAAU,CAACl3M,MAAM,CAG9B,IAAIqlM,KAAAA,EAAQ,CACX,GAAI,CAAC,IAAI,CAAC4R,MAAM,CAAE,CACjB,MAAM5R,MAAQ,IAAInpB,aAAAA,CAAc,IAAI,CAACjuI,MAAM,CAC3Co3J,CAAAA,MAAMxiM,IAAI,CAAG,cAAA,CACbwiM,KAAAA,CAAMzrJ,MAAM,CAAC,EAAE,CACf,CAAA,IAAI,CAACq9J,MAAM,CAAG5R,MACf,CACA,OAAO,IAAI,CAAC4R,MACb,CACAI,sBAAAA,CAAuBxnJ,UAAU,CAAE,CAClC,MAAMynJ,gBAAAA,CAAmBznJ,UAAAA,CAAWynJ,gBAAgB,CACpD,GAAI,CAACA,gBAAAA,CAAkB,CACtB,MACD,CACA,MAAM1nK,KAAAA,CAAQ0nK,gBAAAA,CAAiBt3M,MAAM,CACrC,IAAK,IAAID,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAK6vC,MAAO7vC,EAAAA,EAAAA,CAAM,CAClC,MAAMwZ,IAAAA,CAAO+9L,gBAAgB,CAACv3M,EAAAA,CAAG,CACjCwZ,IAAAA,CAAKg+L,aAAa,CAAG,IAAA,CACrB,MAAM5kH,KAAAA,CAAQp5E,KAAKo5E,KAAK,CACxB,GAAIA,KAAAA,CAAM6kH,kBAAkB,EAAI7kH,KAAAA,CAAM26D,aAAa,CAACttJ,MAAM,CAAE,CAC3D,MAAM6iD,IAAAA,CAAO8vC,KAAAA,CAAM8kH,cAAc,EAAA,CACjC,MAAMC,YAAAA,CAAe,IAAI,CAACN,SAAS,CAAC36M,GAAG,CAAComD,IAAAA,CAAAA,CACxC,IAAIu7H,QAAAA,CAAWs5B,YAAAA,EAAcH,aAAAA,CAC7B,GAAI,CAACn5B,QAAAA,CAAU,CACdA,SAAW24B,gBAAAA,CAAiB11M,GAAG,IAAM,IAAI66K,aAAAA,CAAc,IAAI,CAACjuI,MAAM,CAAA,CAClE,IAAI,CAACipK,UAAU,CAACr2M,IAAI,CAACu9K,QAAAA,CAAAA,CACrB,IAAI,CAACg5B,SAAS,CAAC1wM,GAAG,CAACm8C,IAAAA,CAAMtpC,MAC1B,CACAA,IAAAA,CAAKg+L,aAAa,CAAGn5B,SACtB,CACA,GAAI,CAAC7kK,IAAAA,CAAKg+L,aAAa,CAAE,CACxBh+L,IAAAA,CAAKg+L,aAAa,CAAG,IAAI,CAAClS,MAAK,CAEjC,CACD,CAEA/5D,MAAAA,CAAOqsE,YAAY,CAAE,CACpBZ,gBAAAA,CAAiBl2M,IAAI,CAAA,GAAI,IAAI,CAACq2M,UAAU,CACxC,CAAA,IAAI,CAACA,UAAU,CAACl3M,MAAM,CAAG,CAAA,CACzB,IAAI,CAACo3M,SAAS,CAAC3uM,KAAK,GACpB,MAAMmvM,SAAAA,CAAYD,YAAAA,CAAa33M,MAAM,CACrC,IAAK,IAAI+zB,CAAAA,CAAI,CAAA,CAAGA,EAAI6jL,SAAAA,CAAW7jL,CAAAA,EAAAA,CAAK,CACnC,MAAM82H,IAAAA,CAAO8sD,YAAY,CAAC5jL,CAAAA,CAAE,CAC5B,GAAI82H,gBAAgB0rD,kBAAAA,CAAoB,CACvC,MAAM9+C,QAAAA,CAAW5M,KAAK4M,QAAQ,CAC9B,IAAK,IAAIr4J,GAAK,CAAA,CAAGA,EAAAA,CAAKq4J,SAASz3J,MAAM,CAAEZ,KAAM,CAC5C,IAAI,CAACi4M,sBAAsB,CAAC5/C,QAAQ,CAACr4J,EAAAA,CAAG,EACzC,CACD,CAAA,KAAO,CACN,IAAI,CAACi4M,sBAAsB,CAACxsD,IAAAA,EAC7B,CACD,CACAksD,gBAAAA,CAAiBtqM,OAAO,CAAE3C,IAAAA,EAASA,IAAAA,CAAKsjC,OAAO,EAAA,CAC/C2pK,CAAAA,gBAAAA,CAAiB/2M,MAAM,CAAG,EAC3B,CACA45C,MAAAA,CAAO+9J,YAAY,CAAEzvB,QAAQ,CAAE,CAC9B,IAAI,CAAC58C,MAAM,CAACqsE,YAAAA,CAAAA,CACZ,IAAI,CAACP,SAAS,CAAC3qM,OAAO,CAAC,IAAC8M,EAAAA,CACvB,MAAMo5E,KAAAA,CAAQp5E,IAAAA,CAAKo5E,KAAK,CACxB,MAAMwkH,OAAAA,CAAU59L,IAAAA,CAAKg+L,aAAa,CAClCJ,OAAAA,CAAQv9J,MAAM,CAAC+4C,KAAAA,CAAMklH,kBAAkB,CAAE3vB,UAC1C,CAAA,EACD,CAhFA,WAAA,CAAYr6I,cAAc,CAAE,CAH5BopK,gBAAAA,CAAAA,IAAAA,CAAAA,QAAAA,CAAS,IAAA,CAAA,CACTC,sBAAAA,YAAAA,CAAa,EAAE,EACfE,gBAAAA,CAAAA,IAAAA,CAAAA,WAAAA,CAA4B,IAAIjvM,GAAAA,CAE/B,CAAA,IAAI,CAAC8lC,MAAM,CAAGJ,eACf,CA+ED,CAAA,CAEA,IAAIiqK,UAAAA,CAAa,IAAI11L,IAAAA,CACrB,IAAI21L,qBAAuB,EAAE,CAC7B,IAAIC,wBAAAA,CAA2B,MAAMC,kCAAkCx1I,UAAAA,CActEr1B,OAAAA,EAAU,CACT,IAAI,CAAC8qK,eAAe,EAAE9qK,OAAAA,EACtB,CAAA,IAAI,CAAC8qK,eAAe,CAAG,IACvB,CAAA,IAAI,CAACC,iBAAiB,EAAE/qK,OAAAA,EACxB,CAAA,IAAI,CAAC+qK,iBAAiB,CAAG,IACzB,CAAA,IAAI,CAACC,kBAAkB,EAAElxM,GAAAA,EACzB,CAAA,IAAI,CAACkxM,kBAAkB,CAAG,KAC3B,CACA,OAAOl5M,MAAAA,CAAOirD,YAAY,CAAEugJ,gBAAgB,CAAE,CAC7C,MAAM76I,UAAAA,CAAa,IAAIooJ,yBAAAA,CAA0B9tJ,YAAAA,CAAalc,MAAM,CAAEy8J,gBAAAA,CAAAA,CACtE76I,UAAAA,CAAW1B,IAAI,CAAChE,YAAAA,CAChB0F,CAAAA,WAAW6S,QAAQ,CAACj6D,KAAK,CAAG,KAC5BonD,CAAAA,UAAAA,CAAWqT,eAAe,CAACd,UAAU,CAAG,KAAA,CACxC,OAAOvS,UACR,CACAwoJ,gBAAAA,EAAmB,CAClB,IAAI,CAACC,UAAU,CAAG,KACnB,CACA1+J,OAAO6kI,OAAO,CAAE,CACf,MAAM85B,eAAiB,IAAI,CAACC,eAAe,CAC3C,IAAI,CAAC3oI,MAAM,CAAC4uG,OAAAA,CAAS85B,eACrB,CAAA,IAAI,CAACj3I,cAAc,CAAGi3I,eAAev4M,MAAM,CAAG,EAC/C,CACA6vE,OAAO4uG,OAAO,CAAE85B,cAAc,CAAE,CAC/B,IAAK,IAAIx4M,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAK0+K,QAAQz+K,MAAM,CAAED,KAAM,CAC3C,MAAMg3K,MAAQ0H,OAAO,CAAC1+K,EAAAA,CAAG,CACzB,GAAIg3K,KAAAA,CAAMn9J,KAAK,GAAK+gI,qBAAAA,CAAuB,CAC1C,QACD,CACA,GAAI,CAACo8B,MAAMgD,sBAAsB,CAAE,CAClC,QACD,CACA,MAAM0+B,aAAAA,CAAgB1hC,KAAAA,CAAMozB,MAAM,EAAIpzB,MAAMozB,MAAM,CAAC9yJ,aAAa,GAAK0/H,MAAM2hC,mBAAmB,CAC9F,GAAI,CAAC3hC,MAAMg0B,gBAAgB,EAAI,CAAC0N,aAAAA,EAAiB,CAAC,IAAI,CAACH,UAAU,CAAE,CAClE,QACD,CACA,GAAIvhC,KAAAA,CAAMnwK,OAAO,EAAImwK,KAAAA,CAAMozB,MAAM,EAAIpzB,KAAAA,CAAM9S,gBAAgB,CAAE,CAC5Ds0C,eAAe13M,IAAI,CAACk2K,OACrB,CACD,CACA,IAAI,CAACuhC,UAAU,CAAG,MACnB,CACAK,uBAAAA,EAA0B,CACzB,GAAI,CAACZ,oBAAAA,CAAqB/3M,MAAM,CAAE,CACjC,IAAK,IAAIm2C,IAAAA,CAAO,CAAA,CAAGA,KAAO,CAAA,CAAGA,IAAAA,EAAAA,CAAQ,CACpC,MAAMisH,OAASuU,WAAAA,CAAYz3K,MAAM,CAAC,IAAI,CAAC+uC,MAAM,CAAE,IAAA,CAAM2sG,cAAAA,CAAgBzkG,MACrE,MAAM29H,OAAAA,CAAU1R,OAAOwP,gBAAgB,CACvC,MAAM4E,QAAAA,CAAWpU,MAAAA,CAAO7K,IAAI,CAACoD,iBAAiB,EAAA,CAAG5lJ,KAAK,EAAA,CAAGiR,MAAM,EAC/D+xL,CAAAA,oBAAoB,CAAC5hK,IAAAA,CAAK,CAAG,IAAI5zB,IAAAA,EAAAA,CAAOjF,IAAI,CAACw2J,OAAAA,CAAS0C,UAAUxwJ,MAAM,GACvE,CACD,CACD,CACA,IAAI4yL,cAAAA,EAAiB,CACpB,GAAI,CAAC,IAAI,CAACV,eAAe,CAAE,CAC1B,MAAM3uJ,MAAAA,CAASqgG,YAAY9mD,YAAY,CAAC,IAAI,CAAC70D,MAAM,CAAE,CACpD+7G,WAAY,kBAAA,CACZhvF,UAAAA,CAAY,CAAE4nB,eAAAA,CAAiB/gD,iBAAkB,EACjDqoH,WAAAA,CAAa,cAAA,CACbE,aAAAA,CAAe,gBAChB,EACA,CAAA,IAAI,CAAC8tD,eAAe,CAAG,IAAI/rD,UAAAA,CAAW5iG,MAAAA,EACvC,CACA,OAAO,IAAI,CAAC2uJ,eAAe,CAE5B,IAAIW,gBAAAA,EAAmB,CACtB,GAAI,CAAC,IAAI,CAACV,iBAAiB,CAAE,CAC5B,MAAM5uJ,OAASqgG,WAAAA,CAAY9mD,YAAY,CAAC,IAAI,CAAC70D,MAAM,CAAE,CACpD+7G,UAAAA,CAAY,qBACZhvF,UAAAA,CAAY,CAAE4nB,eAAAA,CAAiB/gD,iBAAkB,EACjDqoH,WAAAA,CAAa,cAAA,CACbE,cAAe,kBAChB,CAAA,CACA,CAAA,IAAI,CAAC+tD,iBAAiB,CAAG,IAAIhsD,UAAAA,CAAW5iG,MAAAA,EACzC,CACA,OAAO,IAAI,CAAC4uJ,iBAAiB,CAE9Bh3I,SAAU,CACT,MAAMlzB,OAAS,IAAI,CAACA,MAAM,CAC1BA,MAAAA,CAAOuf,aAAa,EAAA,CACpB,MAAMsrJ,iBAAAA,CAAoB,IAAI,CAAC3uJ,YAAY,CAAC4K,WAAW,CAACnvC,KAAK,CAC7D,MAAM8kL,gBAAAA,CAAmB,IAAI,CAACqO,iBAAiB,CAC/C,MAAMR,cAAAA,CAAiB,IAAI,CAACC,eAAe,CAC3C,IAAK,IAAIz4M,EAAAA,CAAK,CAAA,CAAGA,GAAKw4M,cAAAA,CAAev4M,MAAM,CAAED,EAAAA,EAAAA,CAAM,CAClD,MAAMg3K,KAAAA,CAAQwhC,cAAc,CAACx4M,EAAAA,CAAG,CAChC,MAAMwqM,SAAAA,CAAYxzB,KAAAA,CAAMyzB,cAAc,CACtC,MAAMn+C,IAAAA,CAAOk+C,SAAAA,CAAY,CAAA,CAAI,IAAI,CAACsO,gBAAgB,CAAG,IAAI,CAACD,cAAc,CACxE,GAAIrO,SAAAA,CAAY,CAAA,CAAG,CAClB,IAAI,CAACoO,uBAAuB,GAC7B,CACA,IAAI,CAACK,aAAa,CAACv3J,QAAQ,CAACs1H,KAAAA,CAAMozB,MAAM,CACxCpzB,CAAAA,KAAAA,CAAM2hC,mBAAmB,CAAG3hC,KAAAA,CAAMozB,MAAM,CAAC9yJ,aAAa,CACtD,IAAK,IAAIlB,KAAO,CAAA,CAAGA,IAAAA,CAAOo0J,UAAWp0J,IAAAA,EAAAA,CAAQ,CAC5C2hK,WAAWh5M,IAAI,CAACi4K,KAAAA,CAAMO,aAAa,EACnC,GAAIizB,SAAAA,CAAY,EAAG,CAClB,MAAME,UAAYqN,UAAAA,CAAW97L,CAAC,CAAG,CAAA,CACjC,MAAMrO,OAAAA,CAAU+8L,gBAAgB,CAACv0J,IAAAA,CAAK,CACtC2hK,UAAAA,CAAWh8L,CAAC,EAAI2uL,UAAY98L,OAAAA,CAAQmO,CAAC,CACrCg8L,UAAAA,CAAW/7L,CAAC,EAAI0uL,SAAAA,CAAY98L,OAAAA,CAAQoO,CAAC,CACrC+7L,UAAAA,CAAW97L,CAAC,CAAGyuL,SACfqN,CAAAA,UAAAA,CAAWr4L,CAAC,CAAGgrL,UACf,IAAI,CAACwO,aAAa,CAACx3J,QAAQ,CAACs2J,oBAAoB,CAAC5hK,IAAAA,CAAK,CAACz3B,IAAI,EAC5D,CACAo5L,UAAAA,CAAWviM,SAAS,CAACujM,iBAAAA,CAAAA,CACrBzsD,IAAAA,CAAKhrF,MAAM,CAACy2I,YACb,CACD,CACAS,eAAev4M,MAAM,CAAG,EACzB,CAnHA,WAAA,CAAYiuC,MAAM,CAAEy8J,gBAAgB,CAAE,CACrC,KAAK,CAACz8J,QANPiqK,gBAAAA,CAAAA,IAAAA,CAAAA,iBAAAA,CAAkB,IAAA,CAAA,CAClBC,gBAAAA,CAAAA,IAAAA,CAAAA,oBAAoB,IAAA,CAAA,CACpBK,gBAAAA,CAAAA,IAAAA,CAAAA,kBAAkB,EAAE,CAAA,CACpBF,sBAAAA,YAAAA,CAAa,KAAA,CAAA,CACbF,gBAAAA,CAAAA,IAAAA,CAAAA,oBAAAA,CAAqB,KAGpB,CAAA,IAAI,CAACW,iBAAiB,CAAGrO,gBACzB,CAAA,IAAI,CAACjpI,gBAAgB,CAAG,KACxB,CAAA,IAAI,CAACu3I,aAAa,CAAG/qK,MAAAA,CAAOzmC,KAAK,CAAC6mC,OAAO,CAAC,aAAA,CAC1C,CAAA,IAAI,CAAC4qK,aAAa,CAAGhrK,MAAAA,CAAOzmC,KAAK,CAAC6mC,OAAO,CAAC,cAC1C,CAAA,IAAI,CAAC+pK,kBAAkB,CAAGnqK,MAAAA,CAAO3mC,EAAE,CAAC,gBAAA,CAAkB,IAAI,CAAC+wM,gBAAgB,CAAE,IAAI,EAClF,CA6GD,CAAA,CAEA,IAAIa,8BAAAA,CAAiC,cAAcz2I,WAOlD7oB,MAAAA,CAAOiwJ,WAAW,CAAE,CACnB,MAAMsD,YAAAA,CAAe,IAAI,CAACgM,mBAAmB,CAAChM,YAAY,CAC1D,MAAMpB,aAAe,IAAI,CAACoN,mBAAmB,CAACjM,aAAa,CAACC,YAAAA,CAActD,aAC1E,MAAMj6J,KAAAA,CAAQu9J,aAAantM,MAC3B,CAAA,IAAI,CAAC4G,OAAO,CAAGgpC,KAAAA,CAAQ,CAAA,CACvB,GAAIA,KAAAA,CAAO,CACV,IAAI,CAAC+7J,cAAc,CAACM,eAAe,CAAC,IAAI,CAAEF,aAAc,KAAA,EACzD,CACD,CACA5qI,OAAAA,EAAU,CACT,MAAMgsI,YAAAA,CAAe,IAAI,CAACgM,mBAAmB,CAAChM,YAAY,CAC1D,MAAMv9J,MAAQu9J,YAAAA,CAAantM,MAAM,CACjC,IAAK,IAAID,GAAK,CAAA,CAAGA,EAAAA,CAAK6vC,KAAAA,CAAO7vC,EAAAA,EAAAA,CAAM,CAClC,MAAMg3K,KAAAA,CAAQo2B,YAAY,CAACptM,GAAG,CAC9B,IAAK,IAAIo2C,IAAAA,CAAO,EAAGA,IAAAA,CAAO4gI,KAAAA,CAAMyzB,cAAc,CAAEr0J,IAAAA,EAAAA,CAAQ,CACvD,IAAI,CAACw1J,cAAc,CAACC,UAAU,CAAC70B,KAAAA,CAAO,IAAA,CAAM5gI,IAAAA,CAAM,MACnD,CACD,CACAg3J,YAAAA,CAAantM,MAAM,CAAG,EACvB,CAzBA,YAAYiuC,MAAM,CAAE09J,cAAc,CAAEwN,mBAAmB,CAAE,CACxD,KAAK,CAAClrK,MAAAA,CACN,CAAA,IAAI,CAACwzB,gBAAgB,CAAG,KACxB,CAAA,IAAI,CAACkqI,cAAc,CAAGA,cACtB,CAAA,IAAI,CAACwN,mBAAmB,CAAGA,oBAC5B,CAqBD,CAAA,CAEA,IAAIC,wBAAAA,CAA2B,cAAcx4I,UAU5ChnB,MAAAA,CAAO0zJ,UAAU,CAAE/yB,cAAc,CAAEN,cAAc,CAAEwE,OAAO,CAAEorB,WAAW,CAAE,CACxE,IAAI,CAACyD,UAAU,CAAGA,UAClB,CAAA,IAAI,CAAC+L,iBAAiB,CAACzyM,OAAO,CAAGqzK,cAAAA,CACjC,GAAIA,cAAAA,CAAgB,CACnB,IAAI,CAACo/B,iBAAiB,CAACz/J,MAAM,CAAC6kI,OAAAA,EAC/B,CACA,IAAI,CAAC66B,gBAAgB,CAAC1yM,OAAO,CAAG2zK,eAChC,GAAIA,cAAAA,CAAgB,CACnB,IAAI,CAAC++B,gBAAgB,CAAC1/J,MAAM,CAACiwJ,WAAAA,EAC9B,CACD,CACAz8J,OAAAA,EAAU,CACT,IAAI,CAACisK,iBAAiB,CAACjsK,OAAO,EAC9B,CAAA,IAAI,CAACisK,iBAAiB,CAAG,KAC1B,CACAl4I,OAAAA,EAAU,CACT,KAAM,CAAEmyG,QAAQ,CAAE,CAAG,IAAI,CACzB,KAAM,CAAE5mB,KAAK,CAAE,CAAG4mB,SAClBA,QAAAA,CAASimC,sBAAsB,CAAC3/J,MAAM,CAAC,IAAI,CAAC0zJ,UAAU,CAACqK,YAAY,CAAEjrD,KAAAA,CAAMw7B,QAAQ,EACpF,CA5BA,YAAYj6I,MAAM,CAAEqlI,QAAQ,CAAEq4B,cAAc,CAAEwN,mBAAmB,CAAExM,iBAAiB,CAAE,CACrF,KAAK,CAAC1+J,MAAAA,CACN,CAAA,IAAI,CAACqlI,QAAQ,CAAGA,QAChB,CAAA,IAAI,CAACg6B,UAAU,CAAG,IAClB,CAAA,IAAI,CAAC+L,iBAAiB,CAAGrB,wBAAAA,CAAyB94M,MAAM,CAACytM,iBAAAA,CAAkBzE,kBAAkB,CAAEyE,iBAAAA,CAAkBjC,gBAAgB,CAAA,CACjI,IAAI,CAAChpI,YAAY,CAAC7gE,IAAI,CAAC,IAAI,CAACw4M,iBAAiB,CAC7C,CAAA,IAAI,CAACC,gBAAgB,CAAG,IAAIJ,8BAAAA,CAA+BjrK,OAAQ09J,cAAAA,CAAgBwN,mBAAAA,CAAAA,CACnF,IAAI,CAACz3I,YAAY,CAAC7gE,IAAI,CAAC,IAAI,CAACy4M,gBAAgB,EAC7C,CAqBD,CAAA,CAEA,IAAIE,UAAAA,CAAa,IAAIhoL,eACrB,IAAIioL,QAAAA,CAA2B,IAAI1yM,GAAAA,CACnC,IAAI2yM,MAAAA,CAAS,KAAA,CAQZC,kBAAkBv3C,MAAM,CAAEw3C,SAAS,CAAEC,eAAe,CAAE,CACrD,MAAMC,MAAAA,CAASD,gBAAgBC,MAC/BA,CAAAA,MAAAA,CAAO95M,MAAM,CAAG,CAAA,CAChB,MAAM2gK,WAAAA,CAAck5C,eAAAA,CAAgBl5C,WAAW,CAC/CA,YAAY3gK,MAAM,CAAG,EACrB,MAAM+5M,MAAAA,CAAS33C,MAAAA,CAAO2O,cAAc,CACpC,MAAMnhI,KAAAA,CAAQgqK,UAAU55M,MAAM,CAC9B,IAAK,IAAID,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAK6vC,MAAO7vC,EAAAA,EAAAA,CAAM,CAClC,MAAMi6M,QAAAA,CAAWJ,SAAS,CAAC75M,EAAAA,CAAG,CAC9B,GAAIi6M,SAAS33C,OAAO,CAAE,CACrB,MAAMA,OAAAA,CAAU,CAAC03C,MAAAA,EAAU,CAACC,QAAAA,CAASt3C,IAAI,EAAIs3C,QAAAA,CAAS73C,UAAU,CAACC,MAAAA,CAAAA,CACjE,GAAIC,OAAAA,CAAS,CACZ23C,QAAAA,CAAS/1C,gBAAgB,CAAG,IAAA,CAC5B,MAAMrF,OAASo7C,QAAAA,CAASr5C,WAAW,CAAGA,WAAAA,CAAcm5C,MAAAA,CACpDl7C,MAAAA,CAAO/9J,IAAI,CAACm5M,QAAAA,CAAAA,CACZ,GAAIA,QAAAA,CAAS36C,YAAY,EAAI26C,QAAAA,CAAS54C,aAAa,EAAI44C,QAAAA,CAAS71C,cAAc,CAAE,CAC/E,IAAI,CAAC81C,uBAAuB,CAAC7pM,GAAG,CAAC4pM,QAAAA,CAAAA,CACjC,GAAIA,SAAS71C,cAAc,CAAE,CAC5B61C,QAAAA,CAAS71C,cAAc,CAAC+1C,OAAO,CAACr5M,IAAI,CAACuhK,MAAAA,EACtC,CACD,CACD,CACD,CACD,CACD,CACA+3C,UAAAA,CAAW/3C,MAAM,CAAEqc,OAAO,CAAE,CAC3B,KAAM,CAAE/xB,KAAK,CAAE,CAAG,IAAI,CAAC4mB,QAAQ,CAC/B,MAAM0U,yBAA2Bt7B,KAAAA,CAAMs7B,wBAAwB,CAC/D,MAAMoyB,aAAAA,CAAgB1tD,KAAAA,CAAM0tD,aAAa,CACzC,IAAK,IAAIr6M,EAAAA,CAAK,CAAA,CAAGA,GAAK0+K,OAAAA,CAAQz+K,MAAM,CAAED,EAAAA,EAAAA,CAAM,CAC3C,MAAMg3K,KAAAA,CAAQ0H,OAAO,CAAC1+K,EAAAA,CAAG,CACzB,GAAIg3K,KAAAA,CAAMnwK,OAAO,CAAE,CAClB,GAAImwK,KAAAA,CAAMn9J,KAAK,GAAK+gI,sBAAuB,CAC1Co8B,KAAAA,CAAMsjC,iBAAiB,CAACb,YACxB,GAAIp3C,MAAAA,CAAOG,OAAO,CAACpuI,cAAc,CAACqlL,UAAAA,CAAAA,CAAa,CAC9CziC,KAAAA,CAAM9S,gBAAgB,CAAG,IACzB8S,CAAAA,MAAMujC,gBAAgB,CAAGF,cACzB,MAAMG,UAAAA,CAAan4C,MAAAA,CAAO4S,aAAa,CAACwkC,UAAAA,CACxCziC,CAAAA,MAAMqzB,aAAa,CAAG9qM,KAAK6T,GAAG,CAAC4jK,KAAAA,CAAMqzB,aAAa,CAAEmQ,UAAAA,EACrD,CAAA,KAAO,CACN,GAAI,CAACvyB,wBAAAA,CAA0B,CAC9B,GAAIjR,KAAAA,CAAMuD,WAAW,EAAI,CAACvD,MAAMiwB,SAAS,CAAE,CAC1CjwB,KAAAA,CAAM9S,gBAAgB,CAAG,KAC1B,CACD,CACD,CACD,CAAA,KAAO,CACN8S,MAAMujC,gBAAgB,CAAG5tD,KAAAA,CAAM0tD,cAAa,CAE9C,CACD,CACD,CACAI,cAAAA,CAAepO,IAAI,CAAE,CACpB,KAAM,CAAE94B,QAAQ,CAAE,CAAG,IAAI,CACzB,MAAMu2B,WAAAA,CAAcv2B,QAAAA,CAASu2B,WAAW,CACxC,IAAK,IAAI9pM,EAAAA,CAAK,EAAGA,EAAAA,CAAK8pM,WAAAA,CAAY7pM,MAAM,CAAED,EAAAA,EAAAA,CAAM,CAC/C,MAAMg3K,MAAQ8yB,WAAW,CAAC9pM,EAAAA,CAAG,CAC7B,GAAIg3K,KAAAA,CAAMn9J,KAAK,GAAK+gI,qBAAAA,CAAuB,CAC1C,GAAIo8B,KAAAA,CAAM9S,gBAAgB,EAAI8S,KAAAA,CAAMuD,WAAW,EAAIvD,KAAAA,CAAMi+B,gBAAgB,GAAK3zD,kBAAmB,CAChGiyB,QAAAA,CAASmnC,oBAAoB,CAAC/3C,IAAI,CAACqU,KAAAA,CAAOq1B,IAAAA,EAC3C,CACD,CACD,CACA,IAAI,CAACsO,qBAAqB,CAACjuM,OAAO,CAAC,CAACkuM,SAAAA,CAAWv4C,MAAAA,GAAAA,CAC9C,IAAK,IAAIriK,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAK46M,UAAU36M,MAAM,CAAED,EAAAA,EAAAA,CAAM,CAC7CuzK,SAASsnC,0BAA0B,CAACl4C,IAAI,CAACi4C,SAAS,CAAC56M,EAAAA,CAAG,CAAEqsM,IAAAA,CAAMhqC,MAAAA,EAC/D,CACD,CAAA,EACD,CACAy4C,qBAAAA,EAAwB,CACvB,KAAM,CAAEvnC,QAAQ,CAAE,CAAG,IAAI,CACzB,MAAMwnC,UAAYxnC,QAAAA,CAAS5mB,KAAK,CAACs7B,wBAAwB,CACzD,MAAM2jB,cAAAA,CAAiBr4B,SAASq4B,cAAc,CAC9C,MAAM9B,WAAAA,CAAcv2B,QAAAA,CAASu2B,WAAW,CACxC,IAAK,IAAI9pM,EAAAA,CAAK,EAAGA,EAAAA,CAAK8pM,WAAAA,CAAY7pM,MAAM,CAAED,EAAAA,EAAAA,CAAM,CAC/C,MAAMg3K,KAAAA,CAAQ8yB,WAAW,CAAC9pM,GAAG,CAC7B,GAAI4rM,cAAAA,CAAeyB,oBAAoB,CAACr2B,KAAAA,CAAAA,GAAW,CAAC+jC,SAAAA,EAAa/jC,MAAMgD,sBAAqB,EAAI,CAC/FzG,QAAAA,CAASynC,iBAAiB,EAAIhkC,KAAAA,CAAMyzB,cAAc,CAClD,GAAIzzB,KAAAA,CAAMi+B,gBAAgB,GAAK1zD,sBAAAA,CAAwB,CACtDy1B,KAAAA,CAAMi+B,gBAAgB,CAAG3zD,kBAC1B,CACD,CACD,CACA,IAAI,CAACq5D,qBAAqB,CAACjuM,OAAO,CAAC,SAACkuM,EAAAA,CACnC,IAAK,IAAI56M,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAK46M,UAAU36M,MAAM,CAAED,EAAAA,EAAAA,CAAM,CAC7C,MAAMg3K,KAAAA,CAAQ4jC,SAAS,CAAC56M,EAAAA,CAAG,CAC3B,GAAI4rM,cAAAA,CAAeyB,oBAAoB,CAACr2B,KAAAA,CAAAA,CAAQ,CAC/CzD,QAAAA,CAASynC,iBAAiB,EAAIhkC,KAAAA,CAAMyzB,cAAc,CAClD,GAAIzzB,KAAAA,CAAMi+B,gBAAgB,GAAK1zD,sBAAAA,CAAwB,CACtDy1B,MAAMi+B,gBAAgB,CAAG3zD,kBAC1B,CACD,CACD,CACD,CAAA,EACD,CACA25D,8BAAAA,CAA+B5O,IAAI,CAAE,CACpC,KAAM,CAAE94B,QAAQ,CAAE,CAAG,IAAI,CACzB,IAAI,CAAConC,qBAAqB,CAACjyM,KAAK,EAAA,CAChC,MAAMyxM,OAAAA,CAAU9N,IAAAA,CAAK8N,OAAO,CAC5B,IAAK,IAAIn6M,EAAAA,CAAK,EAAGA,EAAAA,CAAKm6M,OAAAA,CAAQl6M,MAAM,CAAED,KAAM,CAC3C,MAAMk7M,gBAAkBf,OAAO,CAACn6M,GAAG,CACnC,GAAIk7M,eAAAA,CAAgBr0M,OAAO,CAAE,CAC5B,MAAMw7J,MAAAA,CAAS64C,eAAAA,CAAgB74C,MAAM,CACrC,IAAIu4C,SAAAA,CACJ,MAAMO,aAAe94C,MAAAA,CAAOxuE,MAAM,CAClC,IAAK,IAAI70E,EAAI,CAAA,CAAGA,CAAAA,CAAIm8L,YAAAA,CAAal7M,MAAM,CAAE+e,CAAAA,EAAAA,CAAK,CAC7C,MAAMo8L,WAAAA,CAAc/O,IAAAA,CAAKt/C,YAAY,CAACouD,YAAY,CAACn8L,CAAAA,CAAE,EACrD,GAAIo8L,WAAAA,CAAa,CAChB,MAAMC,cAAAA,CAAiBD,YAAYE,WAAW,CAAC1gE,qBAAAA,CAAsB,CACrE,IAAK,IAAIlpG,CAAAA,CAAI,CAAA,CAAGA,CAAAA,CAAI2pK,eAAep7M,MAAM,CAAEyxC,CAAAA,EAAAA,CAAK,CAC/C,MAAMslI,KAAAA,CAAQqkC,cAAc,CAAC3pK,CAAAA,CAAE,CAC/B,GAAIslI,KAAAA,CAAMuD,WAAW,EAAI,CAACm/B,SAAS3yM,GAAG,CAACiwK,KAAAA,CAAAA,CAAQ,CAC9C0iC,SAASrpM,GAAG,CAAC2mK,KAAAA,CAAAA,CACb4jC,SAAAA,CAAYA,WAAa,EAAE,CAC3BA,UAAU95M,IAAI,CAACk2K,OACfzD,QAAAA,CAASsnC,0BAA0B,CAACzO,gBAAgB,CAACp1B,KAAAA,EACtD,CACD,CACD,CACD,CACA,GAAI4jC,SAAAA,CAAW,CACd,IAAI,CAACD,qBAAqB,CAACh0M,GAAG,CAAC07J,MAAAA,CAAQu4C,WACxC,CACAlB,QAAAA,CAAShxM,KAAK,GACf,CACD,CACD,CACA6yM,qBAAAA,CAAsBlP,IAAI,CAAE,CAC3B,KAAM,CAAE94B,QAAQ,CAAE,CAAG,IAAI,CACzB,KAAM,CAAE5mB,KAAK,CAAE,CAAG4mB,QAAAA,CAClB,MAAMmL,QAAUnL,QAAAA,CAAS2U,MAAM,CAC/B,IAAK,IAAIloL,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAK0+K,OAAAA,CAAQz+K,MAAM,CAAED,EAAAA,EAAAA,CAAM,CAC3C0+K,OAAO,CAAC1+K,GAAG,CAACsxF,UAAU,GACvB,CACA,MAAMkqH,UAAAA,CAAanP,IAAAA,CAAK8N,OAAO,CAACl6M,MAAM,CACtC,IAAK,IAAID,EAAAA,CAAK,EAAGA,EAAAA,CAAKw7M,UAAAA,CAAYx7M,KAAM,CACvC,MAAMqiK,OAASgqC,IAAAA,CAAK8N,OAAO,CAACn6M,EAAAA,CAAG,CAC/BqiK,MAAAA,CAAOA,MAAM,CAAC4R,aAAa,GAC3B,MAAMwnC,QAAAA,CAAWp5C,MAAAA,CAAOxuE,MAAM,CAC9B,IAAK,IAAIniD,EAAI,CAAA,CAAGA,CAAAA,CAAI+pK,SAASx7M,MAAM,CAAEyxC,CAAAA,EAAAA,CAAK,CACzC,MAAMkhD,KAAAA,CAAQy5G,IAAAA,CAAKt/C,YAAY,CAAC0uD,QAAQ,CAAC/pK,CAAAA,CAAE,CAAA,CAC3C,GAAIkhD,KAAAA,EAASA,MAAM/rF,OAAO,CAAE,CAC3B,IAAI,CAACuzM,UAAU,CAAC/3C,MAAAA,CAAOA,MAAM,CAAEzvE,MAAM8oH,OAAO,EAC7C,CACD,CACD,CACA,MAAMnP,WAAAA,CAAc5/C,KAAAA,CAAMs7B,wBAAwB,CAClD,GAAIskB,WAAAA,CAAa,CAChBh5B,QAAAA,CAASooC,uBAAuB,GACjC,CACA,MAAM7R,WAAAA,CAAcv2B,QAAAA,CAASu2B,WAAW,CACxC,IAAK,IAAI9pM,EAAAA,CAAK,EAAGA,EAAAA,CAAK8pM,WAAAA,CAAY7pM,MAAM,CAAED,KAAM,CAC/C,MAAMg3K,MAAQ8yB,WAAW,CAAC9pM,GAAG,CAC7B,GAAIg3K,KAAAA,CAAMn9J,KAAK,GAAK+gI,qBAAAA,CAAuB,CAC1C,GAAI2xD,WAAAA,CAAa,CAChB,GAAIv1B,KAAAA,CAAMg0B,gBAAgB,EAAIh0B,MAAMi+B,gBAAgB,GAAK3zD,kBAAmB,CAC3E01B,KAAAA,CAAMi+B,gBAAgB,CAAG1zD,uBAC1B,CACD,CAAA,KAAO,CACN,GAAIy1B,KAAAA,CAAMuD,WAAW,EAAIvD,MAAM9S,gBAAgB,EAAI,CAAC8S,KAAAA,CAAMo0B,UAAU,CAAE,CACrE73B,SAASmnC,oBAAoB,CAACtO,gBAAgB,CAACp1B,KAAAA,CAAAA,CAC/C,GAAIA,KAAAA,CAAMi+B,gBAAgB,GAAK3zD,iBAAAA,CAAmB,CACjD01B,KAAAA,CAAMi+B,gBAAgB,CAAG1zD,uBAC1B,CACD,CACD,CACD,CACD,CACA,IAAI,CAAC05D,8BAA8B,CAAC5O,IAAAA,EACrC,CACAuP,uBAAAA,CAAwBv5C,MAAM,CAAEzvE,KAAK,CAAE,CACtC,GAAIyvE,OAAO2Q,YAAY,CAACpgF,KAAAA,CAAAA,CAAQ,CAC/B,IAAI,CAACipH,YAAY,CAAC/6M,IAAI,CAACuhK,QACxB,CACD,CACAy5C,uBAAAA,EAA0B,CACzB,KAAM,CAAEvoC,QAAQ,CAAE,CAAG,IAAI,CACzB,KAAM,CAAE5mB,KAAK,CAAE,CAAG4mB,QAAAA,CAClB,MAAM4mC,OAAAA,CAAU,IAAI,CAAC0B,YAAY,CACjC,IAAK,IAAI77M,GAAK,CAAA,CAAGA,EAAAA,CAAKm6M,QAAQl6M,MAAM,CAAED,KAAM,CAC3C,MAAMqiK,MAAAA,CAAS83C,OAAO,CAACn6M,EAAAA,CAAG,CAC1B,MAAMk7M,eAAAA,CAAkB74C,MAAAA,CAAO7K,IAAI,EAAE6K,MAAAA,EAAU,IAAA,CAC/C1V,KAAAA,EAAO3jJ,KAAKi8I,aAAAA,CAAei2D,eAAAA,CAAAA,CAC3B74C,MAAAA,CAAO4R,aAAa,GACpB,IAAK,MAAMrhF,KAAAA,IAASyvE,MAAAA,CAAO6Q,UAAU,CAAE,CACtC,IAAI,CAAC0mC,iBAAiB,CAACv3C,MAAAA,CAAQzvE,KAAAA,CAAM26D,aAAa,CAAE36D,MAAMmpH,kBAAkB,CAAC15C,MAAAA,CAAAA,EAC9E,CACA1V,OAAO3jJ,IAAAA,CAAKk8I,cAAAA,CAAgBg2D,eAAAA,CAAAA,CAC5B74C,MAAAA,CAAO8Q,eAAe,GACvB,CACAgnC,QAAQl6M,MAAM,CAAG,EAClB,CACA+7M,eAAAA,CAAgB3P,IAAI,CAAE,CACrB,KAAM,CAAE94B,QAAQ,CAAE,CAAG,IAAI,CACzB,KAAM,CAAE5mB,KAAK,CAAE,CAAG4mB,SAClB,IAAI,CAAC2mC,uBAAuB,CAACxxM,KAAK,EAClC6qK,CAAAA,SAAS0oC,gBAAgB,EAAI5P,IAAAA,CAAK8N,OAAO,CAACl6M,MAAM,CAChD,IAAI,CAAC67M,uBAAuB,EAAA,CAC5B,IAAI,CAACrB,cAAc,CAACpO,MACpB1/C,KAAAA,EAAO3jJ,IAAAA,CAAKm8I,cAAAA,EACb,CA3MA,YAAYouB,QAAQ,CAAE,CAJtB2mC,gBAAAA,CAAAA,IAAAA,CAAAA,0BAA0C,IAAIlzM,GAAAA,CAAAA,CAC9C60M,gBAAAA,CAAAA,IAAAA,CAAAA,cAAAA,CAAe,EAAE,CAAA,CACjBlB,gBAAAA,CAAAA,IAAAA,CAAAA,wBAAwC,IAAIvyM,GAAAA,CAAAA,CAC5C8zM,sBAAAA,iBAAAA,CAAkC,IAAI9zM,GAAAA,CAErC,CAAA,IAAI,CAACmrK,QAAQ,CAAGA,SACjB,CA0MD,CAAA,CAEA,IAAI7jB,gBAAAA,CAAmB,CAAA,CACvB,IAAIysD,WAAAA,CAAc,IAAI35L,KACtB,IAAI45L,UAAAA,CAAa,IAAI55L,IAAAA,CACrB,IAAI65L,OAAAA,CAAU,IAAI75L,KAClB,IAAI2zJ,QAAAA,CAAW,IAAI13J,IAAAA,CACnB,IAAI69L,aAAAA,CAAgC,IAAIt1M,GAAAA,CACxC,IAAIu1M,cAAgC,IAAIv1M,GAAAA,CACxC,IAAIw1M,kBAAAA,CAAqB,IAAI/jK,iBAC7B,IAAIgkK,eAAAA,CAAkB,CAAC,CAAA,CAAG,EAAG,CAAA,CAAG,CAAA,CAAE,CAClC,IAAIC,iBAAAA,CAAoB,CACvBxpJ,KAAAA,CAAOupJ,eAAAA,CACPvtK,KAAAA,CAAO,CAAA,CACPikB,QAAS,CAAA,CACTC,KAAAA,CAAO,CACR,CAAA,CACA,IAAIupJ,gBAAkB,CACrB,IAAI76L,IAAAA,CAAK,EAAA,CAAK,SACd,IAAIA,IAAAA,CAAK,GAAA,CAAM,OAAA,CAAA,CACf,IAAIA,IAAAA,CAAK,GAAA,CAAM,OAAA,CAAA,CACf,IAAIA,KAAK,IAAA,CAAO,OAAA,CAAA,CAChB,IAAIA,IAAAA,CAAK,IAAA,CAAO,SAChB,IAAIA,IAAAA,CAAK,IAAA,CAAO,OAAA,CAAA,CAChB,IAAIA,IAAAA,CAAK,IAAA,CAAO,OAAA,CAAA,CAChB,IAAIA,KAAK,KAAA,CAAQ,OAAA,CAAA,CACjB,IAAIA,IAAAA,CAAK,MAAQ,OAAA,CAAA,CACjB,IAAIA,KAAK,KAAA,CAAQ,MAAA,CAAA,CACjB,IAAIA,IAAAA,CAAK,KAAA,CAAQ,OAAA,CAAA,CACjB,IAAIA,KAAK,KAAA,CAAQ,OAAA,CAAA,CACjB,IAAIA,IAAAA,CAAK,MAAQ,OAAA,CAAA,CACjB,IAAIA,IAAAA,CAAK,KAAA,CAAQ,SACjB,IAAIA,IAAAA,CAAK,MAAQ,OAAA,CAAA,CACjB,IAAIA,KAAK,MAAA,CAAS,OAAA,CAAA,CAClB,CACD,IAAI86L,cAAgB,IAAIp6L,IAAAA,CACxB,IAAIq6L,aAAAA,CAAgB,IAAIr6L,IAAAA,CACxB,IAAIs6L,aAAAA,CAAgB,IAAIt6L,KACxB,IAAIu6L,aAAAA,CAAgB,IAAIv6L,IAAAA,CACxB,IAAIw6L,UAA4B,IAAIh2M,GAAAA,CACpC,IAAIi2M,kBAAAA,CAAqB,EAAE,CAC3B,IAAIC,yBAAAA,CAA4B,EAAE,CAClC,IAAIC,QAAAA,CAAW,KAAA,CAkFd9vK,OAAAA,EAAU,CACT,IAAI,CAACu+J,cAAc,CAAG,IACtB,CAAA,IAAI,CAAC8O,oBAAoB,CAAG,IAC5B,CAAA,IAAI,CAACG,0BAA0B,CAAG,IAAA,CAClC,IAAI,CAAC5E,cAAc,CAAC5oK,OAAO,EAC3B,CAAA,IAAI,CAAC4oK,cAAc,CAAG,IACtB,CAAA,IAAI,CAACmH,0BAA0B,EAAE/vK,OAAAA,EACjC,CAAA,IAAI,CAAC+vK,0BAA0B,CAAG,IAAA,CAClC,IAAI,CAAC5D,sBAAsB,CAACnsK,OAAO,EACnC,CAAA,IAAI,CAACmsK,sBAAsB,CAAG,KAC9B,IAAI,CAAC5M,iBAAiB,CAACv/J,OAAO,EAC9B,CAAA,IAAI,CAACu/J,iBAAiB,CAAG,IACzB,CAAA,IAAI,CAACyQ,cAAc,EAAEhwK,OAAAA,EACrB,CAAA,IAAI,CAACgwK,cAAc,CAAG,KACvB,CACA9H,aAAAA,CAAclzC,MAAM,CAAEj4G,YAAY,CAAE,CACnC,MAAMlc,MAAAA,CAAS,IAAI,CAACA,MAAM,CAC1B,MAAMovK,UAAAA,CAAalzJ,YAAAA,CAAeA,YAAAA,CAAavkC,KAAK,CAAGqoB,MAAAA,CAAOroB,KAAK,CACnE,MAAM03L,YAAcnzJ,YAAAA,CAAeA,YAAAA,CAAatkC,MAAM,CAAGooB,OAAOpoB,MAAM,CACtE,MAAMmxB,IAAAA,CAAOorH,MAAAA,CAAOprH,IAAI,CACxB,IAAI16C,EAAAA,CAAKgD,IAAAA,CAAKoQ,KAAK,CAACsnC,IAAAA,CAAKl7B,CAAC,CAAGuhM,YAC7B,IAAI3hM,EAAAA,CAAKpc,IAAAA,CAAKoQ,KAAK,CAACsnC,IAAAA,CAAKj7B,CAAC,CAAGuhM,WAAAA,CAAAA,CAC7B,IAAI79L,EAAIngB,IAAAA,CAAKoQ,KAAK,CAACsnC,IAAAA,CAAKh7B,CAAC,CAAGqhM,UAAAA,CAAAA,CAC5B,IAAItuL,EAAAA,CAAKzvB,KAAKoQ,KAAK,CAACsnC,IAAAA,CAAKv3B,CAAC,CAAG69L,WAAAA,CAAAA,CAC7BrvK,MAAAA,CAAOtoB,WAAW,CAACrpB,EAAAA,CAAIof,GAAI+D,CAAAA,CAAGsP,EAAAA,CAAAA,CAC9B,GAAIqzI,MAAAA,CAAO4M,iBAAiB,CAAE,CAC7B,MAAM1iB,WAAAA,CAAc8V,OAAO9V,WAAW,CACtChwJ,EAAAA,CAAKgD,IAAAA,CAAKoQ,KAAK,CAAC48I,WAAAA,CAAYxwI,CAAC,CAAGuhM,UAAAA,CAAAA,CAChC3hM,GAAKpc,IAAAA,CAAKoQ,KAAK,CAAC48I,WAAAA,CAAYvwI,CAAC,CAAGuhM,WAAAA,CAAAA,CAChC79L,CAAAA,CAAIngB,IAAAA,CAAKoQ,KAAK,CAAC48I,WAAAA,CAAYtwI,CAAC,CAAGqhM,YAC/BtuL,EAAAA,CAAKzvB,IAAAA,CAAKoQ,KAAK,CAAC48I,WAAAA,CAAY7sI,CAAC,CAAG69L,WAAAA,EACjC,CACArvK,MAAAA,CAAOovD,UAAU,CAAC/gG,EAAAA,CAAIof,EAAAA,CAAI+D,CAAAA,CAAGsP,IAC9B,CACAqmL,iBAAAA,CAAkBhzC,MAAM,CAAEzjK,OAAO,CAAE,CAClC,MAAM82C,KAAAA,CAAQ92C,OAAAA,EAAS82C,MACvB,IAAI8nK,QAAAA,CAAW,IAAA,CACf,GAAIn7C,OAAOkN,QAAQ,CAAE,CACpBiuC,QAAAA,CAAWn7C,MAAAA,CAAOyQ,OAAO,CACzBzQ,MAAAA,CAAOsR,oBAAoB,GAC5B,MAAO,CACN,IAAII,QAAU1R,MAAAA,CAAOwP,gBAAgB,CACrC,GAAIxP,MAAAA,CAAOuN,mBAAmB,CAAE,CAC/BvN,MAAAA,CAAOuN,mBAAmB,CAACmE,OAAAA,CAAS7wB,aACrC,CACA,IAAIu6D,aAAAA,CAAgBp7C,MAAAA,CAAOyS,yBAAyB,EAAA,CACpD,MAAM4oC,OAAS,IAAI,CAACxvK,MAAM,CAACuG,QAAQ,CACnCs/H,OAAAA,CAAUpG,OAAOE,8BAA8B,CAACkG,OAAAA,CAAS6oC,aAAAA,CAAelnK,MAAOgoK,MAAAA,CAAAA,CAC/ED,aAAAA,CAAgB9vC,MAAAA,CAAOE,8BAA8B,CAAC4vC,aAAAA,CAAeZ,aAAAA,CAAennK,MAAOgoK,MAAAA,CAAAA,CAC3F,KAAM,CAAEtqC,MAAM,CAAE,CAAG/Q,MAAAA,CACnB,IAAIqM,OAAAA,CAAU,CAAA,CACd,IAAIC,OAAAA,CAAU,EACd,GAAIyE,MAAAA,CAAS,CAAA,CAAG,CACf,MAAMuqC,WAAAA,CAAc/+M,OAAAA,CAAUA,QAAQinB,KAAK,CAAG,IAAI,CAACqoB,MAAM,CAACroB,KAAK,CAC/D,MAAM+3L,YAAAA,CAAeh/M,OAAAA,CAAUA,OAAAA,CAAQknB,MAAM,CAAG,IAAI,CAACooB,MAAM,CAACpoB,MAAM,CAClE,MAAMlY,OAAAA,CAAU+uM,eAAe,CAAC,IAAI,CAACzuK,MAAM,CAAC8E,aAAa,CAAG2pK,eAAAA,CAAgB18M,MAAM,CAAC,CACnFyuK,OAAAA,CAAU0E,MAAAA,EAAUxlK,OAAAA,CAAQmO,CAAC,CAAG,CAAA,CAAI,CAAA,CAAA,CAAK4hM,WAAAA,CACzChvC,QAAUyE,MAAAA,EAAUxlK,OAAAA,CAAQoO,CAAC,CAAG,CAAA,CAAI,CAAA,CAAA,CAAK4hM,YAAAA,CACzC7pC,QAAU+oC,aAAAA,CAAc/9M,IAAI,CAACg1K,OAAAA,CAC7BA,CAAAA,OAAAA,CAAQp1J,IAAI,CAAC,CAAA,CAAE,EAAI+vJ,OACnBqF,CAAAA,OAAAA,CAAQp1J,IAAI,CAAC,EAAE,EAAIgwJ,OAAAA,CACnB8uC,aAAAA,CAAgBV,aAAAA,CAAch+M,IAAI,CAAC0+M,aAAAA,CACnCA,CAAAA,aAAAA,CAAc9+L,IAAI,CAAC,CAAA,CAAE,EAAI+vJ,OACzB+uC,CAAAA,cAAc9+L,IAAI,CAAC,CAAA,CAAE,EAAIgwJ,QACzB,GAAI,IAAI,CAACkvC,sBAAsB,GAAK,IAAI,CAAC3vK,MAAM,CAAC8E,aAAa,CAAE,CAC9D,IAAI,CAAC6qK,sBAAsB,CAAG,IAAI,CAAC3vK,MAAM,CAAC8E,aAAa,CACvD,IAAI,CAAC8qK,SAAS,CAAC5X,IAAI,CAAC,IAAI,CAAC6X,kBAAkB,EAC5C,CACD,CACA,MAAMC,SAAAA,CAAY5qC,MAAAA,CAAS,EAAI,IAAI,CAAC2qC,kBAAkB,CAAG17L,KAAKrE,IAC9D,CAAA,IAAI,CAACigM,mBAAmB,CAAC,CAAA,CAAE,CAAGD,UAAUjiM,CACxC,CAAA,IAAI,CAACkiM,mBAAmB,CAAC,CAAA,CAAE,CAAGD,SAAAA,CAAUhiM,CAAC,CACzC,IAAI,CAACiiM,mBAAmB,CAAC,CAAA,CAAE,CAAGD,SAAAA,CAAU/hM,CAAC,CACzC,IAAI,CAACgiM,mBAAmB,CAAC,CAAA,CAAE,CAAGD,SAAAA,CAAUt+L,CAAC,CACzC,IAAI,CAACw+L,iBAAiB,CAACx8J,QAAQ,CAAC,IAAI,CAACu8J,mBAAmB,EACxD,IAAI,CAACE,MAAM,CAACz8J,QAAQ,CAACqyH,OAAAA,CAAQp1J,IAAI,CAAA,CACjC,IAAI,CAACy/L,YAAY,CAAC18J,QAAQ,CAAC+7J,cAAc9+L,IAAI,CAAA,CAC7C,GAAI0jJ,MAAAA,CAAOyN,kBAAkB,CAAE,CAC9BzN,OAAOyN,kBAAkB,CAACssC,WAAYl5D,WAAAA,EACvC,CAAA,KAAO,CACN,MAAMgxB,IAAM7R,MAAAA,CAAOoP,KAAK,CAACvhC,WAAW,GACpC,MAAMotB,GAAAA,CAAM+E,MAAAA,CAAOoP,KAAK,CAAC5W,WAAW,EAAA,CACpCuhD,WAAWv1L,MAAM,CAACqtJ,IAAK5W,GAAAA,CAAKzhJ,IAAAA,CAAKqC,GAAG,EACrC,CACA,IAAI,CAACmgM,SAAS,CAAC38J,QAAQ,CAAC06J,UAAAA,CAAWz9L,IAAI,CAAA,CACvC09L,QAAQt9M,IAAI,CAACq9M,YAAYn2L,MAAM,EAAA,CAC/B,IAAI,CAACq4L,MAAM,CAAC58J,QAAQ,CAAC26J,OAAAA,CAAQ19L,IAAI,EACjCw3J,QAAAA,CAAS/2J,WAAW,CAACi9L,OAAAA,CAAAA,CACrB,IAAI,CAACkC,OAAO,CAAC78J,QAAQ,CAACy0H,SAASx3J,IAAI,CAAA,CACnCw9L,YAAY5+L,IAAI,CAACw2J,OAAAA,CAASsoC,OAAAA,CAAAA,CAC1B,IAAI,CAACmC,UAAU,CAAC98J,QAAQ,CAACy6J,WAAAA,CAAYx9L,IAAI,CAAA,CACzC0jJ,MAAAA,CAAOmM,oBAAoB,CAAC2tC,WAAAA,CAAaztC,QAASC,OAAAA,CAAS,IAAI,CAACzgI,MAAM,CAAC8E,aAAa,CAAA,CACpF,IAAI,CAAC6gK,eAAe,CAACxxC,MAAAA,CAAOoP,KAAK,CAACvhC,WAAW,EAAA,CAAA,CAC7CmyB,MAAAA,CAAOG,OAAO,CAACpjJ,WAAW,CAAC+8L,WAAAA,EAC5B,CACA,IAAI,CAACsC,OAAO,CAAC/8J,QAAQ,CAAChM,KAAAA,CAAQ,EAAC,CAAI,CAAA,CAAA,CACnC,IAAI,CAACgpK,QAAQ,CAACh9J,QAAQ,CAAC,IAAI,CAACxT,MAAM,CAACuG,QAAQ,GAAK,CAAC,CAACiB,KAAAA,CAAQ,GAAK,CAAA,CAAA,CAC/D,IAAI,CAACipK,cAAc,CAACj9J,QAAQ,CAAC2gH,MAAAA,CAAOoT,gBAAgB,CAAC,IAAI,CAACmpC,YAAY,CAAA,CAAA,CACtE,MAAM3rH,OAASovE,MAAAA,CAAOkN,QAAQ,CAAGlN,MAAAA,CAAOyQ,OAAO,CAAC,CAAA,CAAE,EAAI,IAAA,CAAO,KAC7D,IAAI+rC,aAAAA,CAAgB5rH,MAAAA,CAASA,MAAAA,CAAOb,QAAQ,CAACn2E,CAAC,CAAGrd,OAAAA,CAAUA,OAAAA,CAAQinB,KAAK,CAAG,IAAI,CAACqoB,MAAM,CAACroB,KAAK,CAC5F,IAAIi5L,cAAAA,CAAiB7rH,OAASA,MAAAA,CAAOb,QAAQ,CAAC1yE,CAAC,CAAG9gB,OAAAA,CAAUA,OAAAA,CAAQknB,MAAM,CAAG,IAAI,CAACooB,MAAM,CAACpoB,MAAM,CAC/F+4L,eAAiBx8C,MAAAA,CAAOprH,IAAI,CAACh7B,CAAC,CAC9B6iM,cAAAA,EAAkBz8C,MAAAA,CAAOprH,IAAI,CAACv3B,CAAC,CAC/B,IAAI,CAACq/L,YAAY,CAAC,CAAA,CAAE,CAAGF,aACvB,CAAA,IAAI,CAACE,YAAY,CAAC,CAAA,CAAE,CAAGD,cACvB,CAAA,IAAI,CAACC,YAAY,CAAC,CAAA,CAAE,CAAG,EAAIF,aAC3B,CAAA,IAAI,CAACE,YAAY,CAAC,CAAA,CAAE,CAAG,CAAA,CAAID,cAAAA,CAC3B,IAAI,CAACE,cAAc,CAACt9J,QAAQ,CAAC,IAAI,CAACq9J,YAAY,CAAA,CAC9C,IAAI,CAACE,UAAU,CAACv9J,QAAQ,CAAC,IAAI,CAACirG,KAAK,CAAC0tD,aAAa,CAAGh4C,MAAAA,CAAO0S,WAAW,EAAA,CAAK,IAAI,CAACpoB,KAAK,CAACuyD,QAAQ,CAAA,CAC9F,OAAO1B,QACR,CACA90M,MAAM25J,MAAM,CAAEpkD,UAAU,CAAE57C,UAAU,CAAEC,YAAY,CAAE,CACnD,MAAMlP,KAAAA,CAAS6qD,CAAAA,UAAAA,EAAcokD,OAAO6N,iBAAiB,CAAG53I,gBAAkB,CAAA,GAAM+pC,UAAAA,EAAcggG,MAAAA,CAAOgO,iBAAiB,CAAG93I,gBAAkB,CAAA,CAAA,EAAM+pC,YAAAA,EAAgB+/F,OAAOmO,mBAAmB,CAAGh4I,iBAAAA,CAAoB,CAAA,EAClN,GAAI46B,KAAAA,CAAO,CACV,MAAMllB,MAAAA,CAAS,IAAI,CAACA,MAAM,CAC1B,MAAM7uC,GAAKgjK,MAAAA,CAAO2N,WAAW,CAC7BysC,eAAe,CAAC,CAAA,CAAE,CAAGp9M,EAAAA,CAAGC,CAAC,CACzBm9M,eAAe,CAAC,CAAA,CAAE,CAAGp9M,EAAAA,CAAGiU,CAAC,CACzBmpM,eAAe,CAAC,CAAA,CAAE,CAAGp9M,EAAAA,CAAGzC,CAAC,CACzB6/M,eAAe,CAAC,EAAE,CAAGp9M,EAAAA,CAAG1C,CAAC,CACzB+/M,kBAAkBxtK,KAAK,CAAGmzH,MAAAA,CAAO8N,WAAW,CAC5CusC,iBAAAA,CAAkBvpJ,OAAO,CAAGkvG,OAAOiO,aACnCosC,CAAAA,iBAAAA,CAAkBtpJ,KAAK,CAAGA,KAAAA,CAC1BllB,OAAOxlC,KAAK,CAACg0M,mBACd,CACD,CACAlI,yBAAAA,CAA0B/jC,SAAS,CAAE4jC,UAAU,CAAE4F,QAAQ,CAAE,CAC1D,MAAMtvD,QAAAA,CAAWsvD,QAAAA,CAAStvD,QAAQ,CAClC,MAAMkmB,SAAAA,CAAYwjC,UAAAA,CAAa4F,SAAS91C,eAAe,CAAG81C,SAASziD,IAAI,CAACwD,cAAc,CACtF,IAAIxwG,SAAAA,CAAYmgG,QAAAA,CAASngG,SAAS,CAClC,GAAIqmH,SAAAA,CAAY,CAAA,CAAG,CAClBrmH,SAAAA,CAAYA,YAAc/wB,aAAAA,CAAgBC,YAAAA,CAAeD,cAC1D,CACA,IAAI,CAACyU,MAAM,CAACqf,WAAW,CAACkjH,UAAY9lB,QAAAA,CAASgY,IAAI,CAAGtpI,aAAAA,CAAAA,CACpD,IAAI,CAAC6U,MAAM,CAACsf,YAAY,CAAChD,SAAAA,EAC1B,CACA20J,cAAc1uC,SAAS,CAAE4jC,UAAU,CAAE4F,QAAQ,CAAE,CAC9C,IAAI,CAACzF,yBAAyB,CAAC/jC,SAAAA,CAAW4jC,WAAY4F,QAAAA,EACvD,CACA3F,gBAAAA,CAAiBpmK,MAAM,CAAEy8G,QAAQ,CAAE,CAClCz8G,MAAAA,CAAOqf,WAAW,CAACo9F,QAAAA,CAASgY,IAAI,CAAA,CAChCz0H,MAAAA,CAAOsf,YAAY,CAACm9F,QAAAA,CAASngG,SAAS,CAAA,CACtC,GAAImgG,QAAAA,CAASy0D,UAAU,CAAE,CACxB,IAAI,CAACC,YAAY,CAAC39J,QAAQ,CAACipG,SAASy0D,UAAU,EAC/C,CACA,GAAIz0D,SAASy0D,UAAU,EAAIz0D,QAAAA,CAAS8X,SAAS,CAAG,CAAA,CAAG,CAClD,IAAI,CAAC68C,WAAW,CAAC59J,QAAQ,CAACipG,QAAAA,CAAS8X,SAAS,EAC7C,CACD,CACA88C,qBAAAA,CAAsB1F,SAAS,CAAE,CAChCnqD,gBAAAA,EAAAA,CACA,MAAM8vD,cAAAA,CAAiB3F,UAAU55M,MAAM,CACvC,GAAIu/M,cAAAA,GAAmB,EAAG,OAC1B,IAAK,IAAIx/M,EAAAA,CAAK,CAAA,CAAGA,GAAKw/M,cAAAA,CAAgBx/M,EAAAA,EAAAA,CAAM,CAC3C,MAAMy/M,GAAK5F,SAAS,CAAC75M,EAAAA,CAAG,CAACs/J,YAAY,CACrC,GAAImgD,EAAAA,CAAI,CACPA,GAAG7vD,cAAc,CAACiqD,SAAS,CAAC75M,EAAAA,CAAG,CAACw3J,IAAI,CAAE9H,gBAAAA,CACtC+vD,CAAAA,GAAG75J,MAAM,CAAG,KACb,CACD,CACD,CACA85J,qBAAAA,CAAsB7F,SAAS,CAAE,CAChC,IAAK,MAAMI,QAAAA,IAAYJ,UAAW,CACjC,MAAMhrD,KAAOorD,QAAAA,CAAS36C,YAAY,CAClC,GAAIzQ,MAAQA,IAAAA,CAAKjpG,MAAM,CAAE,CACxBipG,KAAKiB,mBAAmB,CAACmqD,QAAAA,CAASziD,IAAI,CAAE9H,gBAAAA,CACxCb,CAAAA,KAAKjpG,MAAM,CAAG,MACf,CACD,CACD,CACA+5J,cAAAA,CAAe9F,SAAS,CAAE,CACzB,IAAK,MAAMI,YAAYJ,SAAAA,CAAW,CACjC,MAAM+F,SAAAA,CAAY3F,SAAS54C,aAAa,CACxC,GAAIu+C,SAAAA,EAAaA,SAAAA,CAAUh6J,MAAM,CAAE,CAClCg6J,SAAAA,CAAU/lK,MAAM,GACjB,CACD,CACD,CACAgmK,aAAAA,CAAchG,SAAS,CAAE,CACxB,IAAK,MAAMI,YAAYJ,SAAAA,CAAW,CACjCI,SAAS71C,cAAc,EAAEvqH,SAC1B,CACD,CACAimK,SAAAA,CAAUjG,SAAS,CAAE,CACpB,IAAI,CAAC6F,qBAAqB,CAAC7F,SAAAA,CAAAA,CAC3B,IAAI,CAAC8F,cAAc,CAAC9F,SAAAA,CAAAA,CACpB,IAAI,CAACgG,aAAa,CAAChG,WACpB,CACAnF,gBAAAA,CAAiBxmK,MAAM,CAAE2jH,IAAI,CAAE,CAC9B3jH,MAAAA,CAAOyf,eAAe,CAACkkG,IAAAA,CAAKjkG,YAAY,EACzC,CACA+mJ,YAAYzmK,MAAM,CAAEmzH,aAAa,CAAE,CAClC,GAAIA,aAAAA,CAAe,CAClBA,aAAAA,CAAc0+C,gBAAgB,CAAC7xK,MAAAA,CAAAA,CAC/BA,MAAAA,CAAOyf,eAAe,CAAC0zG,cAAc1O,KAAK,CAACqtD,eAAe,CAAA,CAC1D,IAAI,CAACC,gBAAgB,CAACv+J,QAAQ,CAAC2/G,cAAc6+C,gBAAgB,CAAA,CAC7D,IAAI,CAACC,cAAc,CAACz+J,QAAQ,CAAC2/G,aAAAA,CAAc++C,cAAc,CAAA,CACzD,IAAI,CAACC,cAAc,CAAC3+J,QAAQ,CAAC2/G,cAAci/C,cAAc,EAC1D,CACD,CACA/L,WAAAA,CAAYrmK,MAAM,CAAE0+G,YAAY,CAAE,CACjC,MAAM0S,YAAAA,CAAe1S,YAAAA,CAAa0S,YAAY,CAC9C,GAAIA,YAAAA,CAAc,CACjB,IAAI,CAACihD,cAAc,GACnB,MAAM7xD,WAAAA,CAAc4Q,aAAa5Q,WAAW,CAC5C,IAAI,CAAC8xD,aAAa,CAAC9+J,QAAQ,CAACgtG,WAAAA,EAC7B,CACD,CAEAmlD,eAAAA,CAAgBrvL,SAAS,CAAE,CAC1B,MAAMi8L,EAAAA,CAAK,IAAI,CAACC,OAAO,CACvBD,EAAE,CAAC,CAAA,CAAE,CAAGj8L,SAAAA,CAAUzI,CAAC,CACnB0kM,EAAE,CAAC,CAAA,CAAE,CAAGj8L,SAAAA,CAAUxI,CAAC,CACnBykM,EAAE,CAAC,CAAA,CAAE,CAAGj8L,SAAAA,CAAUvI,CAAC,CACnB,IAAI,CAAC0kM,SAAS,CAACj/J,QAAQ,CAAC++J,IACzB,CACAlK,qBAAAA,CAAsBhK,WAAW,CAAE,CAClC,GAAI,CAAC,IAAI,CAACrlD,iBAAiB,CAAE,CAC5B,MAAM9+E,QAAAA,CAAW,CAChB,IAAIR,aAAAA,CAAc,aAAA,CAAengC,gBAAAA,CAAAA,CACjC,IAAImgC,cAAc,oBAAA,CAAsBngC,gBAAAA,CAAAA,CACxC,IAAImgC,aAAAA,CAAc,oBAAqBngC,gBAAAA,CAAAA,CACvC,IAAImgC,cAAc,yBAAA,CAA2BngC,gBAAAA,CAAAA,CAC7C,IAAImgC,aAAAA,CAAc,uBAAA,CAAyBngC,gBAAAA,CAAAA,CAC3C,IAAImgC,cAAc,cAAA,CAAgBpgC,gBAAAA,CAAAA,CAClC,IAAIogC,aAAAA,CAAc,wBAAyBpgC,gBAAAA,CAAAA,CAC3C,IAAIogC,aAAAA,CAAc,eAAA,CAAiB7gC,kBACnC,IAAI6gC,aAAAA,CAAc,gBAAiB5gC,gBAAAA,CAAAA,CACnC,IAAI4gC,cAAc,iBAAA,CAAmB/gC,iBAAAA,CAAAA,CACrC,IAAI+gC,aAAAA,CAAc,WAAY/gC,iBAAAA,CAAAA,CAC9B,IAAI+gC,aAAAA,CAAc,YAAA,CAAcv/B,kBAChC,CACD,GAAIkkK,WAAAA,CAAa,CAChBnkI,SAAStnE,IAAI,CAAA,GAAI,CAChB,IAAI8mE,aAAAA,CAAc,gCAAiC7gC,gBAAAA,CAAAA,CACnD,IAAI6gC,aAAAA,CAAc,kBAAA,CAAoB7gC,kBACtC,IAAI6gC,aAAAA,CAAc,oBAAA,CAAsB7gC,gBAAAA,CAAAA,CACxC,IAAI6gC,aAAAA,CAAc,iBAAA,CAAmB1gC,iBAAAA,CAAAA,CACrC,IAAI0gC,cAAc,iBAAA,CAAmB1gC,iBAAAA,CAAAA,CACrC,IAAI0gC,aAAAA,CAAc,mBAAA,CAAqB9gC,kBACvC,IAAI8gC,aAAAA,CAAc,iBAAA,CAAmBhhC,eAAAA,CAAAA,CACrC,IAAIghC,aAAAA,CAAc,oBAAA,CAAsBhhC,iBACxC,IAAIghC,aAAAA,CAAc,sBAAuBhhC,eAAAA,CAAAA,CACzC,EACF,CACA,IAAI,CAACsgH,iBAAiB,CAAG,IAAI/+E,mBAAAA,CAAoB,IAAI,CAACj6B,MAAM,CAAEk6B,QAAAA,EAC/D,CACD,CACAw4I,iBAAAA,CAAkB7xM,IAAI,CAAE1J,KAAK,CAAE,CAC9B,IAAI,CAAC84M,MAAM,CAACz8J,QAAQ,CAAC3yC,KAAKglK,OAAO,CAACp1J,IAAI,CAAA,CACtC,IAAI,CAACy/L,YAAY,CAAC18J,QAAQ,CAAC3yC,IAAAA,CAAKglK,OAAO,CAACp1J,IAAI,CAAA,CAC5C,IAAI,CAAC2/L,MAAM,CAAC58J,QAAQ,CAAC3yC,IAAAA,CAAKilK,UAAU,CAACr1J,IAAI,CAAA,CACzC,IAAI,CAAC0/L,SAAS,CAAC38J,QAAQ,CAAC3yC,IAAAA,CAAKknK,aAAa,CAACt3J,IAAI,CAAA,CAC/C,IAAI,CAAC4/L,OAAO,CAAC78J,QAAQ,CAAC3yC,IAAAA,CAAKonK,QAAQ,CAACx3J,IAAI,CAAA,CACxC,IAAI,CAAC6/L,UAAU,CAAC98J,QAAQ,CAAC3yC,KAAK+mK,cAAc,CAACn3J,IAAI,CAAA,CACjD,IAAI,CAACgiM,SAAS,CAACj/J,QAAQ,CAAC3yC,KAAKsnK,YAAY,CAAA,CACzC,IAAI,CAACwqC,WAAW,CAACn/J,QAAQ,CAACr8C,KAAAA,EAC3B,CACAy7M,oBAAAA,CAAqB55D,iBAAiB,CAAE,CACvC,IAAIrzF,EAAAA,CAAK,IAAI,CAACktJ,mBAAmB,CAACrkN,GAAG,CAACwqJ,iBAAAA,CAAAA,CACtC,GAAI,CAACrzF,GAAI,CACRA,EAAAA,CAAK,IAAIq0B,aAAAA,CAAc,IAAI,CAACh6C,MAAM,CAAEg5G,iBAAAA,CAAmB,OACvD,IAAI,CAAC65D,mBAAmB,CAACp6M,GAAG,CAACugJ,iBAAAA,CAAmBrzF,EAAAA,EACjD,CACA,OAAOA,EACR,CACAyhJ,uBAAAA,CAAwBpuD,iBAAiB,CAAEs2D,QAAQ,CAAE,CACpD,KAAM,CAAEtvK,MAAM,CAAE,CAAG,IAAI,CACvB,MAAM2lB,GAAK,IAAI,CAACitJ,oBAAoB,CAAC55D,mBACrC,GAAIs2D,QAAAA,CAAU,CACb,MAAMwD,SAAAA,CAAYxD,SAASv9M,MAAM,CACjC,IAAK,IAAID,GAAK,CAAA,CAAGA,EAAAA,CAAKghN,UAAWhhN,EAAAA,EAAAA,CAAM,CACtC,IAAI,CAAC4gN,iBAAiB,CAACpD,QAAQ,CAACx9M,EAAAA,CAAG,CAAEA,EAAAA,CAAAA,CACrC6zD,EAAAA,CAAGha,MAAM,CAAC,IAAI,CAAConK,qBAAqB,CACpC,CAAA,IAAI,CAACC,eAAe,CAAClhN,GAAG,CAAG,IAAI,CAACihN,qBAAqB,CAACvoK,SACtD,CAAA,IAAI,CAACyoK,qBAAqB,CAACnhN,EAAAA,CAAG,CAAG,IAAI,CAACihN,qBAAqB,CAACtoK,OAAO,CAAC,GAAE,CAExE,CAAA,KAAO,CACNkb,GAAGha,MAAM,CAAC,IAAI,CAAConK,qBAAqB,CAAA,CACpC/yK,MAAAA,CAAO+6C,YAAY,CAAC59C,eAAgB,IAAI,CAAC41K,qBAAqB,CAACvoK,SAAS,CAAE,IAAI,CAACuoK,qBAAqB,CAACtoK,OAAO,EAC7G,CACD,CACAk8J,uBAAAA,CAAwBh1C,cAAc,CAAE,CACvC,MAAM3xH,MAAAA,CAAS,IAAI,CAACA,MAAM,CAC1B,GAAIA,MAAAA,CAAOwkB,sBAAsB,CAAE,CAClC,MAAM0uJ,aAAAA,CAAgBvhD,eAAer3E,YAAY,CAACt6C,MAAAA,CAAAA,CAClDkzK,aAAAA,CAAcvnK,MAAM,EAAA,CACpB3L,MAAAA,CAAO+6C,YAAY,CAAC39C,eAAgB81K,aAAAA,CAAAA,CACpC,MAAMC,kBAAoBxhD,cAAAA,CAAepB,gBAAgB,CAACvwH,MAAAA,CAAAA,CAC1DmzK,iBAAAA,CAAkBxnK,MAAM,CAAC2iK,oBACzBtuK,MAAAA,CAAO+6C,YAAY,CAAC19C,iBAAAA,CAAmBixK,mBAAmB9jK,SAAS,CAAE8jK,kBAAAA,CAAmB7jK,OAAO,EAChG,CACD,CACAi8J,wBAAwBhoD,YAAY,CAAE00D,gBAAkB,KAAK,CAAE,CAC9D,MAAMC,YAAc30D,YAAAA,CAAa4K,IAAI,CAAC3iI,cAAc,CACpD,IAAI,CAAC2sL,aAAa,CAAC9/J,QAAQ,CAAC6/J,WAAAA,CAAY5iM,IAAI,CAAA,CAC5C,GAAI2iM,gBAAiB,CACpB,IAAI,CAACG,cAAc,CAAC//J,QAAQ,CAACkrG,aAAa4K,IAAI,CAACS,YAAY,CAACt5I,IAAI,EACjE,CACD,CACA8/J,aAAAA,CAAc4tB,IAAI,CAAE,CACnB,IAAI,CAACnkB,MAAM,CAACjoL,MAAM,CAAG,CACrB,CAAA,IAAI,CAAC6pM,WAAW,CAAC7pM,MAAM,CAAG,CAAA,CAC1B,MAAMyhN,MAAQ,IAAI,CAAC/0D,KAAK,CAACg1D,MAAM,CAC/B,MAAM9xK,KAAAA,CAAQw8J,IAAAA,CAAK0F,SAAS,CAAC9xM,MAAM,CACnC,IAAK,IAAID,GAAK,CAAA,CAAGA,EAAAA,CAAK6vC,KAAAA,CAAO7vC,EAAAA,EAAAA,CAAM,CAClC,MAAM4yF,KAAAA,CAAQy5G,KAAK0F,SAAS,CAAC/xM,GAAG,CAChC,GAAI,CAACu8M,aAAAA,CAAcx1M,GAAG,CAAC6rF,KAAAA,CAAAA,CAAQ,CAC9B2pH,aAAAA,CAAclsM,GAAG,CAACuiF,KAAAA,CAAAA,CAClB,MAAM8rF,OAAAA,CAAU9rF,MAAM8oH,OAAO,CAC7B,IAAK,IAAIhqK,CAAAA,CAAI,EAAGA,CAAAA,CAAIgtI,OAAAA,CAAQz+K,MAAM,CAAEyxC,IAAK,CACxC,MAAMslI,KAAAA,CAAQ0H,OAAO,CAAChtI,CAAAA,CAAE,CACxB,GAAI,CAAC4qK,cAAcv1M,GAAG,CAACiwK,OAAQ,CAC9BslC,aAAAA,CAAcjsM,GAAG,CAAC2mK,KAAAA,CAAAA,CAClB,IAAI,CAACkR,MAAM,CAACpnL,IAAI,CAACk2K,KAAAA,CAAAA,CACjB,GAAIA,KAAAA,CAAMn9J,KAAK,GAAK+gI,qBAAAA,CAAuB,CAC1C,IAAI,CAACkvD,WAAW,CAAChpM,IAAI,CAACk2K,KAAAA,EACvB,CACD,CACD,CACD,CACD,CACA0qC,KAAAA,CAAMx5B,MAAM,CAAG,IAAI,CAACA,MAAM,CAACjoL,MAAM,CACjCq8M,aAAAA,CAAc5zM,KAAK,GACnB6zM,aAAAA,CAAc7zM,KAAK,GACpB,CACAk5M,aAAAA,CAAc/H,SAAS,CAAEgI,cAAc,CAAE,CACxC,MAAMhyK,KAAAA,CAAQgqK,UAAU55M,MAAM,CAC9B,IAAK,IAAID,GAAK,CAAA,CAAGA,EAAAA,CAAK6vC,MAAO7vC,EAAAA,EAAAA,CAAM,CAClC,MAAMogK,IAAAA,CAAOy5C,SAAS,CAAC75M,EAAAA,CAAG,CAAC2qJ,QAAQ,CACnC,GAAIyV,IAAAA,CAAM,CACT,GAAI,CAAC48C,SAAAA,CAAUj2M,GAAG,CAACq5J,MAAO,CACzB48C,SAAAA,CAAU3sM,GAAG,CAAC+vJ,IAAAA,CAAAA,CACd,GAAIA,IAAAA,CAAKG,gBAAgB,GAAKgzB,QAAAA,CAASlF,SAAS,CAAC9tB,gBAAgB,CAAE,CAClE,GAAIshD,cAAAA,CAAgB,CACnB,GAAI,CAACzhD,KAAKk3B,WAAW,EAAIl3B,KAAK0hD,OAAO,EAAI,CAAC1hD,IAAAA,CAAK0hD,OAAO,CAAC35B,QAAQ,CAAE,CAChE,QACD,CACD,CACA/nB,KAAKs0B,aAAa,GACnB,CACD,CACD,CACD,CACAsoB,SAAAA,CAAUt0M,KAAK,GAChB,CACAq5M,qBAAsB,CACrB,IAAI,CAACC,kBAAkB,CAACtgK,QAAQ,CAACmlJ,mBAAAA,CAAoB,IAAI,CAAC34J,MAAM,CAAA,EACjE,CACAojD,UAAAA,CAAW+6G,IAAI,CAAE,CAChB,MAAM1/C,KAAAA,CAAQ,IAAI,CAACA,KAAK,CACxB,MAAMi1D,aAAAA,CAAgBj1D,MAAMi1D,aAAa,EAAI,IAAI,CAAC1zK,MAAM,CAACkH,aAAa,CAEtE,MAAMy+C,OAASw4G,IAAAA,CAAK0F,SAAS,CAC7B,MAAMkQ,UAAAA,CAAapuH,MAAAA,CAAO5zF,MAAM,CAChC,IAAK,IAAID,EAAAA,CAAK,CAAA,CAAGA,GAAKiiN,UAAAA,CAAYjiN,EAAAA,EAAAA,CAAM,CACvC,MAAM4yF,MAAQiB,MAAM,CAAC7zF,GAAG,CACxB,MAAMutJ,cAAgB36D,KAAAA,CAAM26D,aAAa,CACzC,MAAM19G,MAAQ09G,aAAAA,CAActtJ,MAAM,CAElC,IAAK,IAAIyxC,CAAAA,CAAI,CAAA,CAAGA,EAAI7B,KAAAA,CAAO6B,CAAAA,EAAAA,CAAK,CAC/B,MAAMwwK,QAAAA,CAAW30D,aAAa,CAAC77G,CAAAA,CAAE,CACjCwwK,SAASh+C,gBAAgB,CAAG,KAAA,CAC5B,GAAI09C,cAAe,CAClB3E,kBAAAA,CAAmBn8M,IAAI,CAACohN,UACzB,CACA,GAAIA,SAAS5iD,YAAY,CAAE,CAC1B49C,yBAAAA,CAA0Bp8M,IAAI,CAACohN,QAAAA,EAChC,CACD,CACD,CACA,GAAIN,aAAAA,CAAe,CAClB,MAAMC,cAAAA,CAAiB,CAACl1D,KAAAA,CAAMi1D,aAAa,EAAI,CAAC,IAAI,CAAC1zK,MAAM,CAACkH,aAAa,CACzE,IAAI,CAACwsK,aAAa,CAAC3E,kBAAAA,CAAoB4E,cAAAA,CACvCl1D,CAAAA,KAAAA,CAAMi1D,aAAa,CAAG,KACtB,CAAA,IAAI,CAAC1zK,MAAM,CAACkH,aAAa,CAAG,KAC5Bu3G,CAAAA,KAAAA,CAAMipC,cAAc,GACrB,CACA,IAAI,CAACmsB,mBAAmB,EAAA,CACxB,IAAI,CAACxC,qBAAqB,CAACrC,yBAAAA,CAC3BD,CAAAA,mBAAmBh9M,MAAM,CAAG,CAC5Bi9M,CAAAA,yBAAAA,CAA0Bj9M,MAAM,CAAG,EACpC,CACA07M,uBAAAA,EAA0B,CACzB,IAAI,CAAC/O,iBAAiB,CAAC/yJ,MAAM,CAAC,IAAI,CAACiwJ,WAAW,CAAE,IAAI,CAACn9C,KAAK,CAACw7B,QAAQ,EACpE,CACAg6B,sBAAAA,CAAuB9V,IAAI,CAAE,CAC5B,MAAMx0L,GAAAA,CAAMw0L,IAAAA,CAAK0F,SAAS,CAAC9xM,MAAM,CACjC,MAAM0sJ,KAAAA,CAAQ,IAAI,CAACA,KAAK,CACxB,MAAMy1D,aAAAA,CAAgBz1D,MAAMipC,cAAc,CAC1C,IAAK,IAAI51L,GAAK,CAAA,CAAGA,EAAAA,CAAK6X,GAAAA,CAAK7X,EAAAA,EAAAA,CAAM,CAChC,MAAM4yF,KAAAA,CAAQy5G,IAAAA,CAAK0F,SAAS,CAAC/xM,EAAAA,CAC7B4yF,CAAAA,KAAAA,CAAMgjG,cAAc,CAAGwsB,cACxB,CACA/V,IAAAA,CAAKgW,OAAO,GACb,CACAnhJ,WAAAA,EAAc,CACb,IAAI,CAACohJ,qBAAqB,CAAG,KAAA,CAC7B,IAAI,CAAC/L,qBAAqB,CAAC,IAAI,CAAC5pD,KAAK,CAACs7B,wBAAwB,CAAA,CAC9D,IAAI,CAACs6B,MAAM,CAACrG,eAAe,CAACxzM,KAAK,GAClC,CApdA,WAAA,CAAYolC,cAAc,CAAE6+G,KAAK,CAAE,CAbnC21D,sBAAAA,uBAAAA,CAAwB,KAAA,CAAA,CACxB31D,sBAAAA,OAAAA,CAAAA,MAAAA,CAAAA,CACA41D,gBAAAA,CAAAA,IAAAA,CAAAA,SAAAA,MAAAA,CAAAA,CACA/I,sBAAAA,wBAAAA,CAAAA,QACAtxB,gBAAAA,CAAAA,IAAAA,CAAAA,QAAAA,CAAS,EAAE,CAAA,CACX4hB,sBAAAA,aAAAA,CAAc,EAAE,EAChBiX,gBAAAA,CAAAA,IAAAA,CAAAA,qBAAAA,CAAsC,IAAIyB,OAAAA,CAAAA,CAC1CvB,gBAAAA,CAAAA,IAAAA,CAAAA,uBAAAA,CAAwB,IAAIxoK,kBAC5ByoK,gBAAAA,CAAAA,IAAAA,CAAAA,iBAAAA,CAAkB,EAAE,CAAA,CACpBC,sBAAAA,uBAAAA,CAAwB,EAAE,CAAA,CAC1BsB,gBAAAA,CAAAA,IAAAA,CAAAA,qBAAqB,CAAC,CAAA,CAAE,EACxB3E,gBAAAA,CAAAA,IAAAA,CAAAA,WAAAA,CAAY,IAAI/X,SAAAA,CAAU,GAAA,CAAA,CAAA,CAC1BsX,gBAAAA,CAAAA,IAAAA,CAAAA,gBAAAA,CAAiB,KAEhB,CAAA,IAAI,CAACnvK,MAAM,CAAGJ,cACd,CAAA,IAAI,CAAC6+G,KAAK,CAAGA,KACb,CAAA,IAAI,CAAC6sD,sBAAsB,CAAG,IAAIvC,sBAAAA,CAAuBnpK,cAAAA,CACzD,CAAA,IAAI,CAAC8+J,iBAAiB,CAAG,IAAI9E,iBAAAA,CAAkBh6J,cAAAA,CAC/C,CAAA,IAAI,CAACmoK,cAAc,CAAG,IAAIzK,cAC1B,CAAA,IAAI,CAACI,cAAc,CAAG,IAAI0F,eAAe,IAAI,CAAE,IAAI,CAAC1E,iBAAiB,CACrE,CAAA,IAAI,CAAC8N,oBAAoB,CAAG,IAAIvO,oBAAoB,IAAI,CAAE,IAAI,CAACP,cAAc,CAC7E,CAAA,IAAI,CAACiP,0BAA0B,CAAG,IAAItM,0BAA0B,IAAI,CAAE,IAAI,CAAC3C,cAAc,CACzF,CAAA,IAAI,CAAC2W,MAAM,CAAG,IAAI5I,MAAAA,CAAO,IAAI,CAAA,CAC7B,GAAI,IAAI,CAAChtD,KAAK,CAACs7B,wBAAwB,CAAE,CACxC,IAAI,CAACm1B,0BAA0B,CAAG,IAAI/D,yBACrC,IAAI,CAACnrK,MAAM,CACX,IAAI,CACJ,IAAI,CAAC09J,cAAc,CACnB,IAAI,CAAC8O,oBAAoB,CACzB,IAAI,CAAC9N,iBAAgB,EAEvB,CACA,IAAI,CAAC1lD,iBAAiB,CAAG,IACzB,CAAA,IAAI,CAACw7D,SAAS,CAAG,CACjB,CAAA,IAAI,CAACC,UAAU,CAAG,CAClB,CAAA,IAAI,CAACC,SAAS,CAAG,CACjB,CAAA,IAAI,CAACC,cAAc,CAAG,CACtB,CAAA,IAAI,CAACC,kBAAkB,CAAG,CAC1B,CAAA,IAAI,CAACC,2BAA2B,CAAG,CACnC,CAAA,IAAI,CAAChO,gBAAgB,CAAG,CACxB,CAAA,IAAI,CAACwL,cAAc,CAAG,CACtB,CAAA,IAAI,CAACvL,mBAAmB,CAAG,CAC3B,CAAA,IAAI,CAACgG,iBAAiB,CAAG,CACzB,CAAA,IAAI,CAACgI,mBAAmB,CAAG,CAC3B,CAAA,IAAI,CAAC/G,gBAAgB,CAAG,CACxB,CAAA,IAAI,CAACgH,cAAc,CAAG,CACtB,CAAA,IAAI,CAACC,YAAY,CAAG,CAAA,CACpB,MAAMz7M,KAAAA,CAAQqmC,cAAAA,CAAermC,KAC7B,CAAA,IAAI,CAAC+4M,aAAa,CAAG/4M,MAAM6mC,OAAO,CAAC,iBAAA,CACnC,CAAA,IAAI,CAACkzK,aAAa,CAAG/5M,KAAAA,CAAM6mC,OAAO,CAAC,cAAA,CACnC,CAAA,IAAI,CAACmzK,cAAc,CAAGh6M,KAAAA,CAAM6mC,OAAO,CAAC,gBACpC,CAAA,IAAI,CAAC+vK,SAAS,CAAG52M,KAAAA,CAAM6mC,OAAO,CAAC,oBAAA,CAC/B,CAAA,IAAI,CAACoyK,OAAO,CAAG,IAAInnM,aAAa,CAAA,CAChC,CAAA,IAAI,CAAConM,SAAS,CAAGl5M,KAAAA,CAAM6mC,OAAO,CAAC,gBAC/B,CAAA,IAAI,CAAC6vK,MAAM,CAAG12M,MAAM6mC,OAAO,CAAC,mBAAA,CAC5B,CAAA,IAAI,CAAC8vK,YAAY,CAAG32M,KAAAA,CAAM6mC,OAAO,CAAC,yBAAA,CAClC,CAAA,IAAI,CAACgwK,MAAM,CAAG72M,MAAM6mC,OAAO,CAAC,cAC5B,CAAA,IAAI,CAACiwK,OAAO,CAAG92M,KAAAA,CAAM6mC,OAAO,CAAC,cAAA,CAC7B,CAAA,IAAI,CAACkwK,UAAU,CAAG/2M,KAAAA,CAAM6mC,OAAO,CAAC,uBAAA,CAChC,CAAA,IAAI,CAACmwK,OAAO,CAAGh3M,KAAAA,CAAM6mC,OAAO,CAAC,kBAC7B,CAAA,IAAI,CAACowK,QAAQ,CAAGj3M,KAAAA,CAAM6mC,OAAO,CAAC,UAAA,CAC9B,CAAA,IAAI,CAACswK,YAAY,CAAG,IAAIrlM,aAAa,CAAA,CACrC,CAAA,IAAI,CAAColM,cAAc,CAAGl3M,KAAAA,CAAM6mC,OAAO,CAAC,gBACpC,CAAA,IAAI,CAACywK,YAAY,CAAG,IAAIxlM,YAAAA,CAAa,EACrC,CAAA,IAAI,CAACylM,cAAc,CAAGv3M,KAAAA,CAAM6mC,OAAO,CAAC,eAAA,CACpC,CAAA,IAAI,CAACuyK,WAAW,CAAGp5M,KAAAA,CAAM6mC,OAAO,CAAC,cACjC,IAAI,CAACuyK,WAAW,CAACn/J,QAAQ,CAAC,CAAA,CAC1B,CAAA,IAAI,CAACm8J,sBAAsB,CAAG,CAC9B,CAAA,IAAI,CAACE,kBAAkB,CAAG,IAAI17L,IAC9B,CAAA,IAAI,CAAC47L,mBAAmB,CAAG,IAAI1kM,aAAa,CAAA,CAC5C,CAAA,IAAI,CAAC2kM,iBAAiB,CAAGz2M,KAAAA,CAAM6mC,OAAO,CAAC,kBACvC,CAAA,IAAI,CAAC0zK,kBAAkB,CAAGv6M,KAAAA,CAAM6mC,OAAO,CAAC,gBAAA,CACxC,CAAA,IAAI,CAACgxK,WAAW,CAAG73M,KAAAA,CAAM6mC,OAAO,CAAC,WAAA,CACjC,CAAA,IAAI,CAAC+wK,YAAY,CAAG53M,KAAAA,CAAM6mC,OAAO,CAAC,oBAAA,CAClC,CAAA,IAAI,CAAC2wK,UAAU,CAAGx3M,KAAAA,CAAM6mC,OAAO,CAAC,UAAA,CAChC,CAAA,IAAI,CAAC2xK,gBAAgB,CAAGx4M,MAAM6mC,OAAO,CAAC,kBAAA,CACtC,CAAA,IAAI,CAAC6xK,cAAc,CAAG14M,KAAAA,CAAM6mC,OAAO,CAAC,gBAAA,CACpC,CAAA,IAAI,CAAC+xK,cAAc,CAAG54M,KAAAA,CAAM6mC,OAAO,CAAC,kBAAA,CACpC,CAAA,IAAI,CAAC60K,SAAS,CAAG,IAAI/c,SACrB,CAAA,IAAI,CAACgd,iBAAiB,CAAG37M,KAAAA,CAAM6mC,OAAO,CAAC,cAAA,EACxC,CAkZD,CAAA,CAEA,IAAI+0K,eAAAA,CAAkB,KAAA,CAoBrBC,YAAYpI,eAAe,CAAEtoH,KAAK,CAAE,CACnC,IAAI,CAACqrB,UAAU,CAAGi9F,eAAAA,EAAiBjrC,kBAAoBr9E,KAAAA,CAAMq9E,gBAAgB,CAC7E,IAAI,CAAC5tG,UAAU,CAAG64I,eAAAA,EAAiB9qC,kBAAoBx9E,KAAAA,CAAMw9E,gBAAgB,CAC7E,IAAI,CAAC9tG,YAAY,CAAG44I,eAAAA,EAAiB3qC,kBAAAA,EAAsB39E,MAAM29E,mBAClE,CAVA,WAAA,CAAY2qC,eAAe,CAAEtoH,KAAK,CAAEguE,WAAW,CAAEx2G,YAAY,CAAE,CAb/D8wJ,gBAAAA,CAAAA,IAAAA,CAAAA,kBAAAA,MAAAA,CAAAA,CACAtoH,sBAAAA,OAAAA,CAAAA,QACAguE,gBAAAA,CAAAA,IAAAA,CAAAA,aAAAA,CAAAA,MAAAA,CAAAA,CACAx2G,sBAAAA,cAAAA,CAAAA,MAAAA,CAAAA,CACAotJ,gBAAAA,CAAAA,IAAAA,CAAAA,gBAAgB,IAAA,CAAA,CAEhBv5F,gBAAAA,CAAAA,IAAAA,CAAAA,YAAAA,CAAa,KAAA,CAAA,CACb57C,sBAAAA,YAAAA,CAAa,KAAA,CAAA,CACbC,sBAAAA,cAAAA,CAAe,KAAA,CAAA,CAEfihJ,sBAAAA,gBAAAA,CAAiB,KAAA,CAAA,CAEjBC,gBAAAA,CAAAA,IAAAA,CAAAA,eAAAA,CAAgB,MAEf,CAAA,IAAI,CAACtI,eAAe,CAAGA,eACvB,CAAA,IAAI,CAACtoH,KAAK,CAAGA,KACb,CAAA,IAAI,CAACguE,WAAW,CAAGA,WACnB,CAAA,IAAI,CAACx2G,YAAY,CAAGA,aACrB,CAMD,EAEA,IAAIq5J,iBAAAA,CAAoB,cAAc/gJ,UAAAA,CAiBrC,IAAIghJ,eAAAA,EAAkB,CACrB,OAAO,IAAI,CAACnM,gBAAgB,CAACt3M,MAAM,CAAG,CACvC,CACA0jN,kBAAAA,CAAmBC,eAAe,CAAE,CACnC,IAAI,CAACrM,gBAAgB,CAACz2M,IAAI,CAAC8iN,eAAAA,EAC5B,CACAC,SAAS3I,eAAe,CAAEtoH,KAAK,CAAEguE,WAAW,CAAEkjD,UAAAA,CAAa,IAAI,CAAE,CAChE,MAAMtqM,IAAAA,CAAO,IAAI6pM,gBAAgBnI,eAAAA,CAAiBtoH,KAAAA,CAAOguE,WAAAA,CAAa,IAAI,CAACx2G,YAAY,CAAA,CACvF,GAAI05J,UAAAA,CAAY,CACf,MAAMC,SAAAA,CAAY,IAAI,CAACxM,gBAAgB,CAACt3M,MAAM,GAAK,CAAA,CACnDuZ,IAAAA,CAAK8pM,WAAW,CAACS,SAAAA,CAAY7I,eAAAA,CAAkB,OAAQtoH,KAAAA,EACxD,CACA,IAAI,CAAC+wH,kBAAkB,CAACnqM,IAAAA,EACzB,CACAwqM,wBAAAA,EAA2B,CAC1B,KAAM,CAAEzwC,QAAQ,CAAEgkC,gBAAgB,CAAE,CAAG,IAAI,CAC3C,IAAK,IAAIv3M,EAAAA,CAAK,CAAA,CAAGA,GAAKu3M,gBAAAA,CAAiBt3M,MAAM,CAAED,EAAAA,EAAAA,CAAM,CACpD,MAAMwZ,IAAAA,CAAO+9L,gBAAgB,CAACv3M,EAAAA,CAAG,CACjC,MAAMk7M,gBAAkB1hM,IAAAA,CAAK0hM,eAAe,CAC5C,MAAM74C,OAAS64C,eAAAA,CAAgB74C,MAAM,CACrC,MAAM4hD,eAAAA,CAAkB,IAAI,CAAC1wC,QAAQ,CAACgvC,MAAM,CAAC5H,qBAAqB,CAACj+M,GAAG,CAAC2lK,QACvE,GAAI4hD,eAAAA,CAAiB,CACpB,IAAK,IAAIjlM,CAAAA,CAAI,CAAA,CAAGA,EAAIilM,eAAAA,CAAgBhkN,MAAM,CAAE+e,CAAAA,EAAAA,CAAK,CAChD,MAAMg4J,KAAAA,CAAQitC,eAAe,CAACjlM,CAAAA,CAAE,CAChC,GAAIu0J,SAASgvC,MAAM,CAACrG,eAAe,CAACx/M,GAAG,CAACs6K,KAAAA,CAAAA,GAAW3U,OAAQ,CAC1DkR,QAAAA,CAASgvC,MAAM,CAACrG,eAAe,CAACv1M,GAAG,CAACqwK,KAAAA,CAAO3U,MAAAA,CAAAA,CAC3C,MAAMkqB,UAAAA,CAAahZ,SAASsnC,0BAA0B,CAACtK,kBAAkB,CAACv5B,MAAO3U,MAAAA,CAAAA,CACjF,GAAIkqB,WAAY,CACf,IAAI,CAAC5qH,YAAY,CAAC7gE,IAAI,CAACyrL,YACxB,CACD,CACD,CACD,CACD,CACD,CAQA23B,wBAAAA,EAA2B,CAC1B,IAAK,IAAIlkN,EAAAA,CAAK,CAAA,CAAGA,GAAK,IAAI,CAACu3M,gBAAgB,CAACt3M,MAAM,CAAED,EAAAA,EAAAA,CAAM,CACzD,MAAMwZ,IAAAA,CAAO,IAAI,CAAC+9L,gBAAgB,CAACv3M,EAAAA,CAAG,CACtC,GAAIwZ,IAAAA,CAAK+pM,cAAc,CAAE,CACxB,MAAMlhD,MAAAA,CAAS7oJ,IAAAA,CAAK0hM,eAAe,EAAE74C,MAAAA,CACrC,GAAIA,MAAAA,CAAQ,CACX,KAAM,CAAE1gG,YAAY,CAAE,CAAG0gG,MAAAA,CACzB,IAAK,IAAI3wH,CAAAA,CAAI,EAAGA,CAAAA,CAAIiwB,YAAAA,CAAa1hE,MAAM,CAAEyxC,CAAAA,EAAAA,CAAK,CAC7C,IAAI,CAACiwB,YAAY,CAAC7gE,IAAI,CAAC6gE,YAAY,CAACjwB,CAAAA,CAAE,EACvC,CACD,CACD,CACD,CACD,CACAyyK,YAAAA,EAAe,CACd,MAAM3qM,IAAAA,CAAO,IAAI,CAAC+9L,gBAAgB,CAAC,CAAA,CAAE,CACrC,GAAI/9L,IAAAA,CAAM,CACT,MAAM0hM,eAAAA,CAAkB1hM,KAAK0hM,eAAe,CAC5C,MAAM74C,MAAAA,CAAS64C,gBAAgB74C,MAAM,CACrC,MAAMv+F,iBAAAA,CAAoBu+F,MAAAA,CAAOv+F,iBAAiB,CAClD,MAAMsgJ,UAAAA,CAAa,IAAI,CAACr3C,aAAa,EAAE9sK,MAAAA,CAAS,CAAA,CAAI,MAAK,CACzD,IAAI,CAACujE,aAAa,CAACM,iBAAAA,EAAqBtqD,IAAAA,CAAKykG,UAAU,CAAGokD,MAAAA,CAAOpkD,UAAU,CAAG,MAAK,CAAGmmG,UAAAA,CAAAA,CACtF,IAAI,CAAC3gJ,aAAa,CAACK,iBAAAA,EAAqBtqD,KAAK6oD,UAAU,EAAI,CAAC,IAAI,CAACgiJ,YAAY,CAAGhiD,OAAOhgG,UAAU,CAAG,MAAK,CAAA,CACzG,IAAI,CAACsB,eAAe,CAACG,iBAAAA,EAAqBtqD,IAAAA,CAAK8oD,YAAY,CAAG+/F,OAAO//F,YAAY,CAAG,MAAK,EAC1F,CACD,CACApB,WAAAA,EAAc,CACb,KAAK,CAACA,cACN,IAAI,CAAC8iJ,wBAAwB,EAAA,CAC7B,IAAI,CAACE,wBAAwB,EAAA,CAC7B,IAAI,CAACC,YAAY,EAAA,CACjB,KAAM,CAAE5wC,QAAQ,CAAE+wC,gBAAgB,CAAE/M,gBAAgB,CAAE,CAAG,IAAI,CAC7D,IAAK,IAAIv3M,GAAK,CAAA,CAAGA,EAAAA,CAAKu3M,iBAAiBt3M,MAAM,CAAED,KAAM,CACpD,MAAMwZ,IAAAA,CAAO+9L,gBAAgB,CAACv3M,EAAAA,CAAG,CACjC,GAAIskN,gBAAAA,CAAiBC,SAAS,CAAC/qM,IAAAA,CAAKo5E,KAAK,CAAEp5E,IAAAA,CAAKonJ,WAAW,CAAA,CAAG,CAC7D2S,QAAAA,CAASgvC,MAAM,CAAC3G,uBAAuB,CAACpiM,IAAAA,CAAK0hM,eAAe,CAAC74C,MAAM,CAAE7oJ,KAAKo5E,KAAK,EAChF,CACD,CACD,CACAzxB,MAAAA,EAAS,CACR,KAAM,CAAEo2I,gBAAgB,CAAE,CAAG,IAAI,CACjC,GAAI,IAAI,CAACiN,kBAAkB,CAAE,CAC5B,KAAM,CAAE/8M,KAAK,CAAE,CAAG,IAAI,CAACymC,MAAM,CAC7B,IAAI,CAAC6+H,aAAa,CAACrgK,OAAO,CAAE5J,IAAAA,EAAAA,CAC3B2E,KAAAA,CAAM6mC,OAAO,CAACw4G,wBAAwB,CAAChkJ,IAAAA,CAAK,CAAA,CAAE4+C,QAAQ,CAAC,IAAA,EACxD,CAAA,EACD,CACA,IAAK,IAAI1hD,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAKu3M,iBAAiBt3M,MAAM,CAAED,EAAAA,EAAAA,CAAM,CACpD,MAAMwZ,IAAAA,CAAO+9L,gBAAgB,CAACv3M,EAAAA,CAAG,CACjC,GAAIwZ,IAAAA,CAAK+pM,cAAc,CAAE,CACxB,IAAI,CAAC52D,KAAK,CAAC3jJ,IAAI,CAAC67I,eAAAA,CAAiBrrI,IAAAA,CAAK0hM,eAAe,EACtD,CACD,CACD,CACA95I,SAAU,CACT,KAAM,CAAEkjJ,gBAAgB,CAAE/M,gBAAgB,CAAE,CAAG,IAAI,CACnD,IAAK,IAAIv3M,GAAK,CAAA,CAAGA,EAAAA,CAAKu3M,gBAAAA,CAAiBt3M,MAAM,CAAED,EAAAA,EAAAA,CAAM,CACpD,MAAMwZ,IAAAA,CAAO+9L,gBAAgB,CAACv3M,EAAAA,CAAG,CACjC,MAAM4yF,KAAAA,CAAQp5E,KAAKo5E,KAAK,CACxB,GAAI0xH,gBAAAA,CAAiBC,SAAS,CAAC3xH,KAAAA,CAAOp5E,IAAAA,CAAKonJ,WAAW,EAAG,CACxD,IAAI,CAAC6jD,qBAAqB,CAACjrM,KAAMxZ,EAAAA,GAAO,CAAA,EACzC,CACD,CACD,CACAqhE,KAAAA,EAAQ,CACP,MAAM0rG,aAAAA,CAAgB,IAAI,CAACA,aAAa,CACxC,GAAI,IAAI,CAAC23C,mBAAmB,EAAI33C,eAAe9sK,MAAAA,CAAQ,CACtD,KAAM,CAAEmqD,YAAY,CAAE,CAAG,IAAI,CAC7B,IAAK,IAAIpqD,EAAAA,CAAK,EAAGA,EAAAA,CAAK+sK,aAAAA,CAAc9sK,MAAM,CAAED,KAAM,CACjD,MAAM2kN,YAAc79D,wBAAwB,CAACimB,aAAa,CAAC/sK,EAAAA,CAAG,CAAC,CAC/D,MAAMkwC,OAAAA,CAAUka,YAAAA,CAAa+L,cAAc,CAACn2D,GAAK,CAAA,CAAA,CACjD,IAAI,CAACkuC,MAAM,CAACzmC,KAAK,CAAC6mC,OAAO,CAACq2K,WAAAA,CAAAA,CAAajjK,QAAQ,CAACxR,OAAAA,CAAAA,CAChD,GAAI68H,aAAa,CAAC/sK,EAAAA,CAAG,GAAK6mJ,kBAAAA,CAAoB,CAC7C,IAAI,CAAC69D,mBAAmB,CAACh5C,oBAAoB,CAACx7H,OAAAA,CAAS,IAAI,CAAChC,MAAM,CAAC8E,aAAa,EACjF,CACD,CACD,CACA,IAAK,IAAIhzC,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAK,IAAI,CAACu3M,gBAAgB,CAACt3M,MAAM,CAAED,EAAAA,EAAAA,CAAM,CACzD,MAAMwZ,IAAAA,CAAO,IAAI,CAAC+9L,gBAAgB,CAACv3M,EAAAA,CAAG,CACtC,GAAIwZ,IAAAA,CAAKgqM,aAAa,CAAE,CACvB,IAAI,CAAC72D,KAAK,CAAC3jJ,IAAI,CAAC87I,gBAAAA,CAAkBtrI,IAAAA,CAAK0hM,eAAe,EACvD,CACD,CACA,IAAI,CAACv5I,YAAY,CAAC1hE,MAAM,CAAG,EAC5B,CACAwkN,qBAAAA,CAAsBjrM,IAAI,CAAEuqM,SAAS,CAAE,CACtC,KAAM,CAAExwC,QAAQ,CAAE5mB,KAAK,CAAE,CAAG,IAAI,CAChC,MAAMz+G,MAAAA,CAASqlI,SAASrlI,MAAM,CAC9B,KAAM,CAAE0kD,KAAK,CAAEguE,WAAW,CAAEs6C,eAAe,CAAE,CAAG1hM,IAAAA,CAChD,GAAI0hM,eAAAA,CAAiB,CACpB,MAAM0J,uBAAAA,CAA0B1J,eAAAA,CAAgBrvC,eAAe,CAC/D,MAAMg5C,mBAAAA,CAAsB3J,eAAAA,CAAgB7gH,WAAW,CACvD,MAAMyqH,sBAAwB5J,eAAAA,CAAgBvlC,YAAY,CAAC5I,aAAa,CACxE,GAAI,IAAI,CAACA,aAAa,GAAK,MAAK,CAAGmuC,eAAAA,CAAgBvlC,YAAY,CAAC5I,aAAa,CAAG,IAAI,CAACA,aAAa,CAClG,GAAI,IAAI,CAAClB,eAAe,GAAK,MAAK,CAAGqvC,gBAAgBrvC,eAAe,CAAG,IAAI,CAACA,eAAe,CAC3F,GAAI,IAAI,CAACxxE,WAAW,GAAK,OAAQ6gH,eAAAA,CAAgB7gH,WAAW,CAAG,IAAI,CAACA,WAAW,CAC/EsyD,MAAM3jJ,IAAI,CAAC+7I,sBAAuBm2D,eAAAA,CAAiBtoH,KAAAA,CAAOguE,WAAAA,CAAAA,CAC1D,MAAMpvJ,SAAW,CAChBgmM,aAAAA,CAAeh+L,IAAAA,CAAKg+L,aAAY,CACjC,CACA,MAAMz3C,UAAAA,CAAam7C,eAAAA,CAAgB74C,MAAM,CAACxX,cAAc,EAAExlJ,KAAAA,EAASu8I,cAAAA,CACnE,GAAI,CAACmiE,SAAAA,EAAa,CAAC7I,eAAAA,CAAgB74C,MAAM,CAACv+F,iBAAiB,CAAE,CAC5DtyD,SAASysG,UAAU,CAAGzkG,IAAAA,CAAKykG,UAAU,CACrCzsG,QAAAA,CAAS6wD,UAAU,CAAG7oD,IAAAA,CAAK6oD,UAAU,CACrC7wD,QAAAA,CAAS8wD,YAAY,CAAG9oD,IAAAA,CAAK8oD,aAAY,CAE1C,MAAMlY,YAAAA,CAAe5wC,IAAAA,CAAK4wC,YAAY,EAAIlc,OAAOsjB,UAAU,CAC3D+hH,SAASwxC,kBAAkB,CAC1B7J,gBAAgB74C,MAAM,CACtBj4G,YAAAA,CACAwoC,KAAAA,CACAguE,YACAb,UAAAA,CACAvuJ,QAAAA,CAAAA,CAED08B,MAAAA,CAAOie,aAAa,CAAC9P,UAAAA,CAAWkC,OAAO,CAAA,CACvCrQ,MAAAA,CAAOif,eAAe,CAAC,IAAA,CAAM,MAC7Bjf,MAAAA,CAAO6uD,kBAAkB,CAAC,KAAA,CAAA,CAC1B4vD,KAAAA,CAAM3jJ,IAAI,CAACg8I,uBAAwBk2D,eAAAA,CAAiBtoH,KAAAA,CAAOguE,WAAAA,CAAAA,CAC3D,GAAI,IAAI,CAACiL,eAAe,GAAK,OAAQqvC,eAAAA,CAAgBrvC,eAAe,CAAG+4C,uBAAAA,CACvE,GAAI,IAAI,CAACvqH,WAAW,GAAK,OAAQ6gH,eAAAA,CAAgB7gH,WAAW,CAAGwqH,mBAAAA,CAC/D,GAAI,IAAI,CAAC93C,aAAa,GAAK,OAAQmuC,eAAAA,CAAgBvlC,YAAY,CAAC5I,aAAa,CAAG+3C,sBACjF,CACD,CA3KA,WAAA,CAAY52K,MAAM,CAAEo2K,gBAAgB,CAAE33D,KAAK,CAAE4mB,QAAQ,CAAE,CACtD,KAAK,CAACrlI,QAXPo2K,gBAAAA,CAAAA,IAAAA,CAAAA,kBAAAA,CAAAA,MAAAA,CAAAA,CACA33D,gBAAAA,CAAAA,IAAAA,CAAAA,QAAAA,MAAAA,CAAAA,CACA4mB,gBAAAA,CAAAA,IAAAA,CAAAA,UAAAA,CAAAA,MAAAA,CAAAA,CACAgkC,gBAAAA,CAAAA,IAAAA,CAAAA,kBAAAA,CAAmB,EAAE,EACrB1rC,gBAAAA,CAAAA,IAAAA,CAAAA,iBAAAA,CAAAA,MAAAA,CAAAA,CACAxxE,sBAAAA,aAAAA,CAAAA,QACA0yE,gBAAAA,CAAAA,IAAAA,CAAAA,eAAAA,CAAAA,MAAAA,CAAAA,CACA23C,gBAAAA,CAAAA,IAAAA,CAAAA,qBAAAA,CAAsB,IAAA,CAAA,CACtBF,sBAAAA,oBAAAA,CAAqB,KAAA,CAAA,CACrBH,gBAAAA,CAAAA,IAAAA,CAAAA,cAAAA,CAAe,MAGd,CAAA,IAAI,CAACC,gBAAgB,CAAGA,gBACxB,CAAA,IAAI,CAAC33D,KAAK,CAAGA,KACb,CAAA,IAAI,CAAC4mB,QAAQ,CAAGA,SACjB,CAuKD,CAAA,CAEA,IAAIyxC,uBAAAA,CAA0B,cAAcnkJ,SAAAA,CAM3CO,OAAAA,EAAU,CACT,MAAM6jJ,YAAAA,CAAe,IAAI,CAACA,YAAY,CACtC,MAAM5iD,MAAAA,CAAS4iD,YAAAA,CAAa5iD,MAAM,CAClCA,MAAAA,CAAO6iD,gBAAgB,GACxB,CATA,YAAYh3K,MAAM,CAAEqlI,QAAQ,CAAE0xC,YAAY,CAAE,CAC3C,KAAK,CAAC/2K,MAAAA,CACN,CAAA,IAAI,CAACqlI,QAAQ,CAAGA,QAChB,CAAA,IAAI,CAAC0xC,YAAY,CAAGA,aACrB,CAMD,CAAA,CAEA,IAAIE,SAAW,IAAI9oK,UAAAA,CACnB,IAAI+oK,OAAAA,CAAU,EAAE,CAChB,SAASC,6BAAAA,CAA8Bh7J,UAAU,CAAEi7J,eAAe,CAAA,CACjE,GAAIj7J,UAAAA,CAAW1M,sBAAsB,CAAE,CACtC,OAAO0M,UACR,CACA,MAAM/R,KAAAA,CAAQ8sK,OAAO,CAACE,eAAAA,CAAgB,GAAKF,OAAO,CAACE,eAAAA,CAAgB,CAAmB,IAAIl9M,GAAI,CAAA,CAC9F,MAAML,GAAAA,CAAMsiD,UAAAA,CAAWtiD,GAAG,CAC1B,IAAIw9M,MAAAA,CAASjtK,KAAAA,CAAM57C,GAAG,CAACqL,GAAAA,CAAAA,CACvB,GAAI,CAACw9M,MAAAA,CAAQ,CACZJ,QAAAA,CAASpmN,IAAI,CAACsrD,UAAAA,CAAAA,CACd86J,SAASpoK,aAAa,CAAC,KAAA,CAAO,KAAA,CAAO,MAAO,KAAA,CAAA,CAC5CwoK,MAAAA,CAASl7J,UAAAA,CAAWr1C,KAAK,GACzB,IAAK,IAAIhV,GAAK,CAAA,CAAGA,EAAAA,CAAKslN,gBAAiBtlN,EAAAA,EAAAA,CAAM,CAC5CulN,MAAAA,CAAO3nK,aAAa,CAAC59C,EAAAA,CAAImlN,QAAAA,EAC1B,CACA7sK,KAAAA,CAAM3xC,GAAG,CAACoB,GAAAA,CAAKw9M,MAAAA,EAChB,CACA,OAAOA,MACR,CAEA,IAAIC,SAAAA,CAAY,CAAC,EAAE,CAAE,EAAE,CAAE,EAAE,CAAC,CAC5B,IAAIC,QAAAA,CAAW,IAAI3wM,MACnB,IAAI4wM,aAAAA,CAAgB,CACnB7L,SAAAA,CAAW,EAAE,CACb8L,eAAAA,CAAiB,EAAE,CACnBC,aAAAA,CAAe,EAAE,CACjBC,gBAAAA,CAAkB,EAAE,CACpBn9M,MAAO,UAAA,CACN,IAAI,CAACmxM,SAAS,CAAC55M,MAAM,CAAG,CACxB,CAAA,IAAI,CAAC0lN,eAAe,CAAC1lN,MAAM,CAAG,CAC9B,CAAA,IAAI,CAAC2lN,aAAa,CAAC3lN,MAAM,CAAG,CAC5B,CAAA,IAAI,CAAC4lN,gBAAgB,CAAC5lN,MAAM,CAAG,EAChC,CACD,EACA,SAAS6lN,8BAAAA,CAA+Br6C,UAAU,CAAA,CACjD,MAAM32H,OAAAA,CAAU,EAAE,CAClB,IAAK,IAAI90C,EAAAA,CAAK,CAAA,CAAGA,GAAKyrK,UAAAA,CAAY,EAAEzrK,EAAAA,CAAI,CACvC,MAAMV,CAAAA,CAAIC,IAAAA,CAAKud,IAAI,CAAC9c,EAAAA,CAAK,IAAOT,IAAAA,CAAKud,IAAI,CAAC2uJ,UAAAA,CAAAA,CAC1C32H,QAAQh0C,IAAI,CAACxB,CAAAA,EACd,CACA,OAAOw1C,OACR,CACA,SAASixK,gCAAAA,CAAiCt6C,UAAU,CAAA,CACnD,MAAM32H,QAAU,EAAE,CAClB,IAAK,IAAI90C,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAKyrK,WAAYzrK,EAAAA,EAAAA,CAAM,CACvC,MAAMsmM,MAAAA,CAAStmM,EAAAA,CAAKyrK,WACpB,MAAMrwJ,MAAAA,CAAS7b,IAAAA,CAAKud,IAAI,CAACwpL,MAAAA,CAASA,MAAAA,CAAAA,CAClCxxJ,QAAQh0C,IAAI,CAACsa,QACd,CACA,OAAO05B,OACR,CACA,IAAIkxK,eAAAA,CAAkB,cAAc7I,QAAAA,CAsDnC9vK,OAAAA,EAAU,CACT,KAAK,CAACA,OAAAA,GACP,CACA44K,qBAAqBt5D,KAAK,CAAE,CAC3B,MAAMu5D,cAAAA,CAAiB,IAAI,CAACC,YAAY,CACxCV,QAAAA,CAASpwM,MAAM,CAACs3I,KAAAA,CAAM05C,YAAY,CAClC6f,CAAAA,cAAc,CAAC,CAAA,CAAE,CAAGT,SAASnmN,CAC7B4mN,CAAAA,cAAc,CAAC,EAAE,CAAGT,QAAAA,CAASnyM,CAC7B4yM,CAAAA,cAAc,CAAC,CAAA,CAAE,CAAGT,SAAS7oN,CAAC,CAC9B,GAAI+vJ,KAAAA,CAAM0tD,aAAa,CAAE,CACxB,IAAK,IAAIr6M,EAAAA,CAAK,EAAGA,EAAAA,CAAK,CAAA,CAAGA,EAAAA,EAAAA,CAAM,CAC9BkmN,cAAc,CAAClmN,EAAAA,CAAG,EAAI2sJ,KAAAA,CAAMy5D,iBAAgB,CAE9C,CACA,IAAI,CAACC,SAAS,CAAC3kK,QAAQ,CAACwkK,cAAAA,CAAAA,CACxB,IAAI,CAACI,iBAAiB,CAAC5kK,QAAQ,CAACirG,KAAAA,CAAM0tD,aAAa,CAAG1tD,KAAAA,CAAM45D,eAAe,CAAG55D,KAAAA,CAAMo+B,eAAe,CAAA,CACnG,IAAI,CAACy7B,uBAAuB,CAAC9kK,QAAQ,CAACirG,MAAM85D,mBAAmB,CAAC9nM,IAAI,EACrE,CACA+nM,aAAAA,CAAcj/M,KAAK,CAAEzH,EAAE,CAAE,CACxB,MAAMg3K,KAAAA,CAAQ,CAAC,KAAK,EAAEh3K,EAAAA,CAAG,CAAC,CAC1B,IAAI,CAAC2mN,YAAY,CAAC3mN,EAAAA,CAAG,CAAGyH,KAAAA,CAAM6mC,OAAO,CAAC,CAAC,EAAE0oI,KAAAA,CAAM,MAAM,CAAC,CACtD,CAAA,IAAI,CAACo4B,QAAQ,CAACpvM,EAAAA,CAAG,CAAG,IAAIuZ,YAAAA,CAAa,CAAA,CACrC,CAAA,IAAI,CAACqtM,UAAU,CAAC5mN,EAAAA,CAAG,CAAGyH,MAAM6mC,OAAO,CAAC,CAAC,EAAE0oI,MAAM,UAAU,CAAC,CACxD,CAAA,IAAI,CAAC6vC,gBAAgB,CAAC7mN,EAAAA,CAAG,CAAGyH,MAAM6mC,OAAO,CAAC,CAAC,EAAE0oI,MAAM,UAAU,CAAC,CAC9D,CAAA,IAAI,CAAC8vC,mBAAmB,CAAC9mN,EAAAA,CAAG,CAAGyH,MAAM6mC,OAAO,CAAC,CAAC,EAAE0oI,MAAM,aAAa,CAAC,CACpE,CAAA,IAAI,CAAC+vC,mBAAmB,CAAC/mN,EAAAA,CAAG,CAAGyH,KAAAA,CAAM6mC,OAAO,CAAC,CAAC,EAAE0oI,MAAM,aAAa,CAAC,CACpE,CAAA,IAAI,CAACgwC,oBAAoB,CAAChnN,EAAAA,CAAG,CAAGyH,KAAAA,CAAM6mC,OAAO,CAAC,CAAC,EAAE0oI,KAAAA,CAAM,gBAAgB,CAAC,CACxE,CAAA,IAAI,CAACiwC,uBAAuB,CAACjnN,EAAAA,CAAG,CAAGyH,KAAAA,CAAM6mC,OAAO,CAAC,CAAC,EAAE0oI,KAAAA,CAAM,iBAAiB,CAAC,CAC5E,CAAA,IAAI,CAACkwC,aAAa,CAAClnN,EAAAA,CAAG,CAAGyH,KAAAA,CAAM6mC,OAAO,CAAC,CAAC,EAAE0oI,KAAAA,CAAM,OAAO,CAAC,CACxD,CAAA,IAAI,CAACk7B,QAAQ,CAAClyM,GAAG,CAAG,IAAIuZ,aAAa,CAAA,CACrC,CAAA,IAAI,CAAC4tM,UAAU,CAACnnN,EAAAA,CAAG,CAAGyH,KAAAA,CAAM6mC,OAAO,CAAC,CAAC,EAAE0oI,KAAAA,CAAM,SAAS,CAAC,CACvD,CAAA,IAAI,CAACowC,UAAU,CAACpnN,EAAAA,CAAG,CAAG,IAAIuZ,YAAAA,CAAa,CAAA,CACvC,CAAA,IAAI,CAAC8tM,YAAY,CAACrnN,EAAAA,CAAG,CAAGyH,KAAAA,CAAM6mC,OAAO,CAAC,CAAC,EAAE0oI,KAAAA,CAAM,UAAU,CAAC,CAC1D,CAAA,IAAI,CAACswC,WAAW,CAACtnN,EAAAA,CAAG,CAAG,IAAIuZ,YAAAA,CAAa,EACxC,CAAA,IAAI,CAACguM,aAAa,CAACvnN,EAAAA,CAAG,CAAGyH,MAAM6mC,OAAO,CAAC,CAAC,EAAE0oI,KAAAA,CAAM,WAAW,CAAC,CAC5D,CAAA,IAAI,CAACwwC,cAAc,CAACxnN,EAAAA,CAAG,CAAGyH,MAAM6mC,OAAO,CAAC,CAAC,EAAE0oI,MAAM,eAAe,CAAC,CACjE,CAAA,IAAI,CAACywC,eAAe,CAACznN,EAAAA,CAAG,CAAGyH,MAAM6mC,OAAO,CAAC,CAAC,EAAE0oI,MAAM,eAAe,CAAC,CAClE,CAAA,IAAI,CAAC0wC,aAAa,CAAC1nN,EAAAA,CAAG,CAAGyH,MAAM6mC,OAAO,CAAC,CAAC,EAAE0oI,MAAM,OAAO,CAAC,CACxD,CAAA,IAAI,CAAC2wC,gBAAgB,CAAC3nN,EAAAA,CAAG,CAAGyH,KAAAA,CAAM6mC,OAAO,CAAC,CAAC,EAAE0oI,MAAM,gBAAgB,CAAC,CACpE,CAAA,IAAI,CAAC4wC,mBAAmB,CAAC5nN,EAAAA,CAAG,CAAGyH,KAAAA,CAAM6mC,OAAO,CAAC,CAAC,EAAE0oI,KAAAA,CAAM,aAAa,CAAC,CACpE,CAAA,IAAI,CAAC6wC,mBAAmB,CAAC7nN,EAAAA,CAAG,CAAGyH,KAAAA,CAAM6mC,OAAO,CAAC,CAAC,EAAE0oI,KAAAA,CAAM,aAAa,CAAC,CACpE,CAAA,IAAI,CAAC8wC,mBAAmB,CAAC9nN,EAAAA,CAAG,CAAGyH,KAAAA,CAAM6mC,OAAO,CAAC,CAAC,EAAE0oI,KAAAA,CAAM,aAAa,CAAC,CACpE,CAAA,IAAI,CAAC+wC,uBAAuB,CAAC/nN,GAAG,CAAGyH,KAAAA,CAAM6mC,OAAO,CAAC,CAAC,EAAE0oI,KAAAA,CAAM,iBAAiB,CAAC,CAC5E,CAAA,IAAI,CAACgxC,qBAAqB,CAAChoN,GAAG,CAAGyH,KAAAA,CAAM6mC,OAAO,CAAC,CAAC,EAAE0oI,KAAAA,CAAM,uBAAuB,CAAC,CAChF,CAAA,IAAI,CAACixC,wBAAwB,CAACjoN,GAAG,CAAGyH,KAAAA,CAAM6mC,OAAO,CAAC,CAAC,EAAE0oI,KAAAA,CAAM,uBAAuB,CAAC,CACnF,CAAA,IAAI,CAACkxC,oBAAoB,CAACloN,EAAAA,CAAG,CAAGyH,KAAAA,CAAM6mC,OAAO,CAAC,CAAC,EAAE0oI,KAAAA,CAAM,mBAAmB,CAAC,CAC3E,CAAA,IAAI,CAACmxC,oBAAoB,CAACnoN,GAAG,CAAGyH,KAAAA,CAAM6mC,OAAO,CAAC,CAAC,EAAE0oI,KAAAA,CAAM,mBAAmB,CAAC,CAC3E,CAAA,IAAI,CAACoxC,oBAAoB,CAACpoN,GAAG,CAAGyH,KAAAA,CAAM6mC,OAAO,CAAC,CAAC,EAAE0oI,KAAAA,CAAM,mBAAmB,CAAC,EAC5E,CACAqxC,sBAAAA,CAAuB/1C,GAAG,CAAEg2C,GAAG,CAAEv6L,IAAI,CAAEw6L,MAAM,CAAEljM,GAAG,CAAE,CACnD,IAAI,CAAC6sL,QAAQ,CAACoW,GAAAA,CAAI,CAAC,CAAA,CAAE,CAAGC,OAAOxsM,CAAC,CAAGgS,IAAAA,CAAKhS,CAAC,CAAGsJ,GAC5C,CAAA,IAAI,CAAC6sL,QAAQ,CAACoW,GAAAA,CAAI,CAAC,CAAA,CAAE,CAAGC,MAAAA,CAAOvsM,CAAC,CAAG+R,IAAAA,CAAK/R,CAAC,CAAGqJ,GAC5C,CAAA,IAAI,CAAC6sL,QAAQ,CAACoW,GAAAA,CAAI,CAAC,CAAA,CAAE,CAAGC,MAAAA,CAAOtsM,CAAC,CAAG8R,IAAAA,CAAK9R,CAAC,CAAGoJ,GAAAA,CAC5C,IAAI,CAAC8hM,UAAU,CAACmB,GAAAA,CAAI,CAAC5mK,QAAQ,CAAC,IAAI,CAACwwJ,QAAQ,CAACoW,GAAAA,CAAI,EAChD,MAAME,MAAAA,CAASl2C,GAAAA,CAAI5wJ,eAAe,CAAC,IAAI7F,IAAAA,CAAK,IAAC,CAAK,CAAA,CAAG,GACrD,CAAA,IAAI,CAACurM,UAAU,CAACkB,GAAAA,CAAI,CAAC,CAAA,CAAE,CAAGE,OAAOzsM,CAAC,CAAGsJ,GACrC,CAAA,IAAI,CAAC+hM,UAAU,CAACkB,GAAAA,CAAI,CAAC,EAAE,CAAGE,MAAAA,CAAOxsM,CAAC,CAAGqJ,GACrC,CAAA,IAAI,CAAC+hM,UAAU,CAACkB,IAAI,CAAC,CAAA,CAAE,CAAGE,MAAAA,CAAOvsM,CAAC,CAAGoJ,GAAAA,CACrC,IAAI,CAACgiM,YAAY,CAACiB,GAAAA,CAAI,CAAC5mK,QAAQ,CAAC,IAAI,CAAC0lK,UAAU,CAACkB,GAAAA,CAAI,EACpD,MAAMG,OAAAA,CAAUn2C,GAAAA,CAAI5wJ,eAAe,CAAC,IAAI7F,IAAAA,CAAK,EAAG,CAAA,CAAG,EAAA,CAAA,CACnD,CAAA,IAAI,CAACyrM,WAAW,CAACgB,IAAI,CAAC,CAAA,CAAE,CAAGG,OAAAA,CAAQ1sM,CAAC,CAAGsJ,GACvC,CAAA,IAAI,CAACiiM,WAAW,CAACgB,IAAI,CAAC,CAAA,CAAE,CAAGG,OAAAA,CAAQzsM,CAAC,CAAGqJ,GACvC,CAAA,IAAI,CAACiiM,WAAW,CAACgB,IAAI,CAAC,CAAA,CAAE,CAAGG,OAAAA,CAAQxsM,CAAC,CAAGoJ,GAAAA,CACvC,IAAI,CAACkiM,aAAa,CAACe,GAAAA,CAAI,CAAC5mK,QAAQ,CAAC,IAAI,CAAC4lK,WAAW,CAACgB,GAAAA,CAAI,EACvD,CACAI,oBAAAA,CAAqBC,IAAI,CAAEjuK,IAAI,CAAE2nH,MAAM,CAAE,CACxC,IAAIimD,IAAM,CAAA,CACV,MAAM7gN,KAAAA,CAAQ,IAAI,CAACymC,MAAM,CAACzmC,KAAK,CAC/B,IAAK,IAAIzH,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAK2oN,KAAK1oN,MAAM,CAAED,KAAM,CACxC,GAAI,EAAE2oN,IAAI,CAAC3oN,EAAAA,CAAG,CAAC06C,IAAI,CAAGA,IAAG,CAAA,CAAI,SAC7B,MAAMkuK,WAAAA,CAAcD,IAAI,CAAC3oN,GAAG,CAC5B,MAAMsyK,IAAMs2C,WAAAA,CAAYn3C,KAAK,CAAC9hB,iBAAiB,EAAA,CAC/C,GAAI,CAAC,IAAI,CAACg3D,YAAY,CAAC2B,GAAAA,CAAI,CAAE,CAC5B,IAAI,CAAC5B,aAAa,CAACj/M,KAAAA,CAAO6gN,GAAAA,EAC3B,CACA,IAAI,CAAC3B,YAAY,CAAC2B,GAAAA,CAAI,CAAC5mK,QAAQ,CAACknK,WAAAA,CAAYC,YAAY,EACxDv2C,GAAAA,CAAIxzJ,IAAI,CAAC8pM,WAAAA,CAAYriB,UAAU,CAAA,CAAE/wL,SAAS,CAAC,EAAC,CAAA,CAC5CozM,YAAYriB,UAAU,CAACnmM,SAAS,EAChC,CAAA,IAAI,CAACgvM,QAAQ,CAACkZ,GAAAA,CAAI,CAAC,CAAA,CAAE,CAAGM,WAAAA,CAAYriB,UAAU,CAACxqL,CAAC,CAChD,IAAI,CAACqzL,QAAQ,CAACkZ,IAAI,CAAC,CAAA,CAAE,CAAGM,WAAAA,CAAYriB,UAAU,CAACvqL,CAAC,CAChD,IAAI,CAACozL,QAAQ,CAACkZ,GAAAA,CAAI,CAAC,CAAA,CAAE,CAAGM,YAAYriB,UAAU,CAACtqL,CAAC,CAChD,IAAI,CAAC2qM,UAAU,CAAC0B,GAAAA,CAAI,CAAC5mK,QAAQ,CAAC,IAAI,CAAC0tJ,QAAQ,CAACkZ,GAAAA,CAAI,EAChD,GAAIM,WAAAA,CAAYtuC,KAAK,GAAKn/B,mBAAAA,CAAqB,CAC9C,IAAI,CAACktE,sBAAsB,CAAC/1C,IAAKg2C,GAAAA,CAAKM,WAAAA,CAAYriB,UAAU,CAAElkC,OAAOoP,KAAK,CAACvhC,WAAW,EAAA,CAAImyB,OAAOsO,OAAO,EACzG,CACA,GAAIi4C,WAAAA,CAAYruC,WAAW,CAAE,CAC5B,MAAMG,eAAAA,CAAkBkuC,YAAYjuC,aAAa,CAACtY,MAAAA,CAAQ,CAAA,CAAA,CAC1D,MAAM6Y,MAAAA,CAAS0tC,WAAAA,CAAYztC,qBAAqB,CAACT,iBACjD,IAAI,CAACmsC,gBAAgB,CAACyB,GAAAA,CAAI,CAAC5mK,QAAQ,CAACg5H,eAAAA,CAAgBsuB,YAAY,EAChE,IAAI,CAAC8d,mBAAmB,CAACwB,IAAI,CAAC5mK,QAAQ,CAACg5H,eAAAA,CAAgBE,YAAY,CAACj8J,IAAI,EACxE,IAAI,CAACqpM,qBAAqB,CAACM,GAAAA,CAAI,CAAC5mK,QAAQ,CAACknK,WAAAA,CAAY7U,oBAAoB,CAAA,CACzE,IAAI,CAACkU,wBAAwB,CAACK,GAAAA,CAAI,CAAC5mK,QAAQ,CAACknK,WAAAA,CAAY7Z,uBAAuB,CAAA,CAC/E,IAAI,CAACmZ,oBAAoB,CAACI,GAAAA,CAAI,CAAC5mK,QAAQ,CAACknK,WAAAA,CAAYt/B,WAAW,CAAA,CAC/D,IAAI,CAAC6+B,oBAAoB,CAACG,GAAAA,CAAI,CAAC5mK,QAAQ,CAAC,CAAA,CAAIknK,YAAYv/B,YAAY,CAAA,CACpE,IAAI,CAAC29B,oBAAoB,CAACsB,GAAAA,CAAI,CAAC5mK,QAAQ,CAACknK,WAAAA,CAAYE,eAAe,EACnE,GAAIF,WAAAA,CAAY9Y,OAAO,CAAE,CACxB,IAAI,CAACiY,uBAAuB,CAACO,GAAAA,CAAI,CAAC5mK,QAAQ,CAACknK,WAAAA,CAAYG,iBAAiB,EACxE,MAAMC,QAAAA,CAAWtuC,eAAAA,CAAgBsxB,YAAY,CAAC5hJ,YAAY,CAC1D,GAAI4+J,QAAAA,CAAU,CACb,IAAI,CAAC/B,uBAAuB,CAACqB,GAAAA,CAAI,CAAC5mK,QAAQ,CAACknK,WAAAA,CAAYK,YAAY,CAAGvuC,eAAAA,CAAgBsxB,YAAY,CAAC5hJ,YAAY,CAACvkC,KAAK,CAAG60J,eAAAA,CAAgBu1B,sBAAsB,EAC/J,CACA,MAAM2O,aAAegK,WAAAA,CAAYM,mBAAmB,CACpDtK,YAAAA,CAAa3+M,MAAM,CAAG,CACtB2+M,CAAAA,YAAY,CAAC,CAAA,CAAE,CAAGlkC,eAAAA,CAAgBu1B,sBAAsB,CACxD2O,YAAY,CAAC,CAAA,CAAE,CAAGlkC,eAAAA,CAAgBsxB,YAAY,CAACp7B,QAC/CguC,CAAAA,YAAY,CAAC,CAAA,CAAE,CAAGlkC,eAAAA,CAAgBsxB,YAAY,CAACx6B,SAC/CotC,CAAAA,YAAY,CAAC,CAAA,CAAE,CAAG,EAClB,IAAI,CAACkJ,mBAAmB,CAACQ,GAAAA,CAAI,CAAC5mK,QAAQ,CAACk9J,YAAAA,CAAAA,CACvC,MAAMuK,KAAAA,CAAQP,WAAAA,CAAYQ,mBAAmB,GAAKR,WAAAA,CAAYQ,mBAAmB,CAAG,IAAI7vM,YAAAA,CAAa,EAAC,CAAA,CACtG,IAAK,IAAIla,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAK,CAAA,CAAGA,KAAM,CAC9B,MAAMC,CAAAA,CAAID,EAAAA,CAAKupN,YAAYt/B,WAAW,CAAGs/B,WAAAA,CAAYjuC,aAAa,CAACtY,MAAAA,CAAQhjK,EAAAA,CAAAA,CAAI4wM,sBAAsB,CAAG,CACxGkZ,CAAAA,KAAK,CAAC9pN,EAAAA,CAAG,CAAGC,EAAI,CAAA,CAAIA,CAAAA,CAAIo7K,gBAAgBu1B,uBACzC,CACA,IAAI,CAACmY,oBAAoB,CAACE,IAAI,CAAC5mK,QAAQ,CAACynK,KAAAA,EACzC,CACA,MAAM72M,MAAAA,CAASs2M,WAAAA,CAAYS,mBAC3B/2M,CAAAA,MAAAA,CAAOrS,MAAM,CAAG,CAChBqS,CAAAA,MAAM,CAAC,CAAA,CAAE,CAAGs2M,YAAY1hB,iBACxB50L,CAAAA,MAAM,CAAC,EAAE,CAAG4oK,MAAAA,CAAOK,UACnBjpK,CAAAA,MAAM,CAAC,CAAA,CAAE,CAAG4oK,OAAOG,IACnB/oK,CAAAA,MAAM,CAAC,CAAA,CAAE,CAAG,EACZ,IAAI,CAACy0M,mBAAmB,CAACuB,GAAAA,CAAI,CAAC5mK,QAAQ,CAACpvC,MAAAA,EACxC,CACAg2M,GAAAA,GACD,CACA,OAAOA,GACR,CACAgB,qBAAAA,CAAsBh3C,GAAG,CAAEg2C,GAAG,CAAE,CAC/B,MAAME,MAAAA,CAASl2C,IAAI5wJ,eAAe,CAAC,IAAI7F,IAAAA,CAAK,IAAC,CAAK,CAAA,CAAG,CAAA,CAAA,CACrD,CAAA,IAAI,CAACurM,UAAU,CAACkB,GAAAA,CAAI,CAAC,CAAA,CAAE,CAAGE,OAAOzsM,CACjC,CAAA,IAAI,CAACqrM,UAAU,CAACkB,IAAI,CAAC,CAAA,CAAE,CAAGE,MAAAA,CAAOxsM,CAAC,CAClC,IAAI,CAACorM,UAAU,CAACkB,GAAAA,CAAI,CAAC,CAAA,CAAE,CAAGE,OAAOvsM,CAAC,CAClC,IAAI,CAACorM,YAAY,CAACiB,GAAAA,CAAI,CAAC5mK,QAAQ,CAAC,IAAI,CAAC0lK,UAAU,CAACkB,IAAI,CAAA,CACpD,MAAMG,QAAUn2C,GAAAA,CAAI5wJ,eAAe,CAAC,IAAI7F,IAAAA,CAAK,CAAA,CAAG,CAAA,CAAG,IACnD,CAAA,IAAI,CAACyrM,WAAW,CAACgB,GAAAA,CAAI,CAAC,CAAA,CAAE,CAAGG,QAAQ1sM,CACnC,CAAA,IAAI,CAACurM,WAAW,CAACgB,GAAAA,CAAI,CAAC,CAAA,CAAE,CAAGG,OAAAA,CAAQzsM,CAAC,CACpC,IAAI,CAACsrM,WAAW,CAACgB,GAAAA,CAAI,CAAC,EAAE,CAAGG,OAAAA,CAAQxsM,CAAC,CACpC,IAAI,CAACsrM,aAAa,CAACe,GAAAA,CAAI,CAAC5mK,QAAQ,CAAC,IAAI,CAAC4lK,WAAW,CAACgB,GAAAA,CAAI,EACvD,CACAiB,iBAAAA,CAAkB9hN,KAAK,CAAE+hN,IAAI,CAAElB,GAAG,CAAE,CACnC,MAAMh2C,GAAAA,CAAMk3C,IAAAA,CAAK/3C,KAAK,CAAC9hB,iBAAiB,EAAA,CACxC,GAAI,CAAC,IAAI,CAACg3D,YAAY,CAAC2B,GAAAA,CAAI,CAAE,CAC5B,IAAI,CAAC5B,aAAa,CAACj/M,MAAO6gN,GAAAA,EAC3B,CACA,IAAI,CAACpB,aAAa,CAACoB,GAAAA,CAAI,CAAC5mK,QAAQ,CAAC8nK,IAAAA,CAAKxuC,cAAc,CAAA,CACpD,IAAI,CAAC2rC,YAAY,CAAC2B,IAAI,CAAC5mK,QAAQ,CAAC8nK,IAAAA,CAAKX,YAAY,CAAA,CACjDv2C,GAAAA,CAAIrrJ,cAAc,CAACuiM,IAAAA,CAAK/wE,SAAS,CACjC,CAAA,IAAI,CAACy5D,QAAQ,CAACoW,IAAI,CAAC,CAAA,CAAE,CAAGkB,IAAAA,CAAK/wE,SAAS,CAAC18H,CACvC,CAAA,IAAI,CAACm2L,QAAQ,CAACoW,GAAAA,CAAI,CAAC,EAAE,CAAGkB,IAAAA,CAAK/wE,SAAS,CAACz8H,CAAC,CACxC,IAAI,CAACk2L,QAAQ,CAACoW,GAAAA,CAAI,CAAC,CAAA,CAAE,CAAGkB,KAAK/wE,SAAS,CAACx8H,CAAC,CACxC,IAAI,CAACkrM,UAAU,CAACmB,GAAAA,CAAI,CAAC5mK,QAAQ,CAAC,IAAI,CAACwwJ,QAAQ,CAACoW,GAAAA,CAAI,CAAA,CAChD,GAAIkB,IAAAA,CAAKlvC,KAAK,GAAKn/B,mBAAAA,CAAqB,CACvC,IAAI,CAACmuE,qBAAqB,CAACh3C,GAAAA,CAAKg2C,GAAAA,EACjC,CACA,GAAIkB,IAAAA,CAAKjvC,WAAW,CAAE,CACrB,MAAMG,eAAAA,CAAkB8uC,IAAAA,CAAK7uC,aAAa,CAAC,KAAM,CAAA,CAAA,CACjD,IAAI,CAACksC,gBAAgB,CAACyB,IAAI,CAAC5mK,QAAQ,CAACg5H,eAAAA,CAAgBsuB,YAAY,CAAA,CAChE,MAAM9tB,OAASsuC,IAAAA,CAAKruC,qBAAqB,CAACT,eAAAA,CAAAA,CAC1C,MAAMpoK,MAAAA,CAASk3M,IAAAA,CAAKH,mBAAmB,CACvC/2M,MAAAA,CAAOrS,MAAM,CAAG,CAChBqS,CAAAA,MAAM,CAAC,EAAE,CAAGk3M,IAAAA,CAAKtiB,iBAAiB,CAClC50L,MAAM,CAAC,CAAA,CAAE,CAAG4oK,MAAAA,CAAOK,UAAU,CAC7BjpK,MAAM,CAAC,EAAE,CAAG4oK,MAAAA,CAAOG,IACnB/oK,CAAAA,MAAM,CAAC,EAAE,CAAG,CAAA,CAAIk3M,KAAKxuC,cAAc,CACnC,IAAI,CAAC+rC,mBAAmB,CAACuB,GAAAA,CAAI,CAAC5mK,QAAQ,CAACpvC,MAAAA,CAAAA,CACvC,IAAI,CAAC00M,oBAAoB,CAACsB,GAAAA,CAAI,CAAC5mK,QAAQ,CAAC8nK,IAAAA,CAAKV,eAAe,CAAA,CAC5D,MAAMW,cAAAA,CAAiBD,IAAAA,CAAKP,YAAY,CAAGvuC,eAAAA,CAAgBsxB,YAAY,CAAC5hJ,YAAY,CAACvkC,KAAK,CAC1F,IAAI,CAACohM,uBAAuB,CAACqB,IAAI,CAAC5mK,QAAQ,CAAC+nK,cAAAA,CAAAA,CAC3C,MAAM7K,YAAAA,CAAe4K,IAAAA,CAAKN,mBAAmB,CAC7CtK,YAAAA,CAAa3+M,MAAM,CAAG,CACtB2+M,CAAAA,YAAY,CAAC,EAAE,CAAG,CAClBA,CAAAA,YAAY,CAAC,EAAE,CAAGlkC,eAAAA,CAAgBsxB,YAAY,CAACp7B,QAAQ,CACvDguC,YAAY,CAAC,EAAE,CAAGlkC,eAAAA,CAAgBsxB,YAAY,CAACx6B,SAAS,CACxDotC,YAAY,CAAC,CAAA,CAAE,CAAG,CAAA,CAClB,IAAI,CAACkJ,mBAAmB,CAACQ,GAAAA,CAAI,CAAC5mK,QAAQ,CAACk9J,cACxC,CACA,GAAI4K,IAAAA,CAAKrvC,OAAO,CAAE,CACjB,IAAI,CAACutC,aAAa,CAACY,IAAI,CAAC5mK,QAAQ,CAAC8nK,IAAAA,CAAKrvC,OAAO,CAAA,CAC7C,IAAI,CAAC2sC,mBAAmB,CAACwB,IAAI,CAAC5mK,QAAQ,CAAC4wH,GAAAA,CAAI3zJ,IAAI,CAAA,CAC/C,IAAI,CAACgpM,gBAAgB,CAACW,IAAI,CAAC5mK,QAAQ,CAAC8nK,IAAAA,CAAKE,eAAe,EACzD,CACD,CACAC,iBAAAA,CAAkBliN,KAAK,CAAEiyK,IAAI,CAAE4uC,GAAG,CAAE,CACnC,MAAMh2C,IAAMoH,IAAAA,CAAKjI,KAAK,CAAC9hB,iBAAiB,EAAA,CACxC,GAAI,CAAC,IAAI,CAACg3D,YAAY,CAAC2B,GAAAA,CAAI,CAAE,CAC5B,IAAI,CAAC5B,aAAa,CAACj/M,KAAAA,CAAO6gN,GAAAA,EAC3B,CACA,IAAI,CAACd,cAAc,CAACc,GAAAA,CAAI,CAAC5mK,QAAQ,CAACg4H,IAAAA,CAAKkwC,kBAAkB,CAAA,CACzD,IAAI,CAACnC,eAAe,CAACa,GAAAA,CAAI,CAAC5mK,QAAQ,CAACg4H,IAAAA,CAAKmwC,kBAAkB,CAAA,CAC1D,IAAI,CAAC3C,aAAa,CAACoB,GAAAA,CAAI,CAAC5mK,QAAQ,CAACg4H,IAAAA,CAAKsB,cAAc,CAAA,CACpD,IAAI,CAAC2rC,YAAY,CAAC2B,GAAAA,CAAI,CAAC5mK,QAAQ,CAACg4H,KAAKmvC,YAAY,CAAA,CACjDv2C,IAAIrrJ,cAAc,CAACyyJ,IAAAA,CAAKjhC,SAAS,CACjC,CAAA,IAAI,CAACy5D,QAAQ,CAACoW,GAAAA,CAAI,CAAC,CAAA,CAAE,CAAG5uC,KAAKjhC,SAAS,CAAC18H,CAAC,CACxC,IAAI,CAACm2L,QAAQ,CAACoW,GAAAA,CAAI,CAAC,CAAA,CAAE,CAAG5uC,IAAAA,CAAKjhC,SAAS,CAACz8H,CACvC,CAAA,IAAI,CAACk2L,QAAQ,CAACoW,IAAI,CAAC,CAAA,CAAE,CAAG5uC,IAAAA,CAAKjhC,SAAS,CAACx8H,CAAC,CACxC,IAAI,CAACkrM,UAAU,CAACmB,IAAI,CAAC5mK,QAAQ,CAAC,IAAI,CAACwwJ,QAAQ,CAACoW,IAAI,CAAA,CAChD,GAAI5uC,KAAKY,KAAK,GAAKn/B,mBAAAA,CAAqB,CACvC,IAAI,CAACmuE,qBAAqB,CAACh3C,GAAAA,CAAKg2C,GAAAA,EACjC,CACAh2C,GAAAA,CAAIxzJ,IAAI,CAAC46J,IAAAA,CAAK6sB,UAAU,CAAA,CAAE/wL,SAAS,CAAC,EAAC,CAAA,CACrCkkK,KAAK6sB,UAAU,CAACnmM,SAAS,EACzB,CAAA,IAAI,CAACgvM,QAAQ,CAACkZ,IAAI,CAAC,CAAA,CAAE,CAAG5uC,IAAAA,CAAK6sB,UAAU,CAACxqL,CAAC,CACzC,IAAI,CAACqzL,QAAQ,CAACkZ,GAAAA,CAAI,CAAC,EAAE,CAAG5uC,IAAAA,CAAK6sB,UAAU,CAACvqL,CAAC,CACzC,IAAI,CAACozL,QAAQ,CAACkZ,GAAAA,CAAI,CAAC,CAAA,CAAE,CAAG5uC,KAAK6sB,UAAU,CAACtqL,CAAC,CACzC,IAAI,CAAC2qM,UAAU,CAAC0B,GAAAA,CAAI,CAAC5mK,QAAQ,CAAC,IAAI,CAAC0tJ,QAAQ,CAACkZ,GAAAA,CAAI,EAChD,GAAI5uC,IAAAA,CAAKa,WAAW,CAAE,CACrB,MAAMG,eAAAA,CAAkBhB,KAAKiB,aAAa,CAAC,IAAA,CAAM,CAAA,CAAA,CACjD,IAAI,CAACksC,gBAAgB,CAACyB,GAAAA,CAAI,CAAC5mK,QAAQ,CAACg5H,gBAAgBsuB,YAAY,CAAA,CAChE,IAAI,CAAC8d,mBAAmB,CAACwB,GAAAA,CAAI,CAAC5mK,QAAQ,CAACg5H,eAAAA,CAAgBE,YAAY,CAACj8J,IAAI,CAAA,CACxE,MAAMu8J,MAAAA,CAASxB,KAAKyB,qBAAqB,CAACT,iBAC1C,MAAMpoK,MAAAA,CAASonK,KAAK2vC,mBACpB/2M,CAAAA,MAAAA,CAAOrS,MAAM,CAAG,CAChBqS,CAAAA,MAAM,CAAC,CAAA,CAAE,CAAGonK,IAAAA,CAAKwtB,iBAAiB,CAClC50L,MAAM,CAAC,CAAA,CAAE,CAAG4oK,OAAOK,UACnBjpK,CAAAA,MAAM,CAAC,CAAA,CAAE,CAAG4oK,MAAAA,CAAOG,IAAI,CACvB/oK,MAAM,CAAC,CAAA,CAAE,CAAG,CAAA,CAAIonK,IAAAA,CAAKsB,cAAc,CACnC,IAAI,CAAC+rC,mBAAmB,CAACuB,GAAAA,CAAI,CAAC5mK,QAAQ,CAACpvC,MAAAA,CAAAA,CACvC,IAAI,CAAC00M,oBAAoB,CAACsB,GAAAA,CAAI,CAAC5mK,QAAQ,CAACg4H,KAAKovC,eAAe,CAAA,CAC5D,MAAMW,cAAAA,CAAiB/vC,IAAAA,CAAKuvC,YAAY,CAAGvuC,eAAAA,CAAgBsxB,YAAY,CAAC5hJ,YAAY,CAACvkC,KAAK,CAC1F,MAAMjD,IAAM83J,eAAAA,CAAgBsxB,YAAY,CAACj7B,IAAI,CAAGj+J,IAAAA,CAAKC,UAAU,CAC/D,MAAM+2M,QAAAA,CAAW,EAAIvqN,IAAAA,CAAKyjB,GAAG,CAACJ,GAAAA,CAAM,GACpC,IAAI,CAACqkM,uBAAuB,CAACqB,IAAI,CAAC5mK,QAAQ,CAAC+nK,cAAAA,CAAiBK,UAC5D,MAAMlL,YAAAA,CAAellC,KAAKwvC,mBAC1BtK,CAAAA,YAAAA,CAAa3+M,MAAM,CAAG,CACtB2+M,CAAAA,YAAY,CAAC,CAAA,CAAE,CAAG,CAClBA,CAAAA,YAAY,CAAC,CAAA,CAAE,CAAGlkC,eAAAA,CAAgBsxB,YAAY,CAACp7B,QAC/CguC,CAAAA,YAAY,CAAC,CAAA,CAAE,CAAGlkC,gBAAgBsxB,YAAY,CAACx6B,SAC/CotC,CAAAA,YAAY,CAAC,CAAA,CAAE,CAAG,EAClB,IAAI,CAACkJ,mBAAmB,CAACQ,GAAAA,CAAI,CAAC5mK,QAAQ,CAACk9J,YAAAA,EACxC,CACA,GAAIllC,IAAAA,CAAKS,OAAO,CAAE,CACjB,GAAI,CAACT,IAAAA,CAAKa,WAAW,CAAE,CACtB,MAAMlD,YAAAA,CAAeT,YAAYG,oBAAoB,CAAC2C,MACtD,IAAI,CAACotC,mBAAmB,CAACwB,IAAI,CAAC5mK,QAAQ,CAAC21H,YAAAA,CAAa14J,IAAI,EACzD,CACA,IAAI,CAAC+oM,aAAa,CAACY,GAAAA,CAAI,CAAC5mK,QAAQ,CAACg4H,KAAKS,OAAO,CAAA,CAC7C,IAAI,CAACwtC,gBAAgB,CAACW,GAAAA,CAAI,CAAC5mK,QAAQ,CAACg4H,IAAAA,CAAKgwC,eAAe,CAAA,CACxD,GAAIhwC,KAAKuP,gBAAgB,CAAE,CAC1BvP,IAAAA,CAAKqwC,uBAAuB,CAAC,CAAA,CAAE,CAAGrwC,IAAAA,CAAKuP,gBAAgB,CAACltK,CACxD29J,CAAAA,IAAAA,CAAKqwC,uBAAuB,CAAC,CAAA,CAAE,CAAGrwC,IAAAA,CAAKuP,gBAAgB,CAACjtK,CACxD09J,CAAAA,IAAAA,CAAKqwC,uBAAuB,CAAC,CAAA,CAAE,CAAGrwC,IAAAA,CAAKuP,gBAAgB,CAAChtK,CACxDy9J,CAAAA,IAAAA,CAAKqwC,uBAAuB,CAAC,CAAA,CAAE,CAAGrwC,IAAAA,CAAKuP,gBAAgB,CAACvpK,CAAC,CACzD,IAAI,CAACkoM,mBAAmB,CAACU,GAAAA,CAAI,CAAC5mK,QAAQ,CAACg4H,IAAAA,CAAKqwC,uBAAuB,CACnErwC,CAAAA,KAAKswC,oBAAoB,CAAC,CAAA,CAAE,CAAGtwC,KAAKuwC,aAAa,CAACluM,CAAC,CACnD29J,KAAKswC,oBAAoB,CAAC,CAAA,CAAE,CAAGtwC,KAAKuwC,aAAa,CAACjuM,CAAC,CACnD,IAAI,CAAC6rM,mBAAmB,CAACS,GAAAA,CAAI,CAAC5mK,QAAQ,CAACg4H,KAAKswC,oBAAoB,EACjE,CACD,CACD,CACAE,mBAAAA,CAAoBjqD,YAAY,CAAEvlH,IAAI,CAAEyvK,aAAa,CAAE,CACtD,IAAI7B,GAAAA,CAAM6B,aAAAA,CACV,MAAM1iN,MAAQ,IAAI,CAACymC,MAAM,CAACzmC,KAAK,CAC/B,MAAM2iN,KAAAA,CAAQnqD,YAAY,CAACplB,eAAe,CAC1C,MAAMwvE,QAAAA,CAAWD,KAAAA,CAAMnqN,MAAM,CAC7B,IAAK,IAAID,EAAAA,CAAK,EAAGA,EAAAA,CAAKqqN,QAAAA,CAAUrqN,KAAM,CACrC,MAAMwpN,KAAOY,KAAK,CAACpqN,EAAAA,CAAG,CACtB,GAAI,EAAEwpN,IAAAA,CAAK9uK,IAAI,CAAGA,IAAG,CAAA,CAAI,SACzB,IAAI,CAAC6uK,iBAAiB,CAAC9hN,MAAO+hN,IAAAA,CAAMlB,GAAAA,CACpCA,CAAAA,GAAAA,GACD,CACA,MAAMgC,IAAAA,CAAOrqD,YAAY,CAACllB,cAAAA,CAAe,CACzC,MAAMwvE,QAAUD,IAAAA,CAAKrqN,MAAM,CAC3B,IAAK,IAAID,EAAAA,CAAK,CAAA,CAAGA,GAAKuqN,OAAAA,CAASvqN,EAAAA,EAAAA,CAAM,CACpC,MAAM05K,IAAAA,CAAO4wC,IAAI,CAACtqN,GAAG,CACrB,GAAI,EAAE05K,IAAAA,CAAKh/H,IAAI,CAAGA,IAAG,CAAA,CAAI,SACzB,IAAI,CAACivK,iBAAiB,CAACliN,KAAAA,CAAOiyK,IAAAA,CAAM4uC,IACpCA,CAAAA,GAAAA,GACD,CACD,CAEAkC,8BAA8BnoD,MAAM,CAAEj4G,YAAY,CAAEyvJ,SAAS,CAAE55C,YAAY,CAAErtE,KAAK,CAAEk4D,IAAI,CAAE5D,iBAAiB,CAAE,CAC5G,MAAMwuB,SAAAA,CAAYrT,MAAAA,CAAOqT,SAAS,EAAI,IAAI,CAAC/oB,KAAK,CAACof,GAAG,CACpD,MAAM4J,YAAAA,CAAetT,MAAAA,CAAOsT,YAAY,CACxCA,YAAAA,CAAa5J,GAAG,CAAG2J,SAAAA,CAAUt+J,IAAI,CACjCu+J,YAAAA,CAAa7J,gBAAgB,CAAG1hH,YAAAA,EAAcqM,iBAAAA,CAAkB,CAAA,CAAA,EAAM,KAAA,CACtE,MAAMg0J,OAAAA,CAAU,CAACxQ,QAAAA,CAAUp6C,cAAAA,CAAgB+lD,cAAeC,gBAAAA,GAAAA,CACzDH,aAAAA,CAAc7L,SAAS,CAAC/4M,IAAI,CAACm5M,QAAAA,CAAAA,CAC7ByL,aAAAA,CAAcC,eAAe,CAAC7kN,IAAI,CAAC++J,cAAAA,CAAAA,CACnC6lD,aAAAA,CAAcE,aAAa,CAAC9kN,IAAI,CAAC8kN,aAAAA,CAAAA,CACjCF,aAAAA,CAAcG,gBAAgB,CAAC/kN,IAAI,CAAC+kN,gBAAAA,EACrC,CAAA,CACAH,cAAch9M,KAAK,EAAA,CACnB,MAAMwlC,MAAAA,CAAS,IAAI,CAACA,MAAM,CAC1B,MAAMy+G,MAAQ,IAAI,CAACA,KAAK,CACxB,MAAMs7B,wBAAAA,CAA2Bt7B,KAAAA,CAAMs7B,wBAAwB,CAC/D,MAAMjoB,UAAYptE,KAAAA,EAAO83H,YAAAA,CAAaziC,wBAAAA,CAAAA,EAA6B,CAAA,CACnE,IAAI0iC,YAAAA,CAAe,IAAA,CAAMC,WAAAA,CAAaC,aAAAA,CACtC,MAAMrL,cAAAA,CAAiB3F,SAAAA,CAAU55M,MAAM,CACvC,IAAK,IAAID,EAAAA,CAAK,EAAGA,EAAAA,CAAKw/M,cAAAA,CAAgBx/M,KAAM,CAC3C,MAAMi6M,QAAAA,CAAWJ,SAAS,CAAC75M,EAAAA,CAAG,CAC9B,GAAKi6M,CAAAA,QAAAA,CAASh2C,cAAc,CAAG,CAAA,EAAKnZ,IAAG,IAAO,CAAA,CAAG,CAChD,QACD,CACA,MAAMgX,cAAAA,CAAiBm4C,QAAAA,CAASn4C,cAAc,CAC9C,GAAIA,cAAAA,EAAkBA,cAAAA,CAAejyH,KAAK,EAAI,CAAA,EAAK,CAACoqK,QAAAA,CAASh3C,eAAe,CAACZ,MAAAA,CAAAA,CAAS,CACrF,QACD,CACA43C,SAAS52C,cAAc,CAACn1H,QACxB,MAAMy8G,QAAAA,CAAWsvD,QAAAA,CAAStvD,QAAQ,CAClC,MAAM6V,OAAAA,CAAUy5C,QAAAA,CAAS95C,WAAW,CACpC,MAAM2qD,SAAAA,CAAY7Q,QAAAA,CAASv/J,IAAI,CAC/B,GAAIiwG,QAAAA,EAAYA,WAAaggE,YAAAA,EAAgBnqD,OAAAA,GAAYoqD,YAAa,CACrED,YAAAA,CAAe,KAChB,CACA,GAAIhgE,QAAAA,GAAaggE,YAAAA,CAAc,CAC9B,IAAI,CAACI,iBAAiB,EACtBpgE,CAAAA,QAAAA,CAASkrC,MAAM,CAAGlpC,KAAAA,CAClBhC,SAASyqC,gBAAgB,CAAClnJ,OAAQy+G,KAAAA,EACnC,CACA,MAAMkT,cAAAA,CAAiBo6C,SAASn6C,iBAAiB,CAAChV,IAAAA,CAAMkV,SAAAA,CAAWrT,MAAOgpB,YAAAA,CAAczuB,iBAAAA,CAAmB+Y,YAAAA,CAAAA,CAC3GwqD,OAAAA,CAAQxQ,SAAUp6C,cAAAA,CAAgBlV,QAAAA,GAAaggE,aAAc,CAACA,YAAAA,EAAgBG,YAAcD,aAAAA,CAAAA,CAC5FF,YAAAA,CAAehgE,QAAAA,CACfigE,WAAAA,CAAcpqD,QACdqqD,aAAAA,CAAgBC,UACjB,CACA,OAAOpF,aACR,CACAsF,qBAAAA,CAAsB3oD,MAAM,CAAE4oD,aAAa,CAAEhrD,YAAY,CAAEnV,IAAI,CAAEogE,YAAY,CAAEr6C,SAAS,CAAE,CACzF,MAAM3iI,MAAAA,CAAS,IAAI,CAACA,MAAM,CAC1B,MAAMy+G,KAAAA,CAAQ,IAAI,CAACA,KAAK,CACxB,MAAM0nD,WAAaxjC,SAAAA,CAAY,GAAK,CAAA,CACpC,MAAMoX,wBAAAA,CAA2Bt7B,KAAAA,CAAMs7B,wBAAwB,CAC/D,MAAMlb,aAAAA,CAAgB1K,MAAAA,CAAOsT,YAAY,CAAC5I,aAAa,CAAC9sK,MAAM,CAAG,CAAA,CACjE,MAAMqlN,gBAAkBv4C,aAAAA,CAAgB7+H,MAAAA,CAAOkc,YAAY,EAAE8L,gBAAAA,EAAoB,CAAA,CAAI,CAAA,CACrF,MAAMsnJ,QAAAA,CAAWn7C,MAAAA,CAAOkN,QAAQ,EAAIlN,OAAOyQ,OAAO,CAAC7yK,MAAM,CAAGoiK,OAAOyQ,OAAO,CAAG,KAC7E,MAAMq4C,UAAAA,CAAaj9K,OAAOgoD,kBAAkB,EAAI,EAAC,CACjD,MAAMk1H,aAAAA,CAAgB5N,QAAAA,EAAY2N,YAAc,CAAA,CAAIA,UAAAA,CAAa,EACjE,MAAME,WAAAA,CAAc7N,QAAAA,EAAY2N,UAAAA,EAAc,EAAIA,UAAAA,CAAa,CAAA,CAAI3N,SAAWA,QAAAA,CAASv9M,MAAM,CAAG,CAAA,CAChG,MAAMqrN,kBAAAA,CAAqBL,aAAAA,CAAcpR,SAAS,CAAC55M,MAAM,CACzD,IAAK,IAAID,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAKsrN,kBAAAA,CAAoBtrN,KAAM,CAC/C,MAAMi6M,SAAWgR,aAAAA,CAAcpR,SAAS,CAAC75M,EAAAA,CAAG,CAC5C,MAAMurN,WAAAA,CAAcN,cAAcrF,aAAa,CAAC5lN,EAAAA,CAAG,CACnD,MAAM6lN,gBAAAA,CAAmBoF,aAAAA,CAAcpF,gBAAgB,CAAC7lN,GAAG,CAC3D,MAAM6/J,eAAiBorD,aAAAA,CAActF,eAAe,CAAC3lN,EAAAA,CAAG,CACxD,MAAM2qJ,QAAAA,CAAWsvD,SAAStvD,QAAQ,CAClC,MAAMmgE,SAAAA,CAAY7Q,SAASv/J,IAAI,CAC/B,GAAImlH,cAAAA,CAAer2G,MAAM,CAAC2gB,MAAM,CAAE,SAClC,GAAIohJ,YAAa,CAChB,MAAM5uH,YAAAA,CAAe,KAAA,CACrBzuD,OAAOk7C,SAAS,CAACy2E,cAAAA,CAAer2G,MAAM,CAAEmzC,YAAAA,CAAAA,CACxCguD,QAAAA,CAAS8Y,aAAa,CAACv1H,QACvB,GAAI23K,gBAAAA,CAAkB,CACrB,MAAMsE,aAAAA,CAAgB,IAAI,CAACzB,oBAAoB,CAACzoD,YAAY,CAACrlB,qBAAAA,CAAsB,CAAEkwE,SAAAA,CAAWzoD,MAAAA,CAAAA,CAChG,GAAI,CAAC4lB,wBAAAA,CAA0B,CAC9B,IAAI,CAACiiC,mBAAmB,CAACjqD,aAAc6qD,SAAAA,CAAWX,aAAAA,EACnD,CACD,CACA,IAAI,CAAC7K,WAAW,CAAC59J,QAAQ,CAACipG,QAAAA,CAAS8X,SAAS,EAC5C,MAAMp4G,UAAAA,CAAai7J,eAAAA,CAAkB,CAAA,EAAK,CAAC36D,QAAAA,CAAS2pC,kBAAkB,CAAG+wB,6BAAAA,CAA8B16D,QAAAA,CAAStgG,UAAU,CAAEi7J,eAAAA,CAAAA,CAAmB36D,QAAAA,CAAStgG,UAAU,CAClKnc,MAAAA,CAAOie,aAAa,CAAC9B,UAAAA,CAAAA,CACrBnc,OAAO6e,aAAa,CAAC49F,QAAAA,CAASrgG,UAAU,EACxCpc,MAAAA,CAAO6uD,kBAAkB,CAAC4tD,QAAAA,CAASlgG,eAAe,EACnD,CACA,IAAI,CAAC+pJ,yBAAyB,CAACnyC,MAAAA,CAAOqO,UAAU,CAAE2jC,UAAAA,CAAY4F,QAAAA,CAAAA,CAC9D,MAAM7sJ,YAAAA,CAAe6sJ,QAAAA,CAAS7sJ,YAAY,EAAIu9F,SAASv9F,YAAY,CACnE,MAAMC,WAAAA,CAAc4sJ,QAAAA,CAAS5sJ,WAAW,EAAIs9F,QAAAA,CAASt9F,WAAW,CAChEnf,OAAOif,eAAe,CAACC,YAAAA,CAAcC,WAAAA,CAAAA,CACrC4sJ,SAASx2C,aAAa,CAACv1H,MAAAA,CAAAA,CACvBA,MAAAA,CAAOzmC,KAAK,CAAC6mC,OAAO,CAAC,gBAAA,CAAA,CAAkBoT,QAAQ,CAACu4J,QAAAA,CAAS9tK,EAAE,CAAA,CAC3D,MAAM0lH,KAAOooD,QAAAA,CAASpoD,IAAI,CAC1B,IAAI,CAAC6iD,gBAAgB,CAACxmK,MAAAA,CAAQ2jH,IAAAA,CAAAA,CAC9B,IAAI,CAAC8iD,WAAW,CAACzmK,MAAAA,CAAQ+rK,QAAAA,CAAS54C,aAAa,CAAA,CAC/C,IAAI,CAACkzC,WAAW,CAACrmK,MAAAA,CAAQ+rK,QAAAA,CAAAA,CACzB,MAAMn4C,cAAAA,CAAiBm4C,SAASn4C,cAAc,CAC9C,GAAIA,cAAAA,CAAgB,CACnB5zH,MAAAA,CAAOyf,eAAe,CAACm0G,cAAAA,CAAel0G,YAAY,EACnD,CACA,IAAI,CAACgnJ,uBAAuB,CAACqF,QAAAA,CAAU,IAAA,CAAA,CACvC,IAAI,CAACpF,uBAAuB,CAACh1C,cAAAA,CAAAA,CAC7B,MAAMi1C,KAAAA,CAAQmF,SAASlkD,WAAW,CAClC,MAAM31G,WAAAA,CAAcyxG,IAAAA,CAAKzxG,WAAW,CAAC00J,KAAAA,CAAM,CAC3CoW,YAAAA,GAAejR,SAAUj6M,EAAAA,CAAAA,CACzB,MAAMqkK,YAAAA,CAAe41C,QAAAA,CAASh3C,eAAe,CAACZ,MAAAA,CAAAA,CAC9C,GAAIm7C,QAAAA,CAAU,CACb,IAAK,IAAI/9M,GAAK2rN,aAAAA,CAAe3rN,EAAAA,CAAK4rN,YAAa5rN,EAAAA,EAAAA,CAAM,CACpD,MAAMsP,IAAAA,CAAOyuM,QAAQ,CAAC/9M,EAAAA,CAAG,CACzByuC,MAAAA,CAAOtoB,WAAW,CAAC7W,IAAAA,CAAKqjF,QAAQ,CAACr2E,CAAC,CAAEhN,IAAAA,CAAKqjF,QAAQ,CAACp2E,CAAC,CAAEjN,IAAAA,CAAKqjF,QAAQ,CAACn2E,CAAC,CAAElN,IAAAA,CAAKqjF,QAAQ,CAAC1yE,CAAC,CACrF,CAAA,IAAI,CAAC+iM,kBAAkB,CAAC,CAAA,CAAE,CAAG,IAAI,CAACtB,qBAAqB,CAAC1hN,EAAAA,CAAG,CAC3DyuC,MAAAA,CAAO+6C,YAAY,CAAC59C,cAAAA,CAAgB,IAAI,CAAC61K,eAAe,CAACzhN,GAAG,CAAE,IAAI,CAACgjN,kBAAkB,EACrF,MAAM99M,KAAAA,CAAQlF,KAAO2rN,aAAAA,CACrB,MAAM38J,KAAOhvD,EAAAA,GAAO4rN,WAAAA,CAAc,CAAA,CAClCn9K,MAAAA,CAAOmgB,IAAI,CAACwjG,IAAAA,CAAK7yF,SAAS,CAAC81I,MAAM,CAAE10J,WAAAA,CAAa0hH,cAAAA,EAAgBjyH,KAAAA,CAAOw0H,aAAc1/J,KAAAA,CAAO8pD,IAAAA,CAC5F,CAAA,IAAI,CAAC+8J,iBAAiB,EAAA,CACtB,GAAIvR,QAAAA,CAASn4C,cAAc,CAAE,CAC5B,IAAI,CAACkzC,mBAAmB,GACzB,CACD,CACD,CAAA,KAAO,CACN9mK,OAAOmgB,IAAI,CAACwjG,KAAK7yF,SAAS,CAAC81I,MAAM,CAAE10J,WAAAA,CAAa0hH,cAAAA,EAAgBjyH,KAAAA,CAAOw0H,aACvE,CAAA,IAAI,CAACmnD,iBAAiB,GACtB,GAAIvR,QAAAA,CAASn4C,cAAc,CAAE,CAC5B,IAAI,CAACkzC,mBAAmB,GACzB,CACD,CACA,GAAIh1M,EAAAA,CAAKsrN,kBAAAA,CAAqB,CAAA,EAAK,CAACL,aAAAA,CAAcrF,aAAa,CAAC5lN,EAAAA,CAAK,EAAE,CAAE,CACxE2qJ,QAAAA,CAAS8Y,aAAa,CAACv1H,MAAAA,CAAQ+rK,QAAAA,CAAStpF,UAAU,EACnD,CACD,CACD,CACA86F,aAAAA,CAAcppD,MAAM,CAAEj4G,YAAY,CAAEshK,YAAY,CAAEzrD,YAAY,CAAEnV,IAAI,CAAEogE,YAAY,CAAEt4H,KAAK,CAAEi+E,SAAS,CAAE3pB,iBAAiB,CAAE,CACxH,MAAM+jE,aAAAA,CAAgB,IAAI,CAACT,6BAA6B,CAACnoD,MAAAA,CAAQj4G,YAAAA,CAAcshK,YAAAA,CAAczrD,aAAcrtE,KAAAA,CAAOk4D,IAAAA,CAAM5D,iBAAAA,CAAAA,CACxH,IAAI,CAAC8jE,qBAAqB,CAAC3oD,OAAQ4oD,aAAAA,CAAehrD,YAAAA,CAAcnV,KAAMogE,YAAAA,CAAcr6C,SAAAA,CAAAA,CACpF60C,aAAAA,CAAch9M,KAAK,GACpB,CACAq8M,kBAAAA,CAAmB1iD,MAAM,CAAEj4G,YAAY,CAAEwoC,KAAK,CAAEguE,WAAW,CAAEb,UAAU,CAAEvuJ,SAAW,EAAE,CAAE,CACvF,KAAM,CAAEm7I,KAAK,CAAE,CAAG,IAAI,CACtB,MAAMs7B,wBAAAA,CAA2Bt7B,MAAMs7B,wBAAwB,CAC/D,IAAI,CAACstB,aAAa,CAAClzC,MAAAA,CAAQj4G,cAC3B,IAAIk4G,OAAAA,CAASg5C,YACb,GAAI1oH,KAAAA,CAAO,CACVA,KAAAA,CAAM+4H,WAAW,CAACtpD,MAAAA,CAAQzB,WAAAA,CAAAA,CAC1B,MAAMk5C,gBAAkBlnH,KAAAA,CAAMmpH,kBAAkB,CAAC15C,MAAAA,CAAAA,CACjDC,QAAU1B,WAAAA,CAAck5C,eAAAA,CAAgBl5C,WAAW,CAAGk5C,eAAAA,CAAgBC,MAAM,CAC5EptD,KAAAA,CAAM7lG,SAAS,CAAC8kK,gBAAgB,CAACh5H,KAAAA,CAAO0vE,OAAAA,CAAS1B,WAAAA,CAAAA,CACjD,GAAIhuE,KAAAA,CAAMi5H,iBAAiB,CAAE,CAC5B,IAAI,CAAC1I,SAAS,CAACtpK,MAAM,CAAC8yG,MAAM05C,YAAY,CAAEzzG,KAAAA,CAAM8oH,OAAO,EACvD,IAAI,CAAC0H,iBAAiB,CAAC1hK,QAAQ,CAAC,IAAI,CAACyhK,SAAS,CAACnxD,MAAM,EACtD,CACAspD,WAAAA,CAAc1oH,KAAAA,CAAM0oH,YAAW,CAChC,KAAO,CACNh5C,OAAAA,CAAU9wJ,SAAS+7I,aAAa,CAChC+tD,WAAAA,CAAc9pM,QAAAA,CAAS8pM,WAAW,EAAIkK,UACvC,CACA,GAAIv9B,yBAA0B,CAC7B,MAAMuvB,cAAgBhmM,QAAAA,CAASgmM,aAAa,EAAI,IAAI,CAACgC,sBAAsB,CAAClU,KAAK,CACjFkS,aAAAA,CAAc53B,QAAQ,EAAA,CACtB,GAAIhtF,KAAAA,CAAO,CACV,GAAI,CAAC,IAAI,CAAC0vH,qBAAqB,EAAI31D,KAAAA,CAAMw7B,QAAQ,CAAC2jC,UAAU,GAAKl5H,KAAAA,CAAMzmD,EAAE,CAAE,CAC1E,IAAI,CAACm2K,qBAAqB,CAAG,KAC9B,CACD,CACD,CACA31D,MAAMo/D,aAAa,CAAG1pD,OACtB,MAAMqT,SAAAA,CAAYrT,OAAOqT,SAAS,EAAI,IAAI,CAAC/oB,KAAK,CAACof,GAAG,CACpD,IAAI,CAACigD,eAAe,CAACt2C,SAAAA,CAAAA,CACrB,MAAM8nC,SAAW,IAAI,CAACnI,iBAAiB,CAAChzC,MAAAA,CAAQj4G,cAChD,IAAI,CAACmsJ,qBAAqB,CAAC5pD,MAAMs7B,wBAAwB,CAAA,CACzD,MAAM/gC,iBAAAA,CAAoB11I,QAAAA,CAAS01I,iBAAiB,EAAI,IAAI,CAACA,iBAAiB,CAC9E,IAAI,CAACouD,uBAAuB,CAACpuD,iBAAAA,CAAmBs2D,UAChD,MAAMv/F,UAAAA,CAAazsG,QAAAA,CAASysG,UAAU,EAAI,KAAA,CAC1C,MAAM57C,UAAAA,CAAa7wD,QAAAA,CAAS6wD,UAAU,EAAI,KAAA,CAC1C,MAAMC,YAAAA,CAAe9wD,SAAS8wD,YAAY,EAAI,MAC9C,GAAI27C,UAAAA,EAAc57C,YAAcC,YAAAA,CAAc,CAC7C,IAAI,CAAC55D,KAAK,CAAC25J,MAAAA,CAAQpkD,UAAAA,CAAY57C,UAAAA,CAAYC,cAC5C,CACA,MAAMuuG,SAAAA,CAAY,CAAC,EAAExO,MAAAA,CAAOyO,UAAU,CAAG1mH,YAAAA,EAAc1U,KAAI,CAAA,CAC3D,MAAMu2K,gBAAAA,CAAmB,IAAI,CAACT,iBAAiB,CAC/C,IAAI,CAACC,aAAa,CACjBppD,MAAAA,CACAj4G,YAAAA,CACAk4G,OAAAA,CACAg5C,YACAv7C,UAAAA,CACAvuJ,QAAAA,CAAS05M,YAAY,EAAI,IAAA,CACzBt4H,MACAi+E,SAAAA,CACA3pB,iBAAAA,CAAAA,CAED,GAAIt0D,KAAAA,CAAO,CACVA,KAAAA,CAAM44H,iBAAiB,EAAI,IAAI,CAACA,iBAAiB,CAAGS,iBACrD,CACD,CACAD,eAAAA,CAAgBt2C,SAAS,CAAE,CAC1B,GAAIA,UAAUt+J,IAAI,GAAKyiI,QAAAA,CAAU,CAChC4rE,SAASpwM,MAAM,CAACqgK,SAAAA,CAAUxiH,KAAK,EAC/B,MAAMg5J,UAAAA,CAAa,IAAI,CAACC,QAAQ,CAChCD,UAAU,CAAC,CAAA,CAAE,CAAGzG,QAAAA,CAASnmN,CAAC,CAC1B4sN,UAAU,CAAC,CAAA,CAAE,CAAGzG,QAAAA,CAASnyM,CAAC,CAC1B44M,UAAU,CAAC,EAAE,CAAGzG,QAAAA,CAAS7oN,CAAC,CAC1B,IAAI,CAACwvN,UAAU,CAAC1qK,QAAQ,CAACwqK,YACzB,GAAIx2C,SAAAA,CAAUt+J,IAAI,GAAK0iI,WAAY,CAClC,IAAI,CAACuyE,UAAU,CAAC3qK,QAAQ,CAACg0H,UAAU3jJ,KAAK,CAAA,CACxC,IAAI,CAACu6L,QAAQ,CAAC5qK,QAAQ,CAACg0H,SAAAA,CAAUxwK,GAAG,EACrC,CAAA,KAAO,CACN,IAAI,CAACqnN,YAAY,CAAC7qK,QAAQ,CAACg0H,SAAAA,CAAU82C,OAAO,EAC7C,CACD,CACD,CACAC,iBAAAA,EAAoB,CACnB,MAAM9/D,KAAAA,CAAQ,IAAI,CAACA,KAAK,CACxB,IAAI,CAACs5D,oBAAoB,CAACt5D,KAAAA,CAAAA,CAC1B,MAAMz+G,OAAS,IAAI,CAACA,MAAM,CAC1B,IAAI,CAACw+K,WAAW,CAAC,CAAA,CAAE,CAAGx+K,MAAAA,CAAOroB,KAAK,CAClC,IAAI,CAAC6mM,WAAW,CAAC,CAAA,CAAE,CAAGx+K,MAAAA,CAAOpoB,MAAM,CACnC,IAAI,CAAC4mM,WAAW,CAAC,CAAA,CAAE,CAAG,EAAIx+K,MAAAA,CAAOroB,KAAK,CACtC,IAAI,CAAC6mM,WAAW,CAAC,CAAA,CAAE,CAAG,CAAA,CAAIx+K,MAAAA,CAAOpoB,MAAM,CACvC,IAAI,CAAC6mM,YAAY,CAACjrK,QAAQ,CAAC,IAAI,CAACgrK,WAAW,CAAA,CAC3C,IAAI,CAACE,iBAAiB,CAAClrK,QAAQ,CAAC,IAAI,CAACmrK,eAAe,EACpD,IAAI,CAACC,mBAAmB,CAACprK,QAAQ,CAAC,IAAI,CAACqrK,iBAAiB,EACzD,CACAC,eAAAA,CAAgBzf,UAAU,CAAE+W,gBAAgB,CAAE,CAC7C,MAAM33D,KAAAA,CAAQ,IAAI,CAACA,KAAK,CACxB4gD,WAAW5/L,KAAK,EAAA,CAChB,GAAIg/I,KAAAA,CAAMs7B,wBAAwB,CAAE,CACnC,KAAM,CAAEzN,cAAc,CAAEN,cAAc,CAAE,CAAGvtB,MAAMw7B,QAAQ,CACzD,IAAI,CAACi1B,0BAA0B,CAACvjK,MAAM,CAAC0zJ,UAAAA,CAAY/yB,cAAAA,CAAgBN,eAAgB,IAAI,CAACgO,MAAM,CAAE,IAAI,CAAC4hB,WAAW,CAAA,CAChHyD,UAAAA,CAAWC,aAAa,CAAC,IAAI,CAAC4P,0BAA0B,EACzD,MAAO,CACN,IAAI,CAAC1C,oBAAoB,CAACpN,6BAA6B,CAACC,WAAY,IAAI,CAACzD,WAAW,EACrF,CACA,IAAImjB,UAAAA,CAAa,EACjB,IAAIC,QAAAA,CAAW,KACf,IAAI9iK,YAAAA,CAAe,KACnB,MAAM+iK,aAAAA,CAAgB7I,gBAAAA,CAAiB8I,cAAc,CACrD,IAAK,IAAIptN,EAAAA,CAAKitN,UAAAA,CAAYjtN,GAAKmtN,aAAAA,CAAcltN,MAAM,CAAED,EAAAA,EAAAA,CAAM,CAC1D,MAAMilN,YAAAA,CAAekI,aAAa,CAACntN,EAAAA,CAAG,CACtC,KAAM,CAAE4yF,KAAK,CAAEyvE,MAAM,CAAE,CAAG4iD,YAAAA,CAC1B,MAAMoI,GAAK,IAAI,CAACC,YAAY,CAACjrD,QAC7B,GAAI4iD,YAAAA,CAAasI,eAAe,CAAE,CACjC,GAAIF,EAAAA,CAAI9f,UAAAA,CAAWigB,cAAc,CAAC,IAAI,CAACt/K,MAAM,CAAA,CAC7Cm0H,MAAAA,CAAOA,MAAM,CAACgM,WAAW,CAAC3hK,OAAO,CAAC,UAACojD,EAAAA,CAClCy9I,WAAWC,aAAa,CAAC19I,YAC1B,CAAA,CAAA,CACA,GAAIu9J,EAAAA,CAAI9f,UAAAA,CAAWkgB,YAAY,GAChC,CAAA,KAAO,CACN,MAAMC,aAAe96H,KAAAA,CAAMzmD,EAAE,GAAKquG,aAAAA,CAClC,MAAMmzE,UAAAA,CAAaD,YAAAA,GAAiBrrD,MAAAA,CAAOurD,mBAAmB,EAAIvrD,MAAAA,CAAOwrD,mBAAmB,CAAD,CAC3F,GAAIX,QAAAA,CAAU,CACbA,QAAAA,CAAW,KAAA,CACXD,WAAajtN,EAAAA,CACboqD,YAAAA,CAAe66J,YAAAA,CAAa76J,aAAY,CAEzC,MAAM0jK,iBAAmBX,aAAa,CAACntN,GAAK,CAAA,CAAE,CAC9C,MAAM+tN,gBAAAA,CAAmBD,iBAAmB,CAACA,gBAAAA,CAAiBP,eAAe,EAAIO,iBAAiBl7H,KAAK,CAACzmD,EAAE,GAAKquG,cAAgB,KAAA,CAC/H,MAAMwzE,oBAAsBD,gBAAAA,GAAqB1rD,OAAOurD,mBAAmB,EAAIvrD,MAAAA,CAAOwrD,mBAAmB,CAAD,CACxG,MAAMI,kBAAAA,CAAqBH,gBAAAA,CAAmBA,iBAAiBvK,cAAc,EAAI,IAAI,CAAChB,MAAM,CAAC5H,qBAAqB,CAAC5zM,GAAG,CAAC+mN,iBAAiBzrD,MAAM,CAACA,MAAM,CAAA,CAAI,MACzJ,GAAI,CAACyrD,kBAAoBA,gBAAAA,CAAiB1jK,YAAY,GAAKA,YAAAA,EAAgB0jK,gBAAAA,CAAiBzrD,MAAM,GAAKA,QAAU4rD,kBAAAA,EAAsBD,mBAAAA,EAAuBL,WAAY,CACzK,MAAMO,YAAcR,YAAAA,EAAgBT,UAAAA,GAAejtN,EAAAA,CACnD,GAAIqtN,KAAOhrD,MAAAA,CAAOurD,mBAAmB,EAAIvrD,OAAOwrD,mBAAmB,EAAI5I,YAAAA,CAAakJ,kBAAkB,EAAI9rD,MAAAA,EAAQ6iD,gBAAe,EAAI,CAErI,GAAImI,EAAAA,CAAI9f,UAAAA,CAAWigB,cAAc,CAAC,IAAI,CAACt/K,MAAM,CAAA,CAC7C,GAAI,CAACggL,WAAAA,CAAa,CACjB,IAAI,CAACE,iBAAiB,CAAC7gB,UAAAA,CAAY+W,iBAAkBl6J,YAAAA,CAAc6iK,UAAAA,CAAYjtN,IAChF,CACA,GAAI0tN,YAAAA,CAAc,CACjB,GAAIrrD,MAAAA,CAAOurD,mBAAmB,CAAE,CAC/B,MAAMS,aAAAA,CAAgBhsD,MAAAA,CAAOA,MAAM,CAAC8L,mBAAmB,CACvDkgD,cAAc53K,MAAM,CAAG4rH,OAAOj4G,YAAY,CAC1CmjJ,UAAAA,CAAWC,aAAa,CAAC6gB,aAAAA,EAC1B,CACA,GAAIhsD,MAAAA,CAAOwrD,mBAAmB,CAAE,CAC/BtgB,UAAAA,CAAWC,aAAa,CAACnrC,MAAAA,CAAOA,MAAM,CAAC+L,mBAAmB,EAC3D,CACD,CACA,GAAI62C,YAAAA,CAAakJ,kBAAkB,EAAI9rD,MAAAA,EAAQ6iD,gBAAAA,CAAkB,CAChE,MAAMp1J,WAAa,IAAIk1J,uBAAAA,CAAwB,IAAI,CAAC92K,MAAM,CAAE,IAAI,CAAE+2K,YAAAA,CAAAA,CAClE1X,UAAAA,CAAWC,aAAa,CAAC19I,UAAAA,EAC1B,CACA,GAAIu9J,GAAI9f,UAAAA,CAAWkgB,YAAY,EAAA,CAC/BP,QAAAA,CAAW,KACZ,CACD,CACD,CACD,CACAI,aAAajrD,MAAM,CAAE,CACpB,MAAMisD,WAAAA,CAAcjsD,OAAOA,MAAM,CACjC,OAAO,IAAI,CAACn0H,MAAM,CAACuG,QAAQ,EAAI,CAAC,CAAC65K,WAAAA,EAAa/+C,QAAAA,EAAY++C,WAAAA,CAAYx7C,OAAO,CAAC7yK,MAAM,EAAI,CACzF,CACAmuN,kBAAkB7gB,UAAU,CAAE+W,gBAAgB,CAAEl6J,YAAY,CAAE6iK,UAAU,CAAEsB,QAAQ,CAAE,CACnF,MAAMz+J,UAAAA,CAAa,IAAI2zJ,iBAAAA,CAAkB,IAAI,CAACv1K,MAAM,CAAEo2K,gBAAAA,CAAkB,IAAI,CAAC33D,KAAK,CAAE,IAAI,CAAA,CACxF78F,WAAW1B,IAAI,CAAChE,YAAAA,CAAAA,CAChB,MAAM+iK,cAAgB7I,gBAAAA,CAAiB8I,cAAc,CACrD,IAAK,IAAIptN,EAAAA,CAAKitN,UAAAA,CAAYjtN,IAAMuuN,QAAAA,CAAUvuN,EAAAA,EAAAA,CAAM,CAC/C8vD,UAAAA,CAAW6zJ,kBAAkB,CAAC,IAAI,CAAC6K,gCAAgC,CAACrB,aAAa,CAACntN,GAAG,CAAA,EACtF,CACAutM,UAAAA,CAAWC,aAAa,CAAC19I,UAAAA,EAC1B,CACA0+J,iCAAiCvJ,YAAY,CAAE,CAC9C,MAAMzrM,IAAAA,CAAO,IAAI6pM,eAAAA,CAAgB4B,aAAa5iD,MAAM,CAAE4iD,YAAAA,CAAaryH,KAAK,CAAEqyH,YAAAA,CAAarkD,WAAW,CAAEqkD,YAAAA,CAAa76J,YAAY,CAC7H5wC,CAAAA,KAAKykG,UAAU,CAAGgnG,aAAahnG,UAC/BzkG,CAAAA,IAAAA,CAAK6oD,UAAU,CAAG4iJ,YAAAA,CAAa5iJ,UAC/B7oD,CAAAA,IAAAA,CAAK8oD,YAAY,CAAG2iJ,YAAAA,CAAa3iJ,YAAY,CAC7C9oD,KAAK+pM,cAAc,CAAG0B,aAAa1B,cACnC/pM,CAAAA,IAAAA,CAAKgqM,aAAa,CAAGyB,YAAAA,CAAazB,aAAa,CAC/C,OAAOhqM,IACR,CACAqgC,MAAAA,CAAOwyJ,IAAI,CAAE,CACZ,IAAI,CAACnrI,WAAW,EAAA,CAChB,IAAI,CAAC0qI,cAAc,CAAC1qI,WAAW,GAC/B,IAAI,CAACyrF,KAAK,CAAC8hE,cAAc,EAAA,CACzB,IAAI,CAACtM,sBAAsB,CAAC9V,IAAAA,CAAAA,CAC5B,IAAI,CAAC5tB,aAAa,CAAC4tB,MACnB,IAAI,CAAC/6G,UAAU,CAAC+6G,MAChB,IAAI,CAACogB,iBAAiB,EACtB,CAAA,IAAI,CAACpP,cAAc,EAAExjK,OAAOwyJ,IAAAA,CAAAA,CAC5B,IAAI,CAACkW,MAAM,CAAChH,qBAAqB,CAAClP,IAAAA,EACnC,CACA1pC,IAAAA,CAAK0pC,IAAI,CAAE,CACV,IAAI,CAACkW,MAAM,CAACvG,eAAe,CAAC3P,IAAAA,CAC5B,CAAA,IAAI,CAACgR,cAAc,EAAEqR,aAAAA,EAAAA,CACrB,IAAI,CAAC5O,SAAS,CAAC,IAAI,CAACyC,MAAM,CAACrI,uBAAuB,CAAA,CAClD,IAAI,CAACqI,MAAM,CAACzH,qBAAqB,GAClC,CAroBA,WAAA,CAAYhtK,cAAc,CAAE6+G,KAAK,CAAE,CAClC,KAAK,CAAC7+G,cAAAA,CAAgB6+G,KAAAA,CAAAA,CACtB,MAAMz+G,MAAAA,CAAS,IAAI,CAACA,MAAM,CAC1B,IAAI,CAACs9K,iBAAiB,CAAG,CACzB,CAAA,IAAI,CAACT,iBAAiB,CAAG,CACzB,CAAA,IAAI,CAAC4D,aAAa,CAAG,CACrB,CAAA,IAAI,CAACC,YAAY,CAAG,CACpB,CAAA,IAAI,CAACC,SAAS,CAAG,CAAA,CACjB,MAAMpnN,MAAQymC,MAAAA,CAAOzmC,KAAK,CAC1B,IAAI,CAAC2kN,UAAU,CAAG3kN,KAAAA,CAAM6mC,OAAO,CAAC,WAAA,CAChC,CAAA,IAAI,CAAC+9K,UAAU,CAAG5kN,MAAM6mC,OAAO,CAAC,YAChC,CAAA,IAAI,CAACg+K,QAAQ,CAAG7kN,KAAAA,CAAM6mC,OAAO,CAAC,SAAA,CAC9B,CAAA,IAAI,CAACi+K,YAAY,CAAG9kN,MAAM6mC,OAAO,CAAC,cAClC,CAAA,IAAI,CAAC+3K,SAAS,CAAG5+M,KAAAA,CAAM6mC,OAAO,CAAC,qBAAA,CAC/B,CAAA,IAAI,CAACg4K,iBAAiB,CAAG7+M,KAAAA,CAAM6mC,OAAO,CAAC,kBACvC,CAAA,IAAI,CAACk4K,uBAAuB,CAAG/+M,MAAM6mC,OAAO,CAAC,uBAAA,CAC7C,CAAA,IAAI,CAACs+K,iBAAiB,CAAGnlN,KAAAA,CAAM6mC,OAAO,CAAC,oBAAA,CACvC,CAAA,IAAI,CAACw+K,mBAAmB,CAAGrlN,MAAM6mC,OAAO,CAAC,uBACzC,CAAA,IAAI,CAACq4K,YAAY,CAAG,EACpB,CAAA,IAAI,CAACvX,QAAQ,CAAG,EAAE,CAClB,IAAI,CAACwX,UAAU,CAAG,EAClB,CAAA,IAAI,CAACC,gBAAgB,CAAG,EAAE,CAC1B,IAAI,CAACC,mBAAmB,CAAG,EAAE,CAC7B,IAAI,CAACC,mBAAmB,CAAG,EAC3B,CAAA,IAAI,CAACC,oBAAoB,CAAG,EAAE,CAC9B,IAAI,CAACE,aAAa,CAAG,EAAE,CACvB,IAAI,CAAChV,QAAQ,CAAG,EAChB,CAAA,IAAI,CAACiV,UAAU,CAAG,EAAE,CACpB,IAAI,CAACC,UAAU,CAAG,EAAE,CACpB,IAAI,CAACC,YAAY,CAAG,EACpB,CAAA,IAAI,CAACC,WAAW,CAAG,EAAE,CACrB,IAAI,CAACC,aAAa,CAAG,EAAE,CACvB,IAAI,CAACC,cAAc,CAAG,EACtB,CAAA,IAAI,CAACC,eAAe,CAAG,EAAE,CACzB,IAAI,CAACC,aAAa,CAAG,EAAE,CACvB,IAAI,CAACC,gBAAgB,CAAG,EACxB,CAAA,IAAI,CAACC,mBAAmB,CAAG,EAAE,CAC7B,IAAI,CAACC,mBAAmB,CAAG,EAAE,CAC7B,IAAI,CAACZ,uBAAuB,CAAG,EAC/B,CAAA,IAAI,CAACa,mBAAmB,CAAG,EAAE,CAC7B,IAAI,CAACC,uBAAuB,CAAG,EAAE,CACjC,IAAI,CAACC,qBAAqB,CAAG,EAC7B,CAAA,IAAI,CAACC,wBAAwB,CAAG,EAAE,CAClC,IAAI,CAACC,oBAAoB,CAAG,EAC5B,CAAA,IAAI,CAACC,oBAAoB,CAAG,EAAE,CAC9B,IAAI,CAACC,oBAAoB,CAAG,EAAE,CAC9B,IAAI,CAACuE,YAAY,CAAGllN,KAAAA,CAAM6mC,OAAO,CAAC,aAAA,CAClC,CAAA,IAAI,CAACo+K,WAAW,CAAG,IAAInzM,aAAa,CAAA,CACpC,CAAA,IAAI,CAAC4yM,QAAQ,CAAG,IAAI5yM,YAAAA,CAAa,CAAA,CACjC,CAAA,IAAI,CAAC4sM,YAAY,CAAG,IAAI5sM,YAAAA,CAAa,CAAA,CACrC,CAAA,IAAI,CAACszM,eAAe,CAAG/G,8BAAAA,CAA+B,EAAA,CACtD,CAAA,IAAI,CAACiH,iBAAiB,CAAGhH,gCAAAA,CAAiC,IAC3D,CAklBD,CAAA,CAEA,IAAI+I,YAAAA,CAAe,EACnB,IAAIC,SAAAA,CAAY,EAAE,CAClB,IAAIC,eAAiC,IAAIhoN,GAAAA,CACzC,SAASioN,UAAAA,CAAW/b,SAAS,CAAEC,SAAS,CAAA,CACvC,OAAOD,UAAUlvC,SAAS,CAAGmvC,SAAAA,CAAUnvC,SAAS,CAEjD,SAASkrD,iBAAiBhc,SAAS,CAAEC,SAAS,CAAA,CAC7C,MAAMC,IAAAA,CAAOF,SAAAA,CAAUvxC,eAAe,CACtC,MAAM0xC,IAAAA,CAAOF,SAAAA,CAAUxxC,eAAe,CACtC,GAAIyxC,IAAAA,GAASC,IAAAA,CAAM,CAClB,OAAOF,SAAAA,CAAUthD,IAAI,CAAC1lH,EAAE,CAAG+mK,SAAAA,CAAUrhD,IAAI,CAAC1lH,EAAE,CAE7C,OAAOknK,IAAAA,CAAOD,IACf,CACA,SAAS+b,eAAAA,CAAgBjc,SAAS,CAAEC,SAAS,CAAA,CAC5C,OAAOA,UAAU3uC,eAAe,CAAG0uC,UAAU1uC,eAC9C,CACA,SAAS4qD,gBAAgBlc,SAAS,CAAEC,SAAS,CAAA,CAC5C,OAAOD,SAAAA,CAAU1uC,eAAe,CAAG2uC,SAAAA,CAAU3uC,eAAe,CAE7D,IAAI6qD,aAAAA,CAAgB,CAAC,KAAMJ,UAAAA,CAAYC,gBAAAA,CAAkBC,eAAAA,CAAiBC,eAAAA,CAAgB,CAC1F,IAAIE,eAAAA,CAAkB,oBACrBvV,gBAAAA,CAAAA,IAAAA,CAAAA,QAAAA,CAAS,EAAE,CAAA,CACXn5C,gBAAAA,CAAAA,IAAAA,CAAAA,aAAAA,CAAc,EAAE,GACjB,CAAA,CACA,IAAI2uD,MAAQ,KAAA,CAsEX,IAAI1oN,QAAQmN,GAAG,CAAE,CAChB,GAAIA,MAAQ,IAAI,CAAC+sD,QAAQ,CAAE,CAC1B,IAAI,CAACyuJ,iBAAiB,CAAG,IACzB,CAAA,IAAI,CAACC,qBAAqB,CAAG,IAC7B,CAAA,IAAI,CAAC1uJ,QAAQ,CAAG/sD,GAAAA,CAChB,GAAIA,GAAAA,CAAK,CACR,IAAI,CAAC07M,gBAAgB,EAAA,CACrB,GAAI,IAAI,CAAC1uJ,QAAQ,CAAE,IAAI,CAACA,QAAQ,GACjC,CAAA,KAAO,CACN,IAAI,CAAC2uJ,gBAAgB,EAAA,CACrB,GAAI,IAAI,CAAC1uJ,SAAS,CAAE,IAAI,CAACA,SAAS,GACnC,CACD,CACD,CACA,IAAIp6D,SAAU,CACb,OAAO,IAAI,CAACk6D,QAAQ,CAErB,IAAIkvG,gBAAAA,CAAiBj8J,GAAG,CAAE,CACzB,IAAI,CAACk8J,iBAAiB,CAAGl8J,GACzB,CAAA,IAAI,CAACw7M,iBAAiB,CAAG,KAC1B,CACA,IAAIv/C,kBAAmB,CACtB,OAAO,IAAI,CAACC,iBAAiB,CAE9B,IAAIE,gBAAAA,CAAiBp8J,GAAG,CAAE,CACzB,IAAI,CAACq8J,iBAAiB,CAAGr8J,GACzB,CAAA,IAAI,CAACw7M,iBAAiB,CAAG,KAC1B,CACA,IAAIp/C,kBAAmB,CACtB,OAAO,IAAI,CAACC,iBAAiB,CAE9B,IAAIE,kBAAAA,CAAmBv8J,GAAG,CAAE,CAC3B,IAAI,CAACw8J,mBAAmB,CAAGx8J,GAC3B,CAAA,IAAI,CAACw7M,iBAAiB,CAAG,KAC1B,CACA,IAAIj/C,oBAAqB,CACxB,OAAO,IAAI,CAACC,mBAAmB,CAEhC,IAAIinC,kBAAAA,EAAqB,CACxB,OAAO,IAAI,CAACmY,mBAAmB,CAAClrN,IAAI,CAAG,CACxC,CACA,IAAIozM,kBAAAA,EAAqB,CACxB,OAAO,IAAI,CAAC8X,mBACb,CACAF,gBAAAA,EAAmB,CAClB,GAAI,IAAI,CAACG,WAAW,GAAK,CAAA,CAAG,CAC3B,IAAI,CAAC9uJ,QAAQ,CAAG,IAAA,CAChB,GAAI,IAAI,CAACC,QAAQ,CAAE,IAAI,CAACA,QAAQ,GACjC,CACA,IAAI,CAAC6uJ,WAAW,GACjB,CACAF,gBAAAA,EAAmB,CAClB,GAAI,IAAI,CAACE,WAAW,GAAK,CAAA,CAAG,CAC3B,IAAI,CAAC9uJ,QAAQ,CAAG,KAAA,CAChB,GAAI,IAAI,CAACE,SAAS,CAAE,IAAI,CAACA,SAAS,GACnC,CAAA,KAAO,GAAI,IAAI,CAAC4uJ,WAAW,GAAK,CAAA,CAAG,CAClC,MACD,CACA,IAAI,CAACA,WAAW,GACjB,CACAC,mBAAmBC,SAAS,CAAE,CAC7B,GAAI,CAAC,IAAI,CAACC,mBAAmB,CAACjpN,GAAG,CAACgpN,SAAAA,CAAAA,CAAY,CAC7C,IAAI,CAACE,gBAAgB,CAACnvN,IAAI,CAACivN,SAAAA,CAAAA,CAC3B,IAAI,CAACC,mBAAmB,CAAC3/M,GAAG,CAAC0/M,SAAAA,CAC7B,CAAA,IAAI,CAACN,qBAAqB,CAAG,KAC9B,CACD,CACAS,qBAAAA,CAAsBH,SAAS,CAAE,CAChC,MAAM1qN,KAAAA,CAAQ,IAAI,CAAC4qN,gBAAgB,CAAClnN,OAAO,CAACgnN,SAAAA,CAAAA,CAC5C,GAAI1qN,KAAAA,EAAS,CAAA,CAAG,CACf,IAAI,CAAC4qN,gBAAgB,CAACrnN,MAAM,CAACvD,KAAAA,CAAO,CAAA,CAAA,CACpC,IAAI,CAAC2qN,mBAAmB,CAACrnN,MAAM,CAAConN,SAAAA,CAChC,CAAA,IAAI,CAACN,qBAAqB,CAAG,KAC9B,CACD,CACAU,sBAAsBJ,SAAS,CAAE,CAChC,GAAI,CAAC,IAAI,CAACK,sBAAsB,CAACrpN,GAAG,CAACgpN,SAAAA,CAAAA,CAAY,CAChD,IAAI,CAACM,mBAAmB,CAACvvN,IAAI,CAACivN,SAAAA,CAAAA,CAC9B,IAAI,CAACK,sBAAsB,CAAC//M,GAAG,CAAC0/M,SAAAA,CAChC,CAAA,IAAI,CAACN,qBAAqB,CAAG,KAC9B,CACD,CACAa,wBAAAA,CAAyBP,SAAS,CAAE,CACnC,MAAM1qN,KAAAA,CAAQ,IAAI,CAACgrN,mBAAmB,CAACtnN,OAAO,CAACgnN,SAAAA,CAAAA,CAC/C,GAAI1qN,KAAAA,EAAS,EAAG,CACf,IAAI,CAACgrN,mBAAmB,CAACznN,MAAM,CAACvD,KAAAA,CAAO,CAAA,CAAA,CACvC,IAAI,CAAC+qN,sBAAsB,CAACznN,MAAM,CAAConN,UACnC,CAAA,IAAI,CAACN,qBAAqB,CAAG,KAC9B,CACD,CACAziE,gBAAAA,CAAiBO,aAAa,CAAEgjE,iBAAiB,CAAE,CAClD,MAAMC,iBAAAA,CAAoB,IAAI,CAACjjE,aAAa,CAC5C,MAAMkjE,oBAAAA,CAAuB,IAAI,CAACC,gBAAgB,CAClD,IAAK,IAAI1wN,EAAAA,CAAK,CAAA,CAAGA,GAAKutJ,aAAAA,CAActtJ,MAAM,CAAED,EAAAA,EAAAA,CAAM,CACjD,MAAMilK,EAAAA,CAAK1X,aAAa,CAACvtJ,EAAAA,CAAG,CAC5B,GAAI,CAACywN,oBAAAA,CAAqB1pN,GAAG,CAACk+J,EAAAA,CAAAA,CAAK,CAClCurD,iBAAAA,CAAkB1vN,IAAI,CAACmkK,EAAAA,CAAAA,CACvBwrD,oBAAAA,CAAqBpgN,GAAG,CAAC40J,IACzB+pD,cAAAA,CAAe3+M,GAAG,CAAC40J,EAAAA,CAAGta,QAAQ,EAC/B,CACD,CACA,GAAI,CAAC4lE,kBAAmB,CACvB,IAAI,CAACI,gBAAgB,CAACpjE,aAAAA,EACvB,CACA,GAAIyhE,cAAAA,CAAetqN,IAAI,CAAG,CAAA,CAAG,CAC5B,MAAMksN,cAAAA,CAAiB,IAAI,CAACh7B,cAAc,CAC1Co5B,cAAAA,CAAetiN,OAAO,CAAE0zJ,IAAAA,EAAAA,CACvB,GAAIwwD,gBAAkB,CAAA,EAAKxwD,IAAAA,CAAKw1B,cAAc,GAAKg7B,eAAgB,CAClE,GAAIxwD,KAAKG,gBAAgB,GAAKgzB,SAASlF,SAAS,CAAC9tB,gBAAgB,CAAE,CAClEH,IAAAA,CAAKs0B,aAAa,GACnB,CACAt0B,IAAAA,CAAKw1B,cAAc,CAAGg7B,eACvB,CACD,CAAA,CAAA,CACA5B,eAAetmN,KAAK,GACrB,CACD,CACAukJ,mBAAAA,CAAoBM,aAAa,CAAEgjE,iBAAiB,CAAE,CACrD,MAAMC,iBAAAA,CAAoB,IAAI,CAACjjE,aAAa,CAC5C,MAAMkjE,oBAAAA,CAAuB,IAAI,CAACC,gBAAgB,CAClD,IAAK,IAAI1wN,EAAAA,CAAK,CAAA,CAAGA,GAAKutJ,aAAAA,CAActtJ,MAAM,CAAED,EAAAA,EAAAA,CAAM,CACjD,MAAMilK,EAAAA,CAAK1X,aAAa,CAACvtJ,GAAG,CAC5B,GAAIywN,oBAAAA,CAAqB1pN,GAAG,CAACk+J,EAAAA,CAAAA,CAAK,CACjCwrD,qBAAqB9nN,MAAM,CAACs8J,IAC5B,MAAMvzH,CAAAA,CAAI8+K,iBAAAA,CAAkBznN,OAAO,CAACk8J,EAAAA,CAAAA,CACpC,GAAIvzH,CAAAA,EAAK,CAAA,CAAG,CACX8+K,iBAAAA,CAAkB5nN,MAAM,CAAC8oC,CAAAA,CAAG,GAC7B,CACD,CACD,CACA,GAAI,CAAC6+K,kBAAmB,CACvB,IAAI,CAACM,mBAAmB,CAACtjE,aAAAA,EAC1B,CACD,CACAojE,gBAAAA,CAAiBpjE,aAAa,CAAE,CAC/B,MAAM0kD,aAAAA,CAAgB,IAAI,CAACA,aAAa,CACxC,MAAM6e,gBAAAA,CAAmB,IAAI,CAACA,gBAAgB,CAC9C,IAAK,IAAI9wN,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAKutJ,aAAAA,CAActtJ,MAAM,CAAED,EAAAA,EAAAA,CAAM,CACjD,MAAMilK,GAAK1X,aAAa,CAACvtJ,GAAG,CAC5B,GAAIilK,GAAGnB,UAAU,EAAI,CAACgtD,gBAAAA,CAAiB/pN,GAAG,CAACk+J,EAAAA,CAAAA,CAAK,CAC/C6rD,gBAAAA,CAAiBzgN,GAAG,CAAC40J,EAAAA,CAAAA,CACrBgtC,aAAAA,CAAcnxM,IAAI,CAACmkK,EAAAA,EACpB,CACD,CACD,CACA4rD,mBAAAA,CAAoBtjE,aAAa,CAAE,CAClC,MAAM0kD,aAAAA,CAAgB,IAAI,CAACA,aAAa,CACxC,MAAM6e,iBAAmB,IAAI,CAACA,gBAAgB,CAC9C,IAAK,IAAI9wN,EAAAA,CAAK,EAAGA,EAAAA,CAAKutJ,aAAAA,CAActtJ,MAAM,CAAED,EAAAA,EAAAA,CAAM,CACjD,MAAMilK,GAAK1X,aAAa,CAACvtJ,GAAG,CAC5B,GAAI8wN,iBAAiB/pN,GAAG,CAACk+J,EAAAA,CAAAA,CAAK,CAC7B6rD,iBAAiBnoN,MAAM,CAACs8J,IACxB,MAAMvzH,CAAAA,CAAIugK,cAAclpM,OAAO,CAACk8J,EAAAA,CAAAA,CAChC,GAAIvzH,GAAK,CAAA,CAAG,CACXugK,aAAAA,CAAcrpM,MAAM,CAAC8oC,CAAAA,CAAG,CAAA,EACzB,CACD,CACD,CACD,CACAq/K,kBAAAA,CAAmBR,kBAAoB,KAAK,CAAE,CAC7C,IAAI,CAAChjE,aAAa,CAACttJ,MAAM,CAAG,CAAA,CAC5B,IAAI,CAACywN,gBAAgB,CAAChoN,KAAK,EAAA,CAC3B,GAAI,CAAC6nN,iBAAAA,CAAmB,CACvB,IAAI,CAACte,aAAa,CAAChyM,MAAM,CAAG,CAAA,CAC5B,IAAI,CAAC6wN,gBAAgB,CAACpoN,KAAK,GAC5B,CACD,CACAsoN,eAAAA,EAAkB,CACjB,IAAI,CAACC,eAAe,CAAG,IACvB,CAAA,IAAI,CAACC,iBAAiB,CAAG,IACzB,CAAA,IAAI,CAACC,iBAAiB,CAAG,KAC1B,CACAC,QAAAA,CAASp6C,KAAK,CAAE,CACf,OAAO,IAAI,CAACg7B,UAAU,CAACjrM,GAAG,CAACiwK,KAAAA,CAC5B,CACAq6C,QAAAA,CAASr6C,KAAK,CAAE,CACf,MAAMh4J,CAAAA,CAAIg4J,KAAAA,CAAMA,KAAK,CACrB,GAAI,CAAC,IAAI,CAACg7B,UAAU,CAACjrM,GAAG,CAACiY,CAAAA,CAAAA,CAAI,CAC5B,IAAI,CAACgzL,UAAU,CAAC3hM,GAAG,CAAC2O,CAAAA,CAAAA,CACpB,IAAI,CAAC08L,OAAO,CAAC56M,IAAI,CAACke,CAAAA,CAAAA,CAClB,IAAI,CAACgyM,eAAe,GACrB,CACA,GAAIhyM,EAAE5H,IAAI,GAAKwjI,qBAAAA,CAAuB,CACrC,IAAI,CAACg1E,mBAAmB,CAACv/M,GAAG,CAAC2O,CAAAA,EAC9B,CACD,CACAsyM,WAAAA,CAAYt6C,KAAK,CAAE,CAClB,MAAMh4J,CAAAA,CAAIg4J,KAAAA,CAAMA,KAAK,CACrB,GAAI,IAAI,CAACg7B,UAAU,CAACjrM,GAAG,CAACiY,CAAAA,CAAAA,CAAI,CAC3B,IAAI,CAACgzL,UAAU,CAACrpM,MAAM,CAACqW,CAAAA,CAAAA,CACvB,IAAI,CAAC08L,OAAO,CAAC9yM,MAAM,CAAC,IAAI,CAAC8yM,OAAO,CAAC3yM,OAAO,CAACiW,CAAAA,CAAAA,CAAI,CAAA,CAAA,CAC7C,IAAI,CAACgyM,eAAe,GACrB,CACA,GAAIhyM,CAAAA,CAAE5H,IAAI,GAAKwjI,qBAAAA,CAAuB,CACrC,IAAI,CAACg1E,mBAAmB,CAACjnN,MAAM,CAACqW,CAAAA,EACjC,CACD,CACAuyM,WAAAA,EAAc,CACb,IAAI,CAACvf,UAAU,CAACtlM,OAAO,CAAEsqK,OAAUA,KAAAA,CAAMw6C,WAAW,CAAC,IAAI,CAAA,CAAA,CACzD,IAAI,CAACxf,UAAU,CAACtpM,KAAK,EAAA,CACrB,IAAI,CAACknN,mBAAmB,CAAClnN,KAAK,EAC9B,CAAA,IAAI,CAACgzM,OAAO,CAACz7M,MAAM,CAAG,CAAA,CACtB,IAAI,CAAC+wN,eAAe,GACrB,CACA,IAAI1V,WAAAA,EAAc,CACjB,GAAI,IAAI,CAAC6V,iBAAiB,CAAE,CAC3B,IAAI,CAACA,iBAAiB,CAAG,KAAA,CACzB,MAAM7V,WAAAA,CAAc,IAAI,CAACmW,YAAY,CACrC,IAAK,IAAIzxN,EAAAA,CAAK,CAAA,CAAGA,GAAKs7M,WAAAA,CAAYr7M,MAAM,CAAED,EAAAA,EAAAA,CAAM,CAC/Cs7M,WAAW,CAACt7M,GAAG,CAACC,MAAM,CAAG,EAC1B,CACA,MAAMy+K,OAAAA,CAAU,IAAI,CAACg9B,OAAO,CAC5B,IAAK,IAAI17M,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAK0+K,OAAAA,CAAQz+K,MAAM,CAAED,EAAAA,EAAAA,CAAM,CAC3C,MAAMg3K,KAAAA,CAAQ0H,OAAO,CAAC1+K,EAAAA,CAAG,CACzB,GAAIg3K,MAAMnwK,OAAO,CAAE,CAClBy0M,WAAW,CAACtkC,KAAAA,CAAMn9J,KAAK,CAAC,CAAC/Y,IAAI,CAACk2K,KAAAA,EAC/B,CACD,CACA,IAAK,IAAIh3K,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAKs7M,WAAAA,CAAYr7M,MAAM,CAAED,EAAAA,EAAAA,CAAM,CAC/Cs7M,WAAW,CAACt7M,GAAG,CAACiQ,IAAI,CAAC,CAACtT,EAAGC,CAAAA,GAAMD,CAAAA,CAAEoL,GAAG,CAAGnL,CAAAA,CAAEmL,GAAG,EAC7C,CACD,CACA,OAAO,IAAI,CAAC0pN,YAAY,CAEzBC,kBAAkB5nB,WAAW,CAAE6nB,iBAAiB,CAAEC,MAAM,CAAE,CACzD,IAAI9uK,IAAAA,CAAO,CAAA,CACX,MAAM47H,OAAAA,CAAU,IAAI,CAACg9B,OAAO,CAC5B,IAAK,IAAI17M,EAAAA,CAAK,CAAA,CAAGA,GAAK0+K,OAAAA,CAAQz+K,MAAM,CAAED,EAAAA,EAAAA,CAAM,CAC3C,MAAM6xN,YAAAA,CAAenzC,OAAO,CAAC1+K,EAAAA,CAAG,CAACoX,IAAI,GAAKwjI,qBAAAA,CAC1C,GAAIkvD,aAAe+nB,YAAAA,EAAgBF,iBAAAA,EAAqB,CAACE,YAAAA,CAAc,CACtE9C,SAAAA,CAAUjuN,IAAI,CAAC8wN,MAAAA,CAASlzC,OAAO,CAAC1+K,EAAAA,CAAG,CAACmsC,EAAE,CAAGuyI,OAAO,CAAC1+K,EAAAA,CAAG,CAAC+H,GAAG,EACzD,CACD,CACA,GAAIgnN,SAAAA,CAAU9uN,MAAM,CAAG,CAAA,CAAG,CACzB8uN,SAAAA,CAAU9+M,IAAI,EAAA,CACd6yC,IAAAA,CAAOC,YAAYgsK,SAAAA,CACnBA,CAAAA,UAAU9uN,MAAM,CAAG,EACpB,CACA,OAAO6iD,IACR,CACA4nK,YAAAA,CAAane,WAAW,CAAE,CACzB,GAAI,IAAI,CAAC0kB,eAAe,CAAE,CACzB,IAAI,CAACA,eAAe,CAAG,KACvB,CAAA,IAAI,CAACa,UAAU,CAAG,IAAI,CAACJ,iBAAiB,CAAC,CAACnlB,WAAAA,CAAa,IAAA,CAAM,KAAA,EAC9D,CACA,OAAO,IAAI,CAACulB,UACb,CAEApa,cAAAA,EAAiB,CAChB,GAAI,IAAI,CAACwZ,iBAAiB,CAAE,CAC3B,IAAI,CAACA,iBAAiB,CAAG,KACzB,CAAA,IAAI,CAACa,YAAY,CAAG,IAAI,CAACL,iBAAiB,CAAC,IAAA,CAAM,KAAA,CAAO,IAAA,EACzD,CACA,OAAO,IAAI,CAACK,YACb,CACAC,SAAAA,CAAU3vD,MAAM,CAAE,CACjB,GAAI,CAAC,IAAI,CAAC4vD,UAAU,CAAClrN,GAAG,CAACs7J,MAAAA,CAAOA,MAAM,CAAA,CAAG,CACxC,IAAI,CAAC4vD,UAAU,CAAC5hN,GAAG,CAACgyJ,MAAAA,CAAOA,MAAM,CAAA,CACjC,IAAI,CAAC83C,OAAO,CAACr5M,IAAI,CAACuhK,OAClB,CAAA,IAAI,CAACmtD,iBAAiB,CAAG,KAC1B,CACD,CACA0C,YAAAA,CAAa7vD,MAAM,CAAE,CACpB,GAAI,IAAI,CAAC4vD,UAAU,CAAClrN,GAAG,CAACs7J,MAAAA,CAAOA,MAAM,CAAA,CAAG,CACvC,IAAI,CAAC4vD,UAAU,CAACtpN,MAAM,CAAC05J,MAAAA,CAAOA,MAAM,CAAA,CACpC,MAAMh9J,KAAAA,CAAQ,IAAI,CAAC80M,OAAO,CAACpxM,OAAO,CAACs5J,MAAAA,CAAAA,CACnC,IAAI,CAAC83C,OAAO,CAACvxM,MAAM,CAACvD,KAAAA,CAAO,CAAA,CAC3B,CAAA,IAAI,CAACmqN,iBAAiB,CAAG,KAC1B,CACD,CACA2C,YAAAA,EAAe,CACd,IAAI,CAAChY,OAAO,CAACl6M,MAAM,CAAG,CAAA,CACtB,IAAI,CAACgyN,UAAU,CAACvpN,KAAK,EACrB,CAAA,IAAI,CAAC8mN,iBAAiB,CAAG,KAC1B,CACA4C,uBAAAA,CAAwBvY,SAAS,CAAEwY,MAAM,CAAEC,MAAM,CAAE,CAClD,MAAMziL,MAAQgqK,SAAAA,CAAU55M,MAAM,CAC9B,KAAM,CAAE8b,CAAAA,CAAGw2M,EAAE,CAAEv2M,CAAAA,CAAGw2M,EAAE,CAAEv2M,CAAAA,CAAGw2M,EAAE,CAAE,CAAGJ,OAChC,KAAM,CAAEt2M,CAAAA,CAAG22M,EAAE,CAAE12M,CAAAA,CAAG22M,EAAE,CAAE12M,CAAAA,CAAG22M,EAAE,CAAE,CAAGN,MAAAA,CAChC,IAAK,IAAItyN,EAAAA,CAAK,CAAA,CAAGA,GAAK6vC,KAAAA,CAAO7vC,EAAAA,EAAAA,CAAM,CAClC,MAAMi6M,QAAAA,CAAWJ,SAAS,CAAC75M,GAAG,CAC9B,IAAI6yN,MACJ,GAAI5Y,QAAAA,CAASn5C,qBAAqB,CAAE,CACnC+xD,KAAAA,CAAQ5Y,QAAAA,CAASn5C,qBAAqB,CAACm5C,QAAAA,CAAUoY,OAAQC,MAAAA,EAC1D,CAAA,KAAO,CACN,MAAMQ,OAAAA,CAAU7Y,QAAAA,CAAS7sD,IAAI,CAAC9hI,MAAM,CACpCunM,KAAAA,CAASC,CAAAA,OAAAA,CAAQ/2M,CAAC,CAAGw2M,EAAC,EAAKG,EAAAA,CAAMI,CAAAA,OAAAA,CAAQ92M,CAAC,CAAGw2M,EAAC,EAAKG,EAAAA,CAAMG,CAAAA,OAAAA,CAAQ72M,CAAC,CAAGw2M,EAAC,EAAKG,GAC5E,CACA,MAAM/zD,MAAAA,CAASo7C,SAASn7C,WAAW,CAAG,GACtCm7C,CAAAA,QAAAA,CAASz1C,eAAe,CAAG3F,MAAAA,CAASg0D,MACrC,CACD,CACA9W,kBAAAA,CAAmB15C,MAAM,CAAE,CAC1B,IAAI0wD,SAAAA,CAAY,IAAI,CAACC,iBAAiB,CAACt2N,GAAG,CAAC2lK,QAC3C,GAAI,CAAC0wD,UAAW,CACfA,SAAAA,CAAY,IAAIzD,eAAAA,CAChB,IAAI,CAAC0D,iBAAiB,CAACrsN,GAAG,CAAC07J,MAAAA,CAAQ0wD,SAAAA,EACpC,CACA,OAAOA,SACR,CACApH,WAAAA,CAAYtpD,MAAM,CAAEzB,WAAW,CAAE,CAChC,MAAMqyD,QAAAA,CAAWryD,WAAAA,CAAc,IAAI,CAACsyD,mBAAmB,CAAG,IAAI,CAACC,cAAc,CAC7E,GAAIF,QAAAA,GAAa5vE,cAAe,CAC/B,MACD,CACA,MAAMy2D,eAAAA,CAAkB,IAAI,CAACiC,kBAAkB,CAAC15C,MAAAA,CAAAA,CAChD,MAAM0wD,SAAAA,CAAYnyD,WAAAA,CAAck5C,eAAAA,CAAgBl5C,WAAW,CAAGk5C,eAAAA,CAAgBC,MAAM,CACpF,MAAMqZ,WAAa/wD,MAAAA,CAAO7K,IAAI,CAC9B,GAAIy7D,QAAAA,GAAavvE,gBAAiB,CACjC,MAAM2vE,OAAAA,CAAUD,UAAAA,CAAWljF,WAAW,EAAA,CACtC,MAAMojF,OAAAA,CAAUF,UAAAA,CAAWr7D,OAAO,CAClC,GAAI,IAAI,CAACw7D,yBAAyB,CAAE,CACnC,IAAI,CAACA,yBAAyB,CAACR,SAAAA,CAAWA,SAAAA,CAAU9yN,MAAM,CAAEozN,QAASC,OAAAA,EACtE,CACA,GAAI,IAAI,CAACE,kBAAkB,CAAE,CAC5BT,SAAAA,CAAU9iN,IAAI,CAAC,IAAI,CAACujN,kBAAkB,EACvC,CACD,MAAO,CACN,GAAIP,QAAAA,GAAazvE,mBAAAA,EAAuByvE,WAAaxvE,mBAAAA,CAAqB,CACzE,MAAM4vE,OAAAA,CAAUD,WAAWljF,WAAW,EAAA,CACtC,MAAMojF,OAAAA,CAAUF,WAAWr7D,OAAO,CAClC,IAAI,CAACq6D,uBAAuB,CAACW,SAAAA,CAAWM,OAAAA,CAASC,OAAAA,EAClD,CACAP,UAAU9iN,IAAI,CAACo/M,aAAa,CAAC4D,SAAS,EACvC,CACD,CA1VA,WAAA,CAAYzhN,SAAW,EAAE,CAAE,CA/C3B26B,gBAAAA,CAAAA,IAAAA,CAAAA,KAAAA,MAAAA,CAAAA,CACArpC,gBAAAA,CAAAA,IAAAA,CAAAA,MAAAA,CAAAA,MAAAA,CAAAA,CAEAi+D,gBAAAA,CAAAA,IAAAA,CAAAA,UAAAA,CAAW,IAAA,CAAA,CACX8uJ,sBAAAA,aAAAA,CAAc,CAAA,CAAA,CAEdsD,gBAAAA,CAAAA,IAAAA,CAAAA,gBAAAA,CAAiB5vE,uBACjB2vE,gBAAAA,CAAAA,IAAAA,CAAAA,qBAAAA,CAAsB1vE,qBACtBgwE,gBAAAA,CAAAA,IAAAA,CAAAA,oBAAAA,CAAqB,MACrBD,gBAAAA,CAAAA,IAAAA,CAAAA,2BAAAA,CAA4B,IAAA,CAAA,CAE5BrjD,gBAAAA,CAAAA,IAAAA,CAAAA,oBAAoB,KAAA,CAAA,CACpBG,gBAAAA,CAAAA,IAAAA,CAAAA,mBAAAA,CAAoB,KAAA,CAAA,CACpBG,sBAAAA,qBAAAA,CAAsB,KAAA,CAAA,CAEtBxvG,gBAAAA,CAAAA,IAAAA,CAAAA,UAAAA,CAAAA,MAAAA,CAAAA,CACAC,gBAAAA,CAAAA,IAAAA,CAAAA,YAAAA,MAAAA,CAAAA,CAEAssF,sBAAAA,eAAAA,CAAgB,EAAE,CAAA,CAClBmjE,gBAAAA,CAAAA,IAAAA,CAAAA,mBAAmC,IAAI1pN,GAAAA,CAAAA,CACvCirM,gBAAAA,CAAAA,IAAAA,CAAAA,eAAAA,CAAgB,EAAE,CAAA,CAClB6e,gBAAAA,CAAAA,IAAAA,CAAAA,kBAAAA,CAAmC,IAAI9pN,KACvCgsN,gBAAAA,CAAAA,IAAAA,CAAAA,mBAAAA,CAAoC,IAAIxQ,OAAAA,CAAAA,CAExC9G,gBAAAA,CAAAA,IAAAA,CAAAA,UAAU,EAAE,CAAA,CACZ1J,gBAAAA,CAAAA,IAAAA,CAAAA,YAAAA,CAA6B,IAAIhrM,GAAAA,CAAAA,CACjC4oN,gBAAAA,CAAAA,IAAAA,CAAAA,qBAAAA,CAAsC,IAAI5oN,KAC1CyqN,gBAAAA,CAAAA,IAAAA,CAAAA,cAAAA,CAAe,CAAC,EAAE,CAAE,EAAE,CAAE,EAAE,CAAC,CAAA,CAC3BN,sBAAAA,mBAAAA,CAAoB,IAAA,CAAA,CACpBW,gBAAAA,CAAAA,IAAAA,CAAAA,YAAAA,CAAa,GACbb,gBAAAA,CAAAA,IAAAA,CAAAA,iBAAAA,CAAkB,KAAA,CAAA,CAClBc,gBAAAA,CAAAA,IAAAA,CAAAA,eAAe,CAAA,CAAA,CACfb,gBAAAA,CAAAA,IAAAA,CAAAA,mBAAAA,CAAoB,KAAA,CAAA,CACpBrF,sBAAAA,mBAAAA,CAAoB,KAAA,CAAA,CAEpB1R,sBAAAA,SAAAA,CAAU,EAAE,EACZ8X,gBAAAA,CAAAA,IAAAA,CAAAA,YAAAA,CAA6B,IAAIjrN,GAAAA,CAAAA,CAEjCipN,sBAAAA,kBAAAA,CAAmB,EAAE,EACrBD,gBAAAA,CAAAA,IAAAA,CAAAA,qBAAAA,CAAsC,IAAIhpN,GAAAA,CAAAA,CAC1CqpN,gBAAAA,CAAAA,IAAAA,CAAAA,qBAAAA,CAAsB,EAAE,EACxBD,gBAAAA,CAAAA,IAAAA,CAAAA,wBAAAA,CAAyC,IAAIppN,GAAAA,CAAAA,CAC7CyoN,gBAAAA,CAAAA,IAAAA,CAAAA,wBAAwB,IAAA,CAAA,CAExBD,gBAAAA,CAAAA,IAAAA,CAAAA,mBAAAA,CAAoB,KAAA,CAAA,CACpB55B,sBAAAA,gBAAAA,CAAiB,EAAC,CAAA,CAGjB,GAAIpkL,SAAS26B,EAAE,GAAK,MAAK,CAAG,CAC3B,IAAI,CAACA,EAAE,CAAG36B,QAAAA,CAAS26B,EAAE,CACrB2iL,YAAAA,CAAevvN,IAAAA,CAAK6T,GAAG,CAAC,IAAI,CAAC+4B,EAAE,CAAG,EAAG2iL,YAAAA,EACtC,CAAA,KAAO,CACN,IAAI,CAAC3iL,EAAE,CAAG2iL,eACX,CACA,IAAI,CAAChsN,IAAI,CAAG0O,QAAAA,CAAS1O,IAAI,CACzB,IAAI,CAACi+D,QAAQ,CAAGvvD,QAAAA,CAAS3K,OAAO,EAAI,IACpC,CAAA,IAAI,CAACgpN,WAAW,CAAG,IAAI,CAAC9uJ,QAAQ,CAAG,CAAA,CAAI,CACvC,CAAA,IAAI,CAACoyJ,cAAc,CAAG3hN,SAAS2hN,cAAc,EAAI5vE,qBACjD,CAAA,IAAI,CAAC2vE,mBAAmB,CAAG1hN,QAAAA,CAAS0hN,mBAAmB,EAAI1vE,mBAC3D,CAAA,IAAI,CAAC0sB,iBAAiB,CAAG,CAAC,CAAC1+J,QAAAA,CAASy+J,gBAAgB,CACpD,IAAI,CAACI,iBAAiB,CAAG,CAAC,CAAC7+J,QAAAA,CAAS4+J,gBAAgB,CACpD,IAAI,CAACI,mBAAmB,CAAG,CAAC,CAACh/J,QAAAA,CAAS++J,kBAAkB,CACxD,IAAI,CAACvvG,QAAQ,CAAGxvD,QAAAA,CAASwvD,QAAQ,CACjC,IAAI,CAACC,SAAS,CAAGzvD,QAAAA,CAASyvD,SAAS,CACnC,GAAI,IAAI,CAACF,QAAQ,EAAI,IAAI,CAACC,QAAQ,CAAE,CACnC,IAAI,CAACA,QAAQ,GACd,CACD,CAuUD,CAAA,CAEA,IAAIyyJ,WAAAA,CAAc,CAAC92N,EAAGC,CAAAA,GAAMD,CAAAA,CAAE+2N,QAAQ,CAAG92N,CAAAA,CAAE82N,QAAQ,CACnD,IAAIC,YAAAA,CAAgB7tN,KAAQA,GAAAA,CAAImK,IAAI,CAACwjN,WAAAA,CAAAA,CAErC,IAAIG,aAAe,KAAA,CAelBtQ,WAAAA,CAAYjhD,MAAM,CAAEzvE,KAAK,CAAE,CAC1B,IAAI,CAACqrB,UAAU,CAAGokD,MAAAA,EAAQ4N,gBAAAA,EAAoBr9E,KAAAA,CAAMq9E,gBAAgB,CACpE,IAAI,CAAC5tG,UAAU,CAAGggG,MAAAA,EAAQ+N,gBAAAA,EAAoBx9E,KAAAA,CAAMw9E,gBAAgB,CACpE,IAAI,CAAC9tG,YAAY,CAAG+/F,MAAAA,EAAQkO,kBAAAA,EAAsB39E,KAAAA,CAAM29E,mBAAkB,CAf3E,WAAA,EAAc,CADdlO,gBAAAA,CAAAA,IAAAA,CAAAA,QAAAA,CAAS,KAER,CAAA,IAAI,CAACzvE,KAAK,CAAG,IACb,CAAA,IAAI,CAACguE,WAAW,CAAG,KACnB,CAAA,IAAI,CAACx2G,YAAY,CAAG,IACpB,CAAA,IAAI,CAAC6zD,UAAU,CAAG,KAClB,CAAA,IAAI,CAAC57C,UAAU,CAAG,KAClB,CAAA,IAAI,CAACC,YAAY,CAAG,KACpB,CAAA,IAAI,CAAC6rJ,kBAAkB,CAAG,KAC1B,CAAA,IAAI,CAAC5K,cAAc,CAAG,KACtB,CAAA,IAAI,CAACC,aAAa,CAAG,KACrB,CAAA,IAAI,CAAC+J,eAAe,CAAG,MACxB,CAMD,CAAA,CAEA,IAAIsG,gBAAAA,CAAmB,cAAc5rN,YAAAA,CAoBpCygJ,SAAAA,EAAY,CACX,IAAI,CAAC9iG,MAAM,CAAG,KACf,CACAy8J,OAAAA,EAAU,CACT,MAAMxqM,IAAM,IAAI,CAACk6L,SAAS,CAAC9xM,MAAM,CACjC,GAAI,CAAC,IAAI,CAAC2lD,MAAM,CAAE,CACjB,IAAK,IAAI5lD,GAAK,CAAA,CAAGA,EAAAA,CAAK6X,GAAAA,CAAK7X,EAAAA,EAAAA,CAAM,CAChC,GAAI,IAAI,CAAC+xM,SAAS,CAAC/xM,GAAG,CAACwvN,iBAAiB,CAAE,CACzC,IAAI,CAAC5pK,MAAM,CAAG,IAAA,CACd,KACD,CACD,CACD,CACA,GAAI,IAAI,CAACA,MAAM,CAAE,CAChB,IAAI,CAACA,MAAM,CAAG,KACd,CAAA,IAAI,CAACu0J,OAAO,CAACl6M,MAAM,CAAG,EACtB,IAAI,CAACgyN,UAAU,CAACvpN,KAAK,EAAA,CACrB,IAAK,IAAI1I,EAAAA,CAAK,CAAA,CAAGA,GAAK6X,GAAAA,CAAK7X,EAAAA,EAAAA,CAAM,CAChC,MAAM4yF,MAAQ,IAAI,CAACm/G,SAAS,CAAC/xM,GAAG,CAChC4yF,KAAAA,CAAM48H,iBAAiB,CAAG,KAAA,CAC1B,IAAK,IAAI99K,CAAAA,CAAI,CAAA,CAAGA,EAAIkhD,KAAAA,CAAMunH,OAAO,CAACl6M,MAAM,CAAEyxC,CAAAA,EAAAA,CAAK,CAC9C,MAAMwpK,eAAAA,CAAkBtoH,MAAMunH,OAAO,CAACzoK,CAAAA,CAAE,CACxC,GAAI,CAAC,IAAI,CAACugL,UAAU,CAAClrN,GAAG,CAACm0M,eAAAA,CAAgB74C,MAAM,CAAA,CAAG,CACjD,IAAI,CAAC4vD,UAAU,CAAC5hN,GAAG,CAAC6qM,eAAAA,CAAgB74C,MAAM,CAAA,CAC1C,IAAI,CAAC83C,OAAO,CAACr5M,IAAI,CAACo6M,iBACnB,CACD,CACD,CACA,GAAI,IAAI,CAACf,OAAO,CAACl6M,MAAM,CAAG,CAAA,CAAG,CAC5B0zN,YAAAA,CAAa,IAAI,CAACxZ,OAAO,EAC1B,CAEA,IAAI2Z,iBAAAA,CAAoB,CACxB,CAAA,IAAI,CAAC1G,cAAc,CAACntN,MAAM,CAAG,CAAA,CAC7B,IAAK,IAAID,GAAK,CAAA,CAAGA,EAAAA,CAAK,IAAI,CAACm6M,OAAO,CAACl6M,MAAM,CAAED,EAAAA,EAAAA,CAAM,CAChD,MAAMqiK,MAAAA,CAAS,IAAI,CAAC83C,OAAO,CAACn6M,EAAAA,CAC5Bm7M,CACA,GAAI94C,MAAAA,CAAOA,MAAM,CAACgM,WAAW,CAACpuK,MAAM,CAAG,EAAG,CACzC,IAAI,CAAC8zN,oBAAoB,CAACD,kBAAmBzxD,MAAAA,CAC7CyxD,CAAAA,iBAAAA,EAAAA,CACA,QACD,CACA,IAAIE,uBAAAA,CAA0B,KAC9B,MAAMC,4BAAAA,CAA+BH,kBACrC,IAAII,gBAAAA,CAAmB,IAAA,CACvB,IAAIC,kBAAoB,KAAA,CACxB,IAAK,IAAIziL,CAAAA,CAAI,EAAGA,CAAAA,CAAI75B,GAAAA,CAAK65B,CAAAA,EAAAA,CAAK,CAC7B,MAAMkhD,KAAAA,CAAQ,IAAI,CAACm/G,SAAS,CAACrgK,EAAE,CAC/B,MAAM0iL,cAAAA,CAAiBxhI,KAAAA,CAAM/rF,OAAO,EAAI,IAAI,CAACwtN,eAAe,CAAC3iL,CAAAA,CAAE,CAC/D,GAAI0iL,cAAAA,CAAgB,CACnB,GAAIxhI,KAAAA,CAAMunH,OAAO,CAACl6M,MAAM,CAAG,CAAA,CAAG,CAC7B,GAAIoiK,MAAAA,CAAOxuE,MAAM,CAAC9qF,OAAO,CAAC6pF,KAAAA,CAAMzmD,EAAE,CAAA,EAAK,CAAA,CAAG,CAEzC,GAAI,CAACgoL,iBAAAA,EAAqBvhI,MAAMzmD,EAAE,GAAKk2H,MAAAA,CAAOiyD,uBAAuB,CAAE,CACtEH,iBAAAA,CAAoB,IAAA,CACpB,GAAID,iBAAkB,CACrBA,gBAAAA,CAAiB/F,kBAAkB,CAAG,KACvC,CACD,CACA,MAAMoG,aAAAA,CAAgB,IAAI,CAACC,YAAY,CAAC9iL,CAAAA,CAAE,CAC1CwiL,iBAAmB,IAAI,CAACO,eAAe,CACtCX,kBACAlhI,KAAAA,CACA2hI,aAAAA,CACAlyD,MAAAA,CACA2xD,uBAAAA,CACAG,kBAEDL,CAAAA,iBAAAA,EAAAA,CACAE,wBAA0B,MAC3B,CACD,CACD,CACD,CACA,GAAIC,4BAAAA,CAA+BH,kBAAmB,CACrDI,gBAAAA,CAAiB1Q,aAAa,CAAG,KAClC,CACA,GAAI,CAAC2Q,iBAAAA,EAAqBD,iBAAkB,CAC3CA,gBAAAA,CAAiB/F,kBAAkB,CAAG,KACvC,CACA,GAAI9rD,MAAAA,CAAOj4G,YAAY,EAAIi4G,OAAOqyD,kBAAkB,CAAE,CACrD,IAAI,CAACC,qBAAqB,CAACV,4BAAAA,CAA+B,CAAA,CAAG5xD,QAC9D,CACD,CACA,IAAI,CAACuyD,iBAAiB,GACvB,CACD,CACAC,mBAAAA,CAAoBC,iBAAiB,CAAE,CACtC,MAAM7P,aAAe,IAAI2O,YAAAA,CACzB,IAAI,CAACxG,cAAc,CAACtsN,IAAI,CAACmkN,YAAAA,CAAAA,CACzB,OAAOA,YACR,CACA8O,oBAAAA,CAAqBe,iBAAiB,CAAEzyD,MAAM,CAAE,CAC/C,MAAM4iD,YAAAA,CAAe,IAAI,CAAC4P,mBAAmB,CAACC,iBAAAA,CAC9C7P,CAAAA,YAAAA,CAAa5iD,MAAM,CAAGA,MACtB4iD,CAAAA,aAAasI,eAAe,CAAG,KAChC,CAEAkH,eAAAA,CAAgBK,iBAAiB,CAAEliI,KAAK,CAAE2hI,aAAa,CAAElyD,MAAM,CAAE2xD,uBAAuB,CAAEG,iBAAiB,CAAE,CAC5G,IAAIjxJ,EAAAA,CAAK0vB,MAAMzmD,EAAE,GAAKquG,cAAgB6nB,MAAAA,CAAOj4G,YAAY,CAAG,IAAA,CAC5D,IAAI6lB,IAAAA,CAAO,KAAA,CACX,MAAMk9I,aAAAA,CAAgB,IAAI,CAACC,cAAc,CACzC,IAAK,IAAIptN,EAAAA,CAAK80N,iBAAAA,CAAoB,EAAG90N,EAAAA,EAAM,CAAA,CAAGA,KAAM,CACnD,GAAImtN,aAAa,CAACntN,GAAG,CAACqiK,MAAM,GAAKA,MAAAA,EAAU8qD,aAAa,CAACntN,EAAAA,CAAG,CAACoqD,YAAY,GAAK8Y,EAAAA,CAAI,CACjF+M,KAAO,IAAA,CACP,KACD,CACD,CACA,GAAIkkJ,iBAAAA,EAAqB9xD,MAAAA,CAAOqyD,kBAAkB,CAAE,CACnDxxJ,EAAAA,CAAK,KACN,CACA,MAAM+hJ,YAAAA,CAAe,IAAI,CAAC4P,mBAAmB,CAACC,iBAAAA,CAC9C7P,CAAAA,YAAAA,CAAakJ,kBAAkB,CAAG,KAClClJ,CAAAA,YAAAA,CAAaryH,KAAK,CAAGA,KACrBqyH,CAAAA,YAAAA,CAAarkD,WAAW,CAAG2zD,aAC3BtP,CAAAA,YAAAA,CAAa5iD,MAAM,CAAGA,MACtB4iD,CAAAA,aAAa76J,YAAY,CAAG8Y,EAC5B+hJ,CAAAA,YAAAA,CAAa1B,cAAc,CAAGyQ,uBAC9B/O,CAAAA,YAAAA,CAAazB,aAAa,CAAG,MAC7B,MAAMuR,gBAAAA,CAAmBf,uBAAAA,EAA2B,CAAC/jJ,KACrD,MAAM+kJ,eAAAA,CAAkBpiI,MAAMq9E,gBAAgB,EAAIr9E,MAAMw9E,gBAAgB,EAAIx9E,KAAAA,CAAM29E,kBAAkB,CACpG,GAAIwkD,gBAAAA,EAAoBC,gBAAiB,CACxC/P,YAAAA,CAAa3B,WAAW,CAACyR,gBAAAA,CAAmB1yD,MAAAA,CAAS,OAAQzvE,KAAAA,EAC9D,CACA,OAAOqyH,YACR,CAGA0P,sBAAsB1H,UAAU,CAAEgI,UAAU,CAAE,CAC7C,IAAK,IAAIt4N,CAAAA,CAAIswN,UAAAA,CAAYtwN,GAAK,CAAA,CAAGA,CAAAA,EAAAA,CAAK,CACrC,MAAMu4N,GAAK,IAAI,CAAC9H,cAAc,CAACzwN,CAAAA,CAAE,CACjC,MAAMi2F,KAAAA,CAAQsiI,EAAAA,CAAGtiI,KAAK,CACtB,GAAIsiI,EAAAA,CAAG9qK,YAAY,EAAIwoC,MAAMzmD,EAAE,GAAKquG,aAAAA,CAAe,CAClD,KACD,CACA,GAAI5nD,MAAMzmD,EAAE,GAAKquG,cAAe,CAC/B,QACD,CACA,GAAI06E,GAAG3H,eAAe,CAAE,CACvB,KACD,CACA,MAAM4H,UAAAA,CAAaD,EAAAA,EAAI7yD,MAAAA,CAAOA,OAC9B,GAAI8yD,UAAAA,CAAY,CACf,GAAI,CAACF,WAAW5yD,MAAM,CAACprH,IAAI,CAAC9hC,MAAM,CAACggN,UAAAA,CAAWl+K,IAAI,CAAA,EAAK,CAACg+K,UAAAA,CAAW5yD,MAAM,CAAC9V,WAAW,CAACp3I,MAAM,CAACggN,WAAW5oE,WAAW,CAAA,CAAG,CACrH,KACD,CACD,CACA2oE,EAAAA,CAAG9qK,YAAY,CAAG6qK,UAAAA,CAAW7qK,aAC9B,CACD,CAEAwqK,iBAAAA,EAAoB,CACpB,CACAQ,cAAcxiI,KAAK,CAAE,CACpB,MAAMzM,KAAAA,CAAQ,IAAI,CAACkvI,UAAU,CAAC34N,GAAG,CAACk2F,KAAAA,CAAMzmD,EAAE,CAAA,GAAMymD,KAAAA,CAChD,OAAOzM,KACR,CACAmvI,gBAAAA,CAAiB1iI,KAAK,CAAEguE,WAAW,CAAE,CACpC,MAAMt6J,GAAAA,CAAMs6J,YAAc,IAAI,CAAC20D,wBAAwB,CAAG,IAAI,CAACC,mBAAmB,CAClF,GAAIlvN,IAAI5J,GAAG,CAACk2F,KAAAA,CAAAA,GAAW,OAAQ,CAC9B,OAAO,IACR,CACA,OAAO,KACR,CAEA9xF,IAAAA,CAAK8xF,KAAK,CAAE,CACX,GAAI,IAAI,CAACwiI,aAAa,CAACxiI,OAAQ,OAC/B,IAAI,CAACm/G,SAAS,CAACjxM,IAAI,CAAC8xF,OACpB,IAAI,CAACm/G,SAAS,CAACjxM,IAAI,CAAC8xF,KAAAA,CACpB,CAAA,IAAI,CAAC6iI,YAAY,CAAC7iI,MAAMzmD,EAAE,CAAC,CAAG,IAAI,CAACqoL,YAAY,CAAC1zN,IAAI,CAAC,KAAA,CAAA,CAAS,CAC9D,CAAA,IAAI,CAAC40N,iBAAiB,CAAC9iI,KAAAA,CAAMzmD,EAAE,CAAC,CAAG,IAAI,CAACqoL,YAAY,CAAC1zN,IAAI,CAAC,IAAA,CAAA,CAAQ,CAAA,CAClE,IAAI,CAACuzN,eAAe,CAACvzN,IAAI,CAAC,IAAA,CAAA,CAC1B,IAAI,CAACuzN,eAAe,CAACvzN,IAAI,CAAC,MAC1B,IAAI,CAAC60N,gBAAgB,EACrB,CAAA,IAAI,CAAC/vK,MAAM,CAAG,IAAA,CACd,IAAI,CAAC58C,IAAI,CAAC,KAAA,CAAO4pF,OAClB,CACA9iF,MAAAA,CAAO8iF,KAAK,CAAEvtF,KAAK,CAAE,CACpB,GAAI,IAAI,CAAC+vN,aAAa,CAACxiI,OAAQ,OAC/B,IAAI,CAACm/G,SAAS,CAACnpM,MAAM,CAACvD,MAAO,CAAA,CAAGutF,KAAAA,CAAOA,KAAAA,CAAAA,CACvC,IAAI,CAAC4hI,YAAY,CAAC5rN,MAAM,CAACvD,MAAO,CAAA,CAAG,KAAA,CAAO,MAC1C,MAAMwqC,KAAAA,CAAQ,IAAI,CAACkiK,SAAS,CAAC9xM,MAAM,CACnC,IAAI,CAAC21N,kBAAkB,CAACvwN,MAAOwqC,KAAAA,CAAQ,CAAA,CAAA,CACvC,IAAI,CAACgmL,uBAAuB,CAACxwN,KAAAA,CAAOwqC,MAAQ,CAAA,CAAA,CAC5C,IAAI,CAACwkL,eAAe,CAACzrN,MAAM,CAACvD,MAAO,CAAA,CAAG,IAAA,CAAM,IAAA,CAAA,CAC5C,IAAI,CAACswN,gBAAgB,EACrB,CAAA,IAAI,CAAC/vK,MAAM,CAAG,KACd,IAAI,CAAC58C,IAAI,CAAC,KAAA,CAAO4pF,KAAAA,EAClB,CACAzoF,OAAOyoF,KAAK,CAAE,CACb,IAAIsrC,IAAAA,CAAO,IAAI,CAAC6zE,SAAS,CAAChpM,OAAO,CAAC6pF,KAAAA,CAClC,CAAA,OAAO,IAAI,CAAC6iI,YAAY,CAACv3F,IAAAA,CACzB,CAAA,OAAO,IAAI,CAACw3F,iBAAiB,CAACx3F,IAAAA,CAAK,CACnC,MAAOA,IAAAA,EAAQ,CAAA,CAAG,CACjB,IAAI,CAAC6zE,SAAS,CAACnpM,MAAM,CAACs1H,IAAAA,CAAM,GAC5B,IAAI,CAACs2F,YAAY,CAAC5rN,MAAM,CAACs1H,IAAAA,CAAM,CAAA,CAAA,CAC/B,IAAI,CAACm2F,eAAe,CAACzrN,MAAM,CAACs1H,KAAM,CAAA,CAAA,CAClCA,IAAAA,CAAO,IAAI,CAAC6zE,SAAS,CAAChpM,OAAO,CAAC6pF,KAAAA,CAC9B,CAAA,IAAI,CAAChtC,MAAM,CAAG,IAAA,CACd,IAAI,CAAC58C,IAAI,CAAC,QAAA,CAAU4pF,OACrB,CACA,MAAM/iD,MAAQ,IAAI,CAACkiK,SAAS,CAAC9xM,MAAM,CACnC,IAAI,CAAC21N,kBAAkB,CAAC,CAAA,CAAG/lL,KAAAA,CAAQ,GACnC,IAAI,CAACgmL,uBAAuB,CAAC,EAAGhmL,KAAAA,CAAQ,CAAA,CAAA,CACxC,IAAI,CAAC8lL,gBAAgB,GACtB,CAEAG,UAAAA,CAAWljI,KAAK,CAAE,CACjB,GAAI,IAAI,CAAC0iI,gBAAgB,CAAC1iI,KAAAA,CAAO,KAAA,CAAA,CAAQ,OACzC,IAAI,CAACm/G,SAAS,CAACjxM,IAAI,CAAC8xF,KAAAA,CACpB,CAAA,IAAI,CAAC6iI,YAAY,CAAC7iI,MAAMzmD,EAAE,CAAC,CAAG,IAAI,CAACqoL,YAAY,CAAC1zN,IAAI,CAAC,OAAS,CAAA,CAC9D,IAAI,CAACuzN,eAAe,CAACvzN,IAAI,CAAC,IAAA,CAAA,CAC1B,IAAI,CAAC60N,gBAAgB,EACrB,CAAA,IAAI,CAAC/vK,MAAM,CAAG,IAAA,CACd,IAAI,CAAC58C,IAAI,CAAC,KAAA,CAAO4pF,OAClB,CACAmjI,YAAAA,CAAanjI,KAAK,CAAEvtF,KAAK,CAAE,CAC1B,GAAI,IAAI,CAACiwN,gBAAgB,CAAC1iI,KAAAA,CAAO,OAAQ,OACzC,IAAI,CAACm/G,SAAS,CAACnpM,MAAM,CAACvD,MAAO,CAAA,CAAGutF,KAAAA,CAAAA,CAChC,IAAI,CAAC4hI,YAAY,CAAC5rN,MAAM,CAACvD,KAAAA,CAAO,CAAA,CAAG,KAAA,CAAA,CACnC,MAAMwqC,MAAQ,IAAI,CAAC2kL,YAAY,CAACv0N,MAAM,CACtC,IAAI,CAAC21N,kBAAkB,CAACvwN,MAAOwqC,KAAAA,CAAQ,CAAA,CAAA,CACvC,IAAI,CAACwkL,eAAe,CAACzrN,MAAM,CAACvD,KAAAA,CAAO,EAAG,IAAA,CAAA,CACtC,IAAI,CAACswN,gBAAgB,EACrB,CAAA,IAAI,CAAC/vK,MAAM,CAAG,KACd,IAAI,CAAC58C,IAAI,CAAC,MAAO4pF,KAAAA,EAClB,CACAojI,YAAAA,CAAapjI,KAAK,CAAE,CACnB,IAAK,IAAI5yF,EAAAA,CAAK,EAAG6X,GAAAA,CAAM,IAAI,CAACk6L,SAAS,CAAC9xM,MAAM,CAAED,EAAAA,CAAK6X,GAAAA,CAAK7X,EAAAA,EAAAA,CAAM,CAC7D,GAAI,IAAI,CAAC+xM,SAAS,CAAC/xM,EAAAA,CAAG,GAAK4yF,KAAAA,EAAS,CAAC,IAAI,CAAC4hI,YAAY,CAACx0N,EAAAA,CAAG,CAAE,CAC3D,IAAI,CAAC+xM,SAAS,CAACnpM,MAAM,CAAC5I,EAAAA,CAAI,CAAA,CAAA,CAC1B,IAAI,CAACw0N,YAAY,CAAC5rN,MAAM,CAAC5I,GAAI,CAAA,CAC7B6X,CAAAA,MACA,IAAI,CAAC+9M,kBAAkB,CAAC51N,EAAAA,CAAI6X,GAAAA,CAAM,CAAA,CAAA,CAClC,IAAI,CAACw8M,eAAe,CAACzrN,MAAM,CAAC5I,EAAAA,CAAI,CAAA,CAChC,CAAA,IAAI,CAAC4lD,MAAM,CAAG,KACd,GAAI,IAAI,CAACmsJ,SAAS,CAAChpM,OAAO,CAAC6pF,OAAS,CAAA,CAAG,CACtC,IAAI,CAAC5pF,IAAI,CAAC,QAAA,CAAU4pF,KAAAA,EACrB,CACA,KACD,CACD,CACA,IAAI,CAAC+iI,gBAAgB,GACtB,CACAM,eAAAA,CAAgBrjI,KAAK,CAAE,CACtB,GAAI,IAAI,CAAC0iI,gBAAgB,CAAC1iI,MAAO,IAAA,CAAA,CAAO,OACxC,IAAI,CAACm/G,SAAS,CAACjxM,IAAI,CAAC8xF,KAAAA,CACpB,CAAA,IAAI,CAAC8iI,iBAAiB,CAAC9iI,KAAAA,CAAMzmD,EAAE,CAAC,CAAG,IAAI,CAACqoL,YAAY,CAAC1zN,IAAI,CAAC,IAAA,CAAA,CAAQ,EAClE,IAAI,CAACuzN,eAAe,CAACvzN,IAAI,CAAC,IAAA,CAAA,CAC1B,IAAI,CAAC60N,gBAAgB,EACrB,CAAA,IAAI,CAAC/vK,MAAM,CAAG,IAAA,CACd,IAAI,CAAC58C,IAAI,CAAC,KAAA,CAAO4pF,KAAAA,EAClB,CACAsjI,iBAAAA,CAAkBtjI,KAAK,CAAEvtF,KAAK,CAAE,CAC/B,GAAI,IAAI,CAACiwN,gBAAgB,CAAC1iI,KAAAA,CAAO,MAAO,OACxC,IAAI,CAACm/G,SAAS,CAACnpM,MAAM,CAACvD,MAAO,CAAA,CAAGutF,KAAAA,CAAAA,CAChC,IAAI,CAAC4hI,YAAY,CAAC5rN,MAAM,CAACvD,KAAAA,CAAO,CAAA,CAAG,IAAA,CAAA,CACnC,MAAMwqC,MAAQ,IAAI,CAAC2kL,YAAY,CAACv0N,MAAM,CACtC,IAAI,CAAC41N,uBAAuB,CAACxwN,MAAOwqC,KAAAA,CAAQ,CAAA,CAAA,CAC5C,IAAI,CAACwkL,eAAe,CAACzrN,MAAM,CAACvD,KAAAA,CAAO,EAAG,IAAA,CAAA,CACtC,IAAI,CAACswN,gBAAgB,EACrB,CAAA,IAAI,CAAC/vK,MAAM,CAAG,KACd,IAAI,CAAC58C,IAAI,CAAC,MAAO4pF,KAAAA,EAClB,CACAujI,iBAAAA,CAAkBvjI,KAAK,CAAE,CACxB,IAAK,IAAI5yF,EAAAA,CAAK,EAAG6X,GAAAA,CAAM,IAAI,CAACk6L,SAAS,CAAC9xM,MAAM,CAAED,EAAAA,CAAK6X,GAAAA,CAAK7X,EAAAA,EAAAA,CAAM,CAC7D,GAAI,IAAI,CAAC+xM,SAAS,CAAC/xM,EAAAA,CAAG,GAAK4yF,KAAAA,EAAS,IAAI,CAAC4hI,YAAY,CAACx0N,GAAG,CAAE,CAC1D,IAAI,CAAC+xM,SAAS,CAACnpM,MAAM,CAAC5I,EAAAA,CAAI,CAAA,CAAA,CAC1B,IAAI,CAACw0N,YAAY,CAAC5rN,MAAM,CAAC5I,EAAAA,CAAI,CAAA,CAC7B6X,CAAAA,GAAAA,EAAAA,CACA,IAAI,CAACg+M,uBAAuB,CAAC71N,GAAI6X,GAAAA,CAAM,CAAA,CAAA,CACvC,IAAI,CAACw8M,eAAe,CAACzrN,MAAM,CAAC5I,EAAAA,CAAI,EAChC,CAAA,IAAI,CAAC4lD,MAAM,CAAG,IAAA,CACd,GAAI,IAAI,CAACmsJ,SAAS,CAAChpM,OAAO,CAAC6pF,KAAAA,CAAAA,CAAS,CAAA,CAAG,CACtC,IAAI,CAAC5pF,IAAI,CAAC,SAAU4pF,KAAAA,EACrB,CACA,KACD,CACD,CACA,IAAI,CAAC+iI,gBAAgB,GACtB,CACAS,eAAexjI,KAAK,CAAE,CACrB,OAAO,IAAI,CAAC4iI,mBAAmB,CAAC94N,GAAG,CAACk2F,KAAAA,CAAAA,EAAU,EAC/C,CACAyjI,oBAAoBzjI,KAAK,CAAE,CAC1B,OAAO,IAAI,CAAC2iI,wBAAwB,CAAC74N,GAAG,CAACk2F,QAAU,EACpD,CACA2xH,SAAAA,CAAU3xH,KAAK,CAAEguE,WAAW,CAAE,CAC7B,GAAIhuE,KAAAA,CAAM/rF,OAAO,CAAE,CAClB,MAAMxB,MAAQu7J,WAAAA,CAAc,IAAI,CAACy1D,mBAAmB,CAACzjI,KAAAA,CAAAA,CAAS,IAAI,CAACwjI,cAAc,CAACxjI,KAAAA,CAAAA,CAClF,GAAIvtF,KAAAA,EAAS,CAAA,CAAG,CACf,OAAO,IAAI,CAACgvN,eAAe,CAAChvN,MAAM,CAEpC,CACA,OAAO,KACR,CACAixN,0BAAAA,CAA2BjxN,KAAK,CAAEg9J,MAAM,CAAE,CACzC,MAAMzvE,KAAAA,CAAQ,IAAI,CAACm/G,SAAS,CAAC1sM,KAAAA,CAAM,CACnC,OAAOutF,KAAAA,CAAM/rF,OAAO,EAAI,IAAI,CAACwtN,eAAe,CAAChvN,KAAAA,CAAM,EAAIutF,MAAMq/H,UAAU,CAAClrN,GAAG,CAACs7J,OAC7E,CACAszD,gBAAAA,EAAmB,CAClB,IAAI,CAACN,UAAU,CAAC3sN,KAAK,EAAA,CACrB,IAAI,CAAC6tN,YAAY,CAAC7tN,KAAK,EAAA,CACvB,IAAI,CAAC8sN,mBAAmB,CAAC9sN,KAAK,EAAA,CAC9B,IAAI,CAAC6sN,wBAAwB,CAAC7sN,KAAK,EAAA,CACnC,IAAK,IAAI1I,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAK,IAAI,CAAC+xM,SAAS,CAAC9xM,MAAM,CAAED,EAAAA,EAAAA,CAAM,CAClD,MAAM4yF,KAAAA,CAAQ,IAAI,CAACm/G,SAAS,CAAC/xM,EAAAA,CAAG,CAChC,IAAI,CAACq1N,UAAU,CAAC1uN,GAAG,CAACisF,KAAAA,CAAMzmD,EAAE,CAAEymD,KAAAA,CAAAA,CAC9B,IAAI,CAAC2jI,YAAY,CAAC5vN,GAAG,CAACisF,KAAAA,CAAM9vF,IAAI,CAAE8vF,KAAAA,CAAAA,CAClC,MAAM4jI,iBAAmB,IAAI,CAAChC,YAAY,CAACx0N,GAAG,CAAG,IAAI,CAACu1N,wBAAwB,CAAG,IAAI,CAACC,mBAAmB,CACzGgB,iBAAiB7vN,GAAG,CAACisF,MAAO5yF,EAAAA,EAC7B,CACD,CACA+sJ,YAAAA,CAAa7uB,IAAI,CAAE,CAClB,OAAO,IAAI,CAACm3F,UAAU,CAAC34N,GAAG,CAACwhI,IAAAA,CAAAA,EAAS,IACrC,CACAu4F,eAAe3zN,IAAI,CAAE,CACpB,OAAO,IAAI,CAACyzN,YAAY,CAAC75N,GAAG,CAACoG,OAAS,IACvC,CACA8yN,kBAAAA,CAAmB3I,UAAU,CAAEsB,QAAQ,CAAE,CACxC,IAAK,IAAIvuN,EAAAA,CAAKitN,UAAAA,CAAYjtN,IAAMuuN,QAAAA,CAAUvuN,EAAAA,EAAAA,CAAM,CAC/C,GAAI,IAAI,CAACw0N,YAAY,CAACx0N,EAAAA,CAAG,GAAK,KAAA,CAAO,CACpC,IAAI,CAACy1N,YAAY,CAAC,IAAI,CAAC1jB,SAAS,CAAC/xM,GAAG,CAACmsC,EAAE,CAAC,CAAGnsC,GAC5C,CACD,CACD,CACA61N,uBAAAA,CAAwB5I,UAAU,CAAEsB,QAAQ,CAAE,CAC7C,IAAK,IAAIvuN,EAAAA,CAAKitN,WAAYjtN,EAAAA,EAAMuuN,QAAAA,CAAUvuN,KAAM,CAC/C,GAAI,IAAI,CAACw0N,YAAY,CAACx0N,EAAAA,CAAG,GAAK,IAAA,CAAM,CACnC,IAAI,CAAC01N,iBAAiB,CAAC,IAAI,CAAC3jB,SAAS,CAAC/xM,GAAG,CAACmsC,EAAE,CAAC,CAAGnsC,GACjD,CACD,CACD,CAIA02N,qBAAAA,CAAsBC,OAAO,CAAEC,OAAO,CAAEC,KAAK,CAAE,CAC9C,IAAIC,SAAAA,CAAY,EAAC,CACjB,IAAIC,SAAAA,CAAY,GAChB,IAAK,IAAI/2N,GAAK,CAAA,CAAG6X,GAAAA,CAAM8+M,OAAAA,CAAQ12N,MAAM,CAAED,EAAAA,CAAK6X,GAAAA,CAAK7X,EAAAA,EAAAA,CAAM,CACtD,MAAMk+H,IAAAA,CAAOy4F,OAAO,CAAC32N,EAAAA,CAAG,CACxB,GAAI62N,KAAAA,CAAMzqN,cAAc,CAAC8xH,IAAAA,CAAAA,CAAO,CAC/B44F,SAAAA,CAAYv3N,IAAAA,CAAK6T,GAAG,CAAC0jN,UAAWD,KAAK,CAAC34F,IAAAA,CAAK,EAC5C,CACD,CACA,IAAK,IAAIl+H,EAAAA,CAAK,EAAG6X,GAAAA,CAAM++M,OAAAA,CAAQ32N,MAAM,CAAED,EAAAA,CAAK6X,IAAK7X,EAAAA,EAAAA,CAAM,CACtD,MAAMk+H,IAAAA,CAAO04F,OAAO,CAAC52N,EAAAA,CAAG,CACxB,GAAI62N,MAAMzqN,cAAc,CAAC8xH,IAAAA,CAAAA,CAAO,CAC/B64F,UAAYx3N,IAAAA,CAAK6T,GAAG,CAAC2jN,SAAAA,CAAWF,KAAK,CAAC34F,IAAAA,CAAK,EAC5C,CACD,CACA,GAAI44F,SAAAA,GAAc,EAAC,EAAKC,SAAAA,GAAc,EAAC,CAAG,CACzC,OAAO,CACR,MAAO,GAAIA,SAAAA,GAAc,EAAC,EAAKD,SAAAA,GAAc,EAAC,CAAG,CAChD,OAAO,GACR,CACA,OAAOC,SAAAA,CAAYD,SACpB,CACAE,qBAAAA,CAAsBL,OAAO,CAAEC,OAAO,CAAE,CACvC,OAAO,IAAI,CAACF,qBAAqB,CAACC,OAAAA,CAASC,OAAAA,CAAS,IAAI,CAAClB,iBAAiB,CAC3E,CACAuB,gBAAAA,CAAiBN,OAAO,CAAEC,OAAO,CAAE,CAClC,OAAO,IAAI,CAACF,qBAAqB,CAACC,OAAAA,CAASC,OAAAA,CAAS,IAAI,CAACnB,YAAY,CACtE,CAjXA,YAAY3yN,IAAAA,CAAO,UAAU,CAAE,CAC9B,KAAK,GAbNivM,gBAAAA,CAAAA,IAAAA,CAAAA,WAAAA,CAAY,EAAE,CAAA,CACdsjB,sBAAAA,YAAAA,CAA6B,IAAIjtN,KACjCmuN,gBAAAA,CAAAA,IAAAA,CAAAA,cAAAA,CAA+B,IAAInuN,GAAAA,CAAAA,CACnCotN,gBAAAA,CAAAA,IAAAA,CAAAA,qBAAAA,CAAsC,IAAIptN,KAC1CmtN,gBAAAA,CAAAA,IAAAA,CAAAA,0BAAAA,CAA2C,IAAIntN,GAAAA,CAAAA,CAC/CosN,sBAAAA,cAAAA,CAAe,EAAE,CAAA,CACjBH,gBAAAA,CAAAA,IAAAA,CAAAA,kBAAkB,EAAE,CAAA,CAEpBla,sBAAAA,SAAAA,CAAU,EAAE,EACZ8X,gBAAAA,CAAAA,IAAAA,CAAAA,YAAAA,CAA6B,IAAIjrN,GAAAA,CAAAA,CACjComN,sBAAAA,gBAAAA,CAAiB,EAAE,CAAA,CACnBxnK,gBAAAA,CAAAA,IAAAA,CAAAA,SAAS,KAAA,CAGR,CAAA,IAAI,CAAC9iD,IAAI,CAAGA,IACZ,CAAA,IAAI,CAAC2yN,YAAY,CAAG,EACpB,CAAA,IAAI,CAACC,iBAAiB,CAAG,GAC1B,CA6WD,CAAA,CAEA,IAAIwB,MAAAA,CAAS,IAAIr7M,IAAAA,CACjB,IAAIs7M,UAAY,CACf97C,IAAAA,CAAM,EACNE,UAAAA,CAAY,CACb,CAAA,CACA,IAAI67C,UAAY,IAAItiN,KAAAA,CACpB,IAAIuiN,MAAAA,CAAS,CAAE/3N,CAAAA,CAAG,CAAA,CAAGgU,CAAAA,CAAG,CAAA,CAAG1W,EAAG,CAAA,CAAGD,CAAAA,CAAG,CAAE,CAAA,CACtC,IAAI26N,WAAa,CAChB,aAAA,CAAe18E,qBAAAA,CACf,MAAA,CAAQC,eACR,OAAA,CAASA,cAAAA,CACT,MAAA,CAAQE,cACT,EACA,IAAIw8E,mBAAAA,CAAsB,CACzB,CAAC,IAAIl1M,IAAAA,CAAK,CAAA,CAAG,EAAG,CAAA,CAAG,CAAA,CAAA,CAAG,CACtB,CAAC,IAAIA,IAAAA,CAAK,CAAA,CAAG,EAAG,EAAA,CAAK,EAAA,CAAA,CAAM,IAAIA,IAAAA,CAAK,EAAG,EAAA,CAAK,EAAA,CAAK,EAAA,CAAA,CAAK,CACtD,CAAC,IAAIA,IAAAA,CAAK,EAAG,CAAA,CAAG,EAAA,CAAK,IAAM,IAAIA,IAAAA,CAAK,CAAA,CAAG,EAAA,CAAK,GAAK,EAAA,CAAA,CAAM,IAAIA,IAAAA,CAAK,EAAA,CAAK,EAAG,EAAA,CAAK,EAAA,CAAA,CAAK,CAClF,CAAC,IAAIA,IAAAA,CAAK,CAAA,CAAG,EAAG,EAAA,CAAK,EAAA,CAAA,CAAM,IAAIA,IAAAA,CAAK,CAAA,CAAG,EAAA,CAAK,EAAA,CAAK,IAAM,IAAIA,IAAAA,CAAK,GAAK,CAAA,CAAG,EAAA,CAAK,IAAM,IAAIA,IAAAA,CAAK,EAAA,CAAK,EAAA,CAAK,GAAK,EAAA,CAAA,CAAI,CAC/G,CACD,IAAIm1M,UAAAA,CAAa,CAChB,KAAA,CAAO,CAAA,CACP,KAAA,CAAO,CAAA,CACP,MAAO,CAAA,CACP,KAAA,CAAO,CAAA,CACP,KAAA,CAAO,CACR,CAAA,CACA,IAAIC,IAAAA,CAAO,CAAA,CACX,IAAIC,eAAAA,CAAkB,KAAA,CAarB,IAAI1uB,YAAAA,EAAe,CAClB,MAAM9lI,EAAAA,CAAK,IAAI,CAAC8oI,YAAY,CAAC5hJ,YAAY,CACzC,GAAI8Y,EAAAA,CAAI,CACP,OAAO,IAAI,CAAC8zG,KAAK,CAACw8B,MAAM,CAAGtwI,GAAG7M,WAAW,CAAG6M,GAAGlO,WAChD,CACA,OAAO,IACR,CAlBA,WAAA,CAAYqtG,MAAM,CAAEjsH,IAAI,CAAE4gI,KAAK,CAAE,CAChC,IAAI,CAACA,KAAK,CAAGA,KACb,CAAA,IAAI,CAAC3U,MAAM,CAAGA,MACd,CAAA,IAAI,CAAC2pC,YAAY,CAAGsF,eAAeC,kBAAkB,CAACv6B,KAAAA,CAAM9oI,MAAM,CAAE8oI,KAAAA,CAAM6R,WAAW,CAAE7R,KAAAA,CAAMn9J,KAAK,CAAEu8B,IAAAA,CACpG,CAAA,IAAI,CAACwkI,YAAY,CAAG,IAAIp4J,IACxB,CAAA,IAAI,CAACooL,cAAc,CAAG,IAAIvoL,KAAK,CAAA,CAAG,CAAA,CAAG,EAAG,CAAA,CACxC,CAAA,IAAI,CAACwoL,aAAa,CAAG,IAAIxoL,KAAK,CAAA,CAAG,CAAA,CAAG,CAAA,CAAG,CAAA,CACvC,CAAA,IAAI,CAAC4tL,sBAAsB,CAAG,CAC9B,CAAA,IAAI,CAAC75J,IAAI,CAAGA,IACZ,CAAA,IAAI,CAAC62J,cAAc,CAAG,GACvB,CASD,CAAA,CACA,IAAI0qB,KAAAA,CAAQ,MAAMC,MAAAA,CA4FjBvqL,OAAAA,EAAU,CACT,IAAI,CAACgrK,kBAAkB,EAAElxM,GAAAA,EACzB,CAAA,IAAI,CAACkxM,kBAAkB,CAAG,KAC1B,IAAI,CAACwf,iBAAiB,EAAA,CACtB,IAAI,CAACC,iBAAiB,EACtB,CAAA,IAAI,CAACC,WAAW,CAAG,KACpB,CACAzf,gBAAAA,EAAmB,CAClB,GAAI,IAAI,CAACrD,gBAAgB,GAAK3zD,iBAAAA,CAAmB,CAChD,IAAI,CAAC2zD,gBAAgB,CAAG1zD,uBACzB,CACD,CACAu2E,mBAAoB,CACnB,GAAI,IAAI,CAACC,WAAW,CAAE,CACrB,IAAI,CAACA,WAAW,CAAC93N,MAAM,CAAG,EAC3B,CACD,CACA4jN,QAAAA,CAASjxH,KAAK,CAAE,CACf,IAAI,CAACiB,MAAM,CAACxjF,GAAG,CAACuiF,OACjB,CACA4+H,WAAAA,CAAY5+H,KAAK,CAAE,CAClB,IAAI,CAACiB,MAAM,CAAClrF,MAAM,CAACiqF,KAAAA,EACpB,CACA,IAAIolI,cAAcnwN,KAAK,CAAE,CACxB,IAAI,CAACkhN,iBAAiB,CAAC,CAAA,CAAE,CAAGlhN,MAC7B,CACA,IAAImwN,aAAAA,EAAgB,CACnB,OAAO,IAAI,CAACjP,iBAAiB,CAAC,CAAA,CAAE,CAEjC,IAAIkP,qBAAqBpwN,KAAK,CAAE,CAC/B,IAAI,CAACkhN,iBAAiB,CAAC,EAAE,CAAGlhN,MAC7B,CACA,IAAIowN,sBAAuB,CAC1B,OAAO,IAAI,CAAClP,iBAAiB,CAAC,CAAA,CAAE,CAEjC,IAAImP,WAAWrwN,KAAK,CAAE,CACrB,GAAI,IAAI,CAACswN,WAAW,GAAKtwN,KAAAA,CAAO,CAC/B,IAAI,CAACswN,WAAW,CAAGtwN,MACnB,IAAI,CAACuwN,iBAAiB,GACvB,CACD,CACA,IAAIF,UAAAA,EAAa,CAChB,OAAO,IAAI,CAACC,WAAW,CAExB,IAAI7uC,WAAAA,CAAYzhL,KAAK,CAAE,CACtB,GAAI,CAAC,IAAI,CAACgnM,QAAQ,EAAI,IAAI,CAACvlB,WAAW,GAAKzhL,KAAAA,CAAO,CACjD,IAAI,CAACgnM,QAAQ,CAAG0oB,mBAAmB,CAAC1vN,KAAAA,CAAQ,CAAA,CAAE,CAC9C,IAAI,CAACksM,oBAAoB,CAAG,IAAIx6L,YAAAA,CAAa,EAAI,EAAA,CACjD,CAAA,IAAI,CAACw1L,uBAAuB,CAAG,IAAIx1L,YAAAA,CAAa,CAAA,CAAA,CAChD,IAAI,CAACs+M,iBAAiB,EAAA,CACtB,IAAI,CAAC54K,SAAS,GACf,CACD,CACA,IAAIqqI,aAAc,CACjB,OAAO,IAAI,CAACulB,QAAQ,CAAC5uM,MAAM,CAE5B,IAAIopL,YAAAA,CAAaxhL,KAAK,CAAE,CACvB,GAAI,IAAI,CAACwwN,aAAa,GAAKxwN,KAAAA,CAAO,CACjC,IAAI,CAACwwN,aAAa,CAAGxwN,MACrB,IAAI,CAACo3C,SAAS,GACf,CACD,CACA,IAAIoqI,YAAAA,EAAe,CAClB,OAAO,IAAI,CAACgvC,aAAa,CAE1B,IAAIpxB,SAAAA,CAAUA,SAAS,CAAE,CACxB,GAAI,IAAI,CAACmE,UAAU,GAAKnE,UAAW,CAClC,IAAI,CAAC4wB,iBAAiB,EACtB,CAAA,IAAI,CAACzsB,UAAU,CAAGnE,UACnB,CACD,CACA,IAAIA,SAAAA,EAAY,CACf,OAAO,IAAI,CAACmE,UAAU,CAEvB,IAAI1wJ,IAAAA,CAAK7yC,KAAK,CAAE,CACf,GAAI,IAAI,CAACywN,KAAK,GAAKzwN,KAAAA,CAAO,CACzB,IAAI,CAACywN,KAAK,CAAGzwN,KAAAA,CACb,IAAI,CAACo3C,SAAS,EAAA,CACd,IAAI,CAACs5K,oBAAoB,GAC1B,CACD,CACA,IAAI79K,IAAAA,EAAO,CACV,OAAO,IAAI,CAAC49K,KACb,CAEA,IAAI7tB,cAAAA,EAAiB,CACpB,MAAMrzL,KAAO,IAAI,CAACyC,KAAK,CACvB,GAAIzC,IAAAA,GAASwjI,qBAAAA,CAAuB,CACnC,OAAO,IAAI,CAAC0uC,WACb,CAAA,KAAO,GAAIlyK,OAASyjI,cAAAA,CAAgB,CACnC,OAAO,CACR,CACA,OAAO,CACR,CACA,IAAIzjI,IAAAA,CAAKvP,KAAK,CAAE,CACf,GAAI,IAAI,CAACgS,KAAK,GAAKhS,KAAAA,CAAO,CACzB,MACD,CACA,IAAI,CAACgS,KAAK,CAAGhS,MACb,IAAI,CAACgwN,iBAAiB,EAAA,CACtB,IAAI,CAACO,iBAAiB,GACtB,IAAI,CAACn5K,SAAS,EAAA,CACd,IAAI,CAACs5K,oBAAoB,GACzB,MAAMC,KAAAA,CAAQ,IAAI,CAAC3vC,WAAW,CAC9B,IAAI,CAACA,WAAW,CAAG,IACnB,CAAA,IAAI,CAAC8kB,qBAAqB,CAAG,IAC7B,CAAA,IAAI,CAAC3lD,UAAU,CAAGwwE,MACnB,CACA,IAAIphN,IAAAA,EAAO,CACV,OAAO,IAAI,CAACyC,KACb,CACA,IAAIygK,KAAAA,CAAMzyK,KAAK,CAAE,CAChB,GAAI,IAAI,CAAC+gL,MAAM,GAAK/gL,KAAAA,CAAO,CAC1B,MACD,CACA,IAAI,CAAC+gL,MAAM,CAAG/gL,KAAAA,CACd,IAAI,CAACgwN,iBAAiB,EAAA,CACtB,IAAI,CAAC54K,SAAS,EAAA,CACd,IAAI,CAACs5K,oBAAoB,EAAA,CACzB,MAAMC,KAAAA,CAAQ,IAAI,CAAC3vC,WAAW,CAC9B,IAAI,CAACA,WAAW,CAAG,IACnB,CAAA,IAAI,CAAC7gC,UAAU,CAAGwwE,MACnB,CACA,IAAIl+C,KAAAA,EAAQ,CACX,OAAO,IAAI,CAACsO,MAAM,CAEnB,IAAI2xB,gBAAAA,CAAiB1yM,KAAK,CAAE,CAC3B,GAAI,IAAI,CAAC4wN,iBAAiB,GAAK5wN,KAAAA,CAAO,CACrC,IAAI,CAAC4wN,iBAAiB,CAAG5wN,MACzB,IAAI,CAAC6wN,kBAAkB,GACxB,CACD,CACA,IAAIne,kBAAmB,CACtB,OAAO,IAAI,CAACke,iBAAiB,CAE9B,IAAIzwE,UAAAA,CAAWngJ,KAAK,CAAE,CACrB,GAAI,IAAI,CAACghL,WAAW,GAAKhhL,KAAAA,CAAO,CAC/B,MACD,CACA,IAAIkgJ,UAAAA,CAAatL,cAAAA,CAAe//I,GAAG,CAACmL,KAAAA,CAAAA,CACpC,GAAI,CAACkgJ,WAAY,CAChBlgJ,KAAAA,CAAQ8zI,gBACT,CACA,MAAMztG,MAAAA,CAAS,IAAI,CAACA,MAAM,CAC1B,GAAIrmC,KAAAA,GAAUw0I,kBAAoB,CAACnuG,OAAOoa,sBAAsB,EAAI,CAACpa,MAAAA,CAAOma,sBAAsB,CAAD,CAAI,CACpGxgD,KAAAA,CAAQ8zI,gBACT,CACA,GAAI,IAAI,CAAC9hI,KAAK,GAAKghI,cAAAA,EAAkBhzI,QAAUs0I,eAAAA,EAAmBt0I,KAAAA,GAAU8zI,iBAAmB9zI,KAAAA,GAAUy0I,eAAAA,EAAmBz0I,KAAAA,GAAU00I,eAAAA,EAAmB10I,QAAUw0I,eAAAA,CAAiB,CACnLx0I,KAAAA,CAAQ8zI,gBACT,CACA,GAAI9zI,KAAAA,GAAUk0I,cAAAA,GAAmB,CAAC7tG,MAAAA,CAAOoa,sBAAsB,EAAI,CAACpa,MAAAA,CAAOma,sBAAsB,CAAD,CAAI,CACnGxgD,KAAAA,CAAQg0I,eACT,CACA,GAAIh0I,KAAAA,GAAUg0I,cAAAA,EAAkB,CAAC3tG,MAAAA,CAAO0iB,0BAA0B,CAAE,CACnE/oD,MAAQ8zI,gBACT,CACAoM,WAAatL,cAAAA,CAAe//I,GAAG,CAACmL,KAAAA,CAChC,CAAA,IAAI,CAACuhL,MAAM,CAAGrhC,UAAAA,EAAYnL,GAAAA,EAAO,KACjC,CAAA,IAAI,CAAC42D,MAAM,CAAGzrD,YAAYpL,GAAAA,EAAO,KACjC,CAAA,IAAI,CAACmzD,OAAO,CAAG/nD,UAAAA,EAAYlL,IAAAA,EAAQ,KACnC,CAAA,IAAI,CAACgsC,WAAW,CAAGhhL,MACnB,IAAI,CAACuwN,iBAAiB,EAAA,CACtB,IAAI,CAACP,iBAAiB,GACtB,IAAI,CAAC54K,SAAS,GACf,CACA,IAAI+oG,UAAAA,EAAa,CAChB,OAAO,IAAI,CAAC6gC,WAAW,CAExB,IAAIhiL,OAAAA,CAAQgB,KAAK,CAAE,CAClB,GAAI,IAAI,CAACk5D,QAAQ,GAAKl5D,KAAAA,CAAO,CAC5B,IAAI,CAACk5D,QAAQ,CAAGl5D,KAAAA,CAChB,IAAI,CAAC8wN,WAAW,GACjB,CACD,CACA,IAAI9xN,OAAAA,EAAU,CACb,OAAO,IAAI,CAACk6D,QACb,CACA,IAAIw5G,WAAAA,CAAY1yK,KAAK,CAAE,CACtB,GAAI,IAAI,CAAC+wN,YAAY,GAAK/wN,KAAAA,CAAO,CAChC,IAAI,CAAC+wN,YAAY,CAAG/wN,KAAAA,CACpB,IAAI,CAACgwN,iBAAiB,GACtB,IAAI,CAACc,WAAW,EAAA,CAChB,IAAI,CAAC15K,SAAS,GACf,CACD,CACA,IAAIs7H,WAAAA,EAAc,CACjB,OAAO,IAAI,CAACq+C,YAAY,EAAI,IAAI,CAACN,KAAK,GAAK32E,SAAAA,EAAa,IAAI,CAAC22E,KAAK,GAAK,CACxE,CACA,IAAIxP,gBAAgBjhN,KAAK,CAAE,CAC1B,GAAI,IAAI,CAACgxN,gBAAgB,GAAKhxN,KAAAA,CAAO,CACpC,IAAI,CAACgxN,gBAAgB,CAAGhxN,KAAAA,CACxB,IAAI,CAACo3C,SAAS,GACf,CACD,CACA,IAAI6pK,eAAAA,EAAkB,CACrB,OAAO,IAAI,CAAC+P,gBAAgB,CAE7B,IAAIC,aAAc,CACjB,OAAO,IAAI,CAACF,YAAY,EAAI,IAAI,CAACN,KAAK,GAAK32E,SAC5C,CACA,IAAIo3E,gBAAAA,CAAiBlxN,KAAK,CAAE,CAC3B,GAAI,IAAI,CAACq/L,iBAAiB,GAAKr/L,KAAAA,CAAO,CACrC,GAAI,IAAI,CAACgS,KAAK,GAAKghI,cAAAA,CAAgB,CAClChzI,KAAAA,CAAQtI,IAAAA,CAAK4T,GAAG,CAACtL,MAAO,IAAI,CAACqmC,MAAM,CAAC8jB,cAAc,EACnD,CAAA,KAAO,CACNnqD,KAAAA,CAAQtI,IAAAA,CAAK4T,GAAG,CAACtL,KAAAA,CAAO,IAAI,CAACqmC,MAAM,CAAC+jB,cAAc,EACnD,CACA,IAAI,CAACi1I,iBAAiB,CAAGr/L,KAAAA,CACzB,IAAI,CAACgwN,iBAAiB,GACvB,CACD,CACA,IAAIkB,gBAAAA,EAAmB,CACtB,OAAO,IAAI,CAAC7xB,iBAAiB,CAE9B,IAAI8xB,WAAAA,CAAYnxN,KAAK,CAAE,CACtB,GAAI,IAAI,CAAC2tM,YAAY,GAAK3tM,KAAAA,CAAO,CAChC,MACD,CACA,GAAIA,KAAAA,CAAQ,CAAA,GAAM,CAAA,CAAGA,OACrB,CAAA,IAAI,CAAC2tM,YAAY,CAAG3tM,MACrB,CACA,IAAImxN,WAAAA,EAAc,CACjB,OAAO,IAAI,CAACxjB,YACb,CACA,IAAIyjB,gBAAAA,CAAiBpxN,KAAK,CAAE,CAC3B,GAAI,IAAI,CAACshL,iBAAiB,GAAKthL,KAAAA,CAAO,CACrC,MAAMoxC,KAAAA,CAAQ,CAAC,IAAI,CAACkwI,iBAAiB,EAAIthL,KAAAA,EAAS,IAAI,CAACshL,iBAAiB,EAAI,CAACthL,KAC7E,CAAA,IAAI,CAACshL,iBAAiB,CAAGthL,KAAAA,CACzB,GAAIoxC,MAAO,CACV,IAAI,CAACgG,SAAS,GACf,CACD,CACD,CACA,IAAIg6K,gBAAAA,EAAmB,CACtB,OAAO,IAAI,CAAC9vC,iBAAiB,CAE9B,IAAI+vC,WAAAA,CAAYrxN,KAAK,CAAE,CACtB,GAAI,IAAI,CAACihL,YAAY,GAAKjhL,KAAAA,CAAO,CAChC,MACD,CACA,IAAI,CAACihL,YAAY,CAAGjhL,KAAAA,CACpB,IAAI,CAACo3C,SAAS,EAAA,CACd,IAAI,CAACs5K,oBAAoB,GAC1B,CACA,IAAIW,WAAAA,EAAc,CACjB,OAAO,IAAI,CAACpwC,YAAY,CAEzB,IAAIqwC,cAAAA,CAAetxN,KAAK,CAAE,CACzB,GAAI,IAAI,CAACuxN,eAAe,GAAKvxN,KAAAA,CAAO,CACnC,MACD,CACA,IAAI,CAACuxN,eAAe,CAAGvxN,KACvB,CAAA,IAAI,CAAC+hN,kBAAkB,CAAGrqN,IAAAA,CAAKmc,GAAG,CAAC7T,KAAAA,CAAQiL,IAAAA,CAAKC,UAAU,CAAA,CAC1D,IAAI,CAACsmN,iBAAiB,CAAC,KAAA,CAAO,IAAA,CAAA,CAC9B,GAAI,IAAI,CAACZ,iBAAiB,CAAE,CAC3B,IAAI,CAACC,kBAAkB,GACxB,CACD,CACA,IAAIS,cAAAA,EAAiB,CACpB,OAAO,IAAI,CAACC,eACb,CACA,IAAIE,eAAezxN,KAAK,CAAE,CACzB,GAAI,IAAI,CAACsvK,eAAe,GAAKtvK,KAAAA,CAAO,CACnC,MACD,CACA,IAAI,CAACsvK,eAAe,CAAGtvK,KAAAA,CACvB,IAAI,CAAC0xN,iBAAiB,CAAC1xN,KAAAA,CAAAA,CACvB,GAAI,IAAI,CAAC4wN,iBAAiB,CAAE,CAC3B,IAAI,CAACC,kBAAkB,GACxB,CACD,CACA,IAAIY,cAAAA,EAAiB,CACpB,OAAO,IAAI,CAACniD,eAAe,CAE5B,IAAI8xC,YAAAA,CAAaphN,KAAK,CAAE,CACvB,IAAI,CAAC2xN,aAAa,CAAG3xN,KACrB,CAAA,IAAI,CAACkhN,iBAAiB,CAAC,CAAA,CAAE,CAAGlhN,MAC7B,CACA,IAAIohN,YAAAA,EAAe,CAClB,OAAO,IAAI,CAACuQ,aACb,CACA,IAAIC,gBAAgB5xN,KAAK,CAAE,CAC1B,IAAI,CAACkhN,iBAAiB,CAAC,CAAA,CAAE,CAAGlhN,MAC7B,CACA,IAAI4xN,eAAAA,EAAkB,CACrB,OAAO,IAAI,CAAC1Q,iBAAiB,CAAC,CAAA,CAAE,CAEjCwQ,iBAAAA,CAAkB99M,KAAK,CAAE,CACxB,MAAMi+M,QAAAA,CAAWj+M,KAAAA,CAAQ3I,IAAAA,CAAKC,UAAU,CACxC,IAAI,CAAC82M,kBAAkB,CAAGtqN,IAAAA,CAAKmc,GAAG,CAACg+M,QAAAA,CACnC,CAAA,IAAI,CAACC,kBAAkB,CAAGp6N,IAAAA,CAAKqc,GAAG,CAAC89M,QAAAA,CAAAA,CACnC,IAAI,CAACL,iBAAiB,CAAC,KAAA,CAAO,IAAA,EAC/B,CACA,IAAI1yF,SAAAA,CAAU9+H,KAAK,CAAE,CACpB,GAAI,IAAI,CAAC2+L,UAAU,GAAK3+L,KAAAA,CAAO,CAC9B,IAAI,CAAC2+L,UAAU,CAAG3+L,MAClB,IAAI,CAAC6wN,kBAAkB,GACxB,CACD,CACA,IAAI/xF,SAAAA,EAAY,CACf,OAAO,IAAI,CAAC6/D,UAAU,CAEvB,IAAIzd,kBAAkBlhL,KAAK,CAAE,CAC5B,GAAI,IAAI,CAACgS,KAAK,GAAK+gI,qBAAAA,CAAuB,CACzC,IAAI,CAACg/E,kBAAkB,CAAG/xN,MAC1B,IAAI,CAACo3C,SAAS,GACf,CACD,CACA,IAAI8pI,iBAAAA,EAAoB,CACvB,OAAO,IAAI,CAAC6wC,kBAAkB,CAE/B,IAAIC,SAAAA,CAAUhyN,KAAK,CAAE,CACpB,GAAI,IAAI,CAACiyN,UAAU,GAAKjyN,KAAAA,CAAO,CAC9B,IAAI,CAACiyN,UAAU,CAAGjyN,MAClB,IAAI,CAAC6wN,kBAAkB,GACxB,CACD,CACA,IAAImB,SAAAA,EAAY,CACf,OAAO,IAAI,CAACC,UAAU,CAEvB,IAAIziD,YAAAA,EAAe,CAClB,GAAI,CAAC,IAAI,CAAC0iD,aAAa,CAAE,CACxB,IAAI,CAACA,aAAa,CAAG,IAAIv3M,KAC1B,CACA,OAAO,IAAI,CAACu3M,aAAa,CAE1B,IAAIxiD,aAAAA,EAAgB,CACnB,GAAI,CAAC,IAAI,CAACyiD,cAAc,CAAE,CACzB,IAAI,CAACA,cAAc,CAAG,IAAI33M,IAAAA,CAAK,EAAG,CAAA,CAAG,CAAA,CAAG,GACzC,CACA,OAAO,IAAI,CAAC23M,cAAc,CAE3B,IAAI5vB,MAAAA,CAAOviM,KAAK,CAAE,CACjB,GAAI,IAAI,CAACsyK,OAAO,GAAKtyK,MAAO,CAC3B,MACD,CACA,IAAI,CAACsyK,OAAO,CAAGtyK,MACf,IAAI,CAACo3C,SAAS,GACf,CACA,IAAImrJ,MAAAA,EAAS,CACZ,OAAO,IAAI,CAACjwB,OAAO,CAEpB,IAAI8/C,cAAcpyN,KAAK,CAAE,CACxB,GAAI,IAAI,CAACqhL,cAAc,GAAKrhL,KAAAA,CAAO,CAClC,MACD,CACA,IAAI,CAACqhL,cAAc,CAAGrhL,KAAAA,CACtB,IAAI,CAACo3C,SAAS,GACf,CACA,IAAIg7K,aAAAA,EAAgB,CACnB,OAAO,IAAI,CAAC/wC,cAAc,CAE3B,IAAIgxC,aAAAA,CAAcryN,KAAK,CAAE,CACxB,GAAI,IAAI,CAACmhL,cAAc,GAAKnhL,KAAAA,CAAO,CAClC,MACD,CACA,GAAIA,KAAAA,CAAM5H,MAAM,CAAG,CAAA,CAAG,CACrB,MAAMmxL,IAAMvpL,KAAAA,CAAMrG,MAAM,CAACqG,KAAAA,CAAM5H,MAAM,CAAG,CAAA,CAAA,CACxC,MAAMoxL,MAAAA,CAAS,CAAA,CAAIxpL,MAAM5H,MAAM,CAC/B,IAAK,IAAID,GAAK,CAAA,CAAGA,EAAAA,CAAKqxL,MAAAA,CAAQrxL,EAAAA,EAAAA,CAAM,CACnC6H,KAAAA,EAASupL,IACV,CACD,CACA,IAAI,CAACpI,cAAc,CAAGnhL,KAAAA,CACtB,IAAI,CAACo3C,SAAS,EAAA,CACd,IAAI,CAACs5K,oBAAoB,GAC1B,CACA,IAAI2B,aAAAA,EAAgB,CACnB,OAAO,IAAI,CAAClxC,cAAc,CAE3B,IAAImxC,gBAAgBtyN,KAAK,CAAE,CAC1B,GAAI,IAAI,CAACohL,gBAAgB,GAAKphL,KAAAA,CAAO,CACpC,MACD,CACA,IAAI,CAACohL,gBAAgB,CAAGphL,KACxB,CAAA,IAAI,CAACuyN,mBAAmB,CAAG,CAAC,CAACvyN,KAAAA,CAC7B,GAAIA,KAAAA,EAAS,CAAC,IAAI,CAACoiN,aAAa,CAAE,CACjC,IAAI,CAACoQ,YAAY,CAAG,IAAIv4M,IACxB,CAAA,IAAI,CAACw4M,gBAAgB,CAAG,MACzB,CACA,IAAI,CAACr7K,SAAS,GACf,CACA,IAAIk7K,eAAAA,EAAkB,CACrB,OAAO,IAAI,CAAClxC,gBACb,CACA,IAAIoxC,YAAAA,CAAaxyN,KAAK,CAAE,CACvB,GAAI,IAAI,CAACoiN,aAAa,GAAKpiN,MAAO,CACjC,MACD,CACA,MAAM0yN,QAAAA,CAAW,CAAC,EAAE,IAAI,CAACH,mBAAmB,EAAIvyN,KAAI,EACpD,GAAI0yN,QAAAA,EAAY,CAAC1yN,KAAAA,EAAS,IAAI,CAACoiN,aAAa,CAAE,CAC7C,IAAI,CAACA,aAAa,CAACtjN,GAAG,CAAC,CAAA,CAAG,CAAA,EAC3B,MAAO,CACN,IAAI,CAACsjN,aAAa,CAAGpiN,MACtB,CACA,IAAI,CAACyyN,gBAAgB,CAAG,CAAC,CAACzyN,KAAAA,CAC1B,GAAIA,OAAS,CAAC,IAAI,CAACohL,gBAAgB,CAAE,CACpC,IAAI,CAACkxC,eAAe,CAAG,IAAI93M,IAAAA,CAAK,CAAA,CAAG,CAAA,CAAG,CAAA,CAAG,EACzC,CAAA,IAAI,CAAC+3M,mBAAmB,CAAG,MAC5B,CACA,IAAI,CAACn7K,SAAS,GACf,CACA,IAAIo7K,YAAAA,EAAe,CAClB,OAAO,IAAI,CAACpQ,aACb,CAEA34H,UAAAA,EAAa,CACZ,IAAI,CAAC4yE,gBAAgB,CAAG,IAAI,CAACrqJ,KAAK,GAAK+gI,qBAAAA,EAAyB,IAAI,CAAC75E,QACrE,CAAA,IAAI,CAACspI,aAAa,CAAG,CACrB,CAAA,IAAI,CAACrwB,sBAAsB,CAAG,KAC9B,CAAA,IAAI,CAACgxB,gBAAgB,CAAG,MACzB,CAGA6sB,iBAAAA,EAAoB,CACnB,IAAI,CAACC,iBAAiB,EAAA,CACtB,GAAI,IAAI,CAAC1sB,UAAU,CAAE,CACpB,GAAI,CAAC,IAAI,CAACA,UAAU,CAAC5D,MAAM,CAAE,CAC5B,IAAI,CAAC4D,UAAU,CAAC/9J,OAAO,GACxB,CACA,IAAI,CAAC+9J,UAAU,CAAG,KACnB,CACA,GAAI,IAAI,CAAC6J,gBAAgB,GAAK3zD,iBAAAA,CAAmB,CAChD,IAAI,CAAC2zD,gBAAgB,CAAG1zD,uBACzB,CACA,GAAI,IAAI,CAACosD,qBAAqB,CAAE,CAC/B,IAAK,IAAI3tM,GAAK,CAAA,CAAGA,EAAAA,CAAK,IAAI,CAAC2tM,qBAAqB,CAAC1tM,MAAM,CAAED,EAAAA,EAAAA,CAAM,CAC9D,GAAI,IAAI,CAAC2tM,qBAAqB,CAAC3tM,GAAG,GAAKshJ,iBAAAA,CAAmB,CACzD,IAAI,CAACqsD,qBAAqB,CAAC3tM,EAAAA,CAAG,CAAGuhJ,uBAClC,CACD,CACD,CACD,CAEAo5B,aAAAA,CAActY,MAAM,CAAEjsH,IAAI,CAAE,CAC3B,IAAK,IAAIp2C,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAK,IAAI,CAAC+3N,WAAW,CAAC93N,MAAM,CAAED,EAAAA,EAAAA,CAAM,CACpD,MAAM0P,OAAAA,CAAU,IAAI,CAACqoN,WAAW,CAAC/3N,EAAAA,CAAG,CACpC,GAAI0P,OAAAA,CAAQ2yJ,MAAM,GAAKA,MAAAA,EAAU3yJ,QAAQ0mC,IAAI,GAAKA,IAAAA,CAAM,CACvD,OAAO1mC,OACR,CACD,CACA,MAAM8qN,EAAAA,CAAK,IAAI9C,eAAAA,CAAgBr1D,MAAAA,CAAQjsH,IAAAA,CAAM,IAAI,EACjD,IAAI,CAAC2hL,WAAW,CAACj3N,IAAI,CAAC05N,EAAAA,CAAAA,CACtB,OAAOA,EACR,CACAxlN,KAAAA,EAAQ,CACP,MAAMA,KAAAA,CAAQ,IAAI4iN,OAAO,IAAI,CAAC1pL,MAAM,CAAE,IAAI,CAACusL,iBAAiB,CAC5DzlN,CAAAA,MAAMoC,IAAI,CAAG,IAAI,CAACyC,KAAK,CACvB7E,KAAAA,CAAM0lN,QAAQ,CAAC,IAAI,CAACh0B,MAAM,CAC1B1xL,CAAAA,KAAAA,CAAM2xH,SAAS,CAAG,IAAI,CAAC6/D,UAAU,CACjCxxL,KAAAA,CAAM+zK,iBAAiB,CAAG,IAAI,CAAC6wC,kBAAkB,CACjD5kN,KAAAA,CAAM6kN,SAAS,CAAG,IAAI,CAACC,UAAU,CACjC9kN,KAAAA,CAAMulK,WAAW,CAAG,IAAI,CAACA,WAAW,CACpCvlK,MAAM+rD,QAAQ,CAAG,IAAI,CAACA,QAAQ,CAC9B/rD,KAAAA,CAAM2lN,gBAAgB,CAAG,IAAI,CAACA,gBAAgB,CAC9C3lN,KAAAA,CAAMgmK,cAAc,CAAG,IAAI,CAACA,cAAc,CAC1ChmK,KAAAA,CAAMkkN,WAAW,CAAG,IAAI,CAACpwC,YACzB9zK,CAAAA,KAAAA,CAAMgzI,UAAU,CAAG,IAAI,CAAC6gC,WAAW,CACnC7zK,KAAAA,CAAMgkN,WAAW,CAAG,IAAI,CAACxjB,YAAY,CACrCxgM,KAAAA,CAAMmhM,WAAW,CAAG,IAAI,CAACA,WAAW,CACpCnhM,KAAAA,CAAM4lN,OAAO,CAAG,IAAI,CAACA,OAAO,CAC5B5lN,MAAMigM,gBAAgB,CAAG,IAAI,CAACA,gBAAgB,CAC9CjgM,KAAAA,CAAM0lC,IAAI,CAAG,IAAI,CAACA,IAAI,CACtB,GAAI,IAAI,CAACizJ,qBAAqB,CAAE,CAC/B34L,MAAM24L,qBAAqB,CAAG,IAAI,CAACA,qBAAqB,CAAC9sM,KAAK,GAC/D,CACAmU,KAAAA,CAAMmkN,cAAc,CAAG,IAAI,CAACC,eAAe,CAC3CpkN,KAAAA,CAAMskN,cAAc,CAAG,IAAI,CAACniD,eAAe,CAC3CniK,KAAAA,CAAMs0K,WAAW,CAAG,IAAI,CAACA,WAAW,CACpCt0K,KAAAA,CAAMs7L,mBAAmB,CAAG,IAAI,CAACA,mBAAmB,CACpDt7L,MAAMq0K,YAAY,CAAG,IAAI,CAACgvC,aAAa,CACvCrjN,KAAAA,CAAMslK,KAAK,CAAG,IAAI,CAACsO,MAAM,CACzB5zK,KAAAA,CAAM2+L,gBAAgB,CAAC50M,IAAI,CAAC,IAAI,CAAC40M,gBAAgB,CACjD3+L,CAAAA,KAAAA,CAAMkjN,UAAU,CAAG,IAAI,CAACA,UACxBljN,CAAAA,KAAAA,CAAMikN,gBAAgB,CAAG,IAAI,CAAC9vC,iBAC9Bn0K,CAAAA,KAAAA,CAAM+jN,gBAAgB,CAAG,IAAI,CAAC7xB,iBAC9BlyL,CAAAA,KAAAA,CAAM05L,cAAc,CAAG,IAAI,CAACA,cAC5B15L,CAAAA,KAAAA,CAAM8zM,eAAe,CAAG,IAAI,CAACA,eAC7B9zM,CAAAA,KAAAA,CAAMgjN,aAAa,CAAG,IAAI,CAACA,aAAa,CACxChjN,KAAAA,CAAMijN,oBAAoB,CAAG,IAAI,CAACA,oBAClCjjN,CAAAA,KAAAA,CAAMi0M,YAAY,CAAG,IAAI,CAACA,YAC1Bj0M,CAAAA,KAAAA,CAAMykN,eAAe,CAAG,IAAI,CAACA,eAC7BzkN,CAAAA,KAAAA,CAAM6lN,oBAAoB,CAAG,IAAI,CAACA,oBAAoB,CACtD,OAAO7lN,KACR,CACA,OAAO8lN,sBAAAA,CAAuB1jN,IAAI,CAAE2jN,UAAAA,CAAax7N,KAAKyT,EAAE,CAAG,CAAC,CAAEgoN,WAAa,CAAC,CAAE,CAC7E,OAAQ5jN,MACP,KAAK2jI,cAAAA,CAAgB,CACpB,MAAMkgF,WAAa17N,IAAAA,CAAKmc,GAAG,CAACq/M,UAAAA,CAAAA,CAC5B,MAAMG,aAAe37N,IAAAA,CAAKmc,GAAG,CAACs/M,UAAAA,CAAAA,CAC9B,OAAO,CAAA,CAAIz7N,IAAAA,CAAKyT,EAAE,EAAI,CAAA,CAAIkoN,YAAAA,CAAe,CAACA,aAAeD,UAAS,EAAK,CAAA,CACxE,CACA,KAAKpgF,cAAAA,CACJ,OAAO,CAAA,CAAIt7I,IAAAA,CAAKyT,EAAE,CACnB,KAAK4nI,qBAAAA,CACJ,OAAO,CACT,CACD,CAIAugC,qBAAAA,CAAsBT,eAAe,CAAE,CACtC,MAAM/J,QAAU+J,eAAAA,CAAgBsxB,YAAY,CAACp7B,QAAQ,CACrD,OAAQ,IAAI,CAAC/2J,KAAK,EACjB,KAAKghI,cAAAA,CACJs8E,UAAU97C,IAAI,CAAG,IAAI,CAAC68C,UAAU,CAChCf,UAAU57C,UAAU,CAAG,IAAI,CAAC4N,iBAAiB,CAC7C,WACIpuC,cAAAA,CACJ,GAAI,IAAI,CAACquC,MAAM,CAAE,CAChB+tC,SAAAA,CAAU97C,IAAI,CAAG,KAAC,CAAO,GAC1B,CAAA,KAAO,CACN87C,UAAU97C,IAAI,CAAG,IAAI,CAAC68C,UAAU,CAAG,GACpC,CACAf,SAAAA,CAAU57C,UAAU,CAAG,IAAI,CAAC6N,MAAM,CAAG,IAAI,CAACwxC,OAAO,EAAI,IAAI,CAAC5/C,cAAc,CAAG,CAAA,CAAA,CAAK,IAAI,CAACmO,iBAAiB,CACtG,WACIvuC,qBAAAA,CACJ,GAAI,IAAI,CAACwuC,MAAM,CAAE,CAChB+tC,UAAU97C,IAAI,CAAG,KAAC,CAAO,GAC1B,CAAA,KAAO,CACN87C,UAAU97C,IAAI,CAAG,IAAI,CAAC68C,UAAU,CAAGvnD,OAAAA,CAAU,IAC9C,CACAwmD,UAAU57C,UAAU,CAAG,IAAI,CAAC6N,MAAM,CAAG,IAAI,CAACwxC,OAAO,EAAIjqD,OAAAA,CAAU,CAAA,CAAA,CAAK,IAAI,CAACwY,iBAAiB,CAC1F,KACF,CACA,OAAOguC,SACR,CACAgE,UAAW,CACV,OAAO,IAAI,CAACz0B,MAAM,CAEnB4T,kBAAkB1pL,MAAM,CAAE,CACzB,GAAI,IAAI,CAAC/W,KAAK,GAAKkhI,cAAAA,CAAgB,CAClC,MAAMr2I,IAAAA,CAAO,IAAI,CAACs2K,cAAc,CAChC,MAAMv/J,KAAAA,CAAQ,IAAI,CAAC07J,eAAe,CAClC,MAAMikD,QAAAA,CAAW,IAAI,CAACvR,kBAAkB,CACxC,MAAMryD,IAAAA,CAAO,IAAI,CAACia,KAAK,CACvBylD,MAAAA,CAAOn4N,IAAI,CAACy4J,IAAAA,CAAKH,EAAE,CAAA,CACnB,GAAI57I,MAAQ,EAAA,CAAI,CACfmV,MAAAA,CAAOxV,MAAM,CAAG1W,IAAAA,CAAO,IAAI,CAACi1N,kBAAkB,CAC9CzC,MAAAA,CAAO1hN,SAAS,CAAC,CAAC9Q,IAAAA,CAAO02N,UAC1B,CAAA,KAAO,CACNxqM,MAAAA,CAAOxV,MAAM,CAAG1W,IAAAA,EAAQ,CAAA,CAAI02N,QAAO,EACnClE,MAAAA,CAAO1hN,SAAS,CAAC,CAACob,OAAOxV,MAAM,EAChC,CACAwV,MAAAA,CAAOtF,MAAM,CAACpP,IAAI,CAACs7I,IAAAA,CAAKtnB,WAAW,GAAIgnF,MAAAA,EACxC,CAAA,KAAO,GAAI,IAAI,CAACr9M,KAAK,GAAKghI,cAAAA,CAAgB,CACzCjqH,MAAAA,CAAOtF,MAAM,CAACvsB,IAAI,CAAC,IAAI,CAAC0yK,KAAK,CAACvhC,WAAW,EAAA,CACzCt/G,CAAAA,OAAOxV,MAAM,CAAG,IAAI,CAAC4/J,eAAc,CAErC,CACA6D,cAAAA,CAAew8C,GAAG,CAAE,CACnB,GAAI,IAAI,CAACxhN,KAAK,GAAKkhI,cAAAA,CAAgB,CAClC,MAAM25B,MAAQ,IAAI,CAACsG,cAAc,CACjC,MAAMv/J,KAAAA,CAAQ,IAAI,CAAC07J,eAAe,CAClC,MAAM3f,IAAAA,CAAO,IAAI,CAACia,KAAK,CACvB,MAAM6pD,GAAAA,CAAM/7N,IAAAA,CAAK6Z,GAAG,CAAC7Z,IAAAA,CAAKqc,GAAG,CAACH,KAAAA,CAAQ3I,KAAKC,UAAU,CAAA,CAAI2hK,KAAAA,CAAAA,CACzD2mD,GAAAA,CAAI/vM,MAAM,CAAC3kB,GAAG,CAAC,CAAA,CAAG,CAAC+tK,MAAQ,EAAA,CAAK,CAAA,CAAA,CAChC2mD,GAAAA,CAAI1vM,WAAW,CAAChlB,GAAG,CAAC20N,GAAAA,CAAK5mD,KAAAA,CAAQ,GAAK4mD,GAAAA,CAAAA,CACtCD,GAAAA,CAAInsM,sBAAsB,CAACmsM,IAAK7jE,IAAAA,CAAK7H,iBAAiB,GAAI,IAAA,EAC3D,CAAA,KAAO,GAAI,IAAI,CAAC91I,KAAK,GAAKghI,eAAgB,CACzCwgF,GAAAA,CAAI/vM,MAAM,CAACvsB,IAAI,CAAC,IAAI,CAAC0yK,KAAK,CAACvhC,WAAW,EAAA,CAAA,CACtCmrF,IAAI1vM,WAAW,CAAChlB,GAAG,CAAC,IAAI,CAACq0K,cAAc,CAAE,IAAI,CAACA,cAAc,CAAE,IAAI,CAACA,cAAc,EAClF,CACD,CACAo9C,iBAAAA,EAAoB,CACnB,GAAI,IAAI,CAACv+M,KAAK,GAAKghI,cAAAA,EAAkB,CAAC,IAAI,CAAC4/E,iBAAiB,EAAI,IAAI,CAAC3qB,OAAO,CAAE,CAC7E,IAAI,CAAC6D,gBAAgB,CAACz0J,SAAS,CAAG,CAClC,CAAA,IAAI,CAACy0J,gBAAgB,CAACv0J,cAAc,CAAG,EACxC,CAAA,KAAO,CACN,MAAMi8H,IAAAA,CAAO,IAAI,CAAC68C,UAAU,CAAG,IAC/B,CAAA,IAAI,CAACvkB,gBAAgB,CAACz0J,SAAS,CAAGm8H,IAClC,CAAA,IAAI,CAACs4B,gBAAgB,CAACv0J,cAAc,CAAGi8H,KACxC,CACD,CACAq9C,kBAAAA,EAAqB,CACpB,IAAI/xF,SAAAA,CAAY,IAAI,CAAC6/D,UAAU,CAC/B,GAAI,IAAI,CAACiyB,iBAAiB,CAAE,CAC3B9xF,SAAAA,CAAY,IAAI,CAACmzF,UAAU,CAAGlC,MAAAA,CAAOkD,sBAAsB,CAAC,IAAI,CAACjhN,KAAK,CAAE,IAAI,CAACs9J,eAAe,CAAGrkK,IAAAA,CAAKC,UAAU,CAAE,IAAI,CAACqmN,eAAe,CAAGtmN,IAAAA,CAAKC,UAAU,EACvJ,CACA,MAAM0iD,MAAAA,CAAS,IAAI,CAACixI,MAAM,CAC1B,MAAM60B,WAAAA,CAAc,IAAI,CAAC1S,YAAY,CACrC,GAAIliF,SAAAA,EAAa,EAAG,CACnBywF,SAAAA,CAAU/hN,MAAM,CAACogD,QAAQjgD,SAAS,CAACmxH,SAAAA,EACpC,CAAA,KAAO,CACNywF,SAAAA,CAAUr4N,IAAI,CAAC02D,MAAAA,CAAAA,CAAQjgD,SAAS,CAACmxH,SAAAA,CAAAA,CAAWtxH,MAAM,GACnD,CACAkmN,WAAW,CAAC,CAAA,CAAE,CAAGnE,SAAAA,CAAU93N,CAAC,CAC5Bi8N,WAAW,CAAC,EAAE,CAAGnE,SAAAA,CAAU9jN,CAAC,CAC5BioN,WAAW,CAAC,CAAA,CAAE,CAAGnE,SAAAA,CAAUx6N,CAAC,CAC5B,IAAI,CAACy8N,iBAAiB,CAAC,IAAA,EACxB,CACAqB,QAAAA,EAAW,CACV,GAAI59N,SAAAA,CAAUmD,MAAM,GAAK,CAAA,CAAG,CAC3B,IAAI,CAACymM,MAAM,CAAC//L,GAAG,CAAC7J,SAAS,CAAC,CAAA,CAAE,CAACwC,CAAC,CAAExC,SAAS,CAAC,CAAA,CAAE,CAACwW,CAAC,CAAExW,SAAS,CAAC,CAAA,CAAE,CAACF,CAAC,EAC/D,CAAA,KAAO,GAAIE,UAAUmD,MAAM,GAAK,EAAG,CAClC,IAAI,CAACymM,MAAM,CAAC//L,GAAG,CAAC7J,SAAS,CAAC,CAAA,CAAE,CAAEA,SAAS,CAAC,EAAE,CAAEA,SAAS,CAAC,CAAA,CAAE,EACzD,CACA,IAAI,CAAC47N,kBAAkB,GACxB,CACAC,WAAAA,EAAc,CACb,IAAI,CAAC9kI,MAAM,CAACnnF,OAAO,CAAEkmF,QACpB,GAAIA,KAAAA,CAAMw+H,QAAQ,CAAC,IAAI,CAAA,CAAG,CACzBx+H,KAAAA,CAAMo+H,eAAe,GACtB,CACD,CAAA,EACD,CACA/xK,SAAAA,EAAY,CACX,IAAIl3C,GAAAA,CAAM,IAAI,CAAC8R,KAAK,EAAI,EAAA,CAAK,IAAI,CAACgvK,WAAW,EAAI,EAAA,CAAK,IAAI,CAACC,YAAY,EAAI,EAAA,CAAM,CAAA,IAAI,CAACK,iBAAiB,GAAK,EAAI,CAAA,CAAI,CAAA,GAAM,EAAA,CAAM,CAAA,IAAI,CAAChP,OAAO,CAAG,CAAA,CAAI,CAAA,GAAM,EAAA,CAAM,CAAA,IAAI,CAAC+O,cAAc,CAAG,EAAI,CAAA,GAAM,GAAKmuC,MAAM,CAAC,IAAI,CAACruC,cAAc,CAACxnL,MAAM,CAAC,CAAA,CAAA,CAAG,EAAI,EAAA,CAAM,CAAA,IAAI,CAACynL,gBAAgB,CAAG,EAAI,CAAA,GAAM,GAAK,IAAI,CAACL,MAAM,EAAI,GAAK,CAAC,IAAI,CAACU,WAAW,CAAG,CAAA,CAAI,CAAA,CAAI,CAAA,GAAM,CAAA,CAAK,CAAA,IAAI,CAAC+uC,aAAa,CAAG,CAAA,CAAI,CAAA,CAAI,CAAA,GAAM,CAAA,CAAK,CAAA,IAAI,CAACtvC,iBAAiB,CAAG,CAAA,CAAI,CAAA,GAAM,CAAA,CAAI,IAAI,CAACruI,IAAI,EAAI,EAAI,CAAC,IAAI,CAACk+K,YAAY,CAAG,CAAA,CAAI,CAAA,GAAM,CAAA,CACpd,GAAI,IAAI,CAAC5vC,cAAc,CAAC/oL,MAAM,GAAK,CAAA,CAAG,CACrC8H,GAAAA,EAAOsvN,MAAM,CAAC,IAAI,CAACruC,cAAc,CAACxnL,MAAM,CAAC,CAAA,CAAA,CAAG,EAAI,EAAA,CAChDuG,KAAOsvN,MAAM,CAAC,IAAI,CAACruC,cAAc,CAACxnL,MAAM,CAAC,CAAA,CAAA,CAAG,EAAI,GACjD,CACA,GAAIuG,GAAAA,GAAQ,IAAI,CAACA,GAAG,CAAE,CACrB,IAAI,CAAC4wN,WAAW,GACjB,CACA,IAAI,CAAC5wN,GAAG,CAAGA,IACZ,CACAwwN,oBAAAA,EAAuB,CACtB,MAAMiD,SAAAA,CAAY,CAAC,EAAE,IAAI,CAAC9gL,IAAI,CAAG+mG,mBAAkB,CAAA,CACnD,MAAMg6E,aAAAA,CAAgB,CAAC,EAAE,IAAI,CAAC/gL,IAAI,CAAGgnG,uBAAsB,CAC3D,CAAA,IAAI,CAACg6E,cAAc,CAAI,CAAA,IAAI,CAACtkN,IAAI,GAAK2jI,cAAAA,CAAiB,CAAA,CAAI,CAAA,GAAM,EAAA,CAChE,CAAC,IAAI,CAAC6tC,MAAM,CAAG,CAAA,GAAM,GACrB,CAAC,IAAI,CAACE,YAAY,CAAG,CAAA,GAAM,EAAA,CAC3B,CAAC0uC,UAAU,CAAC,IAAI,CAACxuC,cAAc,CAAC,EAAI,CAAA,GAAM,GAC1C,CAACwyC,SAAAA,CAAY,CAAA,CAAI,CAAA,GAAM,EAAA,CACvB,CAACC,cAAgB,CAAA,CAAI,CAAA,GAAM,GAC5B,CACAjgD,kBAAkBjB,WAAW,CAAEohD,SAAS,CAAE,CACzC,OAAO,IAAI,CAACD,cAAc,CAAG,CAAC,CAACnhD,YAAch7K,IAAAA,CAAKoQ,KAAK,CAAC,IAAI,CAACm5M,eAAe,CAAG,GAAA,CAAA,CAAO,CAAA,EAAK,GAAE,GAAM,CAAA,CACnG,CAAE6S,CAAAA,SAAAA,CAAYp8N,IAAAA,CAAKoQ,KAAK,CAAC,IAAI,CAAC+5M,eAAe,CAAG,GAAA,CAAA,CAAO,CAAA,EAAK,GAAE,GAAM,CACrE,CACA2P,kBAAkBuC,WAAW,CAAEC,YAAY,CAAE,CAC5C,KAAM,CAAEC,eAAe,CAAE,CAAG,IAAI,CAChC,MAAMthN,UAAAA,CAAaD,YAAAA,CAAaC,UAAU,CAC1C,GAAIohN,WAAAA,CAAa,CAChBE,eAAe,CAAC,CAAA,CAAE,CAAGthN,UAAAA,CAAW1H,KAAKI,KAAK,CAAC,IAAI,CAAC21M,YAAY,CAAC,CAAA,CAAE,CAAG3tE,mBAAAA,CAAqB,CAAA,CAAG,OAC1F4gF,CAAAA,eAAe,CAAC,CAAA,CAAE,CAAGthN,UAAAA,CAAW1H,IAAAA,CAAKI,KAAK,CAAC,IAAI,CAAC21M,YAAY,CAAC,CAAA,CAAE,CAAG3tE,mBAAAA,CAAqB,CAAA,CAAG,OAC1F4gF,CAAAA,eAAe,CAAC,CAAA,CAAE,CAAGthN,UAAAA,CAAW1H,IAAAA,CAAKI,KAAK,CAAC,IAAI,CAAC21M,YAAY,CAAC,CAAA,CAAE,CAAG3tE,mBAAAA,CAAqB,CAAA,CAAG,QAC3F,CACA,GAAI2gF,aAAc,CACjB,MAAME,aAAe,EAAA,CACrB,IAAI3oK,KAAAA,CAAQ,CAAA,CACZ,MAAM4oK,iBAAAA,CAAoB,GAAA,CAC1B,IAAIC,QAAAA,CAAW18N,KAAKmc,GAAG,CAAC,IAAI,CAAC09M,eAAe,CAAG4C,iBAAAA,CAAoBlpN,KAAKC,UAAU,CAAA,CAClF,GAAIkpN,QAAAA,CAAWF,YAAAA,CAAc,CAC5BE,QAAAA,CAAW,EAAIA,QAAAA,CACf7oK,KAAAA,EAAS,EACV,CACA,IAAI8oK,QAAAA,CAAW38N,IAAAA,CAAKmc,GAAG,CAAC,IAAI,CAACy7J,eAAe,CAAG6kD,iBAAAA,CAAoBlpN,IAAAA,CAAKC,UAAU,CAAA,CAClF,GAAImpN,QAAAA,CAAWH,YAAAA,CAAc,CAC5BG,QAAAA,CAAW,CAAA,CAAIA,QAAAA,CACf9oK,KAAAA,EAAS,EACV,CACA0oK,eAAe,CAAC,CAAA,CAAE,CAAG1oK,KACrB0oK,CAAAA,eAAe,CAAC,CAAA,CAAE,CAAGthN,UAAAA,CAAWyhN,QAAAA,CAChCH,CAAAA,eAAe,CAAC,CAAA,CAAE,CAAGthN,WAAW0hN,QAAAA,EACjC,CACD,CApuBA,WAAA,CAAYpuL,cAAc,CAAE2sL,iBAAiB,CAAE,CAR/C5mI,gBAAAA,CAAAA,IAAAA,CAAAA,SAAyB,IAAI7sF,GAAAA,CAAAA,CAC7ByzN,sBAAAA,mBAAAA,CAAAA,MAAAA,CAAAA,CACA9mB,gBAAAA,CAAAA,IAAAA,CAAAA,mBAAmB50J,UAAAA,CAAWT,OAAO,CAACtpC,KAAK,IAC3C6lN,gBAAAA,CAAAA,IAAAA,CAAAA,sBAAAA,CAAuB,CAAA,CAAA,CACvBa,gBAAAA,CAAAA,IAAAA,CAAAA,iBAAiB,CAAA,CAAA,CACjBzgD,gBAAAA,CAAAA,IAAAA,CAAAA,gBAAgB,IAAI95I,WAAAA,CAAY,IAChC26L,gBAAAA,CAAAA,IAAAA,CAAAA,iBAAAA,CAAkB,IAAIz6L,WAAAA,CAAY,IAAI,CAAC45I,aAAa,CAAC3gK,MAAM,GAC3D+9L,gBAAAA,CAAAA,IAAAA,CAAAA,oBAAAA,CAAqB,IAAA,CAEpB,CAAA,IAAI,CAACnqK,MAAM,CAAGJ,cACd,CAAA,IAAI,CAAC2sL,iBAAiB,CAAGA,iBACzB,CAAA,IAAI,CAACtuL,EAAE,CAAGsrL,MACV,CAAA,IAAI,CAACpf,kBAAkB,CAAGvqK,cAAAA,CAAevmC,EAAE,CAAC,gBAAA,CAAkB,IAAI,CAAC+wM,gBAAgB,CAAE,IAAI,CACzF,CAAA,IAAI,CAACz+L,KAAK,CAAG+gI,qBACb,CAAA,IAAI,CAAC8rD,MAAM,CAAG,IAAI5xL,KAAAA,CAAM,GAAK,EAAA,CAAK,EAAA,CAClC,CAAA,IAAI,CAAC0xL,UAAU,CAAG,CAClB,CAAA,IAAI,CAACozB,kBAAkB,CAAG,IAC1B,CAAA,IAAI,CAACE,UAAU,CAAG,CAClB,CAAA,IAAI,CAAClB,YAAY,CAAG,KACpB,CAAA,IAAI,CAAC73J,QAAQ,CAAG,KAChB,CAAA,IAAI,CAACu3J,KAAK,CAAG72E,mBACb,CAAA,IAAI,CAAC06E,QAAQ,CAAG,KAChB,CAAA,IAAI,CAACp0N,GAAG,CAAG,CACX,CAAA,IAAI,CAACq0N,OAAO,CAAG,IACf,CAAA,IAAI,CAACC,cAAc,CAAG,CACtB,CAAA,IAAI,CAACC,QAAQ,CAAG,CAChB,CAAA,IAAI,CAAC3B,gBAAgB,CAAG,EACxB,CAAA,IAAI,CAAC3/C,cAAc,CAAG,EACtB,CAAA,IAAI,CAAC8N,YAAY,CAAGttC,mBACpB,CAAA,IAAI,CAACqtC,WAAW,CAAGltC,eACnB,CAAA,IAAI,CAAC65D,YAAY,CAAG,EACpB,CAAA,IAAI,CAACW,WAAW,CAAG/4D,aACnB,CAAA,IAAI,CAACw9E,OAAO,CAAG,GAAA,CAAO,GACtB,CAAA,IAAI,CAACzgD,OAAO,CAAG,IACf,CAAA,IAAI,CAACuvC,eAAe,CAAG,CACvB,CAAA,IAAI,CAACxgC,cAAc,CAAG,IACtB,CAAA,IAAI,CAACF,cAAc,CAAG,KACtB,CAAA,IAAI,CAACC,gBAAgB,CAAG,IACxB,CAAA,IAAI,CAAC8gC,uBAAuB,CAAG,IAAIxwM,aAAa,CAAA,CAChD,CAAA,IAAI,CAAC0wM,aAAa,CAAG,IACrB,CAAA,IAAI,CAACD,oBAAoB,CAAG,IAAIzwM,YAAAA,CAAa,CAAA,CAC7C,CAAA,IAAI,CAAC6gN,mBAAmB,CAAG,KAC3B,CAAA,IAAI,CAACE,gBAAgB,CAAG,KACxB,CAAA,IAAI,CAAClB,eAAe,CAAG,EACvB,CAAA,IAAI,CAACjiD,eAAe,CAAG,EACvB,CAAA,IAAI,CAAC03B,QAAQ,CAAG,IAChB,CAAA,IAAI,CAACkF,oBAAoB,CAAG,IAC5B,CAAA,IAAI,CAAChF,uBAAuB,CAAG,IAC/B,CAAA,IAAI,CAACzlB,WAAW,CAAG,CACnB,CAAA,IAAI,CAAC+uC,aAAa,CAAG,CACrB,CAAA,IAAI,CAAC/nB,mBAAmB,CAAG,EAC3B,CAAA,IAAI,CAAC1nB,MAAM,CAAGztC,mBACd,CAAA,IAAI,CAAC0tE,YAAY,CAAG,IAAItvM,YAAAA,CAAa,CAAA,CAAA,CACrC,IAAI,CAACm/M,kBAAkB,EACvB,CAAA,IAAI,CAACjgF,SAAS,CAAG,IAAI58H,IAAAA,CAAK,CAAA,CAAG,CAAA,CAAG,EAChC,CAAA,IAAI,CAAC0qL,UAAU,CAAG,IAAI1qL,IAAAA,CAAK,CAAA,CAAG,CAAA,CAAG,CAAA,CACjC,CAAA,IAAI,CAAC+tM,kBAAkB,CAAGrqN,KAAKmc,GAAG,CAAC,IAAI,CAAC09M,eAAe,CAAGtmN,IAAAA,CAAKC,UAAU,CAAA,CACzE,IAAI,CAACwmN,iBAAiB,CAAC,IAAI,CAACpiD,eAAe,CAC3C,CAAA,IAAI,CAACshD,iBAAiB,CAAG,MACzB,CAAA,IAAI,CAACrtB,UAAU,CAAG,IAClB,CAAA,IAAI,CAACie,mBAAmB,CAAG,EAAE,CAC7B,IAAI,CAACH,mBAAmB,CAAG,EAC3B,CAAA,IAAI,CAACE,mBAAmB,CAAG,IAC3B,CAAA,IAAI,CAAC1a,cAAc,CAAG,EACtB,CAAA,IAAI,CAACxH,iBAAiB,CAAG,IACzB,CAAA,IAAI,CAACixB,WAAW,CAAG,KACnB,CAAA,IAAI,CAACU,gBAAgB,CAAG,CACxB,CAAA,IAAI,CAAC1vC,iBAAiB,CAAG,CACzB,CAAA,IAAI,CAAC8rB,gBAAgB,CAAGzzD,qBACxB,CAAA,IAAI,CAACmsD,qBAAqB,CAAG,IAC7B,CAAA,IAAI,CAACvkB,MAAM,CAAG,KACd,CAAA,IAAI,CAACoqB,MAAM,CAAG,IACd,CAAA,IAAI,CAAC1D,OAAO,CAAG,KACf,CAAA,IAAI,CAACiZ,iBAAiB,CAAG,IAAIxvM,YAAAA,CAAa,CAAA,CAC1C,CAAA,IAAI,CAACy+M,aAAa,CAAG,EACrB,CAAA,IAAI,CAACC,oBAAoB,CAAG,EAC5B,CAAA,IAAI,CAAChP,YAAY,CAAG,CACpB,CAAA,IAAI,CAACwQ,eAAe,CAAG,CACvB,CAAA,IAAI,CAACM,aAAa,CAAG,IACrB,CAAA,IAAI,CAACC,cAAc,CAAG,IACtB,CAAA,IAAI,CAAChgD,sBAAsB,CAAG,KAC9B,CAAA,IAAI,CAACixB,YAAY,CAAG,CACpB,CAAA,IAAI,CAACC,cAAc,CAAG,CACtB,CAAA,IAAI,CAACF,gBAAgB,CAAG,KACxB,CAAA,IAAI,CAAC2N,mBAAmB,CAAG,EAC3B,CAAA,IAAI,CAAClnC,KAAK,CAAG,IACb,CAAA,IAAI,CAACsmD,WAAW,CAAG,EAAE,CACrB,IAAI,CAAC7zD,gBAAgB,CAAG,KACxB,CAAA,IAAI,CAACmmC,aAAa,CAAG,EACrB,IAAI,CAAC+tB,iBAAiB,GACvB,CAmpBD,CAAA,CAEA,IAAImE,eAAiB,KAAA,CAiBpBC,aAAAA,CAAcl7J,MAAM,CAAE,CACrB,IAAI,CAACk5G,cAAc,CAAGl5G,MAAAA,CAAOm7J,sBAAsB,EAAI,IAAI,CAACjiD,cAAc,CAC1E,IAAI,CAACN,cAAc,CAAG54G,MAAAA,CAAOo7J,sBAAsB,EAAI,IAAI,CAACxiD,cAC5D,CAAA,IAAI,CAACG,iBAAiB,CAAG/4G,OAAOq7J,yBAAyB,EAAI,IAAI,CAACtiD,iBAAiB,CACnF,IAAI,CAACmuB,qBAAqB,CAAGlnI,MAAAA,CAAOs7J,6BAA6B,EAAI,IAAI,CAACp0B,qBAC1E,CAAA,IAAI,CAAC8B,qBAAqB,CAAGhpI,MAAAA,CAAOu7J,6BAA6B,EAAI,IAAI,CAACvyB,qBAAqB,CAC/F,IAAI,CAACtsB,gBAAgB,CAAG18G,MAAAA,CAAOw7J,wBAAwB,EAAI,IAAI,CAAC9+C,gBAAgB,CAChF,IAAI,CAACpF,SAAS,CAAGt3G,MAAAA,CAAOy7J,iBAAiB,EAAI,IAAI,CAACnkD,SAAS,CAC3D,IAAI,CAAC5wB,UAAU,CAAG1mF,MAAAA,CAAO07J,kBAAkB,EAAI,IAAI,CAACh1E,UAAU,CAC9D,GAAI1mF,MAAAA,CAAO27J,aAAa,CAAE,CACzB,IAAI,CAACvgD,KAAK,CAAG,IAAI7gK,IAAAA,CAAKylD,MAAAA,CAAO27J,aAAa,EAC3C,CACD,CACA,IAAIvgD,KAAAA,CAAM70K,KAAK,CAAE,CAChB,IAAI,CAAC80K,MAAM,CAAC59K,IAAI,CAAC8I,KAAAA,EAClB,CACA,IAAI60K,KAAAA,EAAQ,CACX,OAAO,IAAI,CAACC,MACb,CACA,IAAIqB,iBAAiBn2K,KAAK,CAAE,CAC3B,IAAI,CAACq1N,iBAAiB,CAAGpqN,KAAKI,KAAK,CAACrL,MAAO,CAAA,CAAG,GAAA,EAC/C,CACA,IAAIm2K,kBAAmB,CACtB,OAAO,IAAI,CAACk/C,iBAAiB,CAE9B,IAAItkD,SAAAA,CAAU/wK,KAAK,CAAE,CACpB,IAAI,CAACgxK,UAAU,CAAG/lK,IAAAA,CAAKI,KAAK,CAACrL,KAAAA,CAAO,EAAGtI,IAAAA,CAAK4T,GAAG,CAAC,KAAA,CAAO,IAAI,CAACgqN,eAAe,CAAG,CAAA,CAAA,EAC/E,CACA,IAAIvkD,SAAAA,EAAY,CACf,OAAO,IAAI,CAACC,UACb,CACA,IAAIyxB,sBAAsBziM,KAAK,CAAE,CAChC,IAAI,CAACu1N,sBAAsB,CAAGtqN,IAAAA,CAAKI,KAAK,CAACrL,KAAAA,CAAO,EAAA,CAAI,IAAI,CAACs1N,eAAe,EACzE,CACA,IAAI7yB,qBAAAA,EAAwB,CAC3B,OAAO,IAAI,CAAC8yB,sBACb,CACA,IAAI50B,qBAAAA,CAAsB3gM,KAAK,CAAE,CAChC,IAAI,CAACw1N,sBAAsB,CAAGvqN,IAAAA,CAAKI,KAAK,CAACrL,KAAAA,CAAO,EAAA,CAAI,IAAI,CAACs1N,eAAe,EACzE,CACA,IAAI30B,uBAAwB,CAC3B,OAAO,IAAI,CAAC60B,sBAAsB,CAEnC,IAAIr1E,UAAAA,CAAWngJ,KAAK,CAAE,CACrB,GAAI,IAAI,CAACghL,WAAW,GAAKhhL,KAAAA,CAAO,CAC/B,IAAI,CAACghL,WAAW,CAAGhhL,KAAAA,CACnB,IAAI,CAACy1N,eAAe,GACrB,CACD,CACA,IAAIt1E,UAAAA,EAAa,CAChB,OAAO,IAAI,CAAC6gC,WAAW,CAExB,IAAI3O,cAAAA,CAAeryK,KAAK,CAAE,CACzB,GAAI,IAAI,CAAC01N,eAAe,GAAK11N,KAAAA,CAAO,CACnC,IAAI,CAAC01N,eAAe,CAAG11N,KAAAA,CACvB,IAAI,CAACy1N,eAAe,GACrB,CACD,CACA,IAAIpjD,gBAAiB,CACpB,OAAO,IAAI,CAACqjD,eAAe,CAE5B,IAAIljD,iBAAAA,CAAkBxyK,KAAK,CAAE,CAC5B,GAAI,IAAI,CAAC21N,mBAAmB,CAAE,CAC7B,GAAI,IAAI,CAACC,kBAAkB,GAAK51N,KAAAA,CAAO,CACtC,IAAI,CAAC41N,kBAAkB,CAAG51N,KAAAA,CAC1B,IAAI,CAACy1N,eAAe,GACrB,CACD,CACD,CACA,IAAIjjD,iBAAAA,EAAoB,CACvB,OAAO,IAAI,CAACojD,kBAAkB,CAE/B,IAAIjjD,cAAAA,CAAe3yK,KAAK,CAAE,CACzB,GAAI,IAAI,CAAC61N,eAAe,GAAK71N,KAAAA,CAAO,CACnC,IAAI,CAAC61N,eAAe,CAAG71N,MACvB,IAAI,CAACy1N,eAAe,GACrB,CACD,CACA,IAAI9iD,gBAAiB,CACpB,OAAO,IAAI,CAACkjD,eAAe,CApF5B,YAAY7mI,kBAAkB,CAAE5kC,cAAc,CAAE0rK,cAAc,CAAE,CAXhEF,gBAAAA,CAAAA,IAAAA,CAAAA,oBAAAA,CAAqB,OACrB9gD,gBAAAA,CAAAA,IAAAA,CAAAA,QAAAA,CAAS,IAAI9gK,IAAAA,CAAK,EAAA,CAAI,EAAG,EAAA,CAAA,CAAA,CACzBqhN,gBAAAA,CAAAA,IAAAA,CAAAA,mBAAAA,CAAoB,GAAA,CAAA,CACpBrkD,sBAAAA,YAAAA,CAAa,GAAA,CAAA,CACb6kD,gBAAAA,CAAAA,IAAAA,CAAAA,iBAAAA,CAAkB,MAClB70C,gBAAAA,CAAAA,IAAAA,CAAAA,aAAAA,CAAcltC,eAAAA,CAAAA,CACd0hF,gBAAAA,CAAAA,IAAAA,CAAAA,yBAAyB,IAAA,CAAA,CACzBE,gBAAAA,CAAAA,IAAAA,CAAAA,kBAAkB,KAAA,CAAA,CAClBH,gBAAAA,CAAAA,IAAAA,CAAAA,yBAAyB,IAAA,CAAA,CACzBtR,gBAAAA,CAAAA,IAAAA,CAAAA,YAAAA,CAAAA,QACA1iB,gBAAAA,CAAAA,IAAAA,CAAAA,YAAAA,CAAa,KAEZ,CAAA,IAAI,CAACo0B,mBAAmB,CAAG3mI,kBAC3B,CAAA,IAAI,CAACsmI,eAAe,CAAGlrK,cACvB,CAAA,IAAI,CAACqrK,eAAe,CAAGK,eACxB,CAkFD,CAAA,CAEA,IAAIC,aAAAA,CAAgB,MAAMC,eA8CzBxwL,OAAAA,EAAU,CACT,IAAI,CAACmc,MAAM,CAAG,IAAA,CACd,MAAMmpG,KAAAA,CAAQ,IAAI,CAACA,KAAK,CACxB,GAAIA,KAAAA,CAAO,CACV,IAAI,CAACA,KAAK,CAAG,KACbA,KAAAA,CAAMxyF,WAAW,EAAA,CACjB,GAAIwyF,MAAMvyF,QAAQ,CAAG,EAAG,CACvBuyF,KAAAA,CAAMtlH,OAAO,GACd,CACD,CACA,IAAI,CAACywL,WAAW,EAAEzwL,OAAAA,EAClB,CAAA,IAAI,CAACywL,WAAW,CAAG,IACnB,CAAA,IAAI,CAAC5d,gBAAgB,EAAE7yK,OAAAA,EACvB,CAAA,IAAI,CAAC6yK,gBAAgB,CAAG,IACxB,CAAA,IAAI,CAAC6d,SAAS,EAAE1wL,OAAAA,EAChB,CAAA,IAAI,CAAC0wL,SAAS,CAAG,IACjB,CAAA,IAAI,CAAC3d,cAAc,EAAE/yK,OAAAA,EACrB,CAAA,IAAI,CAAC+yK,cAAc,CAAG,KACvB,CACAprM,OAAQ,CACP,OAAO,IAAI6oN,cAAAA,CAAe,IAAI,CAAClrE,KAAK,CACrC,CACAqrE,eAAAA,CAAgBj2N,GAAG,CAAE,CACpB,GAAI,OAAOA,MAAQ,QAAA,CAAU,CAC5B,MAAM1C,KAAAA,CAAQ,IAAI,CAAC44N,UAAU,CAACvhO,GAAG,CAACqL,GAAAA,CAAAA,CAGlC,OAAO1C,KACR,CACA,OAAO0C,GACR,CACAm2N,SAAAA,CAAUn2N,GAAG,CAAE,CACd,MAAM1C,KAAAA,CAAQ,IAAI,CAAC24N,eAAe,CAACj2N,KACnC,OAAO,IAAI,CAACo2N,QAAQ,CAAC94N,KAAAA,CACtB,CACA+4N,SAAAA,CAAUr2N,GAAG,CAAEu+L,MAAM,CAAE,CACtB,MAAMjhM,KAAAA,CAAQ,IAAI,CAAC24N,eAAe,CAACj2N,GAAAA,CACnC,CAAA,IAAI,CAACo2N,QAAQ,CAAC94N,KAAAA,CAAM,CAAGihM,MACvB,CAAA,IAAI,CAAC1gJ,MAAM,CAAG,KACf,CACAy4K,aAAAA,CAAczxI,QAAQ,CAAE,CACvB,MAAMzO,OAAAA,CAA0B,IAAI/1E,GAAAA,CACpC+1E,OAAAA,CAAQx3E,GAAG,CAAC,2BAAA,CAA6BimF,QAAAA,CAAAA,CACzC,GAAI,IAAI,CAAC+lE,KAAK,CAAC6O,eAAe,CAAErjF,OAAAA,CAAQx3E,GAAG,CAAC,WAAA,CAAa,IACzD,MAAM23N,UAAAA,CAAa,IAAI,CAAC3rE,KAAK,CAAC6O,eAAe,CAAG,OAAA,CAAU,MAAA,CAC1D,OAAO3X,WAAAA,CAAY9mD,YAAY,CAAC,IAAI,CAAC70D,MAAM,CAAE,CAC5C+7G,UAAAA,CAAY,CAAC,mBAAmB,EAAEr9D,SAAS,CAAC,EAAE,IAAI,CAAC+lE,KAAK,CAAC6O,eAAe,CAAG,KAAA,CAAQ,OAAA,CAAQ,CAAC,CAC5FvmG,WAAY,CAAE4nB,eAAAA,CAAiB/gD,iBAAkB,CAAA,CACjDqoH,YAAa,SAAA,CACbE,aAAAA,CAAe,UACfplE,eAAAA,CAAiB9G,OAAAA,CACjB6F,oBAAqB,CAACs6I,UAAAA,CAAU,CACjC,CACD,CACAC,0BAAAA,CAA2Bn0K,YAAY,CAAEo0K,WAAW,CAAEC,KAAK,CAAE,CAC5D,KAAM,CAAE9rE,KAAK,CAAEzkH,MAAM,CAAE,CAAG,IAAI,CAC9B,IAAI,CAACwwL,eAAe,CAACD,KAAAA,CAAAA,CACrB,IAAI,CAACE,cAAc,CAACj9K,QAAQ,CAAC+8K,KAAAA,CAAQ9rE,KAAAA,CAAMisE,uBAAuB,CAAGjsE,KAAAA,CAAMksE,qBAAqB,CAAA,CAChG3wL,MAAAA,CAAOie,aAAa,CAAC9P,UAAAA,CAAWkC,OAAO,CAAA,CACvC,IAAI,CAACugL,OAAO,CAACp9K,QAAQ,CAAC88K,WAAAA,CAAAA,CACtB,IAAI,CAACO,WAAW,CAACr9K,QAAQ,CAAC,IAAI,CAACs9K,mBAAmB,EAClD,IAAI,CAACC,UAAU,CAACv9K,QAAQ,CAAC,IAAI,CAACw9K,iBAAiB,CAAA,CAC/CzyE,mBAAmBv+G,MAAAA,CAAQkc,YAAAA,CAAc,IAAI,CAACZ,MAAM,EACrD,CACA21K,oBAAoBX,WAAW,CAAE,CACjB,IAAI,CAACtwL,OACpB,GAAIswL,WAAAA,CAAc,CAAA,EAAK,CAAC,IAAI,CAACY,YAAY,CAAE,CAC1C,GAAI,IAAI,CAACtB,WAAW,CAAE,CACrB,IAAI,CAACS,0BAA0B,CAAC,IAAI,CAACT,WAAW,CAAEU,WAAAA,CAAa,MAChE,CACA,GAAI,IAAI,CAACT,SAAS,CAAE,CACnB,IAAI,CAACQ,0BAA0B,CAAC,IAAI,CAACR,SAAS,CAAES,YAAa,KAAA,EAC9D,CACA,IAAI,CAACY,YAAY,CAAGZ,WAAAA,GAAgB,EACrC,CACD,CACAE,eAAAA,CAAgBD,KAAAA,CAAQ,IAAI,CAAE,CAC7B,IAAI,CAACY,UAAU,CAAC39K,QAAQ,CAAC+8K,KAAAA,CAAQ,IAAI,CAACa,SAAS,CAAG,IAAI,CAACC,YAAY,CAAA,CACnE,IAAI,CAACC,SAAS,CAAC99K,QAAQ,CAAC+8K,MAAQ,IAAI,CAACgB,QAAQ,CAAG,IAAI,CAACC,WAAW,EACjE,CACA3f,iBAAiB7xK,MAAM,CAAE,CACxB,IAAI,CAACwwL,eAAe,GACrB,CACA7kL,MAAAA,EAAS,CACR,IAAI,CAAC+L,MAAM,CAAG,KAAA,CACd,MAAMkE,OAAAA,CAAU,IAAI,CAAC6oG,KAAK,CAAC6M,QAAQ,CACnC,MAAMpiJ,OAAAA,CAAU,KAChB,MAAMuiN,OAAAA,CAAU,IAAI,CAACX,mBAAmB,CACxC,MAAMn+K,OAAAA,CAAU,IAAI,CAACq+K,iBAAiB,CACtC,IAAIV,WAAAA,CAAc,CAAA,CAClB,IAAK,IAAIx+N,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAK8pD,QAAQ7pD,MAAM,CAAED,KAAM,CAC3C,GAAIT,KAAK6Z,GAAG,CAAC,IAAI,CAAC8kN,SAAS,CAACl+N,EAAAA,CAAAA,CAAAA,CAAOod,QAAS,CAC3CuiN,OAAO,CAACnB,WAAAA,CAAY,CAAG,IAAI,CAACN,SAAS,CAACl+N,EAAAA,CACtC6gD,CAAAA,OAAO,CAAC29K,YAAY,CAAGx+N,EACvBw+N,CAAAA,WAAAA,GACD,CACD,CACA,IAAI,CAACW,mBAAmB,CAACX,WAAAA,EAC1B,CA/IA,WAAA,CAAY7rE,KAAK,CAAE,CAClB,IAAI,CAACA,KAAK,CAAGA,MACbA,KAAAA,CAAM1yF,WAAW,EACjB,CAAA,IAAI,CAAC/xB,MAAM,CAAGykH,KAAAA,CAAMzkH,MAAM,CAC1B,MAAM0xL,aAAAA,CAAgBjtE,KAAAA,CAAM6M,QAAQ,CAACv/J,MAAM,CAC3C,IAAI,CAACupD,MAAM,CAAG,IAAI,CAAC60K,aAAa,CAACuB,aAAAA,CACjC,CAAA,IAAI,CAACzB,QAAQ,CAAG,EAChB,CAAA,IAAI,CAACF,UAAU,CAAmB,IAAI71N,IACtC,IAAK,IAAI3I,EAAAA,CAAK,CAAA,CAAGA,GAAKkzJ,KAAAA,CAAM6M,QAAQ,CAACv/J,MAAM,CAAER,EAAAA,EAAAA,CAAM,CAClD,MAAMb,OAAAA,CAAU+zJ,MAAM6M,QAAQ,CAAC//J,GAAG,CAClC,GAAIb,QAAQkE,IAAI,CAAE,CACjB,IAAI,CAACm7N,UAAU,CAACt3N,GAAG,CAAC/H,QAAQkE,IAAI,CAAErD,EAAAA,EACnC,CACA,IAAI,CAAC2+N,SAAS,CAAC3+N,EAAAA,CAAIb,OAAAA,CAAQihO,aAAa,EACzC,CACA,IAAI,CAACb,mBAAmB,CAAG,IAAIzlN,YAAAA,CAAaqmN,aAAAA,CAC5C,CAAA,IAAI,CAACV,iBAAiB,CAAG,IAAI/9L,WAAAA,CAAYy+L,aAAAA,CAAAA,CACzC,MAAME,QAAAA,CAAW,CAACh9N,KAAMi9N,UAAAA,GAAAA,CACvB,IAAI,CAACA,UAAAA,CAAW,CAAGptE,KAAAA,CAAMqtE,cAAc,CAACl9N,IAAAA,CAAM6vJ,MAAMstE,oBAAoB,CAAA,CACxE,OAAO,IAAIvrK,aAAa,CACvBM,WAAAA,CAAa,IAAI,CAAC+qK,UAAAA,CAAW,CAC7B7wL,KAAAA,CAAO,KACR,CAAA,CACD,CAAA,CACA,GAAIyjH,KAAAA,CAAM2O,cAAc,CAAE,CACzB,IAAI,CAACw8D,WAAW,CAAGgC,QAAAA,CAAS,YAAA,CAAc,oBAC3C,CACA,GAAIntE,MAAM4O,YAAY,CAAE,CACvB,IAAI,CAACw8D,SAAS,CAAG+B,SAAS,YAAA,CAAc,gBAAA,EACzC,CACA,IAAI,CAACxf,cAAc,CAAG,IAAI/mM,YAAAA,CAAa,CAACo5I,KAAAA,CAAMutE,iBAAiB,CAAEvtE,KAAAA,CAAMwtE,kBAAkB,CAAC,CAAA,CAC1F,MAAMx9M,QAAAA,CAAWgwI,KAAAA,CAAMvF,IAAI,CAACzhI,WAAW,CACvC,IAAI,CAAC2zM,SAAS,CAAG,IAAI/lN,aAAa,CAACoJ,QAAAA,CAAS5G,CAAC,CAAG,CAAA,CAAG4G,SAAS3G,CAAC,CAAG,CAAA,CAAG2G,QAAAA,CAAS1G,CAAC,CAAG,CAAA,CAAE,CAAA,CAClF,MAAM9I,IAAMw/I,KAAAA,CAAMvF,IAAI,CAAC7/H,MAAM,EAC7B,CAAA,IAAI,CAACkyM,QAAQ,CAAG,IAAIlmN,YAAAA,CAAa,CAACpG,GAAAA,CAAI4I,CAAC,CAAG,CAAA,CAAG5I,GAAAA,CAAI6I,CAAC,CAAG,EAAG7I,GAAAA,CAAI8I,CAAC,CAAG,CAAA,CAAE,CAClE,CAAA,IAAI,CAACsjN,YAAY,CAAG,IAAIhmN,YAAAA,CAAa,CAAC,CAAA,CAAG,CAAA,CAAG,EAAE,CAC9C,CAAA,IAAI,CAACmmN,WAAW,CAAG,IAAInmN,YAAAA,CAAa,CAAC,EAAC,CAAG,GAAI,EAAC,CAAE,CAChD,CAAA,IAAI,CAAC8lN,UAAU,CAAG,IAAI,CAACnxL,MAAM,CAACzmC,KAAK,CAAC6mC,OAAO,CAAC,UAAA,CAC5C,CAAA,IAAI,CAACkxL,SAAS,CAAG,IAAI,CAACtxL,MAAM,CAACzmC,KAAK,CAAC6mC,OAAO,CAAC,SAAA,CAC3C,CAAA,IAAI,CAACqwL,cAAc,CAAG,IAAI,CAACzwL,MAAM,CAACzmC,KAAK,CAAC6mC,OAAO,CAAC,eAChD,CAAA,IAAI,CAACywL,WAAW,CAAG,IAAI,CAAC7wL,MAAM,CAACzmC,KAAK,CAAC6mC,OAAO,CAAC,gBAAA,CAC7C,CAAA,IAAI,CAAC2wL,UAAU,CAAG,IAAI,CAAC/wL,MAAM,CAACzmC,KAAK,CAAC6mC,OAAO,CAAC,eAAA,CAC5C,CAAA,IAAI,CAACwwL,OAAO,CAAG,IAAI,CAAC5wL,MAAM,CAACzmC,KAAK,CAAC6mC,OAAO,CAAC,OAAA,CACzC,CAAA,IAAI,CAAC8wL,YAAY,CAAG,MACrB,CAoGD,CAAA,CAEA,IAAIgB,KAAAA,CAAQ,MAAMC,MAAAA,CAWjBC,QAAAA,EAAW,CACV,OAAO,IAAI,CAACC,KAAK,CAElBC,QAAAA,CAASD,KAAK,CAAE,CACf,IAAI,CAACA,KAAK,CAAGA,MACd,CACAE,UAAAA,EAAa,CACZ,OAAO,IAAI,CAACtmB,OAAO,CAEpBumB,UAAAA,CAAWvmB,OAAO,CAAE,CACnB,IAAI,CAACA,OAAO,CAAGA,QAChB,CACAwmB,SAAAA,EAAY,CACX,OAAO,IAAI,CAACz4C,MACb,CACA04C,SAAAA,CAAUliD,OAAO,CAAE,CAClB,IAAI,CAACwJ,MAAM,CAAGxJ,QACf,CACAmiD,YAAAA,EAAe,CACd,MAAMC,SAAAA,CAAY,EAAE,CACpB,IAAK,IAAI9gO,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAK,IAAI,CAACutJ,aAAa,CAACttJ,MAAM,CAAED,EAAAA,EAAAA,CAAM,CACtD,MAAM4sJ,YAAAA,CAAe,IAAI,CAACW,aAAa,CAACvtJ,EAAAA,CAAG,CAC3C,GAAI8gO,UAAU/3N,OAAO,CAAC6jJ,YAAAA,CAAajC,QAAQ,IAAM,EAAC,CAAG,CACpDm2E,SAAAA,CAAUhgO,IAAI,CAAC8rJ,YAAAA,CAAajC,QAAQ,EACrC,CACD,CACA,OAAOm2E,SACR,CACA9rN,KAAAA,EAAQ,CACP,MAAM+rN,QAAAA,CAAW,EAAE,CACnB,MAAMC,UAAAA,CAAa,EAAE,CACrB,MAAMC,UAAAA,CAAa,SAASzpE,IAAI,CAAA,CAC/B,MAAM0pE,OAAAA,CAAU1pE,KAAKxiJ,KAAK,EAAA,CAC1B+rN,SAASjgO,IAAI,CAAC02J,MACdwpE,UAAAA,CAAWlgO,IAAI,CAACogO,OAAAA,CAAAA,CAChB,IAAK,IAAI92N,GAAAA,CAAM,EAAGA,GAAAA,CAAMotJ,IAAAA,CAAKG,SAAS,CAAC13J,MAAM,CAAEmK,GAAAA,EAAAA,CAAO,CACrD82N,OAAAA,CAAQ7lE,QAAQ,CAAC4lE,UAAAA,CAAWzpE,KAAKG,SAAS,CAACvtJ,GAAAA,CAAI,CAAA,EAChD,CACA,OAAO82N,OACR,EACA,MAAMC,UAAAA,CAAaF,WAAW,IAAI,CAACV,KAAK,CAAA,CACxC,MAAMa,kBAAAA,CAAqB,EAAE,CAC7B,MAAMC,mBAAqB,EAAE,CAC7B,MAAMC,mBAAAA,CAAsB,EAAE,CAC9B,IAAK,IAAIthO,EAAAA,CAAK,CAAA,CAAGA,GAAK,IAAI,CAACuhO,aAAa,CAACthO,MAAM,CAAED,EAAAA,EAAAA,CAAM,CACtD,MAAM6uJ,KAAO,IAAI,CAAC0yE,aAAa,CAACvhO,GAAG,CAAC6uJ,IAAI,CACxC,MAAM2yE,iBAAAA,CAAoB,IAAInzE,YAAAA,CAAaQ,IAAAA,CAAAA,CAC3C,MAAMC,KAAAA,CAAQ,EAAE,CAChB,IAAK,IAAIp9G,CAAAA,CAAI,EAAGA,CAAAA,CAAIm9G,IAAAA,CAAKE,SAAS,CAAC9uJ,MAAM,CAAEyxC,CAAAA,EAAAA,CAAK,CAC/C,MAAMs9G,QAAAA,CAAWH,KAAKE,SAAS,CAACr9G,CAAAA,CAAE,CAClC,MAAMu9G,IAAAA,CAAOkyE,UAAAA,CAAWjyE,UAAU,CAACF,UACnCF,KAAAA,CAAMhuJ,IAAI,CAACmuJ,IAAAA,EACZ,CACAuyE,iBAAAA,CAAkB1yE,KAAK,CAAGA,KAAAA,CAC1BuyE,kBAAAA,CAAmBvgO,IAAI,CAAC0gO,iBAAAA,EACzB,CACA,IAAK,IAAIxhO,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAK,IAAI,CAACyhO,cAAc,CAACxhO,MAAM,CAAED,KAAM,CACvD,MAAM2yJ,MAAQ,IAAI,CAAC8uE,cAAc,CAACzhO,EAAAA,CAAG,CAAC2yJ,KAAK,CAC3C,MAAM+uE,kBAAAA,CAAqB,IAAI9D,aAAAA,CAAcjrE,OAC7C2uE,mBAAAA,CAAoBxgO,IAAI,CAAC4gO,kBAAAA,EAC1B,CACA,IAAK,IAAI1hO,GAAK,CAAA,CAAGA,EAAAA,CAAK,IAAI,CAACutJ,aAAa,CAACttJ,MAAM,CAAED,EAAAA,EAAAA,CAAM,CACtD,MAAM4sJ,YAAAA,CAAe,IAAI,CAACW,aAAa,CAACvtJ,EAAAA,CAAG,CAC3C,MAAM2hO,SAAAA,CAAYZ,QAAAA,CAASh4N,OAAO,CAAC6jJ,YAAAA,CAAa4K,IAAI,CAAA,CACpD,MAAMoqE,iBAAAA,CAAoB,IAAIljE,aAAa9R,YAAAA,CAAaiF,IAAI,CAAEjF,YAAAA,CAAajC,QAAQ,CAAEq2E,UAAU,CAACW,SAAAA,CAAU,EAC1G,GAAI/0E,YAAAA,CAAa0S,YAAY,CAAE,CAC9B,MAAMuiE,iBAAAA,CAAoB,IAAI,CAACN,aAAa,CAACx4N,OAAO,CAAC6jJ,YAAAA,CAAa0S,YAAY,CAC9EsiE,CAAAA,iBAAAA,CAAkBtiE,YAAY,CAAG+hE,kBAAkB,CAACQ,iBAAAA,EAAkB,CAEvE,GAAIj1E,aAAayU,aAAa,CAAE,CAC/B,MAAMygE,mBAAqB,IAAI,CAACL,cAAc,CAAC14N,OAAO,CAAC6jJ,YAAAA,CAAayU,aAAa,CACjFugE,CAAAA,iBAAAA,CAAkBvgE,aAAa,CAAGigE,mBAAmB,CAACQ,oBAAmB,CAE1EV,kBAAAA,CAAmBtgO,IAAI,CAAC8gO,iBAAAA,EACzB,CACA,MAAM5sN,KAAAA,CAAQ,IAAIqrN,MAClBrrN,CAAAA,KAAAA,CAAMurN,KAAK,CAAGY,UACdnsN,CAAAA,MAAMu4I,aAAa,CAAG6zE,kBACtBpsN,CAAAA,KAAAA,CAAMusN,aAAa,CAAGF,kBACtBrsN,CAAAA,KAAAA,CAAMysN,cAAc,CAAGH,oBACvBtsN,KAAAA,CAAMsrN,QAAQ,EAAA,CAAGvjE,aAAa,GAC9B,OAAO/nJ,KACR,CACAq4B,OAAAA,EAAU,CACT,MAAMkgH,aAAAA,CAAgB,IAAI,CAACA,aAAa,CACxC,IAAK,IAAIvtJ,EAAAA,CAAK,CAAA,CAAGA,GAAKutJ,aAAAA,CAActtJ,MAAM,CAAED,EAAAA,EAAAA,CAAM,CACjDutJ,aAAa,CAACvtJ,GAAG,CAACqtC,OAAO,GAC1B,CACA,IAAI,CAACkgH,aAAa,CAACttJ,MAAM,CAAG,EAC7B,CACA+1J,mBAAoB,CACnB0I,YAAAA,CAAayD,2BAA2B,CAAC,IAAI,CAAC5U,aAAa,CAAEpP,qBAAAA,EAC9D,CAlGA,aAAc,CAJdoiF,gBAAAA,CAAAA,IAAAA,CAAAA,OAAAA,CAAQ,IAAA,CAAA,CACRhzE,sBAAAA,eAAAA,CAAgB,EAAE,EAClBg0E,gBAAAA,CAAAA,IAAAA,CAAAA,eAAAA,CAAgB,EAAE,CAAA,CAClBE,gBAAAA,CAAAA,IAAAA,CAAAA,gBAAAA,CAAiB,EAAE,CAElB,CAAA,IAAI,CAACtnB,OAAO,CAAG,EAAE,CACjB,IAAI,CAACjyB,MAAM,CAAG,EAAE,CAChB,IAAI,CAAC65C,eAAe,CAAG,CACvB,CAAA,IAAI,CAACC,UAAU,CAAG,MACnB,CA8FD,CAAA,CAEA,IAAIC,KAAAA,CAAQ,cAAcjiK,iBAkBzB3yB,OAAAA,EAAU,CACT,IAAI,CAAC2yK,eAAe,EAAE3yK,OAAAA,EACtB,CAAA,IAAI,CAAC2yK,eAAe,CAAG,IACvB,CAAA,IAAI,CAAC4e,uBAAuB,EAAEvxL,OAAAA,EAC9B,CAAA,IAAI,CAACuxL,uBAAuB,CAAG,IAC/B,CAAA,IAAI,CAACC,qBAAqB,EAAExxL,SAC5B,CAAA,IAAI,CAACwxL,qBAAqB,CAAG,KAC9B,CACA,IAAIzxE,IAAAA,EAAO,CACV,GAAI,CAAC,IAAI,CAACp4H,KAAK,CAAE,CAChB,MAAM7hB,GAAAA,CAAM,IAAI0I,KAChB,MAAMzI,GAAAA,CAAM,IAAIyI,IAAAA,CAChB,IAAK,IAAI7b,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAK,IAAI,CAACw/J,QAAQ,CAACv/J,MAAM,CAAED,KAAM,CACjD,MAAMkiO,UAAAA,CAAa,IAAI,CAAC1iE,QAAQ,CAACx/J,GAAG,CAACotJ,IAAI,CACzCj6I,GAAAA,CAAIA,GAAG,CAAC+uN,UAAAA,CAAW30M,MAAM,EAAA,CAAA,CACzBna,GAAAA,CAAIA,GAAG,CAAC8uN,WAAW70M,MAAM,EAAA,EAC1B,CACA,IAAI,CAAC2H,KAAK,CAAG,IAAI7J,WAAAA,CACjB,IAAI,CAAC6J,KAAK,CAACpG,SAAS,CAACzb,IAAKC,GAAAA,EAC3B,CACA,OAAO,IAAI,CAAC4hB,KACb,CACA,IAAIssI,gBAAiB,CACpB,OAAO,IAAI,CAAC6gE,eAAe,CAE5B,IAAI5gE,YAAAA,EAAe,CAClB,OAAO,IAAI,CAAC6gE,aAAa,CAE1Br5D,OAAQ,CACP,IAAI,CAACs5D,iBAAiB,GACtB,IAAK,IAAIriO,GAAK,CAAA,CAAGA,EAAAA,CAAK,IAAI,CAACw/J,QAAQ,CAACv/J,MAAM,CAAED,EAAAA,EAAAA,CAAM,CACjD,IAAI,CAACw/J,QAAQ,CAACx/J,EAAAA,CAAG,CAACsiO,SAAS,GAC5B,CACD,CACAC,eAAeC,WAAW,CAAE9rC,IAAI,CAAE+rC,eAAe,CAAE,CAClD,IAAIC,SAAAA,CAAY,CAAA,CAChB,MAAMC,SAAAA,CAAYH,WAAW,CAAC,CAAA,CAAE,CAACviO,MAAM,CACvC,IAAK,IAAIR,GAAK,CAAA,CAAGA,EAAAA,CAAKkjO,UAAWljO,EAAAA,EAAM,CAAA,CAAG,CACzC,IAAImjO,WAAa,KAAA,CACjB,IAAK,IAAI5iO,EAAAA,CAAK,EAAGA,EAAAA,CAAKwiO,WAAAA,CAAYviO,MAAM,CAAED,KAAM,CAC/C,MAAM0Z,MAAQ8oN,WAAW,CAACxiO,GAAG,CAC7B,GAAI0Z,KAAK,CAACja,GAAG,GAAK,CAAA,EAAKia,KAAK,CAACja,GAAK,CAAA,CAAE,GAAK,CAAA,EAAKia,KAAK,CAACja,EAAAA,CAAK,CAAA,CAAE,GAAK,CAAA,CAAG,CAClEmjO,WAAa,IAAA,CACb,KACD,CACD,CACA,GAAIA,UAAAA,CAAY,CACflsC,IAAAA,CAAK51L,IAAI,CAAC4hO,SAAAA,CAAAA,CACVD,eAAAA,CAAgB3hO,IAAI,CAACrB,GAAK,CAAA,CAC1BijO,CAAAA,YACD,CAAA,KAAO,CACNhsC,KAAK51L,IAAI,CAAC,CAAA,EACX,CACD,CACA,OAAO4hO,SACR,CACAL,iBAAAA,EAAoB,CACnB,MAAMG,WAAAA,CAAc,EAAE,CAAEK,WAAa,EAAE,CACvC,MAAM/4K,OAAAA,CAAU,IAAI,CAAC01G,QAAQ,CAC7B,IAAK,IAAIx/J,GAAK,CAAA,CAAGA,EAAAA,CAAK8pD,OAAAA,CAAQ7pD,MAAM,CAAED,EAAAA,EAAAA,CAAM,CAC3C,MAAMpB,OAAAA,CAAUkrD,OAAO,CAAC9pD,EAAAA,CAAG,CAC3B,GAAIpB,OAAAA,CAAQokE,OAAO,CAACixF,cAAc,CAAE,CACnCuuE,YAAY1hO,IAAI,CAAClC,QAAQokE,OAAO,CAACixF,cAAc,CAAA,CAC/C4uE,UAAAA,CAAW/hO,IAAI,CAAC,MACjB,CACA,GAAIlC,QAAQokE,OAAO,CAAC8/J,YAAY,CAAE,CACjCN,WAAAA,CAAY1hO,IAAI,CAAClC,OAAAA,CAAQokE,OAAO,CAAC8/J,YAAY,EAC7CD,UAAAA,CAAW/hO,IAAI,CAAC,KAAA,EACjB,CACD,CACA,MAAM41L,KAAO,EAAE,CAAE+rC,gBAAkB,EAAE,CACrC,MAAMC,SAAAA,CAAY,IAAI,CAACH,cAAc,CAACC,WAAAA,CAAa9rC,KAAM+rC,eAAAA,CAAAA,CACzD,MAAMxwK,cAAAA,CAAiB,IAAI,CAAC/jB,MAAM,CAAC+jB,cAAc,CACjD,IAAIiuK,kBAAoB3gO,IAAAA,CAAKmV,IAAI,CAACnV,IAAAA,CAAKud,IAAI,CAAC4lN,SAAAA,CAAAA,CAAAA,CAC5CxC,iBAAAA,CAAoB3gO,IAAAA,CAAK4T,GAAG,CAAC+sN,iBAAAA,CAAmBjuK,cAAAA,CAAAA,CAChD,MAAMkuK,mBAAqB5gO,IAAAA,CAAKmV,IAAI,CAACguN,SAAAA,CAAYxC,iBAAAA,CAAAA,CACjD,GAAIC,kBAAAA,CAAqBluK,cAAAA,CAAgB,CACxC,MACD,CACA,IAAI,CAACiuK,iBAAiB,CAAGA,iBACzB,CAAA,IAAI,CAACC,kBAAkB,CAAGA,kBAAAA,CAC1B,IAAI4C,UAAY,KAAA,CAChB,MAAMvoN,WAAaD,YAAAA,CAAaC,UAAU,CAC1C,GAAI,IAAI,CAACwoN,cAAc,GAAKvnM,mBAAAA,CAAqB,CAChDsnM,SAAAA,CAAY,KACb,CACA,MAAME,sBAAwB,EAAE,CAChC,MAAMC,mBAAAA,CAAsB,EAAE,CAC9B,MAAMC,eAAAA,CAAkBjD,iBAAAA,CAAoBC,kBAAAA,CAAqB,EACjE,IAAK,IAAIngO,EAAAA,CAAK,CAAA,CAAGA,GAAKwiO,WAAAA,CAAYviO,MAAM,CAAED,EAAAA,EAAAA,CAAM,CAC/C,MAAM0Z,KAAAA,CAAQ8oN,WAAW,CAACxiO,EAAAA,CAAG,CAC7B,MAAMojO,YAAAA,CAAe,IAAI,CAACJ,cAAc,GAAKvnM,mBAAAA,CAAsB,IAAI4F,WAAAA,CAAY8hM,iBAAmB,IAAI5pN,YAAAA,CAAa4pN,eAAAA,CAAAA,CACtHN,CAAAA,UAAU,CAAC7iO,GAAG,CAAGijO,qBAAAA,CAAwBC,mBAAkB,EAAGpiO,IAAI,CAACsiO,YAAAA,CAAAA,CACpE,GAAIL,SAAAA,CAAW,CACd,IAAK,IAAItjO,EAAAA,CAAK,EAAGA,EAAAA,CAAKgjO,eAAAA,CAAgBxiO,MAAM,CAAER,KAAM,CACnD,MAAM4F,MAAQo9N,eAAe,CAAChjO,GAAG,CAAG,CAAA,CACpC,MAAM4jO,QAAAA,CAAW5jO,GAAK,CAAA,CAAI,CAC1B2jO,CAAAA,YAAY,CAACC,QAAAA,CAAS,CAAG7oN,UAAAA,CAAWd,KAAK,CAACrU,KAAAA,CAAM,CAChD+9N,CAAAA,YAAY,CAACC,SAAW,CAAA,CAAE,CAAG7oN,UAAAA,CAAWd,KAAK,CAACrU,KAAAA,CAAQ,CAAA,CAAE,CACxD+9N,CAAAA,YAAY,CAACC,QAAAA,CAAW,CAAA,CAAE,CAAG7oN,WAAWd,KAAK,CAACrU,MAAQ,CAAA,CAAE,EACzD,CACD,CAAA,KAAO,CACN,IAAK,IAAI5F,GAAK,CAAA,CAAGA,EAAAA,CAAKgjO,eAAAA,CAAgBxiO,MAAM,CAAER,EAAAA,EAAAA,CAAM,CACnD,MAAM4F,KAAAA,CAAQo9N,eAAe,CAAChjO,EAAAA,CAAG,CAAG,CAAA,CACpC,MAAM4jO,SAAW5jO,EAAAA,CAAK,CAAA,CAAI,CAC1B2jO,CAAAA,YAAY,CAACC,QAAAA,CAAS,CAAG3pN,KAAK,CAACrU,KAAAA,CAC/B+9N,CAAAA,YAAY,CAACC,QAAAA,CAAW,CAAA,CAAE,CAAG3pN,KAAK,CAACrU,MAAQ,CAAA,CAC3C+9N,CAAAA,YAAY,CAACC,QAAAA,CAAW,CAAA,CAAE,CAAG3pN,KAAK,CAACrU,KAAAA,CAAQ,CAAA,EAAE,CAE/C,CACD,CACA,GAAI49N,sBAAsBhjO,MAAM,CAAG,EAAG,CACrC,IAAI,CAAC2+N,uBAAuB,CAAG,IAAI,CAACoB,cAAc,CAAC,wBAAyB,IAAI,CAACgD,cAAc,CAAEl5K,QAAQ7pD,MAAM,CAAE,CAACgjO,qBAAAA,CAAsB,EACzI,CACA,GAAIC,mBAAAA,CAAoBjjO,MAAM,CAAG,EAAG,CACnC,IAAI,CAAC4+N,qBAAqB,CAAG,IAAI,CAACmB,cAAc,CAAC,sBAAuB,IAAI,CAACgD,cAAc,CAAEl5K,OAAAA,CAAQ7pD,MAAM,CAAE,CAACijO,mBAAAA,CAAoB,EACnI,CACA,MAAMI,UAAAA,CAAa,CAAC,CAAE5/K,QAAAA,CAAU9f,gBAAiB+f,UAAAA,CAAY,CAAA,CAAGvsC,IAAAA,CAAMovB,WAAAA,CAAa6d,MAAO,IAAK,CAAA,CAAE,CACjG,IAAI,CAAC27J,eAAe,CAAG,IAAI99J,YAAAA,CAAa,IAAI,CAAChU,MAAM,CAAE,IAAImV,aAAa,IAAI,CAACnV,MAAM,CAAEo1L,WAAY5sC,IAAAA,CAAKz2L,MAAM,EAAGy2L,IAAAA,CAAKz2L,MAAM,CAAE,CACzH0e,IAAAA,CAAM,IAAIwiB,WAAAA,CAAYu1J,KACvB,CAAA,CAAA,CACA,OAAO,IACR,CACA,IAAI5sI,OAAAA,EAAU,CACb,OAAO,IAAI,CAAC01G,QACb,CAEA+jE,SAAAA,CAAUl+N,KAAK,CAAE,CAChB,OAAO,IAAI,CAACykD,OAAO,CAACzkD,KAAAA,CAAM,CAG3Bm+N,mBAAoB,CACnB,IAAI,CAACrB,eAAe,CAAG,KACvB,CAAA,IAAI,CAACC,aAAa,CAAG,KAAA,CACrB,IAAK,IAAIpiO,EAAAA,CAAK,EAAGA,EAAAA,CAAK,IAAI,CAACw/J,QAAQ,CAACv/J,MAAM,CAAED,EAAAA,EAAAA,CAAM,CACjD,MAAMpB,OAAAA,CAAU,IAAI,CAAC4gK,QAAQ,CAACx/J,GAAG,CACjC,GAAIpB,OAAAA,CAAQ0iK,cAAc,CAAE,CAC3B,IAAI,CAAC6gE,eAAe,CAAG,KACxB,CACA,GAAIvjO,OAAAA,CAAQ2iK,YAAY,CAAE,CACzB,IAAI,CAAC6gE,aAAa,CAAG,KACtB,CACD,CACD,CACApC,eAAel9N,IAAI,CAAEyC,MAAM,CAAE2vC,WAAW,CAAEvE,MAAM,CAAE,CACjD,OAAO,IAAIH,OAAAA,CAAQ,IAAI,CAACtC,MAAM,CAAE,CAC/ByC,MAAAA,CACAuE,WAAAA,CACArvB,KAAAA,CAAO,IAAI,CAACq6M,iBAAiB,CAC7Bp6M,MAAAA,CAAQ,IAAI,CAACq6M,kBAAkB,CAC/B56N,MAAAA,CACAoqC,QAAS,KAAA,CACTD,OAAAA,CAAS,MACTkB,SAAAA,CAAWjX,cAAAA,CACXkX,UAAWlX,cAAAA,CACXmX,QAAAA,CAAU/a,qBAAAA,CACVgb,QAAAA,CAAUhb,sBACVjzB,IACD,CAAA,CACD,CA9KA,WAAA,CAAYgnD,OAAO,CAAEhc,cAAc,CAAE,CAAE21L,mBAAAA,CAAsB,KAAK,CAAE,CAAG,EAAE,CAAE,CAC1E,KAAK,EAAA,CAHNzuM,gBAAAA,CAAAA,IAAAA,CAAAA,OAAAA,CAAAA,MAAAA,CAAAA,CACAyuM,gBAAAA,CAAAA,IAAAA,CAAAA,qBAAAA,CAAAA,OAGC,CAAA,IAAI,CAACv1L,MAAM,CAAGJ,cAAAA,CACd,MAAMI,OAASJ,cACf,CAAA,IAAI,CAAC21L,mBAAmB,CAAGA,mBAC3B,CAAA,IAAI,CAACjkE,QAAQ,CAAG11G,QAAQjpD,KAAK,EAAA,CAC7B,MAAM6iO,cAAAA,CAAiBx1L,OAAO0iB,0BAA0B,CAAGn1B,oBAAsB,MAAK,CACtF,MAAMkoM,eAAAA,CAAkBz1L,MAAAA,CAAOoa,sBAAsB,CAAG3sB,oBAAsB,MAC9E,CAAA,IAAI,CAACskM,oBAAoB,CAAG,IAAI,CAACwD,mBAAmB,CAAGE,eAAAA,EAAmBD,eAAiBA,cAAAA,EAAkBC,eAC7G,CAAA,IAAI,CAAC1D,oBAAoB,CAAG,IAAI,CAACA,oBAAoB,EAAIriM,mBACzD,CAAA,IAAI,CAAC4jI,eAAe,CAAGxhI,qBAAqB,IAAI,CAACigM,oBAAoB,CACrE,CAAA,IAAI,CAAC+C,cAAc,CAAG,IAAI,CAACS,mBAAmB,CAAG9nM,mBAAAA,CAAsBF,mBAAAA,CACvE,IAAI,CAACstI,KAAK,EAAA,CACV,IAAI,CAACy6D,iBAAiB,GACvB,CAiKD,CAAA,CAEA,IAAII,YAAc,MAAMC,YAAAA,CAWvB,IAAI/gO,IAAAA,EAAO,CACV,OAAO,IAAI,CAACg+D,KAAK,CAElB,IAAI++J,aAAAA,EAAgB,CACnB,OAAO,IAAI,CAACiE,cAAc,CAE3B,IAAI12E,IAAAA,EAAO,CACV,GAAI,CAAC,IAAI,CAACp4H,KAAK,CAAE,CAChB,IAAI,CAACA,KAAK,CAAG,IAAI7J,YACjB,GAAI,IAAI,CAAC8oI,cAAc,CAAE,CACxB,IAAI,CAACj/H,KAAK,CAACtE,OAAO,CAAC,IAAI,CAACujI,cAAc,EACvC,CACD,CACA,OAAO,IAAI,CAACj/H,KAAK,CAElBhgB,OAAQ,CACP,OAAO,IAAI6uN,YAAAA,CAAa,IAAI,CAAC7gK,OAAO,CACrC,CACAs/J,SAAAA,EAAY,CACX,GAAI,CAAC,IAAI,CAACt/J,OAAO,CAAC+gK,YAAY,CAAE,CAC/B,IAAI,CAAC/gK,OAAO,CAAG,KAChB,CACA,IAAI,CAACiN,IAAI,CAAG,KACb,CAhCA,WAAA,CAAYz+D,QAAQ,CAAE,CADtBy+D,gBAAAA,CAAAA,IAAAA,CAAAA,MAAAA,CAAO,MAEN,CAAA,IAAI,CAACjN,OAAO,CAAGxxD,QACf,CAAA,IAAI,CAACsvD,KAAK,CAAGtvD,QAAAA,CAAS1O,IAAI,CAC1B,IAAI,CAACghO,cAAc,CAAGtyN,QAAAA,CAASquN,aAAa,EAAI,CAChD,CAAA,IAAI,CAAC7qM,KAAK,CAAGxjB,QAAAA,CAAS47I,IACtB,CAAA,IAAI,CAAC6G,cAAc,CAAGziJ,SAASyiJ,cAC/B,CAAA,IAAI,CAACqN,cAAc,CAAG,CAAC,CAAC9vJ,QAAAA,CAASyiJ,cAAc,CAC/C,IAAI,CAACsN,YAAY,CAAG,CAAC,CAAC/vJ,QAAAA,CAASsxN,aAAY,CA0B7C,CAAA,CAEA,IAAIkB,gBACJ,IAAIC,YAAAA,CAAe,EACnB,IAAIC,mBAAAA,CAAsB,EAC1B,IAAIC,MAAAA,CAAS,IAAI3hN,IAAAA,CACjB,IAAI4hN,SAAAA,CAAY,IAAI5hN,IAAAA,CACpB,IAAI6hN,iBAAmB,IAAIxoN,IAAAA,CAC3B,IAAIyoN,SAAAA,CAAY,IAAIzoN,IAAAA,CACpB,IAAI0oN,cAAgB,IAAI1oN,IAAAA,CACxB,IAAI2oN,eAAAA,CAAkB,IAAI3oN,IAAAA,CAC1B,IAAI4oN,YAAc,IAAI5oN,IAAAA,CACtB,IAAI6oN,gBAAAA,CAAmB,IAAI7oN,IAAAA,CAC3B,IAAI8oN,YAAAA,CAAe,IAAI9oN,KACvB,IAAI+oN,iBAAAA,CAAoB,IAAI/oN,IAAAA,CAC5B,IAAIgpN,kBAAoB,IAAIhpN,IAAAA,CAC5B,IAAIipN,WAAAA,CAAc,IAAIjpN,IAAAA,CACtB,IAAIkpN,iBAAmB,IAAIlpN,IAAAA,CAC3B,IAAImpN,UAAAA,CAAa,IAAInpN,IAAAA,CACrB,IAAIopN,SAAW,IAAIppN,IAAAA,CACnB,SAASqpN,QAAAA,CAAS3oO,EAAE,EACnB,OAAOgD,IAAAA,CAAK6T,GAAG,CAAC7T,KAAK4T,GAAG,CAAC5W,EAAAA,CAAI,CAAA,CAAA,CAAI,EAClC,CACA,SAAS4oO,KAAAA,CAAM5oO,EAAE,CAAEof,EAAE,CAAA,CACpB,OAAOpf,EAAAA,CAAKof,EAAAA,CAAKpc,KAAKoQ,KAAK,CAACpT,EAAAA,CAAKof,EAAAA,CAClC,CACA,IAAIypN,kBAAAA,CAAqB,KAAA,CAIxBC,iBAAAA,CAAkBC,WAAW,CAAEC,YAAY,CAAEC,yBAAyB,CAAEC,UAAU,CAAEzlO,EAAE,CAAE,CACvF,MAAM8hN,OAAAA,CAAU,IAAI,CAAC4jB,QAAQ,CAC7B,MAAMC,EAAAA,CAAKpmO,IAAAA,CAAKC,MAAM,GACtB,MAAMomO,EAAAA,CAAKrmO,IAAAA,CAAKC,MAAM,GACtB,MAAMqmO,EAAAA,CAAKtmO,KAAKC,MAAM,EAAA,CACtB,MAAMsmO,EAAAA,CAAKvmO,IAAAA,CAAKC,MAAM,EAAA,CACtB,GAAIsiN,OAAAA,CAAQikB,MAAM,CAAE,CACnBT,WAAW,CAACtlO,EAAAA,CAAKkkO,mBAAAA,CAAsB,CAAA,CAAIpiB,QAAQkkB,eAAe,CAAG,EAAI9B,mBAAAA,CAAoB,CAAGyB,EAChGL,CAAAA,WAAW,CAACtlO,EAAAA,CAAKkkO,oBAAsB,CAAA,CAAIpiB,OAAAA,CAAQkkB,eAAe,CAAG,EAAI9B,mBAAAA,CAAoB,CAAG0B,EAChGN,CAAAA,WAAW,CAACtlO,EAAAA,CAAKkkO,oBAAsB,CAAA,CAAIpiB,OAAAA,CAAQkkB,eAAe,CAAG,CAAA,CAAI9B,mBAAAA,CAAoB,CAAG2B,GACjG,CACAvB,SAAAA,CAAUvoN,CAAC,CAAG4pN,GAAK,EACnBrB,CAAAA,SAAAA,CAAUtoN,CAAC,CAAG4pN,EAAAA,CAAK,EACnBtB,CAAAA,SAAAA,CAAUroN,CAAC,CAAG4pN,EAAAA,CAAK,EAAA,CACnB,GAAI/jB,OAAAA,CAAQmkB,YAAY,GAAKtoF,gBAAAA,CAAkB,CAC9C,MAAMvqI,IAAM7T,IAAAA,CAAK6T,GAAG,CAAC7T,IAAAA,CAAK6Z,GAAG,CAACkrN,SAAAA,CAAUvoN,CAAC,CAAA,CAAGxc,IAAAA,CAAK6T,GAAG,CAAC7T,IAAAA,CAAK6Z,GAAG,CAACkrN,UAAUtoN,CAAC,CAAA,CAAGzc,KAAK6Z,GAAG,CAACkrN,UAAUroN,CAAC,CAAA,CAAA,CAAA,CAChG,MAAMiqN,KAAAA,CAAQ9yN,IAAM,CAAC,GAAMA,GAAE,EAAKoyN,yBAAyB,CAAC,CAAA,CAAE,CAC9D,MAAMW,MAAQ/yN,GAAAA,CAAO,CAAA,EAAA,CAAMA,GAAE,EAAKoyN,yBAAyB,CAAC,CAAA,CAAE,CAC9D,MAAMY,KAAAA,CAAQhzN,IAAM,CAAC,GAAMA,GAAE,EAAKoyN,yBAAyB,CAAC,EAAE,CAC9DlB,SAAAA,CAAUvoN,CAAC,CAAGmqN,KAAAA,EAAS9yN,GAAAA,GAAQ7T,IAAAA,CAAK6Z,GAAG,CAACkrN,SAAAA,CAAUvoN,CAAC,CAAA,CAAIxc,IAAAA,CAAKojM,IAAI,CAAC2hC,SAAAA,CAAUvoN,CAAC,CAAA,CAAI,EAAIuoN,SAAAA,CAAUvoN,CAAC,CAC/FuoN,CAAAA,SAAAA,CAAUtoN,CAAC,CAAGmqN,KAAAA,EAAS/yN,GAAAA,GAAQ7T,IAAAA,CAAK6Z,GAAG,CAACkrN,SAAAA,CAAUtoN,CAAC,CAAA,CAAIzc,IAAAA,CAAKojM,IAAI,CAAC2hC,UAAUtoN,CAAC,CAAA,CAAI,CAAA,CAAIsoN,SAAAA,CAAUtoN,CAAC,CAC/FsoN,CAAAA,SAAAA,CAAUroN,CAAC,CAAGmqN,KAAAA,EAAShzN,GAAAA,GAAQ7T,IAAAA,CAAK6Z,GAAG,CAACkrN,SAAAA,CAAUroN,CAAC,CAAA,CAAI1c,KAAKojM,IAAI,CAAC2hC,SAAAA,CAAUroN,CAAC,EAAI,CAAA,CAAIqoN,SAAAA,CAAUroN,CAAAA,EAC9F,GAAI,CAAC6lM,QAAQukB,UAAU,CAAE,CACxBhC,gBAAAA,CAAiBtlO,IAAI,CAAC0mO,UAAAA,CAAAA,CAAYp1N,GAAG,CAACk1N,YAAAA,CAAalhN,cAAc,CAACigN,YACnE,CAAA,KAAO,CACND,gBAAAA,CAAiBtlO,IAAI,CAACwmO,YAAAA,CAAalhN,cAAc,CAACigN,SAAAA,CAAAA,EACnD,CACD,MAAO,CACNA,SAAAA,CAAUlkO,SAAS,EAAA,CACnB,MAAMkmO,2BAAAA,CAA8BxkB,OAAAA,CAAQykB,aAAa,GAAK,EAAI,CAAA,CAAIzkB,OAAAA,CAAQ0kB,kBAAkB,CAAG1kB,QAAQykB,aAAa,CACxH,MAAMjnO,CAAAA,CAAIwmO,EAAAA,EAAM,CAAA,CAAIQ,2BAA0B,CAAA,CAAKA,2BAAAA,CACnD,GAAI,CAACxkB,OAAAA,CAAQukB,UAAU,CAAE,CACxBhC,iBAAiBtlO,IAAI,CAAC0mO,UAAAA,CAAAA,CAAYp1N,GAAG,CAACi0N,SAAAA,CAAU9uN,SAAS,CAAClW,CAAAA,CAAIwiN,OAAAA,CAAQykB,aAAa,CAAA,EACpF,CAAA,KAAO,CACNlC,gBAAAA,CAAiBtlO,IAAI,CAACulO,SAAAA,CAAU9uN,SAAS,CAAClW,EAAIwiN,OAAAA,CAAQykB,aAAa,CAAA,EACpE,CACD,CACA,MAAME,YAAAA,CAAe3zN,KAAKY,IAAI,CAACouM,QAAQ4kB,IAAI,CAAE5kB,OAAAA,CAAQ6kB,KAAK,CAAEhB,EAAAA,CAAAA,CAC5D,MAAMiB,cAAAA,CAAiB,CAACH,aAAezmO,EACvCslO,CAAAA,WAAW,CAACtlO,GAAKkkO,mBAAAA,CAAoB,CAAGG,iBAAiBtoN,CACzDupN,CAAAA,WAAW,CAACtlO,EAAAA,CAAKkkO,mBAAAA,CAAsB,EAAE,CAAGG,gBAAAA,CAAiBroN,CAC7DspN,CAAAA,WAAW,CAACtlO,EAAAA,CAAKkkO,mBAAAA,CAAsB,EAAE,CAAGG,gBAAAA,CAAiBpoN,CAAC,CAC9DqpN,WAAW,CAACtlO,EAAAA,CAAKkkO,mBAAAA,CAAsB,CAAA,CAAE,CAAGpxN,IAAAA,CAAKY,IAAI,CAACouM,OAAAA,CAAQ+kB,UAAU,CAAG/zN,IAAAA,CAAKC,UAAU,CAAE+uM,QAAQglB,WAAW,CAAGh0N,KAAKC,UAAU,CAAE4yN,GACnIL,CAAAA,WAAW,CAACtlO,EAAAA,CAAKkkO,oBAAsB,CAAA,CAAIpiB,OAAAA,CAAQkkB,eAAe,CAAG9B,oBAAoB,CAAG0C,eAC7F,CAEA/sL,MAAAA,CAAOngC,KAAK,CAAEqtN,QAAQ,CAAEzB,WAAW,CAAEC,YAAY,CAAEC,yBAAyB,CAAEC,UAAU,CAAEtsD,MAAM,CAAE6tD,QAAQ,CAAE,CAC3G,IAAIrqO,CAAAA,CAAGC,CAAAA,CAAGyC,EAAAA,CACV,MAAMyiN,OAAAA,CAAU,IAAI,CAAC4jB,QAAQ,CAC7B,GAAI5jB,OAAAA,CAAQl1D,YAAY,CAAC4K,IAAI,CAAE,CAC9B,MAAMyvE,OAAAA,CAAUnlB,OAAAA,CAAQl1D,YAAY,CAAC4K,IAAI,CAAC3iI,cAAc,CACxD,IAAK,IAAI6c,EAAI,CAAA,CAAGA,CAAAA,CAAI,GAAIA,CAAAA,EAAAA,CAAK,CAC5ByyL,MAAAA,CAAOxlN,IAAI,CAAC+yB,CAAAA,CAAE,CAAGu1L,QAAQtoN,IAAI,CAAC+yB,GAAE,CAEjC0yL,SAAAA,CAAUrlO,IAAI,CAAColO,MAAAA,CAAAA,CACfC,SAAAA,CAAUn+M,MAAM,EAAA,CAChB+9M,eAAAA,CAAkBliB,QAAQl1D,YAAY,CAAC4K,IAAI,CAAC8B,UAAU,CACtD2qE,YAAAA,CAAe1kO,IAAAA,CAAK6T,GAAG,CAAC7T,IAAAA,CAAK6T,GAAG,CAAC4wN,eAAAA,CAAgBjoN,CAAC,CAAEioN,eAAAA,CAAgBhoN,CAAC,CAAA,CAAGgoN,eAAAA,CAAgB/nN,CAAC,EAC1F,CACAwpN,UAAAA,CAAa3jB,OAAAA,CAAQl1D,YAAY,CAAC4K,IAAI,GAAK,IAAA,EAAQsqD,QAAQukB,UAAU,CAAGxqN,IAAAA,CAAKmC,IAAI,CAAG8jM,OAAAA,CAAQl1D,YAAY,CAAC4K,IAAI,CAACtnB,WAAW,EAAA,CACzH,MAAMg3F,MAAAA,CAASplB,OAAAA,CAAQz/C,MAAM,CAAGy/C,OAAAA,CAAQz/C,MAAM,CAACoP,KAAK,CAACvhC,WAAW,EAAA,CAAKr0H,IAAAA,CAAKmC,IAAI,CAC9E,MAAMmpN,SAAW,CAACrlB,OAAAA,CAAQslB,OAAO,CAAG,EAAA,CAAK,EAAA,CACzC,IAAIC,GAAIC,EAAAA,CACR,IAAIC,QAAAA,CAAUC,SAAAA,CAAWrgN,OAAQxT,KAAAA,CAAO8zN,MAAAA,CAAQC,WAAAA,CAAaC,YAAAA,CAC7D,MAAMC,UAAAA,CAAa9lB,OAAAA,CAAQxoM,SAAS,CAAG,CAAA,CACvC,IAAK,IAAItZ,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAK8hN,QAAQ+lB,YAAY,CAAE7nO,EAAAA,EAAAA,CAAM,CACjD,MAAMk+H,IAAAA,CAAO3+H,IAAAA,CAAKoQ,KAAK,CAACmyM,QAAQgmB,KAAK,CAAC9nO,GAAK8hN,OAAAA,CAAQimB,gBAAgB,EAAIjmB,OAAAA,CAAQslB,OAAO,CAAG,EAAI,CAAA,CAAA,CAAK,CAAA,CAAE,CAAA,CACpG,MAAMY,SAAAA,CAAY1C,WAAW,CAACpnG,IAAAA,CAAOgmG,oBAAsB,CAAA,CAAIpiB,OAAAA,CAAQkkB,eAAe,CAAG,CAAA,CAAI9B,oBAAoB,CACjHK,aAAAA,CAAcxoN,CAAC,CAAGisN,SAClBzD,CAAAA,aAAAA,CAAcvoN,CAAC,CAAGspN,WAAW,CAACpnG,IAAAA,CAAOgmG,mBAAAA,CAAsB,EAAIpiB,OAAAA,CAAQkkB,eAAe,CAAG,CAAA,CAAI9B,mBAAAA,CAAoB,CACjHK,aAAAA,CAActoN,CAAC,CAAGqpN,WAAW,CAACpnG,IAAAA,CAAOgmG,oBAAsB,CAAA,CAAIpiB,OAAAA,CAAQkkB,eAAe,CAAG,CAAA,CAAI9B,mBAAAA,CAAoB,CACjH,MAAMuC,YAAAA,CAAe3kB,OAAAA,CAAQ4kB,IAAI,CAAI5kB,CAAAA,OAAAA,CAAQ6kB,KAAK,CAAG7kB,OAAAA,CAAQ4kB,IAAI,EAAIsB,SAAAA,CACrE,MAAMC,iBAAmBnmB,OAAAA,CAAQomB,QAAQ,CACzC,IAAIC,KAAO7C,WAAW,CAACpnG,KAAOgmG,mBAAAA,CAAsB,CAAA,CAAIpiB,QAAQkkB,eAAe,CAAG9B,mBAAAA,CAAoB,CAAG/qD,OACzG,MAAMivD,KAAAA,CAAQlD,QAAAA,CAASiD,IAAAA,CAAOF,kBAC9B,IAAII,MAAAA,CAAS,CAAA,CACb,IAAIC,SAAW,CAAA,CACf,MAAM7sN,MAAQ,CAAA,CACd,MAAM8sN,QAAUJ,IAAAA,CAAOhvD,MAAAA,EAAU,CAAA,EAAKgvD,IAAAA,EAAQF,iBAC9C,GAAIM,OAAAA,CAAS,CACZ,IAAI,CAAClD,iBAAiB,CAACC,WAAAA,CAAaC,YAAAA,CAAcC,0BAA2BC,UAAAA,CAAYvnG,IAAAA,EAC1F,CACA,IAAIsqG,eAAAA,CAAkBL,KAAO,CAAA,EAAKA,IAAAA,CAAOF,gBAAAA,CACzC,GAAIO,gBAAiB,CACpBnpO,EAAAA,CAAK+oO,KAAAA,CAAQR,UAAAA,CACbP,GAAK9nO,IAAAA,CAAKoQ,KAAK,CAACtQ,EAAAA,CAAAA,CAChBioO,GAAK/nO,IAAAA,CAAKmV,IAAI,CAACrV,EAAAA,CAAAA,CACfA,EAAAA,EAAM,EACN1C,CAAAA,CAAImlN,OAAAA,CAAQ2mB,SAAS,CAACpB,GAAG,CACzBzqO,CAAAA,CAAIklN,OAAAA,CAAQ2mB,SAAS,CAACnB,EAAAA,CAAG,CACzBC,QAAAA,CAAW5qO,CAAAA,CAAI,CAACC,CAAAA,CAAID,CAAAA,EAAK0C,EAAAA,CACzB1C,EAAImlN,OAAAA,CAAQ4mB,UAAU,CAACrB,EAAAA,CAAG,CAC1BzqO,CAAAA,CAAIklN,OAAAA,CAAQ4mB,UAAU,CAACpB,GAAG,CAC1BE,SAAAA,CAAY7qO,CAAAA,CAAKC,CAAAA,CAAAA,CAAID,CAAAA,EAAK0C,EAAAA,CAC1B1C,CAAAA,CAAImlN,QAAQ6mB,MAAM,CAACtB,EAAAA,CAAG,CACtBzqO,EAAIklN,OAAAA,CAAQ6mB,MAAM,CAACrB,EAAAA,CAAG,CACtBe,MAAAA,CAAS1rO,CAAAA,CAAI,CAACC,EAAID,CAAAA,EAAK0C,GACvB1C,CAAAA,CAAImlN,OAAAA,CAAQ8mB,OAAO,CAACvB,EAAAA,CAAG,CACvBzqO,CAAAA,CAAIklN,QAAQ8mB,OAAO,CAACtB,GAAG,CACvBngN,MAAAA,CAASxqB,EAAI,CAACC,CAAAA,CAAID,CAAAA,EAAK0C,EAAAA,CACvB1C,CAAAA,CAAImlN,QAAQ+mB,MAAM,CAACxB,GAAG,CACtBzqO,CAAAA,CAAIklN,OAAAA,CAAQ+mB,MAAM,CAACvB,EAAAA,CAAG,CACtB3zN,KAAAA,CAAQhX,CAAAA,CAAI,CAACC,CAAAA,CAAID,CAAAA,EAAK0C,GACtB1C,CAAAA,CAAImlN,OAAAA,CAAQgnB,OAAO,CAACzB,EAAAA,CAAG,CACvBzqO,CAAAA,CAAIklN,OAAAA,CAAQgnB,OAAO,CAACxB,GAAG,CACvBG,MAAAA,CAAS9qO,CAAAA,CAAKC,CAAAA,CAAAA,CAAID,CAAAA,EAAK0C,EAAAA,CACvB1C,EAAImlN,OAAAA,CAAQinB,YAAY,CAAC1B,EAAAA,CAAG,CAC5BzqO,EAAIklN,OAAAA,CAAQinB,YAAY,CAACzB,EAAAA,CAAG,CAC5BI,WAAAA,CAAc/qO,CAAAA,CAAI,CAACC,EAAID,CAAAA,EAAK0C,EAAAA,CAC5B1C,CAAAA,CAAImlN,QAAQknB,aAAa,CAAC3B,GAAG,CAC7BzqO,CAAAA,CAAIklN,QAAQknB,aAAa,CAAC1B,EAAAA,CAAG,CAC7BK,aAAehrO,CAAAA,CAAKC,CAAAA,CAAAA,CAAID,CAAAA,EAAK0C,EAAAA,CAC7BqoO,WAAAA,EAAgBC,CAAAA,YAAAA,CAAeD,WAAU,GAAMM,SAAAA,CAAY,IAAM,CAAA,CACjExD,CAAAA,eAAAA,CAAgBzoN,CAAC,CAAGupN,WAAW,CAACpnG,IAAAA,CAAOgmG,oBAAoB,CAC3DM,eAAAA,CAAgBxoN,CAAC,CAAGspN,WAAW,CAACpnG,KAAOgmG,mBAAAA,CAAsB,CAAA,CAAE,CAC/DM,eAAAA,CAAgBvoN,CAAC,CAAGqpN,WAAW,CAACpnG,IAAAA,CAAOgmG,mBAAAA,CAAsB,CAAA,CAAE,CAC/D,GAAI,CAACpiB,OAAAA,CAAQukB,UAAU,CAAE,CACxBxB,iBAAAA,CAAkB9lO,IAAI,CAACylO,eAAAA,CAAAA,CAAiB3mN,GAAG,CAAC4nN,UAAAA,EAC7C,CAAA,KAAO,CACNZ,kBAAkB9lO,IAAI,CAACylO,eAAAA,EACxB,CACAK,kBAAkBzkO,SAAS,EAAA,CAAGoV,SAAS,CAACkyN,aACxCL,EAAAA,EAAM,CAAA,CACNC,IAAM,CAAA,CACN3qO,CAAAA,CAAImlN,QAAQmnB,cAAc,CAAC5B,EAAAA,CAAG,CAC9BzqO,EAAIklN,OAAAA,CAAQmnB,cAAc,CAAC3B,EAAAA,CAC3B5C,CAAAA,gBAAAA,CAAiB3oN,CAAC,CAAGpf,CAAAA,CAAI,CAACC,CAAAA,CAAID,CAAAA,EAAK0C,EAAAA,CACnC1C,EAAImlN,OAAAA,CAAQmnB,cAAc,CAAC5B,EAAAA,CAAK,EAAE,CAClCzqO,CAAAA,CAAIklN,OAAAA,CAAQmnB,cAAc,CAAC3B,EAAAA,CAAK,CAAA,CAAE,CAClC5C,iBAAiB1oN,CAAC,CAAGrf,EAAI,CAACC,EAAID,CAAAA,EAAK0C,EAAAA,CACnC1C,CAAAA,CAAImlN,QAAQmnB,cAAc,CAAC5B,EAAAA,CAAK,CAAA,CAAE,CAClCzqO,CAAAA,CAAIklN,OAAAA,CAAQmnB,cAAc,CAAC3B,GAAK,CAAA,CAChC5C,CAAAA,gBAAAA,CAAiBzoN,CAAC,CAAGtf,CAAAA,CAAKC,CAAAA,CAAAA,CAAID,CAAAA,EAAK0C,EAAAA,CACnC1C,CAAAA,CAAImlN,OAAAA,CAAQonB,eAAe,CAAC7B,EAAAA,CAAG,CAC/BzqO,CAAAA,CAAIklN,QAAQonB,eAAe,CAAC5B,GAAG,CAC/B1C,kBAAkB7oN,CAAC,CAAGpf,CAAAA,CAAKC,CAAAA,CAAAA,CAAID,CAAAA,EAAK0C,EAAAA,CACpC1C,EAAImlN,OAAAA,CAAQonB,eAAe,CAAC7B,EAAAA,CAAK,EAAE,CACnCzqO,CAAAA,CAAIklN,QAAQonB,eAAe,CAAC5B,GAAK,CAAA,CACjC1C,CAAAA,iBAAAA,CAAkB5oN,CAAC,CAAGrf,CAAAA,CAAI,CAACC,EAAID,CAAAA,EAAK0C,EAAAA,CACpC1C,CAAAA,CAAImlN,QAAQonB,eAAe,CAAC7B,GAAK,CAAA,CAAE,CACnCzqO,EAAIklN,OAAAA,CAAQonB,eAAe,CAAC5B,EAAAA,CAAK,EAAE,CACnC1C,iBAAAA,CAAkB3oN,CAAC,CAAGtf,CAAAA,CAAKC,CAAAA,CAAAA,CAAID,CAAAA,EAAK0C,EAAAA,CACpC1C,EAAImlN,OAAAA,CAAQqnB,SAAS,CAAC9B,EAAAA,CAAG,CACzBzqO,CAAAA,CAAIklN,OAAAA,CAAQqnB,SAAS,CAAC7B,EAAAA,CAAG,CACzB7C,YAAY1oN,CAAC,CAAGpf,CAAAA,CAAKC,CAAAA,CAAAA,CAAID,CAAAA,EAAK0C,EAAAA,CAC9B1C,CAAAA,CAAImlN,QAAQqnB,SAAS,CAAC9B,EAAAA,CAAK,CAAA,CAAE,CAC7BzqO,CAAAA,CAAIklN,OAAAA,CAAQqnB,SAAS,CAAC7B,EAAAA,CAAK,EAAE,CAC7B7C,WAAAA,CAAYzoN,CAAC,CAAGrf,CAAAA,CAAKC,CAAAA,CAAAA,CAAID,CAAAA,EAAK0C,EAAAA,CAC9B1C,CAAAA,CAAImlN,OAAAA,CAAQqnB,SAAS,CAAC9B,EAAAA,CAAK,CAAA,CAAE,CAC7BzqO,CAAAA,CAAIklN,QAAQqnB,SAAS,CAAC7B,EAAAA,CAAK,CAAA,CAAE,CAC7B7C,WAAAA,CAAYxoN,CAAC,CAAGtf,CAAAA,CAAI,CAACC,CAAAA,CAAID,CAAAA,EAAK0C,GAC9B1C,CAAAA,CAAImlN,OAAAA,CAAQsnB,UAAU,CAAC/B,GAAG,CAC1BzqO,CAAAA,CAAIklN,OAAAA,CAAQsnB,UAAU,CAAC9B,EAAAA,CACvB3C,CAAAA,YAAAA,CAAa5oN,CAAC,CAAGpf,CAAAA,CAAKC,CAAAA,CAAAA,CAAID,CAAAA,EAAK0C,EAAAA,CAC/B1C,CAAAA,CAAImlN,OAAAA,CAAQsnB,UAAU,CAAC/B,EAAAA,CAAK,CAAA,CAAE,CAC9BzqO,EAAIklN,OAAAA,CAAQsnB,UAAU,CAAC9B,EAAAA,CAAK,CAAA,CAAE,CAC9B3C,YAAAA,CAAa3oN,CAAC,CAAGrf,EAAI,CAACC,CAAAA,CAAID,CAAAA,EAAK0C,EAAAA,CAC/B1C,CAAAA,CAAImlN,OAAAA,CAAQsnB,UAAU,CAAC/B,EAAAA,CAAK,CAAA,CAAE,CAC9BzqO,CAAAA,CAAIklN,OAAAA,CAAQsnB,UAAU,CAAC9B,EAAAA,CAAK,CAAA,CAC5B3C,CAAAA,YAAAA,CAAa1oN,CAAC,CAAGtf,CAAAA,CAAI,CAACC,CAAAA,CAAID,CAAAA,EAAK0C,EAC/BqlO,CAAAA,gBAAAA,CAAiB3oN,CAAC,EAAK6oN,CAAAA,iBAAAA,CAAkB7oN,CAAC,CAAG2oN,gBAAAA,CAAiB3oN,CAAC,EAAIwoN,aAAAA,CAAcxoN,CAAC,CAClF2oN,gBAAAA,CAAiB1oN,CAAC,EAAI,CAAC4oN,iBAAAA,CAAkB5oN,CAAC,CAAG0oN,gBAAAA,CAAiB1oN,CAAC,EAAIuoN,aAAAA,CAAcvoN,CAAC,CAClF0oN,gBAAAA,CAAiBzoN,CAAC,EAAI,CAAC2oN,iBAAAA,CAAkB3oN,CAAC,CAAGyoN,iBAAiBzoN,CAAAA,EAAKsoN,aAAAA,CAActoN,CAAC,CAClF,GAAI6lM,OAAAA,CAAQunB,eAAe,CAAG,EAAG,CAChC,GAAIvnB,QAAQmkB,YAAY,GAAKroF,oBAAqB,CACjD0mF,SAAAA,CAAUvlO,IAAI,CAACwlO,eAAe/uN,SAAS,CAAC,GAAGqI,GAAG,CAAChC,KAAKqC,GAAG,CAAA,CAAE9d,SAAS,EAAA,CAClEskO,iBAAiBr0N,GAAG,CAACi0N,SAAAA,CAAU9uN,SAAS,CAACssM,OAAAA,CAAQunB,eAAe,CAAA,EACjE,CAAA,KAAO,CACN3E,gBAAAA,CAAiBr0N,GAAG,CAACwL,IAAAA,CAAK0C,OAAO,CAAC/I,SAAS,CAACssM,OAAAA,CAAQunB,eAAe,GACpE,CACD,CACA5E,WAAAA,CAAY1oN,CAAC,EAAI,CAAC4oN,YAAAA,CAAa5oN,CAAC,CAAG0oN,WAAAA,CAAY1oN,CAAC,EAAIwoN,aAAAA,CAAcxoN,CAAC,CACnE0oN,WAAAA,CAAYzoN,CAAC,EAAI,CAAC2oN,YAAAA,CAAa3oN,CAAC,CAAGyoN,WAAAA,CAAYzoN,CAAC,EAAIuoN,cAAcvoN,CAClEyoN,CAAAA,WAAAA,CAAYxoN,CAAC,EAAI,CAAC0oN,YAAAA,CAAa1oN,CAAC,CAAGwoN,WAAAA,CAAYxoN,CAAC,EAAIsoN,cAActoN,CAAC,CACnEsrN,QAAAA,EAAaC,CAAAA,SAAAA,CAAYD,QAAO,EAAKhD,aAAAA,CAAcvoN,CAAC,CACpDqsN,MAAAA,CAAUA,CAAAA,MAAAA,CAAS,CAAClhN,MAAAA,CAASkhN,MAAK,GAAML,SAAAA,CAAY,GAAA,CAAM,CAAA,CAAC,EAAK/D,YAAAA,CAChEqE,QAAAA,CAAW,CAACb,MAAAA,CAAS9zN,KAAI,GAAMq0N,SAAAA,CAAY,GAAA,CAAM,CAAA,CAAA,CACjD,GAAIlmB,OAAAA,CAAQl1D,YAAY,CAAC4K,IAAI,CAAE,CAC9B,GAAI,CAACsqD,OAAAA,CAAQukB,UAAU,CAAE,CACxBlC,MAAAA,CAAO9/M,cAAc,CAACqgN,gBAAAA,CAAkBA,gBAAAA,EACzC,CAAA,KAAO,CACNA,gBAAAA,CAAiB3oN,CAAC,EAAIioN,eAAAA,CAAgBjoN,CAAC,CACvC2oN,gBAAAA,CAAiB1oN,CAAC,EAAIgoN,eAAAA,CAAgBhoN,CAAC,CACvC0oN,gBAAAA,CAAiBzoN,CAAC,EAAI+nN,eAAAA,CAAgB/nN,EACvC,CACD,CACA,GAAI,CAAC6lM,OAAAA,CAAQukB,UAAU,CAAE,CACxB3B,gBAAAA,CAAiBr0N,GAAG,CAACo0N,YAAYnnN,GAAG,CAAC0mN,kBACrCU,gBAAAA,CAAiBr0N,GAAG,CAACw0N,iBAAAA,CAAkBvnN,GAAG,CAAC0mN,eAAAA,CAAAA,EAC5C,MAAO,CACNI,SAAAA,CAAU//M,cAAc,CAACogN,YAAaA,WAAAA,CAAAA,CACtCC,gBAAAA,CAAiBr0N,GAAG,CAACo0N,aAAap0N,GAAG,CAACw0N,mBACvC,CACAG,UAAAA,CAAWjmO,IAAI,CAAC2lO,gBAAAA,CAAAA,CAChBI,WAAAA,CAAY/lO,IAAI,CAACylO,eAAAA,CAAAA,CAAiBn0N,GAAG,CAACq0N,gBAAAA,CAAiBlvN,SAAS,CAAC2jK,MAAAA,CAAAA,CAAAA,CACjE4rD,gBAAAA,CAAiBhmO,IAAI,CAAC+lO,WAAAA,CACtBQ,CAAAA,WAAW,CAACpnG,IAAAA,CAAOgmG,oBAAoB,CAAGa,gBAAAA,CAAiBhpN,CAC3DupN,CAAAA,WAAW,CAACpnG,IAAAA,CAAOgmG,mBAAAA,CAAsB,EAAE,CAAGa,gBAAAA,CAAiB/oN,CAC/DspN,CAAAA,WAAW,CAACpnG,KAAOgmG,mBAAAA,CAAsB,CAAA,CAAE,CAAGa,gBAAAA,CAAiB9oN,CAAC,CAChEqpN,WAAW,CAACpnG,IAAAA,CAAOgmG,mBAAAA,CAAsB,CAAA,CAAE,EAAIqD,QAAAA,CAAWpuD,MAAAA,CAC1D,GAAI2oC,OAAAA,CAAQwnB,IAAI,EAAIxnB,OAAAA,CAAQynB,UAAU,CAAE,CACvC,GAAI,CAACznB,OAAAA,CAAQukB,UAAU,CAAE,CACxBtB,gBAAAA,CAAiBlnN,GAAG,CAAC4nN,UAAAA,EACtB,CACAV,gBAAAA,CAAiBhpN,CAAC,CAAGopN,KAAAA,CAAMJ,iBAAiBhpN,CAAC,CAAE+lM,QAAQynB,UAAU,CAACxtN,CAAC,CAAA,CAAI+lM,OAAAA,CAAQynB,UAAU,CAACxtN,CAAC,CAAG,EAC9FgpN,CAAAA,gBAAAA,CAAiB/oN,CAAC,CAAGmpN,KAAAA,CAAMJ,gBAAAA,CAAiB/oN,CAAC,CAAE8lM,OAAAA,CAAQynB,UAAU,CAACvtN,CAAC,CAAA,CAAI8lM,QAAQynB,UAAU,CAACvtN,CAAC,CAAG,EAC9F+oN,CAAAA,gBAAAA,CAAiB9oN,CAAC,CAAGkpN,MAAMJ,gBAAAA,CAAiB9oN,CAAC,CAAE6lM,OAAAA,CAAQynB,UAAU,CAACttN,CAAC,EAAI6lM,OAAAA,CAAQynB,UAAU,CAACttN,CAAC,CAAG,EAAA,CAC9F,GAAI,CAAC6lM,OAAAA,CAAQukB,UAAU,CAAE,CACxBtB,gBAAAA,CAAiB10N,GAAG,CAACo1N,UAAAA,EACtB,CACD,CACA,GAAI3jB,OAAAA,CAAQ7xM,IAAI,CAAG,CAAA,CAAG,CACrB,GAAI6xM,OAAAA,CAAQ7xM,IAAI,GAAK,CAAA,CAAG,CACvBg1N,QAAAA,CAASlmO,IAAI,CAACgmO,gBAAAA,CAAAA,CAAkBlnN,GAAG,CAACqpN,MAAAA,CACpCplB,CAAAA,OAAAA,CAAQ0nB,gBAAgB,CAACtrG,IAAAA,CAAK,CAAG,EAAE+mG,SAASlpN,CAAC,CAAGkpN,QAAAA,CAASlpN,CAAC,CAAGkpN,QAAAA,CAASjpN,CAAC,CAAGipN,QAAAA,CAASjpN,CAAC,CAAGipN,QAAAA,CAAShpN,CAAC,CAAGgpN,SAAShpN,CAAAA,EAC9G,CAAA,KAAO,GAAI6lM,QAAQ7xM,IAAI,GAAK,CAAA,CAAG,CAC9B6xM,QAAQ0nB,gBAAgB,CAACtrG,IAAAA,CAAK,CAAGiqG,KAClC,CAAA,KAAO,GAAIrmB,OAAAA,CAAQ7xM,IAAI,GAAK,CAAA,CAAG,CAC9B6xM,QAAQ0nB,gBAAgB,CAACtrG,KAAK,CAAG,CAACiqG,KACnC,CACD,CACD,CACA,GAAInB,QAAAA,CAAU,CACb,GAAImB,IAAAA,CAAO,CAAA,CAAG,CACb7C,WAAW,CAACpnG,IAAAA,CAAOgmG,mBAAAA,CAAsB,EAAIpiB,OAAAA,CAAQkkB,eAAe,CAAG,CAAA,CAAI9B,mBAAAA,CAAoB,CAAG,GACnG,CACD,CAAA,KAAO,CACN,GAAIiE,MAAQF,gBAAAA,CAAkB,CAC7BE,IAAAA,EAAQ5oO,IAAAA,CAAK6T,GAAG,CAAC60N,gBAAAA,CAAkBnmB,QAAQ+lB,YAAY,CAAGpB,aAC1DnB,CAAAA,WAAW,CAACpnG,IAAAA,CAAOgmG,oBAAsB,CAAA,CAAIpiB,OAAAA,CAAQkkB,eAAe,CAAG,EAAI9B,mBAAAA,CAAoB,CAAGpiB,OAAAA,CAAQ1tE,IAAI,CAAG,CAAA,CAAI,GACtH,CACA,GAAI+zF,KAAO,CAAA,EAAKrmB,OAAAA,CAAQ1tE,IAAI,CAAE,CAC7BkxF,WAAW,CAACpnG,IAAAA,CAAOgmG,mBAAAA,CAAsB,EAAIpiB,OAAAA,CAAQkkB,eAAe,CAAG,CAAA,CAAI9B,oBAAoB,CAAG,EACnG,CACD,CACA,GAAIoB,WAAW,CAACpnG,IAAAA,CAAOgmG,mBAAAA,CAAsB,CAAA,CAAIpiB,QAAQkkB,eAAe,CAAG,EAAI9B,mBAAAA,CAAoB,CAAG,EAAG,CACxGsE,eAAAA,CAAkB,MACnB,CACAlD,WAAW,CAACpnG,IAAAA,CAAOgmG,oBAAsB,CAAA,CAAIpiB,OAAAA,CAAQkkB,eAAe,CAAG9B,mBAAAA,CAAoB,CAAGiE,IAAAA,CAC9F,IAAK,IAAI1oO,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAKqiN,QAAQimB,gBAAgB,CAAEtoO,EAAAA,EAAAA,CAAM,CACrD,MAAMgqO,QAAAA,CAAYzpO,CAAAA,EAAAA,CAAK8hN,OAAAA,CAAQimB,gBAAgB,CAAGtoO,EAAC,GAAMqiN,QAAQslB,OAAO,CAAG,CAAA,CAAI,CAAA,EAC/E,IAAIsC,KAAAA,CAAQ5nB,OAAAA,CAAQgmB,KAAK,CAAC2B,QAAAA,CAAS,CACnC,IAAIE,KAAAA,CAAQ7nB,OAAAA,CAAQgmB,KAAK,CAAC2B,QAAAA,CAAW,CAAA,CAAE,CACvC,IAAIG,KAAAA,CAAQ9nB,OAAAA,CAAQgmB,KAAK,CAAC2B,SAAW,CAAA,CAAE,CACvC,GAAI,CAACjB,gBAAiB,CACrBkB,KAAAA,CAAQC,MAAQC,KAAAA,CAAQ,EACzB,CACA,MAAMlqN,CAAAA,CAAI1f,EAAAA,CAAK8hN,OAAAA,CAAQimB,gBAAgB,CAAGZ,QAAAA,CAAW1nO,EAAAA,CAAK0nO,QAC1DztN,CAAAA,KAAK,CAACgG,CAAAA,CAAE,CAAGqlN,iBAAiBhpN,CAC5BrC,CAAAA,KAAK,CAACgG,EAAI,CAAA,CAAE,CAAGqlN,gBAAAA,CAAiB/oN,CAAC,CACjCtC,KAAK,CAACgG,CAAAA,CAAI,EAAE,CAAGqlN,gBAAAA,CAAiB9oN,CAChCvC,CAAAA,KAAK,CAACgG,EAAI,CAAA,CAAE,CAAG0oN,KACf1uN,CAAAA,KAAK,CAACgG,CAAAA,CAAI,EAAE,CAAGoiM,OAAAA,CAAQ+nB,aAAa,CAAGpuN,MAAQ6pN,WAAW,CAACpnG,IAAAA,CAAOgmG,mBAAAA,CAAsB,EAAE,CAC1FxqN,KAAK,CAACgG,CAAAA,CAAI,EAAE,CAAG2oN,MACf3uN,CAAAA,KAAK,CAACgG,CAAAA,CAAI,CAAA,CAAE,CAAG4oN,QACf5uN,CAAAA,KAAK,CAACgG,CAAAA,CAAI,CAAA,CAAE,CAAGslN,UAAAA,CAAWjpN,CAAC,CAC3BrC,KAAK,CAACgG,CAAAA,CAAI,CAAA,CAAE,CAAGgqN,KACfhwN,CAAAA,KAAK,CAACgG,EAAI,CAAA,CAAE,CAAGiqN,KACfjwN,CAAAA,KAAK,CAACgG,CAAAA,CAAI,GAAG,CAAGkqN,KAChBlwN,CAAAA,KAAK,CAACgG,EAAI,EAAA,CAAG,CAAGslN,UAAAA,CAAWhpN,CAAC,CAC5BtC,KAAK,CAACgG,CAAAA,CAAI,GAAG,CAAGw+G,IAChBxkH,CAAAA,KAAK,CAACgG,CAAAA,CAAI,EAAA,CAAG,CAAGslN,UAAAA,CAAW/oN,CAAC,CAC5BvC,KAAK,CAACgG,CAAAA,CAAI,GAAG,CAAGoiM,OAAAA,CAAQgmB,KAAK,CAAC2B,SAAW,CAAA,CAAE,CAC3C,GAAI3nB,OAAAA,CAAQslB,OAAO,CAAE,CACpB1tN,KAAK,CAACgG,CAAAA,CAAI,GAAG,CAAGoiM,OAAAA,CAAQgmB,KAAK,CAAC2B,SAAW,CAAA,CACzC/vN,CAAAA,KAAK,CAACgG,CAAAA,CAAI,EAAA,CAAG,CAAGoiM,OAAAA,CAAQgmB,KAAK,CAAC2B,QAAAA,CAAW,GAAE,CAE7C,CACD,CACA,GAAI3nB,OAAAA,CAAQ7xM,IAAI,CAAGotI,iBAAAA,EAAqBykE,OAAAA,CAAQz/C,MAAM,CAAE,CACvD,MAAMynE,QAAAA,CAAWhoB,OAAAA,CAAQslB,OAAO,CAAG,CAAA,CAAI,CAAA,CACvC,MAAMoC,gBAAAA,CAAmB1nB,OAAAA,CAAQ0nB,gBAAgB,CACjD,IAAK,IAAIxpO,EAAAA,CAAK,EAAGA,EAAAA,CAAK8hN,OAAAA,CAAQ+lB,YAAY,CAAE7nO,KAAM,CACjD+mO,QAAQ,CAAC/mO,EAAAA,CAAG,CAAC,CAAA,CAAE,CAAGA,EAClB+mO,CAAAA,QAAQ,CAAC/mO,EAAAA,CAAG,CAAC,CAAA,CAAE,CAAGwpO,gBAAgB,CAACjqO,IAAAA,CAAKoQ,KAAK,CAACmyM,QAAQgmB,KAAK,CAAC9nO,EAAAA,CAAK8hN,OAAAA,CAAQimB,gBAAgB,CAAG+B,QAAAA,CAAW,EAAE,CAAA,EAC1G,CACAhoB,OAAAA,CAAQioB,KAAK,CAACpjO,GAAG,CAACm7M,OAAAA,CAAQgmB,KAAK,CAAA,CAC/Bf,QAAAA,CAAS92N,IAAI,CAAC,CAACwI,GAAAA,CAAKoa,GAAAA,GAAAA,CACnB,OAAOpa,GAAG,CAAC,EAAE,CAAGoa,GAAG,CAAC,CAAA,CACrB,CAAA,CAAA,CACA,IAAK,IAAI7yB,EAAAA,CAAK,CAAA,CAAGA,GAAK8hN,OAAAA,CAAQ+lB,YAAY,CAAE7nO,EAAAA,EAAAA,CAAM,CACjD,MAAMsV,GAAAA,CAAMyxN,QAAQ,CAAC/mO,EAAAA,CAAG,CAAC,CAAA,CAAE,CAAG8hN,QAAQimB,gBAAgB,CAAG+B,QAAAA,CACzD,MAAM3uJ,KAAOn7E,EAAAA,CAAK8hN,OAAAA,CAAQimB,gBAAgB,CAAG+B,SAC7C,IAAK,IAAIp4L,CAAAA,CAAI,CAAA,CAAGA,EAAIowK,OAAAA,CAAQimB,gBAAgB,CAAG+B,QAAAA,CAAUp4L,CAAAA,EAAAA,CAAK,CAC7DowK,OAAAA,CAAQgmB,KAAK,CAAC3sJ,IAAAA,CAAOzpC,EAAE,CAAGowK,OAAAA,CAAQioB,KAAK,CAACz0N,IAAMo8B,CAAAA,EAC/C,CACD,CACD,CACD,CAnSA,WAAA,CAAYowK,OAAO,CAAE,CACpB,IAAI,CAAC4jB,QAAQ,CAAG5jB,QACjB,CAkSD,CAAA,CAEA,IAAIkoB,YAAAA,CAAe,IAAIvrN,KACvB,IAAIwrN,cAAAA,CAAiB,IAAIxrN,IAAAA,CACzB,IAAIyrN,iBAAAA,CAAoB,IAAIzrN,KAC5B,IAAI0rN,kBAAAA,CAAqB,MAwCxBC,SAAAA,EAAY,CACX,IAAI,CAACC,kBAAkB,CAAC,CAAA,CAAE,CAAG9qO,IAAAA,CAAKC,MAAM,EACxC,CAAA,IAAI,CAAC6qO,kBAAkB,CAAC,CAAA,CAAE,CAAG9qO,IAAAA,CAAKC,MAAM,EACxC,CAAA,IAAI,CAAC6qO,kBAAkB,CAAC,CAAA,CAAE,CAAG9qO,IAAAA,CAAKC,MAAM,GACzC,CAEAq6C,MAAAA,CAAO3L,MAAM,CAAEq3L,YAAY,CAAEC,yBAAyB,CAAErsD,MAAM,CAAE6tD,QAAQ,CAAE,CACzE,MAAMllB,OAAAA,CAAU,IAAI,CAAC4jB,QAAQ,CAC7Bx3L,MAAAA,CAAOuf,aAAa,EAAA,CACpB,IAAI,CAAC28K,SAAS,GACd,IAAI,CAACE,0BAA0B,CAAC5oL,QAAQ,CAACogK,OAAAA,CAAQn3D,QAAQ,CAAC7zC,YAAY,CAAC,oBAAA,CAAA,CAAsBn4F,IAAI,CAAA,CACjG,IAAI,CAAC4rN,uBAAuB,CAAC7oL,QAAQ,CAAC,EAAIogK,OAAAA,CAAQxoM,SAAS,EAC3D,IAAI,CAACkxN,uBAAuB,CAAC9oL,QAAQ,CAACogK,OAAAA,CAAQxoM,SAAS,CAAA,CACvD,IAAI,CAACmxN,oBAAoB,CAAC/oL,QAAQ,CAACogK,OAAAA,CAAQ+lB,YAAY,CAAA,CACvD,IAAI,CAAC6C,uBAAuB,CAAChpL,QAAQ,CAACogK,QAAQkkB,eAAe,CAAA,CAC7D,IAAI,CAAC2E,oBAAoB,CAACjpL,QAAQ,CAACogK,OAAAA,CAAQ8oB,YAAY,CAAA,CACvD,IAAI,CAACC,oBAAoB,CAACnpL,QAAQ,CAACogK,QAAQgpB,YAAY,CAAA,CACvD,IAAI,CAACC,oBAAoB,CAACrpL,QAAQ,CAACogK,OAAAA,CAAQkpB,YAAY,CAAA,CACvD,IAAI,CAACC,oBAAoB,CAACvpL,QAAQ,CAACogK,QAAQopB,YAAY,CAAA,CACvD,MAAM1zE,IAAAA,CAAOsqD,OAAAA,CAAQl1D,YAAY,CAAC4K,IAAI,CACtC,MAAM2zE,aAAe3zE,IAAAA,GAAS,IAAA,CAAO37I,IAAAA,CAAKqC,GAAG,CAAGs5I,IAAAA,CAAK8B,UAAU,CAC/D,MAAMmsE,WAAajuE,IAAAA,GAAS,IAAA,EAAQsqD,QAAQukB,UAAU,CAAGxqN,KAAKmC,IAAI,CAAGw5I,IAAAA,CAAKtnB,WAAW,GACrF,MAAMk7F,aAAAA,CAAgB5zE,IAAAA,GAAS,IAAA,CAAOh1I,KAAKX,QAAQ,CAAG21I,IAAAA,CAAK7H,iBAAiB,GAC5E,GAAImyD,OAAAA,CAAQmkB,YAAY,GAAKtoF,gBAAAA,CAAkB,CAC9CqsF,YAAAA,CAAa5qN,WAAW,CAACmmN,YAAAA,CAAAA,CACzB,IAAI,CAAC8F,mBAAmB,CAAC3pL,QAAQ,CAACsoL,YAAAA,CAAarrN,IAAI,CAAA,CACnD,IAAI,CAAC2sN,0BAA0B,CAAC5pL,QAAQ,CAAC8jL,yBAAAA,EAC1C,MAAO,CACN,IAAI,CAAC+F,yBAAyB,CAAC7pL,QAAQ,CAACogK,OAAAA,CAAQykB,aAAa,EAC7D,IAAI,CAACiF,mCAAmC,CAAC9pL,QAAQ,CAACogK,OAAAA,CAAQykB,aAAa,GAAK,CAAA,CAAI,EAAIzkB,OAAAA,CAAQ0kB,kBAAkB,CAAG1kB,OAAAA,CAAQykB,aAAa,EACvI,CACA,IAAI,CAACkF,uBAAuB,CAAC/pL,QAAQ,CAACogK,OAAAA,CAAQunB,eAAe,CAAA,CAC7DY,cAAAA,CAAe7qN,WAAW,CAACgsN,aAAAA,CAAAA,CAC3BlB,kBAAkB7pN,UAAU,CAAC+qN,aAAAA,CAC7B,CAAA,IAAI,CAACM,iBAAiB,CAAC,CAAA,CAAE,CAAGjG,WAAW1pN,CACvC,CAAA,IAAI,CAAC2vN,iBAAiB,CAAC,EAAE,CAAGjG,UAAAA,CAAWzpN,CAAC,CACxC,IAAI,CAAC0vN,iBAAiB,CAAC,CAAA,CAAE,CAAGjG,UAAAA,CAAWxpN,CAAC,CACxC,IAAI,CAAC0vN,kBAAkB,CAACjqL,QAAQ,CAAC,IAAI,CAACgqL,iBAAiB,EACvD,IAAI,CAACE,mBAAmB,CAAClqL,QAAQ,CAAC,IAAI,CAAC2oL,kBAAkB,EACzD,IAAI,CAACwB,aAAa,CAACnqL,QAAQ,CAACy3H,MAAAA,CAAAA,CAC5B,IAAI,CAAC2yD,YAAY,CAACpqL,QAAQ,CAACogK,OAAAA,CAAQ4kB,IAAI,EACvC,IAAI,CAACqF,eAAe,CAACrqL,QAAQ,CAACogK,OAAAA,CAAQ6kB,KAAK,CAAG7kB,QAAQ4kB,IAAI,CAAA,CAC1D,IAAI,CAACsF,kBAAkB,CAACtqL,QAAQ,CAACogK,OAAAA,CAAQ+kB,UAAU,CAAG/zN,IAAAA,CAAKC,UAAU,CAAA,CACrE,IAAI,CAACk5N,mBAAmB,CAACvqL,QAAQ,CAACogK,QAAQglB,WAAW,CAAGh0N,KAAKC,UAAU,CAAA,CACvE,IAAI,CAACm5N,YAAY,CAACxqL,QAAQ,CAACogK,OAAAA,CAAQ7b,IAAI,CAAA,CACvC,IAAI,CAACkmC,gBAAgB,CAACzqL,QAAQ,CAACogK,QAAQomB,QAAQ,CAC/C,CAAA,IAAI,CAACkE,mBAAmB,CAAC,CAAA,CAAE,CAAGjB,YAAAA,CAAapvN,CAAC,CAC5C,IAAI,CAACqwN,mBAAmB,CAAC,CAAA,CAAE,CAAGjB,YAAAA,CAAanvN,CAAC,CAC5C,IAAI,CAACowN,mBAAmB,CAAC,CAAA,CAAE,CAAGjB,YAAAA,CAAalvN,CAAC,CAC5C,IAAI,CAACowN,oBAAoB,CAAC3qL,QAAQ,CAAC,IAAI,CAAC0qL,mBAAmB,EAC3D,IAAI,CAACE,qBAAqB,CAAC5qL,QAAQ,CAACuoL,cAAAA,CAAetrN,IAAI,CAAA,CACvD,IAAI,CAAC4tN,wBAAwB,CAAC7qL,QAAQ,CAACwoL,iBAAAA,CAAkBvrN,IAAI,CAAA,CAC7D,IAAI,CAAC6tN,4BAA4B,CAAC9qL,QAAQ,CAACogK,QAAQ2qB,iBAAiB,CAAA,CACpE,IAAI,CAACC,uBAAuB,CAAChrL,QAAQ,CAACogK,OAAAA,CAAQ6qB,YAAY,CAAA,CAC1D,IAAI,CAACC,uBAAuB,CAAClrL,QAAQ,CAACogK,QAAQ+qB,YAAY,CAAC,EAAE,CAAA,CAC7D,IAAIC,MAAQhrB,OAAAA,CAAQirB,OAAO,CAAGjrB,OAAAA,CAAQkrB,cAAc,CAAGlrB,OAAAA,CAAQmrB,aAAa,CAC5EH,MAAQhrB,OAAAA,CAAQorB,SAAS,CAAGprB,OAAAA,CAAQqrB,gBAAgB,CAAGL,KAAAA,CACvD,MAAMM,MAAAA,CAAStrB,OAAAA,CAAQirB,OAAO,CAAGjrB,OAAAA,CAAQmrB,aAAa,CAAGnrB,QAAQkrB,cAAc,CAC/E,IAAI,CAACK,qBAAqB,CAAC3rL,QAAQ,CAACorL,KAAAA,CAAAA,CACpCrgF,mBACCv+G,MAAAA,CACA4zK,OAAAA,CAAQirB,OAAO,CAAGjrB,OAAAA,CAAQwrB,eAAe,CAAGxrB,OAAAA,CAAQyrB,gBAAgB,CACpE,CAACvG,QAAAA,CAAWllB,OAAAA,CAAQ1tE,IAAI,CAAG0tE,QAAQ0rB,2BAA2B,CAAG1rB,OAAAA,CAAQ2rB,6BAA6B,CAAG3rB,OAAAA,CAAQ4rB,0BAAyB,EAE3I5rB,OAAAA,CAAQn3D,QAAQ,CAACl6B,YAAY,CAAC,gBAAA,CAAkBq8G,KAAAA,CAAAA,CAChDhrB,QAAQn3D,QAAQ,CAACl6B,YAAY,CAAC,gBAAiB28G,MAAAA,CAC/CtrB,CAAAA,OAAAA,CAAQorB,SAAS,CAAG,KACpBprB,CAAAA,QAAQirB,OAAO,CAAG,CAACjrB,OAAAA,CAAQirB,QAAO,CA1GnC,YAAYjrB,OAAO,CAAE6rB,EAAE,CAAE,CACxB,IAAI,CAACjI,QAAQ,CAAG5jB,OAChB,CAAA,IAAI,CAACuoB,kBAAkB,CAAG,IAAI9wN,YAAAA,CAAa,CAAA,CAC3C,CAAA,IAAI,CAACmyN,iBAAiB,CAAG,IAAInyN,YAAAA,CAAa,EAC1C,CAAA,IAAI,CAAC6yN,mBAAmB,CAAG,IAAI7yN,YAAAA,CAAa,CAAC,CAAA,CAAG,CAAA,CAAG,EAAE,CACrD,CAAA,IAAI,CAAC8zN,qBAAqB,CAAGM,EAAAA,CAAGlmO,KAAK,CAAC6mC,OAAO,CAAC,eAAA,CAC9C,CAAA,IAAI,CAACs/L,sBAAsB,CAAGD,EAAAA,CAAGlmO,KAAK,CAAC6mC,OAAO,CAAC,gBAAA,CAC/C,CAAA,IAAI,CAACq9L,kBAAkB,CAAGgC,EAAAA,CAAGlmO,KAAK,CAAC6mC,OAAO,CAAC,YAAA,CAC3C,CAAA,IAAI,CAAC+9L,oBAAoB,CAAGsB,GAAGlmO,KAAK,CAAC6mC,OAAO,CAAC,cAAA,CAC7C,CAAA,IAAI,CAAC+8L,mBAAmB,CAAGsC,EAAAA,CAAGlmO,KAAK,CAAC6mC,OAAO,CAAC,aAAA,CAC5C,CAAA,IAAI,CAACg9L,0BAA0B,CAAGqC,EAAAA,CAAGlmO,KAAK,CAAC6mC,OAAO,CAAC,oBAAA,CACnD,CAAA,IAAI,CAACi9L,yBAAyB,CAAGoC,EAAAA,CAAGlmO,KAAK,CAAC6mC,OAAO,CAAC,mBAAA,CAClD,CAAA,IAAI,CAACk9L,mCAAmC,CAAGmC,EAAAA,CAAGlmO,KAAK,CAAC6mC,OAAO,CAAC,6BAAA,CAC5D,CAAA,IAAI,CAACm9L,uBAAuB,CAAGkC,GAAGlmO,KAAK,CAAC6mC,OAAO,CAAC,kBAChD,CAAA,IAAI,CAACs9L,mBAAmB,CAAG+B,GAAGlmO,KAAK,CAAC6mC,OAAO,CAAC,cAC5C,CAAA,IAAI,CAACu9L,aAAa,CAAG8B,EAAAA,CAAGlmO,KAAK,CAAC6mC,OAAO,CAAC,OAAA,CACtC,CAAA,IAAI,CAACw9L,YAAY,CAAG6B,EAAAA,CAAGlmO,KAAK,CAAC6mC,OAAO,CAAC,MAAA,CACrC,CAAA,IAAI,CAACy9L,eAAe,CAAG4B,EAAAA,CAAGlmO,KAAK,CAAC6mC,OAAO,CAAC,SAAA,CACxC,CAAA,IAAI,CAAC69L,gBAAgB,CAAGwB,EAAAA,CAAGlmO,KAAK,CAAC6mC,OAAO,CAAC,UAAA,CACzC,CAAA,IAAI,CAACi8L,uBAAuB,CAAGoD,EAAAA,CAAGlmO,KAAK,CAAC6mC,OAAO,CAAC,kBAChD,CAAA,IAAI,CAACk8L,uBAAuB,CAAGmD,EAAAA,CAAGlmO,KAAK,CAAC6mC,OAAO,CAAC,kBAChD,CAAA,IAAI,CAACq8L,oBAAoB,CAAGgD,EAAAA,CAAGlmO,KAAK,CAAC6mC,OAAO,CAAC,eAC7C,CAAA,IAAI,CAACu8L,oBAAoB,CAAG8C,EAAAA,CAAGlmO,KAAK,CAAC6mC,OAAO,CAAC,cAAA,CAC7C,CAAA,IAAI,CAACy8L,oBAAoB,CAAG4C,EAAAA,CAAGlmO,KAAK,CAAC6mC,OAAO,CAAC,cAAA,CAC7C,CAAA,IAAI,CAAC28L,oBAAoB,CAAG0C,EAAAA,CAAGlmO,KAAK,CAAC6mC,OAAO,CAAC,cAAA,CAC7C,CAAA,IAAI,CAACg+L,qBAAqB,CAAGqB,GAAGlmO,KAAK,CAAC6mC,OAAO,CAAC,eAAA,CAC9C,CAAA,IAAI,CAACi+L,wBAAwB,CAAGoB,GAAGlmO,KAAK,CAAC6mC,OAAO,CAAC,mBACjD,CAAA,IAAI,CAACm8L,oBAAoB,CAAGkD,EAAAA,CAAGlmO,KAAK,CAAC6mC,OAAO,CAAC,eAC7C,CAAA,IAAI,CAACo8L,uBAAuB,CAAGiD,EAAAA,CAAGlmO,KAAK,CAAC6mC,OAAO,CAAC,iBAAA,CAChD,CAAA,IAAI,CAACk+L,4BAA4B,CAAGmB,EAAAA,CAAGlmO,KAAK,CAAC6mC,OAAO,CAAC,sBAAA,CACrD,CAAA,IAAI,CAACo+L,uBAAuB,CAAGiB,EAAAA,CAAGlmO,KAAK,CAAC6mC,OAAO,CAAC,iBAAA,CAChD,CAAA,IAAI,CAACs+L,uBAAuB,CAAGe,GAAGlmO,KAAK,CAAC6mC,OAAO,CAAC,iBAAA,CAChD,CAAA,IAAI,CAAC49L,YAAY,CAAGyB,EAAAA,CAAGlmO,KAAK,CAAC6mC,OAAO,CAAC,MAAA,CACrC,CAAA,IAAI,CAAC09L,kBAAkB,CAAG2B,EAAAA,CAAGlmO,KAAK,CAAC6mC,OAAO,CAAC,YAAA,CAC3C,CAAA,IAAI,CAAC29L,mBAAmB,CAAG0B,EAAAA,CAAGlmO,KAAK,CAAC6mC,OAAO,CAAC,aAAA,CAC5C,CAAA,IAAI,CAACu/L,mBAAmB,CAAGF,EAAAA,CAAGlmO,KAAK,CAAC6mC,OAAO,CAAC,aAAA,CAC5C,CAAA,IAAI,CAACw/L,kBAAkB,CAAGH,EAAAA,CAAGlmO,KAAK,CAAC6mC,OAAO,CAAC,YAAA,CAC3C,CAAA,IAAI,CAACg8L,0BAA0B,CAAGqD,EAAAA,CAAGlmO,KAAK,CAAC6mC,OAAO,CAAC,oBAAA,EACpD,CAsED,CAAA,CAEA,IAAIy/L,eAAAA,CAAkB,CACrB,OACA,QAAA,CACA,KAAA,CACA,CACD,IAAIC,wBAA0B,cAAczmF,eAAAA,CAC3CN,YAAYz1I,QAAQ,CAAE,CACrB,MAAMg2I,WAAAA,CAAcD,eAAAA,CAAgBC,WAAW,CAACh2I,QAAAA,CAAS2sE,OAAO,CAAA,CAChE,IAAIp2E,IAAM,CAAC,SAAS,EAAEy/I,WAAAA,CAAY,CAAC,CAAC,CACpC,IAAK,MAAM1oJ,IAAAA,IAAQ0S,SAAU,CAC5B,GAAIA,QAAAA,CAASpF,cAAc,CAACtN,IAAAA,CAAAA,CAAO,CAClCiJ,GAAAA,EAAOyJ,QAAQ,CAAC1S,IAAAA,EACjB,CACD,CACA,OAAOiJ,GACR,CACAkmO,oBAAoBz8N,QAAQ,CAAEypD,UAAU,CAAE,CACzC,MAAMwqH,QAAAA,CAAW,IAAIr9K,GAAAA,CAAIoJ,QAAAA,CAAS2sE,OAAO,CAAA,CACzC,GAAI3sE,QAAAA,CAASqgJ,IAAI,CAAE4zB,QAAAA,CAAS9+K,GAAG,CAAC,UAAA,CAAY,IAC5C,GAAI6K,QAAAA,CAAS08N,MAAM,CAAEzoD,QAAAA,CAAS9+K,GAAG,CAAC,cAAe,EAAA,CAAA,CACjD,GAAI6K,QAAAA,CAAS60N,UAAU,CAAE5gD,QAAAA,CAAS9+K,GAAG,CAAC,aAAA,CAAe,IACrD,GAAI6K,QAAAA,CAASiwJ,WAAW,CAAEgkB,QAAAA,CAAS9+K,GAAG,CAAC,cAAA,CAAgB,EAAA,CAAA,CACvD,GAAI6K,SAAS28N,OAAO,CAAE1oD,QAAAA,CAAS9+K,GAAG,CAAC,SAAA,CAAW,EAAA,CAAA,CAC9C,GAAI6K,QAAAA,CAAS48N,IAAI,CAAG,CAAA,CAAG3oD,SAAS9+K,GAAG,CAAC,OAAQ,EAAA,CAAA,CAC5C,GAAI6K,QAAAA,CAAS68N,OAAO,CAAG,CAAA,CAAG5oD,QAAAA,CAAS9+K,GAAG,CAAC,UAAW,EAAA,CAAA,CAClD,GAAI6K,QAAAA,CAAS88N,UAAU,CAAE7oD,QAAAA,CAAS9+K,GAAG,CAAC,aAAA,CAAe,EAAA,CAAA,CACrD,GAAI6K,QAAAA,CAAS60N,UAAU,CAAE5gD,QAAAA,CAAS9+K,GAAG,CAAC,aAAA,CAAe,IACrD,GAAI6K,QAAAA,CAAS+8N,WAAW,CAAE9oD,QAAAA,CAAS9+K,GAAG,CAAC,eAAgB,EAAA,CAAA,CACvD,GAAI6K,SAAS83N,IAAI,CAAE7jD,SAAS9+K,GAAG,CAAC,MAAA,CAAQ,EAAA,CAAA,CACxC,GAAI6K,QAAAA,CAASq4N,aAAa,CAAEpkD,QAAAA,CAAS9+K,GAAG,CAAC,iBAAA,CAAmB,EAAA,CAAA,CAC5D8+K,QAAAA,CAAS9+K,GAAG,CAAC,QAAA,CAAUonO,eAAe,CAACv8N,QAAAA,CAASwU,MAAM,CAAC,CACvDi1C,CAAAA,UAAAA,CAAWuzK,mBAAmB,CAAG1sM,iBAAAA,CACjC,GAAItwB,QAAAA,CAASqgJ,IAAI,EAAIrgJ,QAAAA,CAAS08N,MAAM,CAAE,CACrCjzK,UAAAA,CAAWwzK,WAAW,CAAGpsM,mBAC1B,CACA,GAAI7wB,QAAAA,CAASu0N,MAAM,CAAE,CACpB9qK,WAAWyzK,oBAAoB,CAAG5rM,cAClCm4B,CAAAA,WAAW0zK,oBAAoB,CAAG5rM,cAClCk4B,CAAAA,WAAW2zK,oBAAoB,CAAG5rM,cAClCi4B,CAAAA,UAAAA,CAAW4zK,oBAAoB,CAAG5rM,eACnC,CACA,OAAOwiJ,QACR,CACAqpD,qBAAAA,CAAsBt9N,QAAQ,CAAE,CAC/B,MAAM+zK,QAAAA,CAAW,IAAIn9K,GAAAA,CAAIoJ,SAAS2sE,OAAO,CAAA,CACzC,GAAI3sE,QAAAA,CAAS48N,IAAI,CAAG,CAAA,CAAG7oD,QAAAA,CAAS5+K,GAAG,CAAC,OAAQ,EAAA,CAAA,CAC5C,GAAI6K,QAAAA,CAASu9N,WAAW,CAAExpD,QAAAA,CAAS5+K,GAAG,CAAC,cAAA,CAAgB,IACvD4+K,QAAAA,CAAS5+K,GAAG,CAAC,QAAA,CAAUonO,eAAe,CAACv8N,QAAAA,CAASwU,MAAM,CAAC,CAAA,CACvDu/J,SAAS5+K,GAAG,CAAC,OAAA,CAASizI,UAAU,CAACpoI,QAAAA,CAAS+qC,KAAK,CAAC,CAAA,CAChD,OAAOgpI,QACR,CACA37B,uBAAuB17G,MAAM,CAAE18B,QAAQ,CAAE,CACxC,MAAM8mE,cAAAA,CAAiBpqC,OAAOuG,QAAQ,CAAGvO,mBAAAA,CAAsBD,mBAAAA,CAC/D,MAAM2mJ,YAAAA,CAAezjC,YAAAA,CAAazsJ,GAAG,CAACwxC,OAAQoqC,cAAAA,CAAAA,CAC9C,MAAMrd,WAAa,EAAC,CACpB,MAAMwqH,QAAAA,CAAW,IAAI,CAACwoD,mBAAmB,CAACz8N,QAAAA,CAAUypD,UAAAA,CAAAA,CACpD,MAAMsqH,QAAAA,CAAW,IAAI,CAACupD,qBAAqB,CAACt9N,QAAAA,CAAAA,CAC5C,MAAMw9N,gBAAkB,CAAC,SAAS,EAAEx9N,QAAAA,CAASu0N,MAAM,CAAG,KAAA,CAAQ,KAAA;AAChE,CAAC,CACCtgD,SAAS9+K,GAAG,CAACqoO,gBAAiB,EAAA,CAAA,CAC9BzpD,QAAAA,CAAS5+K,GAAG,CAACqoO,eAAAA,CAAiB,EAAA,CAAA,CAC9B,MAAM5rO,QAAAA,CAAW,IAAIgF,GAAAA,CAAIwkL,YAAAA,CAAAA,CACzB,OAAOjpG,qBAAAA,CAAsBE,gBAAgB,CAAC31C,MAAAA,CAAQ,CACrDprC,IAAAA,CAAM,gBAAA,CACNw1E,cAAAA,CACArd,WACAid,UAAAA,CAAY00G,YAAAA,CAAalwL,GAAG,CAAC,mBAAA,CAAA,CAC7By7E,YAAAA,CAAcy0G,aAAalwL,GAAG,CAAC,mBAAA,CAAA,CAC/BuoF,eAAAA,CAAiBsgG,QAAAA,CACjB9/F,gBAAAA,CAAkBriF,SAClBmiF,cAAAA,CAAgBniF,QAAAA,CAChB2hF,aAAAA,CAAe0gG,QAChB,CAAA,CACD,CACD,EACA,IAAIwpD,QAAAA,CAAW,IAAIjB,uBAAAA,CAEnB,IAAIkB,gBAAAA,CAAmB,cAAc37C,QAAAA,CAOpChzB,gBAAAA,CAAiBjuJ,MAAM,CAAE,CACxB,KAAM,CAAE47B,MAAM,CAAEy+G,KAAK,CAAE/B,kBAAkB,CAAE4V,OAAO,CAAE,CAAGluJ,MAAAA,CACvD,KAAM,CAAEwvM,OAAO,CAAE,CAAG,IAAI,CACxB,MAAMtwM,QAAAA,CAAW,CAChB2sE,QAAS0rE,WAAAA,CAAYa,cAAc,CAAC,IAAI,CAAEp4I,MAAAA,CAAAA,CAC1Cw4I,KAAMlJ,cAAAA,CACNmkF,MAAAA,CAAQ,IAAI,CAACjkB,OAAO,CAACikB,MAAM,CAC3B//M,MAAAA,CAAQ87L,OAAAA,CAAQ35B,QAAQ,CAAG25B,OAAAA,CAAQrvB,SAAS,GAAK,IAAA,CAAO,CAAA,CAAI,CAAA,CAAI,CAAA,CAChEs8C,WAAAA,CAAa,IAAI,CAACjtB,OAAO,CAACqtB,WAAW,CACrCd,QAAS,IAAI,CAACvsB,OAAO,CAACusB,OAAO,CAC7BxE,cAAe,IAAI,CAAC/nB,OAAO,CAAC+nB,aAAa,CACzCuE,KAAM,IAAI,CAACtsB,OAAO,CAACstB,cAAc,CACjCv9E,KAAM,IAAI,CAACiwD,OAAO,CAACslB,OAAO,CAC1B8G,OAAQ1tE,OAAAA,CAAU/f,aAAAA,CAClBlrI,KAAAA,CAAOq1I,kBAAAA,EAAoB4hB,iBAAAA,EAAqB1tB,UAAAA,CAChDquC,QAASviC,kBAAAA,EAAoBvwD,WAAAA,EAAe4kD,cAAAA,CAC5C8sB,GAAAA,CAAKpf,KAAAA,EAAS,CAAC,IAAI,CAACm1D,OAAO,CAACutB,KAAK,CAAG1iF,KAAAA,CAAMof,GAAG,CAAC30J,IAAI,CAAG,MAAA,CACrDkyN,IAAAA,CAAM,IAAI,CAACxnB,OAAO,CAACwnB,IAAI,EAAI,IAAI,CAACxnB,OAAO,CAACynB,UAAU,CAClDlD,UAAAA,CAAY,IAAI,CAACvkB,OAAO,CAACukB,UAAU,CAEnC5kE,WAAAA,CAAaqgD,OAAAA,CAAQwtB,OAAO,CAAG,KAAA,CAAQ,IAAI,CAACxtB,OAAO,CAACrgD,WAAW,CAC/DllH,KAAAA,CAAO,IAAI,CAACulK,OAAO,CAACr2B,SAAS,CAC7B0iD,OAAAA,CAAS,IAAI,CAACrsB,OAAO,CAACytB,WAAW,GACjChB,WAAAA,CAAa,IAAI,CAACzsB,OAAO,CAAC0tB,QAAQ,CAClClB,UAAAA,CAAY,IAAI,CAACxsB,OAAO,CAACpxE,WAAW,GAAKmN,0BAC1C,CAAA,CACA,MAAMzyE,iBAAAA,CAAoB,IAAI27E,uBAAuBz0I,MAAAA,CAAO40I,iBAAiB,CAAE50I,MAAAA,CAAOy1C,YAAY,CAAA,CAClG,MAAMs/F,OAAAA,CAAUD,iBAAAA,CAAkBl5G,MAAAA,CAAAA,CAClCm5G,OAAAA,CAAQ6D,QAAQ,CAAC,WAAY+jF,QAAAA,CAAAA,CAC7B,OAAO5nF,OAAAA,CAAQ+D,UAAU,CAAC,UAAA,CAAY55I,SAAU45D,iBAAAA,CAAmB,IAAI,CAACuqH,MAAM,CAC/E,CAnCA,YAAYmsB,OAAO,CAAE,CACpB,KAAK,EAAA,CAFNA,gBAAAA,CAAAA,IAAAA,CAAAA,UAAU,IAAA,CAGT,CAAA,IAAI,CAACxtB,kBAAkB,CAAG,KAC1B,CAAA,IAAI,CAACwtB,OAAO,CAAGA,QAChB,CAgCD,CAAA,CAEA,IAAI2tB,aAAAA,CAAgB,CACnB,CAAC,GAAI,EAAC,CAAE,CACR,CAAC,CAAA,CAAG,GAAG,CACP,CAAC,CAAA,CAAG,CAAA,CAAE,CACN,CAAC,EAAC,CAAG,CAAA,CAAC,CACN,CACD,SAASzP,cAAAA,CAAe9xL,MAAM,CAAEroB,KAAK,CAAEC,MAAM,CAAE4pN,SAAS,CAAEnqO,MAAAA,CAASo2B,mBAAmB,CAAEg0M,QAAQ,CAAE7/J,MAAM,EACvG,IAAI8/J,SAAAA,CAAYj2M,cAAAA,CAChB,GAAIm2C,MAAAA,GAAWvqE,SAAW61B,iBAAAA,EAAqB71B,MAAAA,GAAW02B,kBAAiB,CAAA,CAAI,CAC9E2zM,UAAYh2M,cACb,CACA,MAAMsW,OAAAA,CAAU,IAAIM,OAAAA,CAAQtC,OAAQ,CACnCroB,KAAAA,CACAC,MAAAA,CACAvgB,MAAAA,CACAoqC,OAAAA,CAAS,KAAA,CACTD,QAAS,KAAA,CACTkB,SAAAA,CAAWg/L,SAAAA,CACX/+L,SAAAA,CAAW++L,SAAAA,CACX9+L,QAAAA,CAAU/a,sBACVgb,QAAAA,CAAUhb,qBAAAA,CACVjzB,IAAAA,CAAM,uBACP,CAAA,CAAA,CACA,MAAMy1C,OAASrI,OAAAA,CAAQiG,IAAI,EAAA,CAC3B,GAAI5wC,MAAAA,GAAW61B,iBAAAA,EAAqB71B,SAAW02B,kBAAAA,CAAoB,CAClE,MAAM6/C,IAAAA,CAAO,IAAIhvE,UAAAA,CAAW4iO,UAAUzvO,MAAM,CAAA,CAC5C,IAAK,IAAID,EAAAA,CAAK,CAAA,CAAGA,GAAK0vO,SAAAA,CAAUzvO,MAAM,CAAED,EAAAA,EAAAA,CAAM,CAC7C87E,IAAI,CAAC97E,EAAAA,CAAG,CAAG0vO,SAAS,CAAC1vO,EAAAA,CAAG,CAAG2vO,SAAW,IACvC,CACAD,SAAAA,CAAY5zJ,KACb,CAAA,KAAO,GAAI97C,qBAAqBz6B,MAAAA,CAAAA,CAAS,CACxCmqO,SAAAA,CAAY,IAAIvuM,WAAAA,CAAYuuM,SAAAA,CAAUp1N,MAAM,CAAEo1N,SAAAA,CAAU/vL,UAAU,CAAE+vL,SAAAA,CAAUzvO,MAAM,EACrF,CACAs4C,MAAAA,CAAO5xC,GAAG,CAAC+oO,SAAAA,CAAAA,CACXx/L,OAAAA,CAAQmH,MAAM,EAAA,CACd,OAAOnH,OACR,CACA,SAAS2/L,SAAAA,CAAUtzO,EAAE,CAAA,CACpB,OAAOgD,IAAAA,CAAK6T,GAAG,CAAC7T,IAAAA,CAAK4T,GAAG,CAAC5W,EAAAA,CAAI,GAAI,CAAA,CAClC,CACA,IAAIuzO,aAAAA,CAAgB,IAAI72N,KAAAA,CAAM,CAAC,CAAA,CAAG,CAAA,CAAG,EAAG,CAAA,CAAE,CAAA,CAC1C,IAAI82N,aAAAA,CAAgB,IAAI92N,KAAAA,CAAM,CAAC,CAAA,CAAG,CAAA,CAAG,CAAA,CAAG,CAAA,CAAE,CAAA,CAC1C,IAAI+2N,eAAiB,IAAIr2N,QAAAA,CAAS,CAAC,CAAA,CAAG,CAAA,CAAG,CAAA,CAAG,EAAE,CAAE,CAAC,CAAA,CAAG,CAAA,CAAG,CAAA,CAAG,CAAA,CAAE,CAAE,CAAC,CAAA,CAAG,CAAA,CAAG,CAAA,CAAG,CAAA,CAAE,CAAA,CAC1E,IAAIs2N,cAAAA,CAAiB,IAAIt2N,QAAAA,CAAS,CAAC,CAAA,CAAG,CAAA,CAAG,EAAG,CAAA,CAAE,CAAE,CAAC,CAAA,CAAG,CAAA,CAAG,CAAA,CAAG,EAAE,CAAE,CAAC,CAAA,CAAG,CAAA,CAAG,CAAA,CAAG,CAAA,CAAE,EAC1E,IAAIu2N,iBAAAA,CAAoB,CAAA,CACxB,IAAIC,oBAAAA,CAAuB,CAAA,CAC3B,IAAIC,wBAAAA,CAA2B,IAAI72N,YAAAA,CAAa,CAAA,CAAA,CAChD,IAAI82N,WAAAA,CAAc,IAAI7tN,IAAAA,CACtB,IAAI8tN,QAAAA,CAAW,IAAIz0N,IAAAA,CACnB,IAAI00N,KAAO,IAAI10N,IAAAA,CACf,IAAI20N,IAAAA,CAAO,IAAI30N,IAAAA,CACf,IAAI40N,iBAAAA,CACJ,IAAIC,kBAAAA,CACJ,SAASC,WAAAA,CAAYC,KAAK,CAAEC,UAAU,CAAA,CACrC,GAAIH,kBAAkB,CAACE,KAAAA,CAAM,GAAK,MAAK,EAAKF,kBAAkB,CAACE,KAAAA,CAAM,GAAK,IAAA,CAAM,CAC/EH,iBAAiB,CAACG,KAAAA,CAAM,CAAGF,kBAAkB,CAACE,KAAAA,EAAM,CACrD,KAAO,CACNH,iBAAiB,CAACG,KAAAA,CAAM,CAAGC,WAC5B,CACD,CACA,SAASC,aAAan0O,CAAC,CAAEC,CAAC,CAAEyC,EAAE,CAAA,CAC7B,MAAM0xO,MAAAA,CAASp0O,CAAAA,CAAI,GAAA,EAAO,EAAA,CAAKC,CAAAA,CAAI,GAAA,EAAO,EAAIyC,EAAAA,CAAK,GAAA,CACnD,OAAO0xO,MAAAA,EAAU,CAAA,EAAK,EAAC,CACxB,CACA,SAASC,mBAAAA,CAAoBC,IAAI,CAAEC,KAAK,CAAA,CACvC,MAAMt8N,GAAAA,CAAMq8N,IAAAA,CAAKhxO,MAAM,CAAG,EAC1B,MAAM+xJ,MAAAA,CAAS,IAAIhzJ,KAAAA,CAAM4V,GAAAA,CAAM,CAAA,CAAA,CAC/B,IAAK,IAAI5U,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAK4U,GAAAA,CAAK5U,EAAAA,EAAAA,CAAM,CAChCgyJ,MAAM,CAAChyJ,EAAAA,CAAK,CAAA,CAAE,CAAGixO,IAAI,CAACjxO,EAAAA,CAAK,CAAA,CAAE,CAC7BgyJ,MAAM,CAAChyJ,GAAK,CAAA,CAAI,CAAA,CAAE,CAAGixO,IAAI,CAACjxO,EAAAA,CAAK,EAAI,CAAA,CACnCgyJ,CAAAA,MAAM,CAAChyJ,EAAAA,CAAK,EAAI,CAAA,CAAE,CAAGixO,IAAI,CAACjxO,EAAAA,CAAK,CAAA,CAAI,EAAE,CACrCgyJ,MAAM,CAAChyJ,EAAAA,CAAK,EAAI,CAAA,CAAE,CAAG8wO,YAAAA,CAAaI,KAAK,CAAClxO,EAAAA,CAAK,EAAE,CAAEkxO,KAAK,CAAClxO,EAAAA,CAAK,CAAA,CAAI,CAAA,CAAE,CAAEkxO,KAAK,CAAClxO,EAAAA,CAAK,CAAA,CAAI,CAAA,CAAE,EACtF,CACA,OAAOgyJ,MACR,CACA,SAASm/E,eAAAA,CAAgBC,IAAI,CAAEC,EAAE,CAAA,CAChC,MAAMr/E,MAAAA,CAAS,IAAIhzJ,KAAAA,CAAMqyO,GAAGpxO,MAAM,CAAG,CAAA,CAAA,CACrC,IAAK,IAAID,EAAAA,CAAK,EAAGA,EAAAA,CAAKqxO,EAAAA,CAAGpxO,MAAM,CAAED,EAAAA,EAAAA,CAAM,CACtCgyJ,MAAM,CAAChyJ,EAAAA,CAAK,CAAA,CAAE,CAAGoxO,IAAI,CAACpxO,GAAK,CAAA,CAC3BgyJ,CAAAA,MAAM,CAAChyJ,EAAAA,CAAK,EAAI,CAAA,CAAE,CAAGoxO,IAAI,CAACpxO,EAAAA,CAAK,CAAA,CAAI,EAAE,CACrCgyJ,MAAM,CAAChyJ,EAAAA,CAAK,CAAA,CAAI,EAAE,CAAGoxO,IAAI,CAACpxO,EAAAA,CAAK,CAAA,CAAI,CAAA,CAAE,CACrCgyJ,MAAM,CAAChyJ,EAAAA,CAAK,CAAA,CAAI,CAAA,CAAE,CAAGqxO,EAAE,CAACrxO,EAAAA,EACzB,CACA,OAAOgyJ,MACR,CACA,SAASs/E,kBAAAA,CAAmBD,EAAE,CAAEE,EAAE,CAAEC,EAAE,CAAEC,EAAE,CAAEC,EAAE,EAC7C,MAAM1/E,MAAAA,CAAS,IAAIhzJ,KAAAA,CAAMqyO,EAAAA,CAAGpxO,MAAM,CAAG,CAAA,CAAA,CACrC,IAAK,IAAID,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAKqxO,GAAGpxO,MAAM,CAAED,EAAAA,EAAAA,CAAM,CACtCgyJ,MAAM,CAAChyJ,GAAK,CAAA,CAAE,CAAGqxO,EAAE,CAACrxO,EAAAA,CACpBgyJ,CAAAA,MAAM,CAAChyJ,EAAAA,CAAK,CAAA,CAAI,CAAA,CAAE,CAAGuxO,EAAE,CAACvxO,EAAAA,CAAG,CAC3BgyJ,MAAM,CAAChyJ,GAAK,CAAA,CAAI,CAAA,CAAE,CAAG,CACrBgyJ,CAAAA,MAAM,CAAChyJ,EAAAA,CAAK,CAAA,CAAI,CAAA,CAAE,CAAG8wO,YAAAA,CAAaU,EAAE,CAACxxO,EAAAA,CAAG,CAAEyxO,EAAE,CAACzxO,EAAAA,CAAG,CAAE0xO,EAAE,CAAC1xO,EAAAA,CAAG,EACzD,CACA,OAAOgyJ,MACR,CACA,SAAS2/E,kBAAAA,CAAmBN,EAAE,CAAEE,EAAE,CAAA,CACjC,MAAMv/E,MAAAA,CAAS,IAAIhzJ,KAAAA,CAAMqyO,EAAAA,CAAGpxO,MAAM,CAAG,GACrC,IAAK,IAAID,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAKqxO,EAAAA,CAAGpxO,MAAM,CAAED,EAAAA,EAAAA,CAAM,CACtCgyJ,MAAM,CAAChyJ,EAAAA,CAAK,EAAE,CAAGqxO,EAAE,CAACrxO,EAAAA,CAAG,CACvBgyJ,MAAM,CAAChyJ,EAAAA,CAAK,EAAI,CAAA,CAAE,CAAGuxO,EAAE,CAACvxO,EAAAA,CAAG,CAC3BgyJ,MAAM,CAAChyJ,GAAK,CAAA,CAAI,CAAA,CAAE,CAAG,CACrBgyJ,CAAAA,MAAM,CAAChyJ,EAAAA,CAAK,CAAA,CAAI,CAAA,CAAE,CAAG,EACtB,CACA,OAAOgyJ,MACR,CACA,SAAS4/E,iBAAAA,CAAkB9vB,OAAO,CAAA,CACjC,OAAOviN,IAAAA,CAAK6T,GAAG,CAAC0uM,OAAAA,CAAQ4kB,IAAI,CAAE5kB,QAAQ6kB,KAAK,CAAA,CAAI7kB,OAAAA,CAAQ+lB,YAAY,CAAG/lB,OAAAA,CAAQomB,QAAQ,CAEvF,SAAS2J,QAAAA,CAASC,CAAC,CAAEC,CAAC,CAAA,CACrB,MAAMzyO,CAAAA,CAAI,IAAIia,YAAAA,CAAau4N,CAAAA,CAAE7xO,MAAM,CAAA,CACnC,IAAK,IAAID,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAK8xO,EAAE7xO,MAAM,CAAED,EAAAA,EAAAA,CAAM,CACrCV,CAAC,CAACU,GAAG,CAAG8xO,CAAC,CAAC9xO,EAAAA,CAAG,CAAG+xO,CAAC,CAAC/xO,EAAAA,EACnB,CACA,OAAOV,CACR,CACA,SAAS0yO,qBAAAA,CAAsBF,CAAC,CAAEG,OAAO,CAAA,CACxC,MAAMC,MAAQD,OAAAA,CAAQhyO,MAAM,CAC5B,MAAMwI,MAAAA,CAASqpO,CAAAA,CAAE7xO,MAAM,CAAGiyO,KAAAA,CAC1B,IAAK,IAAIlyO,EAAAA,CAAK,CAAA,CAAGA,GAAKyI,MAAAA,CAAQzI,EAAAA,EAAAA,CAAM,CACnC,IAAK,IAAI0xC,EAAI,CAAA,CAAGA,CAAAA,CAAIwgM,KAAAA,CAAOxgM,CAAAA,EAAAA,CAAK,CAC/B,MAAM/0C,EAAI4C,IAAAA,CAAK6Z,GAAG,CAAC04N,CAAC,CAAC9xO,EAAAA,CAAKkyO,MAAQxgM,CAAAA,CAAE,CACpCugM,CAAAA,OAAO,CAACvgM,CAAAA,CAAE,CAAGnyC,IAAAA,CAAK6T,GAAG,CAAC6+N,OAAO,CAACvgM,CAAAA,CAAE,CAAE/0C,CAAAA,EACnC,CACD,CACD,CACA,SAASw1O,cAAAA,CAAeL,CAAC,CAAEM,IAAI,CAAA,CAC9B,MAAMF,KAAAA,CAAQE,IAAAA,CAAKnyO,MAAM,CACzB,MAAMwI,MAAAA,CAASqpO,CAAAA,CAAE7xO,MAAM,CAAGiyO,MAC1B,IAAK,IAAIlyO,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAKyI,MAAAA,CAAQzI,KAAM,CACnC,IAAK,IAAI0xC,CAAAA,CAAI,CAAA,CAAGA,CAAAA,CAAIwgM,MAAOxgM,CAAAA,EAAAA,CAAK,CAC/BogM,CAAC,CAAC9xO,EAAAA,CAAKkyO,KAAAA,CAAQxgM,EAAE,EAAI0gM,IAAI,CAAC1gM,CAAAA,CAAE,GAAK,CAAA,CAAI,EAAI0gM,IAAI,CAAC1gM,CAAAA,CAC9CogM,CAAAA,CAAC,CAAC9xO,EAAAA,CAAKkyO,KAAAA,CAAQxgM,CAAAA,CAAE,EAAI,EACrBogM,CAAAA,CAAC,CAAC9xO,EAAAA,CAAKkyO,KAAAA,CAAQxgM,CAAAA,CAAE,EAAI,GACtB,CACD,CACD,CACA,SAAS2gM,mBAAAA,CAAoBC,MAAM,CAAEC,MAAM,CAAEN,OAAO,EACnD,MAAMp0N,GAAAA,CAAMg0N,SAASU,MAAAA,CAAQD,MAAAA,CAAAA,CAC7BN,qBAAAA,CAAsBn0N,GAAAA,CAAKo0N,OAAAA,CAAAA,CAC3BE,cAAAA,CAAet0N,IAAKo0N,OAAAA,CAAAA,CACpB,OAAOp0N,GACR,CACA,IAAI20N,0BAAAA,CAA6B,IAAI/jM,WAAAA,CACrC,IAAIgkM,eAAAA,CAAkB,KAAA,CAqHrB,IAAIC,mBAAAA,EAAsB,CACzB,OAAOF,0BAAAA,CAA2B91O,GAAG,CAAC,IAAI,CAACoxC,cAAc,CAAE,IAAA,CAC1D,MAAMu5J,UAAAA,CAAa,EAAA,CACnB,MAAMsrC,YAActrC,UAAAA,CAAa,EAAA,CAAM,EAAA,CACvC,MAAMurC,IAAAA,CAAO,IAAIr5N,aAAa8tL,UAAAA,CAAaA,UAAAA,CAAa,CAAA,CAAA,CACxD,IAAK,IAAI1rL,EAAAA,CAAK,EAAGA,EAAAA,CAAK0rL,UAAAA,CAAY1rL,EAAAA,EAAAA,CAAM,CACvC,IAAK,IAAIpf,GAAK,CAAA,CAAGA,EAAAA,CAAK8qM,UAAAA,CAAY9qM,EAAAA,EAAAA,CAAM,CACvC,MAAMs2O,MAAQt2O,EAAAA,CAAK,CAAA,CAAIo2O,WAAAA,CACvB,MAAMG,KAAAA,CAAQn3N,EAAAA,CAAK,EAAIg3N,WAAAA,CACvB,MAAMtzO,EAAAA,CAAKwwO,SAAAA,CAAU,CAAA,CAAIA,SAAAA,CAAUtwO,KAAKud,IAAI,CAAC+1N,KAAAA,CAAQA,KAAAA,CAAQC,KAAAA,CAAQA,KAAAA,CAAAA,CAASzrC,YAAc,EAAA,CAAA,CAC5F,MAAMrzK,CAAAA,CAAIrY,EAAAA,CAAK0rL,UAAAA,CAAa9qM,EAC5Bq2O,CAAAA,IAAI,CAAC5+M,CAAAA,CAAI,CAAA,CAAE,CAAG,CACd4+M,CAAAA,IAAI,CAAC5+M,CAAAA,CAAI,CAAA,CAAI,CAAA,CAAE,CAAG,CAClB4+M,CAAAA,IAAI,CAAC5+M,CAAAA,CAAI,CAAA,CAAI,EAAE,CAAG,CAClB4+M,CAAAA,IAAI,CAAC5+M,CAAAA,CAAI,EAAI,CAAA,CAAE,CAAG30B,GACnB,CACD,CACA,MAAM6wC,QAAU8vL,cAAAA,CAAe,IAAI,CAAClyL,cAAc,CAAEu5J,UAAAA,CAAYA,WAAYurC,IAAAA,CAAM32M,kBAAAA,CAAoB,CAAA,CAAG,IAAA,CACzGiU,CAAAA,OAAAA,CAAQU,SAAS,CAAGhX,aACpBsW,CAAAA,OAAAA,CAAQW,SAAS,CAAGjX,cACpB,OAAOsW,OACR,CAAA,CACD,CACA6iM,oBAAAA,EAAuB,CACtB,GAAI,CAAC,IAAI,CAACv7E,IAAI,CAAE,OAChB,MAAMw7E,sBAAAA,CAAyB,IAAI,CAAC/M,YAAY,GAAKtoF,gBAAAA,CAAmB,CAAC,IAAI,CAACs1F,cAAc,CAAC99N,MAAM,CAAC,IAAI,CAAC+9N,kBAAkB,CAAA,CAAI,IAAI,CAAC3M,aAAa,GAAK,IAAI,CAAC4M,iBAAiB,CAC5K,GAAIH,sBAAAA,CAAwB,CAC3B,IAAI,CAACI,oBAAoB,GAC1B,CACA,MAAMC,OAAS,IAAI,CAAC77E,IAAI,CAAC7H,iBAAiB,EAAA,CAC1C,GAAI,IAAI,CAAC02E,UAAU,CAAE,CACpB,IAAI,CAACiN,kBAAkB,CAACv0O,IAAI,CAAC,IAAI,CAACw0O,WAAW,EAC9C,CAAA,KAAO,CACN,IAAI,CAACD,kBAAkB,CAACpkN,sBAAsB,CAAC,IAAI,CAACqkN,WAAW,CAAEF,MAAAA,EAClE,CACA,IAAI,CAACG,gBAAgB,CAAC,EAAE,CAACnjO,GAAG,CAAC,IAAI,CAACijO,kBAAkB,EACpD,IAAI,CAACE,gBAAgB,CAAC,CAAA,CAAE,CAACnjO,GAAG,CAAC,IAAI,CAACijO,kBAAkB,CAAA,CACpD,MAAMG,KAAO,IAAI,CAACC,YAAY,CAC9B,GAAID,IAAAA,EAAQ,IAAI,CAACE,kBAAkB,CAAE,CACpC,IAAI,CAACH,gBAAgB,CAAC,CAAA,CAAE,CAACz0O,IAAI,CAAC,IAAI,CAACy0O,gBAAgB,CAAC,CAAA,CAAE,CAAA,CACtD,IAAI,CAACA,gBAAgB,CAAC,CAAA,CAAE,CAACz0O,IAAI,CAAC,IAAI,CAACu0O,kBAAkB,CACrD,CAAA,IAAI,CAACK,kBAAkB,CAAGF,IAAAA,CAAO,IAAI,CAACvL,SAAQ,CAE/C,IAAI,CAAC0L,WAAW,CAAC70O,IAAI,CAAC,IAAI,CAACy0O,gBAAgB,CAAC,CAAA,CAAE,CAAA,CAC9C,GAAI,IAAI,CAACnN,UAAU,CAAE,CACpB,IAAI,CAACz5E,YAAY,CAACQ,IAAI,CAACl+H,sBAAsB,CAAC,IAAI,CAAC0kN,WAAW,CAAEP,MAAAA,CAAAA,CAChE,IAAI,CAACzmF,YAAY,CAACiF,IAAI,CAACzE,IAAI,CAACl+H,sBAAsB,CAAC,IAAI,CAAC0kN,WAAW,CAAEP,MAAAA,EACtE,CAAA,KAAO,CACN,IAAI,CAACzmF,YAAY,CAACQ,IAAI,CAACruJ,IAAI,CAAC,IAAI,CAAC60O,WAAW,CAAA,CAC5C,IAAI,CAAChnF,YAAY,CAACiF,IAAI,CAACzE,IAAI,CAACruJ,IAAI,CAAC,IAAI,CAAC60O,WAAW,EAClD,CACA,IAAI,CAAChnF,YAAY,CAACS,QAAQ,CAAG,CAAA,CAAI,IAAI,CAACT,YAAY,CAACS,SACpD,CACAwmF,gBAAAA,EAAmB,CAClB,GAAI,CAAC,IAAI,CAACr8E,IAAI,CAAE,OAChB,IAAI,CAAC87E,kBAAkB,CAACpkN,sBAAsB,CAC7C,IAAI,CAACqkN,WAAW,CAChB,IAAI,CAAClN,UAAU,CAAG7jN,IAAAA,CAAKX,QAAQ,CAAG,IAAI,CAAC21I,IAAI,CAAC7H,iBAAiB,EAAA,CAAA,CAE9D,IAAI,CAAC6jF,gBAAgB,CAAC,EAAE,CAACz0O,IAAI,CAAC,IAAI,CAACu0O,kBAAkB,EACrD,IAAI,CAACE,gBAAgB,CAAC,CAAA,CAAE,CAACz0O,IAAI,CAAC,IAAI,CAACu0O,kBAAkB,CAAA,CACrD,IAAI,CAACM,WAAW,CAAC70O,IAAI,CAAC,IAAI,CAACy0O,gBAAgB,CAAC,CAAA,CAAE,CAC9C,CAAA,IAAI,CAACE,YAAY,CAAG,CACpB,CAAA,IAAI,CAACC,kBAAkB,CAAG,EAC3B,CACAP,oBAAAA,EAAuB,CACtB,IAAI,CAACF,kBAAkB,CAACn0O,IAAI,CAAC,IAAI,CAACk0O,cAAc,CAChD,CAAA,IAAI,CAACE,iBAAiB,CAAG,IAAI,CAAC5M,aAAa,CAC3C,IAAIp2M,IAAAA,CAAOnG,MAAAA,CAAOiE,SAAS,CAC3B,IAAImC,IAAAA,CAAOpG,MAAAA,CAAOiE,SAAS,CAC3B,IAAIoC,IAAAA,CAAOrG,MAAAA,CAAOiE,SAAS,CAC3B,IAAIqC,IAAAA,CAAO,CAACtG,MAAAA,CAAOiE,SAAS,CAC5B,IAAIsC,IAAAA,CAAO,CAACvG,OAAOiE,SAAS,CAC5B,IAAIuC,IAAAA,CAAO,CAACxG,MAAAA,CAAOiE,SAAS,CAC5B,IAAI6lN,IAAAA,CAAO,CAAA,CACX,IAAIC,QAAAA,CAAW,EACf,MAAMC,UAAAA,CAAa,IAAI,CAAC9L,QAAQ,CAAG,IAAI,CAAC5uN,SAAS,CACjD,MAAM26N,KAAAA,CAAQ,CAAC,IAAI,CAAC9K,SAAS,CAAE,IAAI,CAACC,UAAU,CAAC,CAC/C,MAAM8K,KAAAA,CAAQ,CAAC,IAAI,CAACjL,cAAc,CAAE,IAAI,CAACC,eAAe,CAAC,CACzD,MAAMiL,MAAAA,CAAS,CAAC,CAAA,CAAG,CAAA,CAAE,CACrB,MAAMC,OAAS,CAAC,CAAA,CAAG,CAAA,CAAE,CACrB,MAAMC,MAAAA,CAAS,CAAC,CAAA,CAAG,CAAA,CAAE,CACrB,MAAMC,MAAAA,CAAS,CAAC,EAAG,CAAA,CAAE,CACrB,MAAMC,MAAAA,CAAS,CAAC,CAAA,CAAG,EAAE,CACrB,IAAIh4O,EAAAA,CAAIof,EAAAA,CAAIkB,EAAAA,CACZ,IAAK,IAAI7c,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAK,IAAI,CAACsZ,SAAS,CAAG,CAAA,CAAGtZ,EAAAA,EAAAA,CAAM,CAC/C,MAAMqF,KAAAA,CAAQ9F,IAAAA,CAAK4T,GAAG,CAACnT,EAAAA,CAAI,IAAI,CAACsZ,SAAS,CAAG,GAC5C,IAAK,IAAIo4B,CAAAA,CAAI,CAAA,CAAGA,CAAAA,CAAI,CAAA,CAAGA,IAAK,CAC3Bn1C,EAAAA,CAAK23O,KAAK,CAACxiM,CAAAA,CAAE,CAACrsC,MAAQ,CAAA,CAAI,CAAA,CAAE,CAAG2uO,UAAAA,CAAaG,MAAM,CAACziM,EAAE,CACrD/1B,EAAAA,CAAKu4N,KAAK,CAACxiM,CAAAA,CAAE,CAACrsC,MAAQ,CAAA,CAAI,CAAA,CAAE,CAAG2uO,UAAAA,CAAaI,MAAM,CAAC1iM,EAAE,CACrD70B,EAAAA,CAAKq3N,KAAK,CAACxiM,CAAAA,CAAE,CAACrsC,KAAAA,CAAQ,CAAA,CAAI,CAAA,CAAE,CAAG2uO,UAAAA,CAAaK,MAAM,CAAC3iM,CAAAA,CAAE,CACrDvhB,IAAAA,CAAO5wB,IAAAA,CAAK4T,GAAG,CAAC5W,GAAI4zB,IAAAA,CAAAA,CACpBC,IAAAA,CAAO7wB,IAAAA,CAAK4T,GAAG,CAACwI,EAAAA,CAAIyU,MACpBC,IAAAA,CAAO9wB,IAAAA,CAAK4T,GAAG,CAAC0J,EAAAA,CAAIwT,IAAAA,CAAAA,CACpBC,KAAO/wB,IAAAA,CAAK6T,GAAG,CAAC7W,EAAAA,CAAI+zB,IAAAA,CAAAA,CACpBC,IAAAA,CAAOhxB,KAAK6T,GAAG,CAACuI,EAAAA,CAAI4U,IAAAA,CAAAA,CACpBC,IAAAA,CAAOjxB,IAAAA,CAAK6T,GAAG,CAACyJ,EAAAA,CAAI2T,IAAAA,CACpB2jN,CAAAA,MAAM,CAACziM,EAAE,CAAGn1C,EACZ63O,CAAAA,MAAM,CAAC1iM,CAAAA,CAAE,CAAG/1B,EACZ04N,CAAAA,MAAM,CAAC3iM,CAAAA,CAAE,CAAG70B,GACb,CACA,IAAK,IAAI60B,CAAAA,CAAI,CAAA,CAAGA,CAAAA,CAAI,EAAGA,CAAAA,EAAAA,CAAK,CAC3B6iM,MAAM,CAAC7iM,CAAAA,CAAE,EAAIsiM,WAAaz0O,IAAAA,CAAKud,IAAI,CAClCm3N,KAAK,CAACviM,CAAAA,CAAE,CAACrsC,KAAAA,CAAQ,CAAA,CAAI,CAAA,CAAE,CAAG4uO,KAAK,CAACviM,EAAE,CAACrsC,KAAAA,CAAQ,CAAA,CAAI,CAAA,CAAE,CAAG4uO,KAAK,CAACviM,CAAAA,CAAE,CAACrsC,KAAAA,CAAQ,CAAA,CAAI,CAAA,CAAE,CAAG4uO,KAAK,CAACviM,CAAAA,CAAE,CAACrsC,KAAAA,CAAQ,CAAA,CAAI,EAAE,CAAG4uO,KAAK,CAACviM,CAAAA,CAAE,CAACrsC,KAAAA,CAAQ,EAAI,CAAA,CAAE,CAAG4uO,KAAK,CAACviM,CAAAA,CAAE,CAACrsC,MAAQ,CAAA,CAAI,CAAA,CAAC,EAE1J,CACAivO,MAAM,CAAC,EAAE,EAAI,IAAI,CAACvL,YAAY,CAAC1jO,KAAAA,CAAM,CAAG2uO,UACxCM,CAAAA,MAAM,CAAC,CAAA,CAAE,EAAI,IAAI,CAACtL,aAAa,CAAC3jO,KAAAA,CAAM,CAAG2uO,UAAAA,CACzCF,KAAOv0O,IAAAA,CAAK6T,GAAG,CAAC0gO,IAAAA,CAAMv0O,IAAAA,CAAK6T,GAAG,CAAC7T,IAAAA,CAAK6Z,GAAG,CAACk7N,MAAM,CAAC,CAAA,CAAE,EAAG/0O,IAAAA,CAAK6Z,GAAG,CAACk7N,MAAM,CAAC,CAAA,CAAE,IACtEP,QAAAA,CAAWx0O,IAAAA,CAAK6T,GAAG,CAAC2gO,QAAAA,CAAUx0O,IAAAA,CAAK6Z,GAAG,CAAC,IAAI,CAACuvN,MAAM,CAACtjO,KAAAA,CAAM,EAAG9F,IAAAA,CAAK6Z,GAAG,CAAC,IAAI,CAACwvN,OAAO,CAACvjO,KAAAA,CAAM,CAAA,EACzF,CACA,GAAI,IAAI,CAAC4gO,YAAY,GAAKtoF,gBAAAA,CAAkB,CAC3CphJ,EAAAA,CAAK,IAAI,CAAC02O,cAAc,CAACl3N,CAAC,CAAG,EAAA,CAC7BJ,EAAAA,CAAK,IAAI,CAACs3N,cAAc,CAACj3N,CAAC,CAAG,EAAA,CAC7Ba,GAAK,IAAI,CAACo2N,cAAc,CAACh3N,CAAC,CAAG,GAC9B,CAAA,KAAO,CACN1f,EAAAA,CAAK,IAAI,CAACgqO,aAAa,CACvB5qN,EAAAA,CAAK,IAAI,CAAC4qN,aAAa,CACvB1pN,EAAAA,CAAK,IAAI,CAAC0pN,cAAa,CAExB,MAAM7mN,CAAAA,CAAIngB,KAAK6T,GAAG,CAACmhO,MAAM,CAAC,CAAA,CAAE,CAAEA,MAAM,CAAC,CAAA,CAAE,CACvChE,CAAAA,IAAAA,CAAKx0N,CAAC,CAAGoU,IAAAA,CAAO4jN,QAAAA,CAAWx3O,EAAAA,CAAKu3O,IAAAA,CAAOp0N,CACvC6wN,CAAAA,KAAKv0N,CAAC,CAAGoU,IAAAA,CAAO2jN,QAAAA,CAAWp4N,EAAAA,CAAKm4N,IAAAA,CAAOp0N,CACvC6wN,CAAAA,IAAAA,CAAKt0N,CAAC,CAAGoU,IAAAA,CAAO0jN,QAAAA,CAAWl3N,GAAKi3N,IAAAA,CAAOp0N,CACvC8wN,CAAAA,IAAAA,CAAKz0N,CAAC,CAAGuU,KAAOyjN,QAAAA,CAAWx3O,EAAAA,CAAKu3O,IAAAA,CAAOp0N,CACvC8wN,CAAAA,IAAAA,CAAKx0N,CAAC,CAAGuU,IAAAA,CAAOwjN,QAAAA,CAAWp4N,EAAAA,CAAKm4N,IAAAA,CAAOp0N,CACvC8wN,CAAAA,IAAAA,CAAKv0N,CAAC,CAAGuU,IAAAA,CAAOujN,QAAAA,CAAWl3N,EAAAA,CAAKi3N,KAAOp0N,CAAAA,CACvC,IAAI,CAAC6zN,WAAW,CAAC3kN,SAAS,CAAC2hN,IAAAA,CAAMC,IAAAA,EAClC,CACAgE,OAAAA,EAAU,CACT,MAAM7G,GAAK,IAAI,CAAC7/L,cAAc,CAC9B,GAAI,IAAI,CAAC2mM,QAAQ,GAAK,IAAA,CAAM,IAAI,CAACA,QAAQ,CAAG,IAAI,CAAC/B,mBAAmB,CACpE,IAAI,CAACgC,WAAW,CAAG,IAAI,CAACzO,YAAY,GAAKtoF,gBAAAA,CAAmB,IAAI,CAACs1F,cAAc,CAAG,IAAI,CAAC1M,aACvF,CAAA,IAAI,CAACR,MAAM,CAAG,IAAI,CAACA,MAAM,EAAI,IAAI,CAAC91N,IAAI,CAAGotI,iBAAAA,EACzCswF,EAAAA,CAAGgH,iBAAiB,CACpB,MAAMC,WAAa,IAAI,CAACC,iBAAiB,EAAA,CACzC3E,iBAAAA,CAAoB,IAAI,CAACnK,MAAM,CAAG,CAAA,CAAI,CACtC,CAAA,IAAI,CAACqB,OAAO,CAAG,CAAC,CAAC,IAAI,CAACv1E,IAAI,CAC1B,IAAI,CAACm0E,eAAe,CAAGlzN,KAAKiB,cAAc,CAAC,IAAI,CAAC8zN,YAAY,CAAA,CAC5D,IAAI,CAACiN,aAAa,EAAA,CAClB,IAAI,CAAC1B,oBAAoB,GACzB,IAAI,CAACS,gBAAgB,EAAA,CACrB,GAAI,IAAI,CAACr8E,IAAI,CAAE,CACd,IAAI,CAACo8E,WAAW,CAAC1kN,sBAAsB,CACtC,IAAI,CAACqkN,WAAW,CAChB,IAAI,CAAClN,UAAU,CAAG7jN,IAAAA,CAAKX,QAAQ,CAAG,IAAI,CAAC21I,IAAI,CAAC7H,iBAAiB,EAAA,CAAA,CAE9D,IAAI,CAAC6jF,gBAAgB,CAAC,CAAA,CAAE,CAACz0O,IAAI,CAAC,IAAI,CAAC60O,WAAW,CAAA,CAC9C,IAAI,CAACJ,gBAAgB,CAAC,CAAA,CAAE,CAACz0O,IAAI,CAAC,IAAI,CAAC60O,WAAW,EAC/C,CACA,IAAI,CAAC7M,QAAQ,CAAG,IAAI/nO,KAAAA,CAAM,IAAI,CAAC6oO,YAAY,CAAA,CAC3C,IAAK,IAAIkN,KAAAA,CAAQ,CAAA,CAAGA,KAAAA,CAAQ,IAAI,CAAClN,YAAY,CAAEkN,KAAAA,EAAAA,CAAS,IAAI,CAAChO,QAAQ,CAACgO,MAAM,CAAG,CAAC,CAAA,CAAG,CAAA,CAAE,CACrF,IAAI,CAACvL,gBAAgB,CAAG,IAAIjwN,YAAAA,CAAa,IAAI,CAACsuN,YAAY,CAAA,CAC1D,IAAI,CAACmN,WAAW,CAAC5K,SAAS,EAC1B,CAAA,IAAI,CAAC9E,WAAW,CAAG,IAAI/rN,YAAAA,CAAa,IAAI,CAACysN,eAAe,CAAGkK,iBAAAA,CAAoBC,sBAC/E,MAAM1K,UAAAA,CAAa,IAAI,CAACjuE,IAAI,GAAK,MAAQ,IAAI,CAAC6uE,UAAU,CAAGxqN,IAAAA,CAAKmC,IAAI,CAAG,IAAI,CAACw5I,IAAI,CAACtnB,WAAW,GAC5F,GAAI,IAAI,CAAC+1F,YAAY,GAAKtoF,gBAAAA,CAAkB,CAC3C,GAAI,IAAI,CAAC6Z,IAAI,GAAK,IAAA,EAAQ,IAAI,CAAC6uE,UAAU,CAAE,CAC1CgK,WAAAA,CAAYxpN,MAAM,CAAChL,IAAAA,CAAKmC,IAAI,CAAE+J,IAAAA,CAAKlG,QAAQ,CAAE,IAAI,CAAC6yN,WAAW,EAC9D,CAAA,KAAO,CACNrE,WAAAA,CAAYxpN,MAAM,CAAChL,IAAAA,CAAKmC,IAAI,CAAE,IAAI,CAACw5I,IAAI,CAACqD,WAAW,EAAA,CAAIy1E,QAAAA,CAASvxO,IAAI,CAAC,IAAI,CAAC21O,WAAW,CAAA,CAAEp3N,GAAG,CAAC,IAAI,CAACk6I,IAAI,CAAC8B,UAAU,CAAA,EAChH,CACA82E,wBAAwB,CAAC,CAAA,CAAE,CAAG,IAAI,CAAC6C,cAAc,CAACl3N,CAAC,GAAK,CAAA,CAAI,IAAI,CAACk5N,mBAAmB,CAACl5N,CAAC,CAAG,IAAI,CAACk3N,cAAc,CAACl3N,CAAC,CAAG,CACjHq0N,CAAAA,wBAAwB,CAAC,CAAA,CAAE,CAAG,IAAI,CAAC6C,cAAc,CAACj3N,CAAC,GAAK,CAAA,CAAI,IAAI,CAACi5N,mBAAmB,CAACj5N,CAAC,CAAG,IAAI,CAACi3N,cAAc,CAACj3N,CAAC,CAAG,CACjHo0N,CAAAA,wBAAwB,CAAC,CAAA,CAAE,CAAG,IAAI,CAAC6C,cAAc,CAACh3N,CAAC,GAAK,CAAA,CAAI,IAAI,CAACg5N,mBAAmB,CAACh5N,CAAC,CAAG,IAAI,CAACg3N,cAAc,CAACh3N,CAAC,CAAG,EAClH,CACA,IAAK,IAAIjc,GAAK,CAAA,CAAGA,EAAAA,CAAK,IAAI,CAAC6nO,YAAY,CAAE7nO,KAAM,CAC9C,IAAI,CAACk1O,WAAW,CAAC7P,iBAAiB,CAAC,IAAI,CAACC,WAAW,CAAE+K,WAAAA,CAAaD,wBAAAA,CAA0B3K,WAAYzlO,EAAAA,CAAAA,CACxG,GAAI,IAAI,CAAC+lO,MAAM,CAAE,IAAI,CAACT,WAAW,CAACtlO,EAAAA,CAAKmwO,oBAAAA,CAAuB,CAAA,CAAI,IAAI,CAACnK,eAAe,CAAG,CAAA,CAAImK,oBAAAA,CAAqB,CAAG,EACtH,CACA,IAAI,CAAChD,gBAAgB,CAAG,IAAI5zN,aAAa,IAAI,CAACysN,eAAe,CAAGkK,iBAAAA,CAAoBC,oBAAAA,CAAAA,CACpF,IAAK,IAAInwO,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAK,IAAI,CAACmtO,gBAAgB,CAACltO,MAAM,CAAED,EAAAA,EAAAA,CAAM,CACzD,IAAI,CAACmtO,gBAAgB,CAACntO,EAAAA,CAAG,CAAG,IAAI,CAACslO,WAAW,CAACtlO,EAAAA,EAAG,CAEjD,GAAI,CAAC,IAAI,CAAC+lO,MAAM,CAAE,CACjB,MAAMoP,cAAAA,CAAiBxH,GAAGrlL,sBAAsB,CAAG3sB,mBAAAA,CAAsBmC,mBACzE,CAAA,IAAI,CAACmvM,aAAa,CAAGjN,cAAAA,CAAe2N,EAAAA,CAAI,IAAI,CAAC3H,eAAe,CAAEkK,iBAAAA,CAAmB,IAAI,CAAC5K,WAAW,CAAE6P,eACnG,CAAA,IAAI,CAACnI,cAAc,CAAGhN,cAAAA,CAAe2N,GAAI,IAAI,CAAC3H,eAAe,CAAEkK,iBAAAA,CAAmB,IAAI,CAAC5K,WAAW,CAAE6P,cAAAA,CACpG,CAAA,IAAI,CAAChI,gBAAgB,CAAGnN,cAAAA,CAAe2N,EAAAA,CAAI,IAAI,CAAC3H,eAAe,CAAEkK,iBAAAA,CAAmB,IAAI,CAAC/C,gBAAgB,CAAEgI,cAAAA,CAC3G,CAAA,IAAI,CAAC7H,eAAe,CAAG,IAAI54K,YAAAA,CAAa,CACvCM,WAAAA,CAAa,IAAI,CAACi4K,aAAa,CAC/B/9L,KAAAA,CAAO,KACR,CAAA,CACA,CAAA,IAAI,CAACq+L,gBAAgB,CAAG,IAAI74K,YAAAA,CAAa,CACxCM,WAAAA,CAAa,IAAI,CAACg4K,cAAc,CAChC99L,KAAAA,CAAO,KACR,CAAA,CACA,CAAA,IAAI,CAAC69L,OAAO,CAAG,MAChB,CACA,MAAM5uJ,OAAAA,CAA0B,IAAI/1E,GAAAA,CACpC,GAAI,IAAI,CAACi+N,UAAU,CAAEloJ,QAAQx3E,GAAG,CAAC,aAAA,CAAe,EAAA,CAAA,CAChD,GAAI,IAAI,CAACs/N,YAAY,GAAKtoF,gBAAAA,CAAkBx/D,OAAAA,CAAQx3E,GAAG,CAAC,mBAAoB,EAAA,CAAA,CAC5E,MAAMyuO,cAAAA,CAAiB,CAAC,MAAM,EAAE,IAAI,CAACnP,YAAY,CAAC,OAAO,EAAE,IAAI,CAACI,UAAU,CAAC,CAAC,CAC5E,MAAMgP,aAAAA,CAAgB,CACrBp6K,UAAAA,CAAY,CAAE4nB,eAAAA,CAAiB/gD,iBAAkB,CAAA,CACjDqoH,WAAAA,CAAa,mBACbE,aAAAA,CAAe,uBAAA,CACfplE,eAAAA,CAAiB9G,OAAAA,CACjB6F,mBAAAA,CAAqB2pJ,EAAAA,CAAGrlL,sBAAsB,CAAG,MAAA,CAAS,OAC3D,CACA+sL,CAAAA,aAAAA,CAAcprF,UAAU,CAAG,CAAC,sBAAsB,EAAEmrF,cAAAA,CAAe,CAAC,CACpEj3J,OAAAA,CAAQx3E,GAAG,CAAC,SAAA,CAAW,EAAA,CACvB,CAAA,IAAI,CAAC6mO,2BAA2B,CAAG3jF,WAAAA,CAAY9mD,YAAY,CAAC4qI,GAAI0H,aAAAA,CAAAA,CAChEl3J,OAAAA,CAAQx1E,MAAM,CAAC,SAAA,CACf0sO,CAAAA,cAAcprF,UAAU,CAAG,CAAC,wBAAwB,EAAEmrF,cAAAA,CAAe,CAAC,CACtEj3J,OAAAA,CAAQx3E,GAAG,CAAC,YAAA,CAAc,EAAA,CAC1B,CAAA,IAAI,CAAC8mO,6BAA6B,CAAG5jF,WAAAA,CAAY9mD,YAAY,CAAC4qI,EAAAA,CAAI0H,aAAAA,CAAAA,CAClEl3J,OAAAA,CAAQx1E,MAAM,CAAC,aACf0sO,CAAAA,aAAAA,CAAcprF,UAAU,CAAG,CAAC,mBAAmB,EAAEmrF,cAAAA,CAAe,CAAC,CACjEj3J,OAAAA,CAAQx3E,GAAG,CAAC,UAAW,EAAA,CACvB,CAAA,IAAI,CAAC+mO,0BAA0B,CAAG7jF,YAAY9mD,YAAY,CAAC4qI,EAAAA,CAAI0H,aAAAA,CAC/D,CAAA,IAAI,CAACtN,gBAAgB,CAAG,IAAI,CAACX,OAAO,CAAG,IAAI,CAACv1E,IAAI,CAACjkG,YAAY,CAACnL,WAAW,CAAG,CAC5E,CAAA,IAAI,CAAC6yL,kBAAkB,CAAG,IAAI,CAAClO,OAAO,CAAG,IAAI,CAACv1E,IAAI,CAACzxG,WAAW,CAAC,CAAA,CAAE,CAACM,UAAU,CAAG,EAC/E,IAAI,CAAC60L,SAAS,CAAC,IAAI,CAAC1N,YAAY,CAAA,CAChC,MAAMh2E,IAAAA,CAAO,IAAIJ,IAAAA,CAAKk8E,EAAAA,CACtB97E,CAAAA,IAAAA,CAAKjkG,YAAY,CAAG,IAAI,CAACA,YAAY,CACrCikG,IAAAA,CAAKzxG,WAAW,CAAC,CAAA,CAAE,CAAG,IAAI,CAACA,WAAW,CACtCyxG,IAAAA,CAAK7yF,SAAS,CAAC,CAAA,CAAE,CAAC5nD,IAAI,CAAGuqB,mBACzBkwH,CAAAA,IAAAA,CAAK7yF,SAAS,CAAC,CAAA,CAAE,CAAC4pB,IAAI,CAAG,CACzBipE,CAAAA,IAAAA,CAAK7yF,SAAS,CAAC,CAAA,CAAE,CAACnvB,KAAK,CAAG,IAAI,CAACg4L,YAAY,CAAG,IAAI,CAACyN,kBAAkB,CACrEzjF,IAAAA,CAAK7yF,SAAS,CAAC,CAAA,CAAE,CAAC8pB,OAAO,CAAG,IAC5B,CAAA,IAAI,CAAC6hE,QAAQ,CAAG,IAAI,CAAC6qF,eAAe,GACpC,IAAI,CAACC,aAAa,EAClB,CAAA,IAAI,CAAC7oF,YAAY,CAAG,IAAI8R,YAAAA,CAAa7M,IAAAA,CAAM,IAAI,CAAClH,QAAQ,CAAE,IAAI,CAAC6M,IAAI,CACnE,CAAA,IAAI,CAAC5K,YAAY,CAAC0X,IAAI,CAAG,MACzB,IAAI,CAAC1X,YAAY,CAAC3tG,SAAS,EAC3B,CAAA,IAAI,CAAC2tG,YAAY,CAAC+V,IAAI,CAAG,KACzB,GAAI,IAAI,CAAC0jE,UAAU,CAAE,CACpB,IAAI,CAACz5E,YAAY,CAACQ,IAAI,CAACl+H,sBAAsB,CAAC,IAAI,CAAC0kN,WAAW,CAAE,IAAI,CAACp8E,IAAI,CAAC7H,iBAAiB,IAC5F,CAAA,KAAO,CACN,IAAI,CAAC/C,YAAY,CAACQ,IAAI,CAACruJ,IAAI,CAAC,IAAI,CAAC60O,WAAW,EAC7C,CACA,IAAI,CAAChnF,YAAY,CAACqS,WAAW,CAAG,KAChC,CAAA,IAAI,CAACrS,YAAY,CAAC0V,OAAO,CAAGsyE,UAAAA,CAC5B,IAAI,CAACc,oBAAoB,EAAA,CACzB,IAAI,CAACC,SAAS,GACd,IAAI,CAACC,OAAO,CAAC,CAAA,CAAG,KAAA,CAAA,CAChB,GAAI,IAAI,CAACC,OAAO,CAAE,IAAI,CAACC,OAAO,CAAC,IAAI,CAAC5N,QAAQ,CAAA,CAC5C,IAAI,CAAC6N,WAAW,GACjB,CACAxG,WAAAA,EAAc,CACb,OAAO,IAAI,CAACyG,aAAa,EAAI,CAAA,GAAM,IAAI,CAACC,UAAU,CAAG,CAAA,EAAK,IAAI,CAACC,UAAU,CAAG,CAAA,CAAA,GAAO,IAAI,CAACzB,QAAQ,EAAI,IAAI,CAACA,QAAQ,GAAK,IAAI,CAAC/B,mBAAmB,EAAI,IAAI,CAACjgD,SAAS,CACjK,CACAqiD,aAAAA,EAAgB,CACf,MAAMx7N,SAAAA,CAAY,IAAI,CAACA,SAAS,CAChC,MAAMq0N,GAAK,IAAI,CAAC7/L,cAAc,CAC9B,IAAI,CAACm7L,cAAc,CAAG,IAAI,CAACkN,kBAAkB,CAAC98N,QAAQ,CAACC,SAAAA,CACvD,CAAA,IAAI,CAAC6vN,SAAS,CAAG,IAAI,CAACiN,aAAa,CAAC/8N,QAAQ,CAACC,SAAAA,CAC7C,CAAA,IAAI,CAAC+8N,MAAM,CAAG,IAAI,CAACC,UAAU,CAAC78N,eAAe,CAACH,SAAAA,CAAW,CAAA,CAAG,CAAA,CAC5D,CAAA,IAAI,CAACmvN,SAAS,CAAG,IAAI,CAAC8N,kBAAkB,CAACl9N,QAAQ,CAACC,SAAAA,CAClD,CAAA,IAAI,CAACqvN,MAAM,CAAG,IAAI,CAAC6N,UAAU,CAACn9N,QAAQ,CAACC,UACvC,CAAA,IAAI,CAACuvN,MAAM,CAAG,IAAI,CAAC4N,UAAU,CAACp9N,QAAQ,CAACC,SAAAA,CACvC,CAAA,IAAI,CAACyvN,YAAY,CAAG,IAAI,CAAC2N,gBAAgB,CAACr9N,QAAQ,CAACC,SAAAA,CACnD,CAAA,IAAI,CAAC4vN,eAAe,CAAG,IAAI,CAACyN,mBAAmB,CAACt9N,QAAQ,CAACC,SAAAA,CACzD,CAAA,IAAI,CAAC8vN,UAAU,CAAG,IAAI,CAACwN,cAAc,CAACv9N,QAAQ,CAACC,UAC/C,CAAA,IAAI,CAACu9N,OAAO,CAAG,IAAI,CAACC,WAAW,CAACr9N,eAAe,CAACH,SAAAA,CAAW,CAAA,CAAG,EAC9D,CAAA,IAAI,CAACovN,UAAU,CAAG,IAAI,CAACqO,mBAAmB,CAAC19N,QAAQ,CAACC,SAAAA,CACpD,CAAA,IAAI,CAACsvN,OAAO,CAAG,IAAI,CAACoO,WAAW,CAAC39N,QAAQ,CAACC,SAAAA,CACzC,CAAA,IAAI,CAACwvN,OAAO,CAAG,IAAI,CAACmO,WAAW,CAAC59N,QAAQ,CAACC,SAAAA,CACzC,CAAA,IAAI,CAAC0vN,aAAa,CAAG,IAAI,CAACkO,iBAAiB,CAAC79N,QAAQ,CAACC,SAAAA,CAAAA,CACrD,IAAK,IAAItZ,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAKsZ,SAAAA,CAAWtZ,EAAAA,EAAAA,CAAM,CACtC,IAAI,CAACyoO,SAAS,CAACzoO,EAAAA,CAAG,EAAI8S,KAAKC,UAC3B,CAAA,IAAI,CAAC21N,UAAU,CAAC1oO,EAAAA,CAAG,EAAI8S,IAAAA,CAAKC,WAAU,CAEvC,IAAI,CAAC05N,iBAAiB,CAAG,IAAIlzN,YAAAA,CAAa,CAAA,CAC1C,CAAA,IAAI,CAACozN,YAAY,CAAG,IAAIpzN,YAAAA,CAAa,EACrC,CAAA,IAAI,CAAC49N,SAAS,CAAG,IAAI59N,YAAAA,CAAa,CAAA,CAClC,CAAA,IAAI,CAACszN,YAAY,CAAG,CAAC,CAAA,CAAE,CACvB,IAAI,CAACuK,SAAS,CAAG,CAAC,CAAA,CAClB,CAAA,IAAI,CAACC,SAAS,CAAG,CAAC,CAAA,CAAE,CACpB,IAAI,CAACC,eAAe,CAAG,CAAC,CAAA,CACxB,CAAA,IAAI,CAACC,iBAAiB,CAAGlF,mBAAAA,CAAoB,IAAI,CAACpJ,cAAc,CAAE,IAAI,CAACC,eAAe,CAAE,IAAI,CAACuD,iBAAiB,CAC9G,CAAA,IAAI,CAAC+K,YAAY,CAAGnF,mBAAAA,CAAoB,IAAI,CAAClJ,SAAS,CAAE,IAAI,CAACC,UAAU,CAAE,IAAI,CAACuD,YAAY,CAC1F,CAAA,IAAI,CAAC8K,SAAS,CAAGpF,mBAAAA,CAAoB,IAAI,CAACgE,MAAM,CAAE,IAAI,CAACQ,OAAO,CAAE,IAAI,CAACM,SAAS,CAC9E,CAAA,IAAI,CAACO,YAAY,CAAGrF,mBAAAA,CAAoB,IAAI,CAAC5J,SAAS,CAAE,IAAI,CAACC,UAAU,CAAE,IAAI,CAACmE,YAAY,CAC1F,CAAA,IAAI,CAAC8K,SAAS,CAAGtF,oBAAoB,IAAI,CAAC1J,MAAM,CAAE,IAAI,CAACC,OAAO,CAAE,IAAI,CAACwO,SAAS,CAC9E,CAAA,IAAI,CAACQ,SAAS,CAAGvF,mBAAAA,CAAoB,IAAI,CAACxJ,MAAM,CAAE,IAAI,CAACC,OAAO,CAAE,IAAI,CAACuO,SAAS,CAC9E,CAAA,IAAI,CAACQ,eAAe,CAAGxF,mBAAAA,CAAoB,IAAI,CAACtJ,YAAY,CAAE,IAAI,CAACC,aAAa,CAAE,IAAI,CAACsO,eAAe,CAAA,CACtG,GAAI,CAAC,IAAI,CAACvR,MAAM,CAAE,CACjB,IAAI,CAAC6E,YAAY,CAAG5K,cAAAA,CAAe2N,EAAAA,CAAIr0N,SAAAA,CAAW,EAAG03N,mBAAAA,CAAoB,IAAI,CAAC/H,cAAc,CAAE,IAAI,CAACsO,iBAAiB,CAAA,CACpH,CAAA,IAAI,CAACzM,YAAY,CAAG9K,cAAAA,CAAe2N,EAAAA,CAAIr0N,SAAAA,CAAW,CAAA,CAAG03N,mBAAAA,CAAoB,IAAI,CAAC7H,SAAS,CAAE,IAAI,CAACqO,YAAY,CAAA,CAC1G,CAAA,IAAI,CAACxM,YAAY,CAAGhL,cAAAA,CAAe2N,EAAAA,CAAIr0N,UAAW,CAAA,CAAGg4N,kBAAAA,CAAmB,IAAI,CAAC7I,SAAS,CAAE,IAAI,CAACE,MAAM,CAAE,IAAI,CAACgP,SAAS,CAAE,IAAI,CAACD,YAAY,CAAE,IAAI,CAACE,SAAS,CAAA,CACtJ,CAAA,IAAI,CAAC1M,YAAY,CAAGlL,cAAAA,CAAe2N,EAAAA,CAAIr0N,SAAAA,CAAW,CAAA,CAAGq4N,kBAAAA,CAAmB,IAAI,CAAC5I,YAAY,CAAE,IAAI,CAAC8O,eAAe,CAAA,EAChH,CACA,IAAI,CAACC,UAAU,CAAG9X,cAAAA,CAAe2N,EAAAA,CAAIr0N,UAAW,CAAA,CAAG63N,eAAAA,CAAgB,IAAI,CAACkF,MAAM,CAAE,IAAI,CAACxN,MAAM,CAAA,CAAG5sM,kBAAAA,CAAoB,CAAA,CAAG,IAAA,EACtH,CACAy5M,oBAAAA,EAAuB,CACtB,GAAI,IAAI,CAACjB,QAAQ,CAAE,CAClB,IAAI,CAAC9pF,QAAQ,CAACl6B,YAAY,CAAC,UAAA,CAAY,IAAI,CAACgkH,QAAQ,CAAA,CACpD,GAAI,IAAI,CAACtsD,QAAQ,EAAI,IAAI,CAACsK,SAAS,CAAE,CACpC,IAAI,CAAC9nC,QAAQ,CAACl6B,YAAY,CAAC,WAAA,CAAa,IAAI,CAACgiE,SAAS,EACvD,CACD,CACD,CACA+iD,eAAAA,EAAkB,CACjB,MAAM7qF,QAAAA,CAAW,IAAIukF,iBAAiB,IAAI,CAC1CvkF,CAAAA,QAAAA,CAAS7nJ,IAAI,CAAG,CAAC,gBAAgB,EAAE,IAAI,CAAC00J,IAAI,CAAC10J,IAAI,CAAC,CAClD6nJ,CAAAA,QAAAA,CAASgY,IAAI,CAAGtpI,aAChBsxH,CAAAA,QAAAA,CAASxtG,UAAU,CAAG,KACtBwtG,CAAAA,QAAAA,CAAS8gC,SAAS,CAAG,IAAI,CAACA,SAAS,CACnC9gC,QAAAA,CAASoqC,UAAU,CAAG,IAAI,CAACA,UAAU,CACrC,OAAOpqC,QACR,CACA8qF,aAAAA,EAAgB,CACf,MAAM9qF,QAAAA,CAAW,IAAI,CAACA,QAAQ,CAC9BA,SAASl6B,YAAY,CAAC,SAAA,CAAW,IAAI,CAAC49G,OAAO,EAC7C,GAAI,IAAI,CAACkB,WAAW,EAAA,CAAI,CACvB5kF,SAASl6B,YAAY,CAAC,oBAAA,CAAsB,IAAI,CAACsnH,eAAe,EAChEptF,QAAAA,CAASl6B,YAAY,CAAC,eAAA,CAAiB,IAAI,CAACunH,UAAU,CAAA,CACtDrtF,QAAAA,CAASl6B,YAAY,CAAC,oBAAA,CAAsB,IAAI,CAACwnH,eAAe,EACjE,CACAttF,QAAAA,CAASl6B,YAAY,CAAC,YAAa,IAAI,CAACkW,SAAS,CAAA,CACjD,GAAI,CAAC,IAAI,CAACo/F,MAAM,CAAE,CACjBp7E,QAAAA,CAASl6B,YAAY,CAAC,cAAA,CAAgB,IAAI,CAACm6G,YAAY,CAAA,CACvDjgF,QAAAA,CAASl6B,YAAY,CAAC,cAAA,CAAgB,IAAI,CAACq6G,YAAY,EACvDngF,QAAAA,CAASl6B,YAAY,CAAC,cAAA,CAAgB,IAAI,CAACu6G,YAAY,CAAA,CACvDrgF,QAAAA,CAASl6B,YAAY,CAAC,cAAA,CAAgB,IAAI,CAACy6G,YAAY,EACxD,CACAvgF,QAAAA,CAASl6B,YAAY,CAAC,aAAc,IAAI,CAACqnH,UAAU,CAAA,CACnDntF,QAAAA,CAASl6B,YAAY,CAAC,cAAA,CAAgB,IAAI,CAACo3G,YAAY,CAAA,CACvDl9E,QAAAA,CAASl6B,YAAY,CAAC,iBAAA,CAAmB,IAAI,CAACu1G,eAAe,CAAA,CAC7Dr7E,SAASl6B,YAAY,CAAC,UAAA,CAAY,IAAI,CAACy3G,QAAQ,EAC/Cv9E,QAAAA,CAASl6B,YAAY,CAAC,MAAA,CAAQ,IAAI,CAACi2G,IAAI,CAAA,CACvC/7E,QAAAA,CAASl6B,YAAY,CAAC,SAAA,CAAW,IAAI,CAACk2G,KAAK,CAAG,IAAI,CAACD,IAAI,CAAA,CACvD/7E,SAASl6B,YAAY,CAAC,MAAA,CAAQ,IAAI,CAACw1E,IAAI,EACvCt7C,QAAAA,CAASl6B,YAAY,CAAC,cAAA,CAAgB,IAAI,CAAC2mH,SAAS,CAAC,CAAA,CAAE,CAAA,CACvDzsF,QAAAA,CAASl6B,YAAY,CAAC,eAAgB,IAAI,CAAC4mH,SAAS,CAAC,CAAA,CAAE,CAAA,CACvD1sF,SAASl6B,YAAY,CAAC,oBAAA,CAAsB,IAAI,CAAC6mH,eAAe,CAAC,CAAA,CAAE,CAAA,CACnE3sF,SAASl6B,YAAY,CAAC,kBAAmB,IAAI,CAACn3G,SAAS,CAAA,CACvDqxI,QAAAA,CAASl6B,YAAY,CAAC,iBAAA,CAAmB,CAAA,CAAI,IAAI,CAACn3G,SAAS,CAAA,CAC3DqxI,SAASl6B,YAAY,CAAC,cAAA,CAAgB,IAAIl3G,YAAAA,CAAa,CAAC,EAAG,CAAA,CAAG,CAAA,CAAE,CAAA,CAAA,CAChE,GAAI,IAAI,CAAC+vN,IAAI,EAAI,IAAI,CAACC,UAAU,CAAE,CACjC,IAAI,CAAC2O,iBAAiB,CAAC,CAAA,CAAE,CAAG,IAAI,CAAC3O,UAAU,CAACxtN,CAC5C,CAAA,IAAI,CAACm8N,iBAAiB,CAAC,CAAA,CAAE,CAAG,IAAI,CAAC3O,UAAU,CAACvtN,CAAC,CAC7C,IAAI,CAACk8N,iBAAiB,CAAC,CAAA,CAAE,CAAG,IAAI,CAAC3O,UAAU,CAACttN,CAAC,CAC7C0uI,QAAAA,CAASl6B,YAAY,CAAC,YAAA,CAAc,IAAI,CAACynH,iBAAiB,EAC3D,CACA,IAAI,CAACxC,oBAAoB,EAAA,CACzB,GAAI,IAAI,CAACtG,cAAc,CAAG,EAAG,CAC5BzkF,QAAAA,CAASl6B,YAAY,CAAC,WAAA,CAAa,CAAA,EAAK,IAAI,CAAC2+G,cAAc,CAAG,IAAI,CAACA,cAAc,CAAG,GAAE,GACvF,CACA,GAAI,IAAI,CAACf,OAAO,CAAG,CAAA,CAAG1jF,QAAAA,CAASgY,IAAI,CAAGtpI,aAAAA,CACtC,IAAI,CAAC8+M,uBAAuB,GAC7B,CACAA,yBAA0B,CACzB,IAAIC,OAAAA,CAASC,QAAAA,CACb,GAAI,IAAI,CAAC3nG,WAAW,GAAKmN,0BAAAA,CAA4B,CACpDu6F,OAAAA,CAAU,IAAI7+N,aAAa,CAAC,CAAA,CAAG,CAAA,CAAG,CAAA,CAAE,CAAA,CACpC8+N,QAAAA,CAAW,IAAI9+N,YAAAA,CAAa,CAAC,CAAA,CAAG,CAAA,CAAG,CAAA,CAAE,EACtC,MAAO,CACN,IAAIkX,CAAAA,CACJ,GAAI,IAAI,CAACigH,WAAW,GAAKoN,yBAAAA,CAA2B,CACnDrtH,CAAAA,CAAI,IAAI,CAAC6nN,cAAc,CAACl4O,SAAS,GAClC,CAAA,KAAO,CACN,MAAMm4O,WAAa,IAAI,CAAC/gF,IAAI,GAAK,IAAA,CAAOh1I,IAAAA,CAAKX,QAAQ,CAAG,IAAI,CAAC21I,IAAI,CAAC7H,iBAAiB,GACnFl/H,CAAAA,CAAI8nN,UAAAA,CAAW72N,eAAe,CAAC,IAAI,CAAC42N,cAAc,CAAA,CAAEl4O,SAAS,GAC9D,CACA,MAAMyQ,CAAAA,CAAI,IAAIgL,IAAAA,CAAK,CAAA,CAAG,CAAA,CAAG,CAAA,CAAA,CACzB,GAAItc,IAAAA,CAAK6Z,GAAG,CAACvI,CAAAA,CAAEqM,GAAG,CAACuT,CAAAA,CAAAA,CAAAA,GAAQ,CAAA,CAAG,CAC7B5f,CAAAA,CAAElK,GAAG,CAAC,CAAA,CAAG,CAAA,CAAG,GACb,CACA,MAAM/J,CAAAA,CAAI,IAAIif,IAAAA,EAAAA,CAAOQ,KAAK,CAACoU,CAAAA,CAAG5f,CAAAA,CAAAA,CAAGzQ,SAAS,EAAA,CAC1CyQ,CAAAA,CAAEwL,KAAK,CAACzf,CAAAA,CAAG6zB,CAAAA,CAAAA,CAAGrwB,SAAS,EAAA,CACvBg4O,OAAAA,CAAU,IAAI7+N,aAAa,CAAC1I,CAAAA,CAAEkL,CAAC,CAAElL,CAAAA,CAAEmL,CAAC,CAAEnL,CAAAA,CAAEoL,CAAC,CAAC,CAAA,CAC1Co8N,QAAAA,CAAW,IAAI9+N,aAAa,CAAC3c,CAAAA,CAAEmf,CAAC,CAAEnf,CAAAA,CAAEof,CAAC,CAAEpf,CAAAA,CAAEqf,CAAC,CAAC,EAC5C,CACA,IAAI,CAAC0uI,QAAQ,CAACl6B,YAAY,CAAC,aAAA,CAAe2nH,OAAAA,CAAAA,CAC1C,IAAI,CAACztF,QAAQ,CAACl6B,YAAY,CAAC,YAAA,CAAc4nH,UAC1C,CACAG,aAAAA,EAAgB,CACf,MAAMj1L,QAAAA,CAAW,EAAE,CACnB,GAAI,CAAC,IAAI,CAACwiL,MAAM,CAAE,CACjBxiL,QAAAA,CAASziD,IAAI,CAAC,CAAE4iD,QAAAA,CAAU7gB,cAAAA,CAAgB8gB,WAAY,CAAA,CAAGvsC,IAAAA,CAAMqvB,YAAa,CAAA,CAAA,CAC5E,GAAI,IAAI,CAAC2gM,OAAO,CAAE,CACjB7jL,QAAAA,CAASziD,IAAI,CAAC,CAAE4iD,QAAAA,CAAUrhB,kBAAAA,CAAoBshB,UAAAA,CAAY,CAAA,CAAGvsC,IAAAA,CAAMqvB,YAAa,GACjF,CACD,CAAA,KAAO,CACN8c,QAAAA,CAASziD,IAAI,CACZ,CAAE4iD,QAAAA,CAAU7gB,cAAAA,CAAgB8gB,UAAAA,CAAY,CAAA,CAAGvsC,IAAAA,CAAMqvB,YAAa,CAAA,CAC9D,CAAEid,QAAAA,CAAU5gB,cAAAA,CAAgB6gB,UAAAA,CAAY,CAAA,CAAGvsC,KAAMqvB,YAAa,CAAA,CAC9D,CAAEid,QAAAA,CAAU3gB,cAAAA,CAAgB4gB,UAAAA,CAAY,EAAGvsC,IAAAA,CAAMqvB,YAAa,CAAA,CAC9D,CAAEid,QAAAA,CAAU1gB,cAAAA,CAAgB2gB,WAAY,CAAA,CAAGvsC,IAAAA,CAAMqvB,YAAa,CAAA,CAC9D,CAAEid,QAAAA,CAAUzgB,eAAgB0gB,UAAAA,CAAY,IAAI,CAACyjL,OAAO,CAAG,CAAA,CAAI,EAAGhwN,IAAAA,CAAMqvB,YAAa,CAAA,EAEnF,CACA,OAAO8c,QACR,CAEAgyL,SAAAA,CAAU1N,YAAY,CAAE,CACvB,MAAM4Q,aAAAA,CAAgB5Q,aAAe,IAAI,CAACE,gBAAgB,CAC1D,MAAM2Q,cAAAA,CAAiB7Q,aAAe,IAAI,CAACyN,kBAAkB,CAC7D,GAAI,IAAI,CAAC1nL,YAAY,GAAK,MAAK,EAAK,IAAI,CAACA,YAAY,CAACpL,cAAc,EAAA,GAAOi2L,aAAAA,CAAe,CACzF,MAAMl1L,SAAW,IAAI,CAACi1L,aAAa,EAAA,CACnC,MAAMzwL,YAAAA,CAAe,IAAI1E,YAAAA,CAAa,IAAI,CAACvV,cAAc,CAAEyV,QAAAA,CAC3D,CAAA,IAAI,CAACqK,YAAY,CAAG,IAAI1L,YAAAA,CAAa,IAAI,CAACpU,cAAc,CAAEia,YAAAA,CAAc0wL,aAAAA,CAAe,CACtFz3L,KAAAA,CAAO/oB,cACR,CAAA,CACA,CAAA,IAAI,CAACmoB,WAAW,CAAG,IAAIF,WAAAA,CAAY,IAAI,CAACpS,cAAc,CAAEnT,kBAAAA,CAAoB+9M,cAAAA,CAAAA,CAC5E,MAAMh/N,KAAAA,CAAQ,IAAIH,YAAAA,CAAa,IAAI,CAACq0C,YAAY,CAACzX,IAAI,EAAA,CAAA,CACrD,IAAIwiM,SAAUC,SAAAA,CAAWC,SAAAA,CAAWC,QAAAA,CAAUC,QAAAA,CAC9C,GAAI,IAAI,CAAC3R,OAAO,CAAE,CACjBuR,QAAAA,CAAWn5L,WAAAA,CAAYC,iBAAiB,CAAC,IAAI,CAACoyG,IAAI,CAACjkG,YAAY,CAAEr0C,cACjE,MAAMy/N,SAAAA,CAAY,IAAI,CAACnnF,IAAI,CAACjkG,YAAY,CAACroD,MAAM,CAACg+C,QAAQ,CACxD,MAAMkwG,WAAaulF,SAAAA,CAAUliL,IAAI,CAAEmiL,EAAAA,EAAOA,EAAAA,CAAGn2O,IAAI,GAAKg/B,iBAAAA,CAAAA,CACtD,MAAMo3M,SAAAA,CAAYF,SAAAA,CAAUliL,IAAI,CAAC,EAACmiL,EAAOA,EAAAA,CAAGn2O,IAAI,GAAKu/B,kBAAAA,CAAAA,CACrDu2M,UAAYnlF,UAAAA,CAAW/lJ,MAAM,CAAG,CAAA,CAChCmrO,SAAAA,CAAYplF,UAAAA,CAAWrvG,MAAM,CAAG,CAAA,CAChC00L,QAAAA,CAAWI,SAAAA,CAAYA,SAAAA,CAAUxrO,MAAM,CAAG,CAAA,CAAI,EAAC,CAC/CqrO,QAAAA,CAAWG,SAAAA,CAAYA,SAAAA,CAAU90L,MAAM,CAAG,CAAA,CAAI,EAC/C,CACA,IAAK,IAAIpkD,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAKy4O,aAAAA,CAAez4O,EAAAA,EAAAA,CAAM,CAC1C,MAAMk+H,IAAAA,CAAO3+H,IAAAA,CAAKoQ,KAAK,CAAC3P,EAAAA,CAAK,IAAI,CAAC+nO,gBAAgB,CAAA,CAClD,GAAI,CAAC,IAAI,CAACX,OAAO,CAAE,CAClB,MAAM+R,MAAAA,CAASn5O,EAAAA,CAAK,CACpB0Z,CAAAA,KAAK,CAAC1Z,EAAAA,CAAK,CAAA,CAAE,CAAGyvO,aAAa,CAAC0J,MAAAA,CAAO,CAAC,CAAA,CACtCz/N,CAAAA,KAAK,CAAC1Z,EAAAA,CAAK,CAAA,CAAI,CAAA,CAAE,CAAGyvO,aAAa,CAAC0J,OAAO,CAAC,CAAA,CAAE,CAC5Cz/N,KAAK,CAAC1Z,GAAK,CAAA,CAAI,CAAA,CAAE,CAAG,CACpB0Z,CAAAA,KAAK,CAAC1Z,EAAAA,CAAK,CAAA,CAAI,CAAA,CAAE,CAAGk+H,KACrB,CAAA,KAAO,CACN,MAAMk7G,IAAAA,CAAOp5O,EAAAA,CAAK,IAAI,CAAC+nO,gBAAgB,CACvC,MAAMsR,QAAAA,CAAWD,IAAAA,CAAOP,SAAAA,CAAYD,SACpCl/N,CAAAA,KAAK,CAAC1Z,EAAAA,CAAK,CAAA,CAAE,CAAG24O,QAAQ,CAACU,SAAS,CAClC3/N,KAAK,CAAC1Z,EAAAA,CAAK,CAAA,CAAI,EAAE,CAAG24O,QAAQ,CAACU,QAAAA,CAAW,CAAA,CACxC3/N,CAAAA,KAAK,CAAC1Z,GAAK,CAAA,CAAI,CAAA,CAAE,CAAG24O,QAAQ,CAACU,QAAAA,CAAW,CAAA,CAAE,CAC1C3/N,KAAK,CAAC1Z,EAAAA,CAAK,CAAA,CAAI,CAAA,CAAE,CAAGk+H,IAAAA,CACpB,GAAI46G,QAAAA,EAAY,CAAA,CAAG,CAClB,MAAMQ,OAAAA,CAAUF,IAAAA,CAAOL,SAAWD,QAClCp/N,CAAAA,KAAK,CAAC1Z,EAAAA,CAAK,CAAA,CAAI,EAAE,CAAG24O,QAAQ,CAACW,OAAAA,CAAQ,CACrC5/N,KAAK,CAAC1Z,EAAAA,CAAK,CAAA,CAAI,CAAA,CAAE,CAAG,CAAA,CAAI24O,QAAQ,CAACW,OAAAA,CAAU,CAAA,EAC5C,CAAA,KAAO,CACN5/N,KAAK,CAAC1Z,EAAAA,CAAK,CAAA,CAAI,CAAA,CAAE,CAAG,CACpB0Z,CAAAA,KAAK,CAAC1Z,EAAAA,CAAK,CAAA,CAAI,CAAA,CAAE,CAAG,EACrB,CACD,CACD,CACA,GAAI,IAAI,CAAC+lO,MAAM,CAAE,CAChB,IAAI,CAAC+B,KAAK,CAAG,IAAIvuN,YAAAA,CAAaG,KAAAA,CAC9B,CAAA,IAAI,CAACqwN,KAAK,CAAG,IAAIxwN,YAAAA,CAAa,IAAI,CAACuuN,KAAK,CAAC7nO,MAAM,EAChD,CACA,IAAI,CAAC2tD,YAAY,CAACvW,MAAM,EAAA,CACxB,GAAI,IAAI,CAAC+vL,OAAO,CAAE,CACjB,IAAI,CAACv1E,IAAI,CAACjkG,YAAY,CAACvW,MAAM,GAC9B,CACA,IAAIz4B,GAAAA,CAAM,CAAA,CACV,MAAMiiC,OAAAA,CAAU,IAAI1f,WAAAA,CAAY,IAAI,CAACif,WAAW,CAACjK,IAAI,EAAA,CAAA,CACrD,GAAI,IAAI,CAACixL,OAAO,CAAE,CACjB,MAAM9mL,EAAAA,CAAK,IAAI,CAACuxG,IAAI,CAACzxG,WAAW,CAAC,CAAA,CAAE,CACnCu4L,QAAAA,CAAW,IAAI5sM,sBAAsB,CAACuU,EAAAA,CAAG/6C,MAAM,CAAC,CAAC+6C,EAAAA,CAAGnK,IAAI,EAAA,EACzD,CACA,IAAK,IAAIn2C,EAAAA,CAAK,CAAA,CAAGA,GAAK6nO,YAAAA,CAAc7nO,EAAAA,EAAAA,CAAM,CACzC,GAAI,CAAC,IAAI,CAAConO,OAAO,CAAE,CAClB,MAAMmS,SAAAA,CAAYv5O,EAAAA,CAAK,CACvB6gD,CAAAA,OAAO,CAACjiC,GAAAA,EAAAA,CAAM,CAAG26N,SACjB14L,CAAAA,OAAO,CAACjiC,GAAAA,EAAAA,CAAM,CAAG26N,SAAAA,CAAY,CAC7B14L,CAAAA,OAAO,CAACjiC,GAAAA,EAAAA,CAAM,CAAG26N,SAAAA,CAAY,CAC7B14L,CAAAA,OAAO,CAACjiC,GAAAA,EAAAA,CAAM,CAAG26N,SACjB14L,CAAAA,OAAO,CAACjiC,GAAAA,EAAAA,CAAM,CAAG26N,SAAAA,CAAY,CAC7B14L,CAAAA,OAAO,CAACjiC,GAAAA,EAAAA,CAAM,CAAG26N,SAAAA,CAAY,EAC9B,CAAA,KAAO,CACN,IAAK,IAAI7nM,EAAI,CAAA,CAAGA,CAAAA,CAAI,IAAI,CAAC4jM,kBAAkB,CAAE5jM,CAAAA,EAAAA,CAAK,CACjDmP,OAAO,CAAC7gD,EAAAA,CAAK,IAAI,CAACs1O,kBAAkB,CAAG5jM,CAAAA,CAAE,CAAGinM,QAAQ,CAACjnM,CAAAA,CAAE,CAAG1xC,EAAAA,CAAK,IAAI,CAAC+nO,iBACrE,CACD,CACD,CACA,IAAI,CAAC3nL,WAAW,CAAC/I,MAAM,EAAA,CACvB,GAAI,IAAI,CAAC+vL,OAAO,CAAE,IAAI,CAACv1E,IAAI,CAACzxG,WAAW,CAAC,CAAA,CAAE,CAAC/I,MAAM,GAClD,CACD,CACA1pC,KAAAA,EAAQ,CACP,IAAI,CAACu/N,SAAS,CAAG,IACjB,CAAA,IAAI,CAACjnC,IAAI,CAAG1mM,IAAAA,CAAKC,MAAM,EAAA,CACvB,IAAI,CAACmrJ,QAAQ,CAACl6B,YAAY,CAAC,MAAA,CAAQ,IAAI,CAACw1E,IAAI,CAAA,CAC5C,GAAI,IAAI,CAAC8/B,MAAM,CAAE,CAChB,IAAK,IAAI/lO,GAAK,CAAA,CAAGA,EAAAA,CAAK,IAAI,CAACmtO,gBAAgB,CAACltO,MAAM,CAAED,EAAAA,EAAAA,CAAM,CACzD,IAAI,CAACslO,WAAW,CAACtlO,EAAAA,CAAG,CAAG,IAAI,CAACmtO,gBAAgB,CAACntO,IAAG,CAElD,MAAO,CACN,IAAI,CAAC01O,oBAAoB,GAC1B,CACA,IAAI,CAAC7B,gBAAgB,GACrB,IAAI,CAAC8B,SAAS,EAAA,CACd,MAAM6D,QAAAA,CAAW,IAAI,CAACplG,IAAI,CAC1B,IAAI,CAACA,IAAI,CAAG,IAAA,CACZ,IAAI,CAACwhG,OAAO,CAAC,EAAG,KAAA,CAChB,CAAA,IAAI,CAACxhG,IAAI,CAAGolG,SACZ,GAAI,IAAI,CAAC3D,OAAO,CAAE,CACjB,IAAI,CAACC,OAAO,CAAC,IAAI,CAAC5N,QAAQ,EAC3B,CACA,IAAI,CAAC6N,WAAW,GACjB,CACAD,QAAQ/+N,IAAI,CAAE,CACb,MAAM0iO,gBAAAA,CAAmB1iO,IAAAA,CAAO,IAAI,CAACmxN,QAAQ,CAC7C,MAAMwR,UAAAA,CAAan6O,IAAAA,CAAK4T,GAAG,CAAC5T,IAAAA,CAAKoQ,KAAK,CAAC8pO,gBAAAA,CAAmB,IAAI,CAACngO,SAAS,CAAA,CAAG,IAAI,CAACA,SAAS,CAAA,CACzF,MAAMqgO,SAAAA,CAAY5iO,IAAAA,CAAO2iO,UAAAA,CACzB,IAAK,IAAI15O,EAAAA,CAAK,EAAGA,EAAAA,CAAK05O,UAAAA,CAAY15O,EAAAA,EAAAA,CAAM,CACvC,IAAI,CAAC41O,OAAO,CAAC+D,SAAAA,CAAW,KAAA,EACzB,CACD,CACAhE,SAAAA,CAAU3+H,SAAW46H,iBAAAA,CAAkB,IAAI,CAAC,CAAE,CAC7C,IAAI,CAACgI,OAAO,CAAG,IAAI,CAAClG,YAAY,CAAG18H,SACpC,CACA++H,WAAAA,EAAc,CACb,GAAI,IAAI,CAAChQ,MAAM,CAAE,IAAI,CAACn4K,YAAY,CAACvW,MAAM,GAC1C,CACAu+L,OAAAA,CAAQz8D,MAAM,CAAE6tD,QAAQ,CAAE,CACzB,MAAM94L,MAAAA,CAAS,IAAI,CAACJ,cAAc,CAClC,IAAI,CAAC4lM,YAAY,EAAIv6D,MAAAA,CACrB,IAAI,CAAC45D,oBAAoB,EAAA,CACzB,GAAI,IAAI,CAACxD,WAAW,EAAA,CAAI,CACvB,MAAMsK,WAAAA,CAAc,IAAI,CAAC9B,eAAe,CACxC8B,WAAW,CAAC,CAAA,CAAE,CAAG,EAAI,IAAI,CAAC5D,UAC1B4D,CAAAA,WAAW,CAAC,CAAA,CAAE,CAAG,CAAA,CAAI,IAAI,CAAC3D,UAAU,CACpC,MAAM5jO,MAAAA,CAAS,IAAI,CAAC0lO,UACpB1lO,CAAAA,MAAM,CAAC,CAAA,CAAE,CAAG,IAAI,CAACwnO,cAAc,CAC/BxnO,MAAM,CAAC,CAAA,CAAE,CAAG,IAAI,CAAC0jO,aAAa,CAAG,IAAI,CAAC+D,SAAS,CAC/CznO,MAAM,CAAC,CAAA,CAAE,CAAG,IAAI,CAAC0jO,aAAa,CAAG,CACjC1jO,CAAAA,MAAM,CAAC,CAAA,CAAE,CAAG,IAAI,CAAC0nO,iBAAiB,CAAG,EACrC,MAAM/B,eAAAA,CAAkB,IAAI,CAACA,eAC7BA,CAAAA,eAAe,CAAC,CAAA,CAAE,CAAG,IAAI,CAACgC,SAAS,CACnChC,eAAe,CAAC,CAAA,CAAE,CAAG,IAAI,CAACiC,mBAAkB,CAE7C,GAAI,IAAI,CAACvtF,KAAK,CAAE,CACf,IAAI,CAAC0V,MAAM,CAAG,IAAI,CAAC1V,KAAK,CAACo/D,cAC1B,CACA,GAAI,IAAI,CAACka,YAAY,GAAKtoF,gBAAAA,CAAkB,CAC3CyyF,wBAAwB,CAAC,CAAA,CAAE,CAAG,IAAI,CAAC6C,cAAc,CAACl3N,CAAC,GAAK,CAAA,CAAI,IAAI,CAACk5N,mBAAmB,CAACl5N,CAAC,CAAG,IAAI,CAACk3N,cAAc,CAACl3N,CAAC,CAAG,CACjHq0N,CAAAA,wBAAwB,CAAC,EAAE,CAAG,IAAI,CAAC6C,cAAc,CAACj3N,CAAC,GAAK,CAAA,CAAI,IAAI,CAACi5N,mBAAmB,CAACj5N,CAAC,CAAG,IAAI,CAACi3N,cAAc,CAACj3N,CAAC,CAAG,CACjHo0N,CAAAA,wBAAwB,CAAC,CAAA,CAAE,CAAG,IAAI,CAAC6C,cAAc,CAACh3N,CAAC,GAAK,CAAA,CAAI,IAAI,CAACg5N,mBAAmB,CAACh5N,CAAC,CAAG,IAAI,CAACg3N,cAAc,CAACh3N,CAAC,CAAG,CAAA,CACjH,GAAI,IAAI,CAAC2wI,YAAY,CAAC4K,IAAI,GAAK,IAAA,CAAM,CACpC64E,YAAYxpN,MAAM,CAAChL,IAAAA,CAAKmC,IAAI,CAAE+J,IAAAA,CAAKlG,QAAQ,CAAE,IAAI,CAACoxN,cAAc,EACjE,CAAA,KAAO,CACN5C,WAAAA,CAAYxpN,MAAM,CAAChL,IAAAA,CAAKmC,IAAI,CAAE,IAAI,CAAC4uI,YAAY,CAAC4K,IAAI,CAACqD,WAAW,GAAIy1E,QAAAA,CAASvxO,IAAI,CAAC,IAAI,CAACk0O,cAAc,EAAE31N,GAAG,CAAC,IAAI,CAACsvI,YAAY,CAAC4K,IAAI,CAAC8B,UAAU,CAAA,EAC7I,CACD,CACA,IAAImsE,WACJ,MAAM0F,YAAAA,CAAe,IAAI,CAACv+E,YAAY,CAAC4K,IAAI,GAAK,IAAA,CAAO37I,IAAAA,CAAKqC,GAAG,CAAG,IAAI,CAAC0uI,YAAY,CAAC4K,IAAI,CAAC8B,UACzF,CAAA,IAAI,CAAC8yE,mBAAmB,CAAC,CAAA,CAAE,CAAGjB,YAAAA,CAAapvN,CAAC,CAC5C,IAAI,CAACqwN,mBAAmB,CAAC,CAAA,CAAE,CAAGjB,YAAAA,CAAanvN,CAC3C,CAAA,IAAI,CAACowN,mBAAmB,CAAC,CAAA,CAAE,CAAGjB,aAAalvN,CAAC,CAC5C,IAAI,CAAC0uI,QAAQ,CAACl6B,YAAY,CAAC,cAAA,CAAgB,IAAI,CAAC27G,mBAAmB,CAAA,CACnE,GAAI,IAAI,CAAC/F,UAAU,EAAI,IAAI,CAACz5E,YAAY,CAAC4K,IAAI,CAAE,CAC9CiuE,UAAAA,CAAa,IAAI,CAAC74E,YAAY,CAAC4K,IAAI,CAACtnB,WAAW,EAC/C,CAAA,IAAI,CAACw7F,iBAAiB,CAAC,CAAA,CAAE,CAAGjG,WAAW1pN,CACvC,CAAA,IAAI,CAAC2vN,iBAAiB,CAAC,CAAA,CAAE,CAAGjG,UAAAA,CAAWzpN,CAAC,CACxC,IAAI,CAAC0vN,iBAAiB,CAAC,CAAA,CAAE,CAAGjG,UAAAA,CAAWxpN,CAAC,CACxC,IAAI,CAAC0uI,QAAQ,CAACl6B,YAAY,CAAC,YAAA,CAAc,IAAI,CAACi7G,iBAAiB,EAChE,CACA,IAAI,CAACyM,uBAAuB,EAAA,CAC5B,GAAI,CAAC,IAAI,CAACpS,MAAM,CAAE,CACjB,IAAI,CAACiP,WAAW,CAACn7L,MAAM,CAAC3L,MAAAA,CAAQmiM,WAAAA,CAAaD,wBAAAA,CAA0Bj3D,OAAQ6tD,QAAAA,EAChF,CAAA,KAAO,CACN,MAAMttN,KAAAA,CAAQ,IAAIH,aAAa,IAAI,CAACq0C,YAAY,CAACzX,IAAI,EAAA,CAAA,CACrD,IAAI,CAAC++L,WAAW,CAACr7L,MAAM,CAACngC,KAAAA,CAAO,IAAI,CAACqtN,QAAQ,CAAE,IAAI,CAACzB,WAAW,CAAE+K,WAAAA,CAAaD,wBAAAA,CAA0B3K,UAAAA,CAAYtsD,MAAAA,CAAQ6tD,QAAAA,EAC5H,CACA,GAAI,CAAC,IAAI,CAAC5yF,IAAI,CAAE,CACf,GAAI,IAAI,CAACs/F,YAAY,CAAG,IAAI,CAACkG,OAAO,CAAE,CACrC,GAAI,IAAI,CAACO,UAAU,CAAE,IAAI,CAACA,UAAU,EACpC,CAAA,IAAI,CAACvtF,YAAY,CAAC0V,OAAO,CAAG,MAC7B,CACD,CACA,GAAI,IAAI,CAAC1V,YAAY,CAAE,CACtB,IAAI,CAACA,YAAY,CAACoX,SAAS,CAAG,IAAI,CAACA,UACpC,CACD,CACA6wE,iBAAAA,EAAoB,CACnB,IAAI,CAAC5H,aAAa,EAAE5/L,OAAAA,EACpB,CAAA,IAAI,CAAC4/L,aAAa,CAAG,IACrB,CAAA,IAAI,CAACD,cAAc,EAAE3/L,OAAAA,EACrB,CAAA,IAAI,CAAC2/L,cAAc,CAAG,IAAA,CACtB,GAAI,IAAI,CAACG,gBAAgB,EAAI,IAAI,CAACA,gBAAgB,CAAC9/L,OAAO,CAAE,CAC3D,IAAI,CAAC8/L,gBAAgB,CAAC9/L,OAAO,EAC7B,CAAA,IAAI,CAAC8/L,gBAAgB,CAAG,KACzB,CACA,IAAI,CAACG,eAAe,EAAEjgM,OAAAA,EACtB,CAAA,IAAI,CAACigM,eAAe,CAAG,IACvB,CAAA,IAAI,CAACC,gBAAgB,EAAElgM,OAAAA,EACvB,CAAA,IAAI,CAACkgM,gBAAgB,CAAG,IACxB,CAAA,IAAI,CAAC3C,YAAY,EAAEv9L,SACnB,CAAA,IAAI,CAACu9L,YAAY,CAAG,IACpB,CAAA,IAAI,CAACE,YAAY,EAAEz9L,OAAAA,EACnB,CAAA,IAAI,CAACy9L,YAAY,CAAG,IACpB,CAAA,IAAI,CAACE,YAAY,EAAE39L,OAAAA,EACnB,CAAA,IAAI,CAAC29L,YAAY,CAAG,IACpB,CAAA,IAAI,CAACE,YAAY,EAAE79L,OAAAA,EACnB,CAAA,IAAI,CAAC69L,YAAY,CAAG,IACpB,CAAA,IAAI,CAAC4M,UAAU,EAAEzqM,SACjB,CAAA,IAAI,CAACyqM,UAAU,CAAG,IAClB,CAAA,IAAI,CAAClqL,YAAY,CAAG,MACpB,CAAA,IAAI,CAACxN,WAAW,CAAG,MAAK,CACxB,MAAMw0L,UAAAA,CAAa,IAAI,CAAChoF,YAAY,EAAE0V,OAAAA,EAAW,IACjD,CAAA,IAAI,CAAC1V,YAAY,EAAEv/G,OAAAA,EACnB,CAAA,IAAI,CAACu/G,YAAY,CAAG,IACpB,CAAA,IAAI,CAACjC,QAAQ,EAAEt9G,OAAAA,EACf,CAAA,IAAI,CAACs9G,QAAQ,CAAG,IAAA,CAChB,OAAOiqF,UACR,CACAvnM,SAAU,CACT,IAAI,CAACg1H,MAAM,CAAG,IAAA,CACd,IAAI,CAACwyE,iBAAiB,GACvB,CAtsBA,WAAA,CAAY/mM,cAAc,CAAEt8B,QAAQ,CAAE,CALtCm5I,gBAAAA,CAAAA,IAAAA,CAAAA,UAAAA,CAAW,IAAA,CAAA,CACXigF,sBAAAA,cAAAA,CAAe,IAAA,CAAA,CACfE,gBAAAA,CAAAA,IAAAA,CAAAA,cAAAA,CAAe,IAAA,CAAA,CACfE,gBAAAA,CAAAA,IAAAA,CAAAA,eAAe,IAAA,CAAA,CACf8M,gBAAAA,CAAAA,IAAAA,CAAAA,YAAAA,CAAa,IAAA,CAEZ,CAAA,IAAI,CAAChqM,cAAc,CAAGA,cAAAA,CACtB,MAAM6/L,EAAAA,CAAK7/L,cAAAA,CACX,MAAMx0B,SAAAA,CAAY,EAClB,CAAA,IAAI,CAACA,SAAS,CAAGA,SACjB,CAAA,IAAI,CAAC8gO,YAAY,CAAG,CAAA,CACpB3J,iBAAAA,CAAoB,IAAI,CACxBC,kBAAAA,CAAqBl/N,QAAAA,CACrBm/N,YAAY,cAAA,CAAgB,CAAA,CAAA,CAC5B,GAAI,IAAI,CAAC9I,YAAY,CAAG/5L,cAAAA,CAAemkB,cAAc,CAAE,CACtD,IAAI,CAAC41K,YAAY,CAAG/5L,cAAAA,CAAemkB,eACpC,CACA0+K,WAAAA,CAAY,OAAQ,CAAA,CAAA,CACpBA,WAAAA,CAAY,OAAA,CAAS,IAAI,CAACjK,IAAI,EAC9BiK,WAAAA,CAAY,UAAA,CAAY,EAAA,CAAA,CACxBA,WAAAA,CAAY,gBAAA,CAAkB,IAAI90N,KAAK,CAAA,CAAG,CAAA,CAAG,CAAA,CAAA,CAAA,CAC7C80N,WAAAA,CAAY,qBAAA,CAAuB,IAAI90N,KAAK,CAAA,CAAG,CAAA,CAAG,CAAA,CAAA,CAAA,CAClD80N,WAAAA,CAAY,eAAA,CAAiB,CAAA,CAAA,CAC7BA,YAAY,oBAAA,CAAsB,CAAA,CAAA,CAClCA,WAAAA,CAAY,cAAA,CAAgBhzF,gBAAAA,CAAAA,CAC5BgzF,WAAAA,CAAY,kBAAmB,CAAA,CAAA,CAC/BA,WAAAA,CAAY,MAAA,CAAQ,KAAA,CAAA,CACpBA,WAAAA,CAAY,YAAA,CAAc,OAC1BA,WAAAA,CAAY,aAAA,CAAe,KAAA,CAAA,CAC3BA,WAAAA,CAAY,YAAA,CAAc,IAAA,CAAA,CAC1BA,YAAY,UAAA,CAAY,IAAI,CAAC+B,mBAAmB,CAAA,CAChD/B,WAAAA,CAAY,YAAa,IAAA,CAAA,CACzBA,WAAAA,CAAY,MAAA,CAAQ,IAAA,CAAA,CACpBA,WAAAA,CAAY,SAAA,CAAW,OACvBA,WAAAA,CAAY,MAAA,CAAQtzF,iBAAAA,CAAAA,CACpBszF,WAAAA,CAAY,MAAA,CAAQlzF,gBAAAA,CAAAA,CACpBkzF,YAAY,OAAA,CAAS,IAAA,CAAA,CACrBA,WAAAA,CAAY,UAAA,CAAY,KAAA,CAAA,CACxBA,WAAAA,CAAY,cAAe,KAAA,CAAA,CAC3BA,WAAAA,CAAY,YAAa,CAAA,CAAA,CACzBA,WAAAA,CAAY,UAAW,CAAA,CAAA,CACvBA,WAAAA,CAAY,eAAA,CAAiB,KAAA,CAAA,CAC7BA,WAAAA,CAAY,gBAAA,CAAkB,GAC9BA,WAAAA,CAAY,MAAA,CAAQ,IAAA,CAAA,CACpBA,WAAAA,CAAY,gBAAA,CAAkB,IAAI90N,KAAK,CAAA,CAAG,CAAA,CAAG,CAAA,CAAA,CAAA,CAC7C80N,WAAAA,CAAY,aAAA,CAAe9yF,0BAAAA,CAAAA,CAC3B8yF,YAAY,YAAA,CAAc,KAAA,CAAA,CAC1BA,WAAAA,CAAY,OAAA,CAAS,KAAA,CAAA,CACrBA,WAAAA,CAAY,YAAax3F,YAAAA,CAAAA,CACzBw3F,WAAAA,CAAY,MAAA,CAAQ,IAAA,CAAA,CACpBA,WAAAA,CAAY,YAAA,CAAc,GAC1BA,WAAAA,CAAY,aAAA,CAAe,IAAI,CAAC9J,UAAU,CAAA,CAC1C8J,YAAY,YAAA,CAAc,CAAA,CAAA,CAC1BA,WAAAA,CAAY,YAAA,CAAc,CAAA,CAAA,CAC1BA,WAAAA,CAAY,iBAAkB,CAAA,CAAA,CAC9BA,WAAAA,CAAY,eAAA,CAAiB,CAAA,CAAA,CAC7BA,WAAAA,CAAY,mBAAA,CAAqB,GACjCA,WAAAA,CAAY,WAAA,CAAa,CAAA,CAAA,CACzBA,WAAAA,CAAY,oBAAA,CAAsB,KAAA,CAAA,CAClCA,YAAY,WAAA,CAAa,CAAA,CAAA,CACzBA,WAAAA,CAAY,UAAA,CAAY,IAAA,CACxB,CAAA,IAAI,CAACqE,WAAW,CAAG,IAAI7K,kBAAAA,CAAmB,IAAI,CAAEwD,EAAAA,CAChD,CAAA,IAAI,CAACuH,WAAW,CAAG,IAAI9P,kBAAAA,CAAmB,IAAI,CAC9C,CAAA,IAAI,CAACsG,iBAAiB,CAAG,IAAInyN,YAAAA,CAAa,CAAA,CAC1C,CAAA,IAAI,CAAC2+N,iBAAiB,CAAG,IAAI3+N,YAAAA,CAAa,CAAA,CAC1C,CAAA,IAAI,CAAC6yN,mBAAmB,CAAG,IAAI7yN,YAAAA,CAAa,CAAC,CAAA,CAAG,CAAA,CAAG,CAAA,CAAE,CAAA,CACrDo3N,WAAAA,CAAY,YAAA,CAAcV,gBAC1BU,WAAAA,CAAY,aAAA,CAAe,IAAI,CAAC2F,UAAU,CAAA,CAC1C3F,YAAY,YAAA,CAAcZ,aAAAA,CAAAA,CAC1BY,WAAAA,CAAY,aAAA,CAAe,IAAI,CAAC6F,UAAU,CAAA,CAC1C7F,WAAAA,CAAY,YAAA,CAAcZ,aAAAA,CAAAA,CAC1BY,WAAAA,CAAY,aAAA,CAAe,IAAI,CAAC8F,UAAU,CAAA,CAC1C9F,WAAAA,CAAY,oBAAA,CAAsBX,cAAAA,CAAAA,CAClCW,YAAY,qBAAA,CAAuB,IAAI,CAACwF,kBAAkB,CAAA,CAC1DxF,WAAAA,CAAY,gBAAiBX,cAAAA,CAAAA,CAC7BW,WAAAA,CAAY,gBAAA,CAAkB,IAAI,CAACyF,aAAa,EAChDzF,WAAAA,CAAY,oBAAA,CAAsBb,aAAAA,CAAAA,CAClCa,WAAAA,CAAY,qBAAA,CAAuB,IAAI,CAAC4F,kBAAkB,CAAA,CAC1D5F,WAAAA,CAAY,kBAAA,CAAoBb,aAAAA,CAAAA,CAChCa,WAAAA,CAAY,oBAAqB,IAAI,CAAC+F,gBAAgB,CAAA,CACtDjG,iBAAAA,CAAoB,IAAA,CACpBC,mBAAqB,IACrB,CAAA,IAAI,CAACqH,eAAe,CAAG,IAAIx+N,YAAAA,CAAa,CAAA,CACxC,CAAA,IAAI,CAACy+N,UAAU,CAAG,IAAIz+N,YAAAA,CAAa,CAAA,CACnC,CAAA,IAAI,CAAC0+N,eAAe,CAAG,IAAI1+N,YAAAA,CAAa,CAAA,CACxC,CAAA,IAAI,CAACwtN,QAAQ,CAAG,IAChB,CAAA,IAAI,CAACgD,KAAK,CAAG,IACb,CAAA,IAAI,CAACP,gBAAgB,CAAG,IACxB,CAAA,IAAI,CAACnnE,MAAM,CAAG,IACd,CAAA,IAAI,CAAC0qE,OAAO,CAAG,KACf,CAAA,IAAI,CAAC3F,OAAO,CAAG,IACf,CAAA,IAAI,CAACrB,MAAM,CAAG,CAACj4L,cAAAA,CAAegpD,oBAAoB,CAClD,IAAI,CAACy8I,WAAW,CAAG,IAAIpoN,WACvB,CAAA,IAAI,CAACmoN,kBAAkB,CAAG,IAAInoN,WAC9B,CAAA,IAAI,CAACqoN,gBAAgB,CAAG,CAAC,IAAIroN,WAAAA,CAAe,IAAIA,WAAAA,CAChD,CAAA,IAAI,CAACyoN,WAAW,CAAG,IAAIzoN,WACvB,CAAA,IAAI,CAAC+nN,kBAAkB,CAAG,IAAIr3N,IAC9B,CAAA,IAAI,CAACs3N,iBAAiB,CAAG,CACzB,CAAA,IAAI,CAACQ,kBAAkB,CAAG,CAC1B,CAAA,IAAI,CAACnG,2BAA2B,CAAG,IACnC,CAAA,IAAI,CAACC,6BAA6B,CAAG,IACrC,CAAA,IAAI,CAACC,0BAA0B,CAAG,IAClC,CAAA,IAAI,CAAC3F,gBAAgB,CAAG,CACxB,CAAA,IAAI,CAACuN,kBAAkB,CAAG,CAC1B,CAAA,IAAI,CAAC3qF,QAAQ,CAAG,IAChB,CAAA,IAAI,CAACiC,YAAY,CAAG,IACpB,CAAA,IAAI,CAACoX,SAAS,CAAG,CACjB,CAAA,IAAI,CAACiiC,IAAI,CAAG1mM,IAAAA,CAAKC,MAAM,EACvB,CAAA,IAAI,CAAC66O,aAAa,CAAG,CAAA,CAAI,EACzB,CAAA,IAAI,CAACC,WAAW,CAAG,EACnB,CAAA,IAAI,CAACC,OAAO,CAAG,CACf,CAAA,IAAI,CAAC7G,YAAY,CAAG,CACpB,CAAA,IAAI,CAACxG,SAAS,CAAG,KACjB,CAAA,IAAI,CAAC/7I,MAAM,CAAG,IAAA,CACd,IAAI,CAACqjJ,OAAO,GACb,CAylBD,CAAA,CAEA,IAAIgG,qBAAAA,CAAwB,cAAcjzF,eAAAA,CACzCN,WAAAA,CAAYz1I,QAAQ,CAAE,CACrB,MAAM8zC,KAAO9zC,QAAAA,CAASipO,UAAU,CAChC,MAAMC,UAAAA,CAAap1L,IAAAA,CAAKilG,UAAU,CAAG3nG,QAAAA,CAAS0C,IAAAA,CAAKilG,UAAU,CAAA,CAAI,CAAA,CACjE,MAAMowF,UAAAA,CAAar1L,IAAAA,CAAKklG,YAAY,CAAG5nG,QAAAA,CAAS0C,IAAAA,CAAKklG,YAAY,CAAA,CAAI,CAAA,CACrE,MAAMowF,UAAAA,CAAat1L,IAAAA,CAAK4kG,UAAU,CAAGtnG,QAAAA,CAAS0C,IAAAA,CAAK4kG,UAAU,CAAA,CAAI,CAAA,CACjE,MAAM2wF,UAAAA,CAAav1L,IAAAA,CAAK8kG,YAAY,CAAGxnG,QAAAA,CAAS0C,IAAAA,CAAK8kG,YAAY,CAAA,CAAI,CAAA,CACrE,MAAM5C,WAAAA,CAAcD,eAAAA,CAAgBC,WAAW,CAACh2I,QAAAA,CAAS2sE,OAAO,CAAA,CAChE,MAAM28J,SAAAA,CAAYtpO,QAAAA,CAASk7K,YAAY,EAAE3kL,GAAAA,EAAO,EAAA,CAChD,IAAIA,GAAAA,CAAM,CAAC,EAAEu9C,IAAAA,CAAK2kG,UAAU,CAAC,CAAC,EAAEzC,WAAAA,CAAY,CAAC,EAAEkzF,UAAAA,CAAW,CAAC,EAAEC,UAAAA,CAAW,CAAC,EAAEC,UAAAA,CAAW,CAAC,EAAEC,UAAAA,CAAW,CAAC,EAAEC,UAAU,CAAC,CAClH,GAAItpO,QAAAA,CAASq9I,IAAI,CAAE9mJ,KAAO,OAAA,CAC1B,GAAIyJ,QAAAA,CAASy0K,aAAa,CAAEl+K,GAAAA,EAAO,QACnC,GAAIyJ,QAAAA,CAASi2K,gBAAgB,CAAE1/K,GAAAA,EAAO,SAAA,CACtC,GAAIyJ,QAAAA,CAASk2K,cAAc,CAAE3/K,GAAAA,EAAO,SAAA,CACpC,GAAIyJ,SAASm2K,uBAAuB,CAAE5/K,GAAAA,EAAO,SAAA,CAC7C,GAAIyJ,QAAAA,CAAS+hE,qBAAqB,CAAExrE,GAAAA,EAAO,aAAA,CAC3C,OAAOA,GACR,CACAgzO,2BAA2BC,iBAAiB,CAAExpO,QAAQ,CAAE,CACvD,MAAMypO,cAAgBzpO,QAAAA,CAASipO,UAAU,CAACx/K,UAAU,CACpD,MAAMA,WAAaggL,aAAAA,CAAgB,CAAE,GAAGA,aAAc,EAAI,MAAK,CAC/D,GAAIzpO,QAAAA,CAASq9I,IAAI,CAAE,CAClB5zF,UAAAA,CAAWyoB,kBAAkB,CAAGzhD,oBAChCg5B,CAAAA,UAAAA,CAAWwoB,kBAAkB,CAAGvhD,sBACjC,CACA,GAAI1wB,QAAAA,CAASi2K,gBAAgB,EAAIj2K,QAAAA,CAASk2K,cAAc,CAAE,CACzDzsH,UAAAA,CAAW2sH,eAAe,CAAGhkJ,gBAC9B,CACAo3M,iBAAAA,CAAkB//K,UAAU,CAAGA,WAChC,CACAigL,gBAAAA,CAAiB/8J,OAAO,CAAE3sE,QAAQ,CAAE,CACnC,GAAIA,QAAAA,CAASq9I,IAAI,CAAE1wE,OAAAA,CAAQx3E,GAAG,CAAC,OAAQ,IAAA,CAAA,CACvC,GAAI6K,QAAAA,CAASy0K,aAAa,CAAE9nG,OAAAA,CAAQx3E,GAAG,CAAC,YAAA,CAAc,IAAA,CAAA,CACtD,GAAI6K,QAAAA,CAASi2K,gBAAgB,EAAIj2K,QAAAA,CAASk2K,cAAc,CAAE,CACzDvpG,OAAAA,CAAQx3E,GAAG,CAAC,UAAA,CAAY,IAAA,CAAA,CACxB,GAAI6K,QAAAA,CAASm2K,uBAAuB,CAAExpG,QAAQx3E,GAAG,CAAC,cAAA,CAAgB,IAAA,CAAA,CAClE,GAAI6K,QAAAA,CAASi2K,gBAAgB,CAAEtpG,OAAAA,CAAQx3E,GAAG,CAAC,mBAAA,CAAqB,IAAA,CAAA,CAChE,GAAI6K,QAAAA,CAASk2K,cAAc,CAAEvpG,OAAAA,CAAQx3E,GAAG,CAAC,kBAAmB,IAAA,EAC7D,CACD,CACAw0O,sBAAAA,CAAuBH,iBAAiB,CAAExpO,QAAQ,CAAE4pO,cAAc,CAAErjK,IAAI,CAAE,CACzE,MAAMzyB,IAAAA,CAAO9zC,QAAAA,CAASipO,UAAU,CAChC,MAAMr3O,SAAW,IAAIgF,GAAAA,CAAIgzO,cAAAA,CAAAA,CACzBh4O,QAAAA,CAASuD,GAAG,CAAC,wBAAyB,EAAA,CAAA,CACtC,MAAMw3E,OAAAA,CAAU,IAAI/1E,GAAAA,CAAIoJ,QAAAA,CAAS2sE,OAAO,CAAA,CACxC,IAAI,CAAC+8J,gBAAgB,CAAC/8J,OAAAA,CAAS3sE,SAC/BwpO,CAAAA,iBAAAA,CAAkB9iK,UAAU,CAAGH,IAAAA,CAAOzyB,IAAAA,CAAK4kG,UAAU,CAAG5kG,IAAAA,CAAKilG,UAC7DywF,CAAAA,iBAAAA,CAAkBz1J,cAAc,CAAGniF,QACnC43O,CAAAA,iBAAAA,CAAkBj2J,aAAa,CAAG5G,QACnC,CACAk9J,wBAAAA,CAAyBL,iBAAiB,CAAExpO,QAAQ,CAAE4pO,cAAc,CAAErjK,IAAI,CAAE,CAC3E,MAAMzyB,IAAAA,CAAO9zC,SAASipO,UAAU,CAChC,MAAMr3O,QAAAA,CAAW,IAAIgF,GAAAA,CAAIgzO,gBACzB,MAAMj9J,OAAAA,CAAU,IAAI/1E,GAAAA,CAAIoJ,QAAAA,CAAS2sE,OAAO,EACxC,IAAI,CAAC+8J,gBAAgB,CAAC/8J,OAAAA,CAAS3sE,QAAAA,CAC/BwpO,CAAAA,iBAAAA,CAAkB7iK,YAAY,CAAGJ,IAAAA,CAAOzyB,IAAAA,CAAK8kG,YAAY,CAAG9kG,IAAAA,CAAKklG,YAAY,CAC7EwwF,iBAAAA,CAAkBv1J,gBAAgB,CAAGriF,QACrC43O,CAAAA,iBAAAA,CAAkB/1J,eAAe,CAAG9G,QACrC,CACAyrE,sBAAAA,CAAuB17G,MAAM,CAAE18B,QAAQ,CAAE,CACxC,MAAM8zC,IAAAA,CAAO9zC,QAAAA,CAASipO,UAAU,CAChC,MAAM1iK,KAAO7pC,MAAAA,CAAOuG,QAAQ,EAAI,CAAC,CAAC6Q,IAAAA,CAAK4kG,UAAU,EAAI,CAAC,CAAC5kG,IAAAA,CAAK8kG,YAAY,GAAK54I,QAAAA,CAASk7K,YAAY,EAAEnjC,OAAAA,EAAW,IAAG,CAAA,CAClH,MAAMyxF,iBAAAA,CAAoB,CACzBl4O,IAAAA,CAAM,CAAC,eAAe,EAAEwiD,KAAK2kG,UAAU,CAAC,CAAC,CACzC3xE,cAAAA,CAAgBP,IAAAA,CAAO7xC,oBAAsBD,mBAAAA,CAC7C+9C,mBAAAA,CAAqB1+B,IAAAA,CAAK0+B,mBAAmB,CAC7CzQ,qBAAAA,CAAuB/hE,SAAS+hE,qBAAqB,CACrDnH,uBAAAA,CAAyB9mB,IAAAA,CAAK8mB,uBAAuB,CACrDC,oBAAqB/mB,IAAAA,CAAK+mB,mBAAkB,CAC7C,CACA,MAAMiM,cAAAA,CAAiBP,KAAO7xC,mBAAAA,CAAsBD,mBAAAA,CACpD,MAAMm1M,cAAAA,CAAiB5xF,QAAAA,CAASC,KAAK,CACpCN,YAAAA,CAAazsJ,GAAG,CAACwxC,MAAAA,CAAQoqC,cAAAA,CAAAA,CACzB9mE,QAAAA,CAASk7K,YAAY,CAACp0G,cAAAA,CAAc,CAAA,CAErC,IAAI,CAACyiK,0BAA0B,CAACC,iBAAAA,CAAmBxpO,QAAAA,CAAAA,CACnD,IAAI,CAAC2pO,sBAAsB,CAACH,kBAAmBxpO,QAAAA,CAAU4pO,cAAAA,CAAgBrjK,IAAAA,CAAAA,CACzE,IAAI,CAACsjK,wBAAwB,CAACL,iBAAAA,CAAmBxpO,QAAAA,CAAU4pO,cAAAA,CAAgBrjK,IAAAA,CAAAA,CAC3E,OAAO4L,qBAAAA,CAAsBE,gBAAgB,CAAC31C,MAAAA,CAAQ8sM,kBACvD,CACD,CAAA,CACA,IAAIM,qBAAAA,CAAwB,IAAId,qBAAAA,CAEhC,IAAIe,cAAAA,CAAiB,cAAchoD,SAOlC,IAAIknD,UAAAA,CAAW5yO,KAAK,CAAE,CACrB,IAAI,CAAC2zO,WAAW,CAAG,MAAK,CACxB,GAAI3zO,KAAAA,CAAO,CACV,IAAI,CAAC2zO,WAAW,CAAG,CAClBvxF,UAAAA,CAAYpiJ,MAAMoiJ,UAAU,CAC5BhvF,UAAAA,CAAYpzD,KAAAA,CAAMozD,UAAU,CAC5B+oB,oBAAqBn8E,KAAAA,CAAMm8E,mBAAmB,CAC9CumE,UAAAA,CAAY1iJ,KAAAA,CAAM0iJ,UAAU,CAC5BC,YAAAA,CAAc3iJ,KAAAA,CAAM2iJ,YAAY,CAChCN,UAAAA,CAAYriJ,KAAAA,CAAMqiJ,UAAU,CAC5BE,YAAAA,CAAcviJ,KAAAA,CAAMuiJ,YAAW,CAChC,CACA,GAAIviJ,KAAAA,CAAMqwE,UAAU,EAAIrwE,KAAAA,CAAMswE,YAAY,EAAItwE,MAAMywE,cAAc,CAAE,CACnE,MAAMmjK,QAAAA,CAAW5zO,KAAAA,CAAMywE,cAAc,EAAIryC,mBAAAA,CACzC,GAAIw1M,QAAAA,GAAax1M,mBAAAA,CAAqB,CACrC,IAAI,CAACu1M,WAAW,CAACjxF,UAAU,CAAG1iJ,KAAAA,CAAMqwE,UAAU,CAC9C,IAAI,CAACsjK,WAAW,CAAChxF,YAAY,CAAG3iJ,KAAAA,CAAMswE,aACvC,CAAA,KAAO,GAAIsjK,WAAav1M,mBAAAA,CAAqB,CAC5C,IAAI,CAACs1M,WAAW,CAACtxF,UAAU,CAAGriJ,KAAAA,CAAMqwE,UAAU,CAC9C,IAAI,CAACsjK,WAAW,CAACpxF,YAAY,CAAGviJ,KAAAA,CAAMswE,aAAY,CAEpD,CACD,CACA,IAAI,CAACu8G,aAAa,GACnB,CACA,IAAI+lD,UAAAA,EAAa,CAChB,OAAO,IAAI,CAACe,WAAW,CAExBz8O,IAAAA,CAAK03C,MAAM,CAAE,CACZ,KAAK,CAAC13C,IAAAA,CAAK03C,MAAAA,CACX,CAAA,IAAI,CAACgkM,UAAU,CAAGhkM,MAAAA,CAAOgkM,UAAU,CACnC,OAAO,IACR,CACAl6E,gBAAAA,CAAiBjuJ,MAAM,CAAE,CACxB,KAAM,CAAEkuJ,OAAO,CAAE,CAAGluJ,MAAAA,CACpB,MAAMu4I,cAAAA,CAAiB1C,UAAAA,CAAWzrJ,GAAG,CAAC4V,MAAAA,CAAO47B,MAAM,EAAEq6G,UAAU,CAACj2I,MAAAA,CAAOw4I,IAAI,CAAA,CAC3E,MAAMt5I,SAAW,CAChB2sE,OAAAA,CAAS0rE,WAAAA,CAAYa,cAAc,CAAC,IAAI,CAAEp4I,MAAAA,CAAAA,CAC1Cu8I,IAAAA,CAAM,CAAC2R,OAAAA,CAAUhgB,cAAa,IAAO,CAAA,CACrCylC,aAAAA,CAAe,CAACzlB,OAAAA,CAAU5f,oBAAmB,IAAO,CAAA,CACpD6mC,gBAAAA,CAAkB,CAACjnB,OAAAA,CAAUvf,wBAAuB,IAAO,CAAA,CAC3DymC,cAAAA,CAAgB,CAAClnB,OAAAA,CAAUtf,sBAAqB,IAAO,CAAA,CACvDymC,uBAAAA,CAAyB,CAACnnB,OAAAA,CAAUpf,iCAAgC,IAAO,CAAA,CAC3E0J,IAAAA,CAAMx4I,MAAAA,CAAOw4I,IAAI,CACjBv1I,KAAAA,CAAOjD,OAAOs4I,kBAAkB,CAAC4hB,iBAAiB,CAClDnyE,WAAAA,CAAa/nF,MAAAA,CAAOs4I,kBAAkB,CAACvwD,WAAW,CAClD0xE,GAAAA,CAAKz5J,MAAAA,CAAOs4I,kBAAkB,CAACmhB,GAAG,CAClCx4F,qBAAAA,CAAuBs3E,cAAAA,CAAe3C,SAAS,EAAI,IAAI,CAAC79F,UAAU,CAAChM,sBAAsB,CACzFo8L,UAAAA,CAAY,IAAI,CAACA,UAAU,CAC3B/tD,YAAAA,CAAc,IAAI,CAACA,YAAW,CAE/B,CACA,MAAMthH,iBAAAA,CAAoB,IAAI27E,sBAAAA,CAAuBz0I,OAAO40I,iBAAiB,CAAE50I,MAAAA,CAAOy1C,YAAY,CAAA,CAClG,MAAMs/F,QAAUD,iBAAAA,CAAkB90I,MAAAA,CAAO47B,MAAM,CAAA,CAC/Cm5G,OAAAA,CAAQ6D,QAAQ,CAAC,iBAAA,CAAmBowF,qBAAAA,CAAAA,CACpC,OAAOj0F,OAAAA,CAAQ+D,UAAU,CAAC,kBAAmB55I,QAAAA,CAAU45D,iBAAAA,CAAmB,IAAI,CAACuqH,MAAM,CACtF,CA7DA,WAAA,CAAY8kD,UAAU,CAAE,CACvB,KAAK,EAAA,CAFNe,sBAAAA,aAAAA,CAAAA,MAAAA,CAGC,CAAA,IAAI,CAAClnD,kBAAkB,CAAG,KAC1B,CAAA,IAAI,CAACmmD,UAAU,CAAGA,WACnB,CA0DD,CAAA,CAEA,IAAIiB,wBAAAA,CAA2B;AAC/B;AACA;AACA;AACA,CAAC,CAED,IAAIC,yBAAAA,CAA4B;AAChC;AACA;AACA;AACA,CAAC,CAED,IAAIC,+BAAAA,CAAkC;AACtC;AACA;AACA;AACA,CAAC,CAED,IAAIC,0BAAAA,CAA6B;AACjC;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,2BAAAA,CAA8B;AAClC;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,0BAAAA,CAA6B;AACjC;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,2BAAAA,CAA8B;AAClC;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,2BAAAA,CAA8B;AAClC;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,4BAAAA,CAA+B;AACnC;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,gBAAAA,CAAoBxzE,SAAYA,OAAAA,CAAQriK,GAAG,CAAEd,EAAAA,EAAO,CAAC,EAAEA,EAAAA,CAAG1C,IAAI,CAAC,CAAC,EAAE0C,EAAAA,CAAGD,MAAM,CAAC,CAAC,EAAEC,GAAGovC,OAAO,CAAC,CAAC,CAAA,CAAE/0C,IAAI,CAAC,GAAA,CAAA,CACtG,IAAIu8O,eAAiB,CAAA,CACrB,IAAIC,OAAAA,CAAU,WAAA,CACd,IAAIC,UAAAA,CAAa,cAAA,CACjB,IAAIC,gBAAkB,kBAAA,CACtB,IAAIC,cAAAA,CAAiB,iBAAA,CACrB,IAAIC,YAAAA,CAAe,eAAA,CACnB,IAAIC,WAAa,cAAA,CACjB,IAAIC,QAAAA,CAAW,YAAA,CACf,IAAIC,aAAAA,CAAgB,gBAAA,CACpB,IAAIC,gBAAkB,kBAAA,CACtB,IAAIC,YAAAA,CAAe,MAAMC,cAmBxB,IAAIj6L,IAAAA,EAAO,CACV,GAAI,IAAI,CAAC8oH,KAAK,GAAK,MAAK,CAAG,CAC1B,MAAMoxE,UAAAA,CAAab,iBAAiB,IAAI,CAACxzE,OAAO,CAAA,CAChD,MAAMs0E,QAAAA,CAAWd,gBAAAA,CAAiB,IAAI,CAACe,aAAa,CACpD,CAAA,IAAI,CAACtxE,KAAK,CAAGhpH,QAAAA,CACZo6L,WAAaC,QAAAA,CAAW,IAAI,CAACE,KAAI,EAEnC,CACA,OAAO,IAAI,CAACvxE,KACb,CACA,IAAIwxE,mBAAAA,EAAsB,CACzB,OAAO,IAAI,CAACC,oBACb,CACA,IAAIC,YAAAA,EAAe,CAClB,OAAO,IAAI,CAACJ,aACb,CACA,IAAIK,eAAAA,EAAkB,CACrB,GAAI,IAAI,CAACC,gBAAgB,GAAK,IAAA,CAAM,CACnC,IAAI,CAACA,gBAAgB,CAAG,CAAA,GACpB,IAAI,CAAC70E,OAAO,CAAC74F,MAAM,CAAEtqE,EAAAA,EAAOA,EAAAA,CAAGovC,OAAO,GAAK+wG,sBAAAA,CAAAA,CAAAA,GAC3C,IAAI,CAACu3F,aAAa,CAACptK,MAAM,CAAC,EAACtqE,EAAOA,EAAAA,CAAGovC,OAAO,GAAK+wG,sBAAAA,CAAAA,EAEtD,CACA,OAAO,IAAI,CAAC63F,gBAAgB,CAE7B,IAAIC,eAAAA,EAAkB,CACrB,GAAI,IAAI,CAACC,gBAAgB,GAAK,IAAA,CAAM,CACnC,IAAI,CAACA,gBAAgB,CAAG,IAAI,CAACR,aAAa,CAACptK,MAAM,CAAC,EAACtqE,EAAOA,GAAGovC,OAAO,GAAK+wG,sBAAAA,EAC1E,CACA,OAAO,IAAI,CAAC+3F,gBAAgB,CAE7BC,eAAAA,CAAgBh1E,OAAO,CAAE,CACxB,GAAI,CAACA,OAAAA,EAAWA,OAAAA,CAAQ1oK,MAAM,GAAK,CAAA,CAAG,OACtC,IAAI29O,KAAAA,CAAQ,KAAA,CACZ,IAAK,MAAMp4O,MAAMmjK,OAAAA,CAAS,CACzB,GAAI,IAAI,CAACk1E,YAAY,CAAC92O,GAAG,CAACvB,EAAAA,CAAG1C,IAAI,CAAA,CAAG,CACnC,QACD,CACA,IAAI,CAACo6O,aAAa,CAACp8O,IAAI,CAAC,CACvBgC,IAAAA,CAAM0C,EAAAA,CAAG1C,IAAI,CACbyC,OAAQC,EAAAA,CAAGD,MAAM,CACjBqvC,OAAAA,CAASpvC,EAAAA,CAAGovC,OAAO,EAAI8wG,sBACxB,GACA,IAAI,CAACm4F,YAAY,CAACxtO,GAAG,CAAC7K,EAAAA,CAAG1C,IAAI,EAC7B86O,KAAAA,CAAQ,KACT,CACA,GAAIA,KAAAA,CAAO,CACV,IAAI,CAACP,oBAAoB,CAAG,EAAEjB,cAAAA,CAC9B,IAAI,CAAC0B,iBAAiB,GACvB,CACD,CACAC,mBAAmB/zM,KAAK,CAAE,CACzB,GAAI,CAAC,IAAI,CAACg0M,kBAAkB,CAAE,CAC7B,MACD,CACA,IAAIp2O,OAAAA,CAAU,KAAA,CACd,IAAK,MAAM9E,QAAQknC,KAAAA,CAAO,CACzB,MAAM5/B,GAAAA,CAAM,IAAI,CAAC8yO,aAAa,CAACx1G,SAAS,CAAEliI,EAAAA,EAAOA,EAAAA,CAAG1C,IAAI,GAAKA,IAAAA,CAAAA,CAC7D,GAAIsH,MAAQ,EAAC,CAAG,CACf,IAAI,CAAC8yO,aAAa,CAACt0O,MAAM,CAACwB,GAAAA,CAAK,CAAA,CAAA,CAC/B,IAAI,CAACyzO,YAAY,CAACl1O,MAAM,CAAC7F,MACzB8E,OAAAA,CAAU,KACX,CACD,CACA,GAAIA,OAAAA,CAAS,CACZ,IAAI,CAACy1O,oBAAoB,CAAG,EAAEjB,cAAAA,CAC9B,IAAI,CAAC0B,iBAAiB,GACvB,CACD,CACAG,oBAAAA,CAAqBC,WAAW,CAAE,CACjC,MAAMzpM,QAAAA,CAAW,IAAI,CAACkgB,OAAO,CAAClgB,QAAQ,CACtC,MAAM0pM,QAAAA,CAAW1pM,QAAAA,CAAWknM,yBAAAA,CAA4BD,wBAAAA,CACxD,MAAM0C,aAAAA,CAAgB3pM,QAAAA,CAAW3T,iBAAAA,CAAoBD,iBAAAA,CACrD,MAAMo+C,KAAAA,CAAQ,EAAE,CAChB,IAAI0pF,OAAAA,CAAU,CAAA,GAAI,IAAI,CAACA,OAAO,CAAA,GAAK,IAAI,CAACu0E,aAAa,CAAC,CACtD,GAAIgB,WAAAA,CAAa,CAChBv1E,OAAAA,CAAUA,OAAAA,CAAQ74F,MAAM,CAAC,EAACtqE,EAAO04O,WAAAA,CAAY96O,QAAQ,CAACoC,EAAAA,CAAG1C,IAAI,CAAA,EAC9D,CACA,IAAK,MAAM4xJ,MAAAA,IAAUiU,OAAAA,CAAS,CAC7B,MAAM1oI,IAAAA,CAAOm+M,aAAAA,CAAc1pF,OAAOnvJ,MAAM,CAAA,CACxC,MAAM84O,QAAAA,CAAW3pF,OAAO5xJ,IAAI,CAACtB,MAAM,CAAC,GAAGitF,WAAW,EAAA,CAAKimE,MAAAA,CAAO5xJ,IAAI,CAACjC,KAAK,CAAC,CAAA,CAAA,CACzE,IAAI6/B,WAAAA,CAAcT,IAAAA,CAAKS,WAAW,EAAI,EAAA,CACtC,GAAI+T,QAAAA,EAAYigH,MAAAA,CAAOnvJ,MAAM,GAAKo2B,mBAAAA,CAAqB,CACtD+E,WAAAA,CAAc,kBACf,CACA,MAAM49M,IAAAA,CAAOH,SAAS/+O,OAAO,CAACi9O,OAAAA,CAAS3nF,MAAAA,CAAO5xJ,IAAI,CAAA,CAAE1D,OAAO,CAACk9O,WAAYr8M,IAAAA,CAAKI,OAAO,EAAI,EAAA,CAAA,CAAIjhC,OAAO,CAACm9O,eAAAA,CAAiB77M,WAAAA,CAAAA,CAAathC,OAAO,CAACo9O,cAAAA,CAAgBv8M,IAAAA,CAAKK,UAAU,CAAA,CAAElhC,OAAO,CAACq9O,YAAAA,CAAc4B,UACjMp/J,KAAAA,CAAMn+E,IAAI,CAACw9O,IAAAA,EACZ,CACA,OAAOr/J,KAAAA,CAAMp/E,IAAI,CAAC,IAAA,CACnB,CACA0+O,WAAAA,EAAc,CACb,OAAO,IAAI,CAACpB,KACb,CACAqB,2BAAAA,CAA4BC,YAAY,CAAEP,WAAW,CAAE,CACtD,MAAMj/J,KAAAA,CAAQ,EAAE,CAChB,IAAI0pF,OAAAA,CAAU,CAAA,GAAI,IAAI,CAACA,OAAO,CAAA,GAAK,IAAI,CAACu0E,aAAa,CAAC,CACtD,GAAIgB,WAAAA,CAAa,CAChBv1E,OAAAA,CAAUA,QAAQ74F,MAAM,CAAC,EAACtqE,EAAO04O,WAAAA,CAAY96O,QAAQ,CAACoC,EAAAA,CAAG1C,IAAI,CAAA,EAC9D,CACA,IAAK,IAAI9C,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAK2oK,OAAAA,CAAQ1oK,MAAM,CAAED,EAAAA,EAAAA,CAAM,CAC3C,MAAM00J,MAAAA,CAASiU,OAAO,CAAC3oK,EAAAA,CAAG,CAC1B,MAAMigC,IAAAA,CAAOa,iBAAAA,CAAkB4zH,MAAAA,CAAOnvJ,MAAM,CAAA,CAC5C,MAAM84O,QAAAA,CAAW3pF,OAAO5xJ,IAAI,CAACtB,MAAM,CAAC,GAAGitF,WAAW,EAAA,CAAKimE,MAAAA,CAAO5xJ,IAAI,CAACjC,KAAK,CAAC,CAAA,CAAA,CACzE,IAAI6/B,WAAAA,CAAcT,IAAAA,CAAKS,WAAW,EAAI,GACtC,GAAIg0H,MAAAA,CAAOnvJ,MAAM,GAAKo2B,mBAAAA,CAAqB,CAC1C+E,WAAAA,CAAc,kBACf,CACA,MAAM49M,IAAAA,CAAO1C,+BAAAA,CAAgCx8O,OAAO,CAACs9O,UAAAA,CAAYn2O,MAAAA,CAAOk4O,YAAAA,CAAez+O,KAAKZ,OAAO,CAACi9O,OAAAA,CAAS3nF,MAAAA,CAAO5xJ,IAAI,CAAA,CAAE1D,OAAO,CAACm9O,gBAAiB77M,WAAAA,CAAAA,CAAathC,OAAO,CAACo9O,cAAAA,CAAgBv8M,IAAAA,CAAKK,UAAU,CAAA,CAAElhC,OAAO,CAACq9O,YAAAA,CAAc4B,QAAAA,CAAAA,CAC/Np/J,KAAAA,CAAMn+E,IAAI,CAACw9O,IAAAA,EACZ,CACA,OAAOr/J,MAAMp/E,IAAI,CAAC,IAAA,CACnB,CACA6+O,qBAAAA,CAAsBR,WAAW,CAAE,CAClC,IAAIv1E,OAAAA,CAAU,CAAA,GAAI,IAAI,CAACA,OAAO,CAAA,GAAK,IAAI,CAACu0E,aAAa,CAAC,CACtD,GAAIgB,WAAAA,CAAa,CAChBv1E,OAAAA,CAAUA,OAAAA,CAAQ74F,MAAM,CAAC,EAACtqE,EAAO04O,WAAAA,CAAY96O,QAAQ,CAACoC,EAAAA,CAAG1C,IAAI,CAAA,EAC9D,CACA,OAAO6lK,OAAAA,CAAQriK,GAAG,CAAEouJ,MAAAA,EAAAA,CACnB,MAAMz0H,IAAAA,CAAOZ,eAAAA,CAAgB3iC,GAAG,CAACg4J,MAAAA,CAAOnvJ,MAAM,CAAA,CAC9C,IAAIsnC,UAAAA,CAAarH,gBAAAA,CACjB,GAAIvF,MAAMP,MAAAA,CAAQmN,UAAAA,CAAajH,eAAAA,CAAAA,KAC1B,GAAI3F,IAAAA,EAAMJ,KAAAA,CAAOgN,UAAAA,CAAalH,cAAAA,CACnC,OAAO,IAAIgH,iBAAAA,CAAkB+nH,MAAAA,CAAO5xJ,IAAI,CAAE0nC,mBAAAA,CAAqB,MAAK,CAAGqC,WAAY,KAAA,CACpF,CAAA,CACD,CACA8xM,YAAAA,CAAaC,SAAS,CAAEC,SAAS,CAAE,CAClC,IAAI,CAACC,MAAM,CAAG,IAAI,CAACnqL,OAAO,CAAClgB,QAAQ,CAAGoqM,SAAAA,CAAYD,UACnD,CACAG,YAAAA,EAAe,CACd,OAAO,IAAI,CAACD,MAAM,CAEnBE,qBAAAA,CAAsBC,aAAa,CAAE,CACpC,MAAMxqM,QAAAA,CAAW,IAAI,CAACkgB,OAAO,CAAClgB,QAAQ,CACtC,MAAMwqC,KAAAA,CAAQ,EAAE,CAChB,MAAMk/J,QAAAA,CAAW1pM,QAAAA,CAAWqnM,2BAAAA,CAA8BD,0BAAAA,CAC1D,MAAMuC,aAAAA,CAAgB3pM,QAAAA,CAAW3T,kBAAoBD,iBAAAA,CACrD,IAAK,IAAI7gC,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAKi/O,aAAAA,CAAch/O,MAAM,CAAED,EAAAA,EAAAA,CAAM,CACjD,MAAM00J,MAAAA,CAASuqF,aAAa,CAACj/O,EAAAA,CAAG,CAChC,MAAMigC,IAAAA,CAAOm+M,aAAAA,CAAc1pF,MAAAA,CAAOnvJ,MAAM,CAAA,CACxC,MAAM84O,QAAAA,CAAW3pF,MAAAA,CAAO5xJ,IAAI,CAACtB,MAAM,CAAC,CAAA,CAAA,CAAGitF,WAAW,EAAA,CAAKimE,MAAAA,CAAO5xJ,IAAI,CAACjC,KAAK,CAAC,CAAA,CAAA,CACzE,MAAMq+O,SAAAA,CAAYl/O,EAAAA,GAAO,CAAA,CAAI,OAAA,CAAU,CAAC,KAAK,EAAEA,EAAAA,CAAG,CAAC,CACnD,MAAMs+O,IAAAA,CAAOH,QAAAA,CAAS/+O,OAAO,CAACq9O,YAAAA,CAAc4B,QAAAA,CAAAA,CAAUj/O,OAAO,CAACo9O,cAAAA,CAAgBv8M,IAAAA,CAAKK,UAAU,CAAA,CAAElhC,OAAO,CAACu9O,QAAAA,CAAUp2O,MAAAA,CAAOvG,EAAAA,CAAAA,CAAAA,CAAKZ,OAAO,CAACw9O,aAAAA,CAAesC,SAAAA,CAAAA,CAAW9/O,OAAO,CAACy9O,eAAAA,CAAiB,GAAA,CAAA,CACxL59J,KAAAA,CAAMn+E,IAAI,CAACw9O,IAAAA,EACZ,CACA,OAAOr/J,KAAAA,CAAMp/E,IAAI,CAAC,IAAA,CACnB,CACAs/O,cAAAA,CAAex2E,OAAO,CAAE,CACvB,MAAMl0H,QAAAA,CAAW,IAAI,CAACkgB,OAAO,CAAClgB,QAAQ,CACtC,MAAMwqC,KAAAA,CAAQ,EAAE,CAChB,MAAMk/J,SAAW1pM,QAAAA,CAAWqnM,2BAAAA,CAA8BD,0BAAAA,CAC1D,MAAMuC,cAAgB3pM,QAAAA,CAAW3T,iBAAAA,CAAoBD,iBAAAA,CACrD,IAAK,MAAM6zH,MAAAA,IAAUiU,OAAAA,CAAS,CAC7B,MAAM1oI,IAAAA,CAAOm+M,aAAAA,CAAc1pF,MAAAA,CAAOnvJ,MAAM,CAAA,CACxC,MAAM84O,QAAAA,CAAW3pF,MAAAA,CAAO5xJ,IAAI,CAACtB,MAAM,CAAC,CAAA,CAAA,CAAGitF,WAAW,EAAA,CAAKimE,MAAAA,CAAO5xJ,IAAI,CAACjC,KAAK,CAAC,CAAA,CAAA,CACzE,MAAMu+O,IAAAA,CAAOjB,QAAAA,CAAS/+O,OAAO,CAACq9O,aAAc4B,QAAAA,CAAAA,CAAUj/O,OAAO,CAACo9O,cAAAA,CAAgBv8M,IAAAA,CAAKK,UAAU,CAAA,CAAElhC,OAAO,CAACy9O,eAAAA,CAAiB,GAAA,CAAA,CACxH59J,KAAAA,CAAMn+E,IAAI,CAACs+O,IAAAA,EACZ,CACA,OAAOngK,MAAMp/E,IAAI,CAAC,IAAA,CACnB,CACAw/O,SAAAA,CAAUv8O,IAAI,CAAE,CACf,IAAI4xJ,MAAAA,CAAS,IAAI,CAACiU,OAAO,CAAC7xG,IAAI,CAAC,EAACtxD,EAAOA,GAAG1C,IAAI,GAAKA,IAAAA,CAAAA,CACnD,GAAI,CAAC4xJ,MAAAA,CAAQ,CACZA,MAAAA,CAAS,IAAI,CAACwoF,aAAa,CAACpmL,IAAI,CAAEtxD,EAAAA,EAAOA,EAAAA,CAAG1C,IAAI,GAAKA,IAAAA,EACtD,CACA,OAAO4xJ,MACR,CACAopF,iBAAAA,EAAoB,CACnB,IAAI,CAAClyE,KAAK,CAAG,MACb,CAAA,IAAI,CAAC4xE,gBAAgB,CAAG,IACxB,CAAA,IAAI,CAACE,gBAAgB,CAAG,KACzB,CACA,OAAO4B,mBAAAA,CAAoBpxM,MAAM,CAAE,CAClC,OAAO,IAAI6uM,aAAAA,CAAc7uM,OAAQ,CAChC,CAAEprC,IAAAA,CAAM,WAAA,CAAayC,MAAAA,CAAQk2B,mBAAoB,CAAA,CACjD,CAAE34B,KAAM,YAAA,CAAcyC,MAAAA,CAAQo2B,mBAAoB,CAAA,CAClD,CAAE74B,IAAAA,CAAM,WAAA,CAAayC,MAAAA,CAAQk2B,mBAAoB,EACjD,CAAE34B,IAAAA,CAAM,cAAA,CAAgByC,MAAAA,CAAQk2B,mBAAoB,CAAA,CACpD,CAAE,CACF8jN,SAAUxD,0BAAAA,CACVyD,QAAAA,CAAUxD,2BACX,CAAA,CACD,CACA,OAAOyD,kBAAAA,CAAmBvxM,MAAM,CAAE,CACjC,OAAO,IAAI6uM,aAAAA,CAAc7uM,MAAAA,CAAQ,CAChC,CAAEprC,IAAAA,CAAM,aAAcyC,MAAAA,CAAQo2B,mBAAoB,CAAA,CAClD,CAAE74B,IAAAA,CAAM,WAAA,CAAayC,MAAAA,CAAQk2B,mBAAoB,EACjD,CAAE,CACF8jN,QAAAA,CAAUtD,2BAAAA,CACVuD,QAAAA,CAAUtD,4BACX,CAAA,CACD,CArMA,YAAYhuM,MAAM,CAAEy6H,OAAO,CAAEn3J,QAAQ,CAAE,CAXvCmjD,gBAAAA,CAAAA,IAAAA,CAAAA,UAAAA,MAAAA,CAAAA,CACAg0G,gBAAAA,CAAAA,IAAAA,CAAAA,SAAAA,CAAAA,MAAAA,CAAAA,CACAw0E,gBAAAA,CAAAA,IAAAA,CAAAA,OAAAA,CAAAA,MAAAA,CAAAA,CACAa,gBAAAA,CAAAA,IAAAA,CAAAA,oBAAAA,CAAqB,KAAA,CAAA,CACrB0B,sBAAAA,YAAAA,CAAa,IAAA,CAAA,CACbxC,gBAAAA,CAAAA,IAAAA,CAAAA,eAAAA,CAAgB,EAAE,CAAA,CAClBW,gBAAAA,CAAAA,IAAAA,CAAAA,cAAAA,CAA+B,IAAI72O,GAAAA,CAAAA,CACnCq2O,gBAAAA,CAAAA,IAAAA,CAAAA,sBAAAA,CAAuB,EAAEjB,gBACzBxwE,gBAAAA,CAAAA,IAAAA,CAAAA,OAAAA,CAAAA,MAAAA,CAAAA,CACA4xE,gBAAAA,CAAAA,IAAAA,CAAAA,kBAAAA,CAAmB,IAAA,CAAA,CACnBE,gBAAAA,CAAAA,IAAAA,CAAAA,mBAAmB,IAAA,CAElB,CAAA,IAAI,CAAC/oL,OAAO,CAAGzmB,MACf,CAAA,IAAI,CAACy6H,OAAO,CAAG,CAAA,GAAIA,QAAQ,CAC3B,IAAI,CAACk1E,YAAY,CAAG,IAAI72O,GAAAA,CAAI,IAAI,CAAC2hK,OAAO,CAACriK,GAAG,CAAC,EAACd,EAAOA,EAAAA,CAAG1C,IAAI,CAAA,CAAA,CAC5D,MAAM2xC,QAAAA,CAAWvG,MAAAA,CAAOuG,QAAQ,CAChC,IAAI,CAAC0oM,KAAK,CAAG1oM,QAAAA,CAAWjjC,QAAAA,CAASguO,QAAQ,CAAGhuO,QAAAA,CAAS+tO,SACtD,CAgMD,CAAA,CAEA,IAAII,YAAAA,CAAe,CAAA,CAEnB,IAAIC,2BAAAA,CAA8B;AAClC;AACA;AACA,CAAC,CAED,IAAIC,2BAAAA,CAA8B;AAClC;AACA;AACA,CAAC,CAED,IAAIC,4BAAAA,CAA+B;AACnC;AACA;AACA;AACA,CAAC,CAED,IAAIC,4BAAAA,CAA+B;AACnC;AACA,CAAC,CAED,IAAIC,2BAAAA,CAA8B;AAClC;AACA;AACA,CAAC,CAED,IAAIC,4BAAAA,CAA+B;AACnC;AACA;AACA,CAAC,CAED,IAAIC,iCAAAA,CAAoC;AACxC;AACA,CAAC,CAED,IAAIC,gCAAAA,CAAmC;AACvC;AACA,CAAC,CAED,IAAIC,UAAAA,CAAa,CAChB,CAAC35M,cAAe,CAAC,OAAA,CAAS,MAAA,CAAQ,OAAQ,MAAA,CAAO,CACjD,CAACF,UAAAA,EAAa,CAAC,KAAA,CAAO,OAAA,CAAS,OAAA,CAAS,OAAA,CAAQ,CAChD,CAACC,WAAAA,EAAc,CAAC,OAAQ,OAAA,CAAS,OAAA,CAAS,OAAA,CAC3C,EACA,IAAI65M,UAAAA,CAAa,CAChB,CAAC55M,YAAAA,EAAe,CAAC,KAAA,CAAO,OAAA,CAAS,OAAA,CAAS,QAAQ,CAClD,CAACF,UAAAA,EAAa,CAAC,KAAA,CAAO,OAAA,CAAS,OAAA,CAAS,OAAA,CAAQ,CAChD,CAACC,WAAAA,EAAc,CAAC,KAAA,CAAO,QAAS,OAAA,CAAS,OAAA,CAAO,CACjD,CACA,IAAI85M,iBAAAA,CAAoB,CAAC,IAAK,GAAA,CAAK,GAAA,CAAK,IAAI,CAC5C,IAAIC,QAAAA,CAAW,WAAA,CACf,IAAIC,OAAAA,CAAU,WAAA,CACd,IAAIC,aAAAA,CAAgB,eAAA,CACpB,IAAIC,OAAAA,CAAU,WAAA,CACd,IAAIC,QAAAA,CAAW,aACf,IAAIC,gBAAAA,CAAmB,CAAC,sBAAA,CAAwB,uBAAuB,CACvE,IAAIC,gBAAAA,CAAmB,CACtB,uBACA,2BAAA,CACA,sBAAA,CACA,uBACA,wBAAA,CACA,uBAAA,CACA,CACD,IAAIC,MAAAA,CAAS,IAACh+O,EAASA,KAAKtB,MAAM,CAAC,GAAGitF,WAAW,EAAA,CAAK3rF,KAAKjC,KAAK,CAAC,CAAA,CAAA,CACjE,IAAIkgP,WAAa,CAAC3pO,IAAAA,CAAMspE,QACvB,OAAOtpE,IAAAA,GAASovB,YAAck6C,IAAAA,CAAO,CAAC,aAAa,EAAEA,KAAK,CAAC,CAAC,CAC7D,CACA,IAAIsgK,UAAAA,CAAa,CAAC5pO,IAAAA,CAAMspE,IAAAA,GAAAA,CACvB,GAAItpE,IAAAA,GAASovB,WAAAA,CAAa,OAAOk6C,IAAAA,CACjC,OAAOtpE,OAASmvB,UAAAA,CAAa,CAAC,aAAa,EAAEm6C,KAAK,CAAC,CAAC,CAAG,CAAC,aAAa,EAAEA,IAAAA,CAAK,CAAC,CAC9E,EACA,IAAIugK,cAAAA,CAAiB,MAQpB,IAAIt4E,OAAAA,EAAU,CACb,OAAO,IAAI,CAACu4E,QAAQ,CAErB,IAAIr3K,KAAAA,EAAQ,CACX,OAAO,IAAI,CAACs3K,MACb,CACA,IAAI1iP,OAAAA,EAAU,CACb,OAAO,IAAI,CAAC2iP,QACb,CACA/wO,GAAAA,CAAIs4J,OAAO,CAAE,CACZ,IAAK,MAAMnjK,EAAAA,IAAMmjK,QAAS,CACzB,IAAI,CAACu4E,QAAQ,CAACpgP,IAAI,CAAC,CAAEgC,IAAAA,CAAM0C,EAAAA,CAAG1C,IAAI,CAAEsU,IAAAA,CAAM5R,EAAAA,CAAG4R,IAAI,CAAEusC,UAAAA,CAAYn+C,EAAAA,CAAGm+C,UAAW,GAC9E,CACA,IAAI,CAAC09L,QAAQ,GACd,CACAl3O,MAAAA,CAAO6/B,KAAK,CAAE,CACb,MAAM6F,KAAAA,CAAQ,IAAI,CAACqxM,QAAQ,CAACjhP,MAC5B,CAAA,IAAI,CAACihP,QAAQ,CAAG,IAAI,CAACA,QAAQ,CAACpxK,MAAM,CAAC,EAACrwE,EAAO,CAACuqC,MAAM5mC,QAAQ,CAAC3D,EAAAA,CAAGqD,IAAI,GACpE,GAAI,IAAI,CAACo+O,QAAQ,CAACjhP,MAAM,GAAK4vC,KAAAA,CAAO,CACnC,IAAI,CAACwxM,QAAQ,GACd,CACD,CACAA,UAAW,CACV,IAAI,CAACF,MAAM,CAAG,IAAI,CAACD,QAAQ,CAAC97L,MAAM,CAAC,CAACqnC,GAAAA,CAAKjnF,EAAAA,GAAOinF,GAAAA,CAAMjnF,GAAGm+C,UAAU,CAAE,EACrE,CAAA,IAAI,CAACy9L,QAAQ,GACd,CACAE,eAAAA,EAAkB,CACjB,MAAM7sM,QAAAA,CAAW,IAAI,CAACkgB,OAAO,CAAClgB,QAAQ,CACtC,MAAM8sM,MAAQ9sM,QAAAA,CAAW4rM,UAAAA,CAAaD,WACtC,MAAMoB,cAAAA,CAAiB/sM,SAAWqrM,4BAAAA,CAA+BF,2BAAAA,CACjE,MAAM6B,cAAAA,CAAiBhtM,SAAWwrM,4BAAAA,CAA+BJ,2BAAAA,CACjE,MAAM6B,EAAAA,CAAK,EAAE,CACb,MAAMC,EAAAA,CAAK,EAAE,CACb,MAAM5tI,KAAAA,CAAQ,EAAE,CAChB,MAAM6tI,EAAAA,CAAK,EAAE,CACb,MAAMC,UAAAA,CAAa,EAAE,CACrB,MAAMC,SAAAA,CAAY,EAAE,CACpB,IAAIC,UAAAA,CAAa,CAAA,CACjB,IAAK,MAAMv8O,MAAM,IAAI,CAAC07O,QAAQ,CAAE,CAC/B,KAAM,CAAEp+O,IAAI,CAAEsU,IAAI,CAAEusC,UAAAA,CAAYq+L,WAAW,CAAE,CAAGx8O,GAChD,MAAMkxE,UAAAA,CAAa6qK,KAAK,CAACnqO,KAAK,CAAC4qO,WAAAA,CAAc,EAAE,CAC/C,MAAM3D,SAAWyC,MAAAA,CAAOh+O,IAAAA,CAAAA,CACxB,MAAM+a,GAAAA,CAAM,QAACsgO,EAAaA,QAAAA,CAAS/+O,OAAO,CAACmhP,SAAUz9O,IAAAA,CAAAA,CAAM1D,OAAO,CAACohP,OAAAA,CAAS9pK,YAAYt3E,OAAO,CAACqhP,cAAepC,QAAAA,CAAAA,CAC/GqD,EAAAA,CAAG5gP,IAAI,CAAC+c,GAAAA,CAAI2jO,cAAAA,CAAAA,CAAAA,CACZG,EAAAA,CAAG7gP,IAAI,CAAC+c,GAAAA,CAAI4jO,iBACZ,GAAIhtM,QAAAA,CAAU,CACbs/D,KAAAA,CAAMjzG,IAAI,CAAC+c,GAAAA,CAAIkiO,+BACf6B,EAAAA,CAAG9gP,IAAI,CAAC+c,GAAAA,CAAImiO,2BAAAA,CAAAA,CAAAA,CACZ,MAAMn2K,KAAAA,CAAQ,EAAE,CAChB,IAAK,IAAIxqE,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAK2iP,WAAAA,CAAa3iP,KAAM,CACxC,MAAM4iP,SAAAA,CAAYD,WAAAA,GAAgB,EAAI,CAAC,MAAM,EAAEl/O,IAAAA,CAAK,CAAC,CAAG,CAAC,MAAM,EAAEA,IAAAA,CAAK,CAAC,EAAEw9O,iBAAiB,CAACjhP,EAAAA,CAAG,CAAC,CAAC,CAChGwiP,UAAAA,CAAW/gP,IAAI,CAACo/O,kCAAkC9gP,OAAO,CAACshP,QAASn6O,MAAAA,CAAOo5O,YAAAA,CAAeoC,WAAa1iP,EAAAA,CAAAA,CAAAA,CAAKD,OAAO,CAACuhP,QAAAA,CAAUI,WAAW3pO,IAAAA,CAAM6qO,SAAAA,CAAAA,CAAAA,CAAAA,CAC9Ip4K,KAAAA,CAAM/oE,IAAI,CAACkgP,UAAAA,CAAW5pO,IAAAA,CAAM,CAAC,iBAAiB,EAAEuoO,YAAAA,CAAeoC,UAAAA,CAAa1iP,GAAG,EAAE,CAAC,GACnF,CACAyiP,SAAAA,CAAUhhP,IAAI,CAACq/O,iCAAiC/gP,OAAO,CAACmhP,SAAUz9O,IAAAA,CAAAA,CAAM1D,OAAO,CAACuhP,QAAAA,CAAUqB,WAAAA,GAAgB,CAAA,CAAIn4K,KAAK,CAAC,CAAA,CAAE,CAAG,CAAC,EAAE6M,UAAAA,CAAW,CAAC,EAAE7M,KAAAA,CAAMhqE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA,EAC9J,CACAkiP,YAAcC,YACf,CACA,MAAM77D,MAAAA,CAAS,CACd+7D,oBAAAA,CAAsBR,EAAAA,CAAG7hP,IAAI,CAAC,EAAA,CAAA,CAC9BsiP,qBAAsBR,EAAAA,CAAG9hP,IAAI,CAAC,EAAA,CAC/B,EACA,GAAI40C,QAAAA,CAAU,CACb0xI,MAAAA,CAAOi8D,yBAAyB,CAAGruI,KAAAA,CAAMl0G,IAAI,CAAC,EAAA,CAC9CsmL,CAAAA,MAAAA,CAAOk8D,oBAAoB,CAAGT,EAAAA,CAAG/hP,IAAI,CAAC,EAAA,CACtCsmL,CAAAA,MAAAA,CAAOm8D,sBAAsB,CAAGT,UAAAA,CAAWhiP,IAAI,CAAC,EAAA,CAChDsmL,CAAAA,MAAAA,CAAOo8D,qBAAqB,CAAGT,SAAAA,CAAUjiP,IAAI,CAAC,EAAA,EAC/C,CACA,OAAOsmL,MACR,CACAtpL,KAAAA,CAAM8tJ,QAAQ,CAAE,CACf,MAAMl2G,QAAAA,CAAW,IAAI,CAACkgB,OAAO,CAAClgB,QAAQ,CACtC,MAAM0xI,MAAAA,CAASx7B,QAAAA,CAASkpC,eAAe,CAACp/I,QAAAA,CAAWvO,oBAAsBD,mBAAAA,CAAAA,CACzE0kH,QAAAA,CAAS+oC,SAAS,CAAC,sBAAA,CAAwB,IAAI,CAACwtD,QAAQ,CAACjhP,MAAM,CAAG,CAAA,CAAA,CAClE,GAAI,IAAI,CAACihP,QAAQ,CAACjhP,MAAM,CAAG,CAAA,CAAG,CAC7B,MAAMglL,OAAAA,CAAU,IAAI,CAACq8D,eAAe,EAAA,CACpC,IAAK,MAAMx+O,IAAAA,IAAQmiL,OAAAA,CAAS,CAC3BkB,MAAAA,CAAOx/K,GAAG,CAAC7D,IAAAA,CAAMmiL,OAAO,CAACniL,IAAAA,CAAK,EAC/B,CACD,CAAA,KAAO,CACN,MAAMknC,KAAAA,CAAQyK,SAAWosM,gBAAAA,CAAmBD,gBAAAA,CAC5C52M,KAAAA,CAAMt9B,OAAO,CAAC,IAAC5J,EAASqjL,MAAAA,CAAOx9K,MAAM,CAAC7F,IAAAA,CAAAA,EACvC,CACA6nJ,QAAAA,CAAS9wG,MAAM,GAChB,CAvFA,WAAA,CAAY3L,MAAM,CAAE,CAJpBymB,sBAAAA,SAAAA,CAAAA,MAAAA,CAAAA,CACAusL,gBAAAA,CAAAA,IAAAA,CAAAA,WAAW,EAAE,CAAA,CACbC,sBAAAA,QAAAA,CAAS,CAAA,CAAA,CACTC,sBAAAA,UAAAA,CAAW,CAAA,CAEV,CAAA,IAAI,CAACzsL,OAAO,CAAGzmB,OAChB,CAsFD,CAAA,CAEA,IAAIs0M,4BAAAA,CAA+B;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,6BAAAA,CAAgC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,2BAAAA,CAA8B;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,4BAAAA,CAA+B;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,6BAAAA,CAAgC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,8BAAA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BAAuB,CAAG,IAAI7zN,eAAAA,CAAgBc,MAAAA,CAAQ+0N,gBAC5D,CAyKD,CAAA,CAEA,IAAIC,wBAAAA,CAA2B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,kBAAAA,CAAqB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,qBAAAA,CAAwB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,KAAAA,CAAQ,GAAA,CACZ,IAAIC,eAAAA,CAAkB,EAAA,CACtB,IAAIC,SAAAA,CAAYF,KAAAA,CAAQC,eAAAA,CACxB,IAAIE,WAAa,GAAA,CACjB,IAAIC,gBAAAA,CAAmB,KAAA,CACvB,IAAIC,KAAAA,CAAQ,GAAA,CACZ,IAAIC,UAAAA,CAAa,CAAA,CACjB,IAAIC,wBAAAA,CAA2B,cAAcrF,oBAAAA,CAkH5ClxN,OAAAA,EAAU,CACT,IAAI,CAACyzN,eAAe,EACpB,CAAA,IAAI,CAAC+C,iBAAiB,EAAEx2N,OAAAA,EACxB,CAAA,IAAI,CAAC2vN,WAAW,EAAE3vN,OAAAA,EAClB,CAAA,IAAI,CAACy2N,cAAc,EAAEz2N,OAAAA,EACrB,CAAA,IAAI,CAAC02N,0BAA0B,EAAE12N,OAAAA,EACjC,CAAA,IAAI,CAAC22N,oBAAoB,EAAE32N,OAAAA,EAC3B,CAAA,IAAI,CAAC42N,uBAAuB,EAAE52N,OAAAA,EAC9B,CAAA,IAAI,CAACw2N,iBAAiB,CAAG,IACzB,CAAA,IAAI,CAAC7G,WAAW,CAAG,IACnB,CAAA,IAAI,CAAC8G,cAAc,CAAG,IACtB,CAAA,IAAI,CAACI,kBAAkB,CAAG,IAC1B,CAAA,IAAI,CAACC,YAAY,CAAG,IACpB,CAAA,IAAI,CAACC,gBAAgB,CAACnkQ,MAAM,CAAG,CAC/B,CAAA,IAAI,CAAC8jQ,0BAA0B,CAAG,IAClC,CAAA,IAAI,CAACC,oBAAoB,CAAG,IAC5B,CAAA,IAAI,CAACC,uBAAuB,CAAG,IAC/B,CAAA,IAAI,CAACI,wBAAwB,CAAG,IAChC,CAAA,IAAI,CAACC,kBAAkB,CAAG,IAC1B,CAAA,IAAI,CAACC,qBAAqB,CAAG,IAAA,CAC7B,KAAK,CAACl3N,OAAAA,GACP,CACAyzN,eAAAA,EAAkB,CACjB,IAAI,CAACd,uBAAuB,EAC5B,CAAA,IAAI,CAACwE,WAAW,EAAEn3N,OAAAA,EAClB,CAAA,IAAI,CAACo3N,SAAS,EAAEp3N,OAAAA,EAChB,CAAA,IAAI,CAACrjC,MAAM,EAAEqjC,OAAAA,EACb,CAAA,IAAI,CAACm3N,WAAW,CAAG,IACnB,CAAA,IAAI,CAACC,SAAS,CAAG,IACjB,CAAA,IAAI,CAACz6P,MAAM,CAAG,IACd,CAAA,IAAI,CAAC06P,sBAAsB,CAAG,CAC9B,CAAA,IAAI,CAACC,aAAa,CAAG,EACtB,CACA,IAAI/F,SAAAA,EAAY,CACf,OAAO,CACR,CACAgG,sBAAAA,CAAuBlG,SAAS,CAAE,CACjC,MAAO,IAAI,CAAC0F,gBAAgB,CAACnkQ,MAAM,CAAGy+P,SAAAA,CAAW,CAChD,IAAI,CAAC0F,gBAAgB,CAACtjQ,IAAI,CAAC,IAAI0vH,OAAAA,CAAQ,IAAI,CAACtiF,MAAM,CAAE,IAAI,CAAC41N,cAAc,CAAE,CAAC,gBAAgB,EAAE,IAAI,CAACM,gBAAgB,CAACnkQ,MAAM,CAAC,CAAC,CAAA,EAC3H,CACD,CACAgiQ,iBAAiB/mM,YAAY,CAAEgnM,YAAAA,CAAe,KAAK,CAAE,CACpD,MAAMpC,cAAAA,CAAiBvgQ,IAAAA,CAAK6T,GAAG,CAAC8nD,YAAAA,CAAc,IAAI,CAAC0yB,QAAQ,CAAA,CAC3D,MAAMi3K,iBAAAA,CAAoBtlQ,IAAAA,CAAK6T,GAAG,CAAC,CAAA,CAAG7T,IAAAA,CAAKmV,IAAI,CAACorP,cAAAA,CAAiByD,SAAAA,CAAAA,CAAAA,CACjE,MAAMuB,mBAAAA,CAAsBvlQ,IAAAA,CAAK6T,GAAG,CAAC,CAAA,CAAG7T,KAAKmV,IAAI,CAACwmD,YAAAA,CAAeqoM,SAAAA,CAAAA,CAAAA,CACjE,MAAMwB,WAAAA,CAAc7C,YAAAA,EAAgB2C,iBAAAA,GAAsB,IAAI,CAACH,sBAAsB,EAAI,CAAC,IAAI,CAAC3F,MAAM,CACrG,GAAIgG,WAAAA,CAAa,CAChB,IAAI,CAACjE,eAAe,EACpB,CAAA,IAAI,CAAC4D,sBAAsB,CAAGG,iBAC9B,CAAA,IAAI,CAACj3K,QAAQ,CAAGkyK,cAAAA,CAChB,MAAM5xN,MAAAA,CAAS,IAAI,CAACA,MAAM,CAC1B,IAAI,CAAC2xN,+BAA+B,CAACC,cAAAA,CACrC,CAAA,IAAI,CAAC0E,WAAW,CAAG,IAAI99M,aAAAA,CAAcxY,MAAAA,CAAQy1N,UAAAA,CAAaD,KAAAA,CAAQ,CAAA,CAAGhsO,oBAAAA,CACrE,CAAA,IAAI,CAAC+sO,SAAS,CAAG,IAAI/9M,aAAAA,CAAcxY,MAAAA,CAAQy1N,WAAakB,iBAAAA,CAAoBnB,KAAAA,CAAQ,CAAA,CAAGhsO,oBAAAA,CACvF,CAAA,IAAI,CAAC1tB,MAAM,CAAG,IAAI08C,aAAAA,CAAcxY,MAAAA,CAAQy1N,UAAAA,CAAa,CAAA,CAAGjsO,oBAAAA,EACzD,CACA,IAAI,CAACitO,aAAa,CAAGG,mBAAAA,CACrB,MAAME,SAAAA,CAAY,IAAI,CAAC92N,MAAM,CAACmoD,MAAM,CAAC2nK,gCAAgC,EAAI,KAAA,CACzExtI,OAAAA,CAAQO,gBAAgB,CAAC+zI,mBAAAA,CAAqB,IAAI,CAACG,oBAAoB,CAAED,SAAAA,CAAAA,CACzE,MAAME,UAAAA,CAAa3lQ,IAAAA,CAAK6T,GAAG,CAAC,CAAA,CAAG7T,IAAAA,CAAKmV,IAAI,CAACwmD,aAAeuoM,gBAAAA,CAAAA,CAAAA,CACxDjzI,OAAAA,CAAQO,gBAAgB,CAACm0I,UAAAA,CAAY,IAAI,CAACC,uBAAuB,CAAEH,SAAAA,EACpE,CACA/0P,IAAAA,CAAKivP,UAAU,CAAEhkM,YAAY,CAAEikM,QAAU,EAAE,CAAEC,aAAa,CAAEC,oBAAAA,CAAuB,KAAK,CAAEC,eAAAA,CAAkB,KAAK,CAAE,CAClH,MAAMZ,SAAAA,CAAYS,OAAAA,CAAU,CAAA,CAC5B,MAAMuC,iBAAmB,CAAC,CAACtC,aAC3B,CAAA,IAAI,CAACe,aAAa,CAAGjlM,YACrB,CAAA,IAAI,CAACyjM,QAAQ,CAAGQ,OAChB,CAAA,IAAI,CAACiB,iBAAiB,CAAGsB,gBACzB,CAAA,IAAI,CAACrB,qBAAqB,CAAGhB,oBAAAA,CAC7B,MAAMsD,mBAAAA,CAAsB,IAAI,CAAC5C,gBACjC,CAAA,IAAI,CAACA,gBAAgB,CAAGT,eAAAA,CACxB,IAAI,CAAC2C,gBAAgB,CAAC/mM,YAAAA,CAAcokM,eAAAA,GAAoBqD,mBAAAA,CAAAA,CACxD,IAAI,CAACiC,sBAAsB,CAAClG,WAC5B,GAAIY,eAAAA,CAAiB,CACpB,IAAI,CAACL,MAAM,CAAGC,WACf,CACA,MAAMhxN,MAAAA,CAAS,IAAI,CAACA,MAAM,CAC1B,IAAI,CAACs2N,WAAW,CAAC97P,KAAK,EAAA,CACtB,IAAI,CAAC+7P,SAAS,CAAC/7P,KAAK,CAAC,CAAA,CAAGi7P,UAAAA,CAAa,IAAI,CAACgB,aAAa,CAAGjB,MAAQ,CAAA,CAAA,CAClE,IAAI,CAAC15P,MAAM,CAACtB,KAAK,EAAA,CACjB,MAAM08P,WAAAA,CAAc,IAAI,CAAClB,kBAAkB,CAC3CkB,WAAAA,CAAY30I,YAAY,CAAC,SAAUyuI,UAAAA,CAAAA,CACnCkG,WAAAA,CAAY30I,YAAY,CAAC,cAAA,CAAgB,IAAI,CAAC+zI,WAAW,CAAA,CACzDY,WAAAA,CAAY30I,YAAY,CAAC,SAAA,CAAWv1D,YAAAA,CAAAA,CACpCkqM,WAAAA,CAAY30I,YAAY,CAAC,cAAA,CAAgB,IAAI,CAACk0I,aAAa,CAAA,CAC3DS,WAAAA,CAAY30I,YAAY,CAAC,WAAA,CAAaiuI,SAAAA,CAAAA,CACtC0G,WAAAA,CAAY30I,YAAY,CAAC,MAAA,CAAQ,CAAA,CAAA,CACjC20I,WAAAA,CAAYv0I,aAAa,CAAC,IAAI,CAACs0I,uBAAuB,CAACppP,CAAC,CAAE,IAAI,CAACopP,uBAAuB,CAACnpP,CAAC,CAAE,CAAA,CAAA,CAC1FkyB,MAAAA,CAAOoiB,eAAe,CAAC,CAAC80M,WAAAA,CAAY,CAAE,qBAAA,CAAA,CACtC,MAAMxH,WAAAA,CAAc,IAAI,CAACuG,YAAY,CACrCvG,WAAAA,CAAYntI,YAAY,CAAC,cAAA,CAAgB,IAAI,CAAC+zI,WAAW,CAAA,CACzD5G,WAAAA,CAAYntI,YAAY,CAAC,YAAA,CAAc,IAAI,CAACg0I,SAAS,CAAA,CACrD7G,WAAAA,CAAYntI,YAAY,CAAC,cAAA,CAAgB,IAAI,CAACk0I,aAAa,EAC3D/G,WAAAA,CAAYntI,YAAY,CAAC,OAAA,CAAS,CAAA,CAAA,CAClCmtI,WAAAA,CAAYntI,YAAY,CAAC,OAAA,CAAS,CAAA,CAAA,CAClCmtI,WAAAA,CAAYntI,YAAY,CAAC,OAAA,CAAS,CAAA,CAAA,CAClCmtI,WAAAA,CAAY/sI,aAAa,CAAC6tI,SAAAA,CAAW,CAAA,CAAG,CAAA,CAAA,CACxCxwN,MAAAA,CAAOoiB,eAAe,CAAC,CAACstM,WAAAA,CAAY,CAAE,eAAA,CAAA,CACtC,IAAIgF,WAAAA,CAAc1D,UAAAA,CAClB,IAAI2D,aAAAA,CAAgBzD,eAAiB,IAAI,CAACX,QAAQ,CAClD,IAAIqE,QAAAA,CAAW,IAAI,CAAC/D,MAAM,CAC1B,IAAIgE,UAAAA,CAAa,IAAI,CAAClE,QAAQ,CAC9B,IAAK,IAAI/zG,IAAAA,CAAO,CAAA,CAAGA,IAAAA,CAAO4zG,SAAAA,CAAW5zG,IAAAA,EAAAA,CAAQ,CAC5C,MAAM+2G,WAAAA,CAAc/2G,IAAAA,GAAS,CAAA,EAAK,CAAC42G,gBAAAA,CACnC,MAAMI,UAAAA,CAAah3G,IAAAA,GAAS4zG,UAAY,CAAA,CACxC,MAAMtrM,KAAAA,CAASyuM,CAAAA,WAAAA,CAAc,CAAA,CAAI,CAAA,GAAMC,UAAAA,EAAczC,oBAAAA,CAAuB,CAAA,CAAI,CAAA,CAAA,CAChF,MAAMgG,WAAa,IAAI,CAACjB,gBAAgB,CAACt5G,IAAAA,CAAK,CAC9Cu6G,UAAAA,CAAW50I,YAAY,CAAC,WAAA,CAAamyI,WAAAA,CAAAA,CACrCyC,UAAAA,CAAW50I,YAAY,CAAC,YAAA,CAAcqyI,QAAAA,CAAAA,CACtCuC,WAAW50I,YAAY,CAAC,aAAA,CAAeoyI,aAAAA,CAAAA,CACvCwC,UAAAA,CAAW50I,YAAY,CAAC,cAAA,CAAgBsyI,UAAAA,CAAAA,CACxCsC,UAAAA,CAAW50I,YAAY,CAAC,YAAA,CAAc,IAAI,CAACg0I,SAAS,EACpDY,UAAAA,CAAW50I,YAAY,CAAC,SAAA,CAAW,IAAI,CAACzmH,MAAM,CAAA,CAC9Cq7P,UAAAA,CAAW50I,YAAY,CAAC,SAAA,CAAWv1D,YAAAA,CAAAA,CACnCmqM,UAAAA,CAAW50I,YAAY,CAAC,eAAgB,IAAI,CAACk0I,aAAa,CAAA,CAC1DU,UAAAA,CAAW50I,YAAY,CAAC,OAAA,CAASq6B,IAAAA,CAAAA,CACjCu6G,UAAAA,CAAW50I,YAAY,CAAC,OAAA,CAASr9D,KAAAA,CAAAA,CACjCiyM,UAAAA,CAAWx0I,aAAa,CAAC,IAAI,CAACo0I,oBAAoB,CAAClpP,CAAC,CAAE,IAAI,CAACkpP,oBAAoB,CAACjpP,CAAC,CAAE,CAAA,CAAA,CACnFkyB,MAAAA,CAAOoiB,eAAe,CAAC,CAAC+0M,UAAAA,CAAW,CAAE,CAAC,iBAAiB,EAAEv6G,IAAAA,CAAK,CAAC,CAAA,CAC/D,GAAI,CAACg3G,UAAAA,CAAY,CAChBc,WAAAA,CAAcE,QAAAA,CACdA,QAAAA,CAAWF,WAAAA,GAAgB,IAAI,CAAC7D,MAAM,CAAG,IAAI,CAACE,MAAM,CAAG,IAAI,CAACF,MAAM,CAClE8D,aAAAA,CAAgBE,UAAAA,CAChBA,UAAAA,CAAaF,aAAAA,GAAkB,IAAI,CAACpE,QAAQ,CAAG,IAAI,CAACI,QAAQ,CAAG,IAAI,CAACJ,SACrE,CACD,CACA,OAAO,IAAI,CAACD,aAAa,CAE1Be,YAAAA,CAAaL,UAAU,CAAEM,eAAe,CAAEL,OAAO,CAAEM,YAAY,CAAEC,sBAAsB,CAAEN,aAAa,CAAEC,oBAAAA,CAAuB,KAAK,CAAEC,eAAAA,CAAkB,KAAK,CAAE,CAC9J,MAAMZ,SAAAA,CAAYS,OAAAA,CAAU,CAAA,CAC5B,MAAMuC,gBAAAA,CAAmB,CAAC,CAACtC,aAC3B,CAAA,IAAI,CAACe,aAAa,CAAGX,eACrB,CAAA,IAAI,CAACb,QAAQ,CAAGQ,OAChB,CAAA,IAAI,CAACiB,iBAAiB,CAAGsB,gBACzB,CAAA,IAAI,CAACrB,qBAAqB,CAAGhB,oBAAAA,CAC7B,MAAMsD,mBAAAA,CAAsB,IAAI,CAAC5C,gBAAgB,CACjD,IAAI,CAACA,gBAAgB,CAAGT,eAAAA,CACxB,IAAI,CAAC2C,gBAAgB,CAACzC,eAAAA,CAAiBF,eAAAA,GAAoBqD,mBAAAA,CAAAA,CAC3D,IAAI,CAACiC,sBAAsB,CAAClG,SAAAA,CAAAA,CAC5B,GAAIY,eAAAA,CAAiB,CACpB,IAAI,CAACL,MAAM,CAAGC,WACf,CACA,MAAMhxN,MAAAA,CAAS,IAAI,CAACA,MAAM,CAC1B,IAAI,CAACs2N,WAAW,CAAC97P,KAAK,EAAA,CACtB,IAAI,CAAC+7P,SAAS,CAAC/7P,KAAK,CAAC,CAAA,CAAGi7P,UAAAA,CAAa,IAAI,CAACe,sBAAsB,CAAGhB,KAAAA,CAAQ,CAAA,CAAA,CAC3E,IAAI,CAAC15P,MAAM,CAACtB,KAAK,GACjB,MAAM08P,WAAAA,CAAc,IAAI,CAAClB,kBAAkB,CAC3CkB,WAAAA,CAAY30I,YAAY,CAAC,QAAA,CAAUyuI,UAAAA,CAAAA,CACnCkG,WAAAA,CAAY30I,YAAY,CAAC,cAAA,CAAgB,IAAI,CAAC+zI,WAAW,CAAA,CACzDY,WAAAA,CAAY30I,YAAY,CAAC,oBAAA,CAAsBivI,sBAAAA,CAAAA,CAC/C0F,WAAAA,CAAY30I,YAAY,CAAC,SAAA,CAAW,CAAA,CAAA,CACpC20I,WAAAA,CAAY30I,YAAY,CAAC,cAAA,CAAgB,GACzC20I,WAAAA,CAAY30I,YAAY,CAAC,WAAA,CAAaiuI,SAAAA,CAAAA,CACtC0G,WAAAA,CAAY30I,YAAY,CAAC,MAAA,CAAQ,CAAA,CAAA,CACjC20I,WAAAA,CAAYt0I,qBAAqB,CAAC2uI,YAAAA,CAAe,CAAA,CAAA,CACjDvxN,MAAAA,CAAOoiB,eAAe,CAAC,CAAC80M,WAAAA,CAAY,CAAE,6BAAA,CAAA,CACtC,MAAMxH,WAAAA,CAAc,IAAI,CAACuG,YAAY,CACrCvG,WAAAA,CAAYntI,YAAY,CAAC,cAAA,CAAgB,IAAI,CAAC+zI,WAAW,CAAA,CACzD5G,WAAAA,CAAYntI,YAAY,CAAC,YAAA,CAAc,IAAI,CAACg0I,SAAS,CAAA,CACrD7G,WAAAA,CAAYntI,YAAY,CAAC,oBAAA,CAAsBivI,sBAAAA,CAAAA,CAC/C9B,WAAAA,CAAYntI,YAAY,CAAC,cAAA,CAAgB,CAAA,CAAA,CACzCmtI,WAAAA,CAAYntI,YAAY,CAAC,OAAA,CAAS,CAAA,CAAA,CAClCmtI,WAAAA,CAAYntI,YAAY,CAAC,OAAA,CAAS,CAAA,CAAA,CAClCmtI,WAAAA,CAAYntI,YAAY,CAAC,QAAS,CAAA,CAAA,CAClCmtI,WAAAA,CAAY/sI,aAAa,CAAC6tI,SAAAA,CAAW,CAAA,CAAG,CAAA,CAAA,CACxCxwN,MAAAA,CAAOoiB,eAAe,CAAC,CAACstM,WAAAA,CAAY,CAAE,uBAAA,CAAA,CACtC,IAAIgF,WAAAA,CAAc1D,UAAAA,CAClB,IAAI2D,aAAAA,CAAgBzD,aAAAA,EAAiB,IAAI,CAACX,QAAQ,CAClD,IAAIqE,QAAAA,CAAW,IAAI,CAAC/D,MAAM,CAC1B,IAAIgE,UAAAA,CAAa,IAAI,CAAClE,QAAQ,CAC9B,IAAK,IAAI/zG,IAAAA,CAAO,CAAA,CAAGA,IAAAA,CAAO4zG,SAAAA,CAAW5zG,IAAAA,EAAAA,CAAQ,CAC5C,MAAM+2G,WAAAA,CAAc/2G,IAAAA,GAAS,CAAA,EAAK,CAAC42G,gBAAAA,CACnC,MAAMI,WAAah3G,IAAAA,GAAS4zG,SAAAA,CAAY,CAAA,CACxC,MAAMtrM,KAAAA,CAASyuM,CAAAA,WAAAA,CAAc,CAAA,CAAI,CAAA,GAAMC,UAAAA,EAAczC,oBAAAA,CAAuB,CAAA,CAAI,CAAA,EAChF,MAAMgG,UAAAA,CAAa,IAAI,CAACjB,gBAAgB,CAACt5G,IAAAA,CAAK,CAC9Cu6G,UAAAA,CAAW50I,YAAY,CAAC,WAAA,CAAamyI,WAAAA,CAAAA,CACrCyC,UAAAA,CAAW50I,YAAY,CAAC,aAAcqyI,QAAAA,CAAAA,CACtCuC,UAAAA,CAAW50I,YAAY,CAAC,aAAA,CAAeoyI,aAAAA,CAAAA,CACvCwC,UAAAA,CAAW50I,YAAY,CAAC,cAAA,CAAgBsyI,UAAAA,CAAAA,CACxCsC,UAAAA,CAAW50I,YAAY,CAAC,YAAA,CAAc,IAAI,CAACg0I,SAAS,CAAA,CACpDY,UAAAA,CAAW50I,YAAY,CAAC,SAAA,CAAW,IAAI,CAACzmH,MAAM,CAAA,CAC9Cq7P,UAAAA,CAAW50I,YAAY,CAAC,oBAAA,CAAsBivI,sBAAAA,CAAAA,CAC9C2F,UAAAA,CAAW50I,YAAY,CAAC,SAAA,CAAW,CAAA,CAAA,CACnC40I,UAAAA,CAAW50I,YAAY,CAAC,cAAA,CAAgB,CAAA,CAAA,CACxC40I,UAAAA,CAAW50I,YAAY,CAAC,OAAA,CAASq6B,IAAAA,CAAAA,CACjCu6G,UAAAA,CAAW50I,YAAY,CAAC,QAASr9D,KAAAA,CAAAA,CACjCiyM,UAAAA,CAAWv0I,qBAAqB,CAAC2uI,YAAAA,CAAAA,CACjCvxN,MAAAA,CAAOoiB,eAAe,CAAC,CAAC+0M,UAAAA,CAAW,CAAE,CAAC,yBAAyB,EAAEv6G,IAAAA,CAAK,CAAC,EACvE,GAAI,CAACg3G,UAAAA,CAAY,CAChBc,WAAAA,CAAcE,QAAAA,CACdA,QAAAA,CAAWF,WAAAA,GAAgB,IAAI,CAAC7D,MAAM,CAAG,IAAI,CAACE,MAAM,CAAG,IAAI,CAACF,MAAM,CAClE8D,aAAAA,CAAgBE,UAAAA,CAChBA,UAAAA,CAAaF,aAAAA,GAAkB,IAAI,CAACpE,QAAQ,CAAG,IAAI,CAACI,QAAQ,CAAG,IAAI,CAACJ,SACrE,CACD,CACA,OAAO,IAAI,CAACD,aAAa,CAjS1B,WAAA,CAAYtwN,MAAM,CAAE+xN,QAAAA,CAAW,KAAK,CAAE,CACrC,KAAK,CAAC/xN,MAAAA,CAAQ+xN,QAAAA,CAAAA,CApBf0E,gBAAAA,CAAAA,IAAAA,CAAAA,eAAAA,CAAgB,CAAA,CAAA,CAChBD,gBAAAA,CAAAA,IAAAA,CAAAA,wBAAAA,CAAyB,CAAA,CAAA,CACzBF,gBAAAA,CAAAA,IAAAA,CAAAA,aAAAA,CAAc,IAAA,CAAA,CACdC,gBAAAA,CAAAA,IAAAA,CAAAA,WAAAA,CAAY,IAAA,CAAA,CACZz6P,sBAAAA,QAAAA,CAAS,IAAA,CAAA,CACTi7P,gBAAAA,CAAAA,IAAAA,CAAAA,sBAAAA,CAAuB,IAAInjP,IAAAA,CAAK,CAAA,CAAG,CAAA,CAAA,CAAA,CACnCqjP,gBAAAA,CAAAA,IAAAA,CAAAA,yBAAAA,CAA0B,IAAIrjP,IAAAA,CAAK,CAAA,CAAG,CAAA,CAAA,CAAA,CACtCiiP,gBAAAA,CAAAA,IAAAA,CAAAA,4BAAAA,CAA6B,MAC7BC,gBAAAA,CAAAA,IAAAA,CAAAA,sBAAAA,CAAuB,IAAA,CAAA,CACvBC,gBAAAA,CAAAA,IAAAA,CAAAA,yBAAAA,CAA0B,IAAA,CAAA,CAC1BI,gBAAAA,CAAAA,IAAAA,CAAAA,0BAAAA,CAA2B,IAAA,CAAA,CAC3BC,gBAAAA,CAAAA,IAAAA,CAAAA,oBAAAA,CAAqB,IAAA,CAAA,CACrBC,gBAAAA,CAAAA,IAAAA,CAAAA,uBAAAA,CAAwB,IAAA,CAAA,CACxBV,gBAAAA,CAAAA,IAAAA,CAAAA,oBAAoB,IAAA,CAAA,CACpB7G,gBAAAA,CAAAA,IAAAA,CAAAA,aAAAA,CAAc,IAAA,CAAA,CACd8G,gBAAAA,CAAAA,IAAAA,CAAAA,gBAAAA,CAAiB,IAAA,CAAA,CACjBI,gBAAAA,CAAAA,IAAAA,CAAAA,oBAAAA,CAAqB,IAAA,CAAA,CACrBC,gBAAAA,CAAAA,IAAAA,CAAAA,cAAAA,CAAe,IAAA,CAAA,CACfC,gBAAAA,CAAAA,IAAAA,CAAAA,kBAAAA,CAAmB,EAAE,EAGpB,MAAMnkO,IAAAA,CAAO,IAAI,CAAC2/N,aAClB3/N,CAAAA,IAAI,CAAC,CAAA,CAAE,CAAG,CACVA,CAAAA,IAAI,CAAC,CAAA,CAAE,CAAGsjO,SACVtjO,CAAAA,IAAI,CAAC,CAAA,CAAE,CAAGwjO,gBACV,CAAA,IAAI,CAACY,wBAAwB,CAAG,IAAIl8L,mBAAAA,CAAoBj6B,MAAAA,CAAQ,CAC/D,IAAI05B,aAAAA,CAAc,SAAA,CAAWv/B,gBAAAA,CAAAA,CAC7B,IAAIu/B,aAAAA,CAAc,cAAA,CAAgBv/B,gBAAAA,CAAAA,CAClC,IAAIu/B,aAAAA,CAAc,WAAA,CAAav/B,gBAAAA,CAAAA,CAC/B,IAAIu/B,aAAAA,CAAc,MAAA,CAAQv/B,gBAAAA,CAAAA,CAC1B,CACD,CAAA,IAAI,CAACi8N,kBAAkB,CAAG,IAAIn8L,mBAAAA,CAAoBj6B,MAAAA,CAAQ,CACzD,IAAI05B,aAAAA,CAAc,cAAA,CAAgBv/B,gBAAAA,CAAAA,CAClC,IAAIu/B,aAAAA,CAAc,OAAA,CAASv/B,gBAAAA,CAAAA,CAC3B,IAAIu/B,aAAAA,CAAc,OAAA,CAASv/B,gBAAAA,CAAAA,CAC3B,IAAIu/B,aAAAA,CAAc,OAAA,CAASv/B,gBAAAA,CAAAA,CAC3B,CACD,CAAA,IAAI,CAACk8N,qBAAqB,CAAG,IAAIp8L,mBAAAA,CAAoBj6B,MAAAA,CAAQ,CAC5D,IAAI05B,aAAAA,CAAc,SAAA,CAAWv/B,gBAAAA,CAAAA,CAC7B,IAAIu/B,aAAAA,CAAc,cAAA,CAAgBv/B,gBAAAA,CAAAA,CAClC,IAAIu/B,aAAAA,CAAc,OAAA,CAASv/B,gBAAAA,CAAAA,CAC3B,IAAIu/B,aAAAA,CAAc,OAAA,CAASv/B,gBAAAA,CAAAA,CAC3B,EACD,MAAMmqB,eAAAA,CAAkBtkB,MAAAA,CAAOskB,eAAe,EAAItkB,MAAAA,CAAOqkB,eAAe,EAAI,EAAA,CAC5E,MAAM+yM,YAAAA,CAAe/lQ,IAAAA,CAAK6T,GAAG,CAAC,CAAA,CAAG7T,IAAAA,CAAKmV,IAAI,CAAC,GAAA,CAAM89C,eAAAA,CAAAA,CAAAA,CACjD,MAAMmvM,MAAAA,CAAS1B,QAAAA,CAAW,UAAA,CAAa,EAAA,CACvC,MAAMsF,gBAAAA,CAAmB,CACxB,IAAI94N,uBAAAA,CAAwB,QAAA,CAAUjC,mBAAAA,CAAqB,IAAA,CAAA,CAC3D,IAAIiC,uBAAAA,CAAwB,cAAA,CAAgBjC,mBAAAA,CAAqB,KAAA,CAAA,CACjE,IAAIgC,uBAAAA,CAAwB,UAAA,CAAYhC,mBAAAA,CAAAA,CACxC,CACD,MAAMg7N,gBAAAA,CAAmB,CACxB,IAAI/4N,uBAAAA,CAAwB,cAAA,CAAgBjC,mBAAAA,CAAqB,MACjE,IAAIiC,uBAAAA,CAAwB,YAAA,CAAcjC,mBAAAA,CAAqB,KAAA,CAAA,CAC/D,IAAIgC,uBAAAA,CAAwB,UAAA,CAAYhC,mBAAAA,CAAAA,CACxC,CACD,MAAMi7N,eAAAA,CAAkB,CACvB,IAAIh5N,uBAAAA,CAAwB,WAAA,CAAajC,oBAAqB,IAAA,CAAA,CAC9D,IAAIiC,uBAAAA,CAAwB,YAAA,CAAcjC,mBAAAA,CAAqB,KAAA,CAAA,CAC/D,IAAIiC,uBAAAA,CAAwB,aAAA,CAAejC,mBAAAA,CAAqB,IAAA,CAAA,CAChE,IAAIiC,uBAAAA,CAAwB,cAAA,CAAgBjC,mBAAAA,CAAqB,KAAA,CAAA,CACjE,IAAIiC,uBAAAA,CAAwB,YAAA,CAAcjC,mBAAAA,CAAqB,KAAA,CAAA,CAC/D,IAAIiC,uBAAAA,CAAwB,SAAA,CAAWjC,mBAAAA,CAAqB,KAAA,CAAA,CAC5D,IAAIgC,uBAAAA,CAAwB,UAAA,CAAYhC,mBAAAA,CAAAA,CACxC,CACD,GAAIy1N,QAAAA,CAAU,CACbsF,gBAAAA,CAAiBzkQ,IAAI,CAAC,IAAI2rC,uBAAAA,CAAwB,oBAAA,CAAsBjC,mBAAAA,CAAqB,IAAA,CAAA,CAAA,CAC7Fg7N,gBAAAA,CAAiB1kQ,IAAI,CAAC,IAAI2rC,uBAAAA,CAAwB,oBAAA,CAAsBjC,mBAAAA,CAAqB,IAAA,CAAA,CAAA,CAC7Fi7N,gBAAgB3kQ,IAAI,CAAC,IAAI2rC,uBAAAA,CAAwB,oBAAA,CAAsBjC,mBAAAA,CAAqB,IAAA,CAAA,EAC7F,CACA,IAAI,CAACu5N,0BAA0B,CAAG,IAAI32N,eAAAA,CAAgBc,MAAAA,CAAQq3N,gBAAAA,CAC9D,CAAA,IAAI,CAACvB,oBAAoB,CAAG,IAAI52N,eAAAA,CAAgBc,MAAAA,CAAQs3N,gBAAAA,CACxD,CAAA,IAAI,CAACvB,uBAAuB,CAAG,IAAI72N,eAAAA,CAAgBc,MAAAA,CAAQu3N,iBAC3D,MAAMC,WAAAA,CAA8B,IAAIt9P,GAAAA,CACxCs9P,WAAAA,CAAY/+P,GAAG,CAAC,cAAA,CAAgB68P,UAAAA,CAAAA,CAChCkC,WAAAA,CAAY/+P,GAAG,CAAC,oBAAA,CAAsB88P,gBAAAA,CAAAA,CACtC,GAAIxD,QAAAA,CAAUyF,YAAY/+P,GAAG,CAAC,mBAAA,CAAqB,EAAA,CACnD,CAAA,IAAI,CAACk9P,iBAAiB,CAAG,IAAIl9K,MAAAA,CAAOz4C,MAAAA,CAAQ,CAC3CprC,IAAAA,CAAM,CAAC,kBAAkB,EAAE6+P,OAAO,CAAC,CACnCrpL,cAAAA,CAAgBpyC,mBAAAA,CAChB+tC,OAAAA,CAASivL,wBAAAA,CACTp8K,QAAAA,CAAU4+K,WAAAA,CACVxxL,sBAAAA,CAAwB,IAAI,CAAC6vL,0BAA0B,CACvD3sL,2BAAAA,CAA6B,CAAEhP,QAAAA,CAAU,IAAI,CAACi8L,wBAAwB,CACvE,CAAA,CAAA,CACA,MAAMsB,WAAAA,CAA8B,IAAIv9P,GAAAA,CACxCu9P,WAAAA,CAAYh/P,GAAG,CAAC,iBAAA,CAAmB2+P,YAAAA,CAAAA,CACnCK,WAAAA,CAAYh/P,GAAG,CAAC,aAAA,CAAe48P,SAAAA,CAAAA,CAC/B,GAAItD,QAAAA,CAAU0F,WAAAA,CAAYh/P,GAAG,CAAC,mBAAA,CAAqB,EAAA,CACnD,CAAA,IAAI,CAACq2P,WAAW,CAAG,IAAIr2K,MAAAA,CAAOz4C,OAAQ,CACrCprC,IAAAA,CAAM,CAAC,YAAY,EAAE6+P,MAAAA,CAAO,CAAC,CAC7BrpL,cAAAA,CAAgBpyC,mBAAAA,CAChB+tC,OAAAA,CAASkvL,kBAAAA,CACTr8K,QAAAA,CAAU6+K,WAAAA,CACVzxL,sBAAAA,CAAwB,IAAI,CAAC8vL,oBAAoB,CACjD5sL,2BAAAA,CAA6B,CAAEhP,QAAAA,CAAU,IAAI,CAACk8L,kBAAkB,CACjE,CAAA,CAAA,CACA,MAAMsB,UAAAA,CAA6B,IAAIx9P,GAAAA,CACvCw9P,UAAAA,CAAWj/P,GAAG,CAAC,SAAA,CAAW08P,KAAAA,CAAAA,CAC1BuC,UAAAA,CAAWj/P,GAAG,CAAC,mBAAA,CAAqB28P,eAAAA,CAAAA,CACpCsC,UAAAA,CAAWj/P,GAAG,CAAC,iBAAA,CAAmB2+P,YAAAA,CAAAA,CAClC,GAAIrF,QAAAA,CAAU2F,UAAAA,CAAWj/P,GAAG,CAAC,mBAAA,CAAqB,EAAA,CAClD,CAAA,IAAI,CAACm9P,cAAc,CAAG,IAAIn9K,MAAAA,CAAOz4C,MAAAA,CAAQ,CACxCprC,IAAAA,CAAM,CAAC,eAAe,EAAE6+P,OAAO,CAAC,CAChCrpL,cAAAA,CAAgBpyC,mBAAAA,CAChB+tC,OAAAA,CAASmvL,qBAAAA,CACTt8K,QAAAA,CAAU8+K,UAAAA,CACV1xL,sBAAAA,CAAwB,IAAI,CAAC+vL,uBAAuB,CACpD7sL,2BAAAA,CAA6B,CAAEhP,QAAAA,CAAU,IAAI,CAACm8L,qBAAqB,CACpE,CAAA,CACA,CAAA,IAAI,CAACL,kBAAkB,CAAG,IAAI1zI,OAAAA,CAAQtiF,MAAAA,CAAQ,IAAI,CAAC21N,iBAAiB,CAAE,IAAI,CAACA,iBAAiB,CAAC/gQ,IAAI,CACjG,CAAA,IAAI,CAACqhQ,YAAY,CAAG,IAAI3zI,OAAAA,CAAQtiF,MAAAA,CAAQ,IAAI,CAAC8uN,WAAW,CAAE,IAAI,CAACA,WAAW,CAACl6P,IAAI,EAChF,CAsMD,CAAA,CAEA,IAAI+iQ,gBAAAA,CAAmB,KAAA,CAiBtBC,eAAAA,CAAgB53N,MAAM,CAAE,CACvB,GAAI,CAACA,MAAAA,CAAOmkB,eAAe,EAAI,CAACnkB,MAAAA,CAAOya,iBAAiB,CAAE,OAAO,KAAA,CACjE,MAAMwvC,MAAAA,CAASjqD,MAAAA,CAAO8nD,UAAU,EAAE/1D,IAAAA,EAAMk4D,QAAQk1C,WAAAA,IAAAA,CAChD,GAAIl1C,MAAAA,GAAW,QAAA,CAAU,OAAO,KAAA,CAChC,GAAIjqD,MAAAA,CAAOskB,eAAe,CAAG,EAAA,CAAI,OAAO,KAAA,CACxC,OAAO,IACR,CACA,IAAIgsM,aAAAA,EAAgB,CACnB,OAAO,IAAI,CAACuH,KAAK,CAACvH,aAAa,CAEhC,IAAIM,UAAAA,EAAa,CAChB,OAAO,IAAI,CAACiH,KAAK,CAACjH,UAAU,CAE7B,IAAIF,SAAAA,EAAY,CACf,OAAO,IAAI,CAACmH,KAAK,CAACnH,SACnB,CACA,IAAIhxK,SAAS/lF,KAAK,CAAE,CACnB,IAAI,CAACk+P,KAAK,CAACn4K,QAAQ,CAAG/lF,MACvB,CACA,IAAI+lF,QAAAA,EAAW,CACd,OAAO,IAAI,CAACm4K,KAAK,CAACn4K,QACnB,CACA39E,IAAAA,CAAKivP,UAAU,CAAEhkM,YAAY,CAAEikM,OAAAA,CAAU,EAAE,CAAEC,aAAa,CAAEC,oBAAoB,CAAEC,eAAAA,CAAkB,KAAK,CAAE,CAC1G,OAAO,IAAI,CAACyG,KAAK,CAAC91P,IAAI,CAACivP,UAAAA,CAAYhkM,YAAAA,CAAcikM,OAAAA,CAASC,aAAAA,CAAeC,oBAAAA,CAAsBC,gBAChG,CACAC,YAAAA,CAAaL,UAAU,CAAEM,eAAe,CAAEL,OAAO,CAAEM,YAAY,CAAEC,sBAAsB,CAAEN,aAAa,CAAEC,oBAAoB,CAAEC,gBAAkB,KAAK,CAAE,CACtJ,OAAO,IAAI,CAACyG,KAAK,CAACxG,YAAY,CAACL,UAAAA,CAAYM,eAAAA,CAAiBL,OAAAA,CAASM,YAAAA,CAAcC,sBAAAA,CAAwBN,aAAAA,CAAeC,qBAAsBC,eAAAA,CACjJ,CACAK,eAAAA,EAAkB,CACjB,OAAO,IAAI,CAACoG,KAAK,CAACpG,eAAe,EAClC,CACAtyN,OAAAA,EAAU,CACT,IAAI,CAAC04N,KAAK,CAAC14N,OAAO,GACnB,CAhDA,WAAA,CAAYa,MAAM,CAAE18B,QAAAA,CAAW,EAAE,CAAE,CADnCu0P,gBAAAA,CAAAA,IAAAA,CAAAA,OAAAA,CAAAA,MAAAA,CAAAA,CAEC,MAAMrpH,IAAAA,CAAOlrI,QAAAA,CAASkrI,IAAI,EAAIgK,eAAAA,CAC9B,MAAMu5G,QAAAA,CAAWzuP,QAAAA,CAASyuP,QAAQ,EAAI,KAAA,CACtC,IAAI+F,MAAAA,CAAStpH,IAAAA,CACb,GAAIA,IAAAA,GAASgK,gBAAiB,CAC7Bs/G,MAAAA,CAAS,IAAI,CAACF,eAAe,CAAC53N,MAAAA,CAAAA,CAAU04G,mBAAAA,CAAsBD,oBAC/D,CACA,GAAIq/G,MAAAA,GAAWp/G,mBAAAA,CAAqB,CACnC,GAAI,CAAC,IAAI,CAACk/G,eAAe,CAAC53N,MAAAA,CAAAA,CAAS,CAEnC,IAAI,CAAC63N,KAAK,CAAG,IAAInC,wBAAAA,CAAyB11N,MAAAA,CAAQ+xN,QAAAA,EACnD,CAAA,KAAO,CACN,IAAI,CAAC8F,KAAK,CAAG,IAAIlF,yBAAAA,CAA0B3yN,MAAAA,CAAQ+xN,QAAAA,EACpD,CACD,CAmCD,CAAA,CAEA,IAAIgG,UAAAA,CAAa,IAAI5jP,IAAAA,CACrB,IAAI6jP,UAAAA,EAAAA,QAAAA,CAAa,MAchB5kM,MAAAA,CAAO6kM,WAAW,CAAEC,YAAY,CAAEnvN,IAAI,CAAE,CACxC,CACAovN,QAAAA,CAASznQ,OAAO,CAAE4qD,MAAM,CAAEvS,IAAI,CAAE,CAC/B,IAAIm7C,QAAAA,CACJ,GAAIn7C,IAAAA,CAAM,CACT,MAAMv3B,CAAAA,CAAI9gB,OAAAA,CAAUA,OAAAA,CAAQinB,KAAK,CAAG,IAAI,CAACqoB,MAAM,CAACroB,KAAK,CACrD,MAAMmJ,EAAAA,CAAKpwB,OAAAA,CAAUA,OAAAA,CAAQknB,MAAM,CAAG,IAAI,CAACooB,MAAM,CAACpoB,MAAM,CACxDssE,QAAAA,CAAW6zK,UAAAA,CAAWt/P,GAAG,CAACswC,KAAKl7B,CAAC,CAAG2D,CAAAA,CAAGu3B,IAAAA,CAAKj7B,CAAC,CAAGgT,EAAAA,CAAIioB,IAAAA,CAAKh7B,CAAC,CAAGyD,CAAAA,CAAGu3B,IAAAA,CAAKv3B,CAAC,CAAGsP,EAAAA,EACzE,CACA,IAAI,CAACkf,MAAM,CAACie,aAAa,CAAC9P,UAAAA,CAAWkC,OAAO,CAAA,CAC5CkuG,kBAAAA,CAAmB,IAAI,CAACv+G,MAAM,CAAEtvC,OAAAA,CAAS4qD,MAAAA,CAAQ4oC,QAAAA,EAClD,CAxBA,WAAA,CAAYtkD,cAAc,CAAE,CAC3B,IAAI,CAACI,MAAM,CAAGJ,cACd,CAAA,IAAI,CAACw4N,gBAAgB,CAAG,MACzB,CAsBD,CAAA,CArBC,0BAAOC,kBAAAA,CAAmB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC,YAeH,IAAIC,oBAAAA,CAAuB,cAAc9jM,UAAAA,CAWxC,IAAIlZ,OAAOA,MAAM,CAAE,CAClB,IAAI,CAACi9M,UAAU,EAAEp5N,OAAAA,EACjB,CAAA,IAAI,CAACo5N,UAAU,CAAG,IAClB,CAAA,IAAI,CAACrxJ,OAAO,CAAG5rD,MAAAA,CACf,GAAIA,MAAAA,CAAQ,CACX,IAAI,CAACi9M,UAAU,CAAG,IAAIr6G,UAAAA,CAAW5iG,QAClC,CACD,CACA,IAAIA,MAAAA,EAAS,CACZ,OAAO,IAAI,CAAC4rD,OAAO,CAEpBh0C,SAAU,CACT,IAAI,CAAClzB,MAAM,CAACuf,aAAa,CAAC,IAAI,CAACpD,UAAU,CAAE,IAAI,CAACC,UAAU,CAAE,IAAI,CAACC,QAAQ,CAAE,IAAI,CAACC,SAAS,CAAE,IAAI,CAAC4C,YAAY,CAAE,IAAI,CAACC,WAAW,CAC9H,CAAA,IAAI,CAACo5M,UAAU,EAAEnlM,MAAAA,CAAO,IAAI,CAAC8wB,QAAQ,CAAE,IAAI,CAACgtB,OAAO,EACpD,sBAzB0B,KAAA,CAAA,GAAA,IAAA,CAAA,CAC1BhK,gBAAAA,CAAAA,IAAAA,CAAAA,UAAU,IAAA,CAAA,CACVqxJ,gBAAAA,CAAAA,IAAAA,CAAAA,aAAa,IAAA,CAAA,CACbl8M,gBAAAA,CAAAA,IAAAA,CAAAA,WAAWlxB,aAAAA,CAAAA,CACXmxB,gBAAAA,CAAAA,IAAAA,CAAAA,YAAY/wB,aAAAA,CAAAA,CACZ4wB,gBAAAA,CAAAA,IAAAA,CAAAA,aAAahO,UAAAA,CAAWkC,OAAO,EAC/B+L,gBAAAA,CAAAA,IAAAA,CAAAA,YAAAA,CAAavL,WAAWO,OAAO,CAAA,CAC/B8N,sBAAAA,cAAAA,CAAe,IAAA,CAAA,CACfC,sBAAAA,aAAAA,CAAc,IAAA,CAAA,CACd+kC,sBAAAA,UAAAA,CAAAA,QACAgtB,gBAAAA,CAAAA,IAAAA,CAAAA,SAAAA,CAAAA,MAAAA,EAAAA,CAgBD,CAAA,CAEA,IAAIsnJ,kBAAAA,CAAqB,KAAA,CAAA,WAAA,EAAA,CAExBC,sBAAAA,SAAAA,CAAAA,QAEAC,gBAAAA,CAAAA,IAAAA,CAAAA,iBAAAA,CAAAA,MAAAA,CAAAA,CAEAC,gBAAAA,CAAAA,IAAAA,CAAAA,kBAAAA,MAAAA,CAAAA,CAEAx5E,sBAAAA,YAAAA,CAAa,IAAIJ,mBAClB,CAAA,CAEA,IAAI65E,SAAW,CAAC,CAAA,CAAG,EAAG,CAAA,CAAG,CAAA,CAAG,EAAG,CAAA,CAAG,CAAA,CAAG,EAAE,CACvC,IAAIC,mBAAqB,cAAcx/G,eAAAA,CACtCN,YAAYz1I,QAAQ,CAAE,CACrB,MAAMg2I,WAAAA,CAAcD,gBAAgBC,WAAW,CAACh2I,SAAS2sE,OAAO,CAAA,CAChE,MAAM6oL,QAAAA,CAAWpkN,QAAAA,CAASpxC,SAASo1P,eAAe,EAAI,EAAA,CAAA,CACtD,MAAMK,QAAAA,CAAWrkN,QAAAA,CAASpxC,SAASq1P,eAAe,EAAI,IACtD,MAAMK,MAAAA,CAASx4E,gBAAgBznC,WAAW,CAACz1I,SAAS67K,UAAU,CAAA,CAC9D,MAAM85E,SAAAA,CAAY,CAAC,EAAEL,QAAAA,CAASxgQ,GAAG,CAAC,CAAC8gQ,KAAAA,CAAO/hQ,SACzC,OAAOmM,QAAAA,CAASm1P,OAAO,CAACthQ,KAAAA,CAAM,CAAG,GAAA,CAAM,GACxC,GAAGxF,IAAI,CAAC,IAAI,CAAC,CACb,OAAO,CAAC,IAAI,EAAE2nJ,WAAAA,CAAY,CAAC,EAAE2/G,SAAAA,CAAU,CAAC,EAAEH,QAAAA,CAAS,CAAC,EAAEC,QAAAA,CAAS,CAAC,EAAEC,MAAAA,CAAO,CAAC,CAE3Et9G,sBAAAA,CAAuB17G,MAAM,CAAE18B,QAAQ,CAAE,CACxC,MAAMg7K,UAAY,CAAC,CAACh7K,SAASq1P,eAAe,CAC5C,MAAMt1E,SAAAA,CAAY,IAAInM,UAAUl3I,MAAAA,CAAQ18B,QAAAA,CAAS67K,UAAU,CAAEb,SAAAA,CAAAA,CAC7D,MAAMwuD,iBAAAA,CAAoB,CACzBl4O,KAAM,WAAA,CACNw1E,cAAAA,CAAgBi5G,UAAUj5G,cAAc,CACxC46G,IAAK3B,SAAAA,CAAU1mC,cAAc,CAAC3C,SAAS,CAAGrkH,kBAAAA,CAAqB,MAChE,CAAA,CACA,MAAMwjO,UAAAA,CAAa71P,QAAAA,CAASm1P,OAAO,EAAI,CAAC,KAAK,CAC7C,MAAM9gF,cAAgB,EAAE,CACxB0L,UAAU7L,oBAAoB,CAAC2hF,WAAYA,UAAAA,CAAYxhF,aAAAA,CAAAA,CACvD0L,UAAUnF,sBAAsB,CAAC,GAAImF,SAAAA,CAAUj5G,cAAc,GAAKpyC,mBAAAA,CAAsB10B,QAAAA,CAASq1P,eAAe,CAAGr1P,QAAAA,CAASo1P,eAAe,CAAE,MAAA,CAAA,CAC7I,MAAMxjQ,QAAAA,CAAWomJ,QAAAA,CAASC,KAAK,CAAC8nC,SAAAA,CAAUpL,MAAM,CAAEoL,SAAAA,CAAUnuL,QAAQ,CAAA,CACpE,MAAMqiL,QAAAA,CAAW8L,SAAAA,CAAU9L,QAAQ,CACnCj0K,SAAS2sE,OAAO,CAACzxE,OAAO,CAAC,CAAC7E,MAAOE,GAAAA,GAAQ09K,QAAAA,CAAS9+K,GAAG,CAACoB,GAAAA,CAAKF,QAC3D,MAAM09K,QAAAA,CAAWgM,UAAUhM,QAAQ,CACnC/zK,SAAS2sE,OAAO,CAACzxE,OAAO,CAAC,CAAC7E,MAAOE,GAAAA,GAAQw9K,QAAAA,CAAS5+K,GAAG,CAACoB,GAAAA,CAAKF,OAC3DmzO,CAAAA,iBAAAA,CAAkB//K,UAAU,CAAGs2H,SAAAA,CAAUt2H,UAAU,CACnD+/K,kBAAkB9iK,UAAU,CAAGq5G,UAAUzmH,OACzCkwK,CAAAA,iBAAAA,CAAkBz1J,cAAc,CAAGniF,QACnC43O,CAAAA,iBAAAA,CAAkBj2J,aAAa,CAAG0gG,QAClCu1D,CAAAA,iBAAAA,CAAkB7iK,YAAY,CAAGo5G,SAAAA,CAAUvmH,OAAO,CAClDgwK,iBAAAA,CAAkBv1J,gBAAgB,CAAGriF,QACrC43O,CAAAA,iBAAAA,CAAkB/1J,eAAe,CAAGsgG,QAAAA,CACpC,OAAO5hG,sBAAsBE,gBAAgB,CAAC31C,OAAQ8sM,iBAAAA,CACvD,CACD,EACA,IAAIssB,GAAAA,CAAM,IAAIP,kBAAAA,CAEd,IAAI/jM,QAAU,IAAI0jM,kBAAAA,CAClB,IAAIa,WAAAA,CAAc,cAAch0E,SAmC/BhzB,gBAAAA,CAAiBjuJ,MAAM,CAAE,CACxB0wD,OAAAA,CAAQ2jM,OAAO,CAAG,IAAI,CAACA,OAAO,CAAC9lQ,KAAK,EACpCmiE,CAAAA,QAAQ4jM,eAAe,CAAG,IAAI,CAACA,eAAe,CAC9C5jM,OAAAA,CAAQ6jM,eAAe,CAAG,IAAI,CAACA,eAC/B7jM,CAAAA,OAAAA,CAAQmb,OAAO,CAAG0rE,WAAAA,CAAYa,cAAc,CAAC,IAAI,CAAEp4I,QACnDykL,yBAAAA,CAA0Bl9I,MAAM,CAACmpB,OAAAA,CAAQqqH,UAAU,CAAE,IAAI,CAAE/6K,OAAOq6I,KAAK,CAAEr6I,MAAAA,CAAOs4I,kBAAkB,CAAEt4I,MAAAA,CAAOkuJ,OAAO,CAAEluJ,MAAAA,CAAOw4I,IAAI,CAAEx4I,MAAAA,CAAO2tJ,YAAY,CAAA,CACpJ,MAAM70F,kBAAoB,IAAI27E,sBAAAA,CAAuBz0I,OAAO40I,iBAAiB,CAAE50I,OAAOy1C,YAAY,CAAA,CAClG,MAAMs/F,OAAAA,CAAUD,iBAAAA,CAAkB90I,OAAO47B,MAAM,CAAA,CAC/Cm5G,QAAQ6D,QAAQ,CAAC,MAAOo8G,GAAAA,CAAAA,CACxB,MAAM99M,OAAS69F,OAAAA,CAAQ+D,UAAU,CAAC,KAAA,CAAOpoF,OAAAA,CAASoI,kBAAmB,IAAI,CAACuqH,MAAM,CAAA,CAChF,OAAOnsI,MACR,CAAA,WAAA,CAAA,GAAA,IAAA,CAAA,CA9CiB,KAAA,CAAA,GAAA,IAAA,CAAA,CACjBm9M,gBAAAA,CAAAA,IAAAA,CAAAA,SAAAA,CAAU,CAAC,IAAA,CAAK,EAChBC,gBAAAA,CAAAA,IAAAA,CAAAA,iBAAAA,CAAkB,MAClBC,gBAAAA,CAAAA,IAAAA,CAAAA,iBAAAA,CAAkB,MAClBvvE,gBAAAA,CAAAA,IAAAA,CAAAA,aAAAA,CAAc,MACdiB,gBAAAA,CAAAA,IAAAA,CAAAA,QAAAA,CAAS,MACTC,gBAAAA,CAAAA,IAAAA,CAAAA,YAAAA,CAAa,MACbC,gBAAAA,CAAAA,IAAAA,CAAAA,WAAAA,CAAY,MACZzL,gBAAAA,CAAAA,IAAAA,CAAAA,WAAAA,CAAY,MACZnF,gBAAAA,CAAAA,IAAAA,CAAAA,WAAAA,CAAY,OACZ/B,gBAAAA,CAAAA,IAAAA,CAAAA,gBAAAA,CAAiB,MACjB+E,gBAAAA,CAAAA,IAAAA,CAAAA,kBAAAA,CAAmB,OACnBS,gBAAAA,CAAAA,IAAAA,CAAAA,eAAAA,CAAgB,OAChBK,gBAAAA,CAAAA,IAAAA,CAAAA,iBAAAA,CAAkBjsC,YAClB63C,gBAAAA,CAAAA,IAAAA,CAAAA,0BAAAA,CAA2B,GAC3BpM,gBAAAA,CAAAA,IAAAA,CAAAA,sBAAAA,CAAuB,MACvB+B,gBAAAA,CAAAA,IAAAA,CAAAA,eAAAA,CAAgBhpC,WAAAA,CAAAA,CAChBgoC,gBAAAA,CAAAA,IAAAA,CAAAA,qBAAAA,CAAsBhoC,WAAAA,CAAAA,CACtBsnC,sBAAAA,eAAAA,CAAgB,KAAA,CAAA,CAChBkM,sBAAAA,aAAAA,CAAc,KAAA,CAAA,CACdzN,sBAAAA,cAAAA,CAAe/vC,eAAAA,CAAAA,CACf89C,sBAAAA,mBAAAA,CAAoB,KAAA,CAAA,CAEpBK,sBAAAA,OAAAA,CAAQ,KAAA,CAAA,CACRb,sBAAAA,aAAAA,CAAc,KAAA,CAAA,CACdC,sBAAAA,sBAAAA,CAAuB,KAAA,CAAA,CACvBQ,sBAAAA,aAAAA,CAAc,KAAA,CAAA,CACdC,sBAAAA,YAAAA,CAAa,KAAA,CAAA,CACbC,sBAAAA,YAAAA,CAAa,KAAA,CAAA,CACbN,sBAAAA,UAAAA,CAAW,KAAA,CAAA,CACXF,sBAAAA,eAAAA,CAAgB,KAAA,CAAA,CAChBG,sBAAAA,iBAAAA,CAAkB,KAAA,CAAA,CAClBC,sBAAAA,cAAAA,CAAe,KAAA,CAAA,CACfH,sBAAAA,cAAAA,CAAe,KAAA,CAAA,CACfQ,sBAAAA,qBAAAA,CAAsB,KAAA,EAAA,CAavB,EAEA,IAAIovE,oBAAAA,CAAuB,EAAI,EAAA,CAC/B,IAAIC,0BAA4B,CAAA,CAAID,oBAAAA,CAAuB,EAC3D,IAAIE,gBAAAA,CAAmB,cAAcnd,QAAAA,CACpC,WAAA,CAAYod,UAAU,CAAEC,UAAU,CAAE9hP,MAAM,CAAEolO,cAAc,CAAE2c,WAAW,CAAEC,WAAW,CAAE,CACrF,KAAK,EAAA,CACL,MAAM5zF,GAAAA,CAAM,IAAIr4J,KAChB,MAAMksP,WAAAA,CAAc,IAAIlsP,IAAAA,CACxB,MAAMmsP,KAAO,IAAInsP,IAAAA,CACjB,MAAM+I,GAAAA,CAAM,IAAI/I,IAAAA,CAChB,MAAM8I,MAAAA,CAAS,IAAI9I,KACnB,MAAMu8N,OAAAA,CAAU,IAAIv8N,IAAAA,CACpB,MAAMmsC,UAAY,EAAE,CACpB,MAAM8pG,OAAAA,CAAU,EAAE,CAClB,MAAMG,GAAAA,CAAM,EAAE,CACd,MAAMC,KAAO,EAAE,CACf,MAAMrxG,OAAAA,CAAU,EAAE,CAClB,IAAIjzC,OAAAA,CACJ,GAAIkY,MAAAA,CAAS,CAAA,CAAG,CACf,IAAK,IAAI9lB,GAAK,CAAA,CAAGA,EAAAA,EAAMkrP,eAAgBlrP,EAAAA,EAAAA,CAAM,CAC5C,IAAK,IAAI0xC,CAAAA,CAAI,EAAGA,CAAAA,EAAKm2N,WAAAA,CAAan2N,CAAAA,EAAAA,CAAK,CACtC,MAAMsuI,KAAAA,CAAQtuI,EAAIm2N,WAAAA,CAAc,CAAA,CAAItoQ,KAAKyT,EAAE,CAAGzT,KAAKyT,EAAE,CACrD,MAAMquK,QAAAA,CAAW9hL,IAAAA,CAAKqc,GAAG,CAACokK,KAAAA,CAAAA,CAC1B,MAAMoB,QAAAA,CAAW7hL,IAAAA,CAAKmc,GAAG,CAACskK,KAAAA,CAAAA,CAC1Br7J,OAAOhe,GAAG,CAAC06K,SAAWsmF,UAAAA,CAAY,CAAC7hP,OAAS,CAAA,CAAGs7J,QAAAA,CAAWumF,YAC1D/iP,GAAAA,CAAIje,GAAG,CAAC06K,QAAAA,CAAWumF,UAAAA,CAAY9hP,OAAS,CAAA,CAAGs7J,QAAAA,CAAWwmF,YACtD1zF,GAAAA,CAAIxgK,IAAI,CAACiR,MAAAA,CAAQC,GAAAA,CAAK5kB,EAAAA,CAAKkrP,cAAAA,CAAAA,CAC3B6c,WAAAA,CAAYjqP,IAAI,CAAC8G,GAAAA,CAAKD,MAAAA,CAAAA,CAAQvkB,SAAS,EAAA,CACvCg4O,OAAAA,CAAQzxO,GAAG,CAACy6K,QAAAA,CAAU,EAAG,CAACC,QAAAA,CAAAA,CAC1B2mF,KAAK3rP,KAAK,CAAC+7N,QAAS2vB,WAAAA,CAAAA,CAAa3nQ,SAAS,GAC1C4nD,SAAAA,CAAUlnD,IAAI,CAACozK,GAAAA,CAAIn4J,CAAC,CAAEm4J,GAAAA,CAAIl4J,CAAC,CAAEk4J,GAAAA,CAAIj4J,CAAC,EAClC61I,OAAAA,CAAQhxJ,IAAI,CAACknQ,IAAAA,CAAKjsP,CAAC,CAAEisP,IAAAA,CAAKhsP,CAAC,CAAEgsP,IAAAA,CAAK/rP,CAAC,EACnC,IAAI4Z,CAAAA,CAAI6b,EAAIm2N,WAAAA,CACZ,IAAIpoQ,GAAKO,EAAAA,CAAKkrP,cAAAA,CACdj5F,IAAInxJ,IAAI,CAAC+0B,EAAG,CAAA,CAAIp2B,EAAAA,CAAAA,CAChB,MAAMwoQ,GAAAA,CAAMxoQ,EAAAA,CACZA,GAAKo2B,CAAAA,CACLA,CAAAA,CAAIoyO,IACJpyO,CAAAA,CAAIA,CAAAA,CAAI4xO,0BAA4BD,oBAAAA,CACpC/nQ,EAAAA,CAAKA,GAAKgoQ,yBAAAA,CAA4BD,oBAAAA,CACtC3xO,GAAK,CAAA,CACLq8H,IAAAA,CAAKpxJ,IAAI,CAAC+0B,CAAAA,CAAG,EAAIp2B,EAAAA,CAAAA,CACjB,GAAIO,GAAKkrP,cAAAA,EAAkBx5M,CAAAA,CAAIm2N,YAAa,CAC3C,MAAMljQ,MAAQ3E,EAAAA,EAAM6nQ,YAAc,CAAA,CAAA,CAAKn2N,CAAAA,CACvC,MAAM7sC,MAAAA,CAAS7E,EAAAA,EAAM6nQ,WAAAA,CAAc,CAAA,GAAMn2N,CAAAA,CAAI,CAAA,CAAA,CAC7C,MAAMw2N,MAAQ,CAACloQ,GAAK,CAAA,GAAM6nQ,WAAAA,CAAc,CAAA,EAAKn2N,CAAAA,CAC7C,MAAMy2N,OAAS,CAACnoQ,GAAK,CAAA,GAAM6nQ,WAAAA,CAAc,CAAA,GAAMn2N,CAAAA,CAAI,CAAA,CAAA,CACnDmP,OAAAA,CAAQ//C,IAAI,CAAC6D,KAAAA,CAAOE,OAAQqjQ,KAAAA,CAAAA,CAC5BrnN,OAAAA,CAAQ//C,IAAI,CAAC+D,MAAAA,CAAQsjQ,MAAAA,CAAQD,KAAAA,EAC9B,CACD,CACD,CACD,CACA,GAAIJ,YAAa,CAChB,MAAM5b,cAAgB3sP,IAAAA,CAAKoQ,KAAK,CAACk4P,WAAAA,CAAc,CAAA,CAAA,CAC/C,MAAM1b,cAAAA,CAAiB0b,WAAAA,CACvB,MAAMO,SAAAA,CAAYtiP,MAAAA,CAAS,EAC3B,IAAK,IAAIsmO,IAAM,CAAA,CAAGA,GAAAA,EAAOF,cAAeE,GAAAA,EAAAA,CAAO,CAC9C,MAAMpsE,KAAAA,CAAQosE,GAAAA,CAAM7sP,KAAKyT,EAAE,CAAG,GAAMk5O,aAAAA,CACpC,MAAM7qE,SAAW9hL,IAAAA,CAAKqc,GAAG,CAACokK,KAAAA,CAAAA,CAC1B,MAAMoB,SAAW7hL,IAAAA,CAAKmc,GAAG,CAACskK,KAAAA,CAAAA,CAC1B,IAAK,IAAIqsE,IAAM,CAAA,CAAGA,GAAAA,EAAOF,eAAgBE,GAAAA,EAAAA,CAAO,CAC/C,MAAMlrE,GAAAA,CAAMkrE,GAAAA,CAAM,EAAI9sP,IAAAA,CAAKyT,EAAE,CAAGm5O,cAAAA,CAAiB5sP,IAAAA,CAAKyT,EAAE,CAAG,CAAA,CAC3D,MAAMs5O,MAAAA,CAAS/sP,IAAAA,CAAKqc,GAAG,CAACulK,GAAAA,CAAAA,CACxB,MAAMorE,MAAAA,CAAShtP,IAAAA,CAAKmc,GAAG,CAACylK,GAAAA,CAAAA,CACxB,MAAM5kL,EAAAA,CAAKgwP,MAAAA,CAASlrE,SACpB,MAAM1lK,EAAAA,CAAKylK,SACX,MAAMvkK,EAAAA,CAAKyvO,OAASjrE,QAAAA,CACpB,IAAIxrJ,EAAI,CAAA,CAAIw2N,GAAAA,CAAMF,eAClB,IAAI1sP,EAAAA,CAAK,EAAI2sP,GAAAA,CAAMF,aAAAA,CACnBlkM,UAAUlnD,IAAI,CAACvE,GAAKqrQ,UAAAA,CAAYjsP,EAAAA,CAAKisP,WAAaQ,SAAAA,CAAWvrP,EAAAA,CAAK+qP,YAClE91G,OAAAA,CAAQhxJ,IAAI,CAACvE,EAAAA,CAAIof,EAAAA,CAAIkB,IACrBo1I,GAAAA,CAAInxJ,IAAI,CAAC+0B,CAAAA,CAAG,CAAA,CAAIp2B,IAChBo2B,CAAAA,CAAIA,CAAAA,CAAI4xO,0BAA4BD,oBAAAA,CACpC/nQ,EAAAA,CAAKA,GAAKgoQ,yBAAAA,CAA4BD,oBAAAA,CACtC3xO,GAAK,CAAA,CACLp2B,EAAAA,EAAM,EACNo2B,CAAAA,EAAK,CAAA,CAAI,EACTq8H,IAAAA,CAAKpxJ,IAAI,CAAC+0B,CAAAA,CAAG,CAAA,CAAIp2B,EAAAA,EAClB,CACD,CACAmO,OAAAA,CAAU,CAACs9O,cAAAA,CAAiB,CAAA,GAAM2c,YAAc,CAAA,CAAA,CAChD,IAAK,IAAIzb,GAAAA,CAAM,EAAGA,GAAAA,CAAMF,aAAAA,CAAe,EAAEE,GAAAA,CAAK,CAC7C,IAAK,IAAIC,GAAAA,CAAM,EAAGA,GAAAA,CAAMF,cAAAA,CAAgB,EAAEE,GAAAA,CAAK,CAC9C,MAAM1nP,KAAAA,CAAQynP,GAAAA,EAAOD,cAAAA,CAAiB,CAAA,EAAKE,GAAAA,CAC3C,MAAMxnP,OAASF,KAAAA,CAAQwnP,cAAAA,CAAiB,EACxCtrM,OAAAA,CAAQ//C,IAAI,CAAC8M,OAAAA,CAAUjJ,KAAAA,CAAQ,CAAA,CAAGiJ,OAAAA,CAAU/I,MAAAA,CAAQ+I,OAAAA,CAAUjJ,OAC9Dk8C,OAAAA,CAAQ//C,IAAI,CAAC8M,OAAAA,CAAUjJ,KAAAA,CAAQ,EAAGiJ,OAAAA,CAAU/I,MAAAA,CAAS,EAAG+I,OAAAA,CAAU/I,MAAAA,EACnE,CACD,CACA,IAAK,IAAIunP,GAAAA,CAAM,CAAA,CAAGA,KAAOF,aAAAA,CAAeE,GAAAA,EAAAA,CAAO,CAC9C,MAAMpsE,KAAAA,CAAQzgL,KAAKyT,EAAE,CAAG,GAAMo5O,GAAAA,CAAM7sP,IAAAA,CAAKyT,EAAE,CAAG,EAAA,CAAMk5O,cACpD,MAAM7qE,QAAAA,CAAW9hL,KAAKqc,GAAG,CAACokK,OAC1B,MAAMoB,QAAAA,CAAW7hL,KAAKmc,GAAG,CAACskK,KAAAA,CAAAA,CAC1B,IAAK,IAAIqsE,GAAAA,CAAM,EAAGA,GAAAA,EAAOF,cAAAA,CAAgBE,MAAO,CAC/C,MAAMlrE,IAAMkrE,GAAAA,CAAM,CAAA,CAAI9sP,KAAKyT,EAAE,CAAGm5O,eAAiB5sP,IAAAA,CAAKyT,EAAE,CAAG,CAAA,CAC3D,MAAMs5O,OAAS/sP,IAAAA,CAAKqc,GAAG,CAACulK,GAAAA,CAAAA,CACxB,MAAMorE,OAAShtP,IAAAA,CAAKmc,GAAG,CAACylK,GAAAA,CAAAA,CACxB,MAAM5kL,GAAKgwP,MAAAA,CAASlrE,QAAAA,CACpB,MAAM1lK,EAAAA,CAAKylK,QAAAA,CACX,MAAMvkK,EAAAA,CAAKyvO,MAAAA,CAASjrE,SACpB,IAAIxrJ,CAAAA,CAAI,EAAIw2N,GAAAA,CAAMF,cAAAA,CAClB,IAAI1sP,EAAAA,CAAK,CAAA,CAAI2sP,IAAMF,aAAAA,CACnBlkM,SAAAA,CAAUlnD,IAAI,CAACvE,EAAAA,CAAKqrQ,WAAYjsP,EAAAA,CAAKisP,UAAAA,CAAaQ,UAAWvrP,EAAAA,CAAK+qP,UAAAA,CAAAA,CAClE91G,QAAQhxJ,IAAI,CAACvE,GAAIof,EAAAA,CAAIkB,EAAAA,CAAAA,CACrBo1I,IAAInxJ,IAAI,CAAC+0B,EAAG,CAAA,CAAIp2B,EAAAA,CAAAA,CAChBo2B,EAAIA,CAAAA,CAAI4xO,yBAAAA,CAA4BD,qBACpC/nQ,EAAAA,CAAKA,EAAAA,CAAKgoQ,0BAA4BD,oBAAAA,CACtC3xO,CAAAA,EAAK,EACLp2B,EAAAA,EAAM,CAAA,CACNo2B,GAAK,CAAA,CAAI,CAAA,CACTq8H,KAAKpxJ,IAAI,CAAC+0B,EAAG,CAAA,CAAIp2B,EAAAA,EAClB,CACD,CACAmO,OAAAA,CAAWs9O,CAAAA,cAAAA,CAAiB,CAAA,GAAM2c,WAAAA,CAAc,CAAA,CAAA,CAAM1b,CAAAA,cAAAA,CAAiB,CAAA,GAAMD,aAAAA,CAAgB,CAAA,CAAA,CAC7F,IAAK,IAAIE,GAAAA,CAAM,CAAA,CAAGA,IAAMF,aAAAA,CAAe,EAAEE,IAAK,CAC7C,IAAK,IAAIC,GAAAA,CAAM,CAAA,CAAGA,IAAMF,cAAAA,CAAgB,EAAEE,IAAK,CAC9C,MAAM1nP,MAAQynP,GAAAA,EAAOD,eAAiB,CAAA,CAAA,CAAKE,IAC3C,MAAMxnP,MAAAA,CAASF,KAAAA,CAAQwnP,cAAAA,CAAiB,CAAA,CACxCtrM,OAAAA,CAAQ//C,IAAI,CAAC8M,OAAAA,CAAUjJ,MAAQ,CAAA,CAAGiJ,OAAAA,CAAU/I,OAAQ+I,OAAAA,CAAUjJ,KAAAA,CAAAA,CAC9Dk8C,QAAQ//C,IAAI,CAAC8M,QAAUjJ,KAAAA,CAAQ,CAAA,CAAGiJ,QAAU/I,MAAAA,CAAS,CAAA,CAAG+I,QAAU/I,MAAAA,EACnE,CACD,CACD,CAAA,KAAO,CACN+I,QAAU,CAACs9O,eAAiB,CAAA,GAAM2c,WAAAA,CAAc,CAAA,EAChD,GAAIF,UAAAA,CAAa,EAAG,CACnB,IAAK,IAAI3nQ,EAAAA,CAAK,CAAA,CAAGA,GAAK6nQ,WAAAA,CAAa7nQ,EAAAA,EAAAA,CAAM,CACxC,MAAMggL,KAAAA,CAAQhgL,EAAAA,CAAK6nQ,YAAc,CAAA,CAAItoQ,IAAAA,CAAKyT,EAAE,CAC5C,MAAMzW,GAAKgD,IAAAA,CAAKqc,GAAG,CAACokK,KAAAA,CAAAA,CACpB,MAAMrkK,GAAK,CAACmK,MAAAA,CAAS,EACrB,MAAMjJ,EAAAA,CAAKtd,KAAKmc,GAAG,CAACskK,OACpB,IAAInqJ,CAAAA,CAAI,EAAI,CAACt5B,GAAK,CAAA,EAAK,EACvB,IAAIkD,EAAAA,CAAK,CAACod,EAAAA,CAAK,CAAA,EAAK,CAAA,CACpBmrC,UAAUlnD,IAAI,CAACvE,GAAKorQ,UAAAA,CAAYhsP,EAAAA,CAAIkB,GAAK8qP,UAAAA,CAAAA,CACzC71G,OAAAA,CAAQhxJ,IAAI,CAAC,CAAA,CAAG,EAAC,CAAG,CAAA,CAAA,CACpBmxJ,IAAInxJ,IAAI,CAAC+0B,EAAG,CAAA,CAAIp2B,EAAAA,CAAAA,CAChBo2B,EAAIA,CAAAA,CAAI4xO,yBAAAA,CAA4BD,qBACpC/nQ,EAAAA,CAAKA,EAAAA,CAAKgoQ,0BAA4BD,oBAAAA,CACtC3xO,CAAAA,EAAK,EACLp2B,EAAAA,EAAM,CAAA,CACNo2B,GAAK,CAAA,CAAI,CAAA,CACTq8H,KAAKpxJ,IAAI,CAAC+0B,EAAG,CAAA,CAAIp2B,EAAAA,CAAAA,CACjB,GAAIO,EAAAA,CAAK,CAAA,CAAG,CACX6gD,OAAAA,CAAQ//C,IAAI,CAAC8M,OAAAA,CAASA,OAAAA,CAAU5N,GAAI4N,OAAAA,CAAU5N,EAAAA,CAAK,CAAA,EACpD,CACD,CACD,CACA4N,SAAWi6P,WAAAA,CACX,GAAID,WAAa,CAAA,CAAG,CACnB,IAAK,IAAI5nQ,EAAAA,CAAK,EAAGA,EAAAA,CAAK6nQ,WAAAA,CAAa7nQ,KAAM,CACxC,MAAMggL,MAAQhgL,EAAAA,CAAK6nQ,WAAAA,CAAc,EAAItoQ,IAAAA,CAAKyT,EAAE,CAC5C,MAAMzW,EAAAA,CAAKgD,KAAKqc,GAAG,CAACokK,OACpB,MAAMrkK,EAAAA,CAAKmK,OAAS,CAAA,CACpB,MAAMjJ,GAAKtd,IAAAA,CAAKmc,GAAG,CAACskK,KAAAA,CAAAA,CACpB,IAAInqJ,EAAI,CAAA,CAAKt5B,CAAAA,EAAAA,CAAK,CAAA,EAAK,CAAA,CACvB,IAAIkD,EAAAA,CAAK,CAACod,EAAAA,CAAK,CAAA,EAAK,CAAA,CACpBmrC,UAAUlnD,IAAI,CAACvE,GAAKqrQ,UAAAA,CAAYjsP,EAAAA,CAAIkB,GAAK+qP,UAAAA,CAAAA,CACzC91G,OAAAA,CAAQhxJ,IAAI,CAAC,CAAA,CAAG,EAAG,CAAA,CAAA,CACnBmxJ,GAAAA,CAAInxJ,IAAI,CAAC+0B,CAAAA,CAAG,EAAIp2B,EAAAA,CAAAA,CAChBo2B,CAAAA,CAAIA,EAAI4xO,yBAAAA,CAA4BD,oBAAAA,CACpC/nQ,GAAKA,EAAAA,CAAKgoQ,yBAAAA,CAA4BD,qBACtC3xO,CAAAA,EAAK,CAAA,CACLp2B,IAAM,CAAA,CACNo2B,CAAAA,EAAK,EAAI,CAAA,CACTq8H,IAAAA,CAAKpxJ,IAAI,CAAC+0B,CAAAA,CAAG,CAAA,CAAIp2B,EAAAA,CAAAA,CACjB,GAAIO,EAAAA,CAAK,EAAG,CACX6gD,OAAAA,CAAQ//C,IAAI,CAAC8M,OAAAA,CAASA,QAAU5N,EAAAA,CAAK,CAAA,CAAG4N,QAAU5N,EAAAA,EACnD,CACD,CACD,CACD,CACA,IAAI,CAACgoD,SAAS,CAAGA,SACjB,CAAA,IAAI,CAAC8pG,OAAO,CAAGA,OACf,CAAA,IAAI,CAACG,GAAG,CAAGA,GACX,CAAA,IAAI,CAACC,IAAI,CAAGA,IACZ,CAAA,IAAI,CAACrxG,OAAO,CAAGA,QAChB,CACD,EAEA,IAAIwnN,eAAAA,CAAkB,cAAcX,gBAAAA,CACnC,WAAA,CAAY/c,KAAO,EAAE,CAAE,CACtB,MAAMvvO,OAASuvO,IAAAA,CAAKvvO,MAAM,EAAI,EAAA,CAC9B,MAAM0K,OAAS6kO,IAAAA,CAAK7kO,MAAM,EAAI,CAAA,CAC9B,MAAMolO,eAAiBP,IAAAA,CAAKO,cAAc,EAAI,CAAA,CAC9C,MAAMO,MAAQd,IAAAA,CAAKc,KAAK,EAAI,EAAA,CAC5B,KAAK,CAACrwO,MAAAA,CAAQA,MAAAA,CAAQ0K,OAAS,CAAA,CAAI1K,MAAAA,CAAQ8vO,eAAgBO,KAAAA,CAAO,IAAA,CAAA,CAClE,GAAId,IAAAA,CAAKrB,iBAAiB,CAAE,CAC3B,IAAI,CAACA,iBAAiB,GACvB,CACD,CACD,CAAA,CAEA,IAAIgf,eAAiB,cAAc/d,QAAAA,CAClC,YAAYI,IAAAA,CAAO,EAAE,CAAE,CACtB,KAAK,EAAA,CACL,MAAMvvO,OAASuvO,IAAAA,CAAKvvO,MAAM,EAAI,EAAA,CAC9B,MAAMmtP,QAAUhpQ,IAAAA,CAAK6T,GAAG,CAAC7T,IAAAA,CAAKoQ,KAAK,CAACg7O,IAAAA,CAAK4d,OAAO,EAAI,EAAA,CAAA,CAAK,CAAA,CAAA,CACzD,MAAMC,KAAAA,CAAQjpQ,IAAAA,CAAK6T,GAAG,CAAC7T,IAAAA,CAAKoQ,KAAK,CAACg7O,IAAAA,CAAK6d,KAAK,EAAI,CAAA,CAAA,CAAI,GACpD,MAAMC,YAAAA,CAAe9d,KAAK8d,YAAY,EAAI,EAC1C,MAAMzgN,SAAAA,CAAY,EAAE,CACpB,MAAM8pG,QAAU,EAAE,CAClB,MAAMG,GAAAA,CAAM,EAAE,CACd,MAAMpxG,OAAAA,CAAU,EAAE,CAClBmH,SAAAA,CAAUlnD,IAAI,CAAC,CAAA,CAAG,EAAG,CAAA,CAAA,CACrBgxJ,OAAAA,CAAQhxJ,IAAI,CAAC,CAAA,CAAG,EAAG,CAAA,CAAA,CACnBmxJ,GAAAA,CAAInxJ,IAAI,CAAC,EAAA,CAAK,IACd,IAAK,IAAIxB,EAAI,CAAA,CAAGA,CAAAA,EAAKkpQ,KAAAA,CAAOlpQ,CAAAA,EAAAA,CAAK,CAChC,MAAMopQ,WAAattP,MAAAA,CAAS7b,IAAAA,CAAK2U,GAAG,CAAC5U,CAAAA,CAAIkpQ,MAAOC,YAAAA,CAAAA,CAChD,IAAK,IAAI/2N,CAAAA,CAAI,CAAA,CAAGA,EAAI62N,OAAAA,CAAS72N,CAAAA,EAAAA,CAAK,CACjC,MAAMj2B,KAAAA,CAAQ,EAAIlc,IAAAA,CAAKyT,EAAE,CAAG0+B,CAAAA,CAAI62N,OAAAA,CAChC,MAAMhsQ,EAAAA,CAAKmsQ,UAAAA,CAAanpQ,KAAKmc,GAAG,CAACD,OACjC,MAAMoB,EAAAA,CAAK6rP,WAAanpQ,IAAAA,CAAKqc,GAAG,CAACH,KAAAA,CAAAA,CACjCusC,SAAAA,CAAUlnD,IAAI,CAACvE,EAAAA,CAAI,EAAGsgB,EAAAA,CAAAA,CACtBi1I,OAAAA,CAAQhxJ,IAAI,CAAC,CAAA,CAAG,EAAG,CAAA,CAAA,CACnBmxJ,GAAAA,CAAInxJ,IAAI,CAAC,EAAA,CAAMvE,IAAM,CAAA,CAAI6e,MAAK,CAAA,CAAI,EAAA,CAAMyB,IAAM,CAAA,CAAIzB,MAAK,CAAA,EACxD,CACD,CACA,MAAMutP,UAAAA,CAAa,CAACrpQ,CAAAA,CAAGoyC,CAAAA,GAAM,EAAI,CAACpyC,EAAI,CAAA,EAAKipQ,QAAU72N,CAAAA,CAAI62N,OAAAA,CACzD,IAAK,IAAI72N,CAAAA,CAAI,EAAGA,CAAAA,CAAI62N,OAAAA,CAAS72N,IAAK,CACjCmP,OAAAA,CAAQ//C,IAAI,CAAC,CAAA,CAAG6nQ,UAAAA,CAAW,CAAA,CAAGj3N,CAAAA,CAAI,CAAA,CAAA,CAAIi3N,WAAW,CAAA,CAAGj3N,CAAAA,CAAAA,EACrD,CACA,IAAK,IAAIpyC,EAAI,CAAA,CAAGA,CAAAA,CAAIkpQ,MAAOlpQ,CAAAA,EAAAA,CAAK,CAC/B,IAAK,IAAIoyC,CAAAA,CAAI,EAAGA,CAAAA,CAAI62N,OAAAA,CAAS72N,IAAK,CACjC,MAAMk3N,MAAQD,UAAAA,CAAWrpQ,CAAAA,CAAGoyC,GAC5B,MAAMm3N,SAAAA,CAAYF,WAAWrpQ,CAAAA,CAAGoyC,CAAAA,CAAI,GACpC,MAAMo3N,KAAAA,CAAQH,WAAWrpQ,CAAAA,CAAI,CAAA,CAAGoyC,GAChC,MAAMq3N,SAAAA,CAAYJ,WAAWrpQ,CAAAA,CAAI,CAAA,CAAGoyC,EAAI,CAAA,CAAA,CACxCmP,OAAAA,CAAQ//C,IAAI,CAAC8nQ,KAAAA,CAAOG,SAAAA,CAAWD,OAC/BjoN,OAAAA,CAAQ//C,IAAI,CAAC8nQ,KAAAA,CAAOC,SAAAA,CAAWE,WAChC,CACD,CACA,IAAI,CAAC/gN,SAAS,CAAGA,SACjB,CAAA,IAAI,CAAC8pG,OAAO,CAAGA,OACf,CAAA,IAAI,CAACG,GAAG,CAAGA,GACX,CAAA,IAAI,CAACC,IAAI,CAAGD,GACZ,CAAA,IAAI,CAACpxG,OAAO,CAAGA,OAAAA,CACf,GAAI8pM,KAAKrB,iBAAiB,CAAE,CAC3B,IAAI,CAACA,iBAAiB,GACvB,CACD,CACD,EAEA,IAAI0f,YAAAA,CAAe,cAActB,gBAAAA,CAChC,WAAA,CAAY/c,KAAO,EAAE,CAAE,CACtB,MAAMgd,WAAahd,IAAAA,CAAKgd,UAAU,EAAI,EAAA,CACtC,MAAMC,WAAajd,IAAAA,CAAKid,UAAU,EAAI,CAAA,CACtC,MAAM9hP,OAAS6kO,IAAAA,CAAK7kO,MAAM,EAAI,CAAA,CAC9B,MAAMolO,eAAiBP,IAAAA,CAAKO,cAAc,EAAI,CAAA,CAC9C,MAAM2c,YAAcld,IAAAA,CAAKkd,WAAW,EAAI,EAAA,CACxC,KAAK,CAACF,UAAAA,CAAYC,UAAAA,CAAY9hP,OAAQolO,cAAAA,CAAgB2c,WAAAA,CAAa,OACnE,GAAIld,IAAAA,CAAKrB,iBAAiB,CAAE,CAC3B,IAAI,CAACA,iBAAiB,GACvB,CACD,CACD,EAEA,IAAI2f,gBAAAA,CAAmB,cAAcvB,gBAAAA,CACpC,WAAA,CAAY/c,KAAO,EAAE,CAAE,CACtB,MAAMvvO,OAASuvO,IAAAA,CAAKvvO,MAAM,EAAI,EAAA,CAC9B,MAAM0K,OAAS6kO,IAAAA,CAAK7kO,MAAM,EAAI,CAAA,CAC9B,MAAMolO,eAAiBP,IAAAA,CAAKO,cAAc,EAAI,CAAA,CAC9C,MAAM2c,YAAcld,IAAAA,CAAKkd,WAAW,EAAI,EAAA,CACxC,KAAK,CAACzsP,OAAQA,MAAAA,CAAQ0K,MAAAA,CAAQolO,eAAgB2c,WAAAA,CAAa,KAAA,CAAA,CAC3D,GAAIld,IAAAA,CAAKrB,iBAAiB,CAAE,CAC3B,IAAI,CAACA,iBAAiB,GACvB,CACD,CACD,CAAA,CAEA,IAAI4f,aAAAA,CAAgB,cAAc3e,SACjC,WAAA,CAAYI,IAAAA,CAAO,EAAE,CAAE,CACtB,KAAK,EAAA,CACL,MAAMC,EAAAA,CAAKD,IAAAA,CAAKh/N,WAAW,EAAI,IAAI7J,KAAK,EAAA,CAAK,EAAA,CAAA,CAC7C,MAAM+oO,EAAAA,CAAKF,IAAAA,CAAKG,aAAa,EAAI,CAAA,CACjC,MAAMC,EAAAA,CAAKJ,IAAAA,CAAKK,cAAc,EAAI,CAAA,CAClC,MAAMhjM,UAAY,EAAE,CACpB,MAAM8pG,OAAAA,CAAU,EAAE,CAClB,MAAMG,GAAAA,CAAM,EAAE,CACd,MAAMpxG,QAAU,EAAE,CAClB,IAAI+qM,QAAAA,CAAW,CAAA,CACf,IAAK,IAAI5rP,EAAAA,CAAK,EAAGA,EAAAA,EAAM6qP,EAAAA,CAAI7qP,KAAM,CAChC,IAAK,IAAI0xC,CAAAA,CAAI,CAAA,CAAGA,GAAKq5M,EAAAA,CAAIr5M,CAAAA,EAAAA,CAAK,CAC7B,MAAMn1C,EAAAA,CAAK,CAACquP,EAAAA,CAAG7uO,CAAC,CAAG,CAAA,CAAI6uO,EAAAA,CAAG7uO,CAAC,CAAG/b,EAAAA,CAAK6qP,EAAAA,CACnC,MAAMlvO,EAAAA,CAAK,CAAA,CACX,MAAMkB,EAAAA,CAAK,EAAE,CAAC+tO,EAAAA,CAAG5uO,CAAC,CAAG,CAAA,CAAI4uO,GAAG5uO,CAAC,CAAG01B,EAAIq5M,EAAC,CAAA,CACrC,MAAMl1N,CAAAA,CAAI71B,EAAAA,CAAK6qP,GACf,MAAMprP,EAAAA,CAAKiyC,EAAIq5M,EAAAA,CACf/iM,SAAAA,CAAUlnD,IAAI,CAACvE,EAAAA,CAAIof,GAAIkB,EAAAA,CAAAA,CACvBi1I,OAAAA,CAAQhxJ,IAAI,CAAC,CAAA,CAAG,EAAG,CAAA,CAAA,CACnBmxJ,GAAAA,CAAInxJ,IAAI,CAAC+0B,CAAAA,CAAG,EAAIp2B,EAAAA,CAAAA,CAChB,GAAIO,GAAK6qP,EAAAA,EAAMn5M,CAAAA,CAAIq5M,GAAI,CACtBlqM,OAAAA,CAAQ//C,IAAI,CAAC8qP,QAAAA,CAAWb,GAAK,CAAA,CAAGa,QAAAA,CAAW,EAAGA,QAAAA,CAAAA,CAC9C/qM,OAAAA,CAAQ//C,IAAI,CAAC8qP,QAAAA,CAAWb,GAAK,CAAA,CAAGa,QAAAA,CAAWb,GAAK,CAAA,CAAGa,QAAAA,CAAW,GAC/D,CACAA,QAAAA,GACD,CACD,CACA,IAAI,CAAC5jM,SAAS,CAAGA,SACjB,CAAA,IAAI,CAAC8pG,OAAO,CAAGA,OACf,CAAA,IAAI,CAACG,GAAG,CAAGA,GACX,CAAA,IAAI,CAACC,IAAI,CAAGD,GACZ,CAAA,IAAI,CAACpxG,OAAO,CAAGA,OAAAA,CACf,GAAI8pM,IAAAA,CAAKrB,iBAAiB,CAAE,CAC3B,IAAI,CAACA,iBAAiB,GACvB,CACD,CACD,CAAA,CAEA,IAAI6f,aAAAA,CAAgB,cAAc5e,SACjC,WAAA,CAAYI,IAAAA,CAAO,EAAE,CAAE,CACtB,KAAK,EAAA,CACL,MAAMye,EAAAA,CAAKze,IAAAA,CAAK0e,UAAU,EAAI,EAAA,CAC9B,MAAMnmM,EAAAA,CAAKynL,IAAAA,CAAK+d,UAAU,EAAI,EAAA,CAC9B,MAAMY,WAAAA,CAAe3e,CAAAA,IAAAA,CAAK2e,WAAW,EAAI,GAAE,EAAKx2P,IAAAA,CAAKC,UAAU,CAC/D,MAAMw2P,SAAW5e,IAAAA,CAAK4e,QAAQ,EAAI,EAAA,CAClC,MAAM9d,MAAQd,IAAAA,CAAKc,KAAK,EAAI,EAAA,CAC5B,MAAMzjM,UAAY,EAAE,CACpB,MAAM8pG,OAAAA,CAAU,EAAE,CAClB,MAAMG,GAAAA,CAAM,EAAE,CACd,MAAMpxG,QAAU,EAAE,CAClB,IAAK,IAAI7gD,EAAAA,CAAK,EAAGA,EAAAA,EAAMyrP,KAAAA,CAAOzrP,KAAM,CACnC,IAAK,IAAI0xC,CAAAA,CAAI,CAAA,CAAGA,CAAAA,EAAK63N,QAAAA,CAAU73N,CAAAA,EAAAA,CAAK,CACnC,MAAMn1C,EAAAA,CAAKgD,IAAAA,CAAKmc,GAAG,CAAC4tP,WAAAA,CAAc53N,EAAI63N,QAAAA,CAAAA,EAAarmM,GAAKkmM,EAAAA,CAAK7pQ,IAAAA,CAAKmc,GAAG,CAAC,CAAA,CAAInc,KAAKyT,EAAE,CAAGhT,GAAKyrP,KAAAA,CAAK,CAAA,CAC9F,MAAM9vO,EAAAA,CAAKpc,IAAAA,CAAKqc,GAAG,CAAC,CAAA,CAAIrc,KAAKyT,EAAE,CAAGhT,GAAKyrP,KAAAA,CAAAA,CAAS2d,EAAAA,CAChD,MAAMvsP,EAAAA,CAAKtd,IAAAA,CAAKqc,GAAG,CAAC0tP,WAAAA,CAAc53N,EAAI63N,QAAAA,CAAAA,EAAarmM,GAAKkmM,EAAAA,CAAK7pQ,IAAAA,CAAKmc,GAAG,CAAC,CAAA,CAAInc,KAAKyT,EAAE,CAAGhT,GAAKyrP,KAAAA,CAAK,CAAA,CAC9F,MAAMt5N,EAAAA,CAAK5yB,IAAAA,CAAKmc,GAAG,CAAC4tP,WAAAA,CAAc53N,EAAI63N,QAAAA,CAAAA,CAAYhqQ,IAAAA,CAAKmc,GAAG,CAAC,CAAA,CAAInc,KAAKyT,EAAE,CAAGhT,GAAKyrP,KAAAA,CAAAA,CAC9E,MAAMr5N,GAAK7yB,IAAAA,CAAKqc,GAAG,CAAC,CAAA,CAAIrc,IAAAA,CAAKyT,EAAE,CAAGhT,EAAAA,CAAKyrP,OACvC,MAAMp5N,EAAAA,CAAK9yB,KAAKqc,GAAG,CAAC0tP,YAAc53N,CAAAA,CAAI63N,QAAAA,CAAAA,CAAYhqQ,KAAKmc,GAAG,CAAC,CAAA,CAAInc,IAAAA,CAAKyT,EAAE,CAAGhT,GAAKyrP,KAAAA,CAAAA,CAC9E,MAAM51N,EAAI71B,EAAAA,CAAKyrP,KAAAA,CACf,MAAMhsP,EAAAA,CAAK,CAAA,CAAIiyC,EAAI63N,QAAAA,CACnBvhN,SAAAA,CAAUlnD,IAAI,CAACvE,EAAAA,CAAIof,GAAIkB,EAAAA,CAAAA,CACvBi1I,OAAAA,CAAQhxJ,IAAI,CAACqxB,EAAAA,CAAIC,GAAIC,EAAAA,CAAAA,CACrB4/H,GAAAA,CAAInxJ,IAAI,CAAC+0B,CAAAA,CAAG,EAAIp2B,EAAAA,CAAAA,CAChB,GAAIO,GAAKyrP,KAAAA,EAAS/5M,CAAAA,CAAI63N,SAAU,CAC/B,MAAM5kQ,MAAQ3E,EAAAA,EAAMupQ,SAAW,CAAA,CAAA,CAAK73N,EACpC,MAAM7sC,MAAAA,CAAS,CAAC7E,EAAAA,CAAK,CAAA,GAAMupQ,QAAAA,CAAW,CAAA,CAAA,CAAK73N,CAAAA,CAC3C,MAAMw2N,KAAAA,CAAQloQ,EAAAA,EAAMupQ,QAAAA,CAAW,CAAA,GAAM73N,CAAAA,CAAI,CAAA,CAAA,CACzC,MAAMy2N,OAAS,CAACnoQ,GAAK,CAAA,GAAMupQ,QAAAA,CAAW,CAAA,GAAM73N,CAAAA,CAAI,CAAA,CAAA,CAChDmP,OAAAA,CAAQ//C,IAAI,CAAC6D,KAAAA,CAAOE,OAAQqjQ,KAAAA,CAAAA,CAC5BrnN,OAAAA,CAAQ//C,IAAI,CAAC+D,MAAAA,CAAQsjQ,OAAQD,KAAAA,EAC9B,CACD,CACD,CACA,IAAI,CAAClgN,SAAS,CAAGA,SACjB,CAAA,IAAI,CAAC8pG,OAAO,CAAGA,OACf,CAAA,IAAI,CAACG,GAAG,CAAGA,GACX,CAAA,IAAI,CAACC,IAAI,CAAGD,GACZ,CAAA,IAAI,CAACpxG,OAAO,CAAGA,OAAAA,CACf,GAAI8pM,IAAAA,CAAKrB,iBAAiB,CAAE,CAC3B,IAAI,CAACA,iBAAiB,GACvB,CACD,CACD,CAAA,CAEA,IAAIkgB,cAAAA,CAAiB,KAAA,CAkCpBn8N,SAAU,CACT,IAAI,CAACo8N,UAAU,GAChB,CACAv+G,QAAAA,CAASpoJ,IAAI,CAAE4mQ,SAAS,CAAE,CACzB,GAAI,CAAC,IAAI,CAACC,WAAW,CAAC5iQ,GAAG,CAACjE,MAAO,CAChC,IAAI,CAAC6mQ,WAAW,CAAChjQ,GAAG,CAAC7D,IAAAA,CAAM4mQ,WAC5B,CACD,CACAr+G,WAAWvoJ,IAAI,CAAE,CAChB,GAAI,IAAI,CAAC6mQ,WAAW,CAAC5iQ,GAAG,CAACjE,IAAAA,CAAAA,CAAO,CAC/B,IAAI,CAAC6mQ,WAAW,CAAChhQ,MAAM,CAAC7F,IAAAA,EACzB,CACD,CACA8mQ,aAAa9mQ,IAAI,CAAE,CAClB,OAAO,IAAI,CAAC6mQ,WAAW,CAAC5iQ,GAAG,CAACjE,IAAAA,CAC7B,CACA+mQ,wBAAAA,CAAyBH,SAAS,CAAE5mQ,IAAI,CAAEiF,GAAG,CAAEyJ,QAAQ,CAAE,CACxD,IAAIs4P,IAAM,IAAI,CAACC,gBAAgB,CAACrtQ,GAAG,CAACqL,GAAAA,CAAAA,CACpC,GAAI,CAAC+hQ,GAAAA,CAAK,CACT,IAAIprF,OAAAA,CACJ,GAAIltK,SAAS67K,UAAU,EAAEnF,OAAQ,CAChCxJ,OAAAA,CAAUltK,QAAAA,CAAS67K,UAAU,CAACnF,MAAM,CACpC12K,QAAAA,CAAS67K,UAAU,CAACnF,MAAM,CAAGxJ,OAAAA,CAAQp4K,GAAG,CAAC,CAAC0Y,EAAAA,CACzC,MAAMgrP,KAAAA,CAAQhrP,CAAAA,CAAEhK,KAAK,CAAGgK,CAAAA,CAAEhK,KAAK,EAAA,CAAKgK,CACpCgrP,CAAAA,KAAAA,CAAMjiQ,GAAG,CAAGiX,CAAAA,CAAEjX,GAAG,CACjB,OAAOiiQ,KACR,GACD,CACA,IAAI,CAACC,eAAe,CAACnnQ,KAAM0O,QAAAA,CAAAA,CAC3B,GAAIA,SAAS67K,UAAU,EAAEnF,OAAQ,CAChC12K,QAAAA,CAAS67K,UAAU,CAACnF,MAAM,CAAGxJ,QAC9B,CACA,GAAI,IAAI,CAACwrF,UAAU,CAAE,CAErB,MAAMh8N,MAAAA,CAAS,IAAI,CAACymB,OAAO,CAC3Bm1M,IAAMJ,SAAAA,CAAU9/G,sBAAsB,CAAC17G,MAAAA,CAAQ18B,QAAAA,CAC/Cs4P,CAAAA,GAAAA,CAAIhnQ,IAAI,CAAGgnQ,GAAAA,CAAIhnQ,IAAI,GAAK0O,QAAAA,CAASs5I,IAAI,CAAG,CAAC,EAAEhoJ,IAAAA,CAAK,MAAM,EAAE0O,QAAAA,CAASs5I,IAAI,CAAC,CAAC,CAAGhoJ,IAAG,CAAA,CAC7E,IAAI,CAACinQ,gBAAgB,CAACpjQ,GAAG,CAACoB,GAAAA,CAAK+hQ,KAChC,CACA,OAAOA,GACR,CACA9/G,eAAAA,CAAgBjiJ,GAAG,CAAE,CACpB,OAAO,IAAI,CAACoiQ,cAAc,CAACztQ,GAAG,CAACqL,GAAAA,CAChC,CACA0iJ,gBAAgB1iJ,GAAG,CAAEyhD,MAAM,CAAE,CAC5B,IAAI,CAAC2gN,cAAc,CAACxjQ,GAAG,CAACoB,IAAKyhD,MAAAA,EAC9B,CACA4hG,WAAWtoJ,IAAI,CAAE0O,QAAQ,CAAE45D,iBAAiB,CAAEg/L,cAAc,CAAE,CAC7D,MAAMV,SAAAA,CAAY,IAAI,CAACC,WAAW,CAACjtQ,GAAG,CAACoG,IAAAA,CAAAA,CACvC,GAAI,CAAC4mQ,SAAAA,CAAW,CACf,OAAO,IACR,CACA,MAAMW,mBAAAA,CAAsBX,UAAUziH,WAAW,CAACz1I,UAClD,MAAM84P,aAAAA,CAAgB1nN,SAASynN,mBAAAA,CAAAA,CAC/B,MAAME,oBAAsBn/L,iBAAAA,CAAkB67E,WAAW,CAAC,IAAI,CAACtyF,OAAO,CAAA,CACtE,MAAM61M,cAAgB5nN,QAAAA,CAAS2nN,mBAAAA,CAAAA,CAC/B,MAAME,QAAAA,CAAW,CAAC,EAAEH,aAAAA,CAAc,CAAC,EAAEE,aAAAA,CAAc,CAAC,CACpD,IAAIE,eAAAA,CAAkB,IAAI,CAAC1gH,eAAe,CAACygH,UAC3C,GAAI,CAACC,gBAAiB,CACrB,MAAMC,mBAAqB,IAAI,CAACd,wBAAwB,CAACH,SAAAA,CAAW5mQ,KAAMwnQ,aAAAA,CAAe94P,QAAAA,CAAAA,CACzF,IAAIo5P,QAAAA,CAAW,EAAA,CACf,IAAI//G,cAAAA,CACJ,GAAIr5I,SAASs5I,IAAI,GAAK,MAAK,CAAG,CAC7BD,eAAiB1C,UAAAA,CAAWzrJ,GAAG,CAAC,IAAI,CAACi4D,OAAO,CAAA,CAAE4zF,UAAU,CAAC/2I,QAAAA,CAASs5I,IAAI,EACtE8/G,QAAAA,CAAW,CAAC,CAAC,EAAE//G,cAAAA,CAAe/nJ,IAAI,CAAC,EACpC,CACA,IAAI,CAAC6xD,OAAO,CAAC3rD,IAAI,CAAC,iBAAA,CAAmB,CACpCohQ,eACAv/G,cAAAA,CACA9zE,UAAAA,CAAY4zL,kBACb,CAAA,CAAA,CACA,MAAMjgM,iBAAmB,CACxB5nE,IAAAA,CAAM,CAAC,EAAE6nQ,kBAAAA,CAAmB7nQ,IAAI,CAAC,EAAE8nQ,SAAS,KAAK,CAAC,CAClD3vM,UAAAA,CAAY0vM,kBAAAA,CAAmB1vM,UAAU,CACzC6P,OAAAA,CAAS6/L,mBAAmB7/L,OAAO,CACnCwa,UAAWqlL,kBAAAA,CAAmBrlL,SAAS,CACvCE,SAAAA,CAAWmlL,kBAAAA,CAAmBnlL,SAAS,CACvCxa,OAAAA,CAAS2/L,mBAAmB3/L,OAAO,CACnCI,kBACAkN,cAAAA,CAAgBqyL,kBAAAA,CAAmBryL,cAAc,CACjD/E,qBAAAA,CAAuBo3L,mBAAmBp3L,qBAAqB,CAC/DnH,wBAAyBu+L,kBAAAA,CAAmBv+L,uBAAuB,CACnEC,mBAAAA,CAAqBs+L,kBAAAA,CAAmBt+L,mBAAkB,CAC3D,CACAq+L,gBAAkB,IAAI/jL,MAAAA,CAAO,IAAI,CAAChyB,OAAO,CAAE+V,gBAAAA,CAAAA,CAC3C,IAAI,CAAC+/E,eAAe,CAACggH,SAAUC,eAAAA,EAChC,CACA,OAAOA,eACR,CACAT,gBAAgBnnQ,IAAI,CAAE0O,QAAQ,CAAE,CAC/B,IAAIq5P,GAAAA,CAAM,EAAC,CACX,GAAI/nQ,IAAAA,GAAS,UAAA,CAAY,CACxB,MAAMgoQ,UAAAA,CAAa,IAAI,CAACC,wBAAwB,CAACv5P,QAAAA,CAASs5I,IAAI,EAC9D,IAAK,MAAM92H,KAAKxiB,QAAAA,CAAU,CACzB,GAAIA,QAAAA,CAASpF,cAAc,CAAC4nB,CAAAA,CAAAA,EAAM82O,UAAU,CAAC92O,CAAAA,CAAE,GAAKxiB,QAAQ,CAACwiB,CAAAA,CAAE,EAAIA,CAAAA,GAAM,MAAA,CAAQ,CAChF62O,GAAG,CAAC72O,EAAE,CAAGxiB,QAAQ,CAACwiB,CAAAA,EACnB,CACD,CACA,IAAK,MAAMA,CAAAA,IAAKxiB,QAAAA,CAAS67K,UAAU,CAAE,CACpCw9E,GAAG,CAAC72O,CAAAA,CAAE,CAAGxiB,SAAS67K,UAAU,CAACr5J,GAAE,CAEjC,MAAO,CACN62O,GAAAA,CAAMr5P,SACP,CACA,IAAI,CAACw5P,mBAAmB,CAAClqQ,IAAI,CAACsrI,IAAAA,CAAKC,SAAS,CAAC,CAAEvpI,KAAMkgE,OAAAA,CAAS6nM,GAAI,IACnE,CAEAI,YAAAA,EAAe,CACd,IAAIC,IAAAA,CAAO,kGACXA,IAAAA,EAAQ,iBAAA,CACR,GAAI,IAAI,CAACF,mBAAmB,CAAC,CAAA,CAAE,CAAE,CAChCE,IAAAA,EAAQ;AACX,CAAC,EAAE,IAAI,CAACF,mBAAmB,CAAC,EAAE,CAAC,EAAC,CAE9B,IAAK,IAAIhrQ,GAAK,CAAA,CAAGA,EAAAA,CAAK,IAAI,CAACgrQ,mBAAmB,CAAC/qQ,MAAM,CAAE,EAAED,EAAAA,CAAI,CAC5DkrQ,IAAAA,EAAQ,CAAC;AACZ,CAAC,EAAE,IAAI,CAACF,mBAAmB,CAAChrQ,EAAAA,CAAG,CAAC,EAAC,CAE/BkrQ,MAAQ,QAAA,CACRA,IAAAA,EAAQ,sDACRA,IAAAA,EAAQ,CAAC,mBAAmB,EAAEzsQ,OAAAA,CAAQ,qBAAqB,EAAEC,QAAAA,CAAS;AACxE,CAAC,CACCwsQ,IAAAA,EAAQ,2GAAA,CACR,MAAM3lN,OAAAA,CAAU16C,SAASC,aAAa,CAAC,GAAA,CAAA,CACvCy6C,OAAAA,CAAQx6C,YAAY,CAAC,OAAQ,CAAC,8BAA8B,EAAEyH,kBAAAA,CAAmB04P,IAAAA,CAAAA,CAAM,CAAC,CAAA,CACxF3lN,OAAAA,CAAQx6C,YAAY,CAAC,UAAA,CAAY,uBAAA,CACjCw6C,CAAAA,OAAAA,CAAQuvJ,KAAK,CAACq2D,OAAO,CAAG,MAAA,CACxBtgQ,QAAAA,CAASK,IAAI,CAACC,WAAW,CAACo6C,OAAAA,CAAAA,CAC1BA,OAAAA,CAAQ6lN,KAAK,EAAA,CACbvgQ,QAAAA,CAASK,IAAI,CAACgwJ,WAAW,CAAC31G,OAAAA,EAC3B,CACAkkN,UAAAA,EAAa,CACZ,IAAI,CAAC4B,gBAAgB,CAAG,IAAA,CACxB,IAAI,CAAClB,cAAc,CAACz9P,OAAO,CAAE88C,MAAAA,EAAAA,CAC5BA,MAAAA,CAAOnc,OAAO,GACf,CAAA,CAAA,CACA,IAAI,CAAC88N,cAAc,CAACzhQ,KAAK,EACzB,CAAA,IAAI,CAAC2iQ,gBAAgB,CAAG,MACzB,CACAC,eAAAA,CAAgB9hN,MAAM,CAAE,CACvB,GAAI,IAAI,CAAC6hN,gBAAgB,CAAE,CAC1B,MACD,CACA,IAAI,CAAClB,cAAc,CAACz9P,OAAO,CAAC,CAAC6+P,YAAAA,CAAcxjQ,GAAAA,GAAAA,CAC1C,GAAIyhD,SAAW+hN,YAAAA,CAAc,CAC5B,IAAI,CAACpB,cAAc,CAACxhQ,MAAM,CAACZ,GAAAA,EAC5B,CACD,CAAA,EACD,CACAgjQ,wBAAAA,CAAyBjgH,IAAI,CAAE,CAC9B,MAAMD,cAAAA,CAAiB1C,UAAAA,CAAWzrJ,GAAG,CAAC,IAAI,CAACi4D,OAAO,CAAA,CAAE4zF,UAAU,CAACuC,IAAAA,CAAAA,CAC/D,OAAOA,OAAS/I,WAAAA,EAAe+I,IAAAA,GAASjJ,cAAAA,EAAkBgJ,cAAAA,CAAehD,QAAQ,CAAG,IAAI,CAAC2jH,uBAAuB,CAAG,IAAI,CAACC,oBACzH,CACAC,UAAAA,CAAWpzN,KAAK,CAAE,CACjB,GAAIA,KAAAA,CAAO,CACV,MAAMmR,OAAAA,CAAU,IAAIzqD,KAAAA,CAAMs5C,KAAAA,CAAMr4C,MAAM,CAAA,CACtC,IAAK,IAAID,EAAAA,CAAK,CAAA,CAAGA,EAAAA,CAAKs4C,KAAAA,CAAMr4C,MAAM,CAAED,EAAAA,EAAAA,CAAM,CACzC,GAAIs4C,KAAK,CAACt4C,EAAAA,CAAG,CAAC8C,IAAI,GAAK,UAAA,CAAY,CAClC,MAAM+nQ,GAAAA,CAAMvyN,KAAK,CAACt4C,EAAAA,CAAG,CAACgjE,OAAO,CAC7B,MAAM8nM,UAAAA,CAAa,IAAI,CAACC,wBAAwB,CAACF,GAAAA,CAAI//G,IAAI,CAAA,CACzD,IAAK,MAAM92H,CAAAA,IAAK82O,UAAAA,CAAY,CAC3B,GAAIA,UAAAA,CAAW1+P,cAAc,CAAC4nB,IAAM62O,GAAG,CAAC72O,CAAAA,CAAE,GAAK,MAAK,CAAG,CACtD62O,GAAG,CAAC72O,CAAAA,CAAE,CAAG82O,UAAU,CAAC92O,CAAAA,EAAE,CAExB,CACD,CACAy1B,OAAO,CAACzpD,EAAAA,CAAG,CAAG,IAAI,CAACorJ,UAAU,CAAC9yG,KAAK,CAACt4C,EAAAA,CAAG,CAAC8C,IAAI,CAAEw1C,KAAK,CAACt4C,EAAAA,CAAG,CAACgjE,OAAO,EAChE,CACD,CACA,IAAI,CAACknM,UAAU,CAAG,KACnB,CAxMA,WAAA,CAAYh8N,MAAM,CAAEy9N,gBAAgB,CAAE,CAHtCxB,gBAAAA,CAAAA,IAAAA,CAAAA,gBAAAA,CAAiC,IAAI/hQ,GAAAA,CAAAA,CACrC2hQ,gBAAAA,CAAAA,IAAAA,CAAAA,kBAAAA,CAAmC,IAAI3hQ,KACvCuhQ,gBAAAA,CAAAA,IAAAA,CAAAA,aAAAA,CAA8B,IAAIvhQ,GAAAA,CAEjC,CAAA,IAAI,CAACusD,OAAO,CAAGzmB,MACf,CAAA,IAAI,CAACm9N,gBAAgB,CAAG,KACxB,CAAA,IAAI,CAACnB,UAAU,CAAG,KAClB,CAAA,IAAI,CAACc,mBAAmB,CAAG,EAC3B,CAAA,IAAI,CAACS,oBAAoB,CAAG,IAAIr+E,uBAChC,CAAA,IAAI,CAACo+E,uBAAuB,CAAG,IAAIp+E,uBAAAA,CACnC,MAAMw+E,0BAA4B,IAAIjgG,kBAAAA,CACtCggG,gBAAAA,CAAiBrpE,gBAAgB,CAAC/I,SAAS,CAC1C,IAAI,CAACkyE,oBAAoB,CACzB,EAAC,CACDG,yBAAAA,CACAD,iBACA,IAAA,CACA,EAAE,CACF/pH,cAAAA,CACA,IAAA,CAAA,CAED+pH,gBAAAA,CAAiBrpE,gBAAgB,CAACpJ,YAAY,CAC7C,IAAI,CAACsyE,uBAAuB,CAC5B,EAAC,CACDG,gBAAAA,CACA,IAAA,CACA7pH,aAAAA,CACA,IAAA,CAAA,CAED5zG,MAAAA,CAAO3mC,EAAE,CAAC,gBAAA,CAAmBiiD,MAAAA,EAAAA,CAC5B,IAAI,CAAC8hN,eAAe,CAAC9hN,MAAAA,EACtB,CAAA,EACD,CA4KD,CAAA,CAEA,IAAIqiN,YAAAA,CAAe,KAAA,CAQlBx+N,OAAAA,EAAU,CACT,IAAI,CAACy+N,gBAAgB,EAAE3kQ,GAAAA,EACvB,CAAA,IAAI,CAAC2kQ,gBAAgB,CAAG,IACxB,CAAA,IAAI,CAACx+N,IAAI,EAAED,OAAAA,EACX,CAAA,IAAI,CAACC,IAAI,CAAG,KACb,CACAyE,MAAAA,CAAOr4B,KAAK,CAAE9a,OAAO,CAAEgP,OAAAA,CAAU,CAAC,CAAElJ,IAAAA,CAAOgV,KAAAA,CAAMzZ,MAAM,CAAE,CACxD,IAAI,CAACqtC,IAAI,EAAEyE,MAAAA,CAAOr4B,KAAAA,CAAO9a,OAAAA,CAASgP,OAAAA,CAASlJ,IAAAA,EAC5C,CACA2rF,aAAAA,EAAgB,CACf,IAAI,CAAC/iD,IAAI,EAAE+iD,aAAAA,KACZ,CAjBA,WAAA,CAAYniD,MAAM,CAAEyiD,eAAAA,CAAkB,KAAK,CAAE,CAD7Cm7K,gBAAAA,CAAAA,IAAAA,CAAAA,kBAAAA,CAAmB,IAAA,CAElB,CAAA,IAAI,CAAC59N,MAAM,CAAGA,MACd,CAAA,IAAI,CAACyiD,eAAe,CAAGA,eACvB,CAAA,IAAI,CAACrjD,IAAI,CAAGY,MAAAA,CAAOktD,sBAAsB,CAAC,IAAI,CAC9C,CAAA,IAAI,CAAC0wK,gBAAgB,CAAG,IAAI,CAAC59N,MAAM,CAAC3mC,EAAE,CAAC,YAAA,CAAc,IAAI,CAAC8oF,aAAa,CAAE,IAAI,EAC9E,CAaD,CAAA,CAEA,IAAI07K,8BAAAA,CAAiC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,+BAAAA,CAAkC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,+BAAAA,CAAkC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC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G,IAAI,CAAChC,EACvB,CACD,CAAA,CAAA,CACAnqC,MAAAA,CAAOi4K,cAAc,CAAC,IAAI,CAACz7I,IAAI,CAAE,SAAA,CAAW,CAC3Cj2C,GAAAA,CAAK,UAAA,CACJ,OAAO,IAAI,CAACm3D,EAAE,CAAG,IAAI,CAAChN,EACvB,CACD,CAAA,EACD,CA2FD,CAAA,CAEA,IAAIk7O,iBAAAA,CAAoB;AACxB;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,eAAAA,CAAkB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,kBAAAA,CAAqB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,UAAAA,CAAa;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,oBAAAA,CAAuB;AAC3B;AACA;AACA;AACA,CAAC,CAED,IAAIC,iBAAAA,CAAoB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,oBAAAA,CAAuB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,iBAAAA,CAAoB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,YAAAA,CAAe;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,sBAAAA,CAAyB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,2BAAAA,CAA8B;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,aAAAA,CAAgB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,eAAAA,CAAkB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,iBAAAA,CAAoB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,sBAAAA,CAAyB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,uBAAAA,CAA0B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,2BAAAA,CAA8B;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,6BAAAA,CAAgC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,6BAAAA,CAAgC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,sBAAAA,CAAyB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,eAAAA,CAAkB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,sBAAAA,CAAyB;AAC7B;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,wBAAAA,CAA2B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,mBAAAA,CAAsB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,cAAAA,CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,sBAAAA,CAAyB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,qBAAAA,CAAwB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,oBAAAA,CAAuB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,8BAAAA,CAAiC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,cAAAA,CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,mBAAAA,CAAsB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,eAAAA,CAAkB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,gBAAAA,CAAmB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,cAAAA,CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,WAAAA,CAAc;AAClB;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,gBAAAA,CAAmB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,eAAAA,CAAkB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,yBAAAA,CAA4B;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,qBAAAA,CAAwB;AAC5B;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,mBAAAA,CAAsB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,qBAAAA,CAAwB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,sBAAAA,CAAyB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,WAAAA,CAAc;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,sBAAAA,CAAyB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,sBAAAA,CAAyB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,aAAAA,CAAgB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,aAAAA,CAAgB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,YAAAA,CAAe;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,qBAAAA,CAAwB;AAC5B;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,sBAAAA,CAAyB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,8BAAAA,CAAiC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,mBAAAA,CAAsB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,4BAAAA,CAA+B;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,WAAAA,CAAc;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,wBAAAA,CAA2B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,2BAAAA,CAA8B;AAClC;AACA;AACA;AACA,CAAC,CAED,IAAIC,qBAAAA,CAAwB;AAC5B;AACA;AACA;AACA,CAAC,CAED,IAAIC,uBAAAA,CAA0B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,0BAAAA,CAA6B;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,2BAAAA,CAA8B;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,gBAAAA,CAAmB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,mBAAAA,CAAsB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,gBAAAA,CAAmB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,6BAAAA,CAAgC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,wBAAAA,CAA2B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,0BAAAA,CAA6B;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,kBAAAA,CAAqB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,sBAAAA,CAAyB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,yBAAAA,CAA4B;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,6BAAAA,CAAgC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,sBAAAA,CAAyB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,0BAAAA,CAA6B;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,yBAAAA,CAA4B;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,eAAAA,CAAkB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,gBAAAA,CAAmB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,oBAAAA,CAAuB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,qBAAAA,CAAwB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,qBAAAA,CAAwB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,qBAAAA,CAAwB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,WAAAA,CAAc;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,iBAAAA,CAAoB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,YAAAA,CAAe;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,yBAAAA,CAA4B;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,aAAAA,CAAgB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,cAAAA,CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,aAAAA,CAAgB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,cAAAA,CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,kBAAAA,CAAqB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,iBAAAA,CAAoB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,eAAAA,CAAkB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,sBAAAA,CAAyB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,2BAAAA,CAA8B;AAClC;AACA;AACA;AACA,CAAC,CAED,IAAIC,sBAAAA,CAAyB;AAC7B;AACA;AACA;AACA,CAAC,CAED,IAAIC,cAAAA,CAAiB;AACrB,CAAC,CAED,IAAIC,mBAAAA,CAAsB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,mBAAAA,CAAsB;AAC1B;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,aAAAA,CAAgB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,kBAAAA,CAAqB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,gBAAAA,CAAmB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,YAAAA,CAAe;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,eAAAA,CAAkB;AACtB;AACA;AACA;AACA,CAAC,CAED,IAAIC,oBAAAA,CAAuB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,oBAAAA,CAAuB;AAC3B;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,sBAAAA,CAAyB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,uBAAAA,CAA0B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,qBAAAA,CAAwB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,wBAAAA,CAA2B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,uBAAAA,CAA0B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,sBAAAA,CAAyB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,yBAAAA,CAA4B;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,iBAAAA,CAAoB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,kBAAAA,CAAqB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,mBAAAA,CAAsB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,sBAAAA,CAAyB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,qBAAAA,CAAwB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,kBAAAA,CAAqB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,kBAAAA,CAAqB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,kBAAAA,CAAqB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,kBAAAA,CAAqB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,kBAAAA,CAAqB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,kBAAAA,CAAqB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,iBAAAA,CAAoB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,YAAAA,CAAe;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,cAAAA,CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,eAAAA,CAAkB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,gBAAAA,CAAmB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,iBAAAA,CAAoB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,yBAAAA,CAA4B;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,YAAAA,CAAe;AACnB;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,uBAAAA,CAA0B;AAC9B;AACA,CAAC,CAED,IAAIC,4BAAAA,CAA+B;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,sBAAAA,CAAyB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,mBAAAA,CAAsB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,WAAAA,CAAc;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,iBAAAA,CAAoB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,mBAAAA,CAAsB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,uBAAAA,CAA0B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,wBAAAA,CAA2B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,yBAAAA,CAA4B;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,uBAAAA,CAA0B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,yBAAAA,CAA4B;AAChC;AACA;AACA;AACA,CAAC,CAED,IAAIC,0BAAAA,CAA6B;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,uBAAAA,CAA0B;AAC9B;AACA;AACA;AACA,CAAC,CAED,IAAIC,iBAAAA,CAAoB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,qBAAAA,CAAwB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA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qB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,gBAAAA,CAAmB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,mBAAAA,CAAsB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,WAAAA,CAAc;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,qBAAAA,CAAwB;AAC5B;AACA;AACA;AACA,CAAC,CAED,IAAIC,kBAAAA,CAAqB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,qBAAAA,CAAwB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,kBAAAA,CAAqB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,aAAAA,CAAgB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,uBAAAA,CAA0B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,4BAAAA,CAA+B;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,cAAAA,CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,gBAAAA,CAAmB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,kBAAAA,CAAqB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,uBAAAA,CAA0B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,wBAAAA,CAA2B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,4BAAAA,CAA+B;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,8BAAAA,CAAiC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,8BAAAA,CAAiC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,uBAAAA,CAA0B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,CAEF,IAAIC,gBAAAA,CAAmB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,uBAAAA,CAA0B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,yBAAAA,CAA4B;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,oBAAAA,CAAuB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,uBAAAA,CAA0B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,sBAAAA,CAAyB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,qBAAAA,CAAwB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,+BAAAA,CAAkC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,eAAAA,CAAkB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,oBAAAA,CAAuB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,gBAAAA,CAAmB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,iBAAAA,CAAoB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,eAAAA,CAAkB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,YAAAA,CAAe;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,iBAAAA,CAAoB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,gBAAAA,CAAmB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,0BAAAA,CAA6B;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,sBAAAA,CAAyB;AAC7B;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,oBAAAA,CAAuB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,sBAAAA,CAAyB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,uBAAAA,CAA0B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,YAAAA,CAAe;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,eAAAA,CAAkB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,uBAAAA,CAA0B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,CAEF,IAAIC,uBAAAA,CAA0B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,cAAAA,CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,cAAAA,CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,aAAAA,CAAgB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,qBAAAA,CAAwB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,sBAAAA,CAAyB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,sBAAAA,CAAyB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,+BAAAA,CAAkC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,oBAAAA,CAAuB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,6BAAAA,CAAgC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,YAAAA,CAAe;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,yBAAAA,CAA4B;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,4BAAAA,CAA+B;AACnC;AACA;AACA;AACA,CAAC,CAED,IAAIC,sBAAAA,CAAyB;AAC7B;AACA;AACA;AACA,CAAC,CAED,IAAIC,wBAAAA,CAA2B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,2BAAAA,CAA8B;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,4BAAAA,CAA+B;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,iBAAAA,CAAoB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,oBAAAA,CAAuB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,iBAAAA,CAAoB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,8BAAAA,CAAiC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,yBAAAA,CAA4B;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,2BAAAA,CAA8B;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,mBAAAA,CAAsB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,CAEF,IAAIC,uBAAAA,CAA0B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,0BAAAA,CAA6B;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,8BAAAA,CAAiC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,uBAAAA,CAA0B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,2BAAAA,CAA8B;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,0BAAAA,CAA6B;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,gBAAAA,CAAmB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,gBAAAA,CAAmB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,qBAAAA,CAAwB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,sBAAAA,CAAyB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,sBAAAA,CAAyB;AAC7B;AACA;AACA,CAAC,CAED,IAAIC,sBAAAA,CAAyB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,YAAAA,CAAe;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,kBAAAA,CAAqB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,aAAAA,CAAgB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,0BAAAA,CAA6B;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,cAAAA,CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,cAAAA,CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,aAAAA,CAAgB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,eAAAA,CAAkB;AACtB;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,CAEF,IAAIC,mBAAAA,CAAsB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,kBAAAA,CAAqB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,gBAAAA,CAAmB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,uBAAAA,CAA0B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,4BAAAA,CAA+B;AACnC;AACA;AACA;AACA,CAAC,CAED,IAAIC,uBAAAA,CAA0B;AAC9B;AACA;AACA;AACA,CAAC,CAED,IAAIC,eAAAA,CAAkB;AACtB,CAAC,CAED,IAAIC,oBAAAA,CAAuB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,oBAAAA,CAAuB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,cAAAA,CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,mBAAAA,CAAsB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,iBAAAA,CAAoB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,aAAAA,CAAgB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,gBAAAA,CAAmB;AACvB;AACA;AACA;AACA,CAAC,CAED,IAAIC,qBAAAA,CAAwB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,CAEF,IAAIC,qBAAAA,CAAwB;AAC5B;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,uBAAAA,CAA0B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,wBAAAA,CAA2B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,sBAAAA,CAAyB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,yBAAAA,CAA4B;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,wBAAAA,CAA2B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,CAEF,IAAIC,uBAAAA,CAA0B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,0BAAAA,CAA6B;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,kBAAAA,CAAqB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,kBAAAA,CAAqB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,oBAAAA,CAAuB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,uBAAAA,CAA0B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,sBAAAA,CAAyB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,mBAAAA,CAAsB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,mBAAAA,CAAsB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,mBAAAA,CAAsB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,mBAAAA,CAAsB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,mBAAAA,CAAsB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,kBAAAA,CAAqB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,aAAAA,CAAgB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,eAAAA,CAAkB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,eAAAA,CAAkB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,0BAAAA,CAA6B;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,iBAAAA,CAAoB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,kBAAAA,CAAqB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,0BAAAA,CAA6B;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,aAAAA,CAAgB;AACpB;AACA;AACA;AACA,CAAC,CAAC,CAEF,IAAIC,wBAAAA,CAA2B;AAC/B;AACA,CAAC,CAED,IAAIC,6BAAAA,CAAgC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,uBAAAA,CAA0B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,oBAAAA,CAAuB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,YAAAA,CAAe;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,CAEF,IAAIC,kBAAAA,CAAqB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,oBAAAA,CAAuB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,wBAAAA,CAA2B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,yBAAAA,CAA4B;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,0BAAAA,CAA6B;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,wBAAAA,CAA2B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,0BAAAA,CAA6B;AACjC;AACA;AACA;AACA,CAAC,CAED,IAAIC,2BAAAA,CAA8B;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,wBAAAA,CAA2B;AAC/B;AACA;AACA;AACA,CAAC,CAED,IAAIC,kBAAAA,CAAqB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,sBAAAA,CAAyB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,yBAAAA,CAA4B;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,eAAAA,CAAkB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,mBAAAA,CAAsB,EAAA,CAC1B,IAAIC,yBAAAA,CAA4B,CAC/BC,sBAAAA,CAAwBN,wBAAAA,CACxBO,YAAAA,CAAcN,cACf,CAAA,CACA,IAAIO,0BAA4B,CAC/BC,sBAAAA,CAAwBP,yBAAAA,CACxBQ,YAAAA,CAAcP,eACf,CAAA,CACA,IAAIQ,eAAAA,CAAkB,MAcrBC,gBAAAA,CAAiBx4Q,OAAO,CAAE,CACzB,IAAI,CAACk/E,iBAAiB,CAAC1tE,QAAQ,CAACxR,OAAAA,EACjC,CACAy3H,OAAAA,CAAQ90E,YAAY,CAAEE,aAAa,CAAE,CACpC,IAAI,CAAC89G,WAAW,CAAC,CAAA,CAAE,CAAG,CAAA,CAAIh+G,YAC1B,CAAA,IAAI,CAACg+G,WAAW,CAAC,CAAA,CAAE,CAAG,CAAA,CAAI99G,aAAAA,CAC1B,IAAI,CAAC41N,mBAAmB,CAACjnQ,QAAQ,CAAC,IAAI,CAACmvJ,WAA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A,qBAAAA,CAAsB,KAAA,CAAA,CACtBC,gBAAAA,CAAAA,IAAAA,CAAAA,YAAAA,CAAa,GACbC,gBAAAA,CAAAA,IAAAA,CAAAA,WAAAA,CAAY,IAAA,CAAA,CACZvsM,gBAAAA,CAAAA,IAAAA,CAAAA,UAAU,CAAC72B,aAAAA,CAAc,EAAA,CA44B1B,CAAA,CAEA,IAAI4kO,gBAAAA,CAAmB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,iBAAAA,CAAoB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,8BAAAA,CAAiC;AACrC;AACA,CAAC,CAED,IAAIC,6BAAAA,CAAgC;AACpC;AACA,CAAC,CAED,IAAIC,uBAAAA,CAA0B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,qBAAAA,CAAwB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,sBAAAA,CAAyB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,2BAAAA,CAA8B;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,0BAAAA,CAA6B;AACjC;AACA;AACA,CAAC,CAED,IAAIC,2BAAAA,CAA8B;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,gCAAAA,CAAmC;AACvC;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,6BAAAA,CAAgC;AACpC;AACA,CAAC,CAED,IAAIC,8BAAAA,CAAiC;AACrC;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,6BAAAA,CAAgC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,4BAAAA,CAA+B;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,0BAAAA,CAA6B;AACjC;AACA;AACA,CAAC,CAED,IAAIC,yBAAAA,CAA4B;AAChC;AACA;AACA;AACA,CAAC,CAED,IAAIC,8BAAAA,CAAiC;AACrC;AACA;AACA,CAAC,CAED,IAAIC,4BAAAA,CAA+B;AACnC;AACA,CAAC,CAED,IAAIC,oBAAAA,CAAuB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,wBAAAA,CAA2B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,2BAAAA,CAA8B;AAClC;AACA;AACA,CAAC,CAED,IAAIC,oBAAAA,CAAuB;AAC3B;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,qBAAAA,CAAwB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,4BAAAA,CAA+B;AACnC;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,qBAAAA,CAAwB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,wBAAAA,CAA2B;AAC/B;AACA;AACA,CAAC,CAED,IAAIC,yBAAAA,CAA4B;AAChC;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,2BAAAA,CAA8B;AAClC;AACA,CAAC,CAED,IAAIC,qBAAAA,CAAwB;AAC5B;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,uBAAAA,CAA0B;AAC9B;AACA,CAAC,CAED,IAAIC,0BAAAA,CAA6B;AACjC;AACA;AACA,CAAC,CAED,IAAIC,2BAAAA,CAA8B;AAClC;AACA,CAAC,CAED,IAAIC,2BAAAA,CAA8B;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,uBAAAA,CAA0B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,wBAAAA,CAA2B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,qBAAAA,CAAwB;AAC5B;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,sBAAAA,CAAyB;AAC7B;AACA,CAAC,CAED,IAAIC,wBAAAA,CAA2B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,oBAAAA,CAAuB;AAC3B;AACA;AACA,CAAC,CAED,IAAIC,qBAAAA,CAAwB;AAC5B;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,kBAAAA,CAAqB,CACxBC,UAAAA,CAAY1C,gBAAAA,CACZ2C,WAAY1C,iBAAAA,CACZ2C,wBAAAA,CAA0B1C,+BAC1B2C,uBAAAA,CAAyB1C,6BAAAA,CACzB2C,kBAAmB1C,uBAAAA,CACnB2C,eAAAA,CAAiB1C,sBACjB2C,gBAAAA,CAAkB1C,sBAAAA,CAClB2C,sBAAuB1C,2BAAAA,CACvB2C,oBAAAA,CAAsB1C,0BAAAA,CACtB2C,qBAAAA,CAAuB1C,4BACvB2C,0BAAAA,CAA4B1C,gCAAAA,CAC5B2C,wBAAyB1C,6BAAAA,CACzB2C,wBAAAA,CAA0B1C,+BAC1B2C,uBAAAA,CAAyB1C,6BAAAA,CACzB2C,uBAAwB1C,4BAAAA,CACxB2C,oBAAAA,CAAsB1C,2BACtB2C,mBAAAA,CAAqB1C,yBAAAA,CACrB2C,yBAA0B1C,8BAAAA,CAC1B2C,sBAAAA,CAAwB1C,6BACxB2C,cAAAA,CAAgB1C,oBAAAA,CAChB2C,kBAAAA,CAAoB1C,wBAAAA,CACpB2C,sBAAuB1C,2BAAAA,CACvB2C,cAAAA,CAAgB1C,qBAChB2C,cAAAA,CAAgB1C,qBAAAA,CAChB2C,uBAAwB1C,4BAAAA,CACxB2C,eAAAA,CAAiB1C,sBACjB2C,kBAAAA,CAAoB1C,wBAAAA,CACpB2C,oBAAqB1C,yBAAAA,CACrB2C,qBAAAA,CAAuB1C,4BACvB2C,eAAAA,CAAiB1C,qBAAAA,CACjB2C,kBAAmB1C,uBAAAA,CACnB2C,oBAAAA,CAAsB1C,0BAAAA,CACtB2C,qBAAAA,CAAuB1C,4BACvB2C,qBAAAA,CAAuB1C,2BAAAA,CACvB2C,kBAAmB1C,uBAAAA,CACnB2C,iBAAAA,CAAmB1C,yBACnB2C,eAAAA,CAAiB1C,qBAAAA,CACjB2C,gBAAiB1C,sBAAAA,CACjB2C,kBAAAA,CAAoB1C,yBACpB2C,cAAAA,CAAgB1C,oBAAAA,CAChB2C,gBAAiB1C,qBAClB,CAAA,CAEA,IAAI2C,iBAAAA,CAAoB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,iBAAAA,CAAoB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,+BAAAA,CAAkC;AACtC;AACA,CAAC,CAED,IAAIC,8BAAAA,CAAiC;AACrC;AACA,CAAC,CAED,IAAIC,wBAAAA,CAA2B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,sBAAAA,CAAyB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,uBAAAA,CAA0B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,4BAAAA,CAA+B;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,2BAAAA,CAA8B;AAClC;AACA;AACA;AACA,CAAC,CAED,IAAIC,4BAAAA,CAA+B;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,iCAAAA,CAAoC;AACxC;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,8BAAAA,CAAiC;AACrC;AACA,CAAC,CAED,IAAIC,+BAAAA,CAAkC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,8BAAAA,CAAiC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,6BAAAA,CAAgC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,2BAAAA,CAA8B;AAClC;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,0BAAAA,CAA6B;AACjC;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,+BAAAA,CAAkC;AACtC;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,6BAAAA,CAAgC;AACpC;AACA;AACA;AACA,CAAC,CAED,IAAIC,qBAAAA,CAAwB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,yBAAAA,CAA4B;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,4BAAAA,CAA+B;AACnC;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,qBAAAA,CAAwB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,qBAAAA,CAAwB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,6BAAAA,CAAgC;AACpC;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,sBAAAA,CAAyB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,yBAAAA,CAA4B;AAChC;AACA;AACA,CAAC,CAED,IAAIC,0BAAAA,CAA6B;AACjC;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,4BAAAA,CAA+B;AACnC;AACA,CAAC,CAED,IAAIC,sBAAAA,CAAyB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,wBAAAA,CAA2B;AAC/B;AACA,CAAC,CAED,IAAIC,2BAAAA,CAA8B;AAClC;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,4BAAAA,CAA+B;AACnC;AACA,CAAC,CAED,IAAIC,4BAAAA,CAA+B;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,wBAAAA,CAA2B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,wBAAAA,CAA2B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,sBAAAA,CAAyB;AAC7B;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,sBAAAA,CAAyB;AAC7B;AACA,CAAC,CAED,IAAIC,yBAAAA,CAA4B;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,qBAAAA,CAAwB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,sBAAAA,CAAyB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sBAAA,CAAA,CAC1B,IAAI,CAACk0Z,gBAAgB,CAACl0Z,GAAG,CAAC,yBAAA,CAAA,CAC1B,IAAI,CAACk0Z,gBAAgB,CAACl0Z,GAAG,CAAC,gBAAA,CAAA,CAC1B,IAAI,CAACk0Z,gBAAgB,CAACl0Z,GAAG,CAAC,eAAA,CAAA,CAC1B,IAAI,CAACk0Z,gBAAgB,CAACl0Z,GAAG,CAAC,mBAAA,CAAA,CAC1B,IAAI,CAACk0Z,gBAAgB,CAACl0Z,GAAG,CAAC,iBAAA,CAC1B,CAAA,IAAI,CAACu8I,YAAY,CAAG,IAAI,CAACi4Q,kBAAkB,GAC5C,CAoOD,CAAA,CAEA,IAAIC,4BAAAA,CAA+B;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,qBAAAA,CAAwB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,6CAAAA,CAAgD;AACpD,EAAEhsH,qBAAAA;AACF,EAAE+rH,qBAAAA;AACF,EAAElnH,0BAAAA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIonH,gCAAAA,CAAmC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,yBAAAA,CAA4B;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,gCAAAA,CAAmC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,0BAAAA,CAA6B;AAC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A,CAAGzW,oBAAAA,CAAuBC,oBAAAA,CAAAA,CACzE,IAAI,CAACmvY,2BAA2B,EAAA,CAChC,IAAI,CAACE,+BAA+B,GACrC,CA+VD,CAAA,CAEA,IAAIgC,+BAAAA,CAAkC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,kCAAAA,CAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,oCAAAA,CAAuC;AAC3C,EAAEjwH,qBAAAA;AACF,EAAE+rH,qBAAAA;AACF,EAAElnH,0BAAAA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIqrH,eAAAA,CAAkB,CAAA,CACtB,SAASC,uBAAAA,CAAwB/N,UAAU,CAAA,CAC1C,MAAMxsJ,MAAAA,CAASwsJ,UAAAA,CAAWxsJ,MAAM,CAChC,MAAMY,YAAAA,CAAe4rJ,UAAAA,CAAWnE,cAAc,CAC9C,MAAMv9Y,KAAAA,CAAQ,IAAIynB,WAAAA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,QAAAA,CAAAA,MAAAA,CAAAA,CACAk6X,gBAAAA,CAAAA,IAAAA,CAAAA,mBAAAA,CAAoB,IAAA,CAAA,CACpBoF,gBAAAA,CAAAA,IAAAA,CAAAA,qBAAAA,CAAsB,CAAA,CAErB,CAAA,IAAI,CAACt/X,MAAM,CAAGA,OACf,CAcD,CAAA,CAEA,IAAIu/X,6BAAAA,CAAgC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,qCAAAA,CAAwC;AAC5C,EAAE10H,qBAAAA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAI20H,eAAAA,CAAkB,GAAA,CACtB,IAAIC,aAAe,CAAA,CAAIr6J,kBAAAA,CAAmBgB,YAAY,CACtD,IAAIs5J,oBAAAA,CAAuB,MAiC1BxgY,OAAAA,EAAU,CACT,IAAI,CAACoqB,OAAO,CAAC/qD,OAAO,CAAE2wD,KAAAA,EAAU,IAAI,CAACywW,aAAa,CAACzwW,KAAAA,CAAAA,CAAAA,CACnD,IAAI,CAAC5F,OAAO,CAAC/uD,KAAK,EAClB,CAAA,IAAI,CAACqla,WAAW,EAAE1gY,OAAAA,EAClB,CAAA,IAAI,CAAC0gY,WAAW,CAAG,IACnB,CAAA,IAAI,CAACC,WAAW,EAAE3gY,OAAAA,EAClB,CAAA,IAAI,CAAC4gY,oBAAoB,EAAE5gY,OAAAA,EAC3B,CAAA,IAAI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AAC4pJ,oBACd,CAAA,CACA,IAAG,CAAA,CAEJhnR,MAAAA,CAAOrnJ,EAAE,CAAC,QAAA,CAAU,IAAI,CAACkwW,aAAa,CAAE,IAAI,CAAA,CAC5C7oN,MAAAA,CAAOrnJ,EAAE,CAAC,iBAAA,CAAmB,IAAI,CAACkwW,aAAa,CAAE,IAAI,CAAA,CACrD7oN,MAAAA,CAAOrnJ,EAAE,CAAC,SAAU,IAAI,CAACmwW,aAAa,CAAE,IAAI,CAAA,CAC5C9oN,OAAOrnJ,EAAE,CAAC,iBAAA,CAAmB,IAAI,CAACmwW,aAAa,CAAE,IAAI,EACtD,CA0ZD,CAAA,CAEA,IAAIm+D,oBAAAA,CAAuB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,oBAAAA,CAAuB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,mBAAAA,CAAsB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,oBAAAA,CAAuB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,sBAAAA,CAAyB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,qBAAAA,CAAwB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,qBAAAA,CAAwB;AAC5B;AACA;AACA,CAAC,CAED,IAAIC,gCAAAA,CAAmC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,wBAAAA,CAA2B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,qBAAAA,CAAwB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,oBAAAA,CAAuB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,oBAAAA,CAAuB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,cAAAA,CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,oBAAAA,CAAuB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,eAAAA,CAAkB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,qBAAAA,CAAwB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,oBAAAA,CAAuB;AAC3B;AACA,CAAC,CAED,IAAIC,oBAAAA,CAAuB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,sBAAAA,CAAyB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,kBAAAA,CAAqB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,oBAAAA,CAAuB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,WAAAA,CAAc;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,aAAAA,CAAgB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,qBAAAA,CAAwB;AAC5B;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,qBAAAA,CAAwB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,gBAAAA,CAAmB,CACtBC,cAAAA,CAAgB1B,oBAAAA,CAChB2B,cAAAA,CAAgBjB,oBAAAA,CAChBkB,cAAAA,CAAgB3B,oBAAAA,CAChB4B,aAAAA,CAAe3B,mBAAAA,CACf4B,cAAAA,CAAgB3B,oBAAAA,CAChB4B,eAAAA,CAAiB3B,sBAAAA,CACjB4B,cAAAA,CAAgB3B,qBAAAA,CAChB4B,cAAAA,CAAgB3B,qBAAAA,CAChB4B,0BAAAA,CAA4B3B,gCAAAA,CAC5B4B,kBAAAA,CAAoB3B,wBAAAA,CACpB4B,eAAAA,CAAiB3B,qBAAAA,CACjB4B,cAAAA,CAAgB1B,oBAAAA,CAChB2B,QAAAA,CAAU1B,eACV2B,cAAAA,CAAgB1B,oBAAAA,CAChB2B,QAAAA,CAAU1B,eAAAA,CACV2B,eAAAA,CAAiB1B,qBAAAA,CACjB2B,cAAAA,CAAgB1B,oBAAAA,CAChB2B,oBAAAA,CAAsB1B,oBAAAA,CACtB2B,sBAAAA,CAAwB1B,sBAAAA,CACxB2B,kBAAAA,CAAoB1B,kBAAAA,CACpB2B,oBAAAA,CAAsB1B,oBAAAA,CACtB2B,WAAAA,CAAa1B,WAAAA,CACb2B,aAAAA,CAAe1B,aAAAA,CACf2B,qBAAAA,CAAuB1B,qBAAAA,CACvB2B,qBAAAA,CAAuB1B,qBAAAA,CACvB2B,0BAAAA,CAA4Bj9L,0BAC7B,CAAA,CAEA,IAAIk9L,qBAAAA,CAAwB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,qBAAAA,CAAwB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,oBAAAA,CAAuB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,qBAAAA,CAAwB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,qBAAAA,CAAwB;AAC5B;AACA;AACA,CAAC,CAED,IAAIC,iCAAAA,CAAoC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,yBAAAA,CAA4B;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,sBAAAA,CAAyB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,qBAAAA,CAAwB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,qBAAAA,CAAwB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,eAAAA,CAAkB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,CAEF,IAAIC,qBAAAA,CAAwB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,eAAAA,CAAkB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,oBAAAA,CAAuB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,sBAAAA,CAAyB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,CAEF,IAAIC,qBAAAA,CAAwB;AAC5B;AACA,CAAC,CAED,IAAIC,qBAAAA,CAAwB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,uBAAAA,CAA0B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,mBAAAA,CAAsB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,qBAAAA,CAAwB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,YAAAA,CAAe;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,cAAAA,CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,sBAAAA,CAAyB;AAC7B;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,sBAAAA,CAAyB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,gBAAAA,CAAmB,CACtBlD,cAAAA,CAAgB0B,qBAAAA,CAChBzB,cAAAA,CAAgBiC,qBAAAA,CAChBhC,cAAAA,CAAgByB,qBAAAA,CAChBxB,aAAAA,CAAeyB,oBAAAA,CACfxB,cAAAA,CAAgByB,qBAAAA,CAChBxB,eAAAA,CAAiBtS,qBAAAA,CACjBuS,cAAAA,CAAgBxS,oBAAAA,CAChByS,cAAAA,CAAgBuB,qBAAAA,CAChBtB,0BAAAA,CAA4BuB,iCAAAA,CAC5BrB,eAAAA,CAAiBuB,sBAAAA,CACjBxB,kBAAAA,CAAoBuB,yBAAAA,CACpBrB,cAAAA,CAAgBwB,qBAAAA,CAChBvB,QAAAA,CAAUwB,eAAAA,CACVvB,cAAAA,CAAgBwB,qBAAAA,CAChBvB,QAAAA,CAAUwB,eAAAA,CACVa,cAAAA,CAAgBZ,oBAAAA,CAChBxB,eAAAA,CAAiByB,sBAAAA,CACjBxB,cAAAA,CAAgByB,qBAAAA,CAChBxB,oBAAAA,CAAsByB,qBAAAA,CACtBxB,sBAAAA,CAAwByB,uBAAAA,CACxBxB,kBAAAA,CAAoByB,mBAAAA,CACpBxB,oBAAAA,CAAsByB,qB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CAAQpB,cAAAA,CAAAA,CACRqB,gBAAAA,CAAAA,IAAAA,CAAAA,MAAAA,CAAOxB,YAAAA,CAAAA,CACP0B,gBAAAA,CAAAA,IAAAA,CAAAA,SAAAA,CAAU,KAAA,CAAA,CACVE,gBAAAA,CAAAA,IAAAA,CAAAA,aAAAA,CAAc,CAAA,CAAA,CACdE,gBAAAA,CAAAA,IAAAA,CAAAA,YAAAA,CAAa,CAAA,CAAA,CACbE,gBAAAA,CAAAA,IAAAA,CAAAA,aAAAA,CAAc,CAAA,EAAA,CAiKf,CAAA,CAEA,IAAII,gBAAAA,CAAmB,CAAA,CACvB,IAAIC,eAAAA,CAAkB,CAAA,CACtB,IAAIC,mBAAAA,CAAsB,EAAA,CAC1B,IAAIC,cAAAA,CAAiB,EAAA,CACrB,IAAI/lV,UAAAA,CAAa;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CACD,IAAIC,YAAAA,CAAe;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CACD,IAAIN,UAAAA,CAAa;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CACD,IAAIE,YAAAA,CAAe;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CACD,IAAImmV,kBAAAA,CAAsBric,SACzB,MAAM8Z,SAAAA,CAAY,CACjB,CAAA,CACA,EAAC,CACD,CAAA,CACA,CAAA,CACA,EACA,CAAA,CACA,CAAA,CACA,EAAC,CACD,CAAA,CACA,CAAA,CACA,CAAA,CACA,CAAA,CACA,CACD,MAAMnH,OAAAA,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AAA,CAAAA,IAAAA,CAAAA,eAAAA,CAAAA,MAAAA,CAAAA,CACAktJ,sBAAAA,eAAAA,CAAgB,EAAE,CAGjB,CAAA,IAAI,CAACwhT,cAAc,CAAG55Z,aACtB,CAAA,IAAI,CAAC90C,aAAa,CAAGv0C,MACrB,CAAA,IAAI,CAACgkf,iBAAiB,CAAG,IAAI,CAAC/b,kBAAkB,CAAC,CAAA,CACjD,CAAA,IAAI,CAACqc,YAAY,CAAG,IAAI,CAACN,iBAAiB,CAACv0b,YAC5C,CAuFD,CAAA,CAEA,IAAI80b,eAAAA,CAAkB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,qBAAAA,CAAwB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,mBAAAA,CAAsB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,oBAAAA,CAAuB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,uBAAAA,CAA0B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,6BAAAA,CAAgC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,wBAAAA,CAA2B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,wBAAAA,CAA2B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,mBAAAA,CAAsB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,yBAAAA,CAA4B;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,iBAAAA,CAAoB,CACvBC,UAAWX,eAAAA,CACXY,cAAAA,CAAgBX,qBAAAA,CAChBY,YAAAA,CAAcX,mBAAAA,CACdY,aAAAA,CAAeX,oBAAAA,CACfY,gBAAAA,CAAkBX,wBAClBY,qBAAAA,CAAuBX,6BAAAA,CACvBY,iBAAAA,CAAmBX,wBAAAA,CACnBY,iBAAAA,CAAmBX,wBAAAA,CACnBY,YAAAA,CAAcX,mBAAAA,CACdY,kBAAmBX,yBAAAA,CAEnBY,qBAAAA,CAAuB,EAAA,CACvBC,kBAAAA,CAAoB,EAAA,CACpBC,gBAAAA,CAAkB,EACnB,CAAA,CAEA,IAAIC,gBAAAA,CAAmB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,sBAAAA,CAAyB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,oBAAAA,CAAuB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,qBAAAA,CAAwB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,wBAAAA,CAA2B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,8BAAAA,CAAiC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,yBAAAA,CAA4B;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,yBAAAA,CAA4B;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,oBAAAA,CAAuB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,0BAAAA,CAA6B;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,iBAAAA,CAAoB,CACvBvB,SAAAA,CAAWa,gBAAAA,CACXZ,cAAAA,CAAgBa,sBAAAA,CAChBZ,YAAAA,CAAca,oBAAAA,CACdZ,aAAAA,CAAea,qBAAAA,CACfZ,gBAAAA,CAAkBa,yBAClBZ,qBAAAA,CAAuBa,8BAAAA,CACvBZ,iBAAAA,CAAmBa,yBAAAA,CACnBZ,iBAAAA,CAAmBa,yBAAAA,CACnBZ,YAAAA,CAAca,oBAAAA,CACdZ,iBAAAA,CAAmBa,0BAAAA,CAEnBZ,qBAAAA,CAA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A,CACvC,CAAA,IAAI,CAACs3e,gBAAgB,CAAGppf,KAAAA,CAAM6mC,OAAO,CAAC,gBAAA,CACtC,CAAA,IAAI,CAAC2hd,oBAAoB,CAAGxof,KAAAA,CAAM6mC,OAAO,CAAC,oBAAA,CAC1C,CAAA,IAAI,CAACgid,sBAAsB,CAAG7of,KAAAA,CAAM6mC,OAAO,CAAC,sBAAA,CAC5C,CAAA,IAAI,CAAC6gd,oBAAoB,CAAG1nf,KAAAA,CAAM6mC,OAAO,CAAC,oBAAA,CAC1C,CAAA,IAAI,CAACswK,YAAY,CAAG,IAAIrlM,YAAAA,CAAa,CAAA,CACrC,CAAA,IAAI,CAAColM,cAAc,CAAGl3M,KAAAA,CAAM6mC,OAAO,CAAC,eAAA,EACrC,CA2QD,CAAA,CAEA,IAAIojd,wBAAAA,CAA2B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,yBAAAA,CAA4B;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,kBAAAA,CAAqB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,mBAAAA,CAAsB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA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CAAC,eAAA,EAC5C,CAWD,CAAA,CAEA,IAAI2kd,eAAAA,CAAkB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,gBAAAA,CAAmB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,iBAAAA,CAAoB,cAAc3sP,oBAAAA,CAsBrC,IAAI4sP,SAAAA,CAAUvrf,KAAK,CAAE,CACpB,GAAI,IAAI,CAACwrf,UAAU,GAAKxrf,KAAAA,CAAO,CAC9B,IAAI,CAACwrf,UAAU,CAAGxrf,KAClB,CAAA,IAAI,CAAC2hD,MAAM,CAAG,KACf,CACD,CACA,IAAI4pc,SAAAA,EAAY,CACf,OAAO,IAAI,CAACC,UACb,CACA,IAAIC,cAAAA,CAAezrf,KAAK,CAAE,CACzB,GAAI,IAAI,CAAC0rf,eAAe,GAAK1rf,KAAAA,CAAO,CACnC,IAAI,CAAC0rf,eAAe,CAAG1rf,KACvB,CAAA,IAAI,CAAC2hD,MAAM,CAAG,KACf,CACD,CACA,IAAI8pc,cAAAA,EAAiB,CACpB,OAAO,IAAI,CAACC,eAAe,CAE5BxwZ,YAAAA,EAAe,CACd,IAAI,CAAC9nF,MAAM,CAAG,IAAI1B,YAAAA,CAAasB,MAAAA,CAAOC,UAAU,CAAC,IAAI,CAACs4e,SAAS,CAAE,IAAI,CAACE,cAAc,GACpF,MAAME,WAAAA,CAAc,IAA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,CAAC7gE,IAAI,CAAC,IAAI,CAAC0zf,QAAQ,EACrC,CA8FD,CAAA,CAEA,IAAIU,qBAAAA,CAAwB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,sBAAAA,CAAyB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,4BAAAA,CAA+B;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,6BAAAA,CAAgC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,0BAAAA,CAA6B;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,2BAAAA,CAA8B;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,2BAAAA,CAA8B;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,2BAAAA,CAA8B;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,QAAAA,CAAW,IAAI75e,IAAAA,CACnB,IAAI85e,SAAAA,CAAY,IAAI95e,IAAAA,CACpB,IAAI+5e,WAAAA,CAAc,IAAInke,eACtB,IAAIoke,WAAAA,CAAc,IAAIxze,IAAAA,CACtB,IAAIyze,cAAAA,CAAiB,IAAIzze,IAAAA,CACzB,IAAI0ze,UAAAA,CAAa,IAAI1ze,IAAAA,CACrB,IAAI2ze,m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AUD,CAAA,CAEA,IAAImtd,YAAAA,CAAe;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAED,IAAIC,aAAAA,CAAgB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA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"}