@galacean/engine-loader 1.3.26 → 1.3.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/module.js CHANGED
@@ -1,4 +1,4 @@
1
- import { Utils, ModelMesh, BlendShape, Texture2D, Loader, Entity, AnimationClip, AnimationEvent, AnimationStringCurve, Keyframe, AnimationBoolCurve, AnimationRefCurve, AnimationQuaternionCurve, AnimationColorCurve, AnimationVector4Curve, AnimationVector3Curve, AnimationVector2Curve, AnimationFloatArrayCurve, AnimationArrayCurve, AnimationFloatCurve, ReferResource, Scene, resourceLoader, AssetPromise, AssetType, AnimatorController, AnimatorControllerLayer, AnimatorStateTransition, TextureCube, TextureFilterMode, TextureCubeFace, AmbientLight, DiffuseMode, Font, Animator, IndexFormat, VertexElementFormat, GLCapabilityType, Logger, TextureFormat, request, ContentRestorer, InterpolationType, SkinnedMeshRenderer, Transform, PBRMaterial, BlinnPhongMaterial, PBRSpecularMaterial, TextureCoordinate, RenderFace, VertexElement, Buffer, BufferBindFlag, BufferUsage, Camera, MeshRenderer, Skin, TextureWrapMode as TextureWrapMode$1, AnimatorStateMachine, SystemInfo, Shader, Material, PrimitiveMesh, SpriteAtlas, Sprite, ShaderFactory, ShaderLib, BackgroundMode, DirectLight, PointLight, SpotLight, UnlitMaterial } from '@galacean/engine-core';
1
+ import { Utils, AssetPromise, ModelMesh, BlendShape, Texture2D, Loader, Entity, AnimationClip, AnimationEvent, AnimationStringCurve, Keyframe, AnimationBoolCurve, AnimationRefCurve, AnimationQuaternionCurve, AnimationColorCurve, AnimationVector4Curve, AnimationVector3Curve, AnimationVector2Curve, AnimationFloatArrayCurve, AnimationArrayCurve, AnimationFloatCurve, ReferResource, Scene, resourceLoader, AssetType, AnimatorController, AnimatorControllerLayer, AnimatorStateTransition, TextureCube, TextureFilterMode, TextureCubeFace, AmbientLight, DiffuseMode, Font, SystemInfo, Animator, Logger, IndexFormat, VertexElementFormat, GLCapabilityType, TextureFormat, request, ContentRestorer, InterpolationType, SkinnedMeshRenderer, Transform, PBRMaterial, PBRSpecularMaterial, TextureCoordinate, RenderFace, VertexElement, Buffer, BufferBindFlag, BufferUsage, Camera, MeshRenderer, Skin, TextureWrapMode as TextureWrapMode$1, AnimatorStateMachine, Shader, Material, PrimitiveMesh, SpriteAtlas, Sprite, ShaderFactory, ShaderLib, BackgroundMode, DirectLight, PointLight, SpotLight, UnlitMaterial } from '@galacean/engine-core';
2
2
  import { Color, Vector4, Vector3, Vector2, Quaternion, SphericalHarmonics3, MathUtil, BoundingBox, Matrix, Rect } from '@galacean/engine-math';
3
3
  import { GLCompressedTextureInternalFormat } from '@galacean/engine-rhi-webgl';
4
4
 
@@ -282,7 +282,7 @@ var FileHeader = /*#__PURE__*/ function() {
282
282
  var MeshDecoder = /*#__PURE__*/ function() {
283
283
  function MeshDecoder() {}
284
284
  MeshDecoder.decode = function decode(engine, bufferReader) {
285
- return new Promise(function(resolve) {
285
+ return new AssetPromise(function(resolve) {
286
286
  var modelMesh = new ModelMesh(engine);
287
287
  var jsonDataString = bufferReader.nextStr();
288
288
  var encodedMeshData = JSON.parse(jsonDataString);
@@ -416,7 +416,7 @@ function float32ArrayToVector2(float32Array, vertexCount) {
416
416
  var Texture2DDecoder = /*#__PURE__*/ function() {
417
417
  function Texture2DDecoder() {}
418
418
  Texture2DDecoder.decode = function decode(engine, bufferReader) {
419
- return new Promise(function(resolve, reject) {
419
+ return new AssetPromise(function(resolve, reject) {
420
420
  var objectId = bufferReader.nextStr();
421
421
  var mipmap = !!bufferReader.nextUint8();
422
422
  var filterMode = bufferReader.nextUint8();
@@ -740,7 +740,7 @@ var InterpolableValueType;
740
740
  var AnimationClipDecoder = /*#__PURE__*/ function() {
741
741
  function AnimationClipDecoder() {}
742
742
  AnimationClipDecoder.decode = function decode(engine, bufferReader) {
743
- return new Promise(function(resolve) {
743
+ return new AssetPromise(function(resolve) {
744
744
  var name = bufferReader.nextStr();
745
745
  var clip = new AnimationClip(name);
746
746
  var eventsLen = bufferReader.nextUint16();
@@ -1699,6 +1699,203 @@ FontLoader = __decorate([
1699
1699
  ], false)
1700
1700
  ], FontLoader);
1701
1701
 
1702
+ // Source: https://github.com/zeux/meshoptimizer/blob/master/js/meshopt_decoder.js
1703
+ var ready;
1704
+ function getMeshoptDecoder() {
1705
+ var unpack = function unpack(data) {
1706
+ var result = new Uint8Array(data.length);
1707
+ for(var i = 0; i < data.length; ++i){
1708
+ var ch = data.charCodeAt(i);
1709
+ result[i] = ch > 96 ? ch - 97 : ch > 64 ? ch - 39 : ch + 4;
1710
+ }
1711
+ var write = 0;
1712
+ for(var i1 = 0; i1 < data.length; ++i1){
1713
+ result[write++] = result[i1] < 60 ? wasmpack[result[i1]] : (result[i1] - 60) * 64 + result[++i1];
1714
+ }
1715
+ return result.buffer.slice(0, write);
1716
+ };
1717
+ var decode = function decode(fun, target, count, size, source, filter) {
1718
+ var sbrk = instance.exports.sbrk;
1719
+ var count4 = count + 3 & ~3;
1720
+ var tp = sbrk(count4 * size);
1721
+ var sp = sbrk(source.length);
1722
+ var heap = new Uint8Array(instance.exports.memory.buffer);
1723
+ heap.set(source, sp);
1724
+ var res = fun(tp, count, size, sp, source.length);
1725
+ if (res == 0 && filter) {
1726
+ filter(tp, count4, size);
1727
+ }
1728
+ target.set(heap.subarray(tp, tp + count * size));
1729
+ sbrk(tp - sbrk(0));
1730
+ if (res != 0) {
1731
+ throw new Error("Malformed buffer data: " + res);
1732
+ }
1733
+ };
1734
+ var createWorker = function createWorker(url) {
1735
+ var worker = {
1736
+ object: new Worker(url),
1737
+ pending: 0,
1738
+ requests: {}
1739
+ };
1740
+ worker.object.onmessage = function(event) {
1741
+ var data = event.data;
1742
+ worker.pending -= data.count;
1743
+ worker.requests[data.id][data.action](data.value);
1744
+ delete worker.requests[data.id];
1745
+ };
1746
+ return worker;
1747
+ };
1748
+ var initWorkers = function initWorkers(count) {
1749
+ var source = "var instance; var ready = WebAssembly.instantiate(new Uint8Array([" + new Uint8Array(unpack(wasm)) + "]), {})" + ".then(function(result) {instance = result.instance; instance.exports.__wasm_call_ctors();});\n" + "self.onmessage = workerProcess;\n" + 'function decode(fun, target, count, size, source, filter) {\n const sbrk = instance.exports.sbrk;\n const count4 = (count + 3) & ~3;\n const tp = sbrk(count4 * size);\n const sp = sbrk(source.length);\n const heap = new Uint8Array(instance.exports.memory.buffer);\n heap.set(source, sp);\n const res = fun(tp, count, size, sp, source.length);\n if (res == 0 && filter) {\n filter(tp, count4, size);\n }\n target.set(heap.subarray(tp, tp + count * size));\n sbrk(tp - sbrk(0));\n if (res != 0) {\n throw new Error("Malformed buffer data: " + res);\n }\n }\n' + 'function workerProcess(event) {\n ready.then(function () {\n const data = event.data;\n try {\n const target = new Uint8Array(data.count * data.size);\n decode(instance.exports[data.mode], target, data.count, data.size, data.source, instance.exports[data.filter]);\n self.postMessage({ id: data.id, count: data.count, action: "resolve", value: target }, [target.buffer]);\n } catch (error) {\n self.postMessage({\n id: data.id,\n count: data.count,\n action: "reject",\n value: error\n });\n }\n });\n }';
1750
+ var blob = new Blob([
1751
+ source
1752
+ ], {
1753
+ type: "text/javascript"
1754
+ });
1755
+ var url = URL.createObjectURL(blob);
1756
+ for(var i = 0; i < count; ++i){
1757
+ workers[i] = createWorker(url);
1758
+ }
1759
+ URL.revokeObjectURL(url);
1760
+ };
1761
+ var decodeWorker = function decodeWorker(count, size, source, mode, filter) {
1762
+ var worker = workers[0];
1763
+ for(var i = 1; i < workers.length; ++i){
1764
+ if (workers[i].pending < worker.pending) {
1765
+ worker = workers[i];
1766
+ }
1767
+ }
1768
+ return new Promise(function(resolve, reject) {
1769
+ var data = new Uint8Array(source);
1770
+ var id = requestId++;
1771
+ worker.pending += count;
1772
+ worker.requests[id] = {
1773
+ resolve: resolve,
1774
+ reject: reject
1775
+ };
1776
+ worker.object.postMessage({
1777
+ id: id,
1778
+ count: count,
1779
+ size: size,
1780
+ source: data,
1781
+ mode: mode,
1782
+ filter: filter
1783
+ }, [
1784
+ data.buffer
1785
+ ]);
1786
+ });
1787
+ };
1788
+ if (ready) return ready;
1789
+ var wasm_base = "b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuikqbeeedddillviebeoweuec:q;iekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbol79IV9Rbrq:P8Yqdbk;3sezu8Jjjjjbcj;eb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Radz1jjjbhwcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhDcbhqinaqae9pmeaDaeaq9RaqaDfae6Egkcsfgocl4cifcd4hxdndndndnaoc9WGgmTmbcbhPcehsawcjdfhzalhHinaraH9Rax6midnaraHaxfgl9RcK6mbczhoinawcj;cbfaogifgoc9WfhOdndndndndnaHaic9WfgAco4fRbbaAci4coG4ciGPlbedibkaO9cb83ibaOcwf9cb83ibxikaOalRblalRbbgAco4gCaCciSgCE86bbaocGfalclfaCfgORbbaAcl4ciGgCaCciSgCE86bbaocVfaOaCfgORbbaAcd4ciGgCaCciSgCE86bbaoc7faOaCfgORbbaAciGgAaAciSgAE86bbaoctfaOaAfgARbbalRbegOco4gCaCciSgCE86bbaoc91faAaCfgARbbaOcl4ciGgCaCciSgCE86bbaoc4faAaCfgARbbaOcd4ciGgCaCciSgCE86bbaoc93faAaCfgARbbaOciGgOaOciSgOE86bbaoc94faAaOfgARbbalRbdgOco4gCaCciSgCE86bbaoc95faAaCfgARbbaOcl4ciGgCaCciSgCE86bbaoc96faAaCfgARbbaOcd4ciGgCaCciSgCE86bbaoc97faAaCfgARbbaOciGgOaOciSgOE86bbaoc98faAaOfgORbbalRbiglco4gAaAciSgAE86bbaoc99faOaAfgORbbalcl4ciGgAaAciSgAE86bbaoc9:faOaAfgORbbalcd4ciGgAaAciSgAE86bbaocufaOaAfgoRbbalciGglalciSglE86bbaoalfhlxdkaOalRbwalRbbgAcl4gCaCcsSgCE86bbaocGfalcwfaCfgORbbaAcsGgAaAcsSgAE86bbaocVfaOaAfgORbbalRbegAcl4gCaCcsSgCE86bbaoc7faOaCfgORbbaAcsGgAaAcsSgAE86bbaoctfaOaAfgORbbalRbdgAcl4gCaCcsSgCE86bbaoc91faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc4faOaAfgORbbalRbigAcl4gCaCcsSgCE86bbaoc93faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc94faOaAfgORbbalRblgAcl4gCaCcsSgCE86bbaoc95faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc96faOaAfgORbbalRbvgAcl4gCaCcsSgCE86bbaoc97faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc98faOaAfgORbbalRbogAcl4gCaCcsSgCE86bbaoc99faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc9:faOaAfgORbbalRbrglcl4gAaAcsSgAE86bbaocufaOaAfgoRbbalcsGglalcsSglE86bbaoalfhlxekaOal8Pbb83bbaOcwfalcwf8Pbb83bbalczfhlkdnaiam9pmbaiczfhoaral9RcL0mekkaiam6mialTmidnakTmbawaPfRbbhOcbhoazhiinaiawcj;cbfaofRbbgAce4cbaAceG9R7aOfgO86bbaiadfhiaocefgoak9hmbkkazcefhzaPcefgPad6hsalhHaPad9hmexvkkcbhlasceGmdxikalaxad2fhCdnakTmbcbhHcehsawcjdfhminaral9Rax6mialTmdalaxfhlawaHfRbbhOcbhoamhiinaiawcj;cbfaofRbbgAce4cbaAceG9R7aOfgO86bbaiadfhiaocefgoak9hmbkamcefhmaHcefgHad6hsaHad9hmbkaChlxikcbhocehsinaral9Rax6mdalTmealaxfhlaocefgoad6hsadao9hmbkaChlxdkcbhlasceGTmekc9:hoxikabaqad2fawcjdfakad2z1jjjb8Aawawcjdfakcufad2fadz1jjjb8Aakaqfhqalmbkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;ebf8Kjjjjbaok;yzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecjez:jjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhDcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgrc;Ve0mbavc;abfalarcl4cu7fcsGcitfgPydlhsaPydbhzdnarcsGgPak9pmbavaiarcu7fcsGcdtfydbaxaPEhraPThPdndnadcd9hmbabaDcetfgHaz87ebaHcdfas87ebaHclfar87ebxekabaDcdtfgHazBdbaHclfasBdbaHcwfarBdbkaxaPfhxavc;abfalcitfgHarBdbaHasBdlavaicdtfarBdbavc;abfalcefcsGglcitfgHazBdbaHarBdlaiaPfhialcefhlxdkdndnaPcsSmbamaPfaPc987fcefhmxekaocefhrao8SbbgPcFeGhHdndnaPcu9mmbarhoxekaocvfhoaHcFbGhHcrhPdninar8SbbgOcFbGaPtaHVhHaOcu9kmearcefhraPcrfgPc8J9hmbxdkkarcefhokaHce4cbaHceG9R7amfhmkdndnadcd9hmbabaDcetfgraz87ebarcdfas87ebarclfam87ebxekabaDcdtfgrazBdbarclfasBdbarcwfamBdbkavc;abfalcitfgramBdbarasBdlavaicdtfamBdbavc;abfalcefcsGglcitfgrazBdbaramBdlaicefhialcefhlxekdnarcpe0mbaxcefgOavaiaqarcsGfRbbgPcl49RcsGcdtfydbaPcz6gHEhravaiaP9RcsGcdtfydbaOaHfgsaPcsGgOEhPaOThOdndnadcd9hmbabaDcetfgzax87ebazcdfar87ebazclfaP87ebxekabaDcdtfgzaxBdbazclfarBdbazcwfaPBdbkavaicdtfaxBdbavc;abfalcitfgzarBdbazaxBdlavaicefgicsGcdtfarBdbavc;abfalcefcsGcitfgzaPBdbazarBdlavaiaHfcsGgicdtfaPBdbavc;abfalcdfcsGglcitfgraxBdbaraPBdlalcefhlaiaOfhiasaOfhxxekaxcbaoRbbgzEgAarc;:eSgrfhsazcsGhCazcl4hXdndnazcs0mbascefhOxekashOavaiaX9RcsGcdtfydbhskdndnaCmbaOcefhxxekaOhxavaiaz9RcsGcdtfydbhOkdndnarTmbaocefhrxekaocdfhrao8SbegHcFeGhPdnaHcu9kmbaocofhAaPcFbGhPcrhodninar8SbbgHcFbGaotaPVhPaHcu9kmearcefhraocrfgoc8J9hmbkaAhrxekarcefhrkaPce4cbaPceG9R7amfgmhAkdndnaXcsSmbarhPxekarcefhPar8SbbgocFeGhHdnaocu9kmbarcvfhsaHcFbGhHcrhodninaP8SbbgrcFbGaotaHVhHarcu9kmeaPcefhPaocrfgoc8J9hmbkashPxekaPcefhPkaHce4cbaHceG9R7amfgmhskdndnaCcsSmbaPhoxekaPcefhoaP8SbbgrcFeGhHdnarcu9kmbaPcvfhOaHcFbGhHcrhrdninao8SbbgPcFbGartaHVhHaPcu9kmeaocefhoarcrfgrc8J9hmbkaOhoxekaocefhokaHce4cbaHceG9R7amfgmhOkdndnadcd9hmbabaDcetfgraA87ebarcdfas87ebarclfaO87ebxekabaDcdtfgraABdbarclfasBdbarcwfaOBdbkavc;abfalcitfgrasBdbaraABdlavaicdtfaABdbavc;abfalcefcsGcitfgraOBdbarasBdlavaicefgicsGcdtfasBdbavc;abfalcdfcsGcitfgraABdbaraOBdlavaiazcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiaDcifgDae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:llevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:Lvoeue99dud99eud99dndnadcl9hmbaeTmeindndnabcdfgd8Sbb:Yab8Sbbgi:Ygl:l:tabcefgv8Sbbgo:Ygr:l:tgwJbb;:9cawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai86bbdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad86bbdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad86bbabclfhbaecufgembxdkkaeTmbindndnabclfgd8Ueb:Yab8Uebgi:Ygl:l:tabcdfgv8Uebgo:Ygr:l:tgwJb;:FSawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai87ebdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad87ebdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad87ebabcwfhbaecufgembkkk;siliui99iue99dnaeTmbcbhiabhlindndnJ;Zl81Zalcof8UebgvciV:Y:vgoal8Ueb:YNgrJb;:FSNJbbbZJbbb:;arJbbbb9GEMgw:lJbbb9p9DTmbaw:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabavcefciGaiVcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:Ohkxekcjjjj94hkkabavcdfciGaiVcetfak87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:Ohqxekcjjjj94hqkabavcufciGaiVcetfaq87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohqxekcjjjj94hqkabavciGaiVcetfaq87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2geTmbinababydbgdcwtcw91:Yadce91cjjj;8ifcjjj98G::NUdbabclfhbaecufgembkkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaiczfhiaeczfheadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkkkebcjwklz9Kbb";
1790
+ var wasm_simd = "b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuikqbbebeedddilve9Weeeviebeoweuec:q;Aekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbwl79IV9RbDq;t9tqlbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk;h8JlHud97euo978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Rad;8qbbcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhwcbhDinaDae9pmeawaeaD9RaDawfae6Egqcsfgoc9WGgkci2hxakcethmaocl4cifcd4hPabaDad2fhscbhzdnincehHalhOcbhAdninaraO9RaP6miavcj;cbfaAak2fhCaOaPfhlcbhidnakc;ab6mbaral9Rc;Gb6mbcbhoinaCaofhidndndndndnaOaoco4fRbbgXciGPlbedibkaipxbbbbbbbbbbbbbbbbpklbxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklbalczfhlkdndndndndnaXcd4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklzxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklzalczfhlkdndndndndnaXcl4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklaxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklaalczfhlkdndndndndnaXco4Plbedibkaipxbbbbbbbbbbbbbbbbpkl8WxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalclfaYpQbfaXc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalcwfaYpQbfaXc:q:yjjbfRbbfhlxekaialpbbbpkl8Walczfhlkaoc;abfhiaocjefak0meaihoaral9Rc;Fb0mbkkdndnaiak9pmbaici4hoinaral9RcK6mdaCaifhXdndndndndnaOaico4fRbbaocoG4ciGPlbedibkaXpxbbbbbbbbbbbbbbbbpklbxikaXalpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaXalpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaXalpbbbpklbalczfhlkaocdfhoaiczfgiak6mbkkalTmbaAci6hHalhOaAcefgohAaoclSmdxekkcbhlaHceGmdkdnakTmbavcjdfazfhiavazfpbdbhYcbhXinaiavcj;cbfaXfgopblbgLcep9TaLpxeeeeeeeeeeeeeeeegQp9op9Hp9rgLaoakfpblbg8Acep9Ta8AaQp9op9Hp9rg8ApmbzeHdOiAlCvXoQrLgEaoamfpblbg3cep9Ta3aQp9op9Hp9rg3aoaxfpblbg5cep9Ta5aQp9op9Hp9rg5pmbzeHdOiAlCvXoQrLg8EpmbezHdiOAlvCXorQLgQaQpmbedibedibedibediaYp9UgYp9AdbbaiadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaEa8EpmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwKDYq8AkEx3m5P8Es8FgLa3a5pmwKDYq8AkEx3m5P8Es8Fg8ApmbezHdiOAlvCXorQLgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfhiaXczfgXak6mbkkazclfgzad6mbkasavcjdfaqad2;8qbbavavcjdfaqcufad2fad;8qbbaqaDfhDc9:hoalmexikkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;kbf8Kjjjjbaokwbz:bjjjbk;uzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhDcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgrc;Ve0mbavc;abfalarcl4cu7fcsGcitfgPydlhsaPydbhzdnarcsGgPak9pmbavaiarcu7fcsGcdtfydbaxaPEhraPThPdndnadcd9hmbabaDcetfgHaz87ebaHcdfas87ebaHclfar87ebxekabaDcdtfgHazBdbaHclfasBdbaHcwfarBdbkaxaPfhxavc;abfalcitfgHarBdbaHasBdlavaicdtfarBdbavc;abfalcefcsGglcitfgHazBdbaHarBdlaiaPfhialcefhlxdkdndnaPcsSmbamaPfaPc987fcefhmxekaocefhrao8SbbgPcFeGhHdndnaPcu9mmbarhoxekaocvfhoaHcFbGhHcrhPdninar8SbbgOcFbGaPtaHVhHaOcu9kmearcefhraPcrfgPc8J9hmbxdkkarcefhokaHce4cbaHceG9R7amfhmkdndnadcd9hmbabaDcetfgraz87ebarcdfas87ebarclfam87ebxekabaDcdtfgrazBdbarclfasBdbarcwfamBdbkavc;abfalcitfgramBdbarasBdlavaicdtfamBdbavc;abfalcefcsGglcitfgrazBdbaramBdlaicefhialcefhlxekdnarcpe0mbaxcefgOavaiaqarcsGfRbbgPcl49RcsGcdtfydbaPcz6gHEhravaiaP9RcsGcdtfydbaOaHfgsaPcsGgOEhPaOThOdndnadcd9hmbabaDcetfgzax87ebazcdfar87ebazclfaP87ebxekabaDcdtfgzaxBdbazclfarBdbazcwfaPBdbkavaicdtfaxBdbavc;abfalcitfgzarBdbazaxBdlavaicefgicsGcdtfarBdbavc;abfalcefcsGcitfgzaPBdbazarBdlavaiaHfcsGgicdtfaPBdbavc;abfalcdfcsGglcitfgraxBdbaraPBdlalcefhlaiaOfhiasaOfhxxekaxcbaoRbbgzEgAarc;:eSgrfhsazcsGhCazcl4hXdndnazcs0mbascefhOxekashOavaiaX9RcsGcdtfydbhskdndnaCmbaOcefhxxekaOhxavaiaz9RcsGcdtfydbhOkdndnarTmbaocefhrxekaocdfhrao8SbegHcFeGhPdnaHcu9kmbaocofhAaPcFbGhPcrhodninar8SbbgHcFbGaotaPVhPaHcu9kmearcefhraocrfgoc8J9hmbkaAhrxekarcefhrkaPce4cbaPceG9R7amfgmhAkdndnaXcsSmbarhPxekarcefhPar8SbbgocFeGhHdnaocu9kmbarcvfhsaHcFbGhHcrhodninaP8SbbgrcFbGaotaHVhHarcu9kmeaPcefhPaocrfgoc8J9hmbkashPxekaPcefhPkaHce4cbaHceG9R7amfgmhskdndnaCcsSmbaPhoxekaPcefhoaP8SbbgrcFeGhHdnarcu9kmbaPcvfhOaHcFbGhHcrhrdninao8SbbgPcFbGartaHVhHaPcu9kmeaocefhoarcrfgrc8J9hmbkaOhoxekaocefhokaHce4cbaHceG9R7amfgmhOkdndnadcd9hmbabaDcetfgraA87ebarcdfas87ebarclfaO87ebxekabaDcdtfgraABdbarclfasBdbarcwfaOBdbkavc;abfalcitfgrasBdbaraABdlavaicdtfaABdbavc;abfalcefcsGcitfgraOBdbarasBdlavaicefgicsGcdtfasBdbavc;abfalcdfcsGcitfgraABdbaraOBdlavaiazcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiaDcifgDae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:llevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:EPliuo97eue978Jjjjjbca9Rhidndnadcl9hmbdnaec98GglTmbcbhvabhdinadadpbbbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalae9pmeaiaeciGgvcdtgdVcbczad9R;8kbaiabalcdtfglad;8qbbdnavTmbaiaipblbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpklbkalaiad;8qbbskdnaec98GgxTmbcbhvabhdinadczfglalpbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oawaopmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgvax6mbkkaxae9pmbaiaeciGgvcitgdfcbcaad9R;8kbaiabaxcitfglad;8qbbdnavTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oawaopmbezHdiOAlvCXorQLp9qpklbkalaiad;8qbbkk;4wllue97euv978Jjjjjbc8W9Rhidnaec98GglTmbcbhvabhoinaiaopbbbgraoczfgwpbbbgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklbaopxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblbpEb:T:j83ibaocwfarp5eaipblbpEe:T:j83ibawaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblbpEd:T:j83ibaocKfakp5eaipblbpEi:T:j83ibaocafhoavclfgval6mbkkdnalae9pmbaiaeciGgvcitgofcbcaao9R;8kbaiabalcitfgwao;8qbbdnavTmbaiaipblbgraipblzgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklaaipxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblapEb:T:j83ibaiarp5eaipblapEe:T:j83iwaiaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblapEd:T:j83izaiakp5eaipblapEi:T:j83iKkawaiao;8qbbkk:Pddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbhdabheinaeaepbbbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepkbbaeczfheadclfgdav6mbkkdnaval9pmbaialciGgdcdtgeVcbc;abae9R;8kbaiabavcdtfgvae;8qbbdnadTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepklbkavaiae;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz9Tbb";
1791
+ var wasmpack = new Uint8Array([
1792
+ 32,
1793
+ 0,
1794
+ 65,
1795
+ 2,
1796
+ 1,
1797
+ 106,
1798
+ 34,
1799
+ 33,
1800
+ 3,
1801
+ 128,
1802
+ 11,
1803
+ 4,
1804
+ 13,
1805
+ 64,
1806
+ 6,
1807
+ 253,
1808
+ 10,
1809
+ 7,
1810
+ 15,
1811
+ 116,
1812
+ 127,
1813
+ 5,
1814
+ 8,
1815
+ 12,
1816
+ 40,
1817
+ 16,
1818
+ 19,
1819
+ 54,
1820
+ 20,
1821
+ 9,
1822
+ 27,
1823
+ 255,
1824
+ 113,
1825
+ 17,
1826
+ 42,
1827
+ 67,
1828
+ 24,
1829
+ 23,
1830
+ 146,
1831
+ 148,
1832
+ 18,
1833
+ 14,
1834
+ 22,
1835
+ 45,
1836
+ 70,
1837
+ 69,
1838
+ 56,
1839
+ 114,
1840
+ 101,
1841
+ 21,
1842
+ 25,
1843
+ 63,
1844
+ 75,
1845
+ 136,
1846
+ 108,
1847
+ 28,
1848
+ 118,
1849
+ 29,
1850
+ 73,
1851
+ 115
1852
+ ]);
1853
+ // @ts-ignore
1854
+ var wasm = SystemInfo._detectSIMDSupported() ? wasm_simd : wasm_base;
1855
+ var instance;
1856
+ ready = WebAssembly.instantiate(unpack(wasm)).then(function(result) {
1857
+ instance = result.instance;
1858
+ instance.exports.__wasm_call_ctors();
1859
+ }).then(function() {
1860
+ return {
1861
+ workerCount: 4,
1862
+ ready: ready,
1863
+ useWorkers: function useWorkers(workerCount) {
1864
+ this.workerCount = workerCount != null ? workerCount : this.workerCount;
1865
+ initWorkers(this.workerCount);
1866
+ },
1867
+ decodeGltfBuffer: function decodeGltfBuffer(count, stride, source, mode, filter) {
1868
+ if (this.workerCount > 0 && workers.length === 0) this.useWorkers();
1869
+ if (workers.length > 0) return decodeWorker(count, stride, source, decoders[mode], filters[filter]);
1870
+ return ready.then(function() {
1871
+ var target = new Uint8Array(count * stride);
1872
+ decode(instance.exports[decoders[mode]], target, count, stride, source, instance.exports[filters[filter]]);
1873
+ return target;
1874
+ });
1875
+ },
1876
+ release: function release() {
1877
+ for(var i = 0; i < workers.length; i++){
1878
+ workers[i].object.terminate();
1879
+ }
1880
+ }
1881
+ };
1882
+ });
1883
+ var filters = {
1884
+ NONE: "",
1885
+ OCTAHEDRAL: "meshopt_decodeFilterOct",
1886
+ QUATERNION: "meshopt_decodeFilterQuat",
1887
+ EXPONENTIAL: "meshopt_decodeFilterExp"
1888
+ };
1889
+ var decoders = {
1890
+ ATTRIBUTES: "meshopt_decodeVertexBuffer",
1891
+ TRIANGLES: "meshopt_decodeIndexBuffer",
1892
+ INDICES: "meshopt_decodeIndexSequence"
1893
+ };
1894
+ var workers = [];
1895
+ var requestId = 0;
1896
+ return ready;
1897
+ }
1898
+
1702
1899
  /**
1703
1900
  * The glTF resource.
1704
1901
  */ var GLTFResource = /*#__PURE__*/ function(ReferResource1) {
@@ -1725,14 +1922,16 @@ FontLoader = __decorate([
1725
1922
  materials && this._disassociationSuperResource(materials);
1726
1923
  if (meshes) {
1727
1924
  for(var i = 0, n = meshes.length; i < n; i++){
1728
- this._disassociationSuperResource(meshes[i]);
1925
+ var meshArr = meshes[i];
1926
+ meshArr && this._disassociationSuperResource(meshArr);
1729
1927
  }
1730
1928
  }
1731
1929
  };
1732
1930
  _proto._disassociationSuperResource = function _disassociationSuperResource(resources) {
1733
1931
  for(var i = 0, n = resources.length; i < n; i++){
1734
- // @ts-ignore
1735
- resources[i]._disassociationSuperResource(this);
1932
+ var // @ts-ignore
1933
+ _resources_i;
1934
+ (_resources_i = resources[i]) == null ? void 0 : _resources_i._disassociationSuperResource(this);
1736
1935
  }
1737
1936
  };
1738
1937
  _create_class(GLTFResource, [
@@ -1923,6 +2122,7 @@ var TextureWrapMode;
1923
2122
  this.params = params;
1924
2123
  this.accessorBufferCache = {};
1925
2124
  this.needAnimatorController = false;
2125
+ this./** @internal */ _getPromises = [];
1926
2126
  this._resourceCache = new Map();
1927
2127
  this._progress = {
1928
2128
  taskDetail: {},
@@ -1947,7 +2147,7 @@ var TextureWrapMode;
1947
2147
  var _this = this;
1948
2148
  var parser = GLTFParserContext._parsers[type];
1949
2149
  if (!parser) {
1950
- return Promise.resolve(null);
2150
+ return AssetPromise.resolve(null);
1951
2151
  }
1952
2152
  var cache = this._resourceCache;
1953
2153
  var cacheKey = index === undefined ? "" + type : type + ":" + index;
@@ -1963,7 +2163,7 @@ var TextureWrapMode;
1963
2163
  if (index === undefined) {
1964
2164
  resource = type === 8 ? glTFItems.map(function(_, index) {
1965
2165
  return _this.get(type, index);
1966
- }) : Promise.all(glTFItems.map(function(_, index) {
2166
+ }) : AssetPromise.all(glTFItems.map(function(_, index) {
1967
2167
  return _this.get(type, index);
1968
2168
  }));
1969
2169
  } else {
@@ -1971,12 +2171,15 @@ var TextureWrapMode;
1971
2171
  isSubAsset && this._handleSubAsset(resource, type, index);
1972
2172
  }
1973
2173
  } else {
1974
- resource = Promise.resolve(null);
2174
+ resource = AssetPromise.resolve(null);
1975
2175
  }
1976
2176
  } else {
1977
2177
  resource = parser.parse(this, index);
1978
2178
  isSubAsset && this._handleSubAsset(resource, type, index);
1979
2179
  }
2180
+ if (_instanceof(resource, AssetPromise)) {
2181
+ this._getPromises.push(resource);
2182
+ }
1980
2183
  cache.set(cacheKey, resource);
1981
2184
  return resource;
1982
2185
  };
@@ -1985,7 +2188,7 @@ var TextureWrapMode;
1985
2188
  var promise = this.get(0).then(function(json) {
1986
2189
  _this.glTF = json;
1987
2190
  _this.needAnimatorController = !!(json.skins || json.animations);
1988
- return Promise.all([
2191
+ return AssetPromise.all([
1989
2192
  _this.get(1),
1990
2193
  _this.get(5),
1991
2194
  _this.get(6),
@@ -2016,6 +2219,8 @@ var TextureWrapMode;
2016
2219
  task.total += 1;
2017
2220
  taskPromise.then(function() {
2018
2221
  _this._setTaskCompleteProgress(++task.loaded, task.total);
2222
+ }, function(e) {
2223
+ Logger.error("Failed to complete task", e);
2019
2224
  });
2020
2225
  };
2021
2226
  _proto._handleSubAsset = function _handleSubAsset(resource, type, index) {
@@ -2048,6 +2253,8 @@ var TextureWrapMode;
2048
2253
  _this.resourceManager._onSubAssetSuccess(url, "defaultSceneRoot", item);
2049
2254
  }
2050
2255
  }
2256
+ }).catch(function(e) {
2257
+ Logger.error("GLTFParserContext", "Failed to load " + glTFResourceKey + " " + index + ": " + e);
2051
2258
  });
2052
2259
  }
2053
2260
  };
@@ -2228,13 +2435,15 @@ function registerGLTFParser(pipeline) {
2228
2435
  bufferInfo.restoreInfo = new BufferDataRestoreInfo(new RestoreDataAccessor(bufferIndex, TypedArray, offset1, count1));
2229
2436
  }
2230
2437
  return bufferInfo;
2438
+ }).catch(function(e) {
2439
+ Logger.error("GLTFUtil getAccessorBuffer error", e);
2231
2440
  });
2232
2441
  } else {
2233
2442
  var count = accessorCount * dataElementSize;
2234
2443
  var data = new TypedArray(count);
2235
2444
  var bufferInfo = new BufferInfo(data, false, elementStride);
2236
2445
  bufferInfo.restoreInfo = new BufferDataRestoreInfo(new RestoreDataAccessor(undefined, TypedArray, undefined, count));
2237
- promise = Promise.resolve(bufferInfo);
2446
+ promise = AssetPromise.resolve(bufferInfo);
2238
2447
  }
2239
2448
  return accessor.sparse ? promise.then(function(bufferInfo) {
2240
2449
  return GLTFUtils.processingSparseData(context, accessor, bufferInfo).then(function() {
@@ -2269,7 +2478,7 @@ function registerGLTFParser(pipeline) {
2269
2478
  var _accessor_sparse = accessor.sparse, count = _accessor_sparse.count, indices = _accessor_sparse.indices, values = _accessor_sparse.values;
2270
2479
  var indicesBufferView = bufferViews[indices.bufferView];
2271
2480
  var valuesBufferView = bufferViews[values.bufferView];
2272
- return Promise.all([
2481
+ return AssetPromise.all([
2273
2482
  context.get(GLTFParserType.BufferView, indices.bufferView),
2274
2483
  context.get(GLTFParserType.BufferView, values.bufferView)
2275
2484
  ]).then(function(param) {
@@ -2296,6 +2505,8 @@ function registerGLTFParser(pipeline) {
2296
2505
  }
2297
2506
  }
2298
2507
  bufferInfo.data = data;
2508
+ }).catch(function(e) {
2509
+ Logger.error("GLTFUtil processingSparseData error", e);
2299
2510
  });
2300
2511
  };
2301
2512
  GLTFUtils.getIndexFormat = function getIndexFormat(type) {
@@ -3813,11 +4024,10 @@ var GLTFExtensionMode;
3813
4024
  for(var _len = arguments.length, extra = new Array(_len > 5 ? _len - 5 : 0), _key = 5; _key < _len; _key++){
3814
4025
  extra[_key - 5] = arguments[_key];
3815
4026
  }
4027
+ var _parser;
4028
+ var _parser1;
3816
4029
  var parser = GLTFParser.getExtensionParser(extensionName, GLTFExtensionMode.AdditiveParse);
3817
- if (parser) {
3818
- var _parser;
3819
- (_parser = parser).additiveParse.apply(_parser, [].concat(context, parseResource, extensionSchema, ownerSchema, extra));
3820
- }
4030
+ (_parser1 = parser) == null ? void 0 : (_parser = _parser1).additiveParse.apply(_parser, [].concat(context, parseResource, extensionSchema, ownerSchema, extra));
3821
4031
  };
3822
4032
  return GLTFParser;
3823
4033
  }();
@@ -3887,7 +4097,7 @@ var GLTFAnimationParser = /*#__PURE__*/ function(GLTFParser1) {
3887
4097
  var animationInfo = context.glTF.animations[index];
3888
4098
  var _animationInfo_name = animationInfo.name, name = _animationInfo_name === void 0 ? "AnimationClip" + index : _animationInfo_name;
3889
4099
  var animationClipPromise = GLTFParser.executeExtensionsCreateAndParse(animationInfo.extensions, context, animationInfo) || GLTFAnimationParser._parseStandardProperty(context, new AnimationClip(name), animationInfo);
3890
- return Promise.resolve(animationClipPromise).then(function(animationClip) {
4100
+ return AssetPromise.resolve(animationClipPromise).then(function(animationClip) {
3891
4101
  GLTFParser.executeExtensionsAdditiveAndParse(animationInfo.extensions, context, animationClip, animationInfo);
3892
4102
  return animationClip;
3893
4103
  });
@@ -3899,7 +4109,7 @@ var GLTFAnimationParser = /*#__PURE__*/ function(GLTFParser1) {
3899
4109
  var glTFSampler = samplers[j];
3900
4110
  var inputAccessor = accessors[glTFSampler.input];
3901
4111
  var outputAccessor = accessors[glTFSampler.output];
3902
- var promise = Promise.all([
4112
+ var promise = AssetPromise.all([
3903
4113
  GLTFUtils.getAccessorBuffer(context, bufferViews, inputAccessor),
3904
4114
  GLTFUtils.getAccessorBuffer(context, bufferViews, outputAccessor)
3905
4115
  ]).then(function(bufferInfos) {
@@ -3950,7 +4160,7 @@ var GLTFAnimationParser = /*#__PURE__*/ function(GLTFParser1) {
3950
4160
  // parse samplers
3951
4161
  for(var j = 0, m = len; j < m; j++)_loop(j);
3952
4162
  promises.push(context.get(GLTFParserType.Scene));
3953
- return Promise.all(promises).then(function() {
4163
+ return AssetPromise.all(promises).then(function() {
3954
4164
  for(var j = 0, m = channels.length; j < m; j++){
3955
4165
  var glTFChannel = channels[j];
3956
4166
  var target = glTFChannel.target;
@@ -4080,7 +4290,7 @@ var GLTFBufferParser = /*#__PURE__*/ function(GLTFParser1) {
4080
4290
  var _proto = GLTFBufferParser.prototype;
4081
4291
  _proto.parse = function parse(context, index) {
4082
4292
  var buffers = context.glTF.buffers;
4083
- return context.buffers ? Promise.resolve(context.buffers[index]) : this._parseSingleBuffer(context, buffers[index]);
4293
+ return context.buffers ? AssetPromise.resolve(context.buffers[index]) : this._parseSingleBuffer(context, buffers[index]);
4084
4294
  };
4085
4295
  _proto._parseSingleBuffer = function _parseSingleBuffer(context, bufferInfo) {
4086
4296
  var glTFResource = context.glTFResource, contentRestorer = context.contentRestorer, resourceManager = context.resourceManager;
@@ -4167,18 +4377,15 @@ var GLTFMaterialParser = /*#__PURE__*/ function(GLTFParser1) {
4167
4377
  material.name = materialInfo.name;
4168
4378
  GLTFMaterialParser._parseStandardProperty(context, material, materialInfo);
4169
4379
  }
4170
- return Promise.resolve(material).then(function(material) {
4171
- material || (material = GLTFMaterialParser._getDefaultMaterial(engine));
4380
+ return AssetPromise.resolve(material).then(function(material) {
4381
+ // @ts-ignore
4382
+ material || (material = engine._basicResources._getBlinnPhongMaterial());
4172
4383
  GLTFParser.executeExtensionsAdditiveAndParse(materialInfo.extensions, context, material, materialInfo);
4173
4384
  // @ts-ignore
4174
4385
  material._associationSuperResource(glTFResource);
4175
4386
  return material;
4176
4387
  });
4177
4388
  };
4178
- /** @internal */ GLTFMaterialParser1._getDefaultMaterial = function _getDefaultMaterial(engine) {
4179
- var _GLTFMaterialParser;
4180
- return (_GLTFMaterialParser = GLTFMaterialParser)._defaultMaterial || (_GLTFMaterialParser._defaultMaterial = new BlinnPhongMaterial(engine));
4181
- };
4182
4389
  /**
4183
4390
  * @internal
4184
4391
  */ GLTFMaterialParser1._checkOtherTextureTransform = function _checkOtherTextureTransform(texture, textureName) {
@@ -4200,6 +4407,8 @@ var GLTFMaterialParser = /*#__PURE__*/ function(GLTFParser1) {
4200
4407
  context.get(GLTFParserType.Texture, baseColorTexture.index).then(function(texture) {
4201
4408
  material.baseTexture = texture;
4202
4409
  GLTFParser.executeExtensionsAdditiveAndParse(baseColorTexture.extensions, context, material, baseColorTexture);
4410
+ }).catch(function(e) {
4411
+ Logger.error("GLTFMaterialParser: baseColorTexture error", e);
4203
4412
  });
4204
4413
  }
4205
4414
  if (material.constructor === PBRMaterial) {
@@ -4209,6 +4418,8 @@ var GLTFMaterialParser = /*#__PURE__*/ function(GLTFParser1) {
4209
4418
  GLTFMaterialParser._checkOtherTextureTransform(metallicRoughnessTexture, "Roughness metallic");
4210
4419
  context.get(GLTFParserType.Texture, metallicRoughnessTexture.index).then(function(texture) {
4211
4420
  material.roughnessMetallicTexture = texture;
4421
+ }).catch(function(e) {
4422
+ Logger.error("GLTFMaterialParser: metallicRoughnessTexture error", e);
4212
4423
  });
4213
4424
  }
4214
4425
  }
@@ -4218,6 +4429,8 @@ var GLTFMaterialParser = /*#__PURE__*/ function(GLTFParser1) {
4218
4429
  GLTFMaterialParser._checkOtherTextureTransform(emissiveTexture, "Emissive");
4219
4430
  context.get(GLTFParserType.Texture, emissiveTexture.index).then(function(texture) {
4220
4431
  material.emissiveTexture = texture;
4432
+ }).catch(function(e) {
4433
+ Logger.error("GLTFMaterialParser: emissiveTexture error", e);
4221
4434
  });
4222
4435
  }
4223
4436
  if (emissiveFactor) {
@@ -4228,6 +4441,8 @@ var GLTFMaterialParser = /*#__PURE__*/ function(GLTFParser1) {
4228
4441
  GLTFMaterialParser._checkOtherTextureTransform(normalTexture, "Normal");
4229
4442
  context.get(GLTFParserType.Texture, index).then(function(texture) {
4230
4443
  material.normalTexture = texture;
4444
+ }).catch(function(e) {
4445
+ Logger.error("GLTFMaterialParser: emissiveTexture error", e);
4231
4446
  });
4232
4447
  if (scale !== undefined) {
4233
4448
  material.normalTextureIntensity = scale;
@@ -4238,6 +4453,8 @@ var GLTFMaterialParser = /*#__PURE__*/ function(GLTFParser1) {
4238
4453
  GLTFMaterialParser._checkOtherTextureTransform(occlusionTexture, "Occlusion");
4239
4454
  context.get(GLTFParserType.Texture, index1).then(function(texture) {
4240
4455
  material.occlusionTexture = texture;
4456
+ }).catch(function(e) {
4457
+ Logger.error("GLTFMaterialParser: occlusionTexture error", e);
4241
4458
  });
4242
4459
  if (strength !== undefined) {
4243
4460
  material.occlusionTextureIntensity = strength;
@@ -4282,7 +4499,7 @@ var GLTFMeshParser = (_GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1) {
4282
4499
  _proto.parse = function parse(context, index) {
4283
4500
  var _loop = function(i, length) {
4284
4501
  var gltfPrimitive = meshInfo.primitives[i];
4285
- primitivePromises[i] = new Promise(function(resolve) {
4502
+ primitivePromises[i] = new AssetPromise(function(resolve, reject) {
4286
4503
  var mesh = GLTFParser.executeExtensionsCreateAndParse(gltfPrimitive.extensions, context, gltfPrimitive, meshInfo);
4287
4504
  if (mesh) {
4288
4505
  if (_instanceof(mesh, ModelMesh)) {
@@ -4303,7 +4520,7 @@ var GLTFMeshParser = (_GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1) {
4303
4520
  var meshRestoreInfo = new ModelMeshRestoreInfo();
4304
4521
  meshRestoreInfo.mesh = mesh1;
4305
4522
  context.contentRestorer.meshes.push(meshRestoreInfo);
4306
- GLTFMeshParser._parseMeshFromGLTFPrimitive(context, mesh1, meshRestoreInfo, meshInfo, gltfPrimitive, glTF, context.params.keepMeshData).then(resolve);
4523
+ GLTFMeshParser._parseMeshFromGLTFPrimitive(context, mesh1, meshRestoreInfo, meshInfo, gltfPrimitive, glTF, context.params.keepMeshData).then(resolve, reject);
4307
4524
  }
4308
4525
  });
4309
4526
  };
@@ -4312,7 +4529,7 @@ var GLTFMeshParser = (_GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1) {
4312
4529
  var engine = glTFResource.engine;
4313
4530
  var primitivePromises = new Array();
4314
4531
  for(var i = 0, length = meshInfo.primitives.length; i < length; i++)_loop(i);
4315
- return Promise.all(primitivePromises);
4532
+ return AssetPromise.all(primitivePromises);
4316
4533
  };
4317
4534
  /**
4318
4535
  * @internal
@@ -4395,7 +4612,7 @@ var GLTFMeshParser = (_GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1) {
4395
4612
  var bufferBindIndex = 0;
4396
4613
  var promises = new Array();
4397
4614
  for(var attribute in attributes)_loop(attribute);
4398
- return Promise.all(promises).then(function() {
4615
+ return AssetPromise.all(promises).then(function() {
4399
4616
  mesh.setVertexElements(vertexElements);
4400
4617
  // Indices
4401
4618
  if (indices !== undefined) {
@@ -4445,7 +4662,7 @@ var GLTFMeshParser = (_GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1) {
4445
4662
  var tangentTarget = targets["TANGENT"];
4446
4663
  var hasNormal = normalTarget !== undefined;
4447
4664
  var hasTangent = tangentTarget !== undefined;
4448
- var promise = Promise.all([
4665
+ var promise = AssetPromise.all([
4449
4666
  _this._getBlendShapeData(context, glTF, accessors[targets["POSITION"]]),
4450
4667
  hasNormal ? _this._getBlendShapeData(context, glTF, accessors[normalTarget]) : null,
4451
4668
  hasTangent ? _this._getBlendShapeData(context, glTF, accessors[tangentTarget]) : null
@@ -4466,7 +4683,7 @@ var GLTFMeshParser = (_GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1) {
4466
4683
  var blendShapeCount = glTFTargets.length;
4467
4684
  var blendShapeCollection = new Array(blendShapeCount);
4468
4685
  for(var i = 0; i < blendShapeCount; i++)_loop(i);
4469
- return Promise.all(promises).then(function() {
4686
+ return AssetPromise.all(promises).then(function() {
4470
4687
  for(var _iterator = _create_for_of_iterator_helper_loose(blendShapeCollection), _step; !(_step = _iterator()).done;){
4471
4688
  var blendShape = _step.value;
4472
4689
  mesh.addBlendShape(blendShape.blendShape);
@@ -4514,7 +4731,7 @@ var GLTFSceneParser = /*#__PURE__*/ function(GLTFParser1) {
4514
4731
  for(var i1 = 0; i1 < sceneNodes.length; i1++){
4515
4732
  promises.push(this._parseEntityComponent(context, sceneNodes[i1]));
4516
4733
  }
4517
- return Promise.all(promises).then(function() {
4734
+ return AssetPromise.all(promises).then(function() {
4518
4735
  GLTFParser.executeExtensionsAdditiveAndParse(sceneExtensions, context, sceneRoot, sceneInfo);
4519
4736
  return sceneRoot;
4520
4737
  });
@@ -4532,7 +4749,7 @@ var GLTFSceneParser = /*#__PURE__*/ function(GLTFParser1) {
4532
4749
  if (meshID !== undefined) {
4533
4750
  promise = this._createRenderer(context, entityInfo, entity);
4534
4751
  }
4535
- return Promise.resolve(promise).then(function() {
4752
+ return AssetPromise.resolve(promise).then(function() {
4536
4753
  var promises = [];
4537
4754
  var children = entityInfo.children;
4538
4755
  if (children) {
@@ -4540,7 +4757,7 @@ var GLTFSceneParser = /*#__PURE__*/ function(GLTFParser1) {
4540
4757
  promises.push(_this._parseEntityComponent(context, children[i]));
4541
4758
  }
4542
4759
  }
4543
- return Promise.all(promises);
4760
+ return AssetPromise.all(promises);
4544
4761
  });
4545
4762
  };
4546
4763
  _proto._createCamera = function _createCamera(resource, cameraSchema, entity) {
@@ -4589,13 +4806,14 @@ var GLTFSceneParser = /*#__PURE__*/ function(GLTFParser1) {
4589
4806
  var _glTFMeshPrimitives_i_material;
4590
4807
  materialPromises[i] = context.get(GLTFParserType.Material, (_glTFMeshPrimitives_i_material = glTFMeshPrimitives[i].material) != null ? _glTFMeshPrimitives_i_material : -1);
4591
4808
  }
4592
- return Promise.all([
4809
+ return AssetPromise.all([
4593
4810
  context.get(GLTFParserType.Mesh, meshID),
4594
4811
  skinID !== undefined && context.get(GLTFParserType.Skin, skinID),
4595
- Promise.all(materialPromises)
4812
+ AssetPromise.all(materialPromises)
4596
4813
  ]).then(function(param) {
4597
4814
  var _loop = function(i) {
4598
- var material = materials[i] || GLTFMaterialParser._getDefaultMaterial(context.glTFResource.engine);
4815
+ // @ts-ignore
4816
+ var material = materials[i] || context.glTFResource.engine._basicResources._getBlinnPhongMaterial();
4599
4817
  var glTFPrimitive = glTFMeshPrimitives[i];
4600
4818
  var mesh = meshes[i];
4601
4819
  var renderer = void 0;
@@ -4625,6 +4843,8 @@ var GLTFSceneParser = /*#__PURE__*/ function(GLTFParser1) {
4625
4843
  };
4626
4844
  var meshes = param[0], skin = param[1], materials = param[2];
4627
4845
  for(var i = 0; i < rendererCount; i++)_loop(i);
4846
+ }).catch(function(e) {
4847
+ Logger.error("GLTFSceneParser: create renderer error", e);
4628
4848
  });
4629
4849
  };
4630
4850
  _proto._computeLocalBounds = function _computeLocalBounds(skinnedMeshRenderer, mesh, bones, rootBone, inverseBindMatrices) {
@@ -4709,7 +4929,7 @@ var GLTFSkinParser = /*#__PURE__*/ function(GLTFParser1) {
4709
4929
  }
4710
4930
  return skin;
4711
4931
  });
4712
- return Promise.resolve(skinPromise);
4932
+ return AssetPromise.resolve(skinPromise);
4713
4933
  };
4714
4934
  _proto._findSkeletonRootBone = function _findSkeletonRootBone(joints, entities) {
4715
4935
  var paths = {};
@@ -4760,7 +4980,7 @@ var GLTFTextureParser = (_GLTFTextureParser = /*#__PURE__*/ function(GLTFParser1
4760
4980
  if (!texture) {
4761
4981
  texture = GLTFTextureParser._parseTexture(context, imageIndex, textureIndex, sampler, textureName);
4762
4982
  }
4763
- return Promise.resolve(texture).then(function(texture) {
4983
+ return AssetPromise.resolve(texture).then(function(texture) {
4764
4984
  GLTFParser.executeExtensionsAdditiveAndParse(extensions, context, texture, textureInfo);
4765
4985
  // @ts-ignore
4766
4986
  texture._associationSuperResource(glTFResource);
@@ -4807,6 +5027,8 @@ var GLTFTextureParser = (_GLTFTextureParser = /*#__PURE__*/ function(GLTFParser1
4807
5027
  context.contentRestorer.bufferTextures.push(bufferTextureRestoreInfo);
4808
5028
  return texture;
4809
5029
  });
5030
+ }).catch(function(e) {
5031
+ Logger.error("GLTFTextureParser: image buffer error", e);
4810
5032
  });
4811
5033
  }
4812
5034
  return texture;
@@ -4850,7 +5072,7 @@ var GLTFValidator = /*#__PURE__*/ function(GLTFParser1) {
4850
5072
  }
4851
5073
  }
4852
5074
  }
4853
- return Promise.resolve(null);
5075
+ return AssetPromise.resolve(null);
4854
5076
  };
4855
5077
  return GLTFValidator;
4856
5078
  }(GLTFParser);
@@ -4869,6 +5091,8 @@ var GLTFBufferViewParser = /*#__PURE__*/ function(GLTFParser1) {
4869
5091
  var extensions = bufferView.extensions, _bufferView_byteOffset = bufferView.byteOffset, byteOffset = _bufferView_byteOffset === void 0 ? 0 : _bufferView_byteOffset, byteLength = bufferView.byteLength, bufferIndex = bufferView.buffer;
4870
5092
  return extensions ? GLTFParser.executeExtensionsCreateAndParse(extensions, context, bufferView) : context.get(GLTFParserType.Buffer, bufferIndex).then(function(buffer) {
4871
5093
  return new Uint8Array(buffer, byteOffset, byteLength);
5094
+ }).catch(function(e) {
5095
+ Logger.error("GLTFBufferViewParser: buffer error", e);
4872
5096
  });
4873
5097
  };
4874
5098
  return GLTFBufferViewParser;
@@ -4886,11 +5110,13 @@ var GLTFAnimatorControllerParser = /*#__PURE__*/ function(GLTFParser1) {
4886
5110
  _proto.parse = function parse(context) {
4887
5111
  var _this = this;
4888
5112
  if (!context.needAnimatorController) {
4889
- return Promise.resolve(null);
5113
+ return AssetPromise.resolve(null);
4890
5114
  }
4891
5115
  return context.get(GLTFParserType.Animation).then(function(animations) {
4892
5116
  var animatorController = _this._createAnimatorController(context, animations);
4893
- return Promise.resolve(animatorController);
5117
+ return AssetPromise.resolve(animatorController);
5118
+ }).catch(function(e) {
5119
+ Logger.error("GLTFAnimatorControllerParser: animator controller error", e);
4894
5120
  });
4895
5121
  };
4896
5122
  _proto._createAnimatorController = function _createAnimatorController(context, animations) {
@@ -4921,203 +5147,6 @@ GLTFAnimatorControllerParser = __decorate([
4921
5147
  registerGLTFParser(GLTFParserType.AnimatorController)
4922
5148
  ], GLTFAnimatorControllerParser);
4923
5149
 
4924
- // Source: https://github.com/zeux/meshoptimizer/blob/master/js/meshopt_decoder.js
4925
- var ready;
4926
- function getMeshoptDecoder() {
4927
- var unpack = function unpack(data) {
4928
- var result = new Uint8Array(data.length);
4929
- for(var i = 0; i < data.length; ++i){
4930
- var ch = data.charCodeAt(i);
4931
- result[i] = ch > 96 ? ch - 97 : ch > 64 ? ch - 39 : ch + 4;
4932
- }
4933
- var write = 0;
4934
- for(var i1 = 0; i1 < data.length; ++i1){
4935
- result[write++] = result[i1] < 60 ? wasmpack[result[i1]] : (result[i1] - 60) * 64 + result[++i1];
4936
- }
4937
- return result.buffer.slice(0, write);
4938
- };
4939
- var decode = function decode(fun, target, count, size, source, filter) {
4940
- var sbrk = instance.exports.sbrk;
4941
- var count4 = count + 3 & ~3;
4942
- var tp = sbrk(count4 * size);
4943
- var sp = sbrk(source.length);
4944
- var heap = new Uint8Array(instance.exports.memory.buffer);
4945
- heap.set(source, sp);
4946
- var res = fun(tp, count, size, sp, source.length);
4947
- if (res == 0 && filter) {
4948
- filter(tp, count4, size);
4949
- }
4950
- target.set(heap.subarray(tp, tp + count * size));
4951
- sbrk(tp - sbrk(0));
4952
- if (res != 0) {
4953
- throw new Error("Malformed buffer data: " + res);
4954
- }
4955
- };
4956
- var createWorker = function createWorker(url) {
4957
- var worker = {
4958
- object: new Worker(url),
4959
- pending: 0,
4960
- requests: {}
4961
- };
4962
- worker.object.onmessage = function(event) {
4963
- var data = event.data;
4964
- worker.pending -= data.count;
4965
- worker.requests[data.id][data.action](data.value);
4966
- delete worker.requests[data.id];
4967
- };
4968
- return worker;
4969
- };
4970
- var initWorkers = function initWorkers(count) {
4971
- var source = "var instance; var ready = WebAssembly.instantiate(new Uint8Array([" + new Uint8Array(unpack(wasm)) + "]), {})" + ".then(function(result) {instance = result.instance; instance.exports.__wasm_call_ctors();});\n" + "self.onmessage = workerProcess;\n" + 'function decode(fun, target, count, size, source, filter) {\n const sbrk = instance.exports.sbrk;\n const count4 = (count + 3) & ~3;\n const tp = sbrk(count4 * size);\n const sp = sbrk(source.length);\n const heap = new Uint8Array(instance.exports.memory.buffer);\n heap.set(source, sp);\n const res = fun(tp, count, size, sp, source.length);\n if (res == 0 && filter) {\n filter(tp, count4, size);\n }\n target.set(heap.subarray(tp, tp + count * size));\n sbrk(tp - sbrk(0));\n if (res != 0) {\n throw new Error("Malformed buffer data: " + res);\n }\n }\n' + 'function workerProcess(event) {\n ready.then(function () {\n const data = event.data;\n try {\n const target = new Uint8Array(data.count * data.size);\n decode(instance.exports[data.mode], target, data.count, data.size, data.source, instance.exports[data.filter]);\n self.postMessage({ id: data.id, count: data.count, action: "resolve", value: target }, [target.buffer]);\n } catch (error) {\n self.postMessage({\n id: data.id,\n count: data.count,\n action: "reject",\n value: error\n });\n }\n });\n }';
4972
- var blob = new Blob([
4973
- source
4974
- ], {
4975
- type: "text/javascript"
4976
- });
4977
- var url = URL.createObjectURL(blob);
4978
- for(var i = 0; i < count; ++i){
4979
- workers[i] = createWorker(url);
4980
- }
4981
- URL.revokeObjectURL(url);
4982
- };
4983
- var decodeWorker = function decodeWorker(count, size, source, mode, filter) {
4984
- var worker = workers[0];
4985
- for(var i = 1; i < workers.length; ++i){
4986
- if (workers[i].pending < worker.pending) {
4987
- worker = workers[i];
4988
- }
4989
- }
4990
- return new Promise(function(resolve, reject) {
4991
- var data = new Uint8Array(source);
4992
- var id = requestId++;
4993
- worker.pending += count;
4994
- worker.requests[id] = {
4995
- resolve: resolve,
4996
- reject: reject
4997
- };
4998
- worker.object.postMessage({
4999
- id: id,
5000
- count: count,
5001
- size: size,
5002
- source: data,
5003
- mode: mode,
5004
- filter: filter
5005
- }, [
5006
- data.buffer
5007
- ]);
5008
- });
5009
- };
5010
- if (ready) return ready;
5011
- var wasm_base = "b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuikqbeeedddillviebeoweuec:q;iekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbol79IV9Rbrq:P8Yqdbk;3sezu8Jjjjjbcj;eb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Radz1jjjbhwcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhDcbhqinaqae9pmeaDaeaq9RaqaDfae6Egkcsfgocl4cifcd4hxdndndndnaoc9WGgmTmbcbhPcehsawcjdfhzalhHinaraH9Rax6midnaraHaxfgl9RcK6mbczhoinawcj;cbfaogifgoc9WfhOdndndndndnaHaic9WfgAco4fRbbaAci4coG4ciGPlbedibkaO9cb83ibaOcwf9cb83ibxikaOalRblalRbbgAco4gCaCciSgCE86bbaocGfalclfaCfgORbbaAcl4ciGgCaCciSgCE86bbaocVfaOaCfgORbbaAcd4ciGgCaCciSgCE86bbaoc7faOaCfgORbbaAciGgAaAciSgAE86bbaoctfaOaAfgARbbalRbegOco4gCaCciSgCE86bbaoc91faAaCfgARbbaOcl4ciGgCaCciSgCE86bbaoc4faAaCfgARbbaOcd4ciGgCaCciSgCE86bbaoc93faAaCfgARbbaOciGgOaOciSgOE86bbaoc94faAaOfgARbbalRbdgOco4gCaCciSgCE86bbaoc95faAaCfgARbbaOcl4ciGgCaCciSgCE86bbaoc96faAaCfgARbbaOcd4ciGgCaCciSgCE86bbaoc97faAaCfgARbbaOciGgOaOciSgOE86bbaoc98faAaOfgORbbalRbiglco4gAaAciSgAE86bbaoc99faOaAfgORbbalcl4ciGgAaAciSgAE86bbaoc9:faOaAfgORbbalcd4ciGgAaAciSgAE86bbaocufaOaAfgoRbbalciGglalciSglE86bbaoalfhlxdkaOalRbwalRbbgAcl4gCaCcsSgCE86bbaocGfalcwfaCfgORbbaAcsGgAaAcsSgAE86bbaocVfaOaAfgORbbalRbegAcl4gCaCcsSgCE86bbaoc7faOaCfgORbbaAcsGgAaAcsSgAE86bbaoctfaOaAfgORbbalRbdgAcl4gCaCcsSgCE86bbaoc91faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc4faOaAfgORbbalRbigAcl4gCaCcsSgCE86bbaoc93faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc94faOaAfgORbbalRblgAcl4gCaCcsSgCE86bbaoc95faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc96faOaAfgORbbalRbvgAcl4gCaCcsSgCE86bbaoc97faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc98faOaAfgORbbalRbogAcl4gCaCcsSgCE86bbaoc99faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc9:faOaAfgORbbalRbrglcl4gAaAcsSgAE86bbaocufaOaAfgoRbbalcsGglalcsSglE86bbaoalfhlxekaOal8Pbb83bbaOcwfalcwf8Pbb83bbalczfhlkdnaiam9pmbaiczfhoaral9RcL0mekkaiam6mialTmidnakTmbawaPfRbbhOcbhoazhiinaiawcj;cbfaofRbbgAce4cbaAceG9R7aOfgO86bbaiadfhiaocefgoak9hmbkkazcefhzaPcefgPad6hsalhHaPad9hmexvkkcbhlasceGmdxikalaxad2fhCdnakTmbcbhHcehsawcjdfhminaral9Rax6mialTmdalaxfhlawaHfRbbhOcbhoamhiinaiawcj;cbfaofRbbgAce4cbaAceG9R7aOfgO86bbaiadfhiaocefgoak9hmbkamcefhmaHcefgHad6hsaHad9hmbkaChlxikcbhocehsinaral9Rax6mdalTmealaxfhlaocefgoad6hsadao9hmbkaChlxdkcbhlasceGTmekc9:hoxikabaqad2fawcjdfakad2z1jjjb8Aawawcjdfakcufad2fadz1jjjb8Aakaqfhqalmbkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;ebf8Kjjjjbaok;yzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecjez:jjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhDcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgrc;Ve0mbavc;abfalarcl4cu7fcsGcitfgPydlhsaPydbhzdnarcsGgPak9pmbavaiarcu7fcsGcdtfydbaxaPEhraPThPdndnadcd9hmbabaDcetfgHaz87ebaHcdfas87ebaHclfar87ebxekabaDcdtfgHazBdbaHclfasBdbaHcwfarBdbkaxaPfhxavc;abfalcitfgHarBdbaHasBdlavaicdtfarBdbavc;abfalcefcsGglcitfgHazBdbaHarBdlaiaPfhialcefhlxdkdndnaPcsSmbamaPfaPc987fcefhmxekaocefhrao8SbbgPcFeGhHdndnaPcu9mmbarhoxekaocvfhoaHcFbGhHcrhPdninar8SbbgOcFbGaPtaHVhHaOcu9kmearcefhraPcrfgPc8J9hmbxdkkarcefhokaHce4cbaHceG9R7amfhmkdndnadcd9hmbabaDcetfgraz87ebarcdfas87ebarclfam87ebxekabaDcdtfgrazBdbarclfasBdbarcwfamBdbkavc;abfalcitfgramBdbarasBdlavaicdtfamBdbavc;abfalcefcsGglcitfgrazBdbaramBdlaicefhialcefhlxekdnarcpe0mbaxcefgOavaiaqarcsGfRbbgPcl49RcsGcdtfydbaPcz6gHEhravaiaP9RcsGcdtfydbaOaHfgsaPcsGgOEhPaOThOdndnadcd9hmbabaDcetfgzax87ebazcdfar87ebazclfaP87ebxekabaDcdtfgzaxBdbazclfarBdbazcwfaPBdbkavaicdtfaxBdbavc;abfalcitfgzarBdbazaxBdlavaicefgicsGcdtfarBdbavc;abfalcefcsGcitfgzaPBdbazarBdlavaiaHfcsGgicdtfaPBdbavc;abfalcdfcsGglcitfgraxBdbaraPBdlalcefhlaiaOfhiasaOfhxxekaxcbaoRbbgzEgAarc;:eSgrfhsazcsGhCazcl4hXdndnazcs0mbascefhOxekashOavaiaX9RcsGcdtfydbhskdndnaCmbaOcefhxxekaOhxavaiaz9RcsGcdtfydbhOkdndnarTmbaocefhrxekaocdfhrao8SbegHcFeGhPdnaHcu9kmbaocofhAaPcFbGhPcrhodninar8SbbgHcFbGaotaPVhPaHcu9kmearcefhraocrfgoc8J9hmbkaAhrxekarcefhrkaPce4cbaPceG9R7amfgmhAkdndnaXcsSmbarhPxekarcefhPar8SbbgocFeGhHdnaocu9kmbarcvfhsaHcFbGhHcrhodninaP8SbbgrcFbGaotaHVhHarcu9kmeaPcefhPaocrfgoc8J9hmbkashPxekaPcefhPkaHce4cbaHceG9R7amfgmhskdndnaCcsSmbaPhoxekaPcefhoaP8SbbgrcFeGhHdnarcu9kmbaPcvfhOaHcFbGhHcrhrdninao8SbbgPcFbGartaHVhHaPcu9kmeaocefhoarcrfgrc8J9hmbkaOhoxekaocefhokaHce4cbaHceG9R7amfgmhOkdndnadcd9hmbabaDcetfgraA87ebarcdfas87ebarclfaO87ebxekabaDcdtfgraABdbarclfasBdbarcwfaOBdbkavc;abfalcitfgrasBdbaraABdlavaicdtfaABdbavc;abfalcefcsGcitfgraOBdbarasBdlavaicefgicsGcdtfasBdbavc;abfalcdfcsGcitfgraABdbaraOBdlavaiazcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiaDcifgDae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:llevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:Lvoeue99dud99eud99dndnadcl9hmbaeTmeindndnabcdfgd8Sbb:Yab8Sbbgi:Ygl:l:tabcefgv8Sbbgo:Ygr:l:tgwJbb;:9cawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai86bbdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad86bbdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad86bbabclfhbaecufgembxdkkaeTmbindndnabclfgd8Ueb:Yab8Uebgi:Ygl:l:tabcdfgv8Uebgo:Ygr:l:tgwJb;:FSawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai87ebdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad87ebdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad87ebabcwfhbaecufgembkkk;siliui99iue99dnaeTmbcbhiabhlindndnJ;Zl81Zalcof8UebgvciV:Y:vgoal8Ueb:YNgrJb;:FSNJbbbZJbbb:;arJbbbb9GEMgw:lJbbb9p9DTmbaw:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabavcefciGaiVcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:Ohkxekcjjjj94hkkabavcdfciGaiVcetfak87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:Ohqxekcjjjj94hqkabavcufciGaiVcetfaq87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohqxekcjjjj94hqkabavciGaiVcetfaq87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2geTmbinababydbgdcwtcw91:Yadce91cjjj;8ifcjjj98G::NUdbabclfhbaecufgembkkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaiczfhiaeczfheadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkkkebcjwklz9Kbb";
5012
- var wasm_simd = "b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuikqbbebeedddilve9Weeeviebeoweuec:q;Aekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbwl79IV9RbDq;t9tqlbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk;h8JlHud97euo978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Rad;8qbbcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhwcbhDinaDae9pmeawaeaD9RaDawfae6Egqcsfgoc9WGgkci2hxakcethmaocl4cifcd4hPabaDad2fhscbhzdnincehHalhOcbhAdninaraO9RaP6miavcj;cbfaAak2fhCaOaPfhlcbhidnakc;ab6mbaral9Rc;Gb6mbcbhoinaCaofhidndndndndnaOaoco4fRbbgXciGPlbedibkaipxbbbbbbbbbbbbbbbbpklbxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklbalczfhlkdndndndndnaXcd4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklzxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklzalczfhlkdndndndndnaXcl4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklaxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklaalczfhlkdndndndndnaXco4Plbedibkaipxbbbbbbbbbbbbbbbbpkl8WxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalclfaYpQbfaXc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalcwfaYpQbfaXc:q:yjjbfRbbfhlxekaialpbbbpkl8Walczfhlkaoc;abfhiaocjefak0meaihoaral9Rc;Fb0mbkkdndnaiak9pmbaici4hoinaral9RcK6mdaCaifhXdndndndndnaOaico4fRbbaocoG4ciGPlbedibkaXpxbbbbbbbbbbbbbbbbpklbxikaXalpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaXalpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaXalpbbbpklbalczfhlkaocdfhoaiczfgiak6mbkkalTmbaAci6hHalhOaAcefgohAaoclSmdxekkcbhlaHceGmdkdnakTmbavcjdfazfhiavazfpbdbhYcbhXinaiavcj;cbfaXfgopblbgLcep9TaLpxeeeeeeeeeeeeeeeegQp9op9Hp9rgLaoakfpblbg8Acep9Ta8AaQp9op9Hp9rg8ApmbzeHdOiAlCvXoQrLgEaoamfpblbg3cep9Ta3aQp9op9Hp9rg3aoaxfpblbg5cep9Ta5aQp9op9Hp9rg5pmbzeHdOiAlCvXoQrLg8EpmbezHdiOAlvCXorQLgQaQpmbedibedibedibediaYp9UgYp9AdbbaiadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaEa8EpmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwKDYq8AkEx3m5P8Es8FgLa3a5pmwKDYq8AkEx3m5P8Es8Fg8ApmbezHdiOAlvCXorQLgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfhiaXczfgXak6mbkkazclfgzad6mbkasavcjdfaqad2;8qbbavavcjdfaqcufad2fad;8qbbaqaDfhDc9:hoalmexikkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;kbf8Kjjjjbaokwbz:bjjjbk;uzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhDcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgrc;Ve0mbavc;abfalarcl4cu7fcsGcitfgPydlhsaPydbhzdnarcsGgPak9pmbavaiarcu7fcsGcdtfydbaxaPEhraPThPdndnadcd9hmbabaDcetfgHaz87ebaHcdfas87ebaHclfar87ebxekabaDcdtfgHazBdbaHclfasBdbaHcwfarBdbkaxaPfhxavc;abfalcitfgHarBdbaHasBdlavaicdtfarBdbavc;abfalcefcsGglcitfgHazBdbaHarBdlaiaPfhialcefhlxdkdndnaPcsSmbamaPfaPc987fcefhmxekaocefhrao8SbbgPcFeGhHdndnaPcu9mmbarhoxekaocvfhoaHcFbGhHcrhPdninar8SbbgOcFbGaPtaHVhHaOcu9kmearcefhraPcrfgPc8J9hmbxdkkarcefhokaHce4cbaHceG9R7amfhmkdndnadcd9hmbabaDcetfgraz87ebarcdfas87ebarclfam87ebxekabaDcdtfgrazBdbarclfasBdbarcwfamBdbkavc;abfalcitfgramBdbarasBdlavaicdtfamBdbavc;abfalcefcsGglcitfgrazBdbaramBdlaicefhialcefhlxekdnarcpe0mbaxcefgOavaiaqarcsGfRbbgPcl49RcsGcdtfydbaPcz6gHEhravaiaP9RcsGcdtfydbaOaHfgsaPcsGgOEhPaOThOdndnadcd9hmbabaDcetfgzax87ebazcdfar87ebazclfaP87ebxekabaDcdtfgzaxBdbazclfarBdbazcwfaPBdbkavaicdtfaxBdbavc;abfalcitfgzarBdbazaxBdlavaicefgicsGcdtfarBdbavc;abfalcefcsGcitfgzaPBdbazarBdlavaiaHfcsGgicdtfaPBdbavc;abfalcdfcsGglcitfgraxBdbaraPBdlalcefhlaiaOfhiasaOfhxxekaxcbaoRbbgzEgAarc;:eSgrfhsazcsGhCazcl4hXdndnazcs0mbascefhOxekashOavaiaX9RcsGcdtfydbhskdndnaCmbaOcefhxxekaOhxavaiaz9RcsGcdtfydbhOkdndnarTmbaocefhrxekaocdfhrao8SbegHcFeGhPdnaHcu9kmbaocofhAaPcFbGhPcrhodninar8SbbgHcFbGaotaPVhPaHcu9kmearcefhraocrfgoc8J9hmbkaAhrxekarcefhrkaPce4cbaPceG9R7amfgmhAkdndnaXcsSmbarhPxekarcefhPar8SbbgocFeGhHdnaocu9kmbarcvfhsaHcFbGhHcrhodninaP8SbbgrcFbGaotaHVhHarcu9kmeaPcefhPaocrfgoc8J9hmbkashPxekaPcefhPkaHce4cbaHceG9R7amfgmhskdndnaCcsSmbaPhoxekaPcefhoaP8SbbgrcFeGhHdnarcu9kmbaPcvfhOaHcFbGhHcrhrdninao8SbbgPcFbGartaHVhHaPcu9kmeaocefhoarcrfgrc8J9hmbkaOhoxekaocefhokaHce4cbaHceG9R7amfgmhOkdndnadcd9hmbabaDcetfgraA87ebarcdfas87ebarclfaO87ebxekabaDcdtfgraABdbarclfasBdbarcwfaOBdbkavc;abfalcitfgrasBdbaraABdlavaicdtfaABdbavc;abfalcefcsGcitfgraOBdbarasBdlavaicefgicsGcdtfasBdbavc;abfalcdfcsGcitfgraABdbaraOBdlavaiazcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiaDcifgDae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:llevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:EPliuo97eue978Jjjjjbca9Rhidndnadcl9hmbdnaec98GglTmbcbhvabhdinadadpbbbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalae9pmeaiaeciGgvcdtgdVcbczad9R;8kbaiabalcdtfglad;8qbbdnavTmbaiaipblbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpklbkalaiad;8qbbskdnaec98GgxTmbcbhvabhdinadczfglalpbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oawaopmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgvax6mbkkaxae9pmbaiaeciGgvcitgdfcbcaad9R;8kbaiabaxcitfglad;8qbbdnavTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oawaopmbezHdiOAlvCXorQLp9qpklbkalaiad;8qbbkk;4wllue97euv978Jjjjjbc8W9Rhidnaec98GglTmbcbhvabhoinaiaopbbbgraoczfgwpbbbgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklbaopxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblbpEb:T:j83ibaocwfarp5eaipblbpEe:T:j83ibawaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblbpEd:T:j83ibaocKfakp5eaipblbpEi:T:j83ibaocafhoavclfgval6mbkkdnalae9pmbaiaeciGgvcitgofcbcaao9R;8kbaiabalcitfgwao;8qbbdnavTmbaiaipblbgraipblzgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklaaipxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblapEb:T:j83ibaiarp5eaipblapEe:T:j83iwaiaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblapEd:T:j83izaiakp5eaipblapEi:T:j83iKkawaiao;8qbbkk:Pddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbhdabheinaeaepbbbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepkbbaeczfheadclfgdav6mbkkdnaval9pmbaialciGgdcdtgeVcbc;abae9R;8kbaiabavcdtfgvae;8qbbdnadTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepklbkavaiae;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz9Tbb";
5013
- var wasmpack = new Uint8Array([
5014
- 32,
5015
- 0,
5016
- 65,
5017
- 2,
5018
- 1,
5019
- 106,
5020
- 34,
5021
- 33,
5022
- 3,
5023
- 128,
5024
- 11,
5025
- 4,
5026
- 13,
5027
- 64,
5028
- 6,
5029
- 253,
5030
- 10,
5031
- 7,
5032
- 15,
5033
- 116,
5034
- 127,
5035
- 5,
5036
- 8,
5037
- 12,
5038
- 40,
5039
- 16,
5040
- 19,
5041
- 54,
5042
- 20,
5043
- 9,
5044
- 27,
5045
- 255,
5046
- 113,
5047
- 17,
5048
- 42,
5049
- 67,
5050
- 24,
5051
- 23,
5052
- 146,
5053
- 148,
5054
- 18,
5055
- 14,
5056
- 22,
5057
- 45,
5058
- 70,
5059
- 69,
5060
- 56,
5061
- 114,
5062
- 101,
5063
- 21,
5064
- 25,
5065
- 63,
5066
- 75,
5067
- 136,
5068
- 108,
5069
- 28,
5070
- 118,
5071
- 29,
5072
- 73,
5073
- 115
5074
- ]);
5075
- // @ts-ignore
5076
- var wasm = SystemInfo._detectSIMDSupported() ? wasm_simd : wasm_base;
5077
- var instance;
5078
- ready = WebAssembly.instantiate(unpack(wasm)).then(function(result) {
5079
- instance = result.instance;
5080
- instance.exports.__wasm_call_ctors();
5081
- }).then(function() {
5082
- return {
5083
- workerCount: 4,
5084
- ready: ready,
5085
- useWorkers: function useWorkers(workerCount) {
5086
- this.workerCount = workerCount != null ? workerCount : this.workerCount;
5087
- initWorkers(this.workerCount);
5088
- },
5089
- decodeGltfBuffer: function decodeGltfBuffer(count, stride, source, mode, filter) {
5090
- if (this.workerCount > 0 && workers.length === 0) this.useWorkers();
5091
- if (workers.length > 0) return decodeWorker(count, stride, source, decoders[mode], filters[filter]);
5092
- return ready.then(function() {
5093
- var target = new Uint8Array(count * stride);
5094
- decode(instance.exports[decoders[mode]], target, count, stride, source, instance.exports[filters[filter]]);
5095
- return target;
5096
- });
5097
- },
5098
- release: function release() {
5099
- for(var i = 0; i < workers.length; i++){
5100
- workers[i].object.terminate();
5101
- }
5102
- }
5103
- };
5104
- });
5105
- var filters = {
5106
- NONE: "",
5107
- OCTAHEDRAL: "meshopt_decodeFilterOct",
5108
- QUATERNION: "meshopt_decodeFilterQuat",
5109
- EXPONENTIAL: "meshopt_decodeFilterExp"
5110
- };
5111
- var decoders = {
5112
- ATTRIBUTES: "meshopt_decodeVertexBuffer",
5113
- TRIANGLES: "meshopt_decodeIndexBuffer",
5114
- INDICES: "meshopt_decodeIndexSequence"
5115
- };
5116
- var workers = [];
5117
- var requestId = 0;
5118
- return ready;
5119
- }
5120
-
5121
5150
  var GLTFLoader = /*#__PURE__*/ function(Loader1) {
5122
5151
  _inherits(GLTFLoader, Loader1);
5123
5152
  function GLTFLoader() {
@@ -5141,10 +5170,19 @@ var GLTFLoader = /*#__PURE__*/ function(Loader1) {
5141
5170
  var context = new GLTFParserContext(glTFResource, resourceManager, _extends({
5142
5171
  keepMeshData: false
5143
5172
  }, params));
5144
- return new AssetPromise(function(resolve, reject, setTaskCompleteProgress, setTaskDetailProgress) {
5173
+ return new AssetPromise(function(resolve, reject, setTaskCompleteProgress, setTaskDetailProgress, onTaskCancel) {
5145
5174
  context._setTaskCompleteProgress = setTaskCompleteProgress;
5146
5175
  context._setTaskDetailProgress = setTaskDetailProgress;
5147
- context.parse().then(resolve).catch(reject);
5176
+ onTaskCancel(function() {
5177
+ var getPromises = context._getPromises;
5178
+ for(var i = 0, n = getPromises.length; i < n; i++){
5179
+ getPromises[i].cancel();
5180
+ }
5181
+ });
5182
+ context.parse().then(resolve).catch(function(e) {
5183
+ glTFResource.destroy();
5184
+ reject(e);
5185
+ });
5148
5186
  });
5149
5187
  };
5150
5188
  /**
@@ -6693,18 +6731,24 @@ var KHR_materials_clearcoat = /*#__PURE__*/ function(GLTFExtensionParser1) {
6693
6731
  GLTFMaterialParser._checkOtherTextureTransform(clearcoatTexture, "Clear coat");
6694
6732
  context.get(GLTFParserType.Texture, clearcoatTexture.index).then(function(texture) {
6695
6733
  material.clearCoatTexture = texture;
6734
+ }).catch(function(e) {
6735
+ Logger.error("KHR_materials_clearcoat: clearcoat texture error", e);
6696
6736
  });
6697
6737
  }
6698
6738
  if (clearcoatRoughnessTexture) {
6699
6739
  GLTFMaterialParser._checkOtherTextureTransform(clearcoatRoughnessTexture, "Clear coat roughness");
6700
6740
  context.get(GLTFParserType.Texture, clearcoatRoughnessTexture.index).then(function(texture) {
6701
6741
  material.clearCoatRoughnessTexture = texture;
6742
+ }).catch(function(e) {
6743
+ Logger.error("KHR_materials_clearcoat: clearcoat roughness texture error", e);
6702
6744
  });
6703
6745
  }
6704
6746
  if (clearcoatNormalTexture) {
6705
6747
  GLTFMaterialParser._checkOtherTextureTransform(clearcoatNormalTexture, "Clear coat normal");
6706
6748
  context.get(GLTFParserType.Texture, clearcoatNormalTexture.index).then(function(texture) {
6707
6749
  material.clearCoatNormalTexture = texture;
6750
+ }).catch(function(e) {
6751
+ Logger.error("KHR_materials_clearcoat: clearcoat normal texture error", e);
6708
6752
  });
6709
6753
  }
6710
6754
  };
@@ -6747,6 +6791,8 @@ var KHR_materials_pbrSpecularGlossiness = /*#__PURE__*/ function(GLTFExtensionPa
6747
6791
  context.get(GLTFParserType.Texture, diffuseTexture.index).then(function(texture) {
6748
6792
  material.baseTexture = texture;
6749
6793
  GLTFParser.executeExtensionsAdditiveAndParse(diffuseTexture.extensions, context, material, diffuseTexture);
6794
+ }).catch(function(e) {
6795
+ Logger.error("KHR_materials_pbrSpecularGlossiness: diffuse texture error", e);
6750
6796
  });
6751
6797
  }
6752
6798
  if (specularFactor) {
@@ -6759,6 +6805,8 @@ var KHR_materials_pbrSpecularGlossiness = /*#__PURE__*/ function(GLTFExtensionPa
6759
6805
  GLTFMaterialParser._checkOtherTextureTransform(specularGlossinessTexture, "Specular glossiness");
6760
6806
  context.get(GLTFParserType.Texture, specularGlossinessTexture.index).then(function(texture) {
6761
6807
  material.specularGlossinessTexture = texture;
6808
+ }).catch(function(e) {
6809
+ Logger.error("KHR_materials_pbrSpecularGlossiness: specular glossiness texture error", e);
6762
6810
  });
6763
6811
  }
6764
6812
  material.name = ownerSchema.name;
@@ -6807,6 +6855,8 @@ var KHR_materials_variants = /*#__PURE__*/ function(GLTFExtensionParser1) {
6807
6855
  return variantNames[index].name;
6808
6856
  })
6809
6857
  });
6858
+ }).catch(function(e) {
6859
+ Logger.error("KHR_materials_variants: material error", e);
6810
6860
  });
6811
6861
  };
6812
6862
  var _glTFResource;
@@ -6841,57 +6891,49 @@ var KHR_texture_basisu = /*#__PURE__*/ function(GLTFExtensionParser1) {
6841
6891
  }
6842
6892
  var _proto = KHR_texture_basisu.prototype;
6843
6893
  _proto.createAndParse = function createAndParse(context, schema, textureInfo) {
6844
- return _async_to_generator(function() {
6845
- var glTF, glTFResource, engine, url, sampler, textureName, source, _glTF_images_source, uri, bufferViewIndex, mimeType, imageName, samplerInfo, index, promise, bufferView;
6846
- return __generator(this, function(_state) {
6847
- glTF = context.glTF, glTFResource = context.glTFResource;
6848
- engine = glTFResource.engine, url = glTFResource.url;
6849
- sampler = textureInfo.sampler, textureName = textureInfo.name;
6850
- source = schema.source;
6851
- _glTF_images_source = glTF.images[source], uri = _glTF_images_source.uri, bufferViewIndex = _glTF_images_source.bufferView, mimeType = _glTF_images_source.mimeType, imageName = _glTF_images_source.name;
6852
- samplerInfo = sampler !== undefined && GLTFUtils.getSamplerInfo(glTF.samplers[sampler]);
6853
- if (uri) {
6854
- index = uri.lastIndexOf(".");
6855
- promise = engine.resourceManager.load({
6856
- url: Utils.resolveAbsoluteUrl(url, uri),
6857
- type: AssetType.KTX2
6858
- }).onProgress(undefined, context._onTaskDetail).then(function(texture) {
6859
- if (!texture.name) {
6860
- texture.name = textureName || imageName || "texture_" + index;
6861
- }
6894
+ var glTF = context.glTF, glTFResource = context.glTFResource;
6895
+ var engine = glTFResource.engine, url = glTFResource.url;
6896
+ var sampler = textureInfo.sampler, textureName = textureInfo.name;
6897
+ var source = schema.source;
6898
+ var _glTF_images_source = glTF.images[source], uri = _glTF_images_source.uri, bufferViewIndex = _glTF_images_source.bufferView, mimeType = _glTF_images_source.mimeType, imageName = _glTF_images_source.name;
6899
+ var samplerInfo = sampler !== undefined && GLTFUtils.getSamplerInfo(glTF.samplers[sampler]);
6900
+ if (uri) {
6901
+ var index = uri.lastIndexOf(".");
6902
+ var promise = engine.resourceManager.load({
6903
+ url: Utils.resolveAbsoluteUrl(url, uri),
6904
+ type: AssetType.KTX2
6905
+ }).onProgress(undefined, context._onTaskDetail).then(function(texture) {
6906
+ if (!texture.name) {
6907
+ texture.name = textureName || imageName || "texture_" + index;
6908
+ }
6909
+ if (sampler !== undefined) {
6910
+ GLTFUtils.parseSampler(texture, samplerInfo);
6911
+ }
6912
+ return texture;
6913
+ });
6914
+ context._addTaskCompletePromise(promise);
6915
+ return promise;
6916
+ } else {
6917
+ var bufferView = glTF.bufferViews[bufferViewIndex];
6918
+ return new AssetPromise(function(resolve, reject) {
6919
+ context.get(GLTFParserType.Buffer, bufferView.buffer).then(function(buffer) {
6920
+ var imageBuffer = new Uint8Array(buffer, bufferView.byteOffset, bufferView.byteLength);
6921
+ KTX2Loader._parseBuffer(imageBuffer, engine).then(function(param) {
6922
+ var engine = param.engine, result = param.result, targetFormat = param.targetFormat, params = param.params;
6923
+ var texture = KTX2Loader._createTextureByBuffer(engine, result, targetFormat, params);
6924
+ texture.name = textureName || imageName || "texture_" + bufferViewIndex;
6862
6925
  if (sampler !== undefined) {
6863
6926
  GLTFUtils.parseSampler(texture, samplerInfo);
6864
6927
  }
6865
- return texture;
6866
- });
6867
- context._addTaskCompletePromise(promise);
6868
- return [
6869
- 2,
6870
- promise
6871
- ];
6872
- } else {
6873
- bufferView = glTF.bufferViews[bufferViewIndex];
6874
- return [
6875
- 2,
6876
- context.get(GLTFParserType.Buffer, bufferView.buffer).then(function(buffer) {
6877
- var imageBuffer = new Uint8Array(buffer, bufferView.byteOffset, bufferView.byteLength);
6878
- return KTX2Loader._parseBuffer(imageBuffer, engine).then(function(param) {
6879
- var engine = param.engine, result = param.result, targetFormat = param.targetFormat, params = param.params;
6880
- return KTX2Loader._createTextureByBuffer(engine, result, targetFormat, params);
6881
- }).then(function(texture) {
6882
- texture.name = textureName || imageName || "texture_" + bufferViewIndex;
6883
- if (sampler !== undefined) {
6884
- GLTFUtils.parseSampler(texture, samplerInfo);
6885
- }
6886
- var bufferTextureRestoreInfo = new BufferTextureRestoreInfo(texture, bufferView, mimeType);
6887
- context.contentRestorer.bufferTextures.push(bufferTextureRestoreInfo);
6888
- return texture;
6889
- });
6890
- })
6891
- ];
6892
- }
6928
+ var bufferTextureRestoreInfo = new BufferTextureRestoreInfo(texture, bufferView, mimeType);
6929
+ context.contentRestorer.bufferTextures.push(bufferTextureRestoreInfo);
6930
+ resolve(texture);
6931
+ }).catch(reject);
6932
+ }).catch(function(e) {
6933
+ Logger.error("KHR_texture_basisu: buffer error", e);
6934
+ });
6893
6935
  });
6894
- })();
6936
+ }
6895
6937
  };
6896
6938
  return KHR_texture_basisu;
6897
6939
  }(GLTFExtensionParser);
@@ -6981,6 +7023,8 @@ var EXT_meshopt_compression = /*#__PURE__*/ function(GLTFExtensionParser1) {
6981
7023
  return getMeshoptDecoder().then(function(decoder) {
6982
7024
  return decoder.decodeGltfBuffer(schema.count, schema.byteStride, new Uint8Array(arrayBuffer, schema.byteOffset, schema.byteLength), schema.mode, schema.filter);
6983
7025
  });
7026
+ }).catch(function(e) {
7027
+ Logger.error("EXT_meshopt_compression: buffer error", e);
6984
7028
  });
6985
7029
  };
6986
7030
  return EXT_meshopt_compression;
@@ -7003,6 +7047,8 @@ var KHR_materials_anisotropy = /*#__PURE__*/ function(GLTFExtensionParser1) {
7003
7047
  GLTFMaterialParser._checkOtherTextureTransform(anisotropyTexture, "Anisotropy texture");
7004
7048
  context.get(GLTFParserType.Texture, anisotropyTexture.index).then(function(texture) {
7005
7049
  material.anisotropyTexture = texture;
7050
+ }).catch(function(e) {
7051
+ Logger.error("KHR_materials_anisotropy: anisotropy texture error", e);
7006
7052
  });
7007
7053
  }
7008
7054
  };
@@ -7030,19 +7076,10 @@ var EXT_texture_webp = /*#__PURE__*/ function(GLTFExtensionParser1) {
7030
7076
  }
7031
7077
  var _proto = EXT_texture_webp.prototype;
7032
7078
  _proto.createAndParse = function createAndParse(context, schema, textureInfo, textureIndex) {
7033
- var _this = this;
7034
- return _async_to_generator(function() {
7035
- var webPIndex, sampler, tmp, fallbackIndex, textureName, texture;
7036
- return __generator(this, function(_state) {
7037
- webPIndex = schema.source;
7038
- sampler = textureInfo.sampler, tmp = textureInfo.source, fallbackIndex = tmp === void 0 ? 0 : tmp, textureName = textureInfo.name;
7039
- texture = GLTFTextureParser._parseTexture(context, _this._supportWebP ? webPIndex : fallbackIndex, textureIndex, sampler, textureName);
7040
- return [
7041
- 2,
7042
- texture
7043
- ];
7044
- });
7045
- })();
7079
+ var webPIndex = schema.source;
7080
+ var sampler = textureInfo.sampler, tmp = textureInfo.source, fallbackIndex = tmp === void 0 ? 0 : tmp, textureName = textureInfo.name;
7081
+ var texture = GLTFTextureParser._parseTexture(context, this._supportWebP ? webPIndex : fallbackIndex, textureIndex, sampler, textureName);
7082
+ return texture;
7046
7083
  };
7047
7084
  return EXT_texture_webp;
7048
7085
  }(GLTFExtensionParser);