@galacean/engine-loader 1.3.0-alpha.3 → 1.3.0-beta.10

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/main.js CHANGED
@@ -1326,9 +1326,9 @@ exports.MeshLoader = /*#__PURE__*/ function(Loader1) {
1326
1326
  _proto.load = function load(item, resourceManager) {
1327
1327
  var _this = this;
1328
1328
  return new engineCore.AssetPromise(function(resolve, reject) {
1329
- _this.request(item.url, {
1329
+ _this.request(item.url, _extends({}, item, {
1330
1330
  type: "arraybuffer"
1331
- }).then(function(data) {
1331
+ })).then(function(data) {
1332
1332
  decode(data, resourceManager.engine).then(function(mesh) {
1333
1333
  resolve(mesh);
1334
1334
  });
@@ -1352,9 +1352,9 @@ exports.EditorTextureLoader = /*#__PURE__*/ function(Loader1) {
1352
1352
  _proto.load = function load(item, resourceManager) {
1353
1353
  var _this = this;
1354
1354
  return new engineCore.AssetPromise(function(resolve, reject) {
1355
- _this.request(item.url, {
1355
+ _this.request(item.url, _extends({}, item, {
1356
1356
  type: "arraybuffer"
1357
- }).then(function(data) {
1357
+ })).then(function(data) {
1358
1358
  decode(data, resourceManager.engine).then(function(texture) {
1359
1359
  resolve(texture);
1360
1360
  });
@@ -1447,8 +1447,8 @@ var AnimatorControllerLoader = /*#__PURE__*/ function(Loader1) {
1447
1447
  _this.request(item.url, _extends({}, item, {
1448
1448
  type: "json"
1449
1449
  })).then(function(data) {
1450
- var animatorController = new engineCore.AnimatorController();
1451
- var layers = data.layers;
1450
+ var animatorController = new engineCore.AnimatorController(resourceManager.engine);
1451
+ var layers = data.layers, parameters = data.parameters;
1452
1452
  var promises = [];
1453
1453
  layers.forEach(function(layerData, layerIndex) {
1454
1454
  var name = layerData.name, blendingMode = layerData.blendingMode, weight = layerData.weight, stateMachineData = layerData.stateMachine;
@@ -1456,21 +1456,21 @@ var AnimatorControllerLoader = /*#__PURE__*/ function(Loader1) {
1456
1456
  layer.blendingMode = blendingMode;
1457
1457
  layer.weight = weight;
1458
1458
  if (stateMachineData) {
1459
- var states = stateMachineData.states;
1460
- var stateMachine = layer.stateMachine = new engineCore.AnimatorStateMachine();
1459
+ var states = stateMachineData.states, transitions = stateMachineData.transitions, entryTransitions = stateMachineData.entryTransitions, anyTransitions = stateMachineData.anyTransitions;
1460
+ var stateMachine = layer.stateMachine;
1461
+ var statesMap = {};
1462
+ var transitionsMap = {};
1461
1463
  states.forEach(function(stateData, stateIndex) {
1462
- var _scriptsObject;
1463
- var name = stateData.name, speed = stateData.speed, wrapMode = stateData.wrapMode, clipStartNormalizedTime = stateData.clipStartNormalizedTime, clipEndNormalizedTime = stateData.clipEndNormalizedTime, isDefaultState = stateData.isDefaultState, clipData = stateData.clip, scripts = stateData.scripts;
1464
+ var id = stateData.id, name = stateData.name, speed = stateData.speed, wrapMode = stateData.wrapMode, clipStartNormalizedTime = stateData.clipStartNormalizedTime, clipEndNormalizedTime = stateData.clipEndNormalizedTime, clipData = stateData.clip, scripts = stateData.scripts;
1464
1465
  var state = stateMachine.addState(name);
1465
- isDefaultState && (stateMachine.defaultState = state);
1466
1466
  state.speed = speed;
1467
1467
  state.wrapMode = wrapMode;
1468
1468
  state.clipStartTime = clipStartNormalizedTime;
1469
1469
  state.clipEndTime = clipEndNormalizedTime;
1470
- var scriptsObject = JSON.parse(scripts);
1471
- (_scriptsObject = scriptsObject) == null ? void 0 : _scriptsObject.forEach(function(script) {
1470
+ scripts.forEach(function(script) {
1472
1471
  state.addStateMachineScript(engineCore.Loader.getClass(script));
1473
1472
  });
1473
+ statesMap[id] = state;
1474
1474
  if (clipData) {
1475
1475
  promises.push(new Promise(function(resolve) {
1476
1476
  //@ts-ignore
@@ -1484,23 +1484,29 @@ var AnimatorControllerLoader = /*#__PURE__*/ function(Loader1) {
1484
1484
  }));
1485
1485
  }
1486
1486
  });
1487
+ transitions.forEach(function(transitionData) {
1488
+ var transition = _this._createTransition(transitionData, statesMap[transitionData.destinationStateId]);
1489
+ transitionsMap[transitionData.id] = transition;
1490
+ });
1487
1491
  states.forEach(function(stateData) {
1488
- var name = stateData.name, transitions = stateData.transitions;
1489
- transitions.forEach(function(transitionData) {
1490
- var targetStateName = transitionData.targetStateName, duration = transitionData.duration, offset = transitionData.offset, exitTime = transitionData.exitTime;
1491
- var sourceState = stateMachine.findStateByName(name);
1492
- var destState = stateMachine.findStateByName(targetStateName);
1493
- var transition = new engineCore.AnimatorStateTransition();
1494
- transition.destinationState = destState;
1495
- transition.duration = duration;
1496
- transition.exitTime = exitTime;
1497
- transition.offset = offset;
1498
- sourceState.addTransition(transition);
1492
+ var id = stateData.id, transitions = stateData.transitions;
1493
+ transitions.forEach(function(transitionId) {
1494
+ var transition = transitionsMap[transitionId];
1495
+ transition && statesMap[id].addTransition(transition);
1499
1496
  });
1500
1497
  });
1498
+ entryTransitions.forEach(function(entryTransitionData) {
1499
+ stateMachine.addEntryStateTransition(_this._createTransition(entryTransitionData, statesMap[entryTransitionData.destinationStateId]));
1500
+ });
1501
+ anyTransitions.forEach(function(anyTransitionData) {
1502
+ stateMachine.addAnyStateTransition(_this._createTransition(anyTransitionData, statesMap[anyTransitionData.destinationStateId]));
1503
+ });
1501
1504
  }
1502
1505
  animatorController.addLayer(layer);
1503
1506
  });
1507
+ parameters.forEach(function(parameterData) {
1508
+ animatorController.addParameter(parameterData.name, parameterData.defaultValue);
1509
+ });
1504
1510
  Promise.all(promises).then(function(clipData) {
1505
1511
  clipData.forEach(function(data) {
1506
1512
  var layerIndex = data.layerIndex, stateIndex = data.stateIndex, clip = data.clip;
@@ -1511,6 +1517,21 @@ var AnimatorControllerLoader = /*#__PURE__*/ function(Loader1) {
1511
1517
  }).catch(reject);
1512
1518
  });
1513
1519
  };
1520
+ _proto._createTransition = function _createTransition(transitionData, destinationState) {
1521
+ var transition = new engineCore.AnimatorStateTransition();
1522
+ transition.duration = transitionData.duration;
1523
+ transition.offset = transitionData.offset;
1524
+ transition.exitTime = transitionData.exitTime;
1525
+ transition.solo = transitionData.solo;
1526
+ transition.mute = transitionData.mute;
1527
+ // @ts-ignore
1528
+ transition._isExit = transitionData.isExit;
1529
+ transition.destinationState = destinationState;
1530
+ transitionData.conditions.forEach(function(conditionData) {
1531
+ transition.addCondition(conditionData.mode, conditionData.parameterName, conditionData.threshold);
1532
+ });
1533
+ return transition;
1534
+ };
1514
1535
  return AnimatorControllerLoader;
1515
1536
  }(engineCore.Loader);
1516
1537
  AnimatorControllerLoader = __decorate([
@@ -1561,9 +1582,9 @@ var EnvLoader = /*#__PURE__*/ function(Loader1) {
1561
1582
  _proto.load = function load(item, resourceManager) {
1562
1583
  var _this = this;
1563
1584
  return new engineCore.AssetPromise(function(resolve, reject) {
1564
- _this.request(item.url, {
1585
+ _this.request(item.url, _extends({}, item, {
1565
1586
  type: "arraybuffer"
1566
- }).then(function(arraybuffer) {
1587
+ })).then(function(arraybuffer) {
1567
1588
  var _this;
1568
1589
  var shArray = new Float32Array(arraybuffer, 0, 27);
1569
1590
  var shByteLength = 27 * 4;
@@ -1643,9 +1664,9 @@ var FontLoader = /*#__PURE__*/ function(Loader1) {
1643
1664
  _proto.load = function load(item, resourceManager) {
1644
1665
  var _this = this;
1645
1666
  return new engineCore.AssetPromise(function(resolve, reject) {
1646
- _this.request(item.url, {
1667
+ _this.request(item.url, _extends({}, item, {
1647
1668
  type: "json"
1648
- }).then(function(data) {
1669
+ })).then(function(data) {
1649
1670
  var fontName = data.fontName, fontUrl = data.fontUrl;
1650
1671
  if (fontUrl) {
1651
1672
  _this._registerFont(fontName, fontUrl).then(function() {
@@ -2030,15 +2051,15 @@ var TextureWrapMode;
2030
2051
  for(var i = 0, length = item.length; i < length; i++){
2031
2052
  var mesh = item[i];
2032
2053
  // @ts-ignore
2033
- _this.resourceManager._onSubAssetSuccess(url + "?q=" + glTFResourceKey + "[" + index + "][" + i + "]", mesh);
2054
+ _this.resourceManager._onSubAssetSuccess(url, glTFResourceKey + "[" + index + "][" + i + "]", mesh);
2034
2055
  }
2035
2056
  } else {
2036
2057
  // @ts-ignore
2037
- _this.resourceManager._onSubAssetSuccess(url + "?q=" + glTFResourceKey + "[" + index + "]", item);
2058
+ _this.resourceManager._onSubAssetSuccess(url, "" + glTFResourceKey + (index === undefined ? "" : "[" + index + "]"), item);
2038
2059
  var _this_glTF_scene;
2039
2060
  if (type === 2 && ((_this_glTF_scene = _this.glTF.scene) != null ? _this_glTF_scene : 0) === index) {
2040
2061
  // @ts-ignore
2041
- _this.resourceManager._onSubAssetSuccess("" + url + "?q=defaultSceneRoot", item);
2062
+ _this.resourceManager._onSubAssetSuccess(url, "defaultSceneRoot", item);
2042
2063
  }
2043
2064
  }
2044
2065
  });
@@ -4481,6 +4502,8 @@ exports.GLTFSceneParser = /*#__PURE__*/ function(GLTFParser1) {
4481
4502
  sceneRoot = context.get(exports.GLTFParserType.Entity, sceneNodes[0]);
4482
4503
  } else {
4483
4504
  sceneRoot = new engineCore.Entity(engine, "GLTF_ROOT");
4505
+ // @ts-ignore
4506
+ sceneRoot._markAsTemplate(glTFResource);
4484
4507
  for(var i = 0; i < sceneNodes.length; i++){
4485
4508
  var childEntity = context.get(exports.GLTFParserType.Entity, sceneNodes[i]);
4486
4509
  sceneRoot.addChild(childEntity);
@@ -4863,12 +4886,14 @@ exports.GLTFAnimatorControllerParser = /*#__PURE__*/ function(GLTFParser1) {
4863
4886
  return Promise.resolve(null);
4864
4887
  }
4865
4888
  return context.get(exports.GLTFParserType.Animation).then(function(animations) {
4866
- var animatorController = _this._createAnimatorController(animations);
4889
+ var animatorController = _this._createAnimatorController(context, animations);
4867
4890
  return Promise.resolve(animatorController);
4868
4891
  });
4869
4892
  };
4870
- _proto._createAnimatorController = function _createAnimatorController(animations) {
4871
- var animatorController = new engineCore.AnimatorController();
4893
+ _proto._createAnimatorController = function _createAnimatorController(context, animations) {
4894
+ var glTFResource = context.glTFResource;
4895
+ var engine = glTFResource.engine;
4896
+ var animatorController = new engineCore.AnimatorController(engine);
4872
4897
  var layer = new engineCore.AnimatorControllerLayer("layer");
4873
4898
  var animatorStateMachine = new engineCore.AnimatorStateMachine();
4874
4899
  animatorController.addLayer(layer);
@@ -4894,7 +4919,8 @@ exports.GLTFAnimatorControllerParser = __decorate([
4894
4919
  ], exports.GLTFAnimatorControllerParser);
4895
4920
 
4896
4921
  // Source: https://github.com/zeux/meshoptimizer/blob/master/js/meshopt_decoder.js
4897
- var MeshoptDecoder = function() {
4922
+ var ready;
4923
+ function getMeshoptDecoder() {
4898
4924
  var unpack = function unpack(data) {
4899
4925
  var result = new Uint8Array(data.length);
4900
4926
  for(var i = 0; i < data.length; ++i){
@@ -4939,7 +4965,7 @@ var MeshoptDecoder = function() {
4939
4965
  return worker;
4940
4966
  };
4941
4967
  var initWorkers = function initWorkers(count) {
4942
- 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 }';
4968
+ 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 }';
4943
4969
  var blob = new Blob([
4944
4970
  source
4945
4971
  ], {
@@ -4978,6 +5004,7 @@ var MeshoptDecoder = function() {
4978
5004
  ]);
4979
5005
  });
4980
5006
  };
5007
+ if (ready) return ready;
4981
5008
  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";
4982
5009
  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";
4983
5010
  var wasmpack = new Uint8Array([
@@ -5045,9 +5072,32 @@ var MeshoptDecoder = function() {
5045
5072
  // @ts-ignore
5046
5073
  var wasm = engineCore.SystemInfo._detectSIMDSupported() ? wasm_simd : wasm_base;
5047
5074
  var instance;
5048
- var ready = WebAssembly.instantiate(unpack(wasm), {}).then(function(result) {
5075
+ ready = WebAssembly.instantiate(unpack(wasm)).then(function(result) {
5049
5076
  instance = result.instance;
5050
5077
  instance.exports.__wasm_call_ctors();
5078
+ }).then(function() {
5079
+ return {
5080
+ workerCount: 4,
5081
+ ready: ready,
5082
+ useWorkers: function useWorkers(workerCount) {
5083
+ this.workerCount = workerCount != null ? workerCount : this.workerCount;
5084
+ initWorkers(this.workerCount);
5085
+ },
5086
+ decodeGltfBuffer: function decodeGltfBuffer(count, stride, source, mode, filter) {
5087
+ if (this.workerCount > 0 && workers.length === 0) this.useWorkers();
5088
+ if (workers.length > 0) return decodeWorker(count, stride, source, decoders[mode], filters[filter]);
5089
+ return ready.then(function() {
5090
+ var target = new Uint8Array(count * stride);
5091
+ decode(instance.exports[decoders[mode]], target, count, stride, source, instance.exports[filters[filter]]);
5092
+ return target;
5093
+ });
5094
+ },
5095
+ release: function release() {
5096
+ for(var i = 0; i < workers.length; i++){
5097
+ workers[i].object.terminate();
5098
+ }
5099
+ }
5100
+ };
5051
5101
  });
5052
5102
  var filters = {
5053
5103
  NONE: "",
@@ -5062,28 +5112,8 @@ var MeshoptDecoder = function() {
5062
5112
  };
5063
5113
  var workers = [];
5064
5114
  var requestId = 0;
5065
- return {
5066
- workerCount: 4,
5067
- ready: ready,
5068
- useWorkers: function useWorkers() {
5069
- initWorkers(this.workerCount);
5070
- },
5071
- decodeGltfBuffer: function decodeGltfBuffer(count, stride, source, mode, filter) {
5072
- if (this.workerCount > 0 && workers.length === 0) this.useWorkers();
5073
- if (workers.length > 0) return decodeWorker(count, stride, source, decoders[mode], filters[filter]);
5074
- return ready.then(function() {
5075
- var target = new Uint8Array(count * stride);
5076
- decode(instance.exports[decoders[mode]], target, count, stride, source, instance.exports[filters[filter]]);
5077
- return target;
5078
- });
5079
- },
5080
- release: function release() {
5081
- for(var i = 0; i < workers.length; i++){
5082
- workers[i].object.terminate();
5083
- }
5084
- }
5085
- };
5086
- }();
5115
+ return ready;
5116
+ }
5087
5117
 
5088
5118
  exports.GLTFLoader = /*#__PURE__*/ function(Loader1) {
5089
5119
  _inherits(GLTFLoader, Loader1);
@@ -5092,11 +5122,13 @@ exports.GLTFLoader = /*#__PURE__*/ function(Loader1) {
5092
5122
  }
5093
5123
  var _proto = GLTFLoader.prototype;
5094
5124
  _proto.initialize = function initialize(_, configuration) {
5095
- var _configuration_glTF;
5096
- var meshOptOptions = (_configuration_glTF = configuration.glTF) == null ? void 0 : _configuration_glTF.meshOpt;
5125
+ var _configuration_glTFLoader, _configuration_glTF;
5126
+ var _configuration_glTFLoader_meshOpt;
5127
+ var meshOptOptions = (_configuration_glTFLoader_meshOpt = (_configuration_glTFLoader = configuration.glTFLoader) == null ? void 0 : _configuration_glTFLoader.meshOpt) != null ? _configuration_glTFLoader_meshOpt : (_configuration_glTF = configuration.glTF) == null ? void 0 : _configuration_glTF.meshOpt;
5097
5128
  if (meshOptOptions) {
5098
- MeshoptDecoder.workerCount = meshOptOptions.workerCount;
5099
- MeshoptDecoder.useWorkers();
5129
+ return getMeshoptDecoder().then(function(meshoptDecoder) {
5130
+ meshoptDecoder.useWorkers(meshOptOptions.workerCount);
5131
+ });
5100
5132
  }
5101
5133
  return Promise.resolve();
5102
5134
  };
@@ -5117,7 +5149,11 @@ exports.GLTFLoader = /*#__PURE__*/ function(Loader1) {
5117
5149
  * Release glTF loader memory(includes meshopt workers).
5118
5150
  * @remarks If use loader after releasing, we should release again.
5119
5151
  */ GLTFLoader.release = function release() {
5120
- MeshoptDecoder.release();
5152
+ if (ready) {
5153
+ getMeshoptDecoder().then(function(meshoptDecoder) {
5154
+ meshoptDecoder.release();
5155
+ });
5156
+ }
5121
5157
  };
5122
5158
  return GLTFLoader;
5123
5159
  }(engineCore.Loader);
@@ -5156,7 +5192,7 @@ var PrefabParser = /*#__PURE__*/ function(HierarchyParser1) {
5156
5192
  return PrefabParser;
5157
5193
  }(HierarchyParser);
5158
5194
 
5159
- exports.PrefabLoader = /*#__PURE__*/ function(Loader1) {
5195
+ var PrefabLoader = /*#__PURE__*/ function(Loader1) {
5160
5196
  _inherits(PrefabLoader, Loader1);
5161
5197
  function PrefabLoader() {
5162
5198
  return Loader1.apply(this, arguments);
@@ -5175,11 +5211,11 @@ exports.PrefabLoader = /*#__PURE__*/ function(Loader1) {
5175
5211
  };
5176
5212
  return PrefabLoader;
5177
5213
  }(engineCore.Loader);
5178
- exports.PrefabLoader = __decorate([
5214
+ PrefabLoader = __decorate([
5179
5215
  engineCore.resourceLoader(engineCore.AssetType.Prefab, [
5180
5216
  "prefab"
5181
5217
  ])
5182
- ], exports.PrefabLoader);
5218
+ ], PrefabLoader);
5183
5219
 
5184
5220
  var _HDRLoader;
5185
5221
  var PI = Math.PI;
@@ -5194,9 +5230,9 @@ var HDRLoader = (_HDRLoader = // referenece: https://www.flipcode.com/archives/H
5194
5230
  var _this = this;
5195
5231
  return new engineCore.AssetPromise(function(resolve, reject) {
5196
5232
  var engine = resourceManager.engine;
5197
- _this.request(item.url, {
5233
+ _this.request(item.url, _extends({}, item, {
5198
5234
  type: "arraybuffer"
5199
- }).then(function(buffer) {
5235
+ })).then(function(buffer) {
5200
5236
  var uint8Array = new Uint8Array(buffer);
5201
5237
  var _HDRLoader__parseHeader = HDRLoader._parseHeader(uint8Array), width = _HDRLoader__parseHeader.width, height = _HDRLoader__parseHeader.height, dataPosition = _HDRLoader__parseHeader.dataPosition;
5202
5238
  var pixels = HDRLoader._readPixels(uint8Array.subarray(dataPosition), width, height);
@@ -5944,9 +5980,9 @@ var ProjectLoader = /*#__PURE__*/ function(Loader1) {
5944
5980
  var _this = this;
5945
5981
  var engine = resourceManager.engine;
5946
5982
  return new engineCore.AssetPromise(function(resolve, reject) {
5947
- _this.request(item.url, {
5983
+ _this.request(item.url, _extends({}, item, {
5948
5984
  type: "json"
5949
- }).then(function(data) {
5985
+ })).then(function(data) {
5950
5986
  // @ts-ignore
5951
5987
  engine.resourceManager.initVirtualResources(data.files);
5952
5988
  return resourceManager.load({
@@ -6312,9 +6348,9 @@ var SceneLoader = /*#__PURE__*/ function(Loader1) {
6312
6348
  var _this = this;
6313
6349
  var engine = resourceManager.engine;
6314
6350
  return new engineCore.AssetPromise(function(resolve, reject) {
6315
- _this.request(item.url, {
6351
+ _this.request(item.url, _extends({}, item, {
6316
6352
  type: "json"
6317
- }).then(function(data) {
6353
+ })).then(function(data) {
6318
6354
  return SceneParser.parse(engine, data).then(function(scene) {
6319
6355
  var promises = [];
6320
6356
  // parse ambient light
@@ -6391,6 +6427,9 @@ var SceneLoader = /*#__PURE__*/ function(Loader1) {
6391
6427
  if (shadow.shadowResolution != undefined) scene.shadowResolution = shadow.shadowResolution;
6392
6428
  if (shadow.shadowDistance != undefined) scene.shadowDistance = shadow.shadowDistance;
6393
6429
  if (shadow.shadowCascades != undefined) scene.shadowCascades = shadow.shadowCascades;
6430
+ if (shadow.enableTransparentShadow != undefined) {
6431
+ scene.enableTransparentShadow = shadow.enableTransparentShadow;
6432
+ }
6394
6433
  var _shadow_shadowTwoCascadeSplits;
6395
6434
  scene.shadowTwoCascadeSplits = (_shadow_shadowTwoCascadeSplits = shadow.shadowTwoCascadeSplits) != null ? _shadow_shadowTwoCascadeSplits : scene.shadowTwoCascadeSplits;
6396
6435
  shadow.shadowFourCascadeSplits && scene.shadowFourCascadeSplits.copyFrom(shadow.shadowFourCascadeSplits);
@@ -6415,6 +6454,7 @@ var SceneLoader = /*#__PURE__*/ function(Loader1) {
6415
6454
  var tonemappingEffect = postProcessManager._tonemappingEffect;
6416
6455
  postProcessManager.isActive = postProcessData.isActive;
6417
6456
  bloomEffect.enabled = postProcessData.bloom.enabled;
6457
+ bloomEffect.downScale = postProcessData.bloom.downScale;
6418
6458
  bloomEffect.threshold = postProcessData.bloom.threshold;
6419
6459
  bloomEffect.scatter = postProcessData.bloom.scatter;
6420
6460
  bloomEffect.intensity = postProcessData.bloom.intensity;
@@ -6800,7 +6840,9 @@ var EXT_meshopt_compression = /*#__PURE__*/ function(GLTFExtensionParser1) {
6800
6840
  var _proto = EXT_meshopt_compression.prototype;
6801
6841
  _proto.createAndParse = function createAndParse(context, schema) {
6802
6842
  return context.get(exports.GLTFParserType.Buffer, schema.buffer).then(function(arrayBuffer) {
6803
- return MeshoptDecoder.decodeGltfBuffer(schema.count, schema.byteStride, new Uint8Array(arrayBuffer, schema.byteOffset, schema.byteLength), schema.mode, schema.filter);
6843
+ return getMeshoptDecoder().then(function(decoder) {
6844
+ return decoder.decodeGltfBuffer(schema.count, schema.byteStride, new Uint8Array(arrayBuffer, schema.byteOffset, schema.byteLength), schema.mode, schema.filter);
6845
+ });
6804
6846
  });
6805
6847
  };
6806
6848
  return EXT_meshopt_compression;
@@ -6833,6 +6875,8 @@ KHR_materials_anisotropy = __decorate([
6833
6875
  ], KHR_materials_anisotropy);
6834
6876
 
6835
6877
  exports.BufferInfo = BufferInfo;
6878
+ exports.BufferReader = BufferReader;
6879
+ exports.FileHeader = FileHeader;
6836
6880
  exports.GLTFExtensionParser = GLTFExtensionParser;
6837
6881
  exports.GLTFParser = GLTFParser;
6838
6882
  exports.GLTFParserContext = GLTFParserContext;
@@ -6843,6 +6887,8 @@ exports.PrefabResource = PrefabResource;
6843
6887
  exports.ReflectionParser = ReflectionParser;
6844
6888
  exports.SceneParser = SceneParser;
6845
6889
  exports.decode = decode;
6890
+ exports.decoder = decoder;
6891
+ exports.decoderMap = decoderMap;
6846
6892
  exports.parseSingleKTX = parseSingleKTX;
6847
6893
  exports.registerGLTFExtension = registerGLTFExtension;
6848
6894
  exports.registerGLTFParser = registerGLTFParser;